라이센스 소프트웨어는 아직 사용자에게 불편을 끼치 지 않고도 주요 인프라에 투자하지 않고도 문제를 해결하거나 적어도 그렇게 안전하게 해결할 수 없습니다.
라이센스 상태를 저장하는 위치/메커니즘은 대부분 관련성이 없습니다. 레지스트리는 텍스트 파일보다 안전하지 않으며 콘텐츠에 액세스하는 데 몇 초가 걸리고 일부 원격 백 워터에서 항목을 "숨김"합니다 레지스트리의 많은 도움이되지 않습니다.
아마, 당신의 소프트웨어에는 어떤 종류의 영속성 문제가 있습니다 (데이터베이스 파일 시스템?); 동일한 지속성 메커니즘을 사용하여 등록 상태를 저장할 수 있습니다.
물론 소프트웨어에 대한 무단 액세스를 시도하는 사용자가 소프트웨어에서 읽고 쓸 수있는 모든 항목에 액세스 할 수 있습니다. 따라서 레코드를 암호화 할 수 있습니다. 그 암호화 메커니즘에 대한 키를 관리하는 문제가 있습니다. afaik, 거기에 지금이 강력한 솔루션이 없습니다.
그렇다면 인터넷에 "라이센스 서버"가있을 수 있습니다. 귀하의 소프트웨어는 귀하의 기계에 대한 고유 한 식별자 (예 : (MAC address)를 읽고 라이센스 서버로 보내고 서버에 라이센스 상태를 반환하게 할 수 있습니다. 다시 말하지만, 이것은 매우 쉽게 회피 할 수 있습니다. 이제 사용자가 소프트웨어를 사용하려면 온라인 상태 여야합니다.
소프트웨어가 사용자에게 원격으로 매력적일 경우 해커는 며칠 내에 라이센스 키 보호를 중단하고 인터넷에서 자세한 지침을 게시합니다. 애플은 Iphone/Ipad에서 소프트웨어를 보호하기 위해 엄청난 시간을 보냈지 만, 아직 본때를 보여 주던 애플 리케이션은 애플의 잠금을 해제했다.
내 생각에 소프트웨어가 수천만 달러의 매출을 올릴 가치가 없다면 사용자는 가능한 한 쉽게 생활하고 보안 측면에 대해서는 너무 걱정하지 않아야합니다. @ bunting recommends), 또는 텍스트 파일에 대한 정착.특히
, I 것 : 라이센스 파일이없는 경우
,
는 것을 비교 키 라이센스를 입력하도록 사용자에게 응용 프로그램을 시작할 때 유효한 라이센스 파일의 존재에 대한
- 확인 라이센스 키가있는 키
- "유효한"파일을 파일 시스템의 app 디렉토리에 씁니다. 또는 기존 구성 파일을 수정하십시오.
이것은 쉽게 깨지기 쉽습니다. 그래서 한 걸음 더 나아갈 수 있습니다.
첫째, Java 응용 프로그램은 디 컴파일하기 쉽고 공격자는 "라이센스"상수를 쉽게 읽을 수 있습니다. 이 작업을 어렵게 만들려면 obfuscator를 사용해야합니다 (불가능하지는 않지만).
둘째, 로컬 라이센스 데이터를 암호화 할 수 있습니다. 이것 역시 완전히 캐주얼 한 해커가 더 어려워 질 것입니다. 해커가 작동중인 라이센스 키로 애플리케이션을 재배포 할 수 없도록 (예 : 라이센스 키에 시스템의 MAC 주소를 곱하여) 암호화 체계에 일부 로컬 데이터를 포함 할 수 있습니다.
두 경우 모두 라이센스를 앱에 "연결"하고 있습니다. 해커가 응용 프로그램의 라이센스 키를 게시하는 게시판이 있으며 새 키로 새 버전의 응용 프로그램을 발급하는 대신 다른 사람이 응답 할 수 없습니다.
소프트웨어를 "기억"하게 만드는 것은 쉽습니다. 그것을 해킹하는 것이 중요하지 않은 것입니다 ... – Mysticial
license4j 어플리케이션을 사용하면 도움이 될 것입니다 ... youtube에서 비디오를 확인하십시오 –