2017-02-22 2 views
0

소프트웨어 제품을 잠그는 방법을 찾아야하므로 구입 한 고객 만 사용할 수 있습니다. 내 "CD 키"기능을 구현할 생각이었습니다. 자체 키 알고리즘을 사용하여 WPF 응용 프로그램 보호


작동 원리

: 는 그 키를 생성하는 경우에만 사용되며, 별도의 프로그램이 있습니다.

프로그램은 판매되는 소프트웨어와 동일한 알고리즘을 사용합니다. 열쇠는 프로그램과 함께 배송되며 (설명서를 말하면됩니다) 한 번 프로그램에 입력됩니다. 그 후 사용자는 다시 입력 할 필요없이 자유롭게 사용할 수 있습니다 (재설치 할 때까지).

이것은 꽤 간단하고 나을 수 있지만, 유일한 문제는 다른 장치에서 키를 재사용 할 수 있다는 것입니다. 따라서 키를 온라인으로 사용하고 사용하지 않는 것으로 표시하는 방식을 구현해야합니다. 프로그램이 제거됩니다.

답변

1

내가 여기 대신에 https://softwareengineering.stackexchange.com/에 물어보십시오 것입니다 -하지만 난 당신이 (비) - 상업 제품으로보고 조언을 것/API의는 바퀴를 재발 명 대신에 (예를 들어, http://www.ssware.com/cryptolicensing/cryptolicensing_net.htm) 당신을 도울 수 있습니다. 핵심 비즈니스가 아니기 때문에 다른 사람들이 제공 할 수있는 것보다 덜 최적의 솔루션 (따라서 약하고 누수 된 솔루션)을 가질 수 있습니다. (CodeProject의에)

무료

지불에 사용하는


PS : 당신이 당신의 자신의 라이센싱 솔루션을 구현 시작한다면, 발전기뿐만 아니라 배포 된 코드를 모두에서 동일한 알고리즘을 구현 들러주세요 - 리버스 엔지니어가 너무 쉽습니다. 예를 들어 공공/개인 키 메커니즘을 지원하는 몇 가지 수학 공식을 사용하거나이 도메인에 특화된 라이브러리/API에 의존하려고합니다.

+0

Allright, thanks – someone1

+0

@ someone1이 QLicense 제품을 확인했을 수 있습니다. 온라인에서 "키"등록에 대해 - 키가 발행되면 특정 사용자에게 잠그고 웹 서비스를 구축합니다. 사용자는 자신의 소프트웨어를 등록 할 수 있습니까? 하지만 내가 말했듯이 API 링크 (및 Google 기타)에서 더 방수 솔루션을 제공하는지 확인해야합니다. –

+0

좋습니다, 감사합니다 :) – someone1

1

문제 :

코드를 역 설계 할 수 있기 때문에, 키 저장을위한 안전한 솔루션을 제공하는 실제 방법이 없습니다. 응용 프로그램에 하드 코딩 된 모든 변수는 동일한 응용 프로그램을 사용하여 암호화 된 별도의 파일로 안전하지 않습니다. 너는 공개적으로 유효한 것과 같이 그들을 대우 할 필요가있다.

서버 키 인증 방식을 다시 제공하더라도 두 번째입니다. 코드를 리버스 엔지니어링 할 수 있습니다. 해커는 인증 부분을 제거하고 DRM을 무료로 응용 프로그램을 다시 빌드합니다.

셋째, 전체 코드가 암호화 되어도 디코딩하고 인증을 제거하는 방법은 여전히 ​​있습니다 (최신 결함보기).

해킹에 참여할 사람의 수에 따라 코드 암호 및 서버 측 키 인증을 연결하는 경우 제한된 시간이 지연 될 수 있습니다.

솔루션 :은 해킹이 불가능한 것으로 응용 프로그램을 방지하기 위해 100 개 % 안전한 방법이 있습니다

, 당신은 100 % 웹 기반 확인해야합니다. C#을 서버 엔진으로 사용하려는 경우 ASP.Net과 같은 솔루션이 있습니다.

+0

매우 사실입니다! 데스크톱 경로로 이동할 필요가 없다면 웹 기반으로 만드는 것이 가장 좋습니다. 또는 서버에 연결된 결과와 데이터 및 계산을 얻기 위해 서버에 연결해야하는 씬 클라이언트 일 수도 있습니다. 따라서 비즈니스 논리는 모든 시스템에 분산되어 있지 않습니다. –