KR20240114206A - 데이터 격리를 위한 전자 장치 및 그 동작 방법 - Google Patents
데이터 격리를 위한 전자 장치 및 그 동작 방법 Download PDFInfo
- Publication number
- KR20240114206A KR20240114206A KR1020230006345A KR20230006345A KR20240114206A KR 20240114206 A KR20240114206 A KR 20240114206A KR 1020230006345 A KR1020230006345 A KR 1020230006345A KR 20230006345 A KR20230006345 A KR 20230006345A KR 20240114206 A KR20240114206 A KR 20240114206A
- Authority
- KR
- South Korea
- Prior art keywords
- storage device
- processor
- user identifier
- data
- temporary key
- Prior art date
Links
- 238000000034 method Methods 0.000 title description 24
- 238000002955 isolation Methods 0.000 title description 3
- 238000011017 operating method Methods 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013175 transesophageal echocardiography Methods 0.000 description 2
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
- G06F21/53—Monitoring 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 by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
- H04L9/0844—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
본 발명에 따르면, 노말 영역 및 트러스티드 어플리케이션에 할당되는 보안 영역을 포함하는 스토리지 장치 및 상기 트러스티드 어플리케이션 및 상기 스토리지 장치와 연관된 장치 정보에 기초하여 상기 트러스티드 어플리케이션에 할당되는 유저 식별자를 생성하고, 상기 유저 식별자에 기초하여 상기 트러스티드 어플리케이션으로부터 상기 보안 영역에 대하여 요청되는 데이터를 관리하는 프로세서를 포함하고, 상기 장치 정보는 상기 스토리지 장치와 연관된 정보 및 상기 프로세서와 연관된 정보 중 적어도 하나를 포함하는 전자 장치이다.
Description
본 발명은 데이터 격리를 위한 전자 장치 및 그 동작 방법에 관한 것이다.
데이터의 보안과 관련하여, 데이터 전송(Data-in-transit), 데이터 저장(Data-at-rest) 및 데이터 사용(Data-in-use) 상태를 모두 보호해야 할 필요성이 있다. 데이터 보안을 위해 최근 기밀 컴퓨팅(Confidential Computing) 기술이 주목받고 있다. 그러나, 기존의 기밀 컴퓨팅 기술에는 암호화된 파일 자체의 삭제가 가능하므로 서비스가 무력화될 수 있다는 문제가 있다. 또한, 기밀 컴퓨팅을 위한 별도의 저장 장치인 SE(Secure Element)가 제공될 수 있으나, SE는 저장 공간이 협소하며 또한 환경적 제약이 존재하므로 범용성이 문제될 수 있다.
본 발명은 상술한 과제를 해결하기 위한 것으로서, 본 발명의 목적은 데이터 격리를 위한 전자 장치 및 그 동작 방법을 제공하는 데 있다.
본 발명의 일 실시예로, 노말 영역 및 트러스티드 어플리케이션에 할당되는 보안 영역을 포함하는 스토리지 장치 및 상기 트러스티드 어플리케이션 및 장치 정보에 기초하여 상기 트러스티드 어플리케이션에 할당되는 유저 식별자를 생성하고, 상기 유저 식별자에 기초하여 상기 트러스티드 어플리케이션으로부터 상기 보안 영역에 대하여 요청되는 데이터를 관리하는 프로세서를 포함하고, 상기 장치 정보는 상기 스토리지 장치와 연관된 정보 및 상기 프로세서와 연관된 정보 중 적어도 하나를 포함하는 전자 장치이다.
본 발명의 일 실시예로, 트러스티드 어플리케이션 및 상기 트러스티드 어플리케이션에 할당되는 보안 영역을 포함하는 스토리지 장치와 연관된 정보 및 상기 트러스티드 어플리케이션이 구동되는 프로세서와 연관된 정보 중 적어도 하나를 포함하는 장치 정보에 기초하여 상기 트러스티드 어플리케이션에 할당되는 유저 식별자를 생성하는 단계 및 상기 유저 식별자에 기초하여 상기 트러스티드 어플리케이션으로부터 상기 보안 영역에 대하여 요청되는 데이터를 관리하는 단계를 포함하는 동작 방법이다.
본 발명의 일 실시예로, 스토리지 장치에 있어서, 노말 영역 및 트러스티드 어플리케이션에 할당되는 보안 영역을 포함하는 비휘발성 메모리 및 상기 비휘발성 메모리를 제어하는 스토리지 컨트롤러를 포함하고, 상기 스토리지 컨트롤러는 호스트 장치로부터 상기 트러스티드 어플리케이션에 할당되는 유저 식별자를 수신하고, 상기 유저 식별자에 기초하여 상기 트러스티드 어플리케이션으로부터 상기 보안 영역에 대하여 요청되는 데이터를 기입 또는 독출하고, 상기 유저 식별자는 상기 트러스티드 어플리케이션 및 상기 스토리지 장치와 연관된 정보 및 상기 트러스티드 어플리케이션이 구동되는 프로세서와 연관된 정보 중 적어도 하나를 포함하는 장치 정보에 기초하여 생성된 정보인 스토리지 장치이다.
본 발명에 의하면, 신뢰 실행 환경에서 운영 체제의 의존성 없이 어플리케이션 마다 고유한 저장 공간을 제공하고, 보안 강도를 높일 수 있는 전자 장치 및 그 동작 방법이 제공될 수 있다.
도 1은 본 발명의 일 실시예에 따른 전자 장치를 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 전자 장치를 보다 상세히 도시한 것이다.
도 3은 본 발명의 일 실시예에 따른 전자 장치의 유저 식별자를 설명하기 위한 것이다.
도 4은 본 발명의 일 실시예에 따른 전자 장치의 데이터 전송 보호를 위한 동작을 도시한 것이다.
도 5는 본 발명의 일 실시예에 따른 전자 장치의 데이터 전송 동작의 일 실시예를 도시한 것이다.
도 6는 본 발명의 일 실시예에 따른 전자 장치의 데이터 전송 동작의 다른 일 실시예를 도시한 것이다.
도 7은 본 발명의 일 실시예에 따른 전자 장치의 TA 업데이트 동작을 도시한 것이다.
도 8은 본 발명의 일 실시예에 따른 전자 장치의 자가 암호화 동작을 도시한 것이다.
도 9는 본 발명의 일 실시예에 따른 프로세서의 동작 방법의 순서도이다.
도 10은 본 발명의 일 실시예에 따른 프로세서의 동작 방법의 순서도이다.
도 11은 본 발명의 일 실시예에 따른 프로세서의 기입 방법의 순서도이다.
도 12는 본 발명의 일 실시예에 따른 프로세서의 독출 방법의 순서도이다.
도 13은 본 발명의 다른 일 실시예에 따른 전자 장치를 도시한 것이다.
도 14는 본 발명의 일 실시예에 따른 스토리지 시스템을 도시한 것이다.
도 15는 본 발명의 일 실시예에 따른 모바일 장치를 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 전자 장치를 보다 상세히 도시한 것이다.
도 3은 본 발명의 일 실시예에 따른 전자 장치의 유저 식별자를 설명하기 위한 것이다.
도 4은 본 발명의 일 실시예에 따른 전자 장치의 데이터 전송 보호를 위한 동작을 도시한 것이다.
도 5는 본 발명의 일 실시예에 따른 전자 장치의 데이터 전송 동작의 일 실시예를 도시한 것이다.
도 6는 본 발명의 일 실시예에 따른 전자 장치의 데이터 전송 동작의 다른 일 실시예를 도시한 것이다.
도 7은 본 발명의 일 실시예에 따른 전자 장치의 TA 업데이트 동작을 도시한 것이다.
도 8은 본 발명의 일 실시예에 따른 전자 장치의 자가 암호화 동작을 도시한 것이다.
도 9는 본 발명의 일 실시예에 따른 프로세서의 동작 방법의 순서도이다.
도 10은 본 발명의 일 실시예에 따른 프로세서의 동작 방법의 순서도이다.
도 11은 본 발명의 일 실시예에 따른 프로세서의 기입 방법의 순서도이다.
도 12는 본 발명의 일 실시예에 따른 프로세서의 독출 방법의 순서도이다.
도 13은 본 발명의 다른 일 실시예에 따른 전자 장치를 도시한 것이다.
도 14는 본 발명의 일 실시예에 따른 스토리지 시스템을 도시한 것이다.
도 15는 본 발명의 일 실시예에 따른 모바일 장치를 도시한 것이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 일 실시예에 따른 전자 장치를 도시한 것이다.
도 1을 참조하면, 일 실시예에 따른 전자 장치(1000)는 프로세서(1100) 및 스토리지 장치(1200)를 포함할 수 있다.
예를 들어, 전자 장치(1000)는 서버, 데이터 센터(data center), PC(personal computer), 네트워크-결합 스토리지, IoT(Internet of Things) 장치, 또는 휴대용 전자 기기로 구현될 수 있다. 휴대용 전자 기기는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등일 수 있다.
프로세서(1100)는 전자 장치(1000)의 전반적인 동작, 전자 장치(1000)에 포함된 구성 요소들의 동작을 제어하고, 데이터 처리를 수행할 수 있다.
예를 들어, 프로세서(1100)는 중앙 처리 장치(central processing unit: CPU), 그래픽 처리 장치(graphics processor unit: GPU), 어플리케이션 프로세서(application processor: AP), 또는 통신 프로세서(communication processor: CP) 중 하나 이상을 포함할 수 있다.
일 실시예로, 프로세서(1100)는 TEE(Trusted Execution Environment)가 지원될 수 있다. TEE는 TEE 내에 로딩되는 코드 및 데이터를 보호하는 프로세서(1100)의 보안 영역(1220)에서의 환경으로써, 기밀성(confidentiality) 및 무결성(integrity)을 제공할 수 있다. TEE는 하드웨어적으로 격리된 실행 환경이며, TEE 내에서 사용되는 메모리는 외부로부터의 접근이 차단될 수 있고 TEE에서 저장되는 데이터는 암호화되어 저장될 수 있다. TEE는 격리되어(isolated) 비-TEE에서의 운영 체제(operating system)와 병렬로 실행될 수 있고, 사용자 대면(user-facing) 운영 체제보다 더 안전하다.
TEE는 신뢰 영역(Trusted Part, TP) 또는 보안 월드(secure world)로 칭해질 수 있고, 비-TEE는 신뢰되지 않는 영역(Untrusted Part, UP), 리치 월드(rich world) 또는 노말 월드(normal world)로 칭해질 수도 있다. TEE에서 실행되는 어플리케이션은 신뢰되는 어플리케이션(Trusted Application, 이하 TA(1120))으로 칭해질 수 있고, 비-TEE에서 실행되는 어플리케이션은 신뢰되지 않는 어플리케이션(Untrusted Application, 이하 UA(1110))으로 칭해질 수 있다. TA(1120)는 외부의 클라이언트 어플리케이션 또는 TEE 내부의 다른 신뢰할 수 있는 어플리케이션에 보안 관련 기능을 제공하는 TEE 내에서 실행되는 어플리케이션이다.
프로세서(1100)는 TEE와 비-TEE를 모두 운영할 수 있으며, 필요에 따라 TEE와 비-TEE를 스위칭하여 동작할 수 있다.
스토리지 장치(1200)는 프로세서(1100)에 따라 제어될 수 있다. 예를 들어, 스토리지 장치(1200)는 SSD(Solid-State Drive), UFS(Universal Flash Storage) 또는 eMMC(embedded Multi-Media Controller)일 수 있다. 또는, 스토리지 장치(1200)는 SD(Secure Digital) 카드, 마이크로 SD 카드, 메모리 스틱(memory stick), 칩 카드(chip card), USB(Universal Serial Bus) 카드, 스마트 카드(smart card), CF(Compact Flash) 카드 또는 이와 유사한 형태로 구현될 수 있으며 상술한 실시예들에 제한되지 않는다.
일 실시예로, 스토리지 장치(1200)는 TEE와 비-TEE에서 각각 운영되는 TA(1120) 및 UA(1110)를 통해 요청된 데이터를 저장할 수 있다. 스토리지 장치(1200)는 TA(1120)를 통해 요청된 데이터를 저장하기 위해 TA(1120)에 할당되는 보안 영역(Secure Area, SA)(1220)과 UA(1110)를 통해 요청된 데이터를 저장하기 위해 UA(1110)에 할당되는 노말 영역(Normal Area, NA)(1210)를 포함할 수 있다. 따라서, 스토리지 장치(1200)는 TA(1120)와 UA(1110)로 분리 운영될 수 있다.
특히, 일 실시예에 따르면, TA(1120)에 할당되는 보안 영역(1220)은 TEE에서 동작하는 TA(1120) 마다 독립적으로 제공될 수 있다. 보안 영역(1220)에 저장되는 데이터는 암호화되어 저장되고, TA(1120)를 통해서만 접근 가능하다.
스토리지 장치(1200) 내에서 TEE를 위해서만 제공되는 보안 영역(1220)은, 프로세서(1100)를 통해 관리될 수 있다.
프로세서(1100)는 보안 영역(1220) 관리를 위한 유저 식별자를 생성할 수 있다. 유저 식별자는 TA(1120) 별로 할당될 수 있다. 즉, 유저 식별자는 TA(1120)에 대하여 유일한(unique) 식별자이다. 프로세서(1100)는 TA(1120) 별로 유일한 유저 식별자를 생성하기 위하여, TA(1120)와 스토리지 장치(1200)와 연관된 정보인 장치 정보를 사용할 수 있다. 장치 정보는 일종의 하드웨어 플랫폼 정보일 수 있고, 하드웨어 의존적인 속성을 가질 수 있다. 예를 들어, 장치 정보는 프로세서(1100)와 연관된 정보 및 스토리지 장치(1200)와 연관된 정보 중 적어도 하나를 포함할 수 있다. 또는, 프로세서(1100)는 TA(1120)와 장치 식별자에 더하여 그 밖에 TA(1120)나 부가 정보(extra information)에 기초하여 유저 식별자를 생성할 수도 있다.
프로세서(1100)는 해쉬 함수에 기초하여 유저 식별자를 생성할 수 있다. 일 예로, 해쉬 함수는 Hash(TA, DeviceInfo)로 정의될 수 있다. 여기서, TA는 트러스티드 어플리케이션과 관련된 정보들, DeviceInfo는 프로세서(1100)와 연관된 정보 및 스토리지 장치(1200)와 관련된 정보들(예를 들어, 장치 식별자 등) 중 적어도 하나를 포함할 수 있다. 또는, 일 예로 해쉬 함수는 Hash(TA, DeviceInfo, extradata)로 정의될 수 있다. 여기서, extradata는 TA나 DeviceInfo를 제외하고 TA(1120)나 스토리지 장치(1200)와 연관된 부가 정보이다.
예를 들어, TA는 TA 헤더 정보 등을 포함할 수 있고, DeviceInfo는 프로세서(1100)와 연관된 정보 및 스토리지 장치(1200)와 연관된 정보 중 적어도 하나를 포함할 수 있다. 예를 들어, 프로세서(1100)와 연관된 정보는 TEE를 제공하며 TA가 구동되는 프로세서(1100)의 고유 정보(예컨대, 프로세서의 제조 번호, 제조사)를 포함할 수 있고, 스토리지 장치(1200)와 연관된 정보는 스토리지 장치(1200)의 고유 번호 등을 포함할 수 있다. 예를 들어, extradata는 TEE를 구동하는 소프트웨어의 버전 정보, TEE를 운영하는 플랫폼의 버전 정보 및 프로세서(1100)나 스토리지 장치(1200)의 드라이버 버전 정보 중 적어도 하나를 포함할 수 있다.
유저 식별자를 TA(1120)와 장치 정보 등을 통해 생성하는 이유는 해당 스토리지 장치(1200)에 저장된 데이터는 다른 스토리지 장치(1200)를 통해 독출되지 않아야 하기 때문이다. 본 발명의 경우, 상술한 실시예들에 따라 유저 식별자는 TA(1120)와 장치 정보를 고려하여 생성되므로, 만약 TA(1120) 및/또는 스토리지 장치(1200)가 변경될 경우 유저 식별자 또한 변경될 것이다. 유저 식별자가 변경되면 해당 유저 식별자는 더 이상 유효하지 않은 것으로 간주될 수 있고, 이에 따라 유저 식별자가 연동된 데이터에 대한 접근이 차단될 수 있다. 따라서, 다른 TA(1120)나 스토리지 장치(1200)로부터 데이터가 보호될 수 있다.
프로세서(1100)는 TA(1120)가 로딩될 때 유저 식별자를 생성할 수 있다. 프로세서(1100)는 로딩되는 TA(1120)와 연관된 정보인 TA 정보(예, TA(1120))와, 해당 TA(1120)를 통해 데이터가 기입 또는 독출될 스토리지 장치(1200)와 연관된 정보(예, DeviceInfo)를 고려하여 유저 식별자를 생성할 수 있다.
프로세서(1100)는 생성한 유저 식별자에 기초하여 TA(1120)로부터 보안 영역(1220)에 대하여 요청되는 데이터를 관리할 수 있다. 일 실시예로, 프로세서(1100)는 특정 TA(1120)가 보안 영역(1220)에 저장하고자 하는 데이터를 <userID, Tag, data>에 기초하여 관리할 수 있다. 여기서, userID는 유저 식별자, Tag는 기입 또는 독출 요청된 데이터를 식별하고 관리하기 위하여 데이터에 태깅되는 정보, data는 기입 또는 독출되는 데이터일 수 있다.
프로세서(1100)는 유저 식별자에 대응되는 TA(1120)가 특정 데이터에 대한 기입이나 독출과 같은 동작을 요청할 경우, 유저 식별자에 기초하여 TA(1120)를 인식하고, 해당 TA(1120)가 요청한 데이터를 태그를 통해 인식할 수 있다. 프로세서(1100)는 유저 식별자에 대응되는 스토리지 장치(1200) 내 보안 영역(1220)에 태그가 태깅된 데이터를 기입하거나, 또는 태그에 기초하여 보안 영역(1220)에서 독출할 데이터를 인식하고 해당 데이터를 독출할 수 있다.
상술한 실시예들에 따르면, 본 발명은 스토리지 장치(1200) 내에서 비-TEE에서 운영되는 UA(1110)를 위한 저장 공간인 노말 영역(1210)과, TA(1120)를 위한 저장 공간인 보안 영역(1220)을 독립적으로 운영할 수 있다. 특히, 본 발명은 보안 영역(1220)의 독립적 운영을 위해 TA(1120)가 보안 영역(1220)에 접근하기 위한 유저 식별자를 생성함으로써 보안 영역(1220)을 관리할 수 있다. 유저 식별자는 TA(1120)와 스토리지 장치(1200)와 연관된 정보를 모두 고려하여 생성됨으로써, TA(1120) 및 스토리지 장치(1200)가 변동될 경우 해당 보안 영역(1220)에 대한 접근이 차단되므로 무결성이 향상될 수 있다.
도 2는 본 발명의 일 실시예에 따른 전자 장치를 보다 상세히 도시한 것이다.
도 2를 참조하면, 프로세서(1100)는 상술한 바와 같이 TEE인 신뢰 영역(이하, TP(1102))과, 비-TEE인 신뢰되지 않는 영역(이하, UP(1101))을 독립적으로 운영할 수 있다. 프로세서(1100)는 TP(1102)와 UP(1101)에 대응되는 가상의 코어를 분할 및 운영할 수 있다.
UP(1101)에서는 하나 이상의 UA(1110)가 동작할 수 있다. UP(1101)는 노말 운영 체제(1130)에 의해 구동되는 시스템 환경일 수 있다. 노말 운영 체제(1130)는 UP(1101)에서의 하드웨어와 소프트웨어를 제어하는 동작을 수행할 수 있다. TP(1102)에서는 하나 이상의 TA(1120)가 동작할 수 있다. 도시되지 않았으나, TP(1102)도 마찬가지로 TP(1102)를 위한 운영 체제인 보안 운영 체제에 의해 구동되는 시스템 환경일 수 있다. 각 영역에서는 TA(1120)와 UA(1110)가 독립적으로 운영될 수 있다.
TP(1102)에서는 TA(1120)를 통해 사용되는 중요 데이터가 암호화되어 스토리지 장치(1200)에 저장될 수 있고, TA(1120)는 스토리지 장치(1200)에 저장된 암호화된 데이터(ED)에 접근할 수 있다. 암호화된 데이터(ED)는 TP(1102) 내에서만 복호화되어 사용될 수 있다.
일 실시예로, TP(1102)와 UP(1101)는 스토리지 장치(1200)를 공유하지 않고, 스토리지 장치(1200) 내에서 분할된 보안 영역(1220)과 노말 영역(1210)을 통해 데이터를 처리할 수 있다. TP(1102)에서 암호화된 데이터(ED)는 보안 영역(1220)에 저장될 수 있고, UP(1101)에서 사용되는 데이터는 노말 영역(1210)에 저장될 수 있다. TA(1120)는 유저 식별자(userID)를 통해 보안 영역(1220)에 접근할 수 있다.
프로세서(1100)는 UA(1110) 또는 TA(1120)를 로딩 및 실행할 수 있다. 프로세서(1100)가 실행 중인 TA(1120)를 통해 요청되는 데이터를 스토리지 장치(1200) 내의 보안 영역(1220)에서 처리하기 위하여는 데이터 전송(Data-in-transit)이 불가피하다.
프로세서(1100)는 데이터 전송 보호를 위한 다양한 동작들을 수행할 수 있다. 실시예들에 따라, 프로세서(1100)는 데이터를 스토리지 장치(1200)와 기입 또는 독출하기 전에, 보안 영역(1220)이 정상적인지, 즉 신뢰 가능한지를 인증서를 통해 검증하는 보안 영역 인증, 스토리지 장치(1200)에 대한 사용자 등록 및 데이터 송수신 시 암호화를 위한 임시 키 교환을 수행할 수 있다.
데이터 전송 보호를 위한 동작들이 완료되면, 프로세서(1100)와 스토리지 장치(1200)는 서로 공통 임시 키를 획득할 수 있다. 프로세서(1100)는 획득한 공통 임시 키에 기초하여 스토리지 장치(1200)와 데이터 기입 또는 독출과 같은 데이터 전송을 수행할 수 있다. TA(1120)는 공통 임시 키에 기초하여 기입 또는 독출되는 데이터를 암호화하여 암호화된 데이터(ED)를 생성할 수 있다.
프로세서(1100)는 TP(1102)의 독립적 운영을 위해, 신뢰 라이브러리(1150)와 제어 모듈(1140)을 포함할 수 있다.
신뢰 라이브러리(1150)는 TP(1102)를 위한 API(Application Programming Interface)(1151)를 제공할 수 있다. API(1151)는 TA(1120)를 실행하는데 사용되는 리소스들을 제어 또는 관리하는 인터페이스일 수 있다. 또한, TA(1120)는 API(1151)를 통해 제어 모듈(1140)에 데이터 기입 또는 독출을 요청할 수 있다.
제어 모듈(1140)은 TA(1120)가 TP(1102)에서 실행되기 위한 다양한 동작들을 제어할 수 있다. 일 실시예로, 제어 모듈(1140)은 TA(1120)와 스토리지 장치(1200)와 연관된 정보에 기초하여 유저 식별자(userID)를 생성할 수 있다. 제어 모듈(1140)은 생성한 유저 식별자(userID)에 기초하여 TA(1120)와 TA(1120)에 대응되는 보안 영역(1220)을 독립적으로 운영 및 관리할 수 있다. 제어 모듈(1140)은 TA(1120)가 로딩될 때, TA(1120)와 연관된 정보와 장치 정보(DI)에 기초하여 유저 식별자(userID)를 생성할 수 있다. 일 실시예로, 제어 모듈(1140)은 유저 식별자(userID) 생성을 위한 장치 정보(DI) 중 스토리지 장치(1200)와 연관된 정보를 스토리지 장치(1200)로부터 수신할 수 있다. 또는, 제어 모듈(1140)은 프로세서(1100)와 연동된 메모리나 버퍼에 저장된 장치 정보(DI)를 활용할 수 있다.
제어 모듈(1140)은 상술한 데이터 전송 보호 동작들을 수행할 때, TA(1120)와 스토리지 장치(1200) 간에 전송되는 암호화된 데이터(ED)를 비롯하여 다양한 정보를 중계할 수 있다. 제어 모듈(1140)은 중계되는 정보에 유저 식별자(userID)를 추가하여 전송할 수 있다.
상술한 실시예들에 따른 TA(1120) 및 제어 모듈(1140)을 통한 보안 영역(1220)에 대한 접근은 UP(1101)를 구동시키기 위한 노말 운영 체제(1130)와는 서로 독립적으로 처리될 수 있다. UA(1110)는 노말 운영 체제(1130)를 통해 UP(1101)에서 동작하면서 스토리지 장치(1200) 내의 노말 영역(1210)에 접근하여 데이터를 처리할 수 있다. TA(1120)는 TA(1120)와 스토리지 장치(1200)에 고유한 유저 식별자(userID)에 기초하여 제어 모듈(1140)을 통해 스토리지 장치(1200) 내의 보안 영역(1220)에 직접 접근하여 데이터를 처리할 수 있다.
상술한 실시예들에 따르면, 본 발명은 UA(1110)를 위한 노말 영역(1210)과 TA(1120)를 위한 보안 영역(1220)이 스토리지 장치(1200) 내에서 분리되고, 분리된 각 영역에 대한 접근이 독립적으로 운영될 수 있다. 특히, TA(1120)는 신뢰 라이브러리(1150)를 통해 제공되는 API(1151)와 제어 모듈(1140)을 통해 TA(1120) 별로 생성된 유저 식별자(userID)에 기초하여, UP(1101)에 포함된 노말 운영 체제(1130) 없이도 보안 영역(1220)에 접근이 가능하다. 따라서, UP(1101)에 대한 의존 없이도 TEE와 보안 영역(1220)의 운영이 가능할 수 있다.
도 3은 본 발명의 일 실시예에 따른 전자 장치의 유저 식별자를 설명하기 위한 것이다.
도 3을 참조하면, 프로세서(1100)를 통해 구동되는 TP(1102)에서, 복수의 TA(1121, 1122, 1123)가 실행될 수 있을 것이다. 복수의 TA(1121, 1122, 1123)는 신뢰 라이브러리(1150)를 통해 제공된 API(1151)를 통해 제어 모듈(1140)에 데이터 기입이나 독출을 요청할 수 있다.
제어 모듈(1140)은 데이터 처리가 요청된 복수의 TA(1121, 1122, 1123) 별로 유저 식별자(userID 1, userID 2, userID 3)를 각각 생성할 수 있다. 예를 들어, 제어 모듈(1140)은 복수의 TA(1121, 1122, 1123) 각각에 고유한 TA 정보와, 장치 정보(DI)에 기초하여 유저 식별자(userID 1, userID 2, userID 3)를 생성할 수 있다.
제어 모듈(1140)은 TA(1121, 1122, 1123)와 스토리지 장치(1200) 간에 전송되는 다양한 데이터를 중계할 수 있다. 예를 들어, 제어 모듈(1140)은 TA(1121, 1122, 1123)가 암호화한 데이터를 스토리지 장치(1200)에 전송할 때, 생성한 유저 식별자(userID 1, userID 2, userID 3)를 부가하여 함께 전송할 수 있다.
스토리지 장치(1200)는 특정 TA(1120)가 요청한 데이터를 각 TA(1121, 1122, 1123)에 대응되는 보안 영역(1220)에 처리할 수 있다. 예를 들어, 스토리지 장치(1200)는 TA 1(1121)이 기입 요청한 데이터를 SA 1에 저장하거나, TA 1(1121)이 독출 요청한 데이터를 SA 1로부터 독출할 수 있다.
각 유저 식별자(userID 1, userID 2, userID 3)는 상술한 실시예들에 따라 TA(1120) 정보와 장치 정보(DI)에 기초하여 생성되므로, TA(1120) 및 스토리지 장치(1200) 중 어느 하나라도 변경될 경우 유저 식별자(userID)에 대응되는 보안 영역(1220)에 대한 접근이 차단될 수 있다.
도 4은 본 발명의 일 실시예에 따른 전자 장치의 데이터 전송 보호를 위한 동작을 도시한 것이다.
도 4을 참조하면, 프로세서(1100)와 스토리지 장치(1200)는 데이터 전송(기입 또는 독출 등)에 앞서 데이터 전송 보호를 위한 동작들을 수행할 수 있다. 각 동작들은 제1 페이즈 내지 제3 페이즈로 분류될 수 있다.
제1 페이즈에서는, 스토리지 장치(1200) 내 보안 영역(1220)에 대한 보안 영역 인증이 수행될 수 있다. TA(1120)는 보안 영역(1220)에 대한 데이터 전송에 앞서 과연 보안 영역(1220)이 신뢰할 수 있는지를 확인하기 위해 제1 페이즈를 수행할 수 있다. 먼저, S1001 단계에서 TA(1120)는 스토리지 장치(1200)에 보안 영역(1220)의 인증을 위한 제1 인증서(CERT 1)를 요청할 수 있다.
스토리지 장치(1200)는 TA(1120)로부터 제1 인증서(CERT 1)에 대한 요청을 수신하면, S1002 단계에서 제1 공개 키(PUBK 1)를 포함하는 제1 인증서(CERT 1)를 TA(1120)에 전송할 수 있다. 또한, 제1 인증서(CERT 1)에는 인증 기관에 대한 정보나, 서명이 포함될 수 있다. 스토리지 장치(1200)는 제1 인증서(CERT 1)에 대한 요청을 수신할 때 제1 공개 키(PUBK 1)를 포함하는 제1 공개 키 쌍을 생성할 수도 있고, 또는 미리 보유하고 있는 제1 공개 키 쌍에 포함된 제1 공개 키(PUBK 1)를 제1 인증서(CERT 1)에 포함시킬 수도 있다. 제1 공개 키 쌍은 제1 공개 키(PUBK 1) 및 제2 개인 키를 포함할 수 있다.
S1003 단계에서 TA(1120)는 스토리지 장치(1200)로부터 제1 인증서(CERT 1)를 수신하면 해당 제1 인증서(CERT 1)가 유효한지 확인할 수 있다. 예를 들어, TA(1120)는 전자 장치(1000)의 외부에 연결된 CA(Certificate Authority)와 같은 인증 엔티티나 인증 네트워크를 통해 제1 인증서(CERT 1)의 유효성을 확인할 수 있다. 따라서, TA(1120)는 제1 인증서(CERT 1)를 통해 데이터를 처리하고자 하는 보안 영역(1220)이 유효한 것인지를 미리 확인할 수 있다.
S1001 단계 내지 S1003 단계는 제1 페이즈 내에서 수행될 수 있다. 제1 페이즈를 통해 보안 영역(1220)에 대한 보안 영역 인증이 완료될 수 있다.
보안 영역 인증이 완료되면, 제2 페이즈에서는 스토리지 장치(1200)에 대한 사용자 등록이 수행될 수 있다.
S1011 단계에서 TA(1120)는 제2 공개 키 쌍(PUBK pair 2)을 생성할 수 있다. 제2 공개 키 쌍(PUBK pair 2)은 제2 공개 키(PUBK 2) 및 제2 개인 키를 포함할 수 있다.
S1012 단계에서 TA(1120)는 스토리지 장치(1200)에 제2 인증서(CERT 2)를 요청하기 위하여, 제어 모듈(1140)에 제2 인증서(CERT 2)에 대한 요청 및 제2 공개 키(PUBK 2)를 전송할 수 있다. 또는, TA(1120)는 제2 공개 키(PUBK 2)와 더불어 TA(1120)에 대한 매니페스트(manifest) 정보를 함께 전송할 수도 있다.
제어 모듈(1140)은 TA(1120)로부터 제2 인증서(CERT 2)에 대한 요청 및 제2 공개 키(PUBK 2)를 수신하고, S1013 단계에서 제2 인증서(CERT 2)에 대한 요청 및 제2 공개 키(PUBK 2)에 유저 식별자(userID)를 더하여 스토리지 장치(1200)에 전송할 수 있다. 유저 식별자(userID)는 해당 TA(1120)가 로딩될 때 제어 모듈(1140)을 통해 생성된 것일 수 있다. 또는, 제어 모듈(1140)은 제2 인증서(CERT 2)에 대한 요청을 수신할 때 유저 식별자(userID)를 생성할 수도 있다.
스토리지 장치(1200)는 제어 모듈(1140)로부터 제2 인증서(CERT 2)에 대한 요청, 제2 공개 키(PUBK 2) 및 유저 식별자(userID)를 수신하고, S1014 단계에서 사용자 등록을 수행할 수 있다. 스토리지 장치(1200)는 제어 모듈(1140)로부터 수신한 유저 식별자(userID)와 제2 공개 키(PUBK 2)에 기초하여 유저 식별자(userID)에 대응되는 TA(1120)에 대한 사용자 등록을 완료할 수 있다.
사용자 등록을 완료한 스토리지 장치(1200)는 S1015 단계에서 유저 식별자(userID)와 제2 공개 키(PUBK 2)에 대한 제2 인증서(CERT 2)를 생성할 수 있다. 제2 인증서(CERT 2)는 제2 공개 키(PUBK 2), 인증 기관에 대한 정보 및/또는 서명이 포함될 수 있다.
S1016 단계에서 스토리지 장치(1200)는 생성한 제2 인증서(CERT 2)를 TA(1120)에 전송할 수 있다. TA(1120)는 스토리지 장치(1200)로부터 제2 인증서(CERT 2)를 수신하면 사용자 등록을 완료할 수 있다. 또한, TA(1120)는 제1 인증서(CERT 1)와 마찬가지로 외부 인증 엔티티나 인증 네트워크를 통해 제2 인증서(CERT 2)의 유효성을 확인할 수 있다.
S1011 단계 내지 S1016 단계는 제2 페이즈 내에서 수행될 수 있다. 제2 페이즈를 통해 사용자 등록이 완료될 수 있다.
사용자 등록이 완료되면, 제3 페이즈를 통해 공개 키 방식 기초의 임시 키 교환이 수행될 수 있다. 임시 키 교환은 스토리지 장치(1200)에 대응되는 제1 공개 키 쌍 및 TA(1120)에 대응되는 제2 공개 키 쌍(PUBK pair 2)에 기초하여 수행될 수 있다.
S1021 단계에서 TA(1120)는 데이터 전송에 사용할 제1 임시 키(ek 1)를 생성할 수 있다. 예를 들어, TA(1120)는 랜덤 키 생성 방식에 기초하여 제1 임시 키(ek 1)를 생성할 수 있다. 제1 임시 키(ek 1)는 TA(1120)가 보안 영역(1220)에 처리하고자 하는 데이터를 암호화하는데 사용되는 일회성의 속성을 가질 수 있다.
S1022 단계에서 TA(1120)는 제1 페이즈에서 획득한 제1 공개 키(PUBK 1)에 기초하여 제1 임시 키(ek 1)를 암호화하고, 암호화된 제1 임시 키(ek 1)와 제1 인증서(CERT 1)를 제어 모듈(1140)에 전송할 수 있다.
S1023 단계에서 제어 모듈(1140)은 TA(1120)로부터 수신한 제1 인증서(CERT 1) 및 암호화된 제1 임시 키(ek 1)에 더하여, 유저 식별자(userID)를 스토리지 장치(1200)로 전송할 수 있다.
제1 인증서(CERT 1) 및 암호화된 제1 임시 키(ek 1)를 수신한 스토리지 장치(1200)는 S1024 단계에서 제1 임시 키(ek 1)에 대응되는 제2 임시 키(ek 2)를 생성할 수 있다. 예를 들어, 스토리지 장치(1200)는 랜덤 키 생성 방식에 기초하여 제2 임시 키(ek 2)를 생성할 수 있다. 제1 임시 키(ek 1)와 마찬가지로 제2 임시 키(ek 2)도 일회성의 속성을 가질 수 있다.
S1025 단계에서 스토리지 장치(1200)는 수신한 암호화된 제1 임시 키(ek 1)를 제1 공개 키(PUBK 1)에 대응되는 제1 개인 키에 기초하여 복호화함으로써 제1 임시 키(ek 1)를 획득할 수 있다. 스토리지 장치(1200)는 제1 임시 키(ek 1)와 제2 임시 키(ek 2)에 기초하여 정의되는 공통 임시 키(eMEK)를 획득할 수 있다. 예를 들어, 스토리지 장치(1200)는 제1 임시 키(ek 1)와 제2 임시 키(ek 2)에 대한 곱셈 연산을 통해 공통 임시 키(eMEK)를 획득할 수도 있고, 또는 그 밖에 제1 임시 키(ek 1)와 제2 임시 키(ek 2)를 포함하는 다양한 연산이나 함수를 통해 공통 임시 키(eMEK)를 획득할 수도 있다.
S1026 단계에서 스토리지 장치(1200)는 S1024 단계를 통해 생성한 제2 임시 키(ek 2)를 TA(1120)로부터 수신한 제2 공개 키(PUBK 2)에 기초하여 암호화하고, 암호화된 제2 공개 키(PUBK 2)를 TA(1120)에 전송할 수 있다.
S1027 단계에서 TA(1120)는 스토리지 장치(1200)로부터 제2 공개 키(PUBK 2)로 암호화된 제2 임시 키(ek 2)를 수신하고, 암호화된 제2 임시 키(ek 2)를 복호화하여 제2 임시 키(ek 2)를 획득할 수 있다. 또한, TA(1120)는 획득한 제2 임시 키(ek 2)와 이미 가지고 있던 제1 임시 키(ek 1)에 기초하여 공통 임시 키(eMEK)를 획득할 수 있다.
S1021 단계 내지 S1027 단계는 제3 페이즈 내에서 수행될 수 있다. 제3 페이즈를 통해 임시 키 교환이 완료될 수 있다. 따라서, TA(1120) 및 스토리지 장치(1200) 각각은 공통 임시 키(eMEK)를 획득할 수 있다. 그렇다면, TA(1120)와 스토리지 장치(1200)는 보안 영역(1220)에 데이터를 처리할 준비를 완료한 것이다.
도 5는 본 발명의 일 실시예에 따른 전자 장치의 데이터 전송 동작의 일 실시예를 도시한 것이다.
도 5를 참조하면, TA(1120) 및 스토리지 장치(1200)가 공통 임시 키(eMEK)를 획득한 상태에서, TA(1120)는 보안 영역(1220) 내에 데이터를 기입하고자 할 수 있다.
먼저, S1031 단계에서 TA(1120)는 공통 임시 키(eMEK)에 기초하여 기입 데이터 및 기입 데이터를 식별하기 위한 제1 태그(tag 1)를 암호화하고, 암호화된 기입 데이터(E(eMEK, data, tag 1))를 제어 모듈(1140)에 전송할 수 있다. 제1 태그(tag 1)는 보안 영역(1220)에 기입된 데이터를 TA(1120) 및 스토리지 장치(1200)가 식별하기 위하여 기입 데이터에 태깅되는 정보이다. TA(1120)는 신뢰 라이브러리(1150)를 통해 제공되는 API(1151)를 사용하여 제어 모듈(1140)에 데이터 기입을 요청할 수 있다.
S1032 단계에서 제어 모듈(1140)은 TA(1120)로부터 수신한 암호화된 기입 데이터 및 제1 태그(E(eMEK, data, tag 1))에 더하여 유저 식별자(userID)를 스토리지 장치(1200)에 전송할 수 있다.
S1033 단계에서 스토리지 장치(1200)는 제어 모듈(1140)로부터 암호화된 기입 데이터 및 제1 태그(E(eMEK, data, tag 1))와 유저 식별자(userID)를 수신하고, 자신이 보유한 공통 임시 키(eMEK)에 기초하여 암호화된 기입 데이터 및 제1 태그(E(eMEK, data, tag 1))를 복호화할 수 있다.
S1034 단계에서 스토리지 장치(1200)는 수신한 유저 식별자(userID)를 확인함으로써 데이터를 기입할 보안 영역(1220)을 식별할 수 있다. 또한, 스토리지 장치(1200)는 제1 태그(tag 1)를 확인함으로써 이미 기입된 태그와 중복되지 않는지 여부를 확인할 수 있다.
S1035 단계에서 스토리지 장치(1200)는 유저 식별자(userID)를 통해 식별된 보안 영역(1220)에 기입 데이터를 제1 태그(tag 1)에 대응시켜 저장할 수 있다.
S1036 단계에서 스토리지 장치(1200)는 데이터가 보안 영역(1220)에 기입이 완료되었음을 나타내는 리턴 신호를 TA(1120)에 전송할 수 있다.
도 6는 본 발명의 일 실시예에 따른 전자 장치의 데이터 전송 동작의 다른 일 실시예를 도시한 것이다.
도 6를 참조하면, TA(1120) 및 스토리지 장치(1200)가 공통 임시 키(eMEK)를 획득한 상태에서, TA(1120)는 보안 영역(1220) 내에 기입되어 있는 데이터를 독출하고자 할 수 있다.
S1041 단계에서 TA(1120)는 공통 임시 키(eMEK)에 기초하여 독출 데이터를 식별하기 위한 제2 태그(tag 2)를 암호화하고, 암호화된 제2 태그(E(eMEK, tag 2))를 제어 모듈(1140)에 전송할 수 있다. 제2 태그(tag 2)는 이미 기입되어 있는 데이터를 독출하기 위하여 데이터에 태깅되어 있는 정보이다. TA(1120)는 신뢰 라이브러리(1150)를 통해 제공되는 API(1151)를 사용하여 제어 모듈(1140)에 데이터 독출을 요청할 수 있다.
S1042 단계에서 제어 모듈(1140)은 암호화된 제2 태그(E(eMEK, tag 2))에 더하여 유저 식별자(userID)를 스토리지 장치(1200)에 전송할 수 있다.
S1043 단계에서 스토리지 장치(1200)는 제어 모듈(1140)로부터 암호화된 제2 태그(E(eMEK, tag 2))와 유저 식별자(userID)를 수신하고, 자신이 보유한 공통 임시 키(eMEK)에 기초하여 암호화된 제2 태그(E(eMEK, tag 2))를 복호화할 수 있다.
S1044 단계에서 스토리지 장치(1200)는 수신한 유저 식별자(userID)를 확인함으로써 데이터를 독출할 보안 영역(1220)을 식별할 수 있다. 또한, 스토리지 장치(1200)는 제2 태그(tag 2)를 확인함으로써 독출할 데이터를 식별할 수 있다.
S1045 단계에서 스토리지 장치(1200)는 제2 태그(tag 2)에 대응되는 데이터를 보안 영역(1220)으로부터 독출할 수 있다. 또한, 스토리지 장치(1200)는 공통 임시 키(eMEK)에 기초하여 제2 태그(tag 2)에 대응되는 독출 데이터를 암호화하여 암호화된 독출 데이터(E(eMEK, data))를 생성할 수 있다.
S1046 단계에서 스토리지 장치(1200)는 암호화된 독출 데이터(E(eMEK, data))를 TA(1120)에 전송할 수 있다.
S1047 단계에서 TA(1120)는 수신한 암호화된 독출 데이터(E(eMEK, data))를 자신이 보유한 공통 임시 키(eMEK)에 기초하여 복호화함으로써 독출 데이터를 획득할 수 있다.
상술한 실시예들에 따라, 본 발명의 전자 장치(1000)는 TEE에서 동작 시에 비-TEE 동작을 위한 노말 운영 체제(1130)와 어떠한 상호 작용도 없이 보안 영역(1220)에 데이터를 기입 또는 독출할 수 있으므로, 노말 운영 체제(1130)에 대한 의존성을 제거할 수 있다. 또한, 보안 영역(1220)에 전송될 데이터 또는 독출된 데이터는 암호화되므로 데이터 전송 도중 공격자가 침입하더라도 보호될 수 있다.
도 7은 본 발명의 일 실시예에 따른 전자 장치의 TA 업데이트 동작을 도시한 것이다.
도 7을 참조하면, 전자 장치(1000)가 TP(1102)에서 동작할 때, TA(1120)에 대한 업데이트가 수행될 수 있다. TA(1120) 업데이트는 이전 버전의 데이터를 유지하면서 TEE의 영구 저장소(1160)에 TA(1120)의 새 버전을 다운로드하는 권한이 부여된 작업으로 정의될 수 있다.
TA(1120)가 업데이트되는 경우, TA(1120)는 먼저 제어 모듈(1140)에 유저 식별자(userID)의 업데이트를 요청할 수 있다. 제어 모듈(1140)은 업데이트 요청을 수신할 경우, 업데이트될 TA(1120)에 대응하여 유저 식별자(userID)를 업데이트할 수 있다. 제어 모듈(1140)은 업데이트된 유저 식별자(userID)를 스토리지 장치(1200)에 통지할 수 있다. 그렇다면, 스토리지 장치(1200)도 마찬가지로 유저 식별자(userID)를 업데이트할 수 있다. 예시적으로, 스토리지 장치(1200)는 상술한 제2 페이즈를 통한 사용자 등록된 유저 식별자(userID)를 업데이트될 TA(1120)에 대응하여 업데이트할 수 있을 것이다.
TA(1120)는 기존의 유저 식별자(userID)를 업데이트될 TA(1120)에 대응하여 업데이트시키는 동작이 완료되면, 최종적으로 트러스티드 어플리케이션을 영구 저장소(1160)에 업데이트할 수 있다. 즉, 실시예에 따르면 TA(1120) 업데이트 시에는 유저 식별자(userID)의 업데이트가 우선시될 수 있다.
도 8은 본 발명의 일 실시예에 따른 전자 장치의 자가 암호화 동작을 도시한 것이다.
도 8을 참조하면, 일 실시예로 전자 장치(2000)에 포함되는 스토리지 장치(2200)는 자가 암호화가 지원되는 자가 암호화 드라이브(self-encrypting drive, SED)일 수 있다. 스토리지 장치(2200)는 내부 암호화(encryption, ENC)/복호화(decryption DEC) 유닛을 포함할 수 있다. 만약, 자가 암호화가 지원될 경우, 실시예에 따라 UA(1110) 또는 TA(1120)가 암호화되지 않은 데이터, 즉 노말 데이터(ND)를 스토리지 장치(2200)로 전송할 수 있다.
ENC/DEC 유닛(2210)은 UA(1110) 또는 TA(1120)를 통해 프로세서(1100)로부터 수신된 노말 데이터(ND)를 암호화 정보를 이용하여 암호화할 수 있다.
예를 들어, 암호화 정보는 패스워드나 PIN(Personal Identification Number) 등과 같이 암호화에 사용되는 다양한 정보를 포함할 수 있다. 예를 들어, 암호화 정보는 UA(1110) 또는 TA(1120)를 통해 사용자로부터 입력되는 정보일 수 있다. ENC/DEC 유닛(2210)은 암호화 정보가 사용자로부터 입력될 경우, 하드웨어 정보(예를 들어, 장치 정보(DI) 등)와 암호화 정보를 이용하여 암호화 키를 생성할 수 있다. ENC/DEC 유닛(2210)은 생성한 암호화 키에 기초하여 노말 데이터(ND)를 암호화할 수 있다.
암호화된 데이터(ED)는 ENC/DEC 유닛(2210)과 연결된 스토리지 장치(2200) 내의 NVM(Non-Volatile Memory)(2200)에 저장될 수 있다.
만약 데이터에 대한 자가 암호화 기능이 지원될 경우, 스토리지 장치(2200)는 상술한 실시예들에 따라 생성된 유저 식별자(userID)를 자가 암호화 기능에 이용되는 암호화 정보로 사용할 수 있다. 이 경우, ENC/DEC 유닛(2210)은 사용자로부터 별도의 암호화 정보를 입력받지 않고 프로세서(1100)로부터 전달받은 유저 식별자(userID)에 기초하여 노말 데이터(ND)를 암호화할 수 있을 것이다.
도 9는 본 발명의 일 실시예에 따른 프로세서의 동작 방법의 순서도이다.
도 9를 참조하면, S1101 단계에서 프로세서(1100)는 TA(1120) 및 장치 정보(DI)에 기초하여 TA(1120)에 할당되는 유저 식별자(userID)를 생성할 수 있다. 예를 들어, 프로세서(1100)는 TA(1120)가 로딩될 때 유저 식별자(userID)를 생성할 수 있다.
S1102 단계에서 프로세서(1100)는 생성한 유저 식별자(userID)에 기초하여 TA(1120)로부터 보안 영역(1220)에 대하여 요청되는 데이터를 관리할 수 있다. 예를 들어, 프로세서(1100)는 특정 TA(1120)가 보안 영역(1220)에 저장하고자 하는 데이터를 유저 식별자(userID), 태그 및 데이터 중 적어도 하나에 기초하여 관리할 수 있다. 프로세서(1100)는 유저 식별자(userID)를 통해 특정 TA(1120)에 대응되는 보안 영역(1220)을 식별할 수 있고, 태그를 통해 기입 또는 독출되는 데이터를 식별할 수 있다.
도 10은 본 발명의 일 실시예에 따른 프로세서의 동작 방법의 순서도이다.
도 10을 참조하면, S1111 단계에서 프로세서(1100)는 보안 영역(1220)에 대한 보안 영역 인증을 수행할 수 있다. 예를 들어, 프로세서(1100)는 스토리지 장치(1200)에 보안 영역(1220)의 인증을 위한 제1 인증서(CERT 1)를 요청할 수 있다. 프로세서(1100)는 스토리지 장치(1200)로부터 제1 인증서(CERT 1)를 수신할 수 있다. 이때, 제1 인증서(CERT 1)는 제1 공개 키 쌍에 포함된 제1 공개 키(PUBK 1)를 포함할 수 있다. 프로세서(1100)는 제1 인증서(CERT 1)의 유효성을 외부 인증 엔티티 등을 통해 확인하고, 유효성이 확인되면 보안 영역 인증을 완료할 수 있다.
S1112 단계에서 프로세서(1100)는 스토리지 장치(1200)에 대한 사용자 등록을 수행할 수 있다. 예를 들어, 프로세서(1100)는 제2 공개 키(PUBK 2) 및 제2 개인 키를 포함하는 제2 공개 키 쌍(PUBK pair 2)을 생성할 수 있다. 프로세서(1100)는 제2 공개 키(PUBK 2) 및 유저 식별자(userID)에 대한 제2 인증서(CERT 2)를 스토리지 장치(1200)에 요청할 수 있다. 프로세서(1100)는 스토리지 장치(1200)로부터 제2 인증서(CERT 2)를 수신할 수 있다. 프로세서(1100)는 제2 인증서(CERT 2)의 유효성을 외부 인증 엔티티 등을 통해 확인하고, 유효성이 확인되면 사용자 등록을 완료할 수 있다.
S1113 단계에서 프로세서(1100)는 스토리지 장치(1200)와 임시 키 교환을 수행하여 공통 임시 키(eMEK)를 획득할 수 있다. 예를 들어, 프로세서(1100)는 제1 임시 키(ek 1)를 생성할 수 있다. 프로세서(1100)는 제1 임시 키(ek 1)를 제1 공개 키(PUBK 1)로 암호화하여 스토리지 장치(1200)에 전송할 수 있다. 암호화된 제1 임시 키(ek 1)는 유저 식별자(userID)와 함께 전송될 수 있다. 프로세서(1100)는 스토리지 장치(1200)로부터 제2 공개 키(PUBK 2)로 암호화된 제2 임시 키(ek 2)를 수신할 수 있다. 프로세서(1100)는 암호화된 제2 임시 키(ek 2)를 복호화하여 제2 임시 키(ek 2)를 획득하고, 제1 임시 키(ek 1) 및 제2 임시 키(ek 2)에 기초하여 공통 임시 키(eMEK)를 획득할 수 있다.
도 11은 본 발명의 일 실시예에 따른 프로세서의 기입 방법의 순서도이다.
도 11을 참조하면, S1121 단계에서 프로세서(1100)는 공통 임시 키(eMEK)에 기초하여 기입 데이터 및 기입 데이터를 식별하기 위한 제1 태그(tag 1)를 암호화할 수 있다.
S1122 단계에서 프로세서(1100)는 암호화된 기입 데이터 및 제1 태그(tag 1)와 함께 유저 식별자(userID)를 스토리지 장치(1200)에 전송할 수 있다. 스토리지 장치(1200)는 임시 키 교환을 통해 프로세서(1100)가 보유한 공통 임시 키(eMEK)를 동일하게 가지고 있을 것이다. 따라서, 스토리지 장치(1200)는 암호화된 기입 데이터 및 제1 태그(tag 1)를 공통 임시 키(eMEK)로 복호화하여 기입 데이터를 획득하고, 획득한 기입 데이터를 제1 태그(tag 1)와 함께 보안 영역(1220)에 저장할 수 있을 것이다.
도 12는 본 발명의 일 실시예에 따른 프로세서의 독출 방법의 순서도이다.
도 12를 참조하면, S1131 단계에서 프로세서(1100)는 공통 임시 키(eMEK)에 기초하여 독출 데이터를 식별하기 위한 제2 태그(tag 2)를 암호화할 수 있다.
S1132 단계에서 프로세서(1100)는 암호화된 제2 태그(tag 2)와 함께 유저 식별자(userID)를 스토리지 장치(1200)에 전송할 수 있다.
S1133 단계에서 프로세서(1100)는 스토리지 장치(1200)로부터 암호화된 독출 데이터를 수신할 수 있다.
S1134 단계에서 프로세서(1100)는 공통 임시 키(eMEK)에 기초하여 암호화된 독출 데이터를 복호화하여 독출 데이터를 획득할 수 있다. 프로세서(1100)는 임시 키 교환을 통해 스토리지 장치(1200)가 보유한 공통 임시 키(eMEK)를 동일하게 가지고 있을 것이다. 따라서, 프로세서(1100)는 암호화된 독출 데이터를 공통 임시 키(eMEK)로 복호화하여 독출 데이터를 획득할 수 있다.
도 13은 본 발명의 다른 일 실시예에 따른 전자 장치를 도시한 것이다.
도 13을 참조하면, 다른 일 실시예에 따른 전자 장치(3000)에 따르면, TP(3102)에서 동작하는 TA(3120)는 호스트에서 구동되는 모듈인 SPH(Service Program Host) 모듈(3121)와 클라이언트에서 구동되는 모듈인 SPC(Service Program Client) 모듈(3122)를 포함할 수 있다.
SPH 모듈(3121)은 호스트와 연관된 서비스를 제공할 수 있다. 예를 들어, SPH 모듈(3121)은 신뢰 라이브러리(1150)를 통해 제공되는 API(1151)를 통해 상술한 실시예들에 따른 데이터 전송 보호를 위한 다양한 동작들과, 데이터 보호를 위한 동작을 통해 획득한 공통 임시 키(eMEK)에 기초하여 스토리지 장치(1200) 내의 보안 영역(1220)에 데이터를 기입 또는 독출하는 동작 등을 수행할 수 있다.
SPC 모듈(3122)은 클라이언트와 연관된 서비스를 제공할 수 있다. 일 실시예로, TA(3120)는 SPC 모듈(3122)을 스토리지 장치(3200) 내 보안 영역(3220)으로 다운로딩시킬 수 있다. 예를 들어, TA(3120)는 외부 플러그인 탑재 기능을 통해 SPC 모듈(3122)을 보안 영역(3220)으로 분리하여 제공할 수 있다.
보안 영역(3220) 내에 제공되는 SPC 모듈(3122)이 제공됨으로써, TA(3120)와 스토리지 장치(3200) 간에는 신뢰 채널(SCH)이 형성될 수 있다. 이후, TA(3120)는 보안 영역(3220)에 저장할 데이터를 처리 또는 가공하여 SPC 모듈(3122)로 전달할 수 있다. SPC 모듈(3122)은 전달된 데이터를 암호화하거나, 또는 데이터를 추가하는 등 다양한 동작을 수행할 수 있다. SPC 모듈(3122)은 최종적으로 생성한 데이터를 보안 영역(3220)에 저장할 수 있다.
일 실시예로, 전자 장치(3000)를 통해 동작하는 TA(3120), SPH 모듈(3121), SPC 모듈(3122) 및 보안 영역(3220) 간에는 상술한 데이터 전송 보호를 위한 동작이 수행될 수 있다. 예를 들어, TA(3120)는 SPH 모듈(3121)을 통해 스토리지 장치(3200)와 보안 영역(3220)에 대한 보안 영역 인증을 수행하거나, 스토리지 장치(3200)에 대한 사용자 등록을 수행하거나, 또는 스토리지 장치(3200)와 임시 키 교환을 수행하여 공통 임시 키(eMEK)를 획득할 수 있다.
일 실시예로, TA(3120) 및 SPH 모듈(3121)은 스토리지 장치(3200) 내의 보안 영역(3220)과 데이터 기입 또는 독출 동작을 수행할 수 있다.
일 실시예로, 제어 모듈(3140)은 TA(3120) 및 SPH 모듈(3121)과 SPC 모듈(3122)을 중계할 수 있다. 제어 모듈(3140)은 인증에 사용되는 유저 식별자(userID)를 생성할 수 있다. 제어 모듈(3140)은 프로세서(3100)는 해쉬 함수에 기초하여 유저 식별자(userID)를 생성할 수 있다. 일 예로, 해쉬 함수는 Hash(SP, DeviceInfo)로 정의될 수 있다. 여기서, SP는 SPH 모듈(3121) 및 SPC 모듈(3122) 중 적어도 하나와 관련된 정보들이고, DeviceInfo는 장치 정보(DI)이다. 또는, 일 예로 해쉬 함수는 Hash(SP, DeviceInfo, extradata)로 정의될 수 있다. 여기서, extradata는 SPH 모듈(3121) 및 SPC 모듈(3122)이나 DeviceInfo를 제외하고 TA(3120)나 스토리지 장치(3200)와 연관된 부가 정보이다. 제어 모듈(3140)은 생성한 유저 식별자(userID)를 중계하는 데이터에 부가하여 스토리지 장치(3200)에 전송할 수 있다.
상술한 실시예들에 따르면, 본 발명은 TA(3120) 내부에 포함되어 데이터의 보안을 담당하는 SPC 모듈(3122)을 보안 영역(3220)으로 분리하여 제공할 수 있다. 따라서, UA(3110)나 TA(3120)가 업데이트되는 경우에도 동일한 서비스 프로그램이 계속적으로 사용 가능할 수 있고, 버전 관리가 편하다는 이점이 있다. 또한, 스토리지 장치(3200)의 제조사는 보안 영역(3220)에 사용에 대한 별도의 서비스를 제공할 수도 있다.
도 14는 본 발명의 일 실시예에 따른 스토리지 시스템을 도시한 것이다.
도 14를 참조하면, 스토리지 시스템(4000)은 호스트 장치(4100) 및 스토리지 장치(4200)를 포함할 수 있다.
호스트 장치(4100)는 스토리지 장치(4200)와 연결되며, 상술한 실시예들에 따라 TEE 또는 비-TEE에서 동작할 수 있다. 호스트 장치(4100)는 TEE로 동작할 때 장치 정보(DI)와 TEE에서 실행되는 TA에 기초하여 유저 식별자(userID)를 생성할 수 있다. 일 실시예로, 호스트 장치(4100)는 유저 식별자(userID) 생성을 위한 장치 정보(DI) 중 스토리지 장치(4200)와 연관된 정보를 스토리지 장치(1200)로부터 수신할 수 있다. 또는, 호스트 장치(4100)는 호스트 장치(4100)의 프로세서와 연동된 메모리나 버퍼에 저장된 장치 정보(DI)를 활용할 수 있다. 호스트 장치(4100)는 생성한 유저 식별자(userID) 및 암호화된 데이터(ED)를 스토리지 장치(4200)에 제공할 수 있다.
스토리지 장치(4200)는 스토리지 컨트롤러(4210) 및 비휘발성 메모리(4220)를 포함할 수 있다.
일 실시예로, 스토리지 장치(4200)는 SSD, UFS 또는 eMMC일 수 있다. 또는, 일 실시예로, 스토리지 장치(4200)는 SD(Secure Digital) 카드, 마이크로 SD 카드, 메모리 스틱(memory stick), 칩 카드(chip card), USB(Universal Serial Bus) 카드, 스마트 카드(smart card), CF(Compact Flash) 카드 또는 이와 유사한 형태로 구현될 수 있으며 상술한 실시예들에 제한되지 않는다.
일 실시예로, 스토리지 장치(4200)는 3.5 인치, 2.5인치, 1.8인치, M.2, U.2, U.3, EDSFF(Enterprise and Data Center SSD Form Factor), NF1(New Form Factor 1) 및/또는 이와 유사한 폼 팩터(form factor)로 구현될 수 있다.
일 실시예로, 스토리지 장치(4200)는 SATA(Small Computer System Interface), SCSI(Small Computer System Interface), SAS(Serial Attached SCSI), 및/또는 이와 유사한 인터페이스로 구현될 수 있고, PCI(Peripheral Component Interconnect), PCIe (PCI express), NVMe (Nonvolatile Memory Express), NVMe-oF (NVMe-over-Fabrics), 이더넷(Ethernet), 인피니밴드(InfiniBand), 파이버채널(Fiber Channel), 및/또는 이와 유사한 프로토콜로 구현될 수 있다.
스토리지 컨트롤러(4210)는 비휘발성 메모리(4220)에 연결되어, 비휘발성 메모리(4220)를 비롯하여 스토리지 장치(4200)의 전반적인 동작을 제어한다.
비휘발성 메모리(4220)는 스토리지 컨트롤러(4210)에 의해 제어된다. 비휘발성 메모리(4220)는 호스트 장치(4100)로부터 전송된 데이터, 스토리지 장치(4200)에 의해 생성된 데이터 또는 그 밖에 스토리지 컨트롤러(4210)에 의해 기입되는 다양한 데이터를 저장할 수 있다. 일 실시예로, 비휘발성 메모리(4220)는 NAND 플래시 메모리, PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 등과 같은 임의의 비휘발성 메모리(4220)일 수 있으며, 이에 제한되지 않는다.
비휘발성 메모리(4220)는 UA를 통해 요청된 데이터가 저장되는 노말 영역(4221) 및 TA를 통해 요청된 데이터가 저장되는 보안 영역(4222)을 포함할 수 있다.
일 실시예로, 스토리지 컨트롤러(4210)는 호스트 장치(4100)로부터 TA에 할당되는 유저 식별자(userID)를 수신하고, 유저 식별자(userID)에 기초하여 TA으로부터 보안 영역(4222)에 대하여 요청되는 데이터를 기입 또는 독출할 수 있다. 유저 식별자(userID)는 TA 및 호스트 장치(4100)에 포함된 프로세서나 스토리지 장치(4200)와 연관된 장치 정보(DI)에 기초하여 생성된 정보일 수 있다.
일 실시예로, 스토리지 컨트롤러(4210)는 호스트 장치(4100)로부터 요청된 데이터를 기입할 수 있다. 예를 들어, 스토리지 컨트롤러(4210)는 호스트 장치(4100)로부터 암호화된 기입 데이터 및 제1 태그와 유저 식별자(userID)를 수신하고, 호스트 장치(4100)와 임시 키 교환을 통해 획득한 공통 임시 키에 기초하여 암호화된 기입 데이터 및 제1 태그를 복호화할 수 있다. 스토리지 컨트롤러(4210)는 복호화를 통해 획득한 기입 데이터를 제1 태그에 대응시켜 유저 식별자(userID)에 대응되는 보안 영역(4222)에 저장할 수 있다.
일 실시예로, 스토리지 컨트롤러(4210)는 호스트 장치(4100)로부터 요청된 데이터를 독출할 수 있다. 예를 들어, 스토리지 컨트롤러(4210)는 호스트 장치(4100)로부터 암호화된 제2 태그와 유저 식별자(userID)를 수신하고, 호스트 장치(4100)와 임시 키 교환을 통해 획득한 공통 임시 키에 기초하여 암호화된 제2 태그를 복호화할 수 있다. 스토리지 컨트롤러(4210)는 복호화를 통해 획득한 제2 태그에 대응되는 독출 데이터를 유저 식별자(userID)에 대응되는 보안 영역(4222)으로부터 독출할 수 있다. 스토리지 컨트롤러(4210)는 독출한 독출 데이터를 암호화하여 암호화된 독출 데이터를 생성하고, 암호화된 독출 데이터를 호스트 장치(4100)에 전송할 수 있다.
도 15는 본 발명의 일 실시예에 따른 모바일 장치를 도시한 것이다.
도 15를 참조하면, 일 실시예에 따른 모바일 장치(5000)는 어플리케이션 프로세서(5100), 통신 장치(5200), 디스플레이/터치 장치(5300), 스토리지 장치(5400), 및 버퍼(5500)를 포함할 수 있다.
어플리케이션 프로세서(5100)는 모바일 장치(5000)의 전반적인 동작을 제어한다. 어플리케이션 프로세서(5100)는 인터넷 브라우저, 게임, 동영상 등을 제공하는 어플리케이션들을 실행할 수 있다. 어플리케이션 프로세서(5100)는 상술한 하나 이상의 UA 및 하나 이상의 TA를 실행할 수 있다. 통신 장치(5200)는 외부와의 유선 통신 및/또는 무선 통신을 제어하도록 구현될 수 있다. 디스플레이/터치 장치(5300)는 어플리케이션 프로세서에서 처리된 데이터를 디스플레이 하거나, 터치 패널로부터 데이터를 입력 받도록 구현될 수 있다. 스토리지 장치(5400)는 사용자의 데이터를 저장하도록 구현될 수 있다.
다양한 실시예들에 따라, 스토리지 장치(5400)는 TEE와 비-TEE에서 각각 운영되는 TA 및 UA를 통해 요청된 데이터를 저장할 수 있다. 예를 들어, 스토리지 장치(5400)는 TA를 통해 요청된 데이터를 저장하기 위해 TA에 할당되는 보안 영역(5420)과 UA를 통해 요청된 데이터를 저장하기 위해 UA에 할당되는 노말 영역(5410)을 포함할 수 있다. 따라서, 스토리지 장치(5400)는 TA와 NA로 분리 운영될 수 있다.
버퍼(5500)는 모바일 장치(5000)의 처리 동작 시 필요한 데이터를 임시로 저장하도록 구현될 수 있다. 예를 들어, 버퍼(5500)는 DDR SDRAM, LPDDR SDRAM, GDDR SDRAM, RDRAM 등과 같은 동적 랜덤 액세스 메모리 일 수 있다.
상술한 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술한 실시 예들 이외에도, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술한 실시 예들에 국한되어 정해져서는 안되며, 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
Claims (10)
- 노말 영역 및 트러스티드 어플리케이션에 할당되는 보안 영역을 포함하는 스토리지 장치; 및
상기 트러스티드 어플리케이션 및 장치 정보에 기초하여 상기 트러스티드 어플리케이션에 할당되는 유저 식별자를 생성하고, 상기 유저 식별자에 기초하여 상기 트러스티드 어플리케이션으로부터 상기 보안 영역에 대하여 요청되는 데이터를 관리하는 프로세서를 포함하고,
상기 장치 정보는 상기 스토리지 장치와 연관된 정보 및 상기 프로세서와 연관된 정보 중 적어도 하나를 포함하는 전자 장치.
- 제1항에 있어서,
상기 프로세서는,
상기 보안 영역에 대한 보안 영역 인증을 수행하고,
상기 보안 영역 인증이 완료되면 상기 스토리지 장치에 대한 사용자 등록을 수행하고,
상기 사용자 등록이 완료되면 상기 스토리지 장치와 임시 키 교환을 수행하여 공통 임시 키를 획득하는 전자 장치.
- 제2항에 있어서,
상기 프로세서는,
상기 스토리지 장치에 대응되는 제1 공개 키 쌍 및 상기 트러스티드 어플리케이션에 대응되는 제2 공개 키 쌍에 기초하여 상기 스토리지 장치와 상기 임시 키 교환을 수행하는 전자 장치.
- 제3항에 있어서,
상기 프로세서는,
상기 스토리지 장치에 상기 보안 영역의 인증을 위한 제1 인증서를 요청하고, 상기 스토리지 장치로부터 상기 제1 인증서를 수신하면 상기 보안 영역 인증을 완료하고,
상기 제1 인증서는 상기 제1 공개 키 쌍에 포함된 제1 공개 키를 포함하는 전자 장치.
- 제3항에 있어서,
상기 프로세서는,
상기 제2 공개 키 쌍을 생성하고, 상기 제2 공개 키 쌍에 포함된 제2 공개 키 및 상기 유저 식별자에 대한 제2 인증서를 요청하고, 상기 스토리지 장치로부터 상기 제2 인증서를 수신하면 상기 사용자 등록을 완료하고,
상기 제2 인증서는 상기 제2 공개 키를 포함하는 전자 장치.
- 제3항에 있어서,
상기 프로세서는,
제1 임시 키를 생성하고, 상기 제1 임시 키를 상기 제1 공개 키로 암호화하여 상기 스토리지 장치에 전송하고, 상기 스토리지 장치로부터 상기 제2 공개 키로 암호화된 제2 임시 키를 수신하고, 상기 암호화된 제2 임시 키를 복호화하여 상기 제2 임시 키를 획득하고, 상기 제1 임시 키 및 상기 제2 임시 키에 기초하여 상기 공통 임시 키를 획득하는 전자 장치.
- 제2항에 있어서,
상기 프로세서는,
상기 공통 임시 키에 기초하여 기입 데이터 및 상기 기입 데이터를 식별하기 위한 제1 태그를 암호화하고, 암호화된 기입 데이터 및 제1 태그와 상기 유저 식별자를 상기 스토리지 장치에 전송하는 전자 장치.
- 제2항에 있어서,
상기 프로세서는,
상기 공통 임시 키에 기초하여 독출 데이터를 식별하기 위한 제2 태그를 암호화하고, 암호화된 제2 태그와 상기 유저 식별자를 상기 스토리지 장치에 전송하고, 상기 스토리지 장치로부터 암호화된 독출 데이터를 수신하고, 상기 공통 임시 키에 기초하여 상기 암호화된 독출 데이터를 복호화하여 상기 독출 데이터를 획득하는 전자 장치.
- 트러스티드 어플리케이션 및 상기 트러스티드 어플리케이션에 할당되는 보안 영역을 포함하는 스토리지 장치와 연관된 정보 및 상기 트러스티드 어플리케이션이 구동되는 프로세서와 연관된 정보 중 적어도 하나를 포함하는 장치 정보에 기초하여 상기 트러스티드 어플리케이션에 할당되는 유저 식별자를 생성하는 단계; 및
상기 유저 식별자에 기초하여 상기 트러스티드 어플리케이션으로부터 상기 보안 영역에 대하여 요청되는 데이터를 관리하는 단계를 포함하는 동작 방법.
- 스토리지 장치에 있어서,
노말 영역 및 트러스티드 어플리케이션에 할당되는 보안 영역을 포함하는 비휘발성 메모리; 및
상기 비휘발성 메모리를 제어하는 스토리지 컨트롤러를 포함하고,
상기 스토리지 컨트롤러는 호스트 장치로부터 상기 트러스티드 어플리케이션에 할당되는 유저 식별자를 수신하고, 상기 유저 식별자에 기초하여 상기 트러스티드 어플리케이션으로부터 상기 보안 영역에 대하여 요청되는 데이터를 기입 또는 독출하고,
상기 유저 식별자는 상기 트러스티드 어플리케이션 및 상기 스토리지 장치와 연관된 정보 및 상기 트러스티드 어플리케이션이 구동되는 프로세서와 연관된 정보 중 적어도 하나를 포함하는 장치 정보에 기초하여 생성된 정보인 스토리지 장치.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230006345A KR20240114206A (ko) | 2023-01-16 | 2023-01-16 | 데이터 격리를 위한 전자 장치 및 그 동작 방법 |
US18/358,597 US20240275588A1 (en) | 2023-01-16 | 2023-07-25 | Electronic device for data isolation and method of operating the same |
CN202311509628.XA CN118350005A (zh) | 2023-01-16 | 2023-11-13 | 用于数据隔离的电子设备及操作其的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230006345A KR20240114206A (ko) | 2023-01-16 | 2023-01-16 | 데이터 격리를 위한 전자 장치 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240114206A true KR20240114206A (ko) | 2024-07-23 |
Family
ID=91818598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230006345A KR20240114206A (ko) | 2023-01-16 | 2023-01-16 | 데이터 격리를 위한 전자 장치 및 그 동작 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20240275588A1 (ko) |
KR (1) | KR20240114206A (ko) |
CN (1) | CN118350005A (ko) |
-
2023
- 2023-01-16 KR KR1020230006345A patent/KR20240114206A/ko unknown
- 2023-07-25 US US18/358,597 patent/US20240275588A1/en active Pending
- 2023-11-13 CN CN202311509628.XA patent/CN118350005A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN118350005A (zh) | 2024-07-16 |
US20240275588A1 (en) | 2024-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102107711B1 (ko) | 처리 시스템에서의 직접 메모리 액세스 인가 | |
US11194920B2 (en) | File system metadata protection | |
US10810138B2 (en) | Enhanced storage encryption with total memory encryption (TME) and multi-key total memory encryption (MKTME) | |
KR102176612B1 (ko) | 보안 서브시스템 | |
KR100678927B1 (ko) | 비보안 영역에 보안 영역을 할당하는 방법 및 이를제공하는 휴대용 저장 장치 | |
US10372628B2 (en) | Cross-domain security in cryptographically partitioned cloud | |
JP2016517241A (ja) | ストレージデバイスによって支援されるインライン暗号化および暗号化解除 | |
JP2008527532A (ja) | 非セキュリティ領域にセキュリティ領域を割り当てる方法及び携帯用保存装置 | |
US20150078550A1 (en) | Security processing unit with configurable access control | |
JP2012089108A (ja) | プロセッサメインメモリのメモリコンテンツのセキュリティ保護 | |
JP2018524722A (ja) | 制御された暗号化鍵管理によってソフトウェアモジュールを隔離する方法のためのメモリキャッシュおよびキャッシュされたソフトウェアモジュール識別情報のセキュア処理 | |
US9881142B2 (en) | Method and apparatus for preventing and investigating software piracy | |
CN113434453A (zh) | 片上系统及其操作方法 | |
US20150227755A1 (en) | Encryption and decryption methods of a mobile storage on a file-by-file basis | |
US11829454B2 (en) | Method and apparatus for preventing and investigating software piracy | |
CN110352411B (zh) | 用于控制对安全计算资源的访问的方法和装置 | |
KR20240114206A (ko) | 데이터 격리를 위한 전자 장치 및 그 동작 방법 | |
JP2020036169A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
WO2022019910A1 (en) | Read protection for uefi variables | |
TWI791995B (zh) | 軟體保護方法及其系統 | |
US20240045933A1 (en) | Method and apparatus for preventing and investigating software piracy | |
US12086076B2 (en) | Computing devices for encryption and decryption of data | |
US20210224098A1 (en) | Method and system for remote terminal access through application of communication module during boot | |
JP5942612B2 (ja) | 情報記憶装置及びそのアクセス判定方法 | |
KR101776845B1 (ko) | 키 조작에 대한 보호 |