KR101732491B1 - 컴퓨팅 시스템에서의 저장 데이터의 무암호화 무결성 보호를 가능하게 하는 메카니즘 - Google Patents

컴퓨팅 시스템에서의 저장 데이터의 무암호화 무결성 보호를 가능하게 하는 메카니즘 Download PDF

Info

Publication number
KR101732491B1
KR101732491B1 KR1020157002272A KR20157002272A KR101732491B1 KR 101732491 B1 KR101732491 B1 KR 101732491B1 KR 1020157002272 A KR1020157002272 A KR 1020157002272A KR 20157002272 A KR20157002272 A KR 20157002272A KR 101732491 B1 KR101732491 B1 KR 101732491B1
Authority
KR
South Korea
Prior art keywords
cipher code
new
code
data block
computing device
Prior art date
Application number
KR1020157002272A
Other languages
English (en)
Other versions
KR20150028826A (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 KR20150028826A publication Critical patent/KR20150028826A/ko
Application granted granted Critical
Publication of KR101732491B1 publication Critical patent/KR101732491B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

일 실시예에 따른 컴퓨팅 시스템들에서의 저장 데이터의 무암호화 무결성 보호를 가능하게 하는 메카니즘이 기술된다. 본 발명의 실시예들의 방법은 컴퓨팅 디바이스에서의 소프트웨어 애플리케이션으로부터 판독 요청을 수신하여, 컴퓨팅 디바이스에 연결된 저장 디바이스에 저장된 데이터의 제1 데이터 블록에 관한 판독 작업을 수행하는 것을 포함한다. 판독 작업은 제1 데이터 블록을 판독하는 것을 포함할 수 있다. 방법은 제1 데이터 블록과 관련된 제1 메타데이터 캐시에서 제1 참조 암호 코드에 액세스하고, 제1 데이터 블록에 관한 제1 새로운 암호 코드를 계산하고, 제1 새로운 암호 코드를 제1 참조 암호 코드와 비교하고, 제1 새로운 암호 코드가 제1 참조 암호 코드와 매칭되는 경우 판독 요청을 수용하는 것을 더 포함할 수 있다. 판독 요청의 수용은 판독 작업을 가능하게 하는 것을 더 포함할 수 있다.

Description

컴퓨팅 시스템에서의 저장 데이터의 무암호화 무결성 보호를 가능하게 하는 메카니즘{MECHANISM FOR FACILITATING ENCRYPTION-FREE INTEGRITY PROTECTION OF STORAGE DATA AT COMPUTING SYSTEMS}
본 발명의 실시예들은 보안 시스템에 관한 것이다. 특히, 본 발명의 실시예들은 컴퓨팅 시스템에서 저장 데이터의 무암호화 무결성 보호를 가능하게 하는 메카니즘에 관한 것이다.
데이터 보안은 절도, 변형, 자연 재해 등에 대하여 저장 데이터에 대한 보안을 제공하는 잘 알려진 컴퓨터 보안의 분야이다. 그러나, 데이터 보안을 제공하는 종래의 시스템들은 제한적이고 불충분한 것이다. 예를 들어, 종래의 시스템들은 인터셉트될 수 있는 데이터를 단순히 감추기 위한 데이터 암호화에 의존하며, 그들의 무결성은, 예를 들면, 오프라인 수정을 통해 공격받을 수 있다. 또한, 이러한 종래의 시스템들은 자원 불충분하고 전력 소모적인 것이며, 저장 데이터의 임의의 비암호화된 부분들에 대한 보호를 제공하지 않는다.
본 발명의 실시예들이, 유사한 참조 번호가 유사한 요소들을 나타내는 첨부 도면들에서, 제한적인 것이 아닌, 예로써 도시된다.
도 1은 일 실시예에 따른, 컴퓨팅 디바이스에서 이용된 저장 데이터의 무암호화 보호를 위한 맵핑 프레임워크 기반 메카니즘을 도시한다.
도 2는 일 실시예에 따른, 컴퓨팅 디바이스들에서의 저장 데이터의 무암호화 보호를 위한 맵핑 프레임워크 기반 메카니즘을 도시한다.
도 3은 일 실시예에 따른, 무결성 저장 데이터의 보안 및 보호를 가능하게 하는 트랜잭션 시퀀스를 도시한다.
도 4a는 일 실시예에 따른, 판독 동작을 처리할 때 무결성 저장 데이터의 보안 및 보호를 가능하게 하는 방법을 도시한다.
도 4b는 일 실시예에 따른, 기록 동작을 처리할 때 무결성 저장 데이터의 보안 및 보호를 가능하게 하는 방법을 도시한다.
도 5는 본 발명의 일 실시예에 따른, 본 개시 내용의 실시예들을 구현하기에 적합한 컴퓨터 시스템을 도시한다.
이하의 설명에서, 다양한 특정 세부사항들이 개시된다. 그러나, 본 발명의 실시예들은 이러한 특정 세부사항들 없이도 수행될 수 있다. 다른 경우들에 있어서, 잘 알려진 회로들, 구조들 및 기술들은, 이러한 설명의 이해를 불명료하게 하지 않도록 상세히 도시되지 않았다.
실시예들은 해킹 공격, 절도, 변형, 자연적 또는 인위적 재해 등으로 인한 것과 같은, 임의의 의도하지 않거나 또는 의도적인 수정들에 대하여 보안을 제공하고, 저장 데이터의 무결성을 유지하는 것을 가능하게 한다. 실시예들은 컴퓨팅 시스템에서의 저장 데이터의 무암호화 무결성 보호를 가능하게 하는 메카니즘을 제공할 수 있으며, 그러한 메카니즘은 맵핑 프레임워크 기반이거나 또는 예를 들어, HMAC(hash-based message authentication code)의 저장을 도울 수 있는 블록 디바이스 드라이버 등으로서 구현될 수 있다. 예를 들어, 실시예는 예를 들면, 저장 하드웨어, 암호화/암호 해제 저장 데이터 등을 이동 또는 변경하지 않고서도, 안전한 내부 계산 및 입증 메카니즘(예를 들면, HMAC)을 통해 임의의 수정들(예를 들면, 오프라인 수정들 등)에 대하여 저장 데이터(예를 들면, 오퍼레이팅 시스템에 의해 액세스된 데이터)의 디바이스 맵퍼 기반 보안 및 무결성을 제공한다. 데이터를 암호화하지 않고서도 저장 데이터의 보안 및 무결성을 가능하게 함으로써, 저장 데이터가 암호화되지 않은 채로 유지되고, 따라서 필요한 경우, 데이터의 보다 용이한 액세스 및 복원을 가능하게 할 수 있다. 더욱이, 저장 데이터를 암호화하지 않아도 되는 것은, 보다 우수한 자원 효율성 및 낮은 전력 소모를 제공한다.
저장 디바이스 상의 데이터는 섹터들, 예를 들면, 512 바이트로 구성되고, 판독 및 기록 동작들의 최소 단위로서 간주될 수 있다. 섹터들은 4K 블록이 8 섹터를 포함할 수 있는 것과 같이, 블록들에서의 그룹들을 지칭한다. 섹터 및/또는 블록 크기는 변할 수 있는 것으로 고려된다. 더욱이, 전형적으로 파일 시스템은 블록들로 동작하며, 단일 블록의 경우, 예를 들면, 데이터 4K 블록의 전체 8 섹터를 판독하도록 전형적으로 변환하는 하나 이상의 블록을 판독하기 위한 판독 요청과 같은 판독/기록 요청들을 발행할 수 있다. 저장 디바이스(SD)에 관하여, 전체 저장부는 파티션들로 분할될 수 있고, 각각의 파티션은 수 개의 블록들로 구성될 수 있으며, 예를 들어, 저장 디바이스 SDA는 sda1, sda2, sda3 등과 같은 파티션들로 분할될 수 있다. 이러한 파티션들은 마이크로소프트® 코오퍼레이션(Microsoft® Corporation) 등에 의한 ext4, FAT(File Allocation Table), NTFS(New Technology File System)와 같은 상이한 파일 시스템들로 포맷될 수 있으며, 예컨대, sda1은 ext4로, sda2는 NTFS 등으로 될 수 있다. 더욱이, 파일 시스템들은, 판독 요청이 발행될 때와 같이, 데이터 블록들을 판독하기 위해 하나 이상의 블록 층들을 호출할 수 있고, 파일 시스템은 기록 요청이 발행되는 동안 블록 층을 즉각 요청할 수 있으며, 페이지들은 갱신될 수 있지만 블록 디바이스에 즉각적으로 기록되지는 않을 수 있다. 그러한 페이지들은 페이지-캐시(page-cache) 라고 지칭될 수 있다. 페이지-캐시는 되기록(write-back) 동작 동안에 블록 디바이스에 되기록 될 수 있으며, 그 동안에, 파일 시스템은 기록 요청을 블록 층들에 전송할 수 있다.
실시예들은 본 명세서 전체를 통해 기술되는 바와 같이 맵핑 프레임워크로 구현되는 저장 데이터의 무암호화 무결성 보호를 가능하게 하는 메카니즘을 제공하지만, 그러한 실시예들은 블록 디바이스 드라이버가 그러한 메카니즘을 구현하기 위해 대신 이용될 수 있도록, 맵핑 프레임워크로 제한되지 않는 것으로 고려된다.
도 1은 일 실시예에 따른, 컴퓨팅 디바이스에서 이용된 저장 데이터의 무암호화 보호를 위한 맵핑 프레임워크 기반 메카니즘을 도시한다. 컴퓨팅 디바이스(100)는 하나 이상의 저장 디바이스에 저장된 데이터의 보안 및 무결성을 가능하게 하도록 저장 데이터의 무암호화 보호를 위한 맵핑 프레임워크 기반 메카니즘("무결성 보호 메카니즘")(110)을 이용하는 호스트 머신으로서 기능한다. 일 실시예에서, 저장 데이터 보호 메카니즘(110)은 오퍼레이팅 시스템 커넬(114)(예를 들면, 리눅스® 커넬(Linux® kernel))의 일부인 맵핑 프레임워크(116)("디바이스 맵퍼" 라고도 지칭됨)에 대한 플러그인 모듈로서 제공될 수 있다. 커넬(114)은 브리지로서 기능하거나 또는 (예를 들면, 사용자 공간(112)을 통해 제공된) 소프트웨어 애플리케이션들과 하드웨어 레벨(예를 들면, 하드웨어 저장 디바이스)에서 수행된 임의의 데이터 처리 사이의 통신을 가능하게 함에 의한 것과 같이, 시스템 자원들을 관리하기 위한 오퍼레이팅 시스템(106)의 구성요소로서 기능할 수 있다. 맵핑 프레임워크(116)는 프레임워크 또는 맵퍼로서 기능하여, 하나의 블록 디바이스를 다른 블록 디바이스로 맵핑하거나, 또는 하나의 디바이스에서의 블록을 동일하거나 다른 디바이스에서의 블록으로 맵핑하도록 기능할 수 있으며, EVMS(enterprise volume management system), LVM(logical volume manager), dm-crypt 등에 대한 기초로서 기능한다.
컴퓨팅 디바이스(100)는 스마트폰(예를 들면, Apple®에 의한 iPhone®, Research in Motion®에 의한 BlackBerry® 등)을 포함하는 셀룰라 전화, PDA(personal digital assistant) 등, 태블릿 컴퓨터(예를 들면, Apple®에 의한 iPad®, Samsung®에 의한 Galaxy Tab® 등), 랩탑 컴퓨터(예를 들면, 노트북, 넷북, 울트라북TM 등), 이-리더(e-reader)(예를 들면, Amazon®에 의한 Kindle®, Barnes and Nobles®에 의한 Nook® 등) 등과 같은 모바일 컴퓨팅 디바이스들을 포함할 수 있다. 컴퓨팅 디바이스(100)는 셋탑 박스(예를 들면, 인터넷 기반 케이블 텔레비젼 셋탑 박스 등), 텔레비젼, 차량내 엔터테인먼트 시스템, 및 데스크탑 컴퓨터, 서버 컴퓨터 등과 같은 보다 큰 컴퓨팅 디바이스를 더 포함할 수 있다.
컴퓨팅 디바이스(100)는 사용자와 컴퓨팅 디바이스(100)의 임의의 하드웨어 또는 물리적 자원들 사이의 인터페이스로서 기능하는 오퍼레이팅 시스템(OS)(106)을 포함한다. 컴퓨팅 디바이스(100)는 하나 이상의 프로세서들(102), 메모리 디바이스들(104), 네트워크 디바이스들, 드라이버들 등 뿐만 아니라, 터치스크린들, 터치 패널들, 터치 패드들, 가상 또는 정규 키보드들, 가상 또는 정규 마우스 등을 더 포함한다. "컴퓨팅 디바이스", "노드", "컴퓨팅 노드", "클라이언트", "호스트", "서버", "메모리 서버", "머신", "디바이스", "컴퓨팅 디바이스", "컴퓨터", "컴퓨팅 시스템" 등의 용어들은, 본 명세서 전체를 통해 서로 교체가능하게 이용될 수 있음을 주지해야 한다.
도 2는 일 실시예에 따른, 컴퓨팅 디바이스들에서의 저장 데이터의 무암호화 보호를 위한 맵핑 프레임워크 기반 메카니즘을 도시한다. 일 실시예에서, 데이터 무결성 보호 메카니즘(110)은 수신 로직(202), 제출 로직(submission logic)(204), 참조 로직(reference logic)(206), 계산 로직(208), 비교 로직(210), 갱신 로직(212) 및 판정 로직(214)과 같은 다수의 구성요소들을 포함한다. 도 1을 참조하여 전술한 바와 같이, 데이터 무결성 보호 로직(110)은 오퍼레이팅 시스템의 일부로서 위치되어, 도 1의 컴퓨팅 디바이스(100)와 같은 컴퓨팅 디바이스와 관련된 임의의 수 및 유형의 저장 디바이스들(232)과 임의의 수 및 유형의 소프트웨어 애플리케이션들(222) 사이의 통신을 유지할 수 있다. 본 명세서 전체를 통해, "로직" 이라는 용어는 "처리 로직", "구성요소" 또는 "모듈"로서 교체 가능하게 지칭될 수 있으며, 예로써, 소프트웨어, 하드웨어, 및/또는 펌웨어와 같은, 소프트웨어와 하드웨어의 임의의 조합을 포함할 수 있다.
일 실시예에서, 데이터 무결성 보호 메카니즘(110)은 컴퓨팅 디바이스와 연결된 하나 이상의 저장 디바이스들(232)에서의 데이터의 보안 및 무결성 보호를 제공한다. 저장 데이터는 컴퓨팅 디바이스에서 실행되는 오퍼레이팅 시스템 및/또는 하나 이상의 소프트웨어 애플리케이션들(222)에 의해 액세스 및 이용될 수 있다. 예를 들어, 데이터는 소프트웨어 코드들, 소프트웨어 코드들의 관련 섹션들, 및/또는 소프트웨어 애플리케이션들(222) 및/또는 오퍼레이팅 시스템에 의해 액세스 및 이용될 수 있는, 메타데이터 캐시와 같은, 임의의 다른 관련 정보를 포함할 수 있다. 저장 디바이스(232)의 예들은 RAM(random access memory), RAID(redundant array of independent disk), NUMA(non-uniform memory access) 메모리 시스템들, 저장 영역 네트워크들, 프로세서 레지스터들, 메모리 채널들, 자기 디스크들, 광학 디스크들, 자기 테이프들, NAS(network-attached storage) 디바이스들, 네트워크 파일 시스템들, 상관 데이터베이스들(relational databases) 등과 같은 임의의 수 및 유형의 저장 시스템들을 포함할 수 있다.
일 실시예에서, 데이터 무결성 보호 메카니즘(110)의 수신 로직(202)은 소프트웨어 애플리케이션(222)으로부터, 데이터 판독 또는 데이터 기록과 같은 작업에 대한 호출 또는 요청을 수신하는데 이용될 수 있다. 판독 요청은 저장 디바이스(232)에서의 데이터의 임의의 부분(예를 들면, 하나 이상의 데이터 블록)을 판독하고자 시도할 때, 애플리케이션(222)에 의해 가능하게되는 판독 코맨드(예를 들면, sys_read가 있으며, 소프트웨어 애플리케이션은, 시스템 호출 sys_read를 호출하는 판독() 라이브러리 함수를 이용할 수 있음)를 지칭한다. 반대로, 기록 요청은 소프트웨어 관리자 또는 프로그래머가 존재하는 저장 데이터를 변경하는 것과 같이 데이터를 수정하는 것을 포함하는, 저장 디바이스(232)에서의 존재하는 데이터에 하나 이상의 데이터 블록을 더 기록하기 위한 기록 코맨드(예를 들면, sys_write가 있으며, 소프트웨어 애플리케이션은, 시스템 호출 sys_write를 호출하는 기록() 라이브러리 함수를 이용할 수 있음)를 지칭한다. 그 다음, 제출 로직(204)은 수신된 요청에서 개시된 것으로서 하나 이상의 데이터 블록을 판독 또는 기록하는 것과 같이, 저장 데이터의 하나 이상의 관련 데이터 블록에 대해 요청된 작업(예를 들면, 판독, 기록 등)이 수행될 수 있도록 수신된 요청을 제출 또는 송신한다.
일 실시예에서, 참조 로직(206)은 관련 데이터 블록들과 연관된 무결성 메타데이터 캐시에 액세스하여, 데이터 블록들 중 임의의 데이터 블록이 메타데이터 캐시에 저장된 대응하는 HMAC를 갖는지 여부를 결정한다. 무결성 메타데이터 캐시는 무결성 메타데이터 데이터 블록들의 모음으로서 구성될 수 있으며, 각각의 블록은 HMAC를 유지하는 것과 같이 수 개의 무결성 메타데이터 레코드들을 유지하기 위한 것이다. 무결성 메타데이터 데이터 블록들은 실제 데이터 블록들이 위치되는 동일한 파티션(블록 디바이스) 상에 저장되거나, 또는 동일하거나 상이한 저장 디바이스 상에 위치되는 전용 파티션 상에 저장될 수 있다. 참조 HMAC를 포함하는 무결성 메타데이터 데이터 블록이 캐시로부터 누락(missing)된다면, 그것은 적절한 위치로부터 판독될 수 있다.
한편, 계산 로직(208)은 암호 키(cryptographic key)를 이용하여 관련 데이터 블록들 각각에 대한 새로운 HMAC를 계산한다. HMAC를 계산하기 위해 암호 키들을 이용하는 것은 예로서 제공되는 것이며, 본 발명의 실시예들은 임의의 특정한 프로세스 또는 기술로 제한되지 않는 것으로 고려된다. 암호 키는 초기화시, 부트 업(boot up)시와 같은 임의의 하나 이상의 프로세스를 이용하여 수신되거나, 또는 임의의 수의 알려진 방법들을 이용한 프로세스 동안의 임의의 포인트에 공급될 수 있다. 더욱이, 암호 키 및 임의의 알려진 암호 함수들(예를 들면, MD5(message digest algorithm 5), SHA-1(secure hash algorithm 1) 등)을 이용함으로써, HMAC는 HMAC-MD5, HMAC-SHA1 등과 같이, 각각의 관련 데이터 블록에 대해 계산될 수 있다. 예를 들어, HMAC는 다음과 같은 것을 이용하여 계산될 수 있다. 즉,
Figure 112015008854320-pct00001
, 여기서 H는 암호 해시 함수를 나타내고, K는 해시 함수의 입력 블록 크기에 대해 추가의 0들을 갖는 우측에 대해 패딩된 비밀 키, 또는 그것이 해당 블록 크기보다 큰 경우에는 원래의 키의 해시를 나타내고, m은 인증될 메시지(데이터 블록, 요청의 내용 등)를 나타내고,
Figure 112015008854320-pct00002
은 연결(concatenation)을 나타내고,
Figure 112015008854320-pct00003
는 배타적 또는 (XOR)을 나타내고, opad는 외측 패딩(예를 들면, 0x5c5c5c...5c5c, 1 블록 길이의 16진 상수)을 나타내고, ipad는 내측 패딩(예를 들면, 0x363636...3636, 1 블록 길이의 16진 상수)을 나타낸다. 예를 들어, 블록 크기가 4K이고, HMAC-SHA256 크기가 32 바이트이면, 단일 블록이 128 HMAC를 유지하는 능력을 가질 수 있다. 무결성 메타데이터 캐시는 특정 데이터 블록에 대해 무결성 메타데이터(예를 들면, 하나 이상의 HMAC 등)를 포함할 수 있다. 예를 들어, 데이터의 1개의 4K 블록은 128 HMAC-SHA256을 포함할 수 있다. 무결성 메타데이터 캐시는 랜덤 액세스 메모리에서 이용가능한 무결성 메타데이터(HMAC)를 포함하는, 블록들(예를 들면, 4K 블록들 등)의 모음을 나타낼 수 있다.
요청이 판독 요청일 때, 일 실시예에서, 계산 로직(208)에 의해 이용된 HMAC 계산 방법과는 관계없이, 새로운 HMAC가 각각의 데이터 블록에 대해 계산되면, 그것은 비교 로직(210)에 의해 해당 데이터 블록에 대한 참조 HMAC와 비교된다. 비교시에, 판정 블록(214)에 의해, 요청이 승인 또는 거절되는지의 여부에 관한 판정이 수행된다. 예를 들어, 새롭게 계산된 HMAC와 참조된 HMAC 사이에 매칭이 존재하는 것과 같이, 성공적인 비교시에, 판독 요청은 승인되고, 상부 층들로 전달되어, 관련 데이터 블록들이 판독되는 것과 같이, 요청된 작업이 수행될 수 있다. 반대로, 계산된 HMAC와 참조된 HMAC 사이에 미스매칭이 존재하는 것과 같이, 성공적이지 못한 비교시에, 판독 요청은 거절되고, 에러 메시지가 발행되며, 상부 층들로 전달되고, 관련 데이터 블록들이 무시되어 판독되지 않는 것과 같이, 요청된 작업은 수행되지 않는다.
요청이 기록 요청일 때, 일 실시예에서, 계산 로직(208)에 의해 이용된 HMAC 계산 방법과는 관계없이, 새로운 HMAC가 각각의 데이터 블록에 대해 계산되면, 그것은 저장 데이터에 기록되고, 각각의 데이터 블록에 대한 대응하는 참조 HMAC가 갱신 로직(212)을 이용하여 해당 데이터 블록에 대한 새롭게 계산된 HMAC로 갱신되거나 또는 새롭게 계산된 HMAC로 대체된다. 그 다음, 무결성 메타데이터 캐시에서의 이러한 새롭게 배치된 HMAC는 임의의 미래의 판독 요청들에 응답하여 참조 및 비교될 수 있다.
특정한 특징들을 부가, 제거 및/또는 강화하는 것을 포함하는 본 발명의 다양한 실시예들을 가능하게 하도록, 임의의 수 및 유형의 구성요소들이 데이터 무결성 보호 메카니즘(110)에 추가되고/되거나 그로부터 제거될 수 있는 것으로 고려된다. 데이터 무결성 보호 메카니즘(110)의 간결성, 명료성, 및 용이한 이해를 위해, 컴퓨팅 디바이스의 구성요소들과 같은 많은 표준 및/또는 알려진 구성요소들은 본 명세서에서 도시되거나 기술되지 않는다. 본 발명의 실시예들은 임의의 특정한 기술, 토폴로지, 시스템, 아키텍쳐 및/또는 표준으로 제한되지 않으며, 미래의 임의의 변화들을 채택 및 그것에 적응하기에 충분히 동적인 것으로 고려된다.
도 3은 일 실시예에 따른 무결성 저장 데이터의 보안 및 보호를 가능하게 하기 위한 트랜잭션 시퀀스를 도시한다. 트랜잭션 시퀀스(300)는 하드웨어(예를 들면, 회로, 전용 로직, 프로그래밍가능 로직 등), (처리 디바이스 상에서 실행되는 명령어와 같은) 소프트웨어, 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 수행될 수 있다. 일 실시예에서, 방법(300)은 도 1의 데이터 무결성 보호 메카니즘(110)에 의해 수행될 수 있다.
트랜잭션 시퀀스(300)는 트랜잭션(예를 들면, 판독 트랜잭션(예를 들면, sys_read), 기록 트랜잭션(예를 들면, sys_write) 등)에 대한 호출을 가능하게 하는, 사용자 공간(112)에서의 소프트웨어 애플리케이션(222)으로 시작된다. 그 다음, 요청은 시스템 호출 인터페이스(302)가 가상 파일 시스템(virtual file system; VFS) 층(304)(예를 들면, vfs_read, vfs_write 등)에 대해 호출함으로써, 오퍼레이팅 시스템의 커넬(114)에서의 시스템 호출 인터페이스(302)를 통해 가상 파일 시스템(VFS)(304)으로 전달된다. VFS 층(304)은 파일 시스템 층(306)에 대해 호출하여, 요청을 판독하고 그것을 블록 디바이스 층(308)으로 전달한다. 파일 시스템 층(306)은 요청(예를 들면, 블록 I/O 판독 요청)을 블록 디바이스 층(308)에 제출하고, 블록 디바이스 층(308)은 요청이 맵핑 프레임워크 또는 디바이스 맵퍼(116)에서 수신되도록 큐잉한다.
일 실시예에서, 맵핑 프레임워크(116)는 요청을 전달하거나, 또는 맵핑 프레임워크(116)에 대한 플러그인 모듈로서 제공될 수 있는 데이터 무결성 보호 메카니즘(110)을 통해 요청을 맵핑할 수 있다. 일 실시예에서, 데이터 무결성 보호 메카니즘(110)은 요청을 처리하여, 그것을 블록 디바이스 층(310)에 제출한다. 블록 디바이스 층(310)은, 일 실시예에서, 데이터 블록 디바이스 및 대응하는 무결성 블록 디바이스를 포함할 수 있다. 데이터 블록 디바이스는 실제 저장 데이터를 포함할 수 있는 반면, 무결성 블록 디바이스는 관련 무결성 메타데이터(예를 들면, 참조 HMAC)를 포함할 수 있다. 일 실시예에서, 전술한 바와 같이, 판독 요청의 경우에, 데이터 무결성 보호 메카니즘(110)은 HMAC를 계산하고, 그것을 참조 HMAC와 비교할 수 있으며, 기록 요청의 경우에는, HMAC를 계산하고, 그것을 미래의 참조 HMAC로서 이용되도록 무결성 블록 디바이스에 저장한다. 그 다음, 블록 디바이스 층(310)은 블록 디바이스 드라이버(312)에 대해 요청을 큐잉하여, 요청에서 개시된 바와 같은 요청된 작업이 수행될 수 있다. 그 다음, 블록 디바이스 드라이버(312)는 sda 및/또는 sdb를 포함하는 저장 디바이스들(232)과 같은 관련 하드웨어(320)에서의 저장 데이터의 하나 이상의 데이터 블록에 관한 요청된 작업을 수행한다.
도 4a는 일 실시예에 따른, 판독 동작을 처리할 때 무결성 저장 데이터의 보안 및 보호를 가능하게 하는 방법을 도시한다. 방법(400)은 하드웨어(예를 들면, 회로, 전용 로직, 프로그래밍가능 로직 등), (처리 디바이스 상에서 실행되는 명령어와 같은) 소프트웨어, 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 수행될 수 있다. 일 실시예에서, 방법(400)은 도 1의 데이터 무결성 보호 메카니즘(110)에 의해 수행될 수 있다.
방법(400)은 블록(405)에서 시작되며, 컴퓨팅 시스템과 통신하는 저장 디바이스에 저장된 데이터의 데이터 블록을 액세스 및 판독하도록 컴퓨팅 시스템에서 실행되는 소프트웨어 애플리케이션(예를 들면, 오퍼레이팅 시스템 또는 임의의 다른 소프트웨어 애플리케이션)으로부터 요청이 수신된다. 얼마나 많은, 또는 어떠한 유형의 데이터 블록들이 판독될 수 있는지에 관해 부과되는 제한은 없는 것으로 고려된다. 즉, 임의의 수 및 유형의 데이터 블록을 판독하기 위한 요청이 수신될 수 있다. 블록(410)에서, 요청된 데이터 블록이 판독될 수 있도록 하는 처리를 위해 판독 요청이 제출된다. 블록(415)에서, 무결성 메타데이터 캐시에 저장된 참조 HMAC를 액세스하기 위해 데이터 블록과 관련된 무결성 메타데이터 캐시가 액세스되며, 참조 HMAC는 요청된 데이터 블록에 대응하거나 또는 그것을 참조한다. HMAC를 포함하는 데이터 블록이 누락되거나 또는 무결성 메타데이터 캐시에서 존재하지 않는다면, 도 2의 참조 로직(206)은 블록 디바이스로부터 데이터 블록을 판독하기 위해 관련 블록 층에 판독 요청을 제출할 수 있다.
블록(420)에서, 암호 키 및 임의의 하나 이상의 알려진 계산 프로세스를 이용하여, 요청된 데이터 블록에 대응하는 새로운 HMAC가 계산된다. 블록(425)에서, 일 실시예에서, 새롭게 계산된 HMAC를 무결성 메타데이터 캐시로부터 얻어진 참조 HMAC와 비교한다. 판정 블록(430)에서, 계산된 HMAC가 참조 HMAC와 매칭되는지의 여부에 관한 판정이 수행된다. 그들이 매칭된다면, 블록(435)에서, 요청을 승인하고, 그것을 요청된 데이터 블록이 판독되는 것과 같은 판독 요청을 가능하게 하는 (사용자 공간에서의) 소프트웨어 애플리케이션 상의 상부 층들로 전달함으로써 처리가 계속된다. 매칭이 이루어지지 않는다면, 블록(440)에서, 프로세스는 종료되고, 에러 메시지가 발행되어, 상부 층들로 전달된다.
도 4b는 일 실시예에 따른, 기록 동작을 처리할 때 무결성 저장 데이터의 보안 및 보호를 가능하게 하는 방법을 도시한다. 방법(450)은 하드웨어(예를 들면, 회로, 전용 로직, 프로그래밍가능 로직 등), (처리 디바이스 상에서 실행되는 명령어와 같은) 소프트웨어, 또는 이들의 조합을 포함할 수 있는 처리 로직에 의해 수행될 수 있다. 일 실시예에서, 방법(450)은 도 1의 데이터 무결성 보호 메카니즘(110)에 의해 수행될 수 있다.
방법(450)은 블록(455)에서 시작되며, 컴퓨팅 시스템과 통신하는 저장 디바이스에서의 존재하는 데이터에 데이터 블록을 기록하도록 컴퓨팅 시스템에서 실행되는 소프트웨어 애플리케이션(예를 들면, 오퍼레이팅 시스템 또는 임의의 다른 소프트웨어 애플리케이션)으로부터 요청이 수신된다. 얼마나 많은, 또는 어떠한 유형의 데이터 블록들이 판독될 수 있는지에 관해 부과되는 제한은 없는 것으로 고려된다. 즉, 임의의 수 및 유형의 데이터 블록을 판독하기 위한 요청이 수신될 수 있다. 블록(460)에서, 데이터 블록이 기록될 수 있도록 하는 처리를 위해 기록 요청이 제출된다. 블록(465)에서, 무결성 메타데이터 캐시에 저장된 참조 HMAC를 액세스하기 위해 데이터 블록과 관련된 무결성 메타데이터 캐시가 액세스되며, 참조 HMAC는 데이터 블록에 대응하거나 또는 그것을 참조한다.
블록(470)에서, 암호 키 및 임의의 하나 이상의 알려진 계산 프로세스를 이용하여, 요청된 데이터 블록에 대응하는 새로운 HMAC가 계산된다. 블록(475)에서, 일 실시예에서, 존재하는 참조 HMAC를 새롭게 계산된 HMAC로 대체함으로써 무결성 메타데이터 캐시가 갱신된다. 더욱이, 도 2의 갱신 로직(212)은 HMAC를 갱신할 수 있지만, 무결성 블록을 블록 디바이스에 기록하기 위해 기록 요청을 즉각적으로 송신하지 않을 수 있다. 블록(480)에서, 기록 요청을 승인함으로써 프로세스가 계속되며, 데이터 블록은 저장 데이터에 기록된다. 블록(485)에서, 기록된 데이터 블록의 확인(confirmation)이 상부 층들에 전송된다.
도 5는 컴퓨팅 시스템(500)의 실시예를 도시한다. 컴퓨팅 시스템(500)은, 예를 들면, 데스크탑 컴퓨팅 시스템들, 랩탑 컴퓨팅 시스템들, 셀룰러 전화들, 셀룰러 가능 PDA(personal digital assistants)를 포함하는 PDA, 셋탑 박스들, 스마트폰들, 태블릿들 등을 포함하는 컴퓨팅 및 전자 디바이스(유선 또는 무선)의 범위를 나타낸다. 대안적인 컴퓨팅 시스템들은 더 많고, 더 적고, 및/또는 상이한 구성요소들을 포함할 수 있다.
컴퓨팅 시스템(500)은 버스(505)(또는, 정보를 통신하기 위한 링크, 상호접속, 또는 다른 유형의 통신 디바이스 또는 인터페이스) 및 버스(505)에 연결되어 정보를 처리할 수 있는 프로세서(510)를 포함한다. 컴퓨팅 시스템(500)은 단일 프로세서, 전자 시스템(500)으로 도시되지만, 하나 이상의 중앙 프로세서, 그래픽 프로세서 및 물리 프로세서 등과 같은 다수의 프로세서 및/또는 코-프로세서(co-processor)를 포함할 수 있다. 컴퓨팅 시스템(500)은 버스(505)에 연결되며, 프로세서(510)에 의해 실행될 수 있는 명령어 및 정보를 저장할 수 있는 RAM(random access memory) 또는 다른 동적 저장 디바이스(520)(주 메모리로서 지칭됨)를 더 포함할 수 있다. 주 메모리(520)는 프로세서(510)에 의한 명령어의 실행 동안 일시적인 변수들 또는 다른 중간 정보를 저장하는데 또한 이용될 수 있다.
컴퓨팅 시스템(500)은 버스(505)에 연결되며, 프로세서(510)에 대한 정적 정보 및 명령어를 저장할 수 있는 ROM(read only memory) 및/또는 다른 저장 디바이스(530)를 또한 포함할 수 있다. 데이터 저장 디바이스(540)는 버스(505)에 연결되어 정보 및 명령어를 저장할 수 있다. 자기 디스크 또는 광학 디스크 및 대응하는 드라이브와 같은 데이터 저장 디바이스(540)가 컴퓨팅 시스템(500)에 연결될 수 있다.
또한, 컴퓨팅 시스템(500)은 버스(505)를 통해 CRT(cathode ray tube), LCD(liquid crystal display) 또는 OLED(Organic Light Emitting Diode) 어레이와 같은 디스플레이 디바이스(550)에 연결되어, 정보를 사용자에게 디스플레이할 수 있다. 영숫자 및 다른 키들을 포함하는 사용자 입력 디바이스(560)가 버스(505)에 연결되어 정보 및 코맨드 선택들을 프로세서(510)에게 통신할 수 있다. 다른 유형의 사용자 입력 디바이스(560)는, 지시 정보 및 코맨드 선택들을 프로세서(510)에게 통신하고, 디스플레이(550) 상의 커서 이동을 제어하기 위한, 마우스, 트랙볼, 또는 커서 방향 키들과 같은 커서 제어(570)이다. 컴퓨터 시스템(500)의 카메라 및 마이크로폰 어레이들(590)이 버스(505)에 연결되어 제스쳐들을 관찰하고, 오디오 및 비디오를 레코딩하고, 시각 및 오디오 코맨드들을 검색 및 송신할 수 있다.
컴퓨팅 시스템(500)은 LAN(local area network), WAN(wide area network), MAN(metropolitan area network), PAN(personal area network), 블루투스, 클라우드 네트워크, 모바일 네트워크(예를 들면, 3G(3rd Generation) 등), 인트라넷, 인터넷 등과 같은 네트워크에 대한 액세스를 제공하기 위한 네트워크 인터페이스(들)(580)을 더 포함할 수 있다. 네트워크 인터페이스(들)(580)은, 예를 들면, 하나 이상의 안테나를 나타낼 수 있는 안테나(585)를 갖는 무선 네트워크 인터페이스를 포함할 수 있다. 네트워크 인터페이스(들)(580)은 또한, 예를 들면, 이더넷 케이블, 동축 케이블, 광섬유 케이블, 직렬 케이블 또는 병렬 케이블일 수 있는 네트워크 케이블(587)을 통해 원격 디바이스들과 통신하기 위한 유선 네트워크 인터페이스를 포함할 수 있다.
네트워크 인터페이스(들)(580)은 예를 들면, IEEE 802.11b 및/또는 IEEE 802.11g 표준들을 준수함으로써 LAN에 대한 액세스를 제공할 수 있고, 및/또는 무선 네트워크 인터페이스는 예를 들면, 블루투스 표준들을 준수함으로써 개인 영역 네트워크에 대한 액세스를 제공할 수 있다. 표준들의 이전 및 후속 버젼들을 포함하는 다른 무선 네트워크 인터페이스들 및/또는 프로토콜들이 또한 지원될 수 있다.
무선 LAN 표준들을 통한 통신에 추가하여, 또는 그것 대신에, 네트워크 인터페이스(들)(580)은, 예를 들면, TDMA(Time Division, Multiple Access) 프로토콜들, GSM(Global Systems for Mobile Communications) 프로토콜들, CDMA(Code Division, Multiple Access) 프로토콜들, 및/또는 임의의 다른 유형의 무선 통신 프로토콜들을 이용하여 무선 통신을 제공할 수 있다.
네트워크 인터페이스(들)(580)은 모뎀, 네트워크 인터페이스 카드, 또는 예를 들면, LAN 또는 WAN을 지원하기 위한 통신 링크를 제공하기 위한 목적의 이더넷에 연결하기 위해 이용되는 것들, 토큰 링, 또는 다른 유형의 물리적 유선 또는 무선 부착물들과 같은 다른 잘 알려진 인터페이스 디바이스들과 같은 하나 이상의 통신 인터페이스를 포함할 수 있다. 이러한 방식으로, 컴퓨터 시스템은 다수의 주변 디바이스들, 클라이언트, 제어 표면, 콘솔, 또는 예를 들면 인트라넷 또는 인터넷을 포함하는 통상적인 네트워크 하부구조들을 통한 서비스에 연결될 수도 있다.
특정 구현들에 대해, 전술한 예보다 적거나 많은 장비 시스템이 선호될 수 있음을 이해할 것이다. 따라서, 컴퓨팅 시스템(500)의 구성은 가격 제한, 성능 요건, 기술적 진보, 또는 다른 상황과 같은 많은 요인들에 따라, 구현마다 변할 수 있다. 전자 디바이스 또는 컴퓨터 시스템(500)의 예들은, 제한적인 것은 아니지만, 모바일 디바이스, PDA, 모바일 컴퓨팅 디바이스, 스마트폰, 셀룰러 전화, 핸드셋, 단방향 페이저, 양방향 페이저, 메시징 디바이스, 컴퓨터, 개인용 컴퓨터(PC), 데스크탑 컴퓨터, 랩탑 컴퓨터, 노트북 컴퓨터, 핸드헬드 컴퓨터, 태블릿 컴퓨터, 서버, 서버 어레이 또는 서버 팜, 웹 서버, 네트워크 서버, 인터넷 서버, 워크스테이션, 미니컴퓨터, 메인 프레임 컴퓨터, 수퍼컴퓨터, 네트워크 어플라이언스, 웹 어플라이언스, 분배형 컴퓨팅 시스템, 마이크로프로세서 시스템, 프로세서 기반 시스템, 가전 제품, 프로그래밍가능 가전 제품, 텔레비젼, 디지털 텔레비젼, 셋탑 박스, 무선 액세스 포인트, 기지국, 가입자국, 모바일 가입자 센터, 무선 네트워크 제어기, 라우터, 허브, 게이트웨이, 브리지, 스위치, 머신 또는 이들의 조합을 포함할 수 있다.
실시예들은, 페어런트보드(parentboard), 하드와이어드 로직, 메모리 디바이스에 의해 저장되고 마이크로프로세서에 의해 실행되는 소프트웨어, 펌웨어, ASIC(application specific integrated circuit) 및/또는 FPGA(field programmable gate array)를 이용하여 상호접속된 하나 이상의 마이크로칩 또는 집적 회로 중 임의의 것 또는 이들의 조합으로서 구현될 수 있다. "로직" 이라는 용어는, 예로써, 소프트웨어 또는 하드웨어 및/또는 소프트웨어와 하드웨어의 조합들을 포함할 수 있다.
실시예들은, 예를 들면, 컴퓨터, 컴퓨터들의 네트워크, 또는 다른 전자 디바이스들과 같은 하나 이상의 머신에 의해 실행될 때, 하나 이상의 머신이 본 발명의 실시예들에 따른 동작들을 수행하도록 하는 머신 실행가능 명령어를 저장한 하나 이상의 머신 판독가능 저장 매체를 포함할 수 있는 컴퓨터 프로그램 제품으로서 제공될 수 있다. 머신 판독가능 저장 매체는, 제한적인 것은 아니지만, 플로피 디스켓, 광학 디스크, CD-ROM(Compact Disc-Read Only Memory), 및 광자기 디스크, ROM, RAM, EPROM(Erasable Programmable Read Only Memory), EEPROM(Electrically Erasable Programmable Read Only Memory), 자기 또는 광학 카드, 플래시 메모리, 또는 머신 실행가능 명령어를 저장하기에 적합한 다른 유형의 매체/머신 판독가능 저장 매체를 포함할 수 있다.
삭제
"일 실시예", "실시예", "예시적인 실시예", "다양한 실시예들" 등에 대한 참조는, 그와 같이 기술된 본 발명의 실시예(들)이 특정한 특징들, 구조들 또는 특성들을 포함할 수 있지만, 모든 실시예가 특정한 특징들, 구조들 또는 특성들을 포함할 필요는 없음을 나타낸다. 더욱이, 일부 실시예들은 다른 실시예들에 대해 기술된 특징들의 일부 또는 전부를 갖거나, 또는 전혀 갖지 않을 수 있다.
이하의 설명 및 청구항들에서, "연결된" 이라는 용어 및 그것의 파생어들이 이용될 수 있다. "연결된" 이라는 용어는 둘 이상의 요소들이 상호동작하거나 서로 상호 작용하지만, 그들 사이에 중간적인 물리적 또는 전기적 구성요소들을 갖거나 또는 갖지 않을 수 있음을 나타내는데 이용된다.
청구항들에서 이용된 바와 같이, 달리 지정되지 않는 한, 공통의 요소를 기술하기 위해 서수의 형용사 "제1", "제2", "제3" 등을 이용하는 것은, 단지, 유사한 요소들의 상이한 경우들이 지칭되는 것이고, 그렇게 기술된 요소들이 시간적으로, 공간적으로, 순위적으로, 또는 임의의 다른 방식으로, 주어진 시퀀스로 되어야 함을 나타내기 위한 것은 아님을 나타낸다.
이하의 절(clause) 및/또는 예들은 추가의 실시예들 또는 예들에 속한다. 예들에서의 특정 사항들은 하나 이상의 실시예들에서 어느 곳에라도 이용될 수 있다. 상이한 실시예들 또는 예들의 다양한 특징들은, 여러 가지의 상이한 응용들에 적합하도록 포함된 일부 특징들 및 배제된 다른 특징들과 다양하게 결합될 수 있다. 일부 실시예들은, 방법으로서, 컴퓨팅 디바이스에서의 소프트웨어 애플리케이션으로부터 판독 요청을 수신하여, 컴퓨팅 디바이스에 연결된 저장 디바이스에 저장된 데이터의 제1 데이터 블록에 관한 판독 작업을 수행 - 판독 작업은 제1 데이터 블록을 판독하는 것을 포함함 - 하고, 제1 데이터 블록과 관련된 제1 메타데이터 캐시에서 제1 참조 암호 코드에 액세스하고, 제1 데이터 블록에 관한 제1 새로운 암호 코드를 계산하고, 제1 새로운 암호 코드를 제1 참조 암호 코드와 비교하고, 제1 새로운 암호 코드가 제1 참조 암호 코드와 매칭되는 경우 판독 요청을 수용 - 판독 요청의 수용은 판독 작업을 가능하게 하는 것을 포함함 - 하는 것을 포함하는 방법에 관한 것이다.
실시예들 또는 예들은 위에서의 방법들 중 임의의 것을 포함하며, 방법은 제1 새로운 암호 코드가 제1 참조 암호 코드와 미스매칭되는 경우 판독 요청을 거절하는 것을 더 포함하고, 판독 요청의 거절은 판독 요청에 응답하여 에러 메시지를 발행하는 것을 포함하고, 제1 참조 암호 코드를 포함하는 데이터 블록이 제1 메타데이터 캐시로부터 누락되는 경우, 누락된 데이터 블록에 대한 판독 작업을 가능하게 하도록 하는 판독 요청이 제출된다.
실시예들 또는 예들은 위에서의 방법들 중 임의의 것을 포함하고, 제1 참조 및 새로운 암호 코드들은 HMAC(hash-based message authentication code)를 포함한다.
실시예들 또는 예들은 위에서의 방법들 중 임의의 것을 포함하고, 소프트웨어 애플리케이션은 컴퓨팅 디바이스에서 실행되는 오퍼레이팅 시스템을 포함한다.
실시예들 또는 예들은 위에서의 방법들 중 임의의 것을 포함하고, 컴퓨팅 디바이스에서의 소프트웨어 애플리케이션으로부터 기록 요청을 수신하여 제2 데이터 블록에 관한 기록 작업을 수행 - 기록 작업은 제2 데이터 블록을 저장 디바이스에서 저장된 데이터에 기록하는 것을 포함함 - 하고, 제2 데이터 블록과 관련된 제2 메타데이터 캐시에서 제2 참조 암호 코드에 액세스하고, 제2 데이터 블록에 관한 제2 새로운 암호 코드를 계산하고, 제2 메타데이터 캐시에서 제2 참조 암호 코드를 제2 새로운 암호 코드로 대체하고, 기록 요청을 수용 - 기록 요청의 수용은 기록 작업을 가능하게 함 - 하는 것을 더 포함한다.
실시예들 또는 예들은 위에서의 방법들 중 임의의 것을 포함하고, 제2 메타데이터 캐시는 제2 새로운 암호 코드를 유지하여, 제2 새로운 암호 코드가 미래의 판독 요청들에 대한 참조 암호 코드로서 이용되도록 한다.
실시예들 또는 예들은 위에서의 방법들 중 임의의 것을 포함하고, 제2 참조 및 새로운 암호 코드들은 HMAC를 포함한다.
실시예들 또는 예들은 위에서의 방법들 중 임의의 것을 포함하고, 소프트웨어 애플리케이션은 컴퓨팅 디바이스에서 실행되는 오퍼레이팅 시스템을 포함한다.
다른 실시예 또는 예에서, 장치는 컴퓨팅 디바이스에서의 소프트웨어 애플리케이션으로부터 판독 요청을 수신하여 컴퓨팅 디바이스에 연결된 저장 디바이스에서 저장된 데이터의 제1 데이터 블록에 관한 판독 작업을 수행하는 제1 로직 - 판독 작업은 제1 데이터 블록을 판독하는 것을 포함함 -, 제1 데이터 블록과 관련된 제1 메타데이터 캐시에서의 제1 참조 암호 코드에 액세스하는 제2 로직, 제1 데이터 블록에 관한 제1 새로운 암호 코드를 계산하는 제3 로직, 제1 새로운 암호 코드를 제1 참조 암호 코드와 비교하는 제4 로직, 및 제1 새로운 암호 코드가 제1 참조 암호 코드와 매칭되는 경우 판독 요청을 수용하는 제5 로직 - 판독 요청의 수용은 판독 작업을 가능하게 하는 것을 포함함 - 을 포함한다.
실시예들 또는 예들은 위에서의 장치를 포함하고, 제5 로직은 또한 제1 새로운 암호 코드가 제1 참조 암호 코드와 미스매칭되는 경우 판독 요청을 거절하고, 판독 요청의 거절은 판독 요청에 응답하여 에러 메시지를 발행하는 것을 포함하고, 제1 참조 암호 코드를 포함하는 데이터 블록이 제1 메타데이터 캐시로부터 누락되는 경우, 누락된 데이터 블록에 대한 판독 작업을 가능하게 하도록 하는 판독 요청이 제출된다.
실시예들 또는 예들은 위에서의 장치를 포함하고, 제1 참조 및 새로운 암호 코드들은 HMAC를 포함한다.
실시예들 또는 예들은 위에서의 장치를 포함하고, 소프트웨어 애플리케이션은 컴퓨팅 디바이스에서 실행되는 오퍼레이팅 시스템을 포함한다.
실시예들 또는 예들은 위에서의 장치를 포함하고, 제1 로직은 또한 컴퓨팅 디바이스에서의 소프트웨어 애플리케이션으로부터 기록 요청을 수신하여 제2 데이터 블록에 관한 기록 작업을 수행 - 기록 작업은 제2 데이터 블록을 저장 디바이스에서 저장된 데이터에 기록하는 것을 포함함 - 하고, 제2 로직은 또한 제2 데이터 블록과 관련된 제2 메타데이터 캐시에서 제2 참조 암호 코드에 액세스하고, 제3 로직은 또한 제2 데이터 블록에 관한 제2 새로운 암호 코드를 계산하고, 제4 로직은 또한 제2 메타데이터 캐시에서 제2 참조 암호 코드를 제2 새로운 암호 코드로 대체하고, 제5 로직은 또한 기록 요청을 수용하고, 기록 요청의 수용은 기록 작업을 가능하게 한다.
실시예들 또는 예들은 위에서의 장치를 포함하고, 제2 메타데이터 캐시는 제2 새로운 암호 코드를 유지하여, 제2 새로운 암호 코드가 미래의 판독 요청들에 대한 참조 암호 코드로서 이용되도록 한다.
실시예들 또는 예들은 위에서의 장치를 포함하고, 제2 참조 및 새로운 암호 코드들은 HMAC를 포함한다.
실시예들 또는 예들은 위에서의 장치를 포함하고, 소프트웨어 애플리케이션은 컴퓨팅 디바이스에서 실행되는 오퍼레이팅 시스템을 포함한다.
다른 실시예 또는 예에서, 시스템은 명령어를 저장하기 위한 메모리, 및 명령어를 실행하기 위한 처리 디바이스를 갖는 컴퓨팅 디바이스를 포함하고, 컴퓨팅 디바이스는 컴퓨팅 디바이스에서의 소프트웨어 애플리케이션으로부터 판독 요청을 수신하여 컴퓨팅 디바이스에 연결된 저장 디바이스에서 저장된 데이터의 제1 데이터 블록에 관한 판독 작업을 수행 - 판독 작업은 제1 데이터 블록을 판독하는 것을 포함함 - 하고, 제1 데이터 블록과 관련된 제1 메타데이터 캐시에서의 제1 참조 암호 코드에 액세스하고, 제1 데이터 블록에 관한 제1 새로운 암호 코드를 계산하고, 제1 새로운 암호 코드를 제1 참조 암호 코드와 비교하고, 제1 새로운 암호 코드가 제1 참조 암호 코드와 매칭되는 경우 판독 요청을 수용 - 판독 요청의 수용은 판독 작업을 가능하게 하는 것을 포함함 - 하기 위한 메카니즘을 더 갖는다.
실시예들 또는 예들은 위에서의 시스템을 포함하고, 제5 로직은 또한 제1 새로운 암호 코드가 제1 참조 암호 코드와 미스매칭되는 경우 판독 요청을 거절하고, 판독 요청의 거절은 판독 요청에 응답하여 에러 메시지를 발행하는 것을 포함하고, 제1 참조 암호 코드를 포함하는 데이터 블록이 제1 메타데이터 캐시로부터 누락되는 경우, 누락된 데이터 블록에 대한 판독 작업을 가능하게 하도록 하는 판독 요청이 제출된다.
실시예들 또는 예들은 위에서의 시스템을 포함하고, 제1 참조 및 새로운 암호 코드들은 HMAC를 포함한다.
실시예들 또는 예들은 위에서의 시스템을 포함하고, 소프트웨어 애플리케이션은 컴퓨팅 디바이스에서 실행되는 오퍼레이팅 시스템을 포함한다.
실시예들 또는 예들은 위에서의 시스템을 포함하고, 제1 로직은 또한 컴퓨팅 디바이스에서의 소프트웨어 애플리케이션으로부터 기록 요청을 수신하여 제2 데이터 블록에 관한 기록 작업을 수행 - 기록 작업은 제2 데이터 블록을 저장 디바이스에서 저장된 데이터에 기록하는 것을 포함함 - 하고, 제2 로직은 또한 제2 데이터 블록과 관련된 제2 메타데이터 캐시에서 제2 참조 암호 코드에 액세스하고, 제3 로직은 또한 제2 데이터 블록에 관한 제2 새로운 암호 코드를 계산하고, 제4 로직은 또한 제2 메타데이터 캐시에서 제2 참조 암호 코드를 제2 새로운 암호 코드로 대체하고, 제5 로직은 또한 기록 요청을 수용 - 기록 요청의 수용은 기록 작업을 가능하게 하는 것을 포함함 - 한다.
실시예들 또는 예들은 위에서의 시스템을 포함하고, 제2 메타데이터 캐시는 제2 새로운 암호 코드를 유지하여, 제2 새로운 암호 코드가 미래의 판독 요청들에 대한 참조 암호 코드로서 이용되도록 한다.
실시예들 또는 예들은 위에서의 시스템을 포함하고, 제2 참조 및 새로운 암호 코드들은 HMAC를 포함한다.
실시예들 또는 예들은 위에서의 시스템을 포함하고, 소프트웨어 애플리케이션은 컴퓨팅 디바이스에서 실행되는 오퍼레이팅 시스템을 포함한다.
다른 실시예 또는 예에서, 장치는 전술한 임의의 하나 이상의 동작을 수행하기 위한 수단을 포함한다.
또다른 실시예 또는 예에서, 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여, 컴퓨팅 디바이스가 전술한 동작들 중 임의의 하나 이상에 따른 방법을 수행하도록 하는 복수의 명령어를 포함하는 적어도 하나의 머신 판독가능 매체가 제공된다.
또다른 실시예 또는 예에서, 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여, 컴퓨팅 디바이스가 전술한 동작들 중 임의의 하나 이상에 따른 방법을 수행하도록 하는 복수의 명령어를 포함하는 적어도 하나의 비일시적 또는 유형의 머신 판독가능 매체가 제공된다.
또다른 실시예 또는 예에서, 전술한 임의의 하나 이상의 동작들에 따른 방법을 수행하도록 배열된 컴퓨팅 디바이스가 제공된다.
도면들 및 전술한 설명은 실시예들의 예를 제공한다. 본 기술 분야의 당업자라면, 기술된 요소들 중 하나 이상이 단일의 기능 요소로 결합될 수 있음을 이해할 것이다. 대안적으로, 특정한 요소들은 다수의 기능 요소들로 분할될 수 있다. 일 실시예로부터의 요소들은 다른 실시예에 부가될 수 있다. 예를 들어, 본 명세서에서 기술된 프로세스들의 순서는 변경될 수 있으며, 본 명세서에서 기술된 방식으로 제한되지 않는다. 더욱이, 임의의 흐름도가 필요한 동작들은 도시된 순서로 구현되지 않으며, 모든 동작들이 수행될 필요도 없다. 또한, 다른 동작들에 의존하지 않는 동작들은 다른 동작들과 병렬로 수행될 수 있다. 실시예들의 영역은 이러한 특정한 실시예들에 의해 결코 제한되지 않는다. 명세서에서 명시적으로 제공되었는지와는 관계없이, 구조, 치수 및 물질의 이용에서의 차이들과 같은 다양한 변형들이 가능하다. 실시예들의 영역은 이하의 청구항들에 의해 적어도 가급적 넓게 주어진다.

Claims (30)

  1. 컴퓨팅 디바이스에서의 소프트웨어 애플리케이션으로부터 판독 요청을 수신하여, 상기 컴퓨팅 디바이스에 연결된 저장 디바이스에 저장된 데이터의 제1 데이터 블록에 관한 판독 작업을 수행하는 단계 - 상기 판독 작업은 상기 제1 데이터 블록을 판독하는 것을 포함함 - 와,
    상기 제1 데이터 블록과 관련된 제1 메타데이터 캐시에서 제1 참조 암호 코드에 액세스하는 단계 - 상기 액세스하는 단계는 상기 제1 참조 암호 코드가 복수의 무결성 메타데이터 블록의 부분인 상기 제1 메타데이터 캐시와 연관되는지 결정하는 단계를 포함하고, 상기 제1 참조 암호 코드는 존재하는 HMAC(hash-based message authentication code)를 포함함 - 와,
    상기 제1 데이터 블록에 관한 제1 새로운 암호 코드를 계산하는 단계 - 상기 제1 새로운 암호 코드는 새로운 HMAC를 포함함 - 와,
    상기 제1 새로운 암호 코드를 상기 제1 참조 암호 코드와 비교하는 단계와,
    상기 제1 새로운 암호 코드가 상기 제1 참조 암호 코드와 매칭되는 경우 상기 판독 요청을 수용하는 단계 - 상기 판독 요청의 수용은 상기 판독 작업을 가능하게 하는 것을 포함함 - 와,
    상기 제1 새로운 암호 코드가 상기 제1 참조 암호 코드와 미스매칭되는 경우 상기 판독 요청을 거절하는 단계를 포함하고, 상기 판독 요청의 거절은 상기 판독 요청에 응답하여 에러 메시지를 발행하는 것을 포함하고, 상기 제1 참조 암호 코드를 포함하는 데이터 블록이 상기 제1 메타데이터 캐시로부터 누락되는 경우, 상기 누락된 데이터 블록을 판독하도록 상기 판독 작업을 가능하게 하도록 상기 판독 요청이 제출되는
    컴퓨터로 구현된 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 소프트웨어 애플리케이션은 상기 컴퓨팅 디바이스에서 실행되는 오퍼레이팅 시스템을 포함하는
    컴퓨터로 구현된 방법.
  5. 제1항에 있어서,
    상기 컴퓨팅 디바이스에서의 상기 소프트웨어 애플리케이션으로부터 기록 요청을 수신하여, 제2 데이터 블록에 관한 기록 작업을 수행하는 단계 - 상기 기록 작업은 상기 제2 데이터 블록을 상기 저장 디바이스에 저장된 데이터에 기록하는 것을 포함함 - 와,
    상기 제2 데이터 블록과 관련된 제2 메타데이터 캐시에서 제2 참조 암호 코드에 액세스하는 단계와,
    상기 제2 데이터 블록에 관한 제2 새로운 암호 코드를 계산하는 단계와,
    상기 제2 메타데이터 캐시에서 상기 제2 참조 암호 코드를 상기 제2 새로운 암호 코드로 대체하는 단계와,
    상기 기록 요청을 수용하는 단계 - 상기 기록 요청의 수용은 상기 기록 작업을 가능하게 하는 것을 포함함 - 를 더 포함하는
    컴퓨터로 구현된 방법.
  6. 제5항에 있어서,
    상기 제2 메타데이터 캐시는 상기 제2 새로운 암호 코드를 유지하여, 상기 제2 새로운 암호 코드가 미래의 판독 요청들에 대한 참조 암호 코드로서 이용되도록 하는
    컴퓨터로 구현된 방법.
  7. 제5항에 있어서,
    상기 제2 참조 암호 코드는 또 다른 존재하는 HMAC를 포함하고, 상기 제2 새로운 암호 코드는 또 다른 새로운 HMAC를 포함하는
    컴퓨터로 구현된 방법.
  8. 제5항에 있어서,
    상기 소프트웨어 애플리케이션은 상기 컴퓨팅 디바이스에서 실행되는 오퍼레이팅 시스템을 포함하는
    컴퓨터로 구현된 방법.
  9. 컴퓨팅 디바이스에서의 소프트웨어 애플리케이션으로부터 판독 요청을 수신하여, 상기 컴퓨팅 디바이스에 연결된 저장 디바이스에 저장된 데이터의 제1 데이터 블록에 관한 판독 작업을 수행하는 제1 로직 - 상기 판독 작업은 상기 제1 데이터 블록을 판독하는 것을 포함함 - 과,
    상기 제1 데이터 블록과 관련된 제1 메타데이터 캐시에서의 제1 참조 암호 코드에 액세스하는 제2 로직 - 상기 액세스하는 것은 상기 제1 참조 암호 코드가 복수의 무결성 메타데이터 블록의 부분인 상기 제1 메타데이터 캐시와 연관되는지 결정하는 것을 포함하고, 상기 제1 참조 암호 코드는 존재하는 HMAC(hash-based message authentication code)를 포함함 - 과,
    상기 제1 데이터 블록에 관한 제1 새로운 암호 코드를 계산하는 제3 로직 - 상기 제1 새로운 암호 코드는 새로운 HMAC를 포함함 - 과,
    상기 제1 새로운 암호 코드를 상기 제1 참조 암호 코드와 비교하는 제4 로직과,
    상기 제1 새로운 암호 코드가 상기 제1 참조 암호 코드와 매칭되는 경우 상기 판독 요청을 수용하는 제5 로직 - 상기 판독 요청의 수용은 상기 판독 작업을 가능하게 하는 것을 포함함 - 을 포함하고,
    상기 제5 로직은 또한 상기 제1 새로운 암호 코드가 상기 제1 참조 암호 코드와 미스매칭되는 경우 상기 판독 요청을 거절하고, 상기 판독 요청의 거절은 상기 판독 요청에 응답하여 에러 메시지를 발행하는 것을 포함하고, 상기 제1 참조 암호 코드를 포함하는 데이터 블록이 상기 제1 메타데이터 캐시로부터 누락되는 경우, 상기 누락된 데이터 블록을 판독하도록 상기 판독 작업을 가능하게 하도록 상기 판독 요청이 제출되는
    컴퓨팅 장치.
  10. 삭제
  11. 삭제
  12. 제9항에 있어서,
    상기 소프트웨어 애플리케이션은 상기 컴퓨팅 디바이스에서 실행되는 오퍼레이팅 시스템을 포함하는
    컴퓨팅 장치.
  13. 제9항에 있어서,
    상기 제1 로직은 또한 상기 컴퓨팅 디바이스에서의 상기 소프트웨어 애플리케이션으로부터 기록 요청을 수신하여 제2 데이터 블록에 관한 기록 작업을 수행 - 상기 기록 작업은 상기 제2 데이터 블록을 상기 저장 디바이스에 저장된 데이터에 기록하는 것을 포함함 - 하고,
    상기 제2 로직은 또한 상기 제2 데이터 블록과 관련된 제2 메타데이터 캐시에서 제2 참조 암호 코드에 액세스하고,
    상기 제3 로직은 또한 상기 제2 데이터 블록에 관한 제2 새로운 암호 코드를 계산하고,
    상기 제4 로직은 또한 상기 제2 메타데이터 캐시에서 상기 제2 참조 암호 코드를 상기 제2 새로운 암호 코드로 대체하고,
    상기 제5 로직은 또한 상기 기록 요청을 수용 - 상기 기록 요청의 수용은 상기 기록 작업을 가능하게 하는 것을 포함함 - 하는
    컴퓨팅 장치.
  14. 제13항에 있어서,
    상기 제2 메타데이터 캐시는 상기 제2 새로운 암호 코드를 유지하여, 상기 제2 새로운 암호 코드가 미래의 판독 요청들에 대한 참조 암호 코드로서 이용되도록 하는
    컴퓨팅 장치.
  15. 제13항에 있어서,
    상기 제2 참조 암호 코드는 또 다른 존재하는 HMAC를 포함하고, 상기 제2 새로운 암호 코드는 또 다른 새로운 HMAC를 포함하는
    컴퓨팅 장치.
  16. 제13항에 있어서,
    상기 소프트웨어 애플리케이션은 상기 컴퓨팅 디바이스에서 실행되는 오퍼레이팅 시스템을 포함하는
    컴퓨팅 장치.
  17. 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여, 상기 컴퓨팅 디바이스가 하나 이상의 동작들에 따른 방법을 수행하도록 하는 복수의 명령어를 포함하는 적어도 하나의 머신 판독가능 저장 매체로서,
    상기 하나 이상의 동작들은,
    컴퓨팅 디바이스에서의 소프트웨어 애플리케이션으로부터 판독 요청을 수신하여, 상기 컴퓨팅 디바이스에 연결된 저장 디바이스에 저장된 데이터의 제1 데이터 블록에 관한 판독 작업을 수행 - 상기 판독 작업은 상기 제1 데이터 블록을 판독하는 것을 포함함 - 하는 것과,
    상기 제1 데이터 블록과 관련된 제1 메타데이터 캐시에서 제1 참조 암호 코드에 액세스하는 것 - 상기 액세스하는 것은 상기 제1 참조 암호 코드가 복수의 무결성 메타데이터 블록의 부분인 상기 제1 메타데이터 캐시와 연관되는지 결정하는 것을 포함하고, 상기 제1 참조 암호 코드는 존재하는 HMAC(hash-based message authentication code)를 포함함 - 과,
    상기 제1 데이터 블록에 관한 제1 새로운 암호 코드를 계산하는 것 - 상기 제1 새로운 암호 코드는 새로운 HMAC를 포함함 - 과,
    상기 제1 새로운 암호 코드를 상기 제1 참조 암호 코드와 비교하는 것과,
    상기 제1 새로운 암호 코드가 상기 제1 참조 암호 코드와 매칭되는 경우 상기 판독 요청을 수용 - 상기 판독 요청의 수용은 상기 판독 작업을 가능하게 하는 것을 포함함 - 하는 것과,
    상기 제1 새로운 암호 코드가 상기 제1 참조 암호 코드와 미스매칭되는 경우 상기 판독 요청을 거절하는 것을 포함하고, 상기 판독 요청의 거절은 상기 판독 요청에 응답하여 에러 메시지를 발행하는 것을 포함하고, 상기 제1 참조 암호 코드를 포함하는 데이터 블록이 상기 제1 메타데이터 캐시로부터 누락되는 경우, 상기 누락된 데이터 블록을 판독하도록 상기 판독 작업을 가능하게 하도록 상기 판독 요청이 제출되는
    머신 판독가능 저장 매체.
  18. 삭제
  19. 삭제
  20. 제17항에 있어서,
    상기 소프트웨어 애플리케이션은 상기 컴퓨팅 디바이스에서 실행되는 오퍼레이팅 시스템을 포함하는
    머신 판독가능 저장 매체.
  21. 제17항에 있어서,
    상기 하나 이상의 동작들은 또한,
    상기 컴퓨팅 디바이스에서의 상기 소프트웨어 애플리케이션으로부터 기록 요청을 수신하여 제2 데이터 블록에 관한 기록 작업을 수행 - 상기 기록 작업은 상기 제2 데이터 블록을 상기 저장 디바이스에 저장된 데이터에 기록하는 것을 포함함 - 하는 것과,
    상기 제2 데이터 블록과 관련된 제2 메타데이터 캐시에서 제2 참조 암호 코드에 액세스하는 것과,
    상기 제2 데이터 블록에 관한 제2 새로운 암호 코드를 계산하는 것과,
    상기 제2 메타데이터 캐시에서 상기 제2 참조 암호 코드를 상기 제2 새로운 암호 코드로 대체하는 것과,
    상기 기록 요청을 수용 - 상기 기록 요청의 수용은 상기 기록 작업을 가능하게 하는 것을 포함함 - 하는 것을 포함하는
    머신 판독가능 저장 매체.
  22. 제21항에 있어서,
    상기 제2 메타데이터 캐시는 상기 제2 새로운 암호 코드를 유지하여, 상기 제2 새로운 암호 코드가 미래의 판독 요청들에 대한 참조 암호 코드로서 이용되도록 하는
    머신 판독가능 저장 매체.
  23. 제21항에 있어서,
    상기 제2 참조 암호 코드는 또 다른 존재하는 HMAC를 포함하고, 상기 제2 새로운 암호 코드는 또 다른 새로운 HMAC를 포함하는
    머신 판독가능 저장 매체.
  24. 제21항에 있어서,
    상기 소프트웨어 애플리케이션은 상기 컴퓨팅 디바이스에서 실행되는 오퍼레이팅 시스템을 포함하는
    머신 판독가능 저장 매체.
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020157002272A 2012-08-31 2013-08-12 컴퓨팅 시스템에서의 저장 데이터의 무암호화 무결성 보호를 가능하게 하는 메카니즘 KR101732491B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/601,969 US8793506B2 (en) 2012-08-31 2012-08-31 Mechanism for facilitating encryption-free integrity protection of storage data at computing systems
US13/601,969 2012-08-31
PCT/US2013/054535 WO2014035650A1 (en) 2012-08-31 2013-08-12 Mechanism for facilitating encryption-free integrity protection of storage data at computing systems

Publications (2)

Publication Number Publication Date
KR20150028826A KR20150028826A (ko) 2015-03-16
KR101732491B1 true KR101732491B1 (ko) 2017-05-04

Family

ID=50184138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157002272A KR101732491B1 (ko) 2012-08-31 2013-08-12 컴퓨팅 시스템에서의 저장 데이터의 무암호화 무결성 보호를 가능하게 하는 메카니즘

Country Status (6)

Country Link
US (1) US8793506B2 (ko)
EP (1) EP2891106B1 (ko)
JP (1) JP5975501B2 (ko)
KR (1) KR101732491B1 (ko)
CN (1) CN104067287B (ko)
WO (1) WO2014035650A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140279946A1 (en) * 2013-03-12 2014-09-18 Futurewei Technologies, Inc. System and Method for Automatic Integrity Checks in a Key/Value Store
TWM487509U (zh) 2013-06-19 2014-10-01 杜比實驗室特許公司 音訊處理設備及電子裝置
WO2015038475A1 (en) 2013-09-12 2015-03-19 Dolby Laboratories Licensing Corporation Dynamic range control for a wide variety of playback environments
US9934412B2 (en) * 2015-06-23 2018-04-03 Microsoft Technology Licensing, Llc Implementing replay protected storage
US10728043B2 (en) 2015-07-21 2020-07-28 Entrust, Inc. Method and apparatus for providing secure communication among constrained devices
CN109643281A (zh) * 2016-03-11 2019-04-16 赛博算机公司 数据加密和解密的系统和方法
US10511598B2 (en) * 2016-03-29 2019-12-17 Intel Corporation Technologies for dynamic loading of integrity protected modules into secure enclaves
GB2553836B (en) * 2016-09-16 2021-05-19 1E Ltd File execution
US10489368B1 (en) * 2016-12-14 2019-11-26 Ascension Labs, Inc. Datapath graph with update detection using fingerprints
US10411896B2 (en) * 2017-02-13 2019-09-10 Red Hat, Inc. Mixed checksum injection for content verification on multiple platforms
US10740186B2 (en) * 2017-05-15 2020-08-11 The Boeing Company High data integrity processing system
CN107948072B (zh) * 2017-10-31 2021-04-27 新华三技术有限公司 报文转发方法和装置
KR20220101018A (ko) * 2018-03-23 2022-07-18 마이크론 테크놀로지, 인크. 저장 디바이스의 인증 변경
CN109003078B (zh) 2018-06-27 2021-08-24 创新先进技术有限公司 基于区块链的智能合约调用方法及装置、电子设备
CN113095822A (zh) * 2018-06-27 2021-07-09 创新先进技术有限公司 基于区块链的智能合约调用方法及装置、电子设备
GB2583738B (en) * 2019-05-07 2021-05-05 Arm Ip Ltd Content distribution integrity control
US11728998B2 (en) * 2020-10-22 2023-08-15 EMC IP Holding Company LLC Authenticating communications between physical ports using knowledge of shared secrets

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004078696A (ja) 2002-08-20 2004-03-11 Nippon Telegr & Teleph Corp <Ntt> ファイルシステムの完全性保証方法、完全性保証可能なファイルシステムを実現可能なコンピュータシステム、ファイルシステムの完全性保証用プログラム、及びファイルシステムの完全性保証用記録媒体
US20080082819A1 (en) * 2006-09-28 2008-04-03 Jack Brizek Authenticating data returned from non-volatile memory commands
JP2008140384A (ja) 2006-11-13 2008-06-19 Seagate Technology Llc 認証済みデータ・ストレージのための方法および装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001356964A (ja) * 2000-06-15 2001-12-26 Sony Corp 暗号化データ記憶装置
KR100346411B1 (ko) * 2000-08-26 2002-08-01 조인구 커널모드에서 파일을 자동으로 암호화, 복호화하는 방법,이를 이용한 파일 포인터 이동방법, 및 이들을프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체
US7412450B1 (en) * 2004-05-26 2008-08-12 Sun Microsystems, Inc. Method and apparatus for identifying tampering of data in a file system
US7444523B2 (en) * 2004-08-27 2008-10-28 Microsoft Corporation System and method for using address bits to signal security attributes of data in the address space
CA2510647A1 (en) * 2005-06-23 2006-12-23 Cognos Incorporated Signing of web request
US7743239B2 (en) * 2006-06-30 2010-06-22 Intel Corporation Accelerating integrity checks of code and data stored in non-volatile memory
US7624276B2 (en) * 2006-10-16 2009-11-24 Broadon Communications Corp. Secure device authentication system and method
US8209542B2 (en) * 2006-12-29 2012-06-26 Intel Corporation Methods and apparatus for authenticating components of processing systems
US7841010B2 (en) * 2007-01-08 2010-11-23 Apple Inc. Software or other information integrity verification using variable block length and selection
JP2008257279A (ja) * 2007-03-30 2008-10-23 Nec Corp ファイルシステムの完全性強化方法
CN101452512B (zh) * 2007-12-03 2011-03-30 联想(北京)有限公司 实现文件安全存储的方法、装置和文件读取装置
US8560761B2 (en) * 2008-03-31 2013-10-15 Spansion Llc Memory resource management for a flash aware kernel
JP2010271862A (ja) * 2009-05-20 2010-12-02 Toshiba Corp 情報処理システムおよび情報処理装置
US20110153944A1 (en) * 2009-12-22 2011-06-23 Klaus Kursawe Secure Cache Memory Architecture
US8856534B2 (en) * 2010-05-21 2014-10-07 Intel Corporation Method and apparatus for secure scan of data storage device from remote server
CN101853190B (zh) * 2010-06-04 2012-07-04 华中科技大学 一种适用于嵌入式处理器的数据完整性验证方法
WO2012055966A1 (en) * 2010-10-27 2012-05-03 MAX-PLANCK-Gesellschaft zur Förderung der Wissenschaften e.V. Protecting data integrity with storage leases
US8560845B2 (en) * 2011-01-14 2013-10-15 Apple Inc. System and method for tamper-resistant booting

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004078696A (ja) 2002-08-20 2004-03-11 Nippon Telegr & Teleph Corp <Ntt> ファイルシステムの完全性保証方法、完全性保証可能なファイルシステムを実現可能なコンピュータシステム、ファイルシステムの完全性保証用プログラム、及びファイルシステムの完全性保証用記録媒体
US20080082819A1 (en) * 2006-09-28 2008-04-03 Jack Brizek Authenticating data returned from non-volatile memory commands
JP2008140384A (ja) 2006-11-13 2008-06-19 Seagate Technology Llc 認証済みデータ・ストレージのための方法および装置

Also Published As

Publication number Publication date
KR20150028826A (ko) 2015-03-16
EP2891106A1 (en) 2015-07-08
EP2891106B1 (en) 2018-10-24
US8793506B2 (en) 2014-07-29
JP5975501B2 (ja) 2016-08-23
CN104067287B (zh) 2018-08-14
JP2015527008A (ja) 2015-09-10
EP2891106A4 (en) 2016-03-30
US20140068274A1 (en) 2014-03-06
CN104067287A (zh) 2014-09-24
WO2014035650A1 (en) 2014-03-06

Similar Documents

Publication Publication Date Title
KR101732491B1 (ko) 컴퓨팅 시스템에서의 저장 데이터의 무암호화 무결성 보호를 가능하게 하는 메카니즘
US11153094B2 (en) Secure data deduplication with smaller hash values
US9632891B2 (en) Faster reconstruction of segments using a dedicated spare memory unit
US20220198052A1 (en) Data storage method, device, and storage medium
CN105530284B (zh) 文件同步方法
US10146786B2 (en) Managing deduplication in a data storage system using a Bloomier filter data dictionary
US9529805B2 (en) Systems and methods for providing dynamic file system awareness on storage devices
US9946740B2 (en) Handling server and client operations uninterruptedly during pack and audit processes
US9215251B2 (en) Apparatus, systems, and methods for managing data security
US20130276123A1 (en) Mechanism for providing a secure environment for acceleration of software applications at computing devices
US11461182B2 (en) Storage system backup and de-duplication
US11409456B2 (en) Methods to reduce storage capacity
US20230128077A1 (en) System and Method for Aggregation of Write Commits To Control Written Block Size
US10019574B2 (en) Systems and methods for providing dynamic file system awareness on storage devices
US20240020382A1 (en) System and method for cryptographic security through process diversity
US11210162B2 (en) Approach to improve decompression performance by scatter gather compression units and also updating checksum mechanism
US12032701B2 (en) Method for preventing malicious configurations by cryptographically securing validated boot image using mutable copy of an immutable set of configurations
US11385941B2 (en) System and method for address space slicing with strong CPU core affinity
US20240104229A1 (en) Verifiable attribute maps
US11151159B2 (en) System and method for deduplication-aware replication with an unreliable hash
CN116975902A (zh) 基于可信执行环境的任务执行方法和装置
US20210034510A1 (en) System and method for reduced lock contention and improved performance

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant