KR20060047953A - 컨텐츠 보호 시스템에서의 저장 매체상의 안전한 저장 - Google Patents
컨텐츠 보호 시스템에서의 저장 매체상의 안전한 저장 Download PDFInfo
- Publication number
- KR20060047953A KR20060047953A KR1020050040764A KR20050040764A KR20060047953A KR 20060047953 A KR20060047953 A KR 20060047953A KR 1020050040764 A KR1020050040764 A KR 1020050040764A KR 20050040764 A KR20050040764 A KR 20050040764A KR 20060047953 A KR20060047953 A KR 20060047953A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- storage area
- storage medium
- application
- nonce
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 99
- 238000004891 communication Methods 0.000 claims description 8
- 230000003287 optical effect Effects 0.000 description 10
- 238000009877 rendering Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/00086—Circuits for prevention of unauthorised reproduction or copying, e.g. piracy
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
컴퓨팅 장치와 관련된 저장 매체에 데이터를 기입하는 컴퓨팅 장치상의 애플리케이션. 데이터는 저장 매체상의 오브젝트와 관련된 안전한 저장 영역에 기입될 것이고, 안전한 저장 영역은 그와 관련된 값 저장 영역을 가진다. 애플리케이션은 논스를 생성하고 공유 세션 키 (KS)를 이용해 논스를 암호화함으로써 (KS(논스))를 얻는다. 저장 매체는 (KS(논스))를 수신하고 (KS)로 복호화해 논스를 획득하고, 안전한 저장 영역과 관련된 값 저장 영역을 찾아내며, 찾아낸 값 저장 영역에 논스를 저장한다. 애플리케이션은 논스를 이용해 키 (KH)를 생성하고, 데이터를 (KH)로 암호화해 (KH(데이터))를 획득하며, (KH(데이터))를 안전한 저장 영역에서의 저장을 위해 저장 매체로 송신한다. 이와 같이, (KH(데이터))는 값 저장 영역의 논스와 관련된다.
컨텐츠 보호, 안전한 저장 영역, 값 저장 영역, 논스, 공유 세션 키, 저장 매체
Description
도 1은 일례의 신뢰-기반 시스템에 대한 실행 아키텍처를 나타내는 블록도이다.
도 2는 본 발명의 태양들 및/또는 그 일부가 통합될 수 있는 범용 컴퓨터 시스템을 표현하는 블록도이다.
도 3은 본 발명의 일 실시예에 따라 애플리케이션이 데이터를 저장 매체상의 안전한 저장 영역에 저장하는 시스템의 제 1 실시예를 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따라 애플리케이션이 데이터를 저장 매체상의 안전한 저장 영역에 저장하는 시스템의 제 2 실시예를 나타내는 블록도이다.
도 5 및 도 6은 본 발명의 일 실시예에 따라 안전한 저장 영역에 데이터를 기입할 때(도 5) 및 안전한 저장 영역으로부터 데이터를 판독할 때(도 6) 도 3의 애플리케이션 및 저장 매체에 의해 수행되는 중요 단계들을 나타내는 흐름도들이다.
도 7 및 도 8은 본 발명의 일 실시예에 따라 안전한 저장 영역에 데이터를 기입할 때(도 7) 및 안전한 저장 영역으로부터 데이터를 판독할 때(도 8) 도 4의 애플리케이션 및 저장 매체에 의해 수행되는 중요 단계들을 나타내는 흐름도들이 다.
<도면의 주요 부분에 대한 부호의 설명>
14 : 컴퓨팅 장치
26 : 오브젝트
28 : 안전한 저장 영역
30 : 애플리케이션
32 : 파일
34 : 섹터
36 : 헤더
38 : 룩업 테이블
40 : 값 저장 영역
42 : 파일 시스템
기술 분야
본 발명은, 컨텐츠 보호 시스템의 판독 가능한 매체상에 데이터가 안전하게 저장될 수 있게 하는 아키텍처 및 방법에 관한 것이다. 보다 구체적으로, 본 발명은, 매체를 컴퓨팅 장치와 관련짓는 것에 의해 컴퓨팅 장치상에서 동작하는 애플리케이션과 매체가 협력하여 안전하게 데이터를 저장하고 검색하게 하는 아키텍처 및 방법에 관한 것이다.
발명의 배경
알고 있는 바와 같이, 그리고 이제 도 1을 참조하면, 디지털 오디오, 디지털 비디오, 디지털 텍스트, 디지털 데이터, 디지털 멀티미디어 등과 같은, 디지털 컨텐츠(12)와 관련하여서는, 디지털 컨텐츠(12)가 사용자들에게 분배되는 CPM(content protection and rights management) 및 실행 시스템이 상당히 바람직하다. 사용자에 의해 수신될 때, 이러한 사용자는 퍼스털 컴퓨터(14)상의 미디어 플레이어, 휴대용 재생 장치 등과 같은 적절한 렌더링 장치의 도움으로 디지털 컨텐츠를 렌더링하거나 "플레이(play)"한다.
통상적으로, 이러한 디지털 컨텐츠(12)를 분배하는 컨텐츠 소유자는, 사용자가 분배된 디지털 컨텐츠(12)로 할 수 있는 것을 제한하고자 한다. 예를 들어, 컨텐츠 소유자는 사용자가 이러한 컨텐츠(12)를 복사하여 제 2 사용자에게 재분배하는 것을 제한하고자 하거나 분배된 디지털 컨텐츠(12)가 한정한 횟수만큼만, 소정의 총 시간 동안만, 소정 유형의 머신상에서만, 소정 유형의 미디어 플레이어를 통해서만, 소정 유형의 사용자 등에 의해서만 플레이되도록 허용하기를 원할 수도 있다.
그러나, 분배가 발생한 이후에는, 이러한 컨텐츠 소유자가 디지털 컨텐츠(12)에 대한 제어를 가진다고 하더라도 아주 적다. CPM 시스템(10)은 임의 형태의 디지털 컨텐츠(12)에 대한 통제된 렌더링 또는 플레이를 가능하게 하는데, 이 경우, 이러한 제어는 디지털 컨텐츠의 컨텐츠 소유자에 의해 변경될 수 있고 정의될 수 있다. 통상적으로, 컨텐츠(12)는 적합한 분배 채널을 거쳐서 패키지(13)의 형태로 사용자에게 분배된다. 분배되는 디지털 컨텐츠 패키지(13)는 대칭적인 암호화/복호화 키 (KD)로 암호화된 디지털 컨텐츠(12;즉, KD(컨텐츠)) 뿐만 아니라 컨텐츠를 식별하는 다른 정보, 이러한 컨텐츠에 대한 라이선스 획득 방법 등을 포함한다.
신뢰-기반 CPM 시스템(10;trust-based CPM system)으로 인해, 디지털 컨텐츠(12)의 소유자는, 이러한 디지털 컨텐츠(12)의 렌더링이 허용되기 전에 충족되어야 하는 규칙들을 특정할 수 있다. 이러한 규칙들은 상술된 요구 사항들 및/또는 다른 요구 사항들을 포함할 수 있으며, 사용자/사용자의 컴퓨팅 장치(14)(이하에서, 이러한 용어들은, 특별한 상황이 아니라면, 호환적으로 사용될 수 있다)가 컨텐츠 소유자 또는 그에 관한 에이전트로부터 획득해야 하는 디지털 라이선스(16;digital license)내에서 구체화될 수 있고, 또는 이러한 규칙들이 이미 컨텐츠(12)에 첨부되어 있을 수도 있다. 이러한 라이선스(16)는, 예를 들어, 사용자의 컴퓨팅 장치 또는 다른 재생 장치에 의해 복호화될 수 있는 다른 키에 따라 암호화되었을 수도 있는, 디지털 컨텐츠(12)를 복호화하기 위한 복호화 키 (KD)를 포함할 수도 있다.
일부 디지털 컨텐츠(12)의 컨텐츠 소유자는, 라이선스(16)에서 또는 다른 곳에서 컨텐츠 소유자에 의해 특정된 규칙들을 사용자가 준수할 것이라는 것을 신뢰할 수 없는 사용자에게는 컨텐츠(12)를 분배하지 않는 것을 선호할 것이다. 따라서, 사용자의 컴퓨팅 장치(14) 또는 다른 재생 장치에는, 이러한 규칙들에 따른 것이 아니라면 디지털 컨텐츠(12)를 렌더링하지 않을 신뢰 컴포넌트 또는 메커니즘 (18;trusted component or mechanism)이 제공되는 것이 바람직하다.
신뢰 컴포넌트(18)는 통상적으로, 규칙들을 검토하고, 검토된 규칙들에 기초해, 요청 중인 사용자가 요청된 디지털 컨텐츠(12)를, 다른 것들 중에서도, 시도된 방식으로 렌더링하기 위한 권리를 갖는지의 여부를 판정하는 평가기(20)를 가진다. 알 수 있는 바와 같이, 평가기(20)는 CPM 시스템(10)에서 디지털 컨텐츠(12) 소유자의 소망들에 따라 수행할 것이 신뢰되며, 사용자는 불법적인 또는 다른 목적을 위해 이러한 신뢰 컴포넌트(18) 및/또는 평가기(20)를 쉽게 변경할 수 없어야 한다.
알 수 있는 바와 같이, 컨텐츠(12)를 렌더링하는 규칙들은, 사용자가 누구인지, 사용자가 어디에 위치하는지, 사용자가 사용하고 있는 것이 어떤 유형의 컴퓨팅 장치(14) 또는 다른 재생 장치인지, 어떤 렌더링 애플리케이션이 CPM 시스템(10)을 호출 중인지, 날짜, 시간 등을 포함하는, 몇몇 팩터들 중 하나에 기초해, 사용자가 그렇게 렌더링하기 위한 권리들을 갖는지의 여부를 특정할 수 있다. 또한, 규칙들은 렌더링을, 예를 들어, 소정 횟수의 플레이 또는 소정 플레이 시간으로 한정할 수 있다.
규칙들은 임의의 적절한 언어 또는 구문에 따라 특정될 수 있다. 예를 들어, 언어는 충족되어야 하는 속성들 및 값들을 단순하게 특정하거나(예를 들어, DATE는 X 이후여야 한다), 특정 스크립트에 따른 펑크션들의 실행을 요구할 수도 있다(예를 들어, IF DATE greater than X, THEN DO ...).
사용자가 규칙들을 충족시킨다고 평가기(20)가 판정한 다음에야, 디지털 컨 텐츠(12)가 렌더링될 수 있다. 특히, 컨텐츠(12)를 렌더링하기 위해서는, 소정 소스로부터 복호화 키 (KD)가 획득되고 컨텐츠 패키지(13)로부터의 KD(컨텐츠)에 적용되어 실제 컨텐츠(12)가 얻어진 다음에야 실제 컨텐츠(12)가 렌더링된다.
신뢰 컴포넌트(18)는 때때로 특정 컨텐츠(12)의 렌더링 및/또는 특정 라이선스(16)의 사용에 관한 상태 정보(state information)를 유지할 것이 요청될 수 있다. 예를 들어, 특정 라이선스(16)가 플레이 카운트 요구 사항을 갖는 경우가 이에 해당될 수 있는데, 그에 따라, 신뢰 컴포넌트(18)는 라이선스(16)가 대응되는 컨텐츠(12)를 렌더링하는데 몇 번이나 이용되었는지 또는 라이선스(16)가 몇 번 더 대응되는 컨텐츠(12)를 렌더링하는데 이용될 수 있는지를 기억해야 한다. 따라서, 신뢰 컴포넌트(18)는, 이러한 상태 정보가 안전한 방식으로 영속적으로 유지되는 하나 이상의 영속적인 안전한 저장 장치(22)를 포함할 수도 있다. 이와 같이, 신뢰 컴포넌트(18)가 안전한 저장 장치(22)에 영속적인 방식으로 이러한 상태 정보를 저장하는 것에 의해, 이러한 상태 정보는 컴퓨팅 장치(14)상의 사용 세션들에 걸쳐서도 유지된다. 안전한 저장 장치(22)를 다른 곳에 배치하는 것이 유용하거나 심지어 필요할 수도 있다는 것을 알 수 있겠지만, 안전한 저장 장치(22)는 신뢰 컴포넌트(18)의 컴퓨팅 장치(14)상에 배치되는 것이 적합할 수 있다.
CPM 시스템(10)에서, 컨텐츠(12)는, 컨텐츠(12)를 암호화하고 한 세트의 규칙들과 컨텐츠(12)를 관련짓는 것에 의해, 사용자에 의한 사용을 위해 패키지화될 수 있다. 컨텐츠(12)는 규칙들에 따라서만 렌더링될 수 있기 때문에, 이후에는, 컨텐츠(12)가 자유롭게 분배될 수 있다. 통상적으로, 컨텐츠(12)는 상기 키(KD)와 같은 대칭 키에 따라 암호화되어 KD(컨텐츠)를 발생시키고, 그에 따른 KD(컨텐츠)는 (KD)에 따라 복호화되어 컨텐츠(12)를 발생시킨다. (KD)는 컨텐츠(12)에 대응되는 라이선스(16)내에 포함될 수 있다.
간혹, (KD)는, 컨텐츠(12)가 렌더링될 컴퓨팅 장치(14)의 공개 키 (PU-C)와 같은 공개 키에 따라 암호화되어, (PU-C(KD))가 얻어진다. 하지만, 예를 들어, 사용자의 공개 키, 사용자가 멤버인 그룹의 공개 키 등과 같은, 다른 공개 키들이 이용될 수도 있으며, 브로드캐스트 암호화와 같은 다른 방식들이 (KD)를 숨기는데 이용될 수도 있다는 것에 주의해야 한다. 따라서, 공개 키가 (PU-C)라고 가정하면, (PU-C(KD))를 가진 라이선스(16)가 컴퓨팅 장치(14)에 결부되어 컴퓨팅 장치(14)와 관련하여서만 사용될 수 있는데, 이러한 컴퓨팅 장치(14)만이 (PU-C)에 대응되는 비밀 키 (PR-C)로의 액세스를 가져야 하기 때문이다. 알 수 있는 바와 같이, (PR-C)는 (PU-C(KD))를 복호화하여 (KD)를 획득하는데 필요하며, 컴퓨팅 장치(14)에 의해 밀접하게 보유되어야 한다.
상술된 바와 같이, 모든 컨텐츠(12)에 대한 상태 정보 및/또는 컴퓨팅 장치(14)와 관련된 라이선스들(16)이 컴퓨팅 장치의 신뢰 컴포넌트(18)와 관련된 중앙 배치형 안전한 저장 장치(22;centrally located secure store)에 저장되어 있는 경우가 그런 경우일 수 있다. 그러나, 상태 정보를 중앙에 배치하지 않고, 상태 정보를 컨텐츠(12), 라이선스(14), 및/또는 다른 오브젝트와 함께 컴퓨팅 장치(14)와 관련된 저장 매체(24)상에 저장하는 것이 유용하거나 그리고/또는 필요할 수 있다는 것도 알 수 있을 것이다. 알 수 있는 바와 같이, 저장 매체(24)는, 광학 또는 자기 매체, 고정 또는 휴대용 매체 등을 포함하는, 임의의 매체일 수 있다.
특히, 적어도 일부 상황들에서는, 컨텐츠 소유자들이, 일부 컨텐츠(12)와 관련된 상태 정보, 라이선스(16), 또는 다른 유사 오브젝트가, 이러한 오브젝트를 가진 저장 매체(24)상에 안전하게 저장되기를 원할 수도 있다. 따라서, 컴퓨팅 장치(14)와 관련된 저장 매체(24)상에, 매체(24)상에 저장되어 있는 오브젝트와 관련되며 컴퓨팅 장치(14)상의 신뢰 애플리케이션에 의해서만 기입되거나 판독될 수 있는, 안전한 저장 영역을 확립할 수 있는 시스템 및 방법에 대한 필요가 존재한다. 또한, 컴퓨팅 장치(14)가 기존의 파일 시스템에 의해 저장 매체(24)상의 파일들을 조직하고 저장할 수 있으며, 컴퓨팅 장치(14)상의 기존의 파일 시스템에 의해 안전한 저장 영역에 데이터를 기입하고 그로부터 데이터를 판독할 수 있는, 시스템 및 방법에 대한 필요가 존재한다.
상술된 필요들은, 컴퓨팅 장치상의 애플리케이션에 대해 컴퓨팅 장치와 관련된 저장 매체에 데이터를 기입하는 방법이 제공되는 본 발명에 의해 적어도 부분적으로 충족되는데, 이 경우, 데이터는 저장 매체상의 오브젝트와 관련된 안전한 저장 영역에 기입될 것이고, 안전한 저장 영역은 그것과 관련된 저장 매체상에 값 저장 영역을 가진다. 본 방법에서, 애플리케이션 및 저장 매체는 대칭 세션 키(KS)를 공유되는 비밀로서 확립하며, 애플리케이션은 논스(nonce)를 생성하고 (KS(논스))를 얻기 위해 세션 키 (KS)를 이용해 논스를 암호화한다.
애플리케이션은 (KS(논스))를 저장 매체로 송신하고, 저장 매체는 (KS(논스 ))를 수신하고 (KS)로 복호화해 논스를 획득하고, 안전한 저장 영역과 관련된 값 저장 영역을 찾아내며, 찾아낸 값 저장 영역에 논스를 저장한다. 애플리케이션은 논스를 이용해 키 (KH)를 생성하고, 데이터를 (KH)로 암호화해 (KH(데이터))를 얻으며, 안전한 저장 영역에서의 저장을 위해 (KH(데이터))를 저장 매체로 송신한다. 이와 같이, (KH(데이터))는 값 저장 영역의 논스와 관련된다.
상기 요약 뿐만 아니라 본 발명의 실시예들에 대한 다음의 상세한 설명도, 첨부된 도면들과 함께 읽을 때, 좀더 이해가 잘 될 것이다. 본 발명을 예시할 목적으로, 다음에서 참조되는 예시적인 도면들을 도시하였다. 그러나, 본 발명이 도시된 정확한 구성들 및 수단들로 한정되는 것은 아니라는 것을 알 수 있어야 한다.
발명의 상세한 설명
컴퓨터 환경
도 2 및 다음의 논의는, 본 발명 및/또는 그것의 일부가 구현될 수 있는 적합한 컴퓨팅 환경에 대한 간략하고 일반적인 설명을 제공하기 위한 것이다. 반드시 그래야 하는 것은 아니지만, 클라이언트 워크스테이션 또는 서버와 같은, 컴퓨터에 의해 실행되는, 프로그램 모듈들과 같은, 컴퓨터-실행 가능 명령들의 일반적인 문맥에서 본 발명을 설명할 것이다. 일반적으로, 프로그램 모듈들은 특정한 태스크들을 수행하거나 특정한 추상적 데이터형들을 구현하는 루틴들, 프로그램들, 오브젝트들, 컴포넌트들, 데이터 구조들 등을 포함한다. 또한, 핸드-헬드 장치들, 멀티-프로세서 시스템들, 마이크로프로세서-기반 또는 프로그램 가능한 상용 전자 제품들, 네트워크 PC들, 미니컴퓨터들, 메인프레임 컴퓨터들 등을 포함하는, 다른 컴퓨터 시스템 구성들로도 본 발명 및/또는 그것의 일부들이 실시될 수 있다는 것을 알 수 있어야 한다. 또한, 통신 네트워크를 통해 링크되어 있는 원격 프로세싱 장치들에 의해 태스크들이 수행되는 분산 컴퓨팅 환경에서, 본 발명이 실시될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및 원격 메모리 저장 장치들 모두에 배치될 수 있다.
도 2에 나타낸 바와 같이, 예시적인 범용 컴퓨팅 시스템은, 프로세싱 유닛(121), 시스템 메모리(122), 및 시스템 메모리를 포함하여 다양한 시스템 컴포넌트들을 프로세싱 유닛(121)에 결합시키는 시스템 버스(123)를 포함하는, 종래의 퍼스널 컴퓨터(120) 등을 포함한다. 시스템 버스(123)는 메모리 버스 또는 메모리 컨트롤러, 주변장치 버스, 및 다양한 버스 아키텍처들 중 하나를 사용하는 로컬 버스를 포함하는 몇가지 유형의 버스 구조들 중 하나일 수 있다. 시스템 메모리는 ROM(read only memory;124) 및 RAM(random access memory;125)을 포함한다. 스타트-업(start-up) 동안과 같은 때에, 퍼스널 컴퓨터(120)내의 요소들 사이에서 정보 전달을 돕는 기본적 루틴들을 포함하는 BIOS(basic input/output system;126)는 ROM(124)에 저장된다.
퍼스널 컴퓨터(120)은 하드 디스크로부터 판독하고 그에 기입하는 하드 디스크 드라이브(127), 분리형 자기 디스크(129)로부터 판독하고 그에 기입하는 자기 디스크 드라이브(128) 및, CD-ROM 또는 다른 광학 매체와 같은, 분리형 광학 디스크(131)로부터 판독하고 그에 기입하는 광학 디스크 드라이브(130)를 더 포함할 수 있다. 하드 디스크 드라이브(127), 자기 디스크 드라이브(128), 및 광학 디스크 드라이브(130)는 각각 하드 디스크 드라이브 인터페이스(132), 자기 디스크 드라이브 인터페이스(133), 및 광학 드라이브 인터페이스(134)에 의해 시스템 버스(123)에 접속된다. 드라이브들 및 그들과 관련된 컴퓨터-판독 가능 매체는 퍼스널 컴퓨터(120)에 컴퓨터 판독 가능 명령들, 데이터 구조들, 프로그램 모듈들, 및 다른 데이터의 비휘발성 저장을 제공한다.
여기에서 설명된 예시적 환경은 하드 디스크, 분리형 자기 디스크(129), 및 분리형 광학 디스크(131)를 이용하지만, 컴퓨터에 의해 액세스될 수 있는 데이터를 저장할 수 있는 다른 유형들의 컴퓨터 판독 가능 매체들도 예시적인 동작 환경에 사용될 수 있다는 것을 알 수 있어야 한다. 이러한 다른 유형들의 매체들로는 자기 카세트들, 플래시 메모리 카드, DVD, 베르누이 카트리지, RAM, ROM 등을 들 수 있다.
오퍼레이팅 시스템(135), 하나 이상의 애플리케이션 프로그램들(136), 다른 프로그램 모듈들(137), 및 프로그램 데이터(138)를 포함하는, 다수의 프로그램 모듈들이 하드 디스크, 자기 디스크(129), 광학 디스크(131), ROM(124), 또는 RAM(125)에 저장될 수 있다. 사용자는 키보드(140) 및 포인팅 장치(142)와 같은 입력 장치들을 통해 퍼스널 컴퓨터(120)에 명령들 및 정보를 입력할 수 있다. (나타내지 않은) 다른 입력 장치들로는 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 들 수 있다. 이들 및 다른 입력 장치들은 대개 시스템 버스에 결합되어 있는 직렬 포트 인터페이스(146)를 통해 프로세싱 유닛(121)에 접속되지만, 병렬 포트, 게임 포트, 또는 USB(universal serial bus)와 같은, 다른 인터페이스들에 의해 접속될 수도 있다. 또한, 모니터(147) 또는 다른 유형의 디스플레이 장치가, 비디오 어댑터(148)와 같은, 인터페이스를 통해 시스템 버스(123)에 접속되어 있다. 모니터(147) 이외에, 퍼스널 컴퓨터는 통상적으로, 스피커들 및 프린터들과 같은, (나타내지 않은) 다른 주변 출력 장치들을 포함한다. 도 2의 예시적 시스템은 호스트 어댑터(155), SCSI(Small Computer System Interface) 버스(156), 및 SCSI 버스(156)에 접속되어 있는 외부 저장 장치(162)도 포함한다.
퍼스널 컴퓨터(120)는, 원격 컴퓨터(149)와 같은, 하나 이상의 원격 컴퓨터들로의 논리적 접속들을 사용하는 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(149)는 또 하나의 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치, 또는 다른 공통 네트워크 노드일 수 있으며, 도 2에는 메모리 저장 장치(150)만이 도시되어 있지만, 통상적으로 퍼스널 컴퓨터(120)와 관련하여 상술된 요소들 중 많은 것을 또는 그 전부를 포함한다. 도 2에 도시된 논리적 접속들은 LAN(local area network;151) 및 WAN(wide area network;152)을 포함한다. 이러한 네트워킹 환경들은 사무실들, 기업-범위의 컴퓨터 네트워크들, 인트라넷들, 및 인터넷에서 흔히 볼 수 있다.
LAN 네트워킹 환경에서 사용될 경우, 퍼스널 컴퓨터(120)는 네트워크 인터페이스 또는 어댑터(153)를 통해 LAN(151)에 접속된다. WAN 네트워킹 환경에서 사용될 경우, 컴퓨터(120)는 통상적으로, 인터넷과 같은, WAN(152)을 통해 통신을 확립하기 위한 모뎀(154) 또는 다른 수단을 포함한다. 내장형이거나 외장형일 수 있는 모뎀(154)은 직렬 포트 인터페이스(146)를 통해 시스템 버스(123)에 접속된다. 네트워크 환경에서는, 퍼스널 컴퓨터(120)와 관련하여 도시된 프로그램 모듈들 또는 그것의 일부들이 원격 메모리 저장 장치에 저장될 수도 있다. 나타낸 네트워크 접속들은 예시적인 것이며 컴퓨터들간에 통신 링크를 확립하는 다른 수단이 사용될 수도 있다는 것을 알 수 있을 것이다.
저장 매체(24)상의 오브젝트와 관련된 안전한 저장 영역
컨텐츠 보호는, 컨텐츠(12)가 컨텐츠 소유자 및/또는 제공자의 소망들과 모순되는 방식으로 사용될 수 없도록 디지털 컨텐츠(12)를 보호하는 방법들 및 기술들의 영역을 지시한다. 방법들은, 다른 것들 중에서도, CP(copy protection), LP(link protection), CA(conditional access), RM(rights management), 및 DRM(digital rights management)을 포함한다. 컨텐츠 보호 시스템의 기본은, 보호되는 컨텐츠(12)의 사용을 위한 암시적인 그리고/또는 명시적인 규칙들의 적당한 고수를 보장하는 신뢰 애플리케이션만이 보호되는 컨텐츠(12)에 비보호 형태(unprotected form)로 액세스할 수 있다는 것이다. 통상적으로, 컨텐츠(12)는 소정 방식으로 암호화되는 것에 의해 보호되는데, 신뢰되는 당사자들만이 컨텐츠(12)를 복호화할 수 있다.
CP(copy protection)는, 엄격한 의미에서, 저장 장치에 상주하는 컨텐츠(12)에 특별히 적용되는 한편, LP(link protection)는 전송 매체를 통해 애플리케이션들/장치들 사이에서 이동 중인 컨텐츠(12)에 적용된다. CA(conditional access)는, 프리미엄 프로그램들, 채널들, 및/또는 영화들이 전송 중에 암호화되는, LP의 좀더 복잡한 형태로 볼 수 있다. 컨텐츠(12)로의 액세스를 위해 비용을 지불한 가입자들에게만 컨텐츠(12)를 복호화하는데 필요한 키들이 제공된다.
DRM(Digital Rights Management)은, 컨텐츠(12)의 소정 부분의 인가된 사용에 관한 규칙들이 명시적이며 컨텐츠(12) 자체로 결합되거나 관련되는, 확장 가능한 아키텍처이다. DRM 메커니즘들은, 컨텐츠의 개별 부분들의 레벨에서 또는 심지어 컨텐츠의 하부-컴포넌트들의 레벨에서 좀더 강력한 제어 및 호환성을 제공하는 동시에, 다른 방법들보다 좀더 풍부하고 명시적인 규칙들을 지원할 수 있다. 각각이 그것의 전부가 참조로써 여기에 포함되어 있는, 1999년 4월 12일에 출원된 미국 특허출원 제 09/290,363호 및 1999년 3월 27일에 출원된 미국 가명세출원 제 60/126,614호에, DRM 시스템의 일례가 설명되어 있다.
RM(Rights Management)은, 컨텐츠(12)가 조직 또는 그것의 서브세트내에서만 액세스될 수 있도록 보호될 수 있는, 조직적으로 배치된 DRM의 형태이다. 각각이 그것의 전부가 참조로써 여기에 포함되어 있으며 2002년 6월 28일에 출원된, 미국 특허출원 제 10/185,527호, 제 10/185,278호, 및 제 10/185,511호에, RM 시스템의 일례가 설명되어 있다.
이제 도 3을 참조하면, 본 발명에서는, 컨텐츠(12), 라이선스(16), 또는 다른 오브젝트일 수 있는 어떤 종류의 오브젝트(26)가 컴퓨팅 장치(14)와 관련된 저장 매체(24)상에 저장될 것이며, 안전한 저장 영역(28)이 오브젝트(26)와 관련되는 방식으로, 안전한 저장 영역28)이 저장 매체(24)상에 확립된다. 안전한 저장 영역(28)은 컴퓨팅 장치(14)상의 신뢰 애플리케이션(30)에 의해서만 적절하게 기재되거 나 판독될 수 있다. 컴퓨팅 장치(14)는 컴퓨팅 장치(14)상의 기존의 파일 시스템(42)으로서 저장 매체(24)상의 파일들을 조직하고 저장하며, 애플리케이션(30)은 이러한 기존의 파일 시스템(42)을 이용해 안전한 저장 영역(28)에 데이터를 기입하고 그로부터 데이터를 판독한다.
안전한 저장 장치(22)와 마찬가지로, 안전한 저장 영역(28)의 데이터는 본 발명의 정신 및 범위를 벗어나지 않으면서 임의의 데이터일 수 있지만, 아마도 안전한 저장 영역(28)의 데이터는 관련된 오브젝트(26)와 어떤 관련을 가질 것이다. 예를 들어, 오브젝트(26)가 컨텐츠(12) 또는 라이선스(16)라면, 데이터는 컨텐츠(12) 복호화를 위한 복호화 키 (KD)를 포함하거나 라이선스(16)에 관한 상태 정보일 수 있다. 중요한 것은, 안전한 저장 영역의 데이터가 본질적으로 민감하다고 가정된다면, 적어도 일부의 경우들에서, 이러한 데이터는 불법적인 엔티티에 의한 변경을 방지하기 위해 고쳐질 염려 없는 방식으로(in a tamper-proof manner) 그리고 불법적인 엔티티가 이러한 데이터를 보는 것을 방지하기 위해 안전한 방식으로 저장되어야 한다. 그러나, 저장 매체(24)가 휴대될 수 있으며 어느 정도이든 신뢰 컴포넌트(18)로부터 분리된다면, 보다 상세하게 후술되는 바와 같이, 이와 같은 고쳐질 염려가 없는 안전한 저장을 보장하기 위해, 특수한 주의를 기울여야 한다.
오브젝트(26) 및 관련된 안전한 저장 영역(28)은, 본 발명의 정신 및 범위를 벗어나지 않으면서, 임의의 적절한 오브젝트 및 안전한 저장 영역일 수 있다. 다른 유형의 오브젝트들(26) 및 안전한 저장 영역들(28)이 본 발명에 이용될 수도 있다는 것을 알 수 있어야 하겠지만, 통상적으로, 오브젝트(26)는 저장 매체(24)상에 (하나가 표시되어 있는) 하나 이상의 파일들로 상주하는 컨텐츠(12)의 일부 또는 라이선스(16)이며, 안전한 저장 영역(28)은 관련 오브젝트(26)에 관한 상태 정보를 가진 안전한 저장 장치(22)와 등가이다. 예를 들어, 안전한 저장 영역들(28)의 다른 유형들은 파일들(32)과 통상적으로 관련되어 있지 않은 저장 매체(24)상의 영역들을 포함할 수 있다.
마찬가지로, 컴퓨팅 장치(14)상의 신뢰 애플리케이션(30) 또한, 본 발명의 정신 및 범위를 벗어나지 않으면서, 임의의 적절한 애플리케이션일 수 있다. 신뢰 애플리케이션(30)은, 예를 들어, 도 1의 신뢰 컴포넌트(18), 컨텐츠(12)를 직접적으로 렌더링하는 애플리케이션 등일 수 있다. 이름으로 유추되는 바와 같이, 이러한 신뢰 애플리케이션(30)은 실제로, 첨부되는 라이선스(16) 등에서 서술된 규칙들 및 정책에 따라서만 CPM 시스템(10)의 프레임워크내에서 컨텐츠(12)를 렌더링할 것으로 신뢰된다. 이러한 신뢰는, 예를 들어, 신뢰 기관에 의해 발행된 또는 이러한 신뢰 기관으로부터 파생된 디지털 인증서(digital certificate) 등을 소지하고 있는 신뢰 애플리케이션(30)에 의해 입증될 수 있다.
컴퓨팅 장치(14)와 관련된 저장 매체(24) 또한 마찬가지로, 본 발명의 정신 및 범위를 벗어나지 않으면서, 여기에서 기술된 조건들에 따르는, 임의의 적절한 매체일 수 있다. 예를 들어, 이러한 저장 매체(24)는 광학 또는 자기 매체일 수 있고 컴퓨팅 장치(14)에 고정되거나 컴퓨팅 장치(14)로부터 분리될 수 있다. 따라서, 컴퓨팅 장치(14)와 관련된 저장 매체(24)는, 보조 드라이브에 삽입된 분리형 디스크와 같은, 최소한의 일시적 관련만을 필요로 한다. 모든 경우들에서 반드시 그래야 하는 것은 아니지만, 저장 매체(24)는 데이터를 기입 및 재기입할 수 있다고 가정되거나 적어도 저장 매체(24)는 가능하다면 이전에 기입된 데이터를 논리적으로 업데이트할 수 있다고 가정된다. 업데이트가 불가능한 경우들에서는 기입된 데이터가 변경될 수 없다는 것을 알 수 있겠지만, 업데이트할 수 있어야 한다는 필요가 본 발명의 절대적인 요구 사항인 것은 아니다. 신뢰 애플리케이션(30)과 마찬가지로, 저장 매체는 데이터를 안전한 저장 영역(28)에 저장할 것으로 신뢰되고, 이러한 신뢰 또한 마찬가지로 신뢰 기관에 의해 발행되거나 이러한 신뢰 기관으로부터 파생된 디지털 인증서 등을 소지하고 있는 저장 매체(24)에 의해 입증될 수 있다.
중요한 것은, 저장 매체(24) 및 애플리케이션(30)이, 예를 들어, 그들 사이에서 통신을 암호화 및 복호화하는데 이용되는 공유 비밀을 확립하는 것으로서, 그들 사이에 안전한 채널을 확립할 수 있어야 한다는 것이다. 공유 비밀을 확립하는 것은, 본 발명의 정신 및 범위를 벗어나지 않으면서, 임의의 적절한 메커니즘에 의해 발생할 수 있다. 예를 들어, 그리고 당업자들이라면 알 수 있는 바와 같이, 저장 매체(24) 및 애플리케이션(30)은 Diffle-Hellman 절차를 상호 수행하는 것에 의해 공유 비밀을 확립할 수 있다. 안전한 채널을 확립하는 것의 일부로서, 저장 매체(24) 및 애플리케이션(30)은, 상기 디지털 인증서들 등을 서로 교환하는 것에 의해, 서로의 신뢰를 확립해야 한다.
본 발명의 일 실시예에서, 그리고 도 3에 나타낸 바와 같이, 저장 매체(24)는 저장 매체(24)에 저장되어 있는 각각의 오브젝트(26)에 대해 관련된 안전한 저 장 영역(28)을 갖거나 생성할 수 있고, 안전한 저장 영역(28;secure storage area;SSA)을 오브젝트(26)와 물리적으로 또는 논리적으로 관련지을 수 있다. 본 발명의 정신 및 범위를 벗어나지 않으면서, 임의의 적절한 관련 방식이 저장 매체(24)에 의해 안전한 저장 영역(28)을 오브젝트(26)와 관련짓는데 이용될 수 있다. 이러한 관련은, 예를 들어, 이러한 관련을 기록하는 적절한 룩업 테이블(look-up table) 등을 보유하고 있는 저장 매체(24)에 의해 생성되거나, 예를 들어, 오브젝트(26) 및 관련된 안전한 저장 영역(28)을 함께-배치하는 저장 매체(24)에 의해 생성될 수 있다. 이러한 공존(co-location)은 물리적으로 또는 논리적으로 오브젝트(26) 및 관련된 안전한 저장 영역(28)을 서로 인접하게 또는 심지어 동일한 저장 공간내에 저장하는 것에 의해 실현될 수 있다.
특히 후자의 경우에, 그리고 도 3에 나타낸 바와 같이, 오브젝트(26)는 (하나가 표시되어 있는) 하나 이상의 파일들(32)로서 저장 매체(24)상에 저장될 수 있는데, 각각의 파일(32)은 저장 매체(24)상의 하나 이상의 물리적 또는 논리적 섹터들(34)에 저장되고, 각각의 섹터(34)는 섹터 헤더(36)를 가진다. 알 수 있는 바와 같이, 이러한 섹터 헤더(36)는 섹터에 저장되어 있는 파일에 관한 섹터 데이터와 같은 데이터를 저장하기 위한, 저장 매체(24)를 위한 소정량의 공간을 포함한다. 일반적으로, 그리고 알 수 있어야 하는 바와 같이, 섹터 헤더(36)의 섹터 데이터는 저장 매체(24)에 의해서만 사용되며 저장 매체(24)로부터 외부적으로는 이용되지 않는다. 그럼에도 불구하고, 이러한 섹터 데이터가, 애플리케이션(30)과 같은, 외부 요소에 의해, 그로부터의 적절한 명령들을 통해, 기입되고 판독될 수 있다. 따 라서, 그리고 본 발명의 일 실시예에서, 저장 매체(24)는, 오브젝트(26)와 관련된 안전한 저장 영역(28)을 오브젝트(26)의 파일들(34)에 대한 섹터 헤더들(36)에 저장하는 것에 의해, 오브젝트(26) 및 관련된 안전한 저장 영역(28)을 함께 배치한다. 물론, 안전한 저장 영역(28)이 저장 매체(24)상의 다른 영역들에 저장될 수도 있다. 예를 들어, 저장 매체(24)는 다수의 완전 섹터들을 디스크의 인입 영역(lead-in area)에 유보해 둘 수 있다. 그런 경우, 전체 디스크를 위한 안전한 저장 영역(28)은, 어떤 부분도 임의의 소정 오브젝트(26)와 관련될 수 있고 임의의 소정 오브젝트(26)에 사용될 수 있는, 전체 인입 섹터들일 수 있다. 여기에서, 인입 영역의 인입 섹터들 각각에 대한 관련 오브젝트(26)로의 관련은, 룩업 테이블로 유지되어야 할 수도 있다.
하지만, 상술된 방식은, 안전한 저장 영역(28)을 위한 저장 영역의 양이 오브젝트(26)의 파일들(34)에 대한 섹터 헤더들(28)로부터 이용 가능한 공간으로 한정된다는 점에서 제한될 수 있다는 것에 주의해야 한다. 따라서, 상술된 방식의 변형으로서, 안전한 저장 영역(28)이 논리적으로만 오브젝트(26)에 접속된다. 특히, 그리고 도 4에 나타낸 바와 같이, 오브젝트(26)는 이번에도 하나 이상의 오브젝트 파일들(32)로서 저장 매체(24)상에 저장될 수 있고, 관련된 안전한 저장 영역(28) 또한 하나 이상의 SSA(secure storage area) 파일들(32)로서 저장 매체상에 저장되는데, 저장 매체(24)는 이러한 관련을 기록하는 상기 룩업 테이블(38) 등을 유지한다. 알 수 있는 바와 같이, 따라서, 본 방식은, 본 방식의 SSA 파일들(32)이 임의의 필요 사이즈일 수 있으므로, 안전한 저장 영역(28)을 한정하지 않는다. 따라서, 그리고 본 발명의 일 실시예에서, 저장 매체(24)는 오브젝트(26) 및 관련된 안전한 저장 영역(28)을 룩업 테이블(38) 등에 의해 관련짓는다.
이러한 실시예에서, SSA 파일들(32)은 비-인가 뷰잉(un-authorized viewing)을 방지하기 위해 암호화되거나 적어도 위조를 방지하기 위해 서명되어야 하는데, 이 경우에는, 암호화된 SSA 파일들을 복호화하거나 확인하는데 직접적으로 또는 간접적으로 이용될 값을 저장하기 위한 값 저장 영역(40)이 필요하다. 앞서와 같이, 저장 매체(24)는 임의의 적절한 수단에 의해 값 저장 영역(40)을 대응되는 SSA 파일들(32)과 관련지어야 한다. 따라서, 본 발명의 일 실시예에서, 그리고 도 4에 나타낸 바와 같이, 저장 매체(24)는 사실상, 값 저장 영역(40)을 대응되는 SSA 파일들(32)의 섹터 헤더들(36)에 생성하는 것에 의해, 값 저장 영역(40)을 대응되는 SSA 파일들(32)과 관련짓는다.
도 3 및 도 4의 실시예들에서, 그리고 알 수 있는 바와 같이, 섹터 헤더들(36)의 정보의 실제 저장은, 본 발명의 정신 및 범위를 벗어나지 않으면서, 임의의 적절한 메커니즘에 따라 구성될 수 있다. 예를 들어, 단 하나의 정보 인스턴스가 저장되는 경우이거나 다수의 정보 인스턴스들이 저장되는 경우일 수 있다. 마찬가지로, 다수 오브젝트 또는 SSA 파일들(32)의 경우에서는, 다수 파일(32) 각각이 정보를 갖는 경우이거나 다수 파일들(32)의 일부 또는 전부가 정보를 갖는 경우일 수 있다.
도 3에 나타낸 실시예와 관련하여, 그리고 본 발명의 일 실시예로서 이제 도 5를 참조하면, 애플리케이션(30)은 저장 매체(24)상의 오브젝트(26)와 관련된 안전 한 저장 영역(28)에 다음의 방식으로 데이터를 기입한다. 우선, 애플리케이션(30)과 저장 매체(24)는 대칭 세션 키(KS)와 같은 공유 비밀을 확립하는 것에 의해 그들 사이에 안전한 채널을 설정하고(단계 501), 애플리케이션(30)은 데이터 키 (KA)를 선택해 그것으로 데이터를 암호화하여 (KA(데이터))를 얻는다(단계 503). 본 발명의 정신 및 범위를 벗어나지 않으면서, 데이터 키 (KA)는 임의의 기준에 따라 선택될 수 있다. 예를 들어, 오브젝트(26)가 컨텐츠 키 (KD)에 의해 암호화된 컨텐츠(12)라면, (KA)는 사실상 (KD)일 수 있다.
또한, (KA(데이터))를 얻기 위해 (KA)로 데이터를 암호화하는 대신, 그에 의해 차후에 데이터의 통합성이 확인될 수 있는 확인 해시(verifying hash)를 구성하는데 (KA)가 이용될 수 있다는 것에 주의한다. 알 수 있는 바와 같이, 이러한 확인 해시는 데이터를 숨기지 않는 대신, 데이터가 변경되지 않았다는 것만을 보장한다. 또한, (KA)는 신뢰되는 방식으로 데이터로의 액세스를 획득하는데 이용되는 다른 방식으로도 이용될 수 있다는 것에 주의한다. 신뢰되는 액세스 시나리오에서는, (KA)를 소유한 신뢰 엔티티에만 데이터가 제공될 수 있다. 마지막으로, 데이터를 애플리케이션-특정 데이터 키 (KA)로 암호화하는 단계가, 비-신뢰 애플리케이션(30)이 안전한 저장 영역(28)의 섹터 헤더의 데이터를 판독하고 그리고/또는 기입하는 것을 저장 매체(24)가 금지하는 경우와 같은, 소정 상황들에서는 생략될 수 있다는 것에 주의한다. 따라서, 그리고 좀더 일반적으로, 데이터를 보호하는데 이용되는 (KA), (KS), 또는 임의의 여타 키에서의 어떤 변형도 본 발명의 정신 및 범위내인 것으로 간주되어야 한다.
다음으로, 애플리케이션(30)은 (KA(데이터))를 세션 키 (KS)로 암호화하여 (KS(KA(데이터)))를 획득하고(단계 505), 오브젝트(26)와 관련된 안전한 저장 영역(28)에서의 저장을 위해 이러한 (KS(KA(데이터)))를 저장 매체(24)로 송신한다(단계 507). 데이터가 (KA) 및 (KS) 모두로 이중 암호화된다면, 애플리케이션(30)만이 (KA)를 알고 있고 (KA(데이터))에 (KA)를 적용해 데이터를 드러낼 수 있기 때문에, (KA(데이터))를 획득하기 위해 (KS(KA(데이터)))를 (KS)로 복호화하는 저장 매체(24)라 하더라도 데이터를 볼 수 없다.
본 발명의 일 실시예에서, 애플리케이션(30)은 실제로, 컴퓨팅 장치(14)와 관련된 기존의 파일 시스템(42) 및 특히 그것의 확립된 '안전한 기입' 명령에 의해, 단계 507에서와 같이, (KS(KA(데이터)))를 오브젝트(26)와 관련된 안전한 저장 영역(28)에서의 저장을 위해 저장 매체(24)로 송신하며, 임의의 특별한 직접적 기입 또는 직접적 액세스 절차들을 이용하지 않는다. 이와 같이, 컴퓨팅 장치(14)의 파일 시스템(42)은 안전한 기입 명령을 수신하고 그에 따라 실행하는 것을 책임진다. 따라서, 애플리케이션(30)에, 임의의 특정 파일 시스템(42) 또는 저장 매체(24)에 대해 특정적인 임의의 특별한 직접적 기입 또는 직접적 액세스 절차들이 제공될 필요는 없으며, 그에 따라, 애플리케이션(30)은 몇몇의 파일 시스템들(42) 및 저장 매체들(24) 중 하나로 여기에서 기술된 방법을 이용할 수 있다. 본 발명의 다른 실시예에서, 애플리케이션(30)은 실제로, 기존의 파일 시스템(42) 및 파일 시스템(42)으로의 명령들과, 예를 들어, 소정 섹터 헤더(36)의 위치를 확인하기 위한 저장 매체(24)로의 직접적인 조회들의 조합에 의해, 단계 507에서와 같이, (KS(KA( 데이터)))를 저장 매체(24)로 송신한다.
다음으로는, 컴퓨팅 장치(14)의 파일 시스템(42)에 대해 확립된 안전한 기입 명령에 기초해, 안전한 기입 명령의 애플리케이션(30)이 (1) 그로부터 (KS(KA(데이터)))가 발견될 수 있는 버퍼 등과 같은 위치, (2) (KS(KA(데이터)))를 수신할 안전한 저장 영역(28)과 관련된 또는 관련될 오브젝트(26), 및 (3) (KS(KA(데이터)))의 길이를 실제로 식별한다. 다음으로는, 안전한 기입 명령을 사용해, 파일 시스템(42)이 (KS(KA(데이터)))를 찾아내고, 관련 오브젝트(26)의 식별 정보 및 저장 매체(24)가 식별된 오브젝트(26)와 관련된 안전한 저장 영역(28)에 (KA(데이터))를 기입하는 효과에 대한 통지와 더불어, (KS(KA(데이터)))를 가진 저장 매체(24)에 요청을 실제로 송신한다.
따라서, 이러한 요청의 수신시에, 저장 매체(24)는 (KS(KA(데이터)))를 (KS)로 복호화하여 (KA(데이터))를 획득하고(단계 509), 식별된 오브젝트(26)와 관련된 안전한 저장 영역(28)을 찾아내며(단계 511), 찾아낸 안전한 저장 영역(28)에 (KA(데이터))를 실제로 저장한다(단계 513). 상술한 바와 같이, 저장 매체(24)는 식별된 오브젝트(26)와 관련된 안전한 저장 영역(28)을 단계 511에서와 같이 룩업 테이블(38) 등에 기초해 찾아내거나, 간단하게, 식별된 오브젝트(26)의 섹터 헤더들(36)을 안전한 저장 영역(28)으로 이용할 수도 있다. 하지만, 어떤 경우에서든, 식별된 오브젝트(26)가 저장 매체(24)상에 아직 생성되지 않은 경우일 수도 있다는 것에 주의한다. 그런 경우, 저장 매체(24)는 적어도 식별된 오브젝트(26)의 더미 표현을 위치 보유자로서 생성한 다음 그것과 관련된 안전한 저장 영역(28)에 (KA( 데이터))를 저장하거나, 오브젝트(26)가 생성될 때까지 (KA(데이터))를 캐싱한 다음 (KA(데이터))를 오브젝트(26)와 관련된 안전한 저장 영역(28)에 저장할 수도 있다(단계 612). 알 수 있는 바와 같이, 전자의 경우, 더미 오브젝트(26)는 생성되었을 때 오브젝트(26)로 대체되고 안전한 저장 영역(28)과의 관련은 적절히 유지된다.
이제 도 6을 참조하면, 도 5에 나타낸 방식으로 애플리케이션(30)에 의해 저장 매체(24)에 기입된 데이터(즉, (KA(데이터)))가 다음의 방식으로 검색될 수 있다. 우선, 그리고 이번에도, 애플리케이션(30) 및 저장 매체(24)는, 대칭 세션 키 (KS)와 같은 공유 비밀을 확립하는 것에 의해, 그들 사이에 안전한 채널을 설정하고(단계 601), 애플리케이션(30)은 특정 오브젝트(26)와 관련된 안전한 저장 영역(28)으로부터 (KA(데이터))를 판독하기 위한 '안전한 판독' 명령을 송신한다(단계 603).
앞서와 유사하게, 단계 603에서와 같은, 애플리케이션(30)으로부터의 안전한 판독 명령은, 컴퓨팅 장치(14)와 관련된 기존의 파일 시스템(42) 및 특히 그것의 확립된 '안전한 판독' 명령에 의해 송신되고, 애플리케이션(30)은 역시 특별한 직접적 판독 또는 직접적 액세스 절차들을 이용하지 않는다. 따라서, 컴퓨팅 장치(14)의 파일 시스템(42)은 안전한 판독 명령을 수신하고 그것에 따라 동작하는 것을 책임진다. 따라서, 애플리케이션(30)에, 임의의 특정 파일 시스템(42) 또는 저장 매체(24)에 대해 특정적인 임의의 특별한 직접적 판독 또는 직접적 액세스 절차들이 제공될 필요는 없으며, 그에 따라, 애플리케이션(30)은 몇몇의 파일 시스템들 (42) 및 저장 매체들(24) 중 하나로 여기에서 기술된 방법을 이용할 수 있다. 다른 방법으로, 애플리케이션(30)은, 기존의 파일 시스템(42) 및 파일 시스템(42)으로의 명령들과, 예를 들어, 소정 섹터 헤더(36)의 위치를 확인하기 위한 저장 매체(24)로의 직접적인 조회들의 조합에 의해, 저장 매체(24)로부터 (KA(데이터))를 판독한다.
다음으로는, 컴퓨팅 장치(14)의 파일 시스템(42)에 대해 확립된 안전한 판독 명령에 기초해, 안전한 판독 명령의 애플리케이션(30)이 (1) (KA(데이터))를 포함하는 안전한 저장 영역과 관련된 오브젝트(26), (2) 버퍼 등과 같은, (KA(데이터))를 위한 목표 위치, 및 (3) 안전한 저장 영역내의 (KA(데이터))의 길이를 실제로 식별한다. 다음으로는, 안전한 판독 명령을 사용해, 저장 매체(24)가 식별된 오브젝트(26)와 관련된 안전한 저장 영역(28)으로부터 (KA(데이터))를 판독하는 효과에 대한 통지를 포함하여, 파일 시스템(42)은 식별된 관련 오브젝트(26)를 찾아내기 위한 요청을 저장 매체(24)로 송신한다.
따라서, 이러한 요청의 수신시에, 저장 매체(24)는 식별된 오브젝트(26)와 관련된 안전한 저장 영역(28)을 실제로 찾아내고(단계 605), 찾아낸 안전한 저장 영역(28)에서 (KA(데이터))를 검색하며(단계 607), (KA(데이터))를 (KS)로 암호화해 (KS(KA(데이터)))를 획득하고(단계 609), 요청에 응답해 (KS(KA(데이터)))를 파일 시스템(42)으로 리턴한다(단계 611). 역시, 저장 매체(24)는 식별된 오브젝트(26)와 관련된 안전한 저장 영역(28)을 단계 605에서와 같이 룩업 테이블(38) 등에 기초해 찾아내거나, 간단하게, 식별된 오브젝트(26)의 섹터 헤더들(36)을 안전한 저장 영역(28)으로 이용할 수도 있다.
그에 따라, 이러한 (KS(KA(데이터)))를 이용해, 파일 시스템(42)은 (KS(KA(데이터)))를 목표 위치에 저장한다(단계 613). 다음으로, 애플리케이션(30)은 (KS(KA(데이터)))에 (KS)를 적용해 (KA(데이터))를 획득하고(단계 615), (KA)를 획득해 (KA(데이터))에 (KA)를 적용함으로써 데이터를 획득한 다음(단계 617), 데이터를 적절하게 이용한다. 애플리케이션(30)은, 본 발명의 정신 및 범위를 벗어나지 않으면서, 어떤 소스로부터 그리고 어떤 방식으로든 (KA)를 획득할 수 있다는 것에 주의한다. 또한, 데이터를 이용함에 있어서, 애플리케이션(30)은 데이터를 변경할 수 있으며, 이 경우, 데이터는 역시 도 5와 관련하여 설명된 방법에 의해 오브젝트(26)와 관련된 안전한 저장 영역(28)에 저장될 수 있다는 것에 주의한다.
도 4에 나타낸 실시예와 관련하여, 그리고 본 발명의 다른 실시예로서 이제 도 7을 참조하면, 애플리케이션(30)은 저장 매체(24)상의 오브젝트(26)와 관련된 안전한 저장 영역(28)에 다음의 방식으로 데이터를 기입한다. 우선, 애플리케이션(30)과 저장 매체(24)는 이번에도 대칭 세션 키(KS)와 같은 공유 비밀을 확립하는 것에 의해 그들 사이에 안전한 채널을 설정한다(단계 701). 하지만, 여기에서는, 애플리케이션이, 상세히 후술되는 바와 같이, 키를 생성하기 위한 해시의 일부가 될 논스 또는 난수를 생성한 다음(단계 703), 세션 키 (KS)를 이용해 논스를 암호화하여 (KS(논스))를 얻는다(단계 705).
다음으로, 애플리케이션(30)은 안전한 저장 영역(28)과 관련된 또는 관련될 값 저장 영역(40)에서의 저장을 위해 이러한 (KS(논스))를 저장 매체(24)로 송신한 다(단계 707). 본 발명의 일 실시예에서, 애플리케이션(30)은 실제로, 컴퓨팅 장치(14)와 관련된 기존의 파일 시스템(42) 및 특히 그것의 확립된 '값 기입' 명령에 의해, 단계 707에서와 같이, (KS(논스))를 안전한 저장 영역(28)과 관련된 값 저장 영역(40)에서의 저장을 위해 저장 매체(24)로 송신하며, 임의의 특별한 직접적 기입 또는 직접적 액세스 절차들을 이용하지 않는다. 이와 같이, 컴퓨팅 장치(14)의 파일 시스템(42)은 값 기입 명령을 수신하고 그에 따라 실행하는 것을 책임진다. 따라서, 애플리케이션(30)에, 임의의 특정 파일 시스템(42) 또는 저장 매체(24) 특정적인 임의의 특별한 직접적 기입 또는 직접적 액세스 절차들이 제공될 필요는 없으며, 그에 따라, 애플리케이션(30)은 몇몇의 파일 시스템들(42) 및 저장 매체들(24) 중 하나로 여기에서 기술된 방법을 이용할 수 있다. 본 발명의 다른 실시예에서, 애플리케이션(30)은 실제로, 기존의 파일 시스템(42) 및 파일 시스템(42)으로의 명령들과, 예를 들어, 소정 섹터 헤더(36)의 위치를 확인하기 위한 저장 매체(24)로의 직접적 조회들의 조합에 의해, 단계 707에서와 같이, (KS(논스))를 오브젝트(26)와 관련된 안전한 저장 영역(28)에서의 저장을 위해 저장 매체(24)로 송신한다.
다음으로는, 컴퓨팅 장치(14)의 파일 시스템(42)에 대해 확립된 값 기입 명령에 기초해, 값 기입 명령의 애플리케이션(30)이 (1) 그로부터 (KS(논스))가 발견될 수 있는 버퍼 등과 같은 위치, (2) (KS(논스))를 수신할 값 저장 영역(40)과 관련된 또는 관련될 안전한 저장 영역(28), 및 (3) (KS(논스))의 길이를 실제로 식별한다. 다음으로는, 이러한 값 기입 명령을 사용해, 파일 시스템(42)이 (KS(논스)) 를 찾아내고, 관련된 안전한 저장 영역(28)의 식별 정보 및 저장 매체(24)가 식별된 안전한 저장 영역(28)과 관련된 값 저장 영역(40)에 논스를 기입하는 효과에 대한 통지와 더불어, (KS(논스))를 가진 저장 매체(24)에 요청을 실제로 송신한다.
따라서, 이러한 요청의 수신시에, 저장 매체(24)는 (KS(논스))를 (KS)로 복호화하여 논스를 획득하고(단계 709), 식별된 안전한 저장 영역(28)과 관련된 값 저장 영역(40)을 찾아내며(단계 711), 찾아낸 안전한 저장 영역(28)에 논스를 실제로 저장한다(단계 713). 상술된 바와 같이, 저장 매체(24)는 식별된 안전한 저장 영역(28)과 관련된 값 저장 영역(40)을 단계 711에서와 같이 룩업 테이블(38) 등에 기초해 찾아내거나, 간단하게, 식별된 안전한 저장 영역(28)의 섹터 헤더들(36)을 값 저장 영역(40)으로 이용할 수도 있다. 하지만, 어떤 경우에서든, 식별된 안전한 저장 영역(28)이 저장 매체(24)상에 아직 생성되지 않은 경우일 수도 있다는 것에 주의한다. 그런 경우, 저장 매체(24)는 적어도 식별된 안전한 저장 영역(28)의 더미 표현을 위치 보유자로서 생성한 다음 그것과 관련된 값 저장 영역(40)에 논스를 저장하거나, 안전한 저장 영역(28)이 생성될 때까지 논스를 캐싱한 다음 논스를 안전한 저장 영역(28)과 관련된 값 저장 영역(40)에 저장할 수도 있다(단계 712). 역시 알 수 있는 바와 같이, 전자의 경우, 더미의 안전한 저장 영역(28)은 생성되었을 때 안전한 저장 영역(28)로 대체되고 값 저장 영역(40)과의 관련은 적절히 유지된다.
상술된 바와 같이, 논스는 애플리케이션(30)에 의해 해시 키 (KH)를 생성하기 위한 해시의 일부로서 이용되는데, 이러한 해시 키 (KH)는 안전한 저장 영역 (28)에 저장될 데이터를 암호화하는데 이용된다. 명백하게, 그리고 단계 712와 관련하여 알 수 있는 바와 같이, 데이터의 암호화 및 안전한 저장 영역(28)에서의 저장은 논스가 값 저장 영역(40)에 저장된 전후에 발생할 수 있다. 그럼에도 불구하고, 어느 경우에서든, 프로세스가 동일하지는 않지만 실질적으로 유사하다. 특히, 본 발명의 일 실시예에서는, 안전한 저장 영역(28)에 저장될 데이터를 암호화하기 위해, 애플리케이션(30)이 소정 방식으로 논스와 데이터 키 (KA)를 조합하고 조합에 걸쳐 일방 해시(one-way hash)를 실행하여 해시 키 (KH)를 획득한 다음(단계 715), 해시 키 (KH)로 데이터를 암호화하여 (KH(데이터))를 얻는다(단계 717). 본 발명의 정신 및 범위를 벗어나지 않으면서, 임의의 기초에 근거하여 데이터 키 (KA)가 선택될 수 있다는 것에 주의한다. 예를 들어, 관련 오브젝트(26)가 컨텐츠 키 (KD)에 의해 암호화된 컨텐츠(12)라면, (KA)는 사실상 (KD)일 수 있다.
단계 717에서와 같이 (KH(데이터))를 생성한 다음, 애플리케이션(30)은, (KH(데이터))가 대응되는 값 저장 영역(40)의 논스와 관련되는 방식으로, (KH(데이터))를 안전한 저장 영역(28)에서의 저장을 위해 저장 매체(24)로 송신한다(단계 719). 안전한 저장 영역(28)이 단순히 저장 매체(24)상의 파일(32)일 경우, 이러한 송신 단계는 컴퓨팅 장치(14)의 파일 시스템(42)에 대한 표준 기입 명령으로 실현될 수 있다.
여기에서는, 도 7과 관련하여 설명된 방법이, 안전한 저장 영역(28)과 관련된 오브젝트(26)가 저장 매체(24)상에 존재하는 시기 또는 심지어 존재하는지의 여부에 의존하지 않는다는 것에 주의한다. 실제로, 오브젝트(26)는 안전한 저장 영 역(28)이 생성되기 전에, 생성되는 동안에, 또는 생성된 후에 생성될 수 있으며, 어떤 상황들에서는, 전혀 생성되지 않을 수도 있다.
또한, 도 7과 관련하여 설명된 방법에서는, 값 저장 영역(40)의 논스가 암호화될 필요가 없다는 것에 주의한다. 어쩌면, 안전한 저장 영역(28)의 기초적인 데이터를 보고자 하는 그리고/또는 변경하고자 하는 불법적 엔티티에 의해 이러한 논스가 획득될 수는 있겠지만, 불법적 엔티티는 단계 715에서와 같이 해시 키 (KH)를 생성하기 위해 논스로 해싱된 데이터 키 (KA)를 획득할 방법이 없으므로, 이러한 데이터를 드러내기 위해 (KH(데이터))에 (KH)를 적용할 수 없다.
또한, 도 7과 관련하여 설명된 방식으로 논스를 이용하는 것에 의해, 애플리케이션(30)은, 컴퓨팅 장치의 기존의 파일 시스템(42)에 대한 값 변경 명령에 의해, 단순히 값 저장 영역(40)의 논스를 상이한 값으로 대체하거나 업데이트하는 것에 의해 관련 오브젝트(26)의 사용을 종결할 수 있다. 알 수 있는 바와 같이, 값 저장 영역(40)의 논스 값을 변경하는 것에 의해, 변경된 논스는 단계 715에서 상이한 해시 키 (KH(x+1))를 생성할 것이므로, 관련된 안전한 저장 영역(28)의 데이터가 더 이상 액세스될 수 없으며, 상이한 해시 키 (KH(x+1))는 (KH(x))에 따라 암호화된 데이터를 복호화하지 않을 것이다. 또한, 알 수 있는 바와 같이, 이러한 데이터없이는, 관련된 오브젝트(26)가 액세스될 수 없다. 따라서, 관련 오브젝트(26)의 사용을 종결할 때, 애플리케이션(30)이 저장 매체(24)로부터 관련 오브젝트(26)를 물리적으로 삭제할 필요가 없는데, 오브젝트(26)가, 어쩌면 기가바이트 차수로, 아주 큰 경우에는 이것이 상당한 부담일 수도 있다.
이제 도 8을 참조하면, 도 7에 나타낸 방식으로 애플리케이션(30)에 의해 저장 매체(24)에 기입된 데이터(즉, (KH(데이터)))가 다음의 방식으로 검색될 수 있다. 우선, 그리고 이번에도, 애플리케이션(30) 및 저장 매체(24)는, 대칭 세션 키 (KS)와 같은 공유 비밀을 확립하는 것에 의해, 그들 사이에 안전한 채널을 설정하고(단계 801), 애플리케이션(30)은 소정의 안전한 저장 영역(28)와 관련된 값 저장 영역(40)으로부터 논스를 판독하기 위한 '값 판독' 명령을 송신한다(단계 803).
앞서와 유사하게, 단계 803에서와 같은, 애플리케이션(30)으로부터의 값 판독 명령은, 컴퓨팅 장치(14)와 관련된 기존의 파일 시스템(42) 및 특히 그것의 확립된 '값 판독' 명령에 의해 송신되고, 애플리케이션(30)은 역시 특별한 직접적 판독 또는 직접적 액세스 절차들을 이용하지 않는다. 따라서, 컴퓨팅 장치(14)의 파일 시스템(42)이 값 판독 명령을 수신하고 그것에 따라 동작하는 것을 책임진다. 따라서, 애플리케이션(30)에, 임의의 특정 파일 시스템(42) 또는 저장 매체(24)에 대해 특정적인 임의의 특별한 직접적 판독 또는 직접적 액세스 절차들이 제공될 필요는 없으며, 그에 따라, 애플리케이션(30)은 몇몇의 파일 시스템들(42) 및 저장 매체들(24) 중 하나로 여기에서 기술된 방법을 이용할 수 있다. 본 발명의 다른 실시예에서, 애플리케이션(30)은, 기존의 파일 시스템(42) 및 파일 시스템(42)으로의 명령들과, 예를 들어, 소정 섹터 헤더(36)의 위치를 확인하기 위한 저장 매체(24)로의 직접적인 조회들의 조합에 의해, 저장 매체(24)로부터 (KA(데이터))를 판독한다.
다음으로는, 컴퓨팅 장치(14)의 파일 시스템(42)에 대해 확립된 값 판독 명 령에 기초해, 값 판독 명령의 애플리케이션(30)이 (1) 논스를 포함하는 값 저장 영역(40)과 관련된 안전한 저장 영역(28), (2) 버퍼 등과 같은, 논스를 위한 목표 위치, 및 (3) 값 저장 영역(40)내의 논스의 길이를 실제로 식별한다. 다음으로는, 값 판독 명령을 사용해, 파일 시스템(42)이, 저장 매체(24)가 식별된 안전한 저장 영역(28)와 관련된 값 저장 영역(40)으로부터 논스를 판독하는 효과에 대한 통지를 포함하여, 식별된 관련 안전한 저장 영역(28)을 찾아내기 위한 요청을 저장 매체(24)로 송신한다.
따라서, 이러한 요청의 수신시에, 저장 매체(24)는 식별된 안전한 저장 영역(28)와 관련된 값 저장 영역(40)을 실제로 찾아내고(단계 805), 찾아낸 값 저장 영역(40)에서 논스를 검색하며(단계 807), 논스를 (KS)로 암호화해 (KS(논스)))를 획득하고(단계 809), 요청에 응답해 (KS(논스))를 파일 시스템(42)으로 리턴한다(단계 811). 역시, 저장 매체(24)는 식별된 안전한 저장 영역(28)과 관련된 값 저장 영역(40)을 단계 805에서와 같이 룩업 테이블(38) 등에 기초해 찾아내거나, 간단하게, 식별된 안전한 저장 영역(28)의 섹터 헤더들(36)을 값 저장 영역(40)으로 이용할 수도 있다.
그에 따라, 이러한 (KS(논스))를 이용해, 파일 시스템(42)은 (KS(논스))를 목표 위치에 저장한다(단계 813). 다음으로, 애플리케이션(30)은 (KS(논스))에 (KS)를 적용해 논스를 획득하고(단계 815), (KA)를 획득해 논스와 (KA)를 소정 방식으로 조합하고 조합에 대해 일방 해시를 실행하여 해시 키 (KH)를 획득하며(단계 817), 저장 매체(24)상의 안전한 저장 영역(28)으로부터 (KH(데이터))를 검색하고, 해시 키 (KH)를 이용해 (KH(데이터))를 복호화함으로써 데이터를 획득한 다음(단계 821), 데이터를 적절하게 이용한다.
앞서와 유사하게, 안전한 저장 영역(28)이 단순히 저장 매체(24)상의 파일(32)일 경우, 애플리케이션(30)은 컴퓨팅 장치(14)의 파일 시스템(42)에 대한 표준 판독 명령에 의해 단계 819에서와 같이 저장 매체(24)로부터 (KH(데이터))를 검색할 수 있다. 또한, 앞서와 유사하게, 도 8과 관련하여 설명된 방법은, 안전한 저장 영역(28)과 관련된 오브젝트(26)가 저장 매체(24)상에 존재하는 시기 또는 심지어 존재하는지의 여부에 의존하지 않는다.
도 3, 도 5, 및 도 6에 나타낸 본 발명의 제 1 변형과 도 4, 도 7, 및 도 8에 나타낸 제 2 변형을 비교할 경우, 제 1 변형은, 안전한 저장 영역(28)을 위한 저장 영역의 양이 오브젝트(26)의 파일들(34)에 대한 섹터 헤더들(28)로부터 이용 가능한 공간으로 한정된다는 점에서, 제한적이며, 이러한 제 1 변형은 실제로 오브젝트(26)의 존재를 필요로 한다는 것을 알 수 있을 것이다. 그에 비해, 제 2 변형은, 안전한 저장 영역(28)이 관련 오브젝트(26)의 파일과는 별개의 파일 또는 파일들(34)이기 때문에, 그렇게 제한적이지 않다. 그러나, 이러한 변형에서는, 안전한 저장 영역(28)을 보호하기 위해, 추가적인 항목으로서 논스가 이용되고, 따라서 안전한 저장 영역(28)과 관련된 값 저장 영역(40)에 저장된다. 값 저장 영역(40)을 위한 저장 영역의 양은 안전한 저장 영역(28)의 파일들(34)에 대한 섹터 헤더들(28)로부터 이용 가능한 공간으로 한정되지만, 논스는, 128 바이트 또는 1 킬로바이트 등의 차수인, 작은 공간량만을 필요로 하기 때문에, 이러한 한정은 제한적인 것으로 생각되지 않는다.
본 발명의 어떤 변형에서든, 비-신뢰 애플리케이션이, 안전한 저장 영역(28) 및/또는 값 저장 영역(40)을 위해 유보해 둔 저장 매체(24)의 영역들에 데이터를 기입하고 그러한 영역들로부터 데이터를 판독하는 것이 가능할 수 있다는 것에 주의한다. 그러나, 중요한 것은, 비-신뢰 애플리케이션이 안전한 저장 영역(28)에 안전하게 저장되어 있는 데이터를 암호화되지 않은 형태로 복구할 수는 없다는 것이다. 알 수 있는 바와 같이, 비-신뢰 애플리케이션이 안전한 저장 영역(28)으로부터 암호화된 데이터를 판독할 수는 있지만, 판독된 데이터가, 아마도 키 (KA)로의 액세스를 갖고 있지 않을 비-신뢰 애플리케이션에 의해 복호화될 수는 없다.
결론
본 발명과 관련하여 수행되는 프로세스들을 실시하는데 필요한 프로그래밍은 비교적 간단하고 당업자들에게는 명백할 것이다. 따라서, 여기에 프로그래밍을 첨부하지는 않는다. 본 발명의 정신 및 범위를 벗어나지 않으면서, 임의의 소정 프로그래밍이 본 발명을 실시하는데 이용될 수 있다.
상기 설명으로, 본 발명이, 컴퓨팅 장치(14)와 관련된 저장 매체(24)상에 안전한 저장 영역(28)을 확립하는 것을 가능하게 하는 새롭고 유용한 시스템을 구비한다는 것을 알 수 있는데, 이 경우, 안전한 저장 영역(28)은 저장 매체(24)상에 저장된 오브젝트(26)이거나 오브젝트(26)와 관련될 수 있고, 안전한 저장 영역(28)은 컴퓨팅 장치(14)상의 신뢰 애플리케이션(30)에 의해서만 기입되고 판독될 수 있다. 컴퓨팅 장치(14)는 기존의 파일 시스템(42)에 의해 저장 매체(24)상에 파일들 을 조직하며 저장하고, 본 시스템 및 방법은 컴퓨팅 장치(14)상의 기존의 파일 시스템(42)을 이용해 안전한 저장 영역(28)에 데이터를 기입하고 그로부터 데이터를 판독한다.
또한, 본 시스템 및 방법은 컴퓨팅 장치(14)상의 기존의 파일 시스템(42)이나 기존의 파일 시스템(42)과 저장 매체(24)로의 직접적인 명령들의 조합을 이용해 안전한 저장 영역(28)에 데이터를 기입하고 그로부터 데이터를 판독한다. 이러한 경우, 애플리케이션(30)은, 필요하다면, 안전한 저장 영역(28) 또는 오브젝트(26)에 관련된 파일(32)에 섹터들(34)을 할당할 것을 파일 시스템(42)에 요청하고, 할당된 섹터들(34)의 식별 정보를 요청한다. 그 다음, 애플리케이션(30)은, 섹터들(34) 또는 그것의 헤더들(36)에 대한 식별 정보 및 그곳에 기입될 또는 그곳으로부터 판독된 데이터를 포함하여, 안전한 기입, 안전한 판독, 값 기입, 또는 값 판독 명령과 유사한 명령을 저장 매체(24)로 송신한다. 따라서, 상기한 안전한 명령들을 지원하지 않는 기존의 파일 시스템(42)이 변경없이 이용될 수 있다.
본 발명의 발명 개념들을 벗어나지 않으면서, 상술된 실시예들에 대한 변경들이 이루어질 수 있다는 것을 알 수 있어야 한다. 일반적으로는, 본 발명이 개시된 특정 실시예들에 한정되지 않으며, 첨부된 청구항들에 의해 정의되는 바와 같은, 본 발명의 정신 및 범위내의 변경들을 포함한다는 것을 알 수 있어야 한다.
따라서, 본 발명에 따르면, 컴퓨팅 장치(14)와 관련된 저장 매체(24)상에, 매체(24)상에 저장되어 있는 오브젝트와 관련되며 컴퓨팅 장치(14)상의 신뢰 애플 리케이션에 의해서만 기입되거나 판독될 수 있는, 안전한 저장 영역을 확립할 수 있는 시스템 및 방법이 제공된다. 또한, 본 발명에 따르면, 컴퓨팅 장치(14)가 기존의 파일 시스템에 의해 저장 매체(24)상의 파일들을 조직하고 저장할 수 있으며, 컴퓨팅 장치(14)상의 기존의 파일 시스템에 의해 안전한 저장 영역에 데이터를 기입하고 그로부터 데이터를 판독할 수 있는, 시스템 및 방법이 제공된다.
Claims (52)
- 컴퓨팅 장치상의 애플리케이션이 상기 컴퓨팅 장치와 관련된 저장 매체에, 상기 저장 매체상의 오브젝트와 관련된 안전한 저장 영역에 기입될, 데이터를 기입하는 방법으로서,상기 애플리케이션 및 상기 저장 매체가 공유 비밀로서 세션 키(KS)를 확립하는 단계;상기 애플리케이션이 데이터 키(KA)를 선택하고 (KA(데이터))를 얻기 위해 상기 데이터 키(KA)로 상기 데이터를 보호하는 단계;상기 애플리케이션이 (KS(KA(데이터)))를 얻기 위해 상기 세션 키(KS)로 상기 (KA(데이터))를 암호화하고 상기 (KS(KA(데이터)))를 상기 저장 매체로 송신하는 단계; 및상기 저장 매체가 상기 (KS(KA(데이터)))를 수신하고 (KA(데이터))를 얻기 위해 상기 (KS(KA(데이터)))를 상기 (KS)로 복호화하며, 상기 오브젝트와 관련된 안전한 저장 영역을 찾아내고, 찾아낸 안전한 저장 영역에 상기 (KA(데이터))를 저장하는 단계를 구비하는 방법.
- 제 1 항에 있어서,상기 애플리케이션이, 상기 컴퓨팅 장치와 관련된 기존의 파일 시스템 및 그것에 관한 확립된 '안전한 기입' 명령에 의해, 상기 저장 매체로 상기 (KS(KA(데이 터)))를 송신하는 단계를 구비하는 방법.
- 제 2 항에 있어서,상기 애플리케이션이, 상기 안전한 기입 명령에 의해, 그로부터 상기 (KS(KA(데이터)))가 발견될 수 있는 위치 및 상기 (KS(KA(데이터)))를 수신할 상기 안전한 저장 영역과 관련된 또는 관련될 오브젝트를 식별하는 단계를 구비하고,상기 파일 시스템이 상기 (KS(KA(데이터)))를 찾아내고 상기 (KS(KA(데이터))) 및 상기 관련된 오브젝트의 식별 정보를 가진 저장 매체에 요청을 송신하고, 상기 저장 매체는 상기 식별된 오브젝트와 관련된 안전한 저장 영역에 상기 (KA(데이터))를 기입하는 단계를 더 구비하는 방법.
- 제 1 항에 있어서,상기 저장 매체가 룩업 테이블에 기초해 상기 오브젝트와 관련된 안전한 저장 영역을 찾아내는 단계를 구비하는 방법.
- 제 1 항에 있어서,상기 오브젝트는 상기 저장 매체상의 하나 이상의 섹터상에 저장되어 있는 하나 이상의 파일을 구비하고,상기 섹터는 상기 저장 매체상에 섹터 헤더를 포함하며,상기 방법은,상기 저장 매체가 상기 오브젝트와 관련된 안전한 저장 영역을 상기 오브젝트의 파일에 대한 섹터의 섹터 헤더로서 찾아내는 단계를 구비하는 방법.
- 제 1 항에 있어서,상기 오브젝트와 관련된 안전한 저장 영역을 찾아내는 단계는, 상기 저장 매체가, 상기 오브젝트가 상기 저장 매체상에 아직 생성되지 않았다는 것을 판정하고, 상기 오브젝트에 대한 더미 표현을 위치 보유자로서 생성하는 것 및 상기 오브젝트가 생성될 때까지 상기 (KA(데이터))를 캐싱하는 것 중 하나를 수행하는 단계를 구비하는 방법.
- 제 1 항에 있어서,상기 애플리케이션 및 상기 저장 매체가 공유 비밀로서 세션 키(KS)를 확립하는 단계;상기 애플리케이션이 상기 오브젝트와 관련된 안전한 저장 영역으로부터 상기 (KA(데이터))를 요청하는 단계;상기 저장 매체가 상기 안전한 저장 영역으로부터 상기 (KA(데이터))를 검색하고, 상기 (KS(KA(데이터)))를 얻기 위해 상기 (KA(데이터))를 상기 (KS)로 암호화하며, 상기 (KS(KA(데이터)))를 리턴하는 단계; 및상기 애플리케이션이 상기 (KS(KA(데이터)))를 수신하고, 상기 (KA(데이터))를 얻기 위해 상기 (KS(KA(데이터)))에 상기 (KS)를 적용하며, 상기 데이터를 얻기 위해, 상기 (KA)를 획득하고 상기 (KA(데이터))에 상기 (KA)를 적용하는 단계에 의해, 상기 저장된 데이터를 판독하는 단계를 더 구비하는 방법.
- 제 7 항에 있어서,상기 애플리케이션이, 상기 컴퓨팅 장치와 관련된 기존의 파일 시스템 및 그것에 관한 확립된 '안전한 판독' 명령에 의해, 상기 (KA(데이터))를 요청하는 단계를 구비하는 방법.
- 제 8 항에 있어서,상기 애플리케이션이, 상기 안전한 판독 명령에 의해, 상기 오브젝트 및 상기 (KA(데이터))를 위한 수신 위치를 식별하는 단계를 구비하고,상기 파일 시스템이 상기 식별된 오브젝트를 찾아내기 위한 요청을 상기 저장 매체로 송신하는 단계; 및상기 저장 매체는 상기 식별된 오브젝트와 관련된 안전한 저장 영역으로부터 상기 (KA(데이터))를 판독하는 단계를 더 구비하는 방법.
- 제 1 항에 있어서,상기 애플리케이션이 상기 데이터 키(KA)를 선택하고 상기 (KA(데이터))를 얻기 위해 상기 데이터 키(KA)로 상기 데이터를 암호화하는 단계를 구비하는 방법.
- 컴퓨팅 장치상의 애플리케이션이 상기 컴퓨팅 장치와 관련된 저장 매체에, 상기 저장 매체상의 오브젝트와 관련된 안전한 저장 영역으로서, 상기 저장 매체상에 자신과 관련된 값 저장 영역을 갖는 상기 안전한 저장 영역에 기입될, 데이터를 기입하는 방법으로서,상기 애플리케이션 및 상기 저장 매체가 공유 비밀로서 세션 키 (KS)를 확립하는 단계;상기 애플리케이션이 논스를 생성하고 (KA(논스))를 얻기 위해 상기 세션 키 (KS)를 이용해 상기 논스를 암호화하는 단계;상기 애플리케이션이 상기 (KS(논스))를 상기 저장 매체로 송신하는 단계;상기 저장 매체가 상기 (KS(논스))를 수신하고 상기 논스를 얻기 위해 상기 (KS(논스))를 상기 (KS)로 복호화하며, 상기 안전한 저장 영역과 관련된 값 저장 영역을 찾아내고, 찾아낸 값 저장 영역에 상기 논스를 저장하는 단계; 및상기 애플리케이션이 상기 논스를 이용해 키 (KH)를 생성하고, (KH(데이터))를 얻기 위해 상기 (KH)로 상기 데이터를 보호하며, 상기 안전한 저장 영역에서의 저장을 위해 상기 (KH(데이터))를 상기 저장 매체로 송신하는 것에 의해, 상기 (KH(데이터))를 상기 값 저장 영역의 상기 논스와 관련짓는 단계를 구비하는 방법.
- 제 11 항에 있어서,상기 애플리케이션이 상기 논스와 데이터 키 (KA)를 소정 방식으로 조합하고 상기 키 (KH)를 얻기 위해 상기 조합에 대해 일방 해시를 실행하는 단계를 구비하 는 방법.
- 제 11 항에 있어서,상기 애플리케이션이, 상기 컴퓨팅 장치와 관련된 기존의 파일 시스템 및 그것에 관한 확립된 '값 기입' 명령에 의해, 상기 (KS(논스))를 상기 저장 매체로 송신하는 단계를 구비하는 방법.
- 제 13 항에 있어서,상기 애플리케이션이, 상기 값 기입 명령에 의해, 그로부터 상기 (KS(논스))가 발견될 수 있는 위치 및 상기 (KS(논스))를 수신할 상기 값 저장 영역과 관련된 또는 관련될 안전한 저장 영역을 식별하는 단계를 구비하고,상기 파일 시스템이 상기 (KS(논스))를 찾아내고 상기 (KS(논스)) 및 상기 관련된 안전한 저장 영역의 식별 정보를 가진 저장 매체에 요청을 송신하며, 상기 저장 매체는 상기 식별된 안전한 저장 영역과 관련된 값 저장 영역에 상기 논스를 기입하는 단계를 더 구비하는 방법.
- 제 11 항에 있어서,상기 저장 매체가 룩업 테이블에 기초해 상기 안전한 저장 영역과 관련된 값 저장 영역을 찾아내는 단계를 구비하는 방법.
- 제 11 항에 있어서,상기 안전한 저장 영역은 상기 저장 매체상의 하나 이상의 섹터상에 저장되어 있는 하나 이상의 파일을 구비하고,상기 섹터는 상기 저장 매체상에 섹터 헤더를 포함하며,상기 방법은,상기 저장 매체가 상기 안전한 저장 영역과 관련된 값 저장 영역을 상기 안전한 저장 영역의 파일에 대한 섹터의 섹터 헤더로서 찾아내는 단계를 구비하는 방법.
- 제 11 항에 있어서,상기 안전한 저장 영역과 관련된 값 저장 영역을 찾아내는 단계는 상기 저장 매체가 상기 안전한 저장 매체가 상기 저장 매체상에 아직 생성되지 않았다는 것을 판정하고 상기 안전한 저장 영역에 대한 더미 표현을 위치 보유자로서 생성하는 것 및 상기 안전한 저장 영역이 생성될 때까지 상기 논스를 캐싱하는 것 중 하나를 수행하는 단계를 구비하는 방법.
- 제 11 항에 있어서,상기 애플리케이션 및 상기 저장 매체가 공유 비밀로서 세션 키(KS)를 확립하는 단계;상기 애플리케이션이 상기 안전한 저장 영역과 관련된 값 저장 영역으로부터 상기 논스를 요청하는 단계;상기 저장 매체가 상기 값 저장 영역으로부터 상기 논스를 검색하고, 상기 (KS(논스))를 얻기 위해 상기 논스를 상기 (KS)로 암호화하며, 상기 (KS(논스))를 리턴하는 단계;상기 애플리케이션이 상기 (KS(논스))를 수신하고, 상기 논스를 얻기 위해 상기 (KS(논스))에 상기 (KS)를 적용하는 단계; 및상기 애플리케이션이 상기 논스를 이용해 상기 키 (KH)를 생성하고, 상기 저장 매체상의 상기 안전한 저장 영역으로부터 상기 (KH(데이터))를 검색하며, 상기 데이터를 얻기 위해, 상기 키 (KH)를 적용해 상기 (KH(데이터))를 복호화하는 단계에 의해, 상기 저장된 데이터를 판독하는 단계를 더 구비하는 방법.
- 제 18 항에 있어서,상기 애플리케이션이, 상기 컴퓨팅 장치와 관련된 기존의 파일 시스템 및 그것에 관한 확립된 '값 판독' 명령에 의해, 상기 논스를 요청하는 단계를 구비하는 방법.
- 제 19 항에 있어서,상기 애플리케이션이, 상기 값 판독 명령에 의해, 상기 안전한 저장 영역 및 상기 논스를 위한 수신 위치를 식별하는 단계를 구비하고,상기 파일 시스템이 상기 식별된 안전한 저장 영역을 찾아내기 위한 요청을 상기 저장 매체로 송신하는 단계; 및상기 저장 매체가 상기 식별된 안전한 저장 영역과 관련된 값 저장 영역으로부터 상기 논스를 판독하는 단계를 더 구비하는 방법.
- 제 11 항에 있어서,상기 값 저장 영역의 상기 논스를 상이한 값으로 대체하는 것에 의해, 상기 안전한 저장 영역에서의 상기 데이터 사용을 종결짓는 단계를 더 구비하는 방법.
- 컴퓨팅 장치상의 애플리케이션이 상기 컴퓨팅 장치와 관련된 저장 매체로부터 데이터를 판독하는 방법으로서,상기 데이터는 상기 저장 매체상의 오브젝트와 관련된 안전한 저장 영역의 상기 저장 매체상에 존재하고, 상기 안전한 저장 영역은 자신과 관련된 상기 저장 매체상에 값 저장 영역을 가지며, 상기 저장 매체는 상기 값 저장 영역에 논스를 저장하고, 상기 논스는 키 (KH)를 생성하는데 이용되며, 상기 데이터는 (KH(데이터))를 얻기 위해 상기 (KH)로 보호되고 상기 안전한 저장 영역의 상기 (KH(데이터))가 상기 값 저장 영역의 상기 논스와 관련되도록 상기 안전한 저장 영역에 상기 (KH(데이터))로서 저장되며,상기 방법은,상기 애플리케이션 및 상기 저장 매체가 공유 비밀로서 세션 키(KS)를 확립하는 단계;상기 애플리케이션이 상기 안전한 저장 영역과 관련된 값 저장 영역으로부터 상기 논스를 요청하는 단계;상기 저장 매체가 상기 값 저장 영역으로부터 상기 논스를 검색하고, (KS(논스))를 얻기 위해 상기 논스를 상기 (KS)로 암호화하며, 상기 (KS(논스))를 리턴하는 단계;상기 애플리케이션이 상기 (KS(논스))를 수신하고, 상기 논스를 얻기 위해 상기 (KS(논스))에 상기 (KS)를 적용하는 단계; 및상기 애플리케이션이 상기 논스를 이용해 상기 키 (KH)를 생성하고, 상기 저장 매체상의 상기 안전한 저장 영역으로부터 상기 (KH(데이터))를 검색하며, 상기 데이터를 얻기 위해, 상기 키 (KH)를 적용해 상기 (KH(데이터))를 복호화하는 단계를 구비하는 방법.
- 제 22 항에 있어서,상기 애플리케이션이, 상기 컴퓨팅 장치와 관련된 기존의 파일 시스템 및 그것에 관한 확립된 '값 판독' 명령에 의해, 상기 논스를 요청하는 단계를 구비하는 방법.
- 제 23 항에 있어서,상기 애플리케이션이, 상기 값 판독 명령에 의해, 상기 안전한 저장 영역 및 상기 논스를 위한 수신 위치를 식별하는 단계를 구비하고,상기 파일 시스템이 상기 식별된 안전한 저장 영역을 찾아내기 위한 요청을 상기 저장 매체로 송신하는 단계; 및상기 저장 매체가 상기 식별된 안전한 저장 영역과 관련된 값 저장 영역으로부터 상기 논스를 판독하는 단계를 더 구비하는 방법.
- 컴퓨팅 장치상의 애플리케이션이 상기 컴퓨팅 장치와 관련된 저장 매체로부터 데이터를 판독하는 방법으로서,상기 데이터는 상기 저장 매체상의 오브젝트와 관련된 안전한 저장 영역의 상기 저장 매체상에 존재하고, 상기 안전한 저장 영역의 상기 데이터는 (KA(데이터))를 얻기 위해 (KA)로 보호되어 상기 안전한 저장 영역의 상기 (KA(데이터))가 상기 오브젝트와 관련되도록 상기 안전한 저장 영역에 상기 (KA(데이터))로서 저장되며,상기 방법은,상기 애플리케이션 및 상기 저장 매체가 공유 비밀로서 세션 키(KS)를 확립하는 단계;상기 애플리케이션이 상기 오브젝트와 관련된 안전한 저장 영역으로부터 상기 (KA(데이터))를 요청하는 단계;상기 저장 매체가 상기 안전한 저장 영역으로부터 상기 (KA(데이터))를 검색하고, 상기 (KS(KA(데이터)))를 얻기 위해 상기 (KA(데이터))를 상기 (KS)로 암호화하며, 상기 (KS(KA(데이터)))를 리턴하는 단계; 및상기 애플리케이션이 상기 (KS(KA(데이터)))를 수신하고, 상기 (KA(데이터))를 얻기 위해 상기 (KS(KA(데이터)))에 상기 (KS)를 적용하며, 상기 데이터를 얻기 위해, 상기 (KA)를 획득하고 상기 (KA(데이터))에 상기 (KA)를 적용하는 단계를 구비하는 방법.
- 제 25 항에 있어서,상기 애플리케이션이, 상기 컴퓨팅 장치와 관련된 기존의 파일 시스템 및 그것에 관한 확립된 '안전한 판독' 명령에 의해, 상기 (KA(데이터))를 요청하는 단계를 구비하는 방법.
- 제 26 항에 있어서,상기 애플리케이션이, 상기 안전한 판독 명령에 의해, 상기 오브젝트 및 상기 (KA(데이터))를 위한 수신 위치를 식별하는 단계를 구비하고,상기 파일 시스템이 상기 식별된 오브젝트를 찾아내기 위한 요청을 상기 저장 매체로 송신하는 단계; 및상기 저장 매체는 상기 식별된 오브젝트와 관련된 안전한 저장 영역으로부터 상기 (KA(데이터))를 판독하는 단계를 더 구비하는 방법.
- 컴퓨팅 장치상의 애플리케이션이 상기 컴퓨팅 장치와 관련된 저장 매체에, 상기 저장 매체상의 오브젝트와 관련된 안전한 저장 영역에 기입될, 데이터를 기입 하는 방법으로서,상기 애플리케이션이 상기 데이터 및 상기 오브젝트의 식별 정보를 가진 요청을 송신하는 단계; 및상기 저장 매체가 상기 데이터 및 상기 오브젝트의 식별 정보를 수신하고, 상기 오브젝트와 관련된 안전한 저장 영역을 찾아내며, 찾아낸 안전한 저장 영역에 상기 데이터를 저장하는 단계를 구비하는 방법.
- 제 28 항에 있어서,상기 애플리케이션이 안전한 통신 채널에 의해 상기 데이터를 송신하는 단계를 구비하는 방법.
- 제 28 항에 있어서,상기 애플리케이션이, 상기 컴퓨팅 장치와 관련된 기존의 파일 시스템 및 그것에 관한 확립된 '안전한 판독' 명령에 의해, 상기 데이터를 상기 저장 매체로 송신하는 단계를 구비하는 방법.
- 제 28 항에 있어서,상기 저장 매체가 룩업 테이블에 기초해 상기 오브젝트와 관련된 안전한 저장 영역을 찾아내는 단계를 구비하는 방법.
- 제 28 항에 있어서,상기 오브젝트는 상기 저장 매체상의 하나 이상의 섹터상에 저장되어 있는 하나 이상의 파일을 구비하고,상기 섹터는 상기 저장 매체상에 섹터 헤더를 포함하며,상기 방법은,상기 저장 매체가 상기 오브젝트와 관련된 안전한 저장 영역을 상기 오브젝트의 파일에 대한 섹터의 섹터 헤더로서 찾아내는 단계를 구비하는 방법.
- 제 28 항에 있어서,상기 오브젝트와 관련된 안전한 저장 영역을 찾아내는 단계는 상기 저장 매체가 상기 오브젝트가 상기 저장 매체상에 아직 생성되지 않았다는 것을 판정하고 상기 오브젝트에 대한 더미 표현을 위치 보유자로서 생성하는 것 및 상기 오브젝트가 생성될 때까지 상기 (KA(데이터))를 캐싱하는 것 중 하나를 수행하는 단계를 구비하는 방법.
- 제 28 항에 있어서,상기 애플리케이션이 상기 오브젝트의 식별 정보를 가진 요청을 송신하는 단계; 및상기 저장 매체가 상기 오브젝트의 식별 정보를 수신하고, 상기 오브젝트와 관련된 안전한 저장 영역을 찾아내며, 상기 안전한 저장 영역으로부터 상기 데이터 를 검색하고, 상기 데이터를 상기 애플리케이션으로 리턴하는 단계에 의해, 상기 저장된 데이터를 판독하는 단계를 더 구비하는 방법.
- 제 34 항에 있어서,상기 애플리케이션이, 상기 컴퓨팅 장치와 관련된 기존의 파일 시스템 및 그것에 관한 확립된 '안전한 판독' 명령에 의해, 상기 데이터를 요청하는 단계를 구비하는 방법.
- 제 28 항에 있어서,상기 애플리케이션이 데이터 키 (KA)를 선택하고, (KA(데이터))를 상기 저장 매체로 송신하기 전에, 상기 (KA(데이터))를 얻기 위해 상기 데이터를 상기 (KA(데이터))로 암호화하는 단계를 구비하는 방법.
- 컴퓨팅 장치상의 애플리케이션이 상기 컴퓨팅 장치와 관련된 저장 매체에, 상기 저장 매체상의 오브젝트와 관련된 안전한 저장 영역으로서, 상기 저장 매체상에 자신과 관련된 값 저장 영역을 갖는 상기 안전한 저장 영역에 기입될, 데이터를 기입하는 방법으로서,상기 애플리케이션이 논스를 생성하고 상기 논스 및 상기 안전한 저장 영역의 식별 정보를 가진 요청을 송신하는 단계;상기 저장 매체가 상기 논스 및 상기 안전한 저장 영역의 식별 정보를 수신 하고, 상기 안전한 저장 영역과 관련된 값 저장 영역을 찾아내며, 찾아낸 값 저장 영역에 상기 논스를 저장하는 단계; 및상기 애플리케이션이 상기 논스를 이용해 키 (KH)를 생성하고, (KH(데이터))를 얻기 위해 상기 (KH)로 상기 데이터를 보호하며, 상기 안전한 저장 영역에서의 저장을 위해 상기 (KH(데이터))를 상기 저장 매체로 송신하는 것에 의해, 상기 (KH(데이터))를 상기 값 저장 영역의 상기 논스와 관련짓는 단계를 구비하는 방법.
- 제 37 항에 있어서,상기 애플리케이션이 안전한 통신 채널에 의해 상기 논스를 송신하는 단계를 구비하는 방법.
- 제 37 항에 있어서,상기 애플리케이션이 상기 논스와 데이터 키 (KA)를 소정 방식으로 조합하고 상기 키 (KH)를 얻기 위해 상기 조합에 대해 일방 해시를 실행하는 단계를 구비하는 방법.
- 제 37 항에 있어서,상기 애플리케이션이, 상기 컴퓨팅 장치와 관련된 기존의 파일 시스템 및 그것에 관한 확립된 '값 기입' 명령에 의해, 상기 논스를 상기 저장 매체로 송신하는 단계를 구비하는 방법.
- 제 37 항에 있어서,상기 저장 매체가 룩업 테이블에 기초해 상기 안전한 저장 영역과 관련된 값 저장 영역을 찾아내는 단계를 구비하는 방법.
- 제 37 항에 있어서,상기 안전한 저장 영역은 상기 저장 매체상의 하나 이상의 섹터상에 저장되어 있는 하나 이상의 파일을 구비하고,상기 섹터는 상기 저장 매체상에 섹터 헤더를 포함하며,상기 방법은,상기 저장 매체가 상기 안전한 저장 영역과 관련된 값 저장 영역을 상기 안전한 저장 영역의 파일에 대한 섹터의 섹터 헤더로서 찾아내는 단계를 구비하는 방법.
- 제 37 항에 있어서,상기 안전한 저장 영역과 관련된 값 저장 영역을 찾아내는 단계는 상기 저장 매체가 상기 안전한 저장 매체가 상기 저장 매체상에 아직 생성되지 않았다는 것을 판정하고 상기 안전한 저장 영역에 대한 더미 표현을 위치 보유자로서 생성하는 것 및 상기 안전한 저장 영역이 생성될 때까지 상기 논스를 캐싱하는 것 중 하나를 수행하는 단계를 구비하는 방법.
- 제 37 항에 있어서,상기 애플리케이션이 상기 안전한 저장 영역의 식별 정보를 가진 요청을 송신하는 단계;상기 저장 매체가 상기 안전한 저장 영역의 식별 정보를 수신하고, 상기 오브젝트와 관련된 값 저장 영역을 찾아내며, 상기 값 저장 영역으로부터 상기 논스를 검색하고, 상기 논스를 상기 애플리케이션으로 리턴하는 단계; 및상기 애플리케이션이 상기 논스를 이용해 상기 키 (KH)를 생성하고, 상기 저장 매체상의 상기 안전한 저장 영역으로부터 상기 (KH(데이터))를 검색하며, 상기 데이터를 얻기 위해, 상기 (KH(데이터))에 상기 키 (KH)를 적용하는 단계에 의해, 상기 저장된 데이터를 판독하는 단계를 더 구비하는 방법.
- 제 44 항에 있어서,상기 애플리케이션이, 상기 컴퓨팅 장치와 관련된 기존의 파일 시스템 및 그것에 관한 확립된 '값 판독' 명령에 의해, 상기 논스를 요청하는 단계를 구비하는 방법.
- 제 37 항에 있어서,상기 값 저장 영역의 상기 논스를 상이한 값으로 대체하는 것에 의해, 상기 안전한 저장 영역에서의 상기 데이터 사용을 종결짓는 단계를 더 구비하는 방법.
- 컴퓨팅 장치상의 애플리케이션이 상기 컴퓨팅 장치와 관련된 저장 매체로부터 데이터를 판독하는 방법으로서,상기 데이터는 상기 저장 매체상의 오브젝트와 관련된 안전한 저장 영역의 상기 저장 매체상에 존재하고, 상기 안전한 저장 영역은 자신과 관련된 상기 저장 매체상에 값 저장 영역을 가지며, 상기 저장 매체는 상기 값 저장 영역에 논스를 저장하고, 상기 논스는 키 (KH)를 생성하는데 이용되며, 상기 데이터는 (KH(데이터))를 얻기 위해 상기 (KH)로 보호되고 상기 안전한 저장 영역의 상기 (KH(데이터))가 상기 값 저장 영역의 상기 논스와 관련되도록 상기 안전한 저장 영역에 상기 (KH(데이터))로서 저장되며,상기 방법은,상기 애플리케이션이 상기 안전한 저장 영역의 식별 정보를 가진 요청을 송신하는 단계;상기 저장 매체가 상기 안전한 저장 영역의 식별 정보를 수신하고, 상기 오브젝트와 관련된 값 저장 영역을 찾아내며, 상기 값 저장 영역으로부터 상기 논스를 검색하고, 상기 논스를 상기 애플리케이션으로 리턴하는 단계; 및상기 애플리케이션이 상기 논스를 이용해 상기 키 (KH)를 생성하고, 상기 저장 매체상의 상기 안전한 저장 영역으로부터 상기 (KH(데이터))를 검색하며, 상기 데이터를 얻기 위해, 상기 (KH(데이터))에 상기 키 (KH)를 적용하는 단계를 구비하는 방법.
- 제 47 항에 있어서,상기 저장 매체가 안전한 통신 채널에 의해 상기 논스를 리턴하는 단계를 구비하는 방법.
- 제 47 항에 있어서,상기 애플리케이션이, 상기 컴퓨팅 장치와 관련된 기존의 파일 시스템 및 그것에 관한 확립된 '값 판독' 명령에 의해, 상기 논스를 요청하는 단계를 구비하는 방법.
- 컴퓨팅 장치상의 애플리케이션이 상기 컴퓨팅 장치와 관련된 저장 매체에, 상기 저장 매체상의 오브젝트와 관련된 안전한 저장 영역에 기입될, 데이터를 기입하는 방법으로서,상기 애플리케이션이 상기 오브젝트의 식별 정보를 가진 요청을 송신하는 단계; 및상기 저장 매체가 상기 오브젝트의 식별 정보를 수신하고, 상기 오브젝트와 관련된 안전한 저장 영역을 찾아내며, 상기 안전한 저장 영역으로부터 상기 데이터를 검색하고, 상기 데이터를 상기 애플리케이션으로 리턴하는 단계를 구비하는 방법.
- 제 50 항에 있어서,상기 저장 매체가 안전한 통신 채널에 의해 상기 논스를 리턴하는 단계를 구비하는 방법.
- 제 50 항에 있어서,상기 애플리케이션이, 상기 컴퓨팅 장치와 관련된 기존의 파일 시스템 및 그것에 관한 확립된 '안전한 판독' 명령에 의해, 상기 데이터를 요청하는 단계를 구비하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/847,516 US7664966B2 (en) | 2004-05-17 | 2004-05-17 | Secure storage on recordable medium in a content protection system |
US10/847,516 | 2004-05-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20060047953A true KR20060047953A (ko) | 2006-05-18 |
Family
ID=34939654
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050040764A KR20060047953A (ko) | 2004-05-17 | 2005-05-16 | 컨텐츠 보호 시스템에서의 저장 매체상의 안전한 저장 |
Country Status (10)
Country | Link |
---|---|
US (1) | US7664966B2 (ko) |
EP (1) | EP1598822B1 (ko) |
JP (1) | JP2005332399A (ko) |
KR (1) | KR20060047953A (ko) |
CN (1) | CN100442252C (ko) |
AU (1) | AU2005201847A1 (ko) |
BR (1) | BRPI0501761A (ko) |
CA (1) | CA2507369A1 (ko) |
MX (1) | MXPA05005218A (ko) |
RU (1) | RU2005114872A (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100839155B1 (ko) * | 2006-10-20 | 2008-06-19 | 에스케이 텔레콤주식회사 | 프리뷰 컨텐츠에 대한 보안화된 제공 시스템 및 방법 |
KR101588533B1 (ko) * | 2014-08-12 | 2016-01-29 | 우석대학교 산학협력단 | 안드로이드 시스템에서 응용 프로그램의 보안을 강화하는 방법 및 장치 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4537882B2 (ja) * | 2005-04-18 | 2010-09-08 | 株式会社東芝 | 情報端末装置 |
FR2892876A1 (fr) * | 2005-11-02 | 2007-05-04 | Gemplus Sa | Procede de depot securise de donnees numeriques, procede associe de recuperation de donnees numeriques, dispositifs associes pour la mise en oeuvre des procedes, et systeme comprenant les dits dispositifs |
JP2007150846A (ja) * | 2005-11-29 | 2007-06-14 | Toshiba Corp | コンテンツ再生システム |
US20070220257A1 (en) * | 2006-03-06 | 2007-09-20 | Sandisk Il Ltd. | Controlled-Access Recording Generator |
US7797751B1 (en) * | 2006-03-27 | 2010-09-14 | Oracle America, Inc. | Nonce structure for storage devices |
US8826023B1 (en) * | 2006-06-30 | 2014-09-02 | Symantec Operating Corporation | System and method for securing access to hash-based storage systems |
US7930759B2 (en) * | 2006-11-09 | 2011-04-19 | Kabushiki Kaisha Toshiba | Backup system for image forming apparatus and backup method for image forming apparatus |
US8079071B2 (en) * | 2006-11-14 | 2011-12-13 | SanDisk Technologies, Inc. | Methods for accessing content based on a session ticket |
US8763110B2 (en) | 2006-11-14 | 2014-06-24 | Sandisk Technologies Inc. | Apparatuses for binding content to a separate memory device |
US8327454B2 (en) | 2006-11-14 | 2012-12-04 | Sandisk Technologies Inc. | Method for allowing multiple users to access preview content |
KR101450131B1 (ko) * | 2006-11-14 | 2014-10-13 | 샌디스크 테크놀로지스, 인코포레이티드 | 세션 티켓을 바탕으로 콘텐트에 액세스하기 위한 방법과 장치 |
US8539233B2 (en) * | 2007-05-24 | 2013-09-17 | Microsoft Corporation | Binding content licenses to portable storage devices |
US7907735B2 (en) * | 2007-06-15 | 2011-03-15 | Koolspan, Inc. | System and method of creating and sending broadcast and multicast data |
US20090164804A1 (en) * | 2007-12-25 | 2009-06-25 | Sandisk Il Ltd. | Secured storage device |
JP4562808B2 (ja) * | 2008-06-05 | 2010-10-13 | 日立オムロンターミナルソリューションズ株式会社 | 情報処理システム |
CN101539890B (zh) * | 2009-04-29 | 2011-01-12 | 威盛电子股份有限公司 | 数据处理系统、密码管理方法及数据读取与写入方法 |
US9239762B1 (en) * | 2009-08-11 | 2016-01-19 | Symantec Corporation | Method and apparatus for virtualizing file system placeholders at a computer |
US8364857B2 (en) * | 2009-08-31 | 2013-01-29 | Qualcomm Incorporated | Wireless modem with CPU and auxiliary processor that shifts control between processors when in low power state while maintaining communication link to wireless network |
US9176898B2 (en) | 2009-11-09 | 2015-11-03 | Bank Of America Corporation | Software stack building using logically protected region of computer-readable medium |
US9128799B2 (en) | 2009-11-09 | 2015-09-08 | Bank Of America Corporation | Programmatic creation of task sequences from manifests |
JP5524601B2 (ja) * | 2009-12-25 | 2014-06-18 | 株式会社バンダイナムコゲームス | プログラム、電子機器、サーバシステム及び情報提供システム |
US20120042173A1 (en) * | 2010-08-12 | 2012-02-16 | Condel International Technologies Inc. | Digital Content and Right Object Management Systems and Methods |
JP6176020B2 (ja) * | 2013-09-17 | 2017-08-09 | 株式会社リコー | 機器、情報処理システム、情報処理方法、情報処理プログラム、および情報処理プログラムが記憶された記憶媒体 |
US10169124B2 (en) * | 2014-12-16 | 2019-01-01 | Samsung Electronics Co., Ltd. | Unified object interface for memory and storage system |
US10704756B2 (en) | 2017-01-04 | 2020-07-07 | Ford Global Technologies, Llc | Loose layered build components and vehicle front end assembly strategy |
US10652330B2 (en) | 2017-01-15 | 2020-05-12 | Google Llc | Object storage in cloud with reference counting using versions |
US10387271B2 (en) | 2017-05-10 | 2019-08-20 | Elastifile Ltd. | File system storage in cloud using data and metadata merkle trees |
US10860726B2 (en) | 2018-12-12 | 2020-12-08 | American Express Travel Related | Peer-to-peer confidential document exchange |
US20210056053A1 (en) * | 2019-08-19 | 2021-02-25 | Cryptography Research, Inc. | Application authentication and data encryption without stored pre-shared keys |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3639905A (en) | 1970-11-27 | 1972-02-01 | Omron Tateisi Electronics Co | Credit card system having means for sensing if object is living |
US5513260A (en) | 1994-06-29 | 1996-04-30 | Macrovision Corporation | Method and apparatus for copy protection for various recording media |
JP3729529B2 (ja) * | 1994-10-28 | 2005-12-21 | ソニー株式会社 | デイジタル信号送受信システム |
US5715403A (en) * | 1994-11-23 | 1998-02-03 | Xerox Corporation | System for controlling the distribution and use of digital works having attached usage rights where the usage rights are defined by a usage rights grammar |
DE19633802A1 (de) * | 1996-08-22 | 1998-02-26 | Philips Patentverwaltung | Verfahren und System zum Einschreiben einer Schlüsselinformation |
JP4190599B2 (ja) * | 1996-11-27 | 2008-12-03 | ソニー株式会社 | 情報伝送装置及び情報伝送方法並びに情報受信装置及び情報受信方法 |
EP0878796B1 (en) | 1997-05-13 | 2006-04-19 | Kabushiki Kaisha Toshiba | Information recording apparatus, information reproducing apparatus, and information distribution system |
US6493825B1 (en) * | 1998-06-29 | 2002-12-10 | Emc Corporation | Authentication of a host processor requesting service in a data processing network |
US6438235B2 (en) * | 1998-08-05 | 2002-08-20 | Hewlett-Packard Company | Media content protection utilizing public key cryptography |
SG77270A1 (en) * | 1998-10-16 | 2000-12-19 | Matsushita Electric Ind Co Ltd | Digital content protection system |
JP2000138663A (ja) * | 1998-10-30 | 2000-05-16 | Nec Corp | データ送受信システム |
US7103574B1 (en) * | 1999-03-27 | 2006-09-05 | Microsoft Corporation | Enforcement architecture and method for digital rights management |
US7024393B1 (en) | 1999-03-27 | 2006-04-04 | Microsoft Corporation | Structural of digital rights management (DRM) system |
CN1160632C (zh) * | 1999-04-30 | 2004-08-04 | 汤姆森特许公司 | 处理数字编码音频数据的方法和设备 |
US6996720B1 (en) * | 1999-12-17 | 2006-02-07 | Microsoft Corporation | System and method for accessing protected content in a rights-management architecture |
JP4501197B2 (ja) * | 2000-01-07 | 2010-07-14 | ソニー株式会社 | 情報携帯処理システム、情報携帯装置のアクセス装置及び情報携帯装置 |
US6772340B1 (en) | 2000-01-14 | 2004-08-03 | Microsoft Corporation | Digital rights management system operating on computing device and having black box tied to computing device |
US6959089B1 (en) | 2000-04-07 | 2005-10-25 | General Instrument Corporation | Method and apparatus for secure transmission of data |
JP2002014929A (ja) * | 2000-04-26 | 2002-01-18 | Sony Corp | アクセス制御システム、アクセス制御方法、およびデバイス、アクセス制御サーバ、アクセス制御サーバ登録サーバ、データ処理装置、並びにプログラム記憶媒体 |
EP1154348B9 (en) * | 2000-05-11 | 2007-06-13 | Matsushita Electric Industrial Co., Ltd. | File management apparatus |
US7017189B1 (en) | 2000-06-27 | 2006-03-21 | Microsoft Corporation | System and method for activating a rendering device in a multi-level rights-management architecture |
JP2002185448A (ja) * | 2000-12-15 | 2002-06-28 | Cognitive Research Laboratories Inc | データセキュリティを強化したデータ配信システム |
US7392541B2 (en) * | 2001-05-17 | 2008-06-24 | Vir2Us, Inc. | Computer system architecture and method providing operating-system independent virus-, hacker-, and cyber-terror-immune processing environments |
TWI240250B (en) | 2001-07-09 | 2005-09-21 | Matsushita Electric Ind Co Ltd | Content management system and information recording medium |
US7328344B2 (en) * | 2001-09-28 | 2008-02-05 | Imagitas, Inc. | Authority-neutral certification for multiple-authority PKI environments |
DE10200288A1 (de) * | 2002-01-07 | 2003-07-17 | Scm Microsystems Gmbh | Eine Vorrichtung zur Ausführung von Anwendungen, die sichere Transaktionen und/oder Zugangskontrolle zu werthaltigen Inhalten und/oder Dienstleistungen umfassen, und Verfahren zum Schutz einer solchen Vorrichtung |
US7281273B2 (en) | 2002-06-28 | 2007-10-09 | Microsoft Corporation | Protecting content on medium from unfettered distribution |
AU2003262965A1 (en) * | 2002-08-30 | 2004-03-19 | Arkivio, Inc. | Techniques for moving stub files without recalling data |
EP1540527B1 (en) * | 2002-09-09 | 2007-08-29 | Sap Ag | Method and system for moving data objects using locks |
US7395435B2 (en) * | 2002-09-20 | 2008-07-01 | Atmel Corporation | Secure memory device for smart cards |
IL154346A (en) * | 2003-02-06 | 2010-06-16 | Eyal Cohen | Method and system for protecting against illegal copy and/or use of digital content stored on optical or other media |
US7392547B2 (en) * | 2003-06-27 | 2008-06-24 | Microsoft Corporation | Organization-based content rights management and systems, structures, and methods therefor |
US20050154906A1 (en) * | 2003-11-05 | 2005-07-14 | Patrick Kriech | BIOS locked application media |
JP4613487B2 (ja) * | 2003-11-07 | 2011-01-19 | ソニー株式会社 | 電子機器、情報処理システム、情報処理装置および方法、プログラム、並びに記録媒体 |
JP4717398B2 (ja) * | 2004-09-10 | 2011-07-06 | キヤノン株式会社 | データ処理装置の制御方法 |
-
2004
- 2004-05-17 US US10/847,516 patent/US7664966B2/en not_active Expired - Fee Related
-
2005
- 2005-05-02 AU AU2005201847A patent/AU2005201847A1/en not_active Abandoned
- 2005-05-03 EP EP05103664.8A patent/EP1598822B1/en not_active Not-in-force
- 2005-05-13 MX MXPA05005218A patent/MXPA05005218A/es not_active Application Discontinuation
- 2005-05-16 RU RU2005114872/09A patent/RU2005114872A/ru not_active Application Discontinuation
- 2005-05-16 CA CA002507369A patent/CA2507369A1/en not_active Abandoned
- 2005-05-16 KR KR1020050040764A patent/KR20060047953A/ko not_active Application Discontinuation
- 2005-05-16 BR BR0501761-0A patent/BRPI0501761A/pt not_active IP Right Cessation
- 2005-05-17 JP JP2005144182A patent/JP2005332399A/ja active Pending
- 2005-05-17 CN CNB2005100714765A patent/CN100442252C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100839155B1 (ko) * | 2006-10-20 | 2008-06-19 | 에스케이 텔레콤주식회사 | 프리뷰 컨텐츠에 대한 보안화된 제공 시스템 및 방법 |
KR101588533B1 (ko) * | 2014-08-12 | 2016-01-29 | 우석대학교 산학협력단 | 안드로이드 시스템에서 응용 프로그램의 보안을 강화하는 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
AU2005201847A1 (en) | 2005-12-01 |
RU2005114872A (ru) | 2006-11-27 |
CN100442252C (zh) | 2008-12-10 |
US7664966B2 (en) | 2010-02-16 |
MXPA05005218A (es) | 2006-03-08 |
EP1598822A3 (en) | 2006-06-21 |
CA2507369A1 (en) | 2005-11-17 |
EP1598822B1 (en) | 2017-12-27 |
JP2005332399A (ja) | 2005-12-02 |
EP1598822A2 (en) | 2005-11-23 |
US20050257074A1 (en) | 2005-11-17 |
BRPI0501761A (pt) | 2006-01-10 |
CN1700193A (zh) | 2005-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20060047953A (ko) | 컨텐츠 보호 시스템에서의 저장 매체상의 안전한 저장 | |
CA2504677C (en) | Rendering digital content in a content protection system according to a plurality of chained digital licenses | |
JP4799038B2 (ja) | コンピューティングデバイスなどのネットワーク内における保護されたデジタルコンテンツのレンダリング | |
JP4680564B2 (ja) | 携帯用メディア上のコンテンツの暗号化およびデータ保護 | |
US7170999B1 (en) | Method of and apparatus for encrypting and transferring files | |
US9214184B2 (en) | Digital rights management system, devices, and methods for binding content to an intelligent storage device | |
KR100643278B1 (ko) | 휴대용 저장 장치의 디지털 저작권을 관리하는 방법 및 장치 | |
US7856404B2 (en) | Playlist burning in rights-management context | |
KR20070055934A (ko) | 컨텐츠 보호 시스템 등에서의 신뢰된 라이센스 제거 방법 | |
US20060235801A1 (en) | Licensing content for use on portable device | |
US20060149683A1 (en) | User terminal for receiving license | |
US20110179268A1 (en) | Protecting applications with key and usage policy | |
KR20100057817A (ko) | 동적 미디어 구역 시스템들 및 방법들 | |
US8234718B2 (en) | Method and apparatus for forbidding use of digital content against copy control information | |
US7457964B2 (en) | Trusted path for transmitting content thereon | |
JP2005010957A (ja) | コンテンツ保護システム、コンテンツ保護方法およびその方法をコンピュータに実行させるプログラム | |
JP2009104477A (ja) | 配信装置、配信管理装置、端末装置、配信方法、ファイル利用方法、配信プログラムおよびファイル利用プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |