KR20070035030A - 비보안 데이터 저장 공간에 대하여 쿼리들을 위한 결과들의신선함을 보장하기 위한 방법 - Google Patents
비보안 데이터 저장 공간에 대하여 쿼리들을 위한 결과들의신선함을 보장하기 위한 방법 Download PDFInfo
- Publication number
- KR20070035030A KR20070035030A KR1020077000439A KR20077000439A KR20070035030A KR 20070035030 A KR20070035030 A KR 20070035030A KR 1020077000439 A KR1020077000439 A KR 1020077000439A KR 20077000439 A KR20077000439 A KR 20077000439A KR 20070035030 A KR20070035030 A KR 20070035030A
- Authority
- KR
- South Korea
- Prior art keywords
- item
- check
- primary
- items
- application data
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2101—Auditing as a secondary aspect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2145—Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2151—Time stamp
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
- Chemical And Physical Treatments For Wood And The Like (AREA)
- Treatments For Attaching Organic Compounds To Fibrous Goods (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
본 발명에 따른 방법은 기입 동작을, 계층적 나무 구조로 기입될 애플리케이션 데이터를 위한 기입 명령어를 수신하는 단계(202); 타이머를 증가시키는 단계; 타임스탬프를 타이머의 값으로 설정하는 단계(201); 수신된 애플리케이션 데이터 및 타임스탬프에 기초해 메시지 인증 코드를 계산하는 단계; 애플리케이션 데이터에 제어 정보를 첨부하는 단계; 제어 정보를 갖춘 애플리케이션 데이터를 일차 항목으로서 데이터 저장 공간에 기입하는 단계; 및 링크들을 쫓는 것에 의해, 일차 항목으로부터 뿌리에 이르는 경로를 따라 일차 항목과 연관된 각각의 점검 항목을 위한 제어 정보를 업데이트하는 단계를 포함하도록 확장한다. 데이터 저장 공간으로부터 애플리케이션 데이터를 판독하기 위한 방법(204)은, 애플리케이션 데이터 위치에 포함되어 있는 메시지 인증 코드를 확인하는 단계; 그 위치로부터의 데이터를 애플리케이션 데이터 및 제어 정보로 파싱하는 단계; 제어 정보를 인증하는 단계; 및 애플리케이션 데이터를 호출 애플리케이션으로 송신하는 단계를 포함한다.
보안 계산 환경, 되풀이 공격, 애플리케이션 데이터, 데이터 저장 공간, 계층적 데이터 구조, 일차 항목, 점검 항목
Description
개시된 발명은 일반적으로 데이터 보안 분야에 관한 것으로, 보다 상세하게는 비신뢰 데이터 저장 공간(non-trusted data store)으로부터의 신뢰 가능한 데이터 검색에 관한 것이다.
IT(Information Technology) 시스템들은 신뢰 가능한 데이터 저장 공간들에 의존하고, 이러한 데이터 저장 공간들은 대부분 IT 시스템의 보안 계산 환경(secure computational environment)을 벗어나 위치하므로 공격에 취약하다. 보안 계산 환경들은 물리적 및 논리적 공격들로부터 그들의 내부 애플리케이션들을 보호하는데 사용될 수 있으나, 이들 애플리케이션들은 여전히, 보안 계산 환경 내에 배치될 수 없는 외부 데이터 저장 공간들에 의존할 수도 있다. 여기에 참고 문헌으로써 포함되어 있는, Trapp 등의 "Method and Apparatus for Secure Processing of Sensitive Data"라는 명칭의 특허출원 제 10/065,802호를 참고한다.
표준 암호화 기술들이 데이터 저장 공간의 내용들을 암호화하고 인증하는데 사용됨으로써 스파이 행위 및 비인가 변경들로부터 데이터를 보호할 수 있지만, 표 준 암호화 기술들이, 데이터 저장 공간으로의 쿼리들(queries)이 항상 가장 정확한 최신의 데이터를 리턴한다는 것을 보장하기에는 충분하지 않다. 데이터 저장 공간에 대한 쿼리로의 되풀이 공격(replay attack)은, 공격자가, 예전에 데이터 저장 공간에 저장되었지만 더이상 최신이 아닌 데이터로써 쿼리에 응답하는 공격이다. 데이터 저장 공간으로의 엔트리(entry)를 쟁취하는 공격자는, 진부한 데이터(outdated data)가 데이터 저장 공간의 실제 내용들인 것으로 위장하여, 애플리케이션 프로그램에 의해 형성된 쿼리들에 진부한 데이터로써 응답할 수 있다. 그러한 공격을 흔히 되풀이 공격이라고 하는데, 공격자가 시스템에서 앞서 유효했던 데이터를 "되풀이하기" 때문이다. 데이터 저장 공간들로부터의 정보에 의존하는 오늘날의 다수 애플리케이션들에서, 이것은 중요한 문제이다. 은행 계좌의 금액 또는 범죄자들의 요주의 인물 명단에 기재된 사항들을 조회하는 애플리케이션을 고려한다면, 이 문제의 심각성이 분명해진다.
컴퓨터 네트워크들 상의 보안 통신 채널들을 위한 되풀이 공격들에 대한 대책들이 공지되어 있기는 하지만, 이 기술들은 보안 계산 환경의 외부에 위치하는 데이터 저장 공간(즉, 비보안 데이터 저장 공간)에 대한 데이터베이스 쿼리들을 위한 되풀이 공격들로부터 보호하도록 적응될 수 없다. 오늘날 대부분의 거대 시스템들은 보안 계산 환경의 외부에서 실행되고, 따라서, 종래 기술의 단점들을 극복하는 방법이 필요하다.
본 발명에 따르면, 방법은, 비보안 데이터 저장 공간, 예를 들어, 데이터베이스 또는 파일 시스템으로의 쿼리들 동안, 되풀이 공격들을 검출하고 방지하도록 보안 계산 환경 내에서 실행되는 애플리케이션을 허용한다. 간단하게, 본 발명에 따른 방법은 기입 동작을, 계층적 나무 구조(hierarchical tree structure)로 기입될 애플리케이션 데이터를 위한 기입 명령어를 수신하는 단계; 기입 명령어를 수신하는 것에 응답하여 타이머를 증가시키는 단계; 타임스탬프(timestamp)를 타이머의 값으로 설정하는 단계; 수신된 애플리케이션 데이터에 기초해, 메시지 인증 코드를 계산하는 단계; 애플리케이션 데이터에 타임스탬프 및 메시지 인증 코드를 포함한 제어 정보를 첨부하는 단계; 제어 정보가 첨부된 애플리케이션 데이터를 일차 항목(primary item)으로서 비보안 데이터 저장 공간에 기입하는 단계; 및 링크들을 쫓는 것에 의해 일차 항목으로부터 뿌리(root)에 이르는 경로를 따라 일차 항목과 연관된 각각의 점검 항목(check item)에 대한 제어 정보를 업데이트하는 단계를 포함하도록 확장한다.
본 발명에 따른 방법은 비보안 데이터 저장 공간으로부터 애플리케이션 데이터를 판독하기 위한 판독 동작을, 애플리케이션 데이터를 위한 판독 명령어를 수신하는 단계; 비보안 데이터 저장 공간 내에서 애플리케이션 데이터의 위치를 판정하는 단계; 그 위치 안에 들어있는 메시지 인증 코드를 확인하는 단계; 그 위치로부터의 데이터를 애플리케이션 데이터 및 제어 정보로 파싱(parsing)하는 단계; 제어 정보를 인증하는 단계; 및 애플리케이션 데이터를 호출 애플리케이션(calling application)으로 송신하는 단계를 포함하도록 확장한다.
본 발명의 실시예에 따르면, 되풀이 공격들의 검출 및 방지를 위한 시스템은 상기 방법들을 수행하도록 구성된 로직(logic)을 포함한다.
다른 실시예에 따르면, 컴퓨터 프로그램 제품은 상기 방법들을 수행하기 위한 명령어들을 포함한다.
도 1은 보안 계산 환경 및 데이터 저장 공간의 상위 레벨 구조를 예시한다.
도 2는 되풀이 공격들로부터의 보호의 개략도를 예시한다.
도 3은 항목들 및 점검 나무(check tree)의 세부 구조를 예시한다.
도 4는 항목들 및 링크들을 위한 데이터 구조들을 UML(Unified Modeling Language)의 클래스 도면들로서 예시한다.
도 5는 일차 항목을 데이터 저장 공간에 기입하고 점검 나무의 제어 정보를 업데이트하기 위한 세부 흐름을 예시한다.
도 6은 데이터 저장 공간으로부터 일차 항목을 판독하고 점검 나무의 제어 정보를 점검하기 위한 세부 흐름을 예시한다.
도 7은, 일부 항목들을 보안 계산 환경내에 유지하기 위한, 도 1의 대안을 예시한다.
도 8은, 보안 계산 환경 내부에서 점검 엔트리들이 누락된, 도 7의 대안을 예시한다.
도 9는 요구시에 점검 엔트리들로의 링크들을 계산하기 위한 수학식들을 나타낸다.
도 10은 다수 보안 계산 환경들로부터 단일 데이터 저장 공간 또는 다수 데 이터 저장 공간들의 공유되는 사용을 예시한다.
도 11은 다수 보안 환경들이, 마스터로서 지시되는, 하나의 보안 환경을 통해 적어도 하나의 데이터 저장 공간에 액세스하는 시스템의 일례를 예시한다.
도 12는, 본 발명의 실시예가 유용하게 사용될 수 있는 컴퓨터 프로그램 제품의 간략화된 블록도를 나타낸다.
보안 계산 환경에서 실행 중인 애플리케이션에 의해 형성된, 외부(비보안) 데이터 저장 공간에 대한 쿼리들 동안, 되풀이 공격들을 인지하고 방지하기 위한 방법이 논의된다.
보안 계산 환경("보안 환경")은, 트랜잭션들이 보안 환경 외부로부터 시청되거나 액세스될 수 없는 환경이다. 더 나아가, 프로세싱 또는 프로세싱된 데이터를 보안 환경 외부로부터 악의적으로 변경하는 것도 불가능하다. 환경 내부에 저장되어 있는 민감한 데이터를 파괴하거나 그것을 영구적으로 액세스 불가능하게 하는, 보안 환경, 내부에서 실행 중인 프로그램들, 또는 내부에서 프로세싱되고 있는 데이터를 변경하려는 시도들이 환경에 의해 검출된다. 보안 환경의 일례로는, FIPS(Federal Information Processing Standards) 140-1 Level 4 검정(validation)을 갖춘 IBM 4758 암호처리 코프로세서(cryptographic coprocessor)와 같은 범용 컴퓨팅 장치를 들 수 있다. 여기에 참고 문헌으로써 포함되어 있는, 2001년 11월 6일에 등록된, Schneck 등의 "System for Controlling Access and Distribution of Digital Property"라는 명칭의 미국특허 제 6,314,409호를 참고한다.
본 발명의 바람직한 실시예에서, 데이터베이스 또는 파일 시스템일 수 있는 데이터 저장 공간은 항목들의 세트로 간주된다. 항목은, 항상 한 덩어리로 판독되고 기입되는, 데이터 저장 공간의 일부분이다. 항목은, 예를 들어, 데이터베이스 테이블의 단일 필드 또는 전체 행(row), 파일의 레코드, 또는 전체 파일을 지시할 수 있다. 항목들의 두 가지 종류들: 일차 항목들 및 점검 항목들이 존재한다. 애플리케이션 데이터는 일차 항목들에 저장된다. 점검 항목들은 제어 또는 보안 정보를 포함한다. 일차 및 점검 항목들은 메시지 인증 코드, 점검 엔트리로의 링크 및 VTime(virtual time) 필드를 포함한다. 각각의 점검 항목은 적어도 두 개의 점검 엔트리들을 보유한다. 점검 엔트리들은 점검 항목 내에 어레이로서 저장되는 단일 VTime 값들을 표현한다.
본 발명의 중요한 사양은, 외부 데이터 저장 공간으로의 쿼리가 최신 데이터(가장 신선한 데이터;the freshest data)를 리턴하는지의 여부를 판정하기 위해, 보안 환경 내에서, 전역적 카운터(global counter), 타임스탬프들 및 점검 엔트리들의 계층 구조를 사용하는 것이다. VTime은, 논리적으로 보안 환경 내에 위치하는, 전역적 카운터의 값이다. 전역적 카운터는, 일차 항목이 데이터 저장 공간에 기입될 때마다 증가된다. 세부 사항들을 위해서는 도 5를 참고한다. 카운터는 하드웨어 또는 소프트웨어로 구현될 수 있지만, 보안 환경이 리셋되거나 재부팅될 때, 그것의 값이 상실되어서는 안된다. 전역적 카운터의 값은 보안 환경 내부의 배터리-백업형(battery-backed) RAM에 저장되는 것이 바람직하다.
본 발명의 다른 태양은, 항목들(일차 및 점검 항목들)에 VTime 값(타임스탬 프), 점검 엔트리로의 고유한 링크, 및 메시지 인증 코드(MAC;message authentication code)가 증가되는(즉, 첨부되는) 것이다. 민감한 모든 동작들은 보안 환경 내로 한정된다. 예를 들어, MAC은, 외부로부터 그것이 변경될 수 없는 보안 환경 내에 보존되어 있는 고유한 MAC 키를 사용해 보안 환경 내에서 발생되고 점검된다.
항목들 및 그들의 링크들이 나무형 계층 구조를 형성하는데, 여기에서, 이 나무의 잎들은 일차 항목들이고, 뿌리를 포함하여, 다른 모든 노드들은 점검 항목들이다. 이 방법은, 비보안 데이터 저장 공간으로의/비보안 데이터 저장 공간으로부터의 판독 및 기입 동작들 모두를 확장하는 프로세싱을 구현한다. 되풀이 공격들은 판독 동작들 동안에 검출된다. 미래의 되풀이 공격들을 검출하고 방지하기 위한 대책들이 기입 동작들 동안에 구현되며 후술된다.
도 1을 참조하면, 되풀이 공격들로부터의 보호를 위한 시스템(100)의 상위 레벨 도면이 도시되어 있다. 보안 환경(150) 내부에서, 애플리케이션(101)은 애플리케이션 데이터(102)를 보안 환경(150) 외부에 위치하는 데이터 저장 공간(107)에 저장하기 위한 명령을 실행한다. 화살표(132)는 보안 환경(150)과 데이터 저장 공간(107) 사이의 통신 연관을 표현한다. 데이터 저장 공간(107)이 보안 환경(150) 외부에 위치하므로, 그것은 비보안 시스템인 것으로 간주된다. 불법적으로 액세스(즉, 비인가 액세스)될 수 있는 시스템을 "비보안" 시스템으로 정의한다. 따라서, "신뢰" 시스템은 불법적으로 액세스될 수 없는 시스템이다.
본 발명의 실시예에 따르면, 애플리케이션(101)은 보안 환경(150) 내에서 실 행된다(논리적으로 보안 환경(150)에 위치한다). 전역적 카운터(타이머;104), 인코딩/디코딩 서비스(103), 메시지 다이제스트 서비스(105) 및 암호화 엔진(115) 또한 논리적으로 보안 환경(150) 내에 위치한다(즉, 반드시 물리적으로 위치할 필요는 없다). 여기에서 설명되는 실시예에 따르면, 기입 동작은, 애플리케이션(101)이 애플리케이션 데이터(102)를 인코딩/디코딩 서비스(103)로 송신하는 것과 같이 진행될 것이다. 인코딩/디코딩 서비스(103)는 전역적 카운터(104)를 증가시키고, 전역적 카운터(104)의 실제 값으로 애플리케이션 데이터(102)를 확대하며, 일차 항목(110)에서 점검 항목(109)의 엔트리에 이르는 링크(111)를 생성한다.
몇가지 방식들이 항목들로부터 그들의 점검 엔트리들에 이르는 링크들의 생성에 사용될 수 있는데, 인코딩/디코딩 서비스(103)는 a) 그것이 항목을 기입할 때마다 새로운 점검 엔트리를 배정하고 할당할 수 있거나; b) 그 항목으로의 첫번째 기입 동작 동안, 항목에 대한 점검 엔트리를 배정하고 할당할 수 있다. 그 다음, 동일 항목으로의 연속적인 기입들은 그 항목에 저장되어 있는 링크를 재사용할 것이다. b의 변형은, c) 시스템이 초기화 단계 동안 또는 요구시 주기적으로 항목들, 점검 엔트리들, 및 그들 사이의 링크들을 발생시키는 방식이다. 이 경우, 인코딩/디코딩 서비스(103)가 항목을 업데이트하기를 원할 때마다, 인코딩/디코딩 서비스(103)는, 초기화된 항목들에 저장되어 있는 이러한 소정 링크들을 재사용한다. 다음의 논의에서는, 간략화를 위해, 방식 c가 사용되는 것으로 가정할 것이다. 점검 엔트리들의 배정 및 링크들의 다른 표현을 위한 추가적인 세부 사항들은 도 9에서 제시된다.
항목들의 구조 및 점검 나무(140)에 대한 세부 사항들은 도 3에서 주어질 것이다. 인코딩/디코딩 서비스(103)는, MAC(Message Authentication Code) 키(106)를 사용해 (링크 및 타임스탬프를 포함하는) 확대된 데이터를 위한 MAC을 계산하기 위해, 메시지 다이제스트 서비스(105)를 사용한다. 선택적으로, 일차 및 점검 항목들로 기입되는 데이터는 암호화 엔진(115)을 사용해 암호화 및 복호화될 수 있다. 그 다음, 확대되고 보호된 데이터는 데이터 저장 공간(107) 내부에 일차 항목(110)으로 기입된다. 그 다음, 인코딩/디코딩 서비스(103)는, 점검 엔트리들의 타임스탬프들 및 점검 항목들(109)을 위한 MAC들을 업데이트하는 것에 의해, 연관된 점검 항목들(109)을 업데이트한다. 점검 항목(109) 내부에서는, 두 개의 타임스탬프들이 업데이트되는데, 하나는 다른 점검 항목에 의해 참조되는 점검 엔트리이고, 다른 하나는 점검 항목 자체의 타임스탬프이다. 타임스탬프들은, 인코딩/디코딩 서비스(103)가 전역적 카운터(104)를 증가시킬 때 생성되는 타임 엔트리(time entry)로써 업데이트된다.
도 1은 일례로서 점검 나무(140)의 서브세트를 나타내는데, 점선 화살표들 및 점들(dots)은 점검 항목들(109)의 임의적인 계층들을 표현한다. 일차 항목(110) 또는 점검 항목(109)의 타임스탬프로서 저장되는 VTime은, 항목이 데이터 저장 공간(107)에 마지막으로 기입되었던 (전역적 카운터(104)의 값에 의해 지시되는) 시점이다. 이러한 VTime은 항목의 점검 엔트리에도 기록된다. 따라서, 일차 항목(110)이 데이터 저장 공간(107)에 기입될 때마다, 점검 나무(140)의 일차 항목(110)과 뿌리(108) 사이의 점검 나무 경로상의 모든 점검 항목들(109) 또한 새로 운 타임스탬프로써 업데이트된다.
인코딩/디코딩 서비스(103)는, 방금 기입된 일차 항목(110)의 링크에 의해 참조되었던 점검 엔트리로써 시작해 점검 항목들(109)을 업데이트한 다음, 나무(140)의 뿌리(108)를 업데이트할 때까지, 나무 구조(140)를 위쪽으로 트래버싱(traversing)함으로써, 그 경로를 따라 항목들 내의 모든 제어 정보를 업데이트한다.
본 발명의 일 실시예에서는, 점검 엔트리들로의 링크들에 대한 명시적 저장을 방지할 수 있다. 점검 엔트리들의 어드레스들은, 그렇지 않다면 링크가 명시적으로 저장될 항목의 어드레스로부터 요구시 계산됨으로써, 링크들을 명시적으로 저장할 필요성을 제거한다. 이 실시예를 위해 필요한 수학식들은 도 9에 도시되어 있다.
판독 동작은, 애플리케이션(101)이, 보안 환경(150) 내에서, 애플리케이션 데이터(102)에 대한 요청을 인코딩/디코딩 서비스(103)로 위임할 때 시작된다. 인코딩/디코딩 서비스(103)는 요청된 일차 항목(110) 및, 요청된 일차 항목(110)으로부터 점검 나무(140)의 뿌리(108)에 이르는, 그리고 점검 나무(140)의 뿌리(108)를 포함하는 경로 상의 모든 점검 항목들(109)을 판독한다. 판독되는 모든 항목들에 대해, 인코딩/디코딩 서비스(103)는, MAC 키(106)와 함께, 메시지 다이제스트 서비스(105)를 사용해 판독 항목들의 모든 MAC들이 정확한지를 확인한다. 이 테스트들을 위해, 인코딩/디코딩 서비스(103)는 항목에 저장되어 있는 (링크 및 타임스탬프를 포함하는) 데이터에 대한 MAC을 재계산하고, 그것을 항목에 현재 저장되는 MAC 과 비교한다. 데이터가 인증되면, 즉, 그것이 인코딩/디코딩 서비스(103)에 의해 발생되었다면, 양자의 값들(항목에 현재 저장되는 MAC 및 재계산된 MAC 값)은 동일하다. MAC 비교가 성공적이면, 인코딩/디코딩 서비스(103)는, 점검 나무(140)의 뿌리(108)에 대한 타임스탬프 값이 전역적 카운터(104)의 실제 값과 동일한지를 판정한다. MAC 비교가 성공적이지 않다면, 판독 동작은 종료하고 호출자에게 오류가 보고된다.
데이터 저장 공간(107)으로부터 일차 항목(110)이 판독될 때, 항목의 타임스탬프는 여전히 그것의 점검 엔트리 값과 매칭되어야 한다. 이 점검 엔트리를 보유하는 점검 항목의 타임스탬프는, 점검 나무(140)의 뿌리(108)에 이를 때까지, 그것만의 고유한 점검 엔트리 등과 매칭되어야 한다. 점검 나무의 뿌리(108)에 대한 타임스탬프는 (전역적 카운터(104)에 의해 지시되는) 보안 환경(150) 내의 실제 VTime과 항상 동일해야 한다. 이 조건들 중 하나가 실패하거나 이 항목들의 어떤 MAC이 부적당하다면, 데이터는 변경되거나 되풀이된 것으로 가정되고, 본 방법은 오류를 보고한다.
부가적으로, 인코딩/디코딩 서비스(103)는, 판독된 다른 모든 항목들에 대해, 그들의 타임스탬프 값들이 항목의 링크(111)에 의해 참조되는 점검 엔트리들에 저장되어 있는 값들과 동일한지의 여부도 판정한다. 인코딩/디코딩 서비스(103)는, 일차 항목(110)에서 뿌리(108)에 이르는 경로 상의 각각의 항목이 신선한지의 여부를 판정하기 위한 점검을 수행한다. 일차 항목(110) 및 그것의 점검 항목들(109)이 기입된 직후, 이 모든 항목들의 타임스탬프들은 실제 VTime(전역적 카운 터(104)의 값)으로 설정된다. 일차 항목(110) 및 그것의 점검 항목들(109)이 판독될 때, 그들 모두가 동일한 타임스탬프들을 가질 필요는 없지만, 각각의 항목에 대해, 타임스탬프는 항목의 점검 엔트리에 기록되어 있는 타임스탬프와 동일해야 한다. 일차 항목(및 그것의 점검 항목들)의 기입과 판독 사이에서 상이한 일차 항목들(및 그들의 점검 항목들)로의 아무런 기입도 발생하지 않았다면, 점검 나무(140)의 일차 항목(110)에서 뿌리(108)에 이르는 동일한 경로 상의 항목들은 동일한 타임스탬프들을 가질 뿐이다. 일차 항목(a)으로의 기입 이후 및 일차 항목(a)의 판독 이전에 상이한 일차 항목(b)으로의 기입 동작이 발생한다면, b에서 뿌리(108)에 이르는 경로 상의 모든 항목들은 동일한 타임스탬프들을 갖지만, a에서 뿌리(108)에 이르는 경로 상의 모든 항목들은 더이상 동일한 타임스탬프들을 갖지는 않는다(a에서 뿌리(108)에 이르는 경로 및 b에서 뿌리(108)에 이르는 경로가 더이상 공통 항목들을 갖지 않는다면, 적어도 뿌리(108)는 그러는 동안에 변경되었고 어쩌면 추가 항목들의 타임스탬프들도 변경되었을 수 있다). 양자의 경우들에서 성립되는 것은, 각각의 항목의 타임스탬프가, 그것의 점검 항목(109) 내에 위치하는 그것의 점검 엔트리의 타임스탬프와 동일하다는 것이다.
모든 MAC들이 정확한 것으로 밝혀지고 모든 타임스탬프 비교들이 매칭되면, 인코딩/디코딩 서비스(103)는, 예를 들어, 파싱 알고리즘을 사용해, 일차 항목(110)의 내용으로부터 타임스탬프, 링크, 및 MAC을 제거하고, 나머지 데이터(102)를 애플리케이션 데이터(102)로서 애플리케이션(101)으로 리턴한다. MAC이 부정확하거나 타임스탬프 비교에 실패하면, 인코딩/디코딩 서비스(103)는, 데이터 저장 공간(107)의 데이터가, 어쩌면 되풀이 공격의 결과로서, 변경되었고 그에 따라 진부한 내용들을 포함할 수 있다는 것을 지시하는 오류 코드를 호출 애플리케이션(101)으로 리턴한다.
도 2는 되풀이 공격들로부터의 보호를 위한 개략적인 단계들을 나타낸다. 본 방법은 데이터 저장 공간(107)으로의, 그리고 데이터 저장 공간(107)으로부터의 판독/기입 동작들을 확장한다. 데이터 저장 공간(107)으로부터의 판독들 동안 되풀이 공격들이 검출된다.
확장된 기입 동작은 단계들(201, 202, 및 203)을 포함한다. 단계 201에서, 애플리케이션 데이터(102)는, 항목이 데이터 저장 공간(107)에 저장되거나 기입되었을 때 VTime과 같은, 제어 정보로써 확대된다. 이 VTime은 전역적 카운터(104)의 값이다. 단계 202에서는, 점검 항목들에 저장되어 있는 점검 엔트리들로 이루어진, 점검 나무라고 하는, 나무형의 계층적 데이터 구조가 유지된다. 점검 엔트리는 그것으로 링크하는 항목의 마지막 변경 시점을 기록한다. 나무형 구조는 뿌리(108)에 이르는 경로를 따라 일차 항목(110)으로부터 점검 항목들(109)까지의 링크들을 사용해 유지된다. 단계 203에서는, 점검 나무(140)의 뿌리에 대한 마지막 변경 시점을 나타내는 전역적 카운터(104)의 값이 보안 환경(150) 내에 보존된다. 다시 말해, 전역적 카운터(104)의 값은, 데이터가 데이터 저장 공간에 기입되는 다음 시점까지 동일한 상태를 유지한다.
확장된 판독 동작은 단계들(204, 205, 및 206)을 포함한다. 단계 204에서는, 데이터 저장 공간(107)으로부터 일차 항목(110)이 판독된다. 그 다음, 단계 205에서는, (항목 자체에 기록되어 있는) 그 항목의 변경 시점이 항목의 점검 엔트리에 기록되어 있는 변경 시점과 비교된다. 이 점검은 뿌리(108)에 이를 때까지 점검 나무(140)의 모든 부모 노드들(parent nodes)에 대해 반복된다. 단계 206에서는, 뿌리(108)의 마지막 변경 시점이, 뿌리가 변경되었을 때의 마지막 시점을 반영하는, 보안 환경(150) 내부의 전역적 카운터(104)의 값과 비교된다. 이 점검들 중 어느 하나가 실패하거나 항목들의 MAC들이 유효하지 않으면, 되풀이 공격이 검출될 것이다.
도 2는 아주 간략한 도면을 제시한다. 본 방법의 데이터 항목들의 구조, 점검 나무(140)의 구조, MAC들에 의한 항목들의 보호, 데이터 정의들, 알고리즘들 및 변경들에 관한 세부 사항들은 다음에서 제시된다.
도 3은 점검 나무(140)의 일차 항목들(110) 및 점검 항목들(109)의 세부 구조를 나타낸다. 도 3은 점검 나무(140)의 서브세트(300)를 일례로서 나타내는데, 점선형 화살표들은 점검 항목들(109)의 임의적인 계층들을 나타낸다. 일차 항목들(110)은 두 개의 부분들: 애플리케이션 데이터를 보유하는 내용(302)과 제어 정보로 이루어지며, 제어 정보는 타임스탬프(303), 점검 엔트리의 어드레스를 보유하는 링크(304), 및 MAC(305)을 포함한다. 점검 항목들(109)은 적어도 두 개의 점검 엔트리들의 어레이(307), 및 일차 항목들에서와 같은, 타임스탬프(308), 점검 엔트리로의 링크(309), 및 MAC(310)을 포함한다. 타임스탬프들(308)은, 항목이 마지막으로 기입되었던 (전역적 카운터(104)에 의해 그 값이 제공되는) VTime에서의 시점을 지시한다. MAC(310)은 미인식 변경(unrecognized modification)으로부터 항목 들의 내용들을 보호한다.
점검 나무(140)의 뿌리(108)는 특별하다. 그것은 점검 엔트리로의 링크를 갖지 않는 점검 항목(109)이다. 다른 모든 항목들(109 및 110)은 점검 엔트리들을 포인팅하는 링크들을 가진다. 링크들은, c가 점검 항목(109)을 지시하고 s가 c의 점검 엔트리들의 어레이(307)로의 인덱스를 지시하는 쌍들 <c, s>이다. 링크 <cx, sx>는 항목 x로부터, 점검 항목 cx에 위치하는 x의 점검 엔트리를 포인팅한다. 각각의 항목은 고유한 링크를 갖는데, 즉, 두 개의 항목들이 동일한 점검 엔트리로 링크되지 않는다. 점검 나무(140)의 잎들은 항상 일차 항목들(110)이다. 점검 나무(140)의 뿌리(108) 및 내부 노드들은 모두가 점검 항목들(109)이다.
데이터 저장 공간(107)에 새로운 일차 항목(110)이 배정(즉, 기입)될 때마다, 점검 항목들(109)이 생성되고 링크되어야 한다. 일차 항목들(110)의 수가 고정이라면, 모든 항목들 및 링크들(111)이 미리 생성될 수 있다. 또한 일차 항목들(110)의 수를 비례적으로 증가시킴으로써, 그에 따라, 필요한 점검 항목들(109) 및 링크들(111)을 생성할 수도 있다.
점검 항목들(109)의 점검 엔트리 어레이(307)의 사이즈는 임의적이고, 유일한 요구 사항은, 적어두 두 개의 엔트리들을 포함한다는 것이다. 이것은, 일차 항목들(110)의 유한한 세트에 대한 점검 나무(140)의 사이즈 또한 유한할 것을 보장한다. 상이한 점검 항목들(109)은 상이한 사이즈들의 점검 엔트리 어레이들을 가질 수도 있다. 점검 엔트리 어레이들이 커질수록, 좀더 평평한 계층 구조를 발생 시키면서, 결과적인 점검 나무의 높이는 낮아질 것이다. 이로 인해, 점검 나무의 경로 상의 점검 엔트리들은 적어지지만, 판독/기입 동작들 동안 업데이트되고 점검되어야 하는 점검 항목들(109)은 증가한다.
되풀이 공격들을 방지하기 위한 시스템의 다른 구현에서, 일차 항목들(110) 및/또는 점검 항목들(109)에 저장되는 데이터의 일부 또는 전부는 암호화 엔진(115)을 사용해 암호화된다. 이것은 바람직한 사양이기는 하지만, 되풀이 방지를 위해 필수적인 것은 아니다.
도 4는 항목들 및 링크들의 정의를 UML(Unified Modeling Language)의 클래스 도면으로서 나타낸다. Item 클래스(401)는 PrimaryItem 클래스(403) 및 CheckItem 클래스(404)의 공통적인 수퍼 클래스(common super class)이다. Item 클래스(401)는 타임스탬프 및 MAC을 정의하고, Link 클래스(402)의 값을 모은다. 이 필드들 모두는 일차 및 점검 항목 오브젝트들에 의해 승계된다. "MacType" 유형은 MAC을 보유하기에 적합한 유형이다. 타임스탬프의 "VTime" 유형은 VTime의 충분히 많은 시점들을 표현하기에 충분할 정도로 큰, 예를 들어, > 32 비트의 정수 유형이다. VTime 값들은 기입 동작들 동안 증가되고 시스템의 수명 동안 오버플로우(overflow)하지 않아야 한다. PrimaryItem 클래스(403)의 오브젝트들은 일부 임의적인 유형의 내용 필드를 갖는 한편, CheckItem 클래스(404)의 오브젝트들은 점검 엔트리들을 보유한다. 점검 엔트리 어레이는 VTime 값들의 어레이이다. 단일 점검 엔트리는 이 어레이에서의 하나의 값이다. 단일 점검 엔트리는, 이 엔트리를 참조하는 항목의 마지막 변경 시점을 기록한다. CheckItem(404)은 몇 가지 타임스 탬프들을 보유하는데: 적어도 두 개의 타임스탬프들은 점검 엔트리 어레이에 저장되고, 추가적인 타임스탬프는 Item 수퍼 클래스로부터 승계된다는 것에 주의한다. 점검 엔트리의 타임스탬프는 그것으로 링크하는 항목의 마지막 변경 시점을 기록하는 반면, 승계된 타임스탬프는 점검 항목 자체의 마지막 변경 시점을 기록한다. 링크(402)는 두 개의 값들: 위치 연관에 의해 표현되는 CheckItem(404)으로의 참조, 및 점검 항목에서 점검 엔트리를 선택하는데 사용되는 idx라고 하는 정수값을 포함한다.
위치는 데이터 저장 공간(107)의 항목을 고유하게 식별하는 값이다. 이 값의 구조는, 항목이 데이터베이스 행인지, 데이터베이스 필드인지, 아니면 파일의 레코드인지와 같은, 항목의 세분성(granularity)에 의존한다. 예를 들어, 데이터베이스 행을 참조하기 위해, 위치 값은 키 값과 더불어 이 테이블의 행을 고유하게 선택하는 데이터베이스 테이블의 명칭일 수 있다. 다른 일례로서, 항목들이 인덱싱된 파일의 레코드들이라면, 위치 값은 파일명 및 파일에서의 레코드의 인덱스로 이루어질 것이다.
PrimaryItem 클래스(403)는 되풀이 공격들에 대한 검출 및 보호를 위한 방법을 구현하는 두 가지 동작들, 판독 및 기입을 제공한다. 기입 동작은 애플리케이션 데이터(102)를 데이터 저장 공간(107)의 일차 항목(110)에 보존하고, 점검 나무(140)에 추가적인 제어 정보도 유지한다. 판독 동작은 데이터 저장 공간(107)의 일차 항목(110)으로부터 애플리케이션 데이터(102)를 판독하고, 되풀이 공격을 검출하기 위해, 점검 나무(140)의 제어 정보도 확인한다. 이 동작들에 관한 세부 사 항들은 도 5 및 도 6에서 제시된다.
도 5는 데이터 저장 공간(107)의 일차 항목(110)에 애플리케이션 데이터(102)를 기입하고 점검 나무(140)에 제어 정보를 보존하기 위한 논리 흐름을 나타낸다. 동작은 두 가지 파라미터들: 저장될 애플리케이션 데이터(102) 및 그것이 저장되어야 하는 위치를 가진다. 위치는 일차 항목(110)을 참조해야 한다. 위치가 점검 항목(109)을 참조해서는 안된다.
단계 500에서는, 전역적 타이머(104)가 증가되어 이러한 기입 동작을 위한 새로운 VTime 값을 제공한다. 단계 501은 소정 위치에서 데이터 저장 공간(107)에 현재 저장되어 있는 항목을 판독한다. 이 시점에서 고려되는 것은, 항목의 실제 내용이 아니라, 이후 단계들(506 및 507)에서 요구되는 그것의 링크 정보이다. 현재 내용은, 단계 502에서, 새로운 애플리케이션 데이터(102)로써 무효화된다. 단계 503에서는, 항목의 타임스탬프가 실제 VTime으로 설정된다. 단계 504에서 항목에 대한 MAC이 계산되고 설정된 후, 단계 505에서 항목은 데이터 저장 공간(107)에 역기입된다. 단계 506은, 항목의 링크 필드가 점검 엔트리를 포인팅하는지의 여부를 판정한다. 그것이 점검 엔트리를 포인팅하지 않으면, 항목은 점검 나무(140)의 뿌리(108)이고 단계 510에서 기입 동작이 완결된다.
링크 필드가 점검 엔트리를 포인팅한다면, 프로세싱은 단계 507에서 계속된다. 단계 507에서는, 항목의 위치 및 이 항목 내의 점검 엔트리에 대한 인덱스(idx)가 실제 항목의 링크 필드로부터 인출된다. 단계 508에서는, 데이터 저장 공간의 그것의 위치로부터 점검 항목이 판독된다. 단계 509는 방금 판독된 점검 항목의 점검 엔트리 어레이의 인덱스(idx)에서의 타임스탬프를 실제 VTime으로써 업데이트한다. 그 다음, 프로세싱은 단계 503으로 역 루핑하여 점검 항목(109)을 보호하고 저장하며 (결국은 단계 506에서 검출될) 점검 나무(140)의 뿌리(108)에 이를 때까지 추가적인 점검 엔트리들로써 계속된다.
도 6은 데이터 저장 공간(107)의 위치로부터 애플리케이션 데이터(102)를 판독하고 점검 나무(140)의 제어 정보를 점검하기 위한 흐름을 나타낸다. 판독 동작을 위한 파라미터는 일차 항목(110)의 위치이다. 동작은 데이터 저장 공간(107)의 항목에 저장되어 있는 애플리케이션 데이터(102)를 리턴할 것이다.
단계 601에서는, 데이터 저장 공간(107)의 소정 위치로부터 일차 항목(110)이 판독된다. 단계 602에서는, 일차 항목의 MAC이 점검된다. 이 점검이 실패하면, 프로세싱은 단계 613에서 종료하고 호출 애플리케이션(101)으로 오류가 보고된다. MAC이 정확하다면, 단계 603은 방금 판독된 항목의 내용 필드를 가변 데이터에 할당하고, 그에 따라, 그것은 나중에 단계 612에서 호출 애플리케이션(101)으로 리턴될 수 있다. 단계 604는 항목의 타임스탬프를 이후의 비교를 위해 가변 스탬프에 보존한다. 그 다음, 단계 605는, 실제 항목의 링크 필드가 점검 엔트리를 포인팅하는지의 여부를 판정한다. 그것이 점검 엔트리를 포인팅하지 않는다면, 실제 항목은 점검 나무(140)의 뿌리(108)이고, 프로세싱은 단계 611에서 계속된다. 실제 항목의 링크가 점검 엔트리를 포인팅하면, 프로세싱은, 점검 항목(109)의 위치 및 이 점검 항목(109) 내의 점검 엔트리의 인덱스(idx)가 실제 항목의 링크 필드로부터 인출되는 단계 606으로 진행한다. 이 점검 항목(109)은, 단계 607에서, 데이 터 저장 공간(107)의 그것의 위치로부터 판독된다. 단계 608은 방금 판독된 항목의 MAC을 점검한다. MAC이 정확하지 않다면, 프로세싱은 단계 613에서 종료한다. MAC이 정확하다면, 프로세싱은 단계 609로 진행한다.
단계들(609 및 610)은 방금 판독된 점검 항목의 점검 엔트리 어레이의 인덱스(idx)에서의 타임스탬프를 (단계 604에서 선행 항목으로부터 획득된 VTime으로 설정되었던) 스탬프의 값과 비교한다. 이 값들이 상이하면, 프로세싱은 단계 613에서 종료한다. 값들이 동일하면, 프로세싱은 단계 604로 역 루핑하여 (결국은 단계 605에서 검출될) 점검 나무(140)의 뿌리(108)에 이를 때까지 추가적인 점검 엔트리들을 점검한다. 프로세싱이 단계 611에 도달하면, 점검 나무(140)는 뿌리에 이를 때까지 성공적으로 점검된 것이다. 이제, 단계 611은 현재 뿌리 항목의 타임스탬프를 보유하고 있는 스탬프 변수를, 실제 VTime, 즉, 전역적 카운터(104)의 값과 비교한다. 양자의 값들이 동일하면, 되풀이들은 검출되지 않았고, 판독 동작은 단계 603에서 설정된 데이터의 값을 리턴하는 것에 의해 단계 612에서 성공적으로 종결한다. 데이터의 값만이(내용만이) 호출 애플리케이션으로 송신된다는 것에 주의한다. 두 개의 값들이 상이하면, 프로세싱은, 단계 613에서, 호출자에게로 오류가 보고되는 상태로 종료한다.
단계 613은, 되풀이 공격 또는 데이터 변경이 검출되는 경우에만, 즉, 단계 610 또는 단계 611에서 타임스탬프들의 비교가 실패되는 경우, 또는 단계 602 또는 단계 608에서 MAC의 확인이 실패되는 경우에만, 도달된다. 단계 613에 도달되면, 판독 동작은 종결하고, 호출자에게 데이터의 가능한 손상을 경고하기 위해, 오류를 호출자에게 통지한다. 이제, 판독 값에 의존하는 임의의 후속 동작은 무효인 결과들을 발생시킬 확률이 높으므로 안전하지 않다. 호출자는 이 오류를 처리하기 위한 몇 가지 조치 과정들을 가진다. 세 가지 가능한 선택들은 다음과 같다:
a) 변경이 일시적인 것에 불과할 것을 기대하며 판독 동작을 재시도하기. 이것은, 공격자가 데이터 저장 공간(107)을 영구적으로 변경한 것이 아니라, 데이터 저장 공간과 보안 환경(150) 사이의 통신을 방해(intercept)하고 변경했을 경우에 가능할 것이다;
b) 시스템이 항목의 백업을 갖고 그 동안에 실행된 트랜잭션들의 완전한 로그(complete log)를 갖는다면, 그리고 이 정보가 추가적인 되풀이 공격들을 직면하지 않으면서 성공적으로 판독될 수 있다면, 시스템은 어카운트(account)를 복구할 수 있고 호출자는 판독을 재시도할 수 있다; 또는
c) 호출자는 프로세싱 실패를 재촉함으로써 실제 트랜잭션의 복귀를 강제할 수 있고 오퍼레이터에게 이벤트를 통지할 수 있다.
도 7 및 도 8은 도 2의 데이터 레이아웃을 위한 다른 실시예들을 나타낸다.
도 7은 보안 환경(701)을 나타내지만, 도 7은, 도 1에서 도시되었던, 보안 환경(150) 내부의 컴포넌트들을 생략한다. 또한 일차 항목들(706)을 갖춘 비보안 데이터 저장 공간(702)을 나타낸다. 이 데이터 저장 공간(702)과 도 1의 데이터 저장 공간(107) 간의 중요한 차이점은, 단지 점검 항목들(705)의 일부가 데이터 저장 공간(702)에 위치한다는 점이다. 점검 나무의 뿌리(703) 및 어쩌면 뿌리(703)에 근접한 점검 항목들(704)의 수개 계층들이 보안 환경 내부에 위치한다. 도 7은 일례로서 점검 나무의 서브세트를 나타내는데, 점선형 화살표들은 점검 항목들의 임의적인 계층들을 나타낸다.
이 실시예는 도 1에 도시된 실시예와 기능적으로 동등하지만, 이 실시예는 데이터 저장 공간(702)에 유지되는 점검 나무 부분의 높이를 감소시킨다. 단점은, 보안 계산 환경(701) 내부의 점검 항목들(703-704)이 보안 환경(701)의 소중한 메모리 자원들을 소비할 수 있다는 점이다. 장점은, 도 5 및 도 6에 도시되어 있는 흐름들을 위해, 데이터 저장 공간(702)으로부터 판독되고 데이터 저장 공간(702)으로 기입되어야 하는 항목들의 수가 감소될 수 있고, 그로 인해, 프로세스의 속도를 현저하게 향상시킬 수 있다는 점이다. 어떤 실시예를 이용할 것인지에 대한 판정은 속도와 메모리 분배 간의 이러한 상충관계(trade-off)를 고려해야 한다.
도 8은, 사실상 도 7의 변경인, 본 발명의 다른 실시예를 예시한다. 도 7과 비교하여, 보안 환경(801) 내부의 점검 항목들(803)은 점검 엔트리들로의 링크들을 갖지 않는다. 데이터 저장 공간(802)의 점검 항목들(804) 및 일차 항목들(805)을 위해서는 링크들이 필요하나, 보안 환경(801) 내부의 항목들을 위해서는 불필요하다. 점검 나무의 뿌리 및 다른 점검 항목들은, 데이터 저장 공간(802)의 항목들(804-805)로부터 그들에게로 도달하는 직접적인 링크들이 존재하지 않는다면, 생략될 수 있다. 이 점검 항목들이 생략된다면, 도 5 및 도 6의 흐름들도 그에 따라 변경되어야 하는데, 점검 항목들(803)은 디스크로부터 판독되거나 디스크에 기입되지 않고, 단계 611은 생략되며 단계 612로 대체된다. 보안 환경(801) 내부의 점검 항목들(803)을 위해, 타임스탬프 및 MAC 필드들을 생략하는 것도 가능하다. 도 8 은 일례로서 점검 나무의 서브세트를 나타내는데, 점선형 화살표들은 점검 항목들의 임의적인 계층들을 나타낸다.
도 8을 수개 뿌리들을 가진 점검 나무들의 숲(forest)으로 볼 수도 있으므로, 도 8은, 되풀이 공격들로부터의 보호를 위한 방법이, 도 8에서 곡선에 의해 지시되는 바와 같이, 데이터 저장 공간(801)의 상이한 부분들 또는 심지어 그들만의 점검 나무들을 가진 상이한 데이터 저장 공간들을 보호하는데 사용될 수 있는 방법도 나타낸다.
도 9는, 요구시 일차 항목(x)의 어드레스로부터 점검 엔트리들로의 링크들을 계산하는데 사용될 수 있는 회귀적 수학식들(recursive equations)을 나타낸다. 점검 엔트리들로의 링크들이 요구시에 계산된다면, 링크들을 항목들에 명시적으로 저장하는 것은 불필요하다. 일차 항목들의 수(N) 및 매 점검 항목당 점검 엔트리들의 수(n)가 고정이라면, 요구시의 링크들의 계산은 간단하다. 여기에서, <c1, s1> = <cx, sx>는 일차 항목(x)을 위한 점검 엔트리이고, <c2, s2>는 점검 항목(c1)을 위한 점검 엔트리이며, <c3, s3>는 점검 항목(c2)을 위한 점검 엔트리인 식으로 점검 나무의 뿌리(cr)에까지 이르는데, 여기에서, r은 lr = 1이 성립하기 위한 제 1 인덱스이고, l은, 도 9에서 정의되는 바와 같은, 길이 함수(length function)이다.
도 10은, 하나 이상의 데이터 저장 공간들에 액세스하는 동안 두 개 이상의 보안 환경들(1001-1002)이 되풀이 공격들로부터의 보호를 위해 제공되는, 본 발명의 다른 실시예를 예시한다. 이 일례에서는, 두 개의 데이터 저장 공간들(1004 및 1005)이 도시되어 있다. 이 실시예(1000)에서, 보안 환경들(1001 및 1002)은 그들 사이에서 보안 채널(1003)을 확립한다. 이 채널(1003) 또는 통신 링크는 두 개 이상의 보안 환경들 간의 통신에서 변경들 및 되풀이 공격들로부터의 보호를 제공하는, SSL/TLS(Secure Sockets Layer/Transport Layer Security)와 같은, 다수의 표준 암호화 프로토콜들 중 어떤 것에 의해 보안될 수 있다. 그 다음, 보안 채널(1003)은 모든 보안 환경들 사이에서 하나 이상의 전역적 타이머들의 공유(sharing)를 관리하고 동기화하는데 사용될 수 있다. 이 실시예는 각각의 데이터 저장 공간에 대해 하나의 타이머를 필요로 한다.
도 11은, 하나의 보안 환경(1123)은 "마스터"로서 지시되고 (마스터의 보안 환경을 벗어난) 복수개의 나머지 보안 환경들은 마스터(1123)를 통해 데이터 저장 공간(1104)의 애플리케이션 데이터(102)를 액세스할 수 있는, 도 10에 도시되어 있는 실시예의 다른 실시예를 나타낸다. 마스터(1123)만이 데이터 저장 공간(1104)의 항목들에 액세스할 수 있다. 다른 보안 환경들(1101 내지 1109)은, 서버/클라이언트 패러다임을 쫓는, 마스터(1123)의 클라이언트들로서 동작한다. 클라이언트들(1101 내지 1109)은 판독/기입 요청들을 마스터(1123)로 위임한다. 마스터(1123)는 클라이언트들을 위한 서비스를 구현한다. 이 서비스는 클라이언트들을 위한 판독 및 기입 동작들을 제공한다. 서비스는, TCP/IP(Transmission Control Protocol/Internet Protocol) 및 RPC(Remote Procedure Calls)와 같은, 다수의 다양한 프로토콜들을 통해 액세스될 수 있다. RPC는, 하나의 프로그램이 원격 머신의 다른 프로그램의 서비스들을 사용할 수 있게 하는 프로그래밍 인터페이스이다. 마스터(1123)와 클라이언트들(1101-1109) 간의 통신은 화살표들(1130 및 1139)로서 표현된다. 통신 계층은 변경들 및 되풀이들로부터 보호되어야 한다. 이것은 도 10의 SSL/TLS 프로토콜과 같은 표준 암호화 기술들로써 수행될 수 있다.
도 11에 도시되어 있는 일례에서, 마스터(1123)는, 클라이언트들(1101-1109) 모두에 의해 형성되는 판독 액세스들을 캐싱(caching)하는 캐시(1127)를 제공한다. 캐시(1127)는 논리적으로 마스터의 보안 환경(1123) 내부에 위치하고, 따라서, 가능한 공격들로부터 보호된다. 클라이언트(1101-1109)가 데이터 저장 공간으로부터 애플리케이션 데이터를 요청할 때, 요청된 데이터는 성공적인 선행 요청으로부터 거기로 캐싱되었을 수도 있으므로, 마스터(1123)는 먼저 캐시(1127)를 조회한다. 데이터가 캐시(1127)에서 입수 가능하면, 마스터(1123)는, 데이터 저장 공간(1124)에 액세스할 필요없이, 그 데이터를 요청 클라이언트로 리턴할 수 있다. 캐싱된 데이터를 검색하는 것은 데이터 검색들의 속도를 증가시키기 위한 공지된 방법이다. 또한, 데이터 저장 공간(1124)에 대한 모든 변경들이 마스터(1123)를 통해 채널링되어야 하고 다른 시스템은 데이터 저장 공간(1124)에 직접 액세스할 수 없으므로, 캐싱된 데이터는 항상 신선하고 손상되지 않은 것으로 인식된다. 방금 설명된 실시예는 캐시(1127) 없이도 바람직하게 사용될 수 있음은 물론이다. 부가적으로, 본 발명의 기술적 사상 및 범위를 벗어나지 않으면서, 다수의 데이터 저장 공간들이 이 방식으로 액세스될 수 있다. 데이터 저장 공간(1125)은 다수 데이터 저장 공간들의 다른 구성을 표현하기 위해 점선들로써 도시되어 있다.
도 12를 참조하면, 본 발명의 실시예에 따라 동작하도록 구성될 수 있는 프 로그램 가능한 컴퓨터의 간략화된 블록도가 도시되어 있다. 본 발명의 실시예에 따르면, CDROM(1201)과 같은, 컴퓨터 판독 가능 매체가 본 발명에 따른 프로그램 가능한 컴퓨터(1200)를 동작시키기 위한 프로그램 명령어들을 포함할 수 있다. 프로그램 가능한 컴퓨터(1200)의 프로세싱 장치는 RAM(random access memory;1202), ROM(read-only memory;1204), 프로세서(1206) 및 I/O 컨트롤러(1208)를 포함한다. 이들은 CPU 버스(1207)에 의해 링크된다. 부가적으로, I/O 버스(1209), I/O 인터페이스(1210), 디스크 드라이브 컨트롤러(1212), 대용량 저장 장치(1220), 대용량 저장 장치 인터페이스(1214), 및 분리형 CDROM 드라이브(1216)가 존재한다. 도시되고 논의된 것은 프로그램 가능한 컴퓨터 장치의 상당히 간략화된 도면이다. 당업자들이라면, 컴퓨터 장치의 임의의 실질적인 애플리케이션에서는 다른 하위 레벨 컴포넌트들 및 접속들이 필요하다는 것을 알 수 있을 것이다.
제공된 예시적 일례들이 결코 본 발명을 위한 가능한 다수 사용들의 총망라가 아니라는 것을 이해할 수 있어야 한다. 따라서, 현재적으로 바람직한 실시예들인 것으로 간주되는 것들이 설명되었지만, 당업자들이라면, 본 발명의 정신 및 범위내에서 다른 변경들이 가능할 수 있다는 것을 이해할 수 있을 것이다.
Claims (30)
- 일차 항목들 및 점검 항목들을 저장하기 위한 계층적 나무 구조를 포함하는 데이터 저장 공간에 애플리케이션 데이터를 기입하기 위한, 보안 계산 환경내에서 수행되는 방법으로서,기입될 상기 애플리케이션 데이터를 포함하는 기입 명령어를 수신하는 단계;상기 기입 명령어를 수신하는 것에 응답하여, 타이머를 증가시키는 단계;타임스탬프를 상기 타이머의 값으로 설정하는 단계;상기 수신된 애플리케이션 데이터 및 상기 타임스탬프에 대한 메시지 인증 코드를 계산하는 단계;상기 애플리케이션 데이터에, 상기 타임스탬프 및 상기 메시지 인증 코드를 포함하는 제어 정보를 첨부하는 단계;상기 첨부된 제어 정보를 갖춘 상기 애플리케이션 데이터를 일차 항목으로서 상기 데이터 저장 공간에 기입하는 단계; 및링크들을 쫓는 것에 의해, 상기 일차 항목으로부터 뿌리(root)에 이르는 경로를 따라 상기 일차 항목과 연관된 각각의 점검 항목에 대한 상기 제어 정보를 업데이트하는 단계를 포함하는 애플리케이션 데이터 기입 방법.
- 제 1 항에 있어서,상기 일차 항목들로부터 점검 엔트리들까지의 고유한 링크들을 계산하는 단계를 더 포함하고, 상기 고유한 링크들은 상기 제어 정보에 첨부하기 위해, 요구시에, 상기 일차 항목들의 어드레스들로부터 계산되는 것인 애플리케이션 데이터 기입 방법.
- 제 1 항에 있어서,점검 항목 및 일차 항목의 각각에 대해, 상기 항목 자체에 그리고 그것의 링크된 점검 엔트리에 상기 점검 항목이 마지막으로 변경된 VTime(virtual time) 시점을 기록하는 단계를 더 포함하는 애플리케이션 데이터 기입 방법.
- 제 1 항에 있어서,상기 애플리케이션 데이터 또는 제어 정보의 적어도 일부의 암호화된 형태를 상기 일차 항목들 및 상기 점검 항목들 중 적어도 하나에 저장하는 단계를 더 포함하는 애플리케이션 데이터 기입 방법.
- 제 1 항에 있어서,상기 계층적 나무 구조의 상위 부분(upper part)을 상기 보안 계산 환경 내부에 배치하는 단계를 더 포함하는 애플리케이션 데이터 기입 방법.
- 제 5 항에 있어서,상기 나무 구조의 상기 상위 부분 내에 위치한 점검 항목들을, 타임스탬프들, 링크들 및 메시지 인증 코드들과 함께, 상기 보안 계산 환경 내부에 저장하는 단계를 더 포함하는 애플리케이션 데이터 기입 방법.
- 제 1 항에 있어서,보안 채널을 통해, 적어도 하나의 데이터 저장 공간에 액세스하는 두 개 이상의 보안 계산 환경들 사이에서 상기 타이머의 공유 및 사용을 동기화하는 단계를 더 포함하는 애플리케이션 데이터 기입 방법.
- 제 7 항에 있어서,상기 보안 채널을 암호화 프로토콜들로써 보안하는 단계를 더 포함하는 애플리케이션 데이터 기입 방법.
- 제 1 항에 있어서,상기 데이터 저장 공간의 정보로의 액세스를 적어도 하나의 보안 계산 환경을 통해 복수의 보안 계산 환경들에 제공하는 단계를 더 포함하는 애플리케이션 데이터 기입 방법.
- 제 1 항에 있어서,논리적으로 상기 보안 계산 환경 내에 위치한 메시지 인증 코드 키를 사용 해, 상기 일차 항목으로부터 뿌리에 이르는 경로를 따라 각각의 일차 항목 및 점검 항목에 대한 상기 메시지 인증 코드를 보안하는 단계를 더 포함하는 애플리케이션 데이터 기입 방법.
- 일차 항목들 및 점검 항목들을 저장하기 위한 계층적 나무 구조를 포함하는 데이터 저장 공간으로부터 애플리케이션 데이터를 판독하기 위한, 보안 계산 환경내에서 수행되는 방법으로서,판독될 애플리케이션 데이터를 포함하는 판독 명령어를 수신하는 단계;상기 데이터 저장 공간 내에서 상기 판독될 애플리케이션 데이터의 위치를 판정하는 단계;상기 위치 안에 들어있는 메시지 인증 코드를 확인하는 단계;상기 위치 안에 들어있는 데이터를 상기 애플리케이션 데이터 및 제어 정보로 파싱하는 파싱 단계로서, 상기 제어 정보는 타임스탬프 및 메시지 인증 코드를 포함하는 것인, 파싱 단계;링크들을 쫓는 것에 의해 상기 데이터 저장 공간으로부터 일차 항목이 판독될 때마다, 상기 일차 항목으로부터 뿌리(root)에 이르는 경로를 따라 상기 일차 항목과 연관된 각각의 점검 항목에 대한 상기 제어 정보를 인증하는 단계; 및상기 애플리케이션 데이터를 호출 애플리케이션으로 송신하는 단계를 포함하는 애플리케이션 데이터 판독 방법.
- 제 11 항에 있어서,상기 인증하는 단계는,논리적으로 상기 보안 계산 환경 내에 위치한 메시지 인증 코드 키를 사용해, 상기 일차 항목으로부터 뿌리에 이르는 경로를 따라 각각의 점검 항목에 대한 상기 메시지 인증 코드를 인증하는 단계를 더 포함하는 것인 애플리케이션 데이터 판독 방법.
- 제 11 항에 있어서,상기 인증하는 단계는,상기 항목이 뿌리가 아니라면, 상기 경로 상의 상기 일차 항목 및 각각의 점검 항목의 타임스탬프를 링크된 점검 엔트리에 기록되어 있는 타임스탬프와 비교하는 단계; 및상기 항목이 뿌리라면, 상기 타임스탬프를 논리적으로 상기 보안 계산 환경 내에 위치한 타이머의 실제 값과 비교하는 단계를 더 포함하는 것인 애플리케이션 데이터 판독 방법.
- 제 11 항에 있어서,상기 데이터 저장 공간으로부터 검색된 애플리케이션 데이터를 논리적으로 상기 보안 계산 환경 내에 위치한 캐시에 캐싱하는 단계를 더 포함하는 애플리케이션 데이터 판독 방법.
- 제 11 항에 있어서,다음 조건들, 즉 메시지 인증 코드가 무효인 것으로 밝혀지는 조건과 타임스탬프 비교가 실패하는 조건 중 적어도 하나가 충족되면, 상기 호출 애플리케이션으로 오류 코드를 리턴하는 단계를 더 포함하는 애플리케이션 데이터 판독 방법.
- 시스템에 있어서,논리적으로 보안 계산 환경 내에 위치한 타이머로서, 상기 타이머는 데이터 저장 공간으로의 각각의 기입 액세스에 응답하여 증가되도록 구성되는 것인, 타이머;인코더/디코더; 및메시지 다이제스트 서비스를 포함하고,상기 인코더/디코더는일차 항목들 및 점검 항목들을 포함하는 계층적 나무 구조를 생성 및 구현하는 단계;상기 타이머를 증가시키는 단계;1) 타임스탬프; 2) 상기 점검 항목 내부의 점검 엔트리로의 고유한 링크; 및 3) 메시지 인증 코드를 포함하는 제어 정보로써 상기 일차 항목들 및 점검 항목들을 확대하는 단계;일차 항목 및 점검 항목 각각에 대해, 상기 항목 자체에 그리고 그것의 링크된 점검 엔트리에 상기 항목이 마지막으로 변경되었던 시점을 기록하는 단계;점검 항목의 엔트리에 이르는 고유한 링크를 생성하는 단계;상기 일차 항목으로부터 뿌리에 이르는 경로상의, 나무 구조의 모든 노드들을 트래버싱하는 단계;상기 나무 구조의 노드들에 대한 상기 메시지 인증 코드들을 발생시키고 확인하는 단계를 수행하기 위한 로직을 포함하고,상기 메시지 다이제스트 서비스는 메시지 인증 코드 키를 사용해, 상기 확대된 데이터를 위한 메시지 인증 코드를 계산하기 위한 것인, 시스템.
- 제 16 항에 있어서,상기 점검 항목이 상기 나무 구조의 뿌리가 아니라면, 상기 항목들 각각의 타임스탬프를 그것의 링크된 점검 엔트리에 기록되어 있는 타임스탬프와 비교하도록; 그리고상기 항목이 상기 뿌리라면, 상기 타임스탬프를 상기 타이머의 실제 값과 비교하도록 더 구성되어 있는 시스템.
- 제 16 항에 있어서,상기 데이터 저장 공간으로부터 검색되는 애플리케이션 데이터를 캐싱하기 위한 캐시를 더 포함하는 시스템.
- 제 16 항에 있어서,상기 애플리케이션 데이터만을 호출자에게로 송신하기 위해, 상기 일차 항목을 제어 정보와 애플리케이션 데이터로 파싱하기 위한 파서를 더 포함하는 시스템.
- 제 16 항에 있어서,상기 나무 구조는 뿌리 노드(root node) 및 단말 노드들(leaf nodes)을 갖춘 계층적 구조를 포함하는 시스템.
- 제 16 항에 있어서,상기 인코더/디코더는, 일차 항목들 및 점검 항목들로서 저장되어 있는 데이터를 판독하고 기입하도록 더 구성되어 있는 로직을 포함하는 시스템.
- 제 21 항에 있어서,상기 인코더/디코더는, 애플리케이션 데이터를 일차 항목들에 저장하도록, 그리고 제어 정보를 점검 항목들에 저장하도록 더 구성되어 있는 로직을 포함하는 시스템.
- 제 21 항에 있어서,상기 인코더/디코더는, 그것이 항목을 기입할 때마다 새로운 점검 엔트리를 배정하고 할당하도록 더 구성되어 있는 로직을 포함하는 시스템.
- 제 23 항에 있어서,상기 인코더/디코더는, 항목으로의 첫번째 기입 동작 동안 그 항목을 위한 점검 엔트리를 배정하고 할당하도록 더 구성되어 있는 로직을 포함하는 시스템.
- 제 23 항에 있어서,상기 인코더/디코더는, 동일 항목에 연속적으로 기입한 다음 그 항목에 저장되어 있는 링크를 재사용하도록 더 구성되어 있는 로직을 포함하는 시스템.
- 제 21 항에 있어서,일차 항목이 업데이트될 때, 상기 일차 항목으로부터 상기 뿌리에 이르는 경로를 따라 모든 점검 항목들이 업데이트되는 것인 시스템.
- 제 16 항에 있어서,상기 일차 항목들 및 상기 점검 항목들에 저장되어 있는 데이터의 적어도 일부를 암호화하기 위한 암호화 엔진을 더 포함하는 시스템.
- 제 16 항에 있어서,상기 고유한 링크들은 점검 엔트리들을 포인팅하는 것인 시스템.
- 컴퓨터 판독 가능 매체에 있어서,데이터 저장 공간에 기입될 애플리케이션 데이터를 포함하는 기입 명령어를 수신하는 단계;상기 기입 명령어를 수신하는 것에 응답하여, 타이머를 증가시키는 단계;타임스탬프를 상기 타이머의 값으로 설정하는 단계;상기 수신된 애플리케이션 데이터에 대한 메시지 인증 코드를 계산하는 단계;상기 애플리케이션 데이터에, 상기 타임스탬프 및 상기 메시지 인증 코드를 포함하는 제어 정보를 첨부하는 단계;상기 첨부된 제어 정보를 갖춘 상기 애플리케이션 데이터를 일차 항목으로서 기입하는 단계; 및링크들을 쫓는 것에 의해, 상기 일차 항목으로부터 뿌리(root)에 이르는 경로를 따라 상기 일차 항목과 연관된 각각의 점검 항목에 대한 상기 제어 정보를 업데이트하는 단계를 수행하기 위한 프로그램 명령어를 포함하는 컴퓨터 판독 가능 매체.
- 컴퓨터 판독 가능 매체에 있어서,판독될 애플리케이션 데이터를 포함하는 판독 명령어를 수신하는 단계;데이터 저장 공간 내에서 상기 판독될 애플리케이션 데이터의 위치를 판정하는 단계;상기 위치 안에 들어있는 메시지 인증 코드를 확인하는 단계;상기 위치 안에 들어있는 데이터를 상기 애플리케이션 데이터 및 제어 정보로 파싱하는 파싱 단계로서, 상기 제어 정보는 타임스탬프 및 메시지 인증 코드를 포함하는 것인, 파싱 단계;링크들을 쫓는 것에 의해 상기 데이터 저장 공간으로부터 일차 항목이 판독될 때마다, 상기 일차 항목으로부터 뿌리(root)에 이르는 경로를 따라 상기 일차 항목과 연관된 각각의 점검 항목에 대한 상기 제어 정보를 인증하는 단계; 및상기 애플리케이션 데이터를 호출 애플리케이션으로 송신하는 단계를 수행하기 위한 프로그램 명령어를 포함하는 컴퓨터 판독 가능 매체.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2004/024770 WO2006022667A1 (en) | 2004-08-02 | 2004-08-02 | Method for guaranteeing freshness of results for queries against a non-secure data store |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070035030A true KR20070035030A (ko) | 2007-03-29 |
KR100945781B1 KR100945781B1 (ko) | 2010-03-08 |
Family
ID=35967768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077000439A KR100945781B1 (ko) | 2004-08-02 | 2004-08-02 | 비보안 데이터 저장 공간에 대하여 쿼리들을 위한 결과들의신선함을 보장하기 위한 방법 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1782203B1 (ko) |
KR (1) | KR100945781B1 (ko) |
CN (1) | CN100555237C (ko) |
AT (1) | ATE493706T1 (ko) |
DE (1) | DE602004030831D1 (ko) |
WO (1) | WO2006022667A1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE401614T1 (de) | 2006-05-26 | 2008-08-15 | Sap Ag | Verfahren und vorrichtung zum sicheren nachrichtenverkehr in einem netzwerk |
IL187042A0 (en) | 2007-10-30 | 2008-02-09 | Sandisk Il Ltd | Write failure protection for hierarchical integrity schemes |
US9002973B2 (en) * | 2011-10-21 | 2015-04-07 | Fisher Controls International Llc | Delayed publishing in process control systems |
CN104468105A (zh) * | 2013-09-17 | 2015-03-25 | 中兴通讯股份有限公司 | 账号信息处理方法及装置 |
CN109284424B (zh) * | 2018-09-21 | 2021-10-19 | 长沙学院 | 构造滑动情况表的方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5001752A (en) * | 1989-10-13 | 1991-03-19 | Fischer Addison M | Public/key date-time notary facility |
US6393566B1 (en) * | 1995-07-28 | 2002-05-21 | National Institute Of Standards And Technology | Time-stamp service for the national information network |
US5923763A (en) * | 1996-03-21 | 1999-07-13 | Walker Asset Management Limited Partnership | Method and apparatus for secure document timestamping |
DE19921232B4 (de) * | 1999-05-07 | 2007-06-21 | Giesecke & Devrient Gmbh | Verfahren zum gesicherten Schreiben eines Zeigers für einen Ringspeicher, zugehöriger Ringspeicher, Verwendung des Ringspeichers und Chipkarte mit Ringspeicher |
EP1141808A1 (en) | 1999-10-29 | 2001-10-10 | Koninklijke Philips Electronics N.V. | Assuring data integrity via a secure counter |
KR20010008268A (ko) * | 2000-11-20 | 2001-02-05 | 이계철 | 가입자 단말의 시스템 시간 설정을 위한 타임 스탬핑서비스 방법 |
US7092930B2 (en) * | 2001-03-29 | 2006-08-15 | Pitney Bowes Inc. | Architecture and method to secure database records from tampering in devices such as postage value dispensing mechanisms |
CN1272931C (zh) * | 2002-11-08 | 2006-08-30 | 联想(北京)有限公司 | 一种确保数据安全性的数据存储方法及其安全存储装置 |
US7107445B2 (en) | 2002-11-20 | 2006-09-12 | International Business Machines Corporation | Method and apparatus for secure processing of sensitive data |
US7019676B2 (en) * | 2003-06-12 | 2006-03-28 | Matsushita Electric Industrial Co, Ltd. | D/A converter |
-
2004
- 2004-08-02 WO PCT/US2004/024770 patent/WO2006022667A1/en active Application Filing
- 2004-08-02 EP EP04809525A patent/EP1782203B1/en not_active Expired - Lifetime
- 2004-08-02 AT AT04809525T patent/ATE493706T1/de not_active IP Right Cessation
- 2004-08-02 CN CNB200480043634XA patent/CN100555237C/zh not_active Expired - Fee Related
- 2004-08-02 KR KR1020077000439A patent/KR100945781B1/ko not_active IP Right Cessation
- 2004-08-02 DE DE602004030831T patent/DE602004030831D1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN100555237C (zh) | 2009-10-28 |
CN101084487A (zh) | 2007-12-05 |
ATE493706T1 (de) | 2011-01-15 |
EP1782203A1 (en) | 2007-05-09 |
DE602004030831D1 (de) | 2011-02-10 |
WO2006022667A1 (en) | 2006-03-02 |
KR100945781B1 (ko) | 2010-03-08 |
EP1782203B1 (en) | 2010-12-29 |
EP1782203A4 (en) | 2009-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7809958B2 (en) | Method for guaranteeing freshness of results for queries against a non-secure data store | |
US12105822B2 (en) | Immutable bootloader and firmware validator | |
CN109923548B (zh) | 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品 | |
US7779103B1 (en) | Dual cookie security system | |
US8943309B1 (en) | Cookie security system with interloper detection and remedial actions to protest personal data | |
JP2021518705A (ja) | ブロックチェーン台帳のためのランタイム自己修正 | |
US10599863B2 (en) | Database encryption to provide write protection | |
US20180020008A1 (en) | Secure asynchronous communications | |
US7340610B1 (en) | Trusted time stamping storage system | |
US6581093B1 (en) | Policy validation in a LDAP directory | |
US20060282881A1 (en) | Replicating selected secrets to local domain controllers | |
CN114462059A (zh) | 一种表字段级加密及安全访问控制方法及系统 | |
CN108881261B (zh) | 一种容器环境下基于区块链技术的服务认证方法及系统 | |
US8850520B1 (en) | Dual cookie security system with interlocking validation requirements and remedial actions to protect personal data | |
US20050060541A1 (en) | Method and apparatus for providing security for a computer system | |
KR100945781B1 (ko) | 비보안 데이터 저장 공간에 대하여 쿼리들을 위한 결과들의신선함을 보장하기 위한 방법 | |
WO2024016049A1 (en) | A system and method for implementing responsive, cost-effective immutability and data integrity validation in cloud and distributed storage systems using distributed ledger and smart contract technology | |
CN109284622B (zh) | 联系人信息处理方法、装置及存储介质 | |
JP2023525896A (ja) | デジタル情報をセキュアに処理するためのセキュアエレメント | |
JP6464544B1 (ja) | 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理システム | |
US20240111884A1 (en) | Authenticating a File System Within Untrusted Storage | |
CN117251885A (zh) | 用于信息系统日志完整性保护的处理系统及方法 | |
CN118713914A (zh) | 隐私数据的跨设备管理方法、设备和系统 | |
JP2019212270A (ja) | 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130124 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |