KR20190033930A - 보안 정보를 암호화하는 전자 장치 및 그 작동 방법 - Google Patents

보안 정보를 암호화하는 전자 장치 및 그 작동 방법 Download PDF

Info

Publication number
KR20190033930A
KR20190033930A KR1020170122678A KR20170122678A KR20190033930A KR 20190033930 A KR20190033930 A KR 20190033930A KR 1020170122678 A KR1020170122678 A KR 1020170122678A KR 20170122678 A KR20170122678 A KR 20170122678A KR 20190033930 A KR20190033930 A KR 20190033930A
Authority
KR
South Korea
Prior art keywords
electronic device
information
unlocking
value
quot
Prior art date
Application number
KR1020170122678A
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 KR1020170122678A priority Critical patent/KR20190033930A/ko
Publication of KR20190033930A publication Critical patent/KR20190033930A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/86Secure or tamper-resistant housings
    • 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

Landscapes

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

Abstract

다양한 실시예에 따라서, 전자 장치는, 하우징, 상기 하우징 내에 위치하는 프로세서 및 상기 하우징 내에 위치하여 작동이 가능하도록 상기 프로세서와 연결되는 적어도 하나의 메모리를 포함하고, 상기 메모리는, 실행 시에, 상기 프로세서로 하여금, 제 1 잠금 해제를 위한 정보를 포함하는, 잠금 해제를 위한 정보의 설정 요청이 수신되면, 상기 적어도 하나의 메모리에 저장된 제 1 값을 제 2 값으로 변경하고, 및 상기 제 2 값에 적어도 일부 기반하여 생성한 암호화 키를 이용하여, 상기 제 1 잠금 해제를 위한 정보를 암호화한 제 1 암호문과 상기 제 2 값을 상기 적어도 하나의 메모리에 저장하고, 제 2 잠금 해제를 위한 정보를 포함하는, 잠금 해제 요청이 수신되면, 상기 적어도 하나의 메모리에 저장된 상기 제 2 값에 적어도 일부 기반하여 생성한 상기 암호화 키를 이용하여, 상기 제 1 암호문을 해독하여 제 1 평문을 획득하고, 및 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치의 잠금 해제 여부를 결정하도록 하는 명령을 저장할 수 있다. 그 밖의 다양한 실시예가 가능하다.

Description

보안 정보를 암호화하는 전자 장치 및 그 작동 방법{ELECTRONIC DEVICE FOR ENCRYPTING SECURITY INFORMATION AND METHOD FOR CONTROLLING THEREOF}
다양한 실시예는, 다양한 보안 정보를 암호화하는 전자 장치 및 그 작동 방법에 관한 것이다.
전자 장치가 의도하지 않은 입력이나 인가되지 않은 입력에 따라 작동하는 것을 방지하기 위해, 잠금 화면(lock screen) 또는 잠금 상태(lock state)와 연관된 기술이 고안되었다. 전자 장치는, 보안 잠금(secured lock) 기능을 제공할 수 있으며, 예를 들어 생체 정보(예를 들어, 지문 정보 또는 홍채 정보 등), 비밀번호(password), 패턴(pattern) 등의 다양한 정보가 잠금 해제를 위해 입력되면, 잠금 해제를 위한 정보를 저장된 정보와 비교하여 잠금 해제 여부를 판단할 수 있다. 또는, 전자 장치는, 비보안 잠금(unsecured lock) 기능을 제공할 수도 있으며, 예를 들어 스와이프 입력이 수신되면, 이에 대응하여 잠금 상태를 해제할 수도 있다. 전자 장치는, 사용자의 선택에 따라 다양한 보안 레벨의 잠금 및 잠금 해제 기능을 제공할 수 있다.
보안 잠금 기능을 이용하는 경우, 전자 장치는, 잠금 해제를 위한 정보를 저장할 수 있다. 안드로이드 운영 체제(android operating system)의 경우에는, 잠금 해제를 위한 정보는, 예를 들어 /data/system/*.key 파일 및 /data/system/locksettings.db 파일로서 저장될 수 있다. 전자 장치는, 저장된 잠금 해제를 위한 정보 및 수신된 정보에 적어도 일부 기반하여, 잠금 해제 여부를 판단할 수 있다.
안드로이드 운영 체제를 이용하여 작동하는 전자 장치에서는, 예를 들어, /data/system/*.key 파일이 삭제되거나 손상되거나, 또는 /data/system/locksettings.db 파일이 변조되는 경우, 재부팅 시 기존에 설정하였던 보안 잠금 기능이 해제되고, 비보안 잠금 기능이 활성화될 수 있다. 예를 들어, 전자 장치는, 재부팅 이후에는 스와이프 모드로 진입하고, 이에 따라 보안 잠금 기능을 제공할 수 없다. /data/system/*.key 파일 또는 /data/system/locksettings.db 파일은, 시스템 권한을 가지는 프로세스(process)에 의하여 변경 또는 삭제가 가능하며, 예를 들어, 커스톰 리커버리 바이너리(custom recovery binary)를 이용함에 따라 변경 또는 삭제가 가능할 수 있다. 전자 장치의 습득자 또는 절취자는, 시스템 권한을 가지는 프로세스를 이용하여 보안 정보를 삭제 또는 손상시킴에 따라서, 전자 장치의 보안 잠금 기능을 쉽게 해제시킬 수 있다.
다양한 실시예는, 보안 정보가 설정 또는 갱신되는 시점마다 변경한 암호화 키를 이용하여 보안 정보를 암호화함에 따라, 보안 정보가 삭제 또는 손상되는 경우에도 보안 잠금 기능을 해제하지 않는 전자 장치 및 그 작동 방법을 제공할 수 있다.
다양한 실시예에 따라서, 전자 장치는, 하우징, 상기 하우징 내에 위치하는 프로세서 및 상기 하우징 내에 위치하여 작동이 가능하도록 상기 프로세서와 연결되는 적어도 하나의 메모리를 포함하고, 상기 메모리는, 실행 시에, 상기 프로세서로 하여금, 제 1 잠금 해제를 위한 정보를 포함하는, 잠금 해제를 위한 정보의 설정 요청이 수신되면, 상기 적어도 하나의 메모리에 저장된 제 1 값을 제 2 값으로 변경하고, 및 상기 제 2 값에 적어도 일부 기반하여 생성한 암호화 키를 이용하여, 상기 제 1 잠금 해제를 위한 정보를 암호화한 제 1 암호문(ciphertext)과 상기 제 2 값을 상기 적어도 하나의 메모리에 저장하고, 제 2 잠금 해제를 위한 정보를 포함하는, 잠금 해제 요청이 수신되면, 상기 적어도 하나의 메모리에 저장된 상기 제 2 값에 적어도 일부 기반하여 생성한 상기 암호화 키를 이용하여, 상기 제 1 암호문을 해독하여 제 1 평문(plaintext)을 획득하고, 및 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치의 잠금 해제 여부를 결정하도록 하는 명령을 저장할 수 있다.
다양한 실시예에 따라서, 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 회로에 의하여 실행될 때에 상기 적어도 하나의 회로로 하여금 적어도 하나의 과정을 수행하도록 설정된 것으로서, 상기 적어도 하나의 과정은, 제 1 잠금 해제를 위한 정보를 포함하는, 잠금 해제를 위한 정보의 설정 요청이 수신되면, 상기 명령을 수행하는 전자 장치의 적어도 하나의 메모리에 저장된 제 1 값을 제 2 값으로 변경하고, 상기 제 2 값에 적어도 일부 기반하여 생성한 암호화 키를 이용하여 상기 제 1 잠금 해제를 위한 정보를 암호화한 제 1 암호문과 상기 제 2 값을 저장하는 과정 및 제 2 잠금 해제를 위한 정보를 포함하는, 잠금 해제 요청이 수신되면, 상기 적어도 하나의 메모리에 저장된 상기 제 2 값에 적어도 일부 기반하여 생성한 상기 암호화 키를 이용하여 상기 제 1 암호문을 해독하여 제 1 평문을 획득하고, 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여 상기 전자 장치의 잠금 해제 여부를 결정하는 과정을 포함할 수 있다.
다양한 실시예에 따라서, 전자 장치는, 하우징, 상기 하우징 내에 위치하는 프로세서, 및 상기 하우징 내에 위치하여 작동이 가능하도록 상기 프로세서와 연결되는 메모리를 포함하고, 상기 메모리는, 실행 시에, 상기 프로세서로 하여금, 제 1 잠금 해제를 위한 정보를 포함하는, 잠금 해제를 위한 정보의 설정 요청이 수신되면, 상기 제 1 잠금 해제를 위한 정보에 대응하는 제 1 데이터를 저장하고-상기 제 1 데이터는, 상기 제 1 잠금 해제를 위한 정보와 상이함-, 제 2 잠금 해제를 위한 정보를 포함하는 잠금 해제 요청이 수신되면, 상기 제 2 잠금 해제를 위한 정보가 상기 제 1 데이터에 대응되면, 상기 전자 장치를 잠금 해제하고, 상기 제 1 데이터가 삭제되거나, 또는 상기 제 1 데이터가 변조된 경우에는, 상기 전자 장치를 잠금 해제하지 않도록 하는 명령을 저장할 수 있다.
다양한 실시예에 따라서, 보안 정보가 설정 또는 갱신되는 시점마다 변경한 암호화 키를 이용하여 보안 정보를 암호화는 전자 장치 및 그 작동 방법이 제공될 수 있다. 이에 따라, 단순히 보안 정보가 삭제 또는 손상되는 경우에, 암호화된 파일의 해독(decryption)이 수행될 수 없어, 보안 잠금 기능은 해제되지 않을 수 있다. 또는, 보안 정보를 다른 정보로 덮어쓰는 우회 공격이 수행되더라도, 덮어쓴 다른 정보가 해독되지 않음에 따라, 보안 잠금 기능이 유지될 수 있는 전자 장치 및 그 작동 방법이 제공될 수도 있다. 또는, 암호화 키 생성을 위한 값이 RPMB(replay protected memory block) 또는 eSE(embedded secure elements) 등에 저장되므로, 암호화 키를 생성함으로써 보안 잠금 기능 해제를 시도하는 우회 공격이 불가능하다.
도 1은, 다양한 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블럭도이다.
도 2는 다양한 실시예에 따른 프로그램의 블록도이다.
도 3은 다양한 실시예에 따른 프로그램 모듈을 설명하기 위한 블록도를 도시한다.
도 4는 다양한 실시예에 따른 전자 장치에 의한 잠금 해제를 위한 정보를 설정 또는 변경하는 과정을 설명하기 위한 흐름도를 도시한다.
도 5는 다양한 실시예에 따른 잠금 해제를 위한 정보를 설정 또는 변경하는 과정에서 생성 또는 저장되는 정보들을 도시한다.
도 6은 다양한 실시예에 따른 전자 장치에 의한 잠금 해제 과정의 작동 방법을 설명하기 위한 흐름도를 도시한다.
도 7은 다양한 실시예에 따른 잠금 해제 과정 중에서 생성 또는 저장되는 정보들을 도시한다.
도 8은 다양한 실시예에 따른 전자 장치에 의한 잠금 해제 과정을 설명하기 위한 흐름도를 도시한다.
도 9는 다양한 실시예에 따른 잠금 해제 과정중에 생성 또는 저장되는 정보들을 도시한다.
도 10은 다양한 실시예에 따른 전자 장치에 의한 잠금 해제를 위한 정보의 설정 또는 변경 과정을 설명하기 위한 흐름도를 도시한다.
도 11은 다양한 실시예에 따른 전자 장치에 의한 잠금 해제 과정을 설명하기 위한 흐름도를 도시한다.
도 12는 다양한 실시예에 따른 잠금 해제를 위한 정보를 설정하는 과정에서, 전자 장치의 복수 개의 저장소에 시간대별로 저장된 정보를 도시한다.
도 13a 및 13b는 다양한 실시예에 따른 전자 장치에 의한 잠금 해제 과정을 설명하기 위한 흐름도를 도시한다.
도 14a 및 14b는 다양한 실시예에 따른 잠금 해제를 위한 정보를 설정하는 과정에서, 전자 장치의 복수 개의 저장소에 시간대별로 저장된 정보를 도시한다.
도 15는 다양한 실시예에 따른 전자 장치에 의한 잠금 해제를 위한 정보의 설정 또는 변경 방법을 설명하기 위한 흐름도를 도시한다.
도 16은 다양한 실시예에 따른 전자 장치에 의한 잠금 해제 과정을 설명하기 위한 흐름도를 도시한다.
도 17은 다양한 실시예에 따른 전자 장치의 작동 방법을 설명하기 위한 흐름도를 도시한다.
도 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)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
예를 들어, 도 1에서 설명한 전자 장치(101)의 구성 요소 중 적어도 일부는, 하우징 내에 포함될 수 있다. 전자 장치(101)의 구성 요소 중 적어도 일부는, 하우징 내에 배치되어 하우징 밖에서 볼 수 없을 수도 있으며, 적어도 다른 일부(예: 표시 장치(160), 오디오 모듈(170), 카메라 모듈(180), 연결 단자(178) 등))는, 적어도 일부가 하우징에 의하여 형성된 개구에 의하여 외부로 노출될 수도 있다.
도 2는 다양한 실시예에 따른 프로그램(140)의 블록도(200)이다. 일실시예에 따르면, 프로그램(140)은 전자 장치(101)의 하나 이상의 리소스들을 제어하기 위한 운영 체제(142), 미들 웨어(144), 또는 상기 운영 체제(142) 상에서 실행 가능한 어플리케이션(146)을 포함할 수 있다. 운영 체제(142)는, 예를 들면, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, 또는 BadaTM를 포함할 수 있다. 프로그램(140) 중 적어도 일부 프로그램은, 예를 들면, 제조 시에 전자 장치(101)에 프리로드되거나, 또는 사용자의 사용 환경에서 외부 전자 장치(예: 전자 장치(102 또는 104), 또는 서버(108))로부터 다운로드되거나 갱신 될 수 있다.
운영 체제(142)는 전자 장치(101)의 시스템 리소스 (예: 프로세스, 메모리, 또는 전원)를 제어(예: 할당 또는 회수)할 수 있다. 운영 체제(142)는, 추가적으로 또는 대체적으로, 전자 장치(101)의 다른 하드웨어 디바이스, 예를 들면, 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 구동하기 위한 하나 이상의 드라이버 프로그램들을 포함할 수 있다.
미들 웨어(144)는 어플리케이션(146)이 전자 장치(101)의 하나 이상의 리소스들이 제공하는 기능 또는 정보를 사용할 수 있도록 다양한 기능들을 어플리케이션(146)으로 제공할 수 있다. 미들 웨어(144)는, 예를 들면, 어플리케이션 매니저(201), 윈도우 매니저(203), 멀티미디어 매니저(205), 리소스 매니저(207), 파워 매니저(209), 데이터베이스 매니저(211), 패키지 매니저(213), 커넥티비티 매니저(215), 노티피케이션 매니저(217), 로케이션 매니저(219), 그래픽 매니저(221), 시큐리티 매니저(223), 통화 매니저(225), 또는 음성 인식 매니저(227)를 포함할 수 있다. 어플리케이션 매니저(201)는, 예를 들면, 어플리케이션(146)의 생명 주기를 관리할 수 있다. 윈도우 매니저(203)는, 예를 들면, 화면에서 사용되는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저(205)는, 예를 들면, 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱을 이용하여 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다. 리소스 매니저(207)는, 예를 들면, 어플리케이션(146)의 소스 코드 또는 메모리의 공간을 관리할 수 있다. 파워 매니저(209)는, 예를 들면, 배터리의 용량, 온도 또는 전원을 관리하고, 이 중 해당 정보를 이용하여 전자 장치(101)의 동작에 필요한 전력 정보를 결정 또는 제공할 수 있다. 일실시예에 따르면, 파워 매니저(209)는 바이오스(BIOS: basic input/output system)와 연동할 수 있다.
데이터베이스 매니저(211)는, 예를 들면, 어플리케이션(146)에서 사용될 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저(213)는, 예를 들면, 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 갱신을 관리할 수 있다. 커넥티비티 매니저(215)는, 예를 들면, 전자 장치(101)와 외부 전자 장치 간의 무선 또는 유선 연결을 관리할 수 있다. 노티피케이션 매니저(217)는, 예를 들면, 발생된 이벤트(예: 통화, 메시지, 또는 알람)를 사용자에게 알리기 위한 기능을 제공할 수 있다. 로케이션 매니저(219)는, 예를 들면, 전자 장치(101)의 위치 정보를 관리할 수 있다. 그래픽 매니저(221)는, 예를 들면, 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 시큐리티 매니저(223)는, 예를 들면, 시스템 보안 또는 사용자 인증을 제공할 수 있다. 통화(telephony) 매니저(225)는, 예를 들면, 전자 장치(101)의 음성 통화 또는 영상 통화 기능을 관리할 수 있다. 음성 인식 매니저(227)는, 예를 들면, 사용자의 음성 데이터를 서버(108)로 전송하고, 해당 음성 데이터에 기반하여 전자 장치(101)에서 수행될 기능에 대응하는 명령어(command) 또는 해당 음성 데이터에 기반하여 변환된 문자 데이터를 수신할 수 있다. 일 실시예에 따르면, 미들 웨어(244)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. 일 실시예에 따르면, 미들 웨어(144)의 적어도 일부는 운영 체제(142)의 일부로 포함되거나, 또는 운영 체제(142)와는 별도의 소프트웨어로 구현될 수 있다.
어플리케이션(146)은, 예를 들면, 홈(251), 다이얼러(253), SMS/MMS(255), IM(instant message)(257), 브라우저(259), 카메라(261), 알람(263), 컨택트(265), 음성 인식(267), 이메일(269), 달력(271), 미디어 플레이어(273), 앨범(275), 와치(277), 헬스(279)(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보(281)(예: 기압, 습도, 또는 온도 정보) 어플리케이션을 포함할 수 있다. 일실시예에 따르면, 어플리케이션(146)은 전자 장치(101)와 외부 전자 장치 사이의 정보 교환을 지원할 수 있는 정보 교환 어플리케이션(미도시)을 더 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치로 지정된 정보 (예: 통화, 메시지, 또는 알람)를 전달하기 위한 노티피케이션 릴레이 어플리케이션, 또는 외부 전자 장치를 관리하기 위한 장치 관리 어플리케이션을 포함할 수 있다. 노티피케이션 릴레이 어플리케이션은, 예를 들면, 전자 장치(101)의 다른 어플리케이션(예: 이메일 어플리케이션(269))에서 발생된 이벤트(예: 메일 수신)에 대응하는 알림 정보를 외부 전자 장치로 전달하거나, 또는 외부 전자 장치로부터 알림 정보를 수신하여 전자 장치(101)의 사용자에게 제공할 수 있다. 장치 관리 어플리케이션은, 예를 들면, 전자 장치(101)와 통신하는 외부 전자 장치 또는 그 일부 구성 요소(예: 표시 장치(160) 또는 카메라 모듈(180))의 전원(예: 턴-온 또는 턴-오프) 또는 기능(예: 표시 장치(160) 또는 카메라 모듈(180)의 밝기, 해상도, 또는 포커스)을 제어할 수 있다. 장치 관리 어플리케이션은, 추가적으로 또는 대체적으로, 외부 전자 장치에서 동작하는 어플리케이션의 설치, 삭제, 또는 갱신을 지원할 수 있다.
도 3은 다양한 실시예에 따른 프로그램 모듈을 설명하기 위한 블록도를 도시한다.
다양한 실시예에 따라서, 프로그램 모듈(300)은, REE(rich execution environment)(310) 및 TEE(trusted execution environment)(320)를 포함할 수 있다. REE(310) 및 TEE(320)는, 예를 들어 하드웨어적으로 구분될 수 있거나, 또는 소프트웨어적으로 구분될 수도 있다. 또는, REE(310) 및 TEE(320)는 물리적으로 분리되면서 소프트웨어적으로도 분리될 수도 있다. REE(310)는, 일반적인 운영체제(예: 도 2의 운영 체제(242))가 작동하는 환경일 수 있다. 예를 들어 안드로이드 운영 체제, 윈도우즈(windows) 운영 체제, 리눅스(linux) 운영 체제 등이 REE(310)에서 작동할 수 있다. TEE(320)는, 보안적으로 안전하게 보호되는 운영 체제, 예를 들어 보안 운영 체제(secured operating system)가 작동하는 환경일 수 있다. 예를 들어, 퀄컴(qualcomm)의 QSee, 트러스토닉(trustonic)의 Kinibi 등의 보안 운영 체제가 TEE(320)에서 작동할 수 있다. 보안 운영 체제를 기반으로 하는 데이터 처리가 보안적으로 또한 안전하게 TEE(320) 내에서 수행될 수 있다. TEE(320)는, 트러스트 존(trust zone), 보안 실행 환경(secure execution environment), 플랫폼 보안 프로세서(platform security processor), 신뢰된 실행 기술(trusted execution technology), 소프트웨어 방어 확장(software guard extensions) 등의 다양한 방식으로 구현될 수 있으며, 구현 형태에는 제한이 없음을 당업자가 용이하게 이해할 수 있을 것이다.
다양한 실시예에 따라서, REE(310)에는, 어플리케이션 계층(311), 프레임워크(framework) 계층(312) 및 커널(kernel) 계층(313)이 포함될 수 있다. 어플리케이션 계층(311)에서는, 다양한 어플리케이션(예: 도 2의 어플리케이션(246))이 작동할 수 있다. 프레임워크 계층(312)은, 어플리케이션의 작동을 지원하는 기능 및 운영 체제가 제공하는 서비스가 작동할 수 있다. 예를 들어, 안드로이드 운영 체제에서의 액티비티 매니저, 통화 매니저(예: 도 2의 통화 매니저(225)), 잠금 화면(lock screen), 뷰 시스템(view system) 등의, 프레임워크 계층(312)에서 작동할 수 있다. 커널 계층(313)은, 운영 체제의 핵심 기능이 작동하는 계층일 수 있다. 커널 계층(313), 예를 들면, 다른 프로그램들에 구현된 작동 또는 기능을 실행하는 데 사용되는 시스템 리소스들을 제어 또는 관리할 수 있다. 또한, 커널 계층(313)은 전자 장치(101)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
다양한 실시예에 따라서, TEE(320)에는, 신뢰된 어플리케이션(trusted application) 계층(321), 신뢰된 프레임워크(trusted framework) 계층(322) 및 보안 OS 커널(secured operating system kernel) 계층(323)이 포함될 수 있다. 신뢰된 어플리케이션 계층(321)에서는, 신뢰된 어플리케이션(trusted application)이 작동할 수 있다. 다양한 실시예에 따라서, 전자 장치(101)는, 잠금 해제를 위한 정보 등의 보안 정보를 암호화할 수 있는 어플리케이션을, 신뢰된 어플리케이션 계층(321)에서 실행시킬 수 있다. 신뢰된 어플리케이션은, 카운터에 적어도 일부 기반하여 암호화 키를 생성할 수 있으며, 암호화 키를 이용하여 잠금 해제를 위한 정보를 암호화할 수 있거나, 또는 암호문을 해독할 수 있으며, 이에 대하여서는 더욱 상세하게 후술하도록 한다. 신뢰된 프레임워크 계층(322)은, TEE(320)에서 작동하는 운영 체제, 예를 들어 보안 운영 체제가 작동할 수 있다. 보안 OS 커널 계층(323)은, 보안 운영 체제의 핵심 기능이 작동하는 계층일 수 있다. 보안 OS 커널 계층(323), 예를 들면, 신뢰된 어플리케이션 또는 보안 운영 체제에 구현된 작동 또는 기능을 실행하는 데 사용되는 시스템 리소스들을 제어 또는 관리할 수 있다.
하드웨어 계층(330)에서는, 전자 장치(101)의 다양한 하드웨어(예: 저장소(storage)(331))가 작동할 수 있다. 저장소 (331)(예: 도 1의 메모리(130))의 적어도 일부)는 어플리케이션 계층(311)에서 작동하는 어플리케이션으로부터 출력되는 데이터를 저장하거나, 또는 신뢰된 어플리케이션 계층(321)에서 작동하는 신뢰된 어플리케이션으로부터 출력되는 데이터를 저장할 수 있다. 어플리케이션 계층(311)에서 작동하는 어플리케이션 또는 신뢰된 어플리케이션 계층(321)에서 작동하는 신뢰된 어플리케이션은, 저장소(331)로부터 정보를 독출할 수도 있다. 커널 계층(313) 또는 보안 OS 커널 계층(323)은 하드웨어와 소프트웨어 스택(software stack)(예: 안드로이드 운영 체제 소프트웨어 스택) 사이의 하드웨어 추상화 계층(hardware abstraction layer)으로서 작동할 수 있다.
다양한 실시예에서, 저장소(331)는 RPMB(replay protected memory block)(332)를 포함할 수 있다. 예를 들어, 저장소(331)는 eMMC(embedded multi media card)로 구현될 수 있으며, eMMC 는 RPMB(332)를 포함할 수 있다. RPMB(332)는, 데이터의 독출, 수정 또는 삭제가 제한적으로 수행되는 저장 공간일 수 있다. 전자 장치(101)는, 특정한 명령어 세트에 대하여서만 RPMB(332)에 접근을 허용하도록 설정될 수 있다. 예를 들어, 신뢰된 어플리케이션으로부터의 명령어에 따라, RPMB(332)의 데이터가 독출, 수정 또는 삭제될 수 있다. 아울러, 신뢰된 어플리케이션이 아닌 일반적인 어플리케이션으로부터의 명령어에 따라, RPMB(332)의 데이터가 독출, 수정 또는 삭제되지 않을 수 있다. RPMB(332)에는, 예를 들어 보안 정보를 암호화하기 위한 암호화 키를 생성할 수 있는 값(예: 카운터)이 저장될 수 있으며, 이에 대하여서는 더욱 상세하게 후술하도록 한다.
다양한 실시예에 따라서, eSE(340)는, 전자 장치(101)의 주된 연산 장치(예: 프로세서(120)) 또는 주된 저장 장치(예: 메모리(130))로부터 물리적 및 소프트웨어적으로 분리된 별도의 컴퓨팅 환경을 가질 수 있다. 예를 들어, eSE(340)는 전자 장치(101) 내에 칩 형태로 장착될 수 있다. eSE(340)는, 내부에 별도의 연산 처리 장치 또는 별도의 저장 장치 중 적어도 하나를 포함할 수 있으며, 운영 체제에 따라 작동할 수 있다. 이에 따라, eSE(340)는, eSE(340)의 외부의 리소스를 이용하지 않으면서도, 스스로 작동할 수 있다. eSE(340)는 물리적 채널을 통하여 TEE(320)과 연결될 수 있다. 프로세서(120)는, TEE(320) 및 물리적 채널을 통하여 eSE(340)에 접근할 수 있다. eSE(340)는, 예를 들어, SPI(serial peripheral interface) 또는 NFC(near field communication) 등에 기반하여 프로세서(120) 등의 전자 장치(101) 내부의 구성 요소와 통신할 수 있다. 프로세서(120)는, 상대적으로 높은 보안 수준을 요구하는 정보를 TEE(320) 및 물리적 채널을 통하여 eSE(340)에 저장할 수 있다. eSE(340)에는, 예를 들어 보안 정보를 암호화하기 위한 암호화 키를 생성할 수 있는 값이 저장될 수 있으며, 이에 대하여서는 더욱 상세하게 후술하도록 한다. 다양한 실시예에 따라서, 전자 장치(101)는, RPMB(332) 및 eSE(340)를 모두 포함할 수 있거나, 또는 RPMB(332) 또는 eSE(340) 중 어느 하나만을 포함할 수도 있다. 한편, 도 3에서는 eSE(340)가 프로그램 모듈(300)의 외부에 배치된 것으로 도시되어 있으며, 이는 eSE(340)가 전자 장치(101)의 주된 프로세서(120), 주된 메모리(130)로부터 물리적으로 분리된 연산처리 장치 및 저장소를 포함하는 것으로 이해될 수도 있다. 또는, eSE(340)가 전자 장치(101)의 주된 운영 체제로부터 독립적인 운영 체제를 가질 수도 있는 것으로 이해될 수도 있다.
도 4는 다양한 실시예에 따른 전자 장치에 의한 잠금 해제를 위한 정보를 설정 또는 변경하는 과정을 설명하기 위한 흐름도를 도시한다. 도 4의 실시예는 도 5를 참조하여 더욱 상세하게 설명하도록 한다. 도 5는 다양한 실시예에 따른 잠금 해제를 위한 정보를 설정 또는 변경하는 과정에서 생성 또는 저장되는 정보들을 도시한다.
다양한 실시예에 따라서, 전자 장치(101)(예: 프로세서(120))는, 401 과정에서, 락 스크린(lock screen) 잠금 해제를 위한 제 1 정보 및 제 1 값을 전자 장치(101)의 적어도 하나의 저장소에 저장하도록 제어할 수 있다. 전자 장치(101)가 특정 과정을 수행하는 것은, 예를 들어 전자 장치(101)에 포함된 프로세서(120)가, 특정 과정을 수행하거나, 특정 과정을 수행하도록 다른 하드웨어를 제어하는 것을 의미할 수 있다. 또는, 전자 장치(101)가 특정 과정을 수행하는 것은, 예를 들어 전자 장치(101)에 포함된 메모리(130)에 저장된 적어도 하나의 명령이 실행됨에 따라서, 프로세서(120)가 특정 과정을 수행하거나, 특정 과정을 수행하도록 다른 하드웨어를 제어하는 것을 의미할 수도 있다. 예를 들어, 도 5에서와 같이, 전자 장치(120)는 잠금 해제를 위한 정보의 종류(511)가 비밀번호 입력 방식(512)인 정보와 잠금 해제 정보(513)가 “1579”(514)인 정보를 포함하는 제 1 정보(510)를 저장할 수 있다. 비밀번호 입력 방식(512) 및 “1579”(514)의 정보는 미리 사용자 등에 의하여 지정된 값이거나 또는 초기 설정 값일 수 있다. 전자 장치(101)는 잠금 해제 요청 시 저장된 제 1 정보(510)와 잠금 해제 요청에 포함된 정보를 비교함으로써, 잠금 해제 여부를 결정할 수 있다. 예를 들어, 안드로이드 운영 체제에서는, 잠금 해제를 위한 정보의 종류(511)인 비밀번호 입력 방식(512)은 /data/system/locksettings.db 파일로서 저장될 수 있으며, 잠금 해제 정보(513)인 “1579”(514)는 /data/system/*.key 파일로서 저장될 수 있다. 다양한 실시예에서, /data/system/locksettings.db 파일은 전자 장치(101)의 잠금 해제를 위한 다양한 정보의 종류(예: 비밀번호 입력 방식, 패턴 입력 방식, 지문 인식 방식, 홍채 인식 방식 등) 중 적어도 하나를 포함할 수 있다. /data/system/*.key 파일은 비밀번호, 패턴, 지문 인식 관련 정보, 홍채 인식 관련 정보를 포함할 수 있다. 도 5에서의 비밀 번호 입력 방식(512) 및 “1579”(514)의 해제 정보는 단순히 예시적인 것이며, 전자 장치(101)는 다양한 잠금 해제를 위한 정보의 종류를 저장할 수도 있음을 당업자는 용이하게 이해할 수 있을 것이다. 아울러, 전자 장치(101)는 하나의 팩터(factor)가 아닌 복수 개의 팩터(multi-factor)(예: 비밀 번호 입력 방식 및 지문 인식 방식을 모두 이용하는 방식 등)에 기반한 제 1 정보를 저장할 수도 있다.
다양한 실시예에서, 전자 장치(101)는 제 1 값(515)을 저장할 수 있다. 제 1 값(515)은 잠금 해제 요청이 수신된 경우에 암호화 키를 생성하는데 이용되는 값일 수 있으며, 카운터(counter)라고 명명될 수 있다. 잠금 해제 요청이 수신된 경우의 암호화 키 생성 과정에 대하여서는 더욱 상세하게 후술하도록 한다. 전자 장치(101)는, 제 1 값(515)을 보안 저장소, 예를 들어 RPMB(332) 또는 eSE(340)에 저장할 수 있다. 또는, 전자 장치(101)는, 제 1 값(515)을 일반적인 저장소, 즉 접근 시 보안 절차가 요구되지 않는 저장소에 저장할 수도 있다.
다시 도 4를 참조하면, 403 과정에서, 다양한 실시예에 따라서, 전자 장치(101)는 락 스크린 잠금 해제를 위한 제 2 정보를 수신하여, 제 1 정보를 제 2 정보로 갱신할 수 있다. 사용자는 전자 장치(101)의 비밀 번호를 바꾸기 위하여 새로운 비밀 번호를 전자 장치(101)에 입력할 수 있다. 예를 들어, 전자 장치(101)는, 전자 장치(101)의 설정을 변경할 수 있는 사용자 인터페이스를 표시할 수 있으며, 잠금 해제 관련 아이콘이 지정됨을 검출할 수 있다. 전자 장치(101)는 잠금 해제 관련 사용자 인터페이스를 표시할 수 있으며, 보안 정보 변경 아이콘(예: 비밀 번호 변경 아이콘)이 지정됨을 검출할 수 있다. 전자 장치(101)는 비밀 번호 변경을 위한 사용자 인터페이스, 예를 들어 번호(digit)를 입력할 수 있는 SIP(soft input panel)을 포함하는 사용자 인터페이스, 패턴을 입력할 수 있는 사용자 인터페이스, 지문 인식을 수행하도록 하는 사용자 인터페이스, 홍채 인식을 수행하도록 하는 사용자 인터페이스 등의 다양한 사용자 인터페이스를 표시할 수 있으며, 사용자 인터페이스를 통하여 새로운 보안 정보(예를 들어, 비밀 번호, 패턴, 지문 정보, 홍채 정보 등)를 수신할 수 있다. 예를 들어, 전자 장치(101)는 새로운 비밀 번호로서 “1894”를 수신한 것을 상정한다. 전자 장치(101)는, 도 5에서와 같이, 잠금 해제를 위한 정보의 종류(521)가 비밀번호 입력 방식(522)인 정보와 잠금 해제 정보(523)가 “1894”(524)인 정보를 포함하는 제 2 정보(520)를 저장할 수 있다. 한편, 전자 장치(101)는 잠금 해제 정보뿐만 아니라, 잠금 해제를 위한 정보의 종류 변경도 수신할 수도 있으며, 이 경우의 제 2 정보(520)에는 잠금 해제를 위한 정보의 종류(521)가 비밀 번호 입력 방식(522) 아닌 다른 방식으로서 저장될 수도 있다.
다시 도 4를 참조하면, 405 과정에서, 다양한 실시예에 따라서, 전자 장치(101)는, 제 1 값에 지정된 규칙을 적용하여 제 2 값을 획득할 수 있다. 예를 들어, 도 5에서와 같이, 전자 장치(101)는 제 1 값(515)에 지정된 규칙을 적용하여 제 2 값(560)을 획득(530)할 수 있다. 전자 장치(101)는, 제 1 값(515), 제 2 값(560) 등을 카운터(counter)로 관리할 수도 있으며, 이 경우에는 전자 장치(101)가 카운터를 제 1 값으로부터 제 2 값으로 변경한 것으로 표현될 수도 있다. 예를 들어, 지정된 규칙은 “+1”의 연산일 수 있으며, 전자 장치(101)는 제 1 값(515)에 1을 더하여 제 2 값(560)을 획득할 수 있으나, 지정된 규칙에는 제한은 없다.
다시 도 4를 참조하면, 407 과정에서, 다양한 실시예에 따라서, 전자 장치(101)는, 제 2 값에 적어도 일부 기반하여 암호화 키를 생성하고, 생성된 암호화 키를 이용하여 제 2 정보를 암호화할 수 있다. 예를 들어, 도 5에서와 같이, 전자 장치(101)는 제 2 값(560)에 적어도 일부 기반하여 암호화 키(540)를 생성할 수 있다. 다양한 실시예에서, 전자 장치(101)는 하드웨어 유일 값(예: 하드웨어-유일 키(hardware-unique key) 및 신뢰된 어플리케이션 유일 값(예: 유니버셜 유일 ID(universal unique identifier))을 이용하여 신뢰된 어플리케이션 키(trusted application key: TA key)를 생성할 수 있다. 전자 장치(101)는, TA key 및 제 2 값에 기반하여 암호화 키(540)(예: 키 암호화 키(key encryption key: KEK))를 생성할 수 있다. 전자 장치(101)는, 암호화 키(540)를 이용하여 제 2 정보(520)를 암호화할 수 있으며, 암호화된 제 2 정보(550)를 생성할 수 있다. 다시 도 4를 참조하면, 409 과정에서, 다양한 실시예에 따라서, 전자 장치(101)는, 암호화된 제 2 정보(550) 및 제 2 값(560)을 저장할 수 있다. 전자 장치(101)는, 암호화된 제 2 정보(550)는 보안이 요구되지 않는 일반 영역에 저장하고, 제 2 값(560)은 보안이 요구되는 보안 영역에 저장할 수 있다. 또는, 전자 장치(101)는, 암호화된 제 2 정보(550) 및 제 2 값(560)을 모두 보안 영역에 저장할 수도 있다. 또는, 전자 장치(101)는, 암호화된 제 2 정보(550) 및 제 2 값(560)을 모두 일반 영역에 저장할 수도 있다.
다양한 실시예에서, 전자 장치(101)는 추후에 비밀번호 또는 잠금 해제 방식이 재설정되면, 카운터를 변경(예: +1 연산 즉, “카운터”를 “카운터+1”로 변경)할 수 있다. 전자 장치(101)는, 잠금 해제와 관련된 보안 정보를 최초 설정 또는 재설정시마다, 카운터를 변경할 수 있으며, 이에 따라 암호화 키가 변경될 수 있다. 변경된 암호화 키를 이용하여 보안 정보를 암호화함으로써, 외부 공격에 의하여 잠금 해제되지 않을 수 있으며, 이에 대하여서는 더욱 상세하게 후술하도록 한다. 전자 장치(101)는, 카운터를 보안을 위한 저장소(예: RPMB(332) 또는 eSE(340))에 저장할 수도 있으며, 암호화된 보안 정보는 일반적인 저장소(예: 메모리(130)의 적어도 일부)에 저장할 수도 있다. RPMB(332)는 비교적 작은 크기의 저장 용량을 가질 수 있으며, 전자 장치(101)가 RPMB(332)에, 예를 들어 32 비트 또는 64비트의 카운터만을 저장함으로써, RPMB(332)에 최소한의 정보만이 저장될 수 있다. 뿐만 아니라, 잠금 해제와 관련된 보안 정보 자체가 저장되지 않으며, 암호화된 보안 정보가 저장됨에 따라서, 생체 정보가 보안 정보로서 설정된 경우에도 생체 정보의 유출이 방지될 수 있다. 또한, RPMB(332) 또는 eSE(340)에는 신뢰된 어플리케이션이 아닌 일반 어플리케이션에 의한 접근이 불가능하므로, 카운터에 대한 유출이 불가능하다.
도 6은 다양한 실시예에 따른 전자 장치에 의한 잠금 해제 과정의 작동 방법을 설명하기 위한 흐름도를 도시한다. 도 6의 실시예는 도 7을 참조하여 더욱 상세하게 설명하도록 한다. 도 7은 다양한 실시예에 따른 잠금 해제 과정 중에서 생성 또는 저장되는 정보들을 도시한다.
601 과정에서, 다양한 실시예에 따라서, 전자 장치(101)(예: 프로세서(120))는, 암호화된 제 2 정보 및 제 2 값을 저장할 수 있다. 예를 들어, 전자 장치(101)는, 도 4의 과정을 통하여, 도 5 및 7에서와 같은 암호화된 제 2 정보(550) 및 제 2 값(560)을 저장할 수 있다.
603 과정에서, 다양한 실시예에 따라서, 전자 장치(101)는, 락 스크린 잠금 해제를 위한 사용자 입력, 즉 잠금 해제 요청을 수신할 수 있다. 전자 장치(101)는, 예를 들어 하드웨어 또는 소프트웨어 버튼 눌림 등의 다양한 웨이크 업(wake-up) 명령에 따라, 잠금 해제를 위한 다양한 사용자 인터페이스 중 적어도 하나를 제공할 수 있다. 전자 장치(101)는, 설정된 잠금 해제 방식에 따른 잠금 해제를 위한 사용자 인터페이스를 제공할 수 있다. 예를 들어, 전자 장치(101)는, 번호를 입력할 수 있는 SIP를 포함하는 사용자 인터페이스, 패턴을 입력할 수 있는 사용자 인터페이스, 지문 인식을 수행하도록 하는 사용자 인터페이스, 홍채 인식을 수행하도록 하는 사용자 인터페이스 등의 다양한 사용자 인터페이스를 제공할 수 있으며, 사용자 인터페이스를 통하여 잠금 해제를 위한 정보(예를 들어, 비밀 번호, 패턴, 지문 정보, 홍채 정보 등)를 수신할 수 있다. 예를 들어, 도 7에서와 같이, 전자 장치(101)는 잠금 해제를 위한 정보로서 “1894”(701)를 수신한 것을 상정한다.
다시 도 6을 참조하면, 605 과정에서, 다양한 실시예에 따라서, 전자 장치(101)는 저장하고 있던 제 2 값에 적어도 일부 기반하여 암호화 키를 생성할 수 있다. 예를 들어, 전자 장치(101)는 도 7에서와 같이, 제 2 값(560)에 적어도 일부 기반하여 암호화 키(710)를 생성할 수 있다. 전자 장치(101)는, 도 5에서 제 2 값(560)으로부터 암호화 키(540)를 생성하는 방식과 동일한 방식으로 암호화 키(710)를 생성할 수 있다. 암호화 키(540) 및 암호화 키(710)는 동일할 수 있다.
다시 도 6을 참조하면, 607 과정에서, 다양한 실시예에 따라서, 전자 장치(101)는, 암호화 키를 이용하여 암호화된 제 2 정보를 해독(decrypt)하여 평문(plain text)을 생성할 수 있다. 예를 들어, 도 7에서와 같이, 전자 장치(101)는 암호화 키(710)를 이용 저장하고 있던 제 2 정보(550)를 해독하여 평문(720)을 생성할 수 있다. 평문(720)은 잠금 해제를 위한 정보의 종류(721)가 비밀번호 입력 방식(722)인 정보와 잠금 해제 정보(723)가 “1894”(724)인 정보를 포함할 수 있다.
다시 도 6을 참조하면, 609 과정에서, 다양한 실시예에 따라서, 전자 장치(101)는 평문과 수신된 사용자 입력이 대응되는지 여부를 판단할 수 있다. 예를 들어, 도 7에서와 같이, 전자 장치(101)는 사용자 입력에 의한 정보(701)와 평문(720)에 포함된 잠금 해제 정보(723)인 “1894”(724)가 대응되는지 판단할 수 있다. 평문과 수신된 사용자 입력이 대응되는 것으로 판단되면, 전자 장치(101)는 611 과정에서 전자 장치(101)를 잠금 해제(725)할 수 있다. 평문과 수신된 사용자 입력이 대응되지 않는 것으로 판단되면, 전자 장치(101)는 613 과정에서 잠금 해제가 실패한 것으로 판단할 수 있다. 만약, 잠금 해제 요청에 포함된 정보가 “1894”가 아닌 다른 숫자인 경우에는, 전자 장치(101)는 평문에 포함된 정보와 상이함에 따라 잠금 해제 실패인 것으로 판단할 수 있다.
상술한 과정에 따라서, 전자 장치(101)는, 보안 정보를 해독하는 과정을 수행하여 잠금 해제 여부를 판단할 수 있어, 외부 공격에 의하여 보안 정보가 삭제 또는 변경된 경우에도 잠금 해제를 수행하지 않을 수 있다. 외부 공격에 따른 잠금 해제 미수행에 대하여서는 도 8 및 9를 참조하여 설명하도록 한다.
도 8은 다양한 실시예에 따른 전자 장치에 의한 잠금 해제 과정을 설명하기 위한 흐름도를 도시한다. 도 8의 실시예는 도 9를 참조하여 더욱 상세하게 설명하도록 한다. 도 9는 다양한 실시예에 따른 잠금 해제 과정 중에 생성 또는 저장되는 정보들을 도시한다.
801 과정에서, 다양한 실시예에 따라서, 전자 장치(101)(예: 프로세서(120))는, 암호화된 제 2 정보 및 제 2 값을 저장할 수 있다. 예를 들어, 전자 장치(101)는, 도 4의 과정을 통하여, 도 5 및 9에서와 같은 암호화된 제 2 정보(550) 및 제 2 값(560)을 저장할 수 있다.
전자 장치(101)에 저장된 암호화된 제 2 정보(550)는, 외부 공격에 의하여 삭제되거나 또는 다른 정보로 덮어쓰기(overwrite)될 수 있다. 예를 들어, 도 9에서와 같이, 암호화된 제 2 정보(550)가 외부 공격에 의하여 제 3 정보(910)로 덮어쓰기된 경우를 상정한다. 제 3 정보(910)는, 잠금 해제를 위한 정보의 종류(911)가 스와이프(912)라는 정보를 포함할 수 있다. 기존의 전자 장치의 경우에는, 외부 공격에 의하여 제 3 정보(910)가 덮어쓰기된 경우에는, 스와이프(920)의 입력이 검출되면 이에 대응하여 전자 장치를 잠금 해제하였다. 이에 따라, 공격자는, 종래와 동일한 방식으로, 암호화된 제 2 정보(550)를 제 3 정보(910)로 덮어쓰기한 이후에, 스와이프(920)의 입력을 입력할 수 있다.
다시 도 8을 참조하면, 803 과정에서, 다양한 실시예에 따라서, 전자 장치(101)는, 잠금 해제를 위한 사용자 입력(예: 도 9에서의 스와이프(920))을 수신할 수 있다. 805 과정에서, 전자 장치(101)는, 제 2 값에 적어도 일부 기반하여 암호화 키를 생성할 수 있다. 예를 들어, 전자 장치(101)는, 도 9에서와 같이 저장되어 있던 제 2 값(560)으로부터 암호화 키(930)를 생성할 수 있다. 전자 장치(101)는, 도 5에서 제 2 값(560)으로부터 암호화 키(540)를 생성하는 방식과 동일한 방식으로 암호화 키(930)를 생성할 수 있다. 암호화 키(540) 및 암호화 키(930)는 동일할 수 있다.
다시 도 8을 참조하면, 807 과정에서, 다양한 실시예에 따라서, 전자 장치(101)는 암호화 키를 이용하여, 암호화된 제 2 정보의 해독을 시도할 수 있다. 809 과정에서, 전자 장치(101)는, 평문이 존재하고, 및 유효한지 여부를 판단할 수 있다. 평문이 존재하거나, 및 유효한 것으로 판단되면, 811 과정에서, 전자 장치(101)는 평문과 사용자 입력을 비교하여, 비교 결과에 적어도 일부 기반하여 잠금 해제 여부 결정할 수 있다. 평문이 존재하지 않거나, 또는 유효하지 않은 것으로 판단되면, 813 과정에서, 전자 장치(101)는 잠금 해제가 실패한 것으로 판단할 수 있다. 예를 들어, 도 9에서와 같이, 전자 장치(101)는, 암호화 키(930)를 이용하여, 암호화된 제 2 정보(550) 대신에 저장된 제 3 정보(910)를 해독할 수 있다. 제 3 정보(910)는 암호화 과정을 통하여 생성된 파일이 아니므로, 해독 알고리즘이 적용되지 않을 수도 있다. 또는, 해독 알고리즘이 적용된다 하더라도 지정된 형식과 상이한 형식을 가지는 파일(940)이 생성될 수도 있다. 전자 장치(101)는, 해독 알고리즘 적용 결과 생성된 파일(940)이 지정된 형식이 아닌 경우에, 잠금 해제를 수행하지 않을 수 있다. 이에 따라, 전자 장치(101)에 저장되어 있던 보안 정보가 외부 공격에 의하여 덮어쓰기된 경우에도, 전자 장치(101)는 잠금 해제를 수행하지 않을 수 있다. 또는, 외부 공격에 의하여 보안 정보(예: 암호화된 제 2 정보(550))가 삭제된 경우에는, 전자 장치(101)는 해독 알고리즘을 적용할 수 없으며, 이에 따라 평문이 생성되지 않는다. 전자 장치(101)는, 평문이 존재하지 않는 경우에 잠금 해제를 수행하지 않을 수 있다.
상술한 바와 같이, 다양한 실시예에 따라서, 전자 장치(101)는, 보안 정보를 암호화하여 저장하고, 잠금 해제 요청이 있으면 암호화된 보안 정보를 해독하여, 잠금 해제 요청에 포함된 정보와 비교하는 과정을 수행한다. 이에 따라, 외부 공격에 의하여 보안 정보가 변조 또는 삭제된 경우에도, 전자 장치(101)는 잠금 해제를 수행하지 않을 수 있다.
도 10은 다양한 실시예에 따른 전자 장치에 의한 잠금 해제를 위한 정보의 설정 또는 변경 과정을 설명하기 위한 흐름도를 도시한다.
1001 과정에서, 다양한 실시예에 따라서, 전자 장치(101)(예: 프로세서(120))는, 락 스크린 잠금 해제를 위한 정보에 대한 설정 또는 변경 명령을 수신할 수 있다. 예를 들어, REE(310)의 프레임워크 계층(312)에서 실행되는 락 스크린 기능 제공 개체는 잠금 해제를 위한 정보를 획득할 수 있다. 아울러, 락 스크린 기능 제공 개체는 잠금 해제를 위한 정보에 대한 암호화 요청을 TEE(320)의 신뢰된 어플리케이션 계층(321)에서 실행되는 TA로 전달할 수도 있다. 1003 과정에서, 전자 장치(101)는, N-bit(N은 1 이상의 자연수) 카운터를 독출할 수 있다. 예를 들어, 전자 장치(101)는 32 비트 또는 64 비트의 카운터를 독출할 수 있다. 1005 과정에서, 전자 장치(101)는 정보의 설정 또는 변경 명령에 대응하여, 독출한 카운터에 1을 더하는 연산을 수행할 수 있다. 여기에서, 1을 더하는 연산은, 단순히 예시적인 것이다. 전자 장치(101)는, 1이 더하여진 카운터를 일시적으로 저장할 수 있다. 다양한 실시예에서, 카운터는 최초에는 0일 수 있으며, 잠금 해제를 위한 정보의 설정 또는 변경에 따라 1씩 증가될 수 있다. 1007 과정에서, 전자 장치(101)는 하드웨어 유일 값(예: 하드웨어 유일 키) 또는 TA 유일 값(TA의 UUID) 중 적어도 하나에 적어도 일부 기반하여 TA 키를 생성할 수 있다. TA는, trustzone API(예를 들어, tlApiDeriveKey())를, 예를 들어 라이브러리로부터 호출할 수 있으며, 호출된 API와 하드웨어 유일 값 및 TA 유일값을 이용하여 TA키를 생성할 수 있다. 1009 과정에서, 전자 장치(101)는 TA 키 및 카운터에 적어도 일부 기반하여 KEK를 생성할 수 있다. 예를 들어, 전자 장치(101)는, TA 키 및 카운터에 대하여 보안 해시 알고리즘(secure hash algorithm: SHA)을 적용함으로써 KEK를 생성할 수 있다. 해시 알고리즘은, 예를 들어 SHA-256, SHA-224, SHA-384, SHA-512 등일 수 있으나, KEK를 생성하기 위한 알고리즘에는 제한이 없음을 당업자는 용이하게 이해할 수 있을 것이다. 1011 과정에서, 전자 장치(101)는 KEK로 /data/system/*.key 파일 및 /data/system/locksettings.db 파일을 암호화하여 암호문(ciphertext)을 생성할 수 있다. 전자 장치(101)는, 예를 들어 AES-GCM (advanced encryption standard-galois counter mod)등의 변조 방지 기능을 제공하는 암호화 알고리즘을 이용하여 암호화를 수행할 수 있다. TA는 상술한 암호화 과정을 수행할 수 있으며, 암호문을 REE(310)의 락 스크린 기능 제공 개체로 전달할 수도 있다. 1013 과정에서, 전자 장치(101)는 암호문을 백업 파일로서 비일시적으로 저장할 수 있다. 예를 들어, REE(310)의 락 스크린 기능 제공 개체가 암호문을 백업 파일로서 비일시적으로 저장할 수 있다. 예를 들어, 전자 장치(101)는 암호문을 보안을 요구하지 않는 일반적인 저장소(예: /data 파티션)에 저장할 수 있다. 백업 파일의 역할은 더욱 상세하게 후술하도록 한다. 1015 과정에서, 전자 장치(101)는 카운터, 즉 기존의 카운터에 1을 더한 값을 비일시적으로 저장할 수 있다. 예를 들어, TEE(320)의 TA가 카운터를 비일시적으로 저장할 수 있다. 전자 장치(101)는, 예를 들어 RPMB(332) 또는 eSE(340)에, 카운터를 비일시적으로 저장할 수도 있다. 전자 장치(101)는, 새로운 카운터를 기존 카운터에 대하여 덮어쓰기할 수 있다. 1017 과정에서, 전자 장치(101)는 암호문을 데이터 파일로서 비일시적으로 저장할 수 있다. 예를 들어, 전자 장치(101)는 암호문을 보안을 요구하지 않는 일반적인 저장소(예: /data 파티션)에 저장할 수 있다. 예를 들어, REE(310)의 락 스크린 기능 제공 개체가 암호문을 백업 파일로서 비일시적으로 저장할 수 있다.
도 11은 다양한 실시예에 따른 전자 장치에 의한 잠금 해제 과정을 설명하기 위한 흐름도를 도시한다.
1101 과정에서, 다양한 실시예에 따라서, 전자 장치(101)(예: 프로세서(120))는, 잠금 해제를 위한 사용자 입력을 수신할 수 있다. 1103 과정에서, 전자 장치(101)는 데이터 파일로서 저장된 제 1 암호문을 독출할 수 있다. 1105 과정에서, 전자 장치(101)는 저장된 N-bit 카운터를 독출할 수 있다. 예를 들어, REE(310)의 프레임워크 계층(312)에서 실행되는 락 스크린 기능 제공 개체는 암호문을 독출하고, 독출된 암호문에 대한 해독 요청을 TEE(320)의 신뢰된 어플리케이션 계층(321)에서 실행되는 TA로 전달할 수 있다. TA는 이에 대응하여 카운터를 독출할 수 있다. 상술한 바와 같이, 전자 장치(101)는 예를 들어 32 비트 또는 64 비트의 카운터를 독출할 수 있다. 1107 과정에서, 전자 장치(101)는 하드웨어 유일 값 또는 TA 유일 값 중 적어도 하나에 적어도 일부 기반하여 TA 키를 생성할 수 있다. 1109 과정에서, 전자 장치(101)는 TA 키 및 counter에 적어도 일부 기반하여 KEK를 생성할 수 있다. 전자 장치(101)는, 예를 들어 도 10에서 설명한 바에 따라서, TA 키 및 KEK를 생성할 수 있다. 예를 들어, TEE(320)에서의 TA가 상술한 KEK 생성 과정을 수행할 수 있다.
1111 과정에서, 다양한 실시예에 따라서, 전자 장치(101)는 KEK를 이용하여 제 1 암호문을 해독하여 제 1 평문을 획득할 수 있다. 예를 들어, 전자 장치(101)는 AES-GCM의 변조 방지 기능에 적어도 일부 기반하여 제 1 암호문이 변조되었는지 여부를 판단할 수도 있으며, 변조된 경우에는 잠금 해제가 실패된 것으로 판단할 수 있다. 예를 들어, TA가 제 1 평문을 획득할 수 있으며, TA는 제 1 평문을 REE(310)에서의 락 스크린 기능 제공 개체로 전달할 수 있다. 1113 과정에서, 전자 장치(101)는 제 1 평문과 사용자 입력을 비교할 수 있다. 1115 과정에서, 전자 장치(101)는 비교 결과에 따라 잠금 해제되는지 여부를 판단할 수 있다. 예를 들어, REE(310)에서의 락 스크린 기능 제공 개체가, 잠금 해제 여부를 판단할 수 있다. 잠금 해제가 되면, 전자 장치(101)는 잠금 해제 이후 지정된 화면(예: 메뉴 화면)을 표시할 수 있다. 잠금 해제가 실패하면, 1117 과정에서, 전자 장치(101)는 백업 파일로서 저장된 제 2 암호문을 독출할 수 있다. 예를 들어, REE(310)에서의 락 스크린 기능 제공 개체가, 제 2 암호문에 대한 해독 요청을 TEE(320)에서의 TA로 전달할 수 있다. 1119 과정에서, 전자 장치(101)는 KEK를 이용하여 제 2 암호문을 해독하여 제 2 평문을 획득할 수 있다. 예를 들어, TA는 제 2 평문을 획득하고, 제 2 평문을 REE(310)에서의 락 스크린 기능 제공 개체로 전달할 수 있다. 1121 과정에서, 전자 장치(101)는 제 2 평문과 사용자 입력을 비교할 수 있다. 1123 과정에서, 전자 장치(101)는 비교 결과에 따라 잠금 해제되는지를 판단할 수 있다. 예를 들어, REE(310)에서의 락 스크린 기능 제공 개체가, 잠금 해제 여부를 판단할 수 있다. 잠금 해제가 성공된 것으로 판단되면, 1125 과정에서, 전자 장치(101)는 제 2 암호문을 데이터 파일로서 저장할 수 있다. 백업 파일을 이용한 과정에 의하여서도 잠금 해제가 실패한 것으로 판단되면, 전자 장치(101)는, 1127 과정에서, 잠금 해제가 실패한 것으로 판단할 수 있다. 상술한 바와 같이, 전자 장치(101)는 데이터 파일을 이용하여 잠금 해제를 시도한 이후에, 잠금 해제가 실패되면 백업 파일을 이용하여 잠금 해제를 시도할 수 있다. 이에 따라, 잠금 해제를 위한 정보를 설정하는 과정에서 전자 장치(101)가 턴 오프됨에 따라서, 신규 카운터 또는 암호문의 비일시적 저장이 완료되지 못한 경우에도, 안정적으로 잠금 해제 기능을 제공할 수 있으며, 이에 대하여서는 도 12를 참조하여 더욱 상세하게 설명하도록 한다.
도 12는 다양한 실시예에 따른 잠금 해제를 위한 정보를 설정하는 과정에서, 전자 장치의 복수 개의 저장소에 시간대별로 저장된 정보를 도시한다.
다양한 실시예에 따라서, 전자 장치(101)(예: 프로세서(120))는, “P1”의 잠금 해제를 위한 정보를 미리 저장할 수 있으며, “1”의 카운터를 미리 저장할 수 있다. 전자 장치(101)는, 잠금 해제를 위한 정보를 “P1”으로부터 “P2”로 변경하라는 요청을 수신할 수 있다. 전자 장치(101)는, 잠금 해제를 위한 정보의 설정 또는 변경에 대응하여, 카운터를 “1”로부터 “2”로 변경할 수 있다. 예를 들어, 전자 장치(101)에서 실행되는 TA는 카운터를 “1”로부터 “2”로 변경할 수 있으며, RAM에 “2”의 카운터를 일시적으로 저장할 수 있다. 예를 들어, 전자 장치(101)에서 실행되는 TA는 “2”의 카운터에 기반하여 암호화 키 “K(2)”를 생성할 수 있으며, 암호화 키를 이용하여 잠금 해제를 위한 정보를 암호화할 수 있다.
다양한 실시예에 따라서, 전자 장치(101)는, 제 1 구간에서, 암호화 결과 생성된 암호문인 “E(P2,K2)”을 RAM에 일시적으로 저장할 수 있다. 이에 따라, 제 1 구간에서는, TA에 의하여 생성된 데이터가 일시적으로 저장되는 저장소(예: RAM)에는, “2”의 카운터 및 “E(P2,K2)”의 암호문이 저장될 수 있다. 한편, 제 1 구간에서, 전자 장치(101)의 카운터가 비일시적으로 저장되는 저장소(예: RPMB(332)) 또는 eSE(340))에는 이전에 저장되었던 “1”의 카운터가 저장된 상태일 수 있다. 또한, 제 1 구간에서, 백업 파일 저장소(예: 메모리(130))의 적어도 일부)에는 E(P1,K(1))의 암호문이 저장될 수 있으며, 데이터 파일 저장소에도 E(P1,K(1))의 암호문이 저장될 수 있다. 이는, TA에 의하여 생성된 “2”의 카운터 및 “E(P2,K(2))”가 아직 비일시적으로 저장되지 못하였기 때문이다. 한편, 제 1 구간 중에 전자 장치(101)가 비정상적으로 턴 오프(turn off) 또는 재부팅(reboot)될 가능성이 있다. 다시 턴 온(turn on)이 된 이후, 사용자는 전자 장치(101)에 “P2”를 포함하는 잠금 해제 요청을 입력할 수 있다. 전자 장치(101)는, 잠금 해제 요청에 대응하여, 카운터 저장소에 저장되었던 “1”의 카운터를 독출하고, 이를 이용하여 암호화 키 “K(1)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(1)”을 이용하여 우선 데이터 파일로서 저장되었던 암호문 “E(P1,K(1))”을 해독하여, “P1”의 평문을 획득할 수 있다. 전자 장치(101)는 획득한 평문인 “P1”과 잠금 해제 요청에 포함된 “P2”가 대응되지 않음을 판단할 수 있으며, 이에 따라 잠금 해제 실패를 판단할 수 있다. 전자 장치(101)는, 도 11에서 설명한 바와 같이, 백업 파일로서 저장되었던 암호문 “E(P1,K(1))”을 해독하여, “P1”의 평문을 획득할 수 있다. 전자 장치(101)는 획득한 평문인 “P1”과 잠금 해제 요청에 포함된 “P2”가 대응되지 않음을 판단할 수 있으며, 이에 따라 잠금 해제 실패(1201)를 판단할 수 있다. 전자 장치(101)는, “P2”를 포함한 잠금 해제 요청으로 잠금 해제가 불가능하다는 메시지를 출력할 수 있다. 사용자는, 잠금 해제를 위한 정보 변경 과정에서, 전자 장치(101)가 턴 오프 또는 재부팅되었기 때문에, 기존의 잠금 해제를 위한 정보인 “P1”을 포함하는 잠금 해제 요청을 전자 장치(101)에 입력할 수 있다. “P1”을 포함하는 잠금 해제 요청이 수신되면, 카운터 저장소에 저장되었던 “1”의 카운터를 독출하고, 이를 이용하여 암호화 키 “K(1)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(1)”을 이용하여 우선 데이터 파일로서 저장되었던 암호문 “E(P1,K(1))”을 해독하여, “P1”의 평문을 획득할 수 있다. 전자 장치(101)는 획득한 평문인 “P1”과 잠금 해제 요청에 포함된 “P1”이 대응됨 판단할 수 있으며, 이에 따라 데이터 파일로서 잠금 해제가 성공(1202)하였음을 판단할 수 있다.
다양한 실시예에 따라서, 제 2 구간에서, 전자 장치(101)는 도 11에서 설명한 바와 같이, 우선 백업 파일로서 암호문 “E(P2,K(2))”를 비일시적으로 저장할 수 있다. 제 2 구간에서는, 카운터 저장소 및 데이터 파일 저장소에는, 아직 갱신된 값이 저장되지 못할 수 있으며, 이에 따라 카운터 저장소에는 “1”의 카운터가 저장되며, 데이터 파일 저장소에서는 암호문 “E(P1,K(1))”이 저장될 수 있다. 전자 장치(101)는, 제 2 구간 중에 비정상적으로 턴 오프 되거나 또는 재부팅 될 수 있다. 다시 턴 온이 된 이후, 사용자는 전자 장치(101)에 “P2”를 포함하는 잠금 해제 요청을 입력할 수 있다. 전자 장치(101)는, 잠금 해제 요청에 대응하여, 카운터 저장소에 저장되었던 “1”의 카운터를 독출하고, 이를 이용하여 암호화 키 “K(1)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(1)”을 이용하여 우선 데이터 파일로서 저장되었던 암호문 “E(P1,K(1))”을 해독하여, “P1”의 평문을 획득할 수 있다. 전자 장치(101)는 획득한 평문인 “P1”과 잠금 해제 요청에 포함된 “P2”가 대응되지 않음을 판단할 수 있으며, 이에 따라 잠금 해제 실패를 판단할 수 있다. 전자 장치(101)는, 도 11에서 설명한 바와 같이, 백업 파일로서 저장되었던 암호문 “E(P2,K(2))”을 K(1)의 암호화 키로 해독할 것을 시도할 수 있다. 하지만, “E(P2,K(2))”는 K(2)의 암호화 키로 암호화된 암호문이므로, K(1)에 의하여 해독될 수 없으며, 전자 장치(101)는 “P2”의 정보로서는 잠금 해제가 실패(1211)한 것으로 판단할 수 있다. 전자 장치(101)는, “P2”를 포함한 잠금 해제 요청으로 잠금 해제가 불가능하다는 메시지를 출력할 수 있다. 사용자는, 잠금 해제를 위한 정보 변경 과정에서, 전자 장치(101)가 턴 오프 또는 재부팅 되었기 때문에, 기존의 잠금 해제를 위한 정보인 “P1”을 포함하는 잠금 해제 요청을 전자 장치(101)에 입력할 수 있다. “P1”을 포함하는 잠금 해제 요청이 수신되면, 카운터 저장소에 저장되었던 “1”의 카운터를 독출하고, 이를 이용하여 암호화 키 “K(1)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(1)”을 이용하여 우선 데이터 파일로서 저장되었던 암호문 “E(P1,K(1))”을 해독하여, “P1”의 평문을 획득할 수 있다. 전자 장치(101)는 획득한 평문인 “P1”과 잠금 해제 요청에 포함된 “P1”이 대응됨 판단할 수 있으며, 이에 따라 데이터 파일로서 잠금 해제가 성공(1212)하였음을 판단할 수 있다.
다양한 실시예에 따라서, 제 3 구간에서, 전자 장치(101)는 도 11에서 설명한 바와 같이, 백업 파일로서 암호문 “E(P2,K(2))”를 비일시적으로 저장한 이후에, 카운터 “2”를 카운터 저장소에 비일시적으로 저장할 수 있다. 제 3 구간에서는, 데이터 파일 저장소에는, 아직 갱신된 값이 저장되지 못할 수 있으며, 이에 따라 데이터 파일 저장소에서는 암호문 “E(P1,K(1))”이 저장될 수 있다. 전자 장치(101)는, 제 3 구간 중에 비정상적으로 턴 오프 되거나 또는 재부팅 될 수 있다. 다시 턴 온이 된 이후, 사용자는 전자 장치(101)에 “P2”를 포함하는 잠금 해제 요청을 입력할 수 있다. 전자 장치(101)는, 잠금 해제 요청에 대응하여, 카운터 저장소에 저장되었던 “2”의 카운터를 독출하고, 이를 이용하여 암호화 키 “K(2)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(2)”을 이용하여 우선 데이터 파일로서 저장되었던 암호문 “E(P1,K(1))”의 해독을 시도할 수 있다. 하지만, “E(P1,K(1))”는 K(1)의 암호화 키로 암호화된 암호문이므로, K(2)에 의하여 해독될 수 없으며, 전자 장치(101)는 데이터 파일 정보로써는 잠금 해제가 실패한 것으로 판단할 수 있다. 전자 장치(101)는, 도 11에서 설명한 바와 같이, 백업 파일로서 저장되었던 암호문 “E(P2,K(2))”을 암호화 키 “K(2)”를 이용하여 해독하여, “P2”의 평문을 획득할 수 있다. 전자 장치(101)는 획득한 평문인 “P2”과 잠금 해제 요청에 포함된 “P2”가 대응되는 것을 판단할 수 있다. 전자 장치(101)는, 백업 파일로써 “P2”에 대응하는 잠금 해제가 성공(1221)한 것으로 판단할 수 있다.
다양한 실시예에 따라서, 제 4 구간에서, 전자 장치(101)는 도 11에서 설명한 바와 같이, 카운터 “2”를 카운터 저장소에 비일시적으로 저장한 이후에, 데이터 파일 저장소에 암호문 “E(P2,K(2))를 저장할 수 있다. 전자 장치(101)는, 제 4 구간 중에 비정상적으로 턴 오프되거나 또는 재부팅될 수 있다. 다시 턴 온이 된 이후, 사용자는 전자 장치(101)에 “P2”를 포함하는 잠금 해제 요청을 입력할 수 있다. 전자 장치(101)는, 잠금 해제 요청에 대응하여, 카운터 저장소에 저장되었던 “2”의 카운터를 독출하고, 이를 이용하여 암호화 키 “K(2)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(2)”을 이용하여 우선 데이터 파일로서 저장되었던 암호문 “E(P2,K(2))”의 해독을 시도할 수 있으며, 이에 따라 평문 “P2”를 획득할 수 있다. 전자 장치(101)는 획득한 평문인 “P2”과 잠금 해제 요청에 포함된 “P2”가 대응되는 것을 판단할 수 있다. 전자 장치(101)는, 데이터 파일로써 “P2”에 대응하는 잠금 해제가 성공(1222)한 것으로 판단할 수 있다.
상술한 바와 같이, 도 12에서의 제 1 구간 내지 제 4 구간 중 어느 구간에서 전자 장치(101)가 비정상적으로 종료된다 하더라도, 도 10에서와 같은 백업 파일 저장, 카운터 저장 및 데이터 파일 저장의 순서대로의 저장에 따라서, 전자 장치(101)는 새롭게 설정된 잠금 해제를 위한 정보 또는 기존에 설정되었던 잠금 해제를 위한 정보 중 어느 하나를 이용하여 잠금 해제를 수행할 수 있다.
도 13a는 다양한 실시예에 따른 전자 장치에 의한 잠금 해제 과정을 설명하기 위한 흐름도를 도시한다. 도 13a는, 전자 장치(101)가 잠금 해제를 위한 정보를 설정하는 과정에서, 암호문을 먼저 비일시적으로 저장하고, 이후에 갱신된 카운터를 비일시적으로 저장하도록 설정된 경우에 대한 잠금 해제 과정을 나타낸다.
1301 과정에서, 다양한 실시예에 따라서, 전자 장치(101)(예: 프로세서(120))는, 잠금 해제를 위한 사용자 입력을 수신할 수 있다. 1303 과정에서, 전자 장치(101)는, 데이터 파일로서 저장된 암호문을 독출할 수 있다. 1305 과정에서, 전자 장치(101)는, 저장된 N-bit 카운터를 독출할 수 있다. 1307 과정에서, 전자 장치(101)는, 하드웨어 유일 값 또는 TA 유일 값 중 적어도 하나에 적어도 일부 기반하여 TA 키를 생성할 수 있다. 1309 과정에서, 전자 장치(101)는, TA 키 및 카운터에 적어도 일부 기반하여 제 1 KEK를 생성할 수 있다. 1311 과정에서, 전자 장치(101)는, 제 1 KEK를 이용하여 암호문을 해독하여 제 1 평문을 획득할 수 있다. 1313 과정에서, 전자 장치(101)는, 제 1 평문과 사용자 입력을 비교할 수 있다. 1315 과정에서, 전자 장치(101)는, 비교 결과에 따라 전자 장치(101)가 잠금 해제되는지를 판단할 수 있다.
다양한 실시예에서, 잠금 해제되지 않는 것으로 판단되면, 전자 장치(101)는, 1317 과정에서, 독출한 카운터에 1을 더하는 연산을 수행할 수 있다. 전자 장치(101)가 1을 더하는 연산을 수행하는 것은 단순히 예시적인 것이며, 다양한 실시예에서, 전자 장치(101)는 지정된 카운터 변경 방법을 적용하여 카운터를 변경시킬 수 있다. 1319 과정에서, 전자 장치(101)는, TA 및 변경된 카운터, 예를 들어 독출한 카운터에 1을 더한 값에 적어도 일부 기반하여 제 2 KEK를 생성할 수 있다. 1321 과정에서, 전자 장치(101)는, 제 2 KEK를 이용하여 암호문을 해독하여 제 2 평문을 획득할 수 있다. 1323 과정에서, 전자 장치(101)는, 제 2 평문과 사용자 입력을 비교할 수 있다. 1325 과정에서, 전자 장치(101)는, 비교 결과에 따라 전자 장치(101)가 잠금 해제되는지를 판단할 수 있다. 잠금 해제되면, 1327 과정에서, 전자 장치(101)는 변경된 카운터를 저장할 수 있다. 잠금 해제되지 않으면, 전자 장치(101)는 1329 과정에서, 잠금 해제가 실패한 것으로 판단할 수 있다.
상술한 바에 따라서, 전자 장치(101)는 백업 파일을 저장하지 않으면서도, 비정상적인 턴 오프 또는 재부팅에도 강인한 잠금 해제 기능을 제공할 수 있다. 비정상적인 턴 오프에 대하여서는 도 14a를 참조하여 더욱 상세하게 설명하도록 한다.
도 13b는 다양한 실시예에 따른 전자 장치에 의한 잠금 해제 과정을 설명하기 위한 흐름도를 도시한다. 도 13b는, 전자 장치(101)가 잠금 해제를 위한 정보를 설정하는 과정에서, 갱신된 카운터를 먼저 비일시적으로 저장하고, 이후에 암호문을 비일시적으로 저장하도록 설정된 경우에 대한 잠금 해제 과정을 나타낸다.
1301 과정에서, 다양한 실시예에 따라서, 전자 장치(101)(예: 프로세서(120))는, 잠금 해제를 위한 사용자 입력을 수신할 수 있다. 1303 과정에서, 전자 장치(101)는, 데이터 파일로서 저장된 암호문을 독출할 수 있다. 1305 과정에서, 전자 장치(101)는, 저장된 N-bit 카운터를 독출할 수 있다. 1307 과정에서, 전자 장치(101)는, 하드웨어 유일 값 또는 TA 유일 값 중 적어도 하나에 적어도 일부 기반하여 TA 키를 생성할 수 있다. 1309 과정에서, 전자 장치(101)는, TA 키 및 카운터에 적어도 일부 기반하여 제 1 KEK를 생성할 수 있다. 1311 과정에서, 전자 장치(101)는, 제 1 KEK를 이용하여 암호문을 해독하여 제 1 평문을 획득할 수 있다. 1313 과정에서, 전자 장치(101)는, 제 1 평문과 사용자 입력을 비교할 수 있다. 1315 과정에서, 전자 장치(101)는, 비교 결과에 따라 전자 장치(101)가 잠금 해제되는지를 판단할 수 있다.
다양한 실시예에 따라서, 전자 장치(101)는, 1315 과정에서, 비교 결과에 따라 전자 장치(101)가 잠금 해제되는지를 판단할 수 있다. 다양한 실시예에서, 잠금 해제되지 않는 것으로 판단되면, 전자 장치(101)는, 1318 과정에서, 독출한 카운터에 1을 빼는 연산을 수행할 수 있다. 전자 장치(101)가 1을 빼는 연산을 수행하는 것은 단순히 예시적인 것이며, 다양한 실시예에서, 전자 장치(101)는 지정된 카운터 변경 방법의 역과정을 적용하여 카운터를 변경시킬 수 있다. 1319 과정에서, 전자 장치(101)는, TA 및 변경된 카운터, 예를 들어 독출한 카운터에서 1을 뺀 값에 적어도 일부 기반하여 제 2 KEK를 생성할 수 있다. 1321 과정에서, 전자 장치(101)는, 제 2 KEK를 이용하여 암호문을 해독하여 제 2 평문을 획득할 수 있다. 1323 과정에서, 전자 장치(101)는, 제 2 평문과 사용자 입력을 비교할 수 있다. 1325 과정에서, 전자 장치(101)는, 비교 결과에 따라 전자 장치(101)가 잠금 해제되는지를 판단할 수 있다. 잠금 해제되면, 1327 과정에서, 전자 장치(101)는 변경된 카운터를 저장할 수 있다. 잠금 해제되지 않으면, 전자 장치(101)는 1329 과정에서, 잠금 해제가 실패한 것으로 판단할 수 있다.
상술한 바에 따라서, 전자 장치(101)는 백업 파일을 저장하지 않으면서도, 비정상적인 턴 오프 또는 재부팅에도 강인한 잠금 해제 기능을 제공할 수 있다. 비정상적인 턴 오프에 대하여서는 도 14b를 참조하여 더욱 상세하게 설명하도록 한다.
도 14a는 다양한 실시예에 따른 잠금 해제를 위한 정보를 설정하는 과정에서, 전자 장치의 복수 개의 저장소에 시간대별로 저장된 정보를 도시한다. 도 14a의 실시예에서는, 도 13a에서 설명한 바와 같이, 전자 장치(101)가 암호문을 먼저 비일시적으로 저장하고, 이후에 갱신된 카운터를 비일시적으로 저장할 수 있다.
다양한 실시예에 따라서, 전자 장치(101)(예: 프로세서(120))는, “P1”의 잠금 해제를 위한 정보를 미리 저장할 수 있으며, “1”의 카운터를 미리 저장할 수 있다. 전자 장치(101)는, 잠금 해제를 위한 정보를 “P1”으로부터 “P2”로 변경하라는 요청을 수신할 수 있다. 아울러, 전자 장치(101)는, 잠금 해제를 위한 정보의 설정 또는 변경에 대응하여, 카운터를 “1”로부터 “2”로 변경할 수 있다. 예를 들어, 전자 장치(101)에서 실행되는 TA는 카운터를 “1”로부터 “2”로 변경할 수 있으며, RAM에 “2”의 카운터를 일시적으로 저장할 수 있다. 예를 들어, 전자 장치(101)에서 실행되는 TA는 “2”의 카운터에 기반하여 암호화 키 “K(2)”를 생성할 수 있으며, 암호화 키를 이용하여 잠금 해제를 위한 정보를 암호화할 수 있다.
다양한 실시예에 따라서, 전자 장치(101)는, 제 1 구간에서, 암호화 결과 생성된 암호문인 “E(P2,K2)”을 RAM에 저장할 수 있다. 이에 따라, 제 1 구간에서는, TA에 의하여 생성된 데이터가 일시적으로 저장되는 저장소(예: RAM)에는, “2”의 카운터 및 “E(P2,K2)”의 암호문이 저장될 수 있다. 한편, 제 1 구간에서, 전자 장치(101)의 카운터가 비일시적으로 저장되는 저장소(예: RPMB(332)) 또는 eSE(340))에는 이전에 저장되었던 “1”의 카운터가 저장될 수 있다. 또한, 제 1 구간에서, 데이터 파일 저장소(예: 메모리(130))의 적어도 일부)에는 E(P1,K(1))의 암호문이 저장될 수 있으며, 데이터 파일 저장소에도 E(P1,K(1))의 암호문이 저장될 수 있다. 이는, TA에 의하여 생성된 “2”의 카운터 및 “E(P2,K(2))”가 아직 비일시적으로 저장되지 못하였기 때문이다. 한편, 제 1 구간 중에 전자 장치(101)가 비정상적으로 턴 오프 또는 재부팅될 가능성이 있다. 다시 턴 온이 된 이후, 사용자는 전자 장치(101)에 “P2”를 포함하는 잠금 해제 요청을 입력할 수 있다. 전자 장치(101)는, 잠금 해제 요청에 대응하여, 카운터 저장소에 저장되었던 “1”의 카운터를 독출하고, 이를 이용하여 암호화 키 “K(1)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(1)”을 이용하여 우선 데이터 파일로서 저장되었던 암호문 “E(P1,K(1))”을 해독하여, “P1”의 평문을 획득할 수 있다. 전자 장치(101)는 획득한 평문인 “P1”과 잠금 해제 요청에 포함된 “P2”가 대응되지 않음을 판단할 수 있으며, 이에 따라 잠금 해제 실패를 판단할 수 있다. 전자 장치(101)는, 도 13a에서 설명한 바와 같이, 카운터에 +1의 연산을 수행하여 “2”의 카운터를 생성하고, 암호화 키 “K(2)”를 생성할 수 있다. 전자 장치(101)는, 암호화 키 “K(2)”를 이용하여 암호문 “E(P1,K(1))”의 해독을 시도하지만, “E(P1,K(1))”는 암호화 키 “K(1)”에 의하여 암호화되었기 때문에, 해독에 실패할 수 있다. 전자 장치(101)는, “P(2)”로의 잠금 해제가 실패(1401)한 것으로 판단할 수 있다. 전자 장치(101)는, “P2”를 포함한 잠금 해제 요청으로 잠금 해제가 불가능하다는 메시지를 출력할 수 있다. 사용자는, 잠금 해제를 위한 정보 변경 과정에서, 전자 장치(101)가 턴 오프 또는 재부팅 되었기 때문에, 기존의 잠금 해제를 위한 정보인 “P1”을 포함하는 잠금 해제 요청을 전자 장치(101)에 입력할 수 있다. “P1”을 포함하는 잠금 해제 요청이 수신되면, 카운터 저장소에 저장되었던 “1”의 카운터를 독출하고, 이를 이용하여 암호화 키 “K(1)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(1)”을 이용하여 우선 데이터 파일로서 저장되었던 암호문 “E(P1,K(1))”을 해독하여, “P1”의 평문을 획득할 수 있다. 전자 장치(101)는 획득한 평문인 “P1”과 잠금 해제 요청에 포함된 “P1”이 대응됨 판단할 수 있으며, 이에 따라 데이터 파일로서 잠금 해제가 성공(1402)하였음을 판단할 수 있다.
다양한 실시예에 따라서, 제 2 구간에서, 전자 장치(101)는, 우선 데이터 파일 저장소에 암호문 “E(P2,K(2))를 저장할 수 있다. 카운터 저장소에는 아직 새롭게 설정된 “2”의 카운터가 저장되지 않을 수 있으며, “1”의 카운터가 여전히 저장된 상태일 수 있다. 전자 장치(101)는, 제 2 구간 중에 비정상적으로 턴 오프 되거나 또는 재부팅 될 수 있다. 다시 턴 온이 된 이후, 사용자는 전자 장치(101)에 “P2”를 포함하는 잠금 해제 요청을 입력할 수 있다. 전자 장치(101)는, 잠금 해제 요청에 대응하여, 카운터 저장소에 저장되었던 “1”의 카운터를 독출하고, 이를 이용하여 암호화 키 “K(1)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(1)”을 이용하여 우선 데이터 파일로서 저장되었던 암호문 “E(P2,K(2))”의 해독을 시도할 수 있다. 하지만, 암호문 “E(P2,K(2))”은 K(2)에 의하여 암호화되었으므로, 암호화 키 “K(1)”에 의하여 해독될 수 없다. 이에 따라, 전자 장치(101)는 “P(2)”로써 잠금 해제가 실패(1411)한 것으로 판단할 수 있다. 도 13a에서 설명한 바와 같이, 전자 장치(101)는 잠금 해제 실패(1411)에 대응하여, 카운터에 1을 더하는 연산(1412)을 수행할 수 있으며, “2”의 카운터를 생성할 수 있다. 전자 장치(101)는, “2”의 카운터에 기반하여 암호화 키 “K(2)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(2)”을 이용하여 데이터 파일로서 저장되었던 암호문 “E(P2,K(2))”의 해독할 수 있으며, 평문 “P2”를 획득할 수 있다. 전자 장치(101)는 획득한 평문인 “P2”과 잠금 해제 요청에 포함된 “P2”가 대응되는 것을 판단할 수 있다. 전자 장치(101)는, 데이터 파일로써 “P2”에 대응하는 잠금 해제가 성공(1413)한 것으로 판단할 수 있다.
다양한 실시예에 따라서, 제 3 구간에서, 전자 장치(101)는, 데이터 파일 저장소에 암호문 “E(P2,K(2))”를 비일시적으로 저장하고, 이후에 카운터 “2”를 카운터 저장소에 비일시적으로 저장할 수 있다. 전자 장치(101)는, 제 3 구간 중에 비정상적으로 턴 오프 되거나 또는 재부팅 될 수 있다. 다시 턴 온이 된 이후, 사용자는 전자 장치(101)에 “P2”를 포함하는 잠금 해제 요청을 입력할 수 있다. 전자 장치(101)는, 잠금 해제 요청에 대응하여, 카운터 저장소에 저장되었던 “2”의 카운터를 독출하고, 이를 이용하여 암호화 키 “K(2)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(2)”을 이용하여 데이터 파일로서 저장되었던 암호문 “E(P2,K(2))”을 해독하여, “P2”의 평문을 획득할 수 있다. 전자 장치(101)는 획득한 평문인 “P2”과 잠금 해제 요청에 포함된 “P2”가 대응되는 것을 판단할 수 있다. 전자 장치(101)는, “P2”에 대응하는 잠금 해제가 성공(1421)한 것으로 판단할 수 있다.
상술한 바와 같이, 도 14a에서의 제 1 구간 내지 제 3 구간 중 어느 구간에서 전자 장치(101)가 비정상적으로 종료된다 하더라도, 도 13a에서와 같은 데이터 파일 저장 및 카운터 저장의 순서대로의 저장에 따라서, 전자 장치(101)는 새롭게 설정된 잠금 해제를 위한 정보 또는 기존에 설정되었던 잠금 해제를 위한 정보 중 어느 하나를 이용하여 잠금 해제를 수행할 수 있다.
도 14b는 다양한 실시예에 따른 잠금 해제를 위한 정보를 설정하는 과정에서, 전자 장치의 복수 개의 저장소에 시간대별로 저장된 정보를 도시한다. 도 14b의 실시예에서는, 도 13b에서 설명한 바와 같이, 전자 장치(101)가 갱신된 카운터를 먼저 비일시적으로 저장하고, 이후에 암호문을 비일시적으로 저장할 수 있다.
제 1 구간에서의 “P2”의 정보 입력에 의한 잠금 해제 실패(1431) 및 “P1”의 정보 입력에 의한 잠금 해제 성공(1432)의 과정은 도 14a와 실질적으로 동일하기 때문에, 여기에서의 더 이상의 설명은 생략하도록 한다.
다양한 실시예에 따라서, 제 2 구간에서, 전자 장치(101)는 갱신된 카운터인 “2”를 카운터 저장소에 우선 저장할 수 있다. 제 2 구간에서는, 데이터 파일 저장소에는, 아직 새롭게 생성된 “E(P2,K(2))”가 저장되지 않을 수 있으며, 여전히 “E(P1,K(1))”이 저장될 수 있다. 전자 장치(101)는, 제 2 구간 중에 비정상적으로 턴 오프 되거나 또는 재부팅 될 수 있다. 다시 턴 온이 된 이후, 사용자는 전자 장치(101)에 “P2”를 포함하는 잠금 해제 요청을 입력할 수 있다. 전자 장치(101)는, 잠금 해제 요청에 대응하여, 카운터 저장소에 저장되었던 “2”의 카운터를 독출하고, 이를 이용하여 암호화 키 “K(2)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(2)”을 이용하여 데이터 파일로서 저장되었던 암호문 “E(P1,K(1))”의 해독을 시도할 수 있다. 하지만, 암호문 “E(P1,K(1))”은 K(1)에 의하여 암호화되었으므로, 암호화 키 “K(2)”에 의하여 해독될 수 없다. 이에 따라, 전자 장치(101)는 “P(2)”로써 잠금 해제가 실패한 것으로 판단할 수 있다. 도 13b에서 설명한 바와 같이, 전자 장치(101)는 잠금 해제 실패에 대응하여, 카운터에 1을 빼는 연산을 수행할 수 있으며, “1”의 카운터를 생성할 수 있다. 전자 장치(101)는, “1”의 카운터에 기반하여 암호화 키 “K(1)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(1)”을 이용하여 데이터 파일로서 저장되었던 암호문 “E(P1,K(1))”의 해독할 수 있으며, 평문 “P1”를 획득할 수 있다. 전자 장치(101)는 획득한 평문인 “P1”과 잠금 해제 요청에 포함된 “P2”가 대응되지 않는 것을 판단할 수 있다. 전자 장치(101)는, “P2”에 대응하는 잠금 해제가 실패(1441)한 것으로 판단할 수 있다. 전자 장치(101)는, “P2”를 포함한 잠금 해제 요청으로 잠금 해제가 불가능하다는 메시지를 출력할 수 있다. 사용자는, 잠금 해제를 위한 정보 변경 과정에서, 전자 장치(101)가 턴 오프 또는 재부팅 되었기 때문에, 기존의 잠금 해제를 위한 정보인 “P1”을 포함하는 잠금 해제 요청을 전자 장치(101)에 입력할 수 있다. “P1”을 포함하는 잠금 해제 요청이 수신되면, 전자 장치(101)는 카운터 저장소에 저장되었던 “2”의 카운터를 독출하고, 이를 이용하여 암호화 키 “K(2)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(2)”을 이용하여 데이터 파일로서 저장되었던 암호문 “E(P1,K(1))”의 해독을 시도할 수 있다. 하지만, 암호문 “E(P1,K(1))”은 K(1)에 의하여 암호화되었으므로, 암호화 키 “K(2)”에 의하여 해독될 수 없다. 이에 따라, 전자 장치(101)는 “P(2)”로써 잠금 해제가 실패(1442)한 것으로 판단할 수 있다. 도 13b에서 설명한 바와 같이, 전자 장치(101)는 잠금 해제 실패에 대응하여, 카운터에 1을 빼는 연산(1443)을 수행할 수 있으며, “1”의 카운터를 생성할 수 있다. 전자 장치(101)는, “1”의 카운터에 기반하여 암호화 키 “K(1)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(1)”을 이용하여 데이터 파일로서 저장되었던 암호문 “E(P1,K(1))”의 해독할 수 있으며, 평문 “P1”를 획득할 수 있다. 전자 장치(101)는 획득한 평문인 “P1”과 잠금 해제 요청에 포함된 “P1”이 대응되는 것을 판단할 수 있다. 전자 장치(101)는, “P1”에 대응하는 잠금 해제가 성공(1444)한 것으로 판단할 수 있다.
다양한 실시예에 따라서, 제 3 구간에서, 전자 장치(101)는, 카운터 “2”를 카운터 저장소에 비일시적으로 저장하고, 이후에 데이터 파일 저장소에 암호문 “E(P2,K(2))”를 비일시적으로 저장할 수 있다. 전자 장치(101)는, 제 3 구간 중에 비정상적으로 턴 오프되거나 또는 재부팅될 수 있다. 다시 턴 온이 된 이후, 사용자는 전자 장치(101)에 “P2”를 포함하는 잠금 해제 요청을 입력할 수 있다. 전자 장치(101)는, 잠금 해제 요청에 대응하여, 카운터 저장소에 저장되었던 “2”의 카운터를 독출하고, 이를 이용하여 암호화 키 “K(2)”을 생성할 수 있다. 전자 장치(101)는, 생성한 암호화 키 “K(2)”을 이용하여 데이터 파일로서 저장되었던 암호문 “E(P2,K(2))”을 해독하여, “P2”의 평문을 획득할 수 있다. 전자 장치(101)는 획득한 평문인 “P2”과 잠금 해제 요청에 포함된 “P2”가 대응되는 것을 판단할 수 있다. 전자 장치(101)는, “P2”에 대응하는 잠금 해제가 성공(1451)한 것으로 판단할 수 있다.
상술한 바와 같이, 도 14a에서의 제 1 구간 내지 제 3 구간 중 어느 구간에서 전자 장치(101)가 비정상적으로 종료된다 하더라도, 도 13b에서와 같은 카운터 저장 및 데이터 파일 저장의 순서대로의 저장에 따라서, 전자 장치(101)는 새롭게 설정된 잠금 해제를 위한 정보 또는 기존에 설정되었던 잠금 해제를 위한 정보 중 어느 하나를 이용하여 잠금 해제를 수행할 수 있다.
도 15는 다양한 실시예에 따른 전자 장치에 의한 잠금 해제를 위한 정보의 설정 또는 변경 방법을 설명하기 위한 흐름도를 도시한다.
1501 과정에서, 다양한 실시예에 따라서, 전자 장치(101)는, 잠금 해제를 위한 정보 설정 또는 변경을 위한 사용자 인터페이스를 표시할 수 있다. 예를 들어, 전자 장치(101)는, 번호를 입력할 수 있는 SIP를 포함하는 사용자 인터페이스, 패턴을 입력할 수 있는 사용자 인터페이스, 지문 인식을 수행하도록 하는 사용자 인터페이스, 홍채 인식을 수행하도록 하는 사용자 인터페이스 등의 다양한 사용자 인터페이스를 표시할 수 있다. 또는, 전자 장치(101)는, 잠금 해제를 위한 정보를 설정 또는 변경하는 방법을 안내하는 음성을 출력할 수도 있으며, 이 경우에는 사용자 인터페이스를 표시하지 않을 수도 있다. 다양한 실시예에서, 전자 장치(101)는, 잠금 해제를 위한 정보 설정 또는 변경을 위한 안내를, 다양한 방식으로 제공할 수 있으며, 이에는 제한이 없다. 또는, 전자 장치(101)는, 별다른 사용자 인터페이스를 제공하지 않을 수도 있으며, 바로 잠금 해제 설정을 위한 사용자 입력을 수신할 수도 있다. 1503 과정에서, 전자 장치(101)는 잠금 해제 설정을 위한 사용자 입력을 수신할 수 있다. 예를 들어, 전자 장치(101)는 사용자 인터페이스에 대응한 사용자의 입력에 적어도 일부 기반하여 설정 또는 변경할 잠금 해제를 위한 정보를 획득할 수 있다.
다양한 실시예에 따라서, 전자 장치(101)는, 1505 과정에서, 사용자 입력의 수신에 응답하여, 보안 영역에 대응하는 메모리의 제 1 일부(예: RPMB(332) 또는 eSE(340))에 저장된 제 1 값(예: 기존의 카운터)을 제 2 값으로 변경할 수 있다. 다양한 실시예에서는, 잠금 해제를 위한 정보의 설정 또는 변경 시마다, 메모리의 제 1 일부(예: RPMB(332) 또는 eSE(340))에 저장된 값이 변경될 수 있다. 1507 과정에서, 전자 장치(101)는, 사용자 입력의 수신에 응답하여, 일반 영역에 대응하는 메모리의 제 2 일부에 저장된 제 1 암호문을 제 2 암호문으로 변경할 수 있다. 다양한 실시예에서는, 잠금 해제를 위한 정보의 설정 또는 변경 시마다, 메모리의 제 2 일부에 저장된 값이 변경될 수 있다
보안 영역에 대응하는 메모리의 제 1 일부(예: RPMB(332) 또는 eSE(340))에 저장된 값은, 추후 잠금 해제를 위한 정보 재설정에 따라, 제 2 값으로부터 제 3 값으로 변경될 수 있다. 제 1 값으로부터 제 2 값으로의 변경 방법(예: +1의 연산)은, 제 2 값으로부터 제 3 값으로의 변경 방법(예: +1의 연산)과 동일할 수 있다. 예를 들어, 제 1 값 및 제 2 값의 차이는, 제 2 값 및 제 3 값의 차이와 동일할 수 있다.
다양한 실시예에 따라서, 전자 장치(101)는, 사용자 입력에 기반하여 제 1 비밀 번호를 새로운 잠금 해제를 위한 정보로서 재설정할 수 있으며, 카운터를 제 1 값으로부터 제 2 값으로 변경할 수 있다. 전자 장치(101)는, 제 2 값에 적어도 일부 기반하여 생성된 제 1 암호화 키를 이용하여 제 1 비밀 번호를 암호화하여 일반 영역에 저장할 수 있다. 한편, 사용자는 비밀 번호를 제 1 비밀 번호로 재설정할 수 있다. 예를 들어, 전자 장치(101)는, 기존의 비밀 번호가 “1579”인 경우에, 이를 “1579”로 재설정하라는 요청을 수신할 수도 있다. 전자 장치(101)는, 카운터를 제 2 값으로부터 제 3 값으로 변경할 수 있으며, 제 3 값에 적어도 일부 기반하여 생성된 제 2 암호화 키를 이용하여 제 1 비밀 번호를 암호화하여 일반 영역에 저장할 수 있다. 이 경우, 동일한 잠금 해제 정보가 재설정되는 경우에, 동일한 잠금 해제 정보에 대하여 상이한 암호화 키에 기반하여 암호화된 상이한 데이터 파일들이 저장될 수 있다.
도 16은 다양한 실시예에 따른 전자 장치에 의한 잠금 해제 과정을 설명하기 위한 흐름도를 도시한다.
1601 과정에서, 다양한 실시예에 따라서, 전자 장치(101)는, 잠금 해제를 위한 사용자 인터페이스를 표시할 수 있다. 1603 과정에서, 전자 장치(101)는 잠금 해제를 위한 사용자 입력을 수신할 수 있다. 예를 들어, 전자 장치(101)는, 번호를 입력할 수 있는 SIP를 포함하는 사용자 인터페이스, 패턴을 입력할 수 있는 사용자 인터페이스, 지문 인식을 수행하도록 하는 사용자 인터페이스, 홍채 인식을 수행하도록 하는 사용자 인터페이스 등의 다양한 사용자 인터페이스를 표시할 수 있다. 또는, 전자 장치(101)는, 잠금 해제를 위한 방법을 안내하는 음성을 출력할 수도 있으며, 이 경우에는 사용자 인터페이스를 표시하지 않을 수도 있다. 다양한 실시예에서, 전자 장치(101)는, 잠금 해제를 위한 안내를, 다양한 방식으로 제공할 수 있으며, 이에는 제한이 없다. 또는, 전자 장치(101)는, 별다른 사용자 인터페이스를 제공하지 않을 수도 있으며, 바로 잠금 해제를 위한 사용자 입력을 수신할 수도 있다. 1605 과정에서, 전자 장치(101)는, 사용자 입력의 수신에 응답하여, 보안 영역에 대응하는 메모리의 제 1 일부(예: RPMB(322) 또는 eSE(340))에 저장된 값(예: 카운터), 일반 영역에 대응하는 메모리의 제 2 일부에 저장된 값(예: 암호화된 잠금 해제를 위한 정보) 및 사용자 입력(입력된 잠금 해제를 위한 정보)을 이용하여 잠금 해제 여부를 결정할 수 있다. 이에 따라, 외부 공격에 의하여 메모리의 제 2 일부에 저장된 값이 삭제의 경우에는, 전자 장치(101)는 잠금 해제 여부를 결정할 수 없어, 잠금 해제가 실패된 것으로 판단할 수 있다.
도 17은 다양한 실시예에 따른 전자 장치의 작동 방법을 설명하기 위한 흐름도를 도시한다.
다양한 실시예에 따라서, 전자 장치(101)(예: 프로세서(120))는, 1701 과정에서, 전자 장치(101)의 시스템 관리 권한 중 적어도 일부에 대한 변경을 검출할 수 있다. 1703 과정에서, 전자 장치(101)는, 검출 변경에 응답하여, 저장되어 있던 카운터를 변경할 수 있다. 예를 들어, 안드로이드 운영 체제 기반의 전자 장치에 USB(universal serial bus) 연결을 통하여 로그 등의 정보를 추출하기 위하여서는 개발자 모드의 설정이 요구될 수 있다. 전자 장치(101)는, 일반 사용자 모드로부터 개발자 모드로의 전환 명령 또는 개발자 모드로부터 일반 사용자 모드로의 전환 명령을 검출할 수 있으며, 전환 시마다 카운터를 변경할 수 있다.
1705 과정에서, 전자 장치(101)는, 변경된 카운터에 적어도 일부 기반하여 암호화 키를 생성하고, 데이터를 암호화할 수 있다. 1707 과정에서, 전자 장치(101)는, 암호화된 설정 데이터 및 변경된 카운터를 저장할 수 있다. 예를 들어, 전자 장치(101)는, 카운터에 기반하여 생성한 암호화 키를 이용하여, 개발자 모드가 설정되었는지 여부를 나타내는 데이터를 암호화할 수 있다. 모드가 전환될 때마다, 카운터가 변경되므로, 암호화 키 또한 모드가 전환될 때마다 변경될 수 있다. 이에 따라, 외부 공격에 의하여 개발자 모드가 설정되었는지 여부를 나타내는 데이터가 삭제 또는 변경된 경우에도, 전자 장치(101)는 현재 카운터에 기초하여 생성한 암호화 키를 이용하여 해독을 시도하므로, 해독을 실패할 수 있다. 전자 장치(101)는 해독 실패에 대응하여, 모드 전환을 수행하지 않을 수 있으며, 이에 따라 외부 공격에 의한 개발자 모드 진입이 방지될 수 있다. 또 다른 예에서, 재활성화 잠금(reactivation lock) 기능과 같은 특정 기능이 활성화/비활성화 전환 시마다, 전자 장치(101)는 카운터를 변경할 수 있다. 전자 장치(101)는, 변경한 카운터에 적어도 일부 기반하여 생성한 암호화 키를 이용하여, 특정 기능의 활성화/비활성화를 나타내는 정보를 암호화할 수 있다. 이에 따라, 특정 기능의 활성화/비활성 전환 시마다 암호화 키가 변경될 수 있으며, 특정 기능의 활성화/비활성화를 나타내는 정보가 보호될 수 있다. 외부 공격에 의하여 특정 기능의 활성화/비활성화를 나타내는 정보가 덮어쓰기된 경우에도, 현재의 카운터에 기반하여 생성된 암호화 키에 의하여 해독되지 않으므로, 활성화/비활성 전환이 수행되지 않을 수 있다.
다양한 실시예에 따라서, 전자 장치(101)는, 하우징, 상기 하우징 내에 위치하는 프로세서(예: 프로세서(120)) 및 상기 하우징 내에 위치하여 작동이 가능하도록 상기 프로세서(예: 프로세서(120))와 연결되는 적어도 하나의 메모리(예: 메모리(130))를 포함할 수 있다. 상기 메모리(예: 메모리(130))는, 실행 시에, 상기 프로세서(예: 프로세서(120))로 하여금, 제 1 잠금 해제를 위한 정보를 포함하는, 잠금 해제를 위한 정보의 설정 요청이 수신되면, 상기 적어도 하나의 메모리(예: 메모리(130))에 저장된 제 1 값을 제 2 값으로 변경하고, 및 상기 제 2 값에 적어도 일부 기반하여 생성한 암호화 키를 이용하여, 상기 제 1 잠금 해제를 위한 정보를 암호화한 제 1 암호문과 상기 제 2 값을 상기 적어도 하나의 메모리(예: 메모리(130))에 저장하고, 제 2 잠금 해제를 위한 정보를 포함하는, 잠금 해제 요청이 수신되면, 상기 적어도 하나의 메모리(예: 메모리(130))에 저장된 상기 제 2 값에 적어도 일부 기반하여 생성한 상기 암호화 키를 이용하여, 상기 제 1 암호문을 해독하여 제 1 평문을 획득하고, 및 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치(101)의 잠금 해제 여부를 결정하도록 하는 명령을 저장할 수 있다.
다양한 실시예에 따라서, 상기 적어도 하나의 메모리(예: 메모리(130))는, 접근을 위하여 보안과 연관된 정보가 요구하는 보안 영역(예: RPMB(332) 또는 eSE(340))과, 상기 접근을 위하여 상기 보안과 연관된 정보를 요구하지 않는 일반 영역(예: 메모리(130)의 적어도 일부)을 포함할 수 있다. 상기 명령은, 상기 프로세서(예: 프로세서(120))가, 상기 제 1 암호문과 상기 제 2 값을 상기 적어도 하나의 메모리(예: 메모리(130))에 저장하는 과정의 적어도 일부로, 상기 제 2 값을 상기 보안 영역(예: RPMB(332) 또는 eSE(340))에 저장하고, 상기 제 1 암호문을 상기 일반 영역(예: 메모리(130)의 적어도 일부)에 저장할 수 있다.
다양한 실시예에 따라서, 상기 보안 영역은, RPMB(replay protected memory block), eSE(embedded secure elements) 양쪽 모두 혹은 어느 한쪽일 수 있다.
다양한 실시예에 따라서, 상기 명령은, 상기 프로세서(예: 프로세서(120))가, 상기 잠금 해제 요청이 수신되면, 상기 제 2 값에 적어도 일부 기반하여 생성한 상기 암호화 키를 이용하여, 상기 제 1 암호문의 해독을 시도하고, 및 상기 제 1 암호문의 해독이 수행되지 않거나, 또는 상기 제 1 암호문이 지정된 형식을 가지지 않으면, 잠금 해제를 수행하지 않도록 할 수 있다.
다양한 실시예에 따라서, 상기 명령은, 상기 프로세서(예: 프로세서(120))가, 상기 제 2 값에 적어도 일부 기반하여 상기 암호화 키를 생성하는 과정의 적어도 일부로, 상기 전자 장치(101)에 할당된 하드웨어 유일 값 및 상기 전자 장치(101)에서 실행되는 신뢰된 어플리케이션에 할당된 유일 값에 적어도 일부 기반하여, 신뢰된 어플리케이션 키를 생성하고, 및 상기 제 2 값 및 상기 신뢰된 어플리케이션 키에 적어도 일부 기반하여 상기 암호화 키를 생성하도록 할 수 있다.
다양한 실시예에 따라서, 상기 명령은, 상기 프로세서(예: 프로세서(120))가, 상기 적어도 하나의 메모리에 저장된 제 1 값을 제 2 값으로 변경하는 과정의 적어도 일부로, 상기 제 1 값에 1을 더하여 상기 제 2 값을 획득하도록 할 수 있다.
다양한 실시예에 따라서, 상기 명령은, 상기 프로세서(예: 프로세서(120))가, 상기 제 1 암호문과 상기 제 2 값을 상기 적어도 하나의 메모리에 저장하는 과정의 적어도 일부로, 상기 제 1 암호문을 백업 파일로서 저장하고, 상기 제 1 암호문을 상기 백업 파일로 저장한 이후에, 상기 제 2 값을 저장하고, 및 상기 제 2 값을 저장한 이후에, 상기 제 1 암호문을 데이터 파일로서 저장하도록 할 수 있다.
다양한 실시예에 따라서, 상기 명령은, 상기 프로세서(예: 프로세서(120))가, 상기 제 1 암호문을 해독하여 제 1 평문을 획득하는 과정 및, 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여 상기 전자 장치(101)의 잠금 해제 여부를 결정하는 과정의 적어도 일부로, 상기 데이터 파일을 상기 암호화 키로 해독하여 획득한 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치(101)의 잠금 해제 여부를 결정하고, 및 상기 전자 장치(101)의 잠금 해제가 실패한 것으로 판단되면, 상기 백업 파일을 상기 암호화 키로 해독하여 획득한 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치(101)의 잠금 해제 여부를 결정하도록 할 수 있다.
다양한 실시예에 따라서, 상기 명령은, 상기 프로세서(예: 프로세서(120))가, 상기 제 1 암호문과 상기 제 2 값을 상기 적어도 하나의 메모리에 저장하는 과정의 적어도 일부로, 상기 제 1 암호문을 저장하고, 및 상기 제 1 암호문을 저장한 이후에, 상기 제 2 값을 저장하도록 할 수 있다.
다양한 실시예에 따라서, 상기 명령은, 상기 프로세서(예: 프로세서(120))가, 상기 제 1 암호문을 해독하여 제 1 평문을 획득하는 과정 및, 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여 상기 전자 장치의 잠금 해제 여부를 결정하는 과정의 적어도 일부로, 상기 제 1 암호문을 상기 암호화 키로 해독하여 획득한 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치(101)의 잠금 해제 여부를 결정하고, 및 상기 전자 장치(101)의 잠금 해제가 실패한 것으로 판단되면, 상기 제 2 값을 제 3 값으로 변경하고, 상기 제 1 암호문을 상기 제 3 값에 적어도 일부 기반하여 생성한 암호화 키로 해독하여 획득한 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치(101)의 잠금 해제 여부를 결정하도록 할 수 있다.
다양한 실시예에 따라서, 상기 명령은, 상기 프로세서(예: 프로세서(120))가, 상기 제 1 암호문과 상기 제 2 값을 상기 적어도 하나의 메모리에 저장하는 과정의 적어도 일부로, 상기 제 2 값을 저장하고, 및 상기 제 2 값을 저장한 이후에, 상기 제 1 암호문을 저장하도록 할 수 있다.
다양한 실시예에 따라서, 상기 명령은, 상기 프로세서(예: 프로세서(120))가, 상기 제 1 암호문을 해독하여 제 1 평문을 획득하는 과정 및, 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여 상기 전자 장치의 잠금 해제 여부를 결정하는 과정의 적어도 일부로, 상기 제 1 암호문을 상기 암호화 키로 해독하여 획득한 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치(101)의 잠금 해제 여부를 결정하고, 및 상기 전자 장치(101)의 잠금 해제가 실패한 것으로 판단되면, 상기 제 1 암호문을 상기 제 1 값에 적어도 일부 기반하여 생성한 암호화 키로 해독하여 획득한 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치(101)의 잠금 해제 여부를 결정하도록 할 수 있다.
다양한 실시예에 따라서, 전자 장치(101)는, 하우징, 상기 하우징 내에 위치하는 프로세서(예: 프로세서(120)) 및 상기 하우징 내에 위치하여 작동이 가능하도록 상기 프로세서(예: 프로세서(120))와 연결되고, 접근을 위하여 보안과 연관된 정보가 요구하는 보안 영역(예: RPMB(332) 또는 eSE(340))과, 상기 접근을 위하여 상기 보안과 연관된 정보를 요구하지 않는 일반 영역(예: 메모리(130)의 적어도 일부)을 포함하는 적어도 하나의 메모리(예: 메모리(130))를 포함할 수 있다. 상기 일반 영역에는 잠금 해제를 위한 제 1 데이터가 저장되며, 상기 보안 영역(예: RPMB(332) 또는 eSE(340))에는 제 1 값이 저장될 수 있다. 상기 메모리(예: 메모리(130))는, 실행 시에, 상기 프로세서(예: 프로세서(120))로 하여금, 제 1 잠금 해제를 위한 정보를 포함하는, 잠금 해제를 위한 정보의 설정 요청이 수신되면, 상기 보안 영역에 상기 제 1 값을 제 2 값으로 변경하고, 및 상기 일반 영역에 저장된 상기 제 1 데이터를 제 2 데이터로 변경하도록 하는 명령을 저장하고, 상기 제 2 데이터는, 상기 제 1 잠금 해제를 위한 정보와 상이할 수 있다.
다양한 실시예에 따라서, 상기 명령은, 상기 프로세서(예: 프로세서(120))가, 상기 제 2 값 및 상기 제 2 데이터가 저장된 상태에서, 상기 제 1 잠금 해제를 위한 정보를 포함하는, 잠금 해제를 위한 정보의 설정 요청이 수신되면, 상기 보안 영역(예: RPMB(332) 또는 eSE(340))에 상기 제 2 값을 제 3 값으로 변경하고, 및 상기 일반 영역(예: 메모리(130)의 일부 영역)에 저장된 상기 제 2 데이터를 제 3 데이터로 변경하도록 할 수 있다. 상기 제 3 데이터는 상기 제 2 데이터와 상이하고, 상기 제 1 값 및 상기 제 2 값 사이의 차이는, 상기 제 2 값 및 상기 제 3 값 사이의 차이와 동일할 수 있다.
다양한 실시예에 따라서, 상기 프로세서(예: 프로세서(120))가, 제 1 잠금 해제를 위한 정보를 포함하는, 잠금 해제를 위한 정보의 설정 요청이 수신되면, 상기 제 1 잠금 해제를 위한 정보에 대응하는 제 1 데이터를 저장하도록 할 수 있다. 이 경우, 상기 제 1 데이터는, 상기 제 1 잠금 해제를 위한 정보와 상이할 수 있다. 상기 명령은, 프로세서(예: 프로세서(120))가, 제 2 잠금 해제를 위한 정보를 포함하는 잠금 해제 요청이 수신되면, 상기 제 2 잠금 해제를 위한 정보가 상기 제 1 데이터에 대응되면, 상기 전자 장치(101)를 잠금 해제하고, 상기 제 1 데이터가 삭제되거나, 또는 상기 제 1 데이터가 변조된 경우에는, 상기 전자 장치(101)를 잠금 해제하지 않도록 할 수 있다.
다양한 실시예에 따라서, 상기 명령은, 상기 프로세서(예: 프로세서(120))가, 상기 제 1 잠금 해제를 위한 정보를 제 3 잠금 해제를 위한 정보로의 변경 요청이 수신되면, 상기 제 3 잠금 해제를 위한 정보에 대응하는 제 2 데이터를 상기 제 1 데이터를 대체하여 저장하도록 할 수 있다. 이 경우, 상기 제 1 잠금 해제를 위한 정보 및 상기 제 3 잠금 해제를 위한 정보가 동일한 경우에도, 상기 제 1 데이터 및 상기 제 2 데이터는 상이할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치 중 적어도 하나를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "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 잠금 해제를 위한 정보를 포함하는, 잠금 해제를 위한 정보의 설정 요청이 수신되면, 상기 명령을 수행하는 전자 장치의 적어도 하나의 메모리에 저장된 제 1 값을 제 2 값으로 변경하고, 상기 제 2 값에 적어도 일부 기반하여 생성한 암호화 키를 이용하여 상기 제 1 잠금 해제를 위한 정보를 암호화한 제 1 암호문과 상기 제 2 값을 저장하는 과정 및 제 2 잠금 해제를 위한 정보를 포함하는, 잠금 해제 요청이 수신되면, 상기 적어도 하나의 메모리에 저장된 상기 제 2 값에 적어도 일부 기반하여 생성한 상기 암호화 키를 이용하여 상기 제 1 암호문을 해독하여 제 1 평문을 획득하고, 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여 상기 전자 장치의 잠금 해제 여부를 결정하는 과정을 포함할 수 있다.
다양한 실시예에 따라서, 상기 적어도 하나의 메모리는, 접근을 위하여 보안과 연관된 정보가 요구하는 보안 영역과, 상기 접근을 위하여 상기 보안과 연관된 정보를 요구하지 않는 일반 영역을 포함하고, 상기 제 1 암호문과 상기 제 2 값을 상기 적어도 하나의 메모리에 저장하는 과정은, 상기 제 2 값을 상기 보안 영역에 저장하고, 상기 제 1 암호문을 상기 일반 영역에 저장할 수 있다.
다양한 실시예에 따라서, 상기 과정은, 상기 잠금 해제 요청이 수신되면, 상기 제 2 값에 적어도 일부 기반하여 생성한 상기 암호화 키를 이용하여, 상기 제 1 암호문의 해독을 시도하고, 상기 제 1 암호문의 해독이 수행되지 않거나, 또는 상기 제 1 암호문이 지정된 형식을 가지지 않으면 잠금 해제를 수행하지 않도록 하는 과정을 더 포함할 수 있다.
다양한 실시예에 따라서, 상기 제 2 값에 적어도 일부 기반하여 상기 암호화 키를 생성하는 과정은, 상기 전자 장치에 할당된 하드웨어 유일 값 및 상기 전자 장치에서 실행되는 신뢰된 어플리케이션에 할당된 유일 값에 적어도 일부 기반하여, 신뢰된 어플리케이션 키를 생성하고, 상기 제 2 값 및 상기 신뢰된 어플리케이션 키에 적어도 일부 기반하여, 상기 암호화 키를 생성할 수 있다.
다양한 실시예에 따라서, 상기 적어도 하나의 메모리에 저장된 제 1 값을 제 2 값으로 변경하는 과정은, 상기 제 1 값에 1을 더하여 상기 제 2 값을 획득할 수 있다.
다양한 실시예에 따라서, 상기 제 1 암호문과 상기 제 2 값을 상기 적어도 하나의 메모리에 저장하는 과정은, 상기 제 1 암호문을 백업 파일로서 저장하고, 상기 제 1 암호문을 상기 백업 파일로 저장한 이후에, 상기 제 2 값을 저장하고, 상기 제 2 값을 저장한 이후에, 상기 제 1 암호문을 데이터 파일로서 저장할 수 있다.
다양한 실시예에 따라서, 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 회로에 의하여 실행될 때에 상기 적어도 하나의 회로로 하여금 적어도 하나의 과정을 수행하도록 설정된 것으로서, 상기 적어도 하나의 과정은, 제 1 잠금 해제를 위한 정보를 포함하는, 잠금 해제를 위한 정보의 설정 요청이 수신되면, 상기 제 1 잠금 해제를 위한 정보에 대응하는 제 1 데이터를 저장하는 과정-상기 제 1 데이터는, 상기 제 1 잠금 해제를 위한 정보와 상이함-, 제 2 잠금 해제를 위한 정보를 포함하는 잠금 해제 요청이 수신되면, 상기 제 2 잠금 해제를 위한 정보가 상기 제 1 데이터에 대응되면, 상기 전자 장치를 잠금 해제하고, 상기 제 1 데이터가 삭제되거나, 또는 상기 제 1 데이터가 변조된 경우에는, 상기 전자 장치를 잠금 해제하지 않는 과정을 포함할 수 있다.
다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.

Claims (20)

  1. 전자 장치에 있어서,
    하우징;
    상기 하우징 내에 위치하는 프로세서; 및
    상기 하우징 내에 위치하여 작동이 가능하도록 상기 프로세서와 연결되는 적어도 하나의 메모리;를 포함하고,
    상기 메모리는, 실행 시에, 상기 프로세서로 하여금,
    제 1 잠금 해제를 위한 정보를 포함하는, 잠금 해제를 위한 정보의 설정 요청이 수신되면,
    상기 적어도 하나의 메모리에 저장된 제 1 값을 제 2 값으로 변경하고, 및
    상기 제 2 값에 적어도 일부 기반하여 생성한 암호화 키를 이용하여, 상기 제 1 잠금 해제를 위한 정보를 암호화한 제 1 암호문과 상기 제 2 값을 상기 적어도 하나의 메모리에 저장하고,
    제 2 잠금 해제를 위한 정보를 포함하는, 잠금 해제 요청이 수신되면,
    상기 적어도 하나의 메모리에 저장된 상기 제 2 값에 적어도 일부 기반하여 생성한 상기 암호화 키를 이용하여, 상기 제 1 암호문을 해독하여 제 1 평문을 획득하고, 및
    상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치의 잠금 해제 여부를 결정하도록 하는 명령을 저장하는 전자 장치.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 메모리는, 접근을 위하여 보안과 연관된 정보가 요구하는 보안 영역과, 상기 접근을 위하여 상기 보안과 연관된 정보를 요구하지 않는 일반 영역을 포함하고,
    상기 명령은, 상기 프로세서가,
    상기 제 1 암호문과 상기 제 2 값을 상기 적어도 하나의 메모리에 저장하는 과정의 적어도 일부로, 상기 제 2 값을 상기 보안 영역에 저장하고, 상기 제 1 암호문을 상기 일반 영역에 저장하도록 하는 전자 장치.
  3. 제 2 항에 있어서,
    상기 보안 영역은, RPMB(replay protected memory block), eSE(embedded secure elements) 양쪽 모두 혹은 어느 한쪽인 전자 장치.
  4. 제 1 항에 있어서,
    상기 명령은, 상기 프로세서가,
    상기 잠금 해제 요청이 수신되면,
    상기 제 2 값에 적어도 일부 기반하여 생성한 상기 암호화 키를 이용하여, 상기 제 1 암호문의 해독을 시도하고, 및
    상기 제 1 암호문의 해독이 수행되지 않거나, 또는 상기 제 1 암호문이 지정된 형식을 가지지 않으면, 잠금 해제를 수행하지 않도록 하는 전자 장치.
  5. 제 1 항에 있어서,
    상기 명령은, 상기 프로세서가, 상기 제 2 값에 적어도 일부 기반하여 상기 암호화 키를 생성하는 과정의 적어도 일부로,
    상기 전자 장치에 할당된 하드웨어 유일 값 및 상기 전자 장치에서 실행되는 신뢰된 어플리케이션에 할당된 유일 값에 적어도 일부 기반하여, 신뢰된 어플리케이션 키를 생성하고, 및
    상기 제 2 값 및 상기 신뢰된 어플리케이션 키에 적어도 일부 기반하여 상기 암호화 키를 생성하도록 하는 전자 장치.
  6. 제 1 항에 있어서,
    상기 명령은, 상기 프로세서가, 상기 적어도 하나의 메모리에 저장된 제 1 값을 제 2 값으로 변경하는 과정의 적어도 일부로,
    상기 제 1 값에 1을 더하여 상기 제 2 값을 획득하도록 하는 전자 장치.
  7. 제 1 항에 있어서,
    상기 명령은, 상기 프로세서가, 상기 제 1 암호문과 상기 제 2 값을 상기 적어도 하나의 메모리에 저장하는 과정의 적어도 일부로,
    상기 제 1 암호문을 백업 파일로서 저장하고,
    상기 제 1 암호문을 상기 백업 파일로 저장한 이후에, 상기 제 2 값을 저장하고, 및
    상기 제 2 값을 저장한 이후에, 상기 제 1 암호문을 데이터 파일로서 저장하도록 하는 전자 장치.
  8. 제 7 항에 있어서,
    상기 명령은, 상기 프로세서가, 상기 제 1 암호문을 해독하여 제 1 평문을 획득하는 과정 및, 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여 상기 전자 장치의 잠금 해제 여부를 결정하는 과정의 적어도 일부로,
    상기 데이터 파일을 상기 암호화 키로 해독하여 획득한 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치의 잠금 해제 여부를 결정하고, 및
    상기 전자 장치의 잠금 해제가 실패한 것으로 판단되면, 상기 백업 파일을 상기 암호화 키로 해독하여 획득한 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치의 잠금 해제 여부를 결정하도록 하는 전자 장치.
  9. 제 1 항에 있어서,
    상기 명령은, 상기 프로세서가, 상기 제 1 암호문과 상기 제 2 값을 상기 적어도 하나의 메모리에 저장하는 과정의 적어도 일부로,
    상기 제 1 암호문을 저장하고, 및
    상기 제 1 암호문을 저장한 이후에, 상기 제 2 값을 저장하도록 하는 전자 장치.
  10. 제 9 항에 있어서,
    상기 명령은, 상기 프로세서가, 상기 제 1 암호문을 해독하여 제 1 평문을 획득하는 과정 및, 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여 상기 전자 장치의 잠금 해제 여부를 결정하는 과정의 적어도 일부로,
    상기 제 1 암호문을 상기 암호화 키로 해독하여 획득한 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치의 잠금 해제 여부를 결정하고, 및
    상기 전자 장치의 잠금 해제가 실패한 것으로 판단되면, 상기 제 2 값을 제 3 값으로 변경하고, 상기 제 1 암호문을 상기 제 3 값에 적어도 일부 기반하여 생성한 암호화 키로 해독하여 획득한 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치의 잠금 해제 여부를 결정하도록 하는 전자 장치.
  11. 제 1 항에 있어서,
    상기 명령은, 상기 프로세서가, 상기 제 1 암호문과 상기 제 2 값을 상기 적어도 하나의 메모리에 저장하는 과정의 적어도 일부로,
    상기 제 2 값을 저장하고, 및
    상기 제 2 값을 저장한 이후에, 상기 제 1 암호문을 저장하도록 하는 전자 장치.
  12. 제 11 항에 있어서,
    상기 명령은, 상기 프로세서가, 상기 제 1 암호문을 해독하여 제 1 평문을 획득하는 과정 및, 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여 상기 전자 장치의 잠금 해제 여부를 결정하는 과정의 적어도 일부로,
    상기 제 1 암호문을 상기 암호화 키로 해독하여 획득한 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치의 잠금 해제 여부를 결정하고, 및
    상기 전자 장치의 잠금 해제가 실패한 것으로 판단되면, 상기 제 1 암호문을 상기 제 1 값에 적어도 일부 기반하여 생성한 암호화 키로 해독하여 획득한 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여, 상기 전자 장치의 잠금 해제 여부를 결정하도록 하는 전자 장치.
  13. 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 회로에 의하여 실행될 때에 상기 적어도 하나의 회로로 하여금 적어도 하나의 과정을 수행하도록 설정된 것으로서, 상기 적어도 하나의 과정은,
    제 1 잠금 해제를 위한 정보를 포함하는, 잠금 해제를 위한 정보의 설정 요청이 수신되면, 상기 명령을 수행하는 전자 장치의 적어도 하나의 메모리에 저장된 제 1 값을 제 2 값으로 변경하고, 상기 제 2 값에 적어도 일부 기반하여 생성한 암호화 키를 이용하여 상기 제 1 잠금 해제를 위한 정보를 암호화한 제 1 암호문과 상기 제 2 값을 저장하는 과정; 및
    제 2 잠금 해제를 위한 정보를 포함하는, 잠금 해제 요청이 수신되면, 상기 적어도 하나의 메모리에 저장된 상기 제 2 값에 적어도 일부 기반하여 생성한 상기 암호화 키를 이용하여 상기 제 1 암호문을 해독하여 제 1 평문을 획득하고, 상기 제 1 평문과 상기 제 2 잠금 해제를 위한 정보의 비교 결과에 적어도 일부 기반하여 상기 전자 장치의 잠금 해제 여부를 결정하는 과정
    을 포함하는 저장 매체.
  14. 제 13 항에 있어서,
    상기 적어도 하나의 메모리는, 접근을 위하여 보안과 연관된 정보가 요구하는 보안 영역과, 상기 접근을 위하여 상기 보안과 연관된 정보를 요구하지 않는 일반 영역을 포함하고,
    상기 제 1 암호문과 상기 제 2 값을 상기 적어도 하나의 메모리에 저장하는 과정은, 상기 제 2 값을 상기 보안 영역에 저장하고, 상기 제 1 암호문을 상기 일반 영역에 저장하는 저장 매체.
  15. 제 13 항에 있어서,
    상기 잠금 해제 요청이 수신되면, 상기 제 2 값에 적어도 일부 기반하여 생성한 상기 암호화 키를 이용하여, 상기 제 1 암호문의 해독을 시도하고, 상기 제 1 암호문의 해독이 수행되지 않거나, 또는 상기 제 1 암호문이 지정된 형식을 가지지 않으면 잠금 해제를 수행하지 않도록 하는 과정
    을 더 포함하는 저장 매체.
  16. 제 13 항에 있어서,
    상기 제 2 값에 적어도 일부 기반하여 상기 암호화 키를 생성하는 과정은,
    상기 전자 장치에 할당된 하드웨어 유일 값 및 상기 전자 장치에서 실행되는 신뢰된 어플리케이션에 할당된 유일 값에 적어도 일부 기반하여, 신뢰된 어플리케이션 키를 생성하고, 상기 제 2 값 및 상기 신뢰된 어플리케이션 키에 적어도 일부 기반하여, 상기 암호화 키를 생성하는 저장 매체.
  17. 제 13 항에 있어서,
    상기 적어도 하나의 메모리에 저장된 제 1 값을 제 2 값으로 변경하는 과정은, 상기 제 1 값에 1을 더하여 상기 제 2 값을 획득하는 저장 매체.
  18. 제 13 항에 있어서,
    상기 제 1 암호문과 상기 제 2 값을 상기 적어도 하나의 메모리에 저장하는 과정은,
    상기 제 1 암호문을 백업 파일로서 저장하고, 상기 제 1 암호문을 상기 백업 파일로 저장한 이후에, 상기 제 2 값을 저장하고, 상기 제 2 값을 저장한 이후에, 상기 제 1 암호문을 데이터 파일로서 저장하도록 하는 저장 매체.
  19. 전자 장치에 있어서,
    하우징;
    상기 하우징 내에 위치하는 프로세서; 및
    상기 하우징 내에 위치하여 작동이 가능하도록 상기 프로세서와 연결되는 메모리를 포함하고,
    상기 메모리는, 실행 시에, 상기 프로세서로 하여금,
    제 1 잠금 해제를 위한 정보를 포함하는, 잠금 해제를 위한 정보의 설정 요청이 수신되면, 상기 제 1 잠금 해제를 위한 정보에 대응하는 제 1 데이터를 저장하고-상기 제 1 데이터는, 상기 제 1 잠금 해제를 위한 정보와 상이함-,
    제 2 잠금 해제를 위한 정보를 포함하는 잠금 해제 요청이 수신되면,
    상기 제 2 잠금 해제를 위한 정보가 상기 제 1 데이터에 대응되면, 상기 전자 장치를 잠금 해제하고,
    상기 제 1 데이터가 삭제되거나, 또는 상기 제 1 데이터가 변조된 경우에는, 상기 전자 장치를 잠금 해제하지 않도록 하는 명령을 저장하는 전자 장치.
  20. 제 19 항에 있어서,
    상기 명령은, 상기 프로세서가,
    상기 제 1 잠금 해제를 위한 정보를 제 3 잠금 해제를 위한 정보로 변경하기 위한 잠금 해제 재설정 요청이 수신되면, 상기 제 3 잠금 해제를 위한 정보에 대응하는 제 2 데이터를 상기 제 1 데이터를 대체하여 저장하도록 하고,
    상기 제 1 잠금 해제를 위한 정보 및 상기 제 3 잠금 해제를 위한 정보가 동일한 경우에도, 상기 제 1 데이터 및 상기 제 2 데이터는 상이한 것을 특징으로 하는 전자 장치.
KR1020170122678A 2017-09-22 2017-09-22 보안 정보를 암호화하는 전자 장치 및 그 작동 방법 KR20190033930A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170122678A KR20190033930A (ko) 2017-09-22 2017-09-22 보안 정보를 암호화하는 전자 장치 및 그 작동 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170122678A KR20190033930A (ko) 2017-09-22 2017-09-22 보안 정보를 암호화하는 전자 장치 및 그 작동 방법

Publications (1)

Publication Number Publication Date
KR20190033930A true KR20190033930A (ko) 2019-04-01

Family

ID=66104777

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170122678A KR20190033930A (ko) 2017-09-22 2017-09-22 보안 정보를 암호화하는 전자 장치 및 그 작동 방법

Country Status (1)

Country Link
KR (1) KR20190033930A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354048B2 (en) 2020-04-13 2022-06-07 Samsung Electronics Co., Ltd. Storage device and data disposal method thereof
CN114692127A (zh) * 2020-12-31 2022-07-01 Oppo广东移动通信有限公司 解锁方法、可穿戴设备及存储介质
WO2023003150A1 (ko) * 2021-07-22 2023-01-26 삼성전자주식회사 보안 요소의 백업을 수행하는 전자 장치 및 백업 방법
US12026064B2 (en) 2021-07-22 2024-07-02 Samsung Electronics Co., Ltd. Electronic device and method of backing up secure element

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354048B2 (en) 2020-04-13 2022-06-07 Samsung Electronics Co., Ltd. Storage device and data disposal method thereof
CN114692127A (zh) * 2020-12-31 2022-07-01 Oppo广东移动通信有限公司 解锁方法、可穿戴设备及存储介质
WO2023003150A1 (ko) * 2021-07-22 2023-01-26 삼성전자주식회사 보안 요소의 백업을 수행하는 전자 장치 및 백업 방법
US12026064B2 (en) 2021-07-22 2024-07-02 Samsung Electronics Co., Ltd. Electronic device and method of backing up secure element

Similar Documents

Publication Publication Date Title
US12067553B2 (en) Methods for locating an antenna within an electronic device
CN101578609B (zh) 安全启动计算设备
TWI662432B (zh) 行動通信裝置及其操作方法
EP2812842B1 (en) Security policy for device data
TWI674533B (zh) 授權將於目標計算裝置上執行之操作的設備
KR102540090B1 (ko) 전자 장치 및 그의 전자 키 관리 방법
CN107431924B (zh) 将设备标识符和用户标识符相关联的设备盗窃防护
CN105519038B (zh) 用户输入的数据保护方法及系统
US9891969B2 (en) Method and apparatus for device state based encryption key
CN108335105B (zh) 数据处理方法及相关设备
KR20190033930A (ko) 보안 정보를 암호화하는 전자 장치 및 그 작동 방법
CN110598384B (zh) 信息保护方法、信息保护装置及移动终端
KR20210037314A (ko) 보안 집적 회로를 이용하여 펌웨어를 갱신하기 위한 전자 장치 및 그의 동작 방법
KR20140112399A (ko) 어플리케이션 접근 제어 방법 및 이를 구현하는 전자 장치
CN114880011A (zh) Ota升级方法、装置、电子设备及可读存储介质
CN113724424A (zh) 用于设备的控制方法和装置
CN110727940A (zh) 一种电子设备密码管理方法、装置、设备及存储介质
KR102657388B1 (ko) 암호화될 데이터의 정보량에 기반하여 암호화에 사용될 키를 선택하는 전자 장치 및 전자 장치의 동작 방법
KR20210026233A (ko) 디바이스 리소스에 대한 접근을 제어하기 위한 전자 장치 및 그의 동작 방법
CN115544586B (zh) 用户数据的安全存储方法、电子设备及存储介质
KR102702681B1 (ko) 전자 장치 및 전자 장치에서의 인증 방법
CN104346299A (zh) 一种移动终端更新的控制方法和装置
CN114816495A (zh) Ota升级方法、装置、电子设备及可读存储介质
US20240015156A1 (en) Electronic device for controlling access to device resource and operation method thereof
CN111357003A (zh) 预操作系统环境中的数据保护