KR20110122791A - 정보 흐름 추적 및 보호 - Google Patents

정보 흐름 추적 및 보호 Download PDF

Info

Publication number
KR20110122791A
KR20110122791A KR1020110042304A KR20110042304A KR20110122791A KR 20110122791 A KR20110122791 A KR 20110122791A KR 1020110042304 A KR1020110042304 A KR 1020110042304A KR 20110042304 A KR20110042304 A KR 20110042304A KR 20110122791 A KR20110122791 A KR 20110122791A
Authority
KR
South Korea
Prior art keywords
data
computing device
protection policy
memory
tag
Prior art date
Application number
KR1020110042304A
Other languages
English (en)
Other versions
KR101268767B1 (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 KR20110122791A publication Critical patent/KR20110122791A/ko
Application granted granted Critical
Publication of KR101268767B1 publication Critical patent/KR101268767B1/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures

Landscapes

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

Abstract

본 발명의 실시예들은 일반적으로 제스처 기반 서명 인증을 구현하기 위한 시스템, 방법, 장치, 및 머신 판독 가능 매체에 관련된다. 하나의 실시예에서, 방법은 신뢰할 수 없는 소프트웨어 환경으로부터 로컬 컴퓨터 시스템 내의 메모리에 저장된 보호된 데이터에의 액세스를 통제하는 데이터 보호 정책을 생성하는 것을 포함할 수 있다. 그 후 방법은 데이터 보호 정책을 정보 흐름 추적 및 보호(IFTP) 로직에 의해 관리되는 시행 가능한 시스템 레벨 데이터 보호 정책으로 매핑한다. 다음으로, 방법은 보호된 데이터를 포함하는 제1 메모리 페이지를 플래깅한다. 마지막으로, 방법은 IFTP 로직 및 시행 가능한 시스템 레벨 데이터 보호 정책을 이용하여 보호된 데이터를 포함하는 제1 메모리 페이지에 대하여 생성된 데이터 보호 정책을 시행한다.

Description

정보 흐름 추적 및 보호{INFORMATION FLOW TRACKING AND PROTECTION}
본 발명은 시스템 내에서 및 네트워크를 가로질러 정보 흐름을 추적하고 그 흐름 내의 정보를 보호하는 분야와 관련이 있다.
기업, 중소기업에서, 및 소비자 가정에서의 최종 사용자 컴퓨팅 환경들을 포함하는, 전형적인 최종 사용자 컴퓨팅 환경들은 규모와 복잡성이 증가하고 있다. 이러한 시스템들의 능력이 증가된 상황에서, "표준" 상용 기성품(commercial off-the-shelf, COTS) 컴퓨터 시스템이 핵심 기반(critical infrastructure)에서 또는 민감한 데이터에 액세스하는 클라이언트로서 사용되는 것은 보기 드문 일이 아니다.
운영 체제 및 클라이언트 애플리케이션이 더욱 복잡해짐에 따라, 스파이웨어 및 루트킷(rootkits)과 같은 악성 소프트웨어가 시스템을 손상하고, 어떤 경우에는, 네트워크를 가로질러 빠르게 전파하는 새로운 기회들이 이용 가능하게 된다. 정보 절도 및 악용의 사건들이 증가하고 있는 것은 놀라운 일이 아니다.
이러한 정보 절도 중 다수는 단순히 신뢰될 수 없는 운영 체제에서 기인한다. 악성 코드는 운영 체제의 커널에 쉽게 "후킹"(hook)할 수 있고, 이로 인해 시스템 상의 모든 애플리케이션들에 대해 호스트의 역할을 하는 매우 특권이 있고 악의적인 환경으로 된다. 그 결과 악의적인 공격자들은 더 이상 무작위(random)가 아니고 종종 데이터 절도를 위해 구체적으로 의도된다. 민감한 정보 및/또는 제한된 리소스들에의 액세스를 통제하는 정책들은, 멀웨어(malware)가 거주하는 동일한 환경을 이용하여 지정되고 시행되기 때문에 종종 손상된다. 마지막으로, 운영상의 관점에서, 부주의로 누설된 기밀 데이터를 볼 수 없고 관리자들이 보안 및 프라이버시 정책들 및 기밀 정보에 대한 제한을 시행하는 것을 돕는 도구가 거의 없다.
본 발명의 실시예들은 같은 참조 번호들이 유사한 엘리먼트들을 나타내는 첨부 도면들에서 제한으로서가 아니라 예로서 도시된다.
도 1은 정보 흐름을 추적하고 보호하는 컴퓨팅 시스템의 실시예의 선택된 양태들을 도시하는 하이레벨 블록도이다.
도 2는 정보 흐름을 추적하고 보호하기 위해 사용되는 컴퓨터 시스템의 특정한 소프트웨어, 펌웨어, 및 하드웨어 컴포넌트들의 실시예를 도시한다.
도 3은 데이터 보호 정책들을 지정하고 매핑하는 프로세스의 실시예의 흐름도이다.
도 4는 들어오는 데이터 보호 정책들을 변환하고 매핑하는 프로세스의 실시예의 흐름도를 도시한다.
도 5는 로컬 머신 상에서 데이터 보안 정책을 시행하는 프로세스의 실시예의 흐름도를 도시한다.
도 6은 시스템 내의 트러스트 코프로세서의 하드웨어 내에 구현된 IFTP 로직의 실시예를 도시한다.
실시예들은 일반적으로 정보 흐름을 추적하고 보호하기 위한 시스템, 방법, 및 장치에 관련된다.
도 1은 정보 흐름을 추적하고 보호하는 컴퓨팅 시스템의 실시예의 선택된 양태들을 도시하는 하이레벨 블록도이다.
컴퓨터 시스템(100)이 도시되어 있다. 컴퓨터 시스템은 데스크톱, 서버, 워크스테이션, 랩톱, 핸드헬드, 텔레비전 세트톱, 미디어 센터, 게임 콘솔, (자동차 안과 같은) 통합 시스템, 또는 다른 유형의 컴퓨터 시스템일 수 있다. 몇몇 실시예들에서 컴퓨터 시스템(100)은 몇몇 컴포넌트들을 함께 연결하는 시스템 보드(102)(즉, 마더보드)를 포함한다. 예를 들면, 시스템 보드(102)는 와이어 트레이스들 및 특정한 인터페이스들의 사용을 통하여 컴포넌트들을 연결할 수 있다. 시스템 보드(102)는 연결된 컴포넌트들에 전력을 전달할 수 있다. 또한, 시스템 보드는 복수의 컴포넌트들이 서로 통신할 수 있게 하는 통신 인터페이스를 제공할 수 있다.
시스템 보드(102)에 연결된 컴포넌트들 중에 하나 이상의 중앙 처리 장치(CPU)가 있다. 비록 많은 실시예들에서 잠재적으로 다수의 CPU가 있지만, 도 1에 도시된 실시예에서는, 명료함을 위해 하나의 CPU, 즉 CPU(104)만이 도시되어 있다. CPU(104)는 인텔사의 CPU 또는 다른 브랜드의 CPU일 수 있다. CPU(104)는 하나 이상의 코어를 포함한다. 도시된 실시예에서, CPU(104)는 4개의 코어: 코어(106), 코어(108), 코어(110), 및 코어(112)를 포함한다. 다른 실시예들에서, CPU(104)는 도 1에 도시된 4개의 코어보다 많거나 혹은 적은 수의 코어를 가질 수 있다. 많은 실시예들에서, (코어(106)와 같은) 각 코어는 하나 이상의 실행 유닛, 회수(retirement) 유닛, 범용 및 특수 레지스터들의 세트 등과 같은 내부 기능 블록들을 포함한다. 만약 도 1에 도시된 코어들이 멀티-스레드(multi-threaded) 또는 하이퍼-스레드(hyper-threaded)이면, 각 하드웨어 스레드도 코어로 간주될 수 있다.
CPU(104)는 또한 캐시(114)와 같은 하나 이상의 캐시를 포함할 수 있다. 도시되지 않은 많은 실시예들에서는, 캐시(114) 이외의 추가적인 캐시들이 구현되고 각 코어 내의 실행 유닛들과 메모리 사이에 다중 레벨의 캐시가 존재한다. 상이한 실시예들에서 캐시들은 상이한 방법들로 할당(apportion)될 수 있다. 캐시(114)는 상이한 실시예들에서 다수의 상이한 사이즈들 중 하나일 수 있다. 예를 들면, 캐시(114)는 8 메가바이트(MB) 캐시, 16 MB 캐시, 등일 수 있다. 또한, 상이한 실시예들에서 캐시는 직접 매핑 캐시(direct mapped cache), 완전 연관 캐시(fully associative cache), 멀티웨이 세트 연관 캐시(multi-way set-associative cache), 또는 다른 유형의 매핑을 갖는 캐시일 수 있다. 각 캐시는 각각의 CPU 내의 모든 코어들 사이에 공유되는 하나의 큰 부분을 포함할 수 있고 또는 몇몇 개별 기능 슬라이스들(separately functional slices)(예를 들면, 각 코어마다 하나의 슬라이스)로 분할될 수 있다. 각 캐시는 또한 모든 코어들 사이에 공유되는 하나의 부분 및 코어마다의 개별 기능 슬라이스들인 몇몇 다른 부분들을 포함할 수 있다.
많은 실시예들에서, CPU(104)는 시스템 메모리(116)에 통신 연결된다. 시스템 메모리(116)는 인라인 메모리 모듈(in-line memory module)의 일부로서 기판에 또는 시스템 보드(102)에 물리적으로 연결된 몇몇 메모리 장치들을 포함할 수 있다. 많은 실시예들에서, 주어진 메모리 장치의 기본 구조는 DRAM(dynamic random access memory)의 기본 구조일 수 있다. 다른 실시예들에서는, 비휘발성 메모리 또는 상변화 메모리(phase-change memory)와 같은 메모리들이 사용될 수 있다.
하이브리드 메모리(116) 장치(들)는 고속(HS) 입력/출력 링크(118)(즉, 인터커넥트, 버스 등)를 통하여 CPU(104)에 통신 연결된다. 상이한 실시예들에서, CPU(104) 및 시스템 메모리(116)는 인터페이스를 통하여 통신할 수 있다. 예를 들면, 풀리 버퍼드(fully-buffered) 듀얼 인라인 메모리 모듈(dual-inline-memory-module, DIMM) 인터페이스, SMI(scalable memory interface), 인텔사의 퀵패스(QuickPath) 기술과 같은, 독점적 포인트-투-포인트 인터페이스(proprietary point-to-point interface), 또는 다른 그러한 고속 인터페이스.
많은 실시예들에서, 링크(118)는 하나 이상의 광 와이어, 금속 와이어, 또는 데이터, 어드레스, 컨트롤, 및/또는 클록 정보를 전송할 수 있는 다른 와이어(즉, 라인)를 포함할 수 있다. 많은 실시예들에서, 링크는 그 각각이 CPU(104)와 시스템 메모리(116) 사이에 데이터를 전송하는 복수의 레인들(lanes)을 포함하는 고속 직렬 인터페이스이다.
많은 실시예들에서, CPU(104)는 HS 링크(118)를 통하여 송수신된 정보를 변환(translate)하는 메모리 컨트롤러(120)를 포함한다. 메모리 컨트롤러(120)는 링크(118)에 직접 액세스하는 HS I/O 인터페이스(미도시)에 연결될 수 있다. 도시되지 않은 다른 실시예들에서, 메모리 컨트롤러(120)는 시스템 보드(102)에 직접 연결된 개별 장치이거나 또는 어쩌면 시스템 보드(102)에 연결되는 다른 장치(예를 들면, 메모리 컨트롤러 허브) 내에 통합될 수 있다.
CPU(104)는 통합된 I/O 인터페이스(124)를 통하여 입력/출력(I/O) 허브 콤플렉스(I/O hub complex)(122)에 연결될 수 있다. I/O 허브 콤플렉스(122)는 하나 이상의 I/O 장치와 CPU(104) 사이의 통신 인터페이스를 제공한다. 예를 들면, I/O 허브 콤플렉스(122)는 외부 네트워크(128)(즉, 컴퓨터 시스템(100) 외부의 네트워크)에 컴퓨터 시스템(100)을 연결하는 네트워크 I/O 인터페이스(126)에 링크될 수 있다. 외부 네트워크(128)의 예들은 홈 네트워크, 기업 내의 로컬 인트라넷, 광역 네트워크 토폴로지에 걸쳐 분산 분포된 네트워크(dispersed distributed network), 또는 인터넷을 포함할 수 있다. I/O 허브 콤플렉스(122)는 또한 주어진 통신 프로토콜 링크(예를 들면, USB(Universal Serial Bus), IEEE 1394 Firewire, SCSI(small computer system interface) 등)에의 통신을 제어하는 하나 이상의 통합된 호스트 컨트롤러를 가질 수 있다.
많은 실시예들에서, I/O 허브 콤플렉스(122)에 트러스트 코프로세서(trust coprocessor)(130)가 통합된다. 몇몇 실시예들에서, 트러스트 코프로세서(130)는 인텔사의 트러스티드 플랫폼 모듈(Trusted Platform Module) 또는 암호화 키, 안전한 로컬 저장소(secure local storage), 원격 증명(remote attestation), 및 기타 하드웨어 보안 메커니즘을 이용한 정보 보호의 하드웨어 레벨 보안 시행을 위해 설계된 다른 유형의 암호화 프로세서를 포함한다. 비록 많은 실시예들에서, 트러스트 코프로세서(130)는 I/O 허브 콤플렉스에 통합되지만, 도시되지 않은 다른 실시예들에서 트러스트 코프로세서(130)는 컴퓨터 시스템(100) 내의 다른 회로에 통합되거나 또는 독립 실행형 칩으로서 구현될 수 있다.
또한, 하이퍼바이저(hypervisor)(200) 및 측정된 소프트웨어 환경(measured software environment)(202)을 통해 설명된, 정보 흐름 추적 및 보호(information flow tracking and protection, IFTP)(132) 로직은 상이한 실시예들에서 하드웨어 트러스트 코프로세서 내의 회로로서, 소프트웨어로, 펌웨어로, 또는 이러한 로직 유형들 중 임의의 것의 조합으로 구현될 수 있다. IFTP 로직의 상세한 구현은 도 2에서 설명된다.
도 2는 정보 흐름을 추적(즉, 트레이스)하고 보호하기 위해 사용되는 컴퓨터 시스템의 특정한 소프트웨어, 펌웨어, 및 하드웨어 컴포넌트들의 실시예를 도시한다.
컴퓨터 시스템은 도 1에서 설명된 하드웨어의 특정한 구현들과 같은 특정한 하드웨어를 포함할 수 있다. 많은 실시예들에서, 컴퓨터 시스템은 하이퍼바이저를 포함한다. VMM(virtual machine monitor)이라고도 불릴 수 있는 하이퍼바이저는 복수의 운영 환경들이 컴퓨터 시스템 상에서 동시에 실행될 수 있게 한다. 각 운영 환경(예를 들면, 운영 체제(OS))은 게스트(guest) OS라고 불릴 수 있다. 하이퍼바이저는 각 게스트 OS에게 특정한 플랫폼 리소스들의 사용을 승인할 수 있다. 예를 들면, 각 게스트 OS에게 사용을 위해 시스템 메모리의 특정한 부분이 할당될 수 있을 뿐만 아니라 다른 하드웨어 컴포넌트들의 사용이 할당될 수 있다. 많은 실시예들에서, 게스트 OS에게 어떤 시간 슬라이스(slice of time) 동안 컴퓨터 시스템 리소스들에 대한 제어가 주어지고, 그 후 다른 게스트 OS에게 제어가 주어지고, 그렇게 계속해서 라운드 로빈(round-robin) 또는 다른 시분할(time sharing) 방식으로 진행된다. 컴퓨터 시스템 리소스들에 대한 제어의 이전(transfer)은 하이퍼바이저에 의해 관리된다.
하이퍼바이저는 많은 실시예들에서 소프트웨어로 구현될 수 있다. 하이퍼바이저는 하드웨어의 바로 위에 로우레벨 보호 모드(low-level protected mode)에서 실행된다. 예를 들면, 하이퍼바이저는 CPU(104), 트러스트 코프로세서(130), 및 네트워크 I/O 하드웨어 인터페이스(126)와 직접 함께 작업한다.
도 2에 도시된 실시예에서는, 2개의 게스트 소프트웨어 환경/OS가 있다. 도시되지 않은 다른 실시예들에서는 추가적인 게스트 소프트웨어 환경이 있을 수 있다. 구체적으로 도 2에서, 측정된 소프트웨어 환경(202) 및 신뢰할 수 없는(un-trusted) 소프트웨어 환경(204)은 양쪽 모두 컴퓨터 시스템에서 실행중이며, 잠재적으로 하이퍼바이저(200)에 의해 결정된 시간 할당을 통하여 하드웨어의 시간 슬라이스들을 공유한다. 많은 실시예들에서, 비록 이러한 소프트웨어 환경들은 하이퍼바이저(200)의 위에서 실행중이지만, 그것들은 하이퍼바이저의 존재를 알아채지 못할 수 있다.
측정된 소프트웨어 환경(202)는 시동할 때 및 어쩌면 동작 중의 다른 시점들에서 취해지는 구현된 보안 측정(security measures) 때문에 그렇게 불린다. 측정된 소프트웨어 환경(202)은 시동할 때 그것의 무결성(integrity)이 체크될 수 있다. 커널 또는 다른 코어 OS 구조들의 실제 측정 및 증명은 트러스티 코프로세서(130)에 구현된 하드웨어 보안 프로토콜들의 사용을 통하여(예를 들면, 측정된 환경의 현재의 이미지가 이전의 알려진 클린 이미지 버전과 일치하는지를 확인하기 위해 해시 테이블(hash table)의 사용을 통하여 공개 및 개인 암호화 키들을 사용하여) 수행될 수 있다. 이 측정은 컴퓨터 시스템 시동 동안에만 수행되는 것이 아니라, 어쩌면 마지막 측정 이후 특정한 양의 시간 슬라이스 동안 컴퓨터 시스템이 실행된 후에 설정된 시간 간격으로 수행될 수 있다. 따라서, 임의의 주어진 시점에, 측정된 환경은 악성 코드에 의한 어떠한 침입도 없는 알려진 안전한 운영 환경이다.
신뢰할 수 없는 소프트웨어 환경(206)은 전혀 측정되거나 증명되지 않을 수 있고 그렇기는커녕 거의 또는 전혀 보안 측정 없이 실행된다. 이 환경은 잠재적으로 정보 무결성을 손상할 수 있는 악성 코드로 인해 그것의 환경 내에서 실행중인 임의의 소프트웨어 애플리케이션들에게 보안 위험을 내포한다.
이 2개의 소프트웨어 환경, 즉 측정된 환경(202) 및 신뢰할 수 없는 환경(204)은 하이퍼바이저(200)의 위에서 실행되고 하이퍼바이저(200)와 통신 접촉하고 있다. 구체적으로, 이 2개의 소트트웨어 환경과 하이퍼바이저(200) 사이의 통신 핸드셰이킹(communicative handshaking)을 다루는 애플리케이션 인터페이스들이 존재한다. 메모리 태깅 인터페이스(memory tagging interface)(206)는 측정된 소프트웨어 환경(202)과 하이퍼바이저(200) 사이에 통신 접촉이 일어날 수 있게 하고 애플리케이션 태깅 인터페이스(application tagging interface)(208)는 신뢰할 수 없는 소프트웨어 환경(204)과 하이퍼바이저(200) 사이에 통신 접촉이 일어날 수 있게 한다. 이 애플리케이션 인터페이스들은 하이퍼바이저(200) 및 소프트웨어 환경들이 이용할 수 있는 호출들/명령들의 세트(즉, 컴퓨터 플랫폼 확장, 명령 세트 등)를 포함할 수 있다.
많은 실시예들에서, 하드웨어 네트워크 I/O 인터페이스(126)를 통하여 네트워크(128)로부터 네트워크 패킷이 도착할 때, 패킷은 측정된 소프트웨어 환경(202) 내의 착신 태그 확인/생성 모듈(incoming tag verification/generation module)(210)에 도착한다. 착신 태그 모듈(210)은 패킷의 콘텐츠에 기초하는 정보 태그들을 생성한다. 이 모듈은 일치하는 패킷 기준들에 기초하여 고유의 태그들을 생성할 수 있는 특수화된 패킷 파서(packet parser)이다. 많은 실시예들에서, 착신 패킷은 네트워크(128)를 가로질러 하나의 컴퓨터 시스템으로부터 다른 컴퓨터 시스템으로 전송되는 상당한 양의 데이터(an amount of data)를 포함한다. 착신 태그 모듈(210)은 그 데이터를 식별하고 로컬 컴퓨터 시스템(즉, 도 1 및 2에 도시된 컴퓨터 시스템)에서 사용하고 저장하기 위해 패킷으로부터 데이터를 파싱한다. 착신 태그 모듈(210)은 또한 착신 네트워크 패킷으로부터 파싱된 식별된 데이터의 사용을 추적하기 위해 컴퓨터 시스템에서 로컬로 사용되는 고유의 태그들을 생성한다.
몇몇 실시예들에서, 네트워크 패킷은 데이터와 함께 도착할 뿐만 아니라, 수신 컴퓨터 시스템에게 패킷 내의 데이터를 위해 이용할 보안을 통지하기 위한 첨부된 태그들과 함께 도착한다. 예를 들면, 하나의 패킷이 도착하고 적소에 보안이 없을 수 있는데, 로컬 시스템에서 요구되는 보안의 레벨에 따라서, 이것은 착신 태그 모듈(210)로 하여금 패킷 내의 도착하는 데이터를 위한 일반적인 기초 레벨 보안 태그를 생성하게 할 수 있다. 한편, 패킷 내의 데이터를 취급할 때 최고 보안이 사용되어야 하는 것을 확인하는 첨부된 태그들과 함께 다른 패킷이 도착할 수 있다. 이 경우, 착신 태그 모듈(210)은 패킷 내의 도착하는 데이터를 위한 상이한 보안 태그들의 세트를 생성할 수 있다. 이 생성된 보안 태그들의 세트는 임의의 로컬 엔티티가 데이터에 액세스할 수 있기 위해서는 추가적인 보안 측정이 사용될 것을 요구할 수 있고 또는 극단적으로, 로컬의 신뢰할 수 없는 소프트웨어 환경(204)이 어떤 식으로든 패킷 내의 데이터에 액세스하는 것을 허용하지 않을 수 있다.
착신 태그 모듈(210)은 착신 패킷에 첨부된 태그 정보를 태그 정책 모듈(212)에 전달할 수 있다. 태그 정책 모듈(212)은 착신 패킷에 첨부된 태그들로부터 수신된 또는 착신 태그 모듈(210)에 의해 생성된 태그 정책들이 정확히 시행되는 것을 확인한다. 예를 들면, 하나의 정책은 패킷 내의 착신 데이터의 저장을 위해 이용된 로컬 메모리의 페이지가 복사될 수 있는지 여부를 결정할 수 있다. 더 제한된 태그 보안 설정에서, 태그 정책 모듈(212)은 착신 태그 모듈(210)에게 데이터에 대하여 이용된 메모리 페이지의 어떤 복사도 불허하는 태그를 생성하도록 통지할 수 있다. 이 생성된 제한 태그는 그 후 착신 태그 모듈(210)로부터 하이퍼바이저(200) 내의 메모리 추적 모듈(214)로 송신된다.
메모리 추적 모듈(214)은 CPU(104) 자체의 확장으로서 메모리 추적 및 시행 기능을 제공한다. 메모리 추적 모듈(214)은 물리적 메모리에 대한 태그 데이터베이스(216)를 관리한다. 태그 데이터베이스(216)는 메모리 보호/관리 모듈(218)에 의해 직접 액세스된다. 많은 실시예들에서, 시스템 메모리(116)는 다수의 세그먼트들로 분할된다. 시스템 메모리(116)가 분할되는 것은 세그먼트마다의 개별 보안 보호를 가능하게 한다. 많은 실시예들에서, 세그먼트의 사이즈는 메모리의 물리적 페이지의 사이즈(예를 들면, 4 킬로바이트)이고, 다른 실시예들에서, 메모리의 세그먼트의 사이즈는 메모리의 페이지의 사이즈보다 더 작거나 또는 더 클 수 있다. 많은 실시예들에서, 태그 데이터베이스(216)는 세그먼트마다 적어도 하나의 태그를 포함할 수 있다. 다른 실시예들에서, 태그 데이터베이스의 사이즈를 최소화하기 위하여, 기준선 양의 보호(baseline amount of protection)를 초과하는 보호를 갖는 세그먼트들만이 그 추가된 보호를 상술하는 태그들을 포함한다. 태그 정책 모듈(212)에 의해 결정된, 기준선 보호를 이용하는 다른 세그먼트들에 대해서는, 태그가 없고 단지 태그의 부재(예를 들면, 널 포인터)만이 있을 수 있다.
메모리 세그먼트 보호의 다양한 레벨들이 태그 정책 모듈에 의해 결정될 수 있다. 예를 들면, 단순한 솔루션에서는, 2개의 보호 레벨들만이 있을 수 있다(예를 들면, 세그먼트는 보호되거나 또는 그것은 보호되지 않는다). 더 복잡한 솔루션에서는, 많은 보호 레벨들이 있을 수 있고 개별 세그먼트의 보호 레벨은 주어진 세그먼트에 저장된 데이터의 민감도에 의해 결정된다. 다소 더 복잡한 솔루션은 3개의 보호 레벨을 갖는 것일 것이다: 세그먼트에의 읽기/쓰기 액세스(read/write access)인 레벨 0, 세그먼트에의 읽기 액세스만(read access only)인 레벨 1, 세그먼트에의 액세스 불가(no access)인 레벨 2. 한층 더 복잡한 보호 솔루션은 각 세그먼트에 대하여 이 3개의 액세스 가능성들을 갖되, 그 액세스 가능성들에 대응하거나 대응하지 않을 수 있는 몇몇 사용자 액세스 권한 레벨들을 갖는 것일 것이다. 예를 들면, 미지의 사용자(unknown users), 서명한 사용자(signed in users), 서명한 관리자(signed administrators) 등이 사용자 레벨들의 가능성들 중 일부일 수 있다. 미지의 사용자는 어떠한 세그먼트에도 액세스할 수 없고, 서명한 사용자는 특정한 세그먼트들에 읽기/쓰기 액세스할 수 있고 다른 세그먼트들에 읽기 액세스만을 할 수 있는 반면, 서명한 관리자는 모든 세그먼트들에 완전히 액세스할 수 있다.
상이한 실시예들에서, 착신 태그 모듈(210)은 태그가 없는 패킷, 송신 시스템 특유의 태그를 갖는 패킷, 글로벌 태그를 갖는 태그를 수신할 수 있다. 송신 시스템 특유의 태그는 원격 컴퓨터 시스템에 의해 생성된 로컬 보호 정책과 관련이 있는 태그이다. 원격 컴퓨터 시스템은 보호될 데이터를 포함하는 패킷과 함께 로컬 태그 정보를 송신하였을 수 있다. 비록 이러한 유형의 태그는 다른 시스템들에게 유익할 수 있지만, 그것은 로컬 보호 정책을 이용하여 생성되었기 때문에, 이 정책은 다른 컴퓨터 시스템들에 의해 사용되는 동일한 유형의 정책이 아닐 수 있다. 몇몇 실시예들에서, 착신 태그 모듈(210) 및 태그 정책 모듈(212)은 이러한 유형의 태그의 원격 정책들을 해석하고 그 원격 태그와 흡사한(mirror) 로컬 태그를 생성할 수 있다. 원격 환경으로부터 로컬 환경으로 이러한 유형의 태그를 변환하는 능력은 원격 태그 시스템이 로컬 시스템과 얼마나 닮은지의 함수일 수 있다. 이러한 유형의 해석 정책은 컴퓨터 시스템들 사이에 상이한 보호 레벨들로 귀착할 수 있다. 한편, 글로벌 태그와 함께 수신된 패킷은 몇몇 컴퓨터 시스템들 사이에 표준화된 태그 정책을 이용한다. 글로벌 태그 보호 정책에 따르는 모든 컴퓨터 시스템들은 네트워크 패킷으로부터 태그를 직접 가져와서(import) 네트워크 패킷에 부착된 태그 내의 시스템들 사이에 전송된 보호 정책을 이용할 수 있을 것이다. 표준화된 데이터 보호 정책은 서로 간에 태그 정보를 전송하는 모든 참여 컴퓨터 시스템 사이에 데이터의 완전한 보호를 보증한다.
착신 태그 모듈(210)은 패킷들 내의 태그들을 파싱하여 추출하는(parsing out) 것에 의해 착신 패킷들을 처리한다. 그 후 그것은 그 태그들을 메모리 추적 모듈(214)에 등록한다. 이 등록 프로세스는 태그를 네트워크 패킷으로부터 수신된 데이터를 저장하는 하나 이상의 메모리 세그먼트와 연관시킨다. 메모리 추적 모듈(214)은 메모리 보호/관리 모듈(216)에게 태그 데이터베이스(216)를 업데이트하도록 통지한다. 이 업데이트는 새로이 도착한 데이터를 저장하는 메모리 세그먼트들과 연관되는 태그 데이터베이스 내의 특정한 위치들에 대한 태그 보안 정보로 이루어질 수 있다. 예를 들면, 고도로 보호되는 데이터(highly protected piece of data)가 네트워크 패킷에서 도착하였을 수 있다. 이 네트워크 패킷은 로컬 컴퓨터 시스템 내의 신뢰할 수 없는 환경들은 그 데이터에의 어떤 액세스 권한도 가지고 있지 않다는 것을 진술하는 태그를 포함하였을 수 있다. 데이터는 그 후 시스템 메모리에 세그먼트(245)에 저장된다. 태그 데이터베이스는 그 후 위치(245)에서 업데이트되고 이것은 신뢰할 수 없는 환경이 이 세그먼트에 액세스할 수 없도록 연관된 세그먼트의 보안 레벨을 높인다. 따라서, 그 후에, 만약 신뢰할 수 없는 환경의 운영 체제의 사용자가 액세스를 시도한다면, 그 액세스 시도는 메모리 보호/관리 모듈(218)에 의해 처리되고, 메모리 보호/관리 모듈(218)은 그 후 그 세그먼트에 대하여 태그 데이터베이스(216)를 체크한다. 사용자의 보안 레벨 및 메모리 세그먼트의 보다 높은 보안 레벨을 알고, 메모리 보호/관리 모듈(218)은 그 사용자가 그 세그먼트에 액세스할 만큼의 높은 보안 허가(security clearance)를 가지고 있지 않다는 것을 깨닫고 그 요청을 거부한다.
발신 태그 확인/생성 모듈(outgoing tag verification/generation module)(220)은 아웃바운드 패킷들(outbound packets)과 관련된 태그 정보를 위해 이용된다. 발신 태그 모듈(220)은 태그를 다른 컴퓨터 시스템 또는 다른 가상 머신과의 보안 연관(security association)으로 매핑할 수 있다. 즉, 만약 발신 태그 모듈(220)이 데스티네이션(destination) 시스템의 보안 연관들을 알고 있다면, 그것은 태그를 원격 시스템과 호환되도록 수정할 수 있다. 발신 태그 모듈(220)은 또한 현재 태깅된 패킷을 언태그(un-tag)할 수 있다(예를 들면, 그 패킷이 보안 태그를 이용하지 않는 원격 네트워크 또는 시스템으로 아웃바운드된다면). 또한, 만약 타깃(target) 데스티네이션 시스템이 동일한 데이터 보안 정책들을 이용한다면, 발신 태그 모듈(220)은 아웃바운드 패킷에 태그를 삽입(embed)할 수 있고 따라서 호환되는 원격 시스템에서 그 정보가 추적될 수 있다. 상이한 실시예들에서, 아웃바운드 패킷의 타깃 시스템은 원격 시스템 또는 로컬 시스템 내의 다른 가상 머신일 수 있다.
인바운드(inbound) 관점에서, 패킷은 네트워크 I/O 인터페이스(126)를 통하여 네트워크(128)로부터 도착할 수 있다. 패킷은 착신 태그 모듈(210)에 의해 수신되고, 착신 태그 모듈(210)은 패킷을 파싱하여, 패킷 내의 데이터와 태그 정보(만약 존재한다면)를 분리한다. 만약 태그 정보가 존재하지 않는다면, 착신 태그 모듈(210)은 이용되어야 하는 정확한 보안 파라미터에 대하여 태그 정책 모듈(212)과 상의한 후에 그 데이터에 대한 태그를 생성할 수 있다. 태그는 그 후 착신 태그 모듈(210)로부터 메모리 추적 모듈(214)로 송신되고, 메모리 추적 모듈(214)은 태그 데이터베이스(216)에 액세스하기 위해 메모리 보호/관리 모듈(218)과 통신한다. 착신 태그 모듈(210)은 패킷으로부터의 데이터를 신뢰할 수 없는 소프트웨어 환경(204)에 송신한다. 신뢰할 수 없는 환경의 소프트웨어에서 실행중인 네트워크 인터페이스(222)가 그 데이터를 수신하고, 그 데이터는 그 후 신뢰할 수 없는 환경에서 실행중인 애플리케이션들(224)에 의해 사용된다. 유감스럽게도, 이 환경은 신뢰할 수 없기 때문에, 이 신뢰할 수 없는 환경에서는 멀웨어(226)와 같은 다른 악성 프로그램들이 또한 실행중일 수 있다. 신뢰할 수 없는 환경의 소프트웨어의 미지의 성질 때문에, 이 특정한 소프트웨어의 임의의 것에 의한 데이터에의 액세스가 제한될 수 있다. 신뢰할 수 없는 환경에 상주하는 임의의 엔티티에 부여되는 액세스의 레벨은 수신된 정보를 저장하는 하나 이상의 메모리 세그먼트에 관련된 태그 정보에서 상술된 보안 정책에 의해 결정된다.
아웃바운드 관점에서, 신뢰할 수 없는 소프트웨어 환경(204) 내의 애플리케이션(224)이 네트워크 패킷 내의 데이터를 외부 엔티티(예를 들면, 네트워크(128) 상의 다른 컴퓨터 시스템)에 송신하려고 시도한다. 신뢰할 수 없는 환경은 시스템 메모리에 저장되어 있는 데이터를 획득하고 이 데이터의 패킷을 송신하기 위해 네트워크 소프트웨어 인터페이스(222)를 이용한다. 패킷은 구성되고 추측건대 네트워크에 송신되지만, 네트워크에 도달하기 전에 그것은 발신 태그 모듈(220)에 의해 인터셉트된다(intercepted). 발신 태그 모듈(220)은 메모리 추적 모듈(214)과 함께 패킷 내의 데이터의 보안 레벨에 관하여 체크한다. 이를 위해 발신 태그 모듈(220)은 패킷 내의 데이터에 대한 쿼리(query)를 메모리 추적 모듈에 보낸다. 메모리 추적 모듈(214)은 그 후 이를 위해 메모리 보호/관리 모듈(218)을 이용하여 태그 데이터베이스(216)에서 그 데이터에 대한 태그 정보를 조회한다. 태그 정보가 검색되어 발신 태그 모듈(220)에 반환되고, 발신 태그 모듈(220)은 그 후 검색된 태그 정보에 의해 기술된 보안 레벨의 데이터에 대하여 취할 정책을 결정하기 위해 태그 정책 모듈과 상의할 수 있다. 발신 태그 모듈(220) 및 태그 정책 모듈(212)은 첫째로 그 데이터가 원격 컴퓨터 시스템에 송신되는 것이 허용되는지를 확인한다.
만약 데이터가 송신되는 것이 허용되지 않는다면, 그 네트워크 패킷은 차단되고 시도는 좌절된다. 만약 데이터가 송신되는 것이 허용된다면, 패킷에 태그 정보를 첨부할지에 관한 다음 결정이 행해진다. 몇몇 실시예들에서, 패킷의 타깃인 원격 컴퓨터 시스템은 호환되는 데이터 태깅 시스템을 갖고 태그 데이터베이스에 저장된 실제 태그(들)가 패킷에 첨부되어 송신될 수 있다. 많은 실시예들에서, 태그 정책 모듈은 동일한 태그 기반 데이터 추적 시스템을 갖는 알려진 원격 컴퓨팅 시스템들의 데이터베이스를 저장하거나 또는 그 데이터베이스에 액세스할 수 있다. 다른 실시예들에서, 원격 컴퓨터 시스템은 동일한 태그 기반 데이터 추적 시스템과 호환되지 않지만 대안적으로 태그 정책 모듈이 호환되는 다른 태그 기반 시스템을 이용한다. 이 경우, 태그 정책 모듈(212)은 발신 태그 모듈(220)에게 태그 변환 정보를 통지하고 원시(native) 태그는 원격 시스템과 호환되는 태그로 대체된다. 또 다른 실시예들에서, 원격 컴퓨터 시스템은 출처가 미지이고(of unknown origin) 데이터 패킷이 네트워크를 가로질러 송신되는 것을 허용하기 전에 데이터 패킷으로부터 모든 태그 정보가 제거된다(stripped). 어쨌든, 이 프로세스가 완료되면, 발신 태그 모듈(220)은 그 후 네트워크(128)를 가로질러 원격 시스템으로 패킷을 송신한다.
많은 실시예들에서, 신뢰할 수 없는 환경에서 실행중인 애플리케이션은 실제로 데이터를 생성하고 또한 그 데이터와 연관된 보안 레벨을 지시할 수 있다. 극단적인 시나리오에서, 신뢰할 수 없는 소프트웨어 애플리케이션은 그 자신의 액세스 특권보다 더 높은 보안 레벨을 지정할 수 있다. 따라서, 데이터가 생성되어 시스템 메모리에 저장된 후에, 신뢰할 수 없는 소프트웨어 애플리케이션은 그것이 생성한 데이터에 그것이 더 이상 액세스할 수 없다는 것을 측정된 환경에 지시할 수 있다.
비록 도 2는 IFTP 로직을 로컬 하이퍼바이저의 일부로서 상세히 설명하지만, IFTP 로직은, 이미 설명된 바와 같이, 상이한 실시예들에서 여러 상이한 위치들에서 구현될 수 있다. CPU에서 구현되는 IFTP 로직의 엘리먼트들을 도시하는 도 6에 하나의 그러한 대체 실시예가 도시되어 있다.
도 3은 데이터 보호 정책들을 지정하고 매핑하는 프로세스의 실시예의 흐름도이다.
이 흐름도는 컴퓨터 시스템에서 상호 작용하는 엔티티들의 세트의 각 엔티티에 의한 동작들을 설명한다. 도시된 바와 같이, 도 3에서 설명된 엔티티들은 측정된 소프트웨어(예를 들면, 특권 모드(privileged mode) 소프트웨어) 또는 신뢰할 수 없는 소프트웨어에 상주한다. 프로세스는 데이터 소스(예를 들면, 신뢰할 수 없는 소프트웨어 환경(204)에서 실행중인 소프트웨어 애플리케이션(224))가 그것이 생성하는 데이터를 보호하기 위한 애플리케이션 정책을 생성하는 것(처리 블록 300)에 의해 시작된다. 이 애플리케이션 특유의 데이터 보호 정책은 측정된 소프트웨어 환경에서 실행중인 태그 정책 변환 모듈(도 2의 212)에 전달된다. 게다가, 데이터 소스는 또한 데이터 보호를 위한 요청 및 보호되는 것으로 표시(mark)될 데이터의 위치를 제공한다(처리 블록 302). 즉, 데이터 소스는 보호 스킴(protection scheme)을 지시하기 위해 태그 데이터베이스를 제어하고 있지 않지만, 그 데이터 소스에 의해 생성된 데이터에 보안 태그들을 할당하기 위해 태그 데이터베이스를 조작하도록 특권 모드의 로직(즉, 하이퍼바이저)에게 요청할 수 있다.
태그 정책 변환 모듈은 그 후 애플리케이션 특유의 정책을 판독하고 그것을 시행 가능한 시스템 레벨 정책으로 매핑하고(처리 블록 304), 이 시행 가능한 시스템 레벨 정책은 그 후 시행을 위해 메모리 추적 모듈(도 2의 214)에 송신된다(처리 블록 306). 예를 들면, 애플리케이션 특유의 정책은 데이터에 대하여 최고 보안 레벨을 요청할 수 있지만, 시행 가능한 시스템 레벨 정책으로 매핑할 때, 태그 정책 모듈은 신뢰할 수 없는 소프트웨어에 의해 생성된 데이터에 대하여 최고 보안 레벨을 이용할 수 있다. 이것은, 측정된 환경에 의해 생성된 데이터에 대하여 보다 높은 보안 레벨들을 예약(reserve)할 수 있는, 최고 시스템 레벨 정책만큼 높지 않을 수 있다. 생성된 시스템 레벨 정책은 트러스트 코프로세서(130) 인터페이스에 의해 로컬 하드웨어에 실링될 수 있다(sealed). 이것은 로컬 정책들을 증명할 필요가 없다면, 원격 컴퓨터 시스템들에 의한 정책의 확인을 허용할 것이다. 원격 컴퓨터 시스템은 이 보호된 데이터에의 액세스를 요청할 수 있고 그 데이터의 보안을 확인할 방법은 원격 시스템이 트러스트 코프로세서 하드웨어 보안 측정의 사용을 통하여, 그 원격 시스템이 (보안 정책의 원격 증명을 통하여) 실제로 동일한 레벨의 데이터 보호를 시행하고 있다는 것을 확인하는 것일 것이다.
일단 메모리 추적 모듈(도 2의 214)이 시스템 정책 및 데이터의 위치를 수신하면, 그것은 메모리에서 실제로 보호 스킴을 시행하도록(처리 블록 308) 메모리 보호/관리 모듈(도 2의 218)에 명령을 송신한다. 보호 스킴은, 위에 설명된 바와 같이, 데이터를 저장하는 메모리의 세그먼트들을 태깅하기 위해 태그 데이터베이스를 이용한다. 태그는 데이터에 첨부되고 메모리 내의 데이터에 대한 액세스 권한 보안의 레벨을 제공한다. 예를 들면, 엔티티가 데이터에 액세스하려고 시도할 때, 엔티티의 상대적 액세스 레벨이 그 데이터를 저장하는 메모리의 세그먼트들에 대한 태그들에 대비하여 체크된다. 그러나, 더 상세한 스킴들에서, 액세스 권한은 다수의 레벨의 데이터 액세스를 포함할 수 있다(데이터를 판독할 수 있는 로우 레벨 액세스로부터 데이터를 완전히 삭제할 수 있는 하이 레벨 액세스 권한까지).
도 4는 착신 데이터 보호 정책들을 변환하고 매핑하는 프로세스의 실시예의 흐름도를 도시한다.
측정된 소프트웨어 환경은 네트워크로부터 착신 패킷을 수신한다(처리 블록 400). 많은 실시예들에서, 이 패킷은 데이터뿐만 아니라 테이터에 첨부된 태그도 포함한다. 태그는 송신 엔티티의 데이터 보호를 위한 원격 정책을 지정한다. 송신 엔티티는 네트워크 상의 다른 컴퓨터 시스템 또는 동일한 컴퓨터 시스템 상의 다른 가상 머신일 수 있다. 네트워크 패킷은 파싱되고, 이것은 패킷 내의 데이터로부터 태그를 분리한다(처리 블록 402). 파싱된 태그는 그 후 그 태그가 이용하고 있는 보호 정책을 결정하기 위해 측정된 소프트웨어 환경에 의해 분석된다. 데이터 패킷으로부터 수신된 애플리케이션 정책은 그 후 하이퍼바이저에 의해 구현될 수 있는 로컬 시스템 보안 정책으로 매핑된다(즉, 변환된다)(처리 블록 404).
몇몇 실시예들에서, 정책은 로컬 하이퍼바이저에 의해 이용되도록 변환되어야 한다. 다른 실시예들에서, 정책은 네트워크 상의 모든 컴퓨터 시스템들에 의해 이용되는 균일한 정책일 수 있고, 따라서 변환은 직접 매핑이다. 파싱된 보안 정책 태그 정보 및 데이터는 그 후 측정된 소프트웨어 환경을 통하여 하이퍼바이저에 푸싱된다(pushed). 이것은 데이터 또는 보안 정책이 로컬 머신 상의 신뢰할 수 없는 소프트웨어 환경에 도달하기 전에 보안 정책이 구현되고 데이터가 메모리에 저장되게 한다. 측정된 소프트웨어는 데이터의 저장 위치를 지정하고 그 데이터와 연관된 태그들이 보호되는 것으로서 표시되는 것을 요청한다(처리 블록 406). 또한, 정책을 포함하는 정보는 푸싱되고 측정된 소프트웨어 환경은 그 후 매핑된 보안 정책 및 보호된 데이터 위치들을 보호 절차를 구현하기 위해 하이퍼바이저에 송신한다. 일단 하이퍼바이저 내의 메모리 추적 모듈이 시스템 정책 및 데이터의 위치를 수신하면, 그것은 메모리에서 실제로 보호 스킴을 시행하도록 메모리 보호/관리 모듈에게 명령을 송신한다(처리 블록 408).
도 5는 로컬 머신 상에서 데이터 보안 정책을 시행하는 프로세스의 실시예의 흐름도를 도시한다.
많은 실시예들에서, 로컬 컴퓨터 시스템의 신뢰할 수 없는 소프트웨어 환경으로부터의 데이터 소비자가 메모리 내의 데이터에의 액세스를 요청한다(처리 블록 500). 그 액세스 요청은 하이퍼바이저에 의해 수신되고(처리 블록 502) 하이퍼바이저는 그 후 요청자의 액세스 권한을 결정하기 위해 요청 데이터에 대한 보안 정책을 체크한다(처리 블록 504). 이 체크는 메모리 보호/관리 모듈 및 메모리 추적 모듈(각각 도 2의 218 및 214) 양쪽 모두의 로직에 의해 수행될 수 있다. 예를 들면, 메모리 보호 모듈은 모든 메모리에의 액세스 요청들을 모니터중이고 이 액세스 요청을 수신할 수 있다. 액세스 요청은 요청자 및 액세스될 타깃 위치의 메모리 내의 데이터 위치를 갖는다. 메모리 보호/관리 모듈은 그 후 그것이 유지하는 태그 데이터베이스(도 2의 216)에서 그 위치를 풀 업하고(pulls up) 메모리 내의 그 위치에 대한 태그 정보를 획득한다.
요청자 및 태그 보안 정보는 그 후 메모리 추적 모듈에 송신되고, 메모리 추적 모듈은 데이터에의 액세스를 요청하는 엔티티들의 보안 허가 레벨들(security clearance levels)에 대해 끊임없이 정보를 얻어내고 이 정보를 이용하여 데이터에의 액세스가 허용되는지를 결정한다(처리 블록 506). 만약 데이터 소비자가 요청되는 데이터의 최저 보안 허가 레벨을 만족시킨다면, 액세스가 허용되고 요청자에게 데이터가 배포(release)된다(처리 블록 508). 그렇지 않고, 만약 데이터에 액세스하는 최저 보안 허가 레벨이 만족되지 않는다면, 데이터가 배포되지 않고 하나 이상의 메모리 세그먼트들 내의 데이터는 여전히 보호된다(처리 블록 510).
도 6을 보면, 이 도면은 시스템 내의 CPU의 하드웨어 내에 구현된 IFTP 로직의 실시예를 도시한다. 메모리 추적 모듈(214), 메모리 보호/관리 모듈(218), 및 태그 데이터베이스(216)는 모두 CPU(104)의 하드웨어 회로 내에 구현될 수 있다. 태그 데이터베이스는 CPU(104) 내에 위치하거나 CPU(104)에 의해서만 제어되는 비공개 안전 메모리(private secure memory)에 구현될 수 있다. 도시되지 않은 다른 실시예들에서, IFTP의 부분들은 CPU(104) 외부의 다른 하드웨어 회로에 구현될 수 있다.
게다가, 도 6에서 설명된 시스템의 다른 부분들도 하드웨어로 구현될 수 있다. 예를 들면, 도 6에 구체적으로 도시되어 있지는 않지만, 착신 태그 확인 생성 모듈(210), 태그 정책 변환 모듈(212), 및 발신 태그 확인 생성 모듈(220)도 부분적으로 또는 완전히 하드웨어 회로에 구현될 수 있다.
본 발명의 실시예들의 엘리먼트들은 또한 머신 실행 가능 명령어들을 저장하는 머신 판독 가능 매체로서 제공될 수 있다. 머신 판독 가능 매체는 플래시 메모리, 광 디스크, CD-ROM(compact disk-read only memory), DVD(digital versatile/video disk) ROM, RAM(random access memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory), 자기 또는 광 카드, 전파 매체 또는 전자 명령어들을 저장하기에 적합한 다른 유형의 머신 판독 가능 매체를 포함할 수 있지만, 이에 제한되지 않는다. 예를 들면, 본 발명의 실시예들은 원격 컴퓨터(예를 들면, 서버)로부터 요청 컴퓨터(예를 들면, 클라이언트)로 통신 링크(예를 들면, 모뎀 또는 네트워크 연결)를 통해 반송파 또는 다른 전파 매체에 구현된 데이터 신호로서 전송될 수 있는 컴퓨터 프로그램으로서 다운로드될 수 있다.
상기 설명에서는, 본 발명의 실시예들을 설명하기 위해 특정한 용어가 사용된다. 예를 들면, 용어 "로직"은 하나 이상의 기능을 수행하는 하드웨어, 펌웨어, 소프트웨어(또는 그것의 임의의 조합)를 나타낸다. 예를 들면, "하드웨어"의 예들은, 집적 회로, 유한 상태 머신(finite state machine), 또는 조합 로직(combinatorial logic)을 포함하지만, 이에 제한되지 않는다. 집적 회로는 마이크로프로세서, ASIC(application specific integrated circuit), DSP(digital signal processor), 마이크로컨트롤러 등과 같은 프로세서의 형태를 가질 수 있다.
이 명세서의 전반에 걸쳐서 "하나의 실시예" 또는 "실시예"의 언급은 그 실시예와 관련하여 설명된 특정한 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되는 것을 의미한다는 것이 이해되어야 한다. 따라서, 이 명세서의 다양한 부분들에서 "실시예" 또는 "하나의 실시예" 또는 "대체 실시예"의 두 번 이상의 언급은 반드시 모두가 동일한 실시예를 언급하는 것은 아니라는 것이 강조되고 이해되어야 한다. 더욱이, 그 특정한 특징들, 구조들 또는 특성들은 본 발명의 하나 이상의 실시예에서 적당하게 조합될 수 있다.
유사하게, 본 발명의 실시예들에 대한 앞의 설명에서는, 다양한 발명의 양태들 중 하나 이상의 이해에 도움이 되는 개시의 능률화를 위하여 단일 실시예, 도면, 또는 그의 설명에서 다양한 특징들이 때때로 함께 집합된다는 것이 이해되어야 한다. 그러나, 이 개시의 방법은 청구된 내용이 각 청구항에서 명백히 기재된 것보다 더 많은 특징들을 필요로 한다는 의도를 반영하는 것으로 해석되지 않아야 한다. 오히려, 하기의 청구항들이 반영하는 바와 같이, 발명의 양태들은 앞에 개시된 단일 실시예의 모든 특징들보다 적은 특징들에 있다. 따라서, 상세한 설명의 뒤를 잇는 청구항들은 이로써 명백히 이 상세한 설명에 통합된다.

Claims (14)

  1. 로컬 컴퓨팅 장치 내의 신뢰할 수 없는 소스 소프트웨어 환경(un-trusted source software environment)에 상주하는 애플리케이션으로부터, 상기 로컬 컴퓨팅 장치 내의 복수의 메모리 페이지들 중 제1 메모리 페이지에 저장된 보호된 데이터에의 액세스를 통제하는 데이터 보호 정책을 생성하는 단계;
    상기 데이터 보호 정책을, 상기 로컬 컴퓨팅 장치 상의 정보 흐름 추적 및 보호(Information Flow Tracking and Protection, IFTP) 로직에 의해 관리되는 시행 가능한 시스템 레벨 데이터 보호 정책으로 매핑하는 단계;
    상기 보호된 데이터를 포함하는 상기 제1 메모리 페이지를 플래깅(flagging)하는 단계; 및
    상기 IFTP 로직 및 상기 시행 가능한 시스템 레벨 데이터 보호 정책을 이용하여 상기 보호된 데이터를 포함하는 상기 제1 메모리 페이지에 대하여 상기 생성된 데이터 보호 정책을 시행하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 로컬 컴퓨팅 장치 내의 상기 복수의 메모리 페이지들에 대한, 복수의 태그들을 포함하는, 태그 데이터베이스를 유지하는 단계를 더 포함하고, 상기 복수의 태그들 중 주어진 태그는 상기 복수의 메모리 페이지들 중 주어진 메모리 페이지와 연관되고, 상기 태그 데이터베이스는 상기 복수의 메모리 페이지들 중 어느 메모리 페이지들이 보호되는지를 식별하는 방법.
  3. 제2항에 있어서,
    네트워크를 통해 상기 로컬 컴퓨팅 장치와 원격 컴퓨터 사이에 상기 보호된 데이터를 전송하는 단계를 더 포함하고, 상기 보호된 데이터는 네트워크 패킷에서 상기 네트워크를 통해 전송되고 상기 데이터 보호 정책은 상기 네트워크 패킷에 결합되는 방법.
  4. 제3항에 있어서,
    상기 복수의 태그들 중, 상기 보호된 데이터와 연관된 하나 이상의 태그를 상기 네트워크 패킷에 결합하는 단계를 더 포함하는 방법.
  5. 제4항에 있어서,
    상기 원격 컴퓨팅 장치에 존재하는 원격 IFTP 로직에서 상기 네트워크로부터 상기 네트워크 패킷을 수신하는 단계;
    상기 원격 IFTP 로직이 상기 네트워크 패킷으로부터 상기 데이터 보호 정책을 분리하는 단계; 및
    상기 원격 IFTP 로직이 상기 원격 컴퓨팅 장치 상에서 상기 네트워크 패킷에 상주하는 상기 데이터에 대하여 상기 데이터 보호 정책을 시행하는 단계
    를 더 포함하는 방법.
  6. 제4항에 있어서,
    상기 원격 컴퓨팅 장치에 존재하는 원격 IFTP 로직에서 상기 네트워크로부터 상기 네트워크 패킷을 수신하는 단계; 및
    상기 원격 IFTP 로직이 상기 네트워크 패킷에 결합된 상기 하나 이상의 태그를 상기 네트워크 패킷으로부터 수신된 상기 데이터에 연관시키는 단계
    를 더 포함하는 방법.
  7. 제2항에 있어서,
    상기 애플리케이션이 상기 제1 메모리 페이지에 저장된 상기 보호된 데이터에의 액세스를 요청하는 단계;
    상기 로컬 IFTP 로직이 상기 액세스 요청을 인터셉트하는 단계;
    상기 로컬 IFTP 로직이 상기 제1 메모리 페이지와 연관된 상기 시스템 레벨 데이터 보호 정책을 체크하는 단계; 및
    상기 로컬 IFTP 로직이 상기 시스템 레벨 데이터 보호 정책에 기초하여, 상기 애플리케이션에 대하여, 상기 제1 메모리 페이지에의 액세스를 승인할지를 결정하는 단계
    를 더 포함하는 방법.
  8. 네트워크;
    상기 네트워크에 연결된 로컬 컴퓨팅 장치를 포함하고,
    상기 로컬 컴퓨팅 장치는,
    상기 로컬 컴퓨팅 장치 내의 신뢰할 수 없는 소스 가상 머신(un-trusted source virtual machine)에 상주하는 애플리케이션으로부터, 상기 로컬 컴퓨팅 장치 내의 복수의 메모리 페이지들 중 제1 메모리 페이지에 저장된 보호된 데이터에의 액세스를 통제하는 데이터 보호 정책을 생성하고;
    상기 데이터 보호 정책을 정보 흐름 추적 및 보호(Information Flow Tracking and Protection, IFTP) 로직에 의해 관리되는 시행 가능한 시스템 레벨 데이터 보호 정책으로 매핑하고;
    상기 보호된 데이터를 포함하는 상기 제1 메모리 페이지를 플래깅하고;
    상기 IFTP 로직 및 상기 시행 가능한 시스템 레벨 데이터 보호 정책을 이용하여 상기 보호된 데이터를 포함하는 상기 제1 메모리 페이지에 대하여 상기 생성된 데이터 보호 정책을 시행하는, 시스템.
  9. 제8항에 있어서, 상기 로컬 컴퓨팅 장치는,
    상기 로컬 컴퓨팅 장치 내의 상기 복수의 메모리 페이지들에 대한, 복수의 태그들을 포함하는, 태그 데이터베이스를 더 포함하고, 상기 복수의 태그들 중 주어진 태그는 상기 복수의 메모리 페이지들 중 주어진 메모리 페이지와 연관되고, 상기 태그 데이터베이스는 상기 복수의 메모리 페이지들 중 어느 메모리 페이지들이 보호되는지를 식별하는, 시스템.
  10. 제9항에 있어서, 상기 로컬 컴퓨팅 장치는,
    네트워크를 통해 상기 로컬 컴퓨팅 장치와 원격 컴퓨터 사이에 상기 보호된 데이터를 전송하도록 더 동작 가능하고, 상기 보호된 데이터는 네트워크 패킷에서 상기 네트워크를 통해 전송되고 상기 데이터 보호 정책은 상기 네트워크 패킷에 결합되는, 시스템.
  11. 제10항에 있어서, 상기 로컬 컴퓨팅 장치는,
    상기 복수의 태그들 중, 상기 보호된 데이터와 연관된 하나 이상의 태그를 상기 네트워크 패킷에 결합하도록 더 동작 가능한, 시스템.
  12. 제11항에 있어서,
    원격 컴퓨팅 장치를 더 포함하고,
    상기 원격 컴퓨팅 장치는,
    상기 원격 컴퓨팅 장치에 존재하는 원격 IFTP 로직에서 상기 네트워크로부터 상기 네트워크 패킷을 수신하고;
    상기 네트워크 패킷으로부터 상기 데이터 보호 정책을 분리하고;
    상기 원격 컴퓨팅 장치 상에서 상기 네트워크 패킷에 상주하는 상기 데이터에 대하여 상기 데이터 보호 정책을 시행하는, 시스템.
  13. 제11항에 있어서,
    원격 컴퓨팅 장치를 더 포함하고,
    상기 원격 컴퓨팅 장치는,
    상기 원격 컴퓨팅 장치에 존재하는 원격 IFTP 로직에서 상기 네트워크로부터 상기 네트워크 패킷을 수신하고;
    상기 네트워크 패킷에 결합된 상기 하나 이상의 태그를 상기 네트워크 패킷으로부터 수신된 상기 데이터에 연관시키는, 시스템.
  14. 제8항에 있어서, 상기 로컬 컴퓨팅 장치는,
    상기 제1 메모리 페이지에 저장된 상기 보호된 데이터에의 상기 로컬 애플리케이션으로부터의 액세스 요청을 인터셉트하고;
    상기 제1 메모리 페이지와 연관된 상기 시스템 레벨 데이터 보호 정책을 체크하고;
    상기 시스템 레벨 데이터 보호 정책에 기초하여, 상기 애플리케이션에 대하여, 상기 제1 메모리 페이지에의 액세스를 승인할지를 결정하도록 더 동작 가능한, 시스템.
KR1020110042304A 2010-05-05 2011-05-04 정보 흐름 추적 및 보호 KR101268767B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/774,483 US8689349B2 (en) 2010-05-05 2010-05-05 Information flow tracking and protection
US12/774,483 2010-05-05

Publications (2)

Publication Number Publication Date
KR20110122791A true KR20110122791A (ko) 2011-11-11
KR101268767B1 KR101268767B1 (ko) 2013-05-29

Family

ID=44118376

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110042304A KR101268767B1 (ko) 2010-05-05 2011-05-04 정보 흐름 추적 및 보호

Country Status (5)

Country Link
US (1) US8689349B2 (ko)
EP (1) EP2385479B1 (ko)
JP (1) JP5164290B2 (ko)
KR (1) KR101268767B1 (ko)
CN (1) CN102236768B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180064825A (ko) 2016-12-06 2018-06-15 서울대학교산학협력단 명시적 및 암시적 정보 흐름 추적 방법 및 그 장치

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8689349B2 (en) 2010-05-05 2014-04-01 Intel Corporation Information flow tracking and protection
US9147085B2 (en) * 2010-09-24 2015-09-29 Blackberry Limited Method for establishing a plurality of modes of operation on a mobile device
US9727751B2 (en) * 2010-10-29 2017-08-08 Nokia Technologies Oy Method and apparatus for applying privacy policies to structured data
US10511630B1 (en) 2010-12-10 2019-12-17 CellSec, Inc. Dividing a data processing device into separate security domains
US9003542B1 (en) * 2010-12-13 2015-04-07 Symantec Corporation Systems and methods for replacing sensitive information stored within non-secure environments with secure references to the same
WO2012117465A1 (ja) * 2011-03-02 2012-09-07 パナソニック株式会社 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、及び半導体集積回路
US20130039266A1 (en) 2011-08-08 2013-02-14 Research In Motion Limited System and method to increase link adaptation performance with multi-level feedback
TW201329862A (zh) 2012-01-12 2013-07-16 Univ Nat Chiao Tung 低耦合的資訊流動的追蹤方法與電腦系統
US9294507B1 (en) * 2012-06-27 2016-03-22 Amazon Technologies, Inc. Techniques for data security in a multi-tenant environment
US9047463B2 (en) * 2012-06-29 2015-06-02 Sri International Method and system for protecting data flow at a mobile device
US9294508B2 (en) 2012-08-02 2016-03-22 Cellsec Inc. Automated multi-level federation and enforcement of information management policies in a device network
US10305937B2 (en) 2012-08-02 2019-05-28 CellSec, Inc. Dividing a data processing device into separate security domains
CN102984125B (zh) * 2012-10-31 2016-01-13 蓝盾信息安全技术股份有限公司 一种移动数据隔离的系统及方法
US9098709B2 (en) 2012-11-13 2015-08-04 International Business Machines Corporation Protection of user data in hosted application environments
US9148787B2 (en) 2012-12-06 2015-09-29 Google Technology Holdings LLC Apparatus and method for accessing WiFi networks
US8955155B1 (en) 2013-03-12 2015-02-10 Amazon Technologies, Inc. Secure information flow
US10185584B2 (en) * 2013-08-20 2019-01-22 Teleputers, Llc System and method for self-protecting data
IN2013CH05778A (ko) 2013-12-13 2015-06-19 Indian Inst Technology Madras
US10049216B2 (en) * 2014-02-06 2018-08-14 Intel Corporation Media protection policy enforcement for multiple-operating-system environments
WO2015144764A1 (de) * 2014-03-26 2015-10-01 Continental Teves Ag & Co. Ohg Verfahren und system zur verbesserung der datensicherheit bei einem kommunikationsvorgang
WO2015154066A1 (en) 2014-04-04 2015-10-08 David Goldschlag Method for authentication and assuring compliance of devices accessing external services
CN108140100B (zh) * 2015-10-28 2021-10-08 赫尔实验室有限公司 维护对象的安全标签和引用计数的系统、方法和介质
US20170187752A1 (en) * 2015-12-24 2017-06-29 Steffen SCHULZ Remote attestation and enforcement of hardware security policy
US10353736B2 (en) * 2016-08-29 2019-07-16 TidalScale, Inc. Associating working sets and threads
US10884952B2 (en) 2016-09-30 2021-01-05 Intel Corporation Enforcing memory operand types using protection keys
US11429410B2 (en) * 2017-05-09 2022-08-30 Vmware, Inc. Tag based firewall implementation in software defined networks
US11023135B2 (en) 2017-06-27 2021-06-01 TidalScale, Inc. Handling frequently accessed pages
US10817347B2 (en) * 2017-08-31 2020-10-27 TidalScale, Inc. Entanglement of pages and guest threads
US10728268B1 (en) * 2018-04-10 2020-07-28 Trend Micro Incorporated Methods and apparatus for intrusion prevention using global and local feature extraction contexts
CN108664790A (zh) * 2018-05-14 2018-10-16 西北工业大学 一种面向安全漏洞检测的多目标信息流跟踪方法
US11934540B2 (en) * 2018-05-28 2024-03-19 Royal Bank Of Canada System and method for multiparty secure computing platform
CN109800596B (zh) * 2018-12-27 2023-01-31 余炀 一种个人数据安全管理系统
US11252138B2 (en) * 2019-01-24 2022-02-15 Dell Products L.P. Redundant device locking key management system
US11010068B2 (en) * 2019-01-25 2021-05-18 Dell Products L.P. GPT-based multi-location data security system
JP7295814B2 (ja) * 2020-01-10 2023-06-21 株式会社日立製作所 データ管理方法、データ管理システム、および端末
WO2021142612A1 (zh) * 2020-01-14 2021-07-22 华为技术有限公司 安全隔离方法、装置以及计算机系统
US20220166762A1 (en) * 2020-11-25 2022-05-26 Microsoft Technology Licensing, Llc Integrated circuit for obtaining enhanced privileges for a network-based resource and performing actions in accordance therewith

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761477A (en) * 1995-12-04 1998-06-02 Microsoft Corporation Methods for safe and efficient implementations of virtual machines
US6151618A (en) * 1995-12-04 2000-11-21 Microsoft Corporation Safe general purpose virtual machine computing system
US6138238A (en) 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6907600B2 (en) * 2000-12-27 2005-06-14 Intel Corporation Virtual translation lookaside buffer
US7631160B2 (en) 2001-04-04 2009-12-08 Advanced Micro Devices, Inc. Method and apparatus for securing portions of memory
US7073042B2 (en) 2002-12-12 2006-07-04 Intel Corporation Reclaiming existing fields in address translation data structures to extend control over memory accesses
US7149738B2 (en) 2002-12-16 2006-12-12 International Business Machines Corporation Resource and data administration technologies for IT non-experts
US7111146B1 (en) 2003-06-27 2006-09-19 Transmeta Corporation Method and system for providing hardware support for memory protection and virtual memory address translation for a virtual machine
US9020801B2 (en) * 2003-08-11 2015-04-28 Scalemp Inc. Cluster-based operating system-agnostic virtual computing system
US20050246453A1 (en) * 2004-04-30 2005-11-03 Microsoft Corporation Providing direct access to hardware from a virtual environment
US7574709B2 (en) * 2004-04-30 2009-08-11 Microsoft Corporation VEX-virtual extension framework
US20060047959A1 (en) 2004-08-25 2006-03-02 Microsoft Corporation System and method for secure computing
US20060143517A1 (en) * 2004-12-22 2006-06-29 Microsoft Corporation Replicated virtual machine
US9753754B2 (en) * 2004-12-22 2017-09-05 Microsoft Technology Licensing, Llc Enforcing deterministic execution of threads of guest operating systems running in a virtual machine hosted on a multiprocessor machine
US7428626B2 (en) * 2005-03-08 2008-09-23 Microsoft Corporation Method and system for a second level address translation in a virtual machine environment
US8762547B2 (en) * 2005-04-29 2014-06-24 Sap Ag Shared memory implementations for session data within a multi-tiered enterprise network
US8024566B2 (en) * 2005-04-29 2011-09-20 Sap Ag Persistent storage implementations for session data within a multi-tiered enterprise network
US20060294380A1 (en) 2005-06-28 2006-12-28 Selim Aissi Mechanism to evaluate a token enabled computer system
US8024797B2 (en) 2005-12-21 2011-09-20 Intel Corporation Method, apparatus and system for performing access control and intrusion detection on encrypted data
US7730463B2 (en) * 2006-02-21 2010-06-01 International Business Machines Corporation Efficient generation of SIMD code in presence of multi-threading and other false sharing conditions and in machines having memory protection support
US20070240141A1 (en) * 2006-03-30 2007-10-11 Feng Qin Performing dynamic information flow tracking
RU2296363C1 (ru) * 2006-04-27 2007-03-27 Общество с ограниченной ответственностью "АСТРОМА" Способ и средство защиты программного обеспечения от несанкционированного использования
US8498117B2 (en) 2006-11-16 2013-07-30 Advanced Micro Devices, Inc. Variable mount voltage regulator
US20090007100A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Suspending a Running Operating System to Enable Security Scanning
US8122497B2 (en) * 2007-09-10 2012-02-21 Redcloud, Inc. Networked physical security access control system and method
US20090125722A1 (en) * 2007-09-12 2009-05-14 Imedia Streams, Llc Cross-platform digital rights management providing multi-level security information flow tracking
US8321840B2 (en) * 2007-12-27 2012-11-27 Intel Corporation Software flow tracking using multiple threads
US8695056B2 (en) * 2008-01-26 2014-04-08 International Business Machines Corporation Method for information tracking in multiple interdependent dimensions
US8266118B2 (en) 2008-02-07 2012-09-11 Microsoft Corporation Automated access policy translation
US20100146273A1 (en) * 2008-12-04 2010-06-10 Electronics And Telecommunications Research Institute Method for passive rfid security according to security mode
US8037437B2 (en) * 2009-01-13 2011-10-11 Microsoft Corporation Optimizing systems-on-a-chip using the dynamic critical path
US9292731B2 (en) * 2009-12-30 2016-03-22 Intel Corporation Gesture-based signature authentication
US8689349B2 (en) 2010-05-05 2014-04-01 Intel Corporation Information flow tracking and protection

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180064825A (ko) 2016-12-06 2018-06-15 서울대학교산학협력단 명시적 및 암시적 정보 흐름 추적 방법 및 그 장치

Also Published As

Publication number Publication date
US20110277038A1 (en) 2011-11-10
KR101268767B1 (ko) 2013-05-29
EP2385479B1 (en) 2019-03-06
EP2385479A1 (en) 2011-11-09
CN102236768A (zh) 2011-11-09
JP5164290B2 (ja) 2013-03-21
US8689349B2 (en) 2014-04-01
CN102236768B (zh) 2014-11-26
JP2011238218A (ja) 2011-11-24

Similar Documents

Publication Publication Date Title
KR101268767B1 (ko) 정보 흐름 추적 및 보호
CN110928646B (zh) 一种访问共享内存的方法、装置、处理器和计算机系统
US20230128711A1 (en) Technologies for trusted i/o with a channel identifier filter and processor-based cryptographic engine
US9989043B2 (en) System and method for processor-based security
US11625275B2 (en) Technologies for controlling memory access transactions received from one or more I/O devices
KR102105760B1 (ko) 하드웨어 보안 기술 기반 gpu 컴퓨팅 보호 기법
TW202418133A (zh) 用於容許安全通訊之積體電路、方法及電腦系統
JP2019532438A (ja) 処理システムにおけるダイレクトメモリアクセス認可
CN110348204B (zh) 一种代码保护系统、认证方法、装置、芯片及电子设备
CN107729758B (zh) 用于多租户云工作量的安全处理器
US20180082057A1 (en) Access control
US20190238560A1 (en) Systems and methods to provide secure storage
US9411979B2 (en) Embedding secret data in code
TW201802722A (zh) 能保護檔案的資料處理系統
WO2023103697A1 (zh) 一种计算机系统中的通信方法及相关产品
US20220206961A1 (en) Architecture, system and methods thereof for secure computing using hardware security classifications
KR20230164733A (ko) 은닉 트랜잭션을 핸들링하기 위한 장치 및 방법
US20240160580A1 (en) Virtual extension to global address space and system security
WO2024001642A1 (zh) Usb设备的管控方法、云端设备、终端设备及存储介质
US20240220429A1 (en) Secure direct memory access
US20240289150A1 (en) Secure management of device control information in confidential computing environments

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170504

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180427

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 7