2008-11-03 2 views
14

나는 암호 알고리즘을 권할만한 라이센스 키를 만들고 싶습니다. 라이센스 키에 대한 .NET 암호화?

는 기본적으로 입력은 다음과 같습니다
이 feature2 있습니다 :
가 특징 3 있습니다

회사 이름
주 버전 번호
날짜는 이 feature1이
expirey 날짜
를 생성

예 : 한국 전기 Inc의 5.0 20,081,102 20,081,102 0 1 0

관련 : 다른 질문에 Which built-in .NET cryptography algorithm is the most secure?

+0

관련 질문이 있습니다 : http://stackoverflow.com/questions/79064/cryptography-algorithm 및 http://stackoverflow.com/questions/179220/best-cryptography-algorithm 및 http : // stackoverflow. com/questions/258721/which-built-in-crypotgraphy-algorithm-the-the-most-secure –

+1

왜 이것이 닫혔습니까? 다른 질문은 대답을하지 않으며 ASDFdotASPX의 다른 질문은 훨씬 더 일반적입니다. –

+0

재개했습니다. 그것은 내가 제공 한 링크와 비슷하지만 중복되지는 않습니다. –

답변

7

, 당신이 원하는 비대칭 암호화를 사용하십시오. 그렇게하면 개인 키를 고객에게 배포 할 필요가 없습니다. 내가 SHA - 256과 2048 비트 키를 사용하여 RSA 서명을 생성합니다. 그렇게하면 암호화 작업이 약한 링크가되지 않습니다. 크래커는 물론 확인 단계를 건너 뛰도록 코드를 변경할 수 있지만 암호화 알고리즘이 도움이되지 않습니다.

서버 측 유효성 검사를 수행하는 경우 SHA-256 기반 HMAC를 선택합니다.

10

권하고 싶습니다. 키 보안에 너무 많은 시간을 투자하지 마십시오. 바이트 컴파일 된 언어를 사용하면 디 컴파일이 매우 쉽고 응용 프로그램에서 유효성 검사 단계를 건너 뛰게됩니다. 키의 안전성에 관계없이 유효성 검사 함수가 항상 true를 반환하면 중요하지 않습니다. 일련 번호 키는 정직한 사람들을 정직하게 유지합니다.

+0

Ha, ha, ha, "*** 아주 쉽게 ** 디 컴파일 만하면 응용 프로그램이 유효성 검사 단계를 건너 뜁니다 *." 매우 쉽기 때문에 HP Loadrunner의 최신 버전 또는 [Burp Suite] (https://portswigger.net/burp/download.html)의 최신 버전을 해독하고 ** 매우 쉽다는 것을 * 표시하십시오. * 이렇게하려면. 예를 들어 [Burp Suite의 (아주) 오래된 버전에 대한 것] (http://blog.nibblesec.org/2013/01/anti-debugging-techniques-and-burpsuite)과 같은 증거로 블로그 포스트가 충분할 것입니다. .html). ** 진짜 ** 문제는 얼마나 많은 귀중한 프로그램을 리버스 엔지니어링 했습니까? – Pacerier

+0

"* 시리얼 키는 정직한 사람들을 정직하게합니다. *"** 틀린 **. 정직한 사람은 정직하기 위해 시리얼 키가 필요하지 않습니다. msgbox는 "나에게 먼저 돈을 지불하지 않으면이 기능을 사용하지 마십시오."와 같이 충분할 것입니다. ** 시리얼 키는 부정직 한 사람들을 정직하게 유지합니다. ** 부정직하지만 값 싸고 *. [보안은 경제 문제입니다] (https://www.google.com/search?q=economics+of+security) 먼저 기술 문제가 발생합니다. – Pacerier

0

Triple DES 암호화의 예제를 보려면 데이터베이스의 데이터 암호화에 대해 my blog post을 살펴보십시오.

블로그 게시물에는 비디오와 소스 코드가 포함되어 있습니다.

데이터베이스의 문자열 열을 암호화하는 데 초점을 맞추지 만 라이센스 필드와 함께 작동하도록 확실히 수정할 수 있습니다.

소스 코드는 C#로 작성되었으며 Triple DES 알고리즘을 사용합니다.
없음 1 :

1

당신은 4 일을 할 필요가 - MD5 문맥 encryptedly
를 초기화해야 - 체크섬에게 (사용자 정의 MD5 컨텍스트와 MD5) 응용 프로그램을
은 전년도 공개/개인 키 암호화 체크섬을 비교
없음 2 : 체크섬 실행중인 응용 프로그램의 텍스트 세그먼트
없음 3 : "잘못된 키"또는 "키 확인"

처럼, 어떤 중요한 문자열을 암호화 : 라이센스
없음 4를 사용하여 4096 비트 RSA 개인 - 공개 키 암호화
+0

MD5는 깨진 해시 알고리즘이므로 사용하면 안됩니다. – Nayef

3

라이센스 키는 암호화에 그다지 관심이 없지만 서명 할 때 사용합니다. 서명을하면 만료일 및 활성화 된 기능 목록이 으로 바뀌지 않았는지 유효성을 검사 할 수 있습니다..최종 사용자로부터 라이센스를 숨김으로써 완화하려는 위협이 없기 때문에 라이센스 키를 숨길 필요가 없습니다 (암호화).

암호화 서명은 라이센스를 해시 한 다음 개인 키로 해시를 암호화하여 수행됩니다. 누구나 해당 공개 키를 사용하여 해시를 해독 할 수 있기 때문에 누구나 라이센스가 변경되었는지 확인할 수 있습니다.

서명 및 확인을위한 기본 CryptoAPI 기능은 CryptSignHashCryptVerifySignature입니다 (Example C Program: Signing a Hash and Verifying the Hash Signature 참조).

.Net Framework 동등 물은 RSAPKCS1SignatureFormatterRSAPKCS1SignatureDeformatter 클래스입니다.

관련 문제