KR20160097989A - 전자 장치 및 그것의 데이터 전송 방법 - Google Patents

전자 장치 및 그것의 데이터 전송 방법 Download PDF

Info

Publication number
KR20160097989A
KR20160097989A KR1020150052549A KR20150052549A KR20160097989A KR 20160097989 A KR20160097989 A KR 20160097989A KR 1020150052549 A KR1020150052549 A KR 1020150052549A KR 20150052549 A KR20150052549 A KR 20150052549A KR 20160097989 A KR20160097989 A KR 20160097989A
Authority
KR
South Korea
Prior art keywords
data
key
execution environment
tee
security chip
Prior art date
Application number
KR1020150052549A
Other languages
English (en)
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 삼성전자주식회사
Priority to US15/016,447 priority Critical patent/US20160234176A1/en
Publication of KR20160097989A publication Critical patent/KR20160097989A/ko

Links

Images

Classifications

    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/68Arrangements of detecting, measuring or recording means, e.g. sensors, in relation to patient
    • A61B5/6801Arrangements of detecting, measuring or recording means, e.g. sensors, in relation to patient specially adapted to be attached to or worn on the body surface
    • A61B5/6802Sensor mounted on worn items
    • A61B5/681Wristwatch-type devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • 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
    • H04L9/321Cryptographic 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 a third party or a trusted authority

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Pathology (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Medical Informatics (AREA)
  • Molecular Biology (AREA)
  • Surgery (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 실시 예에 따른 보안 칩을 갖는 전자 장치의 데이터 전송 방법은, 신뢰 실행 환경(trusted execution environment)에서 신뢰 어플리케이션을 실행하는 단계, 상기 신뢰 실행 환경에서 개인 식별 번호를 이용하여 상기 보안 칩에 대한 오너십을 획득하는 단계, 사용자의 개인 정보에 관련된 데이터를 수집하는 단계, 상기 오너십 획득 후에, 상기 보안 칩에서 상기 데이터를 암호화시키는 단계; 및 상기 암호화된 데이터를 외부의 서버로 출력하는 단계를 포함하는 데이터 전송한다.

Description

전자 장치 및 그것의 데이터 전송 방법{ELECTRONIC DEVICE AND DATA TRANSFERRING METHOD THEREOF}
본 발명은 전자 장치 및 그것의 데이터 전송 방법에 관한 것이다.
스마트폰과 같은 모바일 단말기의 경우, 운영체제의 개방성, 누구나 개발하여 참여할 수 있는 공개시장 생태계로 인한 개인정보(예: 주소록, 문자메시지, 금융 정보, 인증서, 개인 건강 정보 등)의 유출 위험성, 악성코드로 인한 단말기 오작동, 과도한 과금 유발 및 이동통신망에 대한 공격 가능성 등 기존 PC 상에서의 보안 위협이 재현될 수 있을 뿐만 아니라 무선 통신 환경에서의 새로운 유형의 보안 위협 요소가 존재하고 있다. 이에, 악의적인 공격에 의한 보안 위협 요소로부터 사용자 및 네트워크의 자산을 보호하기 위해 모바일 환경에서의 신뢰성을 제공할 수 있는 보안 플랫폼 기술이 필요하다. 보안 플랫폼은 스마트폰의 CPU내에 하드웨어적으로 강력한 보안기능을 제공하여 안전한 신뢰 실행 환경(TEE, Trusted Execution Environment)을 제공하는 기술이다.
본 발명의 목적은 보안성을 향상시킨 전자 장치 및 그것의 데이터 전송 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 보안 칩을 갖는 전자 장치의 데이터 전송 방법은, 신뢰 실행 환경(trusted execution environment)에서 신뢰 어플리케이션을 실행하는 단계; 상기 신뢰 실행 환경에서 개인 식별 번호를 이용하여 상기 보안 칩에 대한 오너십을 획득하는 단계; 사용자의 개인 정보에 관련된 데이터를 수집하는 단계; 상기 오너십 획득 후에, 상기 보안 칩에서 상기 데이터를 암호화시키는 단계; 및 상기 암호화된 데이터를 외부의 서버로 출력하는 단계를 포함하는 데이터 전송한다.
본 발명의 실시 예에 따른 전자 장치는, 사용자의 개인 정보에 연관된 데이터를 감지하는 감지 센서; 적어도 하나의 어플리케이션을 실행하는 리치 실행 환경과 상기 리치 실행 환경으로부터 공격에 대한 보안 수준을 제공하고, 상기 감지 센서로부터 상기 데이터를 수집하는 신뢰 어플리케이션을 실행하는 신뢰 실행 환경을 포함하는 어플리케이션 프로세서; 및 상기 신뢰 실행 환경과 개인 식별 번호를 이용하는 보안 프로토콜에 의해 통신하는 보안 칩을 포함하고, 상기 데이터는 상기 보안 칩에 의해 암호화되고, 상기 암호화된 데이터는 외부의 서버로 전송된다.
본 발명의 실시 예에 따른 웨어러블 워치는, 시계 본체; 및 상기 시계 본체를 사용자의 손목에 고정하고, 상기 사용자의 생체 정보 혹은 건강 정보를 감지하는 헬스 센서를 내장하는 시계 밴드를 포함하고, 상기 시계 본체는, 적어도 하나의 어플리케이션을 실행하는 리치 실행 환경; 상기 리치 실행 환경으로부터 공격에 대한 보안 레벨을 제공하고, 상기 헬스 센서로부터 헬스 데이터를 수집하고 헬스케어 어플리케이션을 실행하는 신뢰 실행 환경; 및 상기 신뢰 실행 환경과 개인 식별 번호를 이용하는 보안 프로토콜에 의해 통신하는 보안 칩을 포함한다.
상술한 바와 같이 본 발명에 따른 전자 장치 및 그것의 데이터 전송 방법은, 신뢰 실행 환경 및 보안 칩 사이에서 개인 식별 번호를 이용하는 보안 프로토콜에 의해 보안 채널을 형성함으로써, 간단하면서도 안전한 데이터 전송 채널을 확보할 수 있다.
도 1은 본 발명의 개념을 설명하기 위한 전자 장치를 보여주는 도면이다.
도 2는 발명의 실시 예에 따른 전자 장치의 헬스 데이터 보호 방법을 예시적으로 보여주는 도면이다.
도 3은 본 발명의 실시 예에 따른 TEE와 SE를 이용한 오너십 획득 과정을 예시적으로 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 TEE와 SE를 이용한 인증 및 키 교환을 예시적으로 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 TEE와 SE를 이용한 키 생성 과정을 예시적으로 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 TEE와 SE를 이용한 키 로딩 과정을 예시적으로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 TEE와 SE를 이용한 키 저장 과정을 예시적으로 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 TEE와 SE를 이용한 키 인출 과정을 예시적으로 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따른 TEE와 SE를 이용한 키 제거 과정을 예시적으로 보여주는 도면이다.
도 10은 본 발명의 실시 예에 따른 TEE와 SE를 이용한 서명 생성 과정을 예시적으로 보여주는 도면이다.
도 11은 본 발명의 실시 예에 따른 TEE와 SE를 이용한 서명 검증 과정을 예시적으로 보여주는 도면이다.
도 12는 본 발명의 실시 예에 따른 TEE와 SE를 이용한 HMAC 생성 과정을 예시적으로 보여주는 도면이다.
도 13은 본 발명의 실시 예에 따른 TEE와 SE를 이용한 HMAC 검증 과정을 예시적으로 보여주는 도면이다.
도 14는 본 발명의 실시 예에 따른 TEE와 SE를 이용한 데이터 암호 과정을 예시적으로 보여주는 도면이다.
도 15는 본 발명의 실시 예에 따른 TEE와 SE을 이용한 데이터 복호 과정을 예시적으로 보여주는 도면이다.
도 16은 본 발명의 실시 예에 따른 TEE와 SE를 이용한 난수 생성 과정을 예시적으로 보여주는 도면이다.
도 17은 본 발명의 실시 예에 따른 웨어러블 워치를 예시적으로 보여주는 도면이다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다.
상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 혹은 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 혹은 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다. 본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함하다" 혹은 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 혹은 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 혹은 이들을 조합한 것들의 존재 혹은 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 개념을 설명하기 위한 전자 장치(100)를 보여주는 도면이다. 도 1을 참조하면, 전자 장치(100)는 서버(300)와 보안 채널을 통하여 통신을 수행할 수 있다. 여기서 보안 채널은 TEE(trusted execution environment, "신뢰 실행 환경", 114)와 SE(secure element, "보안 칩")에 의해 형성될 수 있다.
전자 장치(100)는, 예를 들어, 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동전화기(mobile phone), 화상전화기, 전자북 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 전자 팔찌, 전자 목걸이, 전자 앱세서리(appcessory), 카메라(camera), 웨어러블 장치(wearable device), 전자 시계(electronic clock), 손목 시계(wrist watch), 가전 제품(home appliance)(예: 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기 등), 인공 지능 로봇, TV, DVD(digital video disk) 플레이어, 오디오, 각종 의료기기(예: MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 초음파기 등), 네비게이션(navigation) 장치, GPS 수신기(global positioning system receiver), EDR(event data recorder), FDR(flight data recorder), 셋톱 박스(set-top box), TV 박스(예를 들면, 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 전자 사전, 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(electronic equipment for ship, 예를 들면, 선박용 항법 장치, 자이로콤파스 등), 항공 전자기기(avionics), 보안 기기, 전자 의복, 전자 키, 캠코더(camcorder), 게임 콘솔(game consoles), HMD(head-mounted display), 평판표시장치(flat panel display device), 전자 액자, 전자 앨범, 통신 기능을 포함한 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 서명 입력장치(electronic signature receiving device) 혹은 프로젝터(projector) 등의 다양한 장치들 중 하나 혹은 그 이상의 조합일 수 있다. 아래에서는 설명의 편의를 위하여 전자 장치(100)가 웨어러블 장치라고 하겠다. 하지만, 본 발명이 웨어러블 장치에 제한되지 않는다고 이해되어야 할 것이다.
전자 장치(100)는 어플리케이션 프로세서(110), 적어도 하나의 보안 칩(secure element, SE, 120), 및 적어도 하나의 헬스 센서(130)를 포함한다.
어플리케이션 프로세서(110)는, 리치 OS(rich operating system, 112, 혹은 "REE"(rich execution environment, "리치 실행 환경")), TEE(trusted execution environment,"신뢰 실행 환경" 114), 적어도 하나의 어플리케이션(APP(s), 116)을 포함할 수 있다.
리치 OS(112)는 적어도 하나의 어플리케이션(116)을 실행하는 다양성과 풍부함을 위한 환경이다. 예를 들어, 리치 OS(112)는, 안드로이드(Android), 안드로이드웨어(Android Wear), 심비안(Symbian) OS, 윈도우(windows), 타이젠(Tizen) 등 일 수 있다. 실시 예에 있어서, 리치 OS(112) 는 장치를 제조한 후에 써드 파티(third party)로부터 다운로드 될 수 있다.
TEE(114)는, 하드웨어, 소프트웨어, 혹은 펌웨어로 구성되고, 리치 OS(112)에서 생성되는 소프트웨어 공격으로부터 보호 수준을 제공한다. TEE(114)는 리치 OS(112)로부터 격리될 필요가 있는 민감한 어플리케이션, 즉, 적어도 하나의 신뢰(trusted) 어플리케이션(115)의 억세스 및 실행을 제어할 수 있다. 또한, TEE(114)는 적어도 하나의 신뢰 어플리케이션(TAPP(s), 115)를 포함할 수 있다.
신뢰 어플리케이션(115)은, 헬스 센서(130)로부터 제공된 헬스 데이터를 입력 및 처리하고, 관련 헬스 데이터를 보안 채널을 통하여 외부의 서버(300)로 전송할 수 있다. 다른 실시 예에 있어서, 신뢰 어플리케이션(115)은 보안을 필요로 하는 보안 어플리케이션(DRM(digital right management), bank, payment, corporate 등) 일 수 있다. 여기서 보안 채널은 신뢰 어플리케이션(115)과 서버(300) 사이에 직접적으로 형성되는 것이 아니라, SE(secure element, 120)을 통하여 사용자 인증을 수행한 뒤, 형성될 수 있다. 또한, 보안 채널을 통하여 전송되는 헬스 데이터는, SE(120)를 통하여 암호화 될 수 있다.
SE(120)는, 소프트웨어 및 변조 방지 하드웨어(tamper resistant hardware)로 구성되고, 높은 수준의 보안을 허용하고, TEE(114)에 협력하여 작업할 수 있다. SE(120)는 운영 체제인 Native OS, 내부의 데이터 저장소인 보안 저장 장치, SE(120)에 접근 권한을 제어하는 접근 제어 블록, 오너십 관리(ownership management), 키 관리(key management), 디지털 서명(digital signature), 암호/복호 등을 수행하는 보안 기능 블록과 SE(120)의 펌웨어를 업데이트하기 위한 펌웨어 업데이트 블록을 포함할 수 있다.
SE(120)는, 예를 들어, UICC(universal IC card, 예, USIM, CSIM, ISIM), SIM(subscriber identity module) 카드, eSE(embedded secure elements), MicroSD, Stikers 등 일 수 있다. 실시 예에 있어서, SE(120)는 PIN(personal identification number, "개인 식별 번호")를 이용한 보안 프로토콜에 의해 TEE(114)와 통신할 수 있다. 즉, 전자 장치(120)의 사용자가 알고 있는 PIN에 의하여 보안 프로토콜이 활성화 될 수 있다. 하지만, 본 발명의 보안 프로토콜이 여기에 제한되지는 않다고 이해되어야 할 것이다. 본 발명의 보안 프로토콜은, 전자 장치(100)의 사용자의 신체 정보(예, 지문, 홍채, 등)을 이용하여 통신하도록 구현될 수 있다.
헬스 센서(130)는 적어도 하나의 사용자로부터 생체 정보 혹은 건강 정보(이하, "헬스 데이터")를 감지하도록 구현될 수 있다. 예를 들어, 헬스 센서(130)는, 심박, 혈관의 산소 농도, 체온 감지, 혈압, 혈당, 혹은 체지방 등을 감지할 수 있다. 도 1에 도시된 헬스 센서(130)는 전자 장치(100)에 포함되지만, 본 발명이 반드시 여기에 제한되지 않을 것이다. 헬스 센서는 전자 장치(100)의 외부에 존재하는 장치일 수도 있다고 이해될 것이다. 이때 헬스 센서에서 측정한 헬스 데이터는 다양한 무선/무선 통신을 통하여 전자 장치(100)로 전송될 수 있다.
한편, 도 1에서는 헬스 센서(130)는 사용자의 생체 정보 혹은 건강 정보를 감지한다. 하지만, 본 발명의 반드시 사용자의 생체 정보 건강 정보를 감지하는 센서를 구비할 필요는 없다. 선택적으로, 도 1의 헬스 센서(130)를 대신하여 사용자의 개인 정보에 연관된 데이터를 감지 및/혹은 출력하는 어떠한 종류의 감지 센서가 이용될 수 있다.
서버(300)는 사용자의 헬스 데이터를 저장, 분석, 피드백을 통하여 사용자의 헬스 데이터를 관리하고, 필요시 의사 혹은 약사에게 헬스 데이터를 제공하도록 구현될 수 있다.
본 발명의 전자 장치(100)는, TEE(115)와 SE(120) 사이의 개인 식별 번호(PIN)를 이용한 간단한 보안 프로토콜을 이용한 인증을 수행한 뒤에 보안 채널을 형성하고, 형성된 보안 채널을 통하여 암호화된 헬스 데이터를 안전하게 외부의 서버(300)로 전송할 수 있다.
도 2는 발명의 실시 예에 따른 전자 장치(100)의 헬스 데이터 보호 방법을 예시적으로 보여주는 도면이다. 사용자는 전자 장치(100)에 초기 사용 등록 수행한다. 오너십(ownership)이 결정된다. 여기서 오너십은 일종의 SE(120)에 대한 사용 권한일 수 있다. 사용자는 전자 장치(100)의 헬스 관련된 신뢰 어플리케이션(115)을 실행한다. 헬스 센서(130)에서 측정한/감지한 헬스 데이터(혹은, 개인 정보에 연관된 데이터)가 수집된다. 사용자의 헬스 데이터는 TEE(114)에서 암호화 되고, 게이트 웨이(예를 들어, 스마트폰, WiFi Access Point, 유선 공유기 등 이동 통신이나 광대역 네트워크를 통해 인터넷 접속을 가능하도록 지원해 주는 장치)를 거쳐서 서버(300)로 전송될 수 있다.
TEE(114)에서 헬스 데이터 암호화 시 암호 키(encryption key)는, SE(120)에 안전하게 보호될 수 있다. 사용자의 헬스 데이터에 대하여 SE(120)와의 보안 프로토콜을 통해서 암/복호, 키 생성 및 저장, 서명 생성 및 검증 등 보안 연산이 수행될 수 있다.
본 발명의 실시 예에 따른 헬스 데이터 보호 과정은 다음과 같이 진행된다. 전자 장치(100)에서 신뢰 어플리케이션(115)이 실행된다. 전자 장치(100)에서 강화된 보안(security)를 제공받기 위해서 SE(120)에서 사용자 등록(registration) 수행된다. 이때 사용자 등록은 PIN(personal identification number, "개인 식별 번호")의 입력으로 이루어질 수 있다. 여기서 PIN은 트러스트(Trust) UI(user interface, 예를 들어, 키패드, 스크린)를 통해서 안전하게 입력될 수 있다. 이후 PIN을 기반으로 SE(120)은 사용자에 대응하는 루트 키(root key)를 생성한다. SE(120)는 사용자의 PIN를 사전에 저장해 놓고 있으며, PIN 검증을 통하여 사용자에게 오너십(ownership)을 줄 수 있다.
TEE(114)는 SE(120)와 인증 및 키 교환 절차를 수행한다. TEE(114)와 SE(120) 사이에 내부적인 보안 채널이 형성된다. 여기서 보안 채널이 형성되었다는 것은, TEE(114)와 SE(120) 사이에 공유된 세션 키(session key, SK)를 데이터를 전송하는 것을 의미할 수 있다. TEE(114)는, 외부 공격으로부터 안전하게 보안 채널을 통해서 하드웨어적으로 안전한 SE(120)에 접근할 수 있다. TEE(114)는 SE(120)로부터 하드웨어적으로 안전한 난수(random number; RAND)를 생성하고, 난수(RAND)를 기반으로 사용자 헬스 데이터 보호를 위한 키(EHRK)를 생성한다. TEE(114)에서 생성된 키(EHRK)는 SE(120)에 안전하게 저장된다.
헬스 센서(130)는 사용자의 건강 상태를 체크하고, 생성된 헬스 데이터를 TEE(114)로 전송한다. 이때 사용자의 헬스 데이터는 안전하게 전자 장치(100)의 TEE(114)에서 수집될 수 있다.
TEE(114)에 안전하게 수집된 사용자의 헬스 데이터의 보안을 위해서, TEE(114)는 SE(120)에 저장한 키(EHRK)를 TEE(114)에서 사용하기 위하여 가져온다. 수집된 사용자의 헬스 데이터는 SE(120)에서 생성된 암호화 키(EHRK)를 통해서 헬스 데이터를 암호화 후에 헬스 데이터 관리를 위한 서버(300)로 안전하게 전송될 수 있다. 즉, 보안 채널을 통하여 헬스 데이터가 외부의 서버(300)로 전송될 수 있다.
도 3은 본 발명의 실시 예에 따른 TEE(114)와 SE(120)를 이용한 오너십 획득 과정을 예시적으로 보여주는 도면이다. TEE(114)와 SE(120) 사이의 보안 프로토콜은, RS232, I2C, SPI, ISO 7816 등 다양한 통신 인터페이스를 통하여 구현될 수 있다.
사용자가 SE(120) 사용을 위한 오너십을 얻는 과정은 다음과 같다. 사용자가 SE(120)에 안전하게 비밀 정보(credential or secret)을 저장하기 위해서는 SE(120)으로부터 권한을 획득해야 한다. SE(120)의 사용 권한을 획득하는 절차가 테이크 오너십(take ownership)이다. 사용자는 전자 장치(100)의 외부 공격으로부터 안전하게 보호된 트러스트 UI를 이용하여 PIN을 입력한다. SE(120)는 사용자의 PIN에 대응하는 스토리지 루트 키(storage root key, SRK)를 생성할 수 있다.
사용자의 SE(120) 사용에 대한 오너십이 결정되면, TEE(114)는 SE(120)의 공개키(예를 들어, RSA 2048 공개키)를 요청한다. 여기서 SE(120)의 공개키는, 오너십 인증 데이터(OwnerAuth)를 암호화시키는데 필요하다. 여기서, OwnerAuth는 트러스트 UI로부터 입력받은 사용자의 PIN을 해쉬 함수(예, SHA(secure hash algorithm)-256)에 의하여 해쉬된 값일 수 있다. 여기서 해쉬 함수는 임의 길이의 정보를 입력 받고, 고정된 길이의 해쉬 값을 출력한다. 한편, 해쉬 함수는 SHA-256으로 제한되지 않고, SHA-1, SHA-512 등 일반적으로 안전한 해쉬 함수가 이용될 수 있다.
다음으로, SE(120)는 TEE(114)의 공개키 요청에 응답하여 SE(120)의 공개키(예, RSA 2048 공개키)를 TEE(114)로 전송한다. 예를 들어, SE(120)의 공개키는 256 바이트 모듈러스(modulus, m)와 지수(exponent(e), 예를 들어 "0x010001"로 고정) 형태로 전송될 수 있다.
이 후에, TEE(114)는 SE(120)로부터 공개키를 수신한 후에 OwnerAuth를 암호화시킨다. 이때, 공개키 암호 알고리즘은 RSA-OAEP v2.2이 사용될 수 있다.
이 후에, TEE(114)의 오너십 요청이 이루어진다. TEE(114)는 SE(120) 내부의 난수 생성기를 통해서 생성한 난스(Nonce, 임의의 값)와 OwnerAuth를 SE(120)의 공개키로 RSA 암호화시킨 값(EncOA)를 SE(120)로 전송한다.
이 후에, 오너십 요청을 수신한 SE(120)는 EncOA를 SE(120)의 개인키를 사용하여 복호화한다. 여기서, OwnerAuth값은 SE(120)의 보안 저장 장치(예, secure NVRAM)에 안전하게 저장될 수 있다. SE(120)는 난수 생성기를 통해서 스토리지 루트 키(SRK)를 생성하고, 이를 SE(120)의 보안 저장 장치(secure NVRAM)에 안전하게 저장한다.
도 4는 본 발명의 실시 예에 따른 TEE(114)와 SE(120)를 이용한 인증 및 키 교환을 예시적으로 보여주는 도면이다.
TEE(114)와 SE(120) 사이의 보안 채널 설정을 위해서 인증 및 키 교환(Authentication & Key Exchange; AKE) 절차가 수행된다. AKE 절차 수행 후에, TEE(114)와 SE(120) 사이에는 공유된 세션 키(session key, SK)가 형성된다. 세션 키(SK, 예를 들어 128 비트 symmetric key)를 통해서 암호화키(ciphering key,CK), 무결성 키(integrity key, IK)를 유도될 수 있다. 여기서 암호화키(CK)는 보안 채널을 암호화시킬 때 사용되고, 무결성 키(IK)는 보안 채널 사이의 송수신 메시지의 무결성 검증을 위해 사용될 수 있다.
TEE(114)의 인증 요청은 다음과 같이 진행된다. TEE(114)는 난수 생성기를 통해서 NonceAP와 SaltAP를 생성하고, 세션 키(SK) 생성될 때까지 저장하고 있다. 여기서 SaltAP는 랜덤 데이터로써 세션 키(SK) 생성시 OwnerAuth와 연접(concatenation)되어, 해쉬 함수의 입력으로 사용될 수 있다. 이는 세션 키(SK)의 신선도(freshness)를 증가시켜 준다.
SE(120)의 인증 요청에 대한 응답은 다음과 같이 진행된다. SE(120)는 인증 요청을 수신 후, 수신된 SaltAP를 세션 키(SK) 생성을 위해 저장하고, ResNonceAP (예, SHA-256(OwnerAuth | NonceAP) 를 생성한다. SE(120)는 난수 생성기를 통해서 NonceSE와 SaltSE를 생성하고, 세션 키(SK)를 생성할 때까지 이것을 저장한다.
이후, SE(120)는 인증 요청에 대한 응답을 TEE(114)로 전송한다. 인증 응답(authentication response)은 Status(Authentication Request 처리 결과), ResNonceAP, NonceSE, SaltSE를 포함할 수 있다.
TEE(114)와 SE(120) 사이의 키 교환 과정은 다음과 같이 진행된다. TEE(114)는 SE(120)로부터 인증 응답을 수신 후, 트러스트 UI를 통해서 사용자로부터 PIN을 입력 받은 후 OwnerAuth (= SHA-256(PIN)) 계산한다. TEE(114)는 ResNonceAP를 계산한 후, SE(120)로부터 수신한 ResNonceAP와 동일한 값인지 검증함으로써, SE(120)에 대한 인증을 수행한다.
TEE(114)는 OwnerAuth와 SaltSE를 저장한다. 실시 예에 있어서, TEE(114)는 세션 키(SK)를 생성할 때까지 OwnerAuth와 SaltSE를 저장할 수 있다. 또한, TEE(114)는 ResNonceSE(예, SHA-256(OwnerAuth | NonceSE))를 생성한다. 실시 예에 있어서, TEE(114)는 키 교환 요청을 전송할 때까지 ResNonceSE를 저장할 수 있다.
SE(120)에 대한 인증이 성공적으로 수행된 후, 세션 키(SK)가 생성된다. 예를 들어, 세션 키(SK)는 SHA-256(OwnerAuth | SaltSE | SaltAP) 이고, 암호화키(CK)는 세션 키(SK)의 처음 128 비트이고, 무결성 키(IK)는 세션 키(SK)의 마지막 128 비트일 수 있다. TEE(114)는 키 교환 요청을 SE(120)로 전송한다. 여기서 키 교환 요청은 ResNonceSE를 포함할 수 있다.
SE(120)의 키 교환 응답은 다음과 같이 진행된다. SE(120)는 TEE(114)로부터 키 교환 요청을 수신 후, 저장되어 있는 OwnerAuth를 SE(120) 내부의 RAM(random access memory) 상에 로드한다. SE(120)는 ResNonceSE (예, SHA-256(OwnerAuth | NonceSE)) 값이 올바른지 확인하고, TEE(114)의 사용자를 인증한다. 만일, 사용자 인증이 성공하면, SE(120)는 세션 키(SK)를 생성한다. 예를 들어, 세션 키(SK)는 SHA-256(OwnerAuth | SaltSE | SaltAP) 이고, 암호화키(CK)는 세션 키(SK)의 처음 128 비트이고, 무결성 키(IK)는 세션 키(SK)의 마지막 128 비트일 수 있다.
세션 키(SK)가 성공적으로 생성 된 후, SE(120)는 키 교환 응답을 TEE(114)로 전송한다. 키 교환 응답은 세션 키(SK) 생성을 포함하고, 키 교환 요청이 성공적으로 수행되었는지 여부에 대한 상태(Status)를 포함할 수 있다.
도 5는 본 발명의 실시 예에 따른 TEE(114)와 SE(120)를 이용한 키 생성 과정을 예시적으로 보여주는 도면이다.
TEE(114)는 SE(120)에서 키 생성을 요청한다. 예를 들어, SE(120)는 생성 가능한 키는 RSA 1024/2048 비트, AES 128/256 비트, HMAC 128/256 비트 등의 키 생성할 수 있다. 또한, 생성된 키는 SE(120) 내부에(internal) 저장되거나, SE(120)의 스토리지 루트 키(SRK)로 암호화 후, SE(120)의 외부에(external) 저장되거나(External), 세션 키(SK)로 저장 후 SE(120)의 외부에(outside, TEE(114) 외부) 저장이 가능하다. 실시 예에 있어서, 키의 저장 장소(internal device(SE), external device(TEE, outside of SE), outside device(outside of TEE))는, 사용자 요청 혹은 사용 환경에 적합하도록 결정될 수 있다.
TEE(114)의 키 생성 요청을 다음과 같이 진행된다. TEE(114)는 SE(120)에서 생성할 키의 종류(KeyType)와 키 저장 방식(KeyAttribute)에 따라 키 생성 요청 메시지를 생성한다. 요청 메시지는 키라벨(KeyLabel)이 포함될 수 있다. 여기서 KeyLabel은 TEE(114)에서 키를 나타내는 유일한 값이다.
SE(120)의 키 생성 응답은 다음과 같이 진행된다. SE(120)는 키 생성 요청을 수신한 후, KeyType에 따라서 RSA Key Pair(공개키, 개인키 쌍), AES Key, HMAC Key 등을 생성할 수 있다. Key Attribute에 따라서 생성된 키의 저장 옵션이 결정될 수 있다. 만일, Key Attribute가 내부 장치를 지시할 때(Internal (0x00))일 경우, 키는 SE(120)의 Shielded Location에 저장될 수 있다. 만일, Key Attribute가 외부 장치(External (0x01))일 경우, 키는 SE(120)의 외부, 즉 TEE(114)에 저장될 수 있다.
도 6은 본 발명의 실시 예에 따른 TEE(114)와 SE(120)를 이용한 키 로딩 과정을 예시적으로 보여주는 도면이다. TEE(114)는 SE(120)에 저장된 키를 사용하여 암호/복호/서명/HMAC 등의 암호 연산을 수행할 수 있다. 이 때문에 SE(120)의 RAM(random access memory)상에 사용 예정인 키를 로딩해야 한다. 이때 키 로딩 과정이 사용된다.
TEE(114)의 키 로딩 요청은 다음과 같이 진행된다. TEE(114)는 SE(120)에 키 로딩하기 위해서 키 로딩 요청을 전송한다. 요청 메시지는, 내부 키(internal key)의 경우 KeyLabel를 포함하고, 외부 키(external key) 혹은 외부 전송키(outside key)의 경우, 키 블록의 길이(LKB)를 포함할 수 있다.
SE(120)의 키 로딩 응답은 다음과 같이 진행된다. SE(120)는 키 로딩 요청을 수신 후에, 해당 키를 RAM상에 로딩한다. 만일, 요청된 키가 내부 키의 경우, KeyLabel에 해당되는 키는 SE(120)의 Shielded location으로부터 꺼내서 RAM 상에 로딩된다. 만일, 요청된 키가 외부 키 혹은 외부 전송 키의 경우, KeyBlob에 포함된 키가 SE(120)의 RAM 상에 로딩 된다.
SE(120)는 요청된 키를 RAM에 로딩 한 후, TEE(114)로 키 로딩 응답을 전송한다. 키 로딩 응답은 처리 결과 상태(Status)와 로딩된 키를 포함할 수 있다.
도 7은 본 발명의 실시 예에 따른 TEE(114)와 SE(120)를 이용한 키 저장 과정을 예시적으로 보여주는 도면이다. TEE(114)는 SE(120)의 조작 방지(tamper resistant) 보안 영역, 즉 보안 저장 장치(secure storage)에 TEE(114) 및 TEE(114) 외부에서 생성한 키를 안전하게 저장할 수 있다. 키 저장 요청/응답을 통해서 TEE(114)는 SE(120)에 키를 안전하게 저장할 수 있다.
TEE(114)의 키 저장 요청은 다음과 같이 진행된다. TEE(114)는 SE(120)로 키 저장 요청을 전송한다. 키 저장 요청 메시지는 SE(120)에 저장 원하는 키의 KeyLabel, KeyType RSA 1024/2048, AES 128/256, HMAC 128/256 등), 키를 포함할 수 있다.
SE(120)의 키 저장 응답은 다음과 같이 진행된다. SE(120)는 TEE(114)로부터 키 저장 요청을 수신한 후 SE(120)내 물리적으로 안전한 보안 영역(예를 들어, NVRAM)에 해당 키를 저장한다. SE(120)는 키를 안전하게 저장한 후 처리 결과를 알리기 위한 키 저장 응답을 TEE(114)로 전송한다.
도 8은 본 발명의 실시 예에 따른 TEE(114)와 SE(120)를 이용한 키 인출 과정을 예시적으로 보여주는 도면이다. TEE(114)는 SE(120)의 조작 방지 저장 장치에 TEE(114) 및 TEE(114) 외부에서 생성한 키를 안전하게 저장한 후, 저장된 키를 사용하기 원할 때, 키 인출 요청/응답(key retrieval request/response)를 통해서 SE(120)에 저장된 키를 안전하게 TEE(114)로 가져올 수 있다.
 TEE(114)의 키 인출 요청은 다음과 같이 진행된다. TEE(114)는 SE(120)로 키 인출 요청을 전송한다. 키 인출 요청 메시지는 SE(120)에 저장된 키의 KeyLabel을 포함할 수 있다.
SE(120)의 키 인출 응답은 다음과 같이 진행된다. SE(120)는 TEE(114)로부터 키 인출 요청을 수신한 후, SE(120)내 물리적으로 안전한 보안 영역에서 KeyLabel에 해당되는 키 값을 확인한다. SE(120)는 보안 영역에서 확인한 키 값을 안전하게 TEE(114)로 전송하기 위해서 KeyRetrievalResponse를 생성하고, KeyRetrieval 결과 및 키를 포함한 응답을 TEE(114)로 전송한다.
도 9는 본 발명의 실시 예에 따른 TEE(114)와 SE(120)를 이용한 키 제거 과정을 예시적으로 보여주는 도면이다. TEE(114)는 SE(120)의 조작 방지 저장 장치에 TEE(114) 및 TEE (114) 외부에서 생성한 키를 안전하게 저장한 후, 해당 키의 사용 기간 만료, 키 갱신 등의 이벤트 생성 시 키를 삭제할 수 있다. 키 제거 요청/응답(key removal request/response)를 통해서 TEE(114)는 SE(120)에 저장된 키를 안전하게 삭제할 수 있다.
TEE(114)의 키 제거 요청은 다음과 같이 진행된다. TEE(114)는 SE(120)로 키 제거 요청을 전송한다. 키 제거 요청 메시지는 SE(120)에 저장된 키의 KeyLabel과 KeyAttribute(Internal, External)을 포함한다. 여기서, KeyAttribute가 Internal의 경우, SE(120)에 의해서 생성된 키를 나타내고, KeyAttribute가 External의 경우, TEE(114)에 의해서 생성된 키를 나타낸다.
SE(120)의 키 제거 응답은 다음과 같이 진행된다. SE(120)는 TEE(114)로부터 키 제어 요청을 수신한 후, SE(120)내 물리적으로 안전한 보안 영역에서 KeyLabel에 해당되는 키 값을 삭제한다. SE(120)는 보안 영역에서 안전하게 삭제하고 키 제거 응답을 생성하고, Key Removal 결과를 포함한 응답을 TEE(114)로 전송한다.
도 10은 본 발명의 실시 예에 따른 TEE(114)와 SE(120)를 이용한 서명 생성 과정을 예시적으로 보여주는 도면이다.  TEE(114)는 SE(120)에서 데이터의 해쉬값에 대한 서명 생성을 요청한다. SE(120)는 데이터에 대한 서명값(PKCS #1 RSA_PSS)을 생성한다. 키 로딩 명령을 통해서 RSA 1024/2048 키가 미리 로딩되어 있다.
TEE(114)의 서명 생성 요청은 다음과 같이 진행된다. TEE(114)는 SE(120)로 서명 생성 요청을 전송한다. 서명 생성 요청 메시지는 SE(120)에 로딩된 키의 KeyHandle과 KeyType(RSA 1024, RSA 2048), 데이터를 해쉬 함수(예, SHA256)으로 해쉬한 값을 포함할 수 있다.
SE(120)의 서명 생성 응답은 다음과 같이 진행된다. SE(120)는 TEE(114)로부터 서명 생성 요청을 수신한 후, 수신받은 데이터를 KeyHandle의 키로 서명한다. SE(120)는 서명 생성 응답을 생성하고 데이터에 대한 서명값과 서명 생성 결과를 포함한 응답을 TEE(114)로 전송한다.
도 11은 본 발명의 실시 예에 따른 TEE(114)와 SE(120)를 이용한 서명 검증 과정을 예시적으로 보여주는 도면이다.
TEE(114)는 SE(120)에서 데이터의 서명에 대한 검증을 요청한다. SE(120)는 데이터에 대한 서명 값(PKCS #1 RSA_PSS)을 검증한다. 키 로딩 명령을 통해서 RSA 1024/2048 키가 미리 로딩되어 있다.
TEE(114)의 서명 검증 요청은 다음과 같이 진행된다. TEE(114)는 SE(120)로 서명 검증 요청을 전송한다. 서명 검증 요청 메시지는 서명시 사용된 키에 대한 KeyHandle과 KeyType(RSA 1024, RSA 2048), 데이터를 해쉬 함수(SHA256)으로 해쉬한 값, 서명값을 포함할 수 있다.
SE(120)의 서명 검증 응답은 다음과 같이 진행된다. SE(120)는 TEE(114)로부터 서명 검증 요청을 수신한 후, 수신받은 데이터를 KeyHandle의 Key로 검증한다. SE(120)는 서명 검증 응답을 생성하고 데이터에 대한 서명에 대한 검증값 (0x00 (False) or 0x01 (True))를 포함한 응답을 TEE(114)로 전송한다.
도 12는 본 발명의 실시 예에 따른 TEE(114)와 SE(120)를 이용한 HMAC(hash-based message authentication code, "해쉬 기반 메시지 인증 코드") 생성 과정을 예시적으로 보여주는 도면이다. TEE(114)는 SE(120)에서 데이터에 대해 HMAC값을 요청한다. 지원하는 해쉬 함수는 SHA256이고 128-비트 키와 256-비트 키를 지원할 수 있다. 키 로딩 명령을 통해서 HMAC 키가 로딩되어 있다.
TEE(114)의 HMAC 생성 요청은 다음과 같이 진행된다. TEE(114)는 SE(120)로 HMAC 생성 요청을 전송한다. HMAC 생성 요청 메시지는 SE(120)에 로딩된 키에 대응하는 KeyHandle과 HMACType( 128비트 키 or 256 비트 키), HMAC을 요청하는 데이터 길이와 데이터를 포함할 수 있다.
SE(120)의 HMAC 생성 응답은 다음과 같이 진행된다. SE(120)는 TEE(114)로부터 HMAC 생성 요청을 수신한 후, 수신받은 데이터를 KeyHandle의 Key를 이용하여 HMAC을 계산한다. SE(120)는 HMAC 생성 응답을 생성하고, 데이터에 대한 HMAC값과 HMAC 생성 결과를 포함한 응답을 TEE(114)로 전송한다.
도 13은 본 발명의 실시 예에 따른 TEE(114)와 SE(120)를 이용한 HMAC 검증 과정을 예시적으로 보여주는 도면이다. TEE(114)는 SE(120)에서 HMAC 생성 요청을 통해 계산된 HMAC을 검증한다. HMAC 생성 요청에 사용된 동일한 HMAC 키가 로딩되어 있다.
TEE(114)의 HMAC 검증 요청은 다음과 같이 진행된다. TEE(114)는 SE(120)로 HMAC 검증 요청을 전송한다. HMAC 검증 요청 메시지는 HMAC 계산에 키에 대한 KeyHandle과 KeyType(HMAC 128/HMAC 256), 데이터 길이, 데이터, HMAC 값을 포함할 수 있다.
SE(120)의 HMAC 검증 응답은 다음과 같다. SE(120)는 TEE(114)로부터 HMAC 검증 요청을 수신한 후, 수신받은 데이터를 KeyHandle의 Key를 이용하여 HMAC 값을 검증한다. SE(120)는 서명 검증 응답을 생성하고, 데이터에 대한 서명에 대한 검증값 (0x00 (False) or 0x01 (True))를 포함한 응답을 TEE(114)로 전송한다.
도 14는 본 발명의 실시 예에 따른 TEE(114)와 SE(120)를 이용한 데이터 암호 과정을 예시적으로 보여주는 도면이다. TEE(114)는 SE(120)에서 데이터에 대한 암호화를 요청한다. SE(120)는 암호화 동작에서 AES-128과 AES-256을 지원하고 CFB 모드를 이용할 수 있다. 키 로딩 명령을 통해서 AES 키가 SE(120)의 RAM에 로딩되어 있다.
TEE(114)의 데이터 암호 요청은 다음과 같이 진행된다. TEE(114)는 SE(120)로 데이터 암호 요청을 전송한다. 데이터 암호 요청 메시지는 암호화에 사용될 키에 대한 KeyHandle과 KeyType(AES 128/AES 256), 데이터 길이, 데이터 값을 포함할 수 있다.
SE(120)의 데이터 암호 응답은 다음과 같이 진행된다. SE(120)는 TEE(114)로부터 데이터 암호 요청을 수신한 후, 수신받은 데이터를 KeyHandle의 Key를 이용하여 암호화 한다. SE(120)는 랜덤한 16 바이트 IV(initial value, 초기값)를 생성하고 AES CFB 모드로 데이터를 암호화 할 수 있다. SE(120)는 데이터 암호 응답을 생성하고, 데이터에 대한 IV와 데이터 길이 암호화 된 데이터를 포함한 응답을 TEE(114)로 전송한다.
도 15는 본 발명의 실시 예에 따른 TEE(114)와 SE(120)을 이용한 데이터 복호 과정을 예시적으로 보여주는 도면이다. TEE(114)는 SE(120)에서 데이터 암호 요청을 통해 암호화된 데이터에 대한 복호화를 요청한다. 키 로딩 명령을 통해서 AES 키가 SE(120)의 RAM에 로딩되어 있다.
TEE(114)의 데이터 복호 요청은 다음과 같이 진행된다. TEE(114)는 SE(120)로 데이터 복호 요청을 전송한다. 데이터 복호 요청 메시지는 암호화에 사용된 키에 대한 KeyHandle과 KeyType(AES 128/AES 256), IV(initial value), 데이터 길이, 암호화된 데이터를 포함할 수 있다.
SE(120)의 데이터 복호 응답은 다음과 같이 진행된다. SE(120)는 TEE(114)로부터 데이터 복호 요청을 수신한 후, 수신 받은 데이터를 KeyHandle의 Key와 수신 받은 IV를 이용하여 복호화 시킨다. SE(120)는 데이터 복호 응답을 생성하고 복호화된 데이터를 포함한 응답을 TEE(114)로 전송한다.
도 16은 본 발명의 실시 예에 따른 TEE(114)와 SE(120)를 이용한 난수 생성 과정을 예시적으로 보여주는 도면이다. TEE(114)는 SE(120)에서 난수를 요청한다. SE(120)는 최대 240 바이트의 난수를 생성할 수 있다.
TEE(114)의 난수(RAND) 생성 요청은 다음과 같이 진행된다. TEE(114)는 SE(120)로 난수 생성 요청을 전송한다. 난수 생성 요청 메시지는 요청하는 랜덤 넘버의 바이트수를 포함할 수 있다.
SE(120)의 난수 생성 응답은 다음과 같이 진행된다. SE(120)는 TEE(114)로부터 난수 생성 요청을 수신한 후, 요청 받은 난수의 바이트 수에 따라 난수를 생성할 수 있다. SE(120)는 난수 생성 응답을 생성하고, 난수를  포함한 응답을 TEE(114)로 전송한다.
도 17은 본 발명의 실시 예에 따른 웨어러블 워치(10)를 예시적으로 보여주는 도면이다. 도 17을 참조하면, 웨어러블 워치(10)는 무선(wireless) 통신을 수행하고, 데이터(영상, 사진, 문자 등)를 입력하거나, 및 데이터를 디스플레이하기 위한 시계 본체(11)와 사용자의 손목에 용이하게 착용하기 위한 시계 밴드(12)를 포함한다.
시계 본체(11)는 프로세서, 메모리, 입출력(I/O) 장치, 디스플레이, 통신 인터페이스, 센서들, 및 전력 관리 유닛을 포함할 수 있다. 프로세서, 메모리, 입출력 장치, 통신 인터페이스, 및 센서들은 시스템 버스를 통하여 서로 연결될 수 있다. 프로세서는 적어도 하나의 코어를 갖는 싱글 프로세서, 혹은 적어도 하나의 코어를 갖는 멀티 프로세서들을 포함할 수 있다. 시계 본체(11)는 도 1에 도시된 전자 장치(100)로 구현될 수 있다.
프로세서는 입출력 장치와 함께, 사용자에 의해 오디오 주파수 명령을 수용, 수신, 변환 및 처리하도록 구현될 수 있다. 예를 들어, 오디오 코덱이 사용될 수 있다. 프로세서는 동작 시스템(OS)의 인스트럭션들을 실행하거나 다양한 어플리케이션들을 실행할 수 있다. 프로세서는 장치 구성들 사이의 명령 상호작용 및 입출력 장치 위의 통신들을 제어할 수 있다. 예를 들어, OS는, 제한되지 않지만, 리눅스 안드로이드(Linux AndroidTM, 안드로이드 웨어(Android Wear), 등 일 수 있다.
메모리는 적어도 하나의 서로 종류의 메모리를 포함할 수 있다. 예를 들어, RAM(예, DRAM, SARM), ROM, 캐쉬, 가상 마이크로드라이브, 하드 디스크들, 마이크로SD 카드들, 및 플래시 메모리 등이 될 수 있다.
입출력 장치는 정보를 입력 받고 정보를 출력하는 구성들의 집합이다. 예를 들어, 데이터를 입력 받거나, 출력하거나, 혹은 처리하는 입출력 장치를 구성하는 구성들은, 마이크로폰, 메신징, 카메라, 및 스피커를 포함할 수 있다. 입출력 장치는 오디오 칩, 디스플레이 제어기 및 터치스크린 제어기를 더 포함할 수 있다.
통신 인터페이스는 일방향 혹은 양방향 무선 통신들을 지원하는 구성들을 포함할 수 있고, 몇 가지 구현들, 나머지 구현들의 와이어드 인터페이스, 혹은 멀티플 인터페이스의 네트워크에 대한 무선 통신을 위한 무선 네트워크 인터페이스 제어기(혹은, 유사한 구성들)를 포함할 수 있다. 실시 예에 있어서, 통신 인터페이스는, 원격으로 데이터를 우선적으로 입력 받기 위하여 존재한다. 여기서 데이터는 디스플레이에 디스플레이 되거나 업데이트되는 스트리밍 데이터이다. 하지만, 선택적으로 전송되는 데이터를 제외하고, 통신 인터페이스는 음성 전송을 제공할 수 있다.
실시 예에 있어서, 통신 인터페이스는 낮고 중간의 전력 RC(radio frequency) 통신들을 지원할 수 있다. 실시 예에 있어서, 무선 통신의 종류들에는, BLE(Bluetooth Low Energy), WLAN(wireless local area network), WiMAX, 수동 RFID(radio frequency identification), 네트워크 어댑터들 및 모뎀들을 포함할 수 있다. 하지만, 다른 실시 예에 있어서, 무선 통신이 종류는, WAN(wide area network) 인터페이스, Wi-Fi, WPAN, 멀티-홉 네트워크스, 혹은 셀룰라 네트워크 (예, 3G, 4G, 5G, 혹은 LTE(long term evolution)) 등을 포함할 수 있다. 나머지 무선 옵션들은 UWB(ultra wide band) 및 적외선(infrared) 등을 포함할 수 있다. 또한, 통신 인터페이스는 무선을 제외한 다른 종류, 예를 들어, 컨택들을 통항 직렬 통신, 및/혹 USB 통신들을 포함할 수 있다. 예를 들어, 마이크로 USB 타입 USB, 플래시 드라이브, 혹은 다른 와이어드 커넥션은 통신 인터페이스와 함께 사용될 수 있다.
실시 예에 있어서, 디스플레이는 시계 본체(11)에 집적화될 수 있다. 다른 실시 예에 있어서, 디스플레이는 시계 본체(11)로부터 외부에 존재할 수 있다. 디스플레이는 평평하거나 커브드 될 수 있다. 여기서 커브드된 것은 웨어러블 센서 플랫폼이 위치한 신체의 일부(예, 손목, 발목, 머리, 등)에 대략적으로 곡률을 갖는 것을 의미한다.
디스플레이는 터치 스크린 혹은 제어되는 제스처를 포함할 수 있다. 디스플레이는 OLED(organic light emitting diode) 디스플레이, TFT LCD(thin-film transistor liquid crystal display), 혹은 적절한 디스플레이 기술들을 포함할 수 있다. 디스플레이는 액티브-매트릭스를 포함할 수 있다. 예를 들어, 디스플레이는 AMOLED 디스플레이 혹은 SLCD일 수 있다. 디스플레이는 3D 혹은 플렉서블 할 수 있다. 센서들은 MEMS(Microelectromechanical systems) 센서들을 포함할 수 있다. 이러한 센서들은 가속도계/자이로스코프 및 온도계 등을 포함할 수 있다.
전원 관리 유닛은 전원 소스에 연결될 수 있고, 시계 본체(11)의 일부에서 전원 기능들을 통신 및/혹 제어하는 마이크로콘트롤러를 포함할 수 있다. 전원 관리 유닛은 프로세서와 통신하고, 전원 관리를 조정한다. 실시 예에 있어서, 전원 관리 유닛은 전원 레벨이 어떤 값 아래로 떨어지는 지를 판별한다. 다른 실시 예에 있어서, 전원 관리 유닛은 제 2 충전을 위하여 시간이 경과되었는 지를 판별한다.
전원 소스는 영구 혹은 착탈 배터리, 연료 셀 혹은 포토 전압 셀, 등 일 수 있다. 배터리는 일회용일 수 있다. 실시 예에 있어서, 전원 소스는 재충전 가능, 리듐 이온 배터리 혹은 그와 같은 것을 포함할 수 있다. 전원 관리 유닛은 전압 제어기 및 배터리를 재충전하는 충전 제어기를 포함할 수 있다. 구현에 있어서, 적어도 하나의 솔라 셀들이 전원 소스로 사용될 수 있다. 전원 소스는 또한 AC/DC 전원에 의해 충전될 수 있다. 전력 소스는 비접촉 혹은 접촉 충전에 의해 충전할 수 있다. 실시 예에 있어서, 전원 관리 유닛은 전원 인터페이스를 통하여 착탈식 센서 모듈에 배터리 전원의 공급을 통신 및/혹 제어할 수 있다. 실시 예에 있어서, 배터리는 시계 본체(11)에 내장될 수 있다. 다른 실시 예에 있어서, 배터리는 시계 본체(11)의 외부에 존재할 수 있다.
도 17에 도시된 바와 같이, 시계 본체(11)의 디스플레이의 외향은 원형(circle type) 혹은 라운드 형태(round type)로 구현될 수 있다. 즉, 시계 본체(11)는 원형 디스플레이 패널을 포함한다.
또한, 시계 본체(11)는, 유선 충전 방식 혹은 무선 충전 방식으로 전원 전압을 충전하기 위한 배터리(도시되지 않음)를 내장할 수 있다. 여기서 무선 충전 방식은 자기 유도, 자기 공명, 전자기 유도, 비방사형 무선 충전(witricity) 등 다양한 무선 충전 방식 중 적어도 하나일 수 있다. 한편, 배터리는 시계 본체(11)가 아니라 시계 밴드(12)에 내장되도록 구현될 수도 있다.
또한, 시계 밴드(12)는 적어도 하나의 사용자로부터 생리학적 데이터, 즉 헬스 데이터를 감지하는 헬스 센서(도 1 참조, 130)를 구비할 수 있다. 예를 들어, 헬스 센서는, 웨어러블 워치(10)의 착용자의 심박, 혈관의 산소 농도, 체온 감지, 혈압, 혈당, 혹은 체지방 등을 감지할 수 있다.
본 발명의 전자 장치는 사용자의 헬스 데이터, 지불비용 데이터 등 보안 및 사생활 정보를 안전하게 보호하기 위한 방법 및 장치이다.
본 발명의 실시 예에 따른 전자 장치는 강력한 보안을 제공할 수 있다. 전자 장치의 사용자 정보를 Malware, Hacking등으로 부터 안전하게 보호하기 위해서 조작 불가한 SE에서 키 관리 등에 필요한 암호 연산이 수행된다. 하드웨어적으로 안전한 SE와 보안 OA(예를 들어, TEE) 사이의 보안 채널 설정을 위한 Authentication & Key Exchange 및 Secure Channel En/Decryption 및 Message Authentication 제공된다.
본 발명의 실시 예에 따른 전자 장치는 NFC(near field communication)를 경유하지 않는 TEE와 SE 사이의 보안 프로토콜을 제안한다. 본 발명은 AP의 TEE와 SE간 보안 통신을 위한 일반적인 프로토콜을 통해서 다양한 어플리케이션에서의 강력한 보안 요구를 처리할 수 있다. SE 사용을 위한 권한 획득, 비밀 정보(credential or secret) 보호, 보안 펌웨어 업데이트(Secure FW Update) 등의 기능은 안전하게 설계된 TEE-SE 사이의 보안 프로토콜을 통해서만 접근 가능하다. 또한, 본 발명은 Global Platform SE Access Control, Secure Channel Protocol 03 등과 호환 가능하도록 보안 프로토콜을 설계할 수 있다.
본 발명은 eSE(embedded Secure Element)에 Java Card OS, Global Platform Layer 상에 Trust Applet 구현 대비하여 암호 연산 등 우수한 성능 향상을 가져온다.
한편, 상술 된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
TEE: 신뢰 실행 환경
SE: 보안 칩
100: 전자 장치
TAPP: 신뢰 어플리케이션

Claims (10)

  1. 보안 칩을 갖는 전자 장치의 데이터 전송 방법에 있어서:
    신뢰 실행 환경(trusted execution environment)에서 신뢰 어플리케이션을 실행하는 단계;
    상기 신뢰 실행 환경에서 개인 식별 번호를 이용하여 상기 보안 칩에 대한 오너십을 획득하는 단계;
    사용자의 개인 정보에 관련된 데이터를 수집하는 단계;
    상기 오너십 획득 후에, 상기 보안 칩에서 상기 데이터를 암호화시키는 단계; 및
    상기 암호화된 데이터를 외부의 서버로 출력하는 단계를 포함하는 데이터 전송 방법.
  2. 제 1 항에 있어서,
    상기 오너십을 획득하는 단계는,
    상기 개인 식별 번호를 이용하여 오너십 인증 데이터를 생성하는 단계;
    상기 신뢰 실행 환경에서 상기 보안 칩의 공개키를 이용하여 상기 오너십 인증 데이터를 암호화시키는 단계;
    상기 신뢰 실행 환경에서 상기 보안 칩으로 상기 암호화된 오너십 인증 데이터를 전송함으로써 상기 오너십을 요청하는 단계;
    상기 암호화된 오너십 인증 데이터를 상기 보안 칩의 개인키로 복호화하는 단계;
    상기 보안 칩에서 복호화된 오너십 인증 데이터를 저장하는 단계;
    상기 보안 칩에서 상기 사용자에 대응하는 스토리지 루트 키를 생성 및 저장하는 단계; 및
    상기 보안 칩에서 상기 오너십 요청에 대한 응답을 상기 신뢰 실행 환경에서 전송하는 단계를 포함하는 데이터 전송 방법.
  3. 제 1 항에 있어서,
    인증과 키교환 방식으로 통하여 상기 신뢰 실행 환경 및 상기 보안 칩에서 세션 키를 공유하는 단계를 더 포함하는 데이터 전송 방법.
  4. 제 1 항에 있어서,
    상기 보안 칩에 저장될 키, 상기 신뢰 실행 환경에 저장될 키, 혹은 상기 신뢰 실행 환경 외부에 저장될 키에 대한 키를 생성하는 단계를 더 포함하는 데이터 전송 방법.
  5. 제 1 항에 있어서,
    상기 신뢰 실행 환경에서 상기 보안 칩에 데이터에 대한 서명을 요청하는 단계; 및
    상기 보안 칩에서 상기 서명 요청에 응답하여 상기 데이터를 상기 보안 칩의 개인키로 암호화함으로써 서명 값을 생성하는 단계를 더 포함하는 데이터 전송 방법.
  6. 제 1 항에 있어서,
    상기 신뢰 실행 환경에서 상기 보안 칩에 데이터에 대한 해쉬 기반 메시지 인증 코드 값을 요청하는 단계; 및
    상기 보안 칩에서 해쉬 기반 메시지 인증 코드 키를 이용하여 상기 데이터에 대한 상기 해쉬 기반 메시지 인증 코드 값을 생성하는 단계를 더 포함하는 데이터 전송 방법.
  7. 제 1 항에 있어서,
    상기 데이터를 암호화시키는 단계는,
    상기 신뢰 실행 환경에서 상기 보안 칩으로 상기 데이터 및 암호 알고리즘 종류를 전송하는 단계;
    상기 보안 칩에서 상기 암호 알고리즘 종류에 따라 상기 데이터를 암호화시키는 단계를 포함하는 데이터 전송 방법.
  8. 사용자의 개인 정보에 연관된 데이터를 감지하는 감지 센서;
    적어도 하나의 어플리케이션을 실행하는 리치 실행 환경과 상기 리치 실행 환경으로부터 공격에 대한 보안 수준을 제공하고, 상기 감지 센서로부터 상기 데이터를 수집하는 신뢰 어플리케이션을 실행하는 신뢰 실행 환경을 포함하는 어플리케이션 프로세서; 및
    상기 신뢰 실행 환경과 개인 식별 번호를 이용하는 보안 프로토콜에 의해 통신하는 보안 칩을 포함하고,
    상기 데이터는 상기 보안 칩에 의해 암호화되고,
    상기 암호화된 데이터는 외부의 서버로 전송되는 전자 장치.
  9. 제 8 항에 있어서,
    상기 보안 칩은,
    상기 보안 칩의 접근을 제어하는 억세스 제어 유닛;
    상기 보안 칩의 적어도 하나의 보안 기능들을 제공하는 보안 기능 블록;
    상기 보안 칩을 구동하는 펌웨어를 업데이트 하기 위한 펌웨어 업데이트 블록; 및
    내부의 데이터를 저장하기 위한 보안 저장 장치를 포함하는 전자 장치.
  10. 시계 본체; 및
    상기 시계 본체를 사용자의 손목에 고정하고, 상기 사용자의 생체 정보 혹은 건강 정보를 감지하는 헬스 센서를 내장하는 시계 밴드를 포함하고,
    상기 시계 본체는,
    적어도 하나의 어플리케이션을 실행하는 리치 실행 환경;
    상기 리치 실행 환경의 공격으로부터 보안 레벨을 제공하고, 상기 헬스 센서로부터 헬스 데이터를 수집하고 헬스케어 어플리케이션을 실행하는 신뢰 실행 환경; 및
    상기 신뢰 실행 환경과 개인 식별 번호를 이용하는 보안 프로토콜에 의해 통신하는 보안 칩을 포함하는 웨어러블 워치.
KR1020150052549A 2015-02-06 2015-04-14 전자 장치 및 그것의 데이터 전송 방법 KR20160097989A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/016,447 US20160234176A1 (en) 2015-02-06 2016-02-05 Electronic device and data transmission method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562112671P 2015-02-06 2015-02-06
US62/112,671 2015-02-06

Publications (1)

Publication Number Publication Date
KR20160097989A true KR20160097989A (ko) 2016-08-18

Family

ID=56874444

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150052549A KR20160097989A (ko) 2015-02-06 2015-04-14 전자 장치 및 그것의 데이터 전송 방법

Country Status (1)

Country Link
KR (1) KR20160097989A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180081308A (ko) * 2017-01-06 2018-07-16 (주)비콘테크놀로지 BLE 기반의 애드버타이징(advertising)을 이용한 보안 시스템 및 방법
KR20220008034A (ko) 2020-07-13 2022-01-20 숭실대학교산학협력단 커스텀 안드로이드 운영 플랫폼, 방법 및 그를 위한 컴퓨터로 판독 가능한 기록 매체
CN114745137A (zh) * 2022-05-10 2022-07-12 山东鲁软数字科技有限公司 一种实现安全通信方法及区块链物联代理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180081308A (ko) * 2017-01-06 2018-07-16 (주)비콘테크놀로지 BLE 기반의 애드버타이징(advertising)을 이용한 보안 시스템 및 방법
KR20220008034A (ko) 2020-07-13 2022-01-20 숭실대학교산학협력단 커스텀 안드로이드 운영 플랫폼, 방법 및 그를 위한 컴퓨터로 판독 가능한 기록 매체
CN114745137A (zh) * 2022-05-10 2022-07-12 山东鲁软数字科技有限公司 一种实现安全通信方法及区块链物联代理装置

Similar Documents

Publication Publication Date Title
US20160234176A1 (en) Electronic device and data transmission method thereof
US11315666B2 (en) Blockchain-based data processing method and device
KR102604046B1 (ko) 전자 기기의 프로그램 관리 방법 및 장치
CN106663162B (zh) 安全地将计算设备配对
ES2906244T3 (es) Procedimiento y aparato para procesar información biométrica en un dispositivo electrónico
US9509502B2 (en) Symmetric keying and chain of trust
US9602506B2 (en) Method and apparatus for supporting login through user terminal
US8792636B2 (en) Protocol for protecting content protection data
KR20150128202A (ko) 전자 기기간 콘텐트 공유 방법 및 장치
US20160275300A1 (en) Contents security method and electronic apparatus for providing contents security function
KR20160100151A (ko) 보안 정보의 처리
US9942226B2 (en) NFC package for storing biometric information and electronic device
US20140258734A1 (en) Data security method and electronic device implementing the same
KR102544488B1 (ko) 인증을 수행하기 위한 전자 장치 및 방법
KR20160099431A (ko) 보안 메시지 전송 장치 및 그 처리 방법
JP6223634B2 (ja) 情報処理システム及び情報処理方法及び情報処理プログラム
US11463449B2 (en) Authentication for key access
US11044611B2 (en) Authentication for device access
TWI571094B (zh) 具有經改良的裝置識別及傳訊鏈結安全之無線電力傳遞技術
KR20160112316A (ko) 애플리케이션 보호 방법 및 장치
US20180365449A1 (en) Devices and method of operation thereof
US11113423B2 (en) FPGA hardware-based secure computing method and apparatus
KR20170136406A (ko) 어플리케이션을 인증하는 전자 장치 및 그것의 동작 방법
KR20160097989A (ko) 전자 장치 및 그것의 데이터 전송 방법
WO2022143358A1 (zh) 一种密钥管理的方法、相应装置及系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application