크래킹, 해킹 등으로부터 소프트웨어를 보호하는 방법이 궁금합니다.
일련 번호 확인을 사용합니까? 하드웨어 키?
타사 솔루션을 사용하십니까?
라이선스 문제를 어떻게 해결합니까? (예 : 유동 라이센스 관리)
편집 : 나는 오픈 소스를 말하는 것이 아니라 엄격하게 상용 소프트웨어 배포를 말하고 있습니다 ...
크래킹, 해킹 등으로부터 소프트웨어를 보호하는 방법이 궁금합니다.
일련 번호 확인을 사용합니까? 하드웨어 키?
타사 솔루션을 사용하십니까?
라이선스 문제를 어떻게 해결합니까? (예 : 유동 라이센스 관리)
편집 : 나는 오픈 소스를 말하는 것이 아니라 엄격하게 상용 소프트웨어 배포를 말하고 있습니다 ...
답변:
많은, 많은, 많은 보호가 가능합니다. 핵심은 다음과 같습니다.
깨지지 않는 것은 없습니다. 따라서 여러분이 감당할 수있는 최상의 (최악의) 보호를 단순히 두드리는 것보다 이러한 것들을 측정하고 좋은 보호를 선택하는 것이 더 중요합니다.
그리고 위의 변형.
어떤 경로를 이용하든 공정한 가격을 청구하고 쉽게 활성화하고 사소한 업데이트를 무료로 제공하고 소프트웨어를 비활성화하지 마십시오. 사용자를 존중하면 보상을받을 것입니다. 그럼에도 불구하고 어떤 사람들은 당신이 무엇을하든 그것을 불법 복제하게 될 것입니다.
하지마.
해적은 해적입니다. 당신이 어떤 해결책을 제시하든, 그것은 깨질 수 있고 깨질 것입니다.
반면에 당신의 실제 유료 고객은 쓰레기로 인해 불편을 겪고있는 사람들입니다.
훔치는 것보다 구매하기가 더 쉽습니다. 복사 방지를 쌓아두면 실제 거래의 가치가 매우 낮아집니다.
간단한 활성화 키를 사용하여 보장 그들이 할 수있는 고객을 항상 그들도 그들의를 분실 한 경우 정품 인증 키 또는 다시 다운로드 소프트웨어를 얻을.
모든 복제 방지 (멀티 플레이어 게임 및 은행에 연결되는 금융 소프트웨어와 같은 온라인 전용 구성 요소 제외)는 무력화됩니다. 소프트웨어를 불법으로 다운로드하는 것이 적어도 구입하는 것보다 약간 더 어렵게하고 싶습니다.
내가 열어 본 적이없는 PC 게임이 있는데, 복사 방지 정크가 너무 많아서 가짜 버전을 다운로드하는 것이 실제로 더 쉽기 때문입니다.
소프트웨어 보호는 돈의 가치가 없습니다. 소프트웨어가 수요가 많으면 어떤 일 이 있어도 패배 할 것 입니다.
즉, 하드웨어 보호가 잘 작동 할 수 있습니다. 잘 작동 할 수있는 한 가지 예는 다음과 같습니다. (상당히) 간단하지만 필요한 소프트웨어 구성 요소를 찾아 Verilog / VHDL에서 구현합니다. 공개-개인 키 쌍을 생성하고 챌린지 문자열을 가져와 개인 키로 암호화하는 웹 서비스를 만듭니다. 그런 다음 공개 키가 포함 된 USB 동글을 만들고 무작위 챌린지 문자열을 생성합니다. 소프트웨어는 USB 동글에 챌린지 문자열을 요청하고 암호화를 위해 서버로 전송해야합니다. 그런 다음 소프트웨어가이를 동글로 보냅니다. 동글은 공개 키를 사용하여 암호화 된 챌린지 문자열의 유효성을 검사하고 '활성화'모드로 들어갑니다. 그런 다음 소프트웨어는 HDL로 작성한 작업을 수행해야 할 때마다 동글을 호출합니다.
편집 : 확인 항목 중 일부가 있어야하는 것과 반대라는 것을 깨달았지만 아이디어가 떠오를 것이라고 확신합니다.
마이크로 소프트 소프트웨어 라이선스 제도는 소규모 기업에게는 엄청난 비용이 듭니다. 직접 설정하려는 경우 서버 비용은 약 $ 12,000입니다. 나는 마음의 가식을 위해 그것을 권장하지 않습니다.
우리는 실제로 제품에 Intellilock 을 구현 했습니다 . 라이선스를 얼마나 엄격하게 할 것인지에 대한 모든 결정을 내릴 수 있으며 비용도 매우 효율적입니다. 또한 난독 화, 컴파일러 방지 등을 수행합니다.
중소기업에서 사용하는 또 다른 좋은 솔루션은 SoloServer 입니다. 전자 상거래 및 라이센스 제어 시스템에 가깝습니다. 너무 복잡 할 수있을 정도로 매우 구성 할 수 있습니다. 그러나 그것은 내가들은 것에서 아주 좋은 일을합니다.
나는 또한 과거에 닷넷에 Desaware 라이센스 시스템을 사용했습니다 . 위의 두 가지에 비해 매우 가벼운 시스템입니다. 암호 학적으로 건전한면에서 매우 우수한 라이선스 제어 시스템입니다. 하지만 앱이 실제로 사용할 거의 모든 것을 구현해야하는 매우 낮은 수준의 API입니다.
디지털 "권리"관리는 업계에서 가장 큰 단일 소프트웨어 스네이크 오일 제품입니다. 고전적인 암호화에서 페이지를 빌리기 위해, 전형적인 시나리오는 Alice가 Charlie가 읽을 수없는 Bob에게 메시지를 받고 싶어하는 것입니다. DRM은 응용 프로그램에서 Bob과 Charlie가 같은 사람이기 때문에 작동하지 않습니다!
"사람들이 내 소프트웨어를 훔치는 대신 구입하게하려면 어떻게해야합니까?"라는 역 질문을하는 것이 좋습니다. 이것은 매우 광범위한 질문입니다. 그러나 일반적으로 연구를 통해 시작됩니다. 판매하려는 소프트웨어 유형을 누가 구매하는지 파악한 다음 그 사람들에게 호소하는 소프트웨어를 생산합니다.
이것에 대한 추가적인 문제는 합법적 인 사본으로 만 업데이트 / 추가 기능을 제한하는 것입니다. 이것은 구매 거래 중에받은 주문 코드처럼 간단 할 수 있습니다.
Stardock 소프트웨어, WindowBlinds 제조업체 및 Sins of a Solar Empire와 같은 게임을 확인하십시오. 후자는 DRM이 없으며 $ 2M 예산에서 상당한 이익을 얻었습니다.
약간의 시간이 주어지면 소프트웨어는 항상 크랙됩니다. 이를 확인하기 위해 잘 알려진 소프트웨어의 크랙 버전을 검색 할 수 있습니다. 그러나 소프트웨어에 어떤 형태의 보호를 추가하는 것은 여전히 가치가 있습니다.
부정직 한 사람들은 절대로 소프트웨어 비용을 지불하지 않으며 항상 크랙 된 버전을 찾아서 사용합니다. 매우 정직한 사람들은 라이센스 체계가 없어도 항상 규칙을 고수 할 것입니다. 그러나 대다수의 사람들은이 두 극단 사이에 있습니다.
간단한 보호 체계를 추가하는 것은 중간에있는 대부분의 사람들이 정직한 방식으로 행동하도록 만드는 좋은 방법입니다. 소프트웨어가 무료가 아니며 적절한 수의 라이선스에 대해 비용을 지불해야한다는 사실을 기억하도록 유도하는 방법입니다. 많은 사람들이 실제로 이에 반응합니다. 기업은 특히 관리자가 자신의 돈을 쓰지 않기 때문에 규칙을 고수하는 데 능숙합니다. 소비자는 자신의 돈이기 때문에 규칙을 고수 할 가능성이 적습니다.
그러나 같은 릴리스와 최근의 경험 포자 에서 일렉트로닉 아츠 는 라이센스 멀리 갈 수 있음을 보여줍니다. 합법적 인 사람들조차도 지속적으로 확인되고 있기 때문에 범죄자처럼 느끼게하면 반란을 일으키기 시작합니다. 따라서 사람들이 부정직하지만 그 이상은 판매를 늘리지 않을 것임을 알리기 위해 간단한 라이선스를 추가하십시오.
월드 오브 워크래프트 (WoW)와 같은 온라인 전용 게임이 만들어졌고 모든 사람이 매번 서버에 연결해야하므로 계정을 지속적으로 확인할 수 있습니다. 콩에는 다른 방법이 없습니다.
찾고있는 답은 정확하지 않지만 해적 에게 적극적으로 질문 한 게임 개발자의 불법 복제에 대한 훌륭한 리소스입니다. 에게 왜 그렇게하는지 입니다. 그리고 선택한 답변의 첫 번째 부분과 관련이 있습니다.
Talking to Pirates 에서 읽어 보세요.
일반적으로 혼동되는 두 가지 시스템이 있습니다.
라이센싱의 경우 상용 패키지 인 FlexLM을 사용하십시오. 하기 위해 많은 회사가 라이센스에 막대한 돈을 투자하여 보안도 확보한다고 생각합니다. 이것은 이러한 상용 패키지에 대한 키 생성기가 풍부합니다.
사용량에 따라 합법적으로 지불하는 기업에 판매하는 경우에만 라이선스를 권장합니다. 그렇지 않으면 그 가치보다 더 많은 노력을 기울일 수 있습니다.
제품이 성공하면 결국 모든 라이선스 및 보안 조치가 위반된다는 점을 기억하십시오. 그러니 정말 노력할만한 가치가 있는지 지금 결정하십시오.
우리는 수년 전에 FlexLM의 클린 룸 클론을 구현했으며 이진 공격의 긴 프로세스에 대해 애플리케이션을 개선해야했으며 매 릴리스마다 다시 방문해야했습니다. 또한 실제로 판매하는 글로벌 시장 또는 수행해야 할 작업에 대한 주요 고객 기반이 어디에 있는지에 따라 다릅니다.
DLL 보안에 대한 다른 답변을 확인하십시오 .
지적했듯이 소프트웨어 보호는 절대로 완벽하다고 보장 할 수 없습니다. 사용하려는 대상은 주로 대상 고객에 따라 다릅니다. 예를 들어 게임은 영원히 보호 할 수있는 것이 아닙니다. 반면에 서버 소프트웨어는 여러 가지 이유로 인터넷에 배포 될 가능성이 훨씬 적습니다 (제품 침투 및 책임이 떠 오릅니다. 대기업은 해적판 소프트웨어에 대한 책임을지지 않습니다. 해적들은 수요가 많은 것들에만 신경을 쓴다.) 솔직히 말해서, 유명한 게임의 경우 가장 좋은 해결책은 토렌트를 직접 (은밀하게!) 시드하고 어떤 방식 으로든 수정하는 것입니다 (예를 들어, 2 주 동안 플레이 한 후 다음과 같은 메시지가 표시되도록하는 것입니다). 합법적 인 사본을 구입하여 개발자를 지원하는 것을 고려하십시오).
보호 조치를 취하는 경우 두 가지를 염두에 두십시오. 첫째, 더 낮은 가격은 사람들이 구매 가격을 지불하는 경향이있게함으로써 복제 방지를 보완 할 것입니다. 둘째, 보호 기능이 사용자를 방해해서는 안됩니다. 최근 예는 Spore를 참조하십시오.
불법 배포는 사실상 막을 수 없습니다. RIAA에게 물어보세요. 디지털 콘텐츠는 복사 만 가능합니다. 아날로그 콘텐츠를 디지털화 한 다음 복사 할 수 있습니다.
무단 실행 을 방지하는 데 노력을 집중해야합니다 . 다른 사람의 컴퓨터에서 코드 실행을 완전히 막을 수는 없지만 소프트웨어를 불법 복제하는 것보다 쉽게 구입할 수 있도록 기준을 충분히 높이기 위해 특정 단계를 수행 할 수 있습니다.
라이선스를 염두에두고 애플리케이션을 개발하는 가장 좋은 방법을 설명하는 소프트웨어 보호 및 라이선스 개발 기사를 살펴보십시오 .
의무 면책 조항 및 플러그 : 제가 공동 설립 한 회사 는 .NET 용 OffByZero Cobalt 소프트웨어 라이선스 솔루션을 생산합니다 .
해적들이 그것을 사용하도록 내버려 두는 문제는 어쨌든 그것을 사지 않을 것이고 그것을 살지도 모르는 친구들을 보여줄 것입니다.
타사 서비스를 사용하는 소프트웨어를 사용하면 불법 복제품이 귀중한 대역폭 / 리소스를 사용하여 합법적 인 사용자에게 더 나쁜 경험을 제공하고 내 sw를 더 인기있게 보이게하고 타사 서비스에서 서비스에 대해 더 많은 비용을 지불하도록 요청합니다. 사용중인 대역폭의
많은 캐주얼 사람들은 sw 자체를 크래킹하는 것을 꿈꾸지 않지만 piratebay와 같은 사이트에 쉽게 평가할 수있는 크랙이 있으면 그것을 사용할 것입니다.
한 번 발견 된 불법 복제 소프트웨어를 비활성화하지 않는다는이 개념도 미친 것처럼 보입니다. 다른 사람이 사용해서는 안되는 소프트웨어를 계속 사용하도록해야하는 이유를 이해하지 못합니다. 이것은 해적의 관점 / 희망일뿐입니다.
또한 프로그램을 크래킹하기 어렵게 만드는 것도 중요하지만 합법적 인 복사본이 공유되는 것을 방지해야합니다. 그렇지 않으면 누군가가 단순히 복사본 하나를 구입 한 다음
토렌트 사이트를 통해 수천 명의 다른 사람들과 공유 할 수 있습니다. 라이센스에 이름 / 이메일 주소가 포함되어 있다는 사실만으로는 모든 사람이이 작업을 수행하는 것을 방해 할 수 없으며 실제로 문제가 발생하는 데는 하나만 필요합니다.
이를 방지 할 수있는 유일한 방법은 다음 중 하나입니다.
매번 프로그램 시작시 서버를 확인하고 라이센스를 잠그고 프로그램 종료시 라이센스를 해제합니다. 첫 번째 클라이언트에 라이선스가있는 동안 다른 클라이언트가 동일한 라이선스로 시작하면 거부됩니다. 이 방법은 한 명 이상의 사용자가 라이선스를 사용하는 것을 막지는 않지만 한 명 이상의 사용자가 동시에 사용하는 것을 방지합니다. 또한 합법적 인 사용자가 더 나은 경험을 제공하는 컴퓨터에서 라이센스를 전송할 수 있습니다.
클라이언트를 처음 시작할 때 클라이언트는 서버에 라이센스를 보내고 서버가이를 확인하여 클라이언트 소프트웨어 내에 일부 플래그가 설정되도록합니다. 동일한 라이센스를 가진 다른 클라이언트의 추가 요청은 거부됩니다. 이 방법의 문제점은 원래 클라이언트가 소프트웨어를 다시 설치하거나 다른 컴퓨터를 사용하려는 경우 문제가 발생한다는 것입니다.
어떤 종류의 생체 인식 지문 인증을 사용하더라도 누군가가 그것을 해독하는 방법을 찾을 것입니다. 그 주위에는 실질적인 방법이 없습니다. 소프트웨어 해킹 방지를 시도하는 대신 추가 복사 방지 기능을 추가하여 추가로 얻을 수있는 수익과이를 구현하는 데 걸리는 시간과 비용에 대해 생각해보십시오. 어느 시점에서는 덜 엄격한 복사 방지 체계를 사용하는 것이 더 저렴 해집니다.
소프트웨어 제품이 정확히 무엇인지에 따라 다르지만 한 가지 가능성은 프로그램의 "가치있는"부분을 소프트웨어에서 제거하고 독점적으로 제어하는 것입니다. 소프트웨어에 대해 적당한 수수료를 부과하고 (대부분 인쇄 및 배포 비용을 충당하기 위해) 외부 구성 요소에서 수익을 창출합니다. 예를 들어 저렴한 가격 (또는 다른 제품과 함께 무료로 번들로 제공)으로 판매되지만 바이러스 정의 업데이트 서비스에 대한 구독을 판매하는 안티 바이러스 프로그램이 있습니다. 이 모델을 사용하면 업데이트 서비스를 구독하는 불법 복제 사본은 많은 재정적 손실을 나타내지 않습니다. "클라우드에서"응용 프로그램의 인기가 증가함에 따라이 방법을 구현하기가 더 쉬워졌습니다. 클라우드에서 애플리케이션을 호스팅하고 사용자에게 클라우드 액세스 요금을 부과합니다. 이것은
간단하고 최상의 솔루션은 선불로 충전하는 것입니다. 당신과 그들에게 맞는 가격을 정하십시오.
유료 고객에게 이미 돈을 지불 한 후 고객에게 돈을 지불하고 있음을 증명해달라고 요청하는 것은 고객을 화나게합니다. 소프트웨어가 실행되지 않도록 코드를 구현하면 시간과 돈이 낭비되고 합법적 인 고객에게 버그와 성가심이 발생합니다. 더 나은 제품을 만드는 데 시간을 보내는 것이 좋습니다.
많은 게임 / 등이 첫 번째 버전을 "보호"한 다음 실제 고객과의 호환성 문제로 인해 첫 번째 패치에서 보호 기능을 해제합니다. 어느 정도의 보호를 고집하는 것은 불합리한 전략이 아닙니다.
거의 모든 복제 방지는 비효율적이며 사용 편의성에 악몽입니다. 고객의 컴퓨터에 루트킷을 설치하는 것과 같은 일부는 완전히 비 윤리적입니다.
나는 소프트웨어 기반 복사 방지 체계가 숙련 된 소프트웨어 해적을 막을 수 없다는 많은 포스터에 동의합니다. 상업용 .NET 기반 소프트웨어의 경우 Microsoft 소프트웨어 라이선스 보호 (SLP)는 매우 합리적인 가격의 솔루션입니다. 시간 제한 및 유동 라이센스를 지원합니다. 가격은 월 10 달러 + 활성화 당 5 달러이며 보호 구성 요소는 광고 한대로 작동하는 것 같습니다. 하지만 상당히 새로운 제안이므로 구매자가주의해야합니다.
나는 간단한 활성화 키를 제안한다. (당신이 그것이 깨질 수 있다는 것을 알고 있더라도), 당신은 당신의 소프트웨어가 당신의 사용자에게 방해가되는 것을 정말로 원하지 않거나 그들은 단순히 그것을 밀어 낼 것이다.
그들이 소프트웨어를 다시 다운로드 할 수 있는지 확인하십시오. 지불 한 후에 만 소프트웨어를 로깅하고 다운로드 할 수있는 웹 페이지를 제안합니다. 이유에 대해).
무엇보다도 유료 사용자를 밀어 넣으십시오. 합법적 인 사용자 일 때 범죄자로 기소되는 것보다 더 짜증나는 것은 없습니다 (DVD의 불법 복제 방지는 누구에게나 경고합니다).
온라인 상태에서 서버에 대해 키를 확인하는 서비스를 추가 할 수 있으며, 두 개의 서로 다른 IP가 동일한 키를 사용하는 경우 다른 라이선스를 구매하라는 팝업을 팝업합니다.
그러나 비활성화하지 마십시오. 친구에게 소프트웨어를 보여주는 행복한 사용자 일 수 있습니다 !!!!
소프트웨어 개발자의 경우 가능한 솔루션 중 하나는 메타 데이터를 제품에 직접 포함하는 것입니다. redsunrise에서 인스턴스 파괴 보안 도구를 확인하십시오.
우리가 판매하는 자체 라이선스 시스템 (라이선스 관리 도구)을 사용하여 상용 소프트웨어에 라이선스를 부여합니다. 일반적으로 구독 라이선스를 판매하지만 원하는 경우 사용량에 따라 판매 할 수도 있습니다. 지금까지 안전했습니다 : www.agilis-sw.com