KR102625023B1 - 보안 데이터 처리 - Google Patents

보안 데이터 처리 Download PDF

Info

Publication number
KR102625023B1
KR102625023B1 KR1020207029483A KR20207029483A KR102625023B1 KR 102625023 B1 KR102625023 B1 KR 102625023B1 KR 1020207029483 A KR1020207029483 A KR 1020207029483A KR 20207029483 A KR20207029483 A KR 20207029483A KR 102625023 B1 KR102625023 B1 KR 102625023B1
Authority
KR
South Korea
Prior art keywords
secure
processor
memory
secure processor
data
Prior art date
Application number
KR1020207029483A
Other languages
English (en)
Other versions
KR20210015757A (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 KR20210015757A publication Critical patent/KR20210015757A/ko
Application granted granted Critical
Publication of KR102625023B1 publication Critical patent/KR102625023B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/602Providing cryptographic facilities or services
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

명령어를 자동적이고 안전한 방식으로 실행하는 장치 및 방법. 적어도 읽기-전용 메모리(ROM), 임의 접근 메모리(RAM), 암호화 기능을 수행할 수 있는 컴퓨터(UE), 하나 이상의 단조 카운터(CM)와 연관된 단조 카운터 관리 유닛(UG)을 포함하는 보안 프로세서(PS)는 어떠한 저장 메모리도 포함하지 않는 것으로서, 보안 프로세서(PS)가 어떠한 프로그램이나 외부 데이터를 저장하지 않는다는 것을 의미하고, 초기 등록된 적어도 하나의 관리자(Al)가 인증받을 수 있게 하는 공개 키(CP)가 그것을 처음 사용하기 전에 읽기-전용 메모리(ROM)에 저장되고, 임의 접근 메모리(RAM)는 공개 키 암호화 모듈(MC)에 의해 인증될 수 있는 한 세트의 데이터 및 명령어를 로딩할 수 있고, 그와 같은 것을 인증한 후 컴퓨터(UE)가 어떤 명령어를 실행하면 단조 카운터(CM)를 하나 증가시켜서, 자동적으로 일련의 연산을 안전한 방식으로 실행할 수 있게 하고, 이러한 보안 프로세서(PS)는 안전한 데이터 처리를 위한 조립체 또는 기반시설에 포함된다.

Description

보안 데이터 처리
본 발명은 보안 데이터 처리에 관한 것이다. 더 상세하게는, 읽기 전용 메모리, 임의 접근 메모리, 암호화 기능을 수행할 수 있는 컴퓨터, 및 적어도 하나의 단조 카운터와 연관된 단조 카운터 관리 유닛을 포함하는 종류의 보안 프로세서, 이러한 보안 프로세서 및 연결 수단을 이용한, 외부 메모리를 포함하는 보안 데이터 처리 조립체, 여러 개의 보안 프로세서를 포함하는 안전한 데이터 처리 기반시설, 및 마지막으로, 이러한 보안 데이터 처리를 구현하는 방법에 관한 것이다.
본 발명에서, 보안은 명령어(instructions)로 구성된 프로그램 및 그와 관련된 컨텍스트의 무결성을 유지하고 제어하는 것뿐만 아니라, 상기 프로그램을 실행하는 명령을 내리는 사람을 인증하는 것을 말한다. 용어 “컨텍스트(context)”는 한 세트의 파라미터, 명령어 및 조건으로 이해되어야 하고, 보다 넓게는, 프로그램이 그 아래에서 구현될 수 있는 모든 세트의 명령어, 코드 또는 데이터로 이해되어야 한다. 용어 “관리자(administrator)”는, 한편으론, 초기 등록된 관리자이고, 다른 한편으로, 차후에 등록된 모든 다른 관리자를 말한다. “등록된(enrolled)”은 기록된, 가입된, 또는 명령어를 주는 권한을 받았다는 다른 단어로 이해될 수 있다. “등록된 관리자의 인증”은 명령어를 주는 사람이 등록된 관리자인지 검증하고 확실하지 않은 명령어를 보안 프로세서로 실행하는 것을 인가하는데 사용되는 프로세스를 말한다. “등록된 관리자의 인증”은 여러 사람에게 그리고 등록된 관리자들에게 개별적으로 적용되는 유사한 프로세스를 말한다.
문서 FR2906380은 물리적 매체상에 저장된 데이터를 안전하게 하는 시스템과 이를 구현하는 방법을 기술한다. 데이터 보안 시스템은, 특히 키보드, 스크린, 마이크, 스피커, 전자 카드, 데이터 전송과 수신을 위한 모듈, 가입자 식별 모듈 및 전력 공급을 위한 배터리를 구비한 박스를 포함하는 휴대폰과 같은 장치 안에 내장된다. 전자 카드는 적어도 마이크로컨트롤러, 임의 접근 메모리, 플래시 메모리, 및 버스 시스템을 포함한다. 전화기의 동작은 운영 체제 및 예를 들어, 상기 전화기의 메모리에 로드된 한 세트의 애플리케이션에 의해 관리된다. 보안 시스템은, 전체가 하나를 형성하는, 계산 개체(가령 마이크로프로세서)를 포함하고, 이는 적절한 곳에, 임의 접근 메모리와 같은 시스템 리소스, 단조 카운터(한 단위씩 증가만 할 수도 있음), 시스템 키(시스템에 의해 인증된 객체들에만 접근 가능한 암호화 키), 및 컴퓨터의 영구 저장을 보장하는 물리적 데이터 매체(가령, 하드디스크, 플래시 메모리 등)를 갖는다. 이 물리적 데이터 매체는 적어도 하나의 데이터 블록 및 두 개의 마스터 블록을 포함하고, 이들의 크기는 설정 가능하다. 구현 방법은 인증 키를 사용한다. FR2906380의 데이터 보안 시스템 및 구현하는 방법은, 한편으론, 리플레이(데이터 관리 시스템의 이전 콘텐츠를 불법 복제하여 데이터에 부정하게 접근함)에 대처하고, 다른 한편으론, 특히 서비스에 갑작스런 인터럽트(가령 정전 또는 불시에 시스템 재시작)에 의해 유발된 변경이나 수정에 대처하는 보안 문제를 해결하는 것을 목표한다. 이 문서는 관리자의 인증을 다루지 않는다.
문서 US 2004/0187006은 데이터 보안의 분야에 관한 것으로, 보다 구체적으로, 안전한 환경 밖에 위치해 있기 때문에 안전하지 않은 외부 메모리로부터 데이터를 신뢰할 수 있게 검색하는 것에 관한 것이다. 데이터 보안 시스템은 계산 개체를 포함하고 단조 카운터를 사용하여, 안전한 환경에서 외부 메모리로의 요청이 가장 최근 데이터를 반환하는지 여부를 결정한다. 단조 카운터는 주요 요소가 메모리에 기록될 때마다 증가한다. 제어 입력은 그와 연결된 항목이 수정되었던 시간을 기록한다. 단조 카운터 값은 다음번 데이터가 메모리에 기록될 때까지 동일하게 유지된다. 그러나, 이 문서는 단조 카운터의 구현을 설명하지만, 본 발명에 따른 보안을 제공하는 것을 의도하지 않는다.
문서 US2014/0137178은 컴퓨팅 장치의 보안 플랫폼 모듈 TPM이 보호받는 객체 안에 담긴 정보에 접근하기 위하여 컴퓨터 장치에 프로그램에서 나오는 요청을 수신하는 단계; 프로그램이 정보에 접근할 수 있게 해주는 조건들이 만족하는지 여부를 결정하는 단계; 조건이 충족되는 것에 응하여 프로그램이 정보에 접근하는 것을 허용하는 단계; 조건이 충족되지 않는 것에 응하여 프로그램이 정보에 접근하는 것을 거절하는 단계; 및 프로그램의 요청이 임계 수만큼 충족되지 않은 조건에 응하여, 프로그램이 정보에 접근하는 것을 막기 위해 무기한 동안 정보를 잠그는 단계를 포함하는 방법에 관한 것이다. 객체는 보안 플랫폼 모듈에 의해 유지된다. 각각의 객체는 정보를 저장하고 프로그램이 정보에 접근하기 위해선 프로그램이 충족해야만 하는 조건들을 식별하는 정책과 연관되어 있다. 각각의 객체마다, 보안 플랫폼 모듈은 객체와 연관된 단조 카운터를 관리한다. 단조 카운터는 객체와 연관된 전략의 조건을 충족하지 못한 객체 정보 접근 요청이 임계 수에 이르렀는지 여부를 결정하는데 사용된다. 보안 플랫폼 모듈은 보안 저장소 및/또는 보안 처리 기능을 컴퓨팅 장치에 제공한다. 보안 저장소는 보안 플랫폼 모듈의 특정 기능 또는 다른 컴포넌트에 의해 보호받고 접근만 할 수 있는 비-휘발성 메모리를 말한다. 정보는 데이터 구조로 또는 모듈에 의해 보호받는 객체의 이름 아래에서 지정된 객체로 저장되고 암호화 키를 포함한, 다양한 형태를 취할 수 있다. 정보는, 가령 정보를 읽거나 쓰거나 또는 수정하는 등, 서로 다른 방식으로 접근될 수 있다. 비-휘발성 메모리는 하나 이상의 단조 카운터와 하나 이상의 보호받는 객체를 포함한다(문서의 도 1 참조).
KTH CSC가 발행한, Andreas Nilsson 의 문서 ” Key Management with Trusted Platform Modules”는 컴퓨팅 플랫폼을 더 신뢰할 수 있게 만드는 것을 목표하는 개념에 관한 것이다. 이것은 보안 플랫폼 모듈(TPM)이라 불리는 칩에 기반한다. TPM은 RSA 암호와 같은 암호화 기능 및 보안 키 저장소를 제공하는 칩이다. 각각의 TPM은 제조 후에 그러나 고객에게 출하되기 전에 TPM이 내부적으로 생성한, 확인 키라 불리는 고유한 한 쌍의 키를 갖는다. 키 쌍은 TPM을 고유하게 식별하고 절대 바뀔 수 없다. 개인 부분은 TPM을 절대 떠나지 않고 공개 부분은 인증서로 사용된다. 비-휘발성 메모리 및 휘발성 메모리는 제공되고, 비-휘발성 메모리는 영구 신원 및 상태 데이터와 함께 내부 키를 저장하는데 사용된다. 소유자의 허락이 있으면, 영구적이고 불투명한 데이터(TPM이 거기로 액세스할 수 없거나 또는 사용할 수 없는 데이터)를 TPM으로 또는 TPM에서 쓰고 읽는 것이 가능하다. 휘발성 메모리는 내부적으로 TPM에 의해 주로 사용된다.
Luis F.G. Sarmenta 등의 문서 “Virtual Monotonic Counters and Count-Limited Objects using a TPM without a trusted OS”는 TPM 보안 플랫폼 모듈로 비-신뢰 머신을 갖는 가상 단조 카운터의 추가적인 개발을 기술한다.
본 발명의 근간이 되는 문제는, 보안 프로세서가 읽기 전용 메모리, 임의 접근 메모리, 암호화 기능을 수행할 수 있는 컴퓨터, 및 적어도 하나의 단조 카운터와 연관된 단조 카운터 관리 유닛을 포함하는 것과 관련하여, 사용시 보안성을 보장하고, 실행하는 프로그램과 그와 관련된 컨텍스트의 무결성의 제어를 유지하고, 상기 프로그램을 실행시키는 명령을 주는 등록된 관리자를 인증하는 것이다.
본 발명은 이 문제에 대한 해결책을 제공하며, 특히 어떠한 외부 프로그램이나 데이터를 저장하지 않도록 프로세서가 어느 다른 저장 메모리를 포함하지 않는 것을 제공한다. 그러므로 저장소는 프로세서에 대해선 “외부화”되어 있고, 실행 시스템은 실행할 데이터로부터 분리되고 고립되어서, 완전한 무결성을 유지한다.
이하는 본 발명의 설명이다.
제1 측면에 따르면, 본 발명의 대상은 읽기-전용 메모리, 임의-접근 메모리, 암호화 기능을 수행할 수 있는 컴퓨터 및 적어도 하나의 단조 카운터와 연관된 단조 카운터 관리 유닛을 적어도 포함하는 보안 프로세서이다. 이 보안 프로세서는:
- 어떤 다른 저장 메모리도 포함하지 않아서, 프로그램, 컨텍스트(명령어, 코드, 데이터) 또는 외부 데이터를 저장하지 않고,
- 적어도 하나의 최초 등록 관리자를 인증할 수 있게 해주는 공개 키는 최초 사용 전에 읽기 전용 메모리에 저장되고,
- 임의 접근 메모리는, 공개 키 암호화 모듈로 인증될 수 있는, 컨텍스트와 같은, 한 세트의 데이터 및 한 세트의 명령어를 로드할 수 있고,
- 최초 등록 관리자에 의해 인증한 후에, 컴퓨터에 의해서, 단조 카운터 중 하나를 증가시키는 일정 명령어를 실행한다.
이러한 보안 프로세서는, 이러한 보안 프로세서 및 외부 메모리를 포함하는 보안 데이터 처리 조립체의 컨텍스트에서, 일련의 연산의 자동적 실행을 안전하게 할 수 있다.
일 실시예에 있어서, 보안 프로세서는 가상 머신으로 에뮬레이트된다.
제2 측면에 따르면, 본 발명의 대상은 방금 설명한 바와 같은, 보안 프로세서에 더하여, 이 보안 프로세서 외부에 적어도 하나의 메모리 및 이 보안 프로세서 외부의 적어도 한 메모리로 연결할 수 있는, 특히, 전자 통신 네트워크를 사용한 것과 같은, 적어도 하나의 연결 수단을 포함하는 보안 데이터 처리 조립체이다.
일 특징 및 일 실시예에 따르면, 보안상의 이유로, 보안 데이터 처리 조립체는 보안 프로세서와 연결된 복수의, 즉 둘 이상의, 외부 메모리를 포함한다.
일 특징에 따르면, 보안 데이터 처리 조립체의 적어도 하나의 외부 메모리는 보안 프로세서와 관련해서 인증된다.
일 실시예에 따르면, 보안 데이터 처리 조립체의 외부 메모리는:
- 보안 프로세서의 임의 접근 메모리에 로드시키고자 하는 적어도 하나의 프로그램 및 적어도 하나의 컨텍스트(명령어, 코드, 데이터)를 저장하고,
- 보안 프로세서의 임의 접근 메모리에 일시적으로 로드되어 있는 적어도 하나의 프로그램 및 적어도 하나의 컨텍스트를 보안 프로세서가 실행함으로써 인증된 모든 파일을 수신하고 저장할 수 있게 적합하게 구성되고 특히 그렇게 의도되며,
한편, 적어도 하나의 컨텍스트는 보안 프로세서가 적어도 하나의 컨텍스트와 단조 카운터의 최근 상태의 동기화를 검증할 수 있게 하는데 적합한 참조 값을 포함할 수 있다.
제3 측면에 따르면, 본 발명의 대상은 이전에 설명한 바와 같은, 복수의, 즉 적어도 두 개의, 보안 프로세서, 및 보안 데이터 처리 조립체와 관련해서 이전에 설명한 바와 같은 적어도 하나의 외부 메모리를 포함하는 보안 데이터 처리 기반시설이고, 기반시설은 복수의 보안 프로세서의 각 보안 프로세서가 적어도 하나의 외부 메모리와 연결되게 하는 것이다.
일 실시예에 따르면, 보안 데이터 처리 기반시설은 복수의, 즉 적어도 두 개의, 외부 메모리를 포함하고, 복수의 보안 프로세서의 각 보안 프로세서는 복수의 외부 메모리 중 적어도 하나의 외부 메모리와 연결된다.
한 가지 가능한 실시예에 따르면, 보안 데이터 처리 기반시설은 서로 동기화된 복수의, 즉 적어도 두 개의, 외부 메모리를 포함하고, 복수의 보안 프로세서의 각 보안 프로세서는 복수의 외부 메모리 중 어느 하나와 다른 것을 분별없이 사용할 수 있다.
한 가지 가능한 실시예에 따르면, 보안 데이터 처리 기반시설은 여러 개의 쌍, 3개 조, 4개 조 또는 그 이상의, 외부 메모리를 포함하고, 각각의 보안 프로세서는 그들 서로 간에 동기화된 쌍, 3개 조, 4개 조 또는 그 이상의 외부 메모리와 연관된다.
그러므로, 보안 프로세서 그 자체는 어떤 다른 저장 메모리도 포함하지 않는다. 하나 이상의 이러한 저장 메모리는 저장 프로세서 외부에서 보안 데이터 처리 조립체 또는 보안 데이터 처리 기반시설을 형성한다.
제4 측면에 따르면, 본 발명은 적어도 다음 단계들을 포함하는 보안 데이터 처리 조립체에 의한 일련의 연산의 안전한 실행을 위한 방법에 관한 것이다:
- A: 보안 프로세서와 연결된 외부 메모리를 갖는 관리자가 보안 프로세서를 활성화하는 단계,
- B: 활성화되면, 보안 프로세서가 외부 메모리로부터 공개 키를 회수해서 공개 키 암호화 모듈을 사용해 이를 인증할 수 있게 하는 단계,
- C: 보안 프로세서가 이를 활성화시켰던 관리자를 차후 등록 관리자(subsequent enrolled administrator)로서 인증하면, 차후 등록 관리자가 인증한 한 세트의 데이터와 명령어를 로드하여 실행하는 단계,
- D: 보안 프로세서의 실행에 의해 한 세트의 데이터를 생성하고, 이 중 일부는 인증될 수 있고, 이 데이터 세트는 일단 보안 프로세서에 의해 생성되면, 차후 등록 관리자가 사용하는 외부 메모리에 저장되는 단계.
일 특징 및 일 실시예에 따르면, 보안상의 이유로, 방금 설명한 본 방법은 두 명의 차후 등록 관리자, 좀 더 일반화하면, 복수의 둘 이상의 차후 등록 관리자와 함께 실행되고, 각각은 외부 메모리를 갖는다.
본 방법은 최초 등록 관리자가 보안 데이터 처리 조립체를 갖고 차후 등록 관리자를 등록시키는 초기 단계의 실행도 포함한다.
그리고, 본 방법은 다음의 등록 단계의 실행을 포함한다:
- A': 읽기-전용 메모리에 저장된 공개 키를 사용하여 인증되고 검증된, 제1 세트의 데이터 및 명령어가 보안 프로세서의 임의 접근 메모리에 로드되어 차후 등록 관리자를 인증하고 다른 한 세트의 데이터 및 명령어를 업로드하기 위한 프로그램을 실행할 수 있게 하고 이를 보안 프로세서에 의해 실행되게 하는 단계,
- B': 보안 프로세서가 제1 세트의 데이터 및 명령어를 실행하여 차후 등록 관리자의 인증 요소들을 포함하는 암호화되고 서명된 파일을 생성하고 이는 차후 등록 관리자에 의해 보안 프로세서 외부에 있는 메모리에 저장하고 보관되는 단계,
- C': 보안 프로세서에 의한 제1 세트의 데이터 및 명령어의 실행으로 단조 카운터가 증가되는 단계.
일 특징 및 일 실시예에 따르면, 보안상의 이유로, 방금 전에 설명한 등록 단계는 최초 등록 관리자가 둘 이상의 차후 등록 관리자, 좀 더 일반화하면, 복수의 둘 이상의 차후 등록 관리자를 등록하는 것이다.
일 실시예에 따르면, 위에 설명한 A', B' 및 C' 세 단계는 여러 번 반복될 수 있어서 서로 다른 그룹의 차후 등록 관리자들이 등록될 수 있고 서로 다른 세트의 데이터 및 명령어를 로드하고 실행할 수 있게 하며, 이 모든 것은 보안 프로세서가 일련의 연산을 실행하고 전자 장치 또는 외부 네트워크에 전송할 수 있게 하기 위함이다.
본 방법은 다음의 후속 단계의 실행을 포함하는 것도 특징으로 한다:
- 이전의 등록 단계 동안 등록된 차후 등록 관리자는, 한 세트의 데이터와 명령어를 보안 프로세서의 RAM에 로드할 수 있기 전에, 신뢰할 수 있는 접근 제어 방법, 가령 전자 서명을 이용하여, 있는 그대로의 실행 컨텍스트와 관련하여 보안 프로세서 상에서 자기 자신을 인증하는 단계,
- 보안 프로세서가 한 세트의 데이터와 명령어를 실행하여 코드의 실행과 관련된 데이터를 포함하는 제2의 암호화되고 서명된 파일을 생성하고, 이는 오로지 각각의 차후 등록 관리자에 의해서만 보안 프로세서 밖의, 외부 메모리에 저장 및 보관되고, 이것은 하나 이상의 단조 카운터를 증가시킬 수 있는 단계.
보안상의 이유로, 한 세트의 데이터와 명령어는, 일단 보안 프로세서의 RAM에 로드되면, 보안 프로세서가 이전 데이터와 명령어 세트에 의해 차후에 등록된 모든 관리자를 승인한 후에만 실행될 수 있는 것을 예상할 수 있다.
도면의 그림들을 여기서 간략히 설명한다.
도 1은 본 발명에 따른 기본적인 보안 프로세서를 구성하는 다양한 컴포넌트들을 도식적으로 나타낸다. 이 도면은 보안 프로세서가 읽기-전용 메모리, 임의 접근 메모리, 컴퓨터, 단조 카운터와 연관된 단조 카운터 관리 유닛만을 포함하고, 어느 다른 저장 메모리도 포함하지 아니하여, 외부 프로그램이나 데이터를 저장하지 않는 것을 도시한다.
도 2는 본 발명에 따른, 도 1과 같은 보안 프로세서, 보안 프로세서 외부의 메모리, 및 상기 보안 프로세서와 그 외부에 있는 메모리를 연결할 수 있는, 전자 통신 네트워크와 같은, 연결 수단을 포함하는, 기초 데이터를 위한 보안 처리 조립체를 이루는 상이한 컴포넌트들을 도식적으로 나타낸다.
도 3 및 도 4는 본 발명에 따른 보안 데이터를 위한 두 개의 기반 시설을 구성하는 다양한 컴포넌트를 도식적으로 나타낸다. 도 3의 경우에, 기반시설은 도 1 및 도 2와 같은 두 개의 보안 프로세서 및, 서로 동기화된 도 2와 같은 세 개의 외부 메모리를 포함하고, 각각의 보안 프로세서는 세 개의 외부 메모리 중 하나를 구별 없이 사용할 수 있다. 도 4의 경우에, 기반 시설은 도 1 및 도 2와 같은 두 개의 보안 프로세서 및 도 2와 같은 두 쌍의 외부 메모리를 포함하고, 각각의 보안 프로세서는 서로 동기화된 한 쌍의 외부 메모리와 연관된다.
도 5는 본 발명에 따른 보안 데이터 처리 조립체의 실행 단계의 전체도를 나타낸다.
도 6은 두 명의 차후 등록 관리자들을 위한 다양한 등록 단계들을 도시한다.
본 발명에 따른 보안 프로세서(PS)(도 1)는 읽기-전용 메모리(ROM), 임의 접근 메모리(RAM), 암호화 기능을 수행할 수 있는 컴퓨터(UE), 적어도 하나의 단조 카운터(CM)와 연관된 단조 카운터 관리 유닛(UG)을 포함한다. 적어도 하나의 최초 등록 관리자(AI)를 인증할 수 있게 만드는, 공개 키(CP)는 이를 처음 사용하기 전에 읽기-전용 메모리(ROM)에 저장된다. 임의 접근 메모리(RAM)는 한 세트의 컨텍스트와 같은, 데이터 및 명령어를 로드할 수 있고, 이는 보안 프로세서(PS)가 포함하는 공개 키 암호화 모듈(MC)에 의해 인증될 수 있다. 이들을 인증한 후에, 일정 명령어를 컴퓨터(UE)가 실행하면 단조 카운터(CM)를 증가시킬 수 있다. 일 실시예에서, 보안 프로세서(PS)는 가상 머신으로 에뮬레이트된다. 보안 프로세서(PS)의 일 특징에 따르면, 후자는 어떠한 다른 영구 저장 메모리를 포함하지 아니하므로, 보안 프로세서(PS)는 어떠한 프로그램, 컨텍스트(명령어, 코드, 데이터) 또는 외부 데이터를 영구적으로 저장하지 아니한다. 그리하여, 보안 프로세서(PS)는 읽기-전용 메모리(ROM), 임의 접근 메모리(RAM), 컴퓨터(UE), 관리 유닛(UG), 적어도 하나의 단조 카운터(CM) 및 암호화 모듈(MC)을 포함한다.
그러나, 적어도 하나의 이러한 저장 메모리(ME)는 데이터의 안전한 처리를 위하여 제공되지만, 후자는 보안 프로세서(PS)의 외부에 있고 그의 부분이거나 그와 물리적으로 통합되지 않는다. 그래서, 이러한 보안 프로세서(PS) 및 적어도 하나의 이러한 저장 메모리(ME)와 함께 적절한 통신 수단으로, 보안 데이터 처리 조립체(ETS) 또는 보안 데이터 처리 기반시설(ITS)(도 2, 도 3 및 도 4)을 어떻게 형성하는 가이다. 보안 프로세서(PS)는, 이러한 보안 데이터 처리 조립체(ETS) 또는 보안 데이터 처리 기반 시설(ITS)에서, 일련의 연산을 안전한 방식으로 자동적으로 실행할 수 있다. 이것은 위에서 정의한 뜻대로, 프로그램 및 관련 컨텍스트의 무결성의 유지 및 제어와 더불어 등록 관리자의 인증을 의미하는 것으로 이해된다.
“보안 프로세서의 외부”의 저장 메모리는 프로세서(PS)를 구성하는 물리적 유닛에 포함되지 않는 메모리인 것으로 이해될 수 있다. 이 이유로, 이 메모리는 “외부 메모리”라 불리며 ME로 참조된다. 메모리(ME)가 보안 프로세서(PS)의 외부에 있는 특징은 프로세서(PS)에 대해 저장소를 외부화한 기능을 갖는다는, 달리 말하면, 데이터로부터 실행 시스템(프로세서(PS))를 분리하고 격리시켰다는 것이다. 메모리(ME)가 보안 프로세서(PS)의 외부에 있는 특징은, 외부 영구 메모리가 보안 프로세서(PS) 자체에 어떤 효과나 영향도 주지 않기 때문에, 한편으론, 프로세서(PS)의 데이터 처리 능력이 제한되지 않고, 다른 한편으론, 불변성과, 그에 따른 프로세서의 처리의 무결성을 보장하는 결과를 가져온다. 본 발명은 방금 설명한 바와 같은 외부 저장 메모리(ME)와 다르지만, 같은 기능을 충족하고 방금 설명한 것과 유하한 결과를 제공하는 모든 다른 수단에 관한 것이기도 하다.
보안 데이터 처리 조립체(ETS)(도 2)는 위에 설명한 바와 같은 보안 프로세서 및, 추가적으로, 위에서 정의한 의미의 외부 메모리(ME)를 포함한다. 조립체(ETS)는 외부 메모리(ME)를 보안 프로세서(PS)와 연결할 수 있는, 가령, 특히 전자 통신 네트워크를 통한, 적어도 하나의 연결 수단(CO)도 포함한다. 보안 데이터 처리 조립체(ETS)는 하나의 외부 메모리(ME)만 포함할 수 있다. 그러나, 보안상의 이유로 응용 결정이 단 한 사람에 의해서 실행될 수 없는 것이 바람직한 경우, 보안 데이터 처리 조립체(ETS)가 둘 이상의 차후 등록 관리자(AU)를 위한 둘 이상의 외부 메모리(ME)를 포함하도록 제공된다.
이하의 설명은 두 개의 외부 메모리(ME)를 갖는 실시예에 관한 것으로 제공된다. 그러나, 외부 메모리의 개수(ME)에 관한 특징은 제한되지 않는다. 특히, 두 개보다 많은 외부 메모리(ME)는 사용될 수 있다. 이것이 우리가 복수의, 즉 둘 이상의 외부 메모리(ME)(외부 메모리(ME)의 개수는 더 많을 수 있다)라고 그리고 복수의, 즉 둘 이상의 차후 등록 관리자(AU)(차후 등록 관리자(AU)의 명수는 더 많을 수 있다)라고 부를 수 있는 이유이다.
연결 수단(CO)은, 보안 프로세서(PS)에서 외부 메모리(ME)의 방향으로 암호화된 저장을 할 수 있고, 외부 메모리(ME)에서 보안 프로세서(PS) 쪽의 방향으로, 암호화된 회수를 할 수 있다. 보안 데이터 처리 조립체(ETS)의 외부 메모리(ME)의 콘텐츠는 보안 프로세서(PS)와 관련해서 인증된다. 외부 메모리(ME)는, 보안 프로세서(PS)의 임의 접근 메모리(RAM)로 로드되는 것이 의도된, 적어도 하나의 프로그램 및 적어도 하나의 컨텍스트(명령어, 코드, 데이터)를 저장하기에 적합하게 구성되고 특히 그렇게 의도되며, 방금 설명한 바와 같이, 임의 접근 메모리(RAM)에 일시적으로 로드된 그러한 프로그램 및 그러한 컨텍스트를 보안 프로세서(PS)가 실행한 것에 기인한 모든 인증된 데이터 세트를 수신하고 저장할 수 있게 구성된다.
컨텍스트(프로그램이 그들 하에서 구현될 수 있게 하는 한 세트의 파라미터 및 조건들)은 보안 프로세서(PS)가 컨텍스트와 단조 카운터(CM)의 마지막 상태의 동기화를 확인할 수 있게 하는 참조 값을 포함할 수 있다.
보안 데이터 처리 기반시설(ITS)(도 3 및 도 4)은 방금 설명한 바와 같은 복수의, 즉 둘 이상의 보안 프로세서(PS), 예를 들어 PS1 및 PS2와, 추가적으로, 방금 설명한 바와 같은 적어도 하나의 외부 메모리(ME)를 포함한다.
그러나, 보안 데이터 처리 조립체(ETS)가 그러하듯이, 보안 데이터 처리 기반시설(ITS)은 복수의, 즉 둘 이상(또는 그보다 많은 개수의) 외부 메모리(ME)를 포함할 수 있다.
기반시설(ITS)은, 조립체(ETS)처럼, 외부 메모리(ME)를 보안 프로세서(PS)와 연결시킬 수 있는 적어도 하나의 연결 수단(CO)도 포함한다.
이러한 보안 데이터 처리 기반시설(ITS)의 구조는 다수의 실시예들의 대상일 수 있고, 각각의 상기 실시예들은 각각의 보안 프로세서(PS)들이 적어도 하나의 외부 메모리(ME)와 연결되게 된다. 그래서, 경우에 따라선, 보안 프로세서(PS)는 하나의 외부 메모리(ME)와 연결되거나, 또는 반대로, 여러 개의 외부 메모리(ME)들과 연결되고, 외부 메모리(ME)는 하나의 보안 프로세서(PS)와 연결되거나, 또는 반대로, 여러 개의 보안 프로세서(PS)들과 연결된다.
그래서, 보안 데이터 처리 기반시설(ITS)은 여러 개의 보안 데이터 처리 조립체(EST)들을 함께 결합시키고, 적절한 곳에서, 공통의 하나 이상의 보안 프로세서(PS) 및/또는 하나 이상의 외부 메모리(ME)를 갖는 구조물이라고 여길 수 있다.
한 가지 가능한 실시예(도 3)에 있어서, 보안 데이터 처리 기반시설(ITS)은 여러 개의 보안 프로세서(PS1, PS2) 및 서로 동기화된 여러 개의 외부 메모리(ME1, ME2, ME3)를 포함하고, 각각의 보안 프로세서(PS1, PS2)는 외부 메모리(ME1, ME2, ME3)들 중 하나와 다른 것을 구별 없이 사용할 수 있다. 이러한 구조는 결함에 대한 높은 저항성을 발휘하는 장점을 갖는다.
다른 하나의 가능한 실시예(도 4)에 있어서, 보안 데이터 처리 기반 시설(ITS)은 여러 개의 보안 프로세서(PS1, PS2) 및 여러 쌍, 예를 들어 한쪽에는 ME1a 및 ME1b, 다른 한쪽에는 ME2b 및 ME2b, 또는 여러 개의 3개 조, 4개 조 또는 그 이상의 외부 메모리(ME)를 포함하고, 각각의 보안 프로세서(PS1, PS2)는 서로 동기화된 한 쌍, 3개 조, 4개 조의 외부 메모리(ME)와 연관된다. 이러한 구조는 파티셔닝에 의해 데이터 그룹을 생성하여 시스템의 성능을 향상시키는 장점을 갖는다.
우리는 이제 위에 설명한 보안 데이터 처리 조립체(ETS)를 구현하는 방법을 설명할 것이며, 방법은 연속하는 단계들의 실행을 포함한다.
본 발명에 따른 방법에서, 우리는 이 방법을 구현하는, 한 명 이상의 등록된 관리자(AI, AU)를 언급하는 것이 필요할 것이다. 이 관리자들은 최초 등록 관리자(AI)와 어느 차후 등록된 관리자(AU)이다. 위에서 설명한 바와 같이, 보안상의 이유로 응용 결정이 단 한 사람에 의해서 실행될 수 없는 것이 바람직한 경우, 둘 이상의 차후 등록 관리자(AU)가 필요하다. 이하에선 본 방법의 설명은 두 명의 차후 등록 관리자(AU), 각각 AU1 및 AU2를 갖는 실시예에 관한 것이다. 그러나, 차후 등록 관리자(AU)의 명수에 관한 특징은 제한되지 않는다. 특히, 둘보다 많은 차후 등록 관리자(AU)는 사용될 수 있다.
우리는 이제 도 5를 참조하여, 일반적인 방식으로, 두 명의 차후 등록 관리자(AU1 및 AU2)가 보안 데이터 처리 조립체(ETS)를 실행하는 것을 설명할 것이다.
단계 A에서, 각각 보안 프로세서(PS)와 연결된 외부 메모리(ME)를 갖는, 두 차후 등록 관리자(AU1 및 AU2)는 상기 보안 프로세서(PS)를 활성화한다. 이 단계 A는 그러므로 다음 동작을 포함한다:
- A1: 등록 관리자(AU1)의 컨텍스트의 회수,
- A2: 등록 관리자(AU2)의 컨텍스트의 회수,
- A3: 등록 관리자(AU1)에 의한, 보안 프로세서(PS)의 활성화,
- A4: 등록 관리자(AU2)에 의한, 보안 프로세서(PS)의 활성화.
단계 B에서, 보안 프로세서(PS)는, 일단 활성화되면, 메모리에 있는 공개 키(CP)를 회수해서 공개 키 알고리듬을 구현하는 암호화 모듈(MC)을 사용해 그들을 인증할 수 있도록 한다.
단계 C에서, 만약 보안 프로세서(PS)가 등록 관리자(AU1 및 AU2)를 인증하면, 상기 등록 관리자(AU1 및 AU2)들이 인증한 한 세트의 데이터와 명령어를 로드하고(등록 관리자(AU1 및 AU2)에 대한 동작 C1 및 C2) 이를 실행한다(동작 C3).
단계 D에서, 보안 프로세서(PS)에 의한 상기 실행(동작 C3)은 한 세트의 데이터를 생성하고, 이중 일부는 인증될 수 있다. 이 데이터 세트는, 일단 보안 프로세서(PS)가 생성하면, 등록 관리자(들)(AU1, AU2)이 사용하는 외부 메모리(들)(ME)에 저장된다. 그러므로 이 단계 D는 다음 동작을 포함한다:
- D1: 등록 관리자(AU1)와 관계된 데이터의 회수,
- D2: 등록된 관리자(AU2)와 관계된 데이터의 회수,
- D3: 등록 괸라자(AU1)에게 배정된 데이터를 외부 메모리(ME)에 저장,
- D4: 등록 관리자(AU2)와 관계된 데이터를 외부 메모리(ME)에 저장.
본 방법은 다음의 초기 등록 단계도 포함하며, 여기서 최초 등록 괸리자(AI)는 보안 데이터 처리 조립체(ETS)를 갖고 적어도 한 명의 차후 등록 관리자(AU)를 등록시킨다. 위에서 설명한 바와 같이, 만약 보안상의 이유로, 응용 결정이 한 사람에 의해서 실행될 수 없는 경우, 최초 등록 관리자(AI)는 둘 또는 둘 이상의 차후 등록 관리자(AU), 두 명의 차후 등록 관리자이면 각각 AU1 및 AU2,를 등록한다. 등록 방법은 두 명의 차후 등록 관리자(AU1 및 AU2)로 구현하는 것과 관련해서 설명된다. 그러나, 말한 바와 같이, 차후 등록 관리자의 명수에 관한 특징은 제한되지 않는다. 또한, 그리고 보다 일반적으로, 최초 등록 관리자(AI)는 복수의 둘 이상의 차후 등록 관리자(AU)를 등록시킬 수 있다.
이들 두 차후 등록 관리자(AU), 각각 AU1과 AU2의 등록은, 이후의 실행에 사용되는 제1 인증 컨텍스트의 정의에 참여하는 제1 세트를 구성한다.
최초 등록 관리자는 이전에 등록되었던 차후 등록 관리자(AU)들 중 하나 또는 다른 자를 나중에 변경할 수 있다. 그는 하나 이상의 차후 등록 관리자(AU)를 추가할 수 있다. 그는 하나 이상의 차후 등록 관리자(AU)를 제거할 수 있다. 그는 하나 이상의 차후 등록 관리자(AU)의 권한을 수정할 수 있다. 이전에 등록되었던 차후 등록 관리자(AU)들 중 하나 또는 다른 자를 나중에 변경한 경우에, 최초 등록 관리자(AI)는 대응하는 조정 방법을 시행한다. 그리고 우리는 갱신된 컨텍스트 및 증가된 단조 카운터(들)을 회수한다.
이제 두 명의 차후 등록 관리자(AU1 및 AU2)를 위한 다양한 등록 단계들을 보여주는 도 6을 참조한다. 이 등록 단계는, AU1 및 AU2라고 지정된, 첫 두 등록 관리자들과 관련하여, 도 5에서 설명하고 나타낸 실행 단계보다 앞서 있는 초기 단계이다. 첫 등록 관리자(AU1 및 AU2)들 중 누군가를 나중에 바꾸는 경우에, 즉 전에 미리 등록된 차후 등록 관리자(AU) 중 누군가를 바꾸는 경우에, 관리자가 바뀔 때 등록 단계는 일어나고, 한편 보안 데이터 처리 조립체(ETS)가 이전 컨텍스트에서, 다른 관리자들과 함께, 이전에 명령어를 실행할 수 있었다.
단계 A'에서, 제1 세트의 데이터 및 명령어는, 읽기-전용 메모리(ROM)에 저장된 공개 키(CP)를 사용해 인증되고 검증된 것으로서, 보안 프로세서(PS)의 임의 접근 메모리(RAM)에 로드되어 두 차후 등록 관리자(AU1 및 AU2)에 대한 인가 프로그램을 실행하고, 다른 세트의 데이터 및 명령어를 로드하고 보안 프로세서(PS)에 의해 실행될 수 있게 한다.
그러므로 이 단계 A'는 다음 동작을 포함한다:
- A'1: 최초 관리자(AI)에 의해 외부 메모리(ME)로부터 인가 프로그램을 회수,
- A'2: 차후 관리자(AU1)의 인증 요소의 회수,
- A'3: 유사하게, 차후 관리자(AU2)의 인증 요소의 회수,
- A'4: 인가 프로그램과 인증 요소를 보안 프로세서(PS)로 전송.
단계 B'에서, 보안 프로세서(PS)에 의한 제1 세트의 데이터 및 명령어의 실행은 차후 등록 관리자(AU1 및 AU2)의 인증 요소를 포함하는 암호화되고 서명된 파일을 생성하고, 이것은 각각의 상기 차후 등록 관리자(AU1, AU2)에 의해 보안 프로세서 외부에 있는 메모리(ME)에 저장되고 보관된다.
그러므로 이 단계 B'는 다음 동작을 포함한다:
- B'1: 보안 안전 프로세서(PS)에 의해, 제1 세트의 데이터 및 명령어를, 후술할 단계 C와 동시에 실행,
- B'2: 차후 등록 관리자(AU1)와 관련된 암호화되고 서명된 데이터를 전송,
- B'3: 차후 관리자(AU1)에 의하여, 이 데이터를 외부 메모리(ME)에 저장,
- B'4: 유사하게, 차후 관리자(AU2)와 관련된 암호화되고 서명된 데이터를 전송,
- B'5: 그리고, 유사하게, 차후 관리자(AU2)에 의하여, 이 데이터를 외부 메모리(ME)에 저장.
단계 C'에서, 보안 프로세서(PS)에 의한 제1 세트의 데이터 및 명령어의 실행(동작 B'1)은, 동시에 단조 카운터(CM)의 증가를 가져온다.
위에 설명한 세 단계 A', B' 및 C'는 여러 번 반복될 수 있어서 서로 다른 그룹의 차후 등록 관리자(AU)가 다른 데이터 및 명령어 세트를 로드하고 실행할 수 있게 하고, 이 모든 것은 보안 프로세서(PS)가 일련의 동작들을, 어느 전자 장치 또는 외부 네트워트로, 실행하고 전송하게 할 수 있도록 하기 위함이다.
일단 두 차후 관리자(AU1 및 AU2)가 등록되면, 이들은 도 5를 참조하여 앞서 설명한 바와 같은, 다음의 후속 단계들을 실행할 수 있다.
이전의 등록 단계 동안 등록된, 차후 등록 관리자(AU1 및 AU2)는, 보안 프로세서(PS)의 임의 접근 메모리(RAM)로 한 세트의 데이터 및 명령어를 로드할 수 있기 전에, 신뢰할 수 있는 접근 제어 방법 가령 전자 서명을 사용하여, 보안 프로세서(PS)에 있는 그대로의 실행 컨텍스트와 관련하여 그들 스스로를 인증한다.
이 데이터 및 명령어 세트는, 일단 보안 프로세서(PS)의 임의 접근 메모리(RAM)에 로드되면, 보안 프로세서(PS)가 이전 데이터 및 명령어 세트를 사용해 두 차후 등록 관리자(AU1 및 AU2)의 인증을 확인한 후에만 실행될 수 있다. 이 단계는 의무는 아니고, 단지 선택적이다. 이것은 보안 수준을 두 배로 할 의도이다. 만약 당신이 보안 수준을 두 배로 하길 원한다면, 이 단계를 수행하라.
보안 프로세서(PS)에 의한 데이터 및 명령어 세트의 실행은 코드의 실행과 관련된 데이터를 포함하는 제2의 암호화되고 서명된 파일을 생성하고 이는 각각의 차후 등록 관리자(AU1 및 AU2)에 의해서, 보안 프로세서(PS) 외부의, 외부 메모리(ME)에만 저장 및 보관되고, 이는 하나 이상의 단조 카운터(CM)를 증가시킬 수 있다.

Claims (18)

  1. 보안 프로세서를 포함하는 보안 데이터 처리 조립체의 환경에서 자동적으로 안전한 방식으로 일련의 연산을 수행하는 방법으로서, 상기 보안 프로세서는 적어도
    - 읽기 전용 메모리,
    - 임의 접근 메모리,
    - 암호화 기능을 수행할 수 있는 암호화 컴퓨터,
    - 적어도 하나의 단조 카운터 및 상기 적어도 하나의 단조 카운터와 연관된 단조 카운터 관리 유닛, 및
    - 공개키 알고리즘을 사용하는 암호화 모듈을 포함하고,
    상기 보안 프로세서는 어떠한 다른 저장 메모리를 포함하지 않아서, 상기 보안 프로세서가 어떠한 프로그램, 컨텍스트, 명령어, 코드, 데이터 또는 외부 데이터를 저장할 수가 없고,
    - 상기 방법은:
    - 처음 사용되기 전에, 상기 읽기 전용 메모리에, 적어도 하나의 최초 등록 관리자를 인증하기 위해 제공된 공개 키를 저장하는 단계,
    - 상기 임의 접근 메모리에, 상기 암호화 모듈이 공개 키를 사용하여 인증할 수 있는, 컨텍스트와 같은 한 세트의 데이터, 및 명령어를 로드하는 단계,
    - 상기 보안 프로세서의 외부에 적어도 하나의 메모리, 및 상기 보안 프로세서의 외부에 적어도 하나의 메모리를 상기 보안 프로세서와 연결할 수 있는 적어도 하나의 연결 수단을 제공하는 단계,
    - 상기 보안 프로세서의 외부의 상기 메모리에, 상기 보안 프로세서로 실행할 적어도 하나의 프로그램 및 적어도 하나의 컨텍스트(명령어, 코드, 데이터)를 저장하는 단계,
    - 상기 보안 프로세서를 상기 보안 프로세서 외부의 상기 메모리와 연결하는 단계,
    - 상기 보안 프로세서의 상기 임의 접근 메모리에 상기 적어도 하나의 프로그램 및 적어도 하나의 컨텍스트를 로드하는 단계,
    - 상기 보안 프로세서가, 상기 보안 프로세서의 임의 접근 메모리에 일시적으로 로드된 적어도 하나의 프로그램 및 적어도 하나의 컨텍스트를 앞서 실행한 결과 생성된 인증된 파일을 수신 및 저장하는 단계,
    - 상기 보안 프로세서가 상기 적어도 하나의 컨텍스트와 단조 카운터의 마지막 상태의 동기화를 검증하는 단계,
    - 상기 암호화 컴퓨터가, 상기 최초 등록 관리자에 의해 인증 받은 후의, 상기 임의 접근 메모리에 로드된 특정 명령어를 실행하고 난 다음에 상기 단조 카운터를 증가시키는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 보안 프로세서는 가상 머신으로 에뮬레이트되는, 방법.
  3. 제1항에 있어서,
    상기 보안 프로세서와 연결되는 복수의 외부 메모리를 제공하는 단계를 포함하는, 방법.
  4. 제1항에 있어서,
    상기 보안 프로세서가 적어도 하나의 외부 메모리를 인증하는 단계를 포함하는, 방법.
  5. 제1항에 있어서,
    상기 방법은 보안 데이터 처리 기반시설에서 구현되고, 상기 보안 데이터 처리 기반시설은 복수의 보안 프로세서 및 적어도 하나의 외부 메모리를 포함하고,
    상기 복수의 보안 프로세서 중 각각의 보안 프로세서는 상기 적어도 하나의 외부 메모리와 연결되는, 방법.
  6. 제1항에 있어서,
    상기 방법은 보안 데이터 처리 기반시설에서 구현되고, 상기 보안 데이터 처리 기반시설은 복수의 보안 프로세서 및 복수의 외부 메모리를 포함하고,
    상기 복수의 보안 프로세서 중 각각의 보안 프로세서는 상기 복수의 외부 메모리 중 적어도 하나의 외부 메모리와 연결되는, 방법.
  7. 제1항에 있어서,
    차후 관리자를 등록하기 위한 일련의 연산을 실행하는 단계를 포함하고, 상기 일련의 연산은 적어도 다음의 단계들:
    - A: 차후 관리자가 보안 프로세서와 연결된 외부 메모리로 상기 보안 프로세서를 활성화하는 단계;
    - B: 상기 보안 프로세서가, 일단 활성화되면, 외부 메모리의 공개 키를 회수하여 암호화 모듈을 사용해 공개 키로 상기 차후 관리자를 인증할 수 있게 하는 단계,
    - C: 상기 보안 프로세서가 상기 보안 프로세서를 활성화한 관리자를 차후 등록 관리자로 인증하면, 상기 보안 프로세서가 상기 차후 등록 관리자에 의해 인증된 한 세트의 데이터 및 명령어를 로드하고 실행하는 단계;
    - D: 상기 보안 프로세서가, 일부가 인증될 수 있는 하나의 데이터 세트를 생성하고, 상기 데이터 세트는, 일단 상기 보안 프로세서에 의해 생성되면, 상기 차후 등록 관리자에 의해 사용되는 외부 메모리에 저장되는 단계;의 실행을 포함하는, 방법.
  8. 제7항에 있어서,
    두 명의 차후 등록 관리자에게, 각자 외부 메모리를 갖도록, 외부 메모리를 할당하는 단계를 포함하는, 방법.
  9. 제7항에 있어서,
    다음의 등록 단계:
    - A': 읽기-전용 메모리에 저장된 공개 키를 사용하여 인증되고 검증된 제1 세트의 데이터 및 명령어가 보안 프로세서의 임의 접근 메모리에 로드되어 상기 보안 프로세서가 차후 등록 관리자의 인가 프로그램을 실행하고 다른 한 세트의 데이터 및 명령어를 로드하여 상기 보안 프로세서에 의해 실행될 수 있게 하는 단계;
    - B': 상기 보안 프로세서가 상기 제1 세트의 데이터 및 명령어를 실행하여 상기 차후 등록 관리자의 인증 요소를 포함하는 암호화되고 서명된 파일을 생성하고, 상기 서명된 파일은 차후 등록 관리자에 의해 상기 보안 프로세서의 외부 메모리에 저장되고 보관되는 단계;
    - C': 상기 보안 프로세서에 의한 상기 제1 세트의 데이터 및 명령어의 실행은 동시에 단조 카운터의 증가를 가져오는 단계;의 실행을 포함하는, 방법.
  10. 제9항에 있어서,
    상기 단계 A', B', 및 C'는 서로 다른 그룹들의 차후 등록 관리자들을 등록하기 위해 여러 번 반복되는, 방법.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
KR1020207029483A 2018-03-14 2019-03-13 보안 데이터 처리 KR102625023B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1870286 2018-03-14
FR1870286A FR3079044B1 (fr) 2018-03-14 2018-03-14 Traitement securise de donnees
PCT/FR2019/000033 WO2019175482A1 (fr) 2018-03-14 2019-03-13 Traitement sécurisé de données

Publications (2)

Publication Number Publication Date
KR20210015757A KR20210015757A (ko) 2021-02-10
KR102625023B1 true KR102625023B1 (ko) 2024-01-15

Family

ID=63145118

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207029483A KR102625023B1 (ko) 2018-03-14 2019-03-13 보안 데이터 처리

Country Status (10)

Country Link
US (1) US11822795B2 (ko)
EP (1) EP3765984A1 (ko)
JP (1) JP7374112B2 (ko)
KR (1) KR102625023B1 (ko)
CN (1) CN112470153A (ko)
AU (1) AU2019233753B2 (ko)
CA (1) CA3093385A1 (ko)
FR (1) FR3079044B1 (ko)
SG (1) SG11202008989UA (ko)
WO (1) WO2019175482A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019108049A1 (de) * 2019-03-28 2020-10-01 Pilz Gmbh & Co. Kg Zugriffssteuerungssystem zur Steuerung eines Zugriffs eines Nutzers auf eine oder mehrere Betriebsfunktionen einer technischen Anlage

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040187006A1 (en) * 2003-03-21 2004-09-23 International Business Machines Corporation Method for guaranteeing freshness of results for queries against a non-secure data store
US20140137178A1 (en) * 2012-11-09 2014-05-15 Microsoft Corporation Attack protection for trusted platform modules

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332653B2 (en) * 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
FR2906380B1 (fr) 2006-09-27 2008-12-19 Trusted Logic Sa Systeme et procede de securisation de donnees.
JP5001123B2 (ja) * 2006-12-07 2012-08-15 パナソニック株式会社 記録デバイス、集積回路、アクセス制御方法、プログラム記録媒体
JP5052878B2 (ja) * 2006-12-12 2012-10-17 株式会社バッファロー 記憶装置及び利用者認証方法
US8589667B2 (en) * 2010-04-19 2013-11-19 Apple Inc. Booting and configuring a subsystem securely from non-local storage
CN102270285B (zh) * 2010-06-01 2013-12-04 华为技术有限公司 密钥授权信息管理方法及装置
US9202059B2 (en) * 2011-03-01 2015-12-01 Apurva M. Bhansali Methods, systems, and apparatuses for managing a hard drive security system
US9323950B2 (en) * 2012-07-19 2016-04-26 Atmel Corporation Generating signatures using a secure device
JP6473674B2 (ja) * 2015-07-28 2019-02-20 ルネサスエレクトロニクス株式会社 通信端末およびプログラム
WO2019057308A1 (en) * 2017-09-25 2019-03-28 Telefonaktiebolaget Lm Ericsson (Publ) SUPPLY OF SUPPORTERS FOR SELLERS

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040187006A1 (en) * 2003-03-21 2004-09-23 International Business Machines Corporation Method for guaranteeing freshness of results for queries against a non-secure data store
US20140137178A1 (en) * 2012-11-09 2014-05-15 Microsoft Corporation Attack protection for trusted platform modules

Also Published As

Publication number Publication date
AU2019233753A1 (en) 2020-10-15
CN112470153A (zh) 2021-03-09
FR3079044B1 (fr) 2020-05-22
KR20210015757A (ko) 2021-02-10
US11822795B2 (en) 2023-11-21
EP3765984A1 (fr) 2021-01-20
WO2019175482A1 (fr) 2019-09-19
US20210042043A1 (en) 2021-02-11
JP7374112B2 (ja) 2023-11-06
JP2021517688A (ja) 2021-07-26
CA3093385A1 (fr) 2019-09-19
AU2019233753B2 (en) 2024-03-28
SG11202008989UA (en) 2020-10-29
FR3079044A1 (fr) 2019-09-20

Similar Documents

Publication Publication Date Title
EP3671508B1 (en) Customizing operating system kernels with secure kernel modules
US20210240869A1 (en) Secure memory device with unique identifier for authentication
CN107077546B (zh) 用于更新持有因素凭据的系统和方法
JP6073320B2 (ja) デジタル署名するオーソリティ依存のプラットフォームシークレット
WO2019104988A1 (zh) Plc的安全处理单元及其总线仲裁方法
JP2014505943A (ja) 耐タンパー性ブート処理のためのシステム及び方法
CN105408912A (zh) 处理认证和资源许可
US10291401B1 (en) Stateless service-mediated security module
CN107292176A (zh) 用于访问计算设备的可信平台模块的方法和系统
US8364978B2 (en) System for and method of auto-registration with cryptographic modules
US20170201528A1 (en) Method for providing trusted service based on secure area and apparatus using the same
US10158623B2 (en) Data theft deterrence
KR102625023B1 (ko) 보안 데이터 처리
WO2019226510A1 (en) Methods and systems for multiple independent roots of trust
US20200401679A1 (en) Method and system for preventing unauthorized computer processing
WO2021188716A1 (en) Systems and methods for protecting a folder from unauthorized file modification
CN112613011A (zh) U盘系统认证方法、装置、电子设备及存储介质
Lee et al. A study on a secure USB mechanism that prevents the exposure of authentication information for smart human care services
Nabi et al. Smartphones platform security a comparison study
EP3542274A1 (en) Systems and methods for performing secure backup operations
US20240146714A1 (en) Security key integrity verification using inventory certificates
US20230351006A1 (en) Multi-admin verification for improved security of data stores
CN115906029A (zh) 鉴权方法、装置、电子设备、存储介质及产品

Legal Events

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