문제

크래킹, 해킹 등으로부터 소프트웨어를 어떻게 보호하는지 궁금합니다.

일련번호 확인 기능을 사용하시나요?하드웨어 키?

타사 솔루션을 사용하시나요?

라이센스 문제를 어떻게 해결하시나요?(예:유동 라이센스 관리)

편집하다:저는 오픈 소스를 말하는 것이 아니라 엄밀히 말하면 상업용 소프트웨어 배포를 말하는 것입니다.

도움이 되었습니까?

해결책

아주 아주 많은 보호 기능을 사용할 수 있습니다.핵심은 다음과 같습니다.

  • 타겟 고객을 평가하고 그들이 무엇을 기꺼이 받아들일 것인지 평가합니다.
  • 무료로 플레이하기를 원하는 청중의 욕구 이해하기
  • 누군가가 귀하의 보호를 깨뜨리기 위해 기꺼이 지불할 금액을 평가합니다.
  • 대부분의 사람들이 결제를 회피하는 것을 방지하고 소프트웨어를 사용하는 사람들을 괴롭히지 않을 만큼 충분한 보호를 적용합니다.

깨지지 않는 것은 없습니다. 따라서 감당할 수 있는 최고의(최악의) 보호 장치를 선택하는 것보다 이러한 사항을 측정하고 좋은 보호 장치를 선택하는 것이 더 중요합니다.

  • 간단한 등록 코드(온라인으로 한 번 확인).
  • 취소 가능한 키를 사용한 간단한 등록, 온라인에서 자주 확인됩니다.
  • 암호화된 키는 프로그램 알고리즘의 일부를 보유합니다(검사를 건너뛸 수는 없습니다. 프로그램이 작동하려면 실행해야 함).
  • 하드웨어 키(공개/개인 키 암호화)
  • 하드웨어 키(키에서 실행되는 프로그램 알고리즘의 일부 포함)
  • 웹 서비스는 중요한 코드를 실행합니다(해커는 이를 볼 수 없음).

그리고 위의 변형.

-아담

다른 팁

어떤 경로를 택하든 공정한 가격을 청구하고 쉽게 활성화할 수 있으며 무료로 사소한 업데이트를 제공하고 소프트웨어를 비활성화하지 마십시오.사용자를 존중한다면 사용자는 그에 대한 보상을 받을 것입니다.그럼에도 불구하고, 당신이 무엇을 하든 일부 사람들은 결국 그것을 불법 복제하게 될 것입니다.

하지 않다.

해적은 해적이 될 것입니다.어떤 해결책을 생각해내더라도 깨질 수 있고 깨질 것입니다.

반면에 실제 유료 고객은 쓰레기로 인해 불편을 겪고 있는 고객입니다.

훔치는 것보다 사는 것을 더 쉽게 만드십시오.복사 방지 장치를 많이 설치하면 실제 거래를 소유하는 가치가 매우 낮아집니다.

간단한 활성화 키를 사용하고 확신하다 고객이 할 수 있는 언제나 활성화 키를 얻거나 소프트웨어를 분실한 경우 소프트웨어를 다시 다운로드하십시오.

모든 복사 방지(멀티플레이어 게임, 은행에 연결되는 금융 소프트웨어 등 온라인 전용 구성 요소 제외)는 무효화될 것이라고 가정할 수 있습니다.최소한 소프트웨어를 불법적으로 다운로드하는 것이 구입하는 것보다 약간 더 어렵기를 원합니다.

한 번도 열어본 적이 없는 PC 게임이 있습니다. 복사 방지 정크가 너무 많아서 가짜 버전을 다운로드하는 것이 실제로 더 쉽기 때문입니다.

소프트웨어 보호는 그만한 가치가 없습니다. 소프트웨어에 대한 수요가 있는 경우 ~ 할 것이다 무슨 일이 있어도 패배합니다.

즉, 하드웨어 보호가 제대로 작동할 수 있습니다.잘 작동할 수 있는 방법의 예는 다음과 같습니다.소프트웨어의 (상당히) 간단하지만 필요한 구성 요소를 찾아 Verilog/VHDL에서 구현하십시오.공개-개인 키 쌍을 생성하고 챌린지 문자열을 가져와 개인 키로 암호화하는 웹 서비스를 만듭니다.그런 다음 공개 키를 포함하고 임의의 챌린지 문자열을 생성하는 USB 동글을 만듭니다.소프트웨어는 USB 동글에 챌린지 문자열을 요청하고 암호화를 위해 이를 서버로 보내야 합니다.그런 다음 소프트웨어는 이를 동글로 보냅니다.동글은 공개 키로 암호화된 챌린지 문자열의 유효성을 검사하고 '활성화' 모드로 들어갑니다.그러면 소프트웨어가 HDL에 작성한 작업을 수행해야 할 때마다 동글을 호출합니다.이렇게 하면 소프트웨어를 불법 복제하려는 사람은 누구나 작업이 무엇인지 파악하고 이를 다시 구현해야 합니다. 이는 순수한 소프트웨어 보호 기능을 무력화하는 것보다 훨씬 어렵습니다.

편집하다:방금 검증 내용 중 일부가 원래의 상태와 반대라는 것을 깨달았지만 아이디어가 실현될 것이라고 확신합니다.

Microsoft 소프트웨어 라이센스 체계는 소규모 기업에게는 엄청나게 비쌉니다.직접 설치하려는 경우 서버 비용은 약 $12,000입니다.심심한 마음에는 추천하지 않습니다.

우리는 실제로 방금 구현했습니다. 인텔리락 우리 제품에서.이를 통해 라이센스를 얼마나 엄격하게 할지에 대한 모든 결정을 내릴 수 있으며 비용면에서도 매우 효과적입니다.또한 난독화, 컴파일러 방지 등을 수행합니다.

제가 본 중소기업이 사용하는 또 다른 좋은 솔루션은 다음과 같습니다. 솔로서버.이는 전자상거래 및 라이센스 제어 시스템에 더 가깝습니다.어쩌면 조금 너무 복잡할 정도로 매우 구성 가능합니다.하지만 제가 들은 바로는 아주 좋은 일을 하고 있습니다.

나는 또한 데사웨어 라이센스 과거의 닷넷 시스템.위의 두 시스템에 비해 매우 가벼운 시스템입니다.암호학적으로 건전한 측면에서 매우 우수한 라이센스 제어 시스템입니다.그러나 이는 앱이 실제로 사용할 거의 모든 것을 구현해야 하는 매우 낮은 수준의 API입니다.

디지털 "권리" 관리는 업계에서 가장 큰 단일 소프트웨어 제품입니다.고전적인 암호화에서 페이지를 빌리기 위한 일반적인 시나리오는 Alice가 Charlie가 읽을 수 없는 상태에서 Bob에게 메시지를 받고 싶어하는 것입니다.DRM은 응용 프로그램에서 Bob과 Charlie가 같은 사람이기 때문에 작동하지 않습니다!

역 의문을 제기하는 것이 더 나을 것입니다. "사람들이 소프트웨어를 훔치는 대신 내 소프트웨어를 구매하게하는 방법은 무엇입니까?"입니다. 그리고 그것은 매우 광범위한 질문입니다.하지만 일반적으로 연구는 조사부터 시작됩니다.판매하려는 소프트웨어 유형을 누가 구매하는지 파악한 다음 해당 사람들의 관심을 끄는 소프트웨어를 생산합니다.

이에 대한 추가 문제는 업데이트/추가 기능을 합법적인 복사본으로만 제한하는 것입니다.이는 구매 거래 중에 받은 주문 코드만큼 간단한 것일 수 있습니다.

Stardock 소프트웨어, WindowBlinds 및 Sins of a Solar Empire와 같은 게임 제조업체를 확인해 보세요. 후자는 DRM이 없으며 200만 달러 예산으로 상당한 수익을 올렸습니다.

프로세서 ID를 사용하여 "활성화 키"를 생성하는 등 여러 가지 방법이 있습니다.

결론은 누군가가 그것을 충분히 원할 경우 당신이 가지고 있는 모든 보호 기능을 리버스 엔지니어링할 것이라는 것입니다.

가장 안전한 방법은 런타임 시 온라인 확인이나 하드웨어 해시를 사용하는 것입니다.

행운을 빌어요!

약간의 시간이 주어지면 소프트웨어는 항상 크랙될 것입니다.이를 확인하기 위해 잘 알려진 소프트웨어의 크랙 버전을 검색할 수 있습니다.하지만 소프트웨어에 어떤 형태로든 보호 기능을 추가하는 것은 여전히 ​​가치가 있습니다.

부정직한 사람들은 결코 귀하의 소프트웨어에 비용을 지불하지 않으며 항상 크랙된 버전을 찾거나 사용하지 않는다는 점을 기억하십시오.매우 정직한 사람들은 라이선스 체계 없이도 항상 규칙을 고수합니다. 왜냐하면 그런 사람이기 때문입니다.그러나 대부분의 사람들은 이 두 극단 사이에 있습니다.

몇 가지 간단한 보호 체계를 추가하는 것은 중간에 있는 대부분의 사람들이 정직한 방식으로 행동하도록 만드는 좋은 방법입니다.이는 소프트웨어가 무료가 아니며 적절한 라이선스 수에 대해 비용을 지불해야 한다는 점을 기억하도록 유도하는 방법입니다.실제로 많은 사람들이 이에 반응합니다.관리자가 자신의 돈을 쓰지 않기 때문에 기업은 규칙을 준수하는 데 특히 능숙합니다.소비자는 자신의 돈이기 때문에 규칙을 지킬 가능성이 적습니다.

그러나 최근 다음과 같은 릴리스에 대한 경험이 있습니다. 아포 ~에서 전자 예술 라이센스 측면에서 훨씬 더 멀리 갈 수 있음을 보여줍니다.합법적인 사람들도 끊임없이 검증을 받기 때문에 범죄자처럼 느껴지게 하면 그들은 반항하기 시작합니다.따라서 사람들이 부정직하게 행동하고 있음을 상기시키기 위해 몇 가지 간단한 라이센스를 추가하지만 그 이상으로는 매출이 증가하지 않을 것입니다.

월드 오브 워크래프트(WoW)와 같은 온라인 전용 게임이 만들어졌기 때문에 모든 사람이 매번 서버에 연결해야 하므로 계정을 지속적으로 확인할 수 있습니다.콩에는 다른 방법이 작동하지 않습니다.

귀하가 찾고 있는 정확한 답변은 아니지만 적극적으로 질문한 게임 개발자의 불법 복제에 대한 훌륭한 리소스입니다. 해적 그들이 왜 그런 짓을 하는지에 대해.그리고 선택한 답변의 첫 번째 부분과 관련이 있습니다.

준비하세요 해적과 대화하기.

일반적으로 종종 혼동되는 두 가지 시스템이 있습니다.

  • 라이센스 또는 활성화 추적, 합법적인 사용
  • 불법사용을 방지하는 보안

라이선스를 받으려면 상용 패키지를 사용하세요. FlexLM 많은 회사들이 라이센스에 막대한 돈을 투자하여 보안도 확보할 수 있다고 생각합니다. 이는 상용 패키지의 키 생성기가 엄청나게 풍부하기 때문에 흔히 저지르는 실수입니다.

나는 사용량에 따라 합법적으로 비용을 지불하는 기업에 판매하는 경우에만 라이센스를 권장합니다. 그렇지 않으면 아마도 그 가치보다 더 많은 노력이 필요할 것입니다.

귀하의 제품이 성공하면 결국 모든 라이센스 및 보안 조치가 위반된다는 점을 기억하십시오.그러므로 그것이 실제로 노력할 가치가 있는지 지금 결정하십시오.

우리는 몇 년 전에 FlexLM의 클린룸 복제본을 구현했으며 바이너리 공격에 대비하여 애플리케이션을 강화해야 했습니다. 긴 프로세스로 인해 릴리스할 때마다 다시 방문해야 했습니다.또한 판매하는 글로벌 시장이 어디인지 또는 주요 고객 기반이 어디에 있는지에 따라 무엇을 해야 하는지에 따라 달라집니다.

내 답변 중 다른 것을 확인하세요. DLL 보안.

이미 지적했듯이 소프트웨어 보호는 절대 완벽하다고 보장되지 않습니다.사용하려는 대상은 주로 대상 고객에 따라 다릅니다.예를 들어, 게임은 영원히 보호할 수 있는 것이 아닙니다.반면에 서버 소프트웨어는 여러 가지 이유로(제품 침투 및 법적 책임;대기업은 해적판 소프트웨어에 대해 책임을 지는 것을 원하지 않으며, 해적들은 충분히 수요가 많은 것들에만 신경을 씁니다.솔직히 말해서, 주목할만한 게임의 경우 가장 좋은 해결책은 아마도 토렌트를 직접 시드하고(은밀하게!) 어떤 방식으로든 수정하는 것입니다(예를 들어, 플레이한 지 2주 후에는 다음과 같은 메시지가 팝업으로 표시됩니다). 합법적인 사본을 구매하여 개발자를 지원하는 것을 고려해 보십시오).

보호 조치를 취하는 경우 두 가지 사항을 염두에 두십시오.첫째, 가격이 낮아지면 사람들이 구매 가격을 지불하려는 경향이 높아지므로 복사 방지 기능이 보완될 것입니다.둘째, 보호 기능이 사용자를 방해해서는 안 됩니다. 최근 사례는 Spore를 참조하세요.

DRM, DRM 저 - 자신의 프로젝트에 DRM을 강요하는 퍼블리셔들은 수익성이 좋기 때문에 그렇게 하는 것입니다.그들의 경제학자들은 우리 중 누구도 볼 수 없는 데이터를 바탕으로 이 결론을 내리고 있습니다."DRM은 사악하다"는 트롤들은 조금 더 멀리 나아가고 있습니다.

가시성이 낮은 제품의 경우 간단한 인터넷 활성화만으로 무분별한 복사가 중단됩니다.다른 복사는 귀하의 수익에 미미할 가능성이 높습니다.

불법배포를 방지하는 것은 사실상 불가능합니다.그냥 RIAA에 물어보세요.디지털 콘텐츠는 복사만 하면 됩니다.아날로그 콘텐츠를 디지털화한 후 복사할 수 있습니다.

무단 승인을 방지하는 데 노력을 집중해야 합니다. 실행.다른 사람의 컴퓨터에서 코드가 실행되는 것을 완전히 방지하는 것은 불가능하지만, 소프트웨어를 불법 복제하는 것보다 구입하는 것이 더 쉬워질 정도로 기준을 충분히 높이려면 특정 조치를 취할 수 있습니다.

기사를 살펴보세요 소프트웨어 보호 및 라이선스 개발 라이선스를 염두에 두고 애플리케이션을 개발하는 최선의 방법을 설명합니다.

의무 면책조항 및 플러그:내가 공동 설립한 회사는 .NET용 OffByZero Cobalt 소프트웨어 라이선스 솔루션.

해적들이 그것을 사용하게 놔두면 어쨌든 그것을 사지 않을 것이고 그것을 살 수도 있는 친구들에게 보여줄 것이라는 생각의 문제는 두 가지입니다.

  1. 타사 서비스를 사용하는 소프트웨어의 경우 불법 복제된 사본은 귀중한 대역폭/리소스를 사용하여 합법적인 사용자에게 더 나쁜 경험을 제공하고 내 소프트웨어를 실제보다 더 인기 있게 보이게 하며 타사 서비스에서 서비스에 대해 더 많은 비용을 지불하도록 요구합니다. 사용되는 대역폭의

  2. 많은 캐주얼한 사람들은 SW를 스스로 크랙하는 것을 꿈도 꾸지 않을 것입니다. 그러나 Piratebay와 같은 사이트에 쉽게 평가할 수 있는 크랙이 있으면 그들은 그것을 사용할 것이고, 그렇지 않다면 그것을 구입할 것입니다.

일단 발견된 불법 복제 소프트웨어를 비활성화하지 않는다는 이 개념도 이상해 보입니다. 왜 누군가가 사용해서는 안 되는 소프트웨어를 계속 사용하도록 해야 하는지 이해가 되지 않습니다. 이것이 해적의 견해/희망일 뿐이라고 생각합니다.

또한 프로그램을 해독하기 어렵게 만드는 것도 중요하지만 합법적인 복사본이 공유되는 것을 방지해야 합니다. 그렇지 않으면 누군가가 단순히 복사본 한 개를 구입한 다음
토렌트 사이트를 통해 수천 명의 다른 사람들과 공유하세요.라이센스에 이름/이메일 주소가 포함되어 있다는 사실만으로는 모든 사람이 이 작업을 수행하지 못하도록 설득하기에 충분하지 않으며 문제가 발생하려면 실제로 하나만 있으면 됩니다.

이를 방지할 수 있는 유일한 방법은 다음 중 하나입니다.

  1. 매번 프로그램 시작 시 서버를 확인하고 라이선스를 잠그고, 프로그램 종료 시 라이선스를 해제합니다.첫 번째 클라이언트에 라이센스가 있는 동안 다른 클라이언트가 동일한 라이센스로 시작하면 해당 클라이언트가 거부됩니다.이 방법은 둘 이상의 사용자가 라이센스를 사용하는 것을 방지하지는 않지만, 둘 이상의 사용자가 동시에 사용하는 것을 방지합니다. 이는 충분합니다.또한 합법적인 사용자가 자신의 컴퓨터에 라이센스를 전송하여 더 나은 경험을 제공할 수 있습니다.

  2. 첫 번째 클라이언트 시작 시 클라이언트는 서버에 라이센스를 보내고 서버는 이를 확인하여 클라이언트 소프트웨어 내에 일부 플래그가 설정됩니다.동일한 라이센스를 가진 다른 클라이언트의 추가 요청은 거부됩니다.이 접근 방식의 문제점은 원래 클라이언트가 소프트웨어를 다시 설치하거나 다른 컴퓨터를 사용하려는 경우 문제가 발생할 수 있다는 것입니다.

어떤 종류의 생체 지문 인증을 사용하더라도 누군가는 이를 해독할 수 있는 방법을 찾아낼 것입니다.실제로는 실용적인 방법이 없습니다.소프트웨어를 해킹 방지하려고 노력하는 대신 추가 복사 방지 기능을 추가하여 얼마나 많은 추가 수익을 얻을 수 있는지 생각해 보세요.이를 구현하는 데 소요되는 시간과 비용.어떤 시점에서는 덜 엄격한 복사 방지 체계를 사용하는 것이 더 저렴해집니다.

이는 귀하의 소프트웨어 제품이 정확히 무엇인지에 따라 다르지만, 한 가지 가능성은 프로그램의 "귀중한" 부분을 소프트웨어 밖으로 옮겨 귀하의 독점적인 통제 하에 두는 것입니다.소프트웨어에 대해 적당한 비용을 청구하고(주로 인쇄 및 배포 비용을 충당하기 위해) 외부 구성 요소에서 수익을 창출합니다.예를 들어, 저렴한 가격으로 판매되거나(또는 다른 제품과 함께 무료로 번들로 제공) 바이러스 정의 업데이트 서비스에 대한 구독을 판매하는 바이러스 백신 프로그램이 있습니다.해당 모델을 사용하면 업데이트 서비스를 구독하는 불법 복제로 인해 재정적 손실이 크게 발생하지 않습니다."클라우드에서" 애플리케이션의 인기가 높아짐에 따라 이 방법을 구현하는 것이 점점 더 쉬워지고 있습니다.클라우드에서 애플리케이션을 호스팅하고 사용자에게 클라우드 액세스 비용을 청구합니다.이는 누군가가 서비스의 필요성을 없애기 위해 자신의 클라우드를 다시 구현하는 것을 막지는 못하지만, 그렇게 하는 데 드는 시간과 노력이 이점보다 클 가능성이 높습니다(가격 모델을 합리적으로 유지하는 경우).

소비자에게 판매하려는 소프트웨어를 보호하는 데 관심이 있다면 다양한 라이센스 키 생성 라이브러리(라이센스 키 생성에 대한 Google 검색)를 추천합니다.일반적으로 사용자는 이메일 주소나 이름과 같은 일종의 시드를 제공해야 하며 등록 코드를 돌려받습니다.

몇몇 회사에서는 귀하의 소프트웨어를 호스팅 및 배포하거나 통합할 수 있는 완전한 설치/구매 응용 프로그램을 제공하고 추가 비용 없이 자동으로 이를 수행합니다.

저는 소비자에게 소프트웨어를 판매했는데 이것이 비용/사용 용이성/보호 사이에서 적절한 균형을 이루고 있다고 생각합니다.

간단하고 가장 좋은 해결책은 미리 충전하는 것입니다.귀하와 고객 모두에게 적합한 가격을 설정하세요.

유료 고객에게 이미 비용을 지불한 후에 고객에게 비용을 지불하고 있음을 증명하도록 요구하는 것은 고객을 화나게 할 뿐입니다.소프트웨어가 실행되지 않도록 코드를 구현하는 것은 시간과 비용을 낭비하고 합법적인 고객에게 버그와 성가심을 불러일으킵니다.그 시간을 더 나은 제품을 만드는 데 투자하는 것이 더 나을 것입니다.

많은 게임 등이 첫 번째 버전을 "보호"한 다음 실제 고객과의 호환성 문제로 인해 첫 번째 패치에서 보호 기능을 삭제합니다.어느 정도의 보호만 고집한다면 무리한 전략은 아니다.

거의 모든 복사 방지는 효과가 없으며 사용성에도 좋지 않습니다.고객의 컴퓨터에 루트킷을 설치하는 것과 같은 일부 작업은 완전히 비윤리적입니다.

제품의 일부를 연결 및 인증이 필요한 온라인 구성 요소로 만드십시오.여기 몇 가지 예가 있어요.

  • 온라인 게임
  • 바이러스 방지
  • 스팸 방지
  • 노트북 추적 소프트웨어

이 패러다임은 지금까지만 적용되며 일부 소비자를 끌 수 있습니다.

나는 소프트웨어 기반 복제 방지 체계가 숙련된 소프트웨어 불법 복제를 막을 수 없다는 많은 포스터에 동의합니다.상용 .NET 기반 소프트웨어의 경우 Microsoft SLP(소프트웨어 라이선스 보호)는 매우 합리적인 가격의 솔루션입니다.시간 제한 및 부동 라이센스를 지원합니다.가격은 월 10달러 + 활성화당 5달러부터 시작하며 보호 구성 요소는 광고된 대로 작동하는 것 같습니다.하지만 상당히 새로운 제품이므로 구매자는 주의해야 합니다.

나는 간단한 활성화 키를 제안합니다(비록 그것이 망가질 수 있다는 것을 알고 있더라도). 소프트웨어가 사용자의 방해가 되거나 사용자가 단순히 밀어내는 것을 원하지 않을 것입니다.

그들이 소프트웨어를 다시 다운로드할 수 있는지 확인하십시오. 나는 그들이 지불한 후에만 로그인하고 소프트웨어를 다운로드할 수 있는 웹 페이지를 제안합니다. (그리고 그렇습니다. 그들은 단 한 번의 질문도 없이 원하는 만큼 직접 다운로드할 수 있어야 합니다. 귀하의 입장에서 이유에 대해).

무엇보다도 유료 사용자를 밀어붙이세요. 합법적인 사용자인데 범죄자로 기소되는 것보다 더 짜증나는 일은 없습니다(DVD의 불법 복제 방지 경고는 누구에게나 있습니다).

온라인일 때 서버에 대해 키를 확인하는 서비스를 추가할 수 있으며, 두 개의 서로 다른 IP가 동일한 키를 사용하는 경우 다른 라이센스를 구입하라는 제안 팝업이 표시됩니다.

하지만 비활성화하지 마세요. 사용자가 친구에게 소프트웨어를 보여주면 기뻐할 수도 있습니다!!!!

소프트웨어 개발자라면 가능한 솔루션 중 하나는 메타데이터를 제품에 직접 삽입하는 것입니다.theredsunrise에서 인스턴스 파괴 보안 도구를 확인해 보세요.

우리는 우리가 판매하고 있는 자체 라이선스 시스템(라이센스 관리 도구)을 사용하여 상용 소프트웨어 라이선스를 부여합니다.일반적으로 구독 라이센스를 판매하지만 원할 경우 사용량에 따라 판매할 수도 있습니다.지금까지는 안전했습니다.www.agilis-sw.com

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