KR20070121647A - 볼륨 라이센스 환경에서 소프트웨어 무단복제를 방지하는컴퓨터 구현 방법, 시스템 및 컴퓨터 판독가능 매체 - Google Patents

볼륨 라이센스 환경에서 소프트웨어 무단복제를 방지하는컴퓨터 구현 방법, 시스템 및 컴퓨터 판독가능 매체 Download PDF

Info

Publication number
KR20070121647A
KR20070121647A KR1020077019406A KR20077019406A KR20070121647A KR 20070121647 A KR20070121647 A KR 20070121647A KR 1020077019406 A KR1020077019406 A KR 1020077019406A KR 20077019406 A KR20077019406 A KR 20077019406A KR 20070121647 A KR20070121647 A KR 20070121647A
Authority
KR
South Korea
Prior art keywords
data
environment
volume license
software
machine
Prior art date
Application number
KR1020077019406A
Other languages
English (en)
Other versions
KR101075380B1 (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 KR20070121647A publication Critical patent/KR20070121647A/ko
Application granted granted Critical
Publication of KR101075380B1 publication Critical patent/KR101075380B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • 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]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • 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]
    • G06F21/107License processing; Key processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

볼륨 라이센스 환경에서 소프트웨어 무단복제를 방지하기 위한 방법, 시스템 및 컴퓨터 판독가능 매체를 제공한다. 볼륨 라이센스 파일 내에 임베디드된 볼륨 라이센스 키가 수신된다. 볼륨 라이센스 키는 환경의 적어도 하나의 기계 속성으로부터 얻어진 제1 데이터를 갖는다. 볼륨 라이센스 파일은 환경의 적어도 하나의 기계 속성으로부터 얻어진 제2 데이터를 이용하여 인증된다. 그 다음에, 볼륨 라이센스 키와 연관된 소프트웨어 패키지는 환경 내의 적어도 하나의 컴퓨팅 장치 상에서 활성화된다.
볼륨 라이센스 환경, 소프트웨어, 무단복제, 컴퓨팅, 볼륨 라이센스 키

Description

볼륨 라이센스 환경에서 소프트웨어 무단복제를 방지하는 컴퓨터 구현 방법, 시스템 및 컴퓨터 판독가능 매체{SYSTEMS AND METHODS FOR USING MACHINE ATTRIBUTES TO DETER SOFTWARE PIRACY IN AN ENTERPRISE ENVIRONMENT}
관련 출원의 상호 참조
본 출원은 2003년 1월 31일 출원된 발명의 명칭이 "볼륨 라이센스 환경에서의 소프트웨어 무단복제를 방지하기 위한 시스템 및 방법(Systems And Methods For Deterring Software Piracy in a Volume License Environment)"인 미국 특허 출원 제10/356,225의 일부 계속 출원이며, 그 개시 내용은 본원에서 완전히 개시된 것과 같이 참조로서 병합하고 있다.
본 발명은 소프트웨어 무단복제 방지 분야에 관한 것으로, 더욱 상세하게는, 볼륨 라이센스 키(volume license key; VLK)를 이용한 소프트웨어의 볼륨 라이센싱 분야에 관한 것이다.
소프트웨어 무단복제로 인해, 소프트웨어 벤더가 매년 상당한 금액을 손해를 보기 때문에, 소프트웨어 무단복제는 전 세계적인 문제이다. 무심결의 복제(casual copying)로 알려져 있는 한 가지 유형의 무단복제는, 최종 사용자 라이센스 협정을 위반하여 다수의 컴퓨터 상에서 소프트웨어를 공유하고 설치하는 것을 말한다. 제품 활성화는 이러한 유형의 무단복제를 줄이는 한 가지 방법이다.
일반적으로, 제품 활성화는 통상적으로 설치 식별 코드 및 하드웨어 식별자 중 적어도 어느 하나를 소프트웨어 벤더에 제출하는 것에 의존한다. 이에 응답하여, 소프트웨어 벤더는 활성화 확인 코드(activation confirmation code)를 돌려준다. 통상적인 제품 활성화를 갖는 소매 애플리케이션(retail application)의 경우, 각각의 상자에 포장된 소프트웨어 패키지에는 고유 제품 키가 제공되어 있다. 일반적으로, 일정한 유예기간(소프트웨어가 활성화되지 않은 상태로 실행될 소프트웨어의 설치 후의 일정 기간) 후에, 고객은 소프트웨어 벤더와 연락하여 자신의 소프트웨어의 사본을 활성화해야 한다. 이와 같이 활성화하지 못하면, 종종 소프트웨어가 비활성화되거나 소프트웨어의 기능이 저하된다. 일반적으로, 고유 제품 키를 이용하여 고유 제품 식별 코드를 생성할 수 있으며, 이 고유 제품 식별 코드는 해시 하드웨어 관련 값과 조합되어 소프트웨어가 실행되는 기계에 고유한 설치 식별 코드를 생성할 수 있다. 일반적으로, 소프트웨어가 실행될 수 있도록 하는 활성화 확인은 고객에게 돌려 보내진다. 이와 관련하여, 활성화 확인은 라이센스 파일, 또는 라이센스를 표현하는 2진수일 수도 있다. 로그인할 때마다, 라이센스된 소프트웨어는 그것이 활성화되었던 하드웨어와 본질상 동일한 하드웨어 상에서 실행되는지를 알아보는 검사를 한다. 이 검사가 실패하면, 소프트웨어가 다시 실행되기 전에 재활성화를 필요로 한다.
일반적으로, 자신의 영역 내에 수백 또는 수천 개의 기계를 가질 수 있는 법인 고객이 설치된 각각의 소프트웨어 사본마다 소프트웨어 벤더와 연락하여 기계 고유 활성화 코드를 수신하는 것은 가능하지 않기 때문에, 법인 고객은 볼륨 라이센스를 구매한다. 따라서, 일반적으로, 볼륨 라이센스 키가 검출된 경우 소프트웨어가 활성화 요건을 회피하기 때문에, 볼륨 라이센스의 소유자는 자신의 소프트웨어를 활성화하기 위해 소프트웨어 벤더와 연락하지 않아도 된다. 따라서, 다수의 서로 다른 컴퓨터 상에서 동일한 볼륨 라이센스 키를 이용할 수 있으므로, 어느 컴퓨터도 유예기간이 만료하기 전에 또는 만료한 후에, 소프트웨어를 실행시키기 위해 활성화를 필요로 하지 않는다. 이러한 특징으로 인해, 법인 고객이 소프트웨어를 설치하는 경우에는 볼륨 라이센스 키가 더 편리하지만, 또한 무단복제의 매력적인 타깃이 되고 있다.
따라서, 볼륨 라이센스 키의 무단복제를 더 어렵게 하기 위한 메커니즘에 대한 요구가 존재한다. 본 발명은 이러한 요구를 만족시킨다.
상기 단점 및 결점을 고려하여, 본원에서는 볼륨 라이센스 환경에서 소프트웨어 무단복제를 방지하기 위한 방법, 시스템 및 컴퓨터 판독가능 매체가 제공된다. 본 발명의 방법에서는, 볼륨 라이센스 파일에 임베디드된 볼륨 라이센스 키가 수신된다. 볼륨 라이센스 키는 볼륨 라이센스 환경의 적어도 하나의 기계 속성으로부터 얻어지는 제1 데이터를 갖는다. 볼륨 라이센스 파일은 볼륨 라이센스 환경의 적어도 하나의 기계 속성으로부터 얻어지는 제2 데이터를 이용하여 인증된다. 그 다음에, 볼륨 라이센스 키와 연관된 소프트웨어 패키지는 볼륨 라이센스 환경 내의 적어도 하나의 컴퓨팅 장치 상에서 활성화된다.
본 발명의 시스템에서는, 볼륨 라이센스 파일 내에 임베디드되는 볼륨 라이센스 키와 연관된 소프트웨어 패키지가 제공된다. 볼륨 라이센스 파일은 컴퓨팅 환경의 기계 속성으로부터 얻어지는 제1 데이터를 갖는다. 컴퓨팅 환경의 기계 속성으로부터 제2 데이터를 얻고 제2 데이터를 제1 데이터와 비교하기 위한 인증 루틴이 제공된다. 또한, 볼륨 라이센스 파일의 인증에 응답하여 볼륨 라이센스 키에 따라 소프트웨어 패키지를 활성화하기 위한 활성화 루틴이 제공된다.
첨부된 도면을 참조하여 읽으면, 상기 발명의 상세한 설명뿐만 아니라 바람직한 실시예의 다음 상세한 설명을 더 잘 이해할 것이다. 본 발명의 예시하기 위한 목적으로, 본 발명의 예시적인 구성이 도면에 도시되어 있지만, 본 발명은 개시되어 있는 특정 방법 및 수단에 한정되지 않는다.
도 1은 본 발명의 양태가 구현될 수 있는 예시적인 컴퓨팅 환경.
도 2a는 본 발명의 일 실시예에 따른 소프트웨어 무단복제를 방지하기 위한 예시적인 하드웨어 바인딩 강제된 시스템을 도시한 블록도.
도 2b는 본 발명의 일 실시예와 관련하여 이용될 수 있는 예시적인 클라이언트 데이터의 블록도.
도 3은 본 발명의 일 실시예에 따른 소프트웨어 무단복제를 방지하기 위한 예시적인 오프라인 시스템을 도시한 블록도.
도 4는 본 발명의 일 실시예에 따른 하드웨어 바인딩 강제된 시스템에서 소프트웨어 무단복제를 방지하기 위한 예시적인 방법의 흐름도.
본 발명의 요지는 법령 요건을 만족시키기 위해 한정적으로 설명된다. 그러나, 상세한 설명 자체는 본 특허의 범위를 한정하기 위한 것은 아니다. 오히려, 본 발명의 발명자는, 현재 또는 미래 기술과 관련하여 본 문헌에서 설명되는 것과 유사한 다른 단계 또는 요소를 포함하도록, 그 청구 요지를 다른 방법으로 구현할 수도 있음을 생각하고 있다. 또한, 본원에서 "단계"란 용어는 채용된 방법의 서로 다른 양태를 의미하는데 이용될 수 있지만, 개별적인 단계의 순서가 명시적으로 설명되지 않는 한 또한 명시적으로 설명되는 경우를 제외하고는, 본원에서 "단계"란 용어는 여러 단계 중에서 또는 여러 단계 사이에서 임의의 특정 순서를 의미하는 것으로서 해석되지 않아야 한다.
예시적인 컴퓨팅 환경
도 1은 본 발명이 구현되기에 적합한 컴퓨팅 시스템 환경(100)의 예제를 도시하고 있다. 컴퓨팅 시스템 환경(100)은 단지 적합한 컴퓨팅 환경의 한가지 일례이며, 본 발명의 사용 범위 또는 기능에 관해 어떠한 제한을 제안하고자 하는 것이 아니다. 컴퓨팅 환경(100)이 예시적인 운영 환경(100)에서 도시된 임의의 하나의 컴포넌트 또는 컴포넌트들의 조합에 관해 임의의 종속성 또는 요구사항을 가지는 것으로 해석되어서는 안 된다.
본 발명은 많은 기타 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성에서 동작할 수 있다. 본 발명에 사용하기에 적합하고 잘 알려진 컴퓨팅 시스템, 환경 및 구성의 적어도 어느 하나의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬 드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템이나 장치 등의 임의의 것을 포함하는 분산 컴퓨팅 환경이 있지만 이에 제한되는 것은 아니다.
본 발명은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어의 일반적인 문맥으로 기술될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하고 또는 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 통상, 여러 실시예에서 설명된 것과 같이, 프로그램 모듈의 기능은 결합되거나 분산될 수 있다. 본 발명은 또한 통신 네트워크를 통해 링크된 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 로컬 및 원격 컴퓨터 저장 매체 둘 다에 위치할 수 있다.
도 1과 관련하여, 본 발명을 구현하는 예시적인 시스템은 컴퓨터(110)의 형태인 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트는 처리 장치(120), 시스템 메모리(130) 및 시스템 메모리를 포함하는 각종 시스템 컴포넌트를 처리 장치(120)에 결합하는 시스템 버스(121)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 포함하는 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예제로서, 이러한 아키텍처는 ISA(industry standard architecture) 버스, MCA(micro channel architecture) 버스, EISA(Enhanced ISA) 버스, VESA(video electronics standard association) 로컬 버스 그리고 메자닌 버스(mezzanine bus)로도 알려진 PCI(peripheral component interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(110)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 이동불가식 매체를 포함한다. 예제로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위해 모든 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 이동불가식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(110)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호내의 정보가 암호화되도록 그 신호의 하나 이상의 특성을 설정 또는 변경시킨 신호를 의미한다. 예제로서, 통신 매체는 유선 네트워크 또는 다이렉트 유선 접속과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되어야 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 시 컴퓨터(110) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(133)은 통상적으로 ROM(131)에 저장되어 있다. RAM(132)은 통상적으로 처리 장치(120)에 즉시 액세스 가능하고 및/또는 현재 처리 장치(120)에 의해 동작되고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예제로서, 도 1은 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 또한 기타 이동식/이동불가식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예제로서, 도 1은 이동불가식, 비휘발성 자기 매체로의 기록 또는 그로부터의 판독을 위한 하드 디스크 드라이브(141), 이동식, 비휘발성 자기 디스크(152)로의 기록 또는 그로부터의 판독을 위한 자기 디스크 드라이브(151), CD-ROM 또는 기타 광 매체 등의 이동식, 비휘발성 광 디스크(156)로의 기록 또는 그로부터의 판독을 위한 광 디스크 드라이브(155)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/이동불가식, 휘발성/비휘발성 컴퓨터 기억 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이 프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(141)는 통상적으로 인터페이스(140)와 같은 이동불가식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에서 설명되고 도 1에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 컴퓨터(110)의 다른 데이터를 저장한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이 컴포넌트들이 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)와 동일할 수도 있고 다를 수도 있다는 것이다. 이에 관해, 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)에 다른 번호가 주어졌다는 것은 적어도 이들이 서로 다른 사본(copy)이라는 것을 도시한다. 사용자는 키보드(162) 및 마우스, 트랙볼(trackball) 또는 터치 패드와 같은 포인팅 장치(161) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 사용자 입력 인터페이스(160)를 통해 처리 장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속될 수 있다. 모니터 외에, 컴퓨터는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(195)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 도 1에는 메모리 저장 장치(181)만이 도시되어 있지만, 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 공통 네트워크 노드일 수 있고, 통상적으로 컴퓨터(110)와 관련하여 상술된 구성요소의 대부분 또는 그 전부를 포함한다. 도 1에 도시된 논리적 연결로는 LAN(171) 및 WAN(173)이 있지만, 다른 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 회사 전체에 걸친 컴퓨터 네트워크, 인트라넷 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 통상적으로 인터넷과 같은 WAN(173) 상에서의 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121)에 접속된다. 네트워크화된 환경에서, 컴퓨터(110) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 그 예제 로서, 도 1은 메모리 장치(181)에 상주하고 있는 원격 애플리케이션 프로그램(185)을 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이의 통신 링크를 설정하는 다른 수단이 사용될 수 있다는 것을 이해할 것이다.
예시적인 분산 컴퓨팅 프레임워크 또는 아키텍처
여러 분산 컴퓨팅 프레임워크는 개인용 컴퓨팅와 인터넷의 융합을 고려하여 개발되어 왔고 또한 개발되고 있다. 개인이나 영업용 사용자나 다 같이 애플리케이션 및 컴퓨팅 장치를 위한 무결절성 상호 운용 및 웹 가동형(web-enabled) 인터페이스를 제공받아, 컴퓨팅 활동이 더욱더 웹 브라우저 또는 네트워크를 지향(network-oriented)하도록 한다.
예를 들어, MICROSOFT®'s.NET 플랫폼은 서버, 웹 기반 데이터 기억장치와 같은 빌딩블록 서비스, 및 다운로드 가능 장치 소프트웨어를 포함한다. 일반적으로 말하자면, .NET 플랫폼은 (1) 컴퓨팅 장치의 전체 범위가 함께 작업하도록 하고, 사용자 정보를 자동으로 갱신하고 컴퓨팅 장치 모두와 동기화되도록 하는 기능, (2) HTML보다는 XML의 대량 사용에 의해 가동되는 웹 사이트를 위해 증가한 대화형 기능, (3) e-mail과 같은 여러 애플리케이션의 관리를 위한 중심 시작점으로부터 사용자에의 제품 및 서비스의 맞춤형 액세스 및 전달을 특징으로 하는 온라인 서비스, 즉, 예를 들어, Office.NET과 같은 소프트웨어, (4) 사용자 및 장치 사이에서 정보의 동기화뿐만 아니라 정보에의 액세스를 쉽게 하며 그 효율을 증가시킬 집중형 데이터 기억장치, (5) e-mail, 팩스 및 전화와 같은 여러 통신 매체를 통합 하는 기능, (6) 개발자를 위해, 재사용 가능 모듈을 생성함으로써, 생산성을 증가시키며 프로그래밍 에러의 개수를 감소시키는 기능, 및 (7) 또한 다수의 다른 관련 플랫폼 통합 특징(features)도 제공한다.
컴퓨팅 장치에 상주하는 소프트웨어와 관련하여 본원의 예시적인 실시예를 설명하지만, 본 발명의 하나 이상의 부분을 운영 체제, API, 또는 코프로세서와 요청하는 객체 간의 미들웨어 소프트웨어를 통해 구현하여, 모든 .NET의 언어와 서비스를 통해 액세스되거나 지원되는 다른 분산형 컴퓨팅 프레임워크에서 서비스를 수행할 수도 있다.
예시적인 실시예
도 2a는 본 발명의 일 실시예에 따른 소프트웨어 무단복제를 방지하기 위한 하드웨어 바인딩 강제된 배포 시스템의 블록도이다. 서버(204) 또는 벤더(202)는 WAN, LAN(유선 또는 무선), 인트라넷, 인터넷 등과 같은 네트워크를 통해 하나 이상의 클라이언트(206 또는 208)에 접속될 수 있다. 도 2a에서, 점선은 본 발명의 다른 구현 예를 도시하는 것으로서, 서버(204)는 초기 라이센스 파일 검색에 필요하지만 본 발명을 구현하는데에는 필요하지 않기 때문에 선택적이다.
소프트웨어 벤더는 상술한 것과 같은 네트워크를 통해 직접, 또는 CD-ROM(이에 한정되는 것은 아님)과 같은 일부 매체를 통해 볼륨 라이센스된 소프트웨어(212)의 사본을 볼륨 라이센스 소유자에게 제공할 수 있다. 소프트웨어(212)에는 기업 고유 또는 볼륨 라이센스 소유자 고유 VLK(222)가 수반될 수 있다. 본 발명의 일 실시예에서, VLK(222)는 라이센스 파일(224)로 지칭되는 비교적 큰 파일 내에 임베디드될 수 있다. 라이센스 파일(224)은 예를 들어, 볼륨 라이센스 소유자에 대한 식별자 및 소유자에게 라이센스되는 제품에 기초하여 구성될 수 있고, 해시 도메인 제어기(domain controller; DC) 명칭이나 활성 디렉토리(active directories; ADs) 등과 같은 환경적인 바인딩 정보를 포함할 수 있다.
또한, 일 실시예에서, 라이센스 파일(224)은 예를 들어, 하나 이상의 기계 속성(260 및 270 중 적어도 어느 하나)에 기초한 하드웨어 바인딩 정보를 포함할 수 있다. 예를 들어, 라이센스 파일(224)은 각각 하나 이상의 클라이언트(206 또는 208)로부터의 기계 속성(260 또는 270)을 포함할 수 있다. 기계 속성은 클라이언트(206 또는 208)와 연관된 하드웨어 장치를 식별하는 임의의 데이터 유형일 수 있다. 예를 들어, 기계 속성은 프로세서 ID 등일 수 있다. 라이센스 파일(224)에서 이용되는 기계 속성(260 또는 270)은 해시되거나 그렇지 않으면 라이센스 파일(224) 내에서 처리될 수 있다. 따라서, 라이센스 파일(224)은 사실상 클라이언트(206 및 208 중 적어도 어느 하나)의 고객 네트워크 내에 포함된 하드웨어의 관점에서 고객의 컴퓨팅 환경의 이미지를 포함할 수 있다.
라이센스 파일(224)에서 해시 값이든 다른 값이든 간에 관계없이 기계 속성(260 또는 270)을 포함하기 때문에, 잠재적인 소프트웨어 무단복제가 합법적인 소프트웨어(212) 사본의 고객 환경을 복제하는 것을 방지한다는 것을 알게 될 것이다. 예를 들어, 고객이 "client1", "client2" 및 "client3"으로 지칭되는 3개의 클라이언트 컴퓨터를 가지고 있는 경우, 소프트웨어 무단복제는 예를 들어, 동일한 클라이언트 명칭을 이용하여 소프트웨어를 제2 네트워크에 복제하려는 시도를 할 수 있다. 클라이언트 컴퓨터 중 하나 이상으로부터의 기계 속성을 통합하여 하드웨어 바인딩 정보를 라이센스 파일(224) 내에 통합함으로써, 키 유형으로서 이용될 수 있는 컴퓨팅 환경의 이미지가 생성된다. 아래에 설명되는 바와 같이, 클라이언트(206 또는 208)가 소프트웨어(212)를 인증하려고 할 때, 컴퓨팅 환경 내의 클라이언트의 기계 속성을 이용하여 컴퓨팅 환경의 제2 이미지를 생성한다. 그 다음에, 이 이미지를 초기 이미지와 비교하여 소프트웨어(212)가 적당한 컴퓨팅 환경에 설치되고 있는지를 판정할 수 있다. 따라서, 일 실시예는 소프트웨어(212)가 동작할 수 있는 컴퓨터 환경이 소프트웨어(212)가 인증된 실제 환경인지를 검증하기 위한 메커니즘을 제공한다. 그 결과, 일 실시예에서는 하드웨어 고유 데이터를 이용하여 소프트웨어(212)를 인증하기 때문에, 인증된 환경을 재생성하려는 무단복제 시도는 실패할 수 있다는 것을 알게 될 것이다.
기계 속성(260 및 270 중 적어도 어느 하나)을 포함하는 것뿐만 아니라, 일 실시예에 따라, 라이센스 파일(224)은 기계 속성(260 또는 270)이 수집될 때 생성되는 타임 스탬프를 포함할 수 있다. 또한, 라이센스 파일(224)은 서명 또는 다른 이러한 인증 메커니즘을 포함할 수도 있다. 기계 속성(260 및 270 중 적어도 어느 하나)과 연관된 타임 스탬프의 포함으로 인해, 기계 속성(260 및 270 중 적어도 어느 하나)에 의해 쉬워지는 하드웨어 바인딩이 현재로서는 알려져 있기 때문에, "반복(replay)" 공격 등으로부터 소프트웨어를 보호하는 것을 돕는다는 것을 알게 될 것이다. 일 실시예에 따라 클라이언트(206)로부터 수집될 수 있는 예시적인 클라이언트 데이터의 그래픽 표현이 도 2b와 관련하여 예시되어 있다. 이하, 도 2b를 참조하면, 예를 들어, 라이센스 파일(224) 내의 통합을 위해 클라이언트(206)로부터 전송될 수 있는 데이터(266)의 일 예가 도시되어 있다. 일 실시예에서, 데이터(266)는 하나 이상의 기계 속성(260), 타임 스탬프(262) 및 서명(264)을 포함한다. 서명은 라이센스 파일(224) 등의 무결성을 검증하는데 이용될 수 있다.
이하, 도 2a를 참조하면, 일 실시예에서 라이센스 파일(224)은 비교적 큰 시스템 파일일 수 있다는 것에 주목하자. 선택된 특정 파일 유형은 이미지 또는 오디오 파일 포맷을 포함하는 임의 유형의 파일 유형일 수 있지만, 이에 한정되지 않는다. VLK(222)는 데이터 내의 임의의 장소에 임베디드될 수 있으며, 일 실시예에서는 비밀 키로 서명하여 라이센스 파일(224)을 생성할 수 있다. 본 발명의 일 실시예에서, 라이센스 파일(224)의 크기는 플로피 디스크 등에 라이센스 파일(224)을 복제하는 것을 방지하기 위해, 예를 들어, 2MB와 같이 1.44MB(Megabytes)보다 크다. 본 발명의 일 실시예에서, 라이센스 파일(224)은 라이센스 파일(224)만을 포함하며 연관된 소프트웨어(212)를 포함하는 CD-ROM의 볼륨 라벨과 다른 볼륨 라벨을 갖는 CD-ROM 상에 제공될 수 있다.
이하, 라이센스 소유자의 소프트웨어(212)가 로그온 시 클라이언트(206이나 208 등) 사이에 배포되는 상술한 실시예를 참조하면, 클라이언트 기계(206이나 208 등) 상에 상주하는 활성화 코드는 라이센스 파일(224)의 내용을 판독하여 라이센스 파일(224)이 변형되었는지를 검증한다. 본원에서 사용된, 활성화란 소프트웨어 라이센스 데이터, 네트워크 환경 바인딩, 하드웨어 바인딩을 확인하여 추가 바인딩 확인 없이 소프트웨어가 일정 기간 내에서 기능을 할 수 있도록 하는 프로세스를 지칭한다. 이와 관련하여, 소프트웨어 설치 프로세스 동안에, VLK(222) 및 라이센스 파일(224) 중 적어도 어느 하나를 예를 들어, 서버(204)를 통해 클라이언트(208) 또는 클라이언트(206)에 전송할 수 있다. 서버 위치로부터 라이센스 파일을 수신하는 것은 선택적이다.
본 발명의 검증 프로세스는 로컬 기계 상의 라이센스를 라이센스 내에 정의된 바인딩(들) 또는 정책과 대조하는 단계를 포함할 수 있다. 예를 들어, 하드웨어 바인딩과 관련하여 상술한 고객의 컴퓨팅 환경으로 이루어진 이미지의 환경에서, 소프트웨어(212)를 검증하려고 하고 있는 클라이언트(206 또는 208)는 상술한 기계 속성(260 또는 270)을 다시 이용할 수 있어, 라이센스 파일(224)에 포함된 것과 속성이 일치하는지에 대해 판정을 할 수 있다. 그렇지 않은 경우, 불일치는 인증되지 않은 컴퓨터 및 환경 중 적어도 어느 하나에서 소프트웨어(212)를 설치하려는 시도가 이루어지고 있음을 표시할 수 있다. 고객은 기존 컴퓨팅 환경에 대해 클라이언트(206 또는 208)를 추가하거나 바꿀 수 있다는 것을 알게 될 것이다. 라이센스 파일(224)이 소프트웨어(212)를 인증하고 있는 동안 생성된 환경 이미지와 이미지 파일(224)에 포함된 환경 이미지 간의 약간의 변화를 허용하지 않는 경우, 고객은 컴퓨팅 환경에서 모든 클라이언트(206 및 208) 상에서 소프트웨어(212)를 재인증하며 라이센스 파일을 재생성하는 것 및/또는 벤더(202)로부터 새로운 라이센스 파일(224)을 얻는 것을 실행하지 않는다면 새로 추가된 클라이언트(206, 208)에 소프트웨어(212)를 추가할 수 없을 것이다.
따라서, 일 실시예는 라이센스 파일(224)이 이런 환경을 위해 생성된 때 생 성된 이미지와, 소프트웨어(212)가 특정 클라이언트 컴퓨터 상에서 인증되려고 할 때 생성된 이미지 간의 약간의 차이를 허용할 수 있는 하드웨어 바인딩 허용오차를 제공한다. 허용오차는 예를 들어, 벤더(202) 등에 의해 설정될 수 있고, 임의의 보안 레벨에 영향을 주도록 선택될 수 있다. 일반적으로 말하자면, 선택된 허용오차가 커지면, 컴퓨팅 환경에서 큰 변화를 허용할 것이기 때문에, 제공되는 보안이 작아지게 된다는 것을 알게 될 것이다. 그러나, 허용오차가 커지면, 하드웨어 변경 관점에서 고객 유연성이 커지게 되므로, 고객은 새로운 라이센스 파일(224)을 재적용할 필요 없이 컴퓨팅 환경에 도달할 수 있다. 따라서, 예를 들어, 무단복제나 고객 요구 등의 가능성과 같은 요인에 기초하여 이러한 허용오차 레벨을 결정할 필요가 있을 수 있다는 것을 알게 될 것이다.
라이센스 파일(224)의 무결성은 파일의 서명을 대조함으로써 검증될 수 있다. 라이센스 파일(224)이 변형되지 않으면, 즉, 무결성이 검증되면, 소프트웨어를 실행하는 것이 허용될 수 있다. 라이센스 파일(224)이 변형되었으면, 소프트웨어는 기능이 감소한 모드로 실행될 수 있다.
일반적으로, 소프트웨어의 큰 스케일 배치는 너무 비싸고 시간이 많이 걸리므로, 관리자가 개인적으로 다수의 기계를 설치할 수 없다. 또한, 관리자는 종종 최종 사용자가 자신의 기계를 개인적으로 활성화하는 것을 원하지 않는다. 따라서, 일반적으로, 이러한 설치는 무인(unattended) 또는 원격 프로세스를 이용하여 자동화된다.
볼륨 라이센스된 소프트웨어의 활성화는 설치 동안에 수행될 수 있거나 나중 에 수행될 수 있다. 무인 응답 파일은 정상 설치 프롬프트를 우회하도록 소프트웨어 설치 루틴과 함께 이용되는 텍스트 파일이다. 무인 파일은, 예를 들어, 타깃 기계의 LAN(local area network)을 통하거나 인터넷을 통해, 최종 사용자 대신 VLK를 자동으로 입력하고, 프록시 설정 환경(settings)을 구성하며 시스템을 자동 활성화할 수 있다. 또한, 활성화는 명령 라인 스크립트를 이용하여 설치 후에 수행될 수 있다.
클라이언트(206이나 208 등) 상에 볼륨 라이센스된 소프트웨어를 설치할 때, 설치 이미지는 무인 파일의 도움을 받아 준비될 수 있다. 무인 파일은 무인 설치를 수행하는 전용 스크립트이다. 소프트웨어(212)는 스크립트를 실행함으로써 클라이언트 기계(206이나 208 등) 상에 설치될 수 있다. 스크립트는 서버(204)를 포함하여 공지된 위치 목록에 대해 라이센스 파일(224)의 위치를 설정한다. 다른 방법으로는, 라이센스 파일(224)은 파일이 설치 이미지의 일부인 경우 클라이언트 기계 상으로 복제될 수 있다. 로그온 시, 라이센스 파일(224)이 판독되고, 데이터가 확인되며, 클라이언트 기계(206이나 208 등)가 활성화된다. 시스템이 접속되는 동안에 라이센스 파일(224)에서 지정된 환경 특성이 검증될 수 없는 경우, 시스템은 유예기간 동안에 계속 기능을 할 수 있다. 유예기간이 지나면, 시스템은 기능이 감소한 모드로 기능을 하거나 최종 사용자는 소프트웨어 벤더(202)에게 연장을 요구할 수 있다. 시스템이 분리되어 있는 동안에 라이센스 데이터를 검증할 수 없는 경우, 시스템이 네트워크에 다시 연결될 때까지 소프트웨어는 분리된 특징만을 가진 상태에서 계속 기능을 할 수 있다.
도 3은 본 발명의 일 실시예에 따른 소프트웨어 무단복제를 방지하기 위한 하드웨어 바인딩 강제된 오프라인 시스템(250)의 블록도이다. 오프라인 시스템에서, 기업은 VLK(222)를 수신하고, 소프트웨어 벤더(202)는 보안 하드웨어 장치(252)를 공급한다. 하드웨어 장치(252)는 서명 동작을 수행하여 라이센스 파일(224)과 포맷이 동일한 라이센스 파일(225)을 생성할 수 있다. 클라이언트 기계(206 및 208) 상에서의 볼륨 라이센스된 소프트웨어의 설치, 활성화 프로세스, 및 라이센스 확인 절차는 VLK 라이센스 파일이 서명되고 또한 소프트웨어 벤더로부터 공급되는 도 2에 설명된 것과 동일하다. 도 2a에서와 같이, 도 3에서, 점선은 본 발명의 다른 구현 예를 도시한다.
도 4는 하드웨어 바인딩 강제된 시스템에서 소프트웨어 무단복제를 더 어렵게 만드는 방법의 흐름도이다. 단계(402)에서, 기업 고유 VLK 및 그 연관된 라이센스 파일을 수신한다. 단계(403)에서, 하나 이상의 클라이언트 기계 상에서의 설치를 위해, 연관된 볼륨 라이센스된 소프트웨어의 설치 이미지를 준비할 수 있다. 도 2a 및 도 2b를 참조하여 상술한 바와 같이, 이러한 이미지 준비는 기계 속성 및 다른 데이터의 수집을 필요로 한다는 것을 이해할 것이다. 단계(404)에서, 하드웨어 고유 또는 볼륨 라이센스 소유자 고유 라이센스 파일을 중앙 서버에 저장하거나 클라이언트 기계에 배치할 수 있다. 하드웨어 고유 또는 볼륨 라이센스 소유자 고유 라이센스 파일은 서버와 연관된 클라이언트 기계에 자유로이 액세스할 수 없다. 무인 설치를 수행하는 전용 스크립트를 준비할 수 있다.
단계(406)에서, 소프트웨어는 클라이언트 기계 또는 기계들 상에 설치된다. 단계(408)에서, 스크립트는 예를 들어, 윈도우즈 관리 인터페이스(WMI)를 통해 또는 하드코드(hardcode)된 등록 키를 통해 라이센스 파일의 위치를 클라이언트 기계(들)에 공개함으로써 또는 클라이언트 기계(들) 상에 배치된 것과 같이, 시스템 내의 공지된 위치 목록에서 라이센스 파일의 위치를 설정한다. 단계(410)에서, 로그온 시, 활성화 루틴은 라이센스 파일의 위치를 검색한다. 라이센스 파일이 원격 서버 상에 존재하는 경우, 스크립트는 예를 들어, 인터넷 프로토콜(Internet Protocol; IP) 주소를 비교함으로써, 라이센스 파일의 위치를 선택적으로 검증할 수 있다. 단계(412)에서, 활성화 루틴은 라이센스 파일로부터 데이터를 판독하고, 데이터가 진짜인지를 검증하고, 기계 속성 특성이 라이센스 파일에 지정되어 있는지를 검증하며, 소프트웨어를 활성화한다. 시스템이 접속되어 있는 동안 라이센스 파일에 지정된 기계 속성 특성을 검증할 수 없는 경우, 시스템은 유예기간 동안 계속 기능을 할 수 있다. 또한, 도 2a를 참조하여 상술한 것과 같이, 일 실시예에서는, 단계(412)에서 라이센스 파일에 지정된 기계 속성 특성의 소정의 허용오차 내에 라이센스 파일이 있는지에 대한 판정을 할 수도 있다. 그럴 경우, 소프트웨어를 활성화할 수 있다. 유예기간이 지나면, 시스템은 기능이 감소한 모드로 기능을 할 수 있거나 최종 사용자는 소프트웨어 벤더에게 연장을 요청할 수 있다. 시스템이 분리 상태에 있는 동안 라이센스 데이터를 검증할 수 없는 경우, 시스템이 다시 네트워크에 연결될 때까지 소프트웨어는 분리된 특징만을 가진 상태에서 계속 기능을 할 것이다.
상술한 예는 단지 설명하기 위한 목적으로 제공되며 결코 본 발명을 한정하 려는 것으로서 해석되지 않아야 한다는 것에 주목하자. 또한, 예를 들어, 본 발명에 따른 라이센싱 정보를 애플리케이션 및 서비스가 얻는 것을 가능케 하는 적절한 API, 툴 키트, 드라이버 코드, DLL(dynamic linked library), 운영 체제, 컨트롤, 자립형 또는 다운로드 가능 소프트웨어 객체 등과 같은 본 발명을 구현하는 여러 방법이 존재한다는 것에 주목하자. 본 발명은 본원에서 설명된 VLK 라이센싱 기술과 관련하여 통신하는 소프트웨어 또는 하드웨어 객체뿐만 아니라, API(또는 다른 소프트웨어 객체)의 관점에서도 본 발명을 이용하는 것을 고려한다. 따라서, 본원에서 설명된 본 발명의 여러 구현예는 소프트웨어뿐만 아니라, 전적으로 하드웨어, 부분적으로 하드웨어 및 부분적으로 소프트웨어에 존재하는 양태를 가질 수 있다.
이상, 상술한 바와 같이, 여러 컴퓨팅 장치 및 네트워크 아키텍처와 관련하여 본 발명의 예시적인 실시예를 설명하였지만, 그 기초가 되는 개념은 무단복제를 방지하는 것이 바람직한 임의의 컴퓨팅 장치 또는 시스템에 적용될 수 있다. 따라서, 본 발명에 따라 데이터를 인코딩/디코딩하기 위한 기술은 여러 애플리케이션 및 장치에 적용될 수 있다. 예를 들어, 본 발명의 알고리즘(들)과 하드웨어 구현예는 컴퓨팅 장치의 운영 체제에 적용될 수 있으며, 이 컴퓨팅 장치의 운영 체제는 장치의 개별적인 객체로서, 다른 객체의 일부로서, 재사용 가능 제어장치로서, 서버로부터 다운로드 가능한 객체로서, 장치 또는 객체와 네트워크 간의 "미들맨(middle man)"으로서, 분산된 객체로서, 메모리 내의 하드웨어로서, 상술한 내용 중 임의의 조합 등으로서 제공된다. 본원에서 예시적인 프로그래밍 언어, 명칭 및 예는 여러 선택을 대표하는 것으로서 선택되지만, 이들 언어, 명칭 및 예는 한정하 려는 것은 아니다. 본 발명을 달성하기 위한 제어를 이용하는 것에 관한 실시예와 관련하여, 본 발명은 .NET 제어의 제공에 한정되기보다는, 본 발명에 따른 무단복제 방지 목적을 달성하는 임의의 소프트웨어(및 하드웨어 중 적어도 어느 하나)의 넓은 환경에서 고려되어야 한다. 당업자라면 본 발명의 여러 실시예에 의해 구현되는 동일, 유사 또는 등가 기능을 달성하는 객체 코드 및 명명법을 제공하는 여러 방법이 존재한다는 것을 알게 될 것이다. 본 발명은 또한 온라인 경매나 입찰 사이트와 관련하여 구현될 수 있다.
상술한 바와 같이, 본원에서 설명된 여러 기술은 하드웨어나 소프트웨어와 관련하여, 또는 적당한 경우 하드웨어와 소프트웨어의 조합과 관련하여 구현될 수 있다. 따라서, 본 발명의 방법 및 장치, 또는 본 발명의 소정의 양태 또는 일부는 플로피 디스켓, CD-ROM, 하드 드라이브, 또는 임의의 다른 기계 판독 가능 기억 매체와 같은 유형 매체에 구현되는 프로그램 코드(즉, 명령어) 형태를 가질 수 있고, 프로그램 코드가 컴퓨터와 같은 기계 내에 로드되어 실행될 때, 기계는 본 발명을 실시하기 위한 장치로 된다. 일반적으로, 프로그램 가능 컴퓨터 상의 프로그램 코드 실행의 경우, 컴퓨팅 장치는 프로세서, (휘발성 및 비휘발성 메모리, 및 기억 소자 중 적어도 어느 하나를 포함하는) 프로세서에 의해 판독 가능한 기억 매체, 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치를 포함할 것이다. 예를 들어, 데이터 처리 API나 재사용 가능 컨트롤 등을 이용하여, 본 발명의 무단복제 방지 기술을 이용할 수 있는 하나 이상의 프로그램은 고급 절차형 또는 객체 지향형 프로그래밍 언어로 구현되어 컴퓨터 시스템과 통신하는 것이 바람직하다. 그러나, 프로그램(들)은 필요에 따라 어셈블리 또는 기계어로 구현될 수 있다. 어느 경우이든, 그 언어는 컴파일되거나 해석된 언어일 수 있고, 하드웨어 구현예와 조합될 수 있다.
또한, 본 발명의 방법 및 장치는 예를 들어, 전기 배선 또는 케이블을 통해, 광섬유를 통해, 또는 임의의 다른 전송 형태를 통해 전송되는 프로그램 코드 형태로 구현된 통신을 통해 실시될 수도 있고, EPROM, 게이트 어레이, 프로그램 가능 논리 장치(programmable logic device; PLD), 클라이언트 컴퓨터, 비디오 레코더 등과 같은 기계에 의해 프로그램 코드를 수신하고 로드하여 실행할 때, 상기 예시적인 실시예에서 설명된 신호 처리 능력을 갖는 수신 기계는 본 발명을 실시하기 위한 장치로 된다. 범용 프로세서 상에서 구현되는 경우, 프로그램 코드는 그 프로세서와 결합하여 본 발명의 기능을 호출하도록 동작하는 고유 장치를 제공한다. 또한, 본 발명과 관련하여 이용된 임의의 저장 기술은 항상 하드웨어와 소프트웨어의 조합일 수 있다.
이상, 본 발명의 바람직한 실시예의 여러 특징과 관련하여 본 발명을 설명하였지만, 다른 유사한 실시예를 이용할 수 있으며, 본 발명으로부터 일탈함이 없이 본 발명의 동일 기능을 수행하기 위한 상술한 실시예를 수정 및 추가할 수 있다는 것을 이해할 것이다. 예를 들어, P2P(peer to peer) 네트워크 환경과 같은 네트워크 환경에서 본 발명의 예시적인 네트워크 환경을 설명하지만, 당업자라면 이에 본 발명이 한정되지 않고, 본 출원서에서 설명된 방법은 유선 또는 무선에 관계없이 게임 콘솔, 핸드헬드 컴퓨터, 휴대용 컴퓨터 등과 같은 임의의 컴퓨팅 장치나 환경 에 적용될 수 있으며, 네트워크를 통해 상호작용하는, 통신 네트워크를 통해 접속된 임의 개수의 상기 컴퓨팅 장치에 적용될 수 있음을 알게 될 것이다. 또한, 특히 무선 네트워크 장치의 개수가 계속 증가하고 있으므로, 핸드헬드 장치 운영 체제 및 다른 애플리케이션 특정 운영 체제를 포함하는 여러 컴퓨터 플랫폼이 고려된다는 것이 강조되어야 한다. 또한, 본 발명은 복수의 처리 칩이나 장치 내에서 또는 그 전체에 걸쳐서 구현될 수 있고, 이와 유사하게, 기억장치는 복수의 장치 전체에 걸쳐 이루어질 수 있다. 따라서, 본 발명은 임의의 단일 실시예에 한정되지 않아야 하고, 오히려 첨부된 청구항에 따른 범위 내에서 해석되어야 한다.

Claims (20)

  1. 볼륨 라이센스 환경에서 소프트웨어 무단복제를 방지하는 컴퓨터 구현 방법으로서,
    볼륨 라이센스 파일 내에 임베디드된 볼륨 라이센스 키를 수신하는 단계 - 상기 볼륨 라이센스 키는 상기 환경의 적어도 하나의 기계 속성으로부터 얻어진 제1 데이터를 가짐 - ;
    상기 환경의 적어도 하나의 기계 속성으로부터 얻어진 제2 데이터를 이용하여 상기 볼륨 라이센스 파일을 인증하는 단계; 및
    상기 환경 내의 적어도 하나의 컴퓨팅 장치 상의 상기 볼륨 라이센스 키와 연관된 소프트웨어 패키지를 활성화하는 단계를 포함하는 소프트웨어 무단복제를 방지하는 컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 기계 속성은 하드웨어 식별자인 방법.
  3. 제1항에 있어서, 상기 인증 단계는 상기 제2 데이터가 소정의 허용오차 내에서 상기 제1 데이터와 일치하는지를 판정하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서, 상기 환경의 상기 적어도 하나의 기계 속성을 수집하는 단계 및 상기 기계 속성을 해싱하여 상기 제1 데이터를 형성하는 단계를 더 포함하는 방법.
  5. 제4항에 있어서, 상기 기계 속성이 수집된 시간을 지시하는 타임 스탬프를 수집하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서, 상기 제1 데이터는 또한 상기 컴퓨팅 환경의 복수의 기계 속성으로부터 얻어지는 것을 특징으로 하는 방법.
  7. 제1항에 있어서, 상기 볼륨 라이센스 키와 볼륨 라이센스 파일은 상기 적어도 하나의 컴퓨팅 장치를 포함한 복수의 컴퓨팅 장치 상에 설치하기 위한 상기 소프트웨어 패키지와 연관되는 방법.
  8. 제1항의 방법을 실행하기 위한 컴퓨터 실행가능 명령어를 포함한 컴퓨터 판독가능 매체.
  9. 컴퓨팅 환경에서 소프트웨어 무단복제를 방지하기 위한 시스템으로서,
    볼륨 라이센스 파일 내에 임베디드되는 볼륨 라이센스 키와 연관된 소프트웨어 패키지 - 상기 볼륨 라이센스 파일은 상기 컴퓨팅 환경의 기계 속성으로부터 얻어진 제1 데이터를 가짐 - ;
    상기 컴퓨팅 환경의 기계 속성으로부터 제2 데이터를 얻어서 상기 제2 데이 터를 상기 제1 데이터와 비교하기 위한 인증 루틴; 및
    상기 볼륨 라이센스 파일의 인증에 응답하여 상기 볼륨 라이센스 키에 따라 상기 소프트웨어 패키지를 활성화하기 위한 활성화 루틴을 포함하는 소프트웨어 무단복제 방지 시스템.
  10. 제9항에 있어서, 상기 인증 루틴은 또한 상기 제2 데이터가 소정의 허용오차 내에서 상기 제1 데이터와 일치하는지를 판정하는 시스템.
  11. 제9항에 있어서, 상기 제1 데이터는 상기 기계 속성으로부터 얻어진 해시 값을 갖는 시스템.
  12. 제11항에 있어서, 상기 제1 데이터는 상기 제1 데이터가 얻어진 시간에 대응하는 타임 스탬프를 더 갖는 시스템.
  13. 제9항에 있어서, 상기 제1 및 제2 데이터는 복수의 기계 속성으로부터 얻어지는 시스템.
  14. 볼륨 라이센스 환경에서 소프트웨어 무단복제를 방지하는 방법을 수행하기 위한 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체로서, 상기 방법은
    볼륨 라이센스 파일 내에 임베디드된 볼륨 라이센스 키를 수신하는 단계 - 상기 볼륨 라이센스 키는 상기 환경의 적어도 하나의 기계 속성으로부터 얻어진 제1 데이터를 가짐 - ;
    상기 환경의 적어도 하나의 기계 속성으로부터 얻어진 제2 데이터를 이용하여 상기 볼륨 라이센스 파일을 인증하는 단계; 및
    상기 환경 내의 적어도 하나의 컴퓨팅 장치 상의 상기 볼륨 라이센스 키와 연관된 소프트웨어 패키지를 활성화하는 단계를 포함하는 컴퓨터 판독가능 매체.
  15. 제14항에 있어서, 상기 기계 속성은 하드웨어 식별자인 컴퓨터 판독가능 매체.
  16. 제14항에 있어서, 상기 인증 단계는 상기 제2 데이터가 소정의 허용오차 내에서 상기 제1 데이터와 일치하는지를 판정하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  17. 제14항에 있어서, 상기 방법은 상기 환경의 상기 적어도 하나의 기계 속성을 수집하는 단계 및 상기 기계 속성을 해싱하여 상기 제1 데이터를 형성하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  18. 제17항에 있어서, 상기 방법은 상기 기계 속성이 수집된 시간을 지시하는 타임 스탬프를 수집하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  19. 제14항에 있어서, 상기 제1 데이터는 또한 상기 컴퓨팅 환경의 복수의 기계 속성으로부터 얻어지는 컴퓨터 판독가능 매체.
  20. 제14항에 있어서, 상기 볼륨 라이센스 키와 볼륨 라이센스 파일은 상기 적어도 하나의 컴퓨팅 장치를 포함한 복수의 컴퓨팅 장치 상에 설치하기 위한 상기 소프트웨어 패키지와 연관되는 컴퓨터 판독가능 매체.
KR1020077019406A 2005-03-24 2005-08-01 볼륨 라이센스 환경에서 소프트웨어 무단복제를 방지하는컴퓨터 구현 방법, 시스템 및 컴퓨터 판독가능 매체 KR101075380B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/089,071 2005-03-24
US11/089,071 US7644442B2 (en) 2003-01-31 2005-03-24 Systems and methods for using machine attributes to deter software piracy in an enterprise environment

Publications (2)

Publication Number Publication Date
KR20070121647A true KR20070121647A (ko) 2007-12-27
KR101075380B1 KR101075380B1 (ko) 2011-10-24

Family

ID=37053825

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077019406A KR101075380B1 (ko) 2005-03-24 2005-08-01 볼륨 라이센스 환경에서 소프트웨어 무단복제를 방지하는컴퓨터 구현 방법, 시스템 및 컴퓨터 판독가능 매체

Country Status (6)

Country Link
US (1) US7644442B2 (ko)
EP (1) EP1861815B1 (ko)
JP (1) JP4902636B2 (ko)
KR (1) KR101075380B1 (ko)
CN (1) CN101156166B (ko)
WO (1) WO2006104507A2 (ko)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7024696B1 (en) 2000-06-14 2006-04-04 Reuben Bahar Method and system for prevention of piracy of a given software application via a communications network
US8181265B2 (en) * 2003-01-31 2012-05-15 Microsoft Corporation Secure machine counting
US8103592B2 (en) * 2003-10-08 2012-01-24 Microsoft Corporation First computer process and second computer process proxy-executing code on behalf of first process
US7979911B2 (en) * 2003-10-08 2011-07-12 Microsoft Corporation First computer process and second computer process proxy-executing code from third computer process on behalf of first process
BRPI0512617A (pt) * 2004-07-01 2008-05-13 Great Stuff Inc carretéis, incluindo automáticos e motorizados, e respectivo método de provimento para enrolamento de material linear
US7673346B1 (en) * 2005-06-22 2010-03-02 Symantec Corporation Intra-data license for using data
US20140013449A1 (en) 2005-07-28 2014-01-09 Adobe Systems Incorporated Delayed validation for software licensing and activation
US8087092B2 (en) 2005-09-02 2011-12-27 Uniloc Usa, Inc. Method and apparatus for detection of tampering attacks
FR2897736B1 (fr) * 2006-02-22 2008-04-11 Viaccess Sa Procede d'etablissement d'une cle cryptographique, tete de reseau et recepteur pour ce procede, et procede de transmission de signaux
EP2223256A1 (en) * 2007-11-17 2010-09-01 Uniloc Usa, Inc. System and method for adjustable licensing of digital products
EP2260430A2 (en) * 2008-02-22 2010-12-15 Uniloc Usa, Inc. License auditing for distributed applications
EP2112611A1 (en) * 2008-04-21 2009-10-28 Nokia Siemens Networks Oy License management for groups of network elements
US20090271319A1 (en) * 2008-04-29 2009-10-29 Microsoft Corporation Embedded Licenses for Content
US20100293536A1 (en) * 2009-05-12 2010-11-18 Microsoft Corporation Enhanced product functionality based on user identification
US9424399B2 (en) 2009-05-12 2016-08-23 Microsoft Technology Licensing, Llc Availability of permission models in roaming environments
US9633183B2 (en) * 2009-06-19 2017-04-25 Uniloc Luxembourg S.A. Modular software protection
US8423473B2 (en) * 2009-06-19 2013-04-16 Uniloc Luxembourg S. A. Systems and methods for game activation
US9047458B2 (en) 2009-06-19 2015-06-02 Deviceauthority, Inc. Network access protection
US20100324983A1 (en) * 2009-06-22 2010-12-23 Etchegoyen Craig S System and Method for Media Distribution
US20100325150A1 (en) * 2009-06-22 2010-12-23 Joseph Martin Mordetsky System and Method for Tracking Application Usage
US20100325051A1 (en) * 2009-06-22 2010-12-23 Craig Stephen Etchegoyen System and Method for Piracy Reduction in Software Activation
US20100325149A1 (en) * 2009-06-22 2010-12-23 Craig Stephen Etchegoyen System and Method for Auditing Software Usage
US20100332319A1 (en) * 2009-06-24 2010-12-30 Craig Stephen Etchegoyen Methods and Systems for Dynamic Serving of Advertisements in a Game or Virtual Reality Environment
US9129097B2 (en) * 2009-06-24 2015-09-08 Uniloc Luxembourg S.A. Systems and methods for auditing software usage using a covert key
US20110061047A1 (en) * 2009-09-04 2011-03-10 Alcatel Lucent Licensing Software and Licensing Propagation Mechanism for Embedded Systems in Chassis and Stacked Environments
US8726407B2 (en) * 2009-10-16 2014-05-13 Deviceauthority, Inc. Authentication of computing and communications hardware
US9772834B2 (en) * 2010-04-27 2017-09-26 Red Hat, Inc. Exportable encoded identifications of networked machines
US8522030B2 (en) * 2010-09-24 2013-08-27 Intel Corporation Verification and protection of genuine software installation using hardware super key
US8763158B2 (en) 2010-12-06 2014-06-24 Microsoft Corporation Directory service distributed product activation
JP5640804B2 (ja) * 2011-02-23 2014-12-17 大日本印刷株式会社 ライセンス管理装置および管理方法
US8695912B2 (en) 2011-04-19 2014-04-15 Great Stuff, Inc. Reel systems and methods for monitoring and controlling linear material slack
AU2011101297B4 (en) 2011-08-15 2012-06-14 Uniloc Usa, Inc. Remote recognition of an association between remote devices
CN102708332A (zh) * 2012-01-12 2012-10-03 苏州百正信息科技有限公司 通过硬件识别码保护计算机软件版权的方法
US20140021284A1 (en) 2012-07-20 2014-01-23 Great Stuff, Inc. Reel with manually actuated retraction system
US9143496B2 (en) 2013-03-13 2015-09-22 Uniloc Luxembourg S.A. Device authentication using device environment information
US9286466B2 (en) 2013-03-15 2016-03-15 Uniloc Luxembourg S.A. Registration and authentication of computing devices using a digital skeleton key
US9940446B2 (en) 2013-07-25 2018-04-10 Siemens Healthcare Diagnostics Inc. Anti-piracy protection for software
US9615193B1 (en) * 2013-12-13 2017-04-04 Symantec Corporation Systems and methods for managing launch activities on a mobile device
CN105447346B (zh) * 2015-11-10 2018-08-28 国云科技股份有限公司 一种面向云操作系统的分布式、高可用的许可证认证方法
DE102015225651A1 (de) * 2015-12-17 2017-06-22 Robert Bosch Gmbh Verfahren und Vorrichtung zum Übertragen einer Software
CN106919859B (zh) * 2015-12-25 2020-09-18 研祥智能科技股份有限公司 基本输入输出系统保护方法和装置
US10614427B2 (en) * 2016-10-21 2020-04-07 Johnson Controls Technology Company Systems and methods for monetizing building management system software deployment
CN111625829A (zh) * 2019-02-27 2020-09-04 阿里巴巴集团控股有限公司 基于可信执行环境的应用激活方法及装置
CN110633074A (zh) * 2019-09-19 2019-12-31 北京猎户星空科技有限公司 一种软件开发工具包的使用控制方法及装置

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4688169A (en) * 1985-05-30 1987-08-18 Joshi Bhagirath S Computer software security system
US5138712A (en) * 1989-10-02 1992-08-11 Sun Microsystems, Inc. Apparatus and method for licensing software on a network of computers
US5182770A (en) * 1991-04-19 1993-01-26 Geza Medveczky System and apparatus for protecting computer software
JP3032788B2 (ja) * 1991-05-08 2000-04-17 ディジタル イクイプメント コーポレイション ライセンス管理システム
US5260999A (en) * 1991-06-28 1993-11-09 Digital Equipment Corporation Filters in license management system
US5204897A (en) * 1991-06-28 1993-04-20 Digital Equipment Corporation Management interface for license management system
US6134324A (en) * 1991-07-31 2000-10-17 Lsi Logic Corporation Method and system for distributing a plurality of software products, and limiting access thereto
US5319705A (en) * 1992-10-21 1994-06-07 International Business Machines Corporation Method and system for multimedia access control enablement
US5553139A (en) * 1994-04-04 1996-09-03 Novell, Inc. Method and apparatus for electronic license distribution
US5845065A (en) * 1994-11-15 1998-12-01 Wrq, Inc. Network license compliance apparatus and method
JP3688356B2 (ja) * 1995-08-31 2005-08-24 富士通株式会社 ライセンシー通知システム
US6067622A (en) * 1996-01-02 2000-05-23 Moore; Steven Jerome Software security system using remove function to restrict unauthorized duplicating and installation of an application program
US20010011253A1 (en) * 1998-08-04 2001-08-02 Christopher D. Coley Automated system for management of licensed software
US5905860A (en) * 1996-03-15 1999-05-18 Novell, Inc. Fault tolerant electronic licensing system
US5742757A (en) * 1996-05-30 1998-04-21 Mitsubishi Semiconductor America, Inc. Automatic software license manager
JP3917687B2 (ja) * 1996-08-22 2007-05-23 富士通株式会社 コンテンツ利用管理装置及びその装置を用いたコンテンツ利用システム
US5754763A (en) * 1996-10-01 1998-05-19 International Business Machines Corporation Software auditing mechanism for a distributed computer enterprise environment
JP3924342B2 (ja) * 1997-02-14 2007-06-06 富士通株式会社 ソフトウェアライセンス管理システムおよびソフトウェアライセンス管理装置
US6108420A (en) 1997-04-10 2000-08-22 Channelware Inc. Method and system for networked installation of uniquely customized, authenticable, and traceable software application
US6263492B1 (en) 1997-06-06 2001-07-17 Microsoft Corporation Run time object layout model with object type that differs from the derived object type in the class structure at design time and the ability to store the optimized run time object layout model
US6188995B1 (en) * 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
US6006035A (en) * 1997-12-31 1999-12-21 Network Associates Method and system for custom computer software installation
US6134659A (en) * 1998-01-07 2000-10-17 Sprong; Katherine A. Controlled usage software
US6324649B1 (en) * 1998-03-02 2001-11-27 Compaq Computer Corporation Modified license key entry for pre-installation of software
US6189146B1 (en) 1998-03-18 2001-02-13 Microsoft Corporation System and method for software licensing
US6226747B1 (en) * 1998-04-10 2001-05-01 Microsoft Corporation Method for preventing software piracy during installation from a read only storage medium
US6223288B1 (en) * 1998-05-22 2001-04-24 Protexis Inc. System for persistently encrypting critical software file to prevent installation of software program on unauthorized computers
US6799277B2 (en) * 1998-06-04 2004-09-28 Z4 Technologies, Inc. System and method for monitoring software
US6169976B1 (en) * 1998-07-02 2001-01-02 Encommerce, Inc. Method and apparatus for regulating the use of licensed products
US6343280B2 (en) * 1998-12-15 2002-01-29 Jonathan Clark Distributed execution software license server
US6920567B1 (en) * 1999-04-07 2005-07-19 Viatech Technologies Inc. System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files
AU5334500A (en) 1999-06-07 2000-12-28 Firepad, Inc. Method and system for preventing the unauthorized use of software
US7035918B1 (en) * 1999-09-03 2006-04-25 Safenet Canada. Inc. License management system and method with multiple license servers
US6842896B1 (en) 1999-09-03 2005-01-11 Rainbow Technologies, Inc. System and method for selecting a server in a multiple server license management system
US20030088516A1 (en) * 1999-12-21 2003-05-08 Eric B. Remer Software anti-piracy licensing
US6460140B1 (en) * 1999-12-30 2002-10-01 Starnet Communications Corporation System for controlling the use of licensed software
JP4086445B2 (ja) * 2000-03-09 2008-05-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報送信方法、ネットワーク・プロバイダ・サーバ、情報端末及び情報端末における方法
US6948168B1 (en) * 2000-03-30 2005-09-20 International Business Machines Corporation Licensed application installer
US20030050895A1 (en) 2000-03-31 2003-03-13 Rick Dedrick Automated volume license agreement method and apparatus
US7024696B1 (en) * 2000-06-14 2006-04-04 Reuben Bahar Method and system for prevention of piracy of a given software application via a communications network
US6810389B1 (en) * 2000-11-08 2004-10-26 Synopsys, Inc. System and method for flexible packaging of software application licenses
US7111285B2 (en) * 2001-07-17 2006-09-19 Liquid Machines, Inc. Method and system for protecting software applications against static and dynamic software piracy techniques
US7742992B2 (en) * 2002-02-05 2010-06-22 Pace Anti-Piracy Delivery of a secure software license for a software product and a toolset for creating the software product
US7747531B2 (en) * 2002-02-05 2010-06-29 Pace Anti-Piracy Method and system for delivery of secure software license information
US7228567B2 (en) * 2002-08-30 2007-06-05 Avaya Technology Corp. License file serial number tracking
US6859793B1 (en) * 2002-12-19 2005-02-22 Networks Associates Technology, Inc. Software license reporting and control system and method
US7302590B2 (en) * 2003-01-06 2007-11-27 Microsoft Corporation Systems and methods for providing time-and weight-based flexibly tolerant hardware ID
US7356709B2 (en) * 2003-01-31 2008-04-08 Microsoft Corporation Systems and methods for deterring software piracy in a volume license environment
EP1486849A1 (en) * 2003-06-12 2004-12-15 Sap Ag License management in computer systems that use dynamic service-to-server distribution

Also Published As

Publication number Publication date
EP1861815B1 (en) 2018-09-19
JP2008536209A (ja) 2008-09-04
CN101156166A (zh) 2008-04-02
WO2006104507A3 (en) 2007-12-13
WO2006104507A2 (en) 2006-10-05
EP1861815A4 (en) 2014-04-09
CN101156166B (zh) 2012-08-29
EP1861815A2 (en) 2007-12-05
KR101075380B1 (ko) 2011-10-24
US20050182732A1 (en) 2005-08-18
JP4902636B2 (ja) 2012-03-21
US7644442B2 (en) 2010-01-05

Similar Documents

Publication Publication Date Title
KR101075380B1 (ko) 볼륨 라이센스 환경에서 소프트웨어 무단복제를 방지하는컴퓨터 구현 방법, 시스템 및 컴퓨터 판독가능 매체
EP1443381B1 (en) System and method for secure software activation with volume licenses
KR101301332B1 (ko) 보안 기계 카운팅
KR101085631B1 (ko) 서명된 부트 파일 전송 방법
JP4870937B2 (ja) ソフトウエアのアップデートを制限する方法およびシステム
US10097535B1 (en) Methods and apparatuses for securely operating shared host computers with portable apparatuses
US8245293B2 (en) Methods and apparatuses for securely operating shared host computers with portable apparatuses
US20080295174A1 (en) Method and System for Preventing Unauthorized Access and Distribution of Digital Data
JP5091925B2 (ja) ライセンスファイルのインストール方法
US20030074563A1 (en) Method for the secure distribution and use of electronic media
JP2005084989A (ja) ソフトウェア改ざん検出システム、方法及びプログラム
US20240129110A1 (en) System and method of application resource binding
KR20080004289A (ko) 프로그램 불법설치 방지를 위한 웹 인증키 생성 시스템 및방법
KR20040079376A (ko) 파일 시스템 정보 데이터를 이용한 디지털 컨텐츠의 불법복제 방지 방법
KR20040087971A (ko) 파일 시스템 정보 데이터를 이용한 디지털 컨텐츠의 불법복제 방지 방법
KR20040079375A (ko) 파일 시스템 정보 데이터를 이용한 디지털 컨텐츠의 불법복제 방지 시스템
KR20040077649A (ko) 파일 시스템 정보 데이터를 이용한 디지털 컨텐츠의 불법복제 방지 방법 및 시스템
KR20080079632A (ko) 원거리 인증키 할당 장치 및 방법

Legal Events

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

Payment date: 20140929

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150918

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180918

Year of fee payment: 8