KR102473100B1 - 네트워크 트래픽의 보안 통신 - Google Patents

네트워크 트래픽의 보안 통신 Download PDF

Info

Publication number
KR102473100B1
KR102473100B1 KR1020197006297A KR20197006297A KR102473100B1 KR 102473100 B1 KR102473100 B1 KR 102473100B1 KR 1020197006297 A KR1020197006297 A KR 1020197006297A KR 20197006297 A KR20197006297 A KR 20197006297A KR 102473100 B1 KR102473100 B1 KR 102473100B1
Authority
KR
South Korea
Prior art keywords
key
network
message
node
keys
Prior art date
Application number
KR1020197006297A
Other languages
English (en)
Other versions
KR20190034324A (ko
Inventor
트리스탄 에프. 샤아프
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Priority to KR1020227041768A priority Critical patent/KR20220166365A/ko
Publication of KR20190034324A publication Critical patent/KR20190034324A/ko
Application granted granted Critical
Publication of KR102473100B1 publication Critical patent/KR102473100B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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/3234Cryptographic 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 additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • 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
    • H04L2209/127Trusted platform modules [TPM]
    • 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/84Vehicles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication

Abstract

트래픽을 안전하게 통신하는 것에 관한 기법들이 개시된다. 일부 실시예들에서, 장치는 네트워크를 통해 디바이스들 사이의 데이터 통신들을 암호화하는 데 사용 가능한 키들을 저장하는 보안 회로를 포함한다. 보안 회로는 키들에 대한 사용 기준들의 세트를 정의하는 정보를 저장하도록 구성된다. 사용 기준들의 세트는 제1 키가 제1 디바이스로부터 제2 디바이스로 통신되고 있는 데이터를 암호화하는 데 전용된다는 것을 명시한다. 보안 회로는, 제1 키로 메시지의 일부분을 암호화하라는 요청 - 이 요청은 상기 메시지가 상기 제1 디바이스로부터 상기 제2 디바이스로 송신되고 있음을 나타냄 - 을 수신하고, 사용 기준들의 세트가 제1 디바이스로부터 제2 디바이스로 송신되고 있는 메시지에 대해 제1 키로 암호화하는 것을 허용한다는 결정에 응답하여, 제1 키로 메시지의 일부분을 암호화하도록 구성된다.

Description

네트워크 트래픽의 보안 통신
본 발명은 일반적으로 컴퓨터 네트워크들에 관한 것이며, 더 구체적으로는, 네트워크를 통해 트래픽을 안전하게 통신하는 것에 관한 것이다.
보안 문제는 컴퓨터 네트워크를 설계할 때 일반적인 고려사항이다. 근거리 네트워크(LAN: local area network)의 경우에, 네트워크 설계는 내부 LAN을 인터넷과 같은 외부 네트워크에 결합하는 게이트웨이 디바이스를 포함할 수 있다. LAN을 격리시키기 위해, 게이트웨이 디바이스는 착신 및/또는 발신 트래픽의 흐름을 규제하는 방화벽 기기(firewall appliance)를 구현할 수 있다. 예를 들어, 이러한 기기는, 해당 기기가 트래픽이 방화벽을 통과하도록 허용하기 전에, 소스 포트와 목적지 포트뿐만 아니라, 착신 트래픽의 소스 어드레스들을 분석할 수 있다. 예를 들어, 악의적인 개체가 미지의 유형의 트래픽과 연관된 네트워크 포트에 액세스하려고 시도하고 있는 경우, 게이트웨이는 트래픽이 네트워크에 진입하는 것을 차단할 수 있다.
본 발명은 트래픽이 네트워크 내의 디바이스들 사이에서 안전하게 통신되는 실시예들을 기술한다. 다양한 실시예들에서, 보안 회로는 네트워크를 통해 디바이스들 사이의 데이터 통신들을 암호화하는 데 사용 가능한 키들을 저장한다. 보안 회로는 키들에 대한 사용 기준들의 세트를 정의하는 정보를 저장하도록 구성된다. 사용 기준들의 세트는 제1 키가 제1 디바이스로부터 제2 디바이스로 통신되고 있는 데이터를 암호화하는 데 전용된다는 것을 명시한다. 보안 회로는 제1 키로 메시지의 일부분을 암호화하라는 요청을 수신하도록 구성된다. 이러한 실시예에서, 요청은 메시지가 제1 디바이스로부터 제2 디바이스로 송신되고 있음을 나타낸다. 보안 회로는, 사용 기준들의 세트가 제1 디바이스로부터 제2 디바이스로 송신되고 있는 메시지에 대해 제1 키로 암호화하는 것을 허용한다는 결정에 응답하여, 제1 키로 메시지의 일부분을 암호화하도록 구성된다. 일부 실시예들에서, 보안 회로는, 제1 디바이스에 결합되고, 메시지의 일부분을 암호화하여, 해당 메시지가 제1 디바이스에 의해 송신됨을 확립하는 데 암호화된 일부분이 사용 가능하도록 구성된다.
도 1은 보안 네트워크의 일례를 도시하는 블록도이다.
도 2는 보안 네트워크 내의 하드웨어 보안 모듈의 일례를 도시하는 블록도이다.
도 3은 보안 네트워크 내의 2개의 노드 사이의 보안 통신의 일례를 도시하는 통신도이다.
도 4는 2개의 노드 사이의 다수의 블록의 보안 통신의 일례를 도시하는 통신도이다.
도 5는 보안 네트워크 내의 노드들 사이의 통신을 강제하기 위한 정책 사용의 일례를 도시하는 블록도이다.
도 6a 및 도 6b는 보안 네트워크 통신을 위한 방법들의 예들을 도시하는 흐름도들이다.
도 7은 네트워크 프로비저닝(provisioning)의 일례를 도시하는 블록도이다.
도 8a 및 도 8b는 네트워크 프로비저닝과 연관된 예시적인 통신들을 도시하는 통신도들이다.
도 9는 보안 네트워크와 연관된 진단 모드에 대한 예시적인 방법의 흐름도이다.
도 10a 내지 도 10c는 네트워크 프로비저닝과 연관된 예시적인 방법들의 흐름도들이다.
도 11은 보안 네트워크의 하나 이상의 구성요소를 구현할 수 있는 예시적인 컴퓨터 시스템을 도시한 블록도이다.
본 발명은 "일 실시예" 또는 "실시예"에 대한 참조들을 포함한다. "일 실시예에서" 또는 "실시예에서"라는 문구들의 등장들은 반드시 동일한 실시예를 지칭하는 것은 아니다. 특정 특징들, 구조들 또는 특성들이 본 발명과 일관성을 유지하는 임의의 적합한 방식으로 조합될 수 있다.
본 발명 내에서, 상이한 개체들("유닛들", "회로들", 다른 구성요소들 등으로 다양하게 지칭될 수 있음)은 하나 이상의 태스크 또는 동작을 수행하도록 "구성된" 것으로 기술되거나 또는 청구될 수 있다. 이러한 어구 - [하나 이상의 태스크를 수행]하도록 구성된 [개체] - 는 본 명세서에서 구조물(즉, 전자 회로와 같은 물리적인 것)을 지칭하는 데 사용된다. 더 구체적으로는, 이러한 어구는 이 구조물이 동작 동안 하나 이상의 태스크를 수행하도록 배열됨을 나타내는 데 사용된다. 구조물이 현재 동작되고 있지 않더라도, 그 구조물은 일부 태스크를 수행"하도록 구성된다"고 할 수 있다. 예를 들어, "광역 네트워크(wide area network)를 통한 통신을 용이하게 하도록 구성된 네트워크 인터페이스"는, 예를 들어, 컴퓨터 시스템이 현재 사용되고 있지 않더라도(예컨대, 전원(power supply)이 그 컴퓨터 시스템에 접속되어 있지 않음), 동작 동안 이러한 기능을 수행하는 회로부를 포괄하도록 의도된다. 따라서, 일부 태스크를 수행"하도록 구성된" 것으로 기술된 또는 인용된 개체는 디바이스, 회로, 태스크를 구현하도록 실행 가능한 프로그램 명령어들을 저장하는 메모리 등과 같은 물리적인 무엇인가를 지칭한다. 이 문구는 본 명세서에서 무형적인 무엇인가를 지칭하는 데 사용되지 않는다. 따라서, 구성"하도록 구성된" 것은 본 명세서에서 애플리케이션 프로그래밍 인터페이스(API)와 같은 소프트웨어 개체를 지칭하는 데 사용되지 않는다.
용어 "~하도록 구성된"은 "~하도록 구성가능한"을 의미하도록 의도되지 않는다. 예를 들어, 프로그램되지 않은 FPGA는, 그것이 일부 특정 기능을 수행"하도록 구성가능"할 수 있고, 프로그래밍 후 그 기능을 수행"하도록 구성"될 수 있지만, 그것을 수행"하도록 구성된" 것으로 간주되지 않을 것이다.
구조물이 하나 이상의 태스크를 수행"하도록 구성"됨을 첨부된 청구범위에 인용하는 것은 명백히 해당 청구항 구성요소에 대하여 35 U.S.C. §(112)(f)를 적용하지 않도록 의도된다. 따라서, 출원된 본 출원서의 어떠한 청구항들도 수단+기능 구성요소들을 갖는 것으로 해석되도록 의도되지 않는다. 출원인이 심사 동안 Section(112)(f)의 적용을 바란다면, [기능을 수행]"하기 위한 수단" 구조를 이용하여 청구항 구성요소들을 열거할 것이다.
본 명세서에 사용되는 바와 같이, 용어 "제1", "제2" 등은, 그들이 선행하고 있는 명사의 라벨로 사용되며, 구체적으로 진술되지 않는 한, 어떠한 유형의 순번(예를 들어, 공간적, 시간적, 논리적 등)도 암시하지 않는다. 예를 들어, 네트워크 노드가 제1 프레임 및 제2 프레임을 전달할 때, 용어 "제1" 및 "제2"는 제2 프레임을 송신하기 전에 제1 프레임이 송신됨을 암시하지 않는다. 다시 말하면, "제1" 및 "제2" 프레임들은 임의의 적합한 순번으로 또는 심지어 병렬로 송신될 수 있다.
본 명세서에서 사용되는 바와 같이, 용어 "기초하여"는 결정에 영향을 주는 하나 이상의 인자를 기술하기 위해 사용된다. 이러한 용어는 추가적인 인자들이 결정에 영향을 줄 수 있다는 가능성을 배제하지 않는다. 즉, 결정은 단지 명시된 인자들에만 기초할 수 있거나, 또는 그 명시된 인자들뿐만 아니라 다른, 명시되지 않은 인자들에도 기초할 수 있다. "B에 기초하여 A를 결정한다"라는 문구를 고려한다. 이 문구는 B가 A의 결정에 영향을 주거나 A를 결정하는 데 사용되는 인자라는 것을 명시한다. 이 문구는 A의 결정이 C와 같은 일부 다른 인자에 또한 기초할 수 있음을 배제하지 않는다. 또한, 이 문구는 A가 단지 B에만 기초하여 결정되는 실시예를 포괄하도록 의도된다. 따라서, 본 명세서에서 사용되는 바와 같이, "~에 기초하여"라는 문구는 "~에 적어도 부분적으로 기초하여"라는 문구와 동의어이다.
네트워크를 설계할 때 외부 위협들을 고려하는 것이 중요하지만, 내부 네트워크 노드가 손상되는 것과 같은 내부 위협들을 고려하는 것이 또한 유리할 수 있다. 예를 들어, 사무실 환경에서, 종업원은 악성 첨부파일(malicious attachment)을 갖는 이메일을 수신할 수 있고, 종업원의 컴퓨터를 손상시키는 첨부파일의 실행을 시작할 수 있다. 이러한 보안 침해(breach)를 통해, 악의적인 행위자(malicious actor)는 그 컴퓨터뿐만 아니라 사무실 LAN을 통해 결합된 다른 컴퓨터들에도 액세스할 수 있다. 다른 예로서, 범죄 행위자(nefarious actor)가 콘텐츠를 수신하기 위해 인터넷으로의 셀룰러 접속을 갖는 내비게이션 유닛을 침해하는 것에 의해 차량의 기능에 대한 제어를 획득할 수 있다는 것이 최근에 입증되었다. 이 유닛을 손상시킨 후에, 이어서 그 행위자는, 어떤 내부 네트워크 규제들도 부과되지 않았기 때문에, 차량 내의 다른 제어 유닛들에 명령어들을 발행할 수 있다.
본 발명은 LAN과 같은 네트워크를 보안하기 위한 다양한 기법들을 기술한다. 후술되는 바와 같이, 다양한 실시예들에서, 네트워크 내의 다수의 노드는 네트워크를 통해 통신되고 있는 트래픽의 일부분을 암호화 및 복호화하도록 구성된 각자의 하드웨어 보안 모듈(HSM: hardware security module)들에 결합된다. 일부 실시예들에서, HSM들은 또한 트래픽의 소스들 및 목적지들에 기초하여 암호화 키들의 사용을 규제하는 정책 정보를 저장하도록 구성된다. 노드가 네트워크 트래픽을 불허된 목적지로 통신하려고 시도하는 경우, 그의 HSM은 그의 정책 정보에 기초하여 트래픽의 일부분을 암호화하는 것을 거절할 수 있다. 목적지에서의 HSM은 또한 그의 정책 정보에 기초하여 소스 노드로부터의 임의의 트래픽을 복호화하는 것을 거절할 수 있다. 트래픽을 암호화하거나 복호화하는 것을 거절함으로써, HSM들은 네트워크 상에서 발생할 수 있는 통신을 규제할 수 있다. 일부 경우에, 이러한 방식으로 통신을 규제하는 것은, 노드가 손상되는 이벤트 시에 네트워크의 잠재적 노출을 감소시킬 수 있다. 일부 경우에, 노드가 손상될 때를 식별하고/하거나, 불허된 노드가 네트워크 내로 삽입되었던 때를 판정하는 것이 또한 가능할 수 있다.
본 발명은 도 1 및 도 2와 연계하여 보안 네트워크 내의 구성요소들에 대한 설명에서 시작된다. 노드들 사이의 네트워크 통신들이 도 3 내지 도 6에 관하여 기술된다. 네트워크 구성요소들의 프로비저닝이 도 7 내지 도 10c에 관하여 기술된다. 마지막으로, 하나 이상의 네트워크 구성요소를 구현하는 데 사용될 수 있는 예시적인 컴퓨터 시스템이 도 11에서 논의된다.
이제 도 1을 참조하면, 보안 디바이스(100)의 블록도가 도시된다. 도시된 실시예에서, 네트워크(100)는 링크(112)들을 통해 다수의 노드(120A 내지 120D)에 결합되는 스위치(110)를 포함한다. 노드(120A 내지 120D)들은 이어서 링크(122)들을 통해 각자의 하드웨어 보안 모듈(HSM)(130A 내지 130D)들에 결합된다. 스위치(110)는 또한 링크(112)를 통해 게이트웨이(140)에 결합된다. 다양한 실시예들에서, 네트워크(100)는 도시된 것과는 상이하게 구현될 수 있다. 따라서, 일부 실시예들에서는, 더 많은(또는 더 적은) 스위치(110)들 및 노드(120)들이 존재할 수 있고, 노드(120)들 사이의 중복 링크(112)들이 또한 존재할 수 있고, 등일 수 있다.
일부 실시예들에서, 보안 네트워크(100)는 노드(120)들 사이에서 네트워크 트래픽을 통신하도록 구성된 LAN이다. 다양한 실시예들에서, 네트워크 트래픽은 스위치(110)들에 의해 노드(120)들 사이에서 라우팅된다. 따라서, 스위치(110)들은 프레임들을 그들의 명시된 목적지들로 적절히 송신하기 위해, 노드(120)들로부터 수신된 데이터 프레임들을 큐잉(queue)하도록 그리고 프레임별로 명시된 소스 및 목적지 어드레스들을 분석하도록 구성될 수 있다. 일부 실시예들에서, 스위치(110)들은 IEEE 802.3에 따라 프레임들(즉, 이더넷 프레임들)을 라우팅하도록 구성되지만; 다른 실시예들에서는, 다른 네트워킹 프로토콜들이 지원될 수 있다. 도시된 실시예에서, 네트워크(100)는 게이트웨이 디바이스(140)를 통해 외부 네트워크(예컨대, 인터넷)에 결합된다. 일부 실시예들에서, 게이트웨이(140)는, 방화벽을 구현하도록 그리고 네트워크(100)에 대한 네트워크 어드레스 변환(NAT: network address translation)을 수행하도록 구성된다.
노드(120)들은 네트워크를 통해 통신하도록 구성된 임의의 적합한 디바이스들에 대응할 수 있다. 일부 실시예들에서, 노드(120)들은 데스크톱 및 랩톱 컴퓨터들, 모바일 디바이스들, 스마트 텔레비전, 스마트 기기 등과 같은, 홈 또는 사무실 네트워크 내의 디바이스들일 수 있다. 일부 실시예들에서, 노드(120)들은 다양한 동작들을 수행하도록 구성된 제조 설비(fabrication plant) 내의 기계들이다. 일부 실시예들에서, 노드(120)들은 항공기, 보트, 자동차, 레저 차량(RV: recreational vehicle) 등과 같은 차량 내의 전자 제어 유닛(ECU: electronic control unit)들이다. 본 명세서에 사용되는 바와 같이, 용어 "전자 제어 유닛(ECU: electronic control unit)"은 본 기술분야에서 그의 이해되는 의미에 따라 해석되어야 하며, 차량의 하나 이상의 동작을 제어하는 내장형 시스템(예컨대, 마이크로컨트롤러)을 포함한다. 이러한 실시예에서, 노드(120)들은, 예를 들어, 모터의 작동을 제어하기 위해 토크-제어(torque-control) 메시지들 및 휠-속도(wheel-speed) 메시지들을 통신하는 모터 ECU; 제동(braking)을 적용하기 위해 브레이크 제어(brake control) 메시지들을 통신하는 브레이크-시스템 ECU; 비디오를 통신하는 백업 카메라 ECU; 방향전환(turning)을 제어하기 위해 조향-휠-각도(steering-wheel-angle) 메시지들을 통신하는 조향 ECU 등을 포함할 수 있다.
다양한 실시예들에서, 네트워크(100)를 통해 통신되는 트래픽은 일부 예측가능한 특성들을 가질 수 있다. 예를 들어, 주어진 노드(120)는 설계된 대로 정확하게 동작할 때 단지 다른 노드들의 서브세트에만 트래픽을 통신할 수 있는데 - 예컨대, 노드(120A)는 노드(120B, 120C)와 통신할 수 있지만, 노드(120D)와는 통신할 수 없다. 다른 예로서, 주어진 노드(120)는 설계된 대로 동작할 때 단지 한 방향으로만 트래픽을 통신할 수 있는데 - 예컨대, 노드(120B)는 노드(120C, 120D)들로 트래픽을 멀티캐스팅할 수 있지만, 노드(120C, 120D)들은 어떠한 트래픽도 노드(120B)로 다시 통신할 수 없다. 후술되는 바와 같이, 이러한 예측가능한 특성들은, 주어진 노드(120)가 설계된 대로 트래픽을 통신하는 것을 보장하기 위해, 이 노드(120)에 대한 정책(134)이 정의되도록 허용할 수 있다. (예컨대, 노드(120)가 손상되었기 때문에) 노드(120)가 이러한 정책으로부터 벗어나려고 시도하는 경우, 보안 네트워크(100)는 HSM(130)들을 통해 그렇게 하는 노드의 능력을 규제하도록 구성될 수 있다.
일 실시예에서, 하드웨어 보안 모듈(HSM)(130)들은 하나 이상의 내부 저장 키(132)를 사용함으로써 노드(120)들 사이에 통신되는 트래픽을 암호화 및 복호화하도록 구성된 보안 회로들이다. 본 명세서에 사용된 바와 같이, 용어 "보안 회로"는 격리된, 내부 리소스(예컨대, 키(132)들)를 외부 개체(예컨대, 노드(120))에 의해 직접 액세스되는 것으로부터 보호하는 회로를 지칭한다. 일부 실시예들에서, 주어진 HSM(130)은 주어진 노드(120)에 대해 수행되는 모든 암호화를 담당할 수 있다. 예를 들어, 데이터 프레임들의 세트를 송신하는 데 있어서, 노드(120A)는 HSM(130A)이 각각의 프레임의 페이로드(payload)를 암호화하라고 요청할 수 있다. 그러나, 다른 실시예들에서, 주어진 HSM(130)은 주어진 노드(120)에 의해 송신된 암호화된 데이터의 일부분만을 담당할 수 있으며, 이는 남은 암호화를 처리할 수 있다. 일부 실시예들에서, 이는 노드(120)와 HSM(130) 사이의 저속 접속 링크(122)에 기인할 수 있다. 결과적으로, 주어진 노드(120)는 주어진 프레임(예컨대, 페이로드)에서 암호화의 대부분을 수행할 수 있는 반면, HSM(130)은 남은 작은 부분을 암호화할 수 있다. 다양한 실시예들에서, HSM(130)이 주어진 노드(120)보다 잠재적으로 더 안전하고 따라서 손상될 가능성이 적기 때문에, HSM(130)은 적어도 일부 부분의 암호화 및 복호화에 관여된다. 일부 실시예들에서, 도 2에 관하여 후술되는 바와 같이, 이러한 추가된 보안은 HSM(130)이 제한된 공격 표면(limited attack surface)을 제시하고 내부 구성요소들을 격리시키는 것에 기인한다.
다양한 실시예들에서, HSM(130)들은, 프레임의 무결성을 검증하고/하거나 프레임의 소스 노드(120)를 인증하는 데 사용 가능한 프레임의 일부분을 암호화 및 복호화하도록 구성된다. 일부 실시예들에서, 이러한 부분은 노드(120)에 의해 통신되고 있는 프레임에 포함된 메시지 인증 코드(MAC: message authentication code)이다. (본 명세서에 사용되는 바와 같이, 용어 "메시지 인증 코드"는 본 기술분야에서 그것의 이해되는 의미에 따라 해석될 것이고, 메시지를 인증하는 데 사용 가능하고 키잉된 함수(keyed function)를 통해 계산되는 데이터를 포함한다.) 예를 들어, 일부 실시예들에서, 노드(120)들은 IEEE 802.1AE(미디어 액세스 제어 보안(MACSec: Media Access Control Security)으로도 지칭됨)에 따라 프레임들을 통신하도록 구성된다. 프레임을 생성함에 있어서, 노드(120)는 갈르와/카운터 모드에서의 개선된 암호화 표준(AES-GCM: Advanced Encryption Standard in Galois/Counter Mode)을 사용하여 프레임 페이로드를 암호화할 수 있다. 이러한 알고리즘을 적용하는 것의 일부로서, 노드(120)는 프레임의 무결성을 검사하는 데 사용 가능하고 갈루아 메시지 인증 코드(GMAC: Galois message authentication code)로 지칭되는 값(즉, 무결성 검사 값(ICV: integrity check value))을 생성한다. 이러한 실시예에서, 주어진 노드(120)가 프레임의 소스인 경우, 그의 각자의 HSM(130)은 암호화 키(132)로 프레임 내의 GMAC를 암호화하도록 구성된다. 이어서, 프레임이 수신자 노드(120)로 통신될 때, 그 노드(120)에서의 HSM(130)은 GMAC를 복호화하고, 따라서 수신자 노드(120)는 복호화된 GMAC를 사용하여, 수신된 프레임의 무결성을 검증함으로써, 프레임이 올바른 소스로부터 온 것이며 변조(tamper)되지 않았다는 것을 보장할 수 있다. 다른 실시예들에서, HSM(130)들은 프레임의 다른 일부분들을 암호화하고 복호화하도록 구성될 수 있으며; 노드(120)들은 또한 MACsec 이외의 프로토콜을 이용하여 통신할 수 있다. 예를 들어, 다른 실시예들에서, HSM(130)들은 이더넷 프레임들 내의 프레임 검사 시퀀스(FCS: frame check sequence)를 암호화하도록 구성된다. 또 다른 실시예에서, HSM(130)들은 인터넷 프로토콜(IP) 패킷들 내의 헤더 체크섬(header checksum)들을 암호화하도록 구성될 수 있다. 따라서, 다양한 실시예들이 MAC들과 관련하여 아래에서 제시되지만, 그것들의 설명은 MAC들이 사용되지 않는 다른 실시예들에 적용 가능할 수 있다.
일부 실시예들에서, HSM(130)들은 도 3에 관하여 후술되는 바와 같이 트래픽의 스트림 내의 다른 프레임들 이외의 프레임의 일부분(예컨대, 각각의 MAC)을 암호화하도록 구성된다. 예를 들어, 일 실시예에서, HSM(130)들은 전자 코드북(ECB: Electronic Codebook) 모드에서 AES를 각각의 부분에 적용하도록 구성된다. 다른 실시예들에서, 프레임의 세트에 대해, HSM(130)들은, 도 4에 관하여 후술되는 바와 같이, 블록 체인(block chaining)을 채용하여, 나중에 암호화되는 부분이 이전 부분에 의존적이 되도록 다수의 프레임으로부터의 다수의 부분을 암호화하도록 구성될 수 있다. 예를 들어, 일 실시예에서, HSM들은 암호 블록 체인(CBC: Cipher Block Chaining) 모드에서 AES를 적용하여 다수의 일부분을 함께 체인화한다. 일부 경우에, 블록 체인을 사용하는 것은 노드(120)와 HSM(130) 사이의 링크(122)를 통해 통신되는 트래픽의 양을 감소시킬 수 있다.
다양한 실시예들에서, HSM(130)들은 노드(120)에 의해 통신되고 있는 트래픽에 기초하여 상이한 키(132)들을 사용하도록 구성된다. 즉, 일부 실시예들에서, 각각의 키(132)는 각자의 노드(120) 또는 노드(120)들의 세트와 연관된다. 예를 들어, 노드(120A)가 노드(120B, 120C)들과 상이한 트래픽을 통신하고 있는 경우, HSM(130A)은 노드(120B)와의 통신에 대응하는 트래픽을 암호화하기 위해 제1 키(132A)를 사용하고, 노드(120C)와의 통신에 대응하는 트래픽을 암호화하기 위해 제2 키(132A)를 사용할 수 있다. 그러나, 노드(120A)가 노드(120B, 120C)들에 동일한 스트림을 멀티캐스팅하는 경우, 동일한 키(132A)가 사용될 수 있다. 일부 실시예들에서, 각각의 키(132)는 한 방향의 트래픽에만 적용가능하다. 따라서, HSM(130A)은 노드(120A)에 의해 노드(120B)로 송신되고 있는 트래픽을 위해 제1 키를 사용하고, 노드(120A)에 의해 노드(120B)로부터 수신되고 있는 트래픽을 위해 제2 키를 사용할 수 있다. 다른 노드(120)들과 통신하는 주어진 노드(120)의 능력을 규제하기 위해, 다양한 실시예들에서, 그의 HSM(130)에는 그것의 의도된 통신에 적절한 키(132)들만이 프로비저닝된다. 따라서, 노드(120A)가 노드(120D)가 아닌 노드(120C)와 통신하도록 의도되는 경우, HSM(130A)에는 노드(120D)가 아닌 노드(120C)를 위한 키(132A)가 제공된다. 더 나아가, 노드(120A)가 노드(120C)로 트래픽을 송신하지만 노드(120C)로부터 트래픽을 수신하지 않도록 의도되는 경우, HSM(130A)에는 트래픽을 송신하기 위한 키(132A)는 제공되지만, 트래픽을 수신하기 위한 키(132A)는 제공되지 않는다. HSM(130)을 이러한 방식으로 프로비저닝함으로써 그의 대응하는 노드(120)가 허가되지 않은 방식으로 통신하는 것을 방지할 수 있다. 즉, HSM(130A)은 상기의 예에서 노드(120D)와 통신하기 위한 키(132A)를 포함하지 않기 때문에, 노드(120A)는 노드(120A)가 손상되더라도 노드(120D)와 통신할 수 없다.
도시된 실시예에서, HSM(130)들은 또한 그들의 키(132)들의 사용을 추가로 규제하는 정책(134)들을 포함한다. 다양한 실시예들에서, HSM(130)의 정책(134)은 그 HSM(130)에 포함된 키(132)들 각각에 대한 사용 기준들의 세트를 정의한다. 이러한 기준들은 주어진 키(132)에 대응하는 노드(120)들을 명시할 수 있는데 - 예컨대, 특정 키(132A)가 단지 노드(120B)와의 통신을 위해 사용되어야 함을 명시할 수 있다. 일부 실시예들에서, 노드(120)들은 그들의 네트워크 어드레스들에 기초하여 사용 기준들로 식별될 수 있다. 다양한 실시예들에서, 이러한 기준들은 또한 주어진 키(132)에 대한 허용 가능한 암호화 함수(즉, 암호화 또는 복호화)를 명시하고 - 따라서 트래픽의 방향을 규제한다. 예를 들어, 정책(134A)은, 키(132A)들 중의 특정 키가 노드(120B)에 대응하고 암호화를 위해서만 사용 가능하다는 것을 명시할 수 있고; 유사하게, 정책(134B)은 키(132B)들 중의 특정 키가 노드(120A)에 대응하고 복호화를 위해서만 사용 가능하다는 것을 명시할 수 있다. 따라서, 키는 암호화된 트래픽을 노드(120A)로부터 노드(120B)로 송신하는 데 사용 가능하지만 노드(120B)로부터 노드(120A)로 송신하는 데는 사용 가능하지 않다. 일부 실시예들에서, 주어진 키에 대한 특정 기준은, 1) 해당 키가 암호화에 사용되어야 하는지 아니면 복호화에 사용되어야 하는지에 대한 표시(indication), 및 2) 노드(120)들 중 하나 이상을 식별하는 표시를 포함하는 튜플(tuple)로서 표현될 수 있다. 다양한 실시예들에서, 주어진 HSM(130)은, 요청된 동작을 수행하기 전, 노드(120)에 의해 요청된 암호화 동작이 그의 정책(134)과 부합하는 것을 검증할 수 있다. 정책(134)들의 사용을 도시하는 예가 도 5에 관하여 아래에 제시된다.
일부 실시예들에서, HSM(130)들의 프로비저닝은 게이트웨이(140)에 의해 처리된다. 도 7 내지 도 9에 관하여 더 상세히 후술되는 바와 같이, 게이트웨이(140)는 네트워크(100)의 구성요소들의 등록을 용이하게 할 뿐만 아니라, 네트워크(100) 외부의 개체로부터 키(134)들 및 정책(134)들을 수신하는 것을 용이하게 하도록 구성될 수 있다. 일부 실시예들에서, 게이트웨이(140)는 이러한 개체와의 보안 접속을 확립하는 것뿐만 아니라, 키(132)들 및 정책(134)들을 적절한 노드(120)들에 분배하는 것을 용이하게 할 수 있다. 다양한 실시예들에서, 아래에서 더 상세히 논의되는 바와 같이, 프로비저닝은 네트워크(100)의 초기 어셈블리(assembly) 동안에 그리고 네트워크(100) 내의 구성요소들의 교체 후에 수행될 수 있다.
이제 도 2를 참조하면, HSM(130)의 블록도가 도시된다. 도시된 실시예에서, HSM(130)은 상호접속부(270)를 통해 함께 결합되는 네트워크 인터페이스(210), 하나 이상의 프로세서(220), 판독 전용 메모리(ROM)(230), 비휘발성 메모리(NVM)(240), 암호화 가속기(250), 및 키 저장소(260)를 포함한다. ROM(230)은 펌웨어(232)를 포함한다. NVM(240)은 정책(134), 공개 키 인증서(242), 및 능력 정보(244)를 포함한다. 키 저장소(260)는 키(132)들, 프로비저닝 개인 키(262), 및 식별 키(264)를 포함한다. 일부 실시예들에서, HSM(130)은 도시된 것보다 더 많은(또는 적은) 구성요소들을 포함할 수 있다.
네트워크 인터페이스(210)는, 일 실시예에서, 노드(120)와의 통신을 용이하게 하도록 구성된다. 따라서, 인터페이스(210)는, 일부 실시예들에서 직렬 주변기기 인터페이스(SPI: serial peripheral interface) 버스인 링크(122)를 통해 데이터 인코딩 및 디코딩을 수행할 수 있다. 다양한 실시예들에서, 인터페이스(210)는 또한 인입 판독 및 기록 동작들을 필터링함으로써 노드(120)와 같은 외부 개체로부터 내부 구성요소(220 내지 260)들을 격리시키도록 구성된다. 일부 실시예들에서, HSM(130)은 단지 적은 수의 커맨드만을 지원함으로써 제한된 공격 표면을 제공한다. 예를 들어, 일 실시예에서, HSM(130)은 특정 키의 사용을 요청하기 위한 제1 커맨드, 해당 키(132)로 암호화하는 것을 요청하기 위한 제2 커맨드, 해당 키로 복호화하는 것을 요청하기 위한 제3 커맨드, 및 키(132)들을 업데이트하기 위한 제4 커맨드를 지원한다. 인터페이스(210)가 지원 커맨드(supported command)들 중 하나가 아닌 데이터를 노드(120)로부터 수신하는 경우, 인터페이스(210)는 그 데이터가 HSM(130)으로 진입하는 것을 방지할 수 있다.
프로세서(220)는, 일 실시예에서, HSM(130)에 관하여 본 명세서에 기술된 다양한 동작들을 구현하기 위한 프로그램 명령어들을 실행하도록 구성된다. 일부 실시예들에서, 프로세서(220)는 ROM(230)으로부터 펌웨어(232)를 부팅하기 위해 부트(boot)에서 특정 어드레스 범위로부터 페치(fetch)하도록 고정 배선 연결된다(hardwired). 특히, 메모리(230)는 (용이하게 기록될 수 있는 일부 다른 유형의 메모리와는 대조적으로) ROM이기 때문에, 펌웨어(232)는 변경되기 어렵고, 따라서 변조되기 어렵다. 결과적으로, HSM(130)은, 단지 프로세서(220)가 재부팅 - 이는, 도시된 실시예에서, 리셋 신호(202)를 어써트(assert)함으로써 개시될 수 있음 - 하게 하는 것만으로 디폴트의 신뢰된 상태로 복원될 수 있다. 따라서, 프로세서(220)는 추가로 HSM(130) 내의 구성요소들을 격리시키는 역할을 할 수 있다.
일 실시예에서, 암호화 가속기(250)는 HSM(130)에 대한 암호화 동작들을 수행하도록 구성된 회로부이다. 암호화 가속기(250)는 데이터 암호화 표준(DES: Data Encryption Standard), 개선된 암호화 표준(AES), RSA(Rivest Shamir Adleman) 등과 같은 임의의 적합한 암호화 알고리즘을 구현할 수 있다. 일부 실시예들에서, 가속기(250)는 추가로 타원 곡선 암호화(ECC: elliptic curve cryptography)를 구현할 수 있다. 도시된 실시예에서, 가속기(250)는 키 저장소(260)에 저장된 키들을 사용하도록 구성되는데, 가속기(250)는 이러한 키 저장소를 HSM(130)의 다른 구성요소들이 액세스하는 것으로부터 격리시킬 수 있다. 즉, 일부 실시예들에서, 가속기(250)는 키(132)들이 프로세서(220)에 의해 업데이트되는 것을 허용하지만, 키(132)들이 프로세서(220)에 의해 저장소(260)로부터 판독되는 것은 허용하지 않을 수도 있다. 더 나아가, 키(132)들 중 하나를 사용하라는 요청이 수신될 때, 가속기(250)는 요청된 동작이 정책(134)에 의해 허용되는 것을 검증할 수 있다. 다양한 실시예들에서, 가속기(250)는 또한 HSM(130)의 프로비저닝에 관여된다. 이는 프로비저닝 서버로부터 수신된 수신 키(132)들을 복호화하기 위한 프로비저닝 개인 키(262)를 사용하는 것뿐만 아니라, 도 7에 관하여 아래에서 논의되는 바와 같이, 서버 및 게이트웨이(140)에 알려지지 않도록 키(132)들을 변경하는 것을 포함할 수 있다.
일부 실시예들에서, 프로비저닝 개인 키(262) 및 그의 대응하는 공개 키 인증서(242)는 프로비저닝 서버와의 보안 접속을 확립하기 위해 사용된다. 즉, HSM(130)은 개인 키(262)에 대응하는 공개 키를 포함하는 그의 공개 키 인증서(242)를 프로비저닝 서버에 제시할 수 있다. 이어서, 프로비저닝 서버는 공개 키를 사용하여 키(132)들 및 정책(134)을 암호화할 수 있어, 이어서 가속기(250)가 암호화된 키(132)들을 개인 키(262)로 복호화할 수 있도록 한다. 다른 실시예들에서, 인증서들은 ECDH(Elliptic Elliptic Curve Diffie-Hellman)를 통해 임시 키(ephemeral key)들을 도출하는 데 사용될 수 있다. 일부 실시예들에서, 도 8a에 관하여 아래에서 논의되는 바와 같이, 가속기(250)는 HSM(130)의 초기 프로비저닝 동안에 개인 키(262)를 포함하는 공개 키 쌍을 생성하고, 인증서(242)를 수신하기 위해 키 쌍을 프로비저닝 쌍에 등록시킬 수 있다. 일부 실시예들에서, 인증서(242)는 X.509 인증서이다. 일부 실시예들에서, 가속기(250)는 프로비저닝 서버에 인증서 서명 요청을 제출할 때 공개 키를 식별 키(264)로 서명한다. 다양한 실시예들에서, 식별 키(264)는, HSM(130)에 고유하고 프로비저닝 서버에 알려져 있는 암호화 키이다. 일부 실시예들에서, 식별 키(264)는 HSM(130)의 제조 동안에 HSM(130)에 저장된다.
일부 실시예들에서, HSM(130)은 또한 새로운 키(132)들 및 정책(134)이 프로비저닝될 때 능력 정보(244)를 송신한다. 도 8b에 관해 기술되는 바와 같이, 다양한 실시예들에서, 정보(244)는 HSM(130)이 결합되는 노드(120)의 하나 이상의 능력을 명시한다. 예를 들어, 노드(120)가 브레이크 모듈 ECU인 실시예에서, 정보(244)는 이와 같이 노드(120)를 식별할 수 있다. 프로비저닝 서버는 이어서 이 정보를 사용하여, 그 HSM(130)에 어떤 키(132)들 및 정책(134)이 제공되어야 하는지를 결정할 수 있다. 일부 실시예들에서, 정보(244)는 프로비저닝 서버에 의해 서명될 수 있다(그리고 일부 실시예들에서는, 인증서(242)에 포함될 수 있다).
이제 도 3을 참조하면, 보안 통신(300)의 통신도가 도시된다. 보안 통신(300)은 네트워크(100)를 통해 통신하는 2개의 노드(120)들 사이의 보안 통신의 일례이다. 단계(302 내지 318)들은 일부 실시예들에서 병렬로 또는 도시된 것과는 상이한 순서로 수행될 수 있다는 것에 유의한다.
도시된 바와 같이, 통신(300)은, 302에서, 노드(120A)가 메시지 M을 암호화하여, 암호화된 M', 및 메시지 M의 무결성을 검증하고 M이 노드(120A)로부터 온 것임을 인증하기 위해 사용 가능한 대응하는 MAC를 생성하는 것으로 시작될 수 있다. 304에서, 노드(120A)는 그의 HSM(130A)에 MAC를 암호화하라는 요청을 발행한다. 다양한 실시예들에서, 노드(120A)는 또한 MAC를 노드(120B)로 송신하기 위한 그의 의도를 나타낸다. 306에서, HSM(130A)은 요청된 동작이 그의 정책(134)에 의해 허가되는 것을 검증한다. 동작이 허가되는 경우, HSM(130)은 정책(134)에서 식별된 적절한 키(132)를 선택할 수 있고 (앞서 언급된 가속기(250)를 통해) MAC를 암호화하여 암호화된 MAC'를 생성하며, 이 암호화된 MAC'은 308에서 노드(120A)로 다시 송신된다. 요청된 동작이 HSM(130A)의 정책(134)에 의해 허가되지 않는 경우, HSM(130A)은 단지 요청이 거부되었다는 표시로 응답할 수 있다. 310에서, 노드(120A)는 처리를 위해 M' 및 MAC'을 노드(120B)로 송신한다.
312에서, 노드(120B)는 복호화를 위해 MAC'을 HSM(130B)으로 포워딩한다. 다양한 실시예들에서, 노드(120B)는 또한 노드(120A)가 MAC'의 소스임을 나타낸다. 314에서, 노드(120B)는 M'의 복호화를 시작하여 M을 재생한다. 한편, 316에서, HSM(130B)은 요청된 복호화가 그의 정책(134)에 의해 허가되는지를 검증한다. 동작이 허가되는 경우, HSM(130B)은 적절한 키(132)를 선택하고 MAC'을 복호화하여 MAC를 재생하며, 이 MAC는 318에서 노드(120B)에 제공된다. 동작이 HSM(130B)의 정책(134)에 의해 허가되지 않는 경우, HSM(130B)은 요청이 거부되었음을 나타내는 것으로 응답할 수 있다. 320에서, 노드(120B)는 MAC에 대해 M을 검증한다. 검증이 실패하면, 이러한 실패는 M이 변조되었고/되었거나, M이 노드(120A)로부터 온 것이 아님을 의미하는 것으로 표시될 수 있다.
이제 도 4a를 참조하면, 다른 보안 통신(400)의 통신도가 도시된다. 앞서 언급한 바와 같이, 일부 실시예들에서, 노드(120)와 그의 HSM(130) 사이의 링크(122)는 낮은 송신 속도를 가질 수 있다. 보안 통신(400)은 다수의 프레임의 송신 동안 생성된 다수의 MAC의 암호화를 함께 체인화함으로써 링크(122)를 통해 통신되는 트래픽의 양을 감소시키려고 시도한다.
도시된 바와 같이, 통신(400)은, 402에서, 노드(120A)가 제1 메시지 M1을 암호화하여, 암호화된 메시지 M1', 및 제1 메시지 인증 코드 MAC1을 생성하는 것으로 시작된다. 404에서, 노드(120A)는, MAC1이 메시지들의 스트림의 일부로서 노드(120B)로 송신되고 있음을 나타내는 암호화 요청을 발행한다. 406에서, HSM(130A)은 요청된 동작이 그의 정책(134)에 의해 허가되는지를 검증하고, 허가된다면, MAC1을 적절한 키(132)로 암호화하여 MAC1'을 생성하도록 진행한다. 특히, HSM(130A)은 노드(120A)에 MAC1'을 제공하지 않으며; 오히려, HSM(130A)은 416에서의 향후 사용을 위해 MAC1'을 단지 저장만 한다. 408에서, 노드(120A)는 M1' 및 암호화되지 않은 MAC1을 노드(120B)로 송신하며, 이 노드(120B)는 저장을 위해 MAC1을 HSM(130B)으로 포워딩한다. 410에서, 노드(120B)는 M1'을 복호화하고 그것을 MAC1에 대해 검증한다. 412에서, HSM(130B)은 또한, 체인화된 MACN의 궁극적인 복호화(eventual decryption)가 허가되는 것을 검증하고, 허가된다면, MAC1을 암호화하는데, 이는 하기에 논의되는 426에서 MACN을 복호화하는 데 사용된다.
414에서, 노드(120A)는 제2 메시지 M2를 암호화하여 M2' 및 MAC2를 생성하며, 이는 416에서 암호화를 위해 HSM(130A)에 제공된다. 418에서, HSM(130A)은 암호화가 허용되는지를 검증하고, 허용된다면, CBC를 이용하여 암호화 함수로의 입력으로서 암호화된 MAC1'을 사용하여 MAC2를 암호화한다. 따라서, 암호화된 MAC2'은 이제 MAC2의 콘텐츠뿐만 아니라 MAC1의 콘텐츠에 의존한다. 다시, MAC2'은 노드(120A)로 통신되지 않고, 오히려 메시지 스트림과 연관된 후속 MAC들의 암호화 동작들에 사용하기 위해 저장된다. 암호화된 MAC들을 노드(120A)로 다시 통신하지 않음으로써, HSM(130A)은 링크(122)를 통해 통신되고 있는 트래픽의 양을 감소시키고 있다. 420에서, 노드(120A)는 M2' 및 암호화되지 않은 MAC2를 노드(120B)로 통신하며, 이 노드(120B)는 저장을 위해 MAC2를 HSM(130B)으로 포워딩한다.
노드(120A)는, 메시지 스트림의 최종 메시지 MN에 도달할 때까지, 암호화된 메시지들 및 MAC들을 계속해서 송신할 수 있다. 422에서, 노드(120A)는 암호화된 MN'을 통신하지만, MACN을 송신하지는 않는다. 대신에, 424에서, HSM(130A)은 모든 더 이전 MAC들뿐만 아니라 MACN에 의존하는 체인 MACN'을 송신한다. 즉, MACN'은 암호화된 MACN-1'을 입력으로서 사용하여 암호화되었고, MACN-1'은 MACN-2' 등을 사용하여 암호화되어 있다. 426에서, HSM(130B)은, MACN'을 복호화하는 것이 그의 정책(134)에 부합하는 것을 검증하고, 부합한다면, 이전에 저장된 MAC(즉, MAC1 내지 MACN-1)들을 사용하여 MACN'을 복호화하려고 시도한다. 노드(120A)가 HSM(130A)에 제공되지 않았던 MAC를 삽입하려고 시도했다면(또는 HSM(130A)에 제공되었던 것 중 하나를 변경한다면), HSM(130B)은 MACN'을 제대로 복호화할 수 없어서 430에서 검증 실패를 야기할 수 있다. 복호화가 성공하면, 복호화된 체인 MAC는 428에서 노드(120B)에 제공되어 430에서 복호화된 MN에 대해 검증한다.
다른 실시예들에서, 보안 통신(400)은, 도 4에 도시된 바와 같이, 430에서 노드(120B)가 노드(120A)로부터 수신된 복호화된 MACN에 대해 MN을 검증하는 것을 포함하지 않을 수도 있다는 것에 유의한다. 오히려, 422에서, MACN은 노드(120A)에 의해 노드(120B)로 송신될 수 있다. 426에서, HSM(130B)은 단지 이전에 수신된 MAC들로부터 암호화된 MACN'을 재계산하려고 시도하고, 이러한 암호화된 MACN'을 HSM(130A)으로부터 수신된 MACN'과 비교할 수 있다. 2개의 암호화된 MAC가 매칭되지 않는 경우, HSM(130B)은 430에서 검증이 실패하게 하는 오류를 노드(120B)에 나타낼 수 있다.
이제 도 5를 참조하면, 정책 사용(500)의 일례가 도시된다. 이러한 예에서, 2개의 스트림의 트래픽(502A, 502B)들을 인에이블시키기 위해 HSM(130A, 130B, 130C)들에는 각자의 정책(134A, 134B, 134C)들이 프로비저닝되어 있다.
도시된 바와 같이, 트래픽(502A)은 노드(120A)로부터 노드(120B, 120C)들로 멀티캐스팅되고 있으며, K1로서 도시된 키(132)로 암호화된 MAC들을 포함한다. 따라서, 노드(120A)가 트래픽(502A)의 소스이기 때문에, 그의 HSM(130A)에는 K1 및 정책(134A) - 노드(120B, 120C)들이 트래픽의 목적지일 때 K1로 암호화가 허용됨을 나타냄 - 이 프로비저닝된다. 예시를 위해, "K1: 120B 및 120C로의 MAC들을 암호화한다"로 도시되어 있지만, 일부 실시예들에서, 정책(134A)은 이러한 기준을 튜플(Encrypt, [Node 120B's network address, Node 120C's network address])로서 표현할 수 있다. 노드(120B, 120C)들은 트래픽(502A)의 목적지들이기 때문에, HSM(130B, 130C)들에는 K1 및 정책(134B, 134C)들 - 노드(120A)가 소스일 때 K1로 복호화가 허용됨을 나타냄 - 이 프로비저닝된다. 특히, 노드(120B, 120C)들은, 이러한 예에서, K1을 사용하여 노드(120A)로 또는 서로에게 트래픽을 송신하는 것이 허용되지 않을 것인데, 이는 이것이 그들의 각자의 정책(134)에 의해 불허되지 않을 것이기 때문이다. 따라서, 노드(120C)가 손상되었고 그렇게 하려고 시도했다면, 노드(120C)는 HSM(130A, 130B)들 및 그들의 정책(134)들에 의해 그렇게 하는 것이 규제될 것이다.
도 5의 예를 계속 진행하면, 트래픽(502B)은 노드(120B)로부터 노드(120C)로 통신되고 있고, 다른 키(132)인 K2로 암호화된 MAC들을 포함한다. 도시된 바와 같이, 정책(134B)은, 목적지가 노드(120C)일 때, HSM(130B)이 K2로 암호화를 수행하도록 허용됨을 나타낸다. 정책(134C)은, 또한 소스가 노드(120B)일 때 HSM(130C)이 K2로 복호화를 수행하도록 허용됨을 나타낸다. 특히, 이러한 예에서, 노드(120A)가 트래픽(502B)을 통신하도록 의도되지 않기 때문에, HSM(130A)에는 K2가 프로비저닝되지 않는다(그리고 그의 정책(134A)은 K2의 임의의 허용된 사용을 명시하지 않는다).
이제 도 6a를 참조하면, 네트워크를 통해 트래픽을 통신하기 위한 방법(600)의 흐름도가 도시된다. 방법(600)은 HSM(130)와 같은 보안 회로에 의해 수행될 수 있는 방법의 일 실시예이다. 일부 경우에, 방법(600)의 수행은 더 안전한 네트워크 통신을 허용할 수 있다. 일부 실시예들에서, 단계들(610 내지 640)은 병렬로 또는 도시된 것과는 상이한 순서로 수행될 수 있다.
단계(610)에서, 보안 회로는, 네트워크(예컨대, 보안 네트워크(100))를 통해 복수의 디바이스(예컨대, 노드(120)들) 사이의 데이터 통신을 암호화하는 데 사용 가능한 복수의 암호화 키(예컨대, 키(132)들)를 저장한다. 일부 실시예들에서, 보안 회로는 복수의 디바이스 중 제1 디바이스(예컨대, 노드(120A)에 결합된 HSM(130A))에 결합된다. 일부 실시예들에서, 암호화 키들은 광역 네트워크를 통한 통신을 용이하게 하도록, 광역 네트워크를 통해 개체로부터 교체 키들의 세트를 수신하도록, 그리고 교체 키들 중 임의의 키들(ones of the replacement keys)을 복수의 디바이스에 분배하도록 구성된 게이트웨이(예컨대, 게이트웨이(140))로부터 수신된다.
단계(620)에서, 보안 회로는 복수의 암호화된 키에 대한 사용 기준들의 세트(예컨대, 정책(134))를 정의하는 정보를 저장한다. 사용 기준들의 세트는 복수의 키 중 제1 키(예컨대, 정책(134B)은 도 4에 도시된 키 K2를 인용함)가 복수의 디바이스 중 제1 디바이스(예컨대, 노드(120B))로부터 복수의 디바이스 중 제2 디바이스(예컨대, 노드(120C))로 통신되는 데이터를 암호화하는 것에 전용된다는 것을 명시한다. 일부 실시예들에서, 저장된 정보는 복수의 키 각각에 대한 튜플을 명시하여, 각각의 튜플이 (1) 해당 키가 암호화에 전용되는지 아니면 복호화에 전용되는지의 표시를 포함하고, 2) 해당 키와 연관된 복수의 디바이스 중 하나 이상을 식별하도록 한다. 일부 실시예들에서, 사용 기준들의 세트는, 제1 키가 제1 디바이스와 제2 디바이스 사이에서의 한 방향으로의 데이터 통신들을 암호화하는 데 전용되지만 제1 디바이스와 제2 디바이스 사이에서의 다른 방향으로의 데이터 통신들을 암호화하는 데에는 전용되지 않음을 나타낸다.
단계(630)에서, 보안 회로는 제1 키로 메시지(예컨대, MAC)의 일부분을 암호화하라는 요청을 수신한다. 일부 실시예들에서, 그 요청은 메시지가 제1 디바이스로부터 제2 디바이스로 송신되고 있음을 나타낸다.
단계(640)에서, 사용 기준들의 세트가 제1 디바이스로부터 제2 디바이스로 송신되고 있는 메시지에 대해 제1 키로 암호화하는 것을 허용한다는 결정에 응답하여, 보안 회로는 제1 키로 메시지의 일부분을 암호화한다. 일부 실시예들에서, 보안 회로는, 메시지의 일부분을 암호화하여, 암호화된 부분이 메시지가 제1 디바이스에 의해 송신됨을 확립하는 데 사용 가능하게 하도록 구성된다.
이제 도 6b를 참조하면, 네트워크를 통해 트래픽을 통신하기 위한 다른 방법(650)의 흐름도가 도시된다. 방법(650)은 하나 이상의 ECU(예컨대, 일부 실시예들에서 노드(120)들) 및 하나 이상의 보안 회로(예컨대, HSM(130)들)를 포함하는 장치에 의해 수행될 수 있는 방법의 일 실시예이다. 일부 경우에, 방법(650)의 수행은 더 안전한 네트워크 통신들을 허용할 수 있다.
단계(660)에서, 제1 전자 제어 유닛(ECU)은 제1 ECU로부터 제2 ECU로 송신되는 데이터 프레임에 대한 메시지 인증 코드(MAC)를 생성한다.
단계(670)에서, 제1 ECU에 결합된 제1 보안 회로가 제1 암호화 키(예컨대, 키(132))로 MAC를 암호화한다. 일부 실시예들에서, 제1 ECU는, 제1 보안 회로에, 제2 ECU가 데이터 프레임의 목적지임을 나타내고, 단계(670)는 제1 보안 회로가 데이터 프레임의 식별된 목적지에 기초하여 제1 암호화 키로 MAC에 대한 암호화를 허용하는지를 결정하는 단계를 포함한다. 일부 실시예들에서, 제1 보안 회로는, 제1 암호화 키를 포함하는 복수의 암호화 키를 저장하고, 복수의 암호화 키 중 임의의 암호화 키들에 대해, 각자의 사용 및 연관된 ECU들의 각자의 세트를 명시하는 정책(예컨대, 정책(134))을 저장한다. 이러한 실시예에서, 정책은, 제1 암호화 키가 암호화를 위해 사용될 것이고 제2 ECU를 포함하는 ECU들의 세트와 연관된다는 것을 명시한다. 이러한 실시예에서, 제1 보안 회로는 저장된 정책에 기초하여 제1 암호화 키로 MAC에 서명할지를 결정한다. 일부 실시예들에서, 제1 보안 회로는, 무선 네트워크 인터페이스를 통해 키들의 세트를 수신하도록 그리고 키들의 세트를 보안 회로에 분배하도록 구성된 네트워크 게이트웨이로부터 제1 암호화 키를 수신한다.
단계(680)에서, 제1 ECU는 데이터 프레임을, 데이터 프레임에 포함된 암호화된 MAC와 함께 송신한다. 다양한 실시예들에서, 제2 ECU에 결합된 제2 보안 회로는 데이터 프레임에 포함된 암호화된 MAC를 복호화하고, 제2 ECU는 복호화된 MAC를 사용하여 데이터 프레임의 무결성을 검증한다. 일부 실시예들에서, 제1 보안 회로는 제1 상호접속부(예컨대, 링크(122))를 통해 제1 ECU에 결합되고, 제1 ECU는 제1 상호접속부와는 상이한 제2 상호접속부(예컨대, 링크(112))를 통해 데이터 프레임을 제2 ECU로 송신한다.
이제 도 7을 참조하면, 프로비저닝 시스템(700)의 블록도가 도시된다. 다양한 실시예들에서, 프로비전 시스템(700)은, HSM(130)들에 키(132)들 및 정책(134)들을 프로비저닝하는 것을 포함하여 네트워크(100)의 네트워크 구성요소들을 프로비저닝하는 데 사용 가능하다. 도시된 실시예에서, 시스템(700)은 공장 프로비저닝 서버(710A), 현장 프로비저닝 서버(in-field provisioning server)(710B), 및 게이트웨이(140)를 포함한다. 일부 실시예들에서, 시스템(700)은 도시된 것과는 상이하게 구현될 수 있는데 - 예컨대, 단일 프로비저닝 서버(710)가 사용될 수 있다. 서버(710)에 관하여 후술되는 기능은 키 블롭(key blob)(720) 제공을 처리하는 서버 이외의 서버에 의해 수행될 수 있다.
도시된 실시예에서, 공장 프로비저닝 서버(710A)는 네트워크(100)가 어셈블리되고 있을 때 초기에 네트워크(100)를 프로비저닝하도록 구성된 서버이다. 다양한 실시예들에서, 서버(710A)는, 도 8a에 관하여 아래에서 논의되는 바와 같이, 개인 키(262)들을 등록하는 것, 도 8b에 관하여 논의되는 바와 같이 HSM(130)들에 역할들을 할당하는 것, 노드(120)들에 펌웨어 업데이트들을 제공하는 것, 키(132)들 및 정책(134)들을 제공하는 것, 및 임의의 키 무효화들을 HSM(130)들에 통지하는 것을 수행한다. 일부 실시예들에서, 서버(710A)는, 서버(710A)가 이러한 어셈블리 동안에 네트워크(100)와 함께 위치되는 경우 - 예컨대, 네트워크(100)와 서버(710A)는 동일한 공장에 위치될 수 있는 경우 - 유선 접속(712A)을 통해 네트워크(100)에 결합된다. 이와 같이, 공장 프로비저닝 서버(710A)에 의해 수행되는 하나 이상의 동작은, 보안 고려사항들로 인해 현장 프로비저닝 서버(710B)에 의해 반복될 수 있다. 즉, 서버(710A)와 네트워크(100)가 함께 위치되는 것으로 인해, 양쪽 모두에 대한 액세스를 갖는 악의적인 사람은 키(132)들에 대한 액세스를 획득하는 데 이점을 가질 수 있다. 결과적으로, 서버(710A)에 의해 발행된 키(132)들 및 정책(134)들은 단 기간만 - 예컨대, 24 시간만 - 유효할 수 있다.
예시적인 실시예에서, 현장 프로비저닝 서버(710B)는 네트워크(100)의 임의의 후속 프로비저닝을 수행하도록 구성된다. 일부 실시예들에서, 서버(710B)는 앞서 언급된 서버(710A)에 의해 수행되는 동일한 동작들 중 하나 이상을 수행한다. 그러나, 다양한 실시예들에서, 서버(710B)는 네트워크(100)와 함께 위치되지 않고 인터넷과 같은 광역 네트워크(WAN)와 연관된 무선 접속(712B)을 통해 네트워크(100)에 결합될 수 있다. 이와 같이, 서버(710B)에 의해 수행되는 프로비저닝은 서버(710A)에 의해 수행되는 프로비저닝보다 더 안전할 수 있다. 따라서, 서버(710B)에 의해 발행된 키(132)들 및 정책(134)들은 서버(710A)에 의해 발행된 키들 및 정책들보다 더 긴 기간 동안 유효할 수 있다.
다양한 실시예들에서, 게이트웨이(140)는 서버(710)들과의 보안 통신을 확립함으로써 네트워크(100)에 대한 프로비저닝을 용이하게 하도록 구성된다. 일부 실시예들에서, 게이트웨이(140)는 또한 HSM(130)들로의 키(132)들 및 정책(134)들의 분배를 수행한다. 도시된 실시예에서, 키(132)들 및 정책(134)들은 키 블롭(720) 내에 패키지화되고, 이는 도시된 바와 같이 HSM(130)들 중 각자의 HSM과 각각 연관 되는 다수의 부분(722)들로 분할될 수 있다. 예를 들어, 부분(722A)은 HSM(130A)에 대한 키(132A)들 및 정책(134A)을 포함하고; 일부분(722B)은 키들(132B) 및 정책(134B)을 포함한다. 이러한 실시예에서, 게이트웨이(140)는 서버(710)로부터 수신된 블롭(720)의 암호화된 버전을 복호화할 수 있고, 각각의 부분(722)과 각각의 HSM(130)의 대응관계를 결정할 수 있고, 각각의 부분(722)을 그의 각자의 HSM(130)으로 적절히 라우팅할 수 있다. 일부 실시예들에서, 네트워크(100)가 초기에 어셈블리될 때, 새로운 노드(120)가 네트워크(100)에 추가될 때, 그리고 노드(120)들의 펌웨어 업데이트들이 수행될 때, 키 블롭(720)들이 수신될 수 있다.
손상된 게이트웨이(140)가 키(132)들 및 정책(134)들에 대한 액세스를 획득하는 것을 방지하기 위해, 일부 실시예들에서는 다수의 기법이 이용될 수 있다. 우선, 키 블롭이 암호화될 수 있더라도, 각각의 부분(722)은 각각의 HSM(130)이 보유한 키에 대해 추가로 암호화될 수 있다. 일부 실시예들에서, 각각의 부분(722)(예컨대, 부분(722A))은 인증서(242)에 명시된 공개 키를 사용하여 암호화되고 개인 키(262)(예컨대, 개인 키(262A))로 복호화 가능하다. 다른 실시예들에서, 각각의 부분(722)은 ECDH를 통해 HSM(130)의 인증서(242)와 개인 키(262), 및 서버(710)의 인증서와 개인 키로부터 도출되는 임시 키들을 사용하여 암호화되고 복호화된다. 둘째, 일부 실시예들에서, HSM(130) 각각은 키(132)들에 변경 함수(modification function)를 적용하여 키들을 새로운 값들로 조정한다. 따라서, 게이트웨이(140)가 키(132)를 볼 수 있을지라도, 이러한 키(132)는 해당 키를 보유하는 HSM(130)들에 의해 나중에 변경된다. 특히, 변경된 키(modified key)(132)들은 또한 초기에 그 키들을 제공했던 서버(710)에 알려지지 않는다. 따라서, 일부 악의적인 사람이 서버(710)에서 키(132)에 대한 액세스를 획득할 수 있는 경우, 이러한 키(132)는 이미 악의적인 사람에게 알려지지 않도록 변경되어 있다.
이제 도 8a를 참조하면, 키 등록(800)의 통신도가 도시된다. 키 등록(800)은 HSM(130)과 프로비저닝 서버(710)(또는 키 등록을 처리하는 일부 다른 서버) 사이에서 암호화된 데이터를 통신하는 데 사용 가능한 공개 키 쌍을 등록하기 위한 통신의 일 실시예이다. 다양한 실시예들에서, 노드(120)가 제조될 때, 네트워크(100)가 어셈블리될 때, 또는 새로운 노드(120)가 네트워크(100)에 추가될 때, 키 등록(800)이 수행될 수 있다.
도시된 바와 같이, 키 등록(800)은, 802에서, HSM(130)이 프로비저닝 개인 키(262)를 포함하는 공개 키 쌍을 생성하는 것에서 시작된다. 804에서, HSM(130)은 공개 키 인증서(242)에 대한 인증서 서명 요청(CSR: certificate signing request)을 송신한다. 도시된 실시예에서, 요청은 해당 쌍의 공개 키, 및 키잉된 함수를 공개 키에 적용함으로써 계산된 메시지 인증 코드를 포함하는데, 여기서 식별 키(264)가 그 함수에 대한 키로서 사용된다. 일부 실시예들에서, 요청은 능력 정보(244)와 같은 더 많은(또는 더 적은) 콘텐츠를 포함할 수 있다. 일부 실시예들에서, 요청은 공개 키 암호화 표준(PKCS: public-key cryptographic standard)(10)들과 같은 표준에 부합한다. 806에서, 프로비저닝 서버(710)는 MAC가 식별 키(264)에 의해 계산되었음을 확인하라는 것을 포함하는 요청을 검증한다. 검증이 성공하면, 서버(710)는, 공개 키를 포함하고 공개 키의 유효성을 증명하는 인증서(242)에 서명한다. (따라서, 다양한 실시예들에서, 서버(710)는 인증 기관(CA: certificate authority)을 구현하도록 구성된다.) 808에서, 서버(710)는 서명된 인증서(242)를 HSM(130)으로 송신하며, 여기서 HSM(130)은 서버(710)로부터 암호화된 데이터를 수신하기 위해 나중에 인증서(242)를 서버(710)에 제시할 수 있다.
이제 도 8b를 참조하면, 역할 할당(850)의 통신도가 도시된다. 역할 할당(850)은 HSM(130)에 어느 키(132)들과 정책(134)들이 제공되어야 하는지를 후속하여 결정할 수 없는, HSM(130)에 역할을 할당하는 통신의 일 실시예이다. 일부 실시예들에서, 역할 할당(850)은 새로운 노드(120)가 제조 시에 생성될 때, 네트워크(100)의 어셈블리 동안에, 또는 어셈블리 후에 수행될 수 있다.
도시된 바와 같이, 역할 할당(850)은, 852에서, HSM(130) 및 프로비저닝 서버(710)(또는 역할 할당에 관여된 일부 다른 서버)가 보안 접속을 확립하는 것에서 시작된다. 일부 실시예들에서, 이러한 접속은 EDCH를 통해 식별 키(246)를 사용하여 확립될 수 있다. 854에서, HSM(130)은 능력 정보(244)를 프로비저닝 서버(710)로 송신한다. 앞서 언급한 바와 같이, 능력 정보(244)는 HSM(130)에 결합된 노드(120)의 다양한 능력들을 식별할 수 있다. 일부 실시예들에서, 이러한 정보(244)는 노드(120)의 제조자에 의해 제공될 수 있다. 856에서, 프로비저닝 서버(710)는 능력 정보(244)를 검토하고, 노드(120)에 역할을 할당한다. 예를 들어, 노드(120)가 전조등(headlight) 또는 미등(taillight)을 작업 대상으로 하는 경우, 서버(710)는 노드(120)에 전조등 역할을 할당할 수 있다. 도시된 바와 같이, 서버(710)는 할당된 역할을 특정하는 데이터로부터 디지털 서명을 생성할 수 있다. 858에서, 서버(710)는 서명된 능력 정보(244)를 HSM(130)으로 다시 송신하는데, 이 HSM(130)은 적절한 키(132)들 및 정책(134)들을 수신하기 위해 서명된 정보를 나중에 제시할 수 있다. 일부 실시예들에서, 서버(710)는 또한 능력 정보(244)의 사본을 저장할 수 있다.
특히, 능력 정보(244)에 서명함에 있어서, 서버(710)는 악의적인 개체가 노드(120)에 할당된 역할을 변경하는 것을 방지한다. 서버(710)는 또한 위조 디바이스(counterfeit device)들이 사용되는 것을 방지할 수 있다. 즉, HSM(130)이 서명된 능력 정보(244)가 없을 경우, 일부 실시예들에서, 이는 키(132)들 및 정책(134)들이 프로비저닝될 수 없으며, 따라서 그것은 다른 노드(120)들과 통신할 수 없다. 또한, 위조 디바이스는 또한 식별 키(246)가 없을 수 있는데, 이는 일부 실시예들에서 프로비저닝 서버(710)와의 보안 접속을 확립하기 위한 전제 조건(prerequisite)이다.
이제 도 9를 참조하면, 진단 모드(900)의 흐름도가 도시된다. 일부 실시예들에서, 게이트웨이(140)는 진단 모드(900)를 지원하도록 구성되며, 여기서 게이트웨이(140)는 네트워크(100)에 관한 다양한 정보를 제공하고 네트워크(100)의 프로비저닝을 포함하여 수행될 수 있는 다양한 동작들을 사용자가 선택할 수 있게 한다. 따라서, 일부 실시예들에서, 진단 모드(900)는 네트워크를 어셈블리할 때, 노드(120)들 및/또는 HSM(130)들 내의 펌웨어를 업데이트할 때, 네트워크(100) 내의 노드(120)들을 교체할 때 적용될 수 있다. 도 9는 진단 모드(900)에 진입하도록 지시 받을 때 게이트웨이(140) 및/또는 프로비저닝 서버(710)에 의해 수행될 수 있는 단계들의 시퀀스를 도시한다.
도시된 바와 같이, 진단 모드(900)의 단계들은 단계(910)에서 네트워크(100) 내로 삽입된 임의의 노드(120)들을 검출하는 것에서 시작된다. 노드(120) 검출에 응답하여, 게이트웨이(140)는 단계(920)에서 그의 공개 키 인증서(242)를 그의 HSM(130)으로부터 수집한다. 일부 경우에, 게이트웨이(140)는 HSM(130)이 인증서(242)를 갖지 않거나 무효한 인증서를 가짐을 결정할 수 있다. 그러한 경우에, 게이트웨이(140)는 HSM(130)에 대해 도 8a에 대해 앞서 논의된 바와 같은 키 등록을 수행하도록 지시할 수 있다. 일부 실시예들에서, 게이트웨이(140)가 노드(120) 또는 HSM(130)과 통신하는 데 어려움을 갖는 경우, 게이트웨이(140)는 통신 오류를 식별할 수 있다. 단계(930)에서, 게이트웨이(140)는 수집된 인증서(242)들을 프로비저닝 서버(710)로 송신한다.
단계(940)에서, 프로비저닝 서버(710)는 네트워크(100)에 결합된 노드(120)들에 임의의 문제들이 존재하는지를 판정하기 위해 사기 확인 검사(fraud check)를 수행한다. (다른 실시예들에서, 단계(940)의 일부 또는 전부가 게이트웨이(140)에 의해 수행될 수 있다.) 도시된 바와 같이, 이러한 확인 검사는, 일부 실시예들에서 도 9에 도시된 것보다 더 많은(또는 더 적은) 단계들을 포함할 수 있는 단계(942 내지 946)의 수행을 포함할 수 있다. 단계(942)에서, 송신된 인증서(242)들이 완전한 시스템(complete system)의 것인지에 대한 판정이 이루어진다. 예를 들어, 노드(120)들이 ECU들인 일부 실시예들에서, 단계(942)는, 인증서(242)들에 기초하여, 차량에 대한 ECU들의 완전한 세트가 존재하는지를 판정하는 단계를 포함할 수 있다. 일부 실시예들에서, 단계(942)는 앞서 언급한 바와 같이 인증서(242)들에 포함된 능력 정보(244)를 조사하는 단계를 포함할 수 있다. 인증서(242)들이 누락되는 경우, 그것은 하나 이상의 노드(120)가 네트워크(100)에 존재하지 않는 것 또는 위조 노드(120)가 네트워크(100) 내로 삽입되는 것에 기인할 수 있다. 단계(944)에서, 송신된 인증서(242)들이 동일한 시스템에 속하는지에 대한 판정이 이루어진다. 2개의 상이한 시스템에 대한 인증서(242)들이 수신되는 경우, 누군가가 한 시스템으로부터 노드(120)들을 취하고 이들 노드를 잠재적인 보안 문제를 나타내는 다른 시스템의 노드(120)들과 조합하려고 시도한 경우가 있을 수 있다. 단계(946)에서, 인증서들 중 어느 인증서가 도난당한 시스템과 연관되는지에 대한 또 다른 판정이 이루어진다. 일부 실시예들에서, 시스템이 도난당한 것으로 보고되는 경우, 프로비저닝 서버(710B)는 인증서(242)들을 블랙리스트에 추가하고, 블랙리스트 상의 인증서를 갖는 HSM(130)을 포함하는 임의의 네트워크(100)를 프로비저닝하는 것을 거부할 수 있다. 프로비저닝 서버(710)는 또한 블랙리스트에 올라간 인증서(242)를 갖는 HSM(130)과 통신하는 데 사용되는 임의의 키(132)들을 무효화할 것을 HSM(130)들에 지시할 수 있다. 그렇게 함으로써, 서버(710)는 네트워크(100)를 통한 통신들을 방지할 수 있는데, 이는 네트워크(100)를 포함하는 시스템을 효과적으로 무용지물(brick)로 할 수 있다.
사기 확인 검사가 실패하는 경우, 게이트웨이(140)는 프로비저닝 서버(710)로부터 확인 검사가 실패한 이유를 식별하는 정보를 수신할 수 있고, 진단 모드(900)를 개시한 사용자에게 그 정보를 제시할 수 있다. 그러나, 사기 확인 검사가 성공적으로 완료되는 경우, 게이트웨이(140)는 도 7에 대해 앞서 논의된 바와 같이 단계(950)에서 키 블롭(720)을 수신하고 분배할 수 있다.
이제 도 10a를 참조하면, 네트워크 내의 하나 이상의 노드를 프로비저닝하기 위한 방법(1000)의 흐름도가 도시된다. 방법(1000)은 게이트웨이(140)와 같은 컴퓨팅 디바이스에 의해 수행될 수 있는 방법의 일 실시예이다. 일부 경우에, 방법(1000)의 수행은 더 안전한 네트워크 통신들을 허용할 수 있다.
단계(1010)에서, 컴퓨팅 디바이스는 복수의 ECU 중 하나가 교체되어 있다는 표시를 수신한다. 다양한 실시예들에서, 복수의 전자 제어 유닛(ECU)은 차량의 동작들을 제어하고, 동작들을 제어하는 것은 키들의 세트(예컨대, 키(132)들)를 사용하여 암호화된 데이터(예컨대, MAC들)를 ECU들 사이에서 통신하는 것을 포함한다.
단계(1015)에서, 컴퓨팅 디바이스는, 표시에 응답하여, 키들의 세트를 교체하라는 요청을 광역 네트워크(WAN)를 통해 개체(예컨대, 프로비저닝 서버(710))에 발행한다.
단계(1020)에서, 컴퓨팅 디바이스는 WAN을 통해 개체로부터 교체 키들의 세트(예컨대, 키 블롭(720))를 수신한다. 일부 실시예들에서, 단계(1020)는 또한 세트 내의 교체 키들에 대한 사용을 정의하는 정책 정보(예컨대, 정책(134)들)를 수신하는 단계를 포함한다. 이러한 실시예에서, 정책 정보는, 세트 내의 제1 키에 대해, 1) 복수의 ECU 중 하나를, 제1 키로 암호화된 데이터를 송신하도록 허가된 것으로서 식별하고, 2) 복수의 ECU 중 하나 이상을, 제1 키로 암호화된 데이터를 수신하도록 허가된 것으로서 식별한다. 일부 실시예들에서, 단계(1020)는 또한 교체 키들 중 하나 이상이 무효화되어 있다는 표시를 수신하는 단계를 포함한다.
단계(1025)에서, 컴퓨터 디바이스는 교체 키들의 세트를 복수의 ECU에 분배한다. 일부 실시예들에서, 복수의 ECU 중 제1 ECU에 결합된 제1 보안 회로(예컨대, 노드(120A)에 결합된 HSM(130A))는 제1 ECU에 분배되는 교체 키를 수신하고, 교체 키로 데이터를 암호화라는, 제1 ECU 로부터의 요청들을 서비스한다. 일부 실시예들에서, 제1 ECU 로부터의 요청들을 서비스하기 전에, 보안 회로는 교체 키가 게이트웨이에 알려지지 않게 하는 방식으로 교체 키를 변경한다. 일부 실시예들에서, 단계(1025)는, 또한, 단계(1020)에서 교체 키들의 세트와 함께 수신된 정책 정보를 분배하는 단계를 포함한다. 일부 실시예들에서, 단계(1025)는, 또한, 복수의 ECU에 대해, 단계(1020)에서 무효화되어 있는 것으로서 표시된 하나 이상의 교체 키의 사용을 중단하도록 통지하는 단계를 포함한다.
이제 도 10b를 참조하면, 불허된 노드를 검출하기 위한 제1 방법(1030)의 흐름도가 도시된다. 일부 실시예들에서, 방법(1030)은 네트워크(100) 내로 삽입된 잠재적 위조 노드(120)를 식별하기 위해 진단 모드 동안에 게이트웨이(140) 또는 프로비저널 서버(provisional server)(710)에 의해 수행될 수 있다.
방법(1030)은, 단계(1040)에서, 컴퓨터 시스템이 네트워크(예컨대, 네트워크(100))에 결합된 복수의 노드(예컨대, 노드(120)들)를 검출하는 것에서 시작된다. 일부 실시예들에서, 복수의 노드는 차량의 동작을 제어하도록 구성된 전자 제어 유닛(ECU)들을 포함한다. 단계(1045)에서, 컴퓨터 시스템은 복수의 노드 중 임의의 노드들에 대해, 노드들의 유효성을 증명하는 인증서들(예컨대, 인증서(242)들)을 제공하라는 요청을 발행한다. 일부 실시예들에서, 방법(1030)은, 컴퓨터 시스템이 인증 기관(CA)으로부터 (예컨대, 키 등록(800)을 통해) 인증서를 수신하도록 그리고 노드에 대한 인증서를 저장하도록 구성된 보안 회로(예컨대, HSM(130))로부터 복수의 노드 중 하나와 연관된 인증서를 수신하는 단계를 포함한다. 단계(1050)에서, 컴퓨터 시스템은 요청에 응답하여 인증서를 제공하는 데 실패한 노드들 중 하나 이상을 식별한다. 일부 실시예들에서, 식별하는 단계는 하나 이상의 노드가 네트워크에서 사용되도록 불허됨을 나타내는 단계를 포함한다.
이제 도 10c를 참조하면, 불허된 노드를 검출하기 위한 제2 방법(1060)의 흐름도가 도시된다. 일부 실시예들에서, 방법(1060)은, 하나의 네트워크(100)로부터 제거되고 다른 네트워크(100) 내로 삽입된 노드(120) - 예컨대, 잠재적으로 도난당한 차량으로부터 제거되고 다른 차량 내로 삽입된 ECU - 를 식별하기 위해, 진단 모드 동안에 프로비저널 서버(710) 또는 게이트웨이(140)에 의해 수행될 수 있다.
방법(1060)은, 단계(1070)에서, 컴퓨터 시스템이 제1 네트워크(예컨대, 네트워크(100))에 결합된 복수의 노드(예컨대, 노드(120)들)로부터 인증서(예컨대, 인증서(242))들을 수신하는 것에서 시작된다. 단계(1075)에서, 컴퓨터 시스템은, 인증서들이 제1 네트워크와 연관되는지를 판정하기 위해, 인증서들을 분석한다. 일부 실시예들에서, 방법(1060)은, 컴퓨터 시스템이 복수의 노드 중 제1 노드에 인증서를 발행하라는 요청 - 이 요청은 제1 노드를 제1 네트워크와 연관된 것으로서 식별함 - 을 수신하는 단계를 포함한다. 컴퓨터 시스템은 제1 노드에 인증서를 발행하고, 제1 네트워크와 연관된 인증서들의 목록 내에 인증서의 표시를 저장한다. 이러한 실시예에서, 단계(1075)는 목록을 분석하는 단계를 추가로 포함한다. 일부 실시예들에서, 방법(1060)은, 컴퓨터 시스템이 복수의 노드 중 제1 노드에 인증서를 발행하라는 요청 - 이 요청은 제1 노드를 제1 네트워크와 연관된 것으로서 식별함 - 을 수신하는 단계를 포함한다. 컴퓨터 시스템은, 제1 노드가 제1 네트워크와 연관된 것임을 특정하는 표시를 인증서가 포함하도록, 인증서를 제1 노드에 발행한다. 이러한 실시예에서, 단계(1075)는 인증서에 포함된 표시를 분석하는 단계를 포함한다. 단계(1080)에서, 컴퓨터 시스템은, 분석하는 단계에 기초하여, 복수의 노드 중 하나를, 제2 네트워크와 연관되어 있는 것으로서 식별한다.
예시적인 컴퓨터 시스템
이제 도 11을 참조하면, 예시적인 컴퓨터 시스템(1100)의 블록도가 도시된다. 컴퓨터 시스템(1100)은 노드(120)들, 게이트웨이(140), 서버(710)들 등 중 하나 이상을 구현하는 데 사용될 수 있는 컴퓨터 시스템의 일 실시예이다. 도시된 실시예에서, 컴퓨터 시스템(1100)은 상호접속부(1180)(예컨대, 시스템 버스)를 통해 시스템 메모리(1140) 및 I/O 인터페이스(들)(1160)에 결합되는 프로세서 서브시스템(1120)을 포함한다. I/O 인터페이스(들)(1160)는 하나 이상의 I/O 디바이스(1170)에 결합된다. 컴퓨터 시스템(1100)은 서버 시스템, 개인용 컴퓨터 시스템, 네트워크 컴퓨터, 임베디드 시스템 등을 포함하지만 이것들로 제한되지 않는 다양한 유형의 디바이스들 중 임의의 것일 수 있다. 편의상 단일 컴퓨터 시스템(1100)이 도 11에 도시되어 있지만, 시스템(1100)은 또한 함께 동작하는 둘 이상의 컴퓨터 시스템으로서 구현될 수 있다.
프로세서 서브시스템(1120)은 하나 이상의 프로세서 또는 프로세싱 유닛을 포함할 수 있다. 컴퓨터 시스템(1100)의 다양한 실시예들에서, 프로세서 서브시스템(1120)의 다수의 인스턴스가 상호접속부(1180)에 결합될 수 있다. 다양한 실시예들에서, 프로세서 서브시스템(1120)(또는 프로세서 서브시스템(1120) 내의 각각의 프로세서 유닛)은 캐시 또는 다른 형태의 온-보드 메모리(on-board memory)를 포함할 수 있다.
시스템 메모리(1140)는, 시스템(1100)이 본 명세서에 기술된 다양한 동작들을 수행하게 하기 위해, 프로세서 서브시스템(1120)에 의해 실행가능한 프로그램 명령어들을 저장하는 데 사용 가능하다. 시스템 메모리(1140)는, 하드 디스크 저장소, 플로피 디스크 저장소, 착탈식 디스크 저장소, 플래시 메모리, 랜덤 액세스 메모리(RAM-SRAM, EDO RAM, SDRAM, DDR SDRAM, RAMBUS RAM 등), 판독 전용 메모리(PROM, EEPROM 등), 등과 같은 상이한 물리적, 비일시적 메모리 매체를 사용하여 구현될 수 있다. 컴퓨터 시스템(1100) 내의 메모리는, 메모리(1140)와 같은 1차 저장소로 제한되지 않는다. 오히려, 컴퓨터 시스템(1100)은 또한 프로세서 서브시스템(1120) 내의 캐시 메모리 및 I/O 디바이스(1170)들 상의 2차 저장소(예컨대, 하드 드라이브, 저장소 어레이 등)와 같은 다른 형태들의 저장소를 포함할 수 있다. 일부 실시예들에서, 이러한 다른 형태들의 저장소는 또한 본 명세서에 기술된 동작들을 수행하기 위해 프로세서 서브시스템(1120)에 의해 실행가능한 프로그램 명령어들을 저장할 수 있다.
I/O 인터페이스(1160)들은, 다양한 실시예들에 따라, 다른 디바이스들에 결합되고 이들과 통신하도록 구성된 다양한 유형들의 인터페이스들 중 임의의 것일 수 있다. 일 실시예에서, I/O 인터페이스(1160)는 전면으로부터 하나 이상의 후면 버스까지의 브리지 칩(bridge chip)(예컨대, 사우스브리지(Southbridge))이다. I/O 인터페이스(1160)들은, 하나 이상의 대응하는 버스 또는 다른 인터페이스를 통해, 하나 이상의 I/O 디바이스(1170)에 결합될 수 있다. I/O 디바이스(1170)들의 예들은 저장 디바이스들(하드 드라이브, 광학 드라이브, 착탈식 플래시 드라이브, 저장소 어레이, SAN, 또는 이들의 연관된 제어기), 네트워크 인터페이스 디바이스들(예컨대, 근거리 또는 광역 네트워크), 또는 다른 디바이스들(예컨대, 그래픽, 사용자 인터페이스 디바이스들 등)을 포함한다. 일 실시예에서, 컴퓨터 시스템(1100)은 네트워크 인터페이스 디바이스(1170)를 통해 네트워크에 결합된다(예컨대, WiFi, 블루투스, 이더넷 등을 통해 통신하도록 구성된다).
***
특정 실시예들이 전술되었지만, 이들 실시예들은 단일 실시예만이 특정 특징부에 대해 전술된 경우에도 본 발명의 범주를 제한하도록 의도되지 않는다. 본 발명에 제공된 특징부들의 예들은 달리 언급되지 않는 한 제한적인 것이 아니라 예시적인 것으로 의도된다. 상기의 설명은 본 발명의 이익을 취하는 당업자에게 자명한 바와 같이 그러한 대안물들, 수정물들, 및 등가물들을 포괄하도록 의도된다.
본 발명의 범주는, 본 명세서에 다뤄진 문제점들 중 임의의 것 또는 전부를 완화시키든 아니든, (명시적으로 또는 묵시적으로) 본 명세서에 개시된 임의의 특징부 또는 특징부들의 조합, 또는 그의 임의의 일반화를 포함한다. 따라서, 특징부들의 임의의 그러한 조합에 대해 본 출원(또는 그에 대한 우선권을 주장하는 출원)의 심사 동안에 새로운 청구범위가 작성될 수 있다. 구체적으로, 첨부된 청구범위를 참조하면, 종속항들로부터의 특징부들은 독립항들의 특징부들과 조합될 수 있으며, 각자의 독립항들로부터의 특징부들은 첨부된 청구범위에 열거된 특정 조합들로 조합될 수 있을 뿐 아니라 임의의 적절한 방식으로 조합될 수 있다.

Claims (32)

  1. 장치로서,
    보안 회로를 포함하고, 상기 보안 회로는,
    네트워크를 통해 복수의 디바이스 사이의 데이터 통신을 암호화하는 데 사용 가능한 복수의 키를 저장하도록;
    상기 복수의 키에 대한 사용 기준들의 세트를 정의하는 정보를 저장하도록 - 상기 사용 기준들의 세트는 상기 복수의 디바이스 중 제1 디바이스로부터 상기 복수의 디바이스 중 제2 디바이스로 통신되고 있는 데이터를 암호화하는 데 상기 복수의 키 중 제1 키가 전용됨을 명시하고, 상기 사용 기준들의 세트는 상기 보안 회로 외부의 엔티티로부터 수신됨 -;
    상기 제1 키로 메시지의 일부분을 암호화하라는 요청을 상기 제1 디바이스로부터 수신하도록 - 상기 요청은 상기 메시지가 상기 제1 디바이스로부터 상기 제2 디바이스로 송신되고 있음을 나타냄 -; 그리고
    상기 사용 기준들의 세트가 상기 제1 디바이스로부터 상기 제2 디바이스로 송신되고 있는 메시지에 대해 상기 제1 키로 암호화하는 것을 허용한다는 결정에 응답하여, 상기 제1 키로 상기 메시지의 일부분을 암호화하도록 구성되는, 장치.
  2. 제1항에 있어서,
    상기 복수의 디바이스를 추가로 포함하고, 상기 보안 회로는 상기 제1 디바이스에 결합되고;
    상기 보안 회로는, 상기 메시지의 일부분을 암호화하여, 상기 암호화된 일부분이 상기 메시지가 상기 제1 디바이스에 의해 송신됨을 확립하는 데 사용 가능하게 하도록 구성되는, 장치.
  3. 제1항에 있어서, 상기 보안 회로는,
    상기 복수의 디바이스 중 제3 디바이스로부터 송신되는 다른 메시지의 일부분을 수신하도록 - 상기 다른 메시지의 일부분은 상기 제3 디바이스에 결합된 다른 보안 회로에 의해 암호화됨 -;
    상기 사용 기준들의 세트에 기초하여, 상기 제3 디바이스로부터 상기 제1 디바이스로 송신되고 있는 데이터 통신들을 복호화하는 데 전용되는 제2 키를 선택하도록; 그리고
    상기 다른 메시지의 일부분을 상기 제2 키로 복호화하도록 구성되는, 장치.
  4. 제1항에 있어서, 상기 저장된 정보는 상기 복수의 키 각각에 대한 튜플(tuple)을 명시하고, 각각의 튜플은 (1) 해당 키가 암호화에 전용되는지 아니면 복호화에 전용되는지에 대한 표시를 포함하고, 2) 해당 키와 연관된 상기 복수의 디바이스 중 하나 이상을 식별하는, 장치.
  5. 제1항에 있어서, 상기 사용 기준들의 세트는, 상기 제1 키가 상기 제1 디바이스와 제2 디바이스 사이의 한 방향으로의 데이터 통신들을 암호화하는 데 전용되지만 상기 제1 디바이스와 제2 디바이스 사이의 다른 방향으로의 데이터 통신들을 암호화하는 데에는 전용되지 않음을 나타내는, 장치.
  6. 제1항에 있어서,
    게이트웨이(gateway)를 추가로 포함하고, 상기 게이트웨이는,
    광역 네트워크를 통한 통신을 용이하게 하도록;
    상기 광역 네트워크를 통해 개체로부터 교체 키들의 세트를 수신하도록; 그리고
    상기 교체 키들 중 임의의 키들을 상기 복수의 디바이스에 분배하도록 구성되는, 장치.
  7. 제6항에 있어서, 상기 게이트웨이는,
    상기 복수의 디바이스 중 하나가 새로운 디바이스로 교체되어 있다는 표시에 응답하여, 상기 교체 키들의 세트에 대한 요청을 발행하도록 구성되는, 장치.
  8. 제1항에 있어서,
    상기 복수의 디바이스를 추가로 포함하고, 상기 복수의 디바이스는 차량의 동작들을 제어하도록 구성된 전자 제어 유닛(ECU: electronic control unit)들을 포함하며;
    상기 보안 회로는 상기 제1 디바이스에 의해 제어되는 동작들과 연관된 메시지들의 일부분들을 암호화하도록 구성되는, 장치.
  9. 장치로서,
    제1 전자 제어 유닛(ECU) - 상기 제1 ECU는 상기 제1 ECU로부터 제2 ECU로 송신될 데이터 프레임에 대한 메시지 인증 코드(MAC: message authentication code)를 생성하도록 구성됨 -; 및
    상기 제1 ECU에 결합되는 제1 보안 회로 - 상기 제1 보안 회로는 제1 암호화 키로 상기 MAC를 암호화하도록 구성됨 - 를 포함하고;
    상기 제1 ECU는, 상기 데이터 프레임을, 상기 데이터 프레임에 포함된 상기 암호화된 MAC와 함께 송신하도록 구성되고,
    상기 제1 보안 회로는,
    상기 제1 암호화 키를 포함하는 복수의 암호화 키를 저장하도록;
    상기 복수의 암호화 키 중 임의의 키들에 대해, 각자의 사용 및 연관된 ECU들의 각자의 세트를 명시하는 정책을 저장하도록 - 상기 정책은, 상기 제1 암호화 키가 암호화에 사용되어야 하고 상기 제2 ECU를 포함하는 ECU들의 세트와 연관된다는 것을 명시하고, 상기 정책은 상기 제1 보안 회로 외부의 엔티티로부터 수신됨 -; 그리고
    상기 저장된 정책에 기초하여 상기 제1 암호화 키로 상기 MAC에 서명할지를 결정하도록 구성되는, 장치.
  10. 제9항에 있어서,
    상기 제2 ECU에 결합되는 제2 보안 회로 - 상기 제2 보안 회로는 상기 데이터 프레임에 포함된 상기 암호화된 MAC를 복호화하도록 구성됨 -; 및
    상기 복호화된 MAC를 사용하여 상기 데이터 프레임의 무결성을 검증하도록 구성된 상기 제2 ECU를 추가로 포함하는, 장치.
  11. 제9항에 있어서, 상기 제1 ECU는 상기 제2 ECU가 상기 데이터 프레임의 목적지임을 상기 제1 보안 회로에 나타내도록 구성되고;
    상기 제1 보안 회로는, 상기 데이터 프레임의 표시된 목적지에 기초하여 상기 MAC에 대해 상기 제1 암호화 키로 암호화하는 것을 허용할지를 결정하도록 구성되는, 장치.
  12. 삭제
  13. 제9항에 있어서,
    네트워크 게이트웨이를 추가로 포함하고, 상기 네트워크 게이트웨이는 무선 네트워크 인터페이스를 통해 키들의 세트를 수신하도록 - 상기 키들의 세트는 상기 제1 암호화 키를 포함함 -; 그리고
    상기 제1 보안 회로를 포함하는 복수의 보안 회로에 상기 키들의 세트를 분배하도록 구성되는, 장치.
  14. 제13항에 있어서, 상기 제1 보안 회로는,
    상기 제1 암호화 키를 상기 네트워크 게이트웨이로부터 수신한 후에, 상기 제1 암호화 키가 상기 네트워크 게이트웨이에 알려지지 않도록 상기 제1 암호화 키를 변경하도록 구성되는, 장치.
  15. 제9항에 있어서, 상기 제1 보안 회로는, 제1 상호접속부를 통해 상기 제1 ECU에 결합되고, 상기 제1 ECU는, 상기 제1 상호접속부와는 상이한 제2 상호접속부를 통해 상기 데이터 프레임을 상기 제2 ECU로 송신하도록 구성되는, 장치.
  16. 장치로서,
    네트워크를 통해 제2 네트워크 노드로 메시지를 통신하도록 구성된 제1 네트워크 노드; 및
    상기 제1 네트워크 노드에 결합된 보안 회로를 포함하고, 상기 보안 회로는,
    암호화 키, 및 상기 암호화 키에 대한 하나 이상의 사용 기준을 정의하는 정책을 저장하고 - 상기 정책은 상기 제1 네트워크 노드 및 상기 보안 회로 외부의 엔티티로부터 수신됨 -;
    상기 제1 네트워크 노드로부터 상기 메시지의 일부분을 암호화하라는 요청을 수신하고;
    상기 제2 네트워크 노드가 상기 메시지의 목적지로서 표시될 때, 상기 정책이 상기 암호화 키로 상기 일부분을 암호화하는 것을 허용한다는 결정에 응답하여, 상기 암호화 키로 상기 일부분을 암호화하는, 장치.
  17. 제16항에 있어서, 상기 요청은 상기 제2 네트워크 노드가 상기 메시지의 목적지임을 나타내는, 장치.
  18. 제17항에 있어서, 상기 요청은 제3 네트워크 노드가 상기 메시지의 다른 목적지임을 추가로 나타내고;
    상기 제2 네트워크 노드 및 상기 제3 네트워크 노드가 상기 메시지의 목적지들로서 표시될 때, 상기 보안 회로는, 상기 정책이 상기 암호화 키로 암호화하는 것을 허용하는지를 결정하도록 구성되는, 장치.
  19. 제17항에 있어서, 상기 정책은 상기 제2 네트워크 노드의 매체 액세스 제어(MAC: media access control) 어드레스를 참조함으로써 상기 제2 네트워크 노드를 허용가능한 목적지로서 식별하는, 장치.
  20. 제16항에 있어서, 상기 정책은, 상기 암호화 키로 암호화하는 것이 허용가능하지만 상기 암호화 키로 복호화하는 것은 허용가능하지 않음을 나타내는, 장치.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
KR1020197006297A 2016-09-23 2017-09-08 네트워크 트래픽의 보안 통신 KR102473100B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020227041768A KR20220166365A (ko) 2016-09-23 2017-09-08 네트워크 트래픽의 보안 통신

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662399307P 2016-09-23 2016-09-23
US62/399,307 2016-09-23
PCT/US2017/050814 WO2018057321A2 (en) 2016-09-23 2017-09-08 Secure communication of network traffic

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020227041768A Division KR20220166365A (ko) 2016-09-23 2017-09-08 네트워크 트래픽의 보안 통신

Publications (2)

Publication Number Publication Date
KR20190034324A KR20190034324A (ko) 2019-04-01
KR102473100B1 true KR102473100B1 (ko) 2022-12-01

Family

ID=59966836

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227041768A KR20220166365A (ko) 2016-09-23 2017-09-08 네트워크 트래픽의 보안 통신
KR1020197006297A KR102473100B1 (ko) 2016-09-23 2017-09-08 네트워크 트래픽의 보안 통신

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020227041768A KR20220166365A (ko) 2016-09-23 2017-09-08 네트워크 트래픽의 보안 통신

Country Status (9)

Country Link
US (2) US11595366B2 (ko)
EP (1) EP3491774B1 (ko)
JP (3) JP7037550B2 (ko)
KR (2) KR20220166365A (ko)
CN (2) CN115442147A (ko)
AU (1) AU2017330232B2 (ko)
BR (1) BR112019003520A2 (ko)
MX (1) MX2019003356A (ko)
WO (1) WO2018057321A2 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220166365A (ko) * 2016-09-23 2022-12-16 애플 인크. 네트워크 트래픽의 보안 통신
US11095446B2 (en) 2018-02-27 2021-08-17 Anchor Labs, Inc. Cryptoasset custodial system with different rules governing access to logically separated cryptoassets and proof-of-stake blockchain support
US20210092103A1 (en) * 2018-10-02 2021-03-25 Arista Networks, Inc. In-line encryption of network data
US11128459B2 (en) * 2018-11-28 2021-09-21 Its, Inc. Mitigating service disruptions in key maintenance
WO2020140270A1 (en) * 2019-01-04 2020-07-09 Baidu.Com Times Technology (Beijing) Co., Ltd. Method for establishing a secure information exchange channel between a host system and a data processing accelerator
US11082235B2 (en) 2019-02-14 2021-08-03 Anchor Labs, Inc. Cryptoasset custodial system with different cryptographic keys controlling access to separate groups of private keys
US11494763B2 (en) 2019-08-19 2022-11-08 Anchor Labs, Inc. Cryptoasset custodial system with custom logic
US11301845B2 (en) 2019-08-19 2022-04-12 Anchor Labs, Inc. Cryptoasset custodial system with proof-of-stake blockchain support
US11562349B2 (en) 2019-08-20 2023-01-24 Anchor Labs, Inc. Risk mitigation for a cryptoasset custodial system using data points from multiple mobile devices
US11100497B2 (en) 2019-08-20 2021-08-24 Anchor Labs, Inc. Risk mitigation for a cryptoasset custodial system using a hardware security key
US11501291B2 (en) 2019-08-23 2022-11-15 Anchor Labs, Inc. Cryptoasset custodial system using encrypted and distributed client keys
US11558357B2 (en) * 2019-11-22 2023-01-17 Baidu Usa Llc Method for key sharing between accelerators with switch
CN111049648B (zh) * 2019-12-10 2022-08-12 杭州依赛通信有限公司 一种MACSec加密业务数据平面主动更新密钥保证可靠传输的方法
US11790092B1 (en) * 2020-05-26 2023-10-17 Amazon Technologies, Inc. Cryptoprocessor access management
EP4099591A4 (en) * 2020-08-28 2023-05-10 Huawei Technologies Co., Ltd. DATA TRANSMISSION METHOD AND APPARATUS
US11246032B1 (en) * 2020-10-29 2022-02-08 Motional Ad Llc Device provisioning and authentication
KR102528678B1 (ko) * 2020-12-30 2023-05-08 한국전자통신연구원 원격 검증 관리 장치 및 방법
CN113016201B (zh) * 2020-12-31 2022-05-24 华为技术有限公司 密钥供应方法以及相关产品
US11887411B2 (en) * 2021-01-27 2024-01-30 Amazon Technologies, Inc. Vehicle data extraction service
CN113259933B (zh) * 2021-06-15 2023-08-29 北京天融信网络安全技术有限公司 一种密钥更新的方法、网关、控制装置、电子设备及介质
WO2023059626A1 (en) * 2021-10-04 2023-04-13 The Regents Of The University Of Michigan Sufficiently secure controller area network
US11902374B2 (en) 2021-11-29 2024-02-13 Amazon Technologies, Inc. Dynamic vehicle data extraction service

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101508497B1 (ko) * 2013-08-26 2015-04-07 고려대학교 산학협력단 차량용 데이터의 인증 및 획득 방법

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08204698A (ja) 1995-01-24 1996-08-09 Mitsubishi Electric Corp 暗号装置
EP2346246B1 (en) * 2002-01-02 2014-07-30 Sony Electronics Inc. Critical packet partial encryption
KR101336529B1 (ko) * 2005-06-14 2013-12-03 써티콤 코포레이션 원격 디바이스 등록 시스템 및 방법
CA2510366C (en) * 2005-06-14 2013-02-26 Certicom Corp. System and method for remote device registration
JP5024999B2 (ja) * 2007-09-28 2012-09-12 東芝ソリューション株式会社 暗号管理装置、暗号管理方法、暗号管理プログラム
GB2471282B (en) * 2009-06-22 2015-02-18 Barclays Bank Plc Method and system for provision of cryptographic services
JP2013048374A (ja) 2011-08-29 2013-03-07 Toyota Motor Corp 保護通信方法
US9280653B2 (en) 2011-10-28 2016-03-08 GM Global Technology Operations LLC Security access method for automotive electronic control units
JP5770602B2 (ja) * 2011-10-31 2015-08-26 トヨタ自動車株式会社 通信システムにおけるメッセージ認証方法および通信システム
US9887838B2 (en) 2011-12-15 2018-02-06 Intel Corporation Method and device for secure communications over a network using a hardware security engine
US8954735B2 (en) * 2012-09-28 2015-02-10 Intel Corporation Device, method, and system for secure trust anchor provisioning and protection using tamper-resistant hardware
US9390291B2 (en) * 2012-12-29 2016-07-12 Intel Corporation Secure key derivation and cryptography logic for integrated circuits
US9301134B2 (en) * 2013-01-30 2016-03-29 Telefonaktiebolaget Lm Ericsson (Publ) Security key generation for dual connectivity
JP2015027031A (ja) 2013-07-29 2015-02-05 埼玉日本電気株式会社 通信システム
JP6067548B2 (ja) 2013-12-18 2017-01-25 トヨタ自動車株式会社 情報処理装置
EP3110066B1 (en) * 2014-02-18 2018-06-27 Panasonic Intellectual Property Corporation of America Authentication method and authentication system
US9425963B2 (en) 2014-03-21 2016-08-23 GM Global Technology Operations LLC Securing electronic control units using message authentication codes
CN105594156B (zh) * 2014-05-08 2020-01-21 松下电器(美国)知识产权公司 车载网络系统、电子控制单元及不正常检测方法
EP4236196A3 (en) * 2014-05-08 2023-10-18 Panasonic Intellectual Property Corporation of America In-vehicle network system, fraud-sensing electronic control unit, and anti-fraud method
JP6199335B2 (ja) 2014-06-05 2017-09-20 Kddi株式会社 通信ネットワークシステム及びメッセージ検査方法
DE102014112611A1 (de) 2014-09-02 2016-03-03 Endress + Hauser Conducta Gesellschaft für Mess- und Regeltechnik mbH + Co. KG Verfahren zur Authentifikation mindestens einer ersten Einheit an mindestens einer zweiten Einheit
KR20150050335A (ko) * 2014-09-11 2015-05-08 (주) 아이씨티케이 사용자 인증을 위한 ic 칩 및 인증 방법
CN106458112B (zh) * 2014-11-12 2019-08-13 松下电器(美国)知识产权公司 更新管理方法、更新管理系统以及计算机可读取的记录介质
CN105794146A (zh) * 2014-11-13 2016-07-20 松下电器(美国)知识产权公司 密钥管理方法、车载网络系统以及密钥管理装置
JP6192673B2 (ja) 2015-03-04 2017-09-06 Kddi株式会社 鍵管理システム、鍵管理方法およびコンピュータプログラム
CN105187376B (zh) 2015-06-16 2018-04-17 西安电子科技大学 车联网中汽车内部网络的安全通信方法
JP6345157B2 (ja) * 2015-06-29 2018-06-20 クラリオン株式会社 車載情報通信システム及び認証方法
CN105163285B (zh) * 2015-07-28 2018-11-16 上海华为技术有限公司 一种边缘mbms业务的数据传输方法及相关设备
US20170180397A1 (en) * 2015-12-21 2017-06-22 Shivinder Singh Sikand Thin Client Unit apparatus to transport intra-vehicular data on a communication network
US10382208B2 (en) * 2016-04-29 2019-08-13 Olympus Sky Technologies, S.A. Secure communications using organically derived synchronized processes
WO2018026030A1 (ko) * 2016-08-03 2018-02-08 엘지전자 주식회사 차량 및 그 제어방법
KR20220166365A (ko) * 2016-09-23 2022-12-16 애플 인크. 네트워크 트래픽의 보안 통신
GB2561256A (en) * 2017-04-05 2018-10-10 Stmicroelectronics Grenoble2 Sas Apparatus for use in a can system
US10834207B2 (en) * 2018-02-27 2020-11-10 Excelfore Corporation System and method for updating software in an electronic device
US10991175B2 (en) * 2018-12-27 2021-04-27 Beijing Voyager Technology Co., Ltd. Repair management system for autonomous vehicle in a trusted platform

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101508497B1 (ko) * 2013-08-26 2015-04-07 고려대학교 산학협력단 차량용 데이터의 인증 및 획득 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
㈜이삭, 암호모듈 구현 적합성 평가 기술, 정보통신산업진흥원(2003.12.29.) 1부.*

Also Published As

Publication number Publication date
CN110024324A (zh) 2019-07-16
KR20220166365A (ko) 2022-12-16
US11595366B2 (en) 2023-02-28
AU2017330232A1 (en) 2019-03-21
EP3491774B1 (en) 2024-02-21
CN110024324B (zh) 2022-09-20
JP7274518B2 (ja) 2023-05-16
US20190207915A1 (en) 2019-07-04
WO2018057321A3 (en) 2018-04-26
US20230275879A1 (en) 2023-08-31
JP2021106401A (ja) 2021-07-26
JP7037550B2 (ja) 2022-03-16
AU2017330232B2 (en) 2020-09-03
WO2018057321A2 (en) 2018-03-29
BR112019003520A2 (pt) 2019-05-21
JP2023100815A (ja) 2023-07-19
EP3491774A2 (en) 2019-06-05
CN115442147A (zh) 2022-12-06
JP2019531646A (ja) 2019-10-31
KR20190034324A (ko) 2019-04-01
MX2019003356A (es) 2019-08-12

Similar Documents

Publication Publication Date Title
KR102473100B1 (ko) 네트워크 트래픽의 보안 통신
US11849029B2 (en) Method of data transfer, a method of controlling use of data and cryptographic device
US8266286B2 (en) Dynamic key management server discovery
US8776212B2 (en) Protecting computers using an identity-based router
EP2954639A1 (en) Method and apparatus for embedding secret information in digital certificates
US8145917B2 (en) Security bootstrapping for distributed architecture devices
US11838409B2 (en) Method and apparatus for transferring data in a publish-subscribe system
KR20220002455A (ko) Some/ip 통신 프로토콜을 사용하여 차량 내 데이터 또는 메시지들 전송 개선
Jenkins et al. Commercial National Security Algorithms (CNSA) Suite Profile of Certificate Management over CMS

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
E601 Decision to refuse application
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant