KR20240064635A - 신뢰 수준 향상을 위한 센서 정보를 이용하는 장치 및 방법 - Google Patents

신뢰 수준 향상을 위한 센서 정보를 이용하는 장치 및 방법 Download PDF

Info

Publication number
KR20240064635A
KR20240064635A KR1020247006666A KR20247006666A KR20240064635A KR 20240064635 A KR20240064635 A KR 20240064635A KR 1020247006666 A KR1020247006666 A KR 1020247006666A KR 20247006666 A KR20247006666 A KR 20247006666A KR 20240064635 A KR20240064635 A KR 20240064635A
Authority
KR
South Korea
Prior art keywords
soc
input
security subsystem
condition
encryption
Prior art date
Application number
KR1020247006666A
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 퀄컴 인코포레이티드
Publication of KR20240064635A publication Critical patent/KR20240064635A/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
    • 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)
    • H04L9/083Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • 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/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)

Abstract

다양한 실시형태들은 시스템-온-칩(SoC) 상에서 보안을 제공하기 위한 방법들 및 시스템들을 포함할 수 있다. 방법은 보안 서브시스템에 의해 서비스 요청 환경으로부터 암호화 기능을 수행하라는 요청을 수신하는 단계를 포함할 수 있으며, 여기서 보안 서브시스템은 요청된 암호화 기능을 수행하기 위한 조건을 저장한다. 방법은 보안 서브시스템에 의해, 요청된 암호화 기능을 수행하기 위한 조건과 관련된 적어도 하나의 표시를 포함하는 입력을 감지 회로로부터 수신하는 단계, 보안 서브시스템에 의해, 입력이 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하는 단계, 및 조건이 충족된다는 결정에 응답하여 보안 서브시스템에 저장된 암호화 키를 사용하여 요청된 암호화 기능을 수행하는 단계를 더 포함할 수 있다.

Description

신뢰 수준 향상을 위한 센서 정보를 이용하는 장치 및 방법
이 출원은 2021년 9월 08일자로 출원된 미국 정규출원 제 17/468,912 호의 이익을 주장하고, 그 전체 내용은 참조로 본원에 통합된다.
시스템-온-칩(SoC) 설계들 및 디바이스들은 더욱 복잡해지고, 고도로 가치있는 암호화 정보의 무단 사용을 방지하기 위해 증가된 보안 메커니즘들 및 강력한 신뢰된 실행 환경들을 구현한다. 그러나, 더 많은 잠재적 공격자들이 기존 아키텍처들 및 신뢰된 실행 환경 구현들에 익숙해짐에 따라, 보안의 추가 계층을 추가하도록 의도되었던 가상 환경들이 손상될 수 있고, 보안 조치들을 완전히 우회하도록 활용될 수 있다.
다양한 양태들은 암호화 기능들을 수행하는 시스템 내에서 신뢰 레벨을 증가시키기 위해 센서 정보를 이용하기 위한 방법들 및 디바이스들을 포함한다. 다양한 양태들에서, 보안 서브시스템은 서비스 요청 환경에 의해 요청된 암호화 기능을 수행하기 위해 충족되어야 하는 다양한 조건들을 저장할 수 있다. 보안 서브시스템은 조건들을 포함하는 키 사용 정책을 사용하여, 감지 회로로부터 수신된 입력들이 조건들을 만족하는지 여부를 결정할 수 있다. 요청된 암호화 기능에 대응하는 조건들의 만족은 보안 서브시스템이 요청된 암호화 기능을 수행하기 위해 암호화 키의 사용을 허가하게 할 수 있다.
일부 양태들은 암호화 키를 저장하는 보안 서브시스템을 포함하는 시스템-온-칩(SoC)을 포함할 수 있고, 이는 암호화 키를 사용하여 암호화 기능을 수행하기 위한 하나 이상의 조건과 관련된 입력을 감지 회로로부터 수신하고; 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는 수신된 입력에 응답하여 암호화 기능을 수행하도록 구성된다.
일부 양태들은 암호화 기능을 수행하기 위한 하나 이상의 조건과 관련된 조건을 감지하도록 구성된 감지 회로를 더 포함할 수 있으며, 여기서 보안 서브시스템은 감지 회로로부터 입력을 수신한다. 일부 양태들에서, 보안 서브시스템은 SoC 와 별개인 감지 회로로부터 입력을 수신할 수 있다.
일부 양태들에서, 보안 서브시스템은, 서비스 요청 환경으로부터 암호화 기능에 대한 요청을 수신하고; 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는 수신된 입력에 응답하여 요청된 암호화 기능을 수행하도록 추가로 구성될 수 있다. 일부 양태들에서, 보안 서브시스템은 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는 수신된 입력에 응답하여 요청된 암호화 기능을 수행하기 위해 암호화 기능에 대응하는 암호화 키의 사용을 인가하도록 추가로 구성될 수 있다.
일부 양태들에서, 보안 서브시스템은 서비스 요청 환경과는 독립적인 통신 경로를 따라 감지 회로로부터 입력을 수신하도록 구성될 수 있다. 일부 양태들에서, 입력은 암호화 기능을 수행하기 위한 조건이 충족되는지 여부를 표시하는 Boolean 값을 포함할 수 있다. 일부 양태들에서, 입력은 센서 정보를 동작시키는 것을 포함할 수 있고, 보안 서브시스템은 감지 회로로부터 입력을 연속적으로 수신하도록 구성될 수 있다.
일부 양태들은, 암호화 키를 저장하고 서비스 요청 환경으로부터 암호화 기능을 수행하기 위한 요청을 수신하도록 구성된 보안 처리 유닛(SPU); 또는 감지 회로로부터 입력을 수신하고 서비스 요청 환경으로부터 암호화 기능을 수행하기 위한 요청을 수신하도록 구성된 SoC 신뢰 루트(RoT) 중 하나 또는 둘 모두를 더 포함할 수 있다.
일부 양태들에서, 암호화 기능을 수행하기 위한 조건은 사람이 디바이스를 물리적으로 동작시키기 위해 근접 범위 내에 있는지 여부일 수 있고, 입력은 SoC를 포함하는 디바이스에 대한 근접 범위 내의 사람의 물리적 존재의 표시를 포함할 수 있다.
일부 양태들에서, 암호화 기능을 수행하기 위한 조건은 사용자 물리적 특성들이 인가된 사용자 물리적 특성들과 매칭하는지 여부일 수 있고, 입력은 SoC를 포함하는 디바이스의 사용자의 현재 사용자 물리적 특성들의 표시를 포함할 수 있다.
일부 양태들에서, 암호화 기능을 수행하기 위한 조건은 디바이스 배향이 허용가능한 임계치들 내에 있는지 여부일 수 있고, 입력은 SoC를 포함하는 디바이스의 디바이스 배향의 표시를 포함할 수 있다.
일부 양태들에서, 암호화 기능을 수행하기 위한 조건은 디바이스 위치가 인가된 위치에 있는지 여부일 수 있고, 입력은 SoC를 포함하는 디바이스의 디바이스 위치의 표시를 포함할 수 있다.
일부 양태들에서, 암호화 기능을 수행하기 위한 조건은 근접 디바이스가 인가 디바이스인지 여부일 수 있고, 입력은 SoC를 포함하는 디바이스에 접속할 수 있는 근접 디바이스의 표시를 포함할 수 있다.
일부 양태들에서, 암호화 기능을 수행하기 위한 조건은 통신 네트워크가 인가된 통신 네트워크와 매칭하는지 여부일 수 있고, 입력은 SoC를 포함하는 디바이스에 의해 검출된 통신 네트워크의 표시를 포함할 수 있다.
추가 양태들은 SoC에서 보안을 제공하기 위한 방법을 포함할 수 있다. 이러한 양태들은 보안 서브시스템에 의한 서비스 요청 환경으로부터, 암호화 기능을 수행하라는 요청을 수신하는 단계 - 보안 서브시스템은 요청된 암호화 기능을 수행하기 위한 조건을 저장함 -; 보안 서브시스템에 의해, 요청된 암호화 기능을 수행하기 위한 조건과 관련된 적어도 하나의 표시를 포함하는 입력을 감지 회로로부터의 수신하는 단계; 보안 서브시스템에 의해, 입력이 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하는 단계; 및 조건이 충족된다는 결정에 응답하여 보안 서브시스템에 저장된 암호화 키를 사용하여 요청된 암호화 기능을 수행하는 단계를 포함할 수 있다.
일부 양태들에서, 감지 회로로부터 입력을 수신하는 단계는 보안 서브시스템이 서비스 요청 환경과는 독립적인 통신 경로를 따라 감지 회로로부터 입력을 수신하는 것을 포함할 수 있다. 일부 양태들에서, 감지 회로로부터 입력을 수신하는 단계는 요청된 암호화 기능을 수행하기 위한 조건이 충족되는지 여부를 나타내는 Boolean 값을 수신하는 것을 포함할 수 있다. 일부 양태들에서, 입력은 센서 정보를 동작시키는 것일 수 있고, 감지 회로로부터 입력을 수신하는 단계는 보안 서브시스템이 감지 회로로부터 입력을 연속적으로 수신하는 것을 포함할 수 있다.
일부 양태들에서, 조건이 만족된다는 결정에 응답하여 요청된 암호화 기능을 수행하는 것은 조건이 만족된다는 결정에 응답하여 보안 처리 유닛(SPU) 또는 SoC 신뢰 루트(RoT) 중 하나에 의해 암호화 기능을 수행하는 것을 포함할 수 있다.
일부 양태들에서, 암호화 기능을 수행하기 위한 조건은 사람이 디바이스를 물리적으로 동작시키기 위한 근접 범위 내에 있는지 여부일 수 있고; 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 입력이 나타내는지 여부를 결정하는 것은 입력이 SoC를 포함하는 디바이스에 대한 근접 범위 내의 사람의 물리적 존재의 표시를 포함하는지 여부를 결정하는 것을 포함할 수 있다.
일부 양태들에서, 암호화 기능을 수행하기 위한 조건은 사용자 물리적 특성들이 인가된 사용자 물리적 특성들과 매칭하는지 여부일 수 있고; 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 입력이 나타내는지 여부를 결정하는 것은 입력이 SoC를 포함하는 디바이스의 사용자의 현재 사용자 물리적 특성들의 표시를 포함하는지 여부를 결정하는 것을 포함할 수 있다.
일부 양태들에서, 암호화 기능을 수행하기 위한 조건은 디바이스 배향이 허용가능한 임계치들 내에 있는지 여부일 수 있고; 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 입력이 나타내는지 여부를 결정하는 것은 입력이 SoC를 포함하는 디바이스의 디바이스 배향의 표시를 포함하는지 여부를 결정하는 것을 포함할 수 있다.
일부 양태들에서, 암호화 기능을 수행하기 위한 조건은 디바이스 위치가 인가된 위치에 있는지 여부일 수 있고; 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 입력이 나타내는지 여부를 결정하는 것은 입력이 SoC를 포함하는 디바이스의 디바이스 위치의 표시를 포함하는지 여부를 결정하는 것을 포함할 수 있다.
일부 양태들에서, 암호화 기능을 수행하기 위한 조건은 근접 디바이스가 인가 디바이스인지 여부일 수 있고; 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 입력이 나타내는지 여부를 결정하는 것은 입력이 SoC를 포함하는 디바이스에 연결할 수 있는 근접 디바이스의 표시를 포함하는지 여부를 결정하는 것을 포함할 수 있다.
일부 양태들에서, 암호화 기능을 수행하기 위한 조건은 통신 네트워크가 인가된 통신 네트워크와 일치하는지 여부일 수 있고; 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 입력이 나타내는지 여부를 결정하는 것은 입력이 SoC를 포함하는 디바이스에 의해 검출된 통신 네트워크의 표시를 포함하는지 여부를 결정하는 것을 포함할 수 있다.
추가 양태들은 SoC를 포함할 수 있으며, 이는, 암호화 키 및 암호화 기능을 수행하기 위한 조건을 저장하기 위한 보안 서브시스템을 포함하고, 상기 보안 서브시스템은 상기 암호화 기능을 수행하기 위한 요청을 수신하기 위한 수단; 상기 암호화 기능을 수행하기 위한 적어도 하나의 조건과 관련된 적어도 하나의 표시를 포함하는 입력을 감지 회로로부터 수신하기 위한 수단; 상기 입력이 상기 암호화 기능을 수행하기 위한 조건이 만족됨을 나타내는지 여부를 결정하기 위한 수단; 및 상기 조건이 만족된다는 결정에 응답하여 상기 암호화 기능을 수행하기 위한 수단을 포함한다.
일부 양태들에서, 감지 회로로부터 입력을 수신하는 수단은 서비스 요청 환경과는 독립적인 통신 경로를 따라 감지 회로로부터 입력을 수신하는 수단을 더 포함할 수도 있다. 일부 양태들에서, 감지 회로로부터 입력을 수신하는 수단은 동작 감지 회로로부터 입력을 연속적으로 수신하는 수단을 포함할 수도 있다.
추가 양태들은 집적 회로의 보안 서브시스템 내의 프로세서로 하여금, 서비스 요청 환경으로부터 암호화 기능을 수행하기 위한 요청을 수신하는 것; 암호화 기능을 수행하기 위한 조건과 관련된 적어도 하나의 표시를 포함하는 입력을 감지 회로로부터 수신하는 것; 입력이 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하는 것; 및 조건이 충족된다는 결정에 응답하여 암호화 기능을 수행하는 것을 포함하는 동작들을 수행하게 하도록 구성된 프로세서 실행가능 명령들이 저장된 비일시적 프로세서 판독가능 매체를 포함할 수 있다.
본 명세서에 통합되고 본 명세서의 부분을 구성하는 첨부 도면들은, 예시적인 실시형태들을 도시하고, 위에 주어진 일반적인 설명 및 하기에 주어진 상세한 설명과 함께, 다양한 실시형태들의 특징들을 설명하도록 제공한다.
도 1 은 일부 실시형태들에 따른 시스템-온-칩(SoC)에서 보안을 제공하도록 구성될 수 있는 예시적인 컴퓨팅 시스템을 예시하는 컴포넌트 블록도이다.
도 2 는 일부 실시형태에 따른 SoC에서 보안을 제공하기 위한 예시적인 암호화 시스템(200)을 도시하는 컴포넌트 블록도이다.
도 3 은 다양한 실시형태들에 따른 SoC에서 보안을 제공하기 위한 실시형태 방법을 도시하는 프로세스 흐름도이다.
도 4 는 일부 실시형태들에 따른 SoC에서 보안을 제공하는 것의 일부로서 수행될 수 있는 실시형태 방법들을 예시하는 프로세스 흐름도이다.
도 5 는 다양한 실시형태들과의 사용에 적합한 예시적인 무선 통신 디바이스를 예시하는 컴포넌트 블록도이다.
도 6 은 다양한 실시형태들과의 사용에 적합한 예시적인 컴퓨팅 디바이스를 예시하는 컴포넌트 블록도이다.
도 7 은 다양한 실시형태들과의 사용에 적합한 예시적인 서버를 예시하는 컴포넌트 블록도이다.
도 8 은 일부 실시형태들에 따른 스마트 워치 형태의 예시적인 웨어러블 컴퓨팅 디바이스를 도시한다.
다양한 실시형태들이 첨부 도면들을 참조하여 상세하게 설명될 것이다. 가능하다면, 동일한 참조 번호들은 도면들 전반에 걸쳐 동일하거나 유사한 부분들을 지칭하는데 사용될 것이다. 특정 예들 및 실시형태들에 대해 행해진 참조들은 예시적인 목적들을 위한 것이며, 다양한 양태들 또는 청구항들의 범위를 한정하도록 의도되지 않는다.
다양한 실시형태들은 시스템-온-칩(SoC)에서 보안을 제공하기 위한 집적 회로(IC) 컴포넌트들, 방법들 및 디바이스들을 포함한다. 다양한 실시형태들은 SoC 내의 신뢰 레벨을 증가시키기 위해 센서 정보를 이용할 수 있다. 다양한 실시형태들은 암호화 키를 저장하는 보안 서브시스템을 포함하고, 보안 서브시스템은 암호화 키를 사용하여 암호화 기능을 수행하기 위한 하나 이상의 조건과 관련된 입력을 감지 회로로부터 수신하도록 구성된다. 보안 서브시스템은 SoC 의 신뢰 구역 또는 서비스 요청 환경으로부터 암호화 기능에 대한 요청을 수신하도록 추가로 구성될 수 있으며, 각각의 암호화 기능에 대한 요청은 암호화 기능을 수행하기 위한 하나 이상의 조건과 연관된다. 보안 서브시스템은 수신된 입력이 요청된 암호화 기능의 조건이 충족됨을 나타낸다는 결정에 응답하여 요청된 암호화 기능을 수행하도록 추가로 구성될 수 있다. 이러한 방식으로, 보안 서브시스템은 암호화 기능을 수행하기 전에 암호화 기능을 수행하기 위한 하나 이상의 조건이 충족되는지를 독립적으로 확인할 수 있고, 따라서 SoC 의 신뢰 구역에 의해 수행되는 보안 검사를 넘어 제 2 의 독립적인 보안 검사를 제공한다.
"시스템-온-칩"(SoC)이라는 용어는, 배타적이지 않고 통상적으로, 프로세싱 디바이스, 메모리, 및 통신 인터페이스를 포함하는 상호연결된 전자 회로의 세트를 지칭하는데 여기서 사용된다. 프로세싱 디바이스는 범용 프로세서, 중앙 프로세싱 유닛 (CPU), 디지털 신호 프로세서 (DSP), 그래픽스 프로세싱 유닛 (GPU), 가속 프로세싱 유닛 (APU), 보안 프로세싱 유닛 (SPU), 카메라 서브시스템을 위한 이미지 프로세서 또는 디스플레이를 위한 디스플레이 프로세서와 같은 컴퓨팅 디바이스의 특정 컴포넌트들의 서브시스템 프로세서, 보조 프로세서, 단일 코어 프로세서, 멀티코어 프로세서, 제어기, 및 마이크로제어기와 같은 다양한 상이한 타입들의 프로세서들 및/또는 프로세서 코어들을 포함할 수도 있다. 프로세싱 디바이스는 필드 프로그래머블 게이트 어레이 (FPGA), 주문형 집적 회로 (ASIC), 다른 프로그래머블 로직 디바이스, 이산 게이트 로직, 트랜지스터 로직, 성능 모니터링 하드웨어, 워치독 (watchdog) 하드웨어, 및 시간 참조 등과 같은 다른 하드웨어 및 하드웨어 조합을 더 구현할 수도 있다. 집적 회로는 집적 회로의 컴포넌트가 실리콘과 같은 단일 반도체 재료 상에 상주하도록 구성될 수도 있다.
용어 "시스템-인-패키지(system in a package)”(SIP) 는 본 명세서에서 2 이상의 집적 회로(IC) 칩들, 기판들, 또는 SoC들 상에 다중의 리소스들, 계산 유닛들, 코어들 및/또는 프로세서들을 포함하는 단일 모듈 또는 패키지를 지칭하도록 사용된다. 예를 들어, SIP는 다수의 IC 칩들 또는 반도체 다이들이 수직 구성으로 적층되는 단일 기판을 포함할 수도 있다. 유사하게, SIP는 다수의 IC들 또는 반도체 다이들이 통합 기판에 패키징되는 하나 이상의 멀티칩 모듈들(MCM들)을 포함할 수도 있다. SIP 는 또한, 고속 통신 회로부를 통해 함께 커플링되고 그리고 단일 마더보드 상에서 또는 단일 무선 디바이스에서와 같이 매우 근접하여 패키징된 다중의 독립적인 SoC들을 포함할 수도 있다. SoC들의 근접성은 고속 통신들과 메모리 및 리소스들의 공유를 용이하게 한다.
높은 값의 암호화 키들을 사용하는 보안 민감 서비스들은 통상적으로 애플리케이션 프로세서에서 더 높은 신뢰된 실행 환경(TEE)에서 실행되는 애플리케이션 컴포넌트를 통해 승인된다. 예를 들어, 애플리케이션 프로세서는 상위 레벨 운영 체제(HLOS) 및 가상 환경(예를 들어, TrustZone-기반 TEE, 하이퍼바이저 기반 가상 머신 등)을 구현할 수 있다. 요청된 보안 민감 서비스는, 더 높은 신뢰 실행 환경이 그 요청된 보안 민감 서비스들에 대한 키의 사용을 인가하는 것을 그 자체가 담당하기 때문에, 보안 민감 서비스와 연관된 암호화 키 값이 더 높은 신뢰 실행 환경에 알려지지 않더라도, 더 높은 신뢰 실행 환경을 통해 승인될 수 있다.
이러한 아키텍처에서, 애플리케이션 컴포넌트 또는 애플리케이션 컴포넌트가 동작하는 TEE가 손상되면, 암호화 키-기반 서비스들은 요청 엔티티의 적격성에 관계없이 승인될 수 있다(즉, 사용 기준들/조건들이 충족되지 않더라도 승인될 수 있다). 예를 들어, 손상된 TEE는 사용자 인증 검사의 실패에도 불구하고, 인가된 사용자의 존재를 요구하는 요청된 암호화 서비스에 대한 암호화 키의 사용을 인가할 수 있다. 따라서, 손상된 TEE는 암호 키들의 사용을 인가하는 것을 포함하여 불법적인 요청된 암호 서비스들에 응답하고 실행할 수 있고, 임의의 보안 인증 요건들을 충족시킬 필요 없이 공격자들이 보안 정보에 대한 액세스를 획득할 수 있게 하여, TEE가 제공하도록 설계된 임의의 보안 조치들을 효과적으로 제거한다.
다양한 실시형태들은 SoC 에서 개선된 보안을 제공하기 위한 방법들을 구현하도록 구성되는 방법들, SoC 설계들, 프로세싱 디바이스들, 및 메모리를 포함한다. 애플리케이션 프로세서와 독립적으로 동작할 수 있는 보안 서브시스템은, 암호화 기능들을 수행하기 위한 조건들을 결정하기 위해 관련된, 감지 프레임워크, 또는 감지 회로로부터의 표시들 및/또는 감각 정보를 입력들로서 수신하도록 구성될 수 있다. 입력들은 암호화 키들 및 다른 암호화 기능들의 사용을 위한 기준들 또는 조건들의 이행을 확인하기 위해, 애플리케이션 프로세서의 암호화 기능들과 독립적으로, 보안 서브시스템에 의해 사용될 수 있다. 암호화 키들이 저장되는 보안 서브시스템은 전형적으로 SoC 내에서 가장 낮은 것(즉, 애플리케이션 프로세서-기반 TEE보다 낮은 것)으로 인지되는 공격 서비스를 갖는 컴포넌트일 수 있다. 높은 신뢰 보안 서브시스템(예를 들어, 보안 처리 유닛(SPU) 또는 고도로 격리된 SoC 신뢰 루트(RoT))는, 애플리케이션 프로세서 또는 애플리케이션 프로세서-기반 TEE가 손상되더라도, 보안 서브시스템 내에서 애플리케이션 프로세서 또는 애플리케이션 프로세서-기반 TEE에 의해 요청된 암호화 기능을 수행하기 위한 암호화 키의 인가를 거부할 수 있는 암호화 키 사용 정책을 구현할 수 있다.
다양한 실시형태들은 암호화 키에 대한 액세스를 제공하고/하거나 서비스 요청 환경(예를 들어, TEE)에 의해 요청된 암호화 기능을 수행하기 위해 충족되어야 하는 하나 이상의 조건들을 활용하여 독립적인 키 사용 정책을 구현할 수 있다. 서비스 요청 환경은 암호화 기능과 같은 보안 민감 서비스를 수행하도록 보안 서브시스템에 요청할 수 있다. 암호화 기능을 실행하기 위한 인가는 감지 회로로부터 보안 서브시스템에 의해 수신된 하나 이상의 입력들에 기초하여 임의의 수의 조건들의 이행에 따를 수 있다. 감지 회로는 암호화 서비스 요청에 대응하는 하나 이상의 조건이 충족되었는지를 결정하기 위해 사용자 물리적 특성, 카메라 이미지 캡처/피드 정보, 디바이스 배향, 디바이스 위치, 디바이스 조건 및 물리적 상태, 디바이스 및 연결된 디바이스 성능 메트릭, 소프트웨어 성능 메트릭 등을 포함하는 감각 정보를 측정할 수 있다. 감지 회로는 센서 정보로부터 보안 서브시스템에 의해 이용될 수 있는 입력들로 원시 신호 데이터를 변환할 수 있다. 입력들은 보안 서브시스템에 의해 암호화 기능을 수행하기 위한 조건이 충족되는지 또는 충족되었는지를 나타낼 수 있다. 암호화 서비스 요청에 대응하는 암호화 키들을 저장할 수 있는 보안 서브시스템은 하나 이상의 입력들이 요청된 암호화 기능을 수행하기 위한 하나 이상의 조건들이 충족됨을 나타내는지 여부를 결정할 수 있다. 요청된 암호화 기능에 대한 조건(들) 중 적어도 하나가 충족된다고 결정하는 것에 응답하여, 보안 서브시스템은 요청된 암호화 기능을 수행할 수 있으며, 이는 요청된 암호화 기능에 대응하는 암호화 키의 사용을 인가하는 것을 포함할 수 있다.
감지 회로에 의해 감각 정보를 측정하고, 감각 정보를 보안 민감 서비스 또는 암호화 기능을 수행하기 위한 조건(들)이 충족되는지를 나타내거나 결정하는데 사용될 수 있는 입력들로 변환하고, 보안 서브시스템에 의해, 입력이 요청된 암호화 기능을 수행하기 위한 조건(들)이 충족됨을 나타내는지 여부를 결정하는 이러한 프로세스 흐름은 애플리케이션 프로세서의 서비스 요청 환경 내에서 수행되는 임의의 암호화 동작들과 독립적으로 수행될 수 있다. 따라서, 추가적인 보안 계층은 암호화 기능에 대한 하나 이상의 조건의 만족을 검증하는 독립적인 프로세스를 수행하는 보안 서브시스템에 의해 제공되며, 이는 서비스 요청 환경 또는 TEE가 손상되거나 훼손되는 경우에 암호화 키에 대한 액세스를 제한하는 기능을 할 수 있다.
도 1 은 일부 실시형태들에 따른 SoC에서 보안을 제공하도록 구성될 수 있는 예시적인 컴퓨팅 시스템을 예시하는 컴포넌트 블록도이다. 다양한 구현들은 SoC 또는 SIP를 포함하는 다수의 단일 프로세서 및 멀티프로세서 컴퓨터 시스템들 상에서 구현될 수 있다. 도 1 에 예시된 예는 다양한 구현들을 구현하는 무선 디바이스들 및 네트워크 디바이스들에서 사용될 수 있는 SIP(100) 아키텍처이다.
도 1 을 참조하면, 예시된 예시적인 SIP(100)는 2 개의 SoC들(102, 104), 클록(106), 전압 조정기(108), 및 무선 트랜시버(166)를 포함한다. 일부 구현들에 있어서, 제 1 SoC (102) 는, 명령들에 의해 명시된 산술, 논리, 제어 및 입력/출력 (I/O) 동작들을 수행함으로써 소프트웨어 어플리케이션 프로그램들의 명령들을 실행하는 무선 디바이스의 중앙 프로세싱 유닛 (CPU) 으로서 동작할 수도 있다. 일부 구현들에 있어서, 제 2 SoC (104) 는 특수화된 프로세싱 유닛으로서 동작할 수도 있다. 예를 들어, 제 2 SoC (104) 는 고 용적, 고속 (예컨대, 5 Gbps 등), 또는 초고 주파수 단파 길이 (예컨대, 28 GHz mm파 스펙트럼 등) 통신들을 관리하는 것을 담당하는 특수화된 5G 프로세싱 유닛으로서 동작할 수도 있다.
제 1 SoC (102) 는 디지털 신호 프로세서 (DSP) (110), 모뎀 프로세서 (112), 그래픽스 프로세서 (114), 어플리케이션 프로세서 (116), 그 프로세서들 중 하나 이상에 접속된 하나 이상의 코프로세서들 (118) (예컨대, 벡터 코프로세서), 메모리 (120), 커스텀 회로부 (122), 시스템 컴포넌트들 및 리소스들 (124), 상호접속부/버스 모듈 (126), 하나 이상의 센서들 (130), 센서 관리 유닛 (132), 및 열 전력 엔벨로프 (TPE) 컴포넌트 (134) 를 포함할 수도 있다. 제 2 SoC (104) 는 5G 모뎀 프로세서 (152), 전력 관리 유닛 (154), 상호접속/버스 모듈 (164), (예를 들어, 서브-6 대역 트랜시버들, mmWave 트랜시버들 또는 다른 무선 트랜시버들과 같은) 복수의 트랜시버들 (156), 메모리 (158), 및 애플리케이션 프로세서, 패킷 프로세서 등과 같은 다양한 추가적인 프로세서들 (160) 을 포함할 수도 있다.
각각의 프로세서 (110, 112, 114, 116, 118, 152, 160) 는 하나 이상의 코어들을 포함할 수도 있으며, 각각의 프로세서/코어는 다른 프로세서들/코어들에 독립적인 작동들을 수행할 수도 있다. 예를 들어, 제 1 SoC (102) 는 오퍼레이팅 시스템의 제 1 타입 (예컨대, FreeBSD, LINUX, OS X 등) 을 실행하는 프로세서 및 오퍼레이팅 시스템의 제 2 타입 (예컨대, 마이크로소프트 윈도우즈 10) 을 실행하는 프로세서를 포함할 수도 있다. 부가적으로, 프로세서들 (110, 112, 114, 116, 118, 152, 160) 중 임의의 것 또는 그 모두는 프로세서 클러스터 아키텍처 (예컨대, 동기식 프로세서 클러스터 아키텍처, 비동기식 또는 이종 프로세서 클러스터 아키텍처 등) 의 부분으로서 포함될 수도 있다. 일부 구현들에서, 프로세서들(110, 112, 114, 116, 118, 152, 160) 중 임의의 것 또는 전부는 프로세싱 시스템의 컴포넌트일 수 있다. 프로세싱 시스템은 일반적으로, 입력들을 수신하고 입력들을 프로세싱하여 출력들의 세트(예를 들어 제 1 SoC(102) 또는 제 2 SoC(250)의 컴포넌트들 또는 다른 시스템들로 전달될 수도 있음)를 생성하는 시스템 또는 일련의 머신들 또는 컴포넌트들을 지칭할 수도 있다. 예를 들어, 제 1 SoC(102) 또는 제 2 SoC(104)의 처리 시스템은 제 1 SoC(102) 또는 제 2 SoC(104)의 다양한 다른 컴포넌트들 또는 서브컴포넌트들을 포함하는 시스템을 지칭할 수 있다.
제 1 SoC(102) 또는 제 2 SoC(104)의 처리 시스템은 제 1 SoC(102) 또는 제 2 SoC(104)의 다른 컴포넌트들과 인터페이싱할 수 있다. 제 1 SoC(102) 또는 제 2 SoC(104)의 처리 시스템은 다른 컴포넌트들로부터 수신된 정보(예컨대, 입력들 또는 신호들)를 처리하고, 정보를 다른 컴포넌트들로 출력할 수 있다. 예를 들어, 제 1 SoC(102) 또는 제 2 SoC(104)의 칩 또는 모뎀은 처리 시스템, 정보를 출력하기 위한 제 1 인터페이스 및 정보를 수신하기 위한 제 2 인터페이스를 포함할 수 있다. 일부 경우들에서, 제 1 인터페이스는 제 1 SoC(102) 또는 제 2 SoC(104)가 칩 또는 모뎀으로부터 출력된 정보를 송신할 수 있도록 칩 또는 모뎀의 처리 시스템과 송신기 사이의 인터페이스를 지칭할 수 있다. 일부 경우에, 제 2 인터페이스는 제 1 SoC(102) 또는 제 2 SoC(104)가 정보 또는 신호 입력을 수신할 수 있고, 정보가 처리 시스템으로 전달될 수 있도록, 칩 또는 모뎀의 처리 시스템과 수신기 사이의 인터페이스를 지칭할 수 있다. 당업자는 제 1 인터페이스가 정보 또는 신호 입력을 수신할 수도 있고, 제 2 인터페이스가 정보를 송신할 수도 있다는 것을 용이하게 이해할 것이다.
제 1 SoC(102) 및 제 2 SoC(104)는 센서 데이터, 아날로그-디지털 변환들, 무선 데이터 송신들을 관리하기 위한, 그리고 데이터 패킷들을 디코딩하는 것 및 인코딩된 오디오 및 비디오 신호들을 웹 브라우저에서의 렌더링을 위해 프로세싱하는 것과 같은 다른 특수 동작들을 수행하기 위한 다양한 시스템 컴포넌트들, 리소스들 및 커스텀 회로부를 포함할 수도 있다. 예를 들어, 제 1 SoC (102) 의 시스템 컴포넌트들 및 리소스들 (124) 은 전력 증폭기들, 전압 조정기들, 오실레이터들, 위상-록킹 루프들, 주변 브리지들, 데이터 제어기들, 메모리 제어기들, 시스템 제어기들, 액세스 포트들, 타이머들, 및 무선 디바이스 상에서 실행되는 프로세서들 및 소프트웨어 클라이언트들을 지원하는데 사용된 다른 유사한 컴포넌트들을 포함할 수도 있다. 시스템 컴포넌트들 및 리소스들 (124) 또는 커스텀 회로부 (122) 는 또한, 카메라들, 전자 디스플레이들, 무선 통신 디바이스들, 외부 메모리 칩들 등과 같이 주변기기 디바이스들과 인터페이스하기 위한 회로부를 포함할 수도 있다.
제 1 SoC(102) 및 제 2 SoC(104)는 상호접속/버스 모듈(150)을 통해 통신할 수 있다. 다양한 프로세서들(110, 112, 114, 116, 118)은 상호접속/버스 모듈(126)을 통해 하나 이상의 메모리 엘리먼트들(120), 시스템 컴포넌트들 및 리소스들(124), 및 커스텀 회로부(122), 및 센서 관리 유닛(132)에 상호접속될 수도 있다. 유사하게, 모뎀 프로세서 (152) 는 상호연결/버스 모듈 (164) 을 통해 전력 관리 유닛 (154), 트랜시버들 (156), 메모리 (158), 및 다양한 부가 프로세서들 (160) 에 상호접속될 수도 있다. 상호접속/버스 모듈 (126, 150, 164) 은 재구성가능 로직 게이트들의 어레이를 포함하거나 버스 아키텍처 (예컨대, CoreConnect, AMBA 등) 를 구현할 수도 있다. 통신들은 고성능 네트워크 온 칩 (NoC들) 과 같은 어드밴스드 상호접속부들에 의해 제공될 수도 있다.
제 1 SoC(102) 또는 제 2 SoC(104) 는 클록 (106) 및 전압 조절기 (108) 와 같은 SoC 외부의 리소스들과 통신하기 위한 입력/출력 모듈 (예시 안됨) 을 더 포함할 수도 있다. SoC 외부의 리소스들 (예컨대, 클록 (106), 전압 조절기 (108)) 은 내부 SoC 프로세서들/코어들 중 2 이상에 의해 공유될 수도 있다.
앞서 논의된 예시적인 SIP (100) 에 부가하여, 다양한 구현들은, 단일 프로세서, 다중 프로세서들, 멀티코어 프로세서들, 또는 이들의 임의의 조합을 포함할 수도 있는 매우 다양한 컴퓨팅 시스템들에서 구현될 수도 있다.
도 2 는 다양한 실시형태들 중 임의의 것을 구현하기에 적합한 암호화 시스템(200)을 포함하는 예시적인 SoC를 도시하는 컴포넌트 블록도이다. 예시된 예시적인 암호화 시스템(200)은 애플리케이션 프로세서(116), 상호접속/버스 모듈(126), 보안 서브시스템(202), 및 감지 회로(204)를 포함한다. 애플리케이션 프로세서 (116), 상호접속/버스 모듈 (126), 보안 서브시스템 (202), 및 감지 회로 (204) 는 SoC (102) 의 컴포넌트들일 수도 있다.
감지 회로 (204) 는 집계되고 상호접속/버스 모듈 (126) 을 통해 애플리케이션 프로세서 (116) 및 보안 서브시스템 (202)으로 통신될 수도 있는 감각 정보 (230) 를 수신하거나 또는 그렇지 않으면 측정할 수도 있다. 애플리케이션 프로세서(116)는 상호접속/버스 모듈(126)을 통해 보안 서브시스템(202)에 암호화 기능에 대한 요청을 전송할 수 있다. 보안 서브시스템(202)은 애플리케이션 프로세서(116)의 외부에 있거나 그렇지 않으면 그로부터 독립적인 SoC(102)의 기능 블록 또는 일부일 수 있다. 예를 들어, 서비스 요청 환경(208)은 보안 서브시스템(202)과 별도로 동작할 수 있다. 감지 회로(204)는 암호화 인증 목적으로 사용되는 입력들을 애플리케이션 프로세서(116) 및 보안 서브시스템(202)에 개별적으로 전송할 수 있다. 애플리케이션 프로세서(116)는 수신된 입력들을 사용하여 수신된 입력들을 사용하여 보안 서브시스템(202)으로부터 독립적으로 암호화 동작을 수행하여, 암호화 기능에 대응하는 하나 이상의 조건들에 기초하여 암호화 키의 사용을 인가하는 것을 포함하는 별도의 암호화 기능을 수행할 수 있다. 보안 서브시스템(202)은 보안 서브시스템(202)에 의한 사용을 위해 암호화 키를 해제 또는 인가하도록 구성될 수 있으며, 암호화 키는 요청된 암호화 기능의 조건이 충족됨을 나타내는 수신된 입력에 응답하여 요청된 암호화 기능(즉, 서비스 요청 환경에 의해 요청된)에 대응한다.
애플리케이션 프로세서(116)는 HLOS(206) 및 서비스 요청 환경(208)을 확립 및 관리할 수 있다. 서비스 요청 환경(208)은 암호화 기능들을 수행하도록 보안 서브시스템(202)에 요청하기 위한 신뢰된 실행 환경(예를 들어, TrustZone, 하이퍼바이저-기반 가상 머신)과 같은 가상 기능 블록일 수 있다.
HLOS (206) 는 보안 정보에 대한 액세스를 획득하기 위한 사용자 입력 및/또는 요청 (예를 들어, 애플리케이션 프로세서 (116) 상에서 실행되는 뱅킹 애플리케이션을 통한 온라인 뱅킹 로그인)에 응답하여 암호화 기능이 수행되어야 한다고 결정할 수도 있다. 액세스 시도는 보안 정보에 대한 액세스를 요청하는 사용자 및/또는 디바이스를 검증하기 위한 암호화 키에 대한 요청을 포함할 수 있다. 암호화 키를 포함하는 추가 보안 정보를 요청하는 액세스 시도에 응답하여, HLOS (206) 는 요청된 암호화 기능을 포함하는 암호화 서비스 요청을 생성하여 서비스 요청 환경 (208)에 송신할 수도 있다. 서비스 요청 환경(208)은 이어서 암호화 서비스 요청을 보안 서브시스템(202)에 중계할 수 있다. 보안 서브시스템(202)은 임의의 수의 잠재적인 암호화 기능들에 대응하는 암호화 키들을 저장(예를 들어, SPU(212)에 저장)할 수 있다. 보안 서브시스템(202)은 하나 이상의 조건에 기초하여 암호 서비스 요청에 대응하는 암호화 키의 사용을 허가하거나 암호화 키에 대한 액세스를 승인할 수 있다. 조건들을 만족시키는 것은 암호화 서비스 요청에 의해 요청된 암호화 기능을 수행하기 위해 보안 서브시스템(202)에 의한 암호화 키의 사용을 인가할 수 있으며, 암호화 서비스 요청은 요청된 보안 정보에 대한 액세스를 허용하기 위해 HLOS(206)에 의해 원래 생성되었다. 보안 서브시스템(202)은 암호화 서비스 요청과 연관된 조건들 중 하나 이상이 충족되지 않는다고 결정하는 것에 응답하여 암호화 기능을 수행하기 위해 암호화 키(들)를 사용하기 위한 인가를 거부할 수 있고, 따라서 암호화 서비스 요청에 대응하는 보안 정보에 대한 액세스를 거부할 수 있다.
일부 실시형태들에서, 보안 서브시스템(202)은 메모리를 포함할 수 있거나, 또는 다양한 암호화 기능들을 수행하기 위한 다양한 조건들을 저장하기 위해 상호접속/버스 모듈(126)을 통해 메모리 디바이스(예를 들어, 메모리(120), SoC(102) 외부의 메모리 디바이스)에 통신 가능하게 연결될 수 있다. 일부 실시형태들에서, 보안 서브시스템(202)은 암호화 키에 대한 액세스를 제공하고/하거나 서비스 요청 환경(208)에 의해 요청된 암호화 기능을 수행하기 위해 충족되어야 하는 하나 이상의 조건을 이용하여 암호화 키 사용 정책을 저장할 수 있다. 예를 들어, 보안 서브시스템(202)은 다양한 암호화 기능들을 수행하기 위한 요청들에 대응하는 규칙들 및/또는 조건들의 세트를 저장할 수 있다. 보안 서브시스템(202)에 의해 저장된 키 사용 정책은 각각의 요청된 암호화 기능에 대해 만족되어야 하는 조건들, 요청된 암호화 기능에 기초하여 어느 조건들이 만족되어야 하는지를 결정하기 위한 규칙들, 및 감지 회로(204)로부터 수신된 입력들에 기초하여 조건들 중 어느 것이 만족되는지를 결정하기 위한 규칙들을 포함할 수 있다. 일부 실시형태들에서, 암호화 서비스 요청은 암호화 기능에 추가하여 충족될 하나 이상의 조건들을 포함할 수 있다.
감지 회로(204)는 각각의 프로세서의 동작과 관련된 조건들을 분석하기 위해 디지털 신호 프로세서(110), 모뎀 프로세서(112), 그래픽 프로세서(114), 커스텀 회로부(122), 및 시스템 컴포넌트들 및 리소스들(124)을 포함할 수 있다. 예를 들어, 모뎀 프로세서(112)는 SoC(102)를 포함하는 디바이스가 동작하고 있는 대역폭 범위(예를 들어, 5G, LTE 등)를 분석할 수 있다. 감지 회로 (204) 는 SoC (102) 를 구현하는 디바이스의 동작 조건들을 측정하기 위한 추가적인 프로세서들을 포함할 수도 있으며, 각각의 프로세서는 상호접속/버스 모듈 (126) 을 통해 보안 서브시스템 (202)에 통신가능하게 접속될 수도 있다. 일부 실시형태들에서, SoC(102)는 감지 회로(204)와 별개인 추가적인 프로세서들을 포함할 수 있지만, 디바이스 동작 조건들을 감지 회로(204)에 송신할 수 있다. 감지 회로(204)는 실세계 감각 정보(230)를 측정하기 위해 임의의 다양한 센서들(130)에 통신 가능하게 연결된 센서 관리 유닛(132)을 포함할 수 있다. 센서들(130)은 실세계 데이터를 측정 및/또는 수신하기 위한 다른 센서들 중에서도, 자이로스코프/가속도계(214), 오디오 입력 컴포넌트(216), 카메라(218), 온도 센서들(220), 및 터치 스크린(222)을 포함할 수 있다.
일부 실시형태들에서, 감지 회로(204)는 암호화 키의 사용을 인가하는 보안 서브시스템(202)의 목적들을 위해 암호화 서비스 요청들과 연관된 조건들이 충족되는지 여부를 결정할 수 있다. 감지 회로(204)는 감각 정보(230)를 분석함으로써 암호화 서비스 요청과 연관된 하나 이상의 조건들이 충족된다고 결정할 수 있다. 감지 회로(204)는 보안 서브시스템(202)에 의해 이용될 수 있는 입력들을 생성하기 위해 감각 정보(230)를 측정 및/또는 분석할 수 있다. 감지 회로 (204) 는 상호접속/버스 모듈 (126) 을 통해 보안 서브시스템 (202)으로 측정된 감각 정보 (230)에 기초한 입력들을 송신할 수도 있다. 보안 서브시스템(202)은 암호화 키를 사용하여 암호화 기능을 수행하기 위한 하나 이상의 조건과 관련된 입력을 감지 회로(204)로부터 수신할 수 있다. 보안 서브시스템(202)은 요청된 암호화 기능의 하나 이상의 조건이 만족됨을 나타내는 수신된 입력에 응답하여 요청된 암호화 기능을 수행할 수 있다.
일부 실시형태들에서, 보안 서브시스템(202)은 보안 서브시스템(202)에 의한 암호화 키에 대한 액세스를 허용하거나 그 사용을 인가하기 위해(또는 다른 암호화 기능을 수행하기 위해) 암호화 서비스 요청들과 연관된 조건들이 충족되는지 여부를 결정할 수 있다. 보안 서브시스템(202)은 감지 회로(204)로부터의 입력들을 분석함으로써 암호화 서비스 요청과 연관된 하나 이상의 조건들이 충족됨을 결정할 수 있다. 감지 회로(204)는 감각 정보(230)를 측정 및/또는 분석하여 보안 서브시스템(202)에 대한 입력을 생성할 수 있다. 감지 회로 (204) 는 상호접속/버스 모듈 (126) 을 통해 보안 서브시스템 (202)으로 측정된 감각 정보 (230)에 기초한 입력들을 송신할 수도 있다. 보안 서브시스템(202)은 암호화 키를 사용하여 암호화 기능을 수행하기 위한 하나 이상의 조건과 관련된 입력을 감지 회로(204)로부터 수신할 수 있다. 보안 서브시스템(202)은 요청된 암호화 기능의 하나 이상의 조건이 만족됨을 나타내는 수신된 입력에 응답하여 요청된 암호화 기능을 수행할 수 있다.
용어 "입력"은 본 명세서에서 예를 들어 원시 센서 데이터, 센서 측정 값, Boolean 정보, 플래그 비트 등을 포함하여 보안 서브시스템에 의해 수신될 수 있는 다양한 데이터 구조들을 지칭하기 위해 사용된다.
일 예로서, 감지 회로(204)가 암호화 서비스 요청에 대응하는 하나 이상의 조건들이 충족되는지를 결정하는 실시형태들에서, 감지 회로(204)는 하나 이상의 조건들에 대응하는 하나 이상의 Boolean들을 생성하고, 보안 서브시스템(202)에 의해 액세스 가능한 레지스터에 비트를 로딩하는 것과 같이 Boolean들을 보안 서브시스템(202)에 전달할 수 있다. 예를 들어, Boolean은 보안 서브시스템 내의 레지스터에 로딩되거나 보안 서브시스템에 의해 액세스될 수 있고 특정 센서에 대응할 수 있는 1(또는 "예") 또는 0(또는 "아니오") 표시자(예를 들어, 검출된 지문 = "예/아니오", 검출된 유효 지문 = "예/아니오") 또는 특정 조건이 충족되는지 여부를 나타내는 표시일 수 있다. 보안 서브시스템은 이어서 플래그 또는 Boolean에 액세스하여 암호화 키에 대한 액세스 권한을 부여하는 것을 진행해야 하는지 여부를 결정할 수 있다. 입력들이 센서들(130)에 의해 측정된 상태들(예를 들어, 시계가 검출되었는지, 온도가 너무 높은지, QR 코드가 검출되었는지 등)을 나타내는 Boolean 값들인 실시형태들에서, 보안 서브시스템(202) 내의 프로세서는 암호화 키의 사용을 인가하기 전에 각각의 입력에 의해 표시된 상태가 대응하는 조건이 만족됨을 나타내는지 여부를 결정할 수 있다.
보안 서브시스템에 대한 입력들이 하나 이상의 Boolean들을 포함하는 실시형태들에서, 감지 회로(204)는 Boolean을 포함하는 데이터를 보안 서브시스템(202)에 전달할 수 있고, 보안 서브시스템(202)이 액세스하는 레지스터에서 Boolean 상태에 대응하는 플래그 또는 비트를 설정할 수 있고(예를 들어, SPU(212) 내의 플래그/비트), 그리고/또는 레지스터에 저장된 바이트를 상호접속/버스 모듈(126)을 통해 보안 서브시스템(202)의 메모리 어드레스 범위로 푸시할 수 있다. 예를 들어, 감지 회로(204)는 SoC(102)를 구현하는 디바이스가 인가된 키 포브(key fob)가 존재함을 나타내는 측정 및 기록된 감각 정보(230)를 갖는다는 것을 나타내는 Boolean 값을 보안 서브시스템(202)에 출력할 수 있다(예를 들어, 키 포브가 존재하고 결정 블록(306) = "예"). 보안 서브시스템(202)은, 입력에 기초하여, 키 포브의 존재가 조건이 만족됨을 나타내고, 보안 서브시스템(202)이 암호화 서비스 요청에 대응하는 암호화 키의 사용을 허가하여 보안 서브시스템(202)이 요청된 암호화 기능을 수행하게 할 수 있음을 결정할 수 있다.
보안 서브시스템(202)이 암호화 서비스 요청에 대응하는 하나 이상의 조건들이 충족되는지를 결정하는 실시형태들에서, 보안 서브시스템(202)은 입력들로서 감지 회로(204)로부터 원시 신호 측정들을 수신하고, 하나 이상의 원시 신호 측정들을 처리하고, 원시 신호 측정들의 이러한 처리에 기초하여 요청된 암호화 기능에 대한 하나 이상의 조건들이 충족되는지를 결정할 수 있다.
감지 회로(204)로부터 보안 서브시스템(202)에 의해 수신된 입력들은 올웨이즈-온 정보(always-on information)(즉, 센서들에 의해 측정된 정보가 보안 서브시스템(202)으로 연속적으로 푸시됨) 또는 보안 서브시스템(202)의 레지스터에 저장되거나 그에 의해 액세스 가능한 값들과 같은 동작 센서 정보일 수 있고, 따라서 암호화 기능에 대한 요청(예를 들어, TEE로부터)을 수신할 때 선행 조건이 만족되는지 여부를 결정하기 위해 이용 가능할 수 있다. 다시 말해서, 감지 회로(204)는 정보 또는 표시가 보안 서브시스템에 항상 이용 가능하도록 하나 이상의 선행 조건들에 관련된 센서 정보 또는 표시를 연속적으로 출력(예를 들어, 데이터 버스를 통해 전송하거나 보안 서브시스템(202)에 의해 액세스 가능한 메모리에 저장)할 수 있다. 따라서, 서비스 요청 환경(208)으로부터 암호화 기능을 포함하는 암호화 서비스 요청을 수신할 때, 보안 서브시스템(202)은 암호화 키에 대한 액세스를 허가하고 암호화 기능을 완료하기 위해 이행될 필요가 있는 암호화 서비스 요청에 의해 요구되는 하나 이상의 조건에 대응하는 입력의 상태 또는 표시를 이미 가질 수 있다. 예를 들어, 감지 회로(204)는 인가된 사용자에 대응하는 스마트워치 워치가 검출 가능한 블루투스 저에너지(Bluetooth Low Energy: BLE) 범위 내에 있지 않는 한, "사용자 워치 검출됨 = 아니오"의 Boolean 값을 나타내는 비트 또는 플래그를 보안 서브시스템(202)에 의해 액세스 가능한 레지스터에 지속적으로 설정할 수 있다. 유효한 사용자의 스마트워치가 BLE 범위 내로 진입하고 SoC(102)를 구현하는 디바이스에 연결될 때, 감지 회로(204)는 "사용자 워치 검출됨 = 예"의 Boolean 값을 표시하기 위해 대응하는 레지스터를 조정할 수 있고, 스마트워치가 범위 내에 유지되는 동안 보안 서브시스템(202)에 의해 액세스 가능한 이 값을 지속적으로 푸시 또는 유지할 수 있다.
일부 실시형태들에서, 감지 회로(204)는 감지 회로(204)가 설정된 조건들 및 측정된 감각 정보(230)에 기초하여 입력들의 변화가 적절하다고 결정할 때 보안 서브시스템(202)에 입력을 제공할 수 있다. 예를 들어, 특정 암호화 기능에 대한 조건은 SoC(102)를 구현하는 디바이스가 특정 속도 임계 범위보다 빠르게 이동하고 있는지 여부일 수 있다. 디폴트로, 디바이스가 속도 임계 범위 내에 있는 동안(예를 들어, 이동하지 않는 동안), 자이로스코프/가속도계(214)를 사용하여 감지 회로(204)에 의해 (예를 들어, 시스템 부팅시에) 초기에 제공된 바와 같은 보안 서브시스템(202)에 대한 입력은 "디바이스 안정 = 예"일 수 있다. 감지 회로(204)는 그 조건이 변화할 때까지 보안 서브시스템(202)에 "디바이스 안정 = 예"를 지속적으로 푸시함으로써 프로세서 사이클들을 낭비하지 않을 수 있다. 따라서, 감지 회로(204)가 감지 정보(230)가 디바이스가 조건에 의해 정의된 임계 속도 범위보다 빠르게 이동하고 있음을 나타내는 것으로 결정할 때, 입력은 "디바이스 안정 = 아니오"로 변경될 수 있고, 감지 회로(204)는 이 Boolean을 보안 서브시스템(202)에 푸시하거나 보안 서브시스템(202)에 의해 액세스 가능한 레지스터에 플래그 비트를 설정할 수 있다.
일부 실시형태들에서, 보안 서브시스템(202)은 암호화 기능을 수행하기 위한 요청을 수신할 수 있고, 이에 응답하여, 보안 서브시스템은 요청된 암호화 기능에 대응하는 조건의 가장 최근의 값 또는 상태를 요청할 수 있다. 예를 들어, 감지 회로(204)는 간격들로 보안 서브시스템(202)에 입력들 및/또는 감각 정보를 제공할 수 있고, 보안 서브시스템(202)은 요청된 암호화 기능의 조건이 충족되는지 여부를 결정하는 것과 관련된 최신 정보를 갖지 않을 수 있다. 따라서, 보안 서브시스템은 보안 서브시스템(202)에 최신 상태 또는 그 상태에 관련된 입력을 제공하기 위한 요청을 감지 회로(204)에 전송할 수 있다. 일부 실시형태들에서, 보안 서브시스템(202)은 키 사용 정책 내의 임의의 조건을 만족시키는 것과 관련된 입력들을 저장할 수 있지만, 입력들이 암호화 서비스 요청을 수신한 후에 암호화 서비스 요청에 대응하는 조건을 만족시키는지 여부에 관한 결정을 할 수 있다. 일부 실시형태들에서, 보안 서브시스템(202)은 암호화 서비스 요청이 보안 서브시스템(202)에 의해 수신되었는지 여부에 관계없이, 최신 입력들에 기초하여 키 사용 정책에서 어떤 조건들이 충족되었는지에 관한 정보를 결정하고 저장할 수 있다.
일부 실시형태들에서, 감지 회로(204)는 SoC(102) 이외의 다른 SoC(예를 들어, SoC(104))의 컴포넌트일 수 있거나, 또는 SoC(102)를 수용하는 디바이스 외부의 다른 디바이스의 다른 컴포넌트일 수 있다. 예를 들어, 감지 회로(204)는 조건에 기초하여 입력을 결정하고 집계하기 위해 감각 정보(230)를 측정할 수 있는 스마트폰 또는 스마트워치와 같은 다른 디바이스의 일부인 기능 블록일 수 있고, 그 후 이러한 결정된 입력을 (예를 들어, 무선 트랜시버(166)를 통해) 보안 서브시스템(202)을 구현하는 디바이스에 전송할 수 있다. 유사하게, 일부 실시형태들에서, 보안 서브시스템(202)은 SoC(102) 이외의 다른 SoC의 컴포넌트일 수 있거나, 또는 SoC(102)를 수용하는 디바이스 외부의 다른 디바이스의 다른 컴포넌트일 수 있다.
일부 실시형태들에서, 보안 서브시스템(202)은 SoC RoT(210)를 포함할 수 있고, 보안 서브시스템(202)에 의해 수행되는 것으로 설명된 모든 동작들은 SoC RoT(210)에 의해 수행될 수 있다. 일부 실시형태들에서, 보안 서브시스템(202)은 SPU(212)를 포함할 수 있고, 보안 서브시스템(202)에 의해 수행되는 것으로 설명된 모든 동작들은 SPU(212)에 의해 수행될 수 있다. 일부 실시형태들에서, 보안 서브시스템(202)은 SoC RoT(210) 및 보안 처리 유닛(SPU)(212)을 포함할 수 있고, 보안 서브시스템(202)에 의해 수행되는 것으로 설명된 모든 동작들은 SPU(212)와 함께 SoC RoT(210)에 의해 수행될 수 있다. 따라서, 다양한 실시형태들에서, 보안 서브시스템(202)에 의해 수행되는 것으로 본 명세서 전반에 걸쳐 설명된 모든 동작들은 SoC RoT(210)에 의해서만, SPU(212)에 의해서만, 또는 SoC RoT(210) 및 SPU(212)에 의해 공동으로 수행될 수 있다. SoC RoT(210) 및 SPU(212)가 보안 서브시스템(202) 내의 2개의 공동 기능 컴포넌트들로서 기능하는 예로서, SPU(212)는 CPU, 메모리, 및 암호화 엔진을 포함하는 독립적인 프로세서 서브시스템 및 부트 체인일 수 있어서, 다른 서브시스템들에 암호화 서비스들을 제공할 수 있다. SPU(212)는 하나 이상의 암호화 키를 저장할 수 있고, 서비스 요청 환경(208)으로부터 하나 이상의 요청된 암호화 기능을 수신할 수 있다. SoC RoT(210)는 감지 회로(204)로부터 입력을 수신하고, 입력이 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하도록 구성될 수 있다. SoC RoT(210)는 입력들을 SPU(212)에 전송할 수 있다. SPU(212)는 요청된 암호화 기능의 조건이 만족됨을 나타내는 수신된 입력에 응답하여 요청된 암호화 기능을 수행하도록 구성될 수 있다. 따라서, SPU(212)는 감지 회로(204) 또는 보안 서브시스템(202)이 요청된 암호화 기능에 대응하는 조건이 충족된다고 결정할 때 요청된 암호화 기능에 대응하는 암호화 키의 사용을 보안 서브시스템(202)에 인가할 수 있다.
감지 회로(204)는 다양한 센서들(130) 및 디지털 신호 프로세서(110), 모뎀 프로세서(112), 그래픽 프로세서(114), 커스텀 회로부(122), 및 시스템 컴포넌트들 및 리소스들(124)을 사용하여 다양한 감각 정보(230)를 측정하여, 미리 설정된 조건들에 기초하여 입력들을 결정하고 집계하기 위한 목적으로 각각의 프로세서의 동작과 관련된 조건들을 분석할 수 있다. 감각 정보(230)는 임의의 다양한 외부 디바이스 자극, 신호, 표시기 등을 포함할 수 있다. 예를 들어, 감지 회로(204)는 사용자 물리적 특성들, 이미지 캡처 및/또는 이미지-피드 데이터, 디바이스 배향, 디바이스 위치, 디바이스 조건 및/또는 상태, 통신 네트워크 정보, 및 암호화 보안 목적들을 위해 인가된 및/또는 유효한 사용자, 크리덴셜들(credentials), 연결들, 연결된 디바이스들, 조건들 등의 식별에 사용될 수 있는(즉, 조건(들)이 충족되었는지를 결정하는) 다른 정보를 측정 및 기록할 수 있다.
도 3 은 다양한 실시형태들에 따른 SoC에서 보안을 제공하기 위한 실시형태 방법(300)을 도시하는 프로세스 흐름도이다. 도 1 내지 도 3 을 참조하면, 방법(300)은 방법의 동작들을 수행하도록 구성된 프로세서(예를 들어, 프로세서들(110, 112, 114, 116, 118, 152, 160))에서 구현될 수 있다. 일부 실시형태들에서, 프로세서 (예를 들어, 프로세서들 (110, 112, 114, 116, 118, 152, 160)) 는 비일시적 프로세서 판독가능 매체 (예를 들어, 메모리 디바이스들 (120, 158))에 저장된 프로세서 실행가능 명령에 의해 동작들을 수행하도록 구성될 수도 있다. 방법(300)의 동작들 각각을 수행하기 위한 수단은 프로세서들(110, 112, 114, 116, 118, 152, 160), 보안 서브시스템(202), 감지 회로(204) 등과 같은 암호화 시스템(200)의 프로세서일 수 있다.
다양한 실시형태에서, 보안 서브시스템(예를 들어, 보안 서브시스템(202))은 보안 서브시스템이 즉시 액세스하지 않는 하나 이상의 암호화 키를 저장할 수 있다. 예를 들어, 보안 서브시스템은 상호접속(예를 들어, 상호접속/버스 모듈(126))을 통해 서비스 요청 환경(예를 들어, 서비스 요청 환경(208))으로부터 암호화 기능을 수행하라는 요청을 수신할 수 있다. 서비스 요청 환경은 애플리케이션 프로세서(예: 애플리케이션 프로세서(116))에서 동작하고 그에 의해 관리되는 TEE일 수 있다.
블록 302 에서, 보안 서브시스템은 서비스 요청 환경으로부터 암호화 기능을 수행하라는 요청을 수신할 수 있다. 보안 서브시스템은 요청된 암호화 기능을 수행하기 위한 조건을 저장할 수 있다. 보안 서브시스템은 보안 서브시스템에 의한 암호화 키에 대한 액세스를 부여하거나 그 사용을 인가하기 전에 조건의 만족을 요구할 수 있다. 일부 실시형태들에서, 보안 서브시스템에 의해, 서비스 요청 환경으로부터 암호화 기능에 대한 요청을 수신하는 것은 보안 서브시스템 내의 SPU(예를 들어, SPU(212)) 또는 SoC RoT(예를 들어, SoC RoT(210))에 의해 서비스 요청 환경으로부터 암호화 기능에 대한 요청을 수신하는 것을 포함할 수 있다. 블록 302 에서의 프로세스들은 도 1 및 도 2 를 참조하여 설명된 바와 같이 수행될 수 있다. 블록 302 에서의 동작들을 수행하기 위한 수단은 프로세서들(110, 112, 114, 116, 118, 152, 160), 보안 서브시스템(202), 감지 회로(204) 등과 같은 암호화 시스템의 프로세서를 포함할 수 있다.
블록 304 에서, 보안 서브시스템은 감지 회로로부터 입력을 수신할 수 있으며, 여기서 입력은 암호화 기능들을 수행하기 위한 적어도 하나의 조건과 관련된 적어도 하나의 표시를 포함한다. 보안 서브시스템(예를 들어, 보안 서브시스템(202))은 감지 회로(예를 들어, 감지 회로(204))로부터 하나 이상의 입력을 수신할 수 있다. 입력은 감각 정보(예를 들어, 감각 정보(230))에 기초할 수 있다. 감지 회로는 감각 정보에 기초하여 조건이 만족되는지 여부를 판단할 수 있다. 일부 실시형태들에서, 보안 서브시스템은 감지 회로로부터 입력들을 수신할 수 있고, 이어서 수신된 입력들에 기초하여 조건들이 충족되는지 여부를 결정할 수 있다. 일부 실시형태들에서, 감지 회로로부터 입력을 수신하는 단계는 요청된 암호화 기능을 수행하기 위한 조건이 충족되는지 여부를 나타내는 Boolean 값을 수신하는 것을 포함할 수 있다. 일부 실시형태들에서, 입력은 올웨이즈-온 정보, 또는 동작 센서 정보일 수 있고, 감지 회로로부터 입력을 수신하는 것은 감지 회로로부터 입력을 연속적으로 수신하는 보안 서브시스템을 더 포함할 수 있다. 일부 실시형태들에서, 감지 회로로부터 입력을 수신하는 단계는 보안 서브시스템이 서비스 요청 환경과는 독립적인 통신 경로를 따라 감지 회로로부터 입력을 수신하는 것을 포함할 수 있다. 일부 실시형태들에서, 보안 서브시스템에 의해, 감지 회로로부터 입력을 수신하는 단계는 보안 서브시스템 내의 SoC RoT(예를 들어, 210) 또는 SPU(예를 들어, SPU(212))에 의해 감지 회로로부터 입력을 수신하는 것을 포함할 수 있다. 블록 304 에서의 프로세스들은 도 1 및 도 2 를 참조하여 설명된 바와 같이 수행될 수 있다. 블록 304 에서의 동작들을 수행하기 위한 수단은 프로세서들(110, 112, 114, 116, 118, 152, 160), 보안 서브시스템(202), 감지 회로(204) 등과 같은 암호화 시스템의 프로세서를 포함할 수 있다.
결정 블록 306 에서, 보안 서브시스템은 입력이 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정할 수 있다. 보안 서브시스템(예를 들어, 보안 서브시스템(202))은 감지 회로로부터 수신된 입력이 요청된 암호화 기능을 수행하기 위해 보안 서브시스템에 의한 하나 이상의 암호화 키의 사용을 인가하기 위해 요청된 암호화 기능에 대응하는 하나 이상의 조건이 충족되었음을 나타내는지 여부를 결정할 수 있다. 일부 실시형태들에서, 보안 서브시스템에 의해, 입력이 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하는 것은, SoC RoT(예를 들어, SoC RoT(210)) 및/또는 SPU(예를 들어, SPU(212))에 의해, 입력이 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하는 것을 포함할 수 있다. 결정 블록 306 에서의 프로세스들은 도 1 및 도 2 를 참조하여 설명된 바와 같이 수행될 수 있다. 결정 블록 306 에서의 동작들을 수행하기 위한 수단은 프로세서들(110, 112, 114, 116, 118, 152, 160), 보안 서브시스템(202), 감지 회로(204) 등과 같은 암호화 시스템의 프로세서를 포함할 수 있다.
입력이 요청된 암호화 기능을 수행하기 위한 조건이 충족되지 않음을 나타낸다고 결정하는 것(즉, 결정 블록 306 = "아니오")에 응답하여, 보안 서브시스템은 요청된 암호화 기능에 대응하는 암호화 키의 사용을 거부할 수 있고, 요청된 암호화 기능은 종료 또는 거부될 수 있다. 보안 서브시스템은 입력이 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타낸다고 결정할 때까지 블록 302 에서 설명된 바와 같이 암호화 기능에 대한 동일한 요청의 후속 시도 및/또는 암호화 기능들에 대한 추가 요청들을 계속 수신할 수 있다.
입력이 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타낸다는 결정에 응답하여(즉, 결정 블록 306 = "예"), 요청된 암호화 기능이 블록 308 에서 수행될 수 있다. 보안 서브시스템이 감지 회로로부터 수신된 입력에 의해 표시된 바와 같이 하나 이상의 필수 조건들이 충족된다고 결정할 때, 보안 서브시스템은 보안 서브시스템이 요청된 암호화 기능을 완료할 수 있게 하기 위해 하나 이상의 암호화 키들의 사용을 인가할 수 있다. 일 실시형태에서, 조건이 만족된다는 결정에 응답하여 요청된 암호화 기능을 수행하는 것은 조건이 만족된다는 결정에 응답하여 SPU 및/또는 SoC RoT에 의해 요청된 암호화 기능을 수행하는 것을 포함할 수 있어서, SPU 및/또는 SoC RoT는 SPU 및/또는 SoC RoT가 암호화 키를 사용하도록 인가할 수 있다. 블록 308 에서의 프로세스들은 도 1 및 도 2 를 참조하여 설명된 바와 같이 수행될 수 있다. 블록 308 에서의 동작들을 수행하기 위한 수단은 프로세서들(110, 112, 114, 116, 118, 152, 160), 보안 서브시스템(202), 감지 회로(204) 등과 같은 암호화 시스템의 프로세서를 포함할 수 있다.
블록 304 에서 감지 회로(204)로부터 수신된 입력들 및 결정 블록 306 에서 보안 서브시스템(202)에 의해 행해진 결정은 다양한 실시형태들이 다양한 암호화 기능 애플리케이션을 어드레싱하기 위해 광범위한 파라미터들 및 인자들 상에서 암호화 기능들의 실행을 컨디셔닝하고 암호화 키들에 액세스하는 것을 가능하게 할 수 있다. 블록들 302-308 에서의 다양한 암호화 기능들에 대한 입력들, 결정들 및 조건들의 비제한적인 예들은 다음을 포함한다.
일부 실시형태들에서, 감지 회로(204)는 근접한 현재 사용자의 물리적 특성들을 측정할 수 있다. 감지 회로(204)는 측정된 감각 정보(230)에 기초하여, 서비스 요청 환경(208)으로부터 암호화 서비스 요청을 수신한 보안 서브시스템을 포함하는 디바이스를 물리적으로 동작시키기 위해 사람이 근접 범위 내에 있는지 여부와 같은 하나 이상의 조건이 충족되는지 여부를 결정할 수 있다. 조건이 만족되는지 여부, 이 예시적인 실시형태에서, 입력이 SoC(102)를 포함하는 디바이스에 대한 근접 범위 내의 사람의 물리적 존재의 표시를 포함하는지 여부의 결과적인 결정은 블록 304 에서 보안 서브시스템(202)에 입력될 수 있다. 감지 회로(204)는 측정된 감각 정보(230)에 기초하여, 사용자가 서비스 요청 환경(208)으로부터 보안 서브시스템(202)에 의해 수신된 암호화 서비스 요청에 대응하는 허가된 사용자인지 여부와 같은 하나 이상의 조건이 충족되는지를 결정할 수 있다. 조건이 만족되는지 여부, 이 경우에는, SoC(102)를 구현하는 디바이스의 현재 사용자가 인가된 사용자인지 여부의 결과적인 결정은 블록 304 에서 보안 서브시스템(202)에 입력될 수 있다.
감지 회로(204)는 조건이 충족되거나 충족되지 않음을 나타내고 그리고/또는 현재 사용자가 SoC(102)를 구현하는 디바이스의 인가된 사용자임을 나타내는 입력을 생성할 수 있다. 즉, 블록 304 에서 수신된 입력은 SoC(102)를 포함하는 디바이스의 사용자의 현재 사용자 물리적 특성들의 표시를 포함할 수 있고, 조건은 사용자 물리적 특성들이 인가된 사용자 물리적 특성들과 매칭하는지 여부일 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다.
예를 들어, 암호화 서비스 요청이 보안 정보에 대한 액세스를 획득하려고 시도하는 것에 응답하여, 애플리케이션 프로세서(116)는 지문 식별 프로세스를 개시할 수 있으며, 여기서 디바이스는 사용자 인터페이스를 통해 지문을 요청하고, 터치 스크린(222)을 통해 지문을 측정할 수 있다. 조건은 사용자 지문이 (예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된) 허가된 사용자 지문과 일치하는지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 사용자 지문의 표시(예를 들어, 지문이 저장된 허가된 사용자 지문과 일치하는지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 지문이 저장된 지문과 일치하면(예를 들어, 지문이 저장된 인증된 사용자 지문과 일치하고 결정 블록 306 = "예"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 허가하여 보안 서브시스템(202)이 암호화 기능을 완료하게 할 수 있다. 지문이 저장된 지문과 일치하지 않으면(예를 들어, 지문이 저장된 인가된 사용자 지문과 일치하고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
다른 예로서, 보안 정보에 대한 액세스를 획득하려고 시도하는 암호화 서비스 요청에 응답하여, 애플리케이션 프로세서(116)는 홍채 식별 프로세스를 개시할 수 있으며, 여기서 디바이스는 사용자 인터페이스를 통해 요청하고, 카메라(218)를 통해 사용자의 홍채의 이미지를 측정할 수 있다. 조건은 사용자의 홍채가 (예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된) 허가된 사용자 홍채와 일치하는지 여부일 수 있다. 그 경우, 블록 304 에서 수신된 입력은 현재 사용자 홍채의 표시를 포함할 수 있고(예를 들어, 홍채가 저장된 인가된 사용자 홍채와 일치하고 결정 블록 306 = "예" 또는 "아니오"), 보안 서브시스템(202)은 조건이 충족되는지를 결정하도록 구성될 수 있다. 홍채가 저장된 홍채와 일치하면(예를 들어, 홍채가 저장된 인가된 사용자 홍채와 일치하고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료할 수 있도록 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 홍채가 저장된 홍채와 일치하지 않는 경우(예를 들어, 홍채가 저장된 인가된 사용자 홍채와 일치하고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
다른 예로서, 암호화 서비스 요청이 보안 정보에 대한 액세스를 획득하려고 시도하는 것에 응답하여, 애플리케이션 프로세서(116)는 얼굴 인식 프로세스를 개시할 수 있으며, 여기서 디바이스는 사용자 인터페이스를 통해 요청하고, 카메라(218)를 통해 사용자의 얼굴의 이미지를 측정할 수 있다. 조건은 사용자 얼굴이 (예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된) 인증된 사용자 얼굴과 일치하는지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 사용자 얼굴의 표시(예를 들어, 얼굴이 저장된 인증된 사용자 얼굴과 일치하고 결정 블록 306 = "예" 또는 "아니오"인지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 얼굴이 저장된 얼굴과 일치하면(예를 들어, 얼굴이 저장된 인증된 사용자 얼굴과 일치하고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료할 수 있도록 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 얼굴이 저장된 얼굴과 일치하지 않으면(예를 들어, 얼굴이 저장된 인증된 사용자 얼굴과 일치하고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 허가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
추가 예로서, 암호화 서비스 요청이 보안 정보에 대한 액세스를 획득하려고 시도하는 것에 응답하여, 애플리케이션 프로세서(116)는 얼굴 인식 프로세스를 개시할 수 있으며, 여기서 디바이스는 사용자 인터페이스를 통해 요청하고, 오디오 입력 컴포넌트(216)를 통해, 사용자의 음성의 기록을 측정할 수 있다. 조건은 사용자 음성 기록이 (예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된) 인증된 사용자 음성 기록과 일치하는지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 사용자 음성 기록의 표시(예를 들어, 음성 기록이 저장된 인증된 사용자 음성 기록과 일치하는지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 음성 기록이 저장된 음성 기록과 일치하는 경우(예를 들어, 음성 기록이 저장된 인증된 사용자 음성 기록과 일치하고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료할 수 있도록 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 음성 기록이 저장된 음성 기록과 일치하지 않는 경우(예를 들어, 음성 기록이 저장된 인증된 사용자 음성 기록과 일치하고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
일부 실시형태들에서, 감지 회로(204)는 카메라(218)를 사용하여 추가적인 비-사용자 관련 환경 조건들 또는 이미지 캡처/피드 특징들을 측정할 수 있다. 예를 들어, 암호화 서비스 요청이 보안 정보에 대한 액세스를 획득하려고 시도하는 것에 응답하여, 애플리케이션 프로세서(116)는 특정 QR 판독기 코드를 식별하는 것과 같은 이미지 식별 프로세스를 개시할 수 있으며, 여기서 디바이스는 사용자 인터페이스를 통해 QR 코드의 이미지를 요청하고, 카메라(218)를 통해 QR 코드의 이미지를 측정할 수 있다. 조건은 QR 코드가 (예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된) 특정 QR 코드와 일치하는지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 QR 코드의 표시(예를 들어, QR 코드가 저장된 유효 QR 코드와 일치하는지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. QR 코드가 저장된 QR 코드와 일치하면(예를 들어, QR 코드가 저장된 QR 코드와 일치하고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료할 수 있도록 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. QR 코드가 저장된 QR 코드와 일치하지 않는 경우(예를 들어, QR 코드가 저장된 QR 코드와 일치하고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 허가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
다른 예로서, 보안 정보에 대한 액세스를 획득하려고 시도하는 암호화 서비스 요청에 응답하여, 애플리케이션 프로세서(116)는 디바이스가 카메라(218)를 통해 현재 밝기 레벨을 측정할 수 있는 특정 환경 밝기 레벨을 식별하는 것과 같은 이미지 식별 프로세스를 개시할 수 있다. 조건은 밝기 레벨이 (예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된) 밝기 레벨 임계 범위 내에 있는지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 밝기 레벨의 표시(예를 들어, 밝기 레벨이 밝기 레벨 임계 범위 내에 있는지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 밝기 레벨이 밝기 레벨 임계 범위 내에 있는 경우(예를 들어, 밝기 레벨이 밝기 레벨 임계 범위 내에 있고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료할 수 있게 해주기 위해 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 밝기 레벨이 밝기 레벨 임계 범위 내에 있지 않으면(예를 들어, 밝기 레벨이 밝기 레벨 임계 범위 내에 있고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 허가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
일부 실시형태들에서, 감지 회로(204)는 SoC(102)를 구현하는 디바이스의 디바이스 배향을 측정할 수 있다. 감지 회로(204)는 측정된 감각 정보(230)에 기초하여, 디바이스가 보안 가상 환경(208)으로부터 보안 서브시스템(202)에 의해 수신된 암호화 서비스 요청에 대응하는 적절한 배향 내에 있는지 여부와 같은 하나 이상의 조건이 충족되는지를 결정할 수 있다. 조건이 만족되는지 여부, 이 경우에는, SoC(102)를 구현하는 디바이스가 적절한 배향 내에 있는지 여부의 결과적인 결정은 보안 서브시스템(202)에 입력될 수 있다.
감지 회로(204)는 조건이 충족되거나 충족되지 않음을 나타내고 그리고/또는 현재 사용자가 SoC(102)를 구현하는 디바이스의 인가된 사용자임을 나타내는 입력을 생성할 수 있다. 다시 말해서, 블록 304 에서 수신된 입력은 SoC(102)를 포함하는 디바이스의 디바이스 배향의 표시를 포함할 수 있고, 조건은 디바이스 배향이 허용가능한 임계치들 내에 있는지 여부일 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다.
예를 들어, 보안 정보에 대한 액세스를 획득하려고 시도하는 암호화 서비스 요청에 응답하여, 애플리케이션 프로세서(116)는 디바이스가 자이로스코프/가속도계(214)를 통해 x-y-z 축 배향을 측정할 수 있는 디바이스 배향 측정 프로세스를 개시할 수 있다. 조건은 x-y-z 축 배향이 (예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된) x-y-z 축 배향 임계 범위 내에 있는지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 x-y-z 축 배향의 표시(예를 들어, x-y-z 축 배향이 x-y-z 축 배향 임계 범위 내에 있는지)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. x-y-z축 배향이 x-y-z축 배향 임계 범위 내에 있는 경우(예를 들어, x-y-z축 배향이 x-y-z축 배향 임계 범위 내에 있고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료할 수 있게 하기 위해 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. x-y-z축 배향이 x-y-z축 배향 임계 범위 내에 있지 않으면(예를 들어, x-y-z축 배향이 x-y-z축 배향 임계 범위 내에 있고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 허가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
다른 예로서, 보안 정보에 대한 액세스를 획득하려고 시도하는 암호화 서비스 요청에 응답하여, 애플리케이션 프로세서(116)는 디바이스가 자이로스코프/가속도계(214)를 통해 틸트 각도를 측정할 수 있는 디바이스 배향 측정 프로세스를 개시할 수 있다. 조건은 틸트 각도가 (예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된) 틸트 각도 임계 범위 내에 있는지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 틸트 각도의 표시(예를 들어, 틸트 각도가 틸트 각도 임계 범위 내에 있는지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 틸트 각도가 틸트 각도 임계 범위 내에 있는 경우(예를 들어, 틸트 각도가 틸트 각도 임계 범위 내에 있고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료하도록 허용하기 위해 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 틸트 각도가 틸트 각도 임계 범위 내에 있지 않으면(예를 들어, 틸트 각도가 틸트 각도 임계 범위 내에 있고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 허가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
다른 예로서, 보안 정보에 대한 액세스를 획득하려고 시도하는 암호화 서비스 요청에 응답하여, 애플리케이션 프로세서(116)는 디바이스가 자이로스코프/가속도계(214)를 통해 속도를 측정할 수 있는 디바이스 배향 측정 프로세스를 개시할 수 있다. 조건은 속도가 (예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된) 속도 임계 범위 내에 있는지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 속도의 표시(예를 들어, 속도가 속도 임계 범위 내에 있는지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 속도가 속도 임계 범위 내에 있는 경우(예를 들어, 속도가 속도 임계 범위 내에 있고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료할 수 있도록 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 속도가 속도 임계 범위 내에 있지 않으면(예를 들어, 속도가 속도 임계 범위 내에 있고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 허가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
다른 예로서, 보안 정보에 대한 액세스를 획득하려고 시도하는 암호화 서비스 요청에 응답하여, 애플리케이션 프로세서(116)는 디바이스가 자이로스코프/가속도계(214)를 통해 가속도를 측정할 수 있는 디바이스 배향 측정 프로세스를 개시할 수 있다. 조건은 가속도가 (예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된) 가속도 임계 범위 내에 있는지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 가속도의 표시(예를 들어, 가속도가 가속도 임계 범위 내에 있는지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 가속도가 가속도 임계 범위 내에 있는 경우(예를 들어, 가속도가 가속도 임계 범위 내에 있고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료할 수 있도록 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 가속도가 가속도 임계 범위 내에 있지 않으면(예를 들어, 가속도가 가속도 임계 범위 내에 있고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 허가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
일부 실시형태들에서, 감지 회로(204)는 SoC(102)를 구현하는 디바이스의 위치를 측정할 수 있다. 감지 회로(204)는 측정된 감각 정보(230)에 기초하여, 디바이스가 보안 가상 환경(208)으로부터 보안 서브시스템(202)에 의해 수신된 암호화 서비스 요청에 대응하는 보안 환경 또는 지리적 위치 내에 있는지 여부와 같은 하나 이상의 조건이 충족되는지를 결정할 수 있다. 조건이 만족되는지 여부, 이 경우에는, 디바이스가 특정 위치에 있는지 여부의 결과적인 결정은 보안 서브시스템(202)에 입력될 수 있다.
감지 회로(204)는 조건이 충족되거나 충족되지 않음을 나타내고 그리고/또는 SoC(102)를 구현하는 디바이스가 인가된 위치 내에 있음을 나타내는 입력을 생성할 수 있다. 블록 304 에서 수신된 입력은 SoC(102)를 포함하는 디바이스의 현재 디바이스 위치의 표시를 포함할 수 있고, 조건은 디바이스 위치가 인가된 위치에 있는지 여부일 수 있고, 보안 서브시스템은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 블록 304 에서 수신된 입력은 또한 SoC(102)를 포함하는 디바이스에 연결할 수 있는 근접 디바이스의 표시를 포함할 수 있고, 조건은 근접 디바이스가 인가 디바이스인지 여부일 수 있고, 보안 서브시스템은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다.
예를 들어, 암호화 서비스 요청이 보안 정보에 대한 액세스를 획득하려고 시도하는 것에 응답하여, 애플리케이션 프로세서(116)는 디바이스가 지리적위치설정(geopositioning) 방법들을 통해 지리적위치설정된 위치를 결정할 수 있는 디바이스 위치 결정 프로세스를 개시할 수 있다. 조건은 지리적위치설정된 위치가 인가된 지리적위치설정된 위치(예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된 하나 이상의 위치들) 내에 있는지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 지리적위치설정된 위치의 표시(예를 들어, 지리적위치설정된 위치가 인가된 지리적위치설정된 위치 내에 있는지)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 지리적위치설정된 위치가 인가된 지리적위치설정된 위치 내에 있는 경우(예를 들어, 지리적위치설정된 위치가 인가된 지리적위치설정된 위치 내에 있고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료하도록 허용하기 위해 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 지리적위치설정된 위치가 인가된 지리적위치설정된 위치 내에 있지 않으면(예를 들어, 지리적위치설정된 위치가 인가된 지리적위치설정된 위치 내에 있고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
다른 예로서, 보안 정보에 대한 액세스를 획득하려고 시도하는 암호화 서비스 요청에 응답하여, 애플리케이션 프로세서(116)는 다른 인증 디바이스가 근접한지를 결정하기 위해 디바이스 위치 결정 프로세스를 개시할 수 있다. 예를 들어, SoC(102)를 구현하는 디바이스는 스마트워치, 자동차 운영 체제, 무선 주파수 식별(RFID) 태그, 인가된 사용자의 키 포브 등이 통신 거리 내에 있을 수 있는지를 결정할 수 있다. 조건은 인증 디바이스가 SoC(102)를 구현하는 디바이스에 근접한지 또는 그렇지 않으면 디바이스와의 통신 범위 내에 있는지(예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된 하나 이상의 인증 디바이스 ID)일 수 있고, 블록 304 에서 수신된 입력은 인증 디바이스 근접성의 표시(예를 들어, 인증 디바이스가 근접한지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 인증 디바이스가 SoC(102)를 구현하는 디바이스에 근접하면(예를 들어, 인증 디바이스가 근접하고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료하도록 허용하기 위해 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 인증 디바이스가 SoC(102)를 구현하는 디바이스에 근접하지 않으면(예를 들어, 인증 디바이스가 근접하고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 허가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
감지 회로(204)는 조건이 충족되거나 충족되지 않음을 나타내고/나타내거나 인가된 네트워크가 SoC(102)를 구현하는 디바이스에 의해 검출가능하고 가시적일 수 있음을 나타내는 입력을 생성할 수 있다. 예를 들어, 블록 304 에서 수신된 입력은 SoC(102)를 포함하는 디바이스에 의해 검출된 통신 네트워크의 표시를 포함할 수 있고, 조건은 통신 네트워크가 인가된 통신 네트워크와 일치하는지 여부일 수 있고, 보안 서브시스템은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다.
예를 들어, 보안 정보에 대한 액세스를 획득하려고 시도하는 암호화 서비스 요청에 응답하여, 애플리케이션 프로세서(116)는 디바이스가 현재 가시적인 네트워크들(예를 들어, 디바이스가 접속할 수 있는 WAN/LAN)을 결정할 수 있는 디바이스 위치 결정 프로세스를 개시할 수 있다. 조건은 가시적인 네트워크들이 인가된 네트워크들(예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된 하나 이상의 네트워크들)인지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 가시적인 네트워크들의 표시(예를 들어, 가시적인 네트워크들이 인가된 네트워크들과 일치하는지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 가시적인 네트워크들이 인가된 네트워크들과 일치하는 경우(예를 들어, 가시적인 네트워크들이 인가된 네트워크들과 일치하고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료할 수 있게 하기 위해 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 가시적인 네트워크들이 인가된 네트워크들과 일치하지 않는 경우(예를 들어, 가시적인 네트워크들이 인가된 네트워크들과 일치하고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
일부 실시형태들에서, 감지 회로(204)는 SoC(102)를 구현하는 디바이스의 조건들, 물리적 상태들, 및 성능 메트릭들을 측정할 수 있다. 예를 들어, 보안 정보에 대한 액세스를 획득하려고 시도하는 암호화 서비스 요청에 응답하여, 애플리케이션 프로세서(116)는 디바이스가 온도 센서들(220)을 통해 온도를 측정할 수 있는 디바이스 상태 측정 프로세스를 개시할 수 있다. 온도 센서들(220)은 디바이스 내부(예: 스캔 체인을 통한 프로세서 코어 온도들) 또는 디바이스 외부(예: 환경 온도들)의 하나 이상의 온도를 측정할 수 있다. 조건은 온도가 (예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된) 온도 임계 범위 내에 있는지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 온도의 표시(예를 들어, 온도가 온도 임계 범위 내에 있는지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 온도가 온도 임계 범위 내에 있는 경우(예를 들어, 온도가 온도 임계 범위 내에 있고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료하도록 허용하기 위해 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 온도가 온도 임계 범위 내에 있지 않으면(예를 들어, 온도가 온도 임계 범위 내에 있고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 허가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
다른 예로서, 보안 정보에 대한 액세스를 획득하려고 시도하는 암호화 서비스 요청에 응답하여, 애플리케이션 프로세서(116)는, 전력 공급이 충분한지, 활성/충전중인지, 및/또는 임계 레벨 이상인지를 포함하는 전력 공급 상태를 디바이스가 결정할 수 있는 디바이스 상태 측정 프로세스를 개시할 수 있다. 예를 들어, 조건은 공급된 전력이 전력 공급 임계 레벨(예를 들어, 전력 공급 제어기에 의해 조절되고/되거나, 인증 서버와 같은 디바이스 또는 외부 메모리에 의해 저장된 레벨)을 초과하는지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 전력 공급 레벨의 표시(예를 들어, 전력 공급 레벨이 전력 공급 임계 레벨을 초과하는지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 전력 공급 레벨이 전력 공급 임계 레벨을 초과하는 경우(예를 들어, 전력 공급 레벨이 전력 공급 임계 레벨을 초과하고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료할 수 있도록 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 전력 공급 레벨이 전력 공급 임계 레벨을 초과하지 않으면(예를 들어, 전력 공급 레벨이 전력 공급 임계 레벨을 초과하고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 허가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
추가 예로서, 보안 정보에 대한 액세스를 획득하려고 시도하는 암호화 서비스 요청에 응답하여, 애플리케이션 프로세서(116)는 디바이스가 현재 동작 대역폭(예를 들어, 5G, LTE) 또는 디바이스 다운로드 또는 업로드 속도를 측정할 수 있는 디바이스 동작 메트릭 측정 프로세스를 개시할 수 있다. 조건은 대역폭이 (예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된) 허용가능한 대역폭 임계 범위 내에 있는지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 대역폭의 표시(예를 들어, 대역폭이 허용가능한 대역폭 임계 범위 내에 있는지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 대역폭이 허용가능한 대역폭 임계 범위 내에 있는 경우(예를 들어, 대역폭이 허용가능한 대역폭 임계 범위 내에 있고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료할 수 있도록 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 대역폭이 허용가능한 대역폭 임계 범위 내에 있지 않으면(예를 들어, 대역폭이 허용가능한 대역폭 임계 범위 내에 있고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 허가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
다른 예로서, 보안 정보에 대한 액세스를 획득하려고 시도하는 암호화 서비스 요청에 응답하여, 애플리케이션 프로세서(116)는 디바이스가 (예를 들어, 무선 트랜시버(166)를 통해) SoC(102)를 구현하는 디바이스에 의해 수신되었을 수 있는 디바이스 토큰(token) 수신 프로세스를 개시할 수 있다. 조건은 토큰이 수신되었는지 여부일 수 있고, 블록 304 에서 수신된 입력은 토큰 수신의 표시(예를 들어, 토큰이 수신되었는지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 토큰이 수신된 경우(예를 들어, 토큰이 수신되고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료할 수 있게 하기 위해 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 토큰이 수신되지 않은 경우(예를 들어, 토큰이 수신되고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 허가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
추가 예로서, 보안 정보에 대한 액세스를 획득하려고 시도하는 암호화 서비스 요청에 응답하여, 애플리케이션 프로세서(116)는 디바이스가 현재 동작 대역폭(예를 들어, 5G, LTE) 또는 디바이스 다운로드 또는 업로드 속도를 측정할 수 있는 디바이스 동작 메트릭 측정 프로세스를 개시할 수 있다. 조건은 대역폭이 (예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된) 허용가능한 대역폭 임계 범위 내에 있는지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 대역폭의 표시(예를 들어, 대역폭이 허용가능한 대역폭 임계 범위 내에 있는지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 대역폭이 허용가능한 대역폭 임계 범위 내에 있는 경우(예를 들어, 대역폭이 허용가능한 대역폭 임계 범위 내에 있고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료할 수 있도록 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 대역폭이 허용가능한 대역폭 임계 범위 내에 있지 않으면(예를 들어, 대역폭이 허용가능한 대역폭 임계 범위 내에 있고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 허가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
감지 회로(204)는 조건이 충족되거나 충족되지 않음을 나타내고/나타내거나 SoC(102)를 구현하는 디바이스가 하나 이상의 보안 네트워크들, 게이트웨이들, 및/또는 서버들에 성공적으로 연결되었음을 나타내는 입력을 생성할 수 있다. 다시 말해서, 블록 304 에서 수신된 입력은 SoC(102)를 포함하는 디바이스의 디바이스 배향의 표시를 포함할 수 있고, 조건은 디바이스 배향이 허용가능한 임계치들 내에 있는지 여부일 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다.
예를 들어, 보안 정보에 대한 액세스를 획득하려고 시도하는 암호화 서비스 요청에 응답하여, 애플리케이션 프로세서(116)는 디바이스가 활성 통신 네트워크들 또는 접속들(예를 들어, WAN/LAN, BLE)을 결정할 수 있는 디바이스 접속 상태 결정 프로세스를 개시할 수 있다. 조건은 하나 이상의 접속된 네트워크들이 인가된 네트워크들(예를 들어, 디바이스 또는 인증 서버와 같은 외부 메모리에 의해 저장된 하나 이상의 네트워크들)인지 여부일 수 있고, 블록 304 에서 수신된 입력은 현재 접속된 네트워크들의 표시(예를 들어, 접속된 네트워크들이 인가된 네트워크들과 일치하는지 여부)를 포함할 수 있고, 보안 서브시스템(202)은 조건이 충족되는지 여부를 결정하도록 구성될 수 있다. 접속된 네트워크들이 인가된 네트워크들과 일치하는 경우(예를 들어, 접속된 네트워크들이 인가된 네트워크들과 일치하고 결정 블록 306 = "예"), 보안 서브시스템(202)은 보안 서브시스템(202)이 암호화 기능을 완료하도록 허용하기 위해 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가할 수 있다. 접속된 네트워크들이 인가된 네트워크들과 일치하지 않는 경우(예를 들어, 접속된 네트워크들이 인가된 네트워크들과 일치하고 결정 블록 306 = "아니오"), 보안 서브시스템(202)은 암호화 서비스 요청에 대응하는 암호화 키의 사용을 인가하지 않을 수 있고, 암호화 서비스 요청은 실패할 수 있고 보안 정보에 대한 액세스가 거부될 수 있다.
일부 실시형태들에서, 보안 서브시스템(202)은 암호화 서비스 요청에 응답하여 암호화 키의 사용을 인가하기 전에 하나 초과의 조건이 충족될 것을 요구할 수 있다. 예를 들어, 보안 서브시스템(202)은 감지 회로(204)로부터 보안 서브시스템(202)에 의해 수신된 입력들에 의해 결정된 바와 같이 적어도 2개의 조건들이 충족될 때까지 보안 서브시스템(202)이 암호화 기능을 완료할 수 있도록 암호화 키의 사용을 허가하지 않을 수 있다. 예를 들어, 보안 서브시스템(202)은, 암호화 키의 사용을 인가하거나 암호화 키에 대한 액세스를 승인하기 전에, 유효한 키 포브가 동시에 검출되는 조건 이외에 인가된 사용자의 홍채 이미지가 기록되었다는 조건을 요구할 수 있다. 보안 서브시스템(202)에 의해 결정된 바와 같은 이들 양 조건들의 만족은 보안 서브시스템(202)이 대응하는 암호화 서비스 요청을 완료하기 위해 암호화 키의 사용을 허가하게 할 수 있다.
일부 실시형들에서, 보안 서브시스템은 암호화 키의 사용을 인가하거나 그에 대한 액세스를 승인하기 전에 다수의 조건들 중 적어도 하나가 충족되었는지를 결정하기 위해 블록 304 에서 수신된 조건들 및 입력들을 집계할 수 있다. 예를 들어, 보안 서브시스템(202)은 암호화 서비스 요청에 관련된 적용 가능한 조건들의 백분율이 충족될 것을 요구하도록(예를 들어, 60% 초과) 구성될 수 있다. 다른 예로서, 보안 서브시스템은 암호화 서비스 요청과 관련된 최소 수의 적용 가능한 조건이 충족될 것을 요구하도록 구성될 수 있다(예를 들어, 7개 중 3개).
블록들 302- 308 에서 수행된 동작들의 순서는 단지 예시적인 것이며, 블록들 302- 308 의 동작들은 임의의 순서로 그리고 일부 실시형태들에서 부분적으로 동시에 수행될 수도 있다. 일부 실시형태들에서, 방법 (300) 은 외부 메모리 디바이스와 독립적으로, 그러나 이와 함께 디바이스의 프로세서에 의해 수행될 수도 있다. 예를 들어, 방법 (300) 은 보안 메모리 채널들을 확립하고 외부 메모리 디바이스의 메모리에 액세스하기 위한 커맨드들을 발행하고 다르게는 설명된 바와 같은 액션들을 취하고 데이터를 저장하도록 구성되는 SoC 내의 전용 하드웨어에서 또는 SoC 의 프로세서 내에서 실행되는 소프트웨어 모듈로서 구현될 수도 있다.
도 4 는 일부 실시형태들에서 방법(300)의 일부로서 구현될 수 있는 SoC 에서 보안을 제공하기 위한 실시형태 방법(400)을 예시하는 프로세스 흐름도이다. 도 1 내지 도 4 를 참조하면, 방법(400)은 방법의 동작들을 수행하도록 구성된 프로세서(예를 들어, 프로세서들(110, 112, 114, 116, 118, 152, 160))에서 구현될 수 있다. 일부 실시형태들에서, 프로세서 (예를 들어, 프로세서들 (110, 112, 114, 116, 118, 152, 160)) 는 비일시적 프로세서 판독가능 매체 (예를 들어, 메모리 디바이스들 (120, 158))에 저장된 프로세서 실행가능 명령에 의해 동작들을 수행하도록 구성될 수도 있다. 방법(300)의 동작들 각각을 수행하기 위한 수단은 프로세서들(110, 112, 114, 116, 118, 152, 160), 보안 서브시스템(202), 감지 회로(204) 등과 같은 암호화 시스템(200)의 프로세서일 수 있다.
방법(300)(도 3)의 블록 306 의 동작들에 후속하여, 보안 서브시스템은 블록 402 에서 요청된 암호화 기능의 조건이 만족됨을 나타내는 수신된 입력에 응답하여 요청된 암호화 기능에 대응하는 암호화 키의 사용을 인가할 수 있다. 보안 서브시스템(예를 들어, 보안 서브시스템(202))은 보안 서브시스템이 암호화 기능을 수행할 수 있게 하기 위해 보안 서브시스템에 의한 암호화 기능에 대응하는 암호화 키의 사용을 해제, 그에 대한 액세스 허용, 또는 달리 허가할 수 있다. 보안 서브시스템은 하나 이상의 조건들에 응답하여 하나 이상의 암호화 키들의 사용을 해제, 그에 대한 액세스 허용, 또는 그렇지 않으면 허가할 수 있다. 입력(들)이 조건(들)을 만족시킨다는 보안 서브시스템에 의한 결정은 인가된 사용자 및/또는 디바이스가 성공적으로 검증되었고 요청된 암호화 기능이 유효한 손상되지 않은 요청된 암호화 기능임을 나타낼 수 있다.
블록 402 에서 동작들을 수행한 후, 시스템은 설명된 바와 같은 방법(300)(도 3)의 블록 308 에서의 동작들을 수행할 수 있다.
블록 402 에서의 프로세스들은 도 1-3 을 참조하여 설명된 바와 같이 수행될 수 있다. 블록 402 에서의 동작들을 수행하기 위한 수단은 프로세서들(110, 112, 114, 116, 118, 152, 160), 보안 서브시스템(202), 감지 회로(204) 등과 같은 암호화 시스템의 프로세서를 포함할 수 있다.
다양한 실시형태들(도 1 내지 도 4 를 참조하여 위에서 설명된 실시형태들을 포함하지만 이에 제한되지 않음)은 자동차 차량들 또는 다른 모바일 컴퓨팅 디바이스들을 포함하는 매우 다양한 컴퓨팅 시스템들에서 구현될 수 있으며, 다양한 실시형태들과 함께 사용하기에 적합한 예가 도 5 에 예시된다. 도 1 내지 도 5 를 참조하면, 모바일 컴퓨팅 디바이스 (500) 는 터치스크린 제어기 (504) 및 내부 메모리 (506)에 커플링된 프로세서 (502) 를 포함할 수도 있다. 프로세서 (502) 는 일반적인 또는 특정 프로세싱 태스크들을 위해 지정된 하나 이상의 멀티코어 집적 회로들일 수도 있다. 내부 메모리 (506) 는 휘발성 또는 비휘발성 메모리일 수도 있고, 또한, 보안 및/또는 암호화된 메모리, 또는 비보안 및/또는 비암호화된 메모리, 또는 이들의 임의의 조합일 수도 있다. 레버리징될 수 있는 메모리 타입들의 예들은 DDR, LPDDR, GDDR, WIDEIO, RAM, SRAM, DRAM, P-RAM, R-RAM, M-RAM, STT-RAM, 및 임베딩된 DRAM 을 포함하지만 이에 제한되지 않는다. 터치스크린 제어기 (504) 및 프로세서 (502) 는 또한 저항성-감지 터치스크린, 용량성-감지 터치스크린, 적외선 감지 터치스크린 등과 같은 터치스크린 패널 (512) 에 커플링될 수도 있다. 부가적으로, 모바일 컴퓨팅 디바이스 (500) 의 디스플레이는 터치 스크린 능력을 가질 필요가 없다.
모바일 컴퓨팅 디바이스 (500) 는 서로 및/또는 프로세서 (502) 에 커플링된, 통신들을 전송 및 수신하기 위한 하나 이상의 무선 신호 트랜시버들 (508)(예를 들어, 피넛(Peanut), 블루투스(Bluetooth), ZigBee, Wi-Fi, RF 라디오) 및 안테나 (510) 를 가질 수도 있다. 트랜시버들 (508) 및 안테나들 (510) 은 다양한 무선 송신 프로토콜 스택들 및 인터페이스들을 구현하기 위해 위에 언급된 회로부와 함께 사용될 수도 있다. 모바일 컴퓨팅 디바이스 (500) 는 셀룰러 네트워크를 통한 통신을 가능하게 하고 프로세서에 커플링된 셀룰러 네트워크 무선 모뎀 칩 (516) 을 포함할 수도 있다.
모바일 컴퓨팅 디바이스 (500) 는 프로세서 (502) 에 커플링된 주변 디바이스 연결 인터페이스 (518) 를 포함할 수도 있다. 주변 디바이스 연결 인터페이스 (518) 는 하나의 타입의 연결을 수락하도록 단독으로 구성될 수도 있거나, USB (Universal Serial Bus), FireWire, Thunderbolt, 또는 PCIe 와 같은, 공통 또는 독점적인 다양한 타입들의 물리적 및 통신 연결들을 수락하도록 구성될 수도 있다. 주변 디바이스 연결 인터페이스 (518) 는 또한 유사하게 구성된 주변 디바이스 연결 포트 (미도시) 에 커플링될 수도 있다.
모바일 컴퓨팅 디바이스 (500) 는 또한 오디오 출력들을 제공하기 위한 스피커들 (514) 을 포함할 수도 있다. 모바일 컴퓨팅 디바이스 (500) 는 또한 본 명세서에 설명된 컴포넌트들의 일부 또는 전부를 포함하기 위해 플라스틱, 금속, 또는 재료들의 조합으로 구성된 하우징 (520) 을 포함할 수도 있다. 모바일 컴퓨팅 디바이스 (500) 는 일회용 또는 재충전가능한 배터리와 같은, 프로세서 (502) 에 커플링된 전원 (522) 을 포함할 수도 있다. 재충전가능한 배터리는 또한 모바일 컴퓨팅 디바이스 (500) 외부의 소스로부터 충전 전류를 수신하기 위해 주변 디바이스 연결 포트에 커플링될 수도 있다. 모바일 컴퓨팅 디바이스 (500) 는 또한 사용자 입력들을 수신하기 위한 물리적 버튼 (524) 을 포함할 수도 있다. 모바일 컴퓨팅 디바이스 (500) 는 또한 모바일 컴퓨팅 디바이스 (500) 를 턴 온 및 턴 오프하기 위한 파워 버튼 (526) 을 포함할 수도 있다.
다양한 실시형태들(도 1 내지 도 4 를 참조하여 위에서 설명된 실시형태들을 포함하지만 이에 제한되지 않음)은 그 예가 도 6 에 예시된 랩톱 컴퓨터(600)를 포함하는 매우 다양한 컴퓨팅 시스템들에서 구현될 수 있다. 도 1 내지 도 6 을 참조하면, 랩톱 컴퓨터는 컴퓨터의 포인팅 디바이스로서 기능하는 터치패드 터치 표면(617)을 포함할 수 있고, 따라서 터치 스크린 디스플레이를 구비하고 전술한 컴퓨팅 디바이스들 상에서 구현되는 것들과 유사한 드래그, 스크롤, 및 플릭 제스처들(flick gestures)을 수신할 수 있다. 랩톱 컴퓨터 (600) 는 통상적으로, 휘발성 메모리 (612) 및 플래시 메모리의 디스크 드라이브 (613) 와 같은 대용량 비휘발성 메모리에 커플링된 프로세서 (602) 를 포함할 것이다. 부가적으로, 컴퓨터 (600) 는 프로세서 (602) 에 커플링된 셀룰러 전화 트랜시버 (616) 및/또는 무선 데이터 링크에 연결될 수도 있는 전자기 방사를 전송 및 수신하기 위한 하나 이상의 안테나 (608) 를 포함할 수도 있다. 컴퓨터 (600) 는 또한 프로세서 (602) 에 커플링된 플로피 디스크 드라이브 (614) 및 컴팩트 디스크 (CD) 드라이브 (615) 를 포함할 수도 있다. 랩톱 컴퓨터 (600) 는 모두 프로세서 (602)에 커플링된 터치패드 (617), 키보드 (618), 및 디스플레이 (619) 를 포함할 수도 있다. 컴퓨팅 디바이스의 다른 구성들은 잘 알려진 바와 같이 (예를 들어, USB 입력을 통해) 프로세서에 커플링된 컴퓨터 마우스 또는 트랙볼을 포함할 수도 있으며, 이는 또한 다양한 실시형태들과 함께 사용될 수도 있다.
다양한 실시형태들(도 1 내지 도 4 를 참조하여 위에서 설명된 실시형태들을 포함하지만 이에 제한되지 않음)은 또한 다양한 상업적으로 이용 가능한 서버들 중 임의의 것과 같은 고정 컴퓨팅 시스템들에서 구현될 수 있다. 도 1 내지 도 7 을 참조하면, 예시적인 서버(700)가 도 7 에 도시되어 있다. 이러한 서버(700)는 일반적으로, 휘발성 메모리(702), 및 디스크 드라이브(704)와 같은 대용량 비휘발성 메모리에 커플링되는 하나 이상의 멀티코어 프로세서 어셈블리들(701)을 포함한다. 도 7 에 예시된 바와 같이, 멀티코어 프로세서 어셈블리들 (701) 은 어셈블리의 랙들에 이들을 삽입함으로써 서버 (700) 에 부가될 수도 있다. 서버 (700) 는 또한, 프로세서 (701) 에 커플링된 플로피 디스크 드라이브, 컴팩트 디스크 (CD) 또는 디지털 다기능 디스크 (DVD) 디스크 드라이브 (706) 를 포함할 수도 있다. 서버 (700) 는 또한, 다른 브로드캐스트 시스템 컴퓨터들 및 서버들에 커플링된 로컬 영역 네트워크, 인터넷, 공중 스위칭 전화 네트워크, 및/또는 셀룰러 데이터 네트워크 (예를 들어, CDMA, TDMA, GSM, PCS, 3G, 4G, LTE, 또는 임의의 다른 타입의 셀룰러 데이터 네트워크) 와 같은 네트워크 (705) 와 네트워크 인터페이스 접속들을 확립하기 위해 멀티코어 프로세서 어셈블리들 (701) 에 커플링된 네트워크 액세스 포트들 (703) 을 포함할 수도 있다.
다양한 실시형태들은 웨어러블 컴퓨팅 디바이스와 같은 다양한 컴퓨팅 디바이스들 내에서 구현될 수도 있다. 도 8 은 일부 실시형태들에 따른 스마트 워치 (800) 의 형태로 예시의 웨어러블 컴퓨팅 디바이스를 도시한다. 스마트 워치 (800) 는 내부 메모리들 (804 및 806) 에 커플링된 프로세서 (802) 를 포함할 수도 있다. 내부 메모리들 (804, 806) 은 휘발성 또는 비휘발성 메모리들일 수도 있고, 또한 보안 및/또는 암호화된 메모리들, 또는 비보안 및/또는 암호화되지 않은 메모리들, 또는 이들의 임의의 조합일 수도 있다. 프로세서 (802) 는 또한 저항성 감지 터치스크린, 용량성 감지 터치스크린 적외선 감지 터치스크린 등과 같은 터치스크린 디스플레이 (820) 에 커플링될 수도 있다. 부가적으로, 스마트 워치 (800) 는, 프로세서 (802) 에 커플링될 수도 있는, 하나 이상의 무선 데이터 링크 (812), 예컨대 하나 이상의 Bluetooth® 트랜시버, Peanut 트랜시버, Wi-Fi 트랜시버, ANT+ 트랜시버 등에 연결될 수도 있는 전자기 방사를 전송 및 수신하기 위한 하나 이상의 안테나 (808) 를 가질 수도 있다. 스마트 워치 (800) 는 또한 사용자 입력들을 수신하기 위한 물리적 가상 버튼들 (822 및 810) 뿐만 아니라 사용자 입력들을 수신하기 위한 슬라이드 센서 (816) 를 포함할 수도 있다.
터치스크린 디스플레이 (820) 는 사용자의 손끝 또는 스타일러스가 표면을 터치하고 있는 스크린 상의 위치들을 나타내는 신호들을 터치스크린 디스플레이 (820) 로부터 수신하고 터치 이벤트들의 좌표들에 관한 정보를 프로세서 (802) 에 출력하도록 구성되는 터치스크린 인터페이스 모듈에 커플링될 수도 있다. 또한, 프로세서 (802) 는 사용자가 가상 버튼과 같은 그래픽 인터페이스 아이콘과 상호작용했을 때를 검출하기 위해 터치스크린 인터페이스 모듈로부터 수신된 터치 이벤트들의 위치와 터치스크린 디스플레이 (820) 상에 제시된 이미지들을 상관시키기 위한 프로세서 실행가능 명령들로 구성될 수도 있다.
프로세서 (802) 는 다양한 실시형태들의 기능들을 포함하여, 다양한 기능들을 수행하기 위해 소프트웨어 명령들 (애플리케이션들) 에 의해 구성될 수 있는 임의의 프로그램가능 마이크로프로세서, 마이크로컴퓨터 또는 다중 프로세서 칩 또는 칩들일 수도 있다. 일부 디바이스들에서, 무선 통신 기능들에 전용된 하나의 프로세서 및 다른 애플리케이션들을 실행하는 것에 전용된 하나의 프로세서와 같은 다중 프로세서들이 제공될 수도 있다. 통상적으로, 소프트웨어 애플리케이션들은 프로세서 (802) 에 액세스 및 로딩되기 전에 내부 메모리에 저장될 수도 있다. 프로세서 (802) 는 애플리케이션 소프트웨어 명령들을 저장하기에 충분한 내부 메모리를 포함할 수도 있다. 많은 디바이스들에서, 내부 메모리는 플래시 메모리와 같은 휘발성 또는 비휘발성 메모리, 또는 이들의 조합일 수도 있다. 이 설명의 목적들을 위해, 메모리에 대한 일반적인 참조는 모바일 디바이스에 플러깅된 내부 메모리 또는 탈착가능 메모리 및 프로세서 (802) 자체 내의 메모리를 포함하는 프로세서 (802) 에 의해 액세스가능한 메모리를 지칭한다.
구현 예들이 다음의 단락들에서 기술된다. 예시적인 방법들의 관점에서 설명된 구현 예들은, 예시적인 방법들의 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성된 회로 및 프로세서들에서 구현되는 예시적인 방법들; 방법들의 기능들을 수행하기 위한 수단에서 구현되는 예시적인 방법들; 및 프로세서로 하여금 예시적인 방법들의 동작들을 수행하게 하도록 구성된 프로세서 실행가능 명령들이 저장된 비일시적 프로세서 판독가능 저장 매체에서 구현되는 예시적인 방법들을 더 포함한다.
예 1. 시스템-온-칩(SoC)으로서, 암호화 키를 저장하고, 암호화 키를 사용하여 암호화 기능을 수행하기 위한 하나 이상의 조건과 관련된 입력을 감지 회로로부터 수신하고; 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는 수신된 입력에 응답하여 암호화 기능을 수행하도록 구성된 보안 서브시스템을 포함하는, SoC.
예 2. 예 1 에 있어서, 암호화 기능을 수행하기 위한 하나 이상의 조건과 관련된 조건을 감지하도록 구성된 감지 회로를 더 포함하고, 보안 서브시스템은 감지 회로로부터 입력을 수신하는, SoC.
예 3. 예 1 내지 예 2 중 어느 것에 있어서, 보안 서브시스템은 SoC 와 별개인 감지 회로로부터 입력을 수신하는, SoC.
예 4. 예 1 내지 예 3 중 어느 것에 있어서, 상기 보안 서브시스템은: 서비스 요청 환경으로부터 상기 암호화 기능에 대한 요청을 수신하고; 상기 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는 상기 수신된 입력에 응답하여 상기 요청된 암호화 기능을 수행하도록 추가로 구성되는, SoC.
예 5. 예 4 에 있어서, 상기 보안 서브시스템은 상기 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는 상기 수신된 입력에 응답하여 상기 요청된 암호화 기능을 수행하기 위해 상기 암호화 기능에 대응하는 상기 암호화 키의 사용을 승인하도록 추가로 구성되는, SoC.
예 6. 예 1 내지 예 5 중 어느 것에 있어서, 보안 서브시스템은 서비스 요청 환경으로부터 독립적인 통신 경로를 따라 감지 회로로부터 입력을 수신하도록 구성되는, SoC.
예 7. 예 1 내지 예 6 중 어느 것에 있어서, 입력은 암호화 기능을 수행하기 위한 조건이 충족되는지 여부를 나타내는 Boolean 값을 포함하는, SoC.
예 8. 예 1 내지 예 7 중 어느 것에 있어서, 입력은 동작 센서 정보를 포함하고, 보안 서브시스템은 감지 회로로부터 입력을 연속적으로 수신하도록 구성되는, SoC.
예 9. 예 1 내지 예 8 중 어느 것에 있어서, 보안 서브시스템은: 암호화 키를 저장하고, 서비스 요청 환경으로부터 암호화 기능을 수행하기 위한 요청을 수신하도록 구성된 보안 처리 유닛(SPU); 또는 감지 회로로부터 입력을 수신하고; 서비스 요청 환경으로부터 암호화 기능을 수행하기 위한 요청을 수신하도록 구성된 SoC 신뢰 루트(RoT) 중 하나 또는 둘 모두를 포함하는, SoC.
예 10. 예 1 내지 예 9 중 어느 것에 있어서, 암호화 기능을 수행하기 위한 조건은 사람이 디바이스를 물리적으로 동작시키기 위한 근접 범위 내에 있는지 여부를 포함하고, 입력은 SoC를 포함하는 디바이스에 대한 근접 범위 내의 사람의 물리적 존재의 표시를 포함하는, SoC.
예 11. 예 1 내지 예 10 중 어느 것에 있어서, 암호화 기능을 수행하기 위한 조건은 사용자 물리적 특성들이 인가된 사용자 물리적 특성들과 일치하는지 여부를 포함하고, 입력은 SoC를 포함하는 디바이스의 사용자의 현재 사용자 물리적 특성들의 표시를 포함하는, SoC.
예 12. 예 1 내지 예 11 중 어느 것에 있어서, 암호화 기능을 수행하기 위한 조건은 디바이스 배향이 허용가능한 임계치들 내에 있는지 여부를 포함하고, 입력은 SoC를 포함하는 디바이스의 디바이스 배향의 표시를 포함하는, SoC.
예 13. 예 1 내지 예 12 중 어느 것에 있어서, 암호화 기능을 수행하기 위한 조건은 디바이스 위치가 인가된 위치에 있는지 여부를 포함하고, 입력은 SoC를 포함하는 디바이스의 디바이스 위치의 표시를 포함하는, SoC.
예 14. 예 1 내지 예 13 중 어느 것에 있어서, 암호화 기능을 수행하기 위한 조건은 근접 디바이스가 인가 디바이스인지 여부를 포함하고, 입력은 SoC를 포함하는 디바이스에 연결할 수 있는 근접 디바이스의 표시를 포함하는, SoC.
예 15. 예 1 내지 예 14 중 어느 것에 있어서, 암호화 기능을 수행하기 위한 조건은 통신 네트워크가 인가된 통신 네트워크와 일치하는지 여부를 포함하고, 입력은 SoC를 포함하는 디바이스에 의해 검출된 통신 네트워크의 표시를 포함하는, SoC.
예 16. 시스템-온-칩(SoC)에서 보안을 제공하기 위한 방법으로서, 보안 서브시스템에 의해 서비스 요청 환경으로부터, 암호화 기능을 수행하기 위한 요청을 수신하는 단계 - 상기 보안 서브시스템은 요청된 암호화 기능을 수행하기 위한 조건을 저장함 -; 상기 보안 서브시스템에 의해, 상기 요청된 암호화 기능을 수행하기 위한 조건과 관련된 적어도 하나의 표시를 포함하는 입력을 감지 회로로부터 수신하는 단계; 상기 보안 서브시스템에 의해, 상기 입력이 상기 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하는 단계; 및 상기 조건이 충족된다는 결정에 응답하여 상기 보안 서브시스템에 저장된 암호화 키를 사용하여 상기 요청된 암호화 기능을 수행하는 단계를 포함하는, 방법.
예 17. 예 16 에 있어서, 감지 회로로부터 입력을 수신하는 단계는 보안 서브시스템이 서비스 요청 환경으로부터 독립적인 통신 경로를 따라 감지 회로로부터 입력을 수신하는 것을 포함하는, 방법.
예 18. 예 16 내지 예 17 중 어느 것에 있어서, 감지 회로로부터 입력을 수신하는 단계는 요청된 암호화 기능을 수행하기 위한 조건이 충족되는지 여부를 나타내는 Boolean 값을 수신하는 것을 포함하는, 방법.
예 19. 예 16 내지 예 18 중 어느 것에 있어서, 입력이 센서 정보를 동작시키고 있고, 감지 회로로부터 입력을 수신하는 단계는 보안 서브시스템이 감지 회로로부터 입력을 연속적으로 수신하는 것을 포함하는, 방법.
예 20. 예 16 내지 예 19 중 어느 것에 있어서, 조건이 만족된다는 결정에 응답하여 요청된 암호화 기능을 수행하는 단계는 조건이 만족된다는 결정에 응답하여 보안 처리 유닛(SPU) 또는 SoC 신뢰 루트(RoT) 중 하나에 의해 암호화 기능을 수행하는 것을 포함하는, 방법.
예 21. 예 16 내지 예 20 중 어느 것에 있어서, 암호화 기능을 수행하기 위한 조건은 사람이 디바이스를 물리적으로 동작시키기 위한 근접 범위 내에 있는지 여부를 포함하고; 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 입력이 나타내는지 여부를 결정하는 단계는 입력이 SoC를 포함하는 디바이스에 대한 근접 범위 내의 사람의 물리적 존재의 표시를 포함하는지 여부를 결정하는 것을 포함하는, 방법.
예 22. 예 16 내지 예 21 중 어느 것에 있어서, 암호화 기능을 수행하기 위한 조건은 사용자 물리적 특성들이 인가된 사용자 물리적 특성들과 일치하는지 여부를 포함하고; 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 입력이 나타내는지 여부를 결정하는 단계는 입력이 SoC를 포함하는 디바이스의 사용자의 현재 사용자 물리적 특성들의 표시를 포함하는지 여부를 결정하는 것을 포함하는, 방법.
예 23. 예 16 내지 예 22 중 어느 것에 있어서, 암호화 기능을 수행하기 위한 조건은 디바이스 배향이 허용가능한 임계치들 내에 있는지 여부를 포함하고; 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 입력이 나타내는지 여부를 결정하는 단계는 입력이 SoC를 포함하는 디바이스의 디바이스 배향의 표시를 포함하는지 여부를 결정하는 것을 포함하는, 방법.
예 24. 예 16 내지 예 23 중 어느 것에 있어서, 암호화 기능을 수행하기 위한 조건은 디바이스 위치가 인가된 위치에 있는지 여부를 포함하고; 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 입력이 나타내는지 여부를 결정하는 단계는 입력이 SoC를 포함하는 디바이스의 디바이스 위치의 표시를 포함하는지 여부를 결정하는 것을 포함하는, 방법.
예 25. 예 16 내지 예 24 중 어느 것에 있어서, 암호화 기능을 수행하기 위한 조건은 근접 디바이스가 인가 디바이스인지 여부를 포함하고; 및 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 입력이 나타내는지 여부를 결정하는 단계는 입력이 SoC를 포함하는 디바이스에 연결할 수 있는 근접 디바이스의 표시를 포함하는지 여부를 결정하는 것을 포함하는, 방법.
예 26. 예 16 내지 예 25 중 어느 것에 있어서, 암호화 기능을 수행하기 위한 조건은 통신 네트워크가 인가된 통신 네트워크와 일치하는지 여부를 포함하고; 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 입력이 나타내는지 여부를 결정하는 단계는, 입력이 SoC를 포함하는 디바이스에 의해 검출된 통신 네트워크의 표시를 포함하는지 여부를 결정하는 것을 포함하는, 방법.
다양한 실시형태들의 동작들을 실행하기 위한 프로그래밍가능 프로세서 상에서의 실행을 위한 컴퓨터 프로그램 코드 또는 "프로그램 코드" 는 C, C++, C#, Smalltalk, Java, JavaScript, Visual Basic, 구조화된 쿼리 언어 (예를 들어, Transact-SQL), Perl과 같은 하이 - 레벨 프로그래밍 언어로, 또는 다양한 다른 프로그래밍 언어들로 기입될 수도 있다. 본 출원에서 사용된 바와 같은 컴퓨터 판독 가능 저장 매체 상에 저장된 프로그램 코드 또는 프로그램들은 그 형식이 프로세서에 의해 이해 가능한 기계 언어 코드 (예를 들어, 오브젝트 코드) 를 지칭할 수도 있다.
예시되고 설명된 다양한 실시예들은 단지 청구항들의 다양한 특징들을 예시하기 위한 예들로서 제공된다. 하지만, 임의의 주어진 실시예에 대해 도시되고 설명된 특징들은 반드시 연관된 실시예로 제한될 필요는 없으며, 도시되고 설명된 다른 실시예들과 사용 또는 결합될 수도 있다. 추가로, 청구항들은 어느 하나의 예시적인 실시예에 의해 제한되도록 의도되지 않는다.
전술한 방법 설명들 및 프로세스 플로우 다이어그램들은 예시적인 예들로서 오직 제공되고 다양한 실시형태들의 블록들이 제시된 순서로 수행되어야 함을 요구 또는 암시하도록 의도되지 않는다. 당업자가 알 바와 같이, 전술한 실시형태들에서의 블록들의 순서는 임의의 순서로 수행될 수도 있다. "그 이후", "그 후", "다음" 등과 같은 단어들은 블록들의 순서를 한정하도록 의도되지 않고; 이들 단어들은 방법들의 설명을 통해 독자를 안내하는데 단순히 사용된다. 또한, 예를 들어, 관사들 "a", "an" 또는 "the" 를 사용한, 단수로의 청구항 엘리먼트들에 대한 임의의 언급은 엘리먼트를 단수로 제한하는 것으로 해석되어서는 안된다.
본 명세서에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 블록들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합들로서 구현될 수도 있다. 하드웨어와 소프트웨어의 이 상호교환가능성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 블록들은 그들의 기능성의 관점에서 일반적으로 상기 설명되었다. 그러한 기능성이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지는 전체 시스템에 부과된 설계 제약들 및 특정 애플리케이션에 의존한다. 당업자는 각각의 특정 애플리케이션에 대해 다양한 방식들로 설명된 기능성을 구현할 수도 있지만, 그러한 실시형태 결정들은 다양한 실시형태들의 범위로부터의 일탈을 야기하는 것으로서 해석되지 않아야 한다.
본 명세서에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 로직들, 논리 블록들, 모듈들, 및 회로들을 구현하는데 사용되는 하드웨어는 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래밍가능 게이트 어레이 (FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에서 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합으로 구현 또는 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한, 통신 디바이스들의 조합, 예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로서 구현될 수도 있다. 대안적으로, 일부 블록들 또는 방법들은 주어진 기능에 특정한 회로부에 의해 수행될 수도 있다.
다양한 실시형태들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합에서 구현될 수도 있다. 소프트웨어에서 구현되면, 기능들은 비일시적 컴퓨터 판독가능 매체 또는 비일시적 프로세서 판독가능 매체 상에 하나 이상의 명령들 또는 코드로서 저장될 수도 있다. 본 명세서에서 개시된 방법 또는 알고리즘의 동작들은 비일시적 컴퓨터 판독가능 또는 프로세서 판독가능 저장 매체 상에 상주할 수도 있는 프로세서 실행가능 소프트웨어 모듈에서 구현될 수도 있다. 비일시적 컴퓨터 판독가능 또는 프로세서 판독가능 저장 매체들은 컴퓨터 또는 프로세서에 의해 액세스될 수도 있는 임의의 저장 매체들일 수도 있다. 한정이 아닌 예시로서, 그러한 비일시적 컴퓨터 판독가능 또는 프로세서 판독가능 저장 매체들은 RAM, ROM, EEPROM, 플래시 메모리, CD-ROM 또는 다른 광학 디스크 저장, 자기 디스크 저장 또는 다른 자기 저장 디바이스들, 또는 원하는 프로그램 코드를 명령들 또는 데이터 구조들의 형태로 저장하는데 이용될 수도 있고 컴퓨터에 의해 액세스될 수도 있는 임의의 다른 매체를 포함할 수도 있다. 본 명세서에서 사용된 바와 같은 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (CD), 레이저 디스크, 광학 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루레이 디스크를 포함하며, 여기서, 디스크 (disk) 는 통상적으로 데이터를 자기적으로 재생하지만 디스크 (disc) 는 레이저를 이용하여 데이터를 광학적으로 재생한다. 상기의 조합들이 또한, 비일시적 컴퓨터 판독가능 및 프로세서 판독가능 매체들의 범위 내에 포함된다. 부가적으로, 방법 또는 알고리즘의 동작들은, 코드들 및/또는 명령들 중 하나 또는 그 임의의 조합 또는 그 세트로서 비일시적 프로세서 판독가능 매체 및/또는 컴퓨터 판독가능 매체 상에 상주할 수도 있으며, 이들은 컴퓨터 프로그램 제품에 통합될 수도 있다.
개시된 실시형태들의 상기 설명은 당업자로 하여금 본 실시형태들을 제조 또는 이용하게 할 수 있도록 제공된다. 이들 실시형태들에 대한 다양한 수정들은 당업자에게 용이하게 자명할 것이며, 본 명세서에서 정의된 일반적 원리들은 실시형태들의 범위로부터 일탈함없이 다른 실시형태들에 적용될 수도 있다. 따라서, 다양한 실시형태들은 본 명세서에 나타낸 실시형태들로 한정되도록 의도되지 않으며, 다음의 청구항들 그리고 본 명세서에 개시된 원리들 및 신규한 특징들과 부합하는 최광의 범위를 부여받아야 한다.

Claims (30)

  1. 시스템-온-칩 (SoC) 으로서,
    암호화 키를 저장하고,
    상기 암호화 키를 사용하여 암호화 기능을 수행하기 위한 하나 이상의 조건들과 관련된 입력을 감지 회로로부터 수신하고; 그리고
    상기 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는 수신된 입력에 응답하여 암호화 기능을 수행하도록
    구성된 보안 서브시스템을 포함하는, SoC.
  2. 제 1 항에 있어서, 상기 암호화 기능을 수행하기 위한 하나 이상의 조건들과 관련된 조건을 감지하도록 구성된 감지 회로를 더 포함하고, 상기 보안 서브시스템은 상기 감지 회로로부터 상기 입력을 수신하는, SoC.
  3. 제 1 항에 있어서, 상기 보안 서브시스템은 상기 SoC 와 별개인 감지 회로로부터 상기 입력을 수신하는, SoC.
  4. 제 1 항에 있어서, 상기 보안 서브시스템은 추가로,
    서비스 요청 환경으로부터 상기 암호화 기능에 대한 요청을 수신하고; 그리고
    요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는 수신된 입력에 응답하여 상기 요청된 암호화 기능을 수행하도록 구성되는, SoC.
  5. 제 4 항에 있어서, 상기 보안 서브시스템은 상기 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는 상기 수신된 입력에 응답하여 상기 요청된 암호화 기능을 수행하기 위해 상기 암호화 기능에 대응하는 상기 암호화 키의 사용을 승인하도록 추가로 구성되는, SoC.
  6. 제 1 항에 있어서, 상기 보안 서브시스템은 서비스 요청 환경과는 독립적인 통신 경로를 따라 상기 감지 회로로부터 상기 입력을 수신하도록 구성되는, SoC.
  7. 제 1 항에 있어서, 상기 입력은, 상기 암호화 기능을 수행하기 위한 조건이 만족되는지 여부를 나타내는 Boolean 값을 포함하는, SoC.
  8. 제 1 항에 있어서, 상기 입력은 센서 정보를 동작시키는 것을 포함하고, 상기 보안 서브시스템은 상기 감지 회로로부터 상기 입력을 연속적으로 수신하도록 구성되는, SoC.
  9. 제 1 항에 있어서, 상기 보안 서브시스템은 다음 중 일방 또는 양방을 포함하는, SoC:
    상기 암호화 키를 저장하고, 서비스 요청 환경으로부터 상기 암호화 기능을 수행하기 위한 요청을 수신하도록 구성된 보안 처리 유닛 (SPU); 또는
    감지 회로로부터 입력을 수신하고; 상기 서비스 요청 환경으로부터 상기 암호화 기능을 수행하기 위한 요청을 수신하도록 구성된 SoC 신뢰 루트 (root-of-trust: RoT).
  10. 제 1 항에 있어서, 상기 암호화 기능을 수행하기 위한 조건은 사람이 디바이스를 물리적으로 동작시키기 위한 근접 범위 내에 있는지 여부이고, 상기 입력은 상기 SoC 를 포함하는 상기 디바이스에 대한 상기 근접 범위 내의 사람의 물리적 존재의 표시를 포함하는, SoC.
  11. 제 1 항에 있어서, 상기 암호화 기능을 수행하기 위한 조건은 사용자 물리적 특성들이 승인된 사용자 물리적 특성들과 매칭하는지 여부이고, 상기 입력은 상기 SoC 를 포함하는 디바이스의 사용자의 현재 사용자 물리적 특성들의 표시를 포함하는, SoC.
  12. 제 1 항에 있어서, 상기 암호화 기능을 수행하기 위한 조건은 디바이스 배향이 허용가능한 임계치들 내에 있는지 여부이고, 상기 입력은 상기 SoC 를 포함하는 디바이스의 상기 디바이스 배향의 표시를 포함하는, SoC.
  13. 제 1 항에 있어서, 상기 암호화 기능을 수행하기 위한 조건은 디바이스 위치가 승인된 위치에 있는지 여부이고, 상기 입력은 상기 SoC 를 포함하는 디바이스의 상기 디바이스 위치의 표시를 포함하는, SoC.
  14. 제 1 항에 있어서, 상기 암호화 기능을 수행하기 위한 조건은 근접 디바이스가 승인 디바이스인지 여부이고, 상기 입력은 상기 SoC 를 포함하는 디바이스에 연결할 수 있는 상기 근접 디바이스의 표시를 포함하는, SoC.
  15. 제 1 항에 있어서, 상기 암호화 기능을 수행하기 위한 조건은 통신 네트워크가 승인된 통신 네트워크와 일치하는지 여부이고, 상기 입력은 상기 SoC 를 포함하는 디바이스에 의해 검출된 상기 통신 네트워크의 표시를 포함하는, SoC.
  16. 시스템-온-칩 (SoC) 에서 보안을 제공하기 위한 방법으로서,
    보안 서브시스템에 의해 서비스 요청 환경으로부터, 암호화 기능을 수행하기 위한 요청을 수신하는 단계로서, 상기 보안 서브시스템은 요청된 암호화 기능을 수행하기 위한 조건을 저장하는, 상기 요청을 수신하는 단계;
    상기 보안 서브시스템에 의해, 상기 요청된 암호화 기능을 수행하기 위한 조건과 관련된 적어도 하나의 표시를 포함하는 입력을 감지 회로로부터 수신하는 단계;
    상기 보안 서브시스템에 의해, 상기 입력이 상기 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하는 단계; 및
    상기 조건이 만족된다는 결정에 응답하여 상기 보안 서브시스템에 저장된 암호화 키를 사용하여 상기 요청된 암호화 기능을 수행하는 단계를 포함하는, SoC 에서 보안을 제공하기 위한 방법.
  17. 제 16 항에 있어서, 상기 입력을 감지 회로로부터 수신하는 단계는, 상기 보안 서브시스템이 상기 서비스 요청 환경과는 독립적인 통신 경로를 따라 상기 감지 회로로부터 상기 입력을 수신하는 것을 포함하는, SoC 에서 보안을 제공하기 위한 방법.
  18. 제 16 항에 있어서, 상기 입력을 감지 회로로부터 수신하는 단계는, 상기 요청된 암호화 기능을 수행하기 위한 조건이 충족되는지 여부를 나타내는 Boolean 값을 수신하는 것을 포함하는, SoC 에서 보안을 제공하기 위한 방법.
  19. 제 16 항에 있어서, 상기 입력은 센서 정보를 동작시키는 것이고, 상기 입력을 감지 회로로부터 수신하는 단계는 상기 보안 서브시스템이 상기 감지 회로로부터 상기 입력을 연속적으로 수신하는 것을 포함하는, SoC 에서 보안을 제공하기 위한 방법.
  20. 제 16 항에 있어서, 상기 조건이 만족된다는 결정에 응답하여 상기 요청된 암호화 기능을 수행하는 단계는, 상기 조건이 만족된다는 결정에 응답하여 보안 처리 유닛 (SPU) 또는 SoC 신뢰 루트 (RoT) 중 하나에 의해 상기 암호화 기능을 수행하는 것을 포함하는, SoC 에서 보안을 제공하기 위한 방법.
  21. 제 16 항에 있어서,
    상기 암호 기능을 수행하기 위한 조건은 사람이 디바이스를 물리적으로 동작시키기 위한 근접 범위 내에 있는지 여부이고;
    상기 입력이 상기 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하는 단계는 상기 입력이 SoC 를 포함하는 디바이스에 대한 근접 범위 내의 사람의 물리적 존재의 표시를 포함하는지 여부를 결정하는 것을 포함하는, SoC 에서 보안을 제공하기 위한 방법.
  22. 제 16 항에 있어서,
    상기 암호화 기능을 수행하기 위한 조건은 사용자 물리적 특성이 승인된 사용자 물리적 특성과 일치하는지 여부이고;
    상기 입력이 상기 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하는 단계는 상기 입력이 SoC 를 포함하는 디바이스의 사용자의 현재 사용자 물리적 특성들의 표시를 포함하는지 여부를 결정하는 것을 포함하는, SoC 에서 보안을 제공하기 위한 방법.
  23. 제 16 항에 있어서,
    상기 암호화 기능을 수행하기 위한 조건은 디바이스 배향이 허용가능한 임계치들 내에 있는지 여부이고;
    상기 입력이 상기 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하는 단계는 상기 입력이 SoC 를 포함하는 디바이스의 디바이스 배향의 표시를 포함하는지 여부를 결정하는 것을 포함하는, SoC 에서 보안을 제공하기 위한 방법.
  24. 제 16 항에 있어서,
    상기 암호화 기능을 수행하기 위한 조건은 디바이스 위치가 승인된 위치에 있는지 여부이고;
    상기 입력이 상기 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하는 단계는 상기 입력이 SoC 를 포함하는 디바이스의 디바이스 위치의 표시를 포함하는지 여부를 결정하는 것을 포함하는, SoC 에서 보안을 제공하기 위한 방법.
  25. 제 16 항에 있어서,
    상기 암호화 기능을 수행하기 위한 조건은 근접 디바이스가 승인 디바이스인지 여부이고;
    상기 입력이 상기 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하는 단계는 상기 입력이 SoC 를 포함하는 디바이스에 연결할 수 있는 근접 디바이스의 표시를 포함하는지 여부를 결정하는 것을 포함하는, SoC 에서 보안을 제공하기 위한 방법.
  26. 제 16 항에 있어서,
    상기 암호화 기능을 수행하기 위한 조건은 통신 네트워크가 승인된 통신 네크워크와 일치하는지 여부이고;
    상기 입력이 상기 요청된 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하는 단계는 상기 입력이 SoC 를 포함하는 디바이스에 의해 검출된 통신 네트워크의 표시를 포함하는지 여부를 결정하는 것을 포함하는, SoC 에서 보안을 제공하기 위한 방법.
  27. 시스템-온-칩 (SoC) 으로서,
    암호화 키 및 암호화 기능을 수행하기 위한 조건을 저장하는 보안 서브시스템을 포함하고, 상기 보안 서브시스템은
    상기 암호화 기능을 수행하기 위한 요청을 수신하기 위한 수단;
    상기 암호화 기능을 수행하기 위한 적어도 하나의 조건과 관련된 적어도 하나의 표시를 포함하는 입력을 감지 회로로부터 수신하기 위한 수단;
    상기 입력이 상기 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하기 위한 수단; 및
    상기 조건이 만족된다는 결정에 응답하여 상기 암호화 기능을 수행하기 위한 수단을 포함하는, SoC.
  28. 제 27 항에 있어서, 상기 입력을 감지 회로로부터 수신하기 위한 수단은,
    서비스 요청 환경으로부터 독립적인 통신 경로를 따라 상기 감지 회로로부터 입력을 수신하기 위한 수단을 추가로 포함하는, SoC.
  29. 제 27 항에 있어서, 상기 입력을 감지 회로로부터 수신하기 위한 수단은 동작 감지 회로로부터 상기 입력을 연속적으로 수신하기 위한 수단을 포함하는, SoC.
  30. 집적 회로의 보안 서브시스템 내의 프로세서로 하여금 다음을 포함하는 동작들을 수행하도록 구성된 프로세서 실행가능 명령을 저장하는 비일시적 프로세서 판독가능 저장 매체:
    서비스 요청 환경으로부터 암호화 기능을 수행하기 위한 요청을 수신하는 것;
    상기 암호화 기능을 수행하기 위한 조건과 관련된 적어도 하나의 표시를 포함하는 입력을 감지 회로로부터 수신하는 것;
    상기 입력이 상기 암호화 기능을 수행하기 위한 조건이 충족됨을 나타내는지 여부를 결정하는 것; 그리고
    상기 조건이 만족된다는 결정에 응답하여 상기 암호화 기능을 수행하는 것.
KR1020247006666A 2021-09-08 2022-06-30 신뢰 수준 향상을 위한 센서 정보를 이용하는 장치 및 방법 KR20240064635A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/468,912 US20230074708A1 (en) 2021-09-08 2021-09-08 Devices and methods utilizing sensor information for increased trust level
US17/468,912 2021-09-08
PCT/US2022/035638 WO2023038691A1 (en) 2021-09-08 2022-06-30 Devices and methods utilizing sensor information for increased trust level

Publications (1)

Publication Number Publication Date
KR20240064635A true KR20240064635A (ko) 2024-05-13

Family

ID=82702845

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247006666A KR20240064635A (ko) 2021-09-08 2022-06-30 신뢰 수준 향상을 위한 센서 정보를 이용하는 장치 및 방법

Country Status (5)

Country Link
US (1) US20230074708A1 (ko)
KR (1) KR20240064635A (ko)
CN (1) CN117916737A (ko)
TW (1) TW202314550A (ko)
WO (1) WO2023038691A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11768963B2 (en) * 2021-01-22 2023-09-26 Nxp Usa, Inc. System and method for validating trust provisioning operation on system-on-chip
US20230177136A1 (en) * 2021-12-08 2023-06-08 Qualcomm Incorporated Auto-pairing rotation vector

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10079677B2 (en) * 2015-06-05 2018-09-18 Apple Inc. Secure circuit for encryption key generation
US9864879B2 (en) * 2015-10-06 2018-01-09 Micron Technology, Inc. Secure subsystem
US10740494B2 (en) * 2017-09-06 2020-08-11 Google Llc Central and delegate security processors for a computing device
KR102185854B1 (ko) * 2017-09-09 2020-12-02 애플 인크. 생체측정 인증의 구현
US10984120B2 (en) * 2018-05-10 2021-04-20 Paypal, Inc. Limiting device functionality based on data detection and processing
US11494497B2 (en) * 2018-06-28 2022-11-08 Taiwan Semiconductor Manufacturing Company Ltd. System and device for data protection and method thereof
US20200082088A1 (en) * 2018-09-11 2020-03-12 Qualcomm Incorporated User/Enterprise Data Protection Preventing Non-Authorized Firmware Modification

Also Published As

Publication number Publication date
WO2023038691A1 (en) 2023-03-16
CN117916737A (zh) 2024-04-19
US20230074708A1 (en) 2023-03-09
TW202314550A (zh) 2023-04-01

Similar Documents

Publication Publication Date Title
CN110741370B (zh) 利用用户输入的生物识别认证
US20200274898A1 (en) Method And Device For Defending Against Denial Of Service Attacks
EP3332372B1 (en) Apparatus and method for trusted execution environment based secure payment transactions
CN106605233B (zh) 使用处理器提供可信执行环境
US10726120B2 (en) System, apparatus and method for providing locality assertion between a security processor and an enclave
EP3050335B1 (en) Systems and methods for nfc access control in a secure element centric nfc architecture
US8190908B2 (en) Secure data verification via biometric input
EP2972785B1 (en) A method, apparatus, system for qualifying cpu transactions with security attributes
CN108664780B (zh) 允许基于不同级别的解锁机制的各种设备访问
EP3274850B1 (en) Protecting a memory
US9582656B2 (en) Systems for validating hardware devices
KR20240064635A (ko) 신뢰 수준 향상을 위한 센서 정보를 이용하는 장치 및 방법
US20160366136A1 (en) System, apparatus and method for stateful application of control data in a device
US9639685B2 (en) Authentication of gesture input through RFID scans
JP2016509732A (ja) ホスト中央処理装置及びホスト・オペレーティング・システムからの干渉及びホスト中央処理装置及びホスト・オペレーティング・システムによる制御から切り離されたユーザ認可及びユーザ存在検出
US20230129610A1 (en) Multiple physical request interfaces for security processors
KR20230042455A (ko) 인-메모리 디바이스 액세스 제어를 위한 방법들 및 장치
US9331855B2 (en) Apparatus, system, and method for providing attribute identity control associated with a processor
US20180288052A1 (en) Trusted remote configuration and operation
WO2018045917A1 (zh) 一种授权系统、方法及卡片
Kokila et al. Enhanced authentication using hybrid PUF with FSM for protecting IPs of SoC FPGAs
EP3044721B1 (en) Automatic pairing of io devices with hardware secure elements
US20170187752A1 (en) Remote attestation and enforcement of hardware security policy
KR102028670B1 (ko) 클락 윌슨 모델을 적용한 모바일 장치 및 그것의 동작 방법