KR20080049742A - 트랜잭션형의 봉인된 저장 - Google Patents

트랜잭션형의 봉인된 저장 Download PDF

Info

Publication number
KR20080049742A
KR20080049742A KR1020087006294A KR20087006294A KR20080049742A KR 20080049742 A KR20080049742 A KR 20080049742A KR 1020087006294 A KR1020087006294 A KR 1020087006294A KR 20087006294 A KR20087006294 A KR 20087006294A KR 20080049742 A KR20080049742 A KR 20080049742A
Authority
KR
South Korea
Prior art keywords
application
transactional
sealed
storage system
data
Prior art date
Application number
KR1020087006294A
Other languages
English (en)
Other versions
KR101330492B1 (ko
Inventor
닐스 티. 퍼구슨
스테이시 엔. 스토니치
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20080049742A publication Critical patent/KR20080049742A/ko
Application granted granted Critical
Publication of KR101330492B1 publication Critical patent/KR101330492B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography

Abstract

트랜잭션형의 봉인된 저장 시스템은 데이터가 트랜잭션적 속성에 따라 액세스될 수 있게 하는 한편, 데이터로의 액세스가 보안된 애플리케이션들에게만으로 제한될 수 있게 한다. 데이터가 액세스될 때 따르는 트랜잭션적 속성은 예를 들어 적어도 소정 레벨의 원자성, 일관성, 독립성 및 지속성을 포함할 수 있다. 데이터로의 액세스는 예를 들어 데이터를 암호화하는 것과 그 암호화된 데이터로의 액세스를 요청하는 임의의 애플리케이션을 인증하는 것을 포함하는 2층 구조의 보안 정책을 이용함으로써 제한될 수 있다.
트랜잭션, 봉인된 저장 시스템, 트랜잭션적 속성, 보안된 애플리케이션

Description

트랜잭션형의 봉인된 저장{TRANSACTIONAL SEALED STORAGE}
트랜잭션형 저장 시스템은 일반적으로, 적어도 부분적으로는, 줄여서 "ACID"라고 불리우는 원자성(atomicity), 일관성(consistency), 독립성(isolation), 지속성(durability)과 같은 다수의 바람직한 트랜잭션적 속성을 제공한다. 더 상세하게는, 원자성은 트랜잭션 내의 모든 변경이 커밋(commit)되거나 트랜잭션 내의 어떠한 변경도 커밋되지 않도록 트랜잭션을 실행하는 능력을 의미한다. 트랜잭션 내의 변경은 전체로서 취급되며 더 작은 부분집합들로 나뉘어지지 않기 때문에, 트랜잭션은 "원자적"이라고 불리운다. 일관성은 저장 시스템이 트랜잭션 개시시와 트랜잭션 종료시 둘다에서 합법적인 상태에 있음을 의미한다. 이는, 트랜잭션이 무결성 제약이라고 불리우는 저장 시스템의 규칙을 위반할 수 없음을 의미한다. 예를 들어, 저장 시스템이 동일 디렉토리 내의 어떠한 2개의 파일도 반드시 서로 다른 이름을 가져야 한다는 규칙을 갖는다면, 동일 디렉토리 내의 2개의 파일이 동일한 이름을 갖게 하는 어떠한 트랜잭션도 중단될 것이다.
독립성은 저장 시스템의 상태를 동시에 수정하려고 시도하는 다수의 프로그램이 서로 방해하지 않을 것을 보장하는 능력을 의미한다. 이상적으로, 저장 시스템은 그 구현이 수정들을 병렬로 실행할 수 있다 하더라도, 수정들이 소정의 순차적 순서로 행해지는 것처럼 거동한다. 지속성은 한 트랜잭션이 성공적으로 커밋되 고 나면, 그 트랜잭션은 지속될 것이며 취소되지 않을 것이라는 보증을 의미한다. 이는, 예를 들어 커밋된 트랜잭션이 시스템 고장에도 살아남을 것이며, 또한 커밋된 트랜잭션은 저장 시스템의 무결성 제약을 만족시킬 것임을 의미한다.
트랜잭션적 속성들, 특히 원자성 속성의 몇몇 이점을 설명하기 위하여, 퍼스널 컴퓨터로부터의 다양한 금융 트랜잭션이 수행될 수 있게 해 주는 온라인 뱅킹 애플리케이션에 대하여 고찰해 보기로 한다. 이 애플리케이션은 로컬 디스크 상에, 은행 계좌의 현재 상태, 그 계좌에 대한 과거 트랜잭션의 기록, 및 주가 이력 정보와 같은 정보를 저장할 것이다. 애플리케이션이 주식 매입을 처리하고 있는 중이며, 그 애플리케이션이 새롭게 매입된 지분에 대해 지불하기 위해 차변기입(debit)으로 은행 계좌를 갱신했다고 가정하자. 또한, 새롭게 매입된 지분으로 포트폴리오를 갱신하기 직전에, 퍼스널 컴퓨터에 전력 공급 실패가 있다고 가정하자. 비-트랜잭션형 저장 시스템에서는, 전력 공급이 복구된 후, 저장된 데이터는 지분에 대한 지불만 나타내고, 포트폴리오에는 지분을 나타내지 않을 것이다. 이러한 시나리오가 상당한 혼란과 의문을 유발할 것은 분명하다. 이러한 애플리케이션 대부분은 디스크 상의 다양한 여러 장소에서 정보를 갱신하는 경향이 있으며, 디스크에의 갱신이 실패할 수 있는 모든 가능한 방식을 찾는 것은 상당한 시간과 노력을 필요로 할 것이다. 따라서, 각각의 상황마다 특수한 복구 코드를 작성하는 것은 실용적이지 않다. 트랜잭션형 저장 시스템은 이러한 문제점들을 체계적으로 해결한다. 모든 갱신이 수행되거나, 아니면 어떠한 갱신도 수행되지 않는다. 어느 경우에서든, 저장 시스템 내의 정보는 일관되게 유지된다.
일부 저장 시스템들은 그들이 저장하는 데이터의 일부분에 대해서만 트랜잭션형이다. 예를 들어, 널리 사용되는 워싱턴주 레드몬드 소재 마이크로소프트사의 NTFS(New Technology File System)은 이와 같이 부분적으로 트랜잭션형인 파일 시스템이다. NTFS는 파일 메타데이터에 대해서는 트랜잭션형이지만, 파일 내부의 데이터에 대해서는 완전한 트랜잭션 보증을 제공하지 않는다. 이러한 부분적인 트랜잭션형 저장 시스템은, 저장된 데이터 중에서 트랜잭션적 속성의 이점이 가장 유리하게 작용하는 부분들에 대해서는 트랜잭션적 속성을 제공하면서, 저장된 데이터 전부에 트랜잭션형 시스템과 관련된 관리상의 복잡성의 부담을 안겨주지 않는다.
봉인된 저장 시스템은 트랜잭션형 저장 시스템의 이점과는 다른 이점들을 제공하는, 보다 더 최근에 소개된 다른 저장 시스템이다. 봉인된 저장 시스템은 기초 데이터로의 액세스를 하나 이상의 보안된 애플리케이션의 집합으로만 제한한다. 데이터로의 액세스를 이러한 방식으로 제한하면, 예를 들어 바이러스, 트로이 목마 프로그램 또는 저장된 데이터를 변경 및/또는 손상시키려고 할 수 있는 기타 악성 프로그램으로부터의 보호를 제공할 수 있다. 봉인된 저장 시스템은 저장된 데이터의 비밀성을 유지하는 것을 도움으로써, 사용자의 프라이버시도 보호할 수 있다. 앞에서 설명한 금융 데이터의 예에서는, 뱅킹 애플리케이션이 저장된 데이터를 읽거나 수정하도록 허가받은 유일한 보안된 애플리케이션일 수 있다. 이에 의해, 예를 들어 악의를 갖는 사용자들이 지불할 청구서 목록에 허위 청구서를 추가하거나 다르게는 인가되지 않은 방식으로 계좌에 차변기입하는 것, 또는 비밀인 금융 트랜잭션을 읽는 것을 막을 수 있다.
<발명의 개요>
이하에서는 트랜잭션형의 봉인된 저장 시스템이 설명될 것이다. 트랜잭션형의 봉인된 저장 시스템은 데이터가 트랜잭션적 속성에 따라 액세스될 수 있게 하고, 또한 데이터로의 액세스가 보안된 애플리케이션에게만으로 제한될 수 있게 한다. 데이터가 액세스될 때 따를 수 있는 트랜잭션적 속성은, 예를 들어 적어도 소정 레벨의 원자성, 일관성, 독립성 및 지속성을 포함할 수 있다. 데이터로의 액세스는, 예를 들어 데이터를 암호화하는 것과 그 암호화된 데이터로의 액세스를 요청하는 임의의 애플리케이션을 인증하는 것을 포함하는 2층 구조의 보안 정책을 이용함으로써 제한될 수 있다. 트랜잭션형의 봉인된 저장 시스템은 부분적으로 트랜잭션형일 수 있으며, 이는 기초 봉인된 데이터의 일부분만이 트랜잭션적 속성에 따라 액세스됨을 의미한다. 또한, 트랜잭션형의 봉인된 저장 시스템은 부분적으로 봉인될 수 있으며, 이는 기초 트랜잭션형 데이터의 일부분에 대한 액세스만이 보안된 애플리케이션들에게만으로 제한될 수 있을 것임을 의미한다.
이 개요는 아래의 상세한 설명에서 더 설명될 개념들 중 선택된 것을 간략화된 형태로 소개하기 위해 제공된 것이다. 이 개요는 청구되는 발명의 주제의 핵심적인 특징 또는 본질적인 특징을 확인하도록 의도된 것이 아니며, 청구되는 발명의 주제의 범위를 정하는 것을 돕기 위해 사용되도록 의도된 것도 아니다.
아래의 상세한 설명을 첨부도면들을 참조하여 읽고나면, 실시예들을 더 잘 이해할 수 있을 것이다.
도 1은 봉인된 저장 시스템의 상부에 트랜잭션형 저장 시스템을 갖는 예시적인 트랜잭션형의 봉인된 저장 시스템을 도시한 것이다.
도 2는 예시적인 구획화된 봉인된 데이터 컬렉션을 도시한 것이다.
도 3은 보안된 운영 체제를 이용하여 구현된, 예시적인 트랜잭션형의 봉인된 저장 시스템을 도시한 것이다.
도 4는 예시적인 계층화된 보안 모델을 도시한 것이다.
도 5는 트랜잭션형 저장 시스템의 상부에 봉인된 저장 시스템을 갖는 예시적인 트랜잭션형의 봉인된 저장 시스템을 도시한 것이다.
도 6은 트랜잭션형의 봉인된 데이터로의 액세스를 통제하기 위한 예시적인 방법의 흐름도이다.
도 7은 예시적인 컴퓨팅 장치를 나타낸 블럭도이다.
트랜잭션형의 봉인된 저장 시스템은 다양한 여러 구성을 이용하여 구현될 수 있다. 그러한 구성 중 하나는 봉인된 저장 시스템의 상부에 트랜잭션형 저장 시스템을 구축하는 것을 포함한다. 이러한 구성의 일례가 도 1에 도시되어 있다. 도시된 바와 같이, 이 구성은 트랜잭션형 부분(109)을 갖는 봉인된 데이터 컬렉션(101)을 갖는다. 트랜잭션형 부분(109)은 봉인된 데이터 컬렉션(101)의 전부, 또는 전부보다는 적은 부분을 구성할 수 있다.
봉인된 데이터 관리자(104)는 봉인된 데이터 컬렉션(101)으로의 액세스를 통제하여, 보안된 애플리케이션들의 집합만이 봉인된 데이터 컬렉션(101)에 액세스할 수 있게 한다. 보안된 애플리케이션들의 집합은 적어도 하나의 애플리케이션을 포함한다. 따라서, 도 1에는 단 하나의 보안된 애플리케이션(103)만이 도시되어 있지만, 봉인된 데이터 컬렉션에 액세스할 수 있는 2개 이상의 보안된 애플리케이션이 있을 수 있다. 봉인된 데이터 관리자(104)는 운영 체제 내에서 실행될 수도 있고, 그 자체로 자연히 "보안된 운영 체제"라고 불리우는 독립적인 운영 체제를 구성할 수도 있다.
봉인된 데이터 관리자(104)는 예를 들어 봉인된 데이터 컬렉션(101)을 암호화하고 또한 암호화된 데이터에 액세스하려고 요청하는 임의의 애플리케이션을 인증하는 것을 포함하는 2층 구조의 보안 정책을 이용함으로써, 봉인된 데이터 컬렉션(101)으로의 액세스를 통제할 수 있다. 더 상세하게는, 봉인된 데이터 관리자(104)는 암호화된 봉인된 데이터 컬렉션을 암호해독하는 데에 사용될 수 있는 암호해독키를 보유할 수 있다. 봉인된 데이터 컬렉션(101)에 액세스하려고 요청하는 애플리케이션이 이 키를 이용할 수 있게 하기 전에, 봉인된 데이터 관리자(104)는 요청측 애플리케이션의 아이덴티티의 검증을 요구할 수 있다. 요청측 애플리케이션의 아이덴티티가 검증되지 못하면, 봉인된 데이터 컬렉션(101)에 액세스하려는 그 애플리케이션의 요청은 거부될 수 있다.
봉인된 데이터 컬렉션(101)은 예를 들어 로컬 디스크 또는 데이터베이스와 같은 임의의 데이터 컬렉션일 수 있다. 봉인된 데이터 컬렉션(101)은 그것이 저장되어 있는 더 큰 기초 데이터 컬렉션의 일부분만일 수 있다. 예를 들어, 봉인된 데이터 컬렉션(101)은 로컬 디스크의 일부 또는 데이터베이스의 일부만일 수 있고, 다른 부분들은 다른 비보안된 애플리케이션들에게도 이용가능할 수 있다.
트랜잭션형 부분(109)은 봉인된 데이터 컬렉션 중에서, 트랜잭션적 속성에 따라 액세스될 수 있는 부분이다. 이러한 트랜잭션적 속성은 예를 들어, 적어도 소정 레벨의 원자성, 일관성, 독립성 및 지속성을 포함할 수 있다. 트랜잭션형 부분(109)은 밀봉된 데이터 컬렉션 중에서, 예를 들어 트랜잭션적 속성에 따라 데이터에 액세스하는 것이 가장 이로울 부분들을 포함할 수 있다. 다르게는, 트랜잭션형 부분(109)은 봉인된 데이터 컬렉션(101) 중에서, 예를 들어 트랜잭션적 속성에 따라 데이터에 액세스하는 것이 가장 효율적이고/거나 비용 효율적인 부분들을 포함할 수 있다. 트랜잭션형 부분(109)은 봉인된 데이터 컬렉션(101) 내의 데이터 조직의 임의의 유닛을 포함할 수 있다. 예를 들어, 봉인된 데이터 컬렉션(101)이 관계형 데이터베이스인 경우, 트랜잭션형 부분(109)은 완전한 테이블, 또는 테이블의 특정 행 또는 열과 같은 조직의 유닛들을 포함할 수 있다.
트랜잭션형 데이터 관리자(102)는 트랜잭션적 속성에 따라 트랜잭션형 부분(109)으로의 액세스를 관리한다. 트랜잭션형 데이터 관리자(102)는 예를 들어 트랜잭션형 데이터베이스 관리 시스템(DBMS)일 수 있다. 이러한 트랜잭션형 DBMS 중 하나는 앞서 언급한 워싱턴주 레드몬드 소재의 마이크로소프트사의 SQL 서버이다.
트랜잭션형 부분(109) 내의 데이터는 효율성, 보안성, 프라이버시, 및 트랜잭션형 저장과 봉인된 저장 둘다와 관련된 기타 바람직한 이점들을 향유한다. 이러한 이점들을 설명하기 위하여, 트랜잭션형 부분(109)이 금융 데이터이고, 보안된 애플리케이션(103)이 그 금융 데이터를 액세스하고 조작할 수 있는, 앞서 언급된 금융 애플리케이션인 시나리오를 고찰해보기로 하자. 이 시나리오에서, 트랜잭션형 부분(109) 내의 금융 데이터는, 예를 들어 금융 계좌는 새롭게 매입한 지분에 대하여 지불하도록 차변기입되지만 새롭게 매입된 지분이 포트폴리오에 기록되기 전에 전력 공급 실패가 발생하는, 앞서 언급한 상황을 막는 것과 같은, 트랜잭션상의 이점을 향유할 수 있다. 또한, 트랜잭션형 부분(109) 내의 금융 데이터는 예를 들어, 비밀성, 프라이버시, 및 금융 데이터를 읽으려고 시도하는 인가되지 않은 당사자로부터의 보호와 같은 보안상의 이점을 향유할 수 있다. 이에 더하여, 금융 데이터는 바이러스, 트로이 목마 프로그램, 또는 예를 들어 존재하지 않거나 인가되지 않은 목적을 위해 계좌에 차변기입함으로써 금융 데이터를 변경할 수 있는 다른 악의있는 사용자들로부터 보호된다.
도 1에 도시된 것과 같은 봉인된 저장 시스템의 상부에 있는 트랜잭션형 저장 시스템이 있는 구성은, 트랜잭션형의 봉인된 저장 시스템 내에 실제 데이터를 봉인하는 것에 더하여, 실제 데이터에 액세스하는 애플리케이션들에 관한 관리 데이터를 봉인하는 이점을 갖기 때문에, 다른 구성들에게도 바람직할 수 있다. 이러한 관리 데이터의 봉인은, 보안된 애플리케이션(103)의 과거 활동에 관한 정보에 대한 비밀성을 보유할 수 있기 때문에 유리할 수 있다.
봉인된 데이터 컬렉션(101)은 소정의 보안된 애플리케이션들만이 그 컬렉션 내의 각 구획에 액세스할 수 있도록 구획화될 수 있다. 예시적인 구획화된 봉인된 데이터 컬렉션이 도 2에 도시되어 있다. 도시된 바와 같이, 보안된 애플리케이 션(103z)은 구획(101a)으로의 액세스를 갖고, 보안된 애플리케이션(103y 및 103x)은 구획(101b)으로의 액세스를 갖고, 보안된 애플리케이션(103w)은 구획(103c)으로의 액세스를 갖는다. 각각의 구획(101a-c)은 대응하는 트랜잭션형 부분(109a-c)을 갖는다. 트랜잭션형 부분(109a-c)은 그 각각의 구획(101a-c)의 전부 또는 전부보다 적은 부분을 포함할 수 있다. 봉인된 데이터 관리자(104)는 구획화된 섹션(101a-c) 각각마다 대응하는 별도의 암호해독키 집합을 보유할 수 있고, 그에 의해 특정한 보안된 애플리케이션들만이 각각의 봉인된 구획(101a-c)에 액세스하게 할 수 있다. 도 2에는 도시되지 않았지만, 하나의 보안된 애플리케이션이 하나보다 많은 구획으로의 액세스를 가질 수 있다.
앞에서 언급한 바와 같이, 봉인된 데이터 관리자(104) 자체가 보안된 운영 체제를 구성할 수 있다. 일부 경우들에서는, 단일 호스트 컴퓨팅 디바이스가, 다수의 "가상" 운영 체제가 그 단일 호스트 상에서 동시에 동작할 수 있도록 구성될 수 있다. 그러한 가상 운영 체제 중 하나가 보안된 가상 운영 체제일 수 있다. 이러한 보안된 가상 운영 체제를 이용하여 구현되는 예시적인 트랜잭션형의 봉인된 저장 시스템이 도 3에 도시되어 있다. 도시된 바와 같이, 도 3의 시스템은, 단일 호스트 컴퓨팅 장치(210) 상에서 다수의 가상 운영 체제(211a-c)를 관리하는 공지된 소프트웨어 컴포넌트인 하이퍼바이저(212)를 포함한다. 보안된 가상 운영 체제(211a)는 보안된 애플리케이션(103)(및 가능하게는, 보안된 운영 체제(211a) 내에 다른 보안된 애플리케이션들이 있다면, 그 다른 보안된 애플리케이션들)을 위해 보안된 환경을 제공하는 가상 운영 체제이다. 이러한 보안 환경을 제공하기 위하 여, 보안된 가상 운영 체제(211a)는 봉인된 데이터 컬렉션(101)으로의 액세스를 보안된 애플리케이션(103)들에게만으로 제한한다. 가상 운영 체제(211b 및 211c)는 호스트(210) 상에서 실행중인 다른 가상 운영 체제이다. 호스트(210)는 임의의 개수의 가상 운영 체제를 포함할 수 있으며, 하나보다 많은 보안된 가상 운영 체제를 포함할 수 있다.
봉인된 데이터 컬렉션(101)은 디스크(220)의 일부분이다. 도 1과 마찬가지로, 봉인된 데이터 컬렉션(101)은 트랜잭션적 속성에 따라 액세스될 수 있는 트랜잭션형 부분(109)을 포함한다. 트랜잭션형 데이터 관리자(102)는 트랜잭션적 속성에 따라 트랜잭션형 부분(109)으로의 액세스를 관리한다. 봉인된 데이터 컬렉션(101)은 보안된 가상 운영 체제(211a)에 의해 액세스가 통제되는 디스크(220)의 일부분이기 때문에, "가상 디스크"라고 불리울 수 있다. 디스크(220)의 다른 부분들로의 액세스는 가상 운영 체제(211b 및 211c)에 의해 통제될 수 있다. 도 3에서, 디스크(220)는 호스트(210) 내에 전체가 포함된 로컬 디스크로서 도시되어 있다. 이와 같이 전체가 포함된 로컬 디스크는 예를 들어 로컬 하드 드라이브일 수 있다. 그러나, 디스크(220)가 반드시 호스트(210) 내에 포함될 필요는 없다. 가상 운영 체제(211a-c)가 외부 디스크로의 액세스를 갖는 것도 가능하다. 또한, 트랜잭션형 데이터 관리자(102)도 호스트(210) 내에 포함되어 있는 것으로 도시되어 있지만, 트랜잭션형 데이터 관리자(102)는 그와 달리 호스트(210) 외부에 있을 수 있다.
도 3의 시스템은 계층화된 보안 모델에 따라 구현될 수 있다. 예시적인 계 층화된 보안 모델이 도 4에 도시되어 있다. 모델의 최상위층은 최상위층 키 발행자(400)이다. 최상위층 키 발행자(400)는 예를 들어 신뢰된 플랫폼 모듈(TPM)일 수 있다. 일반적으로, 최상위층 키 발행자(400)는, 그 중 하나가 하이퍼바이저(212a)인 제2층 애플리케이션들(212a-c)에게 키 집합들(401a-c)을 발행한다. 상세하게는, 키 집합(401a)은 하이퍼바이저(212a)에게 발행되고, 키 집합(401b)은 제2층 애플리케이션(212b)에게 발행되고, 키 집합(401c)은 제2층 애플리케이션(212c)에게 발행된다. 예상할 수 있는 바와 같이, 도 3에는 3개의 제2층 애플리케이션(212a-c)만이 도시되어 있지만, 어떠한 개수의 제2층 애플리케이션이라도 존재할 수 있다. 3개의 키 집합(401a-c) 각각은 그에 대응하는 제2층 애플리케이션(212a-c)의 고유한 보안 키 집합이다.
다음으로, 하이퍼바이저(212)는 호스트(210) 상에 있는 3개의 가상 운영 체제(211a-c) 각각에 키 집합을 제공한다. 그리고, 하이퍼바이저(212)는 3개의 고유한 개별 키(401aa-401ac)를 발행한다. 도 3에는 도시되지 않았지만, 다른 제2층 애플리케이션들(212b 및 212c)도 다른 키를 발행할 수 있다. 그 다음, 보안된 가상 운영 체제(211a)는 3개의 고유한 개별 키(401aaa-401aac)를 발행한다. 키(401aaa)는 도 2의 구획(101a)을 암호화하는 데에 이용되고, 키(401aab)는 도 2의 구획(101b)을 암호화하는 데에 이용되고, 키(401aac)는 도 2의 구획(101c)을 암호화하는 데에 이용된다. 보안된 애플리케이션(103z)이 구획(101a)으로의 액세스를 요청하면, 보안된 운영 체제(211a)는 보안된 애플리케이션(103z)을 인증한 후에, 구획(101a)을 암호해독하기 위해 보안된 애플리케이션(103z)에 키(401aaa)를 제공한다. 보안된 애플리케이션(103y 또는 103x)이 구획(101b)으로의 액세스를 요청하면, 보안된 운영 체제(211a)는 보안된 애플리케이션(103y 또는 103x)를 인증한 후에, 구획(101b)를 암호해독하기 위해 보안된 애플리케이션(103x 또는 103y)에 키(401aab)를 제공한다. 보안된 애플리케이션(103w)이 구획(101c)으로의 액세스를 요청하면, 보안된 운영 체제(211a)는 보안된 애플리케이션(103w)을 인증한 후에, 구획(101c)을 암호해독하기 위해 보안된 애플리케이션(103w)에 키(401aac)를 제공한다.
봉인된 저장 시스템의 상부에 트랜잭션형 저장 시스템을 구성하는 것에 더하여, 트랜잭션형 저장 시스템의 상부에 봉인된 저장 시스템이 구성되는 것도 가능하다. 이러한 구성의 일례가 도 5에 도시되어 있다. 도 5의 시스템은 봉인된 부분(108)을 갖는 트랜잭션형 데이터 컬렉션(105)을 포함한다. 봉인된 부분(108)은 트랜잭션형 데이터 컬렉션(105)의 전부를 구성할 수도 있고, 트랜잭션형 데이터 컬렉션(105)의 전부보다는 적은 부분을 구성할 수도 있다.
트랜잭션형 데이터 컬렉션(105)은 예를 들어 로컬 디스크 또는 데이터베이스와 같은 임의의 데이터 컬렉션일 수 있다. 트랜잭션형 데이터 컬렉션(105)은 그것이 저장되어 있는 보다 더 큰 기초 데이터 컬렉션의 일부분만일 수 있다. 예를 들어, 트랜잭션형 데이터 컬렉션(105)은 로컬 디스크의 일부 또는 데이터베이스의 일부만일 수 있고, 다른 부분들은 비트랜잭션형 데이터를 포함할 수 있다.
봉인된 부분(108)은, 트랜잭션형 데이터 컬렉션(105) 중에서, 보안된 애플리케이션(103)과 같은 하나 이상의 보안된 애플리케이션의 대응 집합만이 액세스할 수 있는 부분이다. 봉인된 부분(108)은 트랜잭션형 데이터 컬렉션(105) 중에서, 예를 들어 액세스를 제한하는 것이 가장 이롭고, 데이터가 인가되지 않은 당사자에 의해 액세스 및/또는 손상된다면 가장 큰 위험이 발생할, 가장 사적이고 비밀인 부분들을 포함할 수 있다. 봉인된 부분(108)은 트랜잭션형 데이터 컬렉션(105) 내의 데이터 조직의 임의의 유닛을 포함할 수 있다. 예를 들어, 트랜잭션형 데이터 컬렉션(105)이 관계형 데이터베이스라면, 봉인된 부분(108)은 완전한 테이블, 또는 테이블의 특정 행 또는 열과 같은 조직의 유닛들을 포함할 수 있다. 도 1의 트랜잭션형 부분(109)과 마찬가지로, 봉인된 부분 내의 데이터는 효율성, 보안성, 프라이버시, 및 트랜잭션형 저장과 봉인된 저장 둘다와 관련된 기타 바람직한 이점들을 향유한다.
봉인된 저장 시스템의 상부에 트랜잭션형 저장 시스템을 구축하거나, 그 역으로 구축하는 것에 더하여, 트랜잭션형의 봉인된 저장 시스템은 "단일화"된 구성을 이용해서도 구현될 수 있다. 단일화된 구성은 예를 들어, 저장 시스템의 트랜잭션형 국면과 봉인된 국면 둘다를 관리하는 하나의 단일화된 데이터 관리자를 이용하여 구현될 수 있다.
트랜잭션형의 봉인된 데이터로의 액세스를 통제하기 위한 예시적인 방법의 흐름도가 도 6에 도시된다. 블럭(600)에서, 봉인된 데이터 관리자(104)는 트랜잭션형의 봉인된 데이터에 액세스하려는 요청을 요청측 애플리케이션으로부터 수신한다. 블럭(602)에서, 봉인된 데이터 관리자(104)는 요청측 엔티티가 보안된 애플리케이션인지를 판정한다. 요청측 애플리케이션이 보안된 애플리케이션이 아니라면, 블럭(606)에서 그 요청이 거부될 것이다. 요청측 애플리케이션이 보안된 애플리케이션인지 여부에 관한 판정은, 예를 들어 봉인된 트랜잭션형 데이터를 이용할 수 있는 보안된 애플리케이션들의 목록을 조사함으로써 이루어질 수 있다. 물론, 요청측 애플리케이션은 봉인된 트랜잭션형 데이터 중에서, 그것이 액세스하려고 요청한 부분에 대해 보안된 애플리케이션이어야 한다. 예를 들어, 다시 도 2를 보면, 애플리케이션(103z)이 보안된 애플리케이션이긴 하지만, 이것은 구획(101a)에 대해서만 보안된다. 따라서, 보안된 애플리케이션(103z)이 구획(101b)에 액세스하려고 요청하는 경우, 보안된 애플리케이션(103z)은 구획(101b)에 대해서는 보안되지 않기 때문에, 그 요청이 거부될 것이다.
요청측 애플리케이션이 보안된 애플리케이션이라면(또는 적어도 보안된 애플리케이션이라고 주장하는 것이라면), 블럭(604)에서, 봉인된 데이터 관리자(104)는 요청측 애플리케이션의 아이덴티티를 인증하려고 시도할 것이다. 블럭(608)에서, 요청측 애플리케이션이 인증될 수 있는지가 판정된다. 요청측 애플리케이션이 인증될 수 없으면, 블럭(606)에서 그 요청이 거부된다. 반면에, 요청측 애플리케이션이 인증되면, 블럭(610)에서 적절한 암호해독키가 요청측 애플리케이션에 제공된다. 그 다음, 블럭(612)에서, 트랜잭션형 데이터 관리자(102)는 트랜잭션적 속성에 따라 요청측 애플리케이션의 트랜잭션형의 봉인된 데이터로의 액세스를 관리한다.
인증 절차는 예를 들어 요청측 애플리케이션을 고유하게 식별하는 애플리케이션 실행파일(executable)의 해시값을 계산함으로써 수행될 수 있다. 그 다음, 계산된 해시값은 요청측 애플리케이션이 자신이 그것이라고 주장하는 애플리케이션을 위한 저장된 해시값과 비교된다. 값들이 일치하면 요청측 애플리케이션은 인증되고, 값들이 일치하지 않으면 요청측 애플리케이션은 인증되지 못한다.
앞에서 설명한 2층 구조의 암호화 및 인증 정책의 대안으로서, 또는 그에 더하여, 봉인된 데이터 관리자(104)는 봉인된 데이터로의 액세스를 통제하기 위하여 다수의 다른 기술들을 이용할 수 있다. 예를 들어, 봉인된 데이터 관리자(104)는, 애플리케이션으로부터 봉인된 데이터 컬렉션 내에서 데이터를 읽거나 쓰려는 요청을 수신한 때에, 필터링 프록시로서 동작할 수 있다. 구체적으로, 봉인된 데이터 관리자(104)는 요청측 애플리케이션의 액세스 권리를 조사할 수 있고, 요청이 허용되는 것이라면, 요청된 동작을 수행할 수 있다. 또한, 봉인된 데이터 관리자(104)는 기초 하드웨어 또는 운영 체제에, 봉인된 데이터 컬렉션으로의 보안된 애플리케이션 액세스를 허가하도록 지시할 수 있다. 또한, 앞에서 설명한 2층 구조의 암호화 및 인증 정책에 더하여, 악성 프로그램 또는 애플리케이션이 암호화된 데이터를 수정하는 것을 방지하기 위하여 다른 보안 시스템들이 이용될 수 있다.
도 7은 도 1 내지 도 6과 관련하여 설명된 주제들이 구현될 수 있는 적합한 컴퓨팅 시스템 환경(100)의 일례를 도시한 것이다. 컴퓨팅 시스템 환경(100)은 적합한 컴퓨팅 환경의 일례에 불과하며, 본 발명의 용도 또는 기능성의 범위에 관해 어떤 제한을 제안하고자 하는 것이 아니다. 컴퓨팅 환경(100)이 예시적인 운영 환경(100)에 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 어떤 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
도 7과 관련하여, 본 발명을 구현하는 예시적인 시스템은 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들은 처리 장치(120), 시스템 메모리(130), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(120)에 연결시키는 시스템 버스(121)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(industry standard architecture) 버스, MCA(micro channel architecture) 버스, EISA(Enhanced ISA) 버스, VESA(video electronics standard association) 로컬 버스, 그리고 메자닌 버스(mezzanine bus)로도 알려진 PCI(peripheral component interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(110)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저 장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(110)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되는 것으로 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(110) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(133)은 통상적으로 ROM(131)에 저장되어 있다. RAM(132)은 통상적으로 처리 장치(120)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 7은 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만 이에 제한되는 것은 아니 다.
컴퓨터(110)는 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예로서, 도 7은 비이동식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(141), 이동식·비휘발성 자기 디스크(152)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(151), CD-RW, DVD-RW 또는 기타 광 매체 등의 이동식·비휘발성 광 디스크(156)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(155)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 기억 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(141)는 통상적으로 인터페이스(140)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에서 설명되고 도 7에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터(110)를 위해, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 7에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모 듈(136), 및 프로그램 데이터(137)와 동일하거나 그와 다를 수 있다는 것이다. 이에 관해, 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다. 사용자는 키보드(162), 및 마우스, 트랙볼(trackball) 또는 터치 패드와 같은 포인팅 장치(161) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스(121)에 결합된 사용자 입력 인터페이스(160)를 통해 처리 장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 그래픽 인터페이스(182)도 시스템 버스(121)에 접속될 수 있다. 하나 이상의 그래픽 처리 장치(GPU)(184)가 그래픽 인터페이스(182)와 통신할 수 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도, 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속될 수 있으며, 비디오 인터페이스(190)는 비디오 메모리(186)와 통신할 수 있다. 모니터(191) 외에, 컴퓨터는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(195)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 도 7에는 메모리 저장 장치(181)만이 도시되어 있지만, 통상적으로 컴퓨터(110)와 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함한다. 도 7에 도시된 논리적 접속으로는 LAN(171) 및 WAN(173)이 있지만, 기타 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 가정, 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 통상적으로 인터넷과 같은 WAN(173)을 통해 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121)에 접속된다. 네트워크화된 환경에서, 컴퓨터(110)와 관련하여 기술된 프로그램 모듈들 또는 그 일부는 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 7은 원격 애플리케이션 프로그램(185)이 메모리 장치(181)에 있는 것으로 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
발명의 주제가 구조적 특징 및/또는 방법적 단계에 특정한 언어들로 기술되었지만, 첨부된 특허청구범위에 정의된 주제는 반드시 앞에 설명된 특정한 특징들 또는 단계들로 한정되지 않는다는 점을 알 것이다. 오히려, 앞에 설명된 특정한 특징들 또는 단계들은 청구항들을 구현하는 예시적인 형태로서 개시된 것이다.

Claims (20)

  1. 트랜잭션형의 봉인된 저장 시스템으로서,
    적어도 하나의 보안된 애플리케이션에 의해서만 액세스될 수 있도록 봉인된, 기초 봉인된 데이터 컬렉션, 및
    트랜잭션적 속성에 따라 상기 기초 봉인된 데이터 컬렉션의 일부분으로의 액세스를 제공하는 트랜잭션형 데이터 관리자
    를 포함하는 저장 시스템.
  2. 제1항에 있어서, 상기 기초 봉인된 데이터 컬렉션은 암호화되는 저장 시스템.
  3. 제2항에 있어서, 상기 적어도 하나의 보안된 애플리케이션이 액세스할 수 있는 암호해독키를 더 포함하는 저장 시스템.
  4. 제3항에 있어서, 상기 암호해독키에 액세스하려고 시도하는 요청측 애플리케이션에게 상기 암호해독키를 제공하기 전에, 상기 요청측 애플리케이션을 인증함으로써, 상기 암호해독키로의 액세스를 통제하는 봉인된 데이터 관리자를 더 포함하는 저장 시스템.
  5. 제4항에 있어서, 상기 봉인된 데이터 관리자는 상기 요청측 애플리케이션을 고유하게 식별하는 애플리케이션 실행파일의 해시값을 계산하고, 계산된 해시값을 저장된 대응 해시값과 비교함으로써, 상기 요청측 애플리케이션을 인증하는 저장 시스템.
  6. 제4항에 있어서, 상기 봉인된 데이터 관리자는 보안된 운영 체제인 저장 시스템.
  7. 제4항에 있어서, 상기 봉인된 데이터 관리자 및 상기 트랜잭션형 데이터 관리자는 하나의 단일화된 트랜잭션형의 봉인된 데이터 관리자의 일부분으로서 구현되는 저장 시스템.
  8. 제1항에 있어서, 상기 기초 봉인된 데이터 컬렉션의 상기 일부분은 상기 기초 봉인된 데이터 컬렉션의 전체인 저장 시스템.
  9. 제1항에 있어서, 상기 기초 봉인된 데이터 컬렉션의 상기 일부분은 상기 기초 봉인된 데이터 컬렉션의 전체보다 적은 부분을 포함하는 저장 시스템.
  10. 트랜잭션형의 봉인된 저장 시스템으로서,
    트랜잭션적 속성에 따라 액세스되는 기초 트랜잭션형 데이터 컬렉션, 및
    적어도 하나의 보안된 애플리케이션에 의해서만 액세스되도록, 상기 기초 트랜잭션형 데이터 컬렉션의 일부분을 봉인하는 봉인된 데이터 관리자
    를 포함하는 저장 시스템.
  11. 제10항에 있어서, 상기 트랜잭션적 속성에 따라 상기 기초 트랜잭션형 데이터 컬렉션으로의 액세스를 제공하는 트랜잭션형 데이터 관리자를 더 포함하는 저장 시스템.
  12. 제11항에 있어서, 상기 봉인된 데이터 관리자 및 상기 트랜잭션형 데이터 관리자는 하나의 단일화된 트랜잭션형의 봉인된 데이터 관리자의 일부분으로서 구현되는 저장 시스템.
  13. 제11항에 있어서, 상기 기초 트랜잭션형 데이터 컬렉션의 상기 봉인된 일부분은 암호화되는 저장 시스템.
  14. 제13항에 있어서, 상기 적어도 하나의 보안된 애플리케이션이 액세스할 수 있는 암호해독키를 더 포함하는 저장 시스템.
  15. 제14항에 있어서, 상기 봉인된 데이터 관리자는, 상기 암호해독키에 액세스하려고 시도하는 요청측 애플리케이션에 상기 암호해독키를 제공하기 전에, 상기 요청측 애플리케이션을 인증함으로써, 상기 암호해독키로의 액세스를 통제하는 저장 시스템.
  16. 제15항에 있어서, 상기 봉인된 데이터 관리자는 상기 요청측 애플리케이션을 고유하게 식별하는 애플리케이션 실행파일의 해시값을 계산하고, 계산된 해시값을 저장된 대응 해시값과 비교함으로써, 상기 요청측 애플리케이션을 인증하는 저장 시스템.
  17. 트랜잭션형의 봉인된 데이터로의 액세스를 통제하기 위한 방법으로서,
    애플리케이션으로부터 상기 데이터에 액세스하려는 요청을 수신하는 단계,
    상기 애플리케이션이 상기 데이터에 액세스하도록 허가받은 보안된 애플리케이션인지를 판정하는 단계,
    상기 애플리케이션이 보안된 애플리케이션인 경우, 트랜잭션적 속성에 따라 상기 애플리케이션에 상기 데이터로의 액세스를 제공하는 단계, 및
    상기 애플리케이션이 보안된 애플리케이션이 아닌 경우, 상기 요청을 거부하는 단계
    를 포함하는 방법.
  18. 제17항에 있어서, 상기 애플리케이션에 상기 데이터로의 액세스를 제공하는 단계는, 상기 애플리케이션에 상기 데이터를 암호해독하기 위한 암호해독키를 제공 하는 단계를 포함하는 방법.
  19. 제17항에 있어서, 상기 애플리케이션의 아이덴티티를 검증하려고 시도함으로써 상기 애플리케이션을 인증하고, 상기 애플리케이션의 아이덴티티가 검증되지 못하면 상기 요청을 거절하는 단계를 더 포함하는 방법.
  20. 제19항에 있어서, 상기 애플리케이션을 인증하는 단계는,
    상기 애플리케이션을 고유하게 식별하는 애플리케이션 실행파일의 해시값을 계산하는 단계, 및
    상기 계산된 해시값이 상기 애플리케이션에 대응하는 저장된 해시값과 일치하는지를 판정하는 단계
    를 포함하는 방법.
KR1020087006294A 2005-09-15 2006-09-13 트랜잭션형의 봉인된 저장 KR101330492B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/227,659 2005-09-15
US11/227,659 US8799680B2 (en) 2005-09-15 2005-09-15 Transactional sealed storage
PCT/US2006/035940 WO2007035453A1 (en) 2005-09-15 2006-09-13 Transactional sealed storage

Publications (2)

Publication Number Publication Date
KR20080049742A true KR20080049742A (ko) 2008-06-04
KR101330492B1 KR101330492B1 (ko) 2013-11-15

Family

ID=37856694

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087006294A KR101330492B1 (ko) 2005-09-15 2006-09-13 트랜잭션형의 봉인된 저장

Country Status (5)

Country Link
US (1) US8799680B2 (ko)
KR (1) KR101330492B1 (ko)
CN (1) CN101263463B (ko)
RU (1) RU2458385C2 (ko)
WO (1) WO2007035453A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092823B2 (en) * 2007-06-01 2015-07-28 F-Secure Oyj Internet fraud prevention
US9203869B2 (en) * 2009-01-16 2015-12-01 Broadcom Corporation Method and system for optimizing communication in a home network via a gateway
US8375437B2 (en) * 2010-03-30 2013-02-12 Microsoft Corporation Hardware supported virtualized cryptographic service
US8983855B1 (en) 2011-05-16 2015-03-17 Mckesson Financial Holdings Systems and methods for evaluating adherence to a project control process
EP2742473B1 (en) * 2011-08-08 2022-07-13 Bloomberg Finance L.P. System and method for electronic distribution of software and data
CN102567233B (zh) * 2011-12-23 2014-07-02 福建升腾资讯有限公司 基于磁盘虚拟技术的usb存储设备数据保护方法
US8650645B1 (en) * 2012-03-29 2014-02-11 Mckesson Financial Holdings Systems and methods for protecting proprietary data
US9619653B2 (en) * 2012-07-31 2017-04-11 Adobe Systems Incorporated System and method for detecting a security compromise on a device
CN104123506B (zh) * 2013-04-28 2018-03-09 北京壹人壹本信息科技有限公司 数据访问方法、装置、数据加密、存储及访问方法、装置
US10691476B2 (en) 2015-06-27 2020-06-23 Mcafee, Llc Protection of sensitive data
RU2626350C1 (ru) * 2016-04-11 2017-07-26 Андрей Сергеевич Моляков Способ функционирования операционной системы вычислительного устройства программно-аппаратного комплекса
US10789179B1 (en) * 2017-10-06 2020-09-29 EMC IP Holding Company LLC Decentralized access management in information processing system utilizing persistent memory

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3854384T2 (de) 1987-11-30 1996-03-28 Ibm Verfahren zum Betreiben eines einen anteilig genutzten virtuellen Speicher verwendenden Multiprozessorsystems.
US5148481A (en) * 1989-10-06 1992-09-15 International Business Machines Corporation Transaction system security method and apparatus
US5944821A (en) * 1996-07-11 1999-08-31 Compaq Computer Corporation Secure software registration and integrity assessment in a computer system
US6446092B1 (en) * 1996-11-01 2002-09-03 Peerdirect Company Independent distributed database system
US5924094A (en) * 1996-11-01 1999-07-13 Current Network Technologies Corporation Independent distributed database system
US5937159A (en) * 1997-03-28 1999-08-10 Data General Corporation Secure computer system
US5897638A (en) 1997-06-16 1999-04-27 Ab Initio Software Corporation Parallel virtual file system
US6336121B1 (en) * 1998-03-24 2002-01-01 Entrust Technologies, Ltd. Method and apparatus for securing and accessing data elements within a database
US6272607B1 (en) * 1998-08-28 2001-08-07 International Business Machines Corporation Method and apparatus for transactional writing of data into a persistent memory
US6785810B1 (en) * 1999-08-31 2004-08-31 Espoc, Inc. System and method for providing secure transmission, search, and storage of data
CA2305249A1 (en) * 2000-04-14 2001-10-14 Branko Sarcanin Virtual safe
CN1277396A (zh) * 2000-07-05 2000-12-20 孙巍 一种电子名片的实现方法及其系统
US7730213B2 (en) 2000-12-18 2010-06-01 Oracle America, Inc. Object-based storage device with improved reliability and fast crash recovery
US7266699B2 (en) * 2001-08-30 2007-09-04 Application Security, Inc. Cryptographic infrastructure for encrypting a database
KR20040037074A (ko) 2001-08-31 2004-05-04 페이세터 피티이 리미티드 전자 메시징을 이용한 금융 거래 시스템 및 방법
KR20030056540A (ko) 2001-12-28 2003-07-04 한국전자통신연구원 데이터베이스 관리 시스템에서 시스템 고장에 대비한 파일삭제 및 회복 방법
US7343493B2 (en) 2002-03-28 2008-03-11 Lenovo (Singapore) Pte. Ltd. Encrypted file system using TCPA
US7487365B2 (en) * 2002-04-17 2009-02-03 Microsoft Corporation Saving and retrieving data based on symmetric key encryption
US7890771B2 (en) * 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
US7114051B2 (en) * 2002-06-01 2006-09-26 Solid State System Co., Ltd. Method for partitioning memory mass storage device
EP1636936A2 (en) 2003-06-17 2006-03-22 Visa International Service Association Method and systems for securely exchanging data in an electronic transaction
US6898555B2 (en) 2003-07-14 2005-05-24 Aladdin Knowledge Systems Ltd. Method for indicating the integrity of use-information of a computer program
US20050039001A1 (en) * 2003-07-30 2005-02-17 Microsoft Corporation Zoned based security administration for data items
US7530103B2 (en) 2003-08-07 2009-05-05 Microsoft Corporation Projection of trustworthiness from a trusted environment to an untrusted environment
US8060756B2 (en) * 2003-08-07 2011-11-15 Rao G R Mohan Data security and digital rights management system
US7313679B2 (en) * 2003-10-17 2007-12-25 Intel Corporation Extended trusted computing base
US20050108276A1 (en) 2003-11-13 2005-05-19 Ramani Sriram Methods and system for dynamic database content persistence and information management

Also Published As

Publication number Publication date
WO2007035453A1 (en) 2007-03-29
CN101263463B (zh) 2012-05-30
RU2008110057A (ru) 2009-09-20
RU2458385C2 (ru) 2012-08-10
CN101263463A (zh) 2008-09-10
US20070061596A1 (en) 2007-03-15
US8799680B2 (en) 2014-08-05
KR101330492B1 (ko) 2013-11-15

Similar Documents

Publication Publication Date Title
KR101330492B1 (ko) 트랜잭션형의 봉인된 저장
US8799651B2 (en) Method and system for encrypted file access
US8321667B2 (en) Security model for common multiplexed transactional logs
US7904732B2 (en) Encrypting and decrypting database records
CA2287871C (en) Secure document management system
US7290279B2 (en) Access control method using token having security attributes in computer system
US6898707B1 (en) Integrating a digital signature service into a database
US20050060561A1 (en) Protection of data
US20120310983A1 (en) Executable identity based file access
JP2018537022A (ja) デジタルアイデンティティを管理するためのシステム及び方法
CN1203394A (zh) 在安全存储区中保护应用程序数据的方法和装置
CN102906755A (zh) 利用证书撤销列表的内容控制方法
KR20140051350A (ko) 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법
CN103888467A (zh) 一种面向共享的安全文件夹加密系统
US20220141014A1 (en) Storing secret data on a blockchain
KR20010100011A (ko) 보안 카운터를 경유하여 데이터 통합성을 보증하는 방법
Smith et al. The craft of system security
CN107147649A (zh) 基于云存储的数据优化调度方法
CN107135223A (zh) 海量数据管理系统的数据持久化方法
US7765407B2 (en) Method and apparatus for providing centralized user authorization to allow secure sign-on to a computer system
US20060015860A1 (en) System and method for storing attributes in a file for processing an operating system
US20060015723A1 (en) System and method for authorizing the use of stored information in an operating system
CN110914826A (zh) 用于分布式数据映射的系统和方法
Nguyen Exploring applications of blockchain in securing electronic medical records
Chang Is distributed ledger technology built for personal data?

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: 20161019

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181018

Year of fee payment: 6