2011-01-04 4 views
11

터미널 서버에서 실행할 작은 클라이언트 프로그램을 작성하고 있습니다. 나는 그것이 지정된 서버에서만 실행되고 서버에서 제거되면 작동을 멈추게 할 수있는 방법을 찾고있다.가상 컴퓨터에서도 안정적으로 사용할 수있는 고유 한 컴퓨터 식별자가 있습니까?

나는 100 % 안전성을 유지할 수있는 방법이 없다는 것을 잘 알고 있으며, 대부분의 고급 사용자가 그것을 할 수 없도록하기를 원하지 않습니다.

나는 프로세서 ID, Windows 제품 ID, 컴퓨터 GUID 및 다른 UI와 같은 다른 고유 식별자를 조사하고있었습니다. 터미널 서버는 가상 컴퓨터이기 때문에이 컴퓨터에서 완전히 고유 한 것은 찾을 수 없습니다.

대부분 이것을 확인하기 위해 조사해야 할 아이디어가 대부분 안전합니다. 응용 프로그램 자체의 목적을 무효화 할 수 있으므로 가능한 한 보안을 유지할 시간이나 필요성이 없습니다.

사용자의 MAC 주소를 원하지 않습니다. 각 컴퓨터마다 고유하지만 인터넷에서 제공되는 지침에 따라 스푸핑 될 수 있습니다.

Microsoft 제품 ID까지는 시스템 팀이 VM 서버를 복제하고 회사 볼륨 키를 사용하기 때문에 동일한 제품 ID 번호를 가진 두 대의 서버에 액세스 할 수 있습니다. 어떤 아이디어가 있습니까? 제품 ID가 동일하지 않습니다. 제품 ID :

컴퓨터 식별을 시도하는 대신이 소프트웨어에 액세스하기 위해 사용자를 식별하고 AD를 통해 그룹 기반 권한을 생성하는 것이 좋습니다.

+0

MAC 주소는 VM에서도 고유해야합니다? - http://stackoverflow.com/questions/3443093/what-is-a-good-unique-pc-identifier – Paolo

+2

모두가 MAC 주소를 스푸핑 할 수있는 사람들의 수에 대해 정확한 데이터를 어떻게 가지고 있습니까? 외관상으로는 5 % ... 나는 전혀 몰랐다. –

+2

MAC 주소를 사용하고 싶지 않은데, 누가 Google을 통해 스푸핑 할 수 있는지 설명합니다. http : //www.mydigitallife.info/2008/06/30/how-to-change-or-spoof-mac-address-in-windows-xp-vista-server-20032008-mac-os-x- 유닉스와 리눅스/ –

답변

0

953을 원한다면 Mac ID과 같이 갈 수 있습니다. 스푸핑 될 수 있지만 기본적으로 시스템에는 고유합니다.

+0

http://www.mydigitallife.info/2008/06/30/how-to-change-or-spoof-mac-address-in-windows-xp-vista-server-20032008-mac-os-x-unix -and-linux/ 나는 이것을 5 % 이상의 사람들이 쉽게 할 수 있다고 생각합니다. –

+0

최근 통계에 따르면 미국의 컴퓨터 활용 능력은 20 %입니다. MAC 주소를 스푸핑 할 수있는 사용자가 4 분의 1도되지 않는다고 생각합니다. 나는 당신의 질문에 대해 다시 한 마디 만했습니다. – BrokenGlass

1

가장 간단한 해결책은 mac 주소를 사용하는 것이지만 Windows에서 쉽게 변경할 수 있습니다 (editing the registry). 나는 사람들의 5 % 미만이 그것을하는 방법을 알고 있다고 말할 것입니다.

다음은 C#으로 MAC 주소를 얻는 방법은 다음과 같습니다 (몇 가지가있는 경우, 또는 카드)

System.Net.NetworkInformation.NetworkInterface.GetPhysicalAddress(); 
+0

Windows에서 아무도이 작업을 수행 할 수 없습니다. 이는 질문에서 암시하는 것입니다. ;-) –

+0

@Cody 너는 얼마나 틀린가! – marcog

+0

나는 ifconfig를 사용했다는 것을 언급했다. MAC은 모든 운영 환경에서 스푸핑 될 수 있음을 알고 있습니다. –

1

당신은 MAC의 네트워크 카드의 주소로 라이센스를 묶을 수있다.

물론 네트워크 카드를 변경하면 소프트웨어가 작동하지 않습니다.

/TPM이 서버에서 표준이되는 경우이를 사용하여 서버를 인증 할 수 있어야합니다. 다음과 같이

1

당신은 PC의 MAC 주소를 얻을 수 있습니다 : 물론 http://www.java2s.com/Code/CSharp/Network/GetMacAddress.htm

는,이 방법은 결함이없는 것은 아니다. 이 게시물에 비슷한 접근법이 있지만 정확히 일치하지는 않습니다. What's a good way to uniquely identify a computer?

+0

참고, 내가 StackOverflow 게시물에 대한 대답은 일부 upvotes받을 자격이 있다고 생각합니다. 받아 들여진 응답은 아주 좋, 특히 진행하는 잡일 인 그것에 관하여주의. – David

5

는 고유 가상 머신을 식별하는 것은 어렵습니다; 고유하게 식별 할 수있는 모든 것은 가상 머신을 복제하면 동일한 머신을 생성해야하기 때문에 완전히 가상 머신이 아니 었음을 암시합니다.

  1. 루프백 네트워크 어댑터를 통해 VM과 통신하는 하트 비트 응용 프로그램을 호스트 시스템에 만듭니다.
  2. 하트 비트 응용 프로그램이 호스트 시스템을 고유하게 식별 할 수없는 경우 실행을 거부하십시오.
  3. 하트 비트 응용 프로그램이 실행되고 있지 않으면 기본 응용 프로그램 실행을 거부하십시오.

하트 비트 응용 프로그램을 너무 쉽게 스푸핑 할 수 없도록하는 방법을 찾아야합니다.

터미널 프로그램을 100 % 보호 할 수 없습니다. 이 질문은 소프트웨어 불법 복제를 방지하려는 것과 같습니다.

2

내가 찾은 가장 좋은 것은 BIOS UUID입니다. 그러나 유스 케이스에서는 완벽하지 않습니다.

VM 내부에서 사용할 수있는 SMBIOS UUID는 VMware 하이퍼 바이저 및 관리 도구에서 VirtualMachine.config.uuid (참조 : the uuid property on this page)로도 사용됩니다. 이는 특정 호스트 나 특정 vCenter에서 고유 함을 보장합니다. 그러나 별도의 호스트 또는 별도의 vCenter 설치에 복제 할 수 있습니다.

또한 가상 시스템의 BIOS UUID는 변경할 수 있습니다. API를 통해 변경 될 수 있습니다 (클라이언트를 통해 쉽지는 않지만).

이것은 VM을 정확히 복제하기 위해 약간의 특별한 노력과 설정이 필요하기 때문에 95 %를 넘을 것입니다.

그러나 VM 재해 복구 및 향후 가상화 소프트웨어 업그레이드와 같은 가상화 구현 관점에서 볼 때 : UUID 또는 MAC 주소와 같은 하드웨어 ID를 사용하면 모든 문제가 발생합니다. 소프트웨어 아래에서 OS 버전을 개정하려는 경우 일반적으로 새 가상 시스템을 만들어서 두 서버의 VM 구성을 수동으로 편집하여 일치시킬 UUID를 변경해야합니다. MAC을 사용하여 네트워크 아키텍처를 변경하는 경우 소프트웨어에 VM이 특별한 경우가 필요합니다. 이러한 것들은 단지 가상 관리자의 두통을 일으 킵니다 (하지만 당신이 알기를 원하는 정확한 두통이 될 수 있습니다.).

필자가 언급 한 사용 권한 기반 접근 방식을 사용하거나 필요한 경우 동시 라이센스 서버를 사용하는 것이 좋습니다. 그러나 하드웨어 연결 라이센스가 이미 골머리 인 무겁게 가상의 배경에서 나옵니다.

관련 문제