KR102436485B1 - 전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법 - Google Patents

전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법 Download PDF

Info

Publication number
KR102436485B1
KR102436485B1 KR1020170154918A KR20170154918A KR102436485B1 KR 102436485 B1 KR102436485 B1 KR 102436485B1 KR 1020170154918 A KR1020170154918 A KR 1020170154918A KR 20170154918 A KR20170154918 A KR 20170154918A KR 102436485 B1 KR102436485 B1 KR 102436485B1
Authority
KR
South Korea
Prior art keywords
electronic device
operating system
data
external electronic
communication module
Prior art date
Application number
KR1020170154918A
Other languages
English (en)
Other versions
KR20190057677A (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 삼성전자주식회사
Priority to KR1020170154918A priority Critical patent/KR102436485B1/ko
Priority to PCT/KR2018/014205 priority patent/WO2019098790A1/ko
Priority to US16/764,608 priority patent/US11347897B2/en
Publication of KR20190057677A publication Critical patent/KR20190057677A/ko
Application granted granted Critical
Publication of KR102436485B1 publication Critical patent/KR102436485B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • G06F21/725Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits operating on a secure reference time value
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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)
    • 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]
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • 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/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3242Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/041Key generation or derivation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • H04W12/047Key management, e.g. using generic bootstrapping architecture [GBA] without using a trusted network node as an anchor
    • H04W12/0471Key exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

전자 장치와 관련된 다양한 실시예들이 기술된 바, 한 실시예에 따르면, 전자 장치에 있어서, 무선 통신을 수행하는 통신 모듈, 상기 통신 모듈과 전기적으로 연결된 적어도 하나의 프로세서 및 실행 시, 상기 적어도 하나의 프로세서가, 제1 운영체제를 기반으로 상기 통신 모듈을 이용하여 외부 전자 장치와 통신을 통해 데이터를 수신 또는 전송하고, 제2 운영체제를 기반으로 지정된 키를 이용하여 상기 수신된 데이터 또는 상기 외부 전자 장치로 전송할 데이터를 처리하도록 하는 인스트럭션들을 저장하는 메모리를 포함할 수 있다.

Description

전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법 {ELECTRONIC DEVICE AND METHOD FOR TRANSMITTING AND RECEIVING DATA BASED ON SECURED OPERATING SYSTEM IN THE ELECTRONIC DEVICE}
본 발명의 다양한 실시예들은 전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법에 관한 것이다.
최근의 정보통신 기술과 반도체 기술 등의 눈부신 발전에 힘입어 각종 전자 장치들의 보급과 이용이 급속도로 증가하고 있다. 특히 최근의 전자 장치들은 휴대하고 다니며 통신할 수 있으며, 어플리케이션을 이용하여 다양한 서비스를 제공할 수 있고, 외부의 전자 장치 또는 외부 서버와 각종 데이터들을 송수신할 수 있다.
전자 장치는 다양한 서비스를 제공할 수 있도록, 적어도 하나의 프로세서(processor)와 운영체제(operating system, OS)를 포함할 수 있으며, 전자 장치의 운영체제는 주요 제조사 및 주요 공급자에 의해 전략적으로 개방되어, 어플리케이션 프로그램 인터페이스(Application Program Interface), 소프트웨어 개발 키트(Software Development Kit), 및 소스파일까지 일반에 공개되고 있다.
그러나 이러한 개방형 운영체제의 이용에 따라 전자 장치의 데이터의 보안성이 취약해지고 있고, 실제로 각종 악성 코드들을 이용하여 전자 장치의 데이터를 훼손하거나 해킹하는 등의 사례가 빈번히 발생하고 있다. 따라서 최근에는 전자 장치의 데이터를 보호하기 위한 각종 방법들이 모색되고 있다.
최근 전자 장치의 연결성이 급속하게 증가함에 따라 전자 장치는 외부 서버 또는 외부의 다른 전자 장치 등의 외부 전자 장치와 데이터 송수신을 통해 상호 운용될 수 있는 반면, 전자 장치와 외부 전자 장치 간의 데이터 송수신 시의 보안에 대해서는 보안 솔루션이 미비한 실정이다.
예를 들면, 전자 장치와 외부 전자 장치 간의 데이터 송수신 시의 보안 솔루션은 통신 채널의 보안과 송수신되는 데이터의 보안이 모두 고려되어야 하는데, 이에 대한 구체적인 보안 솔루션이 제공되고 있지 않다.
본 발명의 다양한 실시예들에 따르면 전자 장치와 외부 전자 장치 간의 데이터 송수신 시 보안 운영체제를 이용하여 전자 장치와 외부 전자 장치 간에 안전하게 데이터를 송수신 할 수 있는 전자 장치 및 방법을 제공할 수 있다.
본 발명의 다양한 실시예들에 따르면 전자 장치와 외부 전자 장치 간의 데이터 송수신 시 제1 운영 체제를 이용하여 전자 장치와 외부 전자 장치 간 보안 통신을 수행하고 제2 운영 체제를 이용하여 전자 장치와 외부 전자 장치 간 송수신되는 데이터를 암호화 처리함으로써 전자 장치와 외부 전자 장치 간에 안전하게 데이터를 송수신 할 수 있는 전자 장치 및 방법을 제공할 수 있다.
본 발명의 다양한 실시예들에 따른 전자 장치는 무선 통신을 수행하는 통신 모듈, 메모리, 상기 통신 모듈 및 메모리와 전기적으로 연결된 적어도 하나의 프로세서를 포함하고, 상기 메모리는 실행 시, 상기 적어도 하나의 프로세서가, 제1 운영체제를 기반으로 상기 통신 모듈을 이용하여 외부 전자 장치와 통신을 통해 데이터를 수신 또는 전송하고, 제2 운영체제를 기반으로 지정된 키를 이용하여 상기 수신된 데이터 또는 상기 외부 전자 장치로 전송할 데이터를 처리하도록 하는 인스트럭션들을 저장할 수 있다.
본 발명의 다양한 실시예들에 따른 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법은 제1 운영체제를 기반으로 통신 모듈을 이용하여 외부 전자 장치와 통신을 통해 데이터를 수신 또는 전송하는 동작 및 제2 운영체제를 기반으로 지정된 키를 이용하여 상기 수신된 데이터 또는 상기 외부 서버로 전송할 데이터를 처리하는 동작을 포함할 수 있다.
다양한 실시 예에 따르면, 컴퓨터 판독 가능 기록 매체에 있어서, 상기 컴퓨터 판독 가능 기록 매체에 저장된 프로그램은 전자 장치에서, 제1 운영체제를 기반으로 통신 모듈을 이용하여 외부 전자 장치와 통신을 통해 데이터를 수신 또는 전송하는 동작 및 제2 운영체제를 기반으로 지정된 키를 이용하여 상기 수신된 데이터 또는 상기 외부 전자 장치로 전송할 데이터를 처리하도록 하는 동작을 수행할 수 있다.
다양한 실시예들에 따르면 전자 장치와 외부 전자 장치 간의 데이터 송수신 시 제1 운영 체제를 기반으로 전자 장치와 외부 전자 장치 간 통신을 수행하고 제2 운영 체제를 기반으로 전자 장치와 외부 전자 장치 간에 공유된 지정된 키를 이용하여 전자 장치와 외부 전자 장치 간 송수신되는 데이터를 암호화 처리함으로써 전자 장치와 외부 장치 간에 안전하게 데이터를 송수신 할 수 있다.
예를 들면, 전자 장치와 외부 전자 장치 간에 송수신되는 데이터 암호화 시 전자 장치와 외부 전자 장치 간에 공유된 지정된 키를 이용함으로써, 암호화된 데이터는 지정된 키를 통해서만 복호화 할 수 있기 때문에, 통신 과정에서 암호화된 데이터가 노출 노출되더라도 공격자가 복호화 불능으로 인해 따라 전자 장치와 외부 전자 장치 간에 송수시되는 데이터의 보안이 보장될 수 있다.
도 1은 다양한 실시예들에 따른 전자 장치와 외부 전자 장치를 나타낸 도면이다.
도 2는 다양한 실시예들에 따른 전자 장치의 구성도이다.
도 3은 다양한 실시예에 따른 전자 장치의 동작 흐름도이다.
도 4 는 다양한 실시예에 따른 전자 장치에서 외부 전자 장치에 지정된 키를 전송하는 동작을 나타낸 흐름도이다.
도 5 는 다양한 실시예에 따른 전자 장치에서 외부 전자 장치로부터 데이터를 수신하는 동작을 나타낸 흐름도이다.
도 6은 다양한 실시예에 따른 전자 장치에서 외부 전자 장치에 데이터를 전송하는 동작을 나타낸 흐름도이다.
도 7은 다양한 실시예에 따른 전자 장치와 외부 서버가 지정된 키를 공유하는 동작을 나타낸 도면이다.
도 8은 다양한 실시예에 따른 외부 서버로부터 데이터 쓰기 요청에 따른 전자 장치와 서버의 동작을 나타낸 도면이다.
도 9는 다양한 실시예에 따른 외부 서버로부터 데이터 읽기 요청에 따른 전자 장치와 서버의 동작을 나타낸 도면이다.
도 1은, 다양한 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블럭도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 및 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서는, 예를 들면, 표시 장치(160)(예: 디스플레이)에 임베디드된 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)의 경우와 같이, 일부의 구성요소들이 통합되어 구현될 수 있다.
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 구동하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하여 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 운영되고, 추가적으로 또는 대체적으로, 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화된 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 여기서, 보조 프로세서(123)는 메인 프로세서(121)와 별개로 또는 임베디드되어 운영될 수 있다.
이런 경우, 보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 수행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부 구성 요소로서 구현될 수 있다. 메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 저장되는 소프트웨어로서, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신하기 위한 장치로서, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력하기 위한 장치로서, 예를 들면, 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용되는 스피커와 전화 수신 전용으로 사용되는 리시버를 포함할 수 있다. 일실시예에 따르면, 리시버는 스피커와 일체 또는 별도로 형성될 수 있다.
표시 장치(160)는 전자 장치(101)의 사용자에게 정보를 시각적으로 제공하기 위한 장치로서, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(160)는 터치 회로(touch circuitry) 또는 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서를 포함할 수 있다.
오디오 모듈(170)은 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 유선 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 내부의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 외부 전자 장치(예: 전자 장치(102))와 유선 또는 무선으로 연결할 수 있는 지정된 프로토콜을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는 HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102))를 물리적으로 연결시킬 수 있는 커넥터, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈, 이미지 센서, 이미지 시그널 프로세서, 또는 플래시를 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리하기 위한 모듈로서, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구성될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급하기 위한 장치로서, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되는, 유선 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함하고, 그 중 해당하는 통신 모듈을 이용하여 제 1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 상술한 여러 종류의 통신 모듈(190)은 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다.
일실시예에 따르면, 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 사용자 정보를 이용하여 통신 네트워크 내에서 전자 장치(101)를 구별 및 인증할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부로 송신하거나 외부로부터 수신하기 위한 하나 이상의 안테나들을 포함할 수 있다. 일시예에 따르면, 통신 모듈(190)(예: 무선 통신 모듈(192))은 통신 방식에 적합한 안테나를 통하여 신호를 외부 전자 장치로 송신하거나, 외부 전자 장치로부터 수신할 수 있다.
상기 구성요소들 중 일부 구성요소들은 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input/output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되어 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 외부 전자 장치에서 실행될 수 있다. 일실시예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 외부 전자 장치에게 요청할 수 있다. 상기 요청을 수신한 외부 전자 장치는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치 중 적어도 하나를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 명령어를 포함하는 소프트웨어(예: 프로그램(140))로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(예: 전자 장치(101))를 포함할 수 있다. 상기 명령이 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
다양한 실시예에 따르면, 전자 장치(예: 도 1의 전자장치(101))는 외부 전자 장치(예: 도 1의 전자 장치(102), 전자 장치(104), 또는 서버(108))와 무선 통신을 수행하는 통신 모듈(예: 도 1의 통신 모듈(190)), 메모리(예: 도 1의 메모리(130)), 상기 통신 모듈 및 메모리와 전기적으로 연결된 적어도 하나의 프로세서(예: 도 1의 프로세서(120)를 포함하고, 상기 메모리는 실행 시, 상기 적어도 하나의 프로세서가, 제1 운영체제를 기반으로 상기 통신 모듈을 이용하여 상기 전자 장치 서버와 통신을 통해 데이터를 수신 또는 전송하고, 제2 운영체제를 기반으로 지정된 키를 이용하여 상기 수신된 데이터 또는 상기 외부 전자 장치로 전송할 데이터를 처리하도록 하는 인스트럭션들을 저장할 수 있다.
다양한 실시예에 따르면, 상기 지정된 키는 비밀 키(secret key)이며, 상기 메모리는 상기 제2 운영체제에 의해서만 엑세스 가능한 저장 영역에 상기 지정된 키를 저장할 수 있다.
다양한 실시예에 따르면, 상기 메모리는 RPMB(replay protected memory block)를 포함하고, 상기 RPMB에 상기 지정된 키를 저장할 수 있다.
다양한 실시예예 따르면, 상기 메모리는, 실행 시, 상기 적어도 하나의 프로세서가, 상기 제2 운영체제가 상기 지정된 키를 암호화하여 상기 제1 운영 체제에 전달하고, 상기 제1 운영체제가 상기 암호화된 지정된 키를 상기 상기 통신 모듈을 통해 상기 외부 전자 장치로 전송하도록 하는 인스트럭션들을 더 저장할 수 있다.
다양한 실시예에 따르면 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가, 상기 제1 운영체제를 기반으로 상기 통신 모듈을 이용하여 상기 외부 전자 장치로부터 제1 데이터와 상기 지정된 키를 이용하여 생성된 유효성 정보가 수신되면, 상기 제2 운영체제를 기반으로 상기 유효성 정보를 이용하여 상기 제1 데이터의 유효성을 판단하고, 유효한 경우 상기 제1 데이터를 기반으로 저장된 데이터를 업데이트 하거나 상기 전자 장치의 상태를 업데이트 하도록 할 수 있다.
다양한 실시예에 따르면 상기 제1 데이터와 연관된 유효성 정보는 상기 제1 데이터, 상기 지정된 키, 상기 전자 장치에서 생성된 랜덤값을 기반으로 상기 외부 전자 장치에서에서 생성된 토큰(token)일 수 있다.
다양한 실시예에 따르면 상기 유효성 정보는 HMAC(hash-based message authentication code)를 포함할 수 있다.
다양한 실시예에 따르면 상기 제1 데이터는 상기 전자 장치의 디스플레이 데이터 또는 락(lock) 상태를 업데이트하기 위한 데이터를 포함할 수 있다.
다양한 실시예에 따르면 상기 인스트럭션들은, 상기 적어도 하나의 프로세서가, 상기 제1 운영체제를 기반으로 상기 통신 모듈을 이용하여 상기 외부 전자 장치로부터 제2 데이터 전송 요청이 수신되면, 상기 제2 운영체제를 기반으로 상기 지정된 키를 이용하여 상기 제2 데이터를 암호화하여 제공하도록 할 수 있다.
다양한 실시예에 따르면 상기 메모리는, 상기 적어도 하나의 프로세서가, 상기 제1 운영체제를 기반으로 상기 무선 통신 모듈을 이용하여 상기 외부 전자 장치로부터 상기 외부 전자 장치를 인증하기 위한 인증 정보를 수신하고, 제2 운영체제를 기반으로 상기 수신된 인증 정보를 이용하여 상기 외부 전자 장치를 인증하도록 하는 인스트럭션들을 더 저장할 수 있다.
도 2는, 다양한 실시예들에 따른 전자 장치(201)(예: 도 1의 전자 장치(101))의 구성도이다. 도 2를 참조하면, 전자 장치(201)는 통신 모듈(210)(예: 도 1의 통신 모듈(190)), 프로세서(220)(예: 도 1의 프로세서(120)), 및 메모리(230)(예: 도 1의 메모리(130))를 포함할 수 있다.
통신 모듈(210)은 전자 장치(201)와 외부 전자 장치(예: 도 1의 전자 장치(102), 전자 장치(104), 또는 서버(108))) 간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 다양한 실시예에 따르면 통신 모듈(210)은 전자 장치(201)가, 예를 들어, 외부의 서버(108)와 보안 프로토콜을 기반으로 통신할 수행할 수 있도록 지원할 수 있다. 예를 들면, 보안 프로토콜은 TLS(transport layer security) 프로토콜 또는 SSL(secure sockets layer) 프로토콜일 수 있으며, 이외에 다른 보안 프로토콜도 가능할 수 있다.
프로세서(220)는 메모리(230)에 저장된 소프트웨어(예: 제1 운영체제(233-1) 및 제2 운영체제(233-2))를 구동하여 프로세서(220)에 연결된 전자 장치(201)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(220)는 다른 구성요소(예: 통신 모듈(210))로부터 수신된 명령 또는 데이터를 휘발성 메모리(예: 도 1의 132)에 로드하여 처리하고, 결과 데이터를 비휘발성 메모리(예 도 1의 134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(220)는 적어도 하나의 프로세서로서 메인 프로세서(예 도 1의 121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 운영되고, 추가적으로 또는 대체적으로, 메인 프로세서보다 저전력을 사용하거나, 또는 지정된 기능에 특화된 보조 프로세서(예: 도 1의 123) 를 포함할 수 있다.
메모리(230)는 전자 장치(201) 내의 다양한 데이터 처리 및 연산을 위한 소프트웨어(예: 프로그램(140)) 및 관련 데이터를 저장할 수 있다. 다양한 실시예에 따르면 메모리(230)는 실행 시, 프로세서(220)가, 제1 운영체제(233-1)를 기반으로 통신 모듈(210)을 이용하여 외부 전자 장치(예: 외부 서버(예 도 1의 108))와 통신을 통해 데이터를 수신하거나 전송하고, 제2 운영체제(233-2)를 기반으로 지정된 키, 예를 들어 비밀 키(secret key)를 이용하여 상기 수신된 데이터 또는 상기 외부 전자 장치(예: 외부 서버(108))로 전송할 데이터를 처리하도록 하는 인스트럭션들을 저장할 수 있다. 다양한 실시예에 따르면 인스트럭션들은 소프트웨어 및 관련 데이터를 포함할 수 있다.
다양한 실시예에 따르면 소프트웨어 및 관련 데이터는 부트로더(bootloader)(231), 커널(kernal)(232), 운영체제(operating system)(233), 어플리케이션 프레임워크(application framework)(234), 어플리케이션(235), RPMB(replay protected memory block)(236), 사용자 데이터(237)를 포함할 수 있다.
부트로더(231)는 전자 장치(201)의 전원이 온됨에 따라 부팅 동작을 수행할 수 있다. 다양한 실시예에 따르면 부트로더(231)는 부팅 동작 수행 시 커널(232)을 통해 제1 운영체제(233-1)와 제2 운영체제(233-2)의 변조 여부를 각각 체크하고, 이상없는 경우 제1 운영체제(233-1)와 제2 운영체제(233-2)가 각각 프로세서(220)에 의해 로딩되어 동작되도록 할 수 있다.
커널(232)은 일실시예에 따라 적어도 하나의 모듈(예를 들면, dm-verify 모듈)을 이용하여 제1 운영체제(233-1)와 제2 운영체제(233-2) 각각의 시스템 이미지(system image)에 대한 변조 여부를 체크할 수 있다. 일 실시예에 따르면 제1 운영체제(233-1)의 시스템 이미지는 어플리케이션 프레임워크를 구성하는 모든 바이너리 및 라이브러리를 포함할 수 있고, 제2 운영체제(233-2)의 시스템 이미지는 보안 OS를 구성하는 모든 바이너리 및 라이브러리를 포함할 수 있다.
운영체제(operating system)(233)는 제1 운영체제(233-1) 및 제2 운영체제(233-2)를 포함할 수 있다. 다양한 실시예에 따르면 전자 장치(201)의 전원이 온됨에 따라 제1 운영체제(233-1)와 제2 운영체제(233-2)가 로딩되고 프로세서(220)는 제1 운영체제(233-1)를 기반으로 동작하거나 제2 운영체제(233-2)를 기반으로 동작할 수 있다. 다양한 실시예에 따르면 제1 운영체제(233-1)는 일반 OS(normal operatig system)일 수 있고, 제2 운영체제(233-2)는 일반 OS와 독립적으로 동작하는 보안 OS(secure operating system)일 수 있다. 다양한 실시예에 따르면 제1 운영체제(233-1)는 메모리(230) 내의 제1 영역(22)을 기반으로 동작하고, 제2 운영체제(233-2)는 메모리(230) 내의 제2 영역(24)을 기반으로 동작할 수 있다. 일 실시예에 따르면 제1 영역(22)은 제1 운영체제(233-1)에 의해 엑세스 가능한 영역이고, 제2 영역(24)는 제2 운영체제(233-2)에 의해 엑세스 가능한 영역일 수 있다. 예를 들면, 제1 영역(22)은 normal 영역 또는 non-secure 영역일 수 있고, 제2 영역(24)은 secure 영역일 수 있다. normal 영역 또는 non-secure 영역의 프로세스들은 외부 공격자의 위협으로부터 안전을 보장받지 못하는 환경인 반면, secure 영역은 normal 영역 또는 non-secure 영역과는 구분된 독립적인 프로세싱 환경(TEE: trusted execution environment)으로서 외부 공격자의 위협으로부터 안전을 보호하기 위한 환경일 수 있다.
어플리케이션 프레임워크(234)는 전자 장치(201)에서 실행될 수 있는 적어도 하나 이상의 어플리케이션과 연관된 기능을 수행하는데 필요한 바이너리 및 라이브러리를 포함할 수 있으며, 제1 운영체제(233-1)에 의해 제1 영역(22)을 기반으로 엑세스될 수 있다.
다양한 실시예에 따르면 어플리케이션 프레임워크(234)는 클라이언트(234-1)와 데몬(234-2)을 포함할 수 있다. 클라이언트(234-1)는 제1 운영체제(233-1)를 기반으로 통신 모듈(210)을 이용하여 외부 전자 장치(예: 외부 서버(예: 도 1의 108))와 통신을 통해 데이터를 수신하거나 전송하는 기능을 수행하는데 필요한 바이너리 및 라이브러리를 포함할 수 있다. 데몬(234-2)은 외부의 서버로부터 수신된 데이터를 커널(232)를 통해 제2 운영체제(233-2)를 기반의 어플리케이션(235)에 전달하고, 어플리케이션(235)에 의해 제공되는 데이터를 커널(232)을 통해 제1 운영체제(233-1) 기반의 클라이언트(234-1)에 전달하는 기능을 수행하는데 필요한 바이너리 및 라이브러리를 포함할 수 있다.
어플리케이션(235)은 제2 운영체제(233-2)를 기반으로 실행될 수 있으며 지정된 키 예를 들면 비밀 키(secret key)를 이용하여 외부 전자 장치(예: 도 1의 전자장치(102), 전자 장치(104), 또는 서버(108)))로부터 수신된 데이터를 처리하거나, 외부 전자 장치로 전송할 데이터를 처리할 수 있는 어플리케이션일 수 있다.
RPMB(236) 영역은 제2 운영체제(233-2)에 의해서만 엑세스 가능한 저장 영역일 수 있다. 다양한 실시예에 따르면 RPMB(236) 영역은 지정된 키 예를 들면, 비밀 키(secret key)를 저장할 수 있다. 일 실시예에 따르면 지정된 키는 어플리케이션(235)에 의해 암호화되어 RPMB(236) 영역에 저장될 수 있다. 다양한 실시예에 따르면 지정된 키는 전자 장치(201)와 외부 전자 장치(예: 도 1의 전자장치(102), 전자 장치(104), 또는 서버(108)))에 의해 공유될 수 있다. 예를 들면, 지정된 키는 전자 장치(201)가 서버(108)를 인증하고, 인증 성공 시 서버(108)에 지정된 키를 제공함으로서 공유될 수 있다. 외부 서버는 전자 장치(201)로부터 제공된 지정된 키를 이용할 수 있다.
사용자 데이터(237) 영역은 제1 운영체제(233-1) 및 제2 운영체제(233-2) 기반의 프로세스들 중 접근 권한이 있는 다양한 프로세스들에 의해 액세스 가능한 영역일 수 있으며, 전자 장치(201)의 사용자와 관련된 다양한 데이터가 저장될 수 있다.
다양한 실시예에 따르면 프로세서(220)는 제1 운영체제(233-1)를 기반으로 클라이언트(234-1)를 이용하여 통신 모듈(210)을 통해 서버(예: 도 1의 서버(108))로부터 서버로부터 서버를 인증하기 위한 인증 정보(certificate)를 수신할 수 있고, 데몬(234-2)을 이용하여 수신된 인증 정보를 제2 운영체제(233-2)를 기반으로 실행되는 어플리케이션(235)에 전달할 수 있다. 프로세서(220)는 제2 운영체제(233-2)를 기반으로 실행되는 어플리케이션(235)을 통해 상기 수신된 인증 정보를 이용하여 외부 서버를 인증할 수 있다. 다양한 실시예에 따르면 프로세서(220)는 인증된 서버에 지정된 키를 제공할 수 있다.
다양한 실시예예 따르면, 프로세서(220)는 제2 운영체제(233-2)를 기반으로 실행되는 어플리케이션(236)을 통해 지정된 키를 암호화하여 데몬(234-2)에 전달할 수 있다. 프로세서(220)는 클라이언트(234-1)를 이용하여 데몬(234-2)에 전달된 암호화된 지정된 키를 통신 모듈(210)을 통해 서버(예: 도 1의 서버(108))로부터 서버로 전송할 수 있다.
다양한 실시예에 따르면 프로세서(220)는 제1 운영체제(233-1)를 기반으로 클라이언트(234-1)를 이용하여 통신 모듈(210)을 통해 외부 서버(예: 도 1의 서버(108))로부터 제1 데이터와 지정된 키를 이용하여 생성된 유효성 정보을 수신할 수 있고, 데몬(234-2)을 이용하여 수신된 제1 데이터와 유효성 정보를 제2 운영체제(233-2)를 기반으로 실행되는 어플리케이션(235)에 전달할 수 있다. 프로세서(220)는 제2 운영체제(233-2)를 기반으로 실행되는 어플리케이션(235)을 통해 제1 데이터의 유효성을 판단하고, 유효한 경우 제1 데이터를 기반으로 메모리(230)에 저장된 데이터를 업데이트 하거나 전자 장치(201)의 상태를 업데이트할 수 있다. 다양한 실시예에 따르면 유효성 정보는 제1 데이터, 지정된 키, 전자 장치에서 생성된 랜덤값(예: device nonce)를 기반으로 상기 외부 서버에서 생성된 토큰(token)일 수 있다. 다양한 실시예에 따르면 토큰은 HMAC(hash-based message authentication code)를 포함할 수 있다. 다양한 실시예에 따르면 제1 데이터는 상기 전자 장치의 디스플레이 데이터 또는 락 상태를 업데이트하기 위한 데이터를 포함할 수 있다.
다양한 실시예에 따르면 프로세서(220)는 제1 운영체제(233-1)를 기반으로 클라이언트(234-1)를 이용하여 통신 모듈(210)을 통해 외보 서버(예: 도 1의 서버(108))로부터 서버로부터 제2 데이터 전송 요청을 수신할 수 있고, 데몬(234-2)을 이용하여 수신된 제2 데이터 전송 요청을 제2 운영체제(233-2)를 기반으로 실행되는 어플리케이션(235)에 전달할 수 있다. 프로세서(220)는 제2 운영체제(233-2)를 기반으로 실행되는 어플리케이션(235)을 통해 지정된 키를 이용하여 상기 요청된 제2 데이터를 암호화하여 데몬(234-2)에 전달할 수 있다. 프로세서(220)는 클라이언트(234-1)를 이용하여 데몬(234-2)에 전달된 암호화된 제2 데이터를 통신 모듈(210)을 통해 외부 서버(예: 도 1의 서버(108))로부터 서버로 전송할 수 있다.
다양한 실시예에 따르면 전자 장치(예: 도 1의 전자 장치(101) 또는 도 2의 전자 장치(201))에서 보안 운영체제 기반 데이터 송수신 방법은 제1 운영체제(예: 도 2의 제1 운영체제(233-1))를 기반으로 통신 모듈(예: 도 1의 통신 모듈(190) 또는 도 2의 통신 모듈(210))을 이용하여 외부 전자 장치(예: 도 1의 전자 장치(102), 전자 장치(104), 또는 서버(108)) 와 통신을 통해 데이터를 수신 또는 전송하는 동작 및 제2 운영체제를 기반으로 지정된 키를 이용하여 상기 수신된 데이터 또는 상기 외부 전자 장치로 전송할 데이터를 처리하도록 하는 동작을 포함할 수 있다.
다양한 실시예에 따르면 상기 지정된 키는 비밀 키(secret key)일 수 있으며, 상기 지정된 키는 상기 제2 운영체제에 의해서만 엑세스 가능한 저장 영역에 저장될 수 있다.
다양한 실시예에 따르면 상기 전자 장치는 상기 제2 운영체제에 의해서만 엑세스 가능한 저장 영역인 RPMB(relay protected memory block)를 포함할 수 있다.
다양한 실시예에 따르면 상기 방법은 상기 제2 운영체제가 상기 지정된 키를 암호화하여 상기 제1 운영 체제에 전달하고, 상기 제1 운영체제가 상기 암호화된 지정된 키를 상기 통신 모듈을 통해 상기 외부 전자 장치로 전송하는 동작을 더 포함할 수 있다.
다양한 실시예에 따르면 상기 방법에서는 제1 운영체제를 기반으로 상기 통신 모듈을 이용하여 상기 외부 전자 장치로부터 지정된 키를 이용하여 생성된 유효성 정보와 제1 데이터가 수신되면, 상기 제2 운영체제를 기반으로 상기 지정된 키와 상기 유효성 정보를 이용하여 상기 제1 데이터의 유효성을 판단하고, 유효한 경우 상기 제1 데이터를 기반으로 저장된 데이터를 업데이트 하거나 상기 전자 장치의 상태를 업데이트할 수 있다.
다양한 실시예에 따르면 상기 유효성 정보는 상기 제1 데이터, 상기 지정된 키, 상기 전자 장치에서 생성된 랜덤값(예: device nonce)를 기반으로 상기 외부 전자 장치에서 생성된 토큰(token)일 수 있다.
다양한 실시예에 따르면 상기 제1 데이터는 상기 전자 장치의 디스플레이 데이터 또는 락(lock) 상태를 업데이트하기 위한 데이터를 포함할 수 있다.
다양한 실시예에 따르면 상기 전자 장치는 상기 제1 운영체제를 기반으로 상기 통신 모듈을 이용하여 상기 외부 전자 장치로부터 제2 데이터 전송 요청이 수신되면, 상기 제2 운영체제를 기반으로 상기 지정된 키를 이용하여 상기 제2 데이터를 암호화하여 제공할 수 있다.
다양한 실시예에 따르면 상기 방법은 상기 제1 운영체제를 기반으로 상기 무선 통신 모듈을 이용하여 상기 외부 전자 장치로부터 상기 외부 전자 장치를 인증하기 위한 인증 정보를 수신하는 동작 및 상기 제2 운영체제를 기반으로 상기 수신된 인증 정보를 이용하여 상기 외부 전자 장치를 인증하는 동작을 더 포함할 수 있다.
도 3은 다양한 실시예에 따른 전자 장치의 동작 흐름도이다.
도 3을 참조하면, 전자 장치(201)(예: 도 1의 전자 장치(101))의 프로세서(220)(예: 도 1의 프로세서(120))는 310 동작에서 제1 운영체제(233-1)를 기반으로 통신 모듈(210)을 이용하여 외부 전자 장치(예: 도 1의 전자장치(102), 전자 장치(104), 또는 서버(108)))와 통신을 통해 데이터를 수신하거나 전송할 수 있다. 프로세서(220)는 320 동작에서 제2 운영체제(233-2)를 기반으로 지정된 키 예를 들면, 비밀 키(secret key)를 이용하여 상기 수신된 데이터 또는 상기 외부 서버로 전송할 데이터를 처리할 수 있다.
도 4 는 다양한 실시예에 따른 전자 장치에서 외부 전자 장치에 지정된 키를 전송하는 동작을 나타낸 흐름도이다.
도 4를 참조하면, 전자 장치(201)(예: 도 1의 전자 장치(101))의 프로세서(220)(예: 도 1의 프로세서(120))는 410 동작에서 제1 운영체제(233-1)를 기반으로 외부 전자 장치(예: 도 1의 전자 장치(102), 전자 장치(104), 또는 서버(108))(이하 '서버(108)'를 예를 들어 설명함) 를 인증하기 위한 인증 정보(certificate)를 수신할 수 있다. 다양한 실시예에 따르면, 프로세서(220)는 제1 운영체제(233-1)를 기반으로 어플리케이션 프레임워크(234)의 클라이언트(234-1)를 이용하여 통신 모듈(210)을 통해 서버(108)로부터 서버(108)를 인증하기 위한 인증 정보(certificate)를 수신할 수 있고, 데몬(234-2)을 이용하여 수신된 인증 정보를 제2 운영체제(233-2)를 기반으로 실행되는 어플리케이션(235)에 전달할 수 있다.
프로세서(220)는 420 동작에서 제2 운영체제(233-2)를 기반으로 상기 수신된 인증 정보를 이용하여 서버(108)를 인증할 수 있다. 다양한 실시예에 따르면 프로세서(220)는 제2 운영체제(233-2)를 기반으로 실행되는 어플리케이션(235)을 통해 상기 수신된 인증 정보를 이용하여 서버(108)를 인증할 수 있다.
프로세서(220)는 430 동작에서 제2 운영체제(233-2)를 기반으로 지정된 키를 암호화할 수 있다. 다양한 실시예예 따르면, 프로세서(220)는 인증 성공에 따라 제2 운영체제(233-2)를 기반으로 실행되는 어플리케이션(235)을 통해 지정된 키를 암호화하여 제1 운영체제(233-1) 기반의 데몬(234-2)에 전달할 수 있다.
다양한 실시예에 따르면 프로세서(220)는 하이브리드 암호화(hybrid encryption) 방식을 이용하여 지정된 키를 암호화할 수 있다. 하이브리드 암호화 방식은 시메트릭(Symmetric) 암호화(예를 들면, AES(advanced encryption standard) 알고리즘)으로 실제 데이터 즉, 지정된 키를 암호화 하고, 시메트릭 암호화에 사용되는 key와 IV(Initial Vector)를 어시메트릭(asymmetric) 암호화(예를 들면, RSA(rivest shamir adleman))로 암호화하는 방식일 수 있다. 다시 말해, 시메트릭 암호화에 사용하는 키(Session key)와 IV는 매 프로토콜마다 랜덤(Random)하게 생성되는 값일 수 있으며, 결과적으로 Session key와 IV를 생성하고, 이를 이용해 지정된 키가 암호화될 수 있다. 일 실시예에 따르면 생성된 Session key와 IV를 이용하여 지정된 키, 전자 장치에서 생성된 device nonce, 서버(108)에서 server nonce의 조합이 암호화될 수도 있다. 암호화된 지정된 키는 서버에서만 복호화 할 수 있기 때문에, 통신 과정에서 암호화된 지정된 키가 노출되더라도 공격자가 복호화 불능으로 인해 지정된 키를 획득할 수 없으며, 이에 따라 전자 장치에서 서버로 전송하는 지정된 키의 보안이 보장될 수 있다.
프로세서(220)는 440 동작에서 제1 운영체제(233-1)를 기반으로 상기 암호화된 지정된 키를 서버(108)로 전송할 수 있다. 다양한 실시예에 따르면 프로세서(220)는 제1 운영체제(233-1) 기반의 데몬(234-2)에 전달된 암호화된 지정된 키를 클라이언트(234-1)을 이용하여 통신 모듈(210)을 통해 서버(108)로 전송할 수 있다.
도 5 는 다양한 실시예에 따른 전자 장치에서 외부 전자 장치로부터 데이터를 수신하는 동작을 나타낸 흐름도이다.
도 5를 참조하면, 전자 장치(201)(예: 도 1의 전자 장치(101))의 프로세서(220)(예: 도 1의 프로세서(120))는 510 동작에서 제1 운영체제(233-1)를 기반으로 외부 전자 장치(예: 도 1의 전자장치(102), 전자 장치(104), 또는 서버(108))(이하 '서버(108)'를 예를 들어 설명함)로부터 제1 데이터와 지정된 키 기반의 유효성 정보를 수신할 수 있다. 예를 들면, 제1 데이터는 전자 장치(201)에 쓰기 요청되는 데이터로서 프로세서(220)는 서버(108)로부터 쓰기 요청(wirte request)을 수신 후 제1 데이터와 유효성 정보를 수신할 수 있다. 다양한 실시예에 따르면 프로세서(220)는 제1 운영체제(233-1)를 기반으로 클라이언트(234-1)를 이용하여 통신 모듈(210)을 통해 서버(108)로부터 제1 데이터와 유효성 정보을 수신할 수 있고, 데몬(234-2)을 이용하여 수신된 제1 데이터와 유효성 정보를 제2 운영체제(233-2)를 기반으로 실행되는 어플리케이션(235)에 전달할 수 있다.
프로세서(220)는 520 동작에서 제2 운영체제(233-2)를 기반으로 상기 수신된 유효성 정보를 이용하여 상기 수신된 제1 데이터의 유효성을 판단할 수 있다. 다양한 실시예에 따르면 유효성 정보는 제1 데이터, 지정된 키, 전자 장치에서 생성된 랜덤값(nonce)을 기반으로 상기 외부 서버에서 생성된 토큰일 수 있다. 다양한 실시예에 따르면 토큰은 HMAC(hash-based message authentication code)를 포함할 수 있다. 다양한 실시예에 따르면 프로세서(220)는 제2 운영체제(233-2)를 기반으로 실행되는 어플리케이션(235)을 통해 지정된 키를 이용하여 상기 HMAC(hash-based message authentication code)를 판단하여 제1 데이터의 유효성을 판단할 수 있다.
프로세서(220)는 530 동작에서 제1 데이터가 유효한 경우 제1 데이터를 이용하여 메모리(230)에 저장된 데이터를 업데이트 하거나 전자 장치(201)의 상태를 업데이트할 수 있다. 다양한 실시예에 따르면 프로세서(220)는 제1 데이터가 유효한 경우 제2 운영체제(233-2)를 기반으로 실행되는 어플리케이션(235)을 통해 제1 데이터를 이용하여 메모리(230)에 저장된 데이터를 업데이트 하거나 전자 장치(201)의 상태를 업데이트할 수 있다. 다양한 실시예에 따르면 제1 데이터는 상기 전자 장치의 디스플레이 데이터 또는 락 상태를 업데이트하기 위한 데이터를 포함할 수 있다.
도 6은 다양한 실시예에 따른 전자 장치에서 외부 전자 장치에 데이터를 전송하는 동작을 나타낸 흐름도이다.
도 6을 참조하면, 전자 장치(201)(예: 도 1의 전자 장치(101))의 프로세서(220)(예: 도 1의 프로세서(120))는 610 동작에서 제1 운영체제(233-1)를 기반으로 외부 전자 장치(예: 도 1의 전자장치(102), 전자 장치(104), 또는 서버(108))(이하 '서버(108)'를 예를 들어 설명함) 로부터 제2 데이터 전송 요청을 수신할 수 있다. 예를 들면, 제2 데이터 전송 요청은 전자 장치(201)의 데이터를 읽기를 요청하는 읽기 요청(read request)일 수 있다. 다양한 실시예에 따르면 프로세서(220)는 제1 운영체제(233-1)를 기반으로 클라이언트(234-1)를 이용하여 통신 모듈(210)을 통해 서버(예: 도 1의 108)로부터 서버(108)로부터 제2 데이터 전송 요청을 수신할 수 있고, 데몬(234-2)을 이용하여 수신된 제2 데이터 전송 요청을 제2 운영체제(233-2)를 기반으로 실행되는 어플리케이션(235)에 전달할 수 있다.
프로세서(220)는 620 동작에서 제2 운영체제(233-2)를 기반으로 상기 요청된 제2 데이터를 암호화하여 제공할 수 있다. 다양한 실시예에 따르면 프로세서(220)는 제2 운영체제(233-2)를 기반으로 실행되는 어플리케이션(235)을 통해 지정된 키를 이용하여 상기 요청된 제2 데이터를 암호화할 수 있다. 다양한 실시예에 따르면 프로세서(220)는 하이브리드 암호화(hybrid encryption) 방식을 이용하여 제2 데이터를 암호화할 수 있다. 하이브리드 암호화 방식은 시메트릭(Symmetric) 암호화(예를 들면, AES(advanced encryption standard) 알고리즘)으로 실제 데이터 즉, 제2 데이터를 암호화 하고, 시메트릭 암호화에 사용되는 key와 IV(Initial Vector)를 어시메트릭(asymmetric) 암호화(예를 들면, RSA(rivest shamir adleman))로 암호화하는 방식일 수 있다. 다시 말해, 시메트릭 암호화에 사용하는 키(Session key)와 IV는 매 프로토콜마다 랜덤(Random)하게 생성되는 값일 수 있으며, 결과적으로 Session key와 IV를 생성하고, 이를 이용해 제2 데이터가 암호화될 수 있다. 일 실시예에 따르면 생성된 Session key와 IV를 이용하여 제2 데이터, 전자 장치에서 생성된 nonce(랜덤 값), 서버에서 생성된 nonce(랜덤 값)의 조합이 암호화될 수도 있다 암호화된 제2 데이터는 서버에서만 복호화 할 수 있기 때문에, 통신 과정에서 암호화된 제2 데이터가 노출되더라도 공격자가 복호화 불능으로 인해 제2 데이터를 획득할 수 없으며, 이에 따라 전자 장치에서 서버(108)로 전송하는 제2 데이터의 보안이 보장될 수 있다.
다양한 실시예에 따르면 프로세서(220)는 상기 암호화된 제2 데이터는, 어플리케이션(235)을 통해 제1 운영체제(233-1)를 기반으로 데몬(234-2)에 전달될 수 있다.
프로세서(220)는 630 동작에서 제1 운영체제(233-1)를 기반으로 상기 암호화된 제2 데이터를 서버(108)로 전송할 수 있다. 다양한 실시예에 따르면 프로세서(220)는 제1 운영체제(233-1) 기반의 데몬(234-2)에 전달된 암호화된 제2 데이터를 클라이언트(234-1)을 이용하여 통신 모듈(210)을 통해 서버(108)로 전송할 수 있다.
도 7은 다양한 실시예에 따른 전자 장치와 서버가 지정된 키를 공유하는 동작을 나타낸 도면이다.
도 7을 참조하면, 전자 장치(701)(예: 도 1의 전자 장치(101) 또는 도 2의 전자 장치(201))는 제1 운영체제(701-1)(예: 도 2의 제1 운영체제(233-1)) 및 제2 운영체제(701-2)(예: 도 2의 제2 운영체제(233-2))를 기반으로 동작할 수 있다. 전자 장치(701)는 712 동작에서 제1 운영체제(701-1)를 기반으로 초기 등록 요청(initialization request) 메시지를 서버(702)(예: 도 1의 서버(108))로 전송할 수 있다. 일실시예에 따르면 초기 등록 요청(initialization request) 메시지는 전자 장치(701)의 장치 고유 정보(device unique info)를 포함할 수 있다. 예를 들면 장치 고유 정보는 전자 장치의 IMEI(international mobile equipment identity)를 포함할 수 있다.
서버(702)는 초기 등록 요청(initialization request) 메시지가 수신되면 714 동작에서 전자 장치(701)가 초기 등록 대상 장치인지 여부를 판단하고, 초기 등록 대상 장치인 경우 server nonce를 생성할 수 있다. 일실시예에 따르면 server nonce는 서버(702)에서 랜덤하게 생성되는 1회성 값일 수 있다.
서버(702)는 716 동작에서 상기 생성된 server nonce와 서버를 인증하기 위한 인증 정보(certificate)인 server cert를 전자 장치(701)로 전송할 수 있다. 다양한 실시예에 따르면 서버(702)는 상기 전자 장치(701)와 연동 가능한 서버임을 나타내는 인증 정보를 저장할 수 있다. 일실시예에 따르면 상기 서버 인증 정보는 상기 전자 장치(701)와 연관된 ROOT CA(예: 전자 장치의 제조사)에 의해 발행되어 상기 서버(702)에 저장될 수 있다.
전자 장치(701)는 제1 운영체제(701-1)를 기반으로 server nonce와 server cert를 수신할 수 있고, 718 동작에서 상기 수신된 server nonce와 server cert를 제2 운영체제(701-2)로 전달할 수 있다. 일실시예에 따르면 전자 장치(701)는 상기 수신된 server nonce와 server cert를 제2 운영체제(701-2)를 기반으로 실행되는 어플리케이션(예: 도 2의 235)에 전달할 수 있다.
전자 장치(701)는 720 동작에서 제2 운영체제(701-2)를 기반으로 서버를 인증하기 위한 인증 정보(server cert)의 유효성을 판단하여 유효한 경우 서버(702)와 공유할 지정된 키(secret key)를 암호화할 수 있다. 다양한 실시예에 따르면 전자 장치(701)는 제2 운영체제(701-2)를 기반으로 실행되는 어플리케이션(예: 235)을 통해 하이브리드 암호화(hybrid encryption) 방식을 이용하여 지정된 키(secret key)를 암호화할 수 있다. 예를 들면 전자 장치(701)는 제2 운영체제(701-2)를 기반으로 device nonce를 생성하고, 하이브리드 암호화를 위한 Session key 및 IV(initial vector)를 생성한 후, Session key 및 IV와 지정된 키(secret key)와 server nonce, device nonce를 이용하여 지정된 키에 대응된 암호화 메시지(TaMsg)를 생성할 수 있다.
전자 장치(701)는 722 동작에서 제2 운영체제(701-2)를 기반으로 생성된 지정된 키에 대응된 암호화 메시지(TaMsg)를 제1 운영체제(701-1)에 전달할 수 있다. 예를 들면, 전자 장치(701)는 제2 운영체제(701-2)를 기반의 어플리케이션(예: 도 2의 235)을 이용하여 제1 운영체제(701-1) 기반의 클라이언트(도 2의 234-1)에 생성된 지정된 키에 대응된 암호화 메시지(TaMsg)를 전달할 수 있다.
전자 장치(701)는 724 동작에서 제1 운영체제(701-1)를 기반으로 지정된 키에 대응된 암호화 메시지(TaMsg)를 통신 모듈을 통해 서버(702)에 전달할 수 있고, 서버(702)는 지정된 키에 대응된 암호화 메시지(TaMsg)를 수신할 수 있다.
서버(702)는 726 동작에서 전자 장치(701)로부터 수신된 지정된 키에 대응된 암호화 메시지(TaMsg)를 복호화하여 지정된 키(secret key)와 server nonce, device nonce를 확인할 수 있고, 확인 결과 이상이 없으면 지정된 키(secret key)를 저장할 수 있다.
서버(702)는 728 동작에서 지정된 키(secret key)의 성공적인 수신을 알리기 위한 정보 예컨대 토큰(token)을 생성할 수 있다. 다양한 실시예에 따르면 서버(702)는 HMAC(hash-based message authentication code)의 알고리즘의 키(key)에 지정된 키(secret key)를 대입하고, 값(value)에 device nonce를 대입하여 HMAC 값을 생성할 수 있다. 서버(702)는 730 동작에서 상기 생성된 HMAC 값을 전자 장치(701)로 전송할 수 있다.
전자 장치(701)는 제1 운영체제(701-1)를 기반으로 서버(702)로부터 지정된 키(secret key)의 성공적인 수신을 알리는 정보 예컨대 토큰(token)을 수신할 수 있고, 732 동작에서 상기 수신된 토큰(token)을 제2 운영체제(701-2)로 전달할 수 있다. 일실시예에 따르면 전자 장치(701)는 제1 운영체제(701-1)를 기반으로 상기 수신된 토큰(token)을 제2 운영체제(701-2)를 기반으로 실행되는 어플리케이션(예: 도 2의 235)에 전달할 수 있다.
전자 장치(701)는 734 동작에서 제2 운영체제(701-2)를 기반으로 상기 제1 운영체제(701-1)로부터 전달받은 토큰을 확인함으로써 서버(702)가 지정된 키(secret key)를 성공적으로 수신했음을 확인할 수 있다. 전자 장치(701)는 토큰 확인 결과 이상이 없으면 지정된 키(secret key)를 RPMB(replay protected memory block)(예: 도 2의 RPMB(236))에 저장할 수 있다.
전자 장치(701)는 736 동작에서 제2 운영체제(701-2)를 기반으로 확인된 결과(device result)를 제1 운영체제(701-1)로 전달할 수 있고, 전자 장치(701)는 738 동작에서 제1 운영체제(701-1)를 기반으로 상기 확인된 결과(device result)를 통신 모듈을 통해 서버(702)로 전송할 수 있다. 이에 따라 전자 장치(701)와 서버(702)는 동일하 지정된 키(secret key)를 안전하게 공유할 수 있게 된다.
도 8은 다양한 실시예에 따른 서버로부터 데이터 쓰기 요청에 따른 전자 장치와 서버의 동작을 나타낸 도면이다.
도 8을 참조하면, 서버(702)(예: 도 1의 서버(108))는 812 동작에서 데이터 쓰기 요청 (write request) 메시지를 전자 장치(701)(예: 도 1의 전자 장치(101) 또는 도 2의 전자 장치(201))에 전송할 수 있다. 다양한 실시예에 따르면 서버(702)는 전자 장치(701)에 저장된 데이터 또는 상태를 업데이트 해야하는 경우 저장된 데이터 또는 상태를 업데이트 하는데 필요한 제1 데이터를 전자 장치(701)에 쓰도록 요청하기 위한 메시지를 전자 장치(701)에 전송할 수 있다. 일실시예에 따르면 서버(702)는 전자 장치(701)에 저장된 데이터 또는 상태를 업데이트 해야하는 경우 server nonce를 생성하고, 생성된 server nonce와 서버를 인증하기 위한 인증 정보(certificate)인 server cert를 포함하는 데이터 쓰기 요청 (write request) 메시지를 전자 장치(701)로 전송할 수 있다. 일실시예에 따르면 server nonce는 서버에서 랜덤하게 생성되는 1회성 값일 수 있다.
다양한 실시예에 따르면 전자 장치(701)는 제1 운영체제(701-1)(예: 도 2의 제1 운영체제(233-1)) 및 제2 운영체제(701-2)(예: 도 2의 제2 운영체제(233-2))를 기반으로 동작할 수 있으며, 제1 운영체제(701-1)를 기반으로 클라이언트(예: 도 2의 클라이언트(234-1))를 이용하여 데이터 쓰기 요청 (write request) 메시지를 수신할 수 있다.
전자 장치(701)는 제1 운영체제(701-1)를 기반으로 데이터 쓰기 요청(write request) 메시지가 수신된 경우 814 동작에서 데이터 쓰기 요청(write request) 메시지에 포함된 server nonce와 server cert를 제2 운영체제(701-2)로 전달할 수 있다. 예를 들면, 전자 장치(701)는 제2 운영체제(701-2)를 기반으로 실행되는 어플리케이션(예: 도 2의 235)에 server nonce와 server cert를 전달할 수 있다.
전자 장치(701)는 816 동작에서 제2 운영체제(701-2)를 기반으로 서버(702)를 인증하기 위한 인증 정보(server cert)의 유효성을 판단하여 유효한 경우 device nonce를 생성하고, device nonce를 암호화할 수 있다. 일실시예에 따르면 device nonce는 전자 장치(701)에서 랜덤하게 생성되는 1회성 값일 수 있다. 다양한 실시예에 따르면 전자 장치(701)는 제2 운영체제(701-2)를 기반으로 실행되는 어플리케이션(예: 235)을 통해 하이브리드 암호화(hybrid encryption) 방식을 이용하여 device nonce를 암호화할 수 있다. 예를 들면 전자 장치(701)는 제2 운영체제(701-2)를 기반으로 device nonce를 생성하고, 하이브리드 암호화를 위한 Session key 및 IV(initial vector)를 생성한 후, Session key 및 IV와 server nonce, device nonce를 이용하여 지정된 키에 대응된 암호화 메시지(TaMsg)를 생성할 수 있다.
전자 장치(701)는 818 동작에서 제2 운영체제(701-2)를 기반으로 생성된 device nonce에 대응된 암호화 메시지(TaMsg)를 제1 운영체제(701-1)에 전달할 수 있다. 예를 들면, 전자 장치(701)는 제2 운영체제(701-2)를 기반의 어플리케이션(예: 도 2의 어플리케이션(235))을 이용하여 제1 운영체제(701-1) 기반의 클라이언트(예: 도 2의 클라이언트(234-1))에 device nonce에 대응된 암호화 메시지(TaMsg)를 전달할 수 있다.
전자 장치(701)는 820 동작에서 제1 운영체제(701-1)를 기반으로 device nonce에 대응된 암호화 메시지(TaMsg)를 통신 모듈을 통해 서버(702)에 전달할 수 있고, 서버(702)는 device nonce에 대응된 암호화 메시지(TaMsg)를 수신할 수 있다.
서버(702)는 822 동작에서 전자 장치(701)로부터 수신된 device nonce에 대응된 암호화 메시지(TaMsg)를 복호화하여 device nonce를 확인할 수 있다
서버(702)는 824 동작에서 상기 device nonce 확인 결과 이상이 없으면 유효성 정보(token)를 생성하여 유효성 정보(예를 들면, token 또는 HMAC)와 제1 데이터를 전자 장치(701)로 전송할 수 있다. 다양한 실시예에 따르면 유효성 정보는 전자 장치(701)에 쓰기 요청할 제1 데이터의 유효성 판단을 위한 토큰을 포함할 수 있다. 일실시예에 따르면 서버(702)는 제1 데이터, 지정된 키 예를 들면, 비밀 키(secret key), device nonce를 기반으로 토큰을 생성할 수 있다. 다양한 실시예에 따르면 서버(702)는 HMAC(hash-based message authentication code)의 알고리즘의 키(key)에 비밀 키(secret key)를 대입하고, 값(value)에 제1 데이터(state or data) 및 device nonce를 대입하여 HMAC을 생성할 수 있다. 서버(702)는 유효성 정보(예를 들면, token 또는 HMAC)와 제1 데이터를 전자 장치(701)로 전송할 수 있다.
전자 장치(701)는 826 동작에서 제1 운영체제(701-1)를 기반으로 서버(702)로부터 유효성 정보(예를 들면, token 또는 HMAC)와 제1 데이터를 수신할 수 있고, 828 동작에서 유효성 정보와 제1 데이터를 제2 운영체제(701-2)를 기반으로 실행되는 어플리케이션(예: 도 2의 어플리케이션(235))에 전달할 수 있다.
전자 장치(701)는 828 동작에서 제2 운영체제(701-2)를 기반으로 실행되는 어플리케이션(예: 도 2의 어플리케이션(235))을 통해 지정된 키 예를 들면, 비밀 키(secret key)와 유효성 정보를 이용하여 제1 데이터의 유효성을 판단하고, 제1 데이터가 유효한 경우 제1 데이터를 이용하여 메모리(예: 도 2의 메모리(230)) 또는 RPMB(예: 도 2의 RPMB(236)에 저장된 데이터를 업데이트 하거나 전자 장치(701)의 상태를 업데이트할 수 있다. 다양한 실시예에 따르면 제1 데이터는 상기 전자 장치의 디스플레이 데이터 또는 락 상태를 업데이트하기 위한 데이터를 포함할 수 있다.
전자 장치(701)는 830 동작에서 제2 운영체제(701-2)를 기반으로 저장된 데이터 또는 상태의 성공적인 업데이트를 알리기 위한 정보(device result)를 생성하고, 저장된 데이터 또는 상태의 성공적인 업데이트를 알리기 위한 정보(device result)를 제1 운영체제(701-1)로 전달할 수 있다. 전자 장치(701)는 832 동작에서 제1 운영체제(701-1)를 기반으로 통신 모듈을 통해 저장된 데이터 또는 상태의 성공적인 업데이트를 알리기 위한 정보(device result)를 서버(701)로 전송할 수 있다.
도 9는 다양한 실시예에 따른 서버로부터 데이터 읽기 요청에 따른 전자 장치와 서버의 동작을 나타낸 도면이다.
도 9를 참조하면, 서버(702)(예: 도 1의 서버(108))는 912 동작에서 데이터 읽기 요청(read request) 메시지를 전자 장치(701)(예: 도 1의 전자 장치(101) 또는 도 2의 전자 장치(201))에 전송할 수 있다. 다양한 실시예에 따르면 서버(702)는 전자 장치(701)에 저장된 데이터 또는 상태를 확인하고자 하는 경우 저장된 데이터 또는 상태를 업데이트 확인하는데 필요한 제2 데이터를 전자 장치(701)로부터 읽어오도록 하기 위한 메시지를 전자 장치(701)에 전송할 수 있다. 일실시예에 따르면 서버(702)는 전자 장치(701)에 저장된 데이터 또는 상태를 업데이트 확인하기 위한 경우 server nonce를 생성하고, 생성된 server nonce와 서버를 인증하기 위한 인증 정보(certificate)인 server cert를 포함하는 데이터 읽기 요청(read request) 메시지를 전자 장치(701)로 전송할 수 있다. 일실시예에 따르면 server nonce는 서버에서 랜덤하게 생성되는 1회성 값일 수 있다.
다양한 실시예에 따르면 전자 장치(701)는 제1 운영체제(701-1)(예: 도 2의 제2 운영체제(233-1)) 및 제2 운영체제(701-2)(예: 도 2의 제2 운영체제(233-2))를 기반으로 동작할 수 있으며, 제1 운영체제(701-1)를 기반으로 클라이언트(예: 도 2의 클라이언트(234-1))를 이용하여 데이터 읽기 요청(read request) 메시지를 수신할 수 있다.
전자 장치(701)는 제1 운영체제(701-1)를 기반으로 데이터 읽기 요청(read request) 메시지가 수신된 경우 914 동작에서 데이터 읽기 요청(read request) 메시지에 포함된 server nonce와 server cert를 제2 운영체제(701-2)로 전달할 수 있다. 예를 들면, 전자 장치(701)는 제2 운영체제(701-2)를 기반으로 실행되는 어플리케이션(예: 도 2의 235)에 server nonce와 server cert를 전달할 수 있다.
전자 장치(701)는 916 동작에서 제2 운영체제(701-2)를 기반으로 서버(702)를 인증하기 위한 인증 정보(server cert)의 유효성을 판단하여 유효한 경우 읽기 요청된 제2 데이터를 읽어오고, 제2 데이터를 암호화할 수 있다. 다양한 실시예에 따르면 전자 장치(701)는 제2 운영체제(701-2)를 기반으로 실행되는 어플리케이션(예: 도 2의 어플리케이션(235))을 통해 하이브리드 암호화(hybrid encryption) 방식을 이용하여 제2 데이터를 암호화할 수 있다. 예를 들면 전자 장치(701)는 하이브리드 암호화를 위한 Session key 및 IV(initial vector)를 생성한 후, Session key 및 IV와 server nonce, 제2 데이터(state or data)를 이용하여 제2 데이터에 대응된 암호화 메시지(TaMsg)를 생성할 수 있다.
전자 장치(701)는 918 동작에서 제2 운영체제(701-2)를 기반으로 생성된 제2 데이터에 대응된 암호화 메시지(TaMsg)를 제1 운영체제(701-1)에 전달할 수 있다. 예를 들면, 전자 장치(701)는 제2 운영체제(701-2)를 기반의 어플리케이션(예: 도 2의 어플리케이션(235))을 이용하여 제1 운영체제(701-1) 기반의 클라이언트(도 2의 클라이언트(234-1))에 제2 데이터에 대응된 암호화 메시지(TaMsg)를 전달할 수 있다.
전자 장치(701)는 920 동작에서 제1 운영체제(701-1)를 기반으로 제2 데이터에 대응된 암호화 메시지(TaMsg)를 통신 모듈을 통해 서버(702)에 전달할 수 있고, 서버(702)는 제2 데이터에 대응된 암호화 메시지(TaMsg)를 수신할 수 있다.
서버(702)는 922 동작에서 전자 장치(701)로부터 수신된 제2 데이터에 대응된 암호화 메시지(TaMsg)를 복호화하여 제2 데이터를 획득할 수 있다. 다양한 실시예에 따르면 서버(702)는 제2 데이터를 통해 전자 장치(701)의 상태 또는 데이터를 확인할 수 있다.
본 문서에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 다양한 실시예에서, 전자 장치는 본 문서에서 기술된 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 또한, 다양한 실시예에 따른 전자 장치의 구성요소들 중 일부가 결합되어 하나의 개체(entity)로 구성됨으로써, 결합되기 이전의 해당 구성요소들의 기능을 동일하게 수행할 수 있다.
본 문서에서 사용된 용어 "모듈"은, 예를 들면, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은, 예를 들면, 유닛(unit), 로직(logic), 논리 블록(logical block), 부품(component), 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면,"모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.
다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 프로세서(120))에 의해 실행될 경우, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 메모리(130)가 될 수 있다.
다양한 실시 예에 따르면, 컴퓨터 판독 가능 기록 매체에 있어서, 상기 컴퓨터 판독 가능 기록 매체에 저장된 프로그램은 전자 장치에서, 제1 운영체제를 기반으로 통신 모듈을 이용하여 외부 전자 장치와 통신을 통해 데이터를 수신 또는 전송하는 동작 및 제2 운영체제를 기반으로 지정된 키를 이용하여 상기 수신된 데이터 또는 상기 외부 전자 장치로 전송할 데이터를 처리하도록 하는 동작을 수행할 수 있다.
컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(magnetic media)(예: 자기테이프), 광기록 매체(optical media)(예: CD-ROM(compact disc read only memory), DVD(digital versatile disc), 자기-광 매체(magneto-optical media)(예: 플롭티컬 디스크(floptical disk)), 하드웨어 장치(예: ROM(read only memory), RAM(random access memory), 또는 플래시 메모리 등) 등을 포함할 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 다양한 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.
다양한 실시예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 다양한 실시예에 따른 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서 설명한 본 발명의 다양한 실시예의 전자 장치는 전술한 실시 예 및 도면에 의해 한정되는 것은 아니고, 본 발명의 기술적 범위 내에서 여러 가지 치환, 변형 및 변경이 가능함은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.

Claims (20)

  1. 전자 장치에 있어서
    무선 통신을 수행하는 통신 모듈;
    메모리;
    상기 통신 모듈 및 메모리와 전기적으로 연결된 적어도 하나의 프로세서를 포함하고,
    상기 메모리는 실행 시, 상기 적어도 하나의 프로세서가,
    상기 통신 모듈을 이용하여, 제1 운영체제를 기반으로 상기 전자 장치의 고유 정보를 포함하는 초기 요청 메시지를 외부 전자 장치로 전송하고,
    상기 통신 모듈을 이용하여, 상기 제1 운영체제를 기반으로 외부 전자 장치 임시 값 및 외부 전자 장치 인증 정보를 상기 외부 전자 장치로부터 수신하고, 상기 외부 전자 장치 임시 값 및 상기 외부 전자 장치 인증 정보를 제2 운영체제로 전달하고,
    상기 외부 전자 장치 인증 정보가 유효하면, 상기 제2 운영체제를 기반으로 하이브리드 암호화를 위한 세션 키 및 초기 벡터, 지정된 키, 상기 외부 전자 장치 임시 값 및 전자 장치 임시 값을 이용하여 암호화 메시지를 생성하고,
    상기 통신 모듈을 이용하여, 상기 제1 운영체제를 기반으로 상기 암호화 메시지를 상기 외부 전자 장치로 전송하고,
    상기 통신 모듈을 이용하여, 상기 제1 운영체제를 기반으로 상기 암호화 메시지의 성공적인 수신을 알리는 통지 정보를 상기 외부 전자 장치로부터 수신하고, 상기 통지 정보를 상기 제2 운영체제로 전달하고,
    상기 통지 정보가 상기 제2 운영체제를 기반으로 확인되면, 상기 통신 모듈을 이용하여, 상기 제1 운영체제를 기반으로 상기 외부 전자 장치와 통신을 통해 데이터를 수신 또는 전송하고, 상기 제2 운영체제를 기반으로 상기 지정된 키를 이용하여 상기 수신된 데이터 또는 상기 외부 전자 장치로 전송할 데이터를 처리하도록 하는 인스트럭션들을 저장하는 전자 장치.
  2. 제1항에 있어서,
    상기 지정된 키는 비밀 키(secret key)이며,
    상기 메모리는 상기 제2 운영체제에 의해서만 엑세스 가능한 저장 영역에 상기 지정된 키를 저장하는 전자 장치.
  3. 제1항에 있어서,
    상기 메모리는,
    RPMB(replay protected memory block)를 포함하고, 상기 RPMB에 상기 지정된 키가 저장되는 전자 장치.
  4. 제2항에 있어서,
    상기 메모리는,
    실행 시, 상기 적어도 하나의 프로세서가,
    상기 제2 운영체제가 상기 지정된 키를 암호화하여 상기 제1 운영 체제에 전달하고, 상기 제1 운영체제가 상기 암호화된 지정된 키를 상기 통신 모듈을 통해 상기 외부 전자 장치로 전송하도록 하는 인스트럭션들을 더 저장하는 전자 장치.
  5. 제4항에 있어서,
    상기 인스트럭션들은,
    상기 적어도 하나의 프로세서가,
    상기 제1 운영체제를 기반으로 상기 통신 모듈을 이용하여 상기 외부 전자 장치로부터 제1 데이터와 상기 지정된 키를 이용하여 생성된 유효성 정보가 수신되면, 상기 제2 운영체제를 기반으로 상기 유효성 정보를 이용하여 상기 제1 데이터의 유효성을 판단하고, 유효한 경우 상기 제1 데이터를 기반으로 저장된 데이터를 업데이트 하거나 상기 전자 장치의 상태를 업데이트 하도록 하는 전자 장치.
  6. 제5항에 있어서,
    상기 제1 데이터와 연관된 유효성 정보는 상기 제1 데이터, 상기 지정된 키, 상기 전자 장치에서 생성된 랜덤값을 기반으로 상기 외부 전자 장치에서 생성된 토큰(token)인 전자 장치.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제5항에 있어서,
    상기 유효성 정보는 HMAC(Hash-based message authentication code)를 포함하는 전자 장치.
  8. 제5항에 있어서,
    상기 제1 데이터는 상기 전자 장치의 디스플레이 데이터 또는 락 상태를 업데이트하기 위한 데이터를 포함하는 전자 장치.
  9. 제1항에 있어서,
    상기 인스트럭션들은,
    상기 적어도 하나의 프로세서가,
    상기 제1 운영체제를 기반으로 상기 통신 모듈을 이용하여 상기 외부 전자 장치로부터 제2 데이터 전송 요청이 수신되면, 상기 제2 운영체제를 기반으로 상기 지정된 키를 이용하여 상기 제2 데이터를 암호화하여 제공하도록 하는 전자 장치.
  10. 삭제
  11. 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법에 있어서,
    통신 모듈을 이용하여, 제1 운영체제를 기반으로 상기 전자 장치의 고유 정보를 포함하는 초기 요청 메시지를 외부 전자 장치로 전송하는 동작;
    상기 통신 모듈을 이용하여, 상기 제1 운영체제를 기반으로 외부 전자 장치 임시 값 및 외부 전자 장치 인증 정보를 상기 외부 전자 장치로부터 수신하고, 상기 외부 전자 장치 임시 값 및 상기 외부 전자 장치 인증 정보를 제2 운영체제로 전달하는 동작;
    상기 외부 전자 장치 인증 정보가 유효하면, 상기 제2 운영체제를 기반으로 하이브리드 암호화를 위한 세션 키 및 초기 벡터, 지정된 키, 상기 외부 전자 장치 임시 값 및 전자 장치 임시 값을 이용하여 암호화 메시지를 생성하는 동작;
    상기 통신 모듈을 이용하여, 상기 제1 운영체제를 기반으로 상기 암호화 메시지를 상기 외부 전자 장치로 전송하는 동작;
    상기 통신 모듈을 이용하여, 상기 제1 운영체제를 기반으로 상기 암호화 메시지의 성공적인 수신을 알리는 통지 정보를 상기 외부 전자 장치로부터 수신하고, 상기 통지 정보를 상기 제2 운영체제로 전달하는 동작;
    상기 통지 정보가 상기 제2 운영체제를 기반으로 확인되면, 통신 모듈을 이용하여, 상기 제1 운영체제를 기반으로 상기 외부 전자 장치와 통신을 통해 데이터를 수신 또는 전송하는 동작; 및
    상기 제2 운영체제를 기반으로 상기 지정된 키를 이용하여 상기 수신된 데이터 또는 상기 외부 전자 장치로 전송할 데이터를 처리하도록 하는 동작을 포함하는 방법.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 지정된 키는 비밀 키(secret key)이고,
    상기 지정된 키는 상기 제2 운영체제에 의해서만 엑세스 가능한 저장 영역에 저장되는 방법.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 전자 장치는,
    상기 제2 운영체제에 의해서만 엑세스 가능한 RPMB(replay protected memory block)을 포함하는 방법.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 제2 운영체제가 상기 지정된 키를 암호화하여 상기 제1 운영 체제에 전달하고, 상기 제1 운영체제가 상기 암호화된 지정된 키를 상기 통신 모듈을 통해 상기 외부 전자 장치로 전송하는 동작을 더 포함하는 방법.
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제14항에 있어서,
    상기 제1 운영체제를 기반으로 상기 통신 모듈을 이용하여 상기 외부 전자 장치로부터 지정된 키를 이용하여 생성된 유효성 정보와 제1 데이터가 수신되면, 상기 제2 운영체제를 기반으로 상기 지정된 키와 상기 유효성 정보를 이용하여 상기 제1 데이터의 유효성을 판단하고, 유효한 경우 상기 제1 데이터를 기반으로 저장된 데이터를 업데이트 하거나 상기 전자 장치의 상태를 업데이트 하는 방법.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제15항에 있어서,
    상기 유효성 정보는 상기 제1 데이터, 상기 지정된 키, 상기 전자 장치에서 생성된 랜덤값을 기반으로 상기 외부 전자 장치에서 생성된 토큰(token)인 방법.
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제15항에 있어서,
    상기 제1 데이터는 상기 전자 장치의 디스플레이 데이터 또는 락 상태를 업데이트하기 위한 데이터를 포함하는 방법.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 제1 운영체제를 기반으로 상기 통신 모듈을 이용하여 상기 외부 전자 장치로부터 제2 데이터 전송 요청이 수신되면, 상기 제2 운영체제를 기반으로 상기 지정된 키를 이용하여 상기 제2 데이터를 암호화하여 제공하는 방법.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 제1 운영체제를 기반으로 상기 통신 모듈을 이용하여 상기 외부 전자 장치로부터 상기 외부 전자 장치를 인증하기 위한 인증 정보를 수신하는 동작; 및
    상기 제2 운영체제를 기반으로 상기 수신된 인증 정보를 이용하여 상기 외부 전자 장치를 인증하는 동작을 더 포함하는 방법.
  20. 컴퓨터 판독 가능 기록 매체에 있어서,
    상기 컴퓨터 판독 가능 기록 매체에 저장된 프로그램은 전자 장치에서,
    통신 모듈을 이용하여, 제1 운영체제를 기반으로 상기 전자 장치의 고유 정보를 포함하는 초기 요청 메시지를 외부 전자 장치로 전송하는 동작;
    상기 통신 모듈을 이용하여, 상기 제1 운영체제를 기반으로 외부 전자 장치 임시 값 및 외부 전자 장치 인증 정보를 상기 외부 전자 장치로부터 수신하고, 상기 외부 전자 장치 임시 값 및 상기 외부 전자 장치 인증 정보를 제2 운영체제로 전달하는 동작;
    상기 외부 전자 장치 인증 정보가 유효하면, 상기 제2 운영체제를 기반으로 하이브리드 암호화를 위한 세션 키 및 초기 벡터, 지정된 키, 상기 외부 전자 장치 임시 값 및 전자 장치 임시 값을 이용하여 암호화 메시지를 생성하는 동작;
    상기 통신 모듈을 이용하여, 상기 제1 운영체제를 기반으로 상기 암호화 메시지를 상기 외부 전자 장치로 전송하는 동작;
    상기 통신 모듈을 이용하여, 상기 제1 운영체제를 기반으로 상기 암호화 메시지의 성공적인 수신을 알리는 통지 정보를 상기 외부 전자 장치로부터 수신하고, 상기 통지 정보를 상기 제2 운영체제로 전달하는 동작;
    상기 통지 정보가 상기 제2 운영체제를 기반으로 확인되면, 통신 모듈을 이용하여, 상기 제1 운영체제를 기반으로 상기 외부 전자 장치와 통신을 통해 데이터를 수신 또는 전송하는 동작; 및
    상기 제2 운영체제를 기반으로 상기 지정된 키를 이용하여 상기 수신된 데이터 또는 상기 외부 전자 장치로 전송할 데이터를 처리하도록 하는 동작을 수행하는 것을 특징으로 하는 기록 매체.
KR1020170154918A 2017-11-20 2017-11-20 전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법 KR102436485B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020170154918A KR102436485B1 (ko) 2017-11-20 2017-11-20 전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법
PCT/KR2018/014205 WO2019098790A1 (ko) 2017-11-20 2018-11-19 전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법
US16/764,608 US11347897B2 (en) 2017-11-20 2018-11-19 Electronic device and method for transmitting and receiving data on the basis of security operating system in electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170154918A KR102436485B1 (ko) 2017-11-20 2017-11-20 전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법

Publications (2)

Publication Number Publication Date
KR20190057677A KR20190057677A (ko) 2019-05-29
KR102436485B1 true KR102436485B1 (ko) 2022-08-26

Family

ID=66539697

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170154918A KR102436485B1 (ko) 2017-11-20 2017-11-20 전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법

Country Status (3)

Country Link
US (1) US11347897B2 (ko)
KR (1) KR102436485B1 (ko)
WO (1) WO2019098790A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11729612B2 (en) * 2018-03-08 2023-08-15 Cypress Semiconductor Corporation Secure BLE just works pairing method against man-in-the-middle attack
US11068295B2 (en) * 2019-04-12 2021-07-20 Ghost Locomotion Inc. Device operation across multiple operating system modalities
US20210203496A1 (en) * 2019-12-30 2021-07-01 Giuseppe Cariello Secure key update for replay protected memory blocks
CN114785566B (zh) * 2022-03-31 2024-04-23 联想(北京)有限公司 数据处理方法、装置及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040034766A1 (en) * 2002-06-10 2004-02-19 Ken Sakamura Autonomous integrated-circuit card
US20130054473A1 (en) * 2011-08-23 2013-02-28 Htc Corporation Secure Payment Method, Mobile Device and Secure Payment System
US20130166451A1 (en) * 2011-12-22 2013-06-27 Kt Corporation Payment method and system using electronic card
US20160080149A1 (en) * 2014-09-17 2016-03-17 Microsoft Corporation Secure Key Management for Roaming Protected Content
US20170185538A1 (en) * 2015-12-23 2017-06-29 Tracfone Wireless, Inc. Secure System Having a Multi-locking Mechanism for Devices Having Embedded Systems

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101930864B1 (ko) * 2012-02-16 2019-03-11 삼성전자주식회사 디바이스 인증을 이용한 디지털 콘텐츠 보호 방법 및 장치
US9594921B2 (en) 2012-03-02 2017-03-14 International Business Machines Corporation System and method to provide server control for access to mobile client data
US8924727B2 (en) 2012-10-12 2014-12-30 Intel Corporation Technologies labeling diverse content
CN104216777B (zh) * 2014-08-29 2017-09-08 宇龙计算机通信科技(深圳)有限公司 双***电子装置及终端
US20160234176A1 (en) 2015-02-06 2016-08-11 Samsung Electronics Co., Ltd. Electronic device and data transmission method thereof
US10193700B2 (en) * 2015-02-27 2019-01-29 Samsung Electronics Co., Ltd. Trust-zone-based end-to-end security
KR101662947B1 (ko) * 2015-03-25 2016-10-05 (주)에이티솔루션즈 보안운영체제를 이용한 세션보안 제공 방법
JP6130612B1 (ja) * 2015-08-25 2017-05-17 株式会社Seltech ハイパーバイザーを有するシステム
KR101756978B1 (ko) * 2015-12-07 2017-07-11 (주)케이스마텍 트러스티드 실행 환경 기반의 어플리케이션 프로그램 보호 방법 및 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040034766A1 (en) * 2002-06-10 2004-02-19 Ken Sakamura Autonomous integrated-circuit card
US20130054473A1 (en) * 2011-08-23 2013-02-28 Htc Corporation Secure Payment Method, Mobile Device and Secure Payment System
US20130166451A1 (en) * 2011-12-22 2013-06-27 Kt Corporation Payment method and system using electronic card
US20160080149A1 (en) * 2014-09-17 2016-03-17 Microsoft Corporation Secure Key Management for Roaming Protected Content
US20170185538A1 (en) * 2015-12-23 2017-06-29 Tracfone Wireless, Inc. Secure System Having a Multi-locking Mechanism for Devices Having Embedded Systems

Also Published As

Publication number Publication date
KR20190057677A (ko) 2019-05-29
US11347897B2 (en) 2022-05-31
WO2019098790A1 (ko) 2019-05-23
US20200396080A1 (en) 2020-12-17

Similar Documents

Publication Publication Date Title
US9386045B2 (en) Device communication based on device trustworthiness
US9768951B2 (en) Symmetric keying and chain of trust
KR102436485B1 (ko) 전자 장치 및 전자 장치에서 보안 운영체제 기반 데이터 송수신 방법
US20210012008A1 (en) Method of initializing device and method of updating firmware of device having enhanced security function
KR20210017083A (ko) 퓨즈된 키에 기반하여 증명 인증서를 생성하는 전자 장치 및 방법
EP3227823B1 (en) Remote crypto services using tpm of server
US20150263855A1 (en) Symmetric keying and chain of trust
KR20200101211A (ko) 전자 장치 및 이를 이용한 블록 체인의 전자 서명 서비스 방법
JP6552714B2 (ja) データ処理方法およびシステム、ならびにウェアラブル電子デバイス
KR20190101829A (ko) 화면 데이터를 공유하는 전자 장치 및 그 방법
KR102616421B1 (ko) 생체 인증을 이용한 결제 방법 및 그 전자 장치
EP3709205B1 (en) Electronic device including secure integrated circuit
KR102643372B1 (ko) 장치를 탐색하는 전자 장치 및 그 방법
KR20210046357A (ko) 블록체인 기반 시스템을 위한 키의 저장 및 복구 방법과 그 장치
EP3770790A1 (en) Electronic device and method for protecting personal information using secure switch
US11429366B2 (en) Electronic device for updating firmware by using security integrated circuit and operation method thereof
CN113826137A (zh) 用于接收存储在区块链中的推送消息的电子装置和方法
US11520859B2 (en) Display of protected content using trusted execution environment
EP3221996B1 (en) Symmetric keying and chain of trust
KR20200112229A (ko) 개인 정보를 관리하기 위한 전자 장치 및 그의 동작 방법
EP4044500B1 (en) Electronic device for ensuring integrity of electronic device intrinsic information, and operating method therefor
KR20190108888A (ko) 전자 장치 및 전자 장치에서의 인증 방법
KR102495672B1 (ko) 모바일 카드의 백업 및 재설치를 지원하는 전자 장치
KR20190058914A (ko) 전자 장치 및 전자 장치에서 서비스 키를 관리하는 방법
US12026064B2 (en) Electronic device and method of backing up secure element

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