KR20040063824A - 타임 및 웨이트 기반의 유연하고 내성이 있는 하드웨어id를 제공하기 위한 시스템 및 방법 - Google Patents

타임 및 웨이트 기반의 유연하고 내성이 있는 하드웨어id를 제공하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20040063824A
KR20040063824A KR1020040000762A KR20040000762A KR20040063824A KR 20040063824 A KR20040063824 A KR 20040063824A KR 1020040000762 A KR1020040000762 A KR 1020040000762A KR 20040000762 A KR20040000762 A KR 20040000762A KR 20040063824 A KR20040063824 A KR 20040063824A
Authority
KR
South Korea
Prior art keywords
component
hardware
identity
types
type
Prior art date
Application number
KR1020040000762A
Other languages
English (en)
Other versions
KR101014140B1 (ko
Inventor
프라툴 두블리시
군야키카글라르
아이덴티. 휴거스
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20040063824A publication Critical patent/KR20040063824A/ko
Application granted granted Critical
Publication of KR101014140B1 publication Critical patent/KR101014140B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/02Constructional features of telephone sets
    • H04M1/04Supports for telephone transmitters or receivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04RLOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
    • H04R1/00Details of transducers, loudspeakers or microphones
    • H04R1/10Earpieces; Attachments therefor ; Earphones; Monophonic headphones
    • H04R1/1033Cables or cables storage, e.g. cable reels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2117User registration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2137Time limited access, e.g. to a computer or data

Abstract

타임 및 웨이트 기반의 유연성을 갖는 하드웨어 ID를 구현하기 위한 방법 및 시스템은 하드웨어 컴포넌트에 대한 정보를 식별하는 것을 포함하는 하드웨어 ID(HWID)를 사용한다. 소프트웨어가 작동하는 경우, 현재의 HWID가 생성된다. 2개의 HWID가 매칭하는 지를 결정하기 위해 현재의 HWID가 저장된 HWID와 비교되는 경우, 타임 벡터 및 웨이트 벡터가 이 비교에서 사용된다. 작동하는 매칭 스코어는 매칭을 유지한다. 하드웨어 컴포넌트 각각에 대해, 웨이트 벡터는 하드웨어 컴포넌트에 대한 해쉬된 값의 정확한 매칭에 웨이트가 주어지는 지를 나타낸다. 예를들어, 하드웨어 컴포넌트에 대한 웨이트 값이 3이고 매칭이라면, 작동 총계는 3만큼 증가된다. 하드웨어 컴포넌트 각각에 대해, 타임 벡터는 컴포넌트내의 변화가 허용된 후의 만료 주기를 나타낸다. 예를들어, 컴포넌트에 대한 만료 주기가 1년이고, 활성화이후 1년이 경과하였다면, 인증 HWID내의 컴포넌트의 정보가 현재 컴포넌트 정보를 매칭시키지 않더라도, 작동 총계는 증가된다.

Description

타임 및 웨이트 기반의 유연하고 내성이 있는 하드웨어 ID를 제공하기 위한 시스템 및 방법{SYSTEMS AND METHODS FOR PROVIDING TIME AND WEIGHT-BASED FLEXIBLY TOLERANT HARDWARE ID}
본 발명은 컴퓨터 시스템에 대한 정보를 식별하고 그 컴퓨터 시스템이 정보 식별 저장 버전과 매칭되는 지의 여부를 평가하는 것을 제공하는 시스템 및 방법에 관한 것이다. 더 상세하게는, 본 발명은 컴퓨터 시스템 사용중에 발생하는 통상의 변화에 유연하게 대응하고 내성이 강한 컴퓨터 시스템으로부터의 정보를 식별하는 것에 기초하여 컴퓨터 시스템용 하드웨어 ID를 제공하는 시스템 및 방법에 관한 것이다.
소프트웨어의 사용은 흔히 소프트웨어 라이센스에 의해 관리되고 있다. 소프트웨어는 판매 후에 쉽게 복사될 수 있기 때문에, 관련 라이센스가 없는 소프트웨어의 사용은 방지하기 힘들다. 이런 사용은, 소프트웨어가 부정하게 복제되고 해적판이 비인가 컴퓨터 시스템에 사용되기 위해 인스톨되는 저작권 침해를 포함한다. 또한, 정본 구입자는 관련 라이센스의 범위를 벗어나는 소프트웨어를 부적절하게 사용할 수도 있다. 예를들어, 사용자는 라이센스하에 허용된 것 이외의 컴퓨터 시스템 상에 그러한 소프트웨어를 인스톨할 수도 있다.
라이센스는 이러한 행위에 대하여 법적 조치를 취할 수 있지만, 실제 집행에는 어려움이 있다. 따라서, 라이센스 조건을 벗어난 소프트웨어 사용양을 감소시키기 위해 다른 수단이 요구된다. 그러한 방법의 하나가, 소프트웨어의 사용을 인가받은 사용자의 컴퓨터 시스템에 대한 식별자를 생성하는 것에 기초한 것이다.이 방법은 "Software Anti-Piracy System That Adapts to Hardware Upgrades"라는 명칭으로 미국공개번호 제2001-0044782호로 공개된 미국특허 제6,243,468호에 상세히 개시되어 있다.
컴퓨터 시스템은 일반적으로 디스크 드라이브, CDROM 드라이브 등의 다양한 하드웨어 부품과, 프로세스를 포함하는 각종의 하드웨어를 일반적으로 포함한다. 이들 하드웨어 컴포넌트는 각각, 예를들어 플러그-앤-플레이(PnP) 호를 실행시킴으로써, 시스템에 의해 액세스될 수 있는 식별자(시리얼 번호 및 이름)를 갖는다. 이들 컴포넌트의 식별자는 사전 결정된 방식으로 조합되어, 하드웨어 식별자(HWID)를 생성하며, 이는 특정 컴퓨터 시스템을 식별하는데 사용될 수 있다.
특히, HWID는, 특정 컴퓨터 시스템 상에서 사용되도록 인가된 소프트웨어가 그 컴퓨터 시스템 상에서만 사용되는 것을 보장하기 위해 소프트웨어 라이센스의 일부 또는 조합되어 채용될 수 있다. 특히, 런타임에서 컴퓨터 시스템에 대해 계산된 HWID가 소프트웨어 라이센스내에서 지정된 HWID와 매칭한다면, HWID를 지정하는 라이센스를 갖는 소프트웨어는 컴퓨터 시스템 상에서만 실행할 것이다.
그러나, 컴퓨터 시스템의 사용자가, 예를들어 수리 또는 업그레이드 목적으로 시스템의 컴포넌트를 더하거나, 빼거나 또는 교환하는 경우, HWID는 변화한다. 새롭거나 교환된 컴포넌트의 각각은 새로운 컴포넌트 식별자를 가질 것이다. 따라서, 시스템용 HWID가 계산된 경우, 새로운 컴포넌트 식별자에 의해서 HWID는 변화한다. 이로 인해, 이전 버전의 컴퓨터 시스템용 HWID를 지정하는 소프트웨어 라이센스를 사용자가 수신하였을때 문제가 발생한다.
따라서, 새롭게 계산된 HWID와 비교하여 실질적인 매칭으로서, 저장된 HWID를 수령하게 되어 사용자는 소프트웨어를 실행할 수 있는 것으로 알려져 있다. 예를들어, 상술한 미국특허 제6,243,468호는 5개의 컴포넌트 식별자가 HWID내에 포함되는 예를 개시하고 있고, 이들중 임의의 4개가 매칭된 것이 발견된다면, 소프트웨어 제품은 컴퓨터 시스템상에서 작동하도록 인에이블된다.
종래 기술에서는 어떤 컴포넌트가 다른 것보다 더 빈번하게 교환될 수 있다는 사실을 간과하였다. 또한, 소프트웨어의 가치가 시간이 지남에 따라 감소할 수 있기 때문에, 시간이 경과함에 따라 라이센스에 대한 요구 조건에 부합하는 보다 덜 엄격한 컴퓨터 시스템을 갖는 실용성도 간과되었다. 이런 문제들을 처리하는 HWID-기반 라이센싱 시스템은 향상된 보안성을 제공하여, 장기간에 걸쳐 다이나믹한 보안성을 가능케한다.
상기 상황의 관점에서, 하드웨어 시스템 변화를 수용하고 시간 경과에 적응하는데 필요한 유연성을 갖고 적법한 사용자의 컴퓨터 시스템내의 변화를 허용하면서, HWID가 소프트웨어의 인가 인스턴스화를 식별하고 하나의 컴퓨터 시스템에 링크하는데 사용되도록 하는 시스템이 요구된다.
도 1은 본 발명에서 구현될 수 있는 예시적인 비제한 연산 시스템을 나타내는 블럭도.
도 2는 본 발명의 일 실시예에 따라 라이센스 데이터를 나타내는 블럭도.
도 3은 웨이트 벡터를 사용하여 각 저장된 컴포넌트 아이덴티티와 현재 컴포넌트 아이덴티티를 비교하는 방법을 나타내는 블럭도.
도 4는 타임 벡터를 사용하여 각 저장된 컴포넌트 아이덴티티와 현재 컴포넌트 아이덴티티를 비교하는 방법을 나타내는 블럭도.
<도면 부호의 간단한 설명>
120 : 프로세싱 유닛
130 : 시스템 메모리
160 : 사용자 입력 인터페이스
170 ; 네트워크 인터페이스
180 ; 원격 컴퓨터
190 : 비디오 인터페이스
상기를 감안하여, 본 발명은 시스템 구성이 변화더라도 유효하게 유지되는 HWID를 제공하기 위한 시스템 및 방법을 제공하는 것이다.
일 실시예에서, 소프트웨어가 활성화될 때, 그 시스템의 HWID가 계산된다.소프트웨어내에 있거나 또는 시스템내의 다른 곳에 있는 제품 활성화 코드는 이들 컴포넌트에 관한 정보를 얻기 위해 현재의 하드웨어 컴포넌트를 쿼리한다. 예를들어, 네트워크 카드는 MAC(media access control) 어드레스를 결정하기 위해 쿼리될 수 있다. 각 하드웨어 컴포넌트 타입의 하드웨어 컴포넌트에 관한 정보는 해쉬된다. 그 해쉬 값은 HWID에 연관된다.
활성화시에 계산된 HWID는 라이센스 데이터 파일내에 포함된다. 또한, 활성화 HWID와 함께 포함된 것은 각 하드웨어 컴포넌트에 대한 시간 및 웨이트를 갖는, 타임 및 웨이트 벡터이다. 또한, 쓰레쉬홀드 스코어는 라이센스 데이터 파일내에 포함된다. 이 라이센스 데이터 파일은 소프트웨어가 사용될 때마다 평가되어야만 한다. 라이센스가 컴퓨터 시스템의 인증을 필요로하는 경우, 시스템의 HWID는 재평가되어, 새롭게 계산된 HWID는 활성화 HWID와 비교된다.
2개의 HWID가 매칭하는지를 결정하기 위해 새롭게 계산된 HWID가 활성화 HWID와 비교되는 경우, 그 비교시에 타임 벡터 및 웨이트 벡터가 사용된다. 컴포넌트의 타임 벡터 값은, 새롭게 계산된 HWID가 실질적으로 활성화 HWID와 매칭하는지를 결정하는데 그 컴포넌트가 고려되는 지의 여부를 결정한다. 컴포넌트의 웨이트 벡터 값은, 새롭게 계산된 HWID가 실질적으로 활성화 HWID와 매칭하는지를 결정하는데 그 컴포넌트에 대한 매칭 웨이트가 얼마나 주어지는 지를 결정한다.
본 발명의 다른 특징 및 실시예를 후술한다.
개요
일 실시예에서, 현재의 하드웨어 ID(HWID)가 계산된다. 고려되는 1세트의컴포넌트 타입 중에서 각 컴포넌트 타입에 대해, 해당 타입의 컴포넌트가 쿼리된다. 일 실시예에서, 각 결과는 해쉬된다. 그 결과로서의 값은 현재의 HWID를 포함한다.
일 실시예에서, 소프트웨어와 관련된 라이센스 파일은 활성화 HWID, 타임 벡터, 웨이트 벡터, 및 쓰레쉬홀드 스코어를 저장한다. 소프트웨어 사용을 허가하기 위해, 컴퓨터 시스템에 대한 현재의 HWID는 실질적으로 활성화 HWID와 매칭되어야 한다. 타임 벡터, 웨이트 벡터 및 쓰레쉬홀드 스코어는 실질적인 매칭이 발생하는 지의 여부를 결정하는데 사용된다.
현재의 HWID가 활성화 HWID와 실질적으로 매칭하는 지를 결정하기 위해, 각 컴포넌트 타입에 대해, 해당 타입의 컴포넌트에 대해 각 저장된 해쉬 값은 해당 타입의 각 현재의 컴포넌트에 대한 해쉬 값과 비교된다. 일 실시예에서, 매칭 스코어는 모든 비교에 걸쳐 계산된다. 어떤 매칭은, 저장된 HWID가 계산된 시점에서 시스템내에 존재하는 컴포넌트가 여전히 그 시스템내에 존재하는 지를 나타낸다. 그러한 매칭이 발견된 경우, 비교를 위해 매칭 스코어는 증가된다. 매칭 스코어가 쓰레쉬홀드 스코어 이상이면, 현재의 HWID는 활성화 HWID와 실질적으로 매칭한다.
각 컴포넌트 타입에 대해, 웨이트 벡터는 해당 컴포넌트 타입의 매칭이 일치되어야만 하는 웨이트를 나타낸다. 매칭 스코어가 컴포넌트 타입에 대한 매칭으로 인해 증가된 경우, 그 매칭 스코어는 해당 컴포넌트 타입에 대한 웨이트 값만큼 증가된다.
또한, 타임 벡터는 저장된 HWID와 관련된다. 각 컴포넌트 타입에 대해, 타임 벡터는 만료 주기를 나타내어도 된다. 만료 주기가 경과한 후, 임의의 컴포넌트에 대하여 어떠한 매칭도 발견되지 않더라도, 매칭 스코어는 웨이트 값만큼 증가된다. 이런 방법으로, 서로 다른 컴포넌트에 서로 다른 웨이트를 줄 수 있고, 컴퓨터 시스템내의 하드웨어 변화에 대한 내성을 점점 유연하게 가질 수 있는 HWID 시스템이 제공된다. 그 대안적인 실시예에서, 타임 벡터만이 사용된다. 또 다른 대안적인 실시예에서는, 웨이트 벡터만이 사용된다.
예시적 연산 장치
도 1 및 하기의 설명은 본 발명이 구현될 수 있는 적절한 연산 환경의 간략하고 일반적인 설명에 관한 것이다. 그러나, 상술한 바와같이, 핸드헬드, 포터블 등의 연산 장치와 모든 종류의 연산 오브젝트는 본 발명과 관련하여 사용되는 것을 이해해야 한다. 따라서, 범용 컴퓨터는 후술하지만, 이는 일예로서, 본 발명은 네트워크/버스 상호 운용성 및 상호 작용을 갖는 신 클라이언트(thin client) 등의 다른 연산 장치로 구현될 수도 있다. 따라서, 본 발명은 매우 적거나 최소의 클라이언트 리소스들이 관계하는 네트워크 호스티드 서비스의 환경, 가령, 어플라이언스내에 위치된 오브젝트, 또는 다른 연산 장치와 오브젝트 등의 네트워크/버스에의 인터페이스로서만 기능하는 네트워크된 환경에서 구현될 수 있다. 실질적으로, 데이터가 저장되거나 검색되는 곳이면, 본 발명에 따른 동작에 대한 환경으로서 바람직하거나 적합하다.
비록 요구되진 않지만, 본 발명은 디바이스 또는 오브젝트에 대한 서비스 개발자용으로 운영 시스템을 통해 본 발명은 구현되고, 또는 본 발명에 따라 동작하는 애플리케이션 소프트웨어에 포함되어도 된다. 소프트웨어는 클라이언트 워크스테이션, 서버 또는 다른 장치 등의 하나 이상의 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터-실행가능한 명령의 일반적인 콘텍스트내에서 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 실행하거나 특정한 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 전형적으로, 프로그램 모듈의 기능은 각종의 실시예에서 요구되는 바와같이, 조합 또는 분산될 수 있다. 또한, 본 발명은 다른 컴퓨터 구성으로 실시될 수 있다는 것을 당업자는 인식할 것이다. 본 발명과 함께 사용하기에 적합한 공지된 연산 시스템, 환경 및/또는 구성으로, 퍼스널 컴퓨터, 자동화 텔러 머신, 서버 컴퓨터, 핸드-헬드 또는 랩탑 디바이스, 멀티-프로세서 시스템, 마이크로프로세서-기반 시스템, 프로그램가능한 소비자 전자 기기, 네트워크 PC, 어플라이언스, 라이트, 환경 제어 소자, 미니컴퓨터, 메인프레임 컴퓨터 등이 있지만, 이에 한정되지 않는다. 또한, 본 발명은, 태스크가 통신 네트워크/버스 또는 다른 데이터 전송 매체를 통해 링크된 원격 처리 장치에 의해 실행되는 분산된 연산 환경에서 실시될 수도 있다. 분산된 연산 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 로컬 및 원격 컴퓨터 저장 매체에 모두 위치될 수 있고, 클라이언트 노드는 서버 노드와 같이, 교대로 동작할 수 있다.
도 1은 본 발명이 구현될 수 있는 적절한 연산 시스템 환경(100)의 예를 도시하였고, 상기에서 명백하게 기재하였지만, 연산 시스템 환경(100)은 적절한 연산 환경의 일예일 뿐, 본 발명의 사용 또는 기능의 범위를 제한하려는 것은 아니다.연산 시스템(100)은, 예시적 운영 환경(100)에 도시된 컴포넌트 중의 임의의 하나 또는 조합에 관련하는 의존성 또는 필요 조건을 갖는 것으로 해석되는 것은 아니다.
도 1을 참조하면, 본 발명을 구현하기 위한 예시적인 시스템은 컴퓨터 시스템(110)의 형태로 범용 연산 장치를 포함한다. 컴퓨터 시스템(110)의 컴포넌트는, 프로세싱 유닛(120), 시스템 메모리(130) 및 시스템 모모리를 포함하는 각종의 시스템 컴포넌트과 프로세싱 유닛(120)을 결합시키는 시스템 버스(121)를 포함할 수 있고, 이에 한정되지 않는다. 시스템 버스(121)는 메모리 버스 또는 메모리 제어기, 주변 버스 및 각종 버스 아키텍쳐중의 임의의 것을 사용하는 로컬 버스를 포함하는 몇몇 타입의 버스 구조 중의 임의의 것일 수 있다. 일예로서 이에 한정되진 않지만, 그러한 아키텍쳐는 인더스트리 스탠다드 아키텍쳐(ISA) 버스, 마이크로 채널 아키텍쳐(MCA) 버스, 인헨스드 ISA(EISA) 버스, 비디오 일렉트로닉스 스탠다드 어소시에이션(VESA) 로컬 버스, 및 페리페럴 컴포넌트 인터컨넥트(PCI) 버스(메자닌 버스로도 알려짐)를 포함한다.
컴퓨터 시스템(110)은 통상 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터 판독가능 매체는 컴퓨터 시스템(110)에 의해 액세스될 수 있는 입수가능한 임의의 매체로서, 휘발성 및 비휘발성 매체, 제거가능 및 제거불가능 매체를 포함한다. 일예로서 이에 한정되진 않지만, 컴퓨터 판독가능 매체는 컴퓨터 스토리지 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 스토리지 매체는, 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터 등의 정보의 저장을 위한 임의의 방법또는 기술로 구현되는 휘발성 및 비휘발성 매체, 제거가능 및 제거불가능 매체를 포함한다. 컴퓨터 스토리지 매체는, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적으로 소거가능하고 프로그램가능한 판독 전용 메모리(EEPROM), 플래쉬 메모리 또는 다른 메모리 기술, 콤팩트 디스크 판독 전용 메모리(CDROM), 디지털 버스타일 디스크(DVD), 또는 다른 광학 디스크 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지, 또는 다른 자기 스토리지 장치 또는 소망의 정보를 저장하기 위해 사용되가능하고 컴퓨터 시스템(110)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하며, 이에 한정되지 않는다. 통신 매체는 통상 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 또는 반송파 등의 변조된 데이터 신호내의 다른 데이터 또는 다른 전송 메카니즘을 구체화하는 것으로, 임의의 정보 전달 매체를 포함한다. 용어 "변조된 데이터 신호"는 신호내의 정보를 인코딩하는 방식으로 설정되거나 변경된 하나 이상의 특징을 갖는 신호를 의미한다. 일예로서, 통신 매체는, 유선 네트워크 또는 직접 유선 접속 등의 유선 매체, 탄성파, RF, 적외선 등의 무선 매체를 포함하며, 이에 한정되진 않는다. 또한, 상기한 것의 임의의 조합은 컴퓨터 판독가능 매체의 범위내에서 포함되어야 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM;131) 및 랜덤 액세스 메모리(RAM;132) 등의 휘발성 및/또는 비휘발성 메모리의 형태인 컴퓨터 스토리지 매체를 포함한다. 기동시 등에서 컴퓨터 시스템(110)내의 소자들간의 정보 전송하는 것을 돕는 기본 루틴을 갖는 기본 입출력 시스템(BIOS;133)은 통상 ROM(131)에 저장된다. RAM(132)은 통상 데이터 및/또는 프로세싱 유닛(120)에 의해 바로 액세스 가능하고/하거나 현재 동작중인 프로그램 모듈을 갖는다. 일예로서, 도 1은 운영 시스템(134), 애플리케이션 프로그램(135), 다른 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시한 것으로, 이에 한정되진 않는다.
또한, 컴퓨터 시스템(110)은 다른 제거가능한/제거불가능, 휘발성/비휘발성 컴퓨터 스토리지 매체를 포함할 수 있다. 단지 일예로서, 도 1은 제거불가능하고 비휘발성인 자기 매체에 대하여 기입 또는 판독을 행하는 하드 디스크 드라이브(141), 제거가능하고 비휘발성인 자기 디스크(152)에 대하여 기입 또는 판독을 행하는 자기 디스크 드라이브(151), CD ROM 등의 광학 매체와 같은 제거가능하고 비휘발성인 광학 디스크(156)에 대하여 기입 또는 판독을 행하는 광학 디스크 드라이브(155)를 도시하고 있다. 예시적 운영 환경에서 사용될 수 있는 다른 제거가능/제거불가능, 휘발성/비휘발성 컴퓨터 저장 매체는, 자기 테이프 카세트, 플래쉬 메모리 카드, 디지털 버스타일 디스크, 디지털 비디오 테이프, 솔리드 스테이트 RAM, 솔리드 스테이트 ROM 등을 포함하지만, 이에 한정되진 않는다. 하드 디스크 드라이브(141)는 통상 인터페이스(140) 등의 제거불가능한 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광학 디스크 드라이브(155)는 통상 인터페이스(150) 등의 제거가능한 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
도 1을 참조하여 상기한 드라이브 및 이와 관련된 컴퓨터 스토리지 매체는 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈 및 컴퓨터 시스템(110)에 대한 다른 데이터를 저장한다. 도 1에서, 예를들어, 하드 디스크 드라이브(141)는 운영시스템(144), 애플리케이션 프로그램(145), 다른 프로그램 모듈(145) 및 프로그램 데이터(147)를 저장하는 것으로 설명하였다. 이들 컴포넌트는 운영 시스템(134), 애플리케이션 프로그램(135), 다른 프로그램 모듈(135) 및 프로그램 데이터(137)와 서로 다르거나 동일할 수 있다는 것에 주목하길 바란다. 운영 시스템(144), 애플리케이션 프로그램(145), 다른 프로그램 모듈(145) 및 프로그램 데이터(147)는 이들이 최소한 서로 다른 복제물인 것을 설명하기 위하여 서로 다른 개수로 주어진다. 사용자는 커맨드 및 정보를 키보드(162)와 통상 마우스, 트랙볼 또는 터치 패드로 불리는 포인팅 장치(161) 등의 입력 장치를 통해 컴퓨터 시스템(110)에 입력할 수도 있다. 다른 입력 장치(도시하지 않음)로는 마이크, 조이스틱, 게임 패드, 세털라이트 디쉬, 스캐너 등이 있다. 이들 및 다른 입력 장치는 종종 시스템 버스(121)와 결합되는 사용자 입력 인터페이스(160)를 통해 프로세싱 유닛(120)에 접속되지만, 병렬 포트, 게임 포트 또는 유니버셜 시리얼 버스(USB) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 노스브리지(Northbridge) 등의 그래픽 인터페이스(182)도 또한 시스템 버스(121)에 접속될 수도 있다. 노스브리지는 CPU, 또는 호스트 프로세싱 유닛(120)과 통신하고, 가속 그래픽 포트(AGP) 통신에 대한 책임을 맡는 칩셋이다. 하나 이상의 그래픽 프로세싱 유닛(GPU;184)은 그래픽 인터페이스(182)와 통신할 수도 있다. 이와 관련하여, GPU(184)는 레지스터 스토리지 등의 온-칩 메모리 스트로리를 일반적으로 포함하고, GPU(184)는 비디오 메모리(186)와 통신한다. 그러나, GPU(184)는 코프로세서의 단지 하나의 예이고, 각종 코프로세싱 장치는 컴퓨터 시스템(110)에 포함될 수도 있다.모니터(191) 또는 그외 유형의 디스플레이 장치는, 비디오 메모리(186)과 교대로 통신하는 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 또한 접속된다. 모니터(191)에 부가하여, 컴퓨터 시스템은 또한 출력 주변 인터페이스(195)를 통해 접속될 수 있는, 스피커(197) 및 프린터(196) 등의 다른 주변 출력 장치를 포함할 수도 있다.
컴퓨터 시스템(110)은, 원격 컴퓨터(180) 등의 하나 이상의 원격 컴퓨터와의 논리 접속을 사용하여 네트워크 연결되거나 또는 분산된 환경에서 동작할 수도 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 디바이스 또는 다른 공통 네트워크 노드일 수 있고, 도 1에는 비록 하나의 메모리 스토리지 디바이스(181)를 도시하고 있지만, 통상 컴퓨터 시스템(110)에 대하여 상기한 소자의 대부분 또는 전부를 포함한다. 도 1에 도시된 논리 접속은 근거리 통신망(LAN;171) 및 광역 통신망(WAN;173)을 포함하지만, 다른 네트워크/버스를 포함할 수도 있다. 이런 네트워킹 환경은 가정, 사무실, 전사적 컴퓨터 네트워크, 인트라넷 및 인터넷에서는 일반적이다.
LAN 네트워킹 환경에서 사용되는 경우, 컴퓨터 시스템(110)은 네트워크 인터페이스 또는 어댑터(170)을 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용되는 경우, 컴퓨터 시스템(110)은 통상 모뎀(172), 또는 인터넷 등의 WAN(173)을 통해 통신을 확립하는 다른 수단을 포함한다. 모뎀(172)은 내장 또는 외장형이어도 되고, 사용자 입력 인터페이스(160) 또는 다른 적절한 메카니즘을 통해 시스템 버스(121)에 접속될 수도 있다. 네트워크 환경에서, 컴퓨터 시스템(110)에 관하여설명한 프로그램 모듈 또는 그 일부는 원격 메모리 스트로리 장치에 저장될 수도 있다. 일예로서, 도 1은 메모리 장치(181) 상에 상주하는 것으로서 원격 애플리케이션 프로그램(185)을 도시하였지만, 이에 한정되진 않는다. 도시된 네트워크 접속은 예시적인 것으로, 컴퓨터 간의 통신 링크를 확립하는 다른 수단이 사용될 수 있다는 것을 주목하길 바란다.
각종 분산 연산 프레임워크는 개인 연산의 수렴 및 인터넷의 관점에서 계속해서 개발중이다. 개인 및 기업 사용자를 막론하고 애플리케이션과 연산 장치에 대하여 한결같이 공동 사용이 가능한 웹-인에이블 인터페이스를 제공하여, 웹 브라우저 또는 네트워크-지향의 연산 액티비티를 증가시킨다.
예를들어, MICROSOFT's.NET 플랫폼은 웹-기반 데이터 스토리지 및 다운로드가능한 디바이스 소프트웨어 등의 서버, 빌딩-블럭 서비스를 포함한다. 본 발명의 예시적인 실시예는 연산 장치 상에 상주하는 소프트웨어와 연계하여 설명하였지만, 본 발명에 따른 운영이 모든 .NET's 언어 및 서비스를 통해 액세스되거나 지원되고, 다른 분산 연산 프레임워크에서 지원되는 것에 의해 실행될 수도 있도록 본 발명의 하나 이상의 부분은 운영 시스템, 애플리케이션 프로그래밍 인터페이스(API) 또는 코프로세서, 디스플레이 장치 및 요구 오브젝트의 임의의 것간의 "미들 맨" 오브젝트를 통해 구현되어도 된다.
라이센싱 트랜잭션
라이센싱 트랜잭션은, 사용자가 컴퓨터 시스템(110) 상에서 실행시키기 위한 소프트웨어 제품을 구입하는 시점이나 그 후에 발생한다. 예를들어, 소프트웨어제품은 DVD, CDROM, 또는 플로피 디스켓 등의 운반가능한 컴퓨터 판독가능 매체 상에 저장된 소프트웨어 프로그램을 갖는 축소-포장된 제품일 수도 있다. 또한, 소프트웨어 제품은 네트워크를 통해 전기적으로 전달될 수도 있다. 사용자는 컴퓨터 시스템(110) 상으로 소프트웨어 제품을 로드한다. 그러나, 소프트웨어는 라이센스 데이터 없이는 동작불가능할 수도 있다. 이 라이센스 데이터를 수신하기 위하여, 사용자는 라이센스 정보 센터 등의 소프트웨어 라이센서에 의해 위탁된 엔티티에 접촉하여 소프트웨어를 '활성화'시켜야만 한다. 그 정보 센터는, 예를들어 제품 제조자 또는 인증된 제3자이다. 활성화 프로세스에 의해서, 고객은 인스톨을 위해 소프트웨어 제품을 활성화할 수 있고, 고객에게 필요한 라이센스 데이터를 제공함으로써 특정 컴퓨터 시스템상에서 사용할 수 있다.
정보 센터는 인터넷 등의 네트워크 또는 정보 센터 컴퓨터로의 다이얼-업 접속을 통해 컴퓨터 시스템(110)으로부터 접촉할 수 있고, 활성화가 성공적이라면, 라이센스 데이터를 컴퓨터 시스템(110)으로 송신할 것이다. 대안적으로는, 소프트웨어 제품은, 사용자가 정보 센터에서 서비스 대표를 호출할 것을 요구하는 그래픽 사용자 인터페이스(UI) 다이얼로그 윈도우를 갖는 활성화를 지원한다. UI 윈도우는 사용자가 서비스 대표와 통신하는 정보를 열거하고, 소프트웨어를 사용할 수 있게 하는 라이센스 데이터를 생성하는데 사용되는, 서비스 대표로부터 획득된 라이센스 정보를 입력하는 엔트리 복스를 포함한다.
타임 및 웨이트-기반의 유연하며 내성을 갖는 하드웨어 ID 제공
일 실시예에서, 소프트웨어와 관련된 라이센스 파일은 활성화 HWID, 타임 벡터, 웨이트 벡터 및 쓰레쉬홀드 스코어를 포함한다. 라이센스가 체크되어야 하는 경우, 현재의 하드웨어 ID(HWID)가 계산된다. 고려될 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 해당 타입의 컴포넌트가 쿼리된다. 각 결과는 해쉬된다. 결과 값은 현재의 HWID를 포함한다. 소프트웨어의 사용을 인가하기 위해, 컴퓨터 시스템에 대한 현재의 HWID는 활성화 HWID와 실질적으로 매칭되어야 한다. 타임 벡터, 웨이트 벡터 및 쓰레쉬홀드 스코어는 실질적인 매칭이 발생하는 지의 여부를 결정하는데 사용된다.
일 실시예에서, 라이센스 데이터(200)는 도 2에 도시된 바와같이, 활성화 HWID(210), 웨이트 벡터(220), 타임 벡터(230) 및 쓰레쉬홀드 스코어를 포함한다. 이 정보는 현재의 시스템의 HWID가 그 현재의 시스템 상의 소프트웨어의 사용 인가를 수용가능한 것을 나타내는 지를 런타임시에 결정하는데 사용된다.
일 실시예에서, 도 1을 참조하여, HWID를 계산하는데 사용되는 컴포넌트 타입은, 사운드카드(출력 주변 인터페이스(195)내에 위치됨), 네트워크 카드(네트워크 인터페이스(170)내에 위치됨), BIOS(133), CDROM 드라이브(155), 디스플레이 어댑터(GPU(184)를 포함함), 디스크 장치(151), SCSI 어댑터, 디스크 어댑터, 프로세서(120) 및 RAM(132)이다. 물론, 다른 컴포넌트도 본 발명의 범위 및 사상을 벗어나지 않는한 채용될 수 있고, 이들 컴포넌트의 하나 이상의 임의의 조합도 사용될 수 있다.
HWID가 계산된 경우, 플러그-앤-플레이(PnP) 쿼리 또는 다른 쿼리가 이들 컴포넌트에 대한 식별자를 결정하기 위해 실행된다. 프로세서(120) 등의 몇몇은 시리얼 번호에 의해 식별될 수 있다. BIOS(133) 등의 다른 것은 BIOS(133)의 일부, 예를들면 ROM(131)에 저장된 BIOS(133)의 처음 2 킬로바이트에 의해 식별될 수 있다. RAM(132)은, 예를들어 그의 총 저장 용량에 의해 식별될 수 있다.
다른 예로서, 네트워크 카드는 MAC 어드레스에 의해 식별될 수 있다. MAC(Media Access Control) 어드레스는 네트워크 카드를 식별하는 고유 어드레스이다. 근거리 통신망(LAN) 등의 네트워크 상에서, MAC 어드레스는 컴퓨터 시스템의 고유 하드웨어 번호로서 사용된다. 컴퓨터 시스템이 인터넷에 접속된 경우, 이 번호는 컴퓨터 시스템에 대한 정확한 IP 어드레스를 인덱스하는데 사용된다. 네트워크 카드의 MAC 어드레스는 제조자에 의해 네트워크 카드에 새겨진 고유 번호이다. 어드레스의 블럭은 각 네트워크 카드 제조자에게 할당되고, 네트워크 카드 상의 칩에 하드-코딩된다.
도시된 바와같이, 각 컴포넌트 타입에 대해, 활성화 HWID(210)는 활성화시에 존재하는 해당 타입의 컴포넌트의 수를 포함한다. 또한, 활성화 HWID(210)는 각 컴포넌트에 대한 값을 포함한다. 일 실시예에서, 하드웨어 식별자는 해쉬 값을 생성하기 위해 해쉬되어, HWID내에 포함된다. 예를들어, 도 2에 도시된 바와같이, 4개의 CDROM은 활성화 시점에서 인스톨된다. 일 실시예에서, 각 컴포넌트에 대한 해쉬 값은 HWID내에 저장된다. 예를들어, cdrom1, cdrom2, cdrom3 및 cdrom4는 예시적인 활성화 HWID(210)내의 4개의 CDROM에 대해 해쉬 식별자가다.
일 실시예에서, 컴포넌트 식별자를 해쉬하기 위해 사용된 해쉬 함수는 모듈로 함수이다. 예를들어, HWID(210)내의 BIOS 컴포넌트를 나타내는 해쉬 값(BIOS1)은 BIOS의 첫번째 2킬로바이트이고, 모듈로 8이다. 물론, 임의의 다른 해쉬 함수도 본 발명의 사상 및 범위를 벗어나지 않으면 채용될 수도 있다.
일 실시예에서, 라이센스 데이터(200)는 웨이트 벡터(220) 및 쓰레쉬홀드 스코어(240)를 포함한다. 컴퓨터 시스템이 라이센스 데이터(200)에 대응하는 소프트웨어를 작동하도록 인가되는 지의 여부를 결정하도록, 새롭게 계산된 HWID는 활성화 HWID(210)와 비교되는 경우, 그 시스템내에 있는 특정 컴포넌트 타입의 각 컴포넌트가 쿼리된다. 특정 컴포넌트 타입에 있는 각 컴포넌트에 대해, 쿼리는 해쉬된 컴포넌트 식별자를 생성하기 위해 해쉬된다. 이들 해쉬된 컴포넌트 식별자는 새롭게 계산된 HWID내에 포함된다.
활성화 HWID 및 새롭게 계산된 HWID는 서로 비교된다. 실행중인 매칭 스코어의 총계는 유지된다. 각 컴포넌트 타입에 대해, 새롭게 계산된 HWID내의 해당 타입의 컴포넌트에 대한 해쉬 값의 임의의 값이 활성화 HWID(210)내의 컴포넌트 타입에 대한 해쉬 값의 임의의 것과 매칭하면, 매칭 스코어는 증분한다. 매칭 스코어가 연산된 후, 매칭 스코어가 쓰레쉬홀드 스코어 이상이면, 현재의 HWID는 활성화 HWID와 실질적으로 매칭한다. 다른 실시예에서, HWID가 증분될 매칭 스코어에 대해 정확하게 매칭해야만 한다. 다른 실시예에서, 활성화 HWID내에 있는 소정 타입의 각 컴포넌트는, 해당 컴포넌트 타입에 대해 증분될 매칭 스코어를 위해 새롭게 계산된 HWID내에 있어야만 한다. 컴포넌트 타입에 대한 HWID간의 매칭을 결정하는 다른 수단이 또한 고려되고, 본 발명의 범위 및 사상을 벗어나지 않으면 채용될 수도 있다.
웨이트 벡터(220)는 증분양을 관리한다. 예를들어, 매칭 BIOS 식별자는 매칭 스코어를 3만큼 증가시키는 반면에, 매칭 CDROM 식별자는 매칭 스코어를 1만큼만 증가시킨다.
또한, 일 실시예에서, 매칭 스코어를 계산할 때, 타임 벡터(230)가 채용될 수 있다. 임의의 컴포넌트에 대해, 타임 벡터(230)가 해당 컴포넌트에 대한 값을 갖는다면, 그 값은 2개의 HWID의 비교에 있어서 해당 컴포넌트의 사용의 만료를 뜻한다. 예를들어, 도 2에 도시한 바와같이, 예시적인 라이센스 데이터(200)에서, 시간 주기가 몇몇 컴포넌트에 대하여 저장되어 있다. 예시적인 라이센스 데이터(200)에서, CDROM 컴포넌트에 대해 저장된 시간주기는 2년이다. 따라서, 라이센싱 이후 2년이 지난 경우에는, 현재 컴퓨터 시스템 상에 있는 CDROM에 대응하는 미스매칭된 값은 매칭 스코어를 부정적으로 영향을 주지는 않는다. 따라서, 활성화 HWID(210)(즉, cdrom1, cdrom2, cdrom3 및 cdrom4)내에 저장된 값과 매칭하는 식별자를 갖는 컴퓨터 시스템상에서 매칭 스코어가 발견되는 지의 여부에 관계없이, 매칭 스코어는 1(웨이트 벡터(220)의 값) 만큼 증가된다. 다른 실시예에서, 매칭으로 인한 것보다 만료로 인해 매칭 스코어가 증분되는 경우, 매칭 스코어는 사전 결정된 값(웨이트 벡터(220)의 값에 관계없이)만큼 증가된다.
만료가 발생하도록 인가하기 위해, 라이센스 데이터는 라이센스 데이터(200)내에 포함될 수 있다. 대안적으로, 각 타임 벡터(230) 값은 설정 날짜로서 표현될 수 있다. 또한, 시스템 클럭의 재설정이 날짜 비교를 저지하지 않는 것을 보장하기 위해 보안성 측정이 구현될 수 있다. 컴포넌트 타입(일 실시예에서, 값이 0으로 설정된 경우)에 대해 타입 벡터(230)내에 유효 데이터가 존재하지 않은 곳은, 컴포넌트가 매칭 스코어를 결정하기 위해 항상 사용된다. 예를들어, 타임 벡터(230)는 MAC, CDROM 및 디스플레이 컴포넌트 만료만을 나타낸다. 다른 컴포넌트는 그렇게 하지 못한다.
일 실시예에서, 타임 벡터 없이 단지 웨이트 벡터만이 라이센스 테이터에 포함된다. 본 실시예에서, 2개의 HWID를 비교하기 위하여, 각 컴포넌트는 고려되고, 매칭 스코어는 매칭이 있는 경우에만 증분된다. 도 3에 도시한 바와같이, 단계(310)에서, 시스템의 관련 컴포넌트 각각에 대한 현재 아이덴티티 정보가 획득된다. 단계(320)에서, 현재 아이덴티티 정보는 활성화 HWID로부터 저장 컴포넌트 아이덴티티 정보와 비교된다. 해쉬 함수가 사용되면, 아이덴티티 정보는 해쉬되고 또한 해쉬된 저장 컴포넌트 아이덴티티 정보와 비교된다. 단계(330)에서, 소정의 컴포넌트 타입에 대해 매칭이 있는 경우, 매칭 스코어는 그 컴포넌트 타입과 연관된 웨이트 벡터내의 값만큼 증가된다. 단계(340)에서, 모든 컴포넌트가 고려된 후, 매칭이 성공적인 지를 결정하기 위해 매칭 스코어는 쓰레쉬홀드 매칭 스코어와 비교된다. 이 테스트는 많은 방법으로 사용될 수 있다. 예를들어, 시스템이 소프트웨어를 실행시키기 위해 인가되었는지를 결정하기 위해 비교가 행해지고, 매칭이 성공적이라면, 컴퓨터 시스템은 그 소프트웨어를 동작시키는 것을 허용한다.
다른 실시예에서, 타임 벡터만이 포함되고, 웨이트 벡터는 라이센스 데이터(200)에 포함되지 않는다. 본 실시예에서, 컴포넌트 매칭이 발견되는 경우, 비교되는 컴포넌트 타입에 관계없이, 동일한 값이 매칭 스코어에 부가된다. 그러나, 컴포넌트 타입에 대한 특정 타입 값이 경과하였다면, 어떤 매칭도 발견되지 않더라도, 매칭 스코어는 증분될 것이다. 도 4에 도시한 바와같이, 단계(410)에서, HWID의 컴포넌트에 대해, 시스템의 관련 컴포넌트 각각에 대한 현재 아이덴티티 정보가 획득된다. 단계(420)에서, 현재 아이덴티티 정보는 활성화 HWID로부터 저장된 컴포넌트 아이덴티티 정보와 비교된다. 단계(430)에서, 소정의 컴포넌트 타입에 대한 매칭이 있는 경우 또는 만료 주기가 그 컴포넌트 타입에 대해 경과한 경우에는, 매칭 스코어가 증분된다. 전술한 바와같이, 단계(440)에서, 매칭 스코어는 매칭이 성공적인 지의 여부를 결정하기 위하여 쓰레휘홀드 매칭과 비교된다.
일 실시예에서, 매칭 스코어는 라이센스 데이터(200)내에 포함된다. 다른 실시예에서, 매칭 스코어는 실질적인 매칭이 존재하는 지의 여부의 연산으로 하드코딩된다. 따라서, 라이센스 데이터(200)는 하나의 타임 벡터, 하나의 웨이트 벡터 또는 타임 및 웨이트 벡터 둘다를 포함할 수도 있고, 이들의 임의의 조합은 매칭 스코어를 포함하거나, 대안적으로는 실질적 매칭이 존재하는 지의 여부의 연산으로 하드코딩된 매칭 스코어에 의존할 수도 있다.
타임 벡터, 웨이트 벡터 또는 둘다를 사용하면, 라이센스는 더이상은 패시브 데이터는 아니고, 라이센스 비교 데이터로 역할한다. 라이센서 또는 정보 센터는 사용자 경험을 통한 더많은 제어를 가질 수 있다. 예를들어, 라이센서는 사용자를 조사하여 이들 중 중요 부분은 2년마다 비디오 카드를 교환해줄 것인지를 찾는다. 이는 라이센서가 비디오 카드에 대한 시간 값을 2년으로 설정할 수 있다. 후에, 새 비디오 카드가 6개월내에 시장에 도착할 것을 결정할 수 있고, 대부분의 사용자는 그들의 비디오 카드를 교한할 것이다. 라이센서는 새 라이센스에서 시간값을 6개월로 설정할 수 있다. 사용자가 CDROM 드라이브를 교환하는 경우에는, 큰 변화가 결정될 수 있지만, 다른 시간 값은 사용자 행동 설명에서 매우 정확하다. 이는 다른 컴포넌트에 대한 웨이트 값보다 더 작은 CDROM 드라이브에 대한 웨이트 값을 라이센서가 설정할 수 있게 한다.
일 실시예에서, 웨이트 벡터는 사용자에 관한 정보의 변화에 대해 반응하기 위해 사용된다. 사용자는 소프트웨어에 대한 제1 라이센스를 갖는다. 다음으로, 예를들어, 평가 주기가 만료된 경우, 사용자는 소프트웨어에 대한 제2 라이센스를 갖는다. 제1 활성화 HWID는 제2 활성화 HWID와 비교되어, 컴포넌트에 대한 웨이트 값이 적절히 조정된다. 이러한 일 실시예에서, 변화된 컴포넌트는 변화하지 않은 컴포넌트에 상대적으로 증가된 웨이트로 주어진다. 이는 최근 변화된 컴포넌트는 다시 변화하지 않는다는 가정을 반영한다. 다른 이러한 실시예에서, 변화된 컴포넌트는 변화하지 않은 컴포넌트에 상대적으로 감소된 웨이트로 주어진다. 이는 사용자가 히스토리적으로 변화된 컴포넌트를 테스트 또는 변화할 것이라는 가정을 반영한다.
결론
상술한 바와같이, 본 발명의 예시적인 실시예는 각종의 연산 장치 및 네트워크 아키텍쳐와 연계하여 설명하였지만, 근본적인 개념은 하드웨어 ID를 구현하기에 적합한 임의의 연산 장치 또는 시스템에 적용될 수 있다. 따라서, 본 발명의 방법 및 시스템은 각종 애플리케이션 및 장치에 적용될 수 있다. 예를들어, 본 발명의알고리즘은, 장치 상에 개별 오브젝트로서, 다른 오브젝트의 일부로서, 서버로부터 다운로드 가능한 오브젝트로서, 장치 또는 오브젝트와 네트워크간의 "미들 맨"으로서, 분산된 오브젝트로서 제공된 연산 장치의 운영 시스템에 적용될 수 있다. 예시적인 프로그래밍 언어, 이름 및 예는 각종 선택의 대표로서 본 명세서에 선택되었지만, 이들 언어, 이름 및 예에 한정되는 것은 아니다. 본 발명에 의해 구현되는 동일, 유사 또는 동등한 시스템 및 방법을 얻는 오브젝트 코드를 제공하는 많은 방법이 있다는 것은 당업자에게는 자명하다.
본 명세서에서 설명한 각종의 기술은 하드웨어 또는 소프트웨어, 또는 적절한 이들의 조합과 연계하여 구현될 수 있다. 따라서, 본 발명의 방법 및 장치 또는 본 발명의 양태 또는 일부는 플로피 디스켓, CD-ROM, 하드 드라이브 또는 임의의 다른 머신-판독가능 스토리지 매체 등의 실제 매체로 구체화되는 프로그램 코드(즉, 명령)의 형태일 수 있고, 이 프로그램 코드는 컴퓨터, 본 발명을 실행하기 위한 장치로 된 머신 등의 머신으로 로드되고 머신에 의해 실행될 수 있다. 프로그램 코드 실행이 프로그램가능한 컴퓨터인 경우, 연산 장치는 프로세서, 프로세서(휘발성 및 비휘발성 메모리 및/또는 스토리지 소자를 포함함)에 의해 판독가능한 스토리지 매체, 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치를 일반적으로 포함한다. 본 발명의 신호 프로세싱 서비스를 이용하는 하나 이상의 프로그램은, 가령 데이터 프로세싱 API 등의 사용을 통해, 컴퓨터와 통신하는 오브젝트 지향 프로그래밍 언어 또는 하이레벨 절차로 바람직하게 구현된다. 그러나, 프로그램은 원한다면, 어셈블리 또는 머신 언어로 구현될 수 있다. 임의의 경우에서는, 언어는 컴파일되거나 해석된 언어, 및 조합된 하드웨어 구현일 수 있다.
본 발명의 방법 및 장치는, 전기 배선 또는 케이블, 광섬유 또는 임의의 다른 전송 형태 등의 몇몇 전송 매체를 통해 전송되는 프로그램 코드의 형태로 구현되는 통신을 통해 또한 실시될 수 있고, 프로그램 코드는 EPROM, 게이트 어레이, 프로그래머블 로직 장치(PLD), 클라이언트 컴퓨터, 비디오 레코더 등 또는 본 발명을 실시하기 위한 예시적인 실시예에서 설명한 상기 장치와 같은 신호 프로세싱 능력을 갖는 수신 머신 등의 머신에 의해 수신되고 로드되어 실행된다. 일반 용도의 프로세서 상에서 구현된 경우, 프로그램 코드는 본 발명의 기능을 호출하기 위해 동작하는 고유의 장치를 제공하기 위해 프로세서와 조합된다. 또한, 본 발명과 연계하여 사용된 임의의 스토리지 기술은 하드웨어 및 소프트웨어의 조합이 불변일 수 있다.
본 발명은 양호한 실시예의 각종 도면과 연계하여 설명하였지만, 다른 유사한 실시예도 사용될 수 있고, 또는 변경 및 부가는 본 발명을 벗어나지 않고, 본 발명의 동일한 기능을 실행하기 위해 설명된 실시예로서 이루어 질수 있다는 것을 이해할 것이다. 특히 많은 무선 네트워크된 장치가 계속해서 증가하는 바와같이, 핸드핼드 장치 운영 시스템 및 다른 애플리케이션 특정 운영 시스템을 포함하는 각종의 컴퓨터 플랫폼이 고려되었다는 것을 강조해야만 한다. 또한, 본 발명은 복수의 프로세싱 칩 또는 장치를 통해서 또는 이런 칩 또는 장치에서 구현될 수 있고, 스토리지는 복수의 장치를 통해 유사하게 달성될 수 있다. 따라서, 본 발명은 임의의 단일 실시예에 제한되지 않고, 첨부된 청구범위에 따른 범위 및 사상내에서구성되어야만 한다.
본 발명은 컴퓨터 시스템 사용중에 발생하는 일반적인 변화에 내성을 갖고 유연한 컴퓨터 시스템으로부터의 정보를 식별하는 것에 기초한 컴퓨터 시스템에 대한 하드웨어 ID를 제공할 수 있다.

Claims (57)

  1. 하나 이상의 컴포넌트를 갖는 컴퓨터 시스템과 함께 사용되기 위한 소프트웨어 제품에 대한 소프트웨어 라이센싱 조건의 강제를 허가하는 방법에 있어서,
    1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 컴퓨터 시스템으로부터 관련된 현재의 컴포넌트 아이덴티티를 얻는 단계;
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티와 관련된 저장 컴포넌트 아이덴티티를 비교하는 단계;
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 비교 결과가 긍정이면, 저장된 관련 컴포넌트 타입 웨이트에 매칭 스코어를 부여함으로써 상기 매칭 스코어를 증분함으로써 상기 매칭 스코어를 계산하는 단계; 및
    상기 매칭 스코어를 쓰레쉬홀드 매칭 스코어와 비교하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 관련된 현재의 컴포넌트 아이덴티티를 얻는 상기 단계는, 해당 컴포넌트 타입의 모든 컴포넌트에 대하여 개개의 관련된 현재의 컴포넌트 아이덴티티를 얻는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제2항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 적어도 하나의 컴포넌트 타입에 대해, 상기 관련된 저장 컴포넌트 아이덴티티는 하나 이상의 개개의 관련된 저장 컴포넌트 아이덴티티를 포함하고,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 관련된 저장 컴포넌트 아이덴티티와 비교하는 상기 단계는,
    상기 개개의 관련된 저장 컴포넌트 아이덴티티의 임의의 것이 상기 개개의 관련된 현재의 컴포넌트 아이덴티티의 임의의 것과 매칭하면, 긍정 결과를 복귀시키는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제2항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 적어도 하나의 컴포넌트 타입에 대해, 상기 관련된 저장 컴포넌트 아이덴티티는 하나 이상의 개개의 관련된 저장 컴포넌트 아이덴티티를 포함하고,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 관련된 저장 컴포넌트 아이덴티티와 비교하는 상기 단계는,
    상기 개개의 관련된 저장 컴포넌트 아이덴티티의 모든 것이 상기 개개의 관련된 현재의 컴포넌트 아이덴티티의 임의의 것과 매칭하면, 긍정 결과를 복귀시키는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 제1항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 얻는 단계는,
    쿼리 결과에 대하여 상기 하드웨어 컴포넌트 타입의 하드웨어 컴포넌트를 쿼리하는 단계; 및
    상기 쿼리 결과를 해쉬하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  6. 제1항에 있어서,
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 비교 결과가 긍정이면, 저장된 관련 컴포넌트 타입 웨이트를 부여하여 매칭 스코어를 증분함으로써 상기 매칭 스코어를 계산하는 상기 단계는,
    각 컴포넌트 타입에 대해, 관련 만료 주기가 경과하였는 지를 결정하는 단계; 및
    각 컴포넌트 타입에 대해, 상기 관련 만료 주기가 경과하였다면, 상기 저장된 관련 컴포넌트 타입 웨이트를 가산하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  7. 제1항에 있어서,
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 저장된 관련 컴포넌트 타입 웨이트를 부여함으로써 매칭 스코어를 계산하는 상기 단계는,
    각 컴포넌트 타입에 대해, 관련 만료 주기가 경과하였는 지를 결정하는 단계; 및
    각 컴포넌트 타입에 대해, 상기 관련 만료 주기가 경과하였다면, 사전 결정된 만료-주기 증분을 가산하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서,
    상기 1세트의 컴포넌트 타입이 사운드카드, 네트워크 카드, BIOS, CDROM 드라이브, 디스플레이 어댑터, 디스크 장치, SCSI 어댑터, 디스크 어댑터, 프로세서 및 RAM 중에서 선택된 하나 이상의 컴포넌트를 포함하는 것을 특징으로 하는 방법.
  9. 하나 이상의 컴포넌트를 갖는 컴퓨터 시스템과 함께 사용하기 위한 소프트웨어 제품에 대한 소프트웨어 라이센싱 조건의 강제를 허가하는 방법에 있어서,
    1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 컴퓨터 시스템으로부터 관련된 현재의 컴포넌트 아이덴티티를 얻는 단계;
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티와 관련된 저장 컴포넌트 아이덴티티를 비교하는 단계;
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 비교 결과가 긍정이거나 또는 관련 만료 주기가 경과하였다면, 매칭 스코어를 증분함으로써 상기 매칭 스코어를 계산하는 단계; 및
    상기 매칭 스코어를 쓰레쉬홀드 매칭 스코어와 비교하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 관련된 현재의 컴포넌트 아이덴티티를 얻는 상기 단계는, 해당 컴포넌트 타입의 모든 컴포넌트에 대하여 개개의 관련된 현재의 컴포넌트 아이덴티티를 얻는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 제10항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 적어도 하나의 컴포넌트 타입에 대해, 상기 관련된 저장 컴포넌트 아이덴티티는 하나 이상의 개개의 관련된 저장 컴포넌트 아이덴티티를 포함하고,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 관련된 저장 컴포넌트 아이덴티티와 비교하는 상기 단계는,
    상기 개개의 관련된 저장 컴포넌트 아이덴티티의 임의의 것이 임의의 상기개개의 관련된 현재의 컴포넌트 아이덴티티의 임의의 것과 매칭하면, 긍정 결과를 복귀시키는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 제10항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 적어도 하나의 컴포넌트 타입에 대해, 상기 관련된 저장 컴포넌트 아이덴티티는 하나 이상의 개개의 관련된 저장 컴포넌트 아이덴티티를 포함하고,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 관련된 저장 컴포넌트 아이덴티티와 비교하는 상기 단계는,
    상기 개개의 관련된 저장 컴포넌트 아이덴티티의 모든 것이 상기 개개의 관련된 현재의 컴포넌트 아이덴티티의 임의의 것과 매칭하면, 긍정 결과를 복귀시키는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제9항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 얻는 상기 단계는,
    쿼리 결과에 대하여 상기 하드웨어 컴포넌트 타입의 하드웨어 컴포넌트를 쿼리하는 단계; 및
    상기 쿼리 결과를 해쉬하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  14. 제9항에 있어서,
    상기 1세트의 컴포넌트 타입이 사운드카드, 네트워크 카드, BIOS, CDROM 드라이브, 디스플레이 어댑터, 디스크 장치, SCSI 어댑터, 디스크 어댑터, 프로세서 및 RAM 중에서 선택된 하나 이상의 컴포넌트를 포함하는 것을 특징으로 하는 방법.
  15. 하나 이상의 컴포넌트를 갖는 컴퓨터 시스템과 함께 사용하기 위한 소프트웨어 제품에 대한 소프트웨어 라이센싱 조건의 강제를 허가하는 라이센스 데이터 구조에 있어서,
    각각의 값이 상기 컴포넌트 중의 하나에 대한 컴포넌트 아이덴티티에 대응하는 복수의 값을 갖는 하드웨어 ID; 및
    상기 하나 이상의 컴포넌트 타입의 각각에 대해, 상기 컴포넌트 타입에 대한 웨이트 값을 갖는 웨이트 벡터
    를 포함하는 것을 특징으로 하는 라이센스 데이터 구조.
  16. 제15항에 있어서,
    상기 하드웨어 ID가 제2 하드웨어 ID와 실질적으로 매칭하는 지의 여부를 결정하기 위한 쓰레쉬홀드 스코어를 더 포함하는 것을 특징으로 하는 라이센스 데이터 구조.
  17. 하나 이상의 컴포넌트를 갖는 컴퓨터 시스템과 함께 사용하기 위한 소프트웨어 제품에 대한 소프트웨어 라이센싱 조건의 강제를 허가하는 라이센스 데이터 구조에 있어서,
    각각의 값이 상기 컴포넌트 중의 하나에 대한 컴포넌트 아이덴티티에 대응하는 복수의 값을 갖는 하드웨어 ID; 및
    상기 하나 이상의 컴포넌트 타입의 각각 적어도 하나에 대해, 상기 컴포넌트 타입에 대한 만료 값을 갖는 타임 벡터
    를 포함하는 것을 특징으로 하는 라이센스 데이터 구조.
  18. 제17항에 있어서,
    상기 하드웨어 ID가 제2 하드웨어 ID와 실질적으로 매칭하는 지의 여부를 결정하기 위한 쓰레쉬홀드 스코어를 더 포함하는 것을 특징으로 하는 라이센스 데이터 구조.
  19. 제17항에 있어서,
    상기 하나 이상의 컴포넌트 타입의 각각에 대해, 상기 컴포넌트 타입에 대한 웨이트 값을 갖는 웨이트 벡터를 더 포함하는 것을 특징으로 하는 라이센스 데이터 구조.
  20. 제19항에 있어서,
    상기 하드웨어 ID가 제2 하드웨어 ID와 실질적으로 매칭하는 지의 여부를 결정하기 위한 쓰레쉬홀드 스코어를 더 포함하는 것을 특징으로 하는 라이센스 데이터 구조.
  21. 하나 이상의 컴포넌트를 갖는 컴퓨터 시스템과 함께 사용하기 위한 소프트웨어 제품에 대한 소프트웨어 라이센싱 조건의 강제를 허가하는 컴퓨터-판독가능 매체에 있어서 - 하기의 방법을 실행하기 위한 컴퓨터 실행가능한 명령을 갖는 적어도 하나의 컴퓨터-실행가능 모듈을 그 매체 상에 저장됨 -, 상기 방법은
    1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 컴퓨터 시스템으로부터 관련된 현재의 컴포넌트 아이덴티티를 얻는 단계;
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티와 관련된 저장 컴포넌트 아이덴티티를 비교하는 단계;
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 비교 결과가 긍정이면, 저장된 관련 컴포넌트 타입 웨이트에 매칭 스코어를 부여함으로써 상기 매칭 스코어를 증분함으로써 상기 매칭 스코어를 계산하는 단계; 및
    상기 매칭 스코어를 쓰레쉬홀드 매칭 스코어와 비교하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  22. 제21항에 있어서,
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 관련된 현재의 컴포넌트 아이덴티티를 얻는 상기 단계는, 해당 컴포넌트 타입의 모든 컴포넌트에 대하여 개개의 관련된 현재의 컴포넌트 아이덴티티를 얻는 단계를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  23. 제22항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 적어도 하나의 컴포넌트 타입에 대해, 상기 관련된 저장 컴포넌트 아이덴티티는 하나 이상의 개개의 관련된 저장 컴포넌트 아이덴티티를 포함하고,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 관련된 저장 컴포넌트 아이덴티티와 비교하는 상기 단계는,
    상기 개개의 관련된 저장 컴포넌트 아이덴티티의 임의의 것이 상기 개개의 관련된 현재의 컴포넌트 아이덴티티의 임의의 것과 매칭하면, 긍정 결과를 복귀시키는 단계를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  24. 제22항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 적어도 하나의 컴포넌트 타입에 대해, 상기 관련된 저장 컴포넌트 아이덴티티는 하나 이상의 개개의 관련된 저장 컴포넌트 아이덴티티를 포함하고,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 관련된 저장 컴포넌트 아이덴티티와 비교하는 상기 단계는,
    상기 개개의 관련된 저장 컴포넌트 아이덴티티의 모든 것이 상기 개개의 관련된 현재의 컴포넌트 아이덴티티의 임의의 것과 매칭하면, 긍정 결과를 복귀시키는 단계를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  25. 제21항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 얻는 단계는,
    쿼리 결과에 대하여 상기 하드웨어 컴포넌트 타입의 하드웨어 컴포넌트를 쿼리하는 단계; 및
    상기 쿼리 결과를 해쉬하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  26. 제21항에 있어서,
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 비교 결과가 긍정이면, 저장된 관련 컴포넌트 타입 웨이트에 상기 매칭 스코어를 부여함으로써 상기 매칭 스코어를 증분시킴으로써 상기 매칭 스코어를 계산하는 상기 단계는,
    각 컴포넌트 타입에 대해, 관련 만료 주기가 경과하였는 지를 결정하는 단계; 및
    각 컴포넌트 타입에 대해, 상기 관련 만료 주기가 경과하였다면, 상기 저장된 관련 컴포넌트 타입 웨이트를 부여하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  27. 제21항에 있어서,
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 비교 결과가 긍정이면, 저장된 관련 컴포넌트 타입 웨이트에 상기 매칭 스코어를 부여함으로써 상기 매칭 스코어를 증분시킴으로써 상기 매칭 스코어를 계산하는 상기 단계는,
    각 컴포넌트 타입에 대해, 관련 만료 주기가 경과하였는 지를 결정하는 단계; 및
    각 컴포넌트 타입에 대해, 상기 관련 만료 주기가 경과하였다면, 사전 결정된 만료-주기 증분을 가산하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  28. 제21항에 있어서,
    상기 1세트의 컴포넌트 타입이 사운드카드, 네트워크 카드, BIOS, CDROM 드라이브, 디스플레이 어댑터, 디스크 장치, SCSI 어댑터, 디스크 어댑터, 프로세서 및 RAM 중에서 선택된 하나 이상의 컴포넌트를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  29. 하나 이상의 컴포넌트를 갖는 컴퓨터 시스템과 함께 사용하기 위한 소프트웨어 제품에 대한 소프트웨어 라이센싱 조건의 강제를 허가하는 컴퓨터-판독가능 매체로서 - 하기의 방법을 실행하기 위한 컴퓨터 실행가능한 명령을 갖는 적어도 하나의 컴퓨터-실행가능 모듈을 그 매체 상에 저장됨 -, 상기 방법은
    1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 컴퓨터 시스템으로부터 관련된 현재의 컴포넌트 아이덴티티를 얻는 단계;
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티와 관련된 저장 컴포넌트 아이덴티티를 비교하는 단계;
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 비교 결과가 긍정이거나 또는 관련 만료 주기가 경과하였다면, 상기 매칭 스코어를 부가함으로써 상기 매칭 스코어를 계산하는 단계; 및
    상기 매칭 스코어를 쓰레쉬홀드 매칭 스코어와 비교하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  30. 제29항에 있어서,
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 관련된 현재의 컴포넌트 아이덴티티를 얻는 상기 단계는, 해당 컴포넌트 타입의 모든 컴포넌트에 대하여 개개의 관련된 현재의 컴포넌트 아이덴티티를 얻는 단계를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  31. 제30항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 적어도 하나의 컴포넌트 타입에 대해, 상기 관련된 저장 컴포넌트 아이덴티티는 하나 이상의 개개의 관련된 저장 컴포넌트 아이덴티티를 포함하고,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 관련된 저장 컴포넌트 아이덴티티와 비교하는 상기 단계는,
    상기 개개의 관련된 저장 컴포넌트 아이덴티티의 임의의 것이 상기 개개의 관련된 현재의 컴포넌트 아이덴티티의 임의의 것과 매칭하면, 긍정 결과를 복귀시키는 단계를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  32. 제30항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 적어도 하나의 컴포넌트 타입에 대해, 상기 관련된 저장 컴포넌트 아이덴티티는 하나 이상의 개개의 관련된 저장 컴포넌트 아이덴티티를 포함하고,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 관련된 저장 컴포넌트 아이덴티티와 비교하는 상기 단계는,
    상기 개개의 관련된 저장 컴포넌트 아이덴티티의 모든 것이 상기 개개의 관련된 현재의 컴포넌트 아이덴티티의 임의의 것과 매칭하면, 긍정 결과를 복귀시키는 단계를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  33. 제29항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 얻는 단계는,
    쿼리 결과에 대하여 상기 하드웨어 컴포넌트 타입의 하드웨어 컴포넌트를 쿼리하는 단계; 및
    상기 쿼리 결과를 해쉬하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  34. 제29항에 있어서,
    상기 1세트의 컴포넌트 타입이 사운드카드, 네트워크 카드, BIOS, CDROM 드라이브, 디스플레이 어댑터, 디스크 장치, SCSI 어댑터, 디스크 어댑터, 프로세서 및 RAM 중에서 선택된 하나 이상의 컴포넌트를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  35. 하나 이상의 컴포넌트를 갖는 컴퓨터 시스템과 함께 사용하기 위한 소프트웨어 제품에 대한 소프트웨어 라이센싱 조건의 강제를 허가하는 컴퓨터 장치에 있어서,
    1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 컴퓨터 시스템으로부터 관련된 현재의 컴포넌트 아이덴티티를 얻는 수단;
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티와 관련된 저장 컴포넌트 아이덴티티를 비교하는 수단;
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 비교 결과가 긍정이면, 저장된 관련 컴포넌트 타입 웨이트에 매칭 스코어를 부여함으로써 상기 매칭 스코어를 증분함으로써 상기 매칭 스코어를 계산하는 수단; 및
    상기 매칭 스코어를 쓰레쉬홀드 매칭 스코어와 비교하는 수단
    를 포함하는 것을 특징으로 하는 컴퓨터 장치.
  36. 제35항에 있어서,
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 관련된 현재의 컴포넌트 아이덴티티를 얻는 상기 수단은, 해당 컴포넌트 타입의 모든 컴포넌트에 대하여 개개의 관련된 현재의 컴포넌트 아이덴티티를 얻는 수단을 포함하는 것을 특징으로 하는 컴퓨터 장치.
  37. 제36항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 적어도 하나의 컴포넌트 타입에 대해, 상기 관련된 저장 컴포넌트 아이덴티티는 하나 이상의 개개의 관련된 저장 컴포넌트 아이덴티티를 포함하고,
    상기 하드웨어 1세트의 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 기존 컴포넌트 아이덴티티를 관련된 저장 컴포넌트 아이덴티티와 비교하는 상기 수단은,
    상기 개개의 관련된 저장된 컴포넌트 아이덴티티의 임의의 것이 상기 개개의 관련된 현재의 컴포넌트 아이덴티티의 임의의 것과 매칭하면, 긍정 결과를 복귀시키는 수단을 포함하는 것을 특징으로 하는 컴퓨터 장치.
  38. 제36항에 있어서,
    상기 하드웨어 컴포넌트 타입 중의 적어도 하나의 컴포넌트 타입에 대해, 상기 관련된 저장 컴포넌트 아이덴티티는 하나 이상의 개개의 관련된 저장 컴포넌트 아이덴티티를 포함하고,
    상기 하드웨어 1세트의 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 관련된 저장 컴포넌트 아이덴티티와 비교하는 상기 수단은,
    상기 개개의 관련된 저장된 컴포넌트 아이덴티티의 모든 것이 상기 개개의 관련된 현재의 컴포넌트 아이덴티티의 임의의 것과 매칭하면, 긍정 결과를 복귀시키는 수단을 포함하는 것을 특징으로 하는 컴퓨터 장치.
  39. 제35항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 얻는 수단은,
    쿼리 결과에 대하여 상기 하드웨어 컴포넌트 타입의 하드웨어 컴포넌트를 쿼리하는 수단; 및
    상기 쿼리 결과를 해쉬하는 수단
    을 포함하는 것을 특징으로 하는 컴퓨터 장치.
  40. 제35항에 있어서,
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 비교 결과가 긍정이면, 저장된 관련 컴포넌트 타입 웨이트를 부여하여 상기 매칭 스코어를 증분함으로써 상기 매칭 스코어를 계산하는 상기 수단은,
    각 컴포넌트 타입에 대해, 관련 만료 주기가 경과하였는 지를 결정하는 수단; 및
    각 컴포넌트 타입에 대해, 상기 관련 만료 주기가 경과하였다면, 상기 저장된 관련 컴포넌트 타입 웨이트를 부여하는 수단
    을 포함하는 것을 특징으로 하는 컴퓨터 장치.
  41. 제35항에 있어서,
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 비교 결과가 긍정이면, 저장된 관련 컴포넌트 타입 웨이트를 부여하여 상기 매칭 스코어를 증분함으로써 상기 매칭 스코어를 계산하는 상기 수단은,
    각 컴포넌트 타입에 대해, 관련 만료 주기가 경과하였는 지를 결정하는 수단; 및
    각 컴포넌트 타입에 대해, 상기 관련 만료 주기가 경과하였다면, 사전 결정된 만료-주기 증분을 가산하는 수단
    를 포함하는 것을 특징으로 하는 컴퓨터 장치.
  42. 제35항에 있어서,
    상기 1세트의 컴포넌트 타입이 사운드카드, 네트워크 카드, BIOS, CDROM 드라이브, 디스플레이 어댑터, 디스크 장치, SCSI 어댑터, 디스크 어댑터, 프로세서 및 RAM 중에서 선택된 하나 이상의 컴포넌트를 포함하는 것을 특징으로 하는 컴퓨터 장치.
  43. 하나 이상의 컴포넌트를 갖는 컴퓨터 시스템과 함께 사용하기 위한 소프트웨어 제품에 대한 소프트웨어 라이센싱 조건의 강제를 허가하는 컴퓨터 장치에 있어서,
    1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 컴퓨터 시스템으로부터 관련된 현재의 컴포넌트 아이덴티티를 얻는 수단;
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티와 관련된 저장 컴포넌트 아이덴티티를 비교하는 수단;
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 상기 비교 결과가 긍정이거나 또는 관련 만료 주기가 경과하였다면, 상기 매칭 스코어를 증분함으로써 상기 매칭 스코어를 계산하는 수단; 및
    상기 매칭 스코어를 쓰레쉬홀드 매칭 스코어와 비교하는 수단
    를 포함하는 것을 특징으로 하는 컴퓨터 장치.
  44. 제43항에 있어서,
    상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 관련된 현재의 컴포넌트 아이덴티티를 얻는 상기 수단은, 해당 컴포넌트 타입의 모든 컴포넌트에 대하여 개개의 관련된 현재의 컴포넌트 아이덴티티를 얻는 수단을 포함하는 것을 특징으로 하는 컴퓨터 장치.
  45. 제44항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 적어도 하나의 컴포넌트 타입에 대해, 상기 관련된 저장 컴포넌트 아이덴티티는 하나 이상의 개개의 관련된 저장 컴포넌트 아이덴티티를 포함하고,
    상기 하드웨어 1세트의 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 기존 컴포넌트 아이덴티티를 관련된 저장 컴포넌트 아이덴티티와 비교하는 상기 수단은,
    상기 개개의 관련된 저장된 컴포넌트 아이덴티티의 임의의 것이 임의의 상기 개개의 관련된 현재의 컴포넌트 아이덴티티의 임의의 것과 매칭하면, 긍정 결과를복귀시키는 수단을 포함하는 것을 특징으로 하는 컴퓨터 장치.
  46. 제44항에 있어서,
    상기 하드웨어 컴포넌트 타입 중의 적어도 하나의 컴포넌트 타입에 대해, 상기 관련된 저장 컴포넌트 아이덴티티는 하나 이상의 개개의 관련된 저장 컴포넌트 아이덴티티를 포함하고,
    상기 하드웨어 1세트의 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 관련된 저장 컴포넌트 아이덴티티와 비교하는 상기 수단은,
    상기 개개의 관련된 저장된 컴포넌트 아이덴티티의 모든 것이 임의의 상기 개개의 관련된 현재의 컴포넌트 아이덴티티의 임의의 것과 매칭하면, 긍정 결과를 복귀시키는 수단을 포함하는 것을 특징으로 하는 컴퓨터 장치.
  47. 제43항에 있어서,
    상기 1세트의 하드웨어 컴포넌트 타입 중의 각 하드웨어 컴포넌트 타입에 대해, 상기 관련된 현재의 컴포넌트 아이덴티티를 얻는 수단은,
    쿼리 결과에 대하여 하드웨어 컴포넌트 타입의 하드웨어 컴포넌트를 쿼리하는 수단; 및
    상기 쿼리 결과를 해쉬하는 수단
    을 포함하는 것을 특징으로 하는 컴퓨터 장치.
  48. 제43항에 있어서,
    상기 1세트의 컴포넌트 타입이 사운드카드, 네트워크 카드, BIOS, CDROM 드라이브, 디스플레이 어댑터, 디스크 장치, SCSI 어댑터, 디스크 어댑터, 프로세서 및 RAM 중에서 선택된 하나 이상의 컴포넌트를 포함하는 것을 특징으로 하는 컴퓨터 장치.
  49. 하나 이상의 컴포넌트 타입 중 하나 이상의 컴포넌트를 갖는 컴퓨터 시스템을 실행시키기 위해 인가되는 소프트웨에 대한 소프트웨어 라이센싱 조건의 강제를 허가하는 방법에 있어서,
    각각의 값이 상기 컴포넌트 중의 하나에 대한 컴포넌트 아이덴티티에 대응하는 복수의 값을 갖는 하드웨어 ID를 생성하는 단계; 및
    상기 컴포넌트 타입의 각각에 대해, 상기 컴포넌트 타입에 대한 타임 값을 갖는 타임 벡터를 생성하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  50. 하나 이상의 컴포넌트 타입 중 하나 이상의 컴포넌트를 갖는 컴퓨터 시스템을 실행시키기 위해 인가되는 소프트웨에 대한 소프트웨어 라이센싱 조건의 강제를 허가하는 방법에 있어서,
    각각의 값이 상기 컴포넌트 중의 하나에 대한 컴포넌트 아이덴티티에 대응하는 복수의 값을 갖는 하드웨어 ID를 생성하는 단계; 및
    상기 하나 이상의 컴포넌트 타입의 각각에 대해, 상기 컴포넌트 타입에 대한 웨이트 값을 갖는 웨이트 벡터를 생성하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  51. 제50항에 있어서,
    제2 하드웨어 ID는 전 시간에서의 상기 컴퓨터 시스템을 기술하고,
    웨이터 벡터를 생성하는 상기 단계는,
    상기 제2 하드웨어 ID와는 다른 제1 하드웨어 ID에 대한 상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 사전 결정된 값만큼 상기 웨이트 값을 조정하는 단계를 포함하는 것을 특징으로 하는 방법.
  52. 하나 이상의 컴포넌트 타입 중 하나 이상의 컴포넌트를 갖는 컴퓨터 시스템을 실행시키기 위해 인가되는 소프트웨에 대한 소프트웨어 라이센싱 조건의 강제를 허가하는 컴퓨터-판독가능 매체에 있어서 - 하기의 방법을 실행하기 위한 컴퓨터 실행가능한 명령을 갖는 적어도 하나의 컴퓨터-실행가능 모듈을 그 매체 상에 저장함 -, 상기 방법은
    각각의 값이 상기 컴포넌트 중의 하나에 대한 컴포넌트 아이덴티티에 대응하는 복수의 값을 갖는 하드웨어 ID를 생성하는 단계; 및
    상기 하나 이상의 컴포넌트 타입의 각각에 대해, 상기 컴포넌트 타입에 대한타임 값을 갖는 타임 벡터를 생성하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  53. 하나 이상의 컴포넌트 타입 중 하나 이상의 컴포넌트를 갖는 컴퓨터 시스템을 실행시키기 위해 인가되는 소프트웨에 대한 소프트웨어 라이센싱 조건의 강제를 허가하는 컴퓨터-판독가능 매체에 있어서 - 하기의 방법을 실행하기 위한 컴퓨터 실행가능한 명령을 갖는 적어도 하나의 컴퓨터-실행가능 모듈을 그 매체 상에 저장함 -, 상기 방법은
    각각의 값이 상기 컴포넌트 중의 하나에 대한 컴포넌트 아이덴티티에 대응하는 복수의 값을 갖는 하드웨어 ID를 생성하는 단계; 및
    상기 하나 이상의 컴포넌트 타입의 각각에 대해, 상기 컴포넌트 타입에 대한 웨이트 값을 갖는 웨이트 벡터를 생성하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터-판독가능 매체.
  54. 제53항에 있어서,
    제2 하드웨어 ID는 전 시간에서의 상기 컴퓨터 시스템을 기술하고,
    웨이터 벡터를 생성하는 상기 단계는,
    상기 제2 하드웨어 ID와는 다른 제1 하드웨어 ID에 대한 상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 사전 결정된 값만큼 상기 웨이트 값을 조정하는 단계를 포함하는 것을 특징으로 하는 방법.
  55. 하나 이상의 컴포넌트 타입 중 하나 이상의 컴포넌트를 갖는 컴퓨터 시스템을 실행시키기 위해 인가되는 소프트웨에 대한 소프트웨어 라이센싱 조건의 강제를 허가하는 장치에 있어서,
    각각의 값이 상기 컴포넌트 중의 하나에 대한 컴포넌트 아이덴티티에 대응하는 복수의 값을 갖는 하드웨어 ID를 생성하는 수단; 및
    상기 하나 이상의 컴포넌트 타입의 각각에 대해, 상기 컴포넌트 타입에 대한 타임 값을 갖는 타임 벡터를 생성하는 수단
    을 포함하는 것을 특징으로 하는 장치
  56. 하나 이상의 컴포넌트 타입 중 하나 이상의 컴포넌트를 갖는 컴퓨터 시스템을 실행시키기 위해 인가되는 소프트웨에 대한 소프트웨어 라이센싱 조건의 강제를 허가하는 장치에 있어서,
    각각의 값이 상기 컴포넌트 중의 하나에 대한 컴포넌트 아이덴티티에 대응하는 복수의 값을 갖는 하드웨어 ID를 생성하는 수단; 및
    상기 하나 이상의 컴포넌트 타입의 각각에 대해, 상기 컴포넌트 타입에 대한 웨이트 값을 갖는 웨이트 벡터를 생성하는 수단
    을 포함하는 것을 특징으로 하는 장치.
  57. 제56항에 있어서,
    제2 하드웨어 ID는 전 시간에서의 상기 컴퓨터 시스템을 기술하고,
    웨이터 벡터를 생성하는 상기 수단은,
    상기 제2 하드웨어 ID와는 다른 제1 하드웨어 ID에 대한 상기 1세트의 컴포넌트 타입 중의 각 컴포넌트 타입에 대해, 사전 결정된 값만큼 상기 웨이트 값을 조정하는 수단을 포함하는 것을 특징으로 하는 방법.
KR1020040000762A 2003-01-06 2004-01-06 타임 및 웨이트 기반의 유연하고 내성이 있는 하드웨어id를 제공하기 위한 시스템 및 방법 KR101014140B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/337,064 US7302590B2 (en) 2003-01-06 2003-01-06 Systems and methods for providing time-and weight-based flexibly tolerant hardware ID
US10/337,064 2003-01-06

Publications (2)

Publication Number Publication Date
KR20040063824A true KR20040063824A (ko) 2004-07-14
KR101014140B1 KR101014140B1 (ko) 2011-02-14

Family

ID=32655428

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040000762A KR101014140B1 (ko) 2003-01-06 2004-01-06 타임 및 웨이트 기반의 유연하고 내성이 있는 하드웨어id를 제공하기 위한 시스템 및 방법

Country Status (14)

Country Link
US (2) US7302590B2 (ko)
EP (1) EP1452940B1 (ko)
JP (1) JP4651947B2 (ko)
KR (1) KR101014140B1 (ko)
CN (1) CN100377022C (ko)
AT (1) ATE419587T1 (ko)
AU (1) AU2004200043B2 (ko)
BR (1) BRPI0400061B1 (ko)
CA (1) CA2454842C (ko)
DE (1) DE60325550D1 (ko)
DK (1) DK1452940T3 (ko)
ES (1) ES2318085T3 (ko)
MX (1) MXPA04000166A (ko)
RU (1) RU2372653C2 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7644442B2 (en) * 2003-01-31 2010-01-05 Microsoft Corporation Systems and methods for using machine attributes to deter software piracy in an enterprise environment
US7290149B2 (en) * 2003-03-03 2007-10-30 Microsoft Corporation Verbose hardware identification for binding a software package to a computer system having tolerance for hardware changes
US20050027657A1 (en) * 2003-08-01 2005-02-03 Yuri Leontiev Distinguishing legitimate hardware upgrades from unauthorized installations of software on additional computers
US7379918B2 (en) * 2004-07-30 2008-05-27 Microsoft Corporation Method and system for single reactivation of software product licenses
US9547780B2 (en) 2005-03-28 2017-01-17 Absolute Software Corporation Method for determining identification of an electronic device
US20140013449A1 (en) 2005-07-28 2014-01-09 Adobe Systems Incorporated Delayed validation for software licensing and activation
US8712973B2 (en) * 2006-04-11 2014-04-29 International Business Machines Corporation Weighted determination in configuration management systems
US8769703B2 (en) 2006-04-27 2014-07-01 Unisys Corporation System and method for providing a mechanism to virtualize a perpetual, unique system identity on a partitioned computer system
US8521652B2 (en) * 2006-05-19 2013-08-27 Hewlett-Packard Development Company, L.P. Discovering licenses in software files
US7610483B2 (en) * 2006-07-25 2009-10-27 Nvidia Corporation System and method to accelerate identification of hardware platform classes
US20080183690A1 (en) 2007-01-26 2008-07-31 Ramachandran Puthukode G Method for providing assistance in making change decisions in a configurable managed environment
FR2912529A1 (fr) * 2007-02-13 2008-08-15 France Telecom Couplage d'un programme informatique ou de donnees a un systeme de reference et verification associee.
US8528109B2 (en) * 2007-10-09 2013-09-03 Microsoft Corporation Optimizing amount of data passed during software license activation
EP2260427A4 (en) * 2008-02-20 2016-11-16 Ericsson Telefon Ab L M FLEXIBLE NODEIDENTITY FOR TELECOM NODES
US8676714B2 (en) * 2009-06-11 2014-03-18 Microsoft Corporation Hardware specific product license validation
US20100332400A1 (en) * 2009-06-24 2010-12-30 Craig Stephen Etchegoyen Use of Fingerprint with an On-Line or Networked Payment Authorization System
US20110093503A1 (en) * 2009-10-19 2011-04-21 Etchegoyen Craig S Computer Hardware Identity Tracking Using Characteristic Parameter-Derived Data
US8316421B2 (en) * 2009-10-19 2012-11-20 Uniloc Luxembourg S.A. System and method for device authentication with built-in tolerance
US9256899B2 (en) * 2010-01-15 2016-02-09 Dell Products, L.P. System and method for separation of software purchase from fulfillment
US9235399B2 (en) * 2010-01-15 2016-01-12 Dell Products L.P. System and method for manufacturing and personalizing computing devices
US10387927B2 (en) * 2010-01-15 2019-08-20 Dell Products L.P. System and method for entitling digital assets
US9100396B2 (en) * 2010-01-29 2015-08-04 Dell Products L.P. System and method for identifying systems and replacing components
US8170783B2 (en) 2010-03-16 2012-05-01 Dell Products L.P. System and method for handling software activation in entitlement
US9218491B2 (en) * 2010-04-13 2015-12-22 Hewlett-Packard Development Company, L.P. Systems and methods for providing security in an electronic device
GB2484268A (en) 2010-09-16 2012-04-11 Uniloc Usa Inc Psychographic profiling of users of computing devices
US8657000B2 (en) 2010-11-19 2014-02-25 Exxonmobil Upstream Research Company Systems and methods for enhanced waterfloods
US8739869B2 (en) 2010-11-19 2014-06-03 Exxonmobil Upstream Research Company Systems and methods for enhanced waterfloods
US8656996B2 (en) 2010-11-19 2014-02-25 Exxonmobil Upstream Research Company Systems and methods for enhanced waterfloods
US8974661B2 (en) 2010-12-30 2015-03-10 Exxonmobil Upstream Research Company Methods for separation of bitumen from oil sands
EP2686806B1 (en) * 2011-03-15 2019-09-11 Irdeto B.V. Change-tolerant method of generating an identifier for a collection of assets in a computing environment using a secret sharing scheme
AU2011101296B4 (en) 2011-09-15 2012-06-28 Uniloc Usa, Inc. Hardware identification through cookies
US8949401B2 (en) 2012-06-14 2015-02-03 Dell Products L.P. Automated digital migration
US9779219B2 (en) 2012-08-09 2017-10-03 Dell Products L.P. Method and system for late binding of option features associated with a device using at least in part license and unique ID information
US8856757B2 (en) * 2012-11-08 2014-10-07 International Business Machines Corporation Automatic license entitlement calculation
AU2013100802B4 (en) 2013-04-11 2013-11-14 Uniloc Luxembourg S.A. Device authentication using inter-person message metadata
US8695068B1 (en) 2013-04-25 2014-04-08 Uniloc Luxembourg, S.A. Device authentication using display device irregularity
CN104850519A (zh) * 2015-04-10 2015-08-19 宁波萨瑞通讯有限公司 电子产品中硬件id更换情况的远程统计系统及方法
US10365931B2 (en) * 2017-02-27 2019-07-30 Microsoft Technology Licensing, Llc Remote administration of initial computer operating system setup options
US20200220865A1 (en) * 2019-01-04 2020-07-09 T-Mobile Usa, Inc. Holistic module authentication with a device
US20230297724A1 (en) * 2022-03-15 2023-09-21 Microsoft Technology Licensing, Llc Hardware identity restoration post-device repair

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2145068A1 (en) * 1992-09-21 1994-03-31 Ric Bailier Richardson System for software registration
JP2924560B2 (ja) * 1993-04-23 1999-07-26 日本電気株式会社 有償プログラムプロダクト利用チェック装置
US5715403A (en) * 1994-11-23 1998-02-03 Xerox Corporation System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar
US5815709A (en) * 1996-04-23 1998-09-29 San Microsystems, Inc. System and method for generating identifiers for uniquely identifying object types for objects used in processing of object-oriented programs and the like
JPH10283271A (ja) * 1997-03-31 1998-10-23 Victor Co Of Japan Ltd 暗号鍵生成方法,光ディスク,情報再生方法及びその装置
US6148407A (en) * 1997-09-30 2000-11-14 Intel Corporation Method and apparatus for producing computer platform fingerprints
US6501846B1 (en) * 1997-11-25 2002-12-31 Ethentica, Inc. Method and system for computer access and cursor control using a relief object image generator
US6243468B1 (en) * 1998-04-29 2001-06-05 Microsoft Corporation Software anti-piracy system that adapts to hardware upgrades
US7503072B2 (en) * 1998-04-29 2009-03-10 Microsoft Corporation Hardware ID to prevent software piracy
US6327652B1 (en) 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US6697948B1 (en) 1999-05-05 2004-02-24 Michael O. Rabin Methods and apparatus for protecting information
DE10023820B4 (de) * 2000-05-15 2006-10-19 Siemens Ag Software-Schutzmechanismus
DE10155752A1 (de) * 2001-11-14 2003-05-22 Siemens Ag Lizenzierungsverfahren
JP4313941B2 (ja) * 2000-09-29 2009-08-12 株式会社東芝 半導体記憶装置
KR100375220B1 (ko) * 2000-10-12 2003-03-07 삼성전자주식회사 플래시 메모리 장치 형성방법
US6898286B2 (en) * 2000-12-19 2005-05-24 International Business Machines Corporation Method and system verifying product licenses using hardware and product identifications
US20040073789A1 (en) * 2002-10-15 2004-04-15 Powers John Stephenson Method for collaborative software licensing of electronically distributed computer programs
TWI255683B (en) * 2005-01-05 2006-05-21 Asustek Comp Inc Portable electronic device and battery module thereof

Also Published As

Publication number Publication date
JP4651947B2 (ja) 2011-03-16
DK1452940T3 (da) 2009-03-23
CA2454842C (en) 2012-10-23
KR101014140B1 (ko) 2011-02-14
CA2454842A1 (en) 2004-07-06
US7302590B2 (en) 2007-11-27
MXPA04000166A (es) 2005-06-17
RU2004100639A (ru) 2005-06-10
AU2004200043B2 (en) 2009-07-16
RU2372653C2 (ru) 2009-11-10
CN100377022C (zh) 2008-03-26
US7779274B2 (en) 2010-08-17
ATE419587T1 (de) 2009-01-15
US20040133792A1 (en) 2004-07-08
EP1452940B1 (en) 2008-12-31
BRPI0400061B1 (pt) 2016-08-09
EP1452940A1 (en) 2004-09-01
BRPI0400061A (pt) 2004-10-19
JP2004213676A (ja) 2004-07-29
AU2004200043A1 (en) 2004-07-22
ES2318085T3 (es) 2009-05-01
DE60325550D1 (de) 2009-02-12
US20080040619A1 (en) 2008-02-14
CN1609746A (zh) 2005-04-27

Similar Documents

Publication Publication Date Title
KR101014140B1 (ko) 타임 및 웨이트 기반의 유연하고 내성이 있는 하드웨어id를 제공하기 위한 시스템 및 방법
US8103592B2 (en) First computer process and second computer process proxy-executing code on behalf of first process
US7380275B2 (en) Secure and backward-compatible processor and secure software execution thereon
US6363486B1 (en) Method of controlling usage of software components
Chen et al. Certifying program execution with secure processors
US8271803B2 (en) Anti-debugging protection of binaries with proxy code execution
JP5636371B2 (ja) 汎用コンピューティングデバイスにおけるコード実行制御および再帰的セキュリティプロトコルでのコード実行制御のための方法およびシステム
JP2005316974A (ja) ソフトウエアのアップデートを制限する方法およびシステム
US20080244746A1 (en) Run-time remeasurement on a trusted platform
JP2011516953A (ja) 自動解析を採用する改竄防止システム
KR20090097174A (ko) 소프트웨어 라이센스에서의 조건부 정책
US11966461B2 (en) Virtual environment type validation for policy enforcement
US7080249B1 (en) Code integrity verification that includes one or more cycles
US7979911B2 (en) First computer process and second computer process proxy-executing code from third computer process on behalf of first process
US7788496B2 (en) First computer process and second computer process proxy-executing code on behalf thereof
Morris Certifying Program Execution with Secure Processors

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140123

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150121

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 9