이와 같은 것을 구현하는 방법에는 여러 가지가 있지만, 너무 어렵지 않은 방법이 있습니다.
블랙리스트에있는 라이센스 키 해시가 포함 된 파일을 호스팅하는 공개 웹 사이트가 필요합니다. 이 파일을 관리하는 방법은 사용자에게 달려 있지만 파일 자체에는 한 줄에 해시 만 있으면됩니다.
그런 다음 반복적으로 소프트웨어는이 파일의 다운로드 (대부분의 서버 측 언어에서 제공)를 시작한 다음 설치된 라이센스 키의 해시를 검색합니다. 발견되면 블랙리스트가 제거 될 때까지 응용 프로그램이 죽어야한다는 것을 응용 프로그램에서 알 수 있습니다.
이를 위해서는 MD5 또는 이와 유사한 비밀이 충분해야합니다. 당신은 더 멋진 것을 얻을 수 있고 응용 프로그램이 귀하의 사이트로 요청을 보내도록 요청하고 즉시 데이터베이스에서 요청을 찾을 수 있지만 파일 (내가 희망적으로 짧은 목록이 될 것이라고 가정)은 희망적으로 작게 남아있을 수 있습니다. 가장 쉬운 방법.
더 어려운 부분은 응용 프로그램을 죽게 유지하는 것입니다. 결국, 당신은 이것을 내부 어딘가에 저장해야합니다. 즉, 지나치게 명백한 경우 쉽게 파괴 될 수 있으며, 지나치게 명확하지 않은 경우에도 적절한 테이블을 복원하여 쉽게 되돌릴 수 있습니다 파일. 따라서 두 번째 보호 방법도 제안합니다.
이 방법은 테이블 또는 파일에 "LIVE"또는 "DEAD"(또는 이와 유사한 것)를 저장하지만 다시 해시됩니다. 이것은 소금과 타임 스탬프로 해시되어야합니다. 응용 프로그램의 페이지가 실행될 때마다 "LIVE"+ salt + timestamp의 해시 버전으로이 값을 확인한 다음 유효한 타임 스탬프 범위 (예 : 하루, 이틀, 일주일, 한 달 등)를 허용하십시오. 범위가 클수록 성능이 저하 될 수 있습니다.). 사물이 일치하거나 일치하는 한 앱은 살아 있습니다. 그렇지 않으면 특수 파일 또는 테이블의 값이 "LIVE"인 경우에도 타임 스탬프가 임계 값을 벗어나기 때문에 백업에서 복원을 시도하면 해당 값이 여전히 작동하지 않습니다.
요약하면 ( 여러 종류의 체크섬이나 다른 방법과 같은 라이센스 키 의 유효성 을 검사하는 프로그래밍 방식이 있다고 가정합니다 ).
- 블랙리스트 확인
- 소금으로 라이센스 키를 해시로 변환
- 서버에서 블랙리스트 파일 요청
- 파일에 해시가 있습니까?
- 예인 경우 "DEAD"+ salt + 타임 스탬프의 해시를 저장하십시오 (일로 잘림, 시간 + 일 + 분을 저장할 필요 없음).
- NO 인 경우 "LIVE"+ salt + timestamp (trunc'd)의 해시를 저장하십시오.
- IsKeyAlive
- "LIVE"+ salt + trunc'd timestamp에서 해시 만들기
- DeadAlive 해시로드
- 그들은 동의합니까?
- 그렇다면, 우리는 살아 있습니다. TRUE를 반환합니다.
- NO 인 경우 사망했을 가능성이 있지만 타임 스탬프 창 내에있을 수 있습니다.
- 타임 스탬프에서 하루를 빼고 해시를 반복합니다.
- 우리는 지금 동의합니까?
- 예? 참 반환
- 타임 스탬프에 하루 추가 및 해시 반복
- 우리는 지금 동의합니까?
- 예? 참 반환
- 현재 타임 스탬프 범위를 벗어났습니다. FALSE를 반환하십시오. (킬 앱)
자선은 이것이 실패 할 수있는 백만 가지 방법이 있다는 것을 알고 있습니다. 가능한 모든 방법을 고려하고 신뢰할 수있는 시스템을 작성하십시오 (블랙리스트 파일을 다운로드 할 수없는 경우 클라이언트가 올바른 것으로 가정하는 시스템 포함). 배포하기 전에 테스트, 테스트, 테스트 및 추가 테스트를 수행하십시오. 잘못되면 클라이언트의 신뢰를 잃게됩니다.