KR20010023732A - 스크램블된 콘텐츠를 위한 탬퍼방지 플레이어 - Google Patents

스크램블된 콘텐츠를 위한 탬퍼방지 플레이어 Download PDF

Info

Publication number
KR20010023732A
KR20010023732A KR1020007002386A KR20007002386A KR20010023732A KR 20010023732 A KR20010023732 A KR 20010023732A KR 1020007002386 A KR1020007002386 A KR 1020007002386A KR 20007002386 A KR20007002386 A KR 20007002386A KR 20010023732 A KR20010023732 A KR 20010023732A
Authority
KR
South Korea
Prior art keywords
plain text
group
cells
program instructions
overwritten
Prior art date
Application number
KR1020007002386A
Other languages
English (en)
Other versions
KR100479681B1 (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 KR20010023732A publication Critical patent/KR20010023732A/ko
Application granted granted Critical
Publication of KR100479681B1 publication Critical patent/KR100479681B1/ko

Links

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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Storage Device Security (AREA)

Abstract

한 장치에서, 디스크램블된 콘텐츠를 생성하도록 스크램블된 콘텐츠를 디스크램블하는 디스크램블러를 구현하기 위해 프로그래밍 명령어들의 플레인 텍스트(plain text) 및 오브퍼스케이티드(obfuscated) 셀들(106)의 한 그룹이 제공된다. 다른 장치에서, 스크램블된 콘텐츠 공급자에 적절한 인증 도전을 제공하고 상기 스크램블된 콘텐츠 공급자로부터의 인증 도전에 대한 적절한 인증 응답을 생성하는 인증기를 구현하기 위해 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 한 그룹이 제공된다. 또다른 장치에서, 디코더에 대한 무결성 검증을 수행하는 무결성 검증기를 구현하기 위해 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 한 그룹이 제공된다. 또다른 장치에서, 스크램블된 콘텐츠를 플레이하는 것과 관련된 다수의 비밀을 유지하는 비밀 홀더를 구현하기 위해 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 한 그룹이 제공된다.

Description

스크램블된 콘텐츠를 위한 탬퍼방지 플레이어{A TAMPER RESISTANT PLAYER FOR SCRAMBLED CONTENTS}
스크램블된 DVD 콘텐츠의 관리와 같은 콘텐츠 관리는 그들의 동작의 기본적인 무결성(basic integrity)이 인정되거나 또는 적어도 검증될 필요가 있다. 비록 이 기술분야에 암호화 및 해독 기술과 같은 다양한 보안 방법이 알려져 있지만, 이러한 보안 방법은 쉽게 손상될 수 있으며, 그 이유는 이들 애플리케이션 및 보안 방법이 개방형의 억세스가능한 아키텍처를 가진 시스템 상에 구현되어, 보안 방법을 포함하는 소프트웨어 및 하드웨어가 모두 부당한 사용자 또는 부당한 프로그램에 의해 감시되고 변경될 수 있기 때문이다.
그러므로, 개방형의 억세스가능한 아키텍처에 기반한 시스템은 보안 방법을 사용함에도 불구하고 근본적으로 안전하지 못한 플랫폼이다. 그러나, 개방성 및 억세스가능성은 다양한 장점을 제공하여, 이러한 시스템의 성공에 기여한다. 그러므로, 이러한 개방성 및 억세스가능성에도 불구하고 이들 근본적으로 안전하지 못한 플랫폼 상에서도 DVD 플레이어와 같은 스크램블된 콘텐츠 플레이어의 동작이 실질적으로 감시불가능하거나 변경불가능하게 만드는 기술이 요구된다.
본 발명은 시스템 보안(system security) 분야에 관한 것이다. 특히, 본 발명은 스크램블된 콘텐츠를 위한 탬퍼방지 플레이어(tamper resistant player)에 관한 것이다.
본 발명은 첨부도면에 도시된 실시예를 이용하여 설명되며, 도면에서 유사한 참조번호는 유사한 구성요소를 나타낸다.
도1은 본 발명의 다양한 기술사상과 병합된 예시적인 탬퍼방지 모듈의 개요를 도시한 블록도.
도2 및 도3은 본 발명의 무결성 검증 방법의 스타트-업 및 실행시간 동안의 연산 흐름의 일실시예를 도시한 흐름도.
도4는 본 발명의 침입자 검출 방법의 연산 흐름의 일실시예를 도시한 흐름도.
도5 및 도6은 본 발명의 2가지 감시 검출 방법의 연산 흐름의 일실시예를 도시한 흐름도.
도7은 다양한 탬퍼방지 방법을 상호결합하기 위한 본 발명의 결합 기법의 일실시예를 도시한 블록도.
도8은 본 발명의 기술사상을 병합한 스크램블된 콘텐츠를 위한 탬퍼방지 플레이어의 일실시예를 도시한 블록도.
도9는 본 발명을 실시하기에 적합한 컴퓨터 시스템의 일실시예를 도시한 블록도.
발명의 요약
한 장치에서, 디스크램블된 콘텐츠를 생성하도록 스크램블된 콘텐츠를 디스크램블하는 디스크램블러를 구현하기 위해 프로그래밍 명령어들의 플레인 텍스트(plain text) 및 오브퍼스케이티드(obfuscated) 셀들의 한 그룹이 제공된다.
다른 장치에서, 스크램블된 콘텐츠 공급자에 적절한 인증 도전을 제공하고 상기 스크램블된 콘텐츠 공급자로부터의 인증 도전에 대한 적절한 인증 응답을 생성하는 인증기를 구현하기 위해 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 한 그룹이 제공된다.
또다른 장치에서, 디코더에 대한 무결성 검증을 수행하는 무결성 검증기를 구현하기 위해 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 한 그룹이 제공된다.
또다른 장치에서, 스크램블된 콘텐츠를 플레이하는 것과 관련된 다수의 비밀을 유지하는 비밀 홀더를 구현하기 위해 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 한 그룹이 제공된다. 일실시예에서, 비밀은 상호 인증 프로세스에 사용되는 비밀과 스크램블된 콘텐츠를 디스크램블하기 위해 사용되는 비밀을 포함한다.
다음의 설명에서는 본 발명의 다양한 관점이 설명된다. 그러나, 이 기술분야에 통상의 지식을 가진 자는 본 발명의 관점의 전부 또는 단지 일부만 가지고도 본 발명이 실시될 수 있다는 것을 이해할 것이다. 설명목적상, 본 발명의 완전한 이해를 제공하기 위해 특정 번호, 재료 및 구성이 기재되어 있다. 그러나, 이 기술분야에 통상의 지식을 가진 자는 이러한 특정 세부사항 없이도 본 발명이 실시될 수 있다는 것을 이해할 것이다. 다른 예로서, 본 발명을 불명확하게 만들지 않기 위해 공지된 특징들은 생략되거나 간략화된다.
설명의 일부분은 이 기술분야에 통상의 지식을 가진 자에 의해 그 작업의 본질을 다른 통상의 지식을 가진 자에게 전달하기 위해 일반적으로 사용되는 방식에 일치하는, 데이터, 플래그, 비트, 값, 문자, 스트링, 번호 등과 같은 컴퓨터 시스템에 의해 수행되는 연산에 관해 제시된다. 이 기술분야에 통상의 지식을 가진 자에게 잘 이해될 수 있는 바와 같이, 이러한 수량들은 컴퓨터 시스템의 기계적 전기적 구성요소들을 통해 저장, 전송, 조합 또는 조작될 수 있는 전기적, 자기적 또는 광학적 신호의 형태를 가질 수 있으며, 컴퓨터 시스템이란 용어는 독립형, 부속형 또는 내장형이 될 수 있는 범용 및 특수목적 데이터 처리기 또는 시스템을 포함하는 것을 말한다.
본 발명의 이해에 가장 도움이 되는 방식으로 여러 분리된 단계들로서 다양한 연산들이 설명되게 되지만, 그 설명하는 순서가 이들 연산들이 반드시 순서, 특히 제시되는 순서에 의존하는 것을 의미하는 것으로 이해되어서는 안된다.
이제 도1을 참조하면, 본 발명의 다양한 기술사상과 병합된 예시적인 탬퍼방지 모듈의 일실시예의 블록도가 도시되어 있다. 도시된 바와 같이, 예시적인 탬퍼방지 모듈(100)은 비-탬퍼방지부(102)와 탬퍼방지부(104)를 포함하고 있다. 도시된 실시예에 있어서, 이들 2개의 부분은 함께 링크되어 단일의 실행가능한 모듈을 형성한다. 본 출원의 목적을 위해, 용어 "모듈"은 이들 부분 사이의 배타적(exclusive) 통신을 용이하게 하는 다양한 부분들 사이의 구조적 관계를 의미하는 일반적인 의미로 사용된 것이다.
미국 특허 출원 제08/662,679호에 기재된 바와 같이, 비-탬퍼방지부(102)는 예시적인 탬퍼방지 모듈(100)의 민감하지 않은(non-sensitive) 다양한 서비스를 구현하는 다수의 플레인 텍스트 프로그래밍 명령어를 포함하고, 반면에, 탬퍼방지부(104)는 예시적인 탬퍼방지 모듈(100)의 다양한 민감한 서비스를 구현하는 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀(106)들의 다양한 그룹을 포함한다. 하나의 민감한 서비스 또는 민감한 서비스들의 집합을 구현하는 각각의 셀 그룹은 적어도 하나의 플레인 텍스트 셀(106)을 포함한다. 간단하게 말하면, 서비스와 관련된 비밀(secretes)들이 시간과 공간적으로 분산되어 있으며, 따라서 혼동을 준다. 서비스를 혼동시키기 위해 사용되는 오브퍼스케이티드 셀들의 수는 서비스 또는 민감성(sensitivity)에 의존한다. 일반적으로, 더 많은 수의 오브퍼스케이티드 셀들이 사용될수록, 그러한 혼동이 해독되기가 더욱 어렵게 된다. 보다 상세한 설명은 미국 특허 출원 제08/662,679호를 참조하자.
부가적으로, 본 발명에 따르면, 플레인 텍스트 및 오브퍼스케이티드 셀(106)의 선택된 그룹은 예시적인 탬퍼방지 모듈(100)이 침입받거나 감시되고 있지 않다는 것을 동작중에 검증하기 위해 다수의 탬퍼방지 메저(measures)를 포함한다. 이들 탬퍼방지 메저를 사용하는 그룹의 수와 사용되는 탬퍼방지 메저의 수 및 빈도는 서비스 또는 민감성에 의존한다. 보다 상세하게 후술되는 바와 같이, 이들 탬퍼방지 메저는 다수의 무결성 검증 메저와 다수의 감시방지(anti-observation) 메저를 포함한다. 무결성 검증 메저는 스타트-업 및 실행시간 동안에 비-탬퍼방지부(102)의 무결성을 검증하는 제1 무결성 검증 메저와 플레인 텍스트 및 오브퍼스케이티드 셀들의 그룹의 호출이 침입자에 의해 발생된 것이 아니라는 것을 검증하는 제2 무결성 검증 메저를 포함한다. 감시방지 메저는 모듈(100)을 실행하는 프로세서가 단일 단계 실행을 지원하는 모드로 동작하고 있지 않다는 것을 검증하는 제1 감시방지 메저와 경과된 실행시간이 정상적인 비-감시(unobserved) 실행과 일치한다는 것을 검증하는 제2 감시방지 메저를 포함한다.
도2 및 도3은 제1 무결성 검증 메저의 연산 흐름의 일실시예를 도시하고 있다. 도2는 스타트-업 시간의 연산 흐름을 도시하고, 도3은 실행시간 동안의 연산 흐름을 도시하고 있다. 도2에 도시된 바와 같이, 도시된 실시예에서 스타트-업 시간에 제1 무결성 검증 메저가 포함된 셀 그룹(GOC)은 블록(108)에서 비-탬퍼방지부(102)를 스캐닝하고, 비-탬퍼방지부(102)에 대한 서명(signature)를 계산한다. 다음에, GOC는 블록(110)에서 비-탬퍼방지부(102)에 대해 미리 저장된 서명을 검색한다. 다음에, GOC는 블록(112-114)에서, 생성된 서명을 검증하기 위해 2개의 서명을 비교한다. 만일 생성된 서명이 성공적으로 검증되면, 그것은 비-탬퍼방지부(102)가 변경되지 않았다는 것을 의미하며, GOC는 블록(116)에서 어떠한 검증 의존 연산도 스킵하지 않고 스타트-업 프로세스가 계속되도록 허용하고, 만일 성공적으로 검증되지 않으면, GOC는 블록(118)에서 검증 의존 연산을 스킵하고 스타트-업 프로세스가 계속되도록 한다. 검증 의존 연산의 예로는, 소정의 민감한 서비스를 배달하는데 필요한 비밀을 셋업하는 것과 관련된 연산이 있다.
도3에 도시된 바와 같이, 도시된 실시예에서, 실행시간 동안의 검증 체크 시간에 블록(120)에서 제1 무결성 검증 메저가 병합된 GOC는 비-탬퍼방지부(102)의 다음 부분을 스캐닝하고, 비-탬퍼방지부(102)에 대한 서명을 점증식으로(incrementally) 계산한다. 다음에, GOC는 블록(122)에서 점증식으로 계산된 서명을 갱신한다. 다음에, GOC는 블록(124)에서 비-탬퍼방지부(102)의 끝에 도달했는지 검사한다. 만일 끝에 도달하지 못했으면, 프로세스는 종료되고, 만일 그렇지 않으면, 프로세스는 블록(126)에서 계속된다.
블록(126)에서, GOC는 비-탬퍼방지부(102)에 대해 미리 저장된 서명을 검색한다. 다음에, GOC는 블록(128-130)에서 생성된 서명을 검증하기 위해 2개의 서명을 비교한다. 만일 생성된 서명이 성공적으로 검증되면, 그것은 비-탬퍼방지부(102)가 변경되지 않았다는 것을 의미하며, GOC는 모듈(100)의 실행이 계속될 수 있도록 허용하고, 만일 성공적으로 검증되지 못하면, GOC는 블록(132)에서 모듈(100)의 실행이 종료되도록 한다. 모듈이 종료되도록 하는 것은 이 기술분야에 잘 알려진 방식으로 수행될 수 있다. 애플리케이션에 따라, 비-탬퍼방지부의 무결성 검증 실패 시점으로부터 모듈이 더 이상의 다운스트림을 이행하지 않도록 하는 것이 바람직할 수 있다.
다시 말하면, 실행시간 무결성 체크는 실행중에 여러번의 검증 체크를 통해 점증식으로 수행된다. 이 기술분야에 통상의 지식을 가진 자는 이러한 점증식 방법이 성능에 민감한 서비스에 특히 유용하다는 것을 이해할 것이다. 실행중에 사용되는 검증 체크 횟수는 서비스 또는 민감성에 의존한다.
도4는 제2 무결성 검증 메저의 연산 흐름의 일실시예를 도시하고 있다. 도시된 실시예에서, 호출시에 제2 무결성 검증 메저가 병합된 GOC는 블록(134)에서 그 호출에 대한 리턴 어드레스를 검색한다. 도시된 실시예에서, GOC는 블록(136)에서 그 리턴 어드레스가 모듈(100)의 어드레스 공간내에 있는지 판단한다. 만일 리턴 어드레스가 모듈(100)의 어드레스 공간내에 있으면, 그것은 그 호출이 침입자로부터 발생한 것이 아니라는 것을 의미하며, GOC는 블록(138)에서 모듈(100)의 실행이 계속될 수 있도록 허용하고, 만일 리턴 어드레스가 모듈의 어드레스 공간내에 있지 않으면, GOC는 블록(140)에서 모듈(100)의 실행이 종료되도록 한다. 마찬가지로, 모듈이 종료되도록 하는 것은 이 기술분야에 잘 알려진 여러 가지 방식으로 수행될 수 있다. 애플리케이션에 따라, 침입이 검출되는 시점으로부터 모듈이 더 이상의 다운스트림을 이행하지 못하도록 하는 것이 바람직할 수 있다.
도5는 제1 감시방지 메저의 연산 흐름의 일실시예를 도시하고 있다. 도시된 실시예에서는, 실행 시간 동안의 미리 선택된 시점에서, 제1 감시방지 메저가 병합된 GOC는 블록(142)에서 프로세서 실행 모드 상태 변수를 검색한다. 도시된 실시예에서, GOC는 블록(144)에서 상태 변수가 예를 들어, 디버그 모드(debug mode)와 같이 단일 단계 실행을 지원하는 실행 모드를 나타내는지 판단한다. 만일 상태 변수가 단일 단계 실행을 지원하지 않는 실행 모드를 나타내면, 그것은 모듈(100)의 실행이 감시되고 있지 않다는 것을 의미하며, GOC는 블록(146)에서 모듈(100)의 실행이 계속될 수 있도록 허용하고, 만일 그렇지 않으면, GOC는 블록(148)에서 모듈(100)의 실행이 종료되도록 한다. 마찬가지로, 모듈의 실행이 종료되도록 하는 것은 이 기술분야에 잘 알려진 여러 가지 방식으로 수행될 수 있다. 애플리케이션에 따라, 감시가 검출되는 시점으로부터 모듈이 더 이상의 다운스트림을 이행하지 못하도록 하는 것이 바람직할 수 있다. 프로세서의 실행 모드가 체크되는 횟수 및 실행 시간 동안의 정확한 시점은 서비스 또는 민감성에 의존한다.
도6은 제2 감시방지 메저의 연산 흐름의 일실시예를 도시하고 있다. 도시된 실시예에 있어서는, 실행시간 동안에 미리 선택된 시점에서, 제2 감시방지 메저가 병합된 GOC는 블록(150)에서 모듈(100)을 실행하는 프로세서로부터 타이머 값을 검색하고, 그 검색된 타이머 값(타임스탬프)을 기록한다. 다음에, GOC는 블록(152)에서 그것이 제공하기 위해 지정된 정상적인 서비스의 수행을 계속한다. 미리 선택된 나중의 시점에서, GOC는 블록(154-156)에서 경과된 실행시간의 양이 소정의 임계치를 초과했는지 판단하기 위해 최종 타임스탬프 이후에 경과된 실행 시간의 양을 체크한다. 만일 경과된 실행시간이 소정의 임계치를 초과하지 않았으면, 그것은 (예를 들어, 브레이크포인트를 설정함으로써) 모듈(100)의 실행이 감시되고 있지 않다는 것을 의미하며, GOC는 블록(158)에서 모듈(100)의 실행이 계속될 수 있도록 허용하고, 만일 그렇지 않으면, GOC는 블록(160)에서 모듈(100)의 실행이 종료되도록 한다. 마찬가지로, 모듈이 종료되도록 하는 것은 이 기술분야에 잘 알려진 여러 가지 방식으로 수행될 수 있다. 애플리케이션에 따라, 감시가 검출되는 시점으로부터 모듈이 더 이상 다운스트림을 이행하지 못하도록 하는 것이 바람직할 수 있다. 최종 타임스탬프 이래로 경과된 실행시간의 양이 체크되는 횟수 및 실행시간 동안의 정확한 시점은 서비스 또는 민감성에 의존한다.
도7은 탬퍼방지 메저를 상호결합시키기 위한 결합 기법의 일실시예를 도시하고 있다. 도시된 바와 같이, 다양한 탬퍼방지 메저와 관련된 키값(key values)에 대해 메저들이 예를 들어 메모리내의 공통 저장 위치를 공유하도록 함으로써 상이한 탬퍼방지 메저들이 상호결합된다. 도시된 실시예에 있어서, GOC는 저장위치(168)의 일부분(162)에 비밀을 검색하기 위한 키를 저장하고, 모듈(100)의 실행이 감시되고 있는지 판단하기 위한 타임스탬프를 저장위치(168)의 더 적은 부분(162)에 저장한다. 경과된 실행시간을 판단하는데 있어서는, GOC는 단지 상기 부분(162) 보다 더 높은 비트만을 사용한다. 부가적으로, GOC는 인증 프로세스에 사용되는 의사난수(pseudo random numbers)를 생성하기 위한 시드(seed)로서 하위 비트(164)를 이용한다. 그러므로, 만일 침입자가 경과된 실행시간 체크 메저를 무력화시키기 위해 타임스탬프를 변경하려고 시도하면, 이것은 인증 프로세스 뿐만 아니라 비밀을 검색하려는 어떠한 시도도 실패하도록 한다. 마찬가지로, 만일 침입자가 인증 프로세스를 무력화시키기 위해 의사난수를 생성하기 위한 시드를 변경하려고 시도하면, 이것은 경과된 실행시간 체크 뿐만 아니라 비밀을 검색하기 위한 어떠한 시도도 실패하도록 한다.
도8은 본 발명의 탬퍼방지 기술을 적용한 스크램블된 콘텐츠를 위한 탬퍼방지 플레이어의 일실시예를 도시하고 있다. 도시된 일실시예에 있어서, 탬퍼방지 플레이어(172)는 비-탬퍼방지 구성요소(171)와 탬퍼방지 디코더(172)를 포함한다. 탬퍼방지 구성요소(171)는 최종 사용자 인터페이스와 같은 일반적인 서비스 구성요소의 넓은 범주를 나타내도록 의도된 것이다. 이러한 일반적인 서비스 구성요소는 이 기술분야에 잘 알려진 다양한 기술중 하나를 이용하여 구현되는 다양한 서비스중 하나를 제공할 수 있다. 탬퍼방지 디코더(172)는 스크램블된 압축 콘텐츠를 수신하고, 그에 응답하여, 예를 들어 YUV 비디오 및 AC3 오디오와 같은 콘텐츠를 렌더링하기 위한 적절한 신호를 출력하기 위해 콘텐츠를 디스크램블 및 압축해제한다.
탬퍼방지 디코더(172)는 비-탬퍼방지부(175)와 탬퍼방지부(174,176,178,180) 및 비-탬퍼방지부(175)를 위한 서명(173)을 포함한다. 비-탬퍼방지부(175)는 플레인 텍스트 프로그래밍 명령어로 구성되고, 반면에, 탬퍼방지부(174,176,178,180)는 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 복수의 그룹으로 구성된다. 서명(173)을 포함하여, 비-탬퍼방지부(175)와 탬퍼방지부(174,176,178,180)는 이들 부분들 사이의 배타적 통신을 용이하게 하도록 구조적으로 관련되어 있다. 도시된 실시예에서는, 2개의 부분이 단일 실행가능 모듈로서 함께 링크되어 있다.
비-탬퍼방지부(175)는 플레이어(170) 및 스크램블된 콘텐츠 공급자 장치가 서로에 대해 상호 인증되도록 하는 것을 포함하여, 스크램블된 콘텐츠의 디스크램블링을 달성하기 위해 통합된 탬퍼방지부(174,176,178,180)의 서비스를 호출한다. 비-탬퍼방지부(175)는 전술한 출력신호를 생성하기 위해 스크램블되지 않은 압축 콘텐츠를 압축해제한다. 서명(173)은 전술한 바와 같이 스타트-업 시간 및 실행시간 무결성 검증을 용이하게 하기 위해 소정의 위치에 미리 저장된다.
도시된 실시예에서, 탬퍼방지부(172)의 탬퍼방지 서비스는 스크램블된 콘텐츠를 수신하고 그에 응답하여 디코더(172)의 비-탬퍼방지부를 위한 디스크램블된 콘텐츠를 생성하기 위해 상기 스크램블된 콘텐츠를 디스크램블하기 위한 탬퍼방지 디스크램블러(174)를 포함한다. 일실시예에서, 탬퍼방지 디스크램블러(174)는 스크램블된 콘텐츠를 디스크램블하기 위해 탬퍼방지 비밀 홀더(180)로부터 검색되는 비밀키를 사용한다. 사용되는 비밀키의 수와 이들 키의 특성은 애플리케이션에 따라 다르며, 이것들은 본 발명을 이해하는데 있어 필수적인 것은 아니다. 탬퍼방지 디스크램블러(174)는 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀로된 하나의 그룹으로 구성된다. 일실시예에서, 코어 디스크램블링 서비스는 향상된 성능을 제공하기 위해 플레인 텍스트 셀에 배치된다. 일실시예에서, GOC는 전술한 침입자 검출 무결성 검증 메저와 단일 단계 실행 모드 검출 감시방지 메저를 갖추고 있다. 일실시예에서, GOC는 또한, 경과 실행시간 검출 감시방지 메저를 갖추고 있다. 일실시예에서, GOC는 복수의 경과 실행시간 검출 감시방지 메저를 갖추고 있다. 일실시예에서, 경과 실행시간 검출 감시방지 메저는 스크램블된 콘텐츠를 디스크램블하는 것과 관련된 비밀키를 검색하기 위한 프로세스와, 플레이어(170)와 스크램블된 콘텐츠 공급자 장치를 상호 인증하기 위한 인증 프로세스와 상호결합된다.
도시된 실시예에서, 탬퍼방지 디코더(172)의 탬퍼방지 서비스는 스크램블된 콘텐츠 공급자 장치에 대해 탬퍼방지 플레이어(170)를 인증시키고, 탬퍼방지 플레이어(170)에 대해 스크램블된 콘텐츠 공급자 장치를 인증시키기 위한 탬퍼방지 인증기(176)를 포함한다. 일실시예에서, 탬퍼방지 인증기(176)는 인증 프로세스를 행하기 위해 탬퍼방지 비밀 홀더(180)로부터 검색되는 비밀키를 사용한다. 사용되는 비밀키의 수와 이들 키의 특성은 애플리케이션에 따라 다르며, 이것들이 본 발명을 이해하는데 있어 필수적인 것은 아니다. 일실시예에서, 탬퍼방지 인증기(176)는 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들로된 하나의 그룹으로 구성된다. 일실시예에서, GOC는 전술한 침입자 검출 무결성 검증 메저와 단일 단계 실행 모드 검출 감시방지 메저를 갖추고 있다. 일실시예에서, GOC는 또한, 경과 실행시간 검출 감시방지 메저를 갖추고 있다. 일실시예에서, GOC는 복수의 경과 실행시간 검출 감시방지 메저를 갖추고 있다. 일실시예에서, 경과 실행시간 검출 감시방지 메저는 스크램블된 콘텐츠를 디스크램블하는 것과 관련된 비밀키를 검색하기 위한 프로세스와, 플레이어(170)와 스크램블된 콘텐츠 공급자 장치를 상호 인증하기 위한 인증 프로세스와 상호결합된다.
도시된 실시예에서, 탬퍼방지 디코더(172)의 탬퍼방지 서비스는 스타트-업 시간 및 실행시간 동안에 디코더(172)의 비-탬퍼방지부를 무결성 검증하기 위한 탬퍼방지 무결성 검증기(178)를 포함한다. 일실시예에서, 탬퍼방지 무결성 검증기(178)는 비밀 홀더(180)에 대해 플레이어(170)와 스크램블된 콘텐츠 공급자 장치를 상호 인증시키기 위해 사용될 비밀키를 제공한다. 사용되는 비밀키의 수와 이들 키의 특성은 애플리케이션에 따라 다르며, 이것들이 본 발명을 이해하는데 있어 필수적인 것은 아니다. 일실시예에서, 탬퍼방지 무결성 검증기(178)는 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들로된 하나의 그룹으로 구성된다. 일실시예에서, GOC는 단일 단계 실행 모드 검출 감시방지 메저를 갖추고 있다. 일실시예에서, GOC는 또한, 경과 실행시간 검출 감시방지 메저를 갖추고 있다. 일실시예에서, GOC는 복수의 경과 실행시간 검출 감시방지 메저를 갖추고 있다. 일실시예에서, 경과 실행시간 검출 감시방지 메저는 스크램블된 콘텐츠를 디스크램블하는 것과 관련된 비밀키를 검색하기 위한 프로세스와, 플레이어(170)와 스크램블된 콘텐츠 공급자 장치를 상호 인증하기 위한 인증 프로세스와 상호결합된다.
마지막으로, 도시된 실시예에 있어서, 탬퍼방지 디코더(172)의 탬퍼방지 서비스는 스크램블된 콘텐츠를 디스크램블하는 것과 관련된 비밀을 저장하기 위한 탬퍼방지 비밀 홀더(180)를 포함한다. 이 비밀 홀더(180)는 스크램블된 콘텐츠 공급자 장치에 대해 탬퍼방지 플레이어(170)를 인증시키고 탬퍼방지 플레이어(170)에 대해 스크램블된 콘텐츠 공급자 장치를 인증시키기 위한 인증 프로세스와 관련된 비밀을 저장한다. 일실시예에서, 탬퍼방지 비밀 홀더(180)는 셀 어레이 형태로 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들로된 하나의 그룹으로 구성된다. 일실시예에서, GOC는 전술한 침입자 검출 무결성 검증 메저와 단일 단계 실행 모드 검출 감시방지 메저를 갖추고 있다. 일실시예에서, GOC는 또한, 경과 실행시간 검출 감시방지 메저를 갖추고 있다. 일실시예에서, GOC는 복수의 경과 실행시간 검출 감시방지 메저를 갖추고 있다.
그러므로, 플레이어(170)가 "개방형" 버스를 통해 그 콘텐츠 입력을 수신하는 경우 조차도, 그 콘텐츠가 보호되며, 그 이유는 콘텐츠가 스크램블된 형태로 "개방형" 버스를 통해 플레이어(170)로 제공되기 때문이다. 또한, 스크램블된 콘텐츠를 디스크램블하는 것과 관련된 비밀과 이러한 디스크램블을 수행하는 프로그래밍 명령어도 침입과 감시로부터 보호된다. 아직까지 코어 디스크램블링 서비스와 같은 성능에 민감한 연산들에는 부담이 주어지지 않았다. 마지막으로, 탬퍼방지 서비스, 예를 들어, 디스크램블러(174), 인증기(176) 등은 고도로 이식가능하며, 다수의 디코더 구현예와 링크될 수 있다.
도9는 본 발명을 실시하는데 적합한 컴퓨터 시스템의 일실시예를 도시하고 있다. 도시된 실시예에서, 컴퓨터 시스템(200)은 프로세서(202), 프로세서 버스(206), 고성능 I/O 버스(210) 및 표준 I/O 버스(220)를 포함하고 있다. 프로세서 버스(206)와 고성능 I/O 버스(210)는 호스트 브릿지(208)에 의해 브릿지되어 있으며, 반면에, I/O 버스들(210,220)은 I/O 버스 브릿지(212)에 의해 브릿지되어 있다. 프로세서 버스(206)에는 캐시(204)가 연결되어 있다. 고성능 I/O 버스(210)에는 시스템 메모리(214)와 비디오 메모리(216)가 연결되어 있고, 비디오 메모리(216)에는 비디오 디스플레이(218)가 연결되어 있다. 표준 I/O 버스(220)에는 디스크 드라이브(222), 키보드 및 포인팅 장치(224) 및 DVD_ROM(226)이 연결되어 있다.
이들 구성요소는 이 기술분야에 알려진 그들의 통상적인 기능을 수행한다. 특히, 디스크 드라이브(222)와 시스템 메모리(214)는 프로세서(202)에 의해 실행될 때 본 발명의 탬퍼방지 애플리케이션의 영구적인 카피 및 작업용 카피를 저장하기 위해 사용된다. 영구적인 카피는 공장에서 디스크 드라이브(222)로 사전에 로딩되거나, 분배 매체(도시 안됨)로부터 로딩되거나, 또는 온라인/네트워크 분배 소스(도시 안됨)로부터 다운로드될 수 있다. 이들 구성요소의 구성은 알려져 있다. 이 기술분야에 알려진 이들 구성요소의 다수의 구현예중 어느 것이라도 컴퓨터 시스템(200)을 구성하기 위해 사용될 수 있다.
물론, 본 발명을 실시하기 위해 대안의 아키텍처의 컴퓨터 시스템을 포함하여 대안의 구성을 가진 컴퓨터 시스템도 역시 사용될 수 있다.
일반적으로, 본 발명이 전술한 실시예에 관해 설명되었지만, 이 기술분야에 통상의 지식을 가진 자는 본 발명이 설명된 실시예들에 제한되지 않는 다는 것을 이해할 것이다. 본 발명은 첨부된 청구범위의 사상 및 범위내에서 수정 및 변경이 이루어질 수 있다. 그러므로, 전술한 설명은 본 발명을 제한하고자 하는 것이 아니라 예시적인 것으로 간주되어야 한다. 지금까지 스크램블된 콘텐츠를 위한 탬퍼방지 플레이어에 관해 설명되었다.

Claims (31)

  1. 디스크램블된 콘텐츠를 생성하기 위해 스크램블된 콘텐츠를 디스크램블하는 디스크램블러를 구현하도록 설계된 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드(obfuscated) 셀들의 제1 그룹을 저장하고 있는 저장 매체; 및
    상기 저장 매체에 연결되어 상기 프로그래밍 명령어들을 실행하기 위한 실행 유닛
    을 포함하는 장치.
  2. 제 1 항에 있어서,
    상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제1 그룹은 상기 디스크램블러의 빈번하게 호출되는 디스크램블링 부속기능을 구현하도록 설계된 프로그래밍 명령어들의 오브퍼스케이티드 셀을 포함하는
    장치.
  3. 제 1 항에 있어서,
    상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제1 그룹은 상기 디스크램블러의 호출이 침입자로부터 발생된 것이 아니라는 것을 검증하고, 상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제1 그룹의 실행이 감시되고 있지 않다는 것을 검증하도록 구비된
    장치.
  4. 제 1 항에 있어서,
    상기 저장 매체는, 스크램블된 콘텐츠 공급자 장치에 적절한 인증 도전(challenges)을 제공하고 상기 스크램블된 콘텐츠 공급자 장치로부터의 인증 도전에 대한 적절한 인증 응답을 발생하는 인증기를 구현하도록 설계된 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹을 더 저장하고 있는
    장치.
  5. 제 4 항에 있어서,
    상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹은 상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹의 실행이 감시되고 있지 않다는 것을 검증하도록 구비된
    장치.
  6. 제 1 항에 있어서,
    상기 저장 매체는, 스크램블된 콘텐츠를 플레이하는 것과 관련된 다수의 비밀을 유지하고 있는 비밀 홀더를 구현하도록 설계된 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹을 더 저장하고 있는
    장치.
  7. 제 6 항에 있어서,
    상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹은 상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹의 실행이 감시되고 있지 않다는 것을 검증하도록 구비된
    장치.
  8. 제 1 항에 있어서,
    상기 저장 매체는, 디스크램블된 콘텐츠를 디코드하도록 설계된 다수의 플레인 텍스트 프로그램 명령어들을 더 저장하고 있고, 상기 다수의 플레인 텍스트 프로그래밍 명령어들은 디스크램블러로부터 디스크램블된 콘텐츠의 배타적 통신을 용이하게 하도록 디스크램블러와의 구조적 관계를 갖고 있는
    장치.
  9. 제 8 항에 있어서,
    상기 저장 매체는, 상기 다수의 플레인 텍스트 프로그래밍 명령어에 대한 무결성 검증을 수행하는 무결성 검증기를 구현하도록 설계된 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹을 더 저장하고 있는
    장치.
  10. 제 9 항에 있어서,
    상기 무결성 검증기는 스타트-업 시간 및/또는 실행시간에 점증적으로 상기 다수의 플레인 텍스트 프로그래밍 명령어에 대한 무결성 검증을 수행하도록 설계된
    장치.
  11. 제 9 항에 있어서,
    상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹은 상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹의 실행이 감시되고 있지 않다는 것을 검증하도록 구비된
    장치.
  12. 디스크램블된 콘텐츠를 디코드하도록 설계된 다수의 플레인 텍스트 프로그래밍 명령어와, 상기 플레인 텍스트 프로그래밍 명령어에 대한 무결성 검증을 수행하는 무결성 검증기를 구현하도록 설계된 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드(obfuscated) 셀들의 제1 그룹을 저장하고 있는 저장 매체; 및
    상기 저장 매체에 연결되어 상기 프로그래밍 명령어들을 실행하기 위한 실행 유닛
    을 포함하는 장치.
  13. 제 12 항에 있어서,
    상기 무결성 검증기는 스타트-업 시간 및/또는 실행시간에 점증적으로 상기 다수의 플레인 텍스트 프로그래밍 명령어에 대한 무결성 검증을 수행하도록 설계된
    장치.
  14. 제 12 항에 있어서,
    상기 저장 매체는, 스크램블된 콘텐츠 공급자 장치에 적절한 인증 도전을 제공하고 상기 스크램블된 콘텐츠 공급자 장치로부터의 인증 도전에 대한 적절한 인증 응답을 발생하는 인증기를 구현하도록 설계된 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹을 더 저장하고 있는
    장치.
  15. 제 14 항에 있어서,
    상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹은 상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹의 실행이 감시되고 있지 않다는 것을 검증하도록 구비된
    장치.
  16. 제 12 항에 있어서,
    상기 저장 매체는, 스크램블된 콘텐츠를 플레이하는 것과 관련된 다수의 비밀을 유지하고 있는 비밀 홀더를 구현하도록 설계된 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹을 더 저장하고 있는
    장치.
  17. 제 16 항에 있어서,
    상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹은 상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹의 실행이 감시되고 있지 않다는 것을 검증하도록 구비된
    장치.
  18. 스크램블된 콘텐츠를 플레이하는 것과 관련된 다수의 비밀을 유지하고 있는 비밀 홀더를 구현하도록 설계된 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드(obfuscated) 셀들의 제1 그룹을 저장하고 있는 저장 매체; 및
    상기 저장 매체에 연결되어 상기 프로그래밍 명령어들을 실행하기 위한 실행 유닛
    을 포함하는 장치.
  19. 제 18 항에 있어서,
    상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제1 그룹은 상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제1 그룹의 실행이 감시되고 있지 않다는 것을 검증하도록 구비된
    장치.
  20. 제 19 항에 있어서,
    상기 저장 매체는, 스크램블된 콘텐츠 공급자 장치에 적절한 인증 도전을 제공하고 상기 스크램블된 콘텐츠 공급자 장치로부터의 인증 도전에 대한 적절한 인증 응답을 발생하는 인증기를 구현하도록 설계된 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹을 더 저장하고 있는
    장치.
  21. 제 20 항에 있어서,
    상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹은 상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹의 실행이 감시되고 있지 않다는 것을 검증하도록 구비된
    장치.
  22. 스크램블된 콘텐츠 공급자 장치에 적절한 인증 도전을 제공하고 상기 스크램블된 콘텐츠 공급자 장치로부터의 인증 도전에 대한 적절한 인증 응답을 발생하는 인증기를 구현하도록 설계된 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제1 그룹을 저장하고 있는 저장 매체; 및
    상기 저장 매체에 연결되어 상기 프로그래밍 명령어들을 실행하기 위한 실행 유닛
    을 포함하는 장치.
  23. 제 22 항에 있어서,
    상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제1 그룹은 상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제1 그룹의 실행이 감시되고 있지 않다는 것을 검증하도록 구비된
    장치.
  24. (a) 디스크램블된 콘텐츠를 디코드하도록 설계된 다수의 플레인 텍스트 프로그램 명령어에 대한 무결성 검증을 수행하기 위해 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제1 그룹을 실행하는 단계; 및
    (b) 상기 단계 (a)에서 상기 다수의 플레인 텍스트 프로그래밍 명령어의 무결성이 검증되는 경우에 스크램블된 콘텐츠를 디스크램블하는 것과 관련된 다수의 비밀을 저장하기 위해 상기 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제2 그룹을 실행하는 단계
    를 포함하는 방법.
  25. 제 24 항에 있어서,
    상기 각각의 단계 (a) 및 (b)는 상기 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제1 또는 제2 그룹의 실행이 감시되고 있는지 판단하는 단계를 포함하는
    방법.
  26. 제 24 항에 있어서,
    (c) 스크램블된 콘텐츠 공급자 장치에 적절한 인증 도전을 제공하고 상기 스크램블된 콘텐츠 공급자 장치로부터의 인증 도전에 대한 적절한 인증 응답을 제공하기 위해 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제3 그룹을 실행하는 단계
    를 더 포함하는 방법.
  27. 제 26 항에 있어서,
    상기 각각의 단계 (a), (b) 및 (c)는 상기 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제1, 제2 또는 제3 그룹의 실행이 감시되고 있는지 판단하는 단계를 포함하는
    방법.
  28. 제 24 항에 있어서,
    (d) 상기 단계 (c)에서 상기 스크램블된 콘텐츠 공급자 장치에 관한 인증이 성공적인 경우에 디스크램블된 콘텐츠를 생성하도록 상기 스크림블된 콘텐츠를 디스크램블하기 위해 상기 프로그램 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제4 그룹을 실행하는 단계
    를 더 포함하는 방법.
  29. 제 28 항에 있어서,
    상기 각각의 단계 (a), (b), (c) 및 (d)는 상기 프로그래밍 명령어들의 플레인 텍스트 및 오브퍼스케이티드 셀들의 제1, 제2, 제3 또는 제4 그룹의 실행이 감시되고 있는지 판단하는 단계를 포함하는
    방법.
  30. 제 28 항에 있어서,
    상기 단계 (d)는 상기 프로그래밍 명령어들의 제4 그룹의 호출이 침입자로부터 발생한 것인지 판단하는 단계를 포함하는
    방법.
  31. 제 28 항에 있어서,
    (e) 상기 디스크램블된 콘텐츠를 디코드하기 위해 상기 다수의 플레인 텍스트 프로그래밍 명령어를 실행하는 단계
    를 더 포함하는 방법.
KR10-2000-7002386A 1997-09-05 1998-07-16 스크램블된 콘텐츠를 위한 위조방지 플레이어 KR100479681B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/924,167 US6175925B1 (en) 1996-06-13 1997-09-05 Tamper resistant player for scrambled contents
US08/924,167 1997-09-05
PCT/US1998/014914 WO1999013615A1 (en) 1997-09-05 1998-07-16 A tamper resistant player for scrambled contents

Publications (2)

Publication Number Publication Date
KR20010023732A true KR20010023732A (ko) 2001-03-26
KR100479681B1 KR100479681B1 (ko) 2005-03-30

Family

ID=25449807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-7002386A KR100479681B1 (ko) 1997-09-05 1998-07-16 스크램블된 콘텐츠를 위한 위조방지 플레이어

Country Status (5)

Country Link
US (1) US6175925B1 (ko)
EP (1) EP1010291A4 (ko)
KR (1) KR100479681B1 (ko)
AU (1) AU8412698A (ko)
WO (1) WO1999013615A1 (ko)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542610B2 (en) 1997-01-30 2003-04-01 Intel Corporation Content protection for digital transmission systems
US6941463B1 (en) 1998-05-14 2005-09-06 Purdue Research Foundation Secure computational outsourcing techniques
US6957341B2 (en) * 1998-05-14 2005-10-18 Purdue Research Foundation Method and system for secure computational outsourcing and disguise
US6324646B1 (en) * 1998-09-11 2001-11-27 International Business Machines Corporation Method and system for securing confidential data in a computer network
WO2000055962A2 (en) 1999-03-15 2000-09-21 Sony Electronics, Inc. Electronic media system, method and device
US6389537B1 (en) * 1999-04-23 2002-05-14 Intel Corporation Platform and method for assuring integrity of trusted agent communications
US7430670B1 (en) * 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
US7757097B2 (en) * 1999-09-03 2010-07-13 Purdue Research Foundation Method and system for tamperproofing software
US7287166B1 (en) 1999-09-03 2007-10-23 Purdue Research Foundation Guards for application in software tamperproofing
US6769058B1 (en) 2000-03-31 2004-07-27 Intel Corporation Resetting a processor in an isolated execution environment
US6957332B1 (en) * 2000-03-31 2005-10-18 Intel Corporation Managing a secure platform using a hierarchical executive architecture in isolated execution mode
US6760441B1 (en) 2000-03-31 2004-07-06 Intel Corporation Generating a key hieararchy for use in an isolated execution environment
US7194634B2 (en) 2000-03-31 2007-03-20 Intel Corporation Attestation key memory device and bus
US6754815B1 (en) 2000-03-31 2004-06-22 Intel Corporation Method and system for scrubbing an isolated area of memory after reset of a processor operating in isolated execution mode if a cleanup flag is set
US7013484B1 (en) 2000-03-31 2006-03-14 Intel Corporation Managing a secure environment using a chipset in isolated execution mode
US7013481B1 (en) 2000-03-31 2006-03-14 Intel Corporation Attestation key memory device and bus
US7073071B1 (en) 2000-03-31 2006-07-04 Intel Corporation Platform and method for generating and utilizing a protected audit log
US6633963B1 (en) 2000-03-31 2003-10-14 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6934817B2 (en) * 2000-03-31 2005-08-23 Intel Corporation Controlling access to multiple memory zones in an isolated execution environment
US6678825B1 (en) 2000-03-31 2004-01-13 Intel Corporation Controlling access to multiple isolated memories in an isolated execution environment
US6795905B1 (en) 2000-03-31 2004-09-21 Intel Corporation Controlling accesses to isolated memory using a memory controller for isolated execution
US6507904B1 (en) 2000-03-31 2003-01-14 Intel Corporation Executing isolated mode instructions in a secure system running in privilege rings
US7000119B1 (en) 2000-04-20 2006-02-14 Realnetworks, Inc. Instruction/data protection employing derived obscuring instruction/data
US6976162B1 (en) * 2000-06-28 2005-12-13 Intel Corporation Platform and method for establishing provable identities while maintaining privacy
JP4683442B2 (ja) 2000-07-13 2011-05-18 富士通フロンテック株式会社 処理装置および集積回路
US6983372B1 (en) * 2000-09-14 2006-01-03 Micron Technology, Inc. BIOS lock CD-ROM encode/decode driver
US7793111B1 (en) 2000-09-28 2010-09-07 Intel Corporation Mechanism to handle events in a machine with isolated execution
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US7818808B1 (en) 2000-12-27 2010-10-19 Intel Corporation Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor
IL157854A0 (en) * 2001-03-28 2004-03-28 Digital rights management system and method
US7096497B2 (en) * 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
US20020144121A1 (en) * 2001-03-30 2002-10-03 Ellison Carl M. Checking file integrity using signature generated in isolated execution
US20030105961A1 (en) * 2001-11-30 2003-06-05 Peter Zatloukal Avoiding attachment of an ineligible smart interchangeable cover to an electronic device
US8515773B2 (en) 2001-08-01 2013-08-20 Sony Corporation System and method for enabling distribution and brokering of content information
WO2003019438A2 (en) * 2001-08-28 2003-03-06 Koninklijke Philips Electronics N.V. Consumer and revocation of their equipment
US7024555B2 (en) 2001-11-01 2006-04-04 Intel Corporation Apparatus and method for unilaterally loading a secure operating system within a multiprocessor environment
US7088823B2 (en) * 2002-01-09 2006-08-08 International Business Machines Corporation System and method for secure distribution and evaluation of compressed digital information
US7631196B2 (en) * 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
US7069442B2 (en) 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US6782477B2 (en) * 2002-04-16 2004-08-24 Song Computer Entertainment America Inc. Method and system for using tamperproof hardware to provide copy protection and online security
US8335915B2 (en) * 2002-05-14 2012-12-18 Netapp, Inc. Encryption based security system for network storage
US20030217280A1 (en) * 2002-05-17 2003-11-20 Keaton Thomas S. Software watermarking for anti-tamper protection
US6820177B2 (en) 2002-06-12 2004-11-16 Intel Corporation Protected configuration space in a protected environment
US7142674B2 (en) * 2002-06-18 2006-11-28 Intel Corporation Method of confirming a secure key exchange
US7444682B2 (en) * 2002-07-03 2008-10-28 Macronix International Co., Ltd. Security memory device and method for making same
EP1795992B1 (en) 2002-07-30 2018-01-24 Fujitsu Limited Method and apparatus for reproducing information using a security module
US7165181B2 (en) * 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US7318235B2 (en) * 2002-12-16 2008-01-08 Intel Corporation Attestation using both fixed token and portable token
US7318141B2 (en) 2002-12-17 2008-01-08 Intel Corporation Methods and systems to control virtual machines
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US20040128345A1 (en) * 2002-12-27 2004-07-01 Robinson Scott H. Dynamic service registry
US7900017B2 (en) 2002-12-27 2011-03-01 Intel Corporation Mechanism for remapping post virtual machine memory pages
US20040128465A1 (en) * 2002-12-30 2004-07-01 Lee Micheil J. Configurable memory bus width
JP4338989B2 (ja) * 2003-02-20 2009-10-07 パナソニック株式会社 メモリデバイス
US8510571B1 (en) 2003-03-24 2013-08-13 Hoi Chang System and method for inserting security mechanisms into a software program
US7415708B2 (en) * 2003-06-26 2008-08-19 Intel Corporation Virtual machine management using processor state information
US20050044292A1 (en) * 2003-08-19 2005-02-24 Mckeen Francis X. Method and apparatus to retain system control when a buffer overflow attack occurs
US7287197B2 (en) * 2003-09-15 2007-10-23 Intel Corporation Vectoring an interrupt or exception upon resuming operation of a virtual machine
US7739521B2 (en) * 2003-09-18 2010-06-15 Intel Corporation Method of obscuring cryptographic computations
US7610611B2 (en) * 2003-09-19 2009-10-27 Moran Douglas R Prioritized address decoder
US20050069138A1 (en) * 2003-09-25 2005-03-31 Sun Microsystems, Inc., A Delaware Corporation Application program obfuscation
US8220058B2 (en) * 2003-09-25 2012-07-10 Oracle America, Inc. Rendering and encryption engine for application program obfuscation
US7353499B2 (en) * 2003-09-25 2008-04-01 Sun Microsystems, Inc. Multiple instruction dispatch tables for application program obfuscation
US7424620B2 (en) * 2003-09-25 2008-09-09 Sun Microsystems, Inc. Interleaved data and instruction streams for application program obfuscation
US7415618B2 (en) * 2003-09-25 2008-08-19 Sun Microsystems, Inc. Permutation of opcode values for application program obfuscation
US7363620B2 (en) * 2003-09-25 2008-04-22 Sun Microsystems, Inc. Non-linear execution of application program instructions for application program obfuscation
US7177967B2 (en) * 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US20050080934A1 (en) 2003-09-30 2005-04-14 Cota-Robles Erik C. Invalidating translation lookaside buffer entries in a virtual machine (VM) system
US7636844B2 (en) * 2003-11-17 2009-12-22 Intel Corporation Method and system to provide a trusted channel within a computer system for a SIM device
US20050108171A1 (en) * 2003-11-19 2005-05-19 Bajikar Sundeep M. Method and apparatus for implementing subscriber identity module (SIM) capabilities in an open platform
US20050108534A1 (en) * 2003-11-19 2005-05-19 Bajikar Sundeep M. Providing services to an open platform implementing subscriber identity module (SIM) capabilities
US8156343B2 (en) 2003-11-26 2012-04-10 Intel Corporation Accessing private data about the state of a data processing machine from storage that is publicly accessible
US8037314B2 (en) 2003-12-22 2011-10-11 Intel Corporation Replacing blinded authentication authority
US20050152539A1 (en) * 2004-01-12 2005-07-14 Brickell Ernie F. Method of protecting cryptographic operations from side channel attacks
CN100505845C (zh) * 2004-02-05 2009-06-24 松下电器产业株式会社 电视接收机以及电子设备装置
US7802085B2 (en) 2004-02-18 2010-09-21 Intel Corporation Apparatus and method for distributing private keys to an entity with minimal secret, unique information
US20050216920A1 (en) * 2004-03-24 2005-09-29 Vijay Tewari Use of a virtual machine to emulate a hardware device
US7356735B2 (en) * 2004-03-30 2008-04-08 Intel Corporation Providing support for single stepping a virtual machine in a virtual machine environment
US7620949B2 (en) 2004-03-31 2009-11-17 Intel Corporation Method and apparatus for facilitating recognition of an open event window during operation of guest software in a virtual machine environment
US20050288056A1 (en) * 2004-06-29 2005-12-29 Bajikar Sundeep M System including a wireless wide area network (WWAN) module with an external identity module reader and approach for certifying the WWAN module
US7305592B2 (en) * 2004-06-30 2007-12-04 Intel Corporation Support for nested fault in a virtual machine environment
US7840962B2 (en) * 2004-09-30 2010-11-23 Intel Corporation System and method for controlling switching between VMM and VM using enabling value of VMM timer indicator and VMM timer value having a specified time
US8768844B2 (en) * 2004-10-06 2014-07-01 Sony Corporation Method and system for content sharing and authentication between multiple devices
US20060075441A1 (en) * 2004-10-06 2006-04-06 Sony Corporation Method and system for a personal video recorder comprising multiple removable storage/tuner units
US8146078B2 (en) 2004-10-29 2012-03-27 Intel Corporation Timer offsetting mechanism in a virtual machine environment
US8924728B2 (en) * 2004-11-30 2014-12-30 Intel Corporation Apparatus and method for establishing a secure session with a device without exposing privacy-sensitive information
US8533777B2 (en) 2004-12-29 2013-09-10 Intel Corporation Mechanism to determine trust of out-of-band management agents
US7395405B2 (en) * 2005-01-28 2008-07-01 Intel Corporation Method and apparatus for supporting address translation in a virtual machine environment
GB2429094B (en) * 2005-08-09 2010-08-25 Royal Bank Of Scotland Group P Online transaction systems and methods
US7760903B2 (en) * 2005-08-30 2010-07-20 Microsoft Corporation Tamper-resistant text stream watermarking
US7809957B2 (en) 2005-09-29 2010-10-05 Intel Corporation Trusted platform module for generating sealed data
US8014530B2 (en) 2006-03-22 2011-09-06 Intel Corporation Method and apparatus for authenticated, recoverable key distribution with no database secrets
US7995759B1 (en) 2006-09-28 2011-08-09 Netapp, Inc. System and method for parallel compression of a single data stream
US8010773B2 (en) * 2008-06-24 2011-08-30 Microsoft Corporation Hardware constrained software execution
US9792439B2 (en) 2012-09-19 2017-10-17 Nxp B.V. Method and system for securely updating firmware in a computing device

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4262329A (en) 1978-03-27 1981-04-14 Computation Planning, Inc. Security system for data processing
US4723284A (en) 1983-02-14 1988-02-02 Prime Computer, Inc. Authentication system
US4947430A (en) 1987-11-23 1990-08-07 David Chaum Undeniable signature systems
US4926480A (en) 1983-08-22 1990-05-15 David Chaum Card-computer moderated systems
US4847902A (en) * 1984-02-10 1989-07-11 Prime Computer, Inc. Digital computer system for executing encrypted programs
US4799258A (en) * 1984-02-13 1989-01-17 National Research Development Corporation Apparatus and methods for granting access to computers
EP0175487A3 (en) * 1984-08-23 1989-03-08 Btg International Limited Software protection device
GB2197506A (en) 1986-10-27 1988-05-18 Burr Brown Ltd Providing and handling break points in a software monitor
US5224160A (en) 1987-02-23 1993-06-29 Siemens Nixdorf Informationssysteme Ag Process for securing and for checking the integrity of the secured programs
EP0281058B1 (de) 1987-03-04 1993-02-03 Siemens Nixdorf Informationssysteme Aktiengesellschaft Datenaustauschsystem
US5347579A (en) 1989-07-05 1994-09-13 Blandford Robert R Personal computer diary
US5136643A (en) 1989-10-13 1992-08-04 Fischer Addison M Public/key date-time notary facility
US5081675A (en) 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
US5267312A (en) * 1990-08-06 1993-11-30 Nec Home Electronics, Ltd. Audio signal cryptographic system
US5265164A (en) 1991-10-31 1993-11-23 International Business Machines Corporation Cryptographic facility environment backup/restore and replication in a public key cryptosystem
US5421006A (en) 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5343527A (en) 1993-10-27 1994-08-30 International Business Machines Corporation Hybrid encryption method and system for protecting reusable software components
US5469507A (en) 1994-03-01 1995-11-21 International Business Machines Corporation Secure communication and computation in an insecure environment
US5483649A (en) 1994-07-01 1996-01-09 Ybm Technologies, Inc. Personal computer security system
US5535276A (en) 1994-11-09 1996-07-09 Bell Atlantic Network Services, Inc. Yaksha, an improved system and method for securing communications using split private key asymmetric cryptography
US5684875A (en) * 1994-10-21 1997-11-04 Ellenberger; Hans Method and apparatus for detecting a computer virus on a computer
US5668874A (en) 1995-02-28 1997-09-16 Lucent Technologies Inc. Identification card verification system and method
US5559960A (en) * 1995-04-21 1996-09-24 Lettvin; Jonathan D. Software anti-virus facility
US5652793A (en) 1995-05-08 1997-07-29 Nvidia Corporation Method and apparatus for authenticating the use of software
US5768382A (en) 1995-11-22 1998-06-16 Walker Asset Management Limited Partnership Remote-auditing of computer generated outcomes and authenticated biling and access control system using cryptographic and other protocols
WO1997004394A1 (en) * 1995-07-14 1997-02-06 Christopher Nathan Drake Computer software authentication, protection, and security system
US6006328A (en) * 1995-07-14 1999-12-21 Christopher N. Drake Computer software authentication, protection, and security system
US5638446A (en) * 1995-08-28 1997-06-10 Bell Communications Research, Inc. Method for the secure distribution of electronic files in a distributed environment
US5822431A (en) 1996-01-19 1998-10-13 General Instrument Corporation Of Delaware Virtual authentication network for secure processors
AU3206397A (en) * 1996-05-23 1997-12-09 Apple Computer, Inc. Method and apparatus for two-level copy protection
US5892899A (en) * 1996-06-13 1999-04-06 Intel Corporation Tamper resistant methods and apparatus
US6049609A (en) * 1997-08-06 2000-04-11 Intel Corporation Cell array providing non-persistent secret storage through a mutation cycle
US5966306A (en) 1997-07-07 1999-10-12 Motorola Inc. Method for verifying protocol conformance of an electrical interface

Also Published As

Publication number Publication date
WO1999013615A1 (en) 1999-03-18
US6175925B1 (en) 2001-01-16
KR100479681B1 (ko) 2005-03-30
EP1010291A4 (en) 2002-01-02
AU8412698A (en) 1999-03-29
EP1010291A1 (en) 2000-06-21

Similar Documents

Publication Publication Date Title
KR100479681B1 (ko) 스크램블된 콘텐츠를 위한 위조방지 플레이어
KR100482775B1 (ko) 위조방지 방법 및 장치
KR100405574B1 (ko) 위조방지 방법 및 장치
Aucsmith Tamper resistant software: An implementation
US6006328A (en) Computer software authentication, protection, and security system
EP0900488B1 (en) Tamper resistant methods and apparatus
US8239686B1 (en) Method and system for protecting against the execution of unauthorized software
US8171275B2 (en) ROM BIOS based trusted encrypted operating system
US9363481B2 (en) Protected media pipeline
CA2618544C (en) Rom bios based trusted encrypted operating system
US20050021968A1 (en) Method for performing a trusted firmware/bios update
KR19990037007A (ko) 블록 연쇄화 및 블록 재정렬을 이용한 외부 메모리를 갖춘 보안프로세서
US8656190B2 (en) One time settable tamper resistant software repository
TWI428786B (zh) 建立一受保護之計算環境的方法
AU725098B2 (en) Computer software authentication, protection, and security system
CN114547651A (zh) 一种基于链式加密的操作系统中断上下文保护方法
Abrahamsson Security Enhanced Firmware Update Procedures in Embedded Systems
AU2004218702B8 (en) Method for verifying integrity on an apparatus
AU2004200094B2 (en) Tamper resistant methods and apparatus
AU5340400A (en) Apparatus for tamper resistance
MXPA98008403A (en) Security processor with external memory that uses blocking and block reordering

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20030407

Effective date: 20050129

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130228

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150227

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee