KR20190133208A - 보안 메모리 장치 - Google Patents

보안 메모리 장치 Download PDF

Info

Publication number
KR20190133208A
KR20190133208A KR1020197031517A KR20197031517A KR20190133208A KR 20190133208 A KR20190133208 A KR 20190133208A KR 1020197031517 A KR1020197031517 A KR 1020197031517A KR 20197031517 A KR20197031517 A KR 20197031517A KR 20190133208 A KR20190133208 A KR 20190133208A
Authority
KR
South Korea
Prior art keywords
system controller
gateway device
symmetric
message
access data
Prior art date
Application number
KR1020197031517A
Other languages
English (en)
Other versions
KR102390810B1 (ko
Inventor
렌스 더블유. 도버
Original Assignee
마이크론 테크놀로지, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크론 테크놀로지, 인크. filed Critical 마이크론 테크놀로지, 인크.
Publication of KR20190133208A publication Critical patent/KR20190133208A/ko
Application granted granted Critical
Publication of KR102390810B1 publication Critical patent/KR102390810B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/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/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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]
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • 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/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/76Proxy, i.e. using intermediary entity to perform cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 보안 메모리 배열 및 이를 사용하는 방법에 관한 것이다. 보안 컴퓨팅 시스템의 게이트웨이 디바이스는 외부 시스템으로부터 제 1 메시지를 수신할 수 있다. 제 1 메시지는 제 1 메시지 페이로드 데이터 및 제 1 비대칭 액세스 데이터를 포함할 수 있다. 게이트웨이 디바이스는 제 1 비대칭 액세스 데이터가 외부 시스템 공개 키에 적어도 부분적으로 기초하여 제 1 메시지 페이로드 데이터와 일치하는 것을 결정할 수 있다. 게이트웨이 디바이스는 게이트웨이 디바이스와 통신하는 제 1 시스템 컨트롤러와 연관된 제 1 시스템 컨트롤러 대칭 키에 액세스하고, 제 1 시스템 컨트롤러 대칭 키 및 제 1 메시지 페이로드 데이터에 적어도 부분적으로 기초하여 제 1 대칭 액세스 데이터를 생성할 수 있다. 게이트웨이 디바이스는 제 1 메시지 페이로드 데이터 및 제 1 대칭 액세스 데이터를 제 1 시스템 컨트롤러로 전송할 수 있다.

Description

보안 메모리 배열
우선권 출원
본 출원은 2017년 3월 24일에 출원된 미국 가특허출원 제 62/476,598 호의 우선권을 주장하여 2017년 8월 31일에 출원된 미국 특허출원 제 15/692,802 호의 우선권을 주장하며, 그의 전문은 본 명세서에서 참고로 인용된다.
기술 분야
본원에서 기술되는 예들은 일반적으로 허가되지 않은 액세스(unauthorized access)로부터 컴퓨팅 시스템 메모리를 보안하기 위한 시스템 및 방법에 관한 것이다.
프로세싱 시스템에 대한 일반적인 공격 형태는 시스템의 메모리 디바이스에 악성 코드를 설치하는 것이다. 이어서, 프로세싱 시스템에서 악성 코드가 실행된다. 악성 코드가 실행되었을 때, 악성 코드는 데이터 도난, 프로세싱 시스템의 허가되지 않은 제어, 및 기타 다른 부정적인 결과를 초래할 수 있다.
반드시 축척되어 도시되지 않은 도면에서, 유사한 도면 부호는 상이한 도면에서 유사한 컴포넌트를 기술할 수 있다. 상이한 문자 접미사를 갖는 유사한 도면 부호는 상이한 경우의 유사한 컴포넌트를 나타낼 수 있다. 일부 예는 첨부 도면의 도면에 대한 일례로써 예시된 것이지만, 이로 제한되지 않는다:
도 1은 보안 컴퓨팅 시스템을 구현하기 위한 환경의 일례를 나타내는 다이어그램이다.
도 2는 게이트웨이 디바이스 및 시스템 컨트롤러의 추가적인 세부사항을 포함하는 보안 컴퓨팅 시스템의 일부를 나타내는 다이어그램이다.
도 3은 착신 메시지(incoming message)를 프로세싱하기 위하여 외부 시스템, 게이트웨이 디바이스, 및 도 1의 시스템 컨트롤러에 의해 실행될 수 있는 프로세스 플로우의 일례를 나타내는 흐름도이다.
도 4는 발신 메시지(outgoing message)를 프로세싱하기 위하여 외부 시스템, 게이트웨이 디바이스, 및 도 1의 시스템 컨트롤러에 의해 실행될 수 있는 프로세스 플로우의 일례를 나타내는 흐름도이다.
도 5는 하나 이상의 디바이스의 일부로서 메모리 배열을 가진 예시적인 프로세싱 시스템을 도시한다.
도 6은 컴퓨팅 디바이스를 위한 소프트웨어 아키텍처의 일례를 나타내는 블록도이다.
도 7은 머신(machine)으로 하여금 본원에서 논의되는 방법들 중의 임의의 하나의 방법의 예를 수행하도록 명령 세트 또는 일련의 명령이 실행될 수 있는 컴퓨팅 디바이스 하드웨어 아키텍처를 예시하는 블록도이다.
하기의 설명에서, 설명의 목적으로, 일부 예의 철저한 이해를 제공하기 위해 많은 구체적인 세부사항이 설명되어 있다. 그러나, 당업자에게 본 발명이 이러한 구체적인 세부사항 없이도 실시될 수 있다는 것은 명백할 것이다.
본원에서 기술되는 다양한 예는 다양한 형태의 데이터 프로세싱 시스템(또한 본원에서는 프로세싱 시스템이라 지칭됨)에서 발견될 수 있는 메모리 배열을 보안하기 위한 시스템 및 방법에 관한 것이다. 일부 예에서, 본원에서 기술되는 보안 메모리 배열(secure memory arrangements)은, 예를 들면, 가전 제품, 차량, 산업용 장비, 사물 인터넷(IoT) 디바이스 등과 같은 다양한 디바이스와 통합된 프로세싱 시스템에 사용된다. 이러한 프로세싱 시스템은, 예를 들면, 제어 또는 통신을 위한 임베디드 시스템 또는 다른 시스템을 포함할 수 있다. 본원에서 기술되는 메모리 배열을 이용할 수 있는 프로세싱 시스템의 다른 예로는 랩탑 컴퓨터, 데스크탑 컴퓨터, 모바일 컴퓨팅 디바이스, 서버 등이 있다.
일부 예에서, 본원에서 기술되는 시스템 및 방법들은 프로세싱 시스템에서 메모리 배열을 보안하기 위해 액세스 제어를 이용한다. 예를 들면, 본원에서 기술되는 보안 메모리 배열을 이용하는 프로세싱 시스템은, 송신자가 암호화 키(cryptographic key)를 소유하고 있음을 입증하는 액세스 데이터가 쓰기(writes)에 첨부되지 않는 한, 관련 메모리 저장 위치의 전부 또는 일부에 대한 쓰기를 방지할 수 있다. 일부 예에서는, 암호화 키 대신에 임의의 다른 유형의 공유 암호가 사용될 수 있다. 일부 예에서는, 메모리 배열의 모든 저장 위치에 대한 액세스가 이러한 방식으로 제어될 수 있다. 다른 예에서는, 부트 코드(boot code) 또는 다른 중요한 소프트웨어를 포함하는 저장 위치와 같은 저장 위치의 일부만이 액세스 제어된다.
액세스 제어 저장 위치 또는 위치들에 대한 쓰기 요청은 페이로드 데이터 및 액세스 데이터를 포함할 수 있다. 쓰기 요청을 수신하면, 메모리 배열은, 예를 들면, 액세스 데이터 및 페이로드 데이터에 기초하여 암호화 연산을 수행함으로써, 암호화 키 및 페이로드 데이터를 사용하여 액세스 데이터를 검증할 수 있다. 암호화 연산(예를 들면, 그의 결과 또는 결과들)이 액세스 데이터와 일치하는 경우, 그러면 액세스 데이터가 검증되고 프로세싱 시스템은 페이로드 데이터를 저장 디바이스에 기록함으로써 쓰기 요청을 실행한다. 암호화 연산이 액세스 데이터와 일치하지 않는 경우, 그러면 액세스 데이터가 검증되지 않고 프로세싱 시스템은 쓰기 요청을 거부한다.
본원에서 기술되는 액세스 제어는 메모리 디바이스와 구별되는 프로세서 유닛에 의해 실행되는 소프트웨어에서 구현될 수 있지만, 본원에서 기술되는 일부 예는 메모리 디바이스 레벨에서 액세스 제어를 구현한다. 예를 들면, 보안 메모리 디바이스는 암호화 키와 같은 공유 암호를 저장하기위한 키 레지스터, 및 액세스 데이터를 생성 및/또는 검증하기 위한 암호화 엔진을 포함할 수 있다. 쓰기 요청이 수신될 때, 메모리 디바이스는 쓰기 요청 페이로드 데이터 및 암호화 키를 키 레지스터 및 암호화 엔진으로부터 제공함으로써 액세스 데이터를 검증한다. 암호화 엔진은 해싱(hashing), 암호 해독 등과 같은 하나 이상의 암호화 연산을 수행하여 액세스 데이터를 검증할 수 있다. 액세스 데이터가 검증되는 경우, 메모리 디바이스는 요청된 쓰기를 완료한다. 액세스 데이터가 검증되지 않는 경우, 메모리 디바이스는 쓰기 요청을 거부한다.
본원에서 기술되는 액세스 제어는 대칭 키 또는 비대칭 키로 구현될 수 있다. 대칭 키를 사용하는 경우, 송신자와 수신자 모두 동일한 대칭 키의 사본을 갖는다. 송신자는 대칭 키를 사용하여 액세스 데이터를 생성한다. 예를 들면, 송신자는 대칭 키를 사용하여 페이로드 데이터에 해시 함수를 적용함으로써 액세스 데이터를 생성할 수 있다. 결과 해시(resulting hash)는 액세스 데이터의 전부 또는 일부를 구성한다. 결과 해시는, 일부 예에서는, 메시지 인증 코드(Message Authentication Code)(MAC)라 지칭되며, 일부 예에서는, 해시 메시지 인증 코드(Hash Message Authentication Code)(HMAC)라 지칭된다.
송신자는 페이로드 데이터 및 액세스 데이터를 포함하는 쓰기 요청을 수신자에게 전송한다. 또한 대칭 키의 사본을 가지고 있는 수신자는 액세스 데이터의 사본을 생성한다. 예를 들면, 수신자는 수신자 자신의 대칭 키의 사본으로 페이로드 데이터를 독립적으로 해싱함으로써 액세스 데이터 사본을 생성할 수 있다. 액세스 데이터 사본이 수신된 액세스 데이터와 동일한 경우, 메시지가 검증된다.
비대칭 키가 사용되는 경우, 송신자는 비밀 키인 개인 키와 비밀이 아닌 공개 키를 가지고 있다. 송신자는 때때로 인증 기관 또는 다른 신뢰할 수 있는 제 3자를 이용하여 수신자에 대한 공개 키의 진위 여부를 검증한다. 송신자의 개인 키 및 공개 키는 수학적으로 관련되어 있으므로, 공개 키를 사용하여 개인 키로 수행된 특정 암호화 연산을 리버스시킬 수 있다.
송신자는 페이로드 데이터 및 송신자 자신의 개인 키를 사용하여 액세스 데이터를 생성한다. 예를 들면, 송신자는 페이로드 데이터에 해시 함수를 적용한 다음 송신자의 개인 키로 결과 해시에 서명할 수 있다. 그 결과는 액세스 데이터의 전부 또는 일부를 구성할 수 있는 암호화 서명이다. 수신자는 송신자의 공개 키로 서명을 해독한 다음, 수신된 페이로드 데이터에 동일한 해시 함수를 적용함으로써 액세스 데이터 사본을 생성할 수 있다. 액세스 데이터 사본이 해독된 서명과 동일한 경우, 메시지가 검증된다.
대칭 및 비대칭 액세스 제어는 모두 장점 및 단점을 가지고 있다. 예를 들면, 대칭 구성에서는 당사자가 대칭 키를 서로 안전하게 통신하는 것이 필요하다. 일부 예에서, 당사자들간에 통신으로 대칭 키를 통신하는 프로세스를 소위 프로비저닝(provisioning)이라 한다. 대칭 키를 비밀로 유지하면서 양 당사자에게 단일 대칭 키를 프로비저닝하는 것은 어려울 수 있다. 반면에, 비대칭 구성은 프로비저닝하기가 더 쉬울 수 있다. 예를 들면, 송신자의 공개 키는 비밀이 아니며, 대칭 키와 관련된 보안 문제없이 클리어하게 전송될 수 있다. 또한, 비대칭 키로 생성된 액세스 데이터를 검증하기 위한 암호화 연산은 종종 더 복잡한 경우가 많다. 예를 들면, 일부 비대칭 구성은 유사하게 안전한 대칭 구성에 사용되는 키보다 더 큰 크기의 암호화 키를 사용한다. 비대칭 구성에서 암호화 연산이 복잡성이 추가되어 이를 구현하기 위해서는 더 많은 하드웨어 및/또는 소프트웨어 리소스가 필요할 수 있다.
대형 컴퓨팅 디바이스와 같은 일부 프로세싱 시스템에서, 비대칭 액세스 제어와 관련된 추가된 부품표(Bill of Material)(BOM) 및/또는 기타 비용은 미미하다. 다른 프로세싱 시스템에서는, 비대칭 액세스 제어의 부가 비용이 더 중요하다. 예를 들면, 임베디드 시스템, IoT 디바이스 및 기타 유사한 프로세싱 시스템 또는 컴포넌트는, 비대칭 액세스 제어를 추가하면 각 컴포넌트의 가격이 크게 높아지는 전체 비용이 충분히 낮을 수 있다. 자동차, 보안 시스템 등과 같은 대형 시스템에서, 각각의 임베디드 시스템 메모리 디바이스에 비대칭 액세스 제어를 추가하면 상당한 추기 비용이 발생할 수 있다.
본원에서 기술되는 다양한 예는 게이트웨이 디바이스 및 하나 이상의 시스템 컨트롤러를 포함하는 프로세싱 시스템 및 메모리 배열에 관한 것이다. 게이트웨이 디바이스는 비대칭 및 대칭 액세스 제어를 모두 지원하는 하나 이상의 메모리 디바이스를 포함한다. 시스템 컨트롤러는 대칭 액세스 제어를 지원하는 메모리 디바이스를 포함한다. 그러나, 일부 예에서, 시스템 컨트롤러의 메모리 디바이스 또는 디바이스들은 비대칭 액세스 제어를 지원할 필요가 없다. 이러한 방식으로, 각각의 시스템 컨트롤러에 대해 비대칭 액세스 제어의 추가 비용이 필요하지 않을 수 있다.
대칭 및 비대칭 액세스 제어를 모두 지원하는 게이트웨이 디바이스 메모리 디바이스는 다양한 컨트롤러 시스템에서 메모리 디바이스의 대칭 키에 대한 키 저장소(key store)로서 작용할 수 있다. 예를 들면, 외부 시스템은 시스템 컨트롤러 중의 하나(수신자 시스템 컨트롤러)로 향하는 외부 메시지를 생성할 수 있다. 외부 메시지는 외부 시스템의 개인 키로 생성된 페이로드 데이터 및 비대칭 액세스 데이터를 포함할 수 있다. 게이트웨이 디바이스는 메시지를 수신하고 외부 시스템의 공개 키를 사용하여 메시지를 검증한다. 이어서, 게이트웨이 디바이스는 메시지가 전달되는 시스템 컨트롤러의 적절한 대칭 키를 검색하고 수신자 시스템 컨트롤러에 특정될 수 있는 대칭 액세스 데이터를 생성한다. 게이트웨이 디바이스는 페이로드 데이터 및 대칭 액세스 데이터를 포함한 내부 메시지를 수신자 시스템 컨트롤러로 전송한다. 수신자 시스템 컨트롤러, 또는 시스템 컨트롤러의 시스템 메모리 디바이스는 대칭 액세스 데이터를 검증하고 페이로드 데이터를 그의 메모리에 기록한다.
도 1은 네트워크(116)를 통해 예시적인 외부 시스템(118A, 118B)과 통신하는 보안 프로세싱 시스템(101)을 구현하기 위한 환경(100)의 일례를 나타내는 다이어그램이다. 보안 프로세싱 시스템(101)은 게이트웨이 디바이스(102) 및 다수의 시스템 컨트롤러(104A, 104B, 104C, 104N)를 포함한다. 게이트웨이 디바이스(102) 및 시스템 컨트롤러(104A, 104B, 104C, 104N)는 임의의 적합한 형태의 유선 또는 무선 버스일 수 있는 버스(120)를 통해 통신한다. 4개의 시스템 컨트롤러(104A, 104B, 104C, 104N)가 예시적인 환경(100)에 도시되어 있지만, 예를 들면, 도 1에 도시된 것보다 더 많거나 더 적은 것을 포함하여 임의의 적절한 개수의 시스템 컨트롤러가 사용될 수 있다.
시스템 컨트롤러(104A, 104B, 104C, 104N)는, 일부 예에서는, 임의의 적절한 설정에서 기계 시스템 또는 전기 시스템 또는 서브 시스템을 제어하기 위한 임베디드 시스템일 수 있다. 일부 예에서, 보안 프로세싱 시스템(101)은 자동차 또는 다른 차량에서 구현될 수 있다. 각각의 시스템 컨트롤러(104A, 104B, 104C, 104N)는 자동차의 컴포넌트를 관리할 수 있다. 예를 들면, 시스템 컨트롤러(104A)는 잠김 방지 브레이크 시스템(anti-lock braking system)(ABS)을 관리할 수 있고, 시스템 컨트롤러(104B)는 플라이 바이 와이어 스로틀 시스템(fly-by-wire throttle system)을 관리할 수 있고, 시스템 컨트롤러(104C)는 백업 카메라를 관리할 수 있고, 시스템 컨트롤러(104N)는 엔터테인먼트 시스템을 관리할 수 있으며, 기타 등등일 수 있다. 보안 프로세싱 시스템(101)이 자동차 또는 다른 차량에서 구현되는 예에서, 버스(120)는 계측 컨트롤러 통신망(Controller Area Network)(CAN) 차량 버스 표준에 따라 구성될 수 있다. 다른 예에서, 보안 프로세싱 시스템(101)은 보안 시스템에서 구현될 수 있다. 개개의 시스템 컨트롤러(104A, 104B, 104C, 104N)는 보안 시스템의 다양한 카메라, 센서 등을 관리할 수 있다. 또 다른 예에서, 보안 프로세싱 시스템(101)은 냉장고와 같은 가전 제품의 일부로서 구현될 수 있다. 개개의 시스템 컨트롤러(104A, 104B, 104C, 104N)는 가전 제품의 다양한 디스플레이, 온도 조절 디바이스 등을 관리할 수 있다.
시스템 컨트롤러(104A, 104B, 104C, 104N)는 개개의 프로세서 유닛(112A, 112B, 112C, 112N) 및 개개의 대칭 메모리 디바이스(114A, 114B, 114C, 114N)를 포함할 수 있다. 대칭 메모리 디바이스(114A, 114B, 114C, 114N)은, 예를 들면, 도 2에 보다 상세히 도시되어 있는 바와 같이, 대칭 액세스 제어를 지원하도록 구성될 수 있다. 대칭 메모리 디바이스(114A, 114B, 114C, 114N)는, 일부 예에서는, 프로세서 유닛(112A, 112B, 112C, 112N)에 의해 실행될 코드를 저장한다. 대칭 메모리 디바이스(114A, 114B, 114C, 114N)는, 일부 예에서는, 예를 들면, 플래시 디바이스와 같은 솔리드 스테이트 메모리 디바이스와 같은 영구 메모리 디바이스이다.
게이트웨이 디바이스(102)는 대칭/비대칭 메모리 디바이스(108)를 포함한다. 대칭/비대칭 메모리 디바이스(108)는, 예를 들면, 본원에서 기술되는 바와 같이, 대칭 및 비대칭 액세스 제어를 모두 지원하는 메모리 디바이스이다. 일부 예에서, 게이트웨이 디바이스(102)는 또한 프로세서 유닛(106)을 포함한다.
대칭/비대칭 메모리 디바이스(108)는 개개의 대칭 메모리 디바이스(114A, 114B, 114C, 114N)에 대한 대칭 키를 저장하기 위한 하나 이상의 저장 위치를 포함하는 키 저장 영역(110)을 포함한다. 대칭/비대칭 메모리 디바이스(108)는 비대칭 액세스 제어로 키 저장 영역(110)에 대한 액세스를 관리할 수 있다. 따라서, 키 저장 영역(110)이 개개의 대칭 메모리 디바이스(114A, 114B, 114C, 114N)에 대한 대칭 키를 포함하지만, 키 저장 영역(110) 자체는, 본원에서 기술되는 바와 같이, 대칭/비대칭 메모리 디바이스(108)의 비대칭 키 쌍으로 액세스 제어된다.
대칭/비대칭 메모리 디바이스(108)는, 예를 들면, 외부 시스템(118A, 118B)과의 통신시에 비대칭 액세스 데이터를 수신하고 처리하도록 구성될 수 있다. 대칭/비대칭 메모리 디바이스(108)는 또한, 예를 들면, 키 저장 영역(110)에 저장된 대칭 키를 이용하여 대칭 액세스 데이터를 수신하고 처리하도록 구성될 수 있다.
게이트웨이 디바이스(102)는 네트워크(116)를 통해 외부 시스템(118A, 118B)과 통신할 수 있다. 네트워크(116)는 임의의 적절한 네트워크 프로토콜에 따라 동작되는 임의의 적절한 네트워크 요소이거나 이를 포함할 수 있다. 예를 들면, 네트워크(116)의 하나 이상의 부분은 애드혹 네트워크(ad hoc network), 인트라넷, 익스트라넷, 가상 사설망(VPN), 근거리 통신망(LAN), 무선 LAN(WLAN), 광역 네트워크(WAN), 무선 WAN(WWAN), 도시지역 네트워크(metropolitan area network)(MAN), 인터넷의 일부, 공중 교환 전화 네트워크(Public Switched Telephone Network)(PSTN)의 일부, 셀룰러 전화 네트워크, 무선 네트워크, Wi-Fi 네트워크, WiMax 네트워크, 다른 유형의 네트워크, 또는 이러한 네트워크 중의 둘 이상의 조합일 수 있다.
도 2는 게이트웨이 디바이스(102) 및 시스템 컨트롤러(104A)의 추가적인 세부 사항을 포함하는 보안 프로세싱 시스템(101)의 일부를 나타내는 다이어그램이다. 이제 게이트웨이 디바이스(102)를 참조하면, 도 2는 대칭/비대칭 메모리 디바이스(108)의 추가적인 세부 사항을 도시한다. 예를 들면, 대칭/비대칭 메모리 디바이스(108)는 컨트롤러(132) 및 스토리지(130)를 포함한다. 일부 예에서, 대칭/비대칭 메모리 디바이스(108)는 플래시 또는 다른 유사한 솔리드 스테이트 메모리이거나 또는 이를 포함할 수 있다. 일부 예에서, 스토리지(130) 및 컨트롤러(132)를 포함하는 대칭/비대칭 메모리 디바이스(108)는 공통 반도체(예를 들면, 실리콘) 다이상의 임베디드 멀티미디어 컨트롤러(eMMC) 디바이스 상에서 구현될 수 있다.
스토리지(130)는 하나 이상의 시스템 컨트롤러(104A, 104B, 104C, 104N)에 대한 대칭 키를 저장할 수 있는 키 저장소(key store)(110)를 포함한다. 일부 예에서, 키 저장소(110)는, 예를 들면, 본원에서 기술되는 바와 같이, 비대칭적으로 액세스 제어된다. 컨트롤러(132)는, 예를 들면, 어드레싱, 데이터 읽기 및 쓰기 등을 수행하기 위한 하드웨어를 포함하는 스토리지(130)를 관리하기 위한 다양한 하드웨어를 포함할 수 있다.
컨트롤러(132)는, 일부 예에서, 비대칭 엔진(134) 및 대칭 엔진(136)을 포함한다. 비대칭 엔진(134)은 키 저장소(110)의 비대칭 액세스 제어를 구현하는데 사용될 수 있다. 비대칭 엔진(134)은 하나 이상의 키 레지스터(140) 및 수학 엔진(math engine)(138)을 포함할 수 있다. 키 레지스터(140)가 비대칭 엔진(134)의 컴포넌트로서 도시되어 있지만, 일부 예에서, 키 레지스터(140)는 다른 위치, 예를 들면, 스토리지(130)내의 안전한 위치에 위치될 수 있다. 일부 예에서, 키 레지스터(140)는 대칭/비대칭 메모리 디바이스(108)를 위한 개인 키를 저장할 수 있다. 수학 엔진(138)은, 본원에서 기술되는 바와 같이, 비대칭 액세스 제어를 구현하기 위한 암호화 연산을 수행하도록 구성될 수 있다. 예를 들면, 수학 엔진(138)은 페이로드 데이터(또는 페이로드 데이터의 해시) 및 개인 키를 수신하여, 예를 들면, 본원에서 기술되는 바와 같은 디지털 서명을 포함하는 액세스 데이터를 생성하도록 구성될 수 있다. 수학 엔진(138)은 또한 암호화된 데이터 및 공개 키를 수신하여 해독된 데이터 또는 클리어 데이터를 생성하도록 구성될 수도 있다. 일부 예에서, 비대칭 엔진(134)은 RSA 엔진이거나 또는 이를 포함할 수 있다.
대칭 엔진(136)은 키 레지스터(146) 및 수학 엔진(142)을 포함할 수 있다. 키 레지스터(146)는, 예를 들면, 대칭/비대칭 메모리 디바이스(108)의 대칭 키를 저장할 수 있다. 키 레지스터(146)가 대칭 엔진(136)의 일부로서 도시되어 있지만, 일부 예에서, 이는 다른 위치, 예를 들면, 스토리지(130)내의 안전한 위치에 위치된다. 수학 엔진(142)은, 본원에서 기술되는 바와 같이, 대칭 액세스 제어를 구현하기 위한 암호화 연산을 수행하도록 구성된다. 예를 들면, 수학 엔진(142)은 페이로드 데이터 및 대칭 키를 수신하고 페이로드 데이터 및 대칭 키에 기초하여 해시를 반환하도록 구성될 수 있다.
시스템 컨트롤러(104A)는 상기에서 소개된 대칭 메모리 디바이스(114A)를 포함할 수 있다. 대칭 메모리 디바이스(114A)는 스토리지(152A) 및 컨트롤러(150A)를 포함할 수 있다. 일부 예에서, 대칭 메모리 디바이스(114A)는 동일한 반도체 다이 상에서 구현되는 컨트롤러(150A) 및 스토리지(152A)를 가진 NOR 디바이스일 수 있다. 스토리지(152A)는, 일부 예에서, 시스템을 제어하기 위해 프로세서 유닛(112A)에 의해 실행 가능한 명령을 저장할 수 있다. 예를 들면, 보안 프로세싱 시스템(101)이 자동차 또는 다른 차량에서 구현되는 경우, 스토리지(152A)는, 프로세서 유닛(112A)에 의해 실행되었을 때, 프로세서 유닛(112A)이 잠금 방지 브레이크 시스템, 플라이 바이 와이어 스로틀 시스템 등과 같은 차량 서브 시스템의 동작을 제어하게 하는 명령을 포함할 수 있다. 스토리지(152A)의 전부 또는 일부는, 본원에서 기술되는 바와 같이, 액세스 제어될 수 있다. 일부 예에서, 프로세서 유닛(112A), 미션 크리티컬 소프트웨어(mission-critical software) 등에 대한 부팅 명령을 포함하는 스토리지(152A)의 일부는 액세스 제어되는 반면, 스토리지(152A)의 다른 부분들은 액세스 제어되지 않는다.
컨트롤러(150A)는, 컨트롤러(132)와 같이, 예를 들면, 어드레싱, 데이터 읽기 및 쓰기 등을 수행하기 위한 하드웨어를 포함한, 스토리지(152A)를 관리하기 위한 다양한 하드웨어를 포함할 수 있다. 컨트롤러(132)는 또한 본원에서 기술되는 대칭/비대칭 메모리 디바이스(108)의 수학 엔진(138) 및 키 레지스터(140)와 유사한 수학 엔진(160A) 및 키 레지스터(156A)를 포함할 수 있는 대칭 엔진(154A)을 포함할 수도 있다.
도 2는 또한 시스템 컨트롤러(104A) 및 그의 대칭 메모리 디바이스(114A)로 및 그들로부터 메시지를 전송하기 위한 워크플로우를 도시한다. 도 2의 예에서, 비대칭 메시지(162)는 외부 시스템(118A, 118B) 중의 하나와 같은 외부 시스템으로부터 수신된다. 비대칭 메시지(162)는 페이로드 데이터 및 비대칭 액세스 데이터를 포함한다. 프로세서 유닛(106)은 비대칭 메시지(162)가 대칭/비대칭 메모리 디바이스(108)에 기록될 것을 요청한다. 대칭/비대칭 메모리 디바이스(108) 컨트롤러(132)는 비대칭 엔진(134)을 이용하여 비대칭 액세스 데이터를 검증한다. 비대칭 액세스 데이터가 검증되는 경우, 컨트롤러(132)는 키 저장소(110)로부터 시스템 컨트롤러(104A)에 대한 대칭 키에 액세스하고 대칭 키를 사용하여 대칭 액세스 데이터를 생성한다. 대칭 액세스 데이터 및 페이로드 데이터는 시스템 컨트롤러(104A)로 전송된 대칭 메시지(164)의 일부일 수 있다.
대칭 컨트롤러(104A)는 대칭 메시지(164)를 수신하고 대칭 메모리 디바이스(114A)에 기록될 것을 요청한다. 대칭 메모리 디바이스(114A) 컨트롤러(150A)는 대칭 엔진(154A)을 이용하여 대칭 액세스 데이터를 검증한다. 대칭 액세스 데이터가 검증되는 경우, 컨트롤러(150A)는 페이로드 데이터를 스토리지(152A)에 기록한다.
이와 유사하게, 시스템 컨트롤러(104A)는 외부 시스템(118A, 118B) 중의 하나와 같은 외부 시스템으로 보낼 메시지를 생성한다. 프로세서 유닛(112A)은 대칭 메모리 디바이스(114A)에 읽기 요청을 하고, 예를 들면, 요청된 페이로드 데이터가 외부 시스템으로 전송될 것임을 지시한다. 컨트롤러(150A)는 스토리지(152A)로부터 요청된 데이터를 검색하고 대칭 메모리 디바이스(114A)의 대칭 키에 기초하여 대칭 액세스 데이터를 생성한다. 시스템 컨트롤러는 대칭 메시지(166)를 게이트웨이 디바이스(102)로 보낸다.
게이트웨이 디바이스(102)는 대칭 엔진(136)을 이용하여 대칭 액세스 데이터를 검증하고 비대칭 엔진(134)을 이용하여 대칭/비대칭 메모리 디바이스(108)의 개인 키로 새로운 비대칭 액세스 데이터를 생성한다. 비대칭 액세스 데이터 및 페이로드 데이터는 외부 시스템으로 전송되는 비대칭 메시지(168)를 형성할 수 있다.
도 3은 착신 메시지를 처리하기 위해 외부 시스템, 게이트웨이 디바이스(102) 및 시스템 컨트롤러(104A)에 의해 실행될 수 있는 프로세스 플로우(300)의 일례를 나타내는 흐름도이다. 프로세스 플로우(300)은 3개의 컬럼(301, 303, 305)을 포함한다. 컬럼(301)은 외부 시스템(118A)에 의해 수행될 수 있는 동작을 포함한다. 컬럼(303)은 게이트웨이 디바이스(102)에 의해 실행될 수 있는 동작을 포함한다. 컬럼(305)은 시스템 컨트롤러(104A)에 의해 실행될 수 있는 동작을 포함한다. 프로세스 플로우(300)가 특정 외부 시스템(118A), 게이트웨이 디바이스(102), 및 특정 시스템 컨트롤러(104A)를 참조로 설명되었지만, 다른 외부 시스템(118A), 다른 시스템 컨트롤러(104B, 104C, 104N) 및 다른 게이트웨이 디바이스가 일부 예에서 대체될 수 있음을 이해할 것이다.
동작(304)에서, 시스템 컨트롤러(104A)는 대칭 키 메시지(307)를 게이트웨이 디바이스(102)로 전송하고, 동작(302)에서 대칭 키 메시지를 수신한다. 동작(302 및 304)은 때때로 프로비저닝으로 지칭되며, 다양한 상이한 방식으로 발생할 수 있다. 일부 예에서, 프로비저닝은 프로세싱 시스템(101)의 초기 구성 중에, 예를 들면, 프로세싱 시스템(101) 또는 프로세싱 시스템(101)에 의해 관리되는 디바이스(예를 들면, 차량, 보안 시스템 등)의 제조 도중에 또는 이후에 발생한다. 예를 들면, 각각의 시스템 컨트롤러(104A, 104B, 104C, 104N)는 초기 구성 도중에 개개의 대칭 키를 게이트웨이 디바이스(102)로 전송하도록 구성될 수 있다. 예를 들면, 시스템 컨트롤러(104A)는 게이트웨이 디바이스(102) 또는 다른 디바이스로부터 프로비저닝 신호를 수신할 수 있다. 프로비저닝 신호에 응답하여, 시스템 컨트롤러(104A)는 대칭 키 메시지(307)를 게이트웨이 디바이스(102)로 전송할 수 있다. 일부 예에서, 프로비저닝 메시지가 게이트웨이 디바이스(102)가 아닌 다른 컴포넌트에 의해 전송되는 경우, 게이트웨이 디바이스(102)는 시스템 컨트롤러(104A)로 전송된 프로비저닝 신호와 동시에 또는 거의 근접한 시간에 게이트웨이 디바이스 프로비저닝 신호를 수신할 수 있다. 게이트웨이 디바이스 프로비저닝 신호는 게이트웨이 디바이스(102)가 대칭 키 메시지(307)를 기대하도록 프롬프트할 수 있다. 다른 예에서, 프로비저닝은 프로세싱 시스템(101)의 부팅 시퀀스 중에 발생할 수 있다. (부팅 시퀀스는, 예를 들면, 프로세싱 시스템(101)의 전원이 켜질 때, 프로세싱 시스템(101)이 리셋될 때 등을 포함하여 다양한 시간에 발생할 수 있다.) 예를 들면, 게이트웨이 디바이스(102)는 부팅 시퀀스 중에 프로비저닝 신호를 시스템 컨트롤러(104A, 104B, 104C, 104N)로 전송하도록 구성될 수 있다. 일부 예에서, 프로세싱 시스템(101)은 제 3자가 통신 버스(120)를 통해 전송 된 대칭 키들을 인터셉트하는 것을 방지하기 위해 프로비저닝 중에 네트워크(116)로부터 연결이 끊어질 수 있다.
또 다른 예에서, 시스템 컨트롤러(104A, 104B, 104C, 104N)에 대한 대칭 키는 보안 데이터베이스 또는 다른 보안 스토리지, 예를 들면, 보안 프로세싱 시스템(101)의 외부에 저장될 수 있다. 게이트웨이 디바이스(102)는 시스템 컨트롤러(104A, 104B, 104N)로부터 대칭 키를 수신하는 대신에 (또는 그에 부가하여) 보안 데이터베이스 또는 다른 보안 스토리지로부터 대칭 키를 수신할 수 있다. 예를 들면, 게이트웨이 디바이스(102)는 대칭 키 요청 메시지를 보안 데이터베이스로 전송하도록 구성될 수 있다. 일부 예에서, 대칭 키 요청 메시지는 본원에서 기술되는 바와 같이 생성된 대칭 또는 비대칭 액세스 데이터를 포함할 수 있다. 보안 데이터베이스(및/또는 그와 관련된 시스템)는 대칭 키 요청을 검증하고, 검증된 경우, 시스템 컨트롤러(104A, 104B, 104C, 104N)의 요청된 대칭 키 또는 키들을 게이트웨이 디바이스로(102)에 전송할 수 있다.
다시 도 3을 참조하면, 동작(306)에서, 외부 시스템(118A)은 비대칭 메시지(309)를 게이트웨이 디바이스(102)로 전송할 수 있다. 비대칭 메시지(309)는 외부 시스템(118A)의 개인 키와 함께 외부 시스템(118A)에 의해 생성된 페이로드 데이터 및 비대칭 액세스 데이터(ACCESS DATA)를 포함한다. 비대칭 메시지(309)는 시스템 컨트롤러(104A)로 어드레싱될 수 있다. 일례에서, 시스템 컨트롤러(104A)는 차량의 잠금 방지 브레이크 시스템을 관리하고, 비대칭 메시지(309)는 현재의 펌웨어 버전, 상태 또는 잠금 방지 브레이크 시스템으로부터의 기타 정보를 요청하는 상태 요청 메시지를 포함하는 페이로드 데이터를 포함한다. 다른 예에서, 비대칭 메시지(309)는 시스템 컨트롤러(104A)에 대한 펌웨어 또는 다른 소프트웨어 업데이트를 포함하는 페이로드 데이터를 포함할 수 있다. 비대칭 메시지(309)는 구체적으로는 시스템 컨트롤러(104A)로 어드레싱될 수 있거나, 또는 일부 예에서는 시스템 컨트롤러(104A, 104B, 104C, 104N) 중의 하나 이상으로 어드레싱될 수 있다. 예를 들면, 비대칭 메시지(309)는 보안 컴퓨팅 시스템의 시스템 컨트롤러(104A, 104B, 104C, 104N)의 전부 또는 일부로부터 정보를 요청하거나 또는 거기에 정보 또는 데이터를 제공할 수 있다.
동작(308)에서, 게이트웨이 디바이스(102)는 비대칭 메시지(309) 또는 그의 일부를 대칭/비대칭 메모리 디바이스(108)에 기록할 수 있다. 일부 예에서, 게이트웨이 디바이스(102)는 메시지(309)를 시스템 컨트롤러(104A)로 전달하라는 명령과 함께 비대칭 메시지(309)를 대칭/비대칭 메모리 디바이스(108)에 기록한다. 비대칭 메시지(309)가 시스템 컨트롤러(104A, 104B, 104C, 104N) 중의 하나 이상으로 어드레싱되는 예에서, 게이트웨이 디바이스(102)는 메시지(309)가 다수의 시스템 컨트롤러(104A, 104B, 104C, 104N)로 전송될 것이라는 명령과 함께 비대칭 메시지(309)를 대칭/비대칭 메모리 디바이스(108)에 기록할 수 있다. 일부 예에서는, 전체 페이로드 데이터가 각각의 수신자 시스템 컨트롤러(104A, 104B, 104C, 104N)에 제공된다. 다른 예에서, 게이트웨이 디바이스(102)는 페이로드 데이터를 분할하고 부분적인 페이로드 데이터를 각각의 수신자 시스템 컨트롤러(104A, 104B, 104C, 104N)로 전송한다. 예를 들면, 시스템 컨트롤러(104A)에 대한 펌웨어 업데이트를 포함하는 페이로드 데이터는 시스템 컨트롤러(104A)로 전송될 수 있는 반면, 다른 시스템 컨트롤러(104B, 104C, 104N 등)에 대한 펌웨어 업데이트를 포함하는 페이로드 데이터는 시스템 컨트롤러(104A)로 전송되지 않을 수 있다.
동작(310)에서, 게이트웨이 디바이스(102)(예를 들면, 대칭/비대칭 메모리 디바이스(108))는 비대칭 메시지(309)를 검증할 수 있다. 예를 들면, 대칭/비대칭 메모리 디바이스(108)는 비대칭 엔진(134)을 이용하여 비대칭 메시지(309)에 포함된 비대칭 액세스 데이터가 페이로드 데이터와 일치 하는지를 검증할 수 있다. 일부 예에서, 대칭/비대칭 메모리 디바이스(108)는, 예를 들면, 인증 기관 또는 다른 신뢰할 수 있는 제 3 자로부터 외부 시스템(118A)의 공개 키를 획득한다. 일부 예에서, 대칭/비대칭 메모리 디바이스(108)는 제한된 세트의 외부 시스템(118A, 118B)으로부터의 메시지를 검증하도록 구성된다. 예를 들면, 비대칭 액세스 데이터가 제한된 세트의 외부 시스템(118A, 118B)의 외부 시스템(118A, 118B)의 개인 키에 연결될 수 없는 경우, 이는 검증되지 않을 수 있다. (도 1에는 2개의 외부 시스템(118A, 118B)이 도시되어 있지만, 게이트웨이 디바이스(102)는 상이한 개수의 외부 시스템(118A, 118B)을 포함하는 제한된 세트의 외부 시스템을 이용할 수 있다.)
대칭/비대칭 메모리 디바이스(108)는 비대칭 액세스 데이터 및 공개 키를 비대칭 엔진(134)(예를 들면, 그의 수학 엔진 (138))에 제공할 수 있다. 비대칭 엔진(134)은 해독된 액세스 데이터를 반환할 수 있다. 해독된 액세스 데이터는 비대칭 메시지의 페이로드 데이터를 참조하거나 설명할 수 있다. 예를 들면, 해독된 메시지는 페이로드 데이터의 해시일 수 있다. 대칭/비대칭 메모리 디바이스(108)는 비대칭 메시지(309)(이는 액세스 데이터 사본으로 지칭될 수 있음)로 수신된 페이로드 데이터의 해시를 독립적으로 생성할 수 있다. 액세스 데이터 사본이 해독된 액세스 데이터와 동등한 경우, 비대칭 메시지(309)가 검증된다. 예를 들면, RSA 암호화 기술과 같은 임의의 적절한 비대칭 암호화 기술이 사용될 수 있다. 또한, 비대칭 액세스 데이터가 외부 시스템의 개인 키로 암호화된 페이로드 데이터의 해시인 본원에서 기술되는 예는 비대칭 액세스 데이터를 생성하기 위한 일례일 뿐이다. 다른 적절한 기술이 사용될 수 있다.
비대칭 메시지(309)가 검증되지 않은 경우(예를 들면, 액세스 데이터 사본이 해독된 액세스 데이터와 동등하지 않은 경우), 대칭/비대칭 메모리 디바이스(108)는 동작(312)에서 메시지를 거부할 수 있다. 비대칭 메시지(309)가 동작(310)에서 검증되는 경우, 대칭/비대칭 메모리 디바이스(108)는 동작(314)에서 시스템 컨트롤러(104A)에 대한 대칭 액세스 데이터를 생성할 수 있다. 예를 들면, 대칭/비대칭 메모리 디바이스(108)는 대칭/비대칭 메모리 디바이스(108)의 스토리지(130)에서 키 저장소(110)로부터 시스템 컨트롤러(104A)에 대한 대칭 키를 검색할 수 있다. 일부 예에서, 대칭/비대칭 메모리 디바이스는 대칭 엔진(136)을 이용하여 대칭 액세스 데이터를 생성할 수 있다. 예를 들면, 대칭/비대칭 메모리 디바이스(108)는 시스템 컨트롤러(104A)의 검색된 대칭 키 및 페이로드 데이터를 대칭 엔진(136)에 제공할 수 있으며, 이는 시스템 컨트롤러(104A)의 대칭 키로 생성된 페이로드 데이터의 해시를 반환할 수 있다. 메시지(309)의 모든 페이로드 데이터보다 적은 양이 시스템 컨트롤러(104A)로 전송되는 경우, 대칭 액세스 데이터는 시스템 컨트롤러(104A)로 전송될 페이로드 데이터의 일부를 고려하여 생성될 수 있다. 예를 들면, 보안 해싱 알고리즘(Secure Hashing Algorithm)(SHA) 알고리즘, 예를 들면, SHA-2 시리즈, SHA-3 시리즈, SHA-5 시리즈 등과 같은 임의의 적절한 해싱 알고리즘이 사용될 수 있다.
동작(316)에서, 게이트웨이 디바이스(102)(예를 들면, 대칭/비대칭 메모리 디바이스(108))는 대칭 메시지(311)를 시스템 컨트롤러(104A)로 전송할 수 있다. 예를 들면, 대칭 메시지(311)는 페이로드 데이터(또는 시스템 컨트롤러(104A)에 제공될 페이로드 데이터의 일부) 및 동작(314)에서 생성된 대칭 액세스 데이터를 포함할 수 있다.
시스템 컨트롤러(104A)는 대칭 메시지(311)를 수신하고, 이를 동작(318)에서 대칭 메모리 디바이스(114A)에 기록할 수 있다. 동작(320)에서, 시스템 컨트롤러(104A)(예를 들면, 대칭 메모리 디바이스(114A))는 대칭 메시지(311)를 검증할 수 있다. 예를 들면, 대칭 메모리 디바이스(114A)는 대칭 액세스 데이터가 페이로드 데이터와 일치하는지 여부를 결정할 수 있다. 대칭 메모리 디바이스(114A)는 대칭 액세스 데이터를 대칭 엔진(154A)에 제공함으로써 동작(318)으로부터의 기록을 처리할 수 있다. 대칭 엔진(154A)은 대칭 메시지(311)에 포함된 페이로드 데이터 및 대칭 메모리 디바이스(114A)의 대칭 키에 기초하여, 예를 들면, 대칭/비대칭 메모리 디바이스(108)에 의해 사용된 것과 동일한 해싱 알고리즘을 이용하여 해시를 생성할 수 있다.
생성된 해시가 대칭 액세스 데이터와 동등한 경우, 대칭 메시지(311)가 검증된다. 생성된 해시가 대칭 액세스 데이터와 동등하지 않은 경우, 대칭 메시지(311)는 검증되지 않을 수 있다. 대칭 메시지(311)가 검증되지 않은 경우, 대칭 메모리 디바이스(114A)는 동작(322)에서 메시지(311)를 거부할 수 있다(예를 들면, 페이로드 데이터는 스토리지(152A)에 로딩되지 않을 수 있다). 대칭 메시지(311)가 검증되는 경우, 대칭 메모리 디바이스(114A)는 동작(324)에서, 예를 들면, 페이로드 데이터를 스토리지(152A)에 기록함으로써 메시지(311)를 처리할 수 있다.
도 4는 발신 메시지를 처리하기 위해 외부 시스템(118A), 게이트웨이 디바이스(102) 및 시스템 컨트롤러(104A)에 의해 실행될 수 있는 프로세스 플로우(400)의 일례를 나타내는 흐름도이다. 프로세스 플로우(400)는 3개의 컬럼(401, 403, 405)을 포함한다. 컬럼(401)은 외부 시스템(118A)에 의해 수행될 수 있는 동작을 포함한다. 컬럼(403)은 게이트웨이 디바이스(102)에 의해 실행될 수 있는 동작을 포함한다. 컬럼(405)은 시스템 컨트롤러(104A)에 의해 실행될 수 있는 동작을 포함한다. 프로세스 플로우(400)가 특정 외부 시스템(118A), 게이트웨이 디바이스(102), 및 특정 시스템 컨트롤러(104A)를 참조로 설명되었지만, 다른 외부 시스템(118A), 다른 시스템 컨트롤러(104B, 104C, 104N) 및 다른 게이트웨이 디바이스가 일부 예에서 대체될 수 있음을 이해할 것이다. 프로세스 플로우(400)의 실행 전에, 시스템 컨트롤러(104A)의 대칭 키는, 예를 들면, 본원에서 기술되는 바와 같이, 게이트웨이 디바이스(102)에 프로비저닝(provisioned)되었을 수 있다.
동작(402)에서, 시스템 컨트롤러(104A)는 외부 시스템(118A)으로 보낼 대칭 메시지(407)를 생성할 수 있다. 대칭 메시지(407)는 페이로드 데이터 및 대칭 액세스 데이터(ACCESS DATA)를 포함할 수 있다. 페이로드 데이터는, 예를 들면, 시스템 컨트롤러(104A)의 상태 보고, 시스템 컨트롤러(104A)와 통신하는 하나 이상의 센서로부터의 데이터 등과 같은 임의의 적절한 데이터일 수 있다. 일부 예에서, 시스템 컨트롤러(104A)는 대칭 메모리 디바이스(114A)의 대칭 엔진(154A)을 이용하여 대칭 액세스 데이터를 생성한다. 예를 들면, 시스템 컨트롤러(104A)는 대칭 메모리 디바이스(114A)로부터 페이로드 데이터를 요청할 수 있다. 대칭 메모리 디바이스(114A)는 스토리지(152A)로부터 페이로드 데이터를 검색하고 페이로드 데이터를 대칭 엔진(154A)에 제공할 수 있다. 대칭 엔진(154A)은, 예를 들면, 시스템 컨트롤러(104A)의 대칭 키에 기초하여 페이로드 데이터의 해시를 생성할 수 있으며, 이는 키 레지스터(156A)에 저장될 수 있다. 해시는 대칭 액세스 데이터의 전부 또는 일부일 수 있다.
동작(404)에서, 시스템 컨트롤러(104A)는 대칭 메시지(407)를 게이트웨이 디바이스(102)로 전송할 수 있다. 게이트웨이 디바이스(102)는 동작(406)에서 대칭 메시지(407)를 대칭/비대칭 메모리 디바이스(108)에 기록할 수 있다. 동작(408)에서, 게이트웨이 디바이스(102)(예를 들면, 대칭/비대칭 메모리 디바이스(108))는, 예를 들면, 본원에서 기슬되는 바와 같이, 대칭 메시지를 검증할 수 있다. 예를 들면, 게이트웨이 디바이스(102)는 키 저장소(110)로부터 시스템 컨트롤러(104A)에 대한 대칭 키를 검색하고, 대칭 엔진(136)을 이용하여 페이로드 데이터의 해시를 생성할 수 있다. 대칭 엔진(136)에 의해 생성된 페이로드 데이터의 해시가 대칭 메시지(407)의 액세스 데이터와 동등한 경우, 메시지가 검증될 수 있다. 일치하지 않는 경우, 게이트웨이 디바이스(102)는 동작(410)에서 대칭 메시지(407)를 거부할 수 있다.
대칭 메시지(407)가 검증되는 경우, 게이트웨이 디바이스(102)는 메시지를 외부 시스템(118A)으로 전달할 수 있다. 일부 예에서, 비대칭 액세스 데이터가 사용될 수 있다. 예를 들면, 동작(412)에서, 게이트웨이 디바이스(102)(예를 들면, 대칭/비대칭 메모리 디바이스(108))는 대칭 메시지(407)의 페이로드 데이터를 포함하는 비대칭 메시지(409)를 생성할 수 있다. 예를 들면, 대칭/비대칭 메모리 디바이스(108)는 페이로드 데이터를 비대칭 엔진(134)에 제공할 수 있다. 비대칭 엔진(134)은, 예를 들면, 페이로드 데이터 및 게이트웨이 디바이스(102)의 개인 키에 기초하여 비대칭 액세스 데이터를 생성할 수 있다. 예를 들면, 대칭/비대칭 메모리 디바이스(108)는 페이로드 데이터의 해시를 생성한 다음, 개인 키로 해시를 암호화할 수 있다. 암호화된 해시는 비대칭 액세스 데이터의 전부 또는 일부일 수 있다. 동작(414)에서, 게이트웨이 디바이스(102)는 비대칭 메시지(409)를 외부 시스템(118A)으로 전송할 수 있다.
외부 시스템(118A)은 동작(416)에서 비대칭 메시지(409)를 수신하고, 동작(418)에서, 예를 들면, 비대칭 액세스 데이터가 페이로드 데이터와 일치하는지의 여부를 판단함으로써 메시지(409)를 검증할 수 있다. 메시지가 검증되는 경우, 외부 시스템은 동작(422)에서 메시지를 처리할 수 있다. 메시지가 검증되지 않는 경우, 외부 시스템(118A)은 동작(420)에서 메시지를 거부할 수 있다.
본원에서 기술되는 예시적인 보안 프로세싱 시스템(101)은 게이트웨이 디바이스(102) 및 시스템 컨트롤러(104A, 104B, 104C, 104N)의 메모리 디바이스를 보호하기 위해 액세스 제어를 이용한다. 예를 들면, 게이트웨이 디바이스(102)는 기술된 바와 같이 시스템 컨트롤러(104A, 104B, 104C, 104N)를 대신하여 비대칭 액세스 제어를 유리하게 구현한다. 이러한 방식으로, 시스템 컨트롤러(104A, 104B, 104C, 104N)는 비대칭 시스템 컨트롤러가 아닌 대칭으로 구현될 수 있다.
다양한 예에서, 게이트웨이 디바이스(102) 및 다양한 시스템 컨트롤러(104A, 104B, 104C, 104N)를 포함하는 보안 프로세싱 시스템(101)은, 예를 들면, 암호화 측정(cryptographic measurement), 암호화 보호 및/또는 자동 복구와 같은 다른 보안 특징을 구현할 수 있다.
암호화 측정에 따르면, 메모리 디바이스(108, 114A, 114B, 114C, 114N)의 일부 또는 모두는 개개의 대칭 엔진(또는 추가적인 대칭 엔진)을 이용하여 측정을 위한 신뢰의 핵심 루트(core root of trust for measurement)(CRTM)를 구현한다. 예를 들면, 메모리 디바이스가 검증된 페이로드 데이터(예를 들면, 본원에서 기술되는 바와 같이 검증됨)를 수신할 때, 메모리 디바이스는 적절한 암호화 키 (예를 들면, 디바이스 대칭 키)를 이용하여 페이로드 데이터의 해시를 생성할 수 있다. 해시는 메모리 디바이스의 안전한 위치에 기록될 수 있다. 일부 예에서, 암호화 키는 CRTM의 전부 또는 일부이며, 그들로부터 해시가 파생된다. 메모리 디바이스의 스토리지로부터 데이터를 판독하는 경우, 메모리 디바이스 컨트롤러는, 예를 들면, 판독 데이터를 해싱하고 생성된 해시를 데이터가 기록될 때 생성된 저장된 해시와 비교함으로써 판독 데이터를 CRTM과 비교할 수 있다. 일치하는 경우, 프로세스는 계속될 수 있다(예를 들면, 판독 데이터가 코드 인 경우, 프로세서 유닛은 판독 코드를 실행할 수 있다). 일치하지 않는 경우, 이는 메모리 디바이스 스토리지의 손상을 나타낼 수 있다. 메모리 디바이스는 에러를 반환하거나 요청 데이터가 사용되는 것을 방지할 수 있다.
자동 복구에 따르면, 메모리 디바이스는 시스템에 대한 데이터 및/또는 코드의 전부 또는 일부의 안전하고 복구 가능한 사본을 포함하는 보안(예를 들면, 읽기 전용) 스토리지 위치를 포함한다. 데이터 손상이 감지되는 경우, 예를 들면, CRTM을 참조하여, 보안 사본이 로딩(예를 들면, 실행)될 수 있다. 암호화 보호에 따르면, 대칭 및/또는 비대칭 암호화 엔진은 통신(예를 들면, 게이트웨이 디바이스(102)와 외부 시스템(118A, 118B) 사이의 통신, 시스템 컨트롤러(104A, 104B, 104C, 104N)와 게이트웨이 디바이스(102) 사이의 통신, 등)을 암호화하는데 사용된다.
도 5는 하나 이상의 장치(5030 내지 5050)의 일부로서 메모리 배열(5020)(예를 들면, 본원에서 기술되는 임의의 메모리 배열)을 가진 예시적인 프로세싱 시스템(5010)(예를 들면, 프로세싱 시스템(101))을 도시한다. 이러한 장치는 프로세싱 시스템(5010)과 같은 프로세싱 시스템을 포함할 수 있는 임의의 디바이스를 포함한다. 전술한 바와 같이, 프로세싱 시스템(5010)은 명령(순차적 또는 다른 방식)을 실행할 수 있는 임의의 디바이스일 수 있다. 예시적인 장치는 차량(5030)(예를 들면, 인포테인먼트 시스템, 제어 시스템 등의 일부로서), 드론(5050)(예를 들면, 제어 시스템의 일부로서), 가구 또는 가전 제품(5040)(예를 들면, 센서 시스템, 엔터테인먼트 또는 인포테인먼트 시스템의 일부로서), 등을 포함한다. 다른 예에서, 도시되지는 않았지만, 이러한 장치는 항공, 선박, 사물 인터넷(IOT) 및 기타 디바이스를 포함할 수 있다.
도 6은 프로세싱 디바이스를 위한 소프트웨어 아키텍처(602)의 일례를 나타내는 블록도(600)이다. 아키텍처(602)는 다양한 하드웨어 아키텍처와 함께 사용될 수 있다. 예를 들면, 소프트웨어 아키텍처(602)는 본원에서 기술되는 게이트웨이 디바이스(102) 및/또는 다양한 시스템 컨트롤러(104A, 104B, 104C, 104N) 중의 하나 이상을 기술할 수 있다. 도 6은 단지 소프트웨어 아키텍처(602)의 비제한적인 예시일 뿐이며, 본원에서 기술되는 기능을 용이하게 하기 위해 다른 많은 아키텍처들이 구현될 수 있다. 대표적인 하드웨어 계층(604)이 도시되어 있으며, 예를 들면, 상술된 참조 컴퓨팅 디바이스들 중의 임의의 것을 나타낼 수 있다. 일부 예에서, 하드웨어 계층(604)은 도 6의 아키텍처(602), 도 7의 아키텍처(700) 및/또는 본원에서 기술되는 보안 프로세싱 시스템(101)의 아키텍처에 따라 구현될 수 있다.
대표적인 하드웨어 계층(604)은 관련된 실행 가능 명령(608)을 갖는 하나 이상의 프로세싱 유닛(606)을 포함한다. 실행 가능 명령(608)은 도 1 내지 도 4의 방법, 모듈, 컴포넌트 등의 구현을 포함하는 소프트웨어 아키텍처(602)의 실행 가능 명령을 나타낸다. 하드웨어 계층(604)은 또한 실행 가능 명령(608)을 갖는 메모리 및/또는 스토리지 모듈(610)을 포함한다. 하드웨어 계층(604)은 또한 하드웨어 아키텍처(700)의 일부로서 도시된 다른 하드웨어와 같은 하드웨어 계층(604)의 임의의 다른 하드웨어를 나타내는 다른 하드웨어(612)에 의해 지시된 다른 하드웨어를 포함할 수도 있다.
도 6의 예시적인 아키텍처에서, 소프트웨어(602)는 각각의 계층이 특정 기능을 제공하는 계층의 스택으로서 개념화될 수 있다. 예를 들면, 소프트웨어(602)는 운영 체제(614), 라이브러리(616), 프레임워크/미들웨어(618), 애플리케이션(620) 및 프리젠테이션 계층(644)과 같은 계층들을 포함할 수 있다. 사용 중에, 애플리케이션(620) 및/또는 계층 내의 다른 컴포넌트들은 소프트웨어 스택을 통해 애플리케이션 프로그래밍 인터페이스(application programming interface)(API) 호출(624)을 호출하고, API 호출(624)에 응답하여 메시지(626)로서 도시된 응답, 반환 값 등을 수신할 수 있다. 예시된 계층은 사실상 대표적이며 모든 소프트웨어 아키텍처가 모든 계층을 갖는 것은 아니다. 예를 들면, 일부 모바일 또는 특수 목적 운영 체제는 프레임워크/미들웨어 계층(618)을 제공하지 않을 수 있는 반면, 다른 것들은 그러한 계층을 제공할 수 있다. 다른 소프트웨어 아키텍처는 추가 또는 상이한 계층을 포함할 수 있다.
운영 체제(614)는 하드웨어 리소스를 관리하고 공통 서비스를 제공할 수 있다. 운영 체제(614)는, 예를 들면, 커널(628), 서비스(630) 및 드라이버(632)를 포함할 수 있다. 커널(628)은 하드웨어와 다른 소프트웨어 계층 사이의 추상화 계층으로서 작용할 수 있다. 예를 들면, 커널(628)은 메모리 관리, 프로세서 관리(예를 들면, 스케줄링), 컴포넌트 관리, 네트워킹, 보안 설정 등을 담당할 수 있다. 서비스(630)은 다른 소프트웨어 계층들에 대한 다른 공통 서비스들을 제공할 수 있다. 일부 예에서, 서비스(630)은 인터럽트 서비스를 포함한다. 인터럽트 서비스는 하드웨어 또는 소프트웨어 인터럽트의 수신을 감지하고, 이에 응답하여 아키텍처(602)가 현재의 프로세싱을 일시 중지하고 인터럽트가 수신될 때 인터럽트 서비스 루틴(interrupt service routine)(ISR)을 실행하게 할 수 있다.
드라이버(632)는 기본 하드웨어를 제어하거나 또는 인터페이스 할 책임이 있을 수 있다. 예를 들면, 드라이버(632)는 하드웨어 구성에 따라 디스플레이 드라이버, 카메라 드라이버, 블루투스®(Bluetooth®) 드라이버, 플래시 메모리 드라이버, 직렬 통신 드라이버(예를 들면, 범용 직렬 버스(Universal Serial Bus)(USB) 드라이버), 와이-파이®(Wi-Fi®) 드라이버, NFC 드라이버, 오디오 드라이버, 전원 관리 드라이버 등을 포함할 수 있다.
라이브러리(616)는 애플리케이션(620) 및/또는 다른 컴포넌트 및/또는 계층에 의해 이용될 수 있는 공통 인프라를 제공할 수 있다. 라이브러리(616)는 전형적으로는 다른 소프트웨어 모듈이 기본 운영 체제(614) 기능(예를 들면, 커널(628), 서비스(630) 및/또는 드라이버(632))과 직접 인터페이스하는 것보다 더 쉬운 방식으로 작업을 수행할 수 있는 기능을 제공한다. 라이브러리(616)는 메모리 할당 기능, 문자열 조작 기능, 수학 기능 등과 같은 기능을 제공할 수 있는 시스템(634) 라이브러리(예를 들면, C 표준 라이브러리)를 포함할 수 있다. 또한, 라이브러리(616)는 미디어 라이브러리(예를 들면, MPEG4, H.264, MP3, AAC, AMR, JPG, PNG와 같은 다양한 미디어 포맷의 프리젠테이션 및 조작을 지원하는 라이브러리), 그래픽 라이브러리(예를 들면, 디스플레이의 그래픽 컨텐츠에서 2D 및 9D를 렌더링하는데 사용될 수 있는 OpenGL 프레임워크), 데이터베이스 라이브러리(예를 들면, 다양한 관계형 데이터베이스 기능을 제공할 수 있는 SQLite), 웹 라이브러리(예를 들면, 웹 탐색 기능을 제공할 수 있는 WebKit) 등과 같은 API 라이브러리(636)를 포함할 수 있다. 라이브러리(616)는 또한 애플리케이션(620) 및 다른 소프트웨어 컴포넌트/모듈에 많은 다른 API를 제공하기 위해 매우 다양한 다른 라이브러리(638)를 포함할 수도 있다.
프레임워크(618)(또한 미들웨어로도 지칭됨)는 애플리케이션(620) 및/또는 다른 소프트웨어 컴포넌트/모듈에 의해 이용될 수 있는 고수준 공통 인프라를 제공할 수 있다. 예를 들면, 프레임워크(618)는 다양한 그래픽 사용자 인터페이스(GUI) 기능, 고수준 리소스 관리, 고수준 위치 서비스 등을 제공할 수 있다. 프레임워크(618)는 애플리케이션(620) 및/또는 다른 소프트웨어 컴포넌트/모듈에 의해 이용될 수 있는 광범위한 다른 API를 제공할 수 있으며, 이들 중 일부는 특정 운영 체제 또는 플랫폼으로 특정될 수 있다.
애플리케이션(620)은 내장 애플리케이션(640) 및/또는 제 3 자 애플리케이션(642)을 포함한다. 대표적인 내장 애플리케이션(640)의 예는 연락처 애플리케이션, 브라우저 애플리케이션, 북 리더 애플리케이션, 위치 애플리케이션, 미디어 애플리케이션, 메시징 애플리케이션 및/또는 게임 애플리케이션을 포함할 수 있지만, 이에 제한되지는 않는다. 제 3 자 애플리케이션(642)은 임의의 내장 애플리케이션뿐만 아니라 광범위한 다른 애플리케이션을 포함할 수 있다. 특정 예에서, 제 3 자 애플리케이션(642)(예를 들면, 특정 플랫폼의 벤더 이외의 엔티티에 의해 안드로이드TM(AndroidTM) 또는 iOSTM 소프트웨어 개발 키트(SDK)를 이용하여 개발된 애플리케이션)은 iOSTM, 안드로이드TM, 윈도우®(Windows®) 폰 또는 기타 모바일 컴퓨팅 디바이스 운영 체제와 같은 모바일 운영 체제 상에서 실행되는 모바일 소프트웨어일 수 있다. 이러한 실시예에서, 제 3 자 애플리케이션(642)은 본원에서 기술되는 기능을 용이하게 하기 위해 운영 체제(614)와 같은 모바일 운영 체제에 의해 제공된 API 호출(624)을 호출할 수 있다.
애플리케이션(620)은 내장 운영 체제 기능(예를 들면, 커널(628), 서비스(630) 및/또는 드라이버(632)), 라이브러리(예를 들면, 시스템(634), API(636) 및 기타 라이브러리(638)), 프레임워크/미들웨어(618)를 이용하여 사용자 인터페이스를 생성하여 시스템 사용자와 상호 작용할 수 있다. 대안적으로 또는 추가적으로, 일부 시스템에서, 사용자와의 상호 작용은 프리젠테이션 계층(644)과 같은 프리젠테이션 계층을 통해 발생할 수 있다. 이러한 시스템에서, 애플리케이션/모듈 "로직"은 사용자와 상호 작용하는 애플리케이션/모듈의 측면과 분리될 수 있다.
일부 소프트웨어 아키텍처는 가상 머신을 사용한다. 예를 들면, 본원에서 기술되는 시스템은 하나 이상의 서버 컴퓨팅 머신에서 실행되는 하나 이상의 가상 머신을 이용하여 실행될 수 있다. 도 6의 예에서, 이것은 가상 머신(648)에 의해 예시된다. 가상 머신은 애플리케이션/모듈이 마치 하드웨어 컴퓨팅 디바이스에서 실행되는 것처럼 실행될 수 있는 소프트웨어 환경을 만든다. 가상 머신은 호스트 운영 체제(운영 체제(614))에 의해 호스팅되고, 일반적으로, 항상 그런 것은 아니지만, 가상 머신 모니터(646)를 가지며, 이는 가상 머신의 동작뿐만 아니라 호스트 운영 체제(즉, 운영 체제(614))와의 인터페이스를 관리한다. 소프트웨어 아키텍처는 운영 체제(650), 라이브러리(652), 프레임워크/미들웨어(654), 애플리케이션(656) 및/또는 프리젠테이션 계층(658)과 같은 가상 머신 내에서 실행된다. 가상 머신(648) 내에서 실행되는 이러한 소프트웨어 아키텍처의 계층은 전술 한 대응하는 계층과 동일하거나 상이할 수 있다.
도 7은 프로세싱 시스템 하드웨어 아키텍처(700)를 예시하는 블록도이며, 이러한 시스템 내에서 머신이 본원에서 논의되는 방법 중의 임의의 하나의 예를 수행하도록 명령의 세트 또는 시퀀스가 실행될 수 있다. 예를 들면, 아키텍처(700)는 도 6과 관련하여 설명된 소프트웨어 아키텍처(602)를 실행할 수 있다. 아키텍처(700)는 독립형 디바이스로서 작동하거나 다른 머신에 연결(예를 들면, 네트워크 연결)될 수 있다. 네트워크 배치에서, 아키텍처(700)는 서버-클라이언트 네트워크 환경에서 서버 또는 클라이언트 머신의 용량으로 작동할 수 있거나, 또는 피어투피어식(peer-to-peer)(또는 분산형) 네트워크 환경에서 피어 머신(peer machine)으로서 작용할 수 있다. 아키텍처(700)는 퍼스널 컴퓨터(PC), 태블릿 PC, 하이브리드 태블릿, 셋톱 박스(STB), 개인 휴대 정보 단말기(PDA), 휴대전화, 웹 기기, 네트워크 라우터, 스위치 또는 브리지, 또는 머신에 의해 수행될 작업을 지정하는 명령(순차적 또는 다른 방법)을 실행할 수 있는 임의의 머신에서 구현될 수 있다.
예시적인 아키텍처(700)는 적어도 하나의 프로세서(예를 들면, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU) 또는 둘 모두, 프로세서 코어, 컴퓨팅 노드 등)를 포함하는 프로세서 유닛(702)을 포함한다. 아키텍처(700)는 링크(708)(예를 들면, 버스)를 통해 서로 통신하는 메인 메모리(704) 및 정적 메모리(706)를 더 포함할 수 있다. 아키텍처(700)는 비디오 디스플레이 유닛(710), 영숫자 입력 디바이스(712)(예를 들면, 키보드), 및 사용자 인터페이스(UI) 내비게이션 디바이스(714)(예를 들면, 마우스)를 더 포함할 수 있다. 일부 예에서, 비디오 디스플레이 유닛(710), 입력 디바이스(712) 및 UI 내비게이션 디바이스(714)는 터치 스크린 디스플레이에 통합된다. 아키텍처(700)는 스토리지 디바이스(716)(예를 들면, 구동 유닛), 신호 생성 디바이스(718)(예를 들면, 스피커), 네트워크 인터페이스 디바이스(720), 및 위성항법시스템(GPS) 센서, 나침반, 가속도계 또는 기타 센서와 같은 하나 이상의 센서(도시되지 않음)를 추가로 포함할 수 있다.
일부 예에서, 프로세서 유닛(702) 또는 다른 적절한 하드웨어 컴포넌트는 하드웨어 인터럽트를 지원할 수 있다. 하드웨어 인터럽트에 응답하여, 프로세서 유닛(702)은, 예를 들면, 본원에서 기술되는 바와 같이, 프로세싱을 중지하고 인터럽트 서비스 루틴(ISR)을 실행할 수 있다.
스토리지 디바이스(716)는 본원에서 기술되는 방법들 또는 기능들 중의 임의의 하나 이상에 의해 구현되거나 이용되는 하나 이상의 데이터 구조 및 명령(724)(예를 들면, 소프트웨어)의 세트가 저장되는 컴퓨터 판독 가능 매체(722)를 포함한다. 명령(724)은 또한 메인 메모리(704) 내에, 정적 메모리(706) 내에, 및/또는 아키텍처(700)에 의해 명령이 실행되는 동안 프로세서(702) 내에 완전히 또는 적어도 부분적으로 상주할 수 있으며, 메인 메모리(704), 정적 메모리(706) 및/또는 프로세서(702)는 또한 컴퓨터 판독 가능 매체를 구성한다. 컴퓨터 판독 가능 매체(722)에 저장된 명령은, 예를 들면, 소프트웨어 아키텍처(602)를 구현하기 위한 명령, 본원에서 기술되는 임의의 특징을 실행하기 위한 명령 등을 포함할 수 있다.
컴퓨터 판독 가능 매체(722)가 일례에서는 단일 매체인 것으로 예시되어 있지만, "컴퓨터 판독 가능 매체(computer readable medium)"라는 용어는 하나 이상의 명령(724)을 저장하는 단일 매체 또는 다중 매체(예를 들면, 중앙 집중식 또는 분산형 데이터베이스, 및/또는 관련 캐시 및 서버)를 포함할 수 있다. "컴퓨터 판독 가능 매체"라는 용어는 또한 머신에 의해 실행하기 위한 명령을 저장, 인코딩 또는 운반할 수 있고, 머신이 본 발명의 방법론 중의 임의의 하나 이상을 수행하거나, 또는 이러한 명령에 의해 이용되거나 이러한 명령과 연관된 데이터 구조를 저장, 인코딩 또는 운반할 수 있는 임의의 유형 매체를 포함해야 한다. 따라서, "컴퓨터 판독 가능 매체"라는 용어는 고체 메모리, 및 광학 및 자기 매체를 포함하지만, 이에 제한되지는 않는다. 컴퓨터 판독 가능 매체의 구체적인 예로는 반도체 메모리 디바이스(예를 들면, 전기적 프로그램 가능 판독 전용 메모리(EPROM), 전기적 소거 및 프로그램 가능 판독 전용 메모리(EEPROM)) 및 플래시 메모리 디바이스를 포함하지만 이에 제한되지 않는 비휘발성 메모리; 내장 하드 디스크 및 외장형 디스크와 같은 자기 디스크; 광자기 디스크; 및 CD-ROM 및 DVD-ROM 디스크를 포함한다.
명령(724)은 다수의 공지된 전송 프로토콜(예를 들면, HTTP) 중의 임의의 하나를 사용하는 네트워크 인터페이스 디바이스(720)를 통해 전송 매체를 사용하여 통신 네트워크(726) 상에서 전송되거나 수신될 수 있다. 통신 네트워크의 예로는 근거리 통신망(LAN), 광역 통신망(WAN), 인터넷, 이동 전화 네트워크, 일반 전화(POTS) 네트워크, 및 무선 데이터 네트워크(예를 들면, Wi-Fi, 3G, 및 5G LTE/LTE-A 또는 WiMAX 네트워크)를 포함한다. "전송 매체"라는 용어는 머신에 의해 실행하기 위한 명령을 저장, 인코딩 또는 운반할 수 있는 임의의 무형 매체를 포함하며, 그러한 소프트웨어의 통신을 용이하게 하기 위한 디지털 또는 아날로그 통신 신호 또는 다른 무형 매체를 포함한다.
본원에서 기술되는 바와 같은 실시예는 로직 또는 다수의 컴포넌트, 엔진, 또는 모듈, 일관성을 위해 회로라고 지칭되는 회로를 포함하거나 그들 상에서 작동할 수 있지만, 이들 용어들은 상호 교환적으로 사용될 수 있음을 이해할 것이다. 회로는 본원에서 기술되는 작업을 수행하기 위해 하나 이상의 프로세서에 통신 가능하게 결합된 하드웨어, 소프트웨어, 또는 펌웨어일 수 있다. 회로는 하드웨어 회로일 수 있고, 이러한 회로는 특정 작업을 수행할 수 있는 유형의 엔티티로 간주될 수 있으며 특정 방식으로 구성 또는 배열될 수 있다. 일례에서, 회로는 (예를 들면, 내부적으로 또는 다른 회로와 같은 외부 엔티티에 대해) 회로로서 지정된 방식으로 배열될 수 있다. 일례에서, 하나 이상의 컴퓨팅 플랫폼(예를 들면, 독립형, 클라이언트 또는 서버 컴퓨팅 플랫폼) 또는 하나 이상의 하드웨어 프로세서의 전체 또는 일부는 펌웨어 또는 소프트웨어(예를 들면, 명령, 애플리케이션 부분 또는 애플리케이션)에 의해 지정된 작업을 수행하도록 작동하는 회로로 구성될 수 있다. 일례에서, 소프트웨어는 컴퓨터 판독 가능 매체 상에 상주할 수 있다. 일례에서, 소프트웨어는 회로의 기본 하드웨어에 의해 실행될 때 하드웨어로 하여금 지정된 작업을 수행하게 한다. 따라서, 하드웨어 회로라는 용어는 유형의 엔티티를 포함하는 것으로 이해되며, 물리적으로 구성되거나, 구체적으로 구성(예를 들면, 하드웨어 내장)되거나 또는 일시적으로(예를 들면, 순간적으로) 구성(예를 들면, 프로그래밍)되어 특정 방식으로 동작하거나 본원에서 기술되는 임의의 작업의 일부 또는 전부를 수행하는 것으로 이해된다.
회로가 일시적으로 구성되는 예를 고려할 때, 각각의 회로는 임의의 순간에 인스턴스화될 필요가 없다. 예를 들면, 회로가 소프트웨어를 사용하여 구성된 범용 하드웨어 프로세서를 포함하는 경우; 범용 하드웨어 프로세서는 서로 상이한 시간에 개개의 상이한 회로로 구성될 수 있다. 따라서, 소프트웨어는, 예를 들면, 한 시점에서 특정 회로를 구성하고 다른 시점에서 다른 회로를 구성하도록 하드웨어 프로세서를 구성할 수 있다.
상기 상세한 설명은 상세한 설명의 일부를 형성하는 첨부 도면에 대한 참조를 포함한다. 도면은 예시적인 것으로 실시될 수 있는 구체적인 예를 도시한다. 이들 실례를 본원에서는 "실시예"라고도 한다. 이러한 실례들은 도시되거나 기술된 이외의 요소를 포함할 수 있다. 그러나, 도시되거나 기술된 요소들을 포함하는 실시예들이 또한 고려된다. 또한, 특정 예(또는 이의 하나 이상의 양태)와 관련하여, 또는 본원에서 도시되거나 기술된 다른 예(또는 이의 하나 이상의 양태)와 관련하여 도시되거나 기술된 요소(또는 이의 하나 이상의 양태)의 임의의 조합 또는 치환을 사용하는 예도 또한 고려된다.
본 출원에서, "a" 또는 "an" 이라는 용어는, 특허 문서에서 일반적으로 사용되는 바와 같이, 다른 경우 또는 "적어도 하나" 또는 "하나 이상"을 사용하는 경우와는 독립하여 하나 이상을 포함하는 것으로 사용된다. 본 출원에서, "또는" 이라는 용어는, 달리 지시되지 않는 한, "A 또는 B"가 "B가 아니라 A", "A가 아니라 B", 및 "A 및 B"를 포함하는 바와 같이 비배타적인 것을 지칭하기 위해 사용된다. 첨부된 특허 청구범위에서, "포함하는(including)" 및 "여기서(in which)"라는 용어는 "포함하는(comprising)" 및 "여기서(wherein)"라는 용어의 알기 쉬운 영어의 균등 표현으로서 사용된다. 또한, 하기의 청구범위에서, "포함하는(including)" 및 "포함하는(comprising)"이라는 용어는 개방형이며, 즉, 청구범위에서 그러한 용어 뒤에 열거된 것들 이외의 요소를 포함하는 시스템, 디바이스, 물품 또는 프로세스는 여전히 청구범위의 범위에 속하는 것으로 간주된다. 또한, 하기의 청구범위에서, "제 1", "제 2", 및 "제 3" 등의 용어는 단지 라벨로서 사용되는 것이며, 그들의 목적을 위한 순서를 제안하려는 의도가 아니다.
상기 설명은 예시적인 것이지 제한하려는 것이 아니다. 예를 들면, 상술된 예(또는 이의 하나 이상의 양태)는 다른 것들과 조합으로 사용될 수 있다. 상기 설명을 검토할 때 당업자들이 사용하는 것과 같은 다른 예가 사용될 수 있다. 요약서는 독자가 기술 공개의 본질을 신속하게 확인할 수 있도록 하려는 것이다. 청구범위의 범위 또는 의미를 해석하거나 제한하는데 사용되지 않을 것이라는 이해를 가지고 제출하는 것이다. 또한, 상기 상세한 설명에서, 다양한 특징들이 함께 그룹화되어 개시내용을 간소화할 수도 있다. 그러나, 청구범위는 실례들이 상기 특징들의 서브 세트를 특징으로 할 수 있으므로 본원에서 개시된 모든 특징을 기술하지 않을 수 있다. 또한, 실례들은 특정 예에 개시된 것보다 더 적은 특징을 포함할 수도 있다. 따라서, 하기 청구범위는 상세한 설명에 포함되며, 청구 범위는 별도의 예로서 독립적으로 주장한다. 본원에서 개시되는 실시예의 범위는 첨부된 청구범위를 참조하여 그러한 청구범위에 부여되는 등가물의 전체 범위에 따라 결정되어야 한다.

Claims (20)

  1. 제 1 시스템 컨트롤러; 및 상기 제 1 시스템 컨트롤러와 통신하는 게이트웨이 디바이스를 포함하는 시스템으로서,
    상기 게이트웨이 디바이스는 게이트웨이 디바이스 메모리 디바이스를 포함하고,
    상기 게이트웨이 디바이스 메모리 디바이스는: 게이트웨이 디바이스 스토리지; 게이트웨이 디바이스 비대칭 엔진; 및 게이트웨이 디바이스 대칭 엔진을 포함하고,
    상기 게이트웨이 디바이스가:
    외부 시스템으로부터, 제 1 메시지 페이로드 데이터(first message payload data) 및 제 1 비대칭 액세스 데이터를 포함하는 제 1 메시지를 수신하는 단계;
    상기 게이트웨이 디바이스 비대칭 엔진으로, 상기 제 1 비대칭 액세스 데이터가 외부 시스템 공개 키에 적어도 부분적으로 기초하여 상기 제 1 메시지 페이로드 데이터와 일치하는 것을 결정하는 단계;
    상기 게이트웨이 디바이스와 통신하는 제 1 시스템 컨트롤러와 연관된 제 1 시스템 컨트롤러 대칭 키를 상기 게이트웨이 디바이스 스토리지로부터 검색하는 단계;
    상기 게이트웨이 디바이스 대칭 엔진으로, 상기 제 1 시스템 컨트롤러 대칭 키 및 상기 제 1 메시지 페이로드 데이터에 적어도 부분적으로 기초하여 제 1 대칭 액세스 데이터를 생성하는 단계; 및
    상기 제 1 메시지 페이로드 데이터 및 상기 제 1 대칭 액세스 데이터를 상기 제 1 시스템 컨트롤러로 전송하는 단계
    를 포함하는 동작을 수행하도록 구성되는, 시스템.
  2. 제 1 항에 있어서,
    상기 게이트웨이 디바이스가:
    제 2 메시지 페이로드 데이터, 제 2 대칭 액세스 데이터 및 외부 시스템의 지시(indication)를 포함하는 제 2 메시지를 상기 제 1 시스템 컨트롤러로부터 수신하는 단계;
    상기 게이트웨이 디바이스 대칭 엔진으로, 상기 제 2 메시지 페이로드 데이터가 상기 제 1 시스템 컨트롤러 대칭 키에 적어도 부분적으로 기초하여 상기 제 2 대칭 액세스 데이터와 일치하는 것을 결정하는 단계;
    상기 게이트웨이 디바이스 비대칭 엔진으로, 게이트웨이 디바이스 개인 키에 적어도 부분적으로 기초하여 제 2 비대칭 액세스 데이터를 생성하는 단계; 및
    상기 제 2 메시지 페이로드 데이터 및 상기 제 2 비대칭 액세스 데이터를 외부 시스템으로 전송하는 단계
    를 포함하는 동작을 수행하도록 추가로 구성되는, 시스템.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 제 1 시스템 컨트롤러는 제 1 시스템 컨트롤러 메모리 디바이스를 포함하고,
    상기 제 1 시스템 컨트롤러 메모리 디바이스는: 제 1 시스템 컨트롤러 스토리지; 및 상기 제 1 시스템 컨트롤러 및 상기 게이트웨이 디바이스에 결합된 통신 버스를 포함하는, 시스템.
  4. 제 3 항에 있어서,
    상기 제 1 시스템 컨트롤러가:
    상기 제 1 메시지 페이로드 데이터 및 제 1 대칭 액세스 데이터를 수신하는 단계;
    상기 제 1 시스템 컨트롤러 대칭 엔진으로, 상기 제 1 메시지 페이로드 데이터가 상기 제 1 시스템 컨트롤러 대칭 키에 적어도 부분적으로 기초하여 상기 제 1 대칭 액세스 데이터와 일치하는 것을 결정하는 단계; 및
    상기 제 1 메시지 페이로드 데이터의 적어도 일부를 상기 제 1 시스템 컨트롤러 스토리지에 기록하는 단계
    를 포함하는 동작을 수행하도록 구성되는, 시스템.
  5. 제 3 항에 있어서,
    상기 제 1 시스템 컨트롤러가:
    상기 제 1 시스템 컨트롤러 대칭 엔진으로, 제 2 대칭 액세스 데이터를 생성하는 단계;
    제 2 메시지 페이로드 데이터, 제 2 대칭 액세스 데이터, 및 외부 시스템의 지시를 포함하는 제 2 메시지를 생성하는 단계; 및
    상기 제 2 메시지를 상기 게이트웨이 디바이스로 전송하는 단계
    를 포함하는 동작을 수행하도록 구성되는, 시스템.
  6. 제 3 항에 있어서,
    상기 제 1 시스템 컨트롤러가:
    상기 제 1 시스템 컨트롤러 대칭 키의 프로비저닝(provisioning)을 나타내는 프로비저닝 신호를 수신하는 단계; 및
    상기 제 1 시스템 컨트롤러 대칭 키를 상기 통신 버스를 통해 상기 게이트웨이 디바이스로 전송하는 단계
    를 포함하는 동작을 수행하도록 구성되는, 시스템.
  7. 제 6 항에 있어서,
    상기 프로비저닝 신호가 시스템에 전력이 공급되었음을 나타내는, 시스템.
  8. 제 1 항 또는 제 2 항에 있어서,
    상기 게이트웨이 디바이스가:
    대칭 키 요청을 외부 데이터베이스에 전송하는 단계; 및
    상기 외부 데이터베이스로부터 제 1 시스템 컨트롤러 대칭 키를 포함하는 대칭 키 메시지를 수신하는 단계
    를 포함하는 동작을 수행하도록 추가로 구성되는, 시스템.
  9. 제 1 항 또는 제 2 항에 있어서,
    상기 게이트웨이 디바이스가:
    제 2 외부 시스템으로부터, 제 2 메시지 페이로드 데이터, 제 2 비대칭 액세스 데이터 및 제 2 시스템 컨트롤러의 지시를 포함하는 제 2 메시지를 수신하는 단계;
    상기 게이트웨이 디바이스 비대칭 엔진으로, 상기 제 2 비대칭 액세스 데이터가 제 2 외부 시스템 공개 키에 적어도 부분적으로 기초하여 상기 제 2 메시지 페이로드 데이터와 일치하는 것을 결정하는 단계;
    상기 게이트웨이 디바이스 스토리지로부터 상기 제 2 시스템 컨트롤러와 연관된 제 2 시스템 컨트롤러 대칭 키를 수신하는 단계;
    상기 게이트웨이 디바이스 대칭 엔진으로, 상기 제 2 시스템 컨트롤러 대칭 키 및 상기 제 2 메시지 페이로드 데이터에 적어도 부분적으로 기초하여 제 2 대칭 액세스 데이터를 생성하는 단계; 및
    상기 제 2 메시지 페이로드 데이터 및 상기 제 2 대칭 액세스 데이터를 상기 제 2 시스템 컨트롤러로 전송하는 단계
    를 포함하는 동작을 수행하도록 추가로 구성되는, 시스템.
  10. 보안 프로세싱 시스템의 게이트웨이 디바이스에 의해, 외부 시스템으로부터 제 1 메시지 페이로드 데이터 및 제 1 비대칭 액세스 데이터를 포함하는 제 1 메시지를 수신하는 단계;
    상기 게이트웨이 디바이스에 의해, 상기 제 1 비대칭 액세스 데이터가 외부 시스템 공개 키에 적어도 부분적으로 기초하여 상기 제 1 메시지 페이로드 데이터와 일치하는 것을 결정하는 단계;
    상기 게이트웨이 디바이스에 의해, 상기 게이트웨이 디바이스와 통신하는 제 1 시스템 컨트롤러와 연관된 제 1 시스템 컨트롤러 대칭 키에 액세스하는 단계;
    상기 게이트웨이 디바이스에 의해, 제 1 시스템 컨트롤러 대칭 키 및 제 1 메시지 페이로드 데이터에 적어도 부분적으로 기초하여 제 1 대칭 액세스 데이터를 생성하는 단계; 및
    상기 게이트웨이 디바이스에 의해, 상기 제 1 메시지 페이로드 데이터 및 제 1 대칭 액세스 데이터를 제 1 시스템 컨트롤러로 전송하는 단계
    를 포함하는 방법.
  11. 제 10 항에 있어서,
    상기 게이트웨이 디바이스에 의해, 상기 제 1 시스템 컨트롤러로부터 제 2 메시지 페이로드 데이터, 제 2 대칭 액세스 데이터 및 외부 시스템의 지시를 포함하는 제 2 메시지를 수신하는 단계;
    게이트웨이 디바이스 대칭 엔진을 가진 게이트웨이 디바이스에 의해, 상기 제 2 메시지 페이로드 데이터가 상기 제 1 시스템 컨트롤러 대칭 키에 적어도 부분적으로 기초하여 상기 제 2 대칭 액세스 데이터와 일치하는 것을 결정하는 단계;
    게이트웨이 디바이스 비대칭 엔진을 가진 게이트웨이 디바이스에 의해, 게이트웨이 디바이스 개인 키에 적어도 부분적으로 기초하여 제 2 비대칭 액세스 데이터를 생성하는 단계; 및
    상기 제 2 메시지 페이로드 데이터 및 상기 제 2 비대칭 액세스 데이터를 외부 시스템으로 전송하는 단계
    를 추가로 포함하는, 방법.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 제 1 시스템 컨트롤러에 의해, 제 1 메시지 페이로드 데이터 및 제 1 대칭 액세스 데이터를 수신하는 단계;
    제 1 시스템 컨트롤러 대칭 엔진을 가진 제 1 시스템 컨트롤러에 의해, 상기 제 1 메시지 페이로드 데이터가 상기 제 1 시스템 컨트롤러 대칭 키에 적어도 부분적으로 기초하여 상기 제 1 대칭 액세스 데이터와 일치하는 것을 결정하는 단계; 및
    상기 제 1 시스템 컨트롤러에 의해, 상기 제 1 메시지 페이로드 데이터의 적어도 일부를 제 1 시스템 컨트롤러 스토리지에 기록하는 단계
    를 추가로 포함하는, 방법.
  13. 제 10 항 또는 제 11 항에 있어서,
    상기 제 1 시스템 컨트롤러 대칭 엔진을 가진 제 1 시스템 컨트롤러에 의해, 제 2 대칭 액세스 데이터를 생성하는 단계;
    상기 제 1 시스템 컨트롤러에 의해, 제 2 메시지 페이로드 데이터, 제 2 대칭 액세스 데이터 및 외부 시스템의 지시를 포함하는 제 2 메시지를 생성하는 단계; 및
    상기 제 1 시스템 컨트롤러에 의해, 상기 제 2 메시지를 상기 게이트웨이 디바이스로 전송하는 단계
    를 추가로 포함하는, 방법.
  14. 제 10 항 또는 제 11 항에 있어서,
    상기 제 1 시스템 컨트롤러에 의해, 상기 제 1 시스템 컨트롤러 대칭 키의 프로비저닝을 나타내는 프로비저닝 신호를 수신하는 단계; 및
    상기 제 1 시스템 컨트롤러에 의해, 상기 제 1 시스템 컨트롤러 대칭 키를 상기 게이트웨이 디바이스로 전송하는 단계
    를 추가로 포함하는, 방법.
  15. 제 14 항에 있어서,
    상기 프로비저닝 신호가 시스템에 전력이 공급되었음을 나타내는, 방법.
  16. 제 10 항 또는 제 11 항에 있어서,
    상기 게이트웨이 디바이스에 의해, 대칭 키 요청을 외부 데이터베이스로 전송하는 단계; 및
    상기 게이트웨이 디바이스에 의해 및 상기 외부 데이터베이스로부터, 제 1 시스템 컨트롤러 대칭 키를 포함하는 대칭 키 메시지를 수신하는 단계
    를 추가로 포함하는, 방법.
  17. 제 10 항 또는 제 11 항에 있어서,
    상기 게이트웨이 디바이스에 의해, 제 2 외부 시스템으로부터 제 2 메시지 페이로드 데이터, 제 2 비대칭 액세스 데이터 및 제 2 시스템 컨트롤러의 지시를 포함하는 제 2 메시지를 수신하는 단계;
    상기 게이트웨이 디바이스에 의해 및 게이트웨이 디바이스 비대칭 엔진으로, 상기 제 2 비대칭 액세스 데이터가 제 2 외부 시스템 공개 키에 적어도 부분적으로 기초하여 상기 제 2 메시지 페이로드 데이터와 일치하는 것을 결정하는 단계;
    상기 게이트웨이 디바이스에 의해 및 게이트웨이 디바이스 스토리지로부터, 상기 제 2 시스템 컨트롤러와 연관된 제 2 시스템 컨트롤러 대칭 키를 수신하는 단계;
    게이트웨이 디바이스 대칭 엔진으로, 상기 제 2 시스템 컨트롤러 대칭 키 및 상기 제 2 메시지 페이로드 데이터에 적어도 부분적으로 기초하여 제 2 대칭 액세스 데이터를 생성하는 단계; 및
    상기 제 2 메시지 페이로드 데이터 및 상기 제 2 대칭 액세스 데이터를 상기 제 2 시스템 컨트롤러로 전송하는 단계
    를 추가로 포함하는, 방법.
  18. 컴퓨팅 디바이스에 의해 실행될 때, 컴퓨팅 디바이스로 하여금 하기 단계를 포함하는 동작을 수행하게 하는 명령을 포함하는 적어도 하나의 컴퓨터 판독 가능 매체:
    보안 컴퓨팅 시스템의 게이트웨이 디바이스에 의해, 외부 시스템으로부터 제 1 메시지 페이로드 데이터 및 제 1 비대칭 액세스 데이터를 포함하는 제 1 메시지를 수신하는 단계;
    게이트웨이 디바이스 비대칭 엔진을 가진 게이트웨이 디바이스에 의해, 상기 제 1 비대칭 액세스 데이터가 외부 시스템 공개 키에 적어도 부분적으로 기초하여 상기 제 1 메시지 페이로드 데이터와 일치하는 것을 결정하는 단계;
    상기 게이트웨이 디바이스에 의해, 상기 게이트웨이 디바이스와 통신하는 제 1 시스템 컨트롤러와 연관된 제 1 시스템 컨트롤러 대칭 키에 액세스하는 단계;
    게이트웨이 디바이스 대칭 엔진을 가진 게이트웨이 디바이스에 의해, 제 1 시스템 컨트롤러 대칭 키 및 제 1 메시지 페이로드 데이터에 적어도 부분적으로 기초하여 제 1 대칭 액세스 데이터를 생성하는 단계; 및
    상기 게이트웨이 디바이스에 의해, 상기 제 1 메시지 페이로드 데이터 및 상기 제 1 대칭 액세스 데이터를 제 1 시스템 컨트롤러로 전송하는 단계.
  19. 제 18 항에 있어서,
    상기 제 1 시스템 컨트롤러에 의해, 제 1 메시지 페이로드 데이터 및 제 1 대칭 액세스 데이터를 수신하는 단계;
    제 1 시스템 컨트롤러 대칭 엔진을 가진 제 1 시스템 컨트롤러에 의해, 상기 제 1 메시지 페이로드 데이터가 상기 제 1 시스템 컨트롤러 대칭 키에 적어도 부분적으로 기초하여 상기 제 1 대칭 액세스 데이터와 일치하는 것을 결정하는 단계; 및
    상기 제 1 시스템 컨트롤러에 의해, 상기 제 1 메시지 페이로드 데이터의 적어도 일부를 제 1 시스템 컨트롤러 스토리지에 기록하는 단계
    를 추가로 포함하는, 적어도 하나의 컴퓨터 판독 가능 매체.
  20. 제 18 항 또는 제 19 항에 있어서,
    상기 제 1 시스템 컨트롤러에 의해, 상기 제 1 시스템 컨트롤러 대칭 키의 프로비저닝을 나타내는 프로비저닝 신호를 수신하는 단계; 및
    상기 제 1 시스템 컨트롤러에 의해, 상기 제 1 시스템 컨트롤러 대칭 키를 상기 게이트웨이 디바이스로 전송하는 단계
    를 추가로 포함하는, 적어도 하나의 컴퓨터 판독 가능 매체.
KR1020197031517A 2017-03-24 2018-03-23 보안 메모리 장치 KR102390810B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762476598P 2017-03-24 2017-03-24
US62/476,598 2017-03-24
US15/692,802 US10560263B2 (en) 2017-03-24 2017-08-31 Secure memory arrangements
US15/692,802 2017-08-31
PCT/US2018/024084 WO2018175925A1 (en) 2017-03-24 2018-03-23 Secure memory arrangements

Publications (2)

Publication Number Publication Date
KR20190133208A true KR20190133208A (ko) 2019-12-02
KR102390810B1 KR102390810B1 (ko) 2022-04-26

Family

ID=63582996

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197031517A KR102390810B1 (ko) 2017-03-24 2018-03-23 보안 메모리 장치

Country Status (6)

Country Link
US (2) US10560263B2 (ko)
EP (1) EP3602953A4 (ko)
JP (2) JP7080897B2 (ko)
KR (1) KR102390810B1 (ko)
CN (2) CN110612699B (ko)
WO (1) WO2018175925A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11882209B2 (en) 2020-09-25 2024-01-23 SK Hynix Inc. Controller and electronic system having the same

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10560263B2 (en) 2017-03-24 2020-02-11 Micron Technology, Inc. Secure memory arrangements
TWI734314B (zh) 2018-12-31 2021-07-21 美商美光科技公司 用於將數位指紋提供至主機裝置之系統、方法及非暫時性電腦可讀媒體
US10868679B1 (en) * 2019-07-25 2020-12-15 Cypress Semiconductor Corporation Nonvolatile memory device with regions having separately programmable secure access features and related methods and systems
US20220070004A1 (en) * 2020-08-26 2022-03-03 Micron Technology, Inc. Memory write access control
US11501027B2 (en) * 2021-02-08 2022-11-15 Micron Technology, Inc. Mechanism to support writing files into a file system mounted in a secure memory device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020004899A1 (en) * 2000-07-05 2002-01-10 Nec Corporation Secure mail proxy system, method of managing security, and recording medium
US20090172401A1 (en) * 2007-11-01 2009-07-02 Infineon Technologies North America Corp. Method and system for controlling a device
US20150270968A1 (en) * 2014-03-21 2015-09-24 GM Global Technology Operations LLC Securing electronic control units using message authentication codes
US20160344715A1 (en) * 2015-05-18 2016-11-24 128 Technology, Inc. Network Device and Method for Processing a Session Using a Packet Signature

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009173A (en) * 1997-01-31 1999-12-28 Motorola, Inc. Encryption and decryption method and apparatus
GB0114317D0 (en) * 2001-06-13 2001-08-01 Kean Thomas A Method of protecting intellectual property cores on field programmable gate array
WO2004075477A1 (en) * 2003-02-21 2004-09-02 Telecom Italia S.P.A. Method and system for managing network access device using a smart card
US9105027B2 (en) * 2009-05-15 2015-08-11 Visa International Service Association Verification of portable consumer device for secure services
US10748146B2 (en) * 2009-06-16 2020-08-18 Heartland Payment Systems, Llc Tamper-resistant secure methods, systems and apparatuses for credit and debit transactions
US8826035B2 (en) 2009-12-23 2014-09-02 Intel Corporation Cumulative integrity check value (ICV) processor based memory content protection
US8863256B1 (en) * 2011-01-14 2014-10-14 Cisco Technology, Inc. System and method for enabling secure transactions using flexible identity management in a vehicular environment
JP5763943B2 (ja) * 2011-03-24 2015-08-12 株式会社東芝 情報処理装置及びプログラム
WO2012161980A1 (en) * 2011-05-20 2012-11-29 Citrix Systems, Inc. Providing multiple layers of security to file storage by an external storage provider
US9059980B2 (en) * 2011-05-26 2015-06-16 First Data Corporation Systems and methods for authenticating mobile devices
US9294564B2 (en) * 2011-06-30 2016-03-22 Amazon Technologies, Inc. Shadowing storage gateway
US9559845B2 (en) * 2012-03-01 2017-01-31 Ologn Technologies Ag Systems, methods and apparatuses for the secure transmission of media content
US8826432B2 (en) * 2012-12-06 2014-09-02 Airwatch, Llc Systems and methods for controlling email access
US9767627B2 (en) * 2014-07-11 2017-09-19 Entrust, Inc. Method and apparatus for providing vehicle security
US9380044B2 (en) * 2014-09-10 2016-06-28 Cisco Technology, Inc. Supporting differentiated secure communications among heterogeneous electronic devices
EP3220572B1 (en) * 2014-11-13 2019-12-18 Panasonic Intellectual Property Corporation of America Key management method, vehicle-mounted network system and key management device
DE102015209116A1 (de) * 2015-05-19 2016-11-24 Robert Bosch Gmbh Verfahren und Aktualisierungsgateway zum Aktualisieren eines eingebetteten Steuergerätes
US10397195B2 (en) 2015-07-17 2019-08-27 Robert Bosch Gmbh Method and system for shared key and message authentication over an insecure shared communication medium
EP3353985A1 (en) * 2015-09-22 2018-08-01 BAE Systems PLC Cryptographic key distribution
JP6217728B2 (ja) * 2015-10-19 2017-10-25 トヨタ自動車株式会社 車両システムおよび認証方法
EP3896899A1 (en) * 2015-11-20 2021-10-20 Genetec Inc. Secure layered encryption of data streams
US9660970B1 (en) * 2015-12-03 2017-05-23 Amazon Technologies, Inc. Cryptographic key distribution
US9705859B2 (en) * 2015-12-11 2017-07-11 Amazon Technologies, Inc. Key exchange through partially trusted third party
CN109076078B (zh) * 2016-02-22 2021-09-24 大陆汽车系统公司 用以建立和更新用于安全的车载网络通信的密钥的方法
US10880281B2 (en) * 2016-02-26 2020-12-29 Fornetix Llc Structure of policies for evaluating key attributes of encryption keys
KR101838511B1 (ko) * 2016-05-17 2018-03-14 현대자동차주식회사 암호화를 적용한 제어기 보안 방법 및 그 장치
KR101831134B1 (ko) * 2016-05-17 2018-02-26 현대자동차주식회사 암호화를 적용한 제어기 보안 방법 및 그 장치
US11146401B2 (en) * 2016-08-10 2021-10-12 Ford Global Technologies, Llc Software authentication before software update
JP2018042203A (ja) * 2016-09-09 2018-03-15 株式会社東芝 情報処理装置、サーバ装置、情報処理システム、移動体、および情報処理方法
US10560263B2 (en) 2017-03-24 2020-02-11 Micron Technology, Inc. Secure memory arrangements

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020004899A1 (en) * 2000-07-05 2002-01-10 Nec Corporation Secure mail proxy system, method of managing security, and recording medium
US20090172401A1 (en) * 2007-11-01 2009-07-02 Infineon Technologies North America Corp. Method and system for controlling a device
US20150270968A1 (en) * 2014-03-21 2015-09-24 GM Global Technology Operations LLC Securing electronic control units using message authentication codes
US20160344715A1 (en) * 2015-05-18 2016-11-24 128 Technology, Inc. Network Device and Method for Processing a Session Using a Packet Signature

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11882209B2 (en) 2020-09-25 2024-01-23 SK Hynix Inc. Controller and electronic system having the same

Also Published As

Publication number Publication date
CN110612699B (zh) 2022-08-19
CN115495395A (zh) 2022-12-20
EP3602953A1 (en) 2020-02-05
EP3602953A4 (en) 2020-12-09
CN110612699A (zh) 2019-12-24
US11611433B2 (en) 2023-03-21
US20200235916A1 (en) 2020-07-23
JP2022062190A (ja) 2022-04-19
WO2018175925A1 (en) 2018-09-27
KR102390810B1 (ko) 2022-04-26
US10560263B2 (en) 2020-02-11
JP2020512763A (ja) 2020-04-23
US20180278413A1 (en) 2018-09-27
JP7080897B2 (ja) 2022-06-06

Similar Documents

Publication Publication Date Title
KR102390810B1 (ko) 보안 메모리 장치
JP7077394B2 (ja) デバイスに匿名性を与えるキー認証ステートメントの生成
EP3568789B1 (en) Signature verification of field-programmable gate array programs
CN106063183B (zh) 用于云辅助密码学的方法和装置
US10382195B2 (en) Validating using an offload device security component
EP2791817B1 (en) Cryptographic certification of secure hosted execution environments
US11251942B2 (en) Secure communication channel between encryption/decryption component and trusted execution environment
US10243739B1 (en) Validating using an offload device security component
US10211985B1 (en) Validating using an offload device security component
US20150244717A1 (en) Trusted virtual computing system
EP3207488B1 (en) Identifying security boundaries on computing devices
US10621055B2 (en) Adaptive data recovery for clustered data devices
US20170099267A1 (en) Systems and methods for pkcs #8 private file key support
US20170140152A1 (en) Identifying Security Boundaries on Computing Devices
EP3736718B1 (en) A tpm-based secure multiparty computing system using a non-bypassable gateway
JP2022099256A (ja) 信頼された実行環境のためのスケーラブルな証明
US11120140B2 (en) Secure operations on encrypted data
US20200167085A1 (en) Operating a secure storage device
US11928216B2 (en) Protecting an entire system disk by encrypting data stored in a portion of the system disk
US20230224156A1 (en) Storage encryption for a trusted execution environment
US20240089239A1 (en) Techniques for a trusted execution environment at a compute server to use a remote accelerator
US9735965B1 (en) Systems and methods for protecting notification messages

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant