Phần mềm cấp phép chưa phải là vấn đề được giải quyết
Vị trí/cơ chế mà bạn lưu trữ trạng thái giấy phép hầu như không liên quan - đăng ký không an toàn hơn tệp văn bản - mất vài giây để truy cập nội dung và "ẩn" mục nhập trong một số backwater từ xa của sổ đăng ký không giúp gì nhiều.
Có lẽ, phần mềm của bạn có một số loại sự kiên trì xảy ra (hệ thống tệp cơ sở dữ liệu?); bạn có thể sử dụng cùng một cơ chế kiên trì đó để lưu trữ trạng thái đăng ký.
Tất nhiên, mọi người có thể truy cập vào bất kỳ nội dung nào mà phần mềm của bạn có thể đọc/ghi có thể truy cập trái phép vào phần mềm của bạn. Vì vậy, bạn có thể mã hóa hồ sơ; thì bạn có vấn đề về quản lý khóa cho cơ chế mã hóa đó; Tuy nhiên, hiện tại không có giải pháp mạnh mẽ nào.
Vì vậy, sau đó bạn có thể có một "máy chủ cấp phép" trên internet; phần mềm của bạn có thể đọc số nhận dạng duy nhất cho máy của bạn chẳng hạn như (MAC address), gửi nó tới máy chủ cấp phép của bạn và yêu cầu máy chủ trả lại trạng thái giấy phép. Một lần nữa, điều này là khá tầm thường để phá vỡ, và bây giờ bạn đang yêu cầu người dùng của bạn để được trực tuyến để sử dụng phần mềm của bạn.
Nếu phần mềm của bạn thu hút người dùng từ xa, tin tặc sẽ phá vỡ bảo vệ khóa cấp phép trong ngày và đăng các hướng dẫn chi tiết trên internet. Apple đi đến độ dài bất thường để bảo vệ phần mềm trên Iphone/Ipad, và các ứng dụng jailbreak vẫn mở khóa chúng. Theo quan điểm của tôi, trừ khi phần mềm của bạn có giá trị doanh thu hàng chục triệu đô la, bạn nên làm cho cuộc sống của bạn dễ dàng nhất có thể cho người dùng của bạn và không lo lắng quá nhiều về khía cạnh bảo mật - sử dụng thứ gì đó trên kệ (như @bunting khuyến cáo), hoặc giải quyết cho một tập tin văn bản.
Cụ thể, tôi sẽ:
- kiểm tra sự hiện diện của một tập tin giấy phép hợp lệ lúc khởi động ứng dụng
- nếu tập tin giấy phép không có mặt, yêu cầu người dùng nhập license key
- so sánh mà với khóa cấp phép của bạn
- ghi tệp "hợp lệ" vào hệ thống tệp, trong thư mục ứng dụng của bạn; cách khác, sửa đổi tệp cấu hình hiện có.
Điều này dễ bị phá vỡ một cách dễ dàng; để bạn có thể tiến thêm một bước nữa.
Thứ nhất, các ứng dụng Java dễ dàng dịch ngược và kẻ tấn công có thể dễ dàng đọc liên tục "giấy phép" của bạn. Bạn nên sử dụng một obfuscator để làm cho điều này khó khăn (mặc dù không phải không thể).
Thứ hai, bạn có thể mã hóa dữ liệu giấy phép cục bộ của mình; điều này cũng sẽ gây khó khăn hơn cho hacker hoàn toàn bình thường. Bạn có thể bao gồm một số dữ liệu cục bộ trong lược đồ mã hóa để tin tặc không thể phân phối lại ứng dụng của bạn bằng khóa cấp phép đang hoạt động (ví dụ: bằng cách nhân khóa cấp phép theo địa chỉ MAC của máy).
Trong cả hai trường hợp, bạn đang "cấp phép" giấy phép vào ứng dụng; có các bảng tin nơi các tin tặc đăng các khóa cấp phép cho các ứng dụng và bạn sẽ không thể trả lời khác ngoài việc phát hành phiên bản mới của ứng dụng bằng khóa mới.
Làm cho phần mềm "ghi nhớ" điều gì đó thật dễ dàng. Làm cho nó không tầm thường để hack là cái gì khác ... – Mysticial
Sử dụng ứng dụng license4j nó sẽ giúp u ... kiểm tra video của họ trong youtube –