2009-10-15 2 views
3

C# .NET 응용 프로그램이 있습니다. 이 응용 프로그램은 하드웨어와 밀접하게 연결되어 있습니다. 현금 인출기를 생각하고 키오스크를 운전해라. 내 응용 프로그램이 하드웨어에서 실행되고 있음을 보증하는 방법이 필요합니다. 초기 계획은 WMI를 사용하여 CPU, OS, HD 또는 기타 하드웨어의 일련 번호를 얻은 다음 디지털 서명하여 해당 서명을 소프트웨어에 제공하는 것이 었습니다. 그런 다음 응용 프로그램은 공개 키를 가지고 서명을 검증합니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?응용 프로그램을 특정 하드웨어에 어떻게 묶을 수 있습니까?

업데이트 1

우리는 동글 또는 걸쇠를 돼요. 시스템 외부는 없습니다.

+0

당신은 아마도 다른 하드웨어로부터 가치를 보호하기 위해 더 많은 돈과 노력을 기울일 것입니다. 서명 키없이 소프트웨어를 실행하고 싶은 사람은 보호 기능을 제거 할 수 있습니다. 또한 고객이 시스템을 신속하게 수정해야하는 경우에도 고객을 제한하고 있습니다. –

+0

모두 상황에 따라 다릅니다. 우리는 컴퓨터가 아닌 .NET을 지원하는 임베디드 하드웨어와 함께 제공되는 응용 프로그램을 가지고 있습니다. 하드웨어 및 소프트웨어는 패키지 계약으로 제공되며 이것이 우리가 구매 한 것입니다. 고객은 유지 보수를 수행하기를 원하지 않습니다. 그래서 우리와 계약 및 SLA가있는 것입니다.이 작업을 수행하는 데는 분명 좋은 이유가 있지만 실제로 적용되는 대부분의 앱에는 해당되지 않습니다. 칩 개발에서부터 소프트웨어에 이르기까지 모든 것을 완벽하게 보호 할 수는 없습니다. (애플이 칩을 제어하는 ​​이유는 무엇입니까?) – TimothyP

+0

http://www.ssware.com/cryptoobfuscator/obfuscator-net.htm에는 하드웨어 잠금을 만드는 데 도움이되는 도구가 있지만 유일한 방법으로는 사용하지 마십시오. .. 난독 화/잠금 장치 도구가 대중화되면할수록 사람들이 해킹에 더 많은 노력을 기울입니다. 그리고 고객과 확실한 계약을 맺고 있는지 확인하십시오. 이것이 가장 중요한 것입니다! – TimothyP

답변

2

예, 안전 시스템이 적용됩니다. 다른 하드웨어에서 실행되는 것을 방지 할 수 있습니다. 또한 하드웨어의 유지 보수를 방지합니다.

평소와 같이 소프트웨어를 디 컴파일하고 변경하는 것을 방지 할 수 있습니다.

1

우리는 XML 파일에 서명함으로써 소프트웨어 라이센싱과 비슷한 작업을 수행합니다. 물론 우리는 어떤 하드웨어에도 묶여 있지 않습니다. 같은 개념이 적용됩니다. 잘 작동한다.

당신은 또한 어떤 종류의 난독 화 도구를 사용하여 .NET 코드를 보호해야합니다. 우리는 {smartassembly}을 사용하지만 몇 가지 다른 코드가 있습니다.

당신이 뭘하든간에, 충분한 시간과 자원이 주어지면 누군가 그것을 우회 할 수 있다는 것을 명심하십시오.

귀하의 지적 재산권을 보호해서는 안된다는 의미는 아니지만 수익이 줄어들어 귀하와 귀하의 고객에게 더 큰 문제가되는 지점이 있습니다.

+0

난독 화 도구가 완벽하지 않습니다. 네이티브 코드는 요즘 리버스 엔지니어링 될 수 있습니다. 모든 난독 화/보호 도구에 대해, 그 주위에 발견 된 방법이 있습니다. – IDWMaster

관련 문제