KR101377359B1 - 보안 엔진 기반 하드웨어를 사용한 안전한 소프트웨어 라이센싱 및 제공 방법 - Google Patents

보안 엔진 기반 하드웨어를 사용한 안전한 소프트웨어 라이센싱 및 제공 방법 Download PDF

Info

Publication number
KR101377359B1
KR101377359B1 KR1020137013003A KR20137013003A KR101377359B1 KR 101377359 B1 KR101377359 B1 KR 101377359B1 KR 1020137013003 A KR1020137013003 A KR 1020137013003A KR 20137013003 A KR20137013003 A KR 20137013003A KR 101377359 B1 KR101377359 B1 KR 101377359B1
Authority
KR
South Korea
Prior art keywords
license
computing platform
key
server
firmware component
Prior art date
Application number
KR1020137013003A
Other languages
English (en)
Other versions
KR20130079602A (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 KR20130079602A publication Critical patent/KR20130079602A/ko
Application granted granted Critical
Publication of KR101377359B1 publication Critical patent/KR101377359B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • 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]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • 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/061Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying further key derivation, e.g. deriving traffic keys from a pair-wise master key
    • 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
    • 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

Landscapes

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

Abstract

네트워크를 통해 제 1 서버로부터 컴퓨팅 플랫폼으로 라이센스 및 애플리케이션 프로그램을 제공하는 것에 관한 것이다. 호스트 애플리케이션은 사용자 패스워드의 적어도 일부로부터 대칭 키(a symmetric key)를 유도하고, 컴퓨팅 플랫폼의 칩셋 내 하드웨어 구현된 보안 엔진(a hardware-implemented security engine)의 라이센스 관리 펌웨어 컴포넌트(a license management firmware component)로 대칭 키에 의해 서명된 메시지 내에 라이센스를 송신한다. 라이센스 관리 펌웨어 컴포넌트는 하드웨어 구현된 보안 엔진의 보안 스토리지 내에 저장된 사용자 패스워드의 적어도 일부로부터 대칭 키를 유도하고, 대칭 키를 사용하여 메시지상의 서명을 검증(verify)하고, 라이센스상의 제 1 서버의 서명을 검증하고, 제 2 키를 획득하기 위해 제 1 공개 키에 대응하는 라이센스 관리 펌웨어 컴포넌트의 제 1 비밀 키(a first private key)를 사용하여 라이센스를 복호화하고, 제 2 키를 사용하여 애플리케이션 프로그램을 복호화하는 호스트 애플리케이션으로 제 2 키를 송신한다.

Description

보안 엔진 기반 하드웨어를 사용한 안전한 소프트웨어 라이센싱 및 제공 방법{SECURE SOFTWARE LICENSING AND PROVISIONING USING HARDWARE BASED SECURITY ENGINE}
본 발명은 전반적으로 컴퓨팅 분야에 관한 것이다. 더 구체적으로, 본 발명의 실시예는 하드웨어 기반 보안 엔진을 사용하는 컴퓨팅 플랫폼으로의 소프트웨어의 안전한 라이센싱에 관한 것이다.
컴퓨팅 디바이스는 소프트웨어 서비스 공급자 또는 다른 판매자에 의해 제공되는 정확한 라이센싱/버저닝(versioning) 시스템을 요구할 수 있는 소프트웨어와 함께 최종 사용자들에 의해 사용된다. 현재 소프트웨어 라이센싱 방법은 전반적으로 (예를 들어, 동글(a dongle)과 같은) 사유 하드웨어에 기반하거나, 보안 특성을 갖는 운영체제(OS)를 통한 안전한 암호화 키(cryptographic keys)를 사용한다. 이러한 메커니즘들은 OS 및 암호화/복호화에 사용되는 키를 보호하는 이의 서비스에 의존하고, 특정 정의된 정책(specific defined policies)에 근거하여 SW 라이센스에 대해 대여 시간 기간(a lease time period)을 시행할 수 있다. 컴퓨터 바이러스, 해커, 및 악의적인 의도를 가진 사용자들에게 OS-제어 애플리케이션(OS-controlled applications)은 손쉬운 대상이다. 그들은 OS 관리되는 스토리지 내의 숨겨진 키를 찾기 위해 정교한 도구를 사용하거나, 예를 들어, 컴퓨팅 시스템 시간을 변경하여 대여 시간을 연장함으로써 또는 문서 열람자가 정책을 읽기 위해 사용하는 파일을 다른 시스템으로부터 얻은 상이한 파라미터를 가진 유효 파일로 대체함으로써, 정책을 우회하는(bypass) 방법들을 발견할 수 있다.
사유 하드웨어 솔루션은 비용이 많이 들고, 사용자를 하나의 판매자로 국한하며, 판매자가 신속하고 혁신적인 솔루션을 개발하는 것을 허용하지 않는다. 그러므로, 컴퓨팅 시스템에 소프트웨어를 라이센싱하기 위한 개선된 안전한 메커니즘이 필요하다.
본 발명의 실시예들은 하드웨어-구현된 보안 엔진(a hardware-implemented security engine: SE)을 이용하는 소프트웨어 라이센싱 메커니즘을 제공한다. 보안 엔진(SE)은 컴퓨팅 플랫폼의 칩셋에 내장될 수 있고, 호스트 OS에 관하여 독립적이며, 인증(authentication)을 위해 원격 서버와 안전하게 통신할 수 있다. 소프트웨어 라이센스 및/또는 (예를 들어, 애플리케이션 프로그램과 같은) 제한된 소프트웨어를 복호화하기 위해 그리고 대여 시간 기간과 같은 정책을 실시하기 위해 요구되는 암호화 키(cryptographic keys)를 보호하기 위한 호스트 OS에 독립적인 하드웨어 컴포넌트의 사용은, 보안 솔루션을 순수 소프트웨어-기반 솔루션(purely software-based solutions)과 비교하여 더 안전하게 만든다. 소프트웨어만의 솔루션과 비교할 때, SE는 사용자 레벨 또는 OS 소프트웨어에 의해 간섭받지 않을 수 있기 때문에, 키를 얻기 위해 SE를 해킹하는 것은 훨씬 더 어려울 수 있다.
다음 설명에서, 많은 구체적인 상세 사항이 다양한 실시예에 관한 완전한 이해를 제공하기 위해 언급될 것이다. 하지만, 본 발명에 관한 다양한 실시예는 특정 세부사항 없이도 실행될 수 있다. 다른 경우에서 잘 알려진 방법, 절차, 구성 요소, 및 회로는, 본 발명의 특정 실시예를 이해하기 어렵지 않게 하기 위해 상세히 설명되지 않는다. 또한, 본 발명의 실시예에 관한 다양한 양태들은 다양한 수단을 사용하여 실시될 수 있는데, 가령, 집적 반도체 회로("하드웨어"), 컴퓨터 판독 가능한 저장 매체상에 저장된 하나 또는 그 이상의 프로그램에 편성된 컴퓨터 판독 가능한 명령어("소프트웨어"), 또는 하드웨어 및 소프트웨어의 일부 조합이 있을 수 있다. 본 개시의 목적을 위해, "로직"에 관한 언급은 하드웨어, (프로세서의 작동을 제어하는 예시의 마이크로코드를 포함하는) 소프트웨어, 펌웨어, 또는 그것들의 일부 조합을 의미할 것이다.
상세한 설명이 첨부된 도면과 관련하여 제공된다. 상이한 도면에서 동일한 참조 번호를 사용하는 것은 유사하거나 동일한 아이템을 나타내는 것이다.
도 1은 본 발명의 일 실시예에 따른 시스템 아키텍처에 관한 다이어그램이다.
도 2는 본 발명의 일 실시예에 따른 안전한 라이센스 관리 서비스를 활성화하는 프로세스에 관한 다이어그램이다.
도 3은 본 발명의 일 실시예에 따라 자격 라이센싱 서비스를 활성화하는 프로세스에 관한 다이어그램이다.
도 4 및 5는 본 발명의 일 실시예에 따라 라이센스를 얻고 제한된 소프트웨어를 인증하는 프로세스에 관한 다이어그램이다.
도 6은 본 발명의 일 실시예에 따른 컴퓨팅 플랫폼에 관한 다이어그램이다.
도 1은 본 발명의 일 실시예에 따른 시스템 아키텍처(100)에 관한 다이어그램이다. 명확성을 위해, 도 1은 컴퓨팅 플랫폼(102)에 관한 단순화된 다이어그램을 포함한다. 컴퓨팅 플랫폼은 적어도 하나의 프로세서 및 적어도 하나의 메모리를 구비한 임의의 종류의 컴퓨팅 디바이스일 수 있다. 일 실시예에서, 컴퓨팅 플랫폼은 핸드헬드 및/또는 모바일 컴퓨팅 디바이스를 포함하는데, 가령 휴대전화, 스마트폰, 태블릿, PDA(personal device assistant), 넷북 등을 포함한다. 일 실시예에서 컴퓨팅 플랫폼은 핸드헬드 및/또는 모바일 디바이스인데, 종래 기술 시스템에서 하드웨어 동글(a hardware dongle)을 요구하는 것은 비현실적이고 문제가 많기 때문이다. 컴퓨팅 플랫폼의 일 실시예에 관한 더 상세한 예시는 도 6을 참조하여 아래에서 논의된다.
본 발명의 실시예는, 제한된 소프트웨어에 관한 인증되지 않은 사용의 저지, 공급, 및 라이센싱을 위한 스토리지 환경 및 안전한 실행을 제공하도록, 보안 엔진(SE)(108)이라 불리는 내장형 마이크로컨트롤러를 사용한다. 일 실시예에서, 보안 엔진(108)은 칩셋(106) 내에서 잘 알려진 매니지어빌리티 엔진(manageability engine: ME) 하드웨어 컴포넌트 내의 기능(functionality)으로서 구현될 수 있다. 다른 실시예에서, 보안 엔진은 ME와는 별개로 칩셋(106) 내 회로로서 구현될 수 있다. SE는 안전한 실행 환경에서 마이크로컨트롤러상에서 구동하고, 사용자 레벨 프로그램, 운영 체제(OS), 또는 컴퓨팅 플랫폼(102) 내의 프로세서상에서 구동하는 기본 입력/출력 시스템(BIOS)에 의한 간섭으로부터 보호되는 보안 스토리지 영역(109)을 제공하는 펌웨어를 포함한다. 일 실시예에서, 보안 스토리지는, 소프트웨어 라이센싱 목적을 위해 사용될 수 있는 암호화 키 및 기타 데이터를 저장할 수 있다. 보안 스토리지는 임의의 종류의 메모리를 포함할 수 있다.
일 실시예에서, SE는 적어도 두 개의 펌웨어 모듈을 포함한다. 안전한 라이센스 관리(Secure License Management: SLM) 서비스(112)는 라이센스 정보 및 관련 정책을 복호화하는데 필요한 키의 저장을 관리하는 펌웨어 모듈을 포함한다. 자격 라이센싱 서비스(capability licensing service: CLS)(110)는 SE 내 SLM 서비스에 관한 안전한 제공을 제공하는 펌웨어 모듈을 포함한다. 컴퓨팅 플랫폼(102)은 칩셋(106)에 연결된 적어도 하나의 프로세서(104)를 포함한다. 프로세서(104)는 호스트 애플리케이션(116)이라 불리는 애플리케이션 프로그램을 실행할 수 있다. 호스트 애플리케이션은 컴퓨팅 플랫폼상에 설치된 제한된 소프트웨어의 사용을 인증하고 획득하는 목적을 위한 컴퓨팅 플랫폼의 사용자와의 상호 작용을 관리한다. 제한된 소프트웨어는 소프트웨어 판매자가 정의된 정책에 따라 접근을 제한하기 원하는 라이센스에 의해 관리되는 소프트웨어를 포함한다. 일 실시예에서, 호스트 애플리케이션(116)은 보안 엔진 인터페이스(security engine interface: SEI)(114)를 통해 SE(108)와 통신한다. 다양한 실시예에서, SEI는 알려진 표준 또는 사유(proprietary) 통신 인터페이스 중 하나에 따라 구현될 수 있다. SE는 공개/사유 보안 애플리케이션 프로그램 인터페이스(APIs)를 통해 호스트 애플리케이션 및 OS(도 1에 도시되지 않음)로 자신의 자격(capabilities)을 드러낸다.
컴퓨팅 플랫폼(102)은 알려진 방법을 사용하여 네트워크(118)와 통신한다. 일 실시예에서, 네트워크는 인터넷을 포함한다. 일 실시예에서, 호스트 애플리케이션(116)은 네트워크와 통신할 수 있고, 또한 SE는 프로세서(104)에 의해 실행되는 임의의 다른 프로그램 (사용자 레벨 프로그램 또는 OS에 상관없이) 또는 호스트 애플리케이션(116)과는 관계없이 네트워크와 통신할 수 있다. 그러므로, SE(108)는, 프로세서에 의해 실행되는 프로그램과는 별개로, 컴퓨팅 플랫폼에 대한 또 다른 통신 채널을 제공한다. 라이센스 서버(120)는, 라이센스를 제공하고 정책 및 복호화 키를 전달하는 자격을 SE로 제공하도록 네트워크에 연결될 수 있다. 일 실시예에서, 라이센스 서버는 사용자의 컴퓨팅 플랫폼으로 제한된 소프트웨어를 공급한다. 일 실시예에서, 복수의 라이센스 서버가 있을 수 있다. 일 실시예에서, 각 라이센스 서버는 소프트웨어 판매자(독립적인 소프트웨어 판매자(independent software vender: ISV))에 의해 작동될 수 있다. 인증 서버(an authorization server)(122)는, CLS를 가능하게 하고, SE 내의 SLM 서비스(112) 및 CLS(110)을 활성화하고 비활성화하도록 네트워크에 연결될 수 있다.
일 실시예에서, SLM 서비스(112)는 소프트웨어 애플리케이션을 획득하고 라이센싱하기 전에 활성화되어야 한다. 활성화는 인증 서버(122)를 사용하여 달성될 수 있다. 일 실시예에서, SE는 인증 서버의 암호화 키에 관한 공개 부분으로의 접근을 제공받을 수 있는데, 이는 컴퓨팅 플랫폼 제조 시 컴퓨팅 플랫폼의 칩셋(106) 내로 융합될 수 있다. 인증 서버의 공개 키를 사용하여, SE는 인증 서버와의 보안 통신 채널을 생성할 수 있다. 활성화 플로우는 SLM 서비스를 위해 요구되는 일부 수정을 가진 CLS 활성화 프로세스를 따른다. 활성화 프로세스는, SLM 서비스 및 라이센스 서버가 그들 사이에 보안 통신 채널을 생성할 수 있도록, SE 내에 라이센스 서버의 공개 키를 저장한다.
도 2는 본 발명의 일 실시예에 따른 SLM 서비스 활성화 프로세스(200)에 관한 다이어그램이다. 블록 202에서, 사용자는 라이센스 서버(120)로 접속하고, 사용자의 컴퓨팅 플랫폼(102)상에 원하는 제한된 소프트웨어로 라이센스를 설치하기 위해 호스트 애플리케이션을 다운로드하고 작동시킨다. 이 접속은 잘 알려진 방법으로서, 웹 브라우저를 사용하여 만들어진다. 제한된 소프트웨어는, 라이센스 메커니즘에 따라 소프트웨어로의 접근이 제한된 컴퓨팅 플랫폼상에서 사용자에 의해 사용되는 임의의 프로그램일 수 있다. 블록 204에서, 호스트 애플리케이션은 새로운 인증을 설치하고 SLM 서비스(112)를 활성화하도록 CLS 활성화 프로세스를 수행하고 작동시킨다. 일 실시예에서, 이 프로세싱은 컴퓨팅 플랫폼에 대해서 한 번만 수행될 수 있다. 또 다른 실시예에서, 이 프로세싱은 제한된 소프트웨어의 임의의 설치 전에 실행될 수 있다.
도 3은 본 발명의 일 실시예에 따라 자격 라이센싱 서비스(CLS) 활성화 프로세스(300)에 관한 다이어그램이다. 블록 302에서, 라이센스 서버(120)는 호스트 애플리케이션(116) 및 SEI(114)를 경유하여 SE(108) 내 CLS(110)으로 라이센스 서버의 공개 키와 함께 크리에이트 퍼밋 객체(a create permit object)를 송신한다. 블록 304에서, CLS는 크리에이트 퍼밋 객체를 사용하여 퍼밋을 생성하고, 호스트 애플리케이션을 경유하여 라이센스 서버로 퍼밋을 송신한다. 블록 306에서, 라이센스 서버는 퍼밋에 인증 제품 키(an authorization product key)를 추가하고 결합된 라이센스 및 퍼밋을 인증 서버(122)로 송신한다. 블록 308에서, 인증 서버는 인증 제품 키를 검증하고, 성공적인 경우, 루트 퍼밋 서버 키(a root permit server key: RPSK)의 비밀 부분(private portion)을 사용하여 퍼밋에 서명한다. RPSK의 공개 부분은 컴퓨팅 플랫폼(102) 제조 시 SE(108)에 저장된다. 다음 블록 310에서, 인증 서버는 서명된 퍼밋을 라이센스 서버 및 호스트 애플리케이션을 경유하여 CLS로 송신한다. 서명된 퍼밋을 수신하면, 블록 312에서 CLS는 RPSK의 공개 부분을 사용하여 서명된 퍼밋을 검증하고, 성공적인 경우, 퍼밋 데이터를 저장하고 SLM 서비스를 활성화한다. 마지막으로, 블록 314에서, CLS는 호스트 애플리케이션 및 라이센스 서버를 통해 다시 인증 서버로 활성화 확인(an activation confirmation)을 송신한다.
일 실시예에서, 인증 서버는 SE의 제조업자에 의해 소유 및/또는 작동될 수 있다. 라이센스 서버는 SLM 서비스의 서비스 공급자(예를 들어, 하드웨어 메커니즘에 의해 그들의 소프트웨어 사용을 보호하기 원하는 ISV)에 의해 소유 및/또는 작동될 수 있다. 일 실시예에서, SE는 컴퓨팅 플랫폼이 출하되는 초기에 인증 서버를 오직 신뢰한다. 그 뒤에, 인증 서버는 SLM 서비스 관리를 위해 라이센스 서버로 신뢰 관계를 위임하는데 사용될 수 있다. 이러한 방법으로, SLM 서비스는, 컴퓨팅 플랫폼이 구매된 이후, 사용자에 의해 추가될 수 있다. 이는 사용자가 유사한 서비스를 제공하는 많은 공급자들로부터 SLM 서비스 공급자를 선택하도록 융통성을 제공한다. 이는 또한 SE 제조업자와의 비즈니스 관계를 가진 서비스 제공자에게만 신뢰 관계를 위임하는 안전한 방법을 제공한다.
도 2를 다시 살펴보면, CLS 활성화 프로세스가 성공적이지 않은 경우, 에러 상태가 보고되고 활성화 프로세싱은 종료한다. SLM 서비스 활성화가 성공적인 경우, 블록 206에서 라이센스 서버(120)는 서버의 시간을 SLM 서비스와 동기화(synchronizes)하여 라이센스 다운로드 동안 대여 시간 기간(a lease time period)이 적절히 설정될 수 있도록 한다. 시간이 동기화된 후에, 호스트 애플리케이션(116)은 블록 208에서 사용자가 패스워드를 입력하도록 촉구한다.
블록 210에서, 호스트 애플리케이션은 (잘 알려진 컴퓨팅 플랫폼 입력 기술을 통해) 사용자 패스워드를 수신하고, (제조 프로세스 동안 SE 내의 보안 스토리지에 저장된) SLM 서비스(112)의 공개 키로 사용자 패스워드를 암호화하고, 인증 서버(122)로 암호화된 패스워드를 송신한다. 블록 212에서, 인증 서버는 인증 서버의 비밀 키로 암호화된 패스워드에 서명하고, 결과 메시지(서명되고, 암호화된 사용자 패스워드)를 SLM 서비스(112)로 송신한다. 블록 214에서, SLM 서비스는 (제조 시 SE에 저장된) 인증 서버의 공개 키를 사용하여 메시지를 검증하고, 암호화된 패스워드를 SLM 서비스의 비밀 키를 사용하여 복호화하며, 검증이 성공적이면 보안 스토리지(109)에 사용자 패스워드를 저장한다.
SLM 서비스의 비활성화는 CLS 비활성화 프로세스를 수행함으로써 그리고 활성화 인증을 무효 인증(a null authorization)으로 대체함으로써 달성될 수 있다.
도 4 및 5는 본 발명의 일 실시예에 따라 라이센스를 획득하고 제한된 소프트웨어를 인증하는 프로세스(400, 500)에 관한 다이어그램이다. 블록 402에서, 사용자는 사용자 컴퓨팅 플랫폼(102)상에서의 사용을 위해 특정 라이센스와 함께 제한된 소프트웨어를 다운로드하도록 라이센스 서버(120)에 요청한다. 일 실시예에서, 요청은 호스트 애플리케이션을 통해 행해질 수 있다. 블록 404에서, 라이센스 서버는 라이센스 암호화 키(a license encryption key: LEK)를 생성하고, LEK를 사용하여 요청된 제한된 소프트웨어를 암호화한다. 일 실시예에서, LEK는 대칭 키(a symmetric key)를 포함한다. 블록 406에서, 라이센스 서버는 LEK를 사용하여 라이센스를 생성한다. 일 실시예에서, 라이센스는 요청된 제한된 소프트웨어에 대한 고유 식별자, 사용자 정보, 소프트웨어 사용을 위한 대여 기간 및 LEK를 포함한다. 라이센스 서버는 SLM 서비스의 공개 키를 사용하여 라이센스를 암호화한다. 일 실시예에서, 호스트 애플리케이션은 SLM 서비스의 공개 키를 사용자 요청의 일부로서 라이센스 서버로 송신한다. 라이센스 서버는 라이센스 서버의 비밀 키를 사용하여 라이센스에 서명한다.
블록 408에서, 라이센스 서버는 암호화된 제한된 소프트웨어 및 서명된 라이센스를 사용자의 컴퓨팅 플랫폼상의 호스트 애플리케이션으로 송신한다. 일 실시예에서, 호스트 애플리케이션은 암호화된 제한된 소프트웨어 및 서명된 라이센스를 컴퓨팅 플랫폼상의 메모리에 저장한다. 또 다른 실시예에서, 암호화된 제한된 소프트웨어 및/또는 라이센스는 보안 스토리지(109) 내에 저장될 수 있다. 블록 410에서, 사용자는 소프트웨어를 사용하기 위해 요청한다. 블록 412에서, 호스트 애플리케이션은 사용자가 사용자의 패스워드를 입력하도록 촉구한다. 블록 414에서, 사용자는 패스워드를 입력한다. 프로세싱은 도 5의 블록 502로 계속된다.
블록 502에서, 호스트 애플리케이션은 사용자 패스워드로부터 대칭 키를 유도한다. 일 실시예에서, 이 프로세스는 패스워드 기반 암호 작성 상세(PKCS #5 버전 2.0, 2000년 11월, B. Kaliski, RSA Laboratories, 코멘트 2898에 대한 요청)에 따라 구현될 수 있다. 다른 실시예에서, 다른 키 생성 메커니즘이 사용될 수 있다. 블록 504에서, 호스트 애플리케이션은 대칭 키에 의해 서명된 메시지 내에 암호화된 라이센스를 SEI를 경유하여 SLM 서비스(112)로 송신한다. 블록 506에서, SLM 서비스는 블록 214에서 저장된 사용자 패스워드로부터 대칭 키를 유도한다. SLM 서비스는 메시지상의 디지털 서명을 검증한다. 메시지 서명이 정확히 검증되는 경우, SLM 서비스는 라이센스 서버의 공개 키를 사용하여 암호화된 라이센스상에 있는 라이센스 서버의 서명을 추가적으로 검증한다. 라이센스 서명이 검증된다면, SLM 서비스는 SLM 서비스의 비밀 키를 사용하여 암호화된 라이센스를 복호화하고, 대여 시간 제한이 만료되지 않았음을 검증한다. 대여 시간 제한이 만료되지 않았다면, 블록 508에서, SLM 서비스는 라이센스로부터 LEK를 추출하고 이 LEK를 호스트 애플리케이션으로 송신한다. 블록 510에서, 호스트 애플리케이션은 암호화된 제한된 소프트웨어를 LEK를 사용하여 복호화하고 컴퓨팅 플랫폼상에서 소프트웨어로의 액세스를 허용한다.
일 실시예에서, LEK는 특정 대여 기간에 대하여만 생성되고 고유하며, 일회용일 수 있다. 일단 LEK가 사용되었다면, 해커가 키로의 접근을 얻었더라도 유용하지 않을 수 있다. 일 실시예에서, SLM 서비스는 LEK를 사용하여 암호화된 소프트웨어를 복호화하고 결과로 발생한 복호화된 소프트웨어를 호스트 애플리케이션에 제공할 수 있다. 일 실시예에서, LEK는 메모리에 일시적으로 저장되지만, 하드웨어 드라이브에 저장되지는 않는다. 추가 보호를 위해, 일 실시예에서, 호스트 애플리케이션은 알려진 방법에 따라 변조 방지(tamper-resistant)될 수 있다.
일 실시예에서, 복수의 인증은 컴퓨팅 플랫폼상에 설치될 수 있어 사용자는 복수의 소프트웨어 판매자로부터 이용가능한 제한된 소프트웨어 제품들을 동시에 신청할 수 있다.
일 실시예에서, 잘 알려진 컴퓨팅 플랫폼에 대한 도난 방지(anti-theft) 기술이 컴퓨팅 플랫폼을 더 보호하기 위해 포함될 수 있다. 하나의 실시예에서, 도난 상태가 유발되는 경우, SLM 서비스는 호스트 애플리케이션으로 LEK을 송신하지 않음으로써, 도난된 컴퓨팅 플랫폼상에서 사용되는 것으로부터 소프트웨어를 보호할 것이다. 또 다른 실시예에서는, 도난 상태가 유발되는 경우, SLM 서비스는 암호화된 소프트웨어를 복호화하지 않는다.
일 실시예에서, 위에서 설명된 바와 같이, 호스트 애플리케이션은 설치 기능(an installation functionality)을 포함할 수 있다. 또 다른 실시예에서, 호스트 애플리케이션은 설치 기능뿐만 아니라 제한된 소프트웨어를 포함한다. 일 실시예에서, 설치는 컴퓨팅 플랫폼에 대해서 한 번만 수행될 수 있다. 또 다른 실시예에서, 설치는 임의의 제한된 소프트웨어에 관한 각각의 설치 시도 전에 수행될 수 있다.
도 6은 본 발명의 일 실시예에 따른 컴퓨팅 플랫폼 환경에 관한 블록 다이어그램을 도시한다. 다양한 실시예에서, 시스템(600)에 관한 하나 또는 그 이상의 컴포넌트는, 본 발명의 일부 실시예에 관하여 본 명세서에서 설명된 하나 또는 그 이상의 작동을 수행할 수 있는 다양한 전자 디바이스로 제공될 수 있다. 예를 들어, 시스템(600)에 관한 하나 또는 그 이상의 컴포넌트는, 본 명세서에서 논의된 작동에 따라, 예를 들어, 명령어를 프로세싱함으로써 또는 서브루틴을 실행함으로써 등, 도 1 내지 5에 관하여 논의된 작동을 수행하는데 사용될 수 있다. 또한, 본 명세서에서 (예를 들어 도 6을 참조하여) 논의된 다양한 저장 디바이스는 데이터, 작동 결과 등을 저장하는데 사용될 수 있다. 하나의 실시예에서, 네트워크(603)를 통해 (예를 들어, 네트워크 인터페이스 디바이스(630)를 통해) 또는 국부 메모리 디바이스(a local memory device)로부터 수신된 데이터는 프로세서(602) 내에 존재하는 캐시에 저장될 수 있다. 그 이후 이러한 프로세서들은 본 발명의 다양한 실시예에 따라 본 명세서에서 논의된 작동을 적용할 수 있다. 도 6의 예시의 컴퓨팅 시스템은 모바일 컴퓨팅 디바이스, 핸드헬드 컴퓨팅 디바이스, 또는 고정형 컴퓨팅 디바이스에 내장될 수 있다.
더 구체적으로, 컴퓨팅 시스템(600)은 상호연결 네트워크(또는 버스)(604)를 통해 통신하는 하나 또는 그 이상의 중앙 처리 장치(들)(CPUs)(602) 또는 프로세서(들)를 포함할 수 있다. 이런 이유로, 본 명세서에서 논의된 다양한 작동은 일부 실시예에서 프로세서에 의해 수행될 수 있다. 더욱이, 프로세서(602)는 범용 프로세서, (컴퓨터 네트워크(603)를 통해 통신된 데이터를 프로세싱하는) 네트워크 프로세서, 또는 (RISC(a reduced instruction set computer) 프로세서 또는 CISC(a complex instruction set computer) 프로세서를 포함하는) 다른 종류의 프로세서를 포함할 수 있다. 더욱이, 프로세서(602)는 단일의 또는 복수의 코어 디자인을 가질 수 있다. 복수의 코어 디자인을 가진 프로세서(602)는, 동일한 집적회로 다이(IC die) 상에 상이한 종류의 프로세서 코어를 집적할 수 있다. 또한, 복수의 코어 디자인을 가진 프로세서(602)는 대칭적인 또는 비대칭적인 멀티 프로세서로서 구현될 수 있다. 더욱이, 도 1 내지 5에 관하여 논의된 작동은 시스템(600)의 하나 또는 그 이상의 컴포넌트에 의해 수행될 수 있다. 일 실시예에서, (프로세서 1(602-1)과 같은) 프로세서는, 하드웨어에 내장된(hard-wired) 로직(예를 들어, 회로) 또는 마이크로코드로서, 보안 라이센스 관리 서비스 및/또는 자격 라이센싱 서비스를 포함할 수 있다. 일 실시예에서, 이러한 컴포넌트는 보안 엔진 내 저장된 펌웨어로서 구현될 수 있다.
칩셋(606)은 또한 상호접속 네트워크(interconnection network)(604)와 통신할 수 있다. 칩셋(606)은 그래픽 및 메모리 제어 허브(GMCH)(608)를 포함할 수 있다. GMCH(608)는 메모리(612)와 통신하는 메모리 컨트롤러(610)를 포함할 수 있다. 메모리(612)는 프로세서(602), 또는 컴퓨팅 시스템(600)에 포함되는 임의의 다른 디바이스에 의해 실행되는 명령어의 시퀀스를 포함하는 데이터를 저장할 수 있다. 또한, 메모리(612)는 (실행을 위해 프로세서(602)로 로딩되기 전의) 호스트 애플리케이션(116), 암호화된 라이센스, 암호화된 제한된 소프트웨어 프로그램, 실행 가능하도록 대응하는 명령어, 매핑 등과 같이, 본 명세서에서 논의된 하나 또는 그 이상의 알고리즘 또는 프로그램을 저장할 수 있다. (명령어를 포함하는) 이러한 데이터의 일부 또는 적어도 일부는 디스크 드라이브(628) 및/또는 프로세서(602) 내의 하나 또는 그 이상의 캐시에 저장될 수 있다. 본 발명에 관한 하나의 실시예에서, 메모리(612)는, RAM(random access memory), DRAM(dynamic RAM), SDRAM(Synchronous DRAM), SRAM(static RAM), 또는 다른 종류의 저장 디바이스와 같은, 하나 또는 그 이상의 휘발성 저장(또는 메모리) 디바이스를 포함할 수 있다. 하드 디스크와 같은 비휘발성 메모리 또한 이용될 수 있다. 복수의 프로세서 및/또는 복수의 시스템 메모리와 같은 추가 디바이스가 상호접속 네트워크(604)를 통해 통신할 수 있다.
GMCH(608)는 또한 디스플레이(616)와 통신하는 그래픽 인터페이스(a graphics interface)(614)를 포함할 수 있다. 본 발명에 관한 하나의 실시예에서, 그래픽 인터페이스(614)는 AGP(accelerated graphics port)를 통해 디스플레이(616)와 통신할 수 있다. 본 발명의 일 실시예에서, 디스플레이(616)는 평판 디스플레이 또는 터치 스크린 디스플레이일 수 있고, 이는 예를 들어, 비디오 메모리 또는 시스템 메모리와 같은 저장 디바이스에 저장된 이미지의 디지털 표현을 디스플레이(616)에 의해 해석되고 디스플레이되는 디스플레이 신호로 바꾸는 신호 변환기(a signal converter)를 통해, 그래픽 인터페이스(614)와 통신한다. 인터페이스(614)에 의해 생성된 디스플레이 신호는 해석되기 전 그리고 그 뒤에 디스플레이(616) 상에서 디스플레이되기 전에 다양한 제어 디바이스를 거쳐갈 수 있다.
허브 인터페이스(618)는 GMCH(608) 및 입력/출력(I/O) 제어 허브(ICH)(620)가 통신하게 할 수 있다. ICH(620)는 컴퓨팅 시스템(600)과 통신하는 I/O 디바이스로 인터페이스를 제공할 수 있다. ICH(620)는 주변 브리지(a peripheral bridge)(또는 컨트롤러)(624), 가령, PCI(peripheral component interconnect) 브리지, USB(universal serial bus) 컨트롤러, 또는 다른 종류의 주변 브리지나 컨트롤러를 통해 버스(622)와 통신할 수 있다. 브리지(624)는 프로세서(602)와 주변 디바이스 사이에서 데이터 통로를 제공할 수 있다. 다른 종류의 토폴로지가 이용될 수도 있다. 또한, 복수의 버스는, 예를 들어, 복수의 브리지 또는 컨트롤러를 통해, ICH(620)와 통신할 수 있다. 더욱이, 본 발명의 다양한 실시예에서, ICH(620)와 통신하는 기타 주변 장치들은, IDE(integrated drive electronics) 또는 SCSI (small computer system interface) 하드 드라이브(들), USB 포트(들), 키보드, 마우스, 병렬 포트(들), 직렬 포트(들), 플로피 디스크 드라이브(들), 디지털 출력 서포트(예를 들어, 디지털 비디오 인터페이스(DVI)), 또는 기타 디바이스들을 포함할 수 있다. 일 실시예에서, ICH는 보안 엔진(108)을 포함할 수 있다. 하나의 실시예에서, 보안 엔진은 ICH 내의 펌웨어로서 구현될 수 있다.
버스(622)는, (예를 들어, 인터넷과 같은) 컴퓨터 네트워크(603)와 통신할 수 있는 네트워크 인터페이스 디바이스(630), 하나 또는 그 이상의 디스크 드라이브(들)(628), 및 오디오 디바이스(626)와 통신할 수 있다. 일 실시예에서, 디바이스(630)는 유선 또는 무선 통신이 가능한 네트워크 인터페이스 컨트롤러(a network interface controller: NIC) 일 수 있다. 다른 디바이스들은 버스(622)를 통해 통신할 수 있다. 또한, (네트워크 인터페이스 디바이스(630)와 같은) 다양한 컴포넌트는 본 발명의 일부 실시예에서 GMCH(608)와 통신할 수 있다. 추가적으로, 프로세서(602), GMCH(608), 및/또는 그래픽 인터페이스(514)는 단일 칩을 형성하도록 결합될 수 있다.
일 실시예에서, 보안 엔진(108)은 프로세서(602)에 의한 활동과는 독립적으로 (ICH(620)을 경유하여) 버스(622) 및 네트워크 인터페이스 디바이스(630)를 통해 네트워크(603)로 통신한다.
또한, 컴퓨팅 시스템(600)은 휘발성 및/또는 비휘발성 메모리(또는 스토리지)를 포함할 수 있다. 예를 들어, 비휘발성 메모리는 다음 중 하나 또는 그 이상을 포함할 수 있다: ROM(read-only memory), PROM(programmable ROM), EPROM(erasable PROM), EEPROM(electrically EPROM), 디스크 드라이브, 플로피 디스크, CD-ROM(a compact disk ROM), DVD(a digital versatile disk), 플래시 메모리, 자기-광학 디스크, 또는 (예를 들어, 명령어를 포함하는) 전자 데이터를 저장할 수 있는 다른 종류의 비휘발성 머신 판독 가능한 매체.
또 다른 실시예에서, 시스템(600)의 컴포넌트는 포인트-투-포인트(point-to -point) 구성으로 배열될 수 있다. 예를 들어, 프로세서, 메모리, 및/또는 입력/출력 디바이스는 다수의 포인트-투-포인트 인터페이스에 의해 상호연결될 수 있다. 일 실시예에서, 칩셋(606)은 메모리 컨트롤러 허브(MCH) 및 보안 엔진을 포함할 수 있다.
본 발명에 관한 다양한 실시예에서, 예를 들어, 도 1 내지 5를 참조하여, 본 명세서에서 논의된 작동은 하드웨어(예를 들어, 로직 회로), 소프트웨어(예를 들어, 도 6을 참조하여 논의된 프로세서와 같은 프로세서의 작동을 제어하는 마이크로-코드), 펌웨어, 또는 그것들의 조합으로서 구현될 수 있는데, 이는 예를 들어, 본 명세서에서 논의된 작동을 수행하도록 컴퓨터(예를 들어, 컴퓨팅 디바이스의 프로세서 또는 기타 로직)를 프로그램하는데 사용되는 저장된 명령어(또는 소프트웨어 절차)를 갖는 유형의 머신 판독 가능한 또는 컴퓨터 판독 가능한 매체를 예를 들어 포함하는 컴퓨터 프로그램 제품으로서 제공될 수 있다. 머신 판독 가능한 매체는 본 명세서에서 논의된 것들과 같은 저장 디바이스를 포함할 수 있다.
본 명세서에서 "하나의 실시예" 또는 "일 실시예"에 대한 언급은 실시예와 관련되어 설명된 특정한 특성, 구조, 또는 특징이 적어도 하나의 구현에 포함될 수 있음을 의미한다. 본 명세서의 다양한 위치에서 "하나의 실시예에서"라는 문구의 등장은 모두 동일 실시예를 참조하는 것이거나 모두 동일 실시예를 참조하는 것이 아닐 수 있다.
또한, 상세한 설명 및 청구항에서, "연결된(coupled)" 및 "접속된(connected)"이라는 용어는 파생물과 함께 사용될 수 있다. 본 발명에 관한 일부 실시예에서, "접속된"은 두 개 또는 그 이상의 구성요소가 서로와 직접적 물리적 또는 전기적 접촉인 것을 나타내는데 사용될 수 있다. "연결된"은 두 개 또는 그 이상의 구성요소가 직접적 물리적 또는 전기적 접촉인 것을 의미한다. 그러나, "연결된"은 또한 두 개 또는 그 이상의 구성요소가 서로와 직접 접촉되어 있지 않음을 의미할 수 있으되, 여전히 서로 협력하거나 상호작용하는 것일 수 있다.
추가적으로, 그러한 컴퓨터 판독 가능한 매체는 컴퓨터 프로그램 제품으로서 다운로드 될 수 있는데, 여기서 프로그램은, 통신 링크(예를 들어, 버스, 모뎀, 또는 네트워크 접속)를 통해, 원격의 컴퓨터(예를 들어, 서버)로부터 요청 컴퓨터(예를 들어, 클라이언트)로 데이터 신호로서 전달될 수 있다.
그러므로, 본 발명에 관한 실시예들이 구조적 특징 및/또는 방법론적인 동작에 한정된 언어로 설명되었으나, 청구된 대상은 설명된 특정한 특성 또는 동작으로 한정되지 않아야 함이 이해되어야 한다. 더 정확히 말하면, 특정한 특성 및 동작은 청구된 대상을 구현하는 샘플 형식으로서 제시될 뿐이다.
100: 시스템 아키텍처 102: 컴퓨팅 플랫폼
104: 프로세서 106, 606: 칩셋
108: 보안 엔진 109: 보안 스토리지
110: 자격 라이센싱 서비스(CLS)
112: 안전한 라이센스 관리(SLM) 서비스
114: 보안 엔진 인터페이스(SEI) 116: 호스트 애플리케이션
118: 네트워크 120: 라이센스 서버
122: 인증 서버 600: 컴퓨팅 시스템
602-N: 프로세서 N 603: 네트워크
608: 그래픽 및 메모리 제어 허브(GMCH)
610: 메모리 컨트롤러 612: 메모리
614: 그래픽 인터페이스 616: 디스플레이
618: 허브 인터페이스 620: 입력/출력(I/O) 제어 허브(ICH)
622: 버스 624: 주변 브리지
626: 오디오 디바이스 628: 디스크 드라이브
630: 네트워크 인터페이스 디바이스

Claims (30)

  1. 네트워크를 통해 제 1 서버로부터 컴퓨팅 플랫폼으로 라이센스 및 애플리케이션 프로그램 - 상기 라이센스는 제 1 공개 키(a first public key)를 사용하여 상기 제 1 서버에 의해 암호화되고 제 2 키를 포함하며, 상기 애플리케이션 프로그램은 상기 제 2 키를 사용하여 상기 제 1 서버에 의해 암호화됨 - 을 제공하는 방법으로서,
    상기 컴퓨팅 플랫폼의 프로세서에 의해 실행되는 호스트 애플리케이션에 의해 사용자 패스워드를 수신하는 단계,
    상기 호스트 애플리케이션에 의해, 적어도 부분적으로 상기 사용자 패스워드로부터 대칭 키(a symmetric key)를 유도하는 단계,
    상기 호스트 애플리케이션에 의해, 상기 컴퓨팅 플랫폼의 칩셋 내 하드웨어 구현된 보안 엔진(a hardware-implemented security engine)의 라이센스 관리 펌웨어 컴포넌트(a license management firmware component)에 상기 대칭 키에 의해 서명된 메시지로 상기 라이센스를 송신하는 단계,
    상기 라이센스 관리 펌웨어 컴포넌트에 의해, 적어도 부분적으로 상기 하드웨어 구현된 보안 엔진의 보안 스토리지 내에 저장된 상기 사용자 패스워드로부터 상기 대칭 키를 유도하고, 상기 대칭 키를 사용하여 상기 메시지상의 서명을 검증(verify)하고, 상기 라이센스상의 상기 제 1 서버의 서명을 검증하고, 상기 제 2 키를 획득하기 위해 상기 제 1 공개 키에 대응하는 상기 라이센스 관리 펌웨어 컴포넌트의 제 1 비밀 키(a first private key)를 사용하여 상기 라이센스를 복호화(decrypt)하는 단계,
    상기 라이센스 관리 펌웨어 컴포넌트에 의해, 상기 제 2 키를 상기 호스트 애플리케이션으로 송신하는 단계,
    상기 호스트 애플리케이션에 의해 상기 제 2 키를 사용하여 상기 애플리케이션 프로그램을 복호화하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 컴퓨팅 플랫폼에 의해 상기 제 1 서버에 접속하고 상기 컴퓨팅 플랫폼으로 상기 호스트 애플리케이션을 다운로드하는 단계를 더 포함하는
    방법.
  3. 제 2 항에 있어서,
    상기 사용자 패스워드를 수신하기 전에 상기 보안 엔진의 자격 라이센싱 서비스 컴포넌트(a capability licensing service component)에 의해 상기 제 1 서버 및 상기 라이센스 관리 펌웨어 컴포넌트 사이에서 인증된 통신 채널을 활성화하는 단계를 더 포함하는
    방법.
  4. 제 1 항에 있어서,
    상기 라이센스 관리 펌웨어 컴포넌트 내 시간을 상기 제 1 서버상의 시간과 동기화(synchronizing)하는 단계를 더 포함하는
    방법.
  5. 제 4 항에 있어서,
    상기 라이센스를 복호화한 후에, 상기 라이센스 관리 펌웨어 컴포넌트에 의해, 상기 애플리케이션 프로그램의 인증된 사용을 위한 대여 시간 제한(a lease time limit)이 만료되지 않았음을 검증하는 단계를 더 포함하는
    방법.
  6. 제 1 항에 있어서,
    상기 라이센스는 상기 애플리케이션 프로그램의 고유 식별자(a unique identifier), 사용자의 상기 컴퓨팅 플랫폼에 의한 상기 애플리케이션 프로그램의 인증된 사용을 위한 대여 시간 제한, 및 상기 제 2 키를 포함하는
    방법.
  7. 제 1 항에 있어서,
    도난 상태(a theft condition)가 상기 컴퓨팅 플랫폼상에서 유발되는 경우 상기 라이센스 관리 펌웨어 컴포넌트로부터 상기 호스트 애플리케이션으로 상기 제 2 키를 송신하지 않는 단계를 더 포함하는
    방법.
  8. 컴퓨팅 플랫폼으로서,
    호스트 애플리케이션을 실행하는 프로세서,
    상기 호스트 애플리케이션을 저장하는 메모리, 및
    인터페이스를 통해 상기 프로세서에 연결된 칩셋 - 상기 칩셋은 하드웨어 구현된 보안 엔진을 포함하고, 상기 보안 엔진은 보안 스토리지 및 라이센스 관리 펌웨어 컴포넌트를 포함함 - 을 포함하되,
    상기 컴퓨팅 플랫폼은 네트워크를 통해 제 1 서버로부터 상기 컴퓨팅 플랫폼으로 애플리케이션 프로그램 및 라이센스 - 상기 라이센스는 상기 제 1 서버에 의해 제 1 공개 키(a first public key)를 사용하여 암호화되고 제 2 키를 포함하며, 상기 애플리케이션 프로그램은 상기 제 1 서버에 의해 상기 제 2 키를 사용하여 암호화됨 - 를 제공하도록 구성되고,
    상기 호스트 애플리케이션은, 실행될 때, 사용자 패스워드를 수신하고, 적어도 부분적으로 상기 사용자 패스워드로부터 대칭 키를 유도하고, 상기 라이센스 관리 펌웨어 컴포넌트에 상기 대칭 키에 의해 서명된 메시지로 상기 라이센스를 송신하고,
    상기 라이센스 관리 펌웨어 컴포넌트는 적어도 부분적으로 상기 보안 스토리지 내 저장된 상기 사용자 패스워드로부터 상기 대칭 키를 유도하고, 상기 대칭 키를 사용하여 상기 메시지상의 서명을 검증하고, 상기 라이센스상의 상기 제 1 서버의 서명을 검증하고, 상기 제 2 키를 획득하기 위해 상기 제 1 공개 키에 대응하는 상기 라이센스 관리 펌웨어 컴포넌트의 제 1 비밀 키를 사용하여 상기 라이센스를 복호화하고, 상기 호스트 애플리케이션으로 상기 제 2 키를 송신하고,
    상기 호스트 애플리케이션은, 실행될 때, 상기 제 2 키를 사용하여 상기 애플리케이션 프로그램을 복호화하는
    컴퓨팅 플랫폼.
  9. 제 8 항에 있어서,
    상기 컴퓨팅 플랫폼은 상기 제 1 서버와 접속하고, 상기 호스트 애플리케이션을 다운로드하여 메모리 내에 저장하는
    컴퓨팅 플랫폼.
  10. 제 9 항에 있어서,
    상기 하드웨어 구현된 보안 엔진은 상기 사용자 패스워드를 수신하기 전에 상기 제 1 서버 및 상기 라이센스 관리 펌웨어 컴포넌트 사이에서 인증된 통신 채널을 활성화하는 자격 라이센싱 서비스 컴포넌트를 포함하는
    컴퓨팅 플랫폼.
  11. 제 8 항에 있어서,
    상기 라이센스 관리 펌웨어 컴포넌트는 상기 라이센스 관리 펌웨어 컴포넌트 내 시간을 상기 제 1 서버상의 시간과 동기화하는
    컴퓨팅 플랫폼.
  12. 제 11 항에 있어서,
    상기 라이센스를 복호화한 후에, 상기 라이센스 관리 펌웨어 컴포넌트는 상기 애플리케이션 프로그램의 인증된 사용에 대한 대여 시간 제한이 만료되지 않았음을 검증하는
    컴퓨팅 플랫폼.
  13. 제 8 항에 있어서,
    상기 라이센스는 상기 애플리케이션 프로그램의 고유 식별자(a unique identifier), 사용자의 상기 컴퓨팅 플랫폼에 의한 상기 애플리케이션 프로그램의 인증된 사용에 대한 대여 시간 제한, 및 상기 제 2 키를 포함하는
    컴퓨팅 플랫폼.
  14. 제 8 항에 있어서,
    상기 라이센스 관리 펌웨어 컴포넌트는 도난 상태가 상기 컴퓨팅 플랫폼상에서 유발되는 경우 상기 호스트 애플리케이션으로 상기 제 2 키를 송신하지 않는
    컴퓨팅 플랫폼.
  15. 네트워크를 통해 제 1 서버로부터 컴퓨팅 플랫폼으로 애플리케이션 프로그램 및 라이센스를 제공하는 방법으로서,
    상기 컴퓨팅 플랫폼상의 프로세서에 의해 실행되는 호스트 애플리케이션에 의해, 상기 제 1 서버로부터 상기 라이센스 및 상기 애플리케이션 프로그램을 수신 - 상기 라이센스는 상기 컴퓨팅 플랫폼의 칩셋 내의 하드웨어 구현된 보안 엔진의 라이센스 관리 펌웨어 컴포넌트의 공개 키를 사용하여 상기 제 1 서버에 의해 암호화되고, 상기 애플리케이션 프로그램은 상기 제 1 서버에 의해 생성된 라이센스 암호화 키를 사용하여 상기 제 1 서버에 의해 암호화되고, 상기 암호화된 라이센스는 상기 제 1 서버의 비밀 키에 의해 서명되고, 상기 서명되고 암호화된 라이센스 및 상기 암호화된 애플리케이션 프로그램은 상기 컴퓨팅 플랫폼의 메모리에 저장됨 - 하는 단계,
    상기 호스트 애플리케이션에 의해 상기 컴퓨팅 플랫폼의 사용자로부터 패스워드를 획득하는 단계,
    상기 호스트 애플리케이션에 의해, 적어도 부분적으로 상기 패스워드로부터 대칭 키를 유도하고, 상기 대칭 키로 상기 서명되고 암호화된 라이센스를 포함하는 메시지를 서명하는 단계,
    상기 호스트 애플리케이션으로부터 상기 하드웨어 구현된 보안 엔진의 상기 라이센스 관리 펌웨어 컴포넌트로 상기 메시지를 송신하는 단계,
    상기 라이센스 관리 펌웨어 컴포넌트에 의해, 적어도 부분적으로 상기 패스워드로부터 상기 대칭 키를 유도하는 단계,
    상기 라이센스 관리 펌웨어 컴포넌트에 의해, 상기 대칭 키를 사용하여 상기 메시지상의 서명을 검증 - 상기 메시지의 서명이 정확히 검증된다면, 상기 제 1 서버의 공개 키를 사용하여 상기 암호화된 라이센스의 서명을 검증하고, 상기 라이센스의 서명이 정확히 검증된다면, 상기 라이센스 관리 펌웨어 컴포넌트의 비밀 키를 사용하여 상기 암호화된 라이센스를 복호화함 - 하는 단계,
    상기 라이센스 관리 펌웨어 컴포넌트에 의해, 상기 라이센스 암호화 키를 상기 라이센스로부터 추출하고, 상기 호스트 애플리케이션으로 상기 라이센스 암호화키를 송신하는 단계,
    상기 라이센스 암호화 키를 사용하여 상기 호스트 애플리케이션에 의해, 상기 암호화된 애플리케이션 프로그램을 복호화하고, 상기 컴퓨팅 플랫폼상에서 상기 애플리케이션 프로그램으로의 액세스를 허용하는 단계를 포함하는
    방법.
  16. 제 15 항에 있어서,
    상기 라이센스 관리 펌웨어 컴포넌트에 의해 상기 대칭 키를 유도하기 전에,
    상기 호스트 애플리케이션에 의해 상기 컴퓨팅 플랫폼의 사용자로부터 패스워드를 수신하는 단계,
    상기 호스트 애플리케이션에 의해, 상기 라이센스 관리 펌웨어 컴포넌트의 공개 키로 상기 패스워드를 암호화하는 단계,
    상기 호스트 애플리케이션에 의해, 상기 암호화된 패스워드를 제 2 서버 - 상기 제 2 서버는 상기 네트워크를 통해 상기 컴퓨팅 플랫폼에 연결됨 - 로 송신하는 단계,
    상기 라이센스 관리 펌웨어 컴포넌트에 의해, 상기 제 2 서버의 비밀 키에 의해 서명된 상기 암호화된 패스워드를 수신하는 단계,
    상기 라이센스 관리 펌웨어 컴포넌트에 의해, 상기 암호화된 패스워드의 서명을 검증 - 상기 서명이 정확히 검증되면, 상기 라이센스 관리 펌웨어 컴포넌트의 비밀 키를 사용하여 상기 암호화된 패스워드를 복호화하고, 상기 보안 엔진 내 보안 스토리지에 상기 패스워드를 저장함 - 하는 단계를 더 포함하는
    방법.
  17. 제 15 항에 있어서,
    상기 컴퓨팅 플랫폼에 의해 상기 제 1 서버에 접속하고, 상기 컴퓨팅 플랫폼으로 상기 호스트 애플리케이션을 다운로드하는 단계를 더 포함하는
    방법.
  18. 제 17 항에 있어서,
    상기 사용자의 패스워드를 수신하기 전에, 상기 보안 엔진의 자격 라이센싱 서비스 컴포넌트에 의해 상기 제 1 서버 및 상기 라이센스 관리 펌웨어 컴포넌트 사이에서 인증된 통신 채널을 활성화하는 단계를 더 포함하는
    방법.
  19. 제 15 항에 있어서,
    상기 라이센스 관리 펌웨어 컴포넌트 내 시간을 상기 제 1 서버상의 시간과 동기화하는 단계를 더 포함하는
    방법.
  20. 제 19 항에 있어서,
    상기 라이센스를 복호화한 후에, 상기 라이센스 관리 펌웨어 컴포넌트에 의해 상기 애플리케이션 프로그램의 인증된 사용에 대한 대여 시간 제한이 만료되지 않았음을 검증하는 단계를 더 포함하는
    방법.
  21. 제 15 항에 있어서,
    상기 라이센스는 상기 애플리케이션 프로그램의 고유 식별자, 상기 사용자의 컴퓨팅 플랫폼에 의한 상기 애플리케이션 프로그램의 인증된 사용에 대한 대여 시간 제한, 및 상기 라이센스 암호화 키를 포함하는
    방법.
  22. 제 15 항에 있어서,
    도난 상태가 상기 컴퓨팅 플랫폼상에서 유발되는 경우 상기 라이센스 관리 펌웨어 컴포넌트로부터 상기 호스트 애플리케이션으로 상기 라이센스 암호화 키를 송신하지 않는 단계를 더 포함하는
    방법.
  23. 컴퓨팅 플랫폼으로서,
    호스트 애플리케이션을 실행하는 프로세서,
    상기 호스트 애플리케이션을 저장하는 메모리, 및
    인터페이스를 통해 상기 프로세서에 연결된 칩셋 - 상기 칩셋은 하드웨어 구현된 보안 엔진을 포함하고, 상기 보안 엔진은 보안 스토리지 및 라이센스 관리 펌웨어 컴포넌트를 포함함 - 을 포함하되,
    상기 컴퓨팅 플랫폼은 네트워크를 통해 제 1 서버로부터 라이센스 및 애플리케이션 프로그램을 제공하고,
    상기 호스트 애플리케이션은 상기 제 1 서버로부터 상기 라이센스 및 상기 애플리케이션 프로그램을 수신 - 상기 라이센스는 상기 컴퓨팅 플랫폼의 칩셋 내의 하드웨어 구현된 보안 엔진의 라이센스 관리 펌웨어 컴포넌트의 공개 키를 사용하여 상기 제 1 서버에 의해 암호화되고, 상기 애플리케이션 프로그램은 상기 제 1 서버에 의해 생성된 라이센스 암호화 키를 사용하여 상기 제 1 서버에 의해 암호화되고, 상기 암호화된 라이센스는 상기 제 1 서버의 비밀 키에 의해 서명됨 - 하고, 상기 서명되고 암호화된 라이센스 및 상기 암호화된 애플리케이션 프로그램을 상기 메모리에 저장하고, 사용자로부터 패스워드를 획득하고, 적어도 부분적으로 상기 패스워드로부터 대칭 키를 유도하고, 상기 대칭 키로 상기 서명되고 암호화된 라이센스를 포함하는 메시지를 서명하고, 상기 라이센스 관리 펌웨어 컴포넌트로 상기 메시지를 송신하고,
    상기 라이센스 관리 펌웨어 컴포넌트는 적어도 부분적으로 상기 패스워드로부터 상기 대칭 키를 유도하고, 상기 대칭 키를 사용하여 상기 메시지상의 서명을 검증 - 상기 메시지 서명이 정확히 검증되면, 상기 제 1 서버의 공개 키를 사용하여 상기 암호화된 라이센스의 서명을 검증하고, 상기 라이센스 서명이 정확히 검증되면, 상기 라이센스 관리 펌웨어 컴포넌트의 비밀 키를 사용하여 상기 암호화된 라이센스를 복호화함 - 하고, 상기 라이센스로부터 상기 라이센스 암호화 키를 추출하고, 상기 라이센스 암호화 키를 상기 호스트 애플리케이션으로 송신하고,
    상기 호스트 애플리케이션은 상기 라이센스 암호화 키를 사용하여 상기 암호화된 애플리케이션 프로그램을 복호화하고, 상기 컴퓨팅 플랫폼상에서 상기 애플리케이션 프로그램으로의 액세스를 허용하는
    컴퓨팅 플랫폼.
  24. 제 23 항에 있어서,
    상기 라이센스 관리 펌웨어 컴포넌트는 상기 호스트 애플리케이션에 의해 상기 컴퓨팅 플랫폼의 사용자로부터 패스워드를 수신하고, 상기 패스워드를 상기 라이센스 관리 펌웨어 컴포넌트의 공개 키로 암호화하고,
    상기 호스트 애플리케이션은 상기 암호화된 패스워드를 제 2 서버 - 상기 제 2 서버는 상기 네트워크를 통해 상기 컴퓨팅 플랫폼에 연결됨 - 로 송신하고 ,
    상기 라이센스 관리 펌웨어 컴포넌트는 상기 제 2 서버의 비밀 키에 의해 서명된 상기 암호화된 패스워드를 수신하고, 상기 암호화된 패스워드의 서명을 검증하고, 상기 서명이 정확히 검증되면 상기 라이센스 관리 펌웨어 컴포넌트의 비밀 키를 사용하여 상기 암호화된 패스워드를 복호화하고, 상기 보안 엔진 내 보안 스토리지에 상기 패스워드를 저장하는
    컴퓨팅 플랫폼.
  25. 제 23 항에 있어서,
    상기 컴퓨팅 플랫폼은 상기 제 1 서버에 접속하고 상기 호스트 애플리케이션을 다운로드하여 상기 메모리에 저장하는
    컴퓨팅 플랫폼.
  26. 제 25 항에 있어서,
    상기 하드웨어 구현된 보안 엔진은 상기 사용자의 패스워드를 수신하기 전에 상기 제 1 서버 및 상기 라이센스 관리 펌웨어 컴포넌트 사이에서 인증된 통신 채널을 활성화하는 자격 라이센싱 서비스 컴포넌트를 포함하는
    컴퓨팅 플랫폼.
  27. 제 23 항에 있어서,
    상기 라이센스 관리 펌웨어 컴포넌트는 상기 라이센스 관리 펌웨어 컴포넌트내 시간을 상기 제 1 서버상의 시간과 동기화하는
    컴퓨팅 플랫폼.
  28. 제 27 항에 있어서,
    상기 라이센스를 복호화한 후에, 상기 라이센스 관리 펌웨어 컴포넌트는 상기 애플리케이션 프로그램의 인증된 사용에 대한 대여 시간 제한이 만료되지 않았음을 검증하는
    컴퓨팅 플랫폼.
  29. 제 23 항에 있어서,
    상기 라이센스는 상기 애플리케이션 프로그램의 고유 식별자, 상기 사용자의 컴퓨팅 플랫폼에 의한 상기 애플리케이션 프로그램의 인증된 사용에 대한 대여 시간 제한, 및 제 2 키를 포함하는
    컴퓨팅 플랫폼.
  30. 제 23 항에 있어서,
    상기 라이센스 펌웨어 컴포넌트는 도난 상태가 상기 컴퓨팅 플랫폼상에서 유발되는 경우 상기 호스트 애플리케이션으로 제 2 키를 송신하지 않는
    컴퓨팅 플랫폼.
KR1020137013003A 2010-11-22 2011-11-08 보안 엔진 기반 하드웨어를 사용한 안전한 소프트웨어 라이센싱 및 제공 방법 KR101377359B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/951,853 US8332631B2 (en) 2010-11-22 2010-11-22 Secure software licensing and provisioning using hardware based security engine
US12/951,853 2010-11-22
PCT/US2011/059692 WO2012071168A2 (en) 2010-11-22 2011-11-08 Secure software licensing and provisioning using hardware based security engine

Publications (2)

Publication Number Publication Date
KR20130079602A KR20130079602A (ko) 2013-07-10
KR101377359B1 true KR101377359B1 (ko) 2014-03-25

Family

ID=46065516

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137013003A KR101377359B1 (ko) 2010-11-22 2011-11-08 보안 엔진 기반 하드웨어를 사용한 안전한 소프트웨어 라이센싱 및 제공 방법

Country Status (7)

Country Link
US (1) US8332631B2 (ko)
EP (1) EP2643788B1 (ko)
JP (1) JP5657811B2 (ko)
KR (1) KR101377359B1 (ko)
CN (1) CN103221957B (ko)
AU (1) AU2011332180B2 (ko)
WO (1) WO2012071168A2 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332631B2 (en) 2010-11-22 2012-12-11 Intel Corporation Secure software licensing and provisioning using hardware based security engine
KR101621791B1 (ko) * 2012-08-14 2016-05-31 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 현재 이용되는 장치 업데이팅
US20140115672A1 (en) * 2012-10-18 2014-04-24 Roger Wood Storing and Accessing Licensing Information in Operating System-Independent Storage
US20140143885A1 (en) * 2012-11-20 2014-05-22 Ati Technologies Ulc Firmware-implemented software licensing
CN104462993B (zh) * 2013-09-18 2018-01-09 北大方正集团有限公司 加密方法、解密方法、加密装置和解密装置
US10726162B2 (en) * 2014-12-19 2020-07-28 Intel Corporation Security plugin for a system-on-a-chip platform
US10289814B2 (en) 2014-12-23 2019-05-14 Intel Corporation Licensing in the cloud
KR101655890B1 (ko) * 2015-04-08 2016-09-08 (주)세이퍼존 배드 유에스비 방지를 위한 보안 유에스비 장치의 펌웨어 설치 방법
US10248791B2 (en) * 2015-07-20 2019-04-02 Intel Corporation Technologies for secure hardware and software attestation for trusted I/O
JP6729122B2 (ja) * 2016-07-19 2020-07-22 富士通株式会社 情報処理装置、プログラムおよび情報処理システム
US10581620B2 (en) 2016-11-14 2020-03-03 Integrity Security Services Llc Scalable certificate management system architectures
KR102253814B1 (ko) * 2016-11-14 2021-05-18 인테그리티 시큐리티 서비시즈 엘엘씨 디바이스의 보안 프로비저닝 및 관리
US10642987B2 (en) * 2017-01-19 2020-05-05 Ebay Inc. Cryptography based fraud tracking
JP6796861B2 (ja) * 2017-04-11 2020-12-09 株式会社アクセル アプリケーションソフトウェアの提供及び認証方法並びにそのためのシステム
CN107169344B (zh) * 2017-05-10 2020-04-21 威盛电子股份有限公司 阻挡非授权应用程序的方法以及使用该方法的装置
RU2653247C1 (ru) * 2017-06-16 2018-05-07 Закрытое акционерное общество "Особое Конструкторское Бюро Систем Автоматизированного Проектирования" (ЗАО "ОКБ САПР") Способ лицензирования программного обеспечения при помощи аппаратных средств
CN107688729B (zh) * 2017-07-27 2020-11-27 大唐高鸿信安(浙江)信息科技有限公司 基于可信主机的应用程序保护系统及方法
US20190095593A1 (en) * 2017-09-25 2019-03-28 Hewlett Packard Enterprise Development Lp License information based on baseboard management controller
US11372977B2 (en) * 2018-11-12 2022-06-28 Thirdwayv, Inc. Secure over-the-air firmware upgrade
CN109684790B (zh) * 2018-12-26 2021-06-04 佛山市瑞德物联科技有限公司 软件启动方法、软件授权验证方法、设备和存储介质
WO2021159052A1 (en) * 2020-02-08 2021-08-12 Cameron Laghaeian Method and apparatus for managing encryption keys and encrypted electronic information on a network server
US11836255B1 (en) * 2023-03-28 2023-12-05 Verkada Inc. Microcontroller unit (MCU) secure boot

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005033A1 (en) 2006-06-30 2008-01-03 Clark Charles F Secure device licensing
US7814023B1 (en) 2005-09-08 2010-10-12 Avaya Inc. Secure download manager

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101303717B (zh) * 1995-02-13 2015-04-29 英特特拉斯特技术公司 用于安全交易管理和电子权利保护的系统和方法
JP3688356B2 (ja) * 1995-08-31 2005-08-24 富士通株式会社 ライセンシー通知システム
US7171662B1 (en) 1998-03-18 2007-01-30 Microsoft Corporation System and method for software licensing
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
JP2001211162A (ja) * 2000-01-26 2001-08-03 Sony Corp データ処理システム、記録デバイス、およびデータ処理方法、並びにプログラム提供媒体
US7062567B2 (en) * 2000-11-06 2006-06-13 Endeavors Technology, Inc. Intelligent network streaming and execution system for conventionally coded applications
JP2002229447A (ja) * 2001-01-30 2002-08-14 Nippon Telegr & Teleph Corp <Ntt> デジタルコンテンツ流通における著作権保護システム
JP2003298565A (ja) * 2002-03-29 2003-10-17 Matsushita Electric Ind Co Ltd コンテンツ配信システム
US7308573B2 (en) * 2003-02-25 2007-12-11 Microsoft Corporation Enrolling / sub-enrolling a digital rights management (DRM) server into a DRM architecture
JPWO2004109972A1 (ja) * 2003-06-05 2006-07-20 松下電器産業株式会社 ライセンス受信用ユーザ端末
US20070219917A1 (en) * 2004-03-29 2007-09-20 Smart Internet Tecnoogy Crc Pty Limited Digital License Sharing System and Method
US7890428B2 (en) * 2005-02-04 2011-02-15 Microsoft Corporation Flexible licensing architecture for licensing digital application
US8194859B2 (en) * 2005-09-01 2012-06-05 Qualcomm Incorporated Efficient key hierarchy for delivery of multimedia content
US20090327741A1 (en) * 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US8904191B2 (en) * 2009-01-21 2014-12-02 Microsoft Corporation Multiple content protection systems in a file
US8332631B2 (en) 2010-11-22 2012-12-11 Intel Corporation Secure software licensing and provisioning using hardware based security engine

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814023B1 (en) 2005-09-08 2010-10-12 Avaya Inc. Secure download manager
US20080005033A1 (en) 2006-06-30 2008-01-03 Clark Charles F Secure device licensing

Also Published As

Publication number Publication date
EP2643788A2 (en) 2013-10-02
AU2011332180A1 (en) 2013-07-11
EP2643788B1 (en) 2018-09-19
JP5657811B2 (ja) 2015-01-21
WO2012071168A2 (en) 2012-05-31
JP2014501966A (ja) 2014-01-23
EP2643788A4 (en) 2017-07-05
CN103221957A (zh) 2013-07-24
AU2011332180B2 (en) 2016-05-19
KR20130079602A (ko) 2013-07-10
US8332631B2 (en) 2012-12-11
US20120131345A1 (en) 2012-05-24
WO2012071168A3 (en) 2012-07-19
CN103221957B (zh) 2015-12-09

Similar Documents

Publication Publication Date Title
KR101377359B1 (ko) 보안 엔진 기반 하드웨어를 사용한 안전한 소프트웨어 라이센싱 및 제공 방법
US7986786B2 (en) Methods and systems for utilizing cryptographic functions of a cryptographic co-processor
KR101891420B1 (ko) DaaS를 위한 컨텐츠 보호
EP2913956B1 (en) Management control method and device for virtual machines
JP5635539B2 (ja) リモートプリブート認証
JP4615601B2 (ja) コンピュータセキュリティシステムおよびコンピュータセキュリティ方法
KR101530809B1 (ko) 멀티-테넌트 서비스 제공자에 의한 동적 플랫폼 재구성
JP5802337B2 (ja) アウトオブバンドリモート認証
US9064116B2 (en) Techniques for security management provisioning at a data storage device
JP5526450B2 (ja) ハードウェア構成を変更する方法、ハードウェア構成の変更を遠隔位置において可能にする方法、及びそのための装置
US8364975B2 (en) Methods and apparatus for protecting data
US8839004B1 (en) Secure cloud computing infrastructure
Bertholon et al. Certicloud: a novel tpm-based approach to ensure cloud iaas security
EP3304401A1 (en) System, apparatus and method for controlling multiple trusted execution environments in a system
CN109669734A (zh) 用于启动设备的方法和装置
KR20130044293A (ko) 플랫폼 자원들의 도메인-인증 제어
US20160344704A1 (en) Method and decision gateway for authorizing a function of an embedded control unit
JP2010157227A (ja) マネージャビリティエンジンによる企業ネットワークへのシングルサインオンのための方法及びシステム
US9280687B2 (en) Pre-boot authentication using a cryptographic processor
JP6735872B2 (ja) コンピュータシステム及びコンピュータシステムを初期化する方法
KR102660863B1 (ko) 구성 설정들의 안전한 서명
Mannan et al. Unicorn: Two-factor attestation for data security
KR20130101964A (ko) 플랫폼 컴포넌트들의 보안 업그레이드 또는 다운그레이드를 위한 방법 및 시스템
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
Stumpf et al. Towards secure e-commerce based on virtualization and attestation techniques

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20170302

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190227

Year of fee payment: 6