문제

저는 C로 작은 애플리케이션을 구현하고 있는데 나중에 합리적인 가격에 셰어웨어로 판매하고 싶습니다.30일 평가판으로 시작될 예정이며, 구현 방법에 대해 이미 확신하고 있습니다.

하지만 문제는 제품 키 확인을 구현하는 방법을 잘 모르겠다는 것입니다.내가 염두에 둔 것은 고객이 내 웹페이지에 가입하고(제품을 잠시 사용해 본 후) 제품 비용을 지불하고 e를 통해 aaaaa-bbbbb-ccccc-ddddd-eeeeee 형식의 제품 키를 얻을 수 있다는 것입니다. -메일(또는 내 웹사이트의 프로필을 통해 확인 가능).지금까지는 문제가 없습니다.그런 다음 그/그녀는 내 앱의 적절한 키 필드에 키를 놓고 앱이 등록되었습니다.

지금까지 제가 수집한 바에 따르면 사람들은 이를 위해 AES나 RSA를 권장합니다.솔직히 말해서 저는 대학에서 (암호화가 아닌) 다른 방향으로 가고 있으며 제가 들었던 암호학 수업은 얼마 전이었습니다.하지만 제가 기억하는 바에 따르면 AES는 대칭 암호화 알고리즘입니다. 즉, 암호화 및 복호화에 하나의 키만 갖게 된다는 뜻이죠?그런 다음 어떻게 수천 개의 제품 키를 생성하고 내 앱에서 유효성을 검사할 수 있습니까? (그런데 인터넷 액세스가 필요하지 않으므로 서버에서 다시 확인할 필요가 없습니다.)

그렇다면 RSA가 갈 길이 아닐까요?하지만 RSA는 꽤 긴 키(최소 위에서 요구되는 25자보다 길음)를 생성하지 않습니까?

~ 안에 다른 스레드 일부 제품은 제품 키 생성/확인에 암호화를 사용하지 않고 대신 "2.그리고 17.문자이며 총합은 x'가 되어야 합니다.

여기로 가는 가장 빠르고, 쉽고, 가장 안전한 방법은 무엇입니까?:-) 코드 샘플은 설탕이 될 것입니다!

문안 인사,

세바스찬

추신.:아...그리고 내 키가 어떤 시점에 어떻게 깨질 수 있는지 말하지 마세요....나는 그것에 대해 알고 있습니다. 이것이 바로 제가 이 문제에 많은 시간을 보내고 싶지 않은 이유입니다. , 그러나 동시에 가끔 크래커를 너무 쉽게 만들지 마십시오.

도움이 되었습니까?

해결책

Disassember가있는 초보자 크래커가 키 (또는 하나를 생성하는 데 사용되는 알고리즘)를 찾아 "keygen"을 만들 수 있다는 점에서 대칭 알고리즘이 제한됩니다.

이러한 이유로 비대칭 암호화가가는 길입니다. 기본 전제는 다음과 같습니다.

  • 사용자가 귀하로부터 라이센스를 구매하면 사용자 및/또는 환경에 대한 특정 식별 세부 정보를 수집합니다 (일반적으로 이것은 단지 전체 이름 일 뿐이며 때로는 회사이기도합니다).
  • 이 정보의 128 비트 MD5 해시를 만듭니다.
  • 128 비트 사용 타원 곡선 암호화,이 해시를 사용하여 암호화합니다 사적인 서버의 키.
  • 128 비트 암호 텍스트는 문자와 숫자로 구성된 25 자 문자열로 사용자에게 표시 될 수 있습니다 (게재를 위해 대시를 분리). 26 글자 + 10 자리 = 36 개별 값, 그리고 36^25> 2^128.
  • 사용자는이 제품 키를 등록 대화 상자에 입력합니다. 클라이언트 소프트웨어는 EC Crypto의 공개 키를 사용하는 128 비트 번호 (16 바이트)로 다시 변환하고 결과를 사용자 개인 정보의 MD5 해시와 비교하여 등록에 사용 된 내용과 일치해야합니다. .

물론 이것은 단지 기본적인 아이디어입니다. 자세한 내용 및 소스 코드는 참조하십시오 타원 곡선 암호화를 기반으로 한 제품 키.

다른 팁

솔루션을 구매하면 인생이 더 간단합니다.

http://www.kagi.com/kagisolutions/index.php

Kagi를 사용하면 지불금을 수집 할 수 있으며 열쇠를 관리하는 데 도움이됩니다.

한 사람이 등록 번호 문제를 어떻게 처리했는지에 대해 블로그를 작성했습니다. 그의 블로그 항목 중 하나는입니다 고유 등록 번호 생성.

예, RSA와 AES는 매우 다른 두 가지입니다.

  • RSA는 공개 키와 개인 키를 포함하는 공개 키 암호화이며 상당히 느립니다.주요 용도는 대칭 암호화 세션 키의 보안 교환을 설정하는 것입니다.
  • AES는 빠르고 안전한 대칭 암호화입니다.

앱이 공개 채널을 통해 통신하지 않고 암호화 사용이 제품 활성화/등록으로 제한되므로 대칭 암호화를 사용하는 것이 좋습니다.공개 키 암호의 이점은 웹 사이트나 이메일을 통해 처리하게 될 키 관리에 있습니다.

모든 고객에게 동일한 키를 배포할 필요는 없습니다.일부 등록 정보의 해시를 생성하고 이를 다른 정보(고정 세션 키 등)와 XOR할 수 있습니다.이를 고객에게 보내면 프로그램이 동일한 해시를 생성할 수 있으며 XOR은 원래 고정 키를 생성하기 위해 보낸 키를 생성합니다.

암호화를 다루는 것은 가볍게 할 수 있는 일이 아닙니다.당신이 언급했듯이 이것이 깨질 것으로 예상합니다.당신이 스스로 하고 있다면 이런 일이 거의 확실하게 일어날 것입니다."정직한 사람들을 정직하게 유지"하기 위해 자신만의 구현을 계속 사용할 수 있지만 그것이 한계라는 것을 깨달으십시오.더 강력한 것이 필요하다면 솔루션을 철저히 조사한 후 솔루션을 구입해야 합니다.

당신은 이것을 확인할 수 있습니다 코드 프로젝트 기사. 소프트웨어가 실행되는 시스템의 MAC 주소를 기반으로 AA 소프트웨어 키의 구현을 설명합니다. 이 방법은 Auteur 자신이 인정하는 것처럼 이상적이지 않으며, 당신이 찾고있는 것과 조금 다르지만, 아마도 당신을 도울 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top