KR100912276B1 - 하드웨어 식별에 기초한 디지털권 관리 방법을 이용한 전자소프트웨어 배포 방법 및 시스템 - Google Patents

하드웨어 식별에 기초한 디지털권 관리 방법을 이용한 전자소프트웨어 배포 방법 및 시스템 Download PDF

Info

Publication number
KR100912276B1
KR100912276B1 KR1020077008556A KR20077008556A KR100912276B1 KR 100912276 B1 KR100912276 B1 KR 100912276B1 KR 1020077008556 A KR1020077008556 A KR 1020077008556A KR 20077008556 A KR20077008556 A KR 20077008556A KR 100912276 B1 KR100912276 B1 KR 100912276B1
Authority
KR
South Korea
Prior art keywords
hardware
software application
digital signature
signature
server
Prior art date
Application number
KR1020077008556A
Other languages
English (en)
Other versions
KR20070085257A (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 KR20070085257A publication Critical patent/KR20070085257A/ko
Application granted granted Critical
Publication of KR100912276B1 publication Critical patent/KR100912276B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management

Abstract

소프트웨어 애플리케이션을 디지털적으로 배포하기 위한 전자 소프트웨어 배포(ESD) 방법이 제공된다. 상기 방법은 사용자 데이터의 세트를 수신하는 것으로 시작하고, 이후 상기 사용자 데이터로부터 상기 하드웨어 식별 속성을 가진 디지털 하드웨어 서명을 생성한다. 이후 디지털 하드웨어 서명은 소프트웨어 애플리케이션에 첨부되어 소프트웨어 애플리케이션 패키지를 생성한다. 디지털 하드웨어 서명은 소프트웨어 애플리케이션 패키지가 매칭하는 하드웨어 식별 속성을 가진 하드웨어 디바이스상에서만 완전히 실행가능하도록 보장한다.
소프트웨어 애플리케이션, 전자 소프트웨어 배포, 사용자 데이터의 세트, 디지털 하드웨어 서명, 소프트웨어 애플리케이션 패키지, 하드웨어 식별 속성

Description

하드웨어 식별에 기초한 디지털권 관리 방법을 이용한 전자 소프트웨어 배포 방법 및 시스템{Electronic Software Distribution Method and System Using a Digital Rights Management Method Based on Hardware Identification}
본 개시내용은 본원과 같은 날짜에 출원되고, 발명의 명칭이 ""하드웨어 식별에 기초한 디지털권 관리 시스템(Digital rights management system based on hardware identification)"인 미국 특허 출원과 관련이 있다.
본 발명은 일반적으로 전자 소프트웨어 배포(Electronic Software Distributioin; ESD) 분야에 관한 것으로, 특히 디지털권 관리(Digital Rights Management; DRM) 기술에 의해 제공되는 보안 특징을 갖는 소프트웨어 애플리케이션을 디지털적으로 배포하기 위한 방법에 관한 것이다.
전자 소프트웨어 배포(Electronic Software Distribution; ESD)는 소프트웨어 제품들을 전자적으로 배포하는 데 사용되는 제품 배포 방법이다. ESD는 디지털 콘텐츠를 배포하기 위한 최선의 지배적인 방법으로 빠르게 자리 잡고 있다. ESD의 중심 쟁점은 디지털권 관리(DRM)이고, 이것은 가장 넓은 정의로 디지털권들의 단순한 관리보다는 임의의 권한들의 모든 디지털 관리를 포함한다. DRM에 의해 제기된 과제들은 전통적인 권리 관리에서 보여지는 것과는 다르다. 전통적인 재산권 관리 는 변경하기 어려운 어느 정도의 물리적 특징(physicality)을 갖고 따라서 콘텐트의 허가받지 않은 이용에 약간의 장벽을 제공하는 몇 가지 유형적 매체(tangible medium)로 구현되는 콘텐트를 통상적으로 포함한다. 대조적으로, 디지털 매체는 거기에 구현된 콘텐트의 허가받지 않은 이용에 거의 장벽을 제공하지 않는다. 따라서, 디지털 콘텐트가 생성되도록 하는 동일한 기술은 그 콘텐트를 복제하는 것을 극히 쉽게 한다. 게다가, 디지털 복제는 전형적으로 원본(original)과 동일하기 때문에, 연속적인 생성은 품질의 열화 또는 하락 문제가 없고 디지털 콘텐트의 허가받지 않은 복제물들이 용이하게 만들어지게 한다. 허가받지 않은 복제의 결과로서, 단일 고객에게 판매된 소프트웨어는 많은 허가받지 않은 사용자들의 수중에 들어가고 이들에 의해 사용될 수 있다. 이것은 소프트웨어의 위조 복제품들의 허가받지 않은 제조 및 배포를 통해 또는 사람들 간의 불법 공유와 같은 개인 레벨들에서의 파일 배포를 통해 일어날 수 있다.
허가의 발행(예컨대 허가받지 않은 복제) 이외에, 네트워크를 통해 통신되는 디지털 콘텐트는 또 인증서의 발행과 마주한다. 네트워크 통신된 디지털 콘텐트(network-communicated digital content)는 예를 들면 도청, 변경, 사칭(impersonation) 및 속이기(spoofing)를 통해 제3 자 위조(third-party tampering)되기 쉽다. 인증서의 발행은 인터넷에 대하여 특히 심각한 것이다. 인터넷은 TCP/IP(Transmission Control Protocol/Internet Protocol)을 이용하여 정보가 발신 컴퓨터로부터 목적지 컴퓨터로 다양한 중간 컴퓨터들 및 별도의 네트워크를 통해 라우팅되게 한다. 인터넷의 라우팅 특징들은 제3 자가 통신하는 것을 방해 할 수 있게 한다.
그러므로, 가치있는 디지털 콘텐트의 배포에 기초한 실행가능한 거래(viable commerce)가 있다면 디지털 콘텐트에 대한 재산권 통제를 유지 또는 강제하는 수단이 필요하다는 것이 이해될 것이다. 디지털권 관리(DRM) 방법들은 소프트웨어 솔루션들 및 하드웨어 솔루션들 모두를 포함하는 다양한 기술들을 이용하여 상기 과제들을 해결한다. 기존의 디지털권 관리(DRM) 방법은 허가받지 않은 복제를 방지하거나 좌절시키는 수단으로서 보안 및 암호화에 초점을 맞추고 있다.
도 1은 허가받지 않은 사용자로부터 소프트웨어 애플리케이션을 보호하기 위해 사용되는 전형적인 DRM 절차의 일반 개념을 나타낸다. 이러한 절차에 따르면, 소프트웨어 애플리케이션은 벤더(vender)에 의해 암호화된다. 해독되지 않는다면, 이 암호화된 소프트웨어 애플리케이션은 전적으로 사용할 수 없거나 제한된 형태로만 사용될 수 있다. 단계 100에서, 사용자는 암호화된 소프트웨어 애플리케이션의 복제물을 수신한다. 사용자는 소프트웨어 애플리케이션을 완전히 사용하기 위해 단계 102에서 암호화된 소프트웨어 애플리케이션에 대한 적당한 디지털권을 얻는다. 디지털권은 일반적으로 벤더(vendor)와 같은 저작권 발행자에 의해 발행되고, 암호화된 소프트웨어 애플리케이션을 해독하기 위해 필요한 수단 또는 정보를 포함한다. 저작권 발행자로부터 필요한 디지털권의 획득시, 단계 104에서, 사용자는 암호화된 소프트웨어 애플리케이션을 해독한다. 단계 106에서, 해독된 소프트웨어 애플리케이션은 적절히 사용되도록 이용가능하며, 예컨대 애플리케이션은 적절한 사용 자 하드웨어 상에서 실행할 수 있다.
다양한 방법들이 위의 일반적인 개념, 특히 암호화 및 해독화를 구현하기 위해 사용될 수 있다. 소프트웨어 애플리케이션의 암호화는 한 세트의 잘 확립된 기술들 및 공개/개인 키 암호법으로 알려진 표준들을 이용하여 일반적으로 달성된다. 이 기술들은 아래에서 간단히 설명된다.
도 2는 이와 같은 구현의 종래 기술의 예를 나타낸다. 먼저, 단계 200에 나타낸 것과 같이, 디지털 콘텐트의 발행자(publisher) 또는 벤더는 디지털 콘텐트를 암호화 및/또는 디지털 서명들로 봉함(seal)한다. 단계 202에서, 암호화된 디지털 콘텐트는 전자 배포 채널들, 예컨대, 웹, 이메일, 유스넷(Usenet), ftp, CD-ROM 등을 통해 유통되거나 배포된다. 단계 204에서, 암호화된 디지털 콘텐트 복제물의 획득시, 사용자는 종종 DRM 서버로부터 디지털 인증서(digital certificate)의 형태로 권한들을 요구한다. 단계 206에서, 사용자의 허가 상태(authorization status)의 확인시, DRM 서버는 요구된 암호화 키들을 포함하는 권한, 인증서들 및 용도 스펙(usage specifications)을 사용자에게 발행한다. 단계 208에서, 사용자는 이후 요구된 디지털권들에 포함된 암호화 정보를 이용하여 디지털 콘텐트를 해독한다. 끝으로, 단계 210에서, 사용자는 적절한 사용자 하드웨어 상에서 해독된 디지털 콘텐트에 대한 액세스를 갖는다.
2가지 문제가 종종 전술한 DRM 기술들을 이용하는 전자 소프트웨어 배포(ESD) 방법들에서 생긴다. 먼저, 해독 정보를 포함하는 디지털 인증서와 같은 디지털권들은 일단 발행되면 그 자신들은 보호되지 않는다. 해독 정보를 포함하는 디 지털 인증서의 복제물을 가진 사람은 누구나 종종 자유롭게 배포되거나 적어도 허가받지 않고 배포된 암호화된 디지털 콘텐트를 해독하는 데 그것을 사용할 수 있다. 비밀 제조업자들(underground manufactures)은 때때로 디지털 콘텐트의 복제물을 표절하고 해독 정보를 그들 고객들에게 제공한다. 보다 작은 규모로, 불법 사용자들은 또 해독된 정보를 다른 사람들에게 허가없이 넘길 수 있다. 둘째, 디지털 인증서는 종종 긴 영문숫자 키들 또는 패스 문구들(pass phrases)을 입력하고 확인하는 것을 포함하여, 사용자 경험을 다소 좌절시키고 자동화를 방해한다.
전자 소프트웨어 배포(electronic software distribution; ESD)의 중요한 역할은 디지털 콘텐트를 포함하는 상거래에서 실행된다는 것을 감안하면, 강력한 보호 및 동시에 더 양호한 자동화 및 더 즐거운 사용자 경험을 주는 DRM 방법 또는 시스템을 가지는 것이 바람직하다.
본 개시내용은 전자 소프트웨어 배포(ESD) 방법을 제공한다. 상기 방법은 하드웨어 식별 속성이 결정될 수 있는 사용자 데이터의 세트를 수신함으로써 시작한다. 이후 하드웨어 식별 속성을 가진 디지털 하드웨어 서명이 생성되고 소프트웨어 애플리케이션에 첨부되어 매칭하는 하드웨어 식별 속성을 가진 하드웨어 디바이스상에서만 완전히 실행가능한 소프트웨어 애플리케이션 패키지를 생성한다. 일 실시예에서, 디지털 하드웨어 서명은 메인 코드 성분이 비암호화되거나 해독되더라도 소프트웨어 어플리케이션이 개별적으로 실행될 수 없도록 소프트웨어 애플리케이션과 통합된다. 일단 완성되면, 이후 소프트웨어 애플리케이션 패키지가 배포된다. 소프트웨어 애플리케이션 패키지가 다운로드 가능한 실행 파일, CD-ROM 상에의 복제물, 또는 제거가능한 ROM 또는 RAM 카드 상에의 복제물을 포함하는 다양한 형태로 배포될 수 있다.
일 실시예에 있어서, 상기 하드웨어 식별 속성은 디지털 하드웨어 서명을 생성하기 위해 자동적으로 결정된다. 예를 들면, 상기 하드웨어 식별 속성은 하드웨어 디바이스에 저장될 수 있고 자동으로 결정되어 전자 수단을 통해 통신된다. 대안으로, 상기 하드웨어 식별 속성은 각각의 사용자 식별들과 연관된 하드웨어 식별 속성들에 대한 레코드들을 포함하는 데이터베이스와 사용자 식별을 매칭하여 자동으로 결정된다. 사용자 인터페이스, 예컨대 웹 브라우저가 사용자 데이터를 입력하기 위해 사용된다. 사용자 인터페이스는 바람직하게는 소프트웨어 패키지의 복제물을 구매하는 소매상인 또는 소비자가 사용자 데이터를 입력할 수 있는 POS(point-of-sale)에 배치된다. 상기 방법은 PDA들 또는 핸드헬드 게임 콘솔들과 같은 핸드헬드 디바이스들을 위한 소프트웨어 애플리케이션들을 배포하는 데 특히 적합하다.
본 개시내용은 또한 하드웨어 식별 속성이 결정될 수 있는 사용자 데이터의 세트를 수신하는 사용자 인터페이스; 상기 사용자 인터페이스로부터 요청을 받을 시 상기 사용자 데이터의 세트에 기초하여 디지털 하드웨어 서명을 생성하고, 또 상기 디지털 하드웨어 서명을 소프트웨어 애플리케이션 성분에 첨부하여 소프트웨어 애플리케이션 패키지를 형성하는 서버 시스템을 포함하는 전자 소프트웨어 배포(ESD) 시스템을 제공한다. 상기 시스템은 또 상기 소프트웨어 애플리케이션 패키지를 배포하는 배포 채널을 포함한다.
일 실시예에 있어서, 서버 시스템은 소프트웨어 애플리케이션 성분을 저장하는 전자 소프트웨어 배포 서버, 및 디지털 하드웨어 서명을 생성하는 개인 키들을 저장하는 디지털 서명 서버를 구비한다. 상기 디지털 서명 서버는 소프트웨어 애플리케이션 패키지를 형성하기 위해 전자 소프트웨어 배포 서버로 상기 생성된 디지털 하드웨어 서명을 돌려 보내도록 구성된다.
또, 소프트웨어 애플리케이션을 판매하기 위해 POS(point-of-sale)에서 소매상인 또는 벤더에 의해 사용된 전자 소프트웨어 배포(ESD) 방법이 제공된다. 상기 방법은 하드웨어 식별 속성이 결정될 수 있는 사용자 데이터의 세트를 수신함으로써 시작한다. 이후 요청이 서버 시스템에 보내져서 하드웨어 식별 속성을 가진 디지털 하드웨어 서명을 생성한다. 이후 메인 코드 성분 및 이에 첨부된 디지털 하드웨어 서명을 가진 소프트웨어 애플리케이션 패키지가 생성되고 서버 시스템으로부터 수신된다. 소프트웨어 애플리케이션 패키지는 매칭하는 하드웨어 식별 속성을 가진 하드웨어 디바이스상에서만 완전히 실행가능하다.
본원에 개시된 것과 같이, 전자 소프트웨어 배포 방법은 디지털 암호 서명의 고유 "역 인증(reverse validation)"을 수행하기 위해 디지털 암호문 서명(digital cryptographic signature)를 채용하는 DRM 관리 기술을 사용한다. 하드웨어 서명이 소프트웨어 애플리케이션 패키지를 형성하기 위해 소프트웨어 애플리케이션의 메인 코드 성분에 첨부되기 때문에, 별도의 DRM 증명서가 소프트웨어 애플리케이션을 사용하도록 허가될 사용자에게 필요하지 않다. 디지털 하드웨어 서명 인증의 단순성은 허가받은 하드웨어 디바이스에 대해 고유하게 패키징된 소프트웨어 애플리케이션을 인에이블하는 자동화된 DRM 방법 또는 시스템을 가능하게 한다. 따라서, 사용자는 라이센스 키 또는 라이센스 코드를 기억 또는 입력할 필요가 없다. 게다가, 본 발명에 따르면, 디지털권들을 유지하는 것은 암호화가 여전히 사용될 수 있지만 소프트웨어 애플리케이션의 메인 코드 성분의 암호화를 더 이상 필요로 하지 않는다.
상기 개시내용의 다른 특징들 및 이점들은 다음의 상세한 설명 및 도면들로부터 더 용이하게 이해가능할 것이다.
본 개시내용의 ESD 방법 및 시스템은 다음의 도면들과 함께 상세히 설명될 것이며, 도면에서 같은 부분들은 같은 번호들 또는 문자들로 나타낸다.
도 1은 종래 기술에 따른 허가받지 않은 사용으로부터 소프트웨어 애플리케이션을 보호하기 위한 DRM 방법을 이용하는 ESD 절차를 나타낸 도면.
도 2는 종래 기술에 따른 도 1의 ESD 절차의 구현예를 나타낸 도면.
도 3은 본 발명의 일 실시예에 따른 ESD 방법의 흐름도.
도 4는 본 발명에 따른 네트워크를 통해 서버를 이용하는 ESD 방법의 예시적인 구현예의 개략도.
도 5는 본 발명에 따른 ESD 방법을 이용하여 배포될 수 있는 복제가 보호된 소프트웨어 애플리케이션을 개발하는 데 사용되는 DRM 방법의 일 실시예의 개략도.
본 발명은 하드웨어 식별에 기초한 디지털권 관리를 이용하는 방법들 및 시 스템들을 제공한다. 도 3은 예시적인 DRM 방법의 개관을 플로차트의 형태로 제공한다. 단계 300에서 메인 코드 성분을 가진 소프트웨어 애플리케이션이 제공된다. 하드웨어 식별 속성을 포함하는 보안 성분이 단계 302에서 생성된다. 이후 단계 304에서, 보안 성분이 메인 코드 성분에 첨부되어 소프트웨어 애플리케이션 패키지를 형성한다. 단계 306에서, 소프트웨어 애플리케이션 패키지는 하드웨어 디바이스상에 설치되고, 그럼으로써 하드웨어 식별 속성이 하드웨어 디바이스에도 존재하면 소프트웨어 애플리케이션이 인에이블되고 하드웨어 식별 속성이 하드웨어 디바이스에 존재하지 않으면 디스에이블되도록 보안 성분은 작용한다.
DRM 방법들 및 시스템들의 대표 실시예들이 본 발명을 설명하기 위해 이하에 논의된다. 개시된 방법들 또는 시스템들은 어떤 방식으로든 제한하는 것으로 해석되어서는 안된다. 비록 상기 예들은 실행가능한 팜오에스 리소스 파일(PalmOS resource file (.prc))의 포맷으로 소프트웨어 애플리케이션을 사용하지만, 본 개시내용에 따른 상기 방법들 및 상기 시스템들은 이들 파일 유형으로 제한되지 않는다.
도 4는 본 발명의 ESD 방법을 구현하기 위한 네트워크를 통한 서버를 이용하는 예시적인 ESD 방법의 개략도이다. ESD 시스템은 네트워크(400)를 구비하며, 이 네트워크(400)는 어떠한 유형의 전자 통신 네트워크이어도 되지만, 바람직하게는 인터넷 기반 네트워크(Internet-based network)이다. ESD 시스템은 전자 소프트웨어 배포 (ESD) 서버(402), 서명 서버(404) 및 사용자 인터페이스(406)를 더 구비한다. 예시적인 ESD 시스템은 휴대형 디바이스(408)와 관련된 고객(도시되지 않음)에 게 소프트웨어 애플리케이션을 배포한다.
일 실시예에 있어서, ESD 서버(402)는 한 사람 이상의 개발자에 의해 개발된 패키징되지 않은 애플리케이션들(도 4에 도시되지 않음)의 집합(collection)을 저장한다. 각각의 패키징되지 않은 애플리케이션은 애플리케이션 코드 및 데이터 리소스들을 포함하는 메인 코드 성분을 가진다. 패키징되지 않은 애플리케이션들은 어떠한 보안 성분들도 가지지 않은 베어-본즈 애플리케이션들(bare-bones applications) 또는 부분적으로 보안된 애플리케이션들이다.
예시적인 공정에 있어서, 도 4의 ESD 시스템은 다음과 같이 주문된 소프트웨어 애플리케이션을 패키징한다. ESD 서버(402)는 구매 정보 및 하드웨어 식별 속성이 결정될 수 있는 사용자 데이터 세트를 수신한다. ESD 서버(402)는 이후 하드웨어 서명에 대한 요청을 서명 서버(404)에 보낸다. 하드웨어 서명 요청은 사용자 데이터를 포함하고 어느 소프트웨어 애플리케이션이 주문되었는지를 특정한다. 하드웨어 서명 요청의 수신시, 서명 서버(404)는 먼저 하드웨어 식별 속성을 결정하고(만약 그것이 이미 ESD 서버(402)에 의해 결정되지 않았으면) 이 후 사용자 데이터 세트에 기초하여 디지털 하드웨어 서명을 생성한다. 이렇게 생성된 디지털 하드웨어 서명은 하드웨어 식별 속성을 포함한다. 디지털 하드웨어 서명을 생성하는 상세한 설명은 도 5와 관련한 본 개시내용의 나중 부분에서 제공된다.
다음에, 서명 서버(404)는 생성된 디지털 하드웨어 서명을 ESD 서버(402)로 돌려 보내는데, 이 ESD 서버(402)는 디지털 하드웨어 서명을 주문된 소프트웨어 애플리케이션에 첨부하여 대응하는 소프트웨어 애플리케이션 패키지를 형성한다. 이 렇게 패키징된 소프트웨어 애플리케이션은 하드웨어 디바이스가 매칭하는 하드웨어 식별 속성을 가질 때에만 하드웨어 디바이스 상에서 실행가능하다. 이렇게 패키징된 소프트웨어 애플리케이션의 예는 도 5를 참조하여 나중에 설명될 것이다.
마지막으로, ESD 서버(402)는 이후 패키징된 소프트웨어 애플리케이션을 의도된 당사자 예컨대 구매자 또는 소프트웨어 애플리케이션 사용자에게 분배 또는 배포한다. 셋업에 따라 소프트웨어 애플리케이션 패키지는 의도된 구매자에게 직접 보내지거나 또는 소매상인에게 보내질 수 있다. 다양한 유형의 분배 채널들이 사용될 수 있다. 가장 직접적인 것은 소프트웨어 애플리케이션 패키지를 전자적으로 전달하기 위해 네트워크(400) 자체를 사용하는 것이다. 예를 들면, ESD 서버(402)가 사용자 데이터를 수신할 필요가 있기 때문에, 그것은 바람직하게는 POS(406)에서 소매상인 또는 고객(소프트웨어 애플리케이션의 사용자 또는 구매자)에 의해 액세스될 수 있는, 웹 브라우저와 같은 사용자 인터페이스에 접속된다. 웹 브라우저가 사용자 인터페이스로서 사용되면, 소프트웨어 애플리케이션 패키지는 네트워크(400)를 통해 다운로드될 수 있다. 그러나, 소프트웨어 애플리케이션 패키지는 또한 더욱 편리한 배포를 위해 CD-ROM 또는 ROM 또는 RAM 카드(예를 들어 SD 또는 MMC 플래시 카드)와 같은 디지털 매체에 저장될 수 있다.
네트워크(400)의 사용이 바람직하지만 하드웨어 식별 속성이 결정될 수 있는 사용자 데이터의 세트 및 구매 정보를 수신하는 것은 선택이라는 것을 알아야 한다. 이와 같은 정보 및 데이터는 다른 수단을 통해서도, 예컨대 전화, 팩스기기 또는 정규 우편(regular mail)을 통해서도 수신될 수 있다.
일 실시예에 있어서, 하드웨어 디바이스의 하드웨어 식별 속성은 하드웨어 서명을 생성할 목적으로 자동으로 결정된다. 예를 들면, ROM에 저장된 시리얼 넘버는 하드웨어 디바이스(408)가 네트워크(400)를 통해 접속되면 전자적으로 및 자동으로 검출될 수 있다. 대안으로, 하드웨어 식별 속성은 서버들(ESD 서버(404) 또는 서명 서버(402))에 제공된 사용자 정보에 기초하여 결정될 수 있다. 이것을 달성하기 위해, 서버들(402, 404)은 하드웨어 디바이스들을 사용자 정보와 연관짓는 리코드들을 포함하는 데이터베이스를 유지한다. 사용자 식별을 포함하는 사용자 정보가 서버들(402, 404)에 제공된 후, 하드웨어 식별 속성은 사용자 식별을 데이터베이스에 매칭시킴으로써 결정된다.
도 5는 도 4에 도시된 ESD 방법을 이용하여 배포될 수 있는 복제 방지 소프트웨어 애플리케이션을 개발하는 데 사용되는 DRM 방법의 실시예의 개략도이다. 이 특수한 예에 있어서, 소프트웨어 애플리케이션(500)은 팜 운영 시스템(Palm operating system; Palm OS) 또는 호환가능한 운영 시스템을 가진 임의의 전자 디바이스 상에서 수행될 수 있는 실행가능한 PalmOS 리소스 파일 패키지이다. Palm OS 애플리케이션들은 68K-계열 프로세스들을 갖춘 핸드헬드 디바이스용 68K-기반 애플리케이션 프로그래밍 인터페이스들(68K-based application programming interfaces; APIs)을 이용하여 전통적으로 개발되어 왔다. 후속 팜 OS 발매물들(발매물 5 또는 그 이상)은 ARM-기반 프로세서들을 갖는 핸드헬드 디바이스들을 위해 설계된다. 소프트웨어 애플리케이션(500)은, 본 개시내용에 따르면, 임의의 특정 하드웨어 아키텍쳐를 위한 애플리케이션들에 한정되지 않고 고전적인 68K 아키텍쳐 및 ARM-기반 아키텍쳐를 포함해서 임의의 팜(Palm) 아키텍쳐에 적합하도록 설계될 수 있다.
소프트웨어 애플리케이션(500)은 메인 코드 성분(502)을 포함하며, 이것은 애플리케이션 코드와 데이터 리소스들의 집합(collection)이다. 임의의 PalmOS 리소스 파일과 같이, 소프트웨어 애플리케이션(500)은 또 PRC 헤더 및 PRC 리소스 헤더들을 구비할 수 있고; 이와 같은 헤더들은 명확성을 위해 도 5에서 생략된다.
소프트웨어 애플리케이션(500)은 다수의 서명 리소스들(504, 506, 508, 510, 512)(각각 서명 리소스들 0, 1, 2, 3, 4)을 더 포함한다. 특히, 이들 서명 리소스들 중에는 하드웨어 식별 속성을 포함하는 보안 성분인 하드웨어 서명(512)(서명 리소스들 4)이 있다. 하드웨어 서명(512)(서명 리소스들 4)은 이하에 기술되며, 다른 서명 리소스들은 본 명세서의 나중 섹션에 기술된다.
일 실시예에 있어서, 하드웨어 서명(512)은 해시(hash) 및 키로부터 생성된 암호화된 디지털 서명이다. 하드웨어 서명(512)은 소프트웨어 애플리케이션(500)을 실행하도록 허가될 특정 하드웨어 디바이스(도 5에 도시되지 않음)를 적어도 부분적으로 식별할 수 있는 시리얼 번호 또는 모델 번호와 같은 하드웨어 식별 속성을 포함한다. 하드웨어 식별 속성은 하드웨어 식별(514), 또는 구매 정보(510), 또는 양자의 조합으로부터 결정될 수 있다.
다른 서명 리소스들 성분들과 같이, 하드웨어 서명(512)은 패키징된 소프트웨어 애플리케이션(500)을 형성하도록 메인 코드 성분(502)에 첨부된다. 이것은 애플리케이션을 사용자의 하드웨어 디바이스에 연결하기 위해 "장비 노드(equipment node)"의 몇가지 형태를 사용하고 사용자가 DRM 인증서 및 DRM 개인 키를 키 발행자로부터 개별적으로 얻을 것을 요구하는 기존의 기술들과는 상이하다. 대조적으로, 하드웨어 서명(512)은 패키징된 소프트웨어 애플리케이션(500)의 일부로 되고 허가받은 하드웨어 디바이스를 확인하기 위해 여기에 기술된 것과 같은 역 서명 인증 메카니즘(reverse signature validation mechanism)의 기초를 형성한다. 소프트웨어 애플리케이션(500)을 암호화하기 위한 요건이 없다는 것을, 비록 그것이 있을 수 있을 지라도, 알아야 한다.
소프트웨어 애플리케이션(500)은 Palm 디바이스(도 5에는 도시되지 않음)와 같은 하드웨어 상에 설치된 후, 실행 시, 소프트웨어 애플리케이션(500)은 하드웨어 서명(512)이 특정 하드웨어 디바이스에 의해 인증될 수 있는지의 여부를 자동으로 검증한다. 인증이 성공적이면, 소프트웨어 애플리케이션(500)이 인에이블되는 데, 이것은 그것이 완전하게 기능하는 것을 의미한다. 그러나, 인증이 성공적이지 못하면, 소프트웨어 애플리케이션(500)은 디스에이블되는 데 이것은 실행이 종료하거나 소프트웨어 애플리케이션(500)이 완전한 기능보다 떨어지는 기능을 제공하는 제한된 모드로 들어가는 것을 의미한다.
예시적인 하드웨어 서명(512)은 단지 하드웨어 서명(512)을 생성하는 키 사용(key use)과 매칭시키는 인증 키(validating key)로 인증될 수 있다. 몇몇 실시예들에서, 하드웨어 서명(512)은 개인 키를 이용하여 생성되고 하드웨어 디바이스 상에 저장된 공개 키에 의해 인증된다. 하드웨어 서명(512)은 하드웨어 식별 속성을 포함하는 데이터 세트를 구비하며 단지 동일한 하드웨어 식별 속성이 하드웨어 상에 존재하면 인증될 수 있다. 그 결과, 소프트웨어 애플리케이션(500)은 하드웨어 식별 속성이 또한 하드웨어 디바이스에 존재하면 인에이블되고(즉, 완전히 실행가능하고), 하드웨어 식별 속성이 또한 하드웨어 디바이스에 존재하지 않으면 디스에이블된다(완전히 실행불가능하거나 단지 부분적으로 부분적으로 실행가능하다). 하드웨어 서명(512)이 특정 하드웨어 식별 속성을 가진 하드웨어 디바이스로 제한되기 때문에, 소프트웨어 애플리케이션(500)의 복제물이 특정 하드웨어 식별 속성을 가진 하드웨어 디바이스에 의해 실행될 때 단지 해제될 것이라는 것을 알 수 있을 것이다.
상기 실시예들에서, 인증 키는 하드웨어 식별 속성을 포함할 필요가 없다는 것이 이해될 것이다. 동일 인증 키가 많은 하드웨어 디바이스들에 의해 공유될 수 있다. 따라서, 이들 실시예들에서의 하드웨어-특정 보안은 보안키 및 하드웨어 서명(512)의 데이터 세트의 하드웨어-특수성에서 나온다.
표준 암호화 기술(Standard cryptography techniques), 예컨대 RSA 비대칭 키 기술이 하드웨어 식별 속성과 하드웨어 서명(512)을 관련짓기 위해 사용될 수 있다. 예를 들면, 하드웨어 디바이스는 수개의 하드웨어 식별 속성들을 포함하는 하드웨어 식별을 이용하여 식별될 수 있다. 영문숫자 스트링(alphanumeric string)이 하드웨어 식별 속성으로부터 결정될 수 있고 인증될 서명 데이터 세트의 일부로서 포함될 수 있다. 인증하는 동안, 하드웨어 디바이스의 운영 시스템에 임베딩된 코드들은 다른 데이터 세트를 생성하고 새로운 데이터 세트와 원 서명 데이터 세트를 비교한다. 동일한 하드웨어 식별 속성이 하드웨어 디바이스상에 존재하면, 새로 운 데이터 세트는 원 서명 데이터 세트와 일치하고, 따라서 하드웨어 서명을 성공적으로 인증한다. 동일한 하드웨어 식별 속성이 하드웨어 디바이스 상에 존재하지 않으면, 하드웨어 디바이스 상의 운영 시스템에 의해 생성된 새로운 데이터 세트는 원 서명 데이터 세트와 매칭되지 않을 수 있고, 하드웨어 서명의 인증은 실패한다.
다른 실시예들에서, 하드웨어 서명(512)을 생성하기 위해 사용되는 키 쌍(key pair)은 매칭 키가 단지 특정 하드웨어 식별 속성을 가진 하드웨어 디바이스상에서 발견될 수 있도록 설계된다. 서명 키들은 모두가 하드웨어 디바이스의 수개의 하드웨어 식별 속성들 중에서 동일한 하드웨어 식별 속성 또는 속성들을 포함하도록 결정될 수 있다. 그러나, 이 방법은 덜 선호되는 데 그 이유는 그것이 표준 암호화 기술을 적용하기 곤란하게 하기 때문이다. 예를 들면, 표준 RSA 비대칭 키 기술은 키들의 선택에 그 자신의 룰들(rules)을 가져, 하드웨어 특정 키들에 대해 거의 여유(room)를 주지 않는다.
하드웨어 식별 속성 자체가 영문숫자 스트링일 필요가 없으며 하드웨어 식별 속성 자체가 보안 성분, 하드웨어 서명 또는 키의 일부를 문언적으로 구성하기 위해 요구되지 않는다는 것이 이해될 것이다. 문구 "하드웨어 식별 속성을 포함하는(including a hardware identification attribute)" 또는 "하드웨어 식별 속성을 가진(having a hardware identification attribute)"은 단지 보안 성분, 하드웨어 서명, 또는 키가 하드웨어 식별 속성을 입력으로서 이용하여 결정되고 따라서 하드웨어 식별 속성과 연관되는 것을 의미한다. 예를 들면, 하드웨어 식별 속성을 포함하는 하드웨어 서명은 데이터 세트로부터 생성되는 하드웨어 서명이, 특정 알고리 즘을 이용하여 하드웨어 서명이 하드웨어 식별 속성의 함수이도록 결정되거나, 또는 하드웨어 서명의 대응 서명 키가 암호화되고 단지 하드웨어 식별 속성의 함수로서 결정되는 다른 키를 이용하여 해독될 수 있다는 것을 의미한다. 하드웨어 식별 속성은 영문숫자 스트링이 아니어도 되지만 영문숫자 스트링을 특유하게 결정할 수 있는 어떤 적절한 정보를 포함해야 한다.
그러나, 단순한 형태에 있어서, 하드웨어 식별 속성은 실제로 영문숫자 스트링 또는 시리얼 번호와 같은 스트레이트 번호(straight number)일 수 있다. 이 경우, 하드웨어 식별 속성은 인증될 서명 데이터 세트에 직접 삽입될 수 있다. 대안적으로, 키들 중 하나는 간단히 시리얼 번호와 동일한 번호일 수 있고 또는 적어도 키의 일부로서 시리얼 번호를 포함하고, 한편 상기 쌍의 다른 키는 표준 암호화 기술을 이용하는 제 1 키로부터 결정된다.
더 복잡한 형태에 있어서, 하드웨어 식별 속성은 하드웨어 서명 또는 하드웨어 서명을 인증하는 키에 간접적으로 포함될 수 있다. 예를 들면, 하드웨어 디바이스의 시리얼 번호가 하드웨어 식별 속성으로서 사용되는 경우에, 하드웨어 서명을 인증하는 키는 시리얼 번호와 다른 또는 심지어 시리얼 번호와 직접적인 관련이 없지만 그럼에도 불구하고 시리얼 번호를 간접적으로 포함하는 허가(authorization) 키일 수 있다. 예를 들면, 하드웨어 서명을 인증하기 위한 허가 키는 하드웨어 디바이스의 시리얼 번호가 하드웨어 서명을 해독하는 데 차례로 이용되는 허가 키를 해독하기 위한 해독 키(또는 적어도 해독 키의 일부를 구성하는)로서 작용하도록 암호화된다. 하드웨어 식별 속성을 하드웨어 서명에 포함시키기 위해 이러한 간접 적인 방법을 이용하는 것은 더 많은 유연성을 제공할 수 있다.
예를 들면, 몇몇 경우들에 있어서, 허가받은 사용자는 상이한 하드웨어 디바이스를 사용할 필요가 있는 데 그 이유는 사용자가 이전에 허가받은 하드웨어 디바이스를 잃어버리거나 새로운 하드웨어 디바이스로 업그레이드하였기 때문이다. 이와 같은 예들에서, 사용자는 단지 벤더로부터 새로운 하드웨어 디바이스의 하드웨어 식별 속성(이 예에서는 시리얼 번호)을 이용하여 해독될 수 있는 새로운 암호화된 허가 키를 얻을 필요가 있고 새로운 전체 소프트웨어 애플리케이션 패키지를 얻을 필요는 없다. 비교로, 하드웨어 식별 속성(예컨대, 시리얼 번호)이 하드웨어 서명의 인증 키(validating key)로서 직접 사용되어 왔다면, 사용자는 상기 시나리오에서 새로운 하드웨어 서명을 포함하는 새로운 소프트웨어 애플리케이션 패키지를 얻어야만 할지도 모른다.
일 실시예에 있어서, 하드웨어 서명을 생성하는 서명 키는 개인 키이고 하드웨어 서명을 인증하기 위해 사용되는 인증 키(validating key)는 공개 키이다. 임의의 적절한 암호화 기술이 본 개시내용의 DRM 방법들의 필요한 암호화/해독화를 위해 사용될 수 있다. 적절한 예는 RSA 보안으로부터의 산업-표준(industry-standard) 및 산업-강도 공개 키 암호화 표준들(industry-standard and industrial-strength Public-Key Cryptography Standards; PKCS)이다. 암호화 분야에서 알려진 것과 같이, 암호화는 원래의 형태로부터 아무도 이해할 수 없지만 의도된 수신자는 이해할 수 있는 형태로 정보를 변환하는 프로세스이다. 해독화는 암호화된 정보를 다시 원래의 알 수 있는 형태로 다시 변환하는 프로세스이다. 암호 화 및 해독화는 수학적 함수들인 암호화 알고리즘들을 이용하여 디지털 콘텐트에 대해 수행되는 수학적 연산들이다. 암호화 함수 및 그의 매칭하는 해독화 함수는 수학적 연산들과 관계된다. 키 기반 암호법에 있어서, 암호화 또는 해독화는 라이트 암호화 알고리즘(right cryptographic algorithm) 및 라이트 암호화 키 양자의 조합으로만 수행될 수 있다. 암호화 키들은 긴 숫자들이다. 암호화 알고리즘 자체는 일반적으로 널리 알려져 있기 때문에, 암호화된 정보 보안을 유지하는 능력은 특정 암호화 알고리즘의 비밀(secrecy)에 기초하지 않지만 암호화된 결과를 생성하거나 이전에 암호화된 정보를 해독하기 위해 상기 알고리즘과 함께 사용되어야 하는 암호화 키의 비밀에 기초한다.
대칭-키 암호화 및 비대칭 암호화 모두가 사용될 수 있지만, 비대칭 암호화가 바람직하다. 후자는 또 공개/개인 키 암호화라고 불리는데 그 이유는 상기 방법은 한쌍의 2개의 상이한 키들- 하나는 공개로 만들어지고 나머지는 비밀(개인)로 유지되는-을 사용하기 때문이다. 상기 한쌍의 키들, 즉 공개 키 및 개인 키는 그 아이덴터티를 전자적으로 공인하거나(authenticate) 데이터를 사인 또는 암호화하는 데 필요한 엔터티와 관련지워진다. 상기 쌍 가운데 하나의 키로 암호화된 데이터는 상기 쌍 가운데 매칭 키에 의해서만 해독될 수 있다. 정확한 키에 의한 해독은 간단하다. 정확한 키 없이 하는 해독은 매우 어렵고, 몇몇 경우에 있어서는 모든 실용적인 목적들을 위해서는 불가능하다. 이 기술에서 잘 알려져 있는 것과 같이, 콘텐트 암호화와 관련하여 그리고 콘텐트 암호화 이외에, 키 기반 암호화가 또한 디지털 서명들 및 디지털 인증서들을 위해 사용된다. 이러한 목적을 위해, 개인 키는 통상적으로 사인 기능을 위해 사용되고 공개 키는 인증 기능을 위해 사용된다. 특히, 디지털 서명들의 종래의 응용에 있어서, 공개(public)는 대응 개인 키를 이용하여 서명을 실행한 엔티티의 식별을 증명하기 위해 공개키를 이용한다. 본 발명의 최선의 실시예에 있어서, 개인 키가 하드웨어 ID를 포함하는 데이터 스트림을 사인하기 위해 사용되어 하드웨어 서명을 생성하고, 한편 공개키는 상기 디바이스상에서 동일한 데이터 스트림을 역으로 증명하기 위해 사용되고, 따라서 하드웨어에 대한 허가가 벤더에 의해 발행된 것임을 입증한다.
그 하드웨어 식별 속성이 하드웨어 서명을 생성하기 위해 사용되는 하드웨어 디바이스는 임의의 전자 디바이스, 예컨대 PC, 핸드헬드 컴퓨터, 게임 콘솔, 또는 휴대형 게임 콘솔일 수 있으며, 이들은 적절한 허가가 주어진 소프트웨어 애플리케이션을 실행할 수 있다. 대안으로, 그 하드웨어 식별 속성이 하드웨어 서명을 생성하기 위해 사용되는 하드웨어 디바이스는 저장 디바이스 예컨대 소프트웨어 애플리케이션을 저장하는 제거가능한 ROM 또는 RAM 카드(예들 들면 SD 또는 MMC 플래시 카드)가 될 수 있다. 몇몇 실시예에서, 소프트웨어 애플리케이션은 소프트웨어 애플리케이션을 저장하는 제거가능한 저장 디바이스가 호스트 하드웨어 디바이스에 접속될 때 호스트 하드웨어 디바이스상에서 실행한다.
몇몇 실시예들에 있어서, 하드웨어 식별 속성은 바람직하게는 하드웨어 그룹내의 모든 하드웨어 디바이스를 고유하게 식별할 수 있다. 하드웨어 그룹은 단일 클라이언트에 함께 판매된 디바이스 그룹, 특정 하드웨어 디바이스 모델, 특정 등급의 하드웨어 디바이스들을 포함할 수 있고 또는 넓게는 소프트웨어 애플리케이션 을 실행하는 데 적합한 모든 하드웨어 디바이스들을 포함할 수 있다. 소프트웨어 애플리케이션이 하드웨어 그룹의 임의의 멤버 위에서 실행되도록 의도된 이들 실시예들에서, 하드웨어 그룹 또는 하드웨어 도메인에 공통인 하드웨어 식별 속성이 사용될 수 있다.
하드웨어 식별 속성은 바람직하게는 하드웨어 디바이스 자체에 존재하거나 하드웨어 자체로부터 결정가능하다. 예를 들면, 하드웨어 식별 속성은 하드웨어 디바이스 위에 저장된 전자 데이터의 일부(piece)일 수 있다. 저장된 데이터는 바람직하게는 영속성을 가지며 그 결과 그것은 변경이 용이하지 않다. 예를 들면, 영속 속성(persistent attribute)은 하드웨어 디바이스의 ROM 메모리 요소에 저장된 시리얼 번호일 수 있다. 하드웨어 식별 속성은 또한 바람직하게는 하드웨어 디바이스의 제조 중 생성되고 이에 따라 변경하기 어렵다.
도 5를 다시 참조하면, 소프트웨어 애플리케이션(500)은 또 이러한 예의 목적을 위해, 요청_하드웨어_서명(Requires_Hardware_Signature)로 불리우는 특정 리소스(506)(서명 리소스들 1)를 포함한다. 특정 리소스(506)의 존재는 운영 시스템에 하드웨어 서명(512)을 인증하도록 명령한다. 하드웨어 서명 인증은 소프트웨어 애플리케이션(500)이 최초 런칭될 때 적어도 한번 수행된다. 일 실시예에 있어서, 특정 리소스(506)는 운영 시스템에 소프트웨어 애플리케이션(500)의 실행 중 주기적으로 서명(512)을 인증하도록 명령한다. 이것은 소프트웨어 애플리케이션(500)이 허가받은 하드웨어 디바이스 상에서 계속 실행하고 예를 들면 허가받은 하드웨어 디바이스 상에 기동되지 않고 이어서 허가받지 않은 사람에게 전달되거나 복제되지 않는 것을 보장한다. 대안으로, 허가하는 하드웨어 디바이스가 계속 존재하고 소프트웨어 애플리케이션(500)이 기동된 후 제거되지 않는 것을 보장한다.
특정 리소스(506)는 소프트웨어 애플리케이션(500), 하드웨어 및 하드웨어 서명(512)의 버전에 대한 정보를 더 포함할 수 있다. 특정 리소스(506)는 승락 유형 정보(permission type information)를 더 포함할 수 있다. 예를 들면, 승락 유형 정보에 대해 예약된 바이트는 다음과 같은 것 또는 이들의 조합을 포함하는 다양한 승락 유형을 표시하기 위해 상이한 값들로 설정될 수 있다:
Figure 112007028558964-pct00001
소프트웨어 애플리케이션이 영구적으로 디스에이블되는 "허가되지 않음(none allowed)";
Figure 112007028558964-pct00002
운영 시스템이 하드웨어 서명을 인증하기 위해 소프트웨어 애플리케이션을 실행하는 하드웨어 디바이스에서 매칭 키를 찾도록 명령되는 "디바이스 서명 요구됨(device signature reuired)";
Figure 112007028558964-pct00003
운영 시스템이 소프트웨어 애플리케이션이 하드웨어 서명을 인증하기 위해 저장되어 있는 ROM 또는 RAM 카드에서 매칭 키를 찾도록 명령되는 "카드 서명 요구(card signature required)";
Figure 112007028558964-pct00004
운영 시스템이 실행하는 하드웨어 디바이스에서 또는 ROM 또는 RAM 카드에서 하드웨어 서명을 인증하기 위해 매칭 키를 찾도록 명령되는 "디바이스 또는 카드 로킹 허용(allow device or card locking)"
Figure 112007028558964-pct00005
운영 시스템이 소프트웨어 애플리케이션을 실행하도록 적어도 부분적으로 사용되는 임의의 하드웨어 디바이스에서 매칭 키를 찾도록 명령되는 "임의의 로킹 유형 허용(allow any locking type)".
특정 리소스(506)는 또한 하드웨어 서명 인증이 실패하면 소프트웨어 애플리케이션(500)이 어떻게 기능해야 하는지에 관한 명령들을 포함할 수 있다. 예를 들면, 이러한 정보를 위해 예약된 바이트는 운영 시스템에 명령하여 소프트웨어 애플리케이션(500)을 종결하고 소프트웨어 애플리케이션(500)을 실행하는 하드웨어 디바이스를 리셋하고, 소프트웨어 애플리케이션(500)을 종료하고, 하드웨어 디바이스를 리셋하거나, 또는 등급 저하된 데모 모드(degraded demo mode)와 같은 제한된 형식으로 소프트웨어 애플리케이션(500)을 실행하도록 상이한 값들로 설정될 수 있다.
암호법에서 알려진 것과 같이, 디지털 서명을 생성하는 것은 사인 키(signing key) 이외에 해시를 요구한다. 디지털 서명은 필수적으로 다른 정보, 예컨대 해싱 알고리즘과 함께 암호화된 해시이다. 해시는 보통 데이터 세트에 대해 동작하는 해싱(hashing)이라고 불리는 수학적 함수를 이용하여 생성된다. 해시는 데이터 세트의 수치 표현(numeric representation)이므로 종종 데이터 다이제스트(data digest) 또는 메시지(message digest)로 불린다. 해시는 고정 길이의 수이다. 해시의 값은 해싱된 데이터에 대해 고유하다. 데이터의 임의의 변경, 심지어 하나의 문자를 삭제 또는 변경하면 상이한 해시 값이 생긴다. 가장 일반적으로 사용되는 해싱 알고리즘은, 해시가 해시된 데이터 세트로부터 생성되는 동안, 해시된 데이터의 내용이, 모든 실용 목적을 위해, 해시로부터 도출될 수 없는 "일방향 해시(one-way hash)"를 생성한다.
이 기술에서 알려진 것과 같이, 해싱은 별도의 단계로서 또는 사인 또는 인증 단계의 통합 부분으로서 수행될 수 있다.
일 실시예에 있어서, 하드웨어 서명(512)은 소프트웨어 애플리케이션(500)의 메인 코드 성분 위에 사인된 디지털 서명인 애플리케이션 서명을 포함하는 데이터 세트의 해시를 이용하여 생성된다. 애플리케이션 서명은 또한 패키징된 소프트웨어 애플리케이션(500)의 일부에 첨부되고 그것의 일부로 된다. 본 개시내용에 따른 이와 같은 애플리케이션 서명 및 하드웨어 서명에 대한 그 관계의 생성은 이하에 더 기술된다.
도 5를 다시 참조하면, 소프트웨어 애플리케이션(500)은 애플리케이션 서명(508)(서명 리소스들 2)을 포함하는 데, 이것은 비대칭 공개/개인 키 방법과 같은 표준 암호화 기술을 이용하여 생성될 수 있다. 애플리케이션 서명(508)은 메인 코드 성분(502)(애플리케이션 코드 및 데이터 리소스들)의 완전성(integrity)을 보호하기 위해 사용될 수 있다. 일 실시예에 있어서, 선택된 알고리즘은 애플리케이션 해시 및 미리 정해진 개인 키에 기초하여 애플리케이션 서명(508)을 생성하기 위해 사용된다. 애플리케이션 해시는 메인 코드 성분(502)의 적어도 일부로부터 생성된 암호화 해시이다. 소프트웨어 애플리케이션을 실행하는 하드웨어 디바이스의 운영 시스템은 애플리케이션 서명(508)이 사인된 이래로 애플리케이션이 위조 또는 변형되지 않도록 보장하기 위해 애플리케이션 서명(508)을 인증하도록 명령된다. 선택적으로, 하드웨어 서명을 위한 해시를 생성하기 위해 사용되는 데이터 세트는 또 구매 정보(510)를 포함할 수 있고, 이 구매 정보는 도 4에 도시된 예시적인 DRM 시스템에 도시된 것과 같이 소매상인 또는 구매자 중 어느 하나에 의해 제공된다.
다른 실시예에 있어서, 해시는 몇가지 애플리케이션 상세들(particulars)(예컨대 애플리케이션명, 버전, 및 창작자 ID)를 이용하여 생성되고 생성된 해시는 키들의 풀(pool)로부터 키 쌍을 선택하기 위해 사용된다. 이러한 방법을 이용하여, 애플리케이션 서명에 사용되는 키 쌍이 애플리케이션 상세들에 의해 적어도 부분적으로 결정되고, 상이한 키 쌍은 상이한 유형의 애플리케이션에 대해 사용될 수 있다. 이것은 약간의 보안성을 부가하는 데 그 이유는 2개의 애플리케이션들이 동일한 키 쌍을 덜 사용하는 경향이 있기 때문이다. 하나의 키 쌍이 타협되면(compromised), 모든 애플리케이션들이 파기되는 것은 아니다.
더 높은 보안성을 위해, 애플리케이션 서명(508)은 바람직하게는 개인 키를 이용하여 생성되고 공개 키를 이용하여 인증된다. 개인 키는 제어 엔티티(controlling entity)에 의해 주의깊게 선택되고 보안이 유지된 키들의 풀(pool)로부터 선택될 수 있고, 이 제어 엔티티는 개발자, 배포자, 발행자, 소매상인(retailer)일 수 있지만, 더 바람직하게는 다수의 개발자들, 배포자들, 발행자들 또는 소매 상인들에 대해 중앙집중화된 컨트롤을 가지는 엔티티(예컨대 제조자)일 수 있다. 여기에 기재된 애플리케이션 서명의 주 기능은 허가(authorization)보다는 인증(authentication)을 확인하는 것이기 때문에, 애플리케이션 서명의 인증에 사용된 공개 키는 바람직하게는 잘 공개되고, 용이하게 액세스 가능하고 특정 하드웨어 디바이스들에 대해 불필요한 제한들이 없다.
소프트웨어 애플리케이션(500)은 또 스킵 리스트(skip list; 504)를 구비하 며, 이 스킵 리스트는 소프트웨어 애플리케이션의 어느 부분들이 애플리케이션 서명(508)을 위한 해시를 생성하기 위해 사용되고 어느 부분들이 스킵될 수 있는가를 명령하기 위한 특별한 리소스이다. 해시를 생성하기 위해 사용되는 부분들은 디지털적으로 사인되거나, "봉함(sealed)"될 것이며 하드웨어 서명(508)이 생성된 후 변경되지 않을 수 있고, 반면 스킵된 상기 부분들은 변형될 것이다. 예를 들면, 스킵 리스트(504)는 애플리케이션 실행 중 변경되는 애플리케이션 리소스들을 식별하고 따라서 애플리케이션 서명(508)의 생성으로부터 배제되어야 한다. 이와 같은 애플리케이션 리소스의 일예는 사용자에 의해 제공되는 등록 코드를 절약하기 위해 사용되는 데이터 리소스이다.
애플리케이션 리소스는 데이터 신호를 애플리케이션 리소스에 둠으로써 스킵 리스트(504)에 자동으로 포함되도록 구성될 수 있다. 예를 들면, 소프트웨어 애플리케이션(500)은 애플리케이션 리소스의 최상위 비트(most significant bit; MSB)가 "1"로 설정되면 스킵 리스트에 자동적으로 존재하는 것처럼 애플리케이션 리소스를 처리하도록 구성될 수 있다. 한편, 서명 리소스들과 같은 특정 애플리케이션 리소스들은 스킵 리스트로부터 사전에 배제되고 따라서 항상 애플리케이션 서명(508)의 생성에 포함될 수 있다.
추가 단계들은 또 소프트웨어 애플리케이션(500)의 보안성을 향상시키기 위해 취해질 수 있다. 메인 코드 성분(502)이 비암호화되거나 해독될지라도 메인 코드 성분(502)이 별도로 실행될 수 없도록 예를 들면, 서명 리소스들 성분들 (504, 506, 508, 510, 512) 중 어느 하나, 특히 애플리케이션 서명(508) 및 하드웨어 서 명(512)이 메인 코드 성분(502)과 통합될 수 있다. 소프트웨어 애플리케이션(500)이 분해되어, DRM 보안 성분들 (예컨대 하드웨어 서명(512))이 제거되고, 이후 비보호 애플리케이션으로서 다시 조립될 수 없는 것에 대한 추가 보장을 제공하기 위해 고객 코드들 및 추가 서명들이 부가될 수 있다. 예를 들면, 고객 서명들은 소프트웨어 애플리케이션(500) 내의 하나 이상의 데이터 리소스들 또는 코드 리소스들로부터 생성될 수 있고 소프트웨어 애플리케이션(500) 내에 포함될 수 있다. 소프트웨어 애플리케이션(500)이 하드웨어 디바이스 상에서 실행하면, 애플리케이션 내의 고객 코드는 이들 고객 서명들을 인증하기 위해 API들을 사용한다. 이들 인증들(validations)은 소프트웨어 애플리케이션 코드 내의 다양한 장소들 및 시간들에서 수행되어 애플리케이션 코드에 의한 위조를 더욱 더 곤란하게 할 수 있다.
끝으로, 소프트웨어 애플리케이션(500)은 임의의 원하는 파일 포맷 또는 매체, 예컨대 CD-ROM 상에의 복제물, ROM 또는 RAM 카드 상에의 복제물, 또는 다운로드 가능한 실행파일로 패키징될 수 있다. PalmOS를 실행하는 핸드헬드 디바이스상에 사용되는 소프트웨어 애플리케이션(500)에 있어서, 패키징된 소프트웨어 애플리케이션(500)은 바람직하게는 PalmOS 리소스 파일 (.prc)이다.
본원에 개시된 것과 같이, 본 개시내용에 따른 예시적인 ESD 방법들은 디지털 암호 서명을 사용하는 종래의 기능과는 상당히 대조적인 기능을 수행하기 위해 디지털 암호 서명을 이용한다. 디지털 암호 서명을 이용하는 종래의 기능은 수신자가 사인 엔티티(signing entity)의 ID를 확인하는 것이지만, 본 개시내용에 따른 몇 가지 DRM 방법들은 디지털 암호 서명을 이용하여 사인하는 사람이 수신하는 엔 티티(특히, 하드웨어 디바이스)의 아이덴터티(identity)를 확인할 수 있다. 수신하는 엔티티의 공개 키가 하드웨어 서명을 생성한 사인하는 사람이 보유한 개인 키와 매칭하면, 이 때 인증은 성공적이다. 따라서, 본 발명의 예시적인 ESD 방법들에 사용되는 몇몇 DRM 기술들은 수신하는 엔티티(상기 하드웨어 디바이스)의 공개 키의 물리적 특징(physicality)의 이점을 갖는다.
디지털 암호 서명의 이러한 고유의 "역인증(reverse validation)"은 본 개시내용에 따른 DRM 방법들의 유효성 및 단순성에 기여한다. 하드웨어 서명이 소프트웨어 애플리케이션 패키지를 형성하기 위해 소프트웨어 애플리케이션의 메인 코드 성분에 첨부되기 때문에, 별도의 DRM 인증서는 사용자에게 소프트웨어 애플리케이션을 사용할 권한을 줄 필요가 없다. 디지털 하드웨어 서명 인증의 단순성은 고유하게 패키징된 소프트웨어 애플리케이션(500)을 인가받은 하드웨어 디바이스에 사용자가 라이센스 키 또는 라이센스 코드를 기억 또는 입력할 필요없이 로크(lock)하는 자동화된 DRM 방법들 및 시스템들을 가능하게 한다. 게다가 소프트웨어 애플리케이션의 메인 코드 성분은 암호화될 필요가 없다.
상기 명세서에 있어서, 본 개시내용은 그것의 특정 실시예들을 참조하여 기술되지만 이 기술분야에서 숙련된 사람은 본 개시내용이 거기에 제한되지 않는다는 것을 알 수 있을 것이다. 상기 개시내용의 여러 특징들 및 양상들은 개별적으로 또는 연합하여 사용될 수 있다. 게다가, 본 개시내용은 본 명세서의 더 넓은 사상 및 범위를 벗어나지 않고 본원에 기술된 것 이외의 임의의 수의 환경들 및 애플리케이션들에 이용될 수 있다. 따라서, 본 명세서 및 도면들은 제한적인 것보다는 예시적 인 것으로 간주된다. 본원에 사용된 용어 "포함하는(comprising)", "구비하는(including)", 및 "가지는(having)"은 특히 이 기술분야에서 제한 없는 용어들(open-ended term)로서 이해되도록 의도된 것을 알 수 있을 것이다.

Claims (33)

  1. 서버 시스템에서, 사용자 식별(user identification)을 포함하는 사용자 데이터의 세트를 수신하는 단계;
    상기 사용자 식별에 매칭되는 하드웨어 식별 속성을 상기 서버 시스템에 기 저장된 데이터베이스로부터 자동 결정하여, 상기 하드웨어 식별 속성을 가지는 디지털 서명을 생성하는 단계;
    서버 시스템에서 매칭하는 하드웨어 식별 속성을 가진 하드웨어 상에서만 실행가능한 소프트웨어 애플리케이션 패키지를 생성하기 위해 상기 디지털 서명을 소프트웨어 애플리케이션에 첨부하는 단계; 및
    서버 시스템에서 상기 소프트웨어 애플리케이션 패키지를 배포하는 단계를 포함하며, 상기 소프트웨어 애플리케이션 패키지는 메인 코드 성분 및 상기 메인 코드 성분에 첨부된 디지털 서명을 갖는 것을 특징으로 하는 전자 소프트웨어 배포(electronic software distribution; ESD) 방법.
  2. 제 1 항에 있어서,
    상기 사용자 데이터의 세트를 수신하는 단계는 상기 하드웨어 상에 저장된 상기 하드웨어 식별 속성을 판독하는 단계를 포함하는, 전자 소프트웨어 배포 방법.
  3. 제 1 항에 있어서,
    상기 데이터베이스는, 사용자 식별들 각각과 매칭되는 하드웨어 식별 속성들을 포함하는, 전자 소프트웨어 배포 방법.
  4. 삭제
  5. 삭제
  6. 제 1 항에 있어서,
    상기 사용자 데이터의 세트는 상기 소프트웨어 애플리케이션 패키지의 복제물(copy)을 구매하는 구매자(buyer)로부터 POS(point-of-sale)에서 수신되는, 전자 소프트웨어 배포 방법.
  7. 삭제
  8. 제 1 항에 있어서,
    상기 디지털 서명은 해시 데이터 세트(hash data set) 및 제 1 키를 이용하여 생성되는, 전자 소프트웨어 배포 방법.
  9. 제 8 항에 있어서,
    상기 데이터 세트는 상기 하드웨어 식별 속성을 포함하는, 전자 소프트웨어 배포 방법.
  10. 제 8 항에 있어서,
    상기 해시 데이터는 상기 소프트웨어 애플리케이션의 애플리케이션 서명으로부터 생성되는, 전자 소프트웨어 배포 방법.
  11. 제 8 항에 있어서,
    상기 디지털 서명은 상기 하드웨어 상에 저장된 제 2 키에 의해 인증되는, 전자 소프트웨어 배포 방법.
  12. 제 8 항에 있어서,
    상기 디지털 서명은 암호화된 인증 키에 의해 인증되고, 이 암호화된 인증 키는 상기 하드웨어 상에 저장된 제 2 키에 의해 차례로 인증되는 전자 소프트웨어 배포 방법.
  13. 제 1 항에 있어서,
    상기 소프트웨어 애플리케이션 패키지는 다운로드가능한 실행 파일(downloadable executable file)인, 전자 소프트웨어 배포 방법.
  14. 삭제
  15. 제 1 항에 있어서,
    상기 디지털 서명은 상기 메인 코드 성분이 비암호화(non-encrypted) 또는 해독되더라도 상기 소프트웨어 애플리케이션이 개별적으로 실행될 수 없도록 상기 소프트웨어 애플리케이션과 통합되는, 전자 소프트웨어 배포 방법.
  16. 삭제
  17. 제 1 항에 있어서,
    상기 사용자 데이터의 세트를 수신하는 단계는 제 1 서버에 의해 수행되고, 상기 디지털 서명을 생성하는 단계는 제 2 서버에 의해 수행되는, 전자 소프트웨어 배포 방법.
  18. 제 17 항에 있어서,
    상기 제 1 서버는 상기 소프트웨어 애플리케이션을 저장하도록 구성된 전자 소프트웨어 배포 서버이고, 상기 제 2 서버는 상기 디지털 서명을 생성하기 위해 개인 키들을 저장하도록 구성된 디지털 서명 서버인, 전자 소프트웨어 배포 방법.
  19. 제 18 항에 있어서,
    상기 디지털 서명 서버는 상기 생성된 디지털 서명을 상기 전자 소프트웨어 배포 서버로 돌려 보내 상기 소프트웨어 애플리케이션 패키지를 형성하도록 구성된, 전자 소프트웨어 배포 방법.
  20. 삭제
  21. 삭제
  22. 사용자 식별을 포함하는 사용자 데이터의 세트를 수신하는 사용자 인터페이스;
    상기 사용자 인터페이스로부터의 요청시, 상기 사용자 식별에 매칭되는 하드웨어 식별 속성을 기 저장된 데이터베이스로부터 자동 결정하여, 상기 하드웨어 식별 속성을 가지는 디지털 서명을 생성하고, 상기 디지털 서명을 소프트웨어 애플리케이션에 첨부하여 소프트웨어 애플리케이션 패키지를 형성하도록 구성된 서버 시스템; 및
    상기 소프트웨어 애플리케이션 패키지를 배포하는 배포 채널을 포함하며, 상기 소프트웨어 애플리케이션 패키지는 메인 코드 성분 및 상기 메인 코드 성분에 첨부된 디지털 서명을 갖는 것을 특징으로 하는, 전자 소프트웨어 배포 시스템.
  23. 제 22 항에 있어서,
    상기 사용자 데이터의 세트를 수신하는 것은 하드웨어 상에 저장된 상기 하드웨어 식별 속성을 판독하는 것을 포함하는, 전자 소프트웨어 배포 시스템.
  24. 제 22 항에 있어서,
    상기 사용자 데이터의 세트는 사용자 식별을 포함하고, 상기 하드웨어 식별 속성은 상기 사용자 식별을 각각의 사용자 식별들과 연관된 하드웨어 식별 속성들을 포함하는 데이터베이스에 매칭시킴으로써 자동으로 결정되는, 전자 소프트웨어 배포 시스템.
  25. 제 22 항에 있어서,
    상기 사용자 인터페이스는 웹 브라우저를 포함하는, 전자 소프트웨어 배포 시스템.
  26. 삭제
  27. 제 22 항에 있어서,
    상기 서버 시스템은 상기 소프트웨어 애플리케이션을 저장하는 전자 소프트웨어 배포 서버, 및 상기 디지털 서명을 생성하기 위해 개인 키들을 저장하는 디지털 서명 서버를 포함하는, 전자 소프트웨어 배포 시스템.
  28. 제 27 항에 있어서,
    상기 디지털 서명 서버는 상기 생성된 디지털 서명을 상기 전자 소프트웨어 배포 서버로 돌려 보내 상기 소프트웨어 애플리케이션 패키지를 형성하도록 구성된, 전자 소프트웨어 배포 시스템.
  29. 삭제
  30. 사용자 식별을 포함하는 사용자 데이터의 세트를 수신하는 단계;
    서버 시스템에서 상기 사용자 식별에 매칭되는 하드웨어 식별 속성을 상기 서버 시스템에 기 저장된 데이터베이스로부터 자동 결정하여, 상기 하드웨어 식별 속성을 가지는 디지털 서명을 생성하고, 상기 디지털 서명을 소프트웨어 애플리케이션의 메인 코드 성분에 첨부하여 소프트웨어 애플리케이션 패키지를 형성하는 단계; 및
    상기 메인 코드 성분 및 상기 메인 코드 성분에 첨부된 디지털 서명을 가진 상기 소프트웨어 애플리케이션 패키지를 상기 서버 시스템에서 배포하는 단계를 포함하고, 상기 소프트웨어 애플리케이션 패키지는 매칭하는 하드웨어 식별 속성을 가진 하드웨어 상에서만 실행가능한, 전자 소프트웨어 배포 방법.
  31. 제 30 항에 있어서,
    상기 사용자 데이터의 세트를 수신하는 단계는 웹 브라우저를 통해 수행되는, 전자 소프트웨어 배포 방법.
  32. 삭제
  33. 제 30 항에 있어서,
    상기 디지털 서명을 생성하기 위해 상기 서버 시스템에 요청하는 단계는 네트워크를 통해 수행되는, 전자 소프트웨어 배포 방법.
KR1020077008556A 2004-09-17 2005-09-15 하드웨어 식별에 기초한 디지털권 관리 방법을 이용한 전자소프트웨어 배포 방법 및 시스템 KR100912276B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/943,595 2004-09-17
US10/943,595 US20060064488A1 (en) 2004-09-17 2004-09-17 Electronic software distribution method and system using a digital rights management method based on hardware identification

Publications (2)

Publication Number Publication Date
KR20070085257A KR20070085257A (ko) 2007-08-27
KR100912276B1 true KR100912276B1 (ko) 2009-08-17

Family

ID=36075293

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077008556A KR100912276B1 (ko) 2004-09-17 2005-09-15 하드웨어 식별에 기초한 디지털권 관리 방법을 이용한 전자소프트웨어 배포 방법 및 시스템

Country Status (6)

Country Link
US (1) US20060064488A1 (ko)
EP (1) EP1810171A4 (ko)
KR (1) KR100912276B1 (ko)
CN (1) CN101084482A (ko)
TW (1) TW200633465A (ko)
WO (1) WO2006033975A2 (ko)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0403705D0 (en) * 2004-02-19 2004-03-24 Waterleaf Ltd Gaming facility and method of operation thereof
US20060064756A1 (en) * 2004-09-17 2006-03-23 Ebert Robert F Digital rights management system based on hardware identification
US20060190557A1 (en) * 2005-02-24 2006-08-24 Ibm Corporation Method and apparatus for forwarding user information among multiple information handling systems
US7555464B2 (en) * 2006-03-01 2009-06-30 Sony Corporation Multiple DRM management
US20070250515A1 (en) * 2006-04-21 2007-10-25 Lea David H Method and system of securing content and destination of digital download via the internet
EP1956021A1 (en) * 2006-10-11 2008-08-13 Ferrer Internacional, S.A. Process for the manufacture of a crystalline pyrazolo[1,5-a]pyrimidine compound
US8254568B2 (en) 2007-01-07 2012-08-28 Apple Inc. Secure booting a computing device
US8239688B2 (en) 2007-01-07 2012-08-07 Apple Inc. Securely recovering a computing device
US8239274B2 (en) * 2007-01-11 2012-08-07 Microsoft Corporation Purchasing of individual features of a software product
US20080222348A1 (en) * 2007-03-08 2008-09-11 Scandisk Il Ltd. File system for managing files according to application
US8776258B2 (en) * 2007-06-20 2014-07-08 David J. Linsley Providing access rights to portions of a software application
US8620818B2 (en) 2007-06-25 2013-12-31 Microsoft Corporation Activation system architecture
US8661552B2 (en) 2007-06-28 2014-02-25 Microsoft Corporation Provisioning a computing system for digital rights management
US8646096B2 (en) * 2007-06-28 2014-02-04 Microsoft Corporation Secure time source operations for digital rights management
US8689010B2 (en) * 2007-06-28 2014-04-01 Microsoft Corporation Secure storage for digital rights management
US8635309B2 (en) 2007-08-09 2014-01-21 Hand Held Products, Inc. Methods and apparatus to change a feature set on data collection devices
US8607226B2 (en) * 2008-01-22 2013-12-10 International Business Machines Corporation Solution for locally staged electronic software distribution using secure removable media
US8150039B2 (en) 2008-04-15 2012-04-03 Apple Inc. Single security model in booting a computing device
WO2009139869A1 (en) * 2008-05-13 2009-11-19 Tirk Eric E Device and method for distributing and monetizing host applications
US20090287917A1 (en) * 2008-05-19 2009-11-19 Microsoft Corporation Secure software distribution
US8095799B2 (en) * 2008-07-28 2012-01-10 Apple Inc. Ticket authorized secure installation and boot
KR100941156B1 (ko) * 2009-04-20 2010-02-10 이경석 어플리케이션의 거래와 정당 사용자의 실행을 지원하는 오픈 마켓 시스템 및 그 오픈 마켓 방법
US8799890B2 (en) * 2009-11-30 2014-08-05 Red Hat, Inc. Generating a version identifier for a computing system based on software packages installed on the computing system
KR101780023B1 (ko) 2010-03-12 2017-09-19 삼성전자주식회사 구매 정보에 기초한 어플리케이션/콘텐트 송수신 방법 및 장치
EP2727307A4 (en) * 2011-07-01 2015-05-06 Nokia Corp SOFTWARE AUTHENTICATION
AU2012203903B2 (en) * 2011-07-12 2015-03-12 Apple Inc. System and method for linking pre-installed software to a user account on an online store
CN102567685B (zh) * 2011-12-31 2015-01-07 常熟理工学院 基于非对称公钥密码体系的软件版权保护方法
CN102760214B (zh) * 2012-06-13 2015-11-18 北大方正集团有限公司 一种新型的软件版权保护方法及装置
US8832847B2 (en) 2012-07-10 2014-09-09 International Business Machines Corporation Coordinating data sharing among applications in mobile devices
US8984480B2 (en) 2012-07-10 2015-03-17 International Business Machines Corporation Automating and/or recommending data sharing coordination among applications in mobile devices
DE102013104735A1 (de) * 2013-05-08 2014-11-13 Vorwerk & Co. Interholding Gmbh Verfahren zum kopiergeschützten Hinterlegen von Informationen auf einem Datenträger
US9292684B2 (en) 2013-09-06 2016-03-22 Michael Guidry Systems and methods for security in computer systems
US8868924B1 (en) 2014-03-04 2014-10-21 Kaspersky Lab Zao System and method for modifying a software distribution package
US10200201B2 (en) * 2014-04-07 2019-02-05 Samsung Electronics Co., Ltd Method for application installation, electronic device, and certificate system
EP3012761B1 (de) 2014-10-20 2021-09-08 dSPACE digital signal processing and control engineering GmbH Schutz von softwaremodellen
US9591145B2 (en) * 2015-04-30 2017-03-07 Amazon Technologies, Inc. Application-specific mobile data allocation
CN106528231B (zh) * 2016-11-07 2019-08-20 青岛海信移动通信技术股份有限公司 一种启动应用程序的方法和装置
CN112699343A (zh) * 2019-10-23 2021-04-23 华为技术有限公司 一种软件完整性保护、校验的方法及装置
US11252570B2 (en) 2019-11-22 2022-02-15 John Junior Richardson Computer system and method for software authentication and single application enforcement
US11397822B2 (en) * 2020-07-23 2022-07-26 Dell Products L.P. System and method of utilizing document security

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6170060B1 (en) 1997-10-03 2001-01-02 Audible, Inc. Method and apparatus for targeting a digital information playback device
US20030208595A1 (en) 2001-04-27 2003-11-06 Gouge David Wayne Adaptable wireless proximity networking

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233567B1 (en) * 1997-08-29 2001-05-15 Intel Corporation Method and apparatus for software licensing electronically distributed programs
US7073063B2 (en) * 1999-03-27 2006-07-04 Microsoft Corporation Binding a digital license to a portable device or the like in a digital rights management (DRM) system and checking out/checking in the digital license to/from the portable device or the like
US7146645B1 (en) * 1999-12-30 2006-12-05 Nokia Mobile Phones Ltd. Dedicated applications for user stations and methods for downloading dedicated applications to user stations
US7426750B2 (en) * 2000-02-18 2008-09-16 Verimatrix, Inc. Network-based content distribution system
AU2001255833A1 (en) * 2000-04-18 2001-10-30 Iomega Corporation Method and system for securely downloading content to users
WO2002001333A2 (en) * 2000-06-27 2002-01-03 Microsoft Corporation System and method for providing an individualized secure repository
US7036011B2 (en) * 2000-06-29 2006-04-25 Cachestream Corporation Digital rights management
AU2001271763A1 (en) * 2000-06-30 2002-01-14 Zinio Systems, Inc. System and method for encrypting, distributing and viewing electronic documents
US20020026445A1 (en) * 2000-08-28 2002-02-28 Chica Sebastian De La System and methods for the flexible usage of electronic content in heterogeneous distributed environments
JP4067757B2 (ja) * 2000-10-31 2008-03-26 株式会社東芝 プログラム配布システム
GB0100753D0 (en) * 2001-01-11 2001-02-21 Bate Matthew Data system
CN101369299B (zh) * 2001-01-17 2010-06-09 康坦夹德控股股份有限公司 管理数字内容使用权利的方法和装置
US7672903B2 (en) * 2001-08-27 2010-03-02 Dphi Acquisitions, Inc. Revocation method and apparatus for secure content
US7313828B2 (en) * 2001-09-04 2007-12-25 Nokia Corporation Method and apparatus for protecting software against unauthorized use
US7272858B2 (en) * 2002-04-16 2007-09-18 Microsoft Corporation Digital rights management (DRM) encryption and data-protection for content on a relatively simple device
US7472270B2 (en) * 2002-04-16 2008-12-30 Microsoft Corporation Secure transmission of digital content between a host and a peripheral by way of a digital rights management (DRM) system
US7680743B2 (en) * 2002-05-15 2010-03-16 Microsoft Corporation Software application protection by way of a digital rights management (DRM) system
US7529929B2 (en) * 2002-05-30 2009-05-05 Nokia Corporation System and method for dynamically enforcing digital rights management rules
US7549060B2 (en) * 2002-06-28 2009-06-16 Microsoft Corporation Using a rights template to obtain a signed rights label (SRL) for digital content in a digital rights management system
US20040039932A1 (en) * 2002-08-23 2004-02-26 Gidon Elazar Apparatus, system and method for securing digital documents in a digital appliance
US20040054920A1 (en) * 2002-08-30 2004-03-18 Wilson Mei L. Live digital rights management
US20040088541A1 (en) * 2002-11-01 2004-05-06 Thomas Messerges Digital-rights management system
US7734549B2 (en) * 2002-12-31 2010-06-08 Motorola, Inc. Methods and apparatus for managing secured software for a wireless device
US20040143746A1 (en) * 2003-01-16 2004-07-22 Jean-Alfred Ligeti Software license compliance system and method
US7356709B2 (en) * 2003-01-31 2008-04-08 Microsoft Corporation Systems and methods for deterring software piracy in a volume license 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
US20060064756A1 (en) * 2004-09-17 2006-03-23 Ebert Robert F Digital rights management system based on hardware identification

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6170060B1 (en) 1997-10-03 2001-01-02 Audible, Inc. Method and apparatus for targeting a digital information playback device
US20030208595A1 (en) 2001-04-27 2003-11-06 Gouge David Wayne Adaptable wireless proximity networking

Also Published As

Publication number Publication date
EP1810171A2 (en) 2007-07-25
KR20070085257A (ko) 2007-08-27
WO2006033975A2 (en) 2006-03-30
CN101084482A (zh) 2007-12-05
EP1810171A4 (en) 2010-06-02
WO2006033975A3 (en) 2007-06-28
US20060064488A1 (en) 2006-03-23
TW200633465A (en) 2006-09-16

Similar Documents

Publication Publication Date Title
KR100912276B1 (ko) 하드웨어 식별에 기초한 디지털권 관리 방법을 이용한 전자소프트웨어 배포 방법 및 시스템
KR20070046982A (ko) 하드웨어 식별에 기초한 디지털권 관리 시스템
KR100362219B1 (ko) 변조방지 프로세서를 이용하여 프로그램을 분배하기 위한방법 및 시스템
EP1942430B1 (en) Token Passing Technique for Media Playback Devices
JP5065911B2 (ja) プライベートな、かつ制御された所有権の共有
JP5330488B2 (ja) 安全にコンテンツを配布する方法及び装置
JP3130267B2 (ja) 暗号エンベロープの作成方法
JP3830365B2 (ja) コンピュータ・ソフトウェア及び/又はコンピュータで読取り可能なデータを保護する方法、並びに保護装置
JP2005537559A (ja) トランザクションの安全な記録
JP2006504176A (ja) コンテンツ操作を許可する方法及び装置
KR100502580B1 (ko) 보안성이 향상된 디지털 컨텐츠 유통 방법
JP2007511810A (ja) 乱数関数を利用した実行証明
JP2001175468A (ja) ソフトウエア使用制御方法とその装置
US20130173923A1 (en) Method and system for digital content security cooperation
JP6796861B2 (ja) アプリケーションソフトウェアの提供及び認証方法並びにそのためのシステム
JP3758316B2 (ja) ソフトウェアライセンス管理装置および方法
CN116167017A (zh) 一种基于区块链技术的鞋类原创设计ai数字版权管理系统
JP3575210B2 (ja) デジタル情報管理システム、端末装置、情報管理センタ及びデジタル情報管理方法
KR100367094B1 (ko) 컴퓨터 프로그램 온라인 유통 방법
KR100831726B1 (ko) Drm 시스템에서의 보안 방법 및 시스템
JP2005020580A (ja) ネットワークシステム
JP2002132145A (ja) 認証方法、認証システム、記録媒体及び情報処理装置
JP2005086457A (ja) 復号鍵要求プログラム、記憶媒体、端末装置、およびサーバ装置
CN115952473A (zh) 基于nft技术的智能算法版权鉴权方法、装置及相关介质
JP2001356833A (ja) ソフトウェアの不正使用防止システム

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee