JP2022527757A - 物理複製困難関数を使用したコンピューティングデバイスのidの生成 - Google Patents

物理複製困難関数を使用したコンピューティングデバイスのidの生成 Download PDF

Info

Publication number
JP2022527757A
JP2022527757A JP2021557290A JP2021557290A JP2022527757A JP 2022527757 A JP2022527757 A JP 2022527757A JP 2021557290 A JP2021557290 A JP 2021557290A JP 2021557290 A JP2021557290 A JP 2021557290A JP 2022527757 A JP2022527757 A JP 2022527757A
Authority
JP
Japan
Prior art keywords
key
computing device
memory
puf
secret
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2021557290A
Other languages
English (en)
Inventor
アントニノ モンデッロ
アルベルト トロイア
Original Assignee
マイクロン テクノロジー,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マイクロン テクノロジー,インク. filed Critical マイクロン テクノロジー,インク.
Publication of JP2022527757A publication Critical patent/JP2022527757A/ja
Pending legal-status Critical Current

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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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
    • 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/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • 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/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
    • 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
    • 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/3271Cryptographic 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 challenge-response
    • H04L9/3278Cryptographic 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 challenge-response using physically unclonable functions [PUF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • H04W12/069Authentication using certificates or pre-shared keys
    • 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/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • H04W12/086Access security using security domains
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/60Context-dependent security
    • H04W12/69Identity-dependent
    • H04W12/71Hardware identity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

方法は、コンピューティングデバイスにより、デバイスシークレットを生成することであって、当該生成することは、少なくとも1つの物理複製困難関数(PUF)により、少なくとも1つの値を提供することと、鍵導出関数(KDF)を使用して、デバイスシークレットを生成することであって、少なくとも1つのPUFにより提供される少なくとも1つの値はKDFへの入力である、デバイスシークレットを生成することと、を含む、当該生成することと、生成されたデバイスシークレットをコンピューティングデバイスのメモリに格納することと、を含む。

Description

[関連出願]
本出願は、2019年3月25日に出願された「GENERATING AN IDENTITY FOR A COMPUTING DEVICE USING A PHYSICAL UNCLONABLE FUNCTION」と題する米国特許出願第16/363,204号に対する優先権を主張し、その開示全体は参照により本明細書に組み込まれるものとする。
本出願は、Pisasale他により2018年5月3日に出願された「KEY GENERATION AND SECURE STORAGE IN A NOISY ENVIRONMENT」と題する米国特許出願第15/970,660号の関連出願であり、その出願の内容全体は、参照により本明細書に完全に記載されているかのように組み込まれるものとする。
本出願は、Mondello他により2017年12月22日に出願された「PHYSICAL UNCLONABLE FUNCTION USING MESSAGE AUTHENTICATION CODE」と題する米国特許出願第15/853,498号の関連出願であり、その出願の内容全体は、参照により本明細書に完全に記載されているかのように組み込まれるものとする。
本出願は、Mondello他により2018年4月27日に出願された「SECURE DISTRIBUTION OF SECRET KEY USING A MONOTONIC COUNTER」と題する米国特許出願第15/965,731号の関連出願であり、その出願の内容全体は、参照により本明細書に完全に記載されているかのように組み込まれるものとする。
[技術分野]
本明細書に開示される少なくともいくつかの実施形態は、概して、コンピューティングデバイスのID(identity)に関し、より具体的には、物理複製困難関数を使用してコンピューティングデバイスのIDを生成することに関するが、これに限定されない。
物理複製困難関数(PUF)は、例えば、マイクロプロセッサなどの半導体デバイスの一意的なIDとして機能できるデジタル値を提供する。PUFは、例えば、半導体製造中に自然に発生する物理的変動に基づいており、これにより、物理的変動以外の点では同一である半導体チップを区別することが可能となる。
PUFは通常、暗号化で使用される。PUFは、例えば、物理的構造で具現化される物理的エンティティであり得る。PUFは、多くの場合、集積回路で実施され、通常、セキュリティ要件の高いアプリケーションで使用される。例えば、PUFは、一意的で改竄不可能なデバイス識別子として使用され得る。PUFはまた、安全な鍵生成に使用され得、ランダム性のソースとして使用され得る。
デバイス識別に関する一実施例では、Microsoft(登録商標)Azure(登録商標)IoTプラットフォームは、Microsoftが提供するクラウドサービスの集合である。Azure(登録商標)IoTプラットフォームは、デバイスID構成エンジン(DICE)及び多数の異なる種類のハードウェアセキュリティモジュール(HSM)に対応する。DICEは、Trusted Computing Group(TCG)におけるデバイスの識別及び証明の今後の標準であり、これにより、製造業者はシリコンゲートを使用してハードウェアに基づいたデバイス識別を作成することが可能となる。HSMは、デバイスIDを保護し、ハードウェアベースのデバイス証明及びゼロタッチプロビジョニングなどの高度な機能を提供するために、使用される。
DICEは、スケーラブルなセキュリティフレームワークを提供し、これは、HSMフットプリントを使用して、認証、セキュアブート、及びリモート証明などのセキュリティソリューションを構築する際に使用する信頼のアンカーを設定する。DICEは、IoTデバイスを特徴付ける現在の制約コンピューティング環境に役立ち、Trusted Computing Group(TCG)及びトラステッドプラットフォームモジュール(TPM)など、より従来型のセキュリティフレームワーク標準に代わるものを提供する。Azure(登録商標)IoTプラットフォームは、いくつかのシリコンベンダーのHSMにおいて、DICE用のHSMサポートを有する。
信頼サービスに関する一実施例では、堅牢なモノのインターネット(RIoT)は、コンピューティングデバイスに信頼サービスを提供するためのアーキテクチャである。信頼サービスには、デバイスID、証明、及びデータの整合性が含まれる。RIoTアーキテクチャを使用して、マルウェアにより侵害されたデバイスの信頼をリモートで再構築することができる。また、RIoTサービスは、非常に小さなデバイスでも低コストで提供することができる。
セキュリティ技術の向上により、現場の製品に対するソフトウェア更新をより頻繁に行う必要が生じている。しかし、これらの更新は、人間の関与なしに管理及び検証されなければならない。これらの技術的な問題に対処するために、RIoTを使用することができる。
RIoTは、数多くのセキュリティシナリオの暗号化動作及び鍵管理の基盤を提供する。認証、整合性検証、及びデータ保護には、暗号化及び復号化するための暗号鍵、並びにデータをハッシュ及び署名するための機構が必要である。ほとんどのインターネット接続デバイスも、他のデバイスとの安全な通信のために暗号化を使用する。
RIoTにより提供される暗号化サービスには、デバイスID、データ保護、及び証明が含まれる。デバイスIDに関しては、デバイスは通常、暗号鍵の所持を証明することにより、自身の認証を行う。デバイスに対応付けられた鍵が抽出され複製された場合、デバイスのなりすましが起こり得る。
データ保護に関しては、デバイスは通常、暗号化を使用して、ローカルに格納されたデータを暗号化し、整合性を保護する。暗号鍵にアクセスできるのは認可されたコードのみである場合、認可されていないソフトウェアは、データを復号化または変更することはできない。
証明に関しては、デバイスは時に、デバイスが実行しているコードと、デバイスのセキュリティ構成とを報告する必要がある。例えば、デバイスが最新のコードを実行していることを証明するために、証明書が使用される。
鍵がソフトウェアのみで管理される場合、ソフトウェアコンポーネントのバグにより、鍵の漏洩が生じ得る。ソフトウェアのみのシステムの場合、鍵の漏洩後に信頼を回復する主な方法は、更新されたソフトウェアをインストールし、デバイスに新たな鍵をプロビジョニングすることである。これは、サーバ及びモバイルデバイスにとって時間のかかることであり、デバイスに物理的にアクセスできない場合は不可能である。
安全なリモート再プロビジョニングを行うためのいくつかの手法では、ハードウェアベースのセキュリティが使用される。ソフトウェアレベルの攻撃により、ハッカーはハードウェア保護化された鍵を使用することができるようになり得るが、それらを抽出することはできず、よって、ハードウェア保護化された鍵は、侵害されたシステムの安全な再プロビジョニングを行うための有用な構成要素である。トラステッドプラットフォームモジュール、すなわちTPMは、鍵のハードウェア保護化を提供し、またそれが実行されていることをデバイスがソフトウェアに報告(証明)することを可能にするセキュリティモジュールの例である。従って、侵害されたTPM搭載デバイスは、安全に新たな鍵を発行され得、証明レポートを提供することができる。
TPMは、コンピューティングプラットフォームで幅広く利用可能である(例えばSoC統合及びプロセッサモード分離ファームウェアTPMを使用する)。しかし、TPMは、多くの場合、実用的ではない。例えば、小型のIoTデバイスの場合、コスト及び電力のニーズを大幅に増やすことなく、TPMに対応することは不可能である。
小型のコンピューティングデバイスにデバイスセキュリティを提供するためにRIoTを使用できるが、任意のプロセッサまたはコンピュータシステムに適用することもできる。RIoTコア外のソフトウェアコンポーネントが侵害された場合、RIoTは安全なパッチ適用及び再プロビジョニングを提供する。RIoTはまた、暗号鍵保護の異なる手法を使用する。RIoTフレームワークが使用する最も保護された暗号鍵は、ブート中に短時間しか利用できない。
添付図面の図において、実施形態は、限定ではなく例として示され、同様の参照番号は、同様の要素を示す。
一実施形態による、コンピューティングデバイスのIDを検証するホストデバイスを示す。 一実施形態による、IDコンポーネントと、検証コンポーネントとを有する例示的なコンピューティングシステムを示す。 一実施形態による、車両の例示的なコンピューティングデバイスを示す。 一実施形態による、車両の例示的なコンピューティングデバイスと通信する例示的なホストデバイスを示す。 一実施形態による、ホストデバイスのために識別子、証明書、及び鍵を生成するアプリケーションボードを示す。 一実施形態による、層を使用して段階的にブートする例示的なコンピューティングシステムを示す。 一実施形態による、非対称生成器を使用して識別子、証明書、及び鍵を生成する例示的なコンピューティングデバイスを示す。 一実施形態による、復号化動作を使用してコンピューティングデバイスのIDを検証する検証コンポーネントを示す。 一実施形態による、証明書を検証する例示的なプロセスのブロック図を示す。 一実施形態による、識別子、証明書、及び鍵を使用してコンピューティングデバイスのIDを検証する方法を示す。 一実施形態による、物理複製困難関数(PUF)デバイスからの入力を受信したメッセージ認証コード(MAC)の出力から、一意鍵を生成するシステムを示す。 一実施形態による、セレクタモジュールが選択した1つ以上のPUFデバイスからの入力を受信したMACの出力から、一意鍵を生成するシステムを示す。 一実施形態による、1つ以上のPUFデバイスからの入力と、単調カウンタからの入力(及び/またはNONCE、タイムスタンプなどの別の鮮度機構からの入力)を受信したMACの出力から、一意鍵を生成するシステムを示す。 一実施形態による、1つ以上のPUFから提供される1つ以上の入力値を使用して、MACから出力を生成する方法を示す。 一実施形態による、1つ以上のPUFデバイスからの入力と、単調カウンタからの入力(及び/またはNONCE、タイムスタンプなどの別の鮮度機構からの入力)を受信したMACの出力から、ルート鍵を生成し、追加のMACを加えてセッション鍵を生成するシステムを示す。 一実施形態による、難読化鍵を不揮発性メモリに格納するコンピューティングデバイスを示す。 一実施形態による、難読化プロセス中に生成される中間鍵の例を示す。 一実施形態による、図16の難読化プロセス中に生成される別の中間鍵の例を示す。 一実施形態による、難読化鍵を生成し、不揮発性メモリに格納する方法を示す。 一実施形態による、鍵投入に基づいて初期鍵を生成し、初期鍵を難読化し、難読化鍵を不揮発性メモリに格納するコンピューティングデバイスを示す。 一実施形態による、物理複製困難関数(PUF)を使用してIDを生成するコンピューティングデバイスを示す。 一実施形態による、システムの単調カウンタが提供する初期値を、システムの改竄が起こったか否かの判定に使用するために送信するシステムを示す。 一実施形態による、物理複製困難関数(PUF)を使用してコンピューティングデバイスのIDを生成する方法を示す。
本明細書の少なくともいくつかの実施形態は、1つ以上のコンピューティングデバイスのIDの検証に関する。様々な実施形態では、ホストデバイスは、コンピューティングデバイスにメッセージを送信することにより、コンピューティングデバイスのIDを検証する。コンピューティングデバイスは、メッセージを使用して識別子、証明書、及び鍵を生成し、これらはホストデバイスに送信される。ホストデバイスは、生成された識別子、証明書、及び鍵を使用して、コンピューティングデバイスのIDを検証する。
別の実施形態は、物理複製困難関数(PUF)を使用してコンピューティングデバイスのIDを生成することに関する。後述される様々な実施形態では、前述のようにホストデバイスがIDを検証する前に、上記のコンピューティングデバイスは、少なくとも1つのPUFを使用して自身のIDを生成し得る。1つ以上のPUFを使用してIDを生成することに関する様々な実施形態が、「PUFを使用したコンピューティングデバイスのIDの生成」というタイトルの下記の節で説明される。
IDの検証に関するいくつかの実施例では、コンピューティングデバイスはフラッシュメモリデバイスであり得る。いくつかの実施例では、コンピューティングシステム(例えば自律走行車両のアプリケーションコントローラ)に強力なレベルのセキュリティ機能を追加するために、フラッシュメモリが活用される。
フラッシュメモリは、数多くのコンピュータシステムで使用されている。シリアルNOR、パラレルNOR、シリアルNAND、パラレルNAND、e.MMC、UFSなど、様々な種類のフラッシュメモリが今日存在する。これらのソケットは、様々な業界及びアプリケーションにわたるほとんどの組み込みシステムで使用されている。
例えば、シリアルNORは、医療機器、ファクトリーオートメーションボード、自動車用ECU、スマートメーター、及びインターネットゲートウェイなどの多様なアプリケーションで使用される。これらのアプリケーションにわたり使用されるチップセットアーキテクチャ(プロセッサ、コントローラ、またはSoC)、オペレーティングシステム、及びサプライチェーンの多様性を考えると、フラッシュメモリは、これらのシステムの共通構成要素である。
今日のコンピュータシステムの障害許容力は、通常、デバイスに統合され、かつデバイスが提供するセキュリティ機能のソリューションにより活用される、信頼の基点の場所により、特徴付けられる。信頼の基点に関するさらなる情報は、米国国立標準技術研究所(NIST)が特別刊行物800-164で作成した定義を参照されたい。既存の業界では、信頼の基点の様々な実施態様が、ハードウェアとソフトウェアの機能を組み合わせてシステムレベルで使用されており、これにより、手法の断片化及び混乱したセキュリティレベルという技術的な問題が生じる。この複雑な数々のオプションはまた、クリティカルコードとデータが格納されている不揮発性メモリをどのように防御するかという重要な制約に苦しむ。
既存の手法は、プロセッサ、及びハードウェアセキュリティモジュール(HSM)などの他のセキュア素子に依存して、それらのシステムに重要なセキュリティサービスを提供する。これにより、別個のフラッシュメモリコンポーネントがシステムクリティカルコード及びデータを格納する多くのシステムでは、ブートの最低レベルでセキュリティギャップが生じた。多くのハッカーが、より高いレベルのコードから身を隠して削除に抵抗することができる高度標的型攻撃(APT)を、フラッシュを標的にして作成する。これらの事例の多くの場合、フラッシュメモリは、新たな悪意のあるコードで再イメージ化または書き換えられ、これにより、そのデバイスの整合性は弱体化する。
IDの検証に関連する本開示の様々な実施形態は、上記の技術的問題の技術的ソリューションを提供する。いくつかの実施形態では、コンピューティングデバイスは、ハードウェアベースの信頼の基点をフラッシュメモリデバイスに統合し、これにより、IoTデバイスの強力な暗号化ID及び正常性管理が可能となる。重要なセキュリティプリミティブをメモリ内に移動することにより、メモリ自体に格納されているコード及びデータの整合性を保護することがより簡潔になる。この手法により、実施態様の複雑さ及び費用を最小限に抑えながら、システムレベルのセキュリティを大幅に向上することができる。
一実施形態では、新しいIoTデバイス管理機能は、フラッシュメモリ及び関連ソフトウェアを使用して、Microsoft(登録商標)Azure(登録商標)IoTクラウドによるデバイスのオンボーディング及び管理を可能にすることで、フラッシュメモリを活用する。一実施例では、ソリューションは、重要なデバイスプロビジョニングサービス(例えばAzure IoTハブデバイスプロビジョニングサービス(DPS))の基盤となる暗号化IDを提供する。一実施例では、このDPSは、有効なメモリと連動して、正しいIoTハブ並びに他のサービスへのデバイスのゼロタッチプロビジョニングを可能にし得る。
いくつかの実施形態では、上記の機能を実施するために、デバイスID構成エンジン(DICE)が使用される(DICEは、Trusted Computing Group(TCG)の今後の標準である)。一実施例では、有効なメモリは、信頼できるハードウェアにのみ、Microsoft Azure IoTクラウドへのアクセス権を得ることを許可する。一実施例では、IoTデバイスの正常性及びIDは、クリティカルコードが通常格納されているメモリで検証される。各IoTデバイスの一意的なIDにより、ブートプロセスから開始して、新たなレベルでエンドツーエンドデバイス整合性を提供できるようになった。これにより、ハードウェアベースデバイスの証明及びプロビジョニング、並びに必要に応じてデバイスの管理改善などの追加機能を有効化することができる。
一実施形態では、方法は、コンピューティングデバイス(例えばシリアルNORフラッシュメモリデバイス)により、ホストデバイス(例えば車両のCPU、GPU、FPGA、またはアプリケーションコントローラ)からのメッセージを受信することと、コンピューティングデバイスにより、識別子(例えば公開識別子IDL1public)、証明書(例えばIDL1certificate)、及び鍵(例えばKL1public)を生成することであって、識別子はコンピューティングデバイスのIDに対応付けられ、証明書はメッセージを使用して生成される、当該生成することと、コンピューティングデバイスにより、識別子、証明書、及び鍵をホストデバイスに送信することであって、ホストデバイスは、識別子、証明書、及び鍵を使用してコンピューティングデバイスのIDを検証するように構成される、当該送信することと、を含む。
いくつかの実施形態では、上記のコンピューティングデバイス(例えばフラッシュメモリデバイス)は、DICE-RIoT機能を統合し、これは、前述の識別子、証明書、及び鍵を生成するために使用され、ホストデバイスによりコンピューティングデバイスのIDを検証するために使用される。一実施例では、コンピューティングデバイスは、プリミティブ鍵として機能するデバイスシークレットを格納し、DICE-RIoTプロトコルの層の間の一連の識別ステップは、デバイスシークレットに基づく。一実施例では、DICE-RIoT機能の層L及び層Lは、ハードウェア及び/またはソフトウェアを使用して、コンピューティングデバイスで実施される。一実施例では、層Lは、ハードウェアでのみ実施される。
図1は、一実施形態による、コンピューティングデバイス141のIDを検証するホストデバイス151を示す。ホストデバイス151は、コンピューティングデバイス141にメッセージを送信する。一実施形態では、ホストデバイス151は、鮮度機構を含み(図示せず)、これは、リプレイ攻撃を回避するために、コンピューティングデバイス141にメッセージを送信する際使用する鮮度を生成する。一実施例では、コンピューティングデバイス141に送信される各メッセージは、単調カウンタにより生成された鮮度を含む。
一実施例では、メッセージは、空の文字列、従来の既知の文字列(例えばホストデバイス151の製造業者またはオペレータが知っている英数字の文字列)である、または別の値(例えばコンピューティングデバイスに割り当てられたID値)であり得る。一実施例では、メッセージは、デバイスの一意的なID(UID)である。
メッセージの受信に応じて、コンピューティングデバイス141は、識別子、証明書、及び鍵を生成する。識別子は、コンピューティングデバイス141のIDに対応付けられる。コンピューティングデバイス141は、IDコンポーネント147の動作及び/またはコンピューティングデバイス141の他の機能を制御する1つ以上のプロセッサ143を含む。
識別子、証明書、及び鍵は、IDコンポーネント147により生成され、デバイスシークレット149に基づく。一実施例では、デバイスシークレット149は、コンピューティングデバイス141のメモリに格納された一意的なデバイスシークレット(UDS)である。一実施例では、IDコンポーネント147は、DICE-RIoTプロトコルを実施するためのプリミティブ鍵として、UDSを使用する。識別子、証明書、及び鍵は、DICE-RIoTプロトコルの層Lから出力される(例えば図6を参照)。一実施形態では、層LのIDは、コンピューティングデバイス141自体のID、コンピューティングデバイス141の製造業者、コンピューティングデバイス141をコンポーネントとして含むモノ(thing)の製造業者、及び/またはコンピューティングデバイス141のメモリに格納されたアプリケーションまたは他のソフトウェアに、対応する。一実施例では、アプリケーションID(例えばID番号)が、携帯電話、テレビ、STBなどに存在し、モノを識別するために文字と数字の一意的な組み合わせが使用される。
一実施例では、層LのIDは、ASCII文字列である。例えば、IDは、モノの名前と連結された製造業者名であり得る(例えばLG|TV_model_123_year_2018など)。一実施例では、IDは、16進形式で表され得る(例えば53 61 6D 73 75 6E 67 20 7C 20 54 56 5F 6D 6F 64 65 6C 5F 31 32 33 5F 79 65 61 72 5F 32 30 31 38)。
一実施形態では、製造業者は、生産されているアイテムのクラスまたは集合のUDSを使用し得る。別の実施形態では、各アイテムは、自身の一意的なUDSを有し得る。例えば、テレビのUDSは、UDS=0x12234…4444であり得、ラップトップのUDSは、UDS=0xaabb….00322であり得る。
一実施形態では、デバイスシークレット149は、コンピューティングデバイス141によりメモリ145に格納された秘密鍵である。IDコンポーネント147は、秘密鍵をメッセージ認証コード(MAC)への入力として使用して、派生シークレットを生成する。一実施例では、派生シークレットは、DICE-RIoTプロトコルにおける融合派生シークレット(FDS)である。
一実施例では、メモリ145は、コンピューティングデバイス141をブートするための初期ブートコードを格納する読み出し専用メモリ(ROM)を含む。FDSは、ブート動作中にプロセッサ143により初期ブートコードへ提供される鍵である。一実施例では、DICE-RIoTプロトコルの層Lには、ROMが対応する。
ホストデバイス151は、コンピューティングデバイス141のIDを検証する検証コンポーネント153への入力として、識別子、証明書、及び鍵を使用する。一実施形態では、検証コンポーネント153は、識別子を使用して少なくとも1つの復号化動作を実行し、結果を提供する。結果は鍵と比較され、コンピューティングデバイス141のIDが有効であるか否かが判定される。有効である場合、ホストデバイス151は、コンピューティングデバイス141から受信した鍵を使用して、コンピューティングデバイス141とのさらなる通信を実行する。例えば、ホストデバイス151が「三要素」(識別子、証明書、及び鍵)を一度検証すると、コンピューティングデバイス141とホストデバイス151との間で交換される任意の他の情報を証明するのに、鍵を使用することができる。
一実施形態では、デジタル識別は、多数の「モノ」に割り当てられる(例えばモノのインターネットのように)。一実施例では、モノは、車両などの物理オブジェクト、または車両内に存在する物理アイテムである。一実施例では、モノは人または動物である。例えば、各人または各動物に、一意的なデジタル識別子が割り当てられ得る。
いくつかの事例では、製品の製造業者は、各製品が本物であると証明できることを望んでいる。現在、この問題は、モノを信頼できる販売者からのみ購入すること、または購入したモノが本物であることを保証するある種の法的証明書を使用して他人から購入することにより、解決されている。しかし、モノが盗まれた事例で、モノが電子IDを有さない場合、モノが不正使用されないようにモノをブロックするまたは位置特定することは、困難である。一実施例では、位置特定は、モノが公共インフラストラクチャとインタラクションを試みる時のIDに基づく。一実施例では、ブロックは、公共インフラストラクチャを使用したいモノのIDの証明不能性に基づく。
一実施形態では、コンピューティングデバイス141は、コンピューティングデバイス141に対応する信頼のチェーンに一意的な署名を対応付けるために、IDコンポーネント147を使用してDICE-RIoTプロトコルを実施する。コンピューティングデバイス141は、層L及び層Lを確立する。信頼のチェーンは、層L、…を確立するホストデバイス151により継続される。一実施例では、任意の定義された環境(例えば地理的パラメータにより定義された信頼ゾーン)内のあらゆるオブジェクト、人、及び動物に、一意的な識別子を割り当てることができる。
一実施形態では、コンピューティングデバイス141は、IDを割り当てることが望まれるモノのコンポーネントである。例えば、モノは、コンピューティングデバイス141を含む自律走行車両であり得る。例えば、コンピューティングデバイス141は、車両のアプリケーションコントローラにより使用されるフラッシュメモリであり得る。
コンピューティングデバイス141が製造される時、製造業者は、UDSをメモリ145に投入し得る。一実施例では、UDSは、コンピューティングデバイス141を使用して追加の製造処理を行う顧客により承諾され、顧客と共有され得る。別の実施例では、UDSは、元の製造業者によりランダムに生成され、その後、安全なインフラストラクチャを使用して(例えばインターネットなどのネットワークを介して)顧客に伝達され得る。
一実施例では、顧客は、コンピューティングデバイス141を組み込んだ車両の製造業者であり得る。多数の事例では、車両製造業者は、コンピューティングデバイス141の販売者が分からないように、UDSを変更することを望む。このような事例では、顧客は、ホストデバイス151によりコンピューティングデバイス141に提供される認証済み置換コマンドを使用して、UDSを置換し得る。
いくつかの実施形態では、顧客は、顧客不変情報をコンピューティングデバイス141のメモリ145に投入し得る。一実施例では、不変情報は、一意的なFDSを生成するために使用され、差別化要因としてのみ使用されるわけではない。顧客不変情報は、顧客が製造する様々なオブジェクトを区別するために使用される。例えば、顧客不変情報は、プリミティブ情報を定義する文字及び/または数字の組み合わせであり得る(例えば日付、時刻、ロット位置、ウェーハ位置、ウェーハ内x、y位置など、以上の情報の一部または全ての組み合わせであり得る)。
例えば、多数の事例では、不変情報には、ユーザ(例えば製造業者からデバイスを受け取った顧客)が実行する暗号化機能構成からのデータも含まれる。この構成または設定は、認証済みコマンド(実行する鍵の知識を必要とするコマンド)を使用することによってのみ、実行することができる。ユーザは、鍵の知識を有している(例えば製造業者から安全なインフラストラクチャを介して鍵を提供されていることに基づく)。不変情報は、コンピューティングデバイスの暗号化IDの形式を表し、これは、デバイスの一意的なID(UID)とは異なる。一実施例では、不変情報集合に暗号構成を含めることにより、不変情報を自己カスタマイズするのに役立つツールがユーザに提供される。
一実施形態では、コンピューティングデバイス141は、鮮度を生成する鮮度機構を含む。鮮度は、ホストデバイス151に送信される時に、識別子、証明書、及び鍵と共に提供され得る。鮮度は、ホストデバイス151との他の通信でも使用され得る。
一実施形態では、コンピューティングデバイス141は、アプリケーションボード上のコンポーネントである。アプリケーションボード上の別のコンポーネント(図示せず)は、デバイスシークレット149の知識(例えば投入されたUDSの知識)を使用して、コンピューティングデバイス141のIDを検証し得る。コンポーネントは、UDSの所持を証明するために、コンピューティングデバイス141に対し、メッセージ認証コードを使用して出力を生成することを要求する。例えば、メッセージ認証コードは、次のようになり得る:HMAC(UDS,“アプリケーションボードメッセージ|鮮度”)。
別の実施形態では、FDSは、デバイスの所持を証明するための基準としても使用され得る(例えば秘密鍵(複数可)の知識)。FDSは、次のようにUDSから派生する:FDS=HMAC-SHA256[UDS,SHA256(“LのID”)]。従って、メッセージ認証コードは次のようになり得る:HMAC(FDS,“アプリケーションボードメッセージ|鮮度”)。
図2は、一実施形態による、IDコンポーネント107と、検証コンポーネント109とを有する例示的なコンピューティングシステムを示す。ホストシステム101は、バス103を介してメモリシステム105と通信する。メモリシステム105の処理デバイス111は、不揮発性メモリ121のメモリ領域111、113、…、119への読み出し/書き込みアクセス権を有する。一実施例では、ホストシステム101はまた、揮発性メモリ123からデータを読み出し、揮発性メモリ123にデータを書き込む。一実施例では、IDコンポーネント107は、DICE-RIoTプロトコルの層L及び層Lに対応する。一実施例では、不揮発性メモリ121は、ブートコードを格納する。
検証コンポーネント109は、メモリシステム105のIDを検証するために使用される。検証コンポーネント109は、例えば前述のように、ホストシステム101からホストメッセージを受信したことに応じて、IDコンポーネント107により生成された識別子、証明書、及び鍵を含む三要素を使用する。
IDコンポーネント107は、図1のIDコンポーネント147の実施例である。検証コンポーネント109は、図1の検証コンポーネント153の実施例である。
メモリシステム105は、鍵ストレージ157と、鍵生成器159とを含む。一実施例では、鍵ストレージ157は、ルート鍵、セッション鍵、UDS(DICE-RIoT)、及び/またはメモリシステム105による暗号化動作に使用される他の鍵を格納し得る。
一実施例では、鍵生成器159は公開鍵を生成し、公開鍵は、ホストシステム101に送信され、検証コンポーネント109による検証に使用される。公開鍵は、前述のように識別子及び証明書も含む三要素の一部として送信される。
メモリシステム105は、鮮度生成器155を含む。一実施例では、鮮度生成器155は、認証済みコマンドに使用され得る。一実施例では、複数の鮮度生成器155が使用され得る。一実施例では、鮮度生成器155は、ホストシステム101により使用可能である。
一実施例では、処理デバイス111及びメモリ領域111、113、…、119は、同じチップまたはダイ上に存在する。いくつかの実施形態では、メモリ領域は、ホストシステム101及び/または処理デバイス111が機械学習処理中に使用するデータ、あるいはホストシステム101または処理デバイス111上で実行されるソフトウェアプロセス(複数可)が生成する他のランタイムデータを、格納する。
コンピューティングシステムは、メモリシステム105に書き込みコンポーネントを含み得、これは、ホストシステム101からの新たなデータを記録するためのメモリ領域111(例えばフラッシュメモリの記録セグメント)を選択する。コンピューティングシステム100はさらに、ホストシステム101に書き込みコンポーネントを含み得、これは、メモリシステム105内の書き込みコンポーネントと連動して、メモリ領域111の選択を少なくとも促進する。
一実施例では、揮発性メモリ123は、ホストシステム101の処理デバイス(図示せず)のためのシステムメモリとして使用される。一実施形態では、ホストシステム101のプロセスは、データを書き込むためのメモリ領域を選択する。一実施例では、ホストシステム101は、自律走行車両で実行されるセンサ及び/またはソフトウェアプロセスからのデータに部分的に基づいて、メモリ領域を選択し得る。一実施例では、前述のデータは、ホストシステム101により処理デバイス111に提供され、処理デバイス111は、メモリ領域を選択する。
いくつかの実施形態では、ホストシステム101または処理デバイス111は、IDコンポーネント107及び/または検証コンポーネント109の少なくとも一部を含む。別の実施形態では、または組み合わせでは、処理デバイス111及び/またはホストシステム101内の処理デバイスは、IDコンポーネント107及び/または検証コンポーネント109の少なくとも一部を含む。例えば、処理デバイス111及び/またはホストシステム101の処理デバイスは、IDコンポーネント107及び/または検証コンポーネント109を実施する論理回路を含み得る。例えば、ホストシステム101のコントローラまたは処理デバイス(例えばCPU、FPGA、またはGPU)は、本明細書で説明されるIDコンポーネント107及び/または検証コンポーネント109の動作を実行するためにメモリに格納された命令を実行するように構成され得る。
いくつかの実施形態では、IDコンポーネント107は、メモリシステム105に配置された集積回路チップで実施される。別の実施形態では、ホストシステム101の検証コンポーネント109は、ホストシステム101のオペレーティングシステム、デバイスドライバ、またはアプリケーションの一部である。
メモリシステム105の例として、メモリバスを介して中央処理装置(CPU)に接続されたメモリモジュールが挙げられる。メモリモジュールの例には、デュアルインラインメモリモジュール(DIMM)、スモールアウトラインDIMM(SO-DIMM)、不揮発性デュアルインラインメモリモジュール(NVDIMM)などが挙げられる。いくつかの実施形態では、メモリシステムは、メモリ機能及びストレージ機能の両方を提供するハイブリッドメモリ/ストレージシステムであり得る。通常、ホストシステムは、1つ以上のメモリ領域を含むメモリシステムを利用し得る。ホストシステムは、メモリシステムに格納するデータを提供し得、メモリシステムからデータを取得することを要求し得る。一実施例では、ホストは、揮発性メモリ及び不揮発性メモリを含む様々な種類のメモリにアクセスできる。
ホストシステム101は、車両内コントローラ、ネットワークサーバ、モバイルデバイス、携帯電話、組み込みシステム(例えばシステムオンチップ(SOC)と内部メモリまたは外部メモリとを有する組込みシステム)、またはメモリと処理デバイスとを含む任意のコンピューティングデバイスといった、コンピューティングデバイスであり得る。ホストシステム101は、メモリシステム105を含み得、またはメモリシステム105に接続され得、これにより、ホストシステム101は、メモリシステム105からデータを読み出すこと、またはメモリシステム105にデータを書き込むことができる。ホストシステム101は、物理ホストインターフェースを介してメモリシステム105に接続され得る。本明細書で使用される「接続される」は、通常、コンポーネント間の接続を指し、これは、有線または無線に拘わらず、電気、光、磁気などの接続を含む間接通信接続または直接通信接続(例えば介在コンポーネントのない通信接続)であり得る。物理ホストインターフェースの例には、シリアルアドバンストテクノロジーアタッチメント(SATA)インターフェース、周辺コンポーネント相互接続エクスプレス(PCIe)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、ファイバーチャネル、シリアルアタッチドSCSI(SAS)、ダブルデータレート(DDR)メモリバスなどが挙げられるが、これらに限定されない。物理ホストインターフェースを使用して、ホストシステム101とメモリシステム105との間でデータが送信され得る。物理ホストインターフェースは、メモリシステム105とホストシステム101との間で制御信号、アドレス信号、データ信号、及び他の信号を渡すためのインターフェースを提供し得る。
図2は、例としてのメモリシステム105を示す。通常、ホストシステム101は、同一の通信接続、複数の別個の通信接続、及び/または通信接続の組み合わせを介して、複数のメモリシステムにアクセスし得る。
ホストシステム101は、処理デバイスとコントローラとを含み得る。ホストシステム101の処理デバイスは、例えばマイクロプロセッサ、中央処理装置(CPU)、プロセッサの処理コア、実行ユニットなどであり得る。いくつかの事例では、ホストシステムのコントローラは、メモリコントローラ、メモリ管理ユニット、及び/またはイニシエータと称され得る。一実施例では、コントローラは、ホストシステム101とメモリシステム105との間のバス103を介した通信を制御する。これらの通信は、前述のようにメモリシステム105のIDを検証するためのホストメッセージの送信を含む。
ホストシステム101のコントローラは、メモリシステム105のコントローラと通信して、不揮発性メモリ121のメモリ領域でのデータの読み出し、データの書き込み、またはデータの消去などの動作を実行し得る。いくつかの事例では、コントローラは、処理デバイス111の同じパッケージ内に統合される。別の事例では、コントローラは、処理デバイス111のパッケージとは分離される。コントローラ及び/または処理デバイスは、1つ以上の集積回路及び/またはディスクリートコンポーネント、バッファメモリ、キャッシュメモリ、またはこれらの組み合わせなどのハードウェアを含み得る。コントローラ及び/または処理デバイスは、マイクロコントローラ、専用論理回路(例えばフィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)など)、または別の好適なプロセッサであり得る。
一実施形態では、メモリ領域111、113、…、119は、異なる種類の不揮発性メモリコンポーネントの任意の組み合わせを含み得る。さらに、メモリ領域のメモリセルは、データを格納するために使用されるユニットを参照することができるメモリページまたはデータブロックとして、グループ化され得る。いくつかの実施形態では、揮発性メモリ123は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、及び同期式ダイナミックランダムアクセスメモリ(SDRAM)であり得るが、これらに限定されない。
一実施形態では、メモリシステム105の1つ以上のコントローラは、メモリ領域111、113、…、119と通信して、データの読み出し、データの書き込み、またはデータの消去などの動作を実行し得る。各コントローラは、1つ以上の集積回路及び/またはディスクリートコンポーネント、バッファメモリ、またはこれらの組み合わせなどのハードウェアを含み得る。各コントローラは、マイクロコントローラ、専用論理回路(例えばフィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)など)、または別の好適なプロセッサであり得る。コントローラ(複数可)は、ローカルメモリに格納された命令を実行するように構成された処理デバイス(プロセッサ)を含み得る。一実施例では、コントローラのローカルメモリは、メモリシステム105とホストシステム101との間の通信の処理を含むメモリシステム105の動作を制御する様々なプロセス、動作、論理フロー、及びルーチンを実行するための命令を格納するように構成された組み込みメモリを含む。いくつかの実施形態では、ローカルメモリは、メモリポインタ、フェッチされたデータなどを格納するメモリレジスタを含み得る。ローカルメモリはまた、マイクロコードを格納する読み出し専用メモリ(ROM)も含み得る。
通常、メモリシステム105のコントローラ(複数可)は、ホストシステム101及び/または処理デバイス111からコマンドまたは操作を受信し得、コマンドまたは操作を、メモリ領域のデータ書き込みカウンタに基づいたメモリ領域の選択を達成する命令または好適なコマンドに変換し得る。コントローラは、ウェアレベリング、ガベージコレクション動作、エラー検出及びエラー訂正コード(ECC)動作、暗号化動作、キャッシュ動作、及びメモリ領域に対応付けられた論理ブロックアドレスと物理ブロックアドレスとのアドレス変換など、他の動作も担当し得る。コントローラはさらに、物理ホストインターフェースを介してホストシステム101と通信するためのホストインターフェース回路を含み得る。ホストインターフェース回路は、ホストシステムから受信したコマンドを、メモリ領域のうちの1つ以上にアクセスするためのコマンド命令に変換し、並びにメモリ領域に関連する応答を、ホストシステム101への情報に変換し得る。
メモリシステム105はまた、図示されていない追加の回路またはコンポーネントを含み得る。いくつかの実施形態では、メモリシステム105は、キャッシュまたはバッファ(例えばDRAMまたはSRAM)と、1つ以上のコントローラからアドレスを受信し、アドレスを復号化してメモリ領域にアクセスし得るアドレス回路(例えば行デコーダ及び列デコーダ)とを含み得る。
いくつかの実施形態では、ホストシステム101またはメモリシステム105のコントローラ、及び/または処理デバイス111は、IDコンポーネント107及び/または検証コンポーネント109の少なくとも一部を含む。例えば、コントローラ及び/または処理デバイス111は、IDコンポーネント107及び/または検証コンポーネント109を実施する論理回路を含み得る。例えば、処理デバイス(プロセッサ)は、本明細書で説明されるように、メモリ領域への読み出し/書き込みアクセスをIDコンポーネント107に提供する動作を実行するためのメモリに格納された命令を、実行するように構成され得る。いくつかの実施形態では、検証コンポーネント109は、オペレーティングシステム、デバイスドライバ、またはアプリケーションの一部である。
図3は、一実施形態による、車両100の例示的なコンピューティングデバイスを示す。例えば、車両100は、自律走行車両、非自律走行車両、緊急車両、またはサービス車両などであり得る。
車両100は、車載コンピュータなどの車両コンピューティングデバイス110を含む。車両コンピューティングデバイス110は、図1のホストデバイス151の実施例である。別の実施例では、車両コンピューティングデバイス110は、図2のホストシステム101の実施例であり、メモリ160は、メモリシステム105の実施例である。
車両コンピューティングデバイス110は、プロセッサ120を含み、プロセッサ120は、リーダ、ライタ、及び/または後述の機能を実行可能な他のコンピューティングデバイスなどの車両通信コンポーネント130に接続され、車両通信コンポーネント130は、アンテナ140に接続される(またはアンテナ140を含む)。車両通信コンポーネント130は、不揮発性フラッシュメモリなどのメモリ160に接続されたプロセッサ150を含むが、実施形態は、このような種類のメモリデバイスにそれほど限定されない。
一実施例では、メモリ160は、車両(例えば運転手、乗客、及び運搬物)に関連する全ての情報を格納するように適合され、これにより、後述のように、車両100は、チェックポイントに近づくと、通信インターフェース(例えばいわゆるDICE-RIoTプロトコル)を使用して、この情報を提供することができる。
一実施例では、車両情報(車両ID/プレート番号など)は、車両メモリ160に既に格納されており、車両100は、例えば、通信コンポーネント130を介して、及び既知のDICE-RIoTプロトコルまたは同様のプロトコルを使用して、乗客の電子ID及び/または運ばれる荷物、商品などのIDを識別し、次にこの情報をメモリ160に格納することができる。一実施例では、電子ID、輸送される荷物及び商品コンテナは、無線トランスポンダ、NFC、ブルートゥース、RFID、タッチレスセンサ、及び磁気バーなどを備えており、通信コンポーネント130は、リーダ及び/または電磁場を使用して、このようなリモートソースから必要な情報を取得し得る。
一実施例では、全ての乗客ID及び/または運ばれる荷物、商品などのIDは、通信コンポーネントとデータを交換することができる電子デバイスを備えている。これらの電子デバイスは、電力供給を有しているため能動型であり得る、または電子デバイスがちょうど近くに存在する時に必要な電力供給を行う外部電源により起動され電力供給され得る、という意味で、能動素子または受動素子であり得る。
レンタカーまたは自律走行車両は、リーダ及び/または電磁場を使用して、車両内または車両近くで情報を取得することができ、あるいは、例えば事前予約によりレンタルシステムがレンタカーの運転手の情報を既に有している場合は、リモートソースからでも情報を受信し得る。車両をピックアップするために運転手が到着した時に、リアルタイムでさらなる確認が行われ得る。
同様に、車両100により運ばれる輸送荷物及び商品に関する(また乗客に関する)全ての情報は、常に最新であるように維持され得る。このようにするために、無線トランスポンダが、荷物及び商品に対応付けられる、または乗客に所有されることにより、乗客の電子ID及び/または運ばれる荷物及び商品のIDは、リアルタイムで更新される(図示せず)。
一実施例では、車両通信コンポーネント130と近接ソース(例えば商品トランスポンダなど)との通信は、DICE-RIoTプロトコルを介して行われる。
一実施例では、車両コンピューティングデバイス110は、ステアリング及び速度などの車両100の動作パラメータを制御し得る。例えば、コントローラ(図示せず)は、ステアリング制御システム170及び速度制御システム180に接続され得る。さらに、車両コンピューティングデバイス110は、情報システム190に接続され得る。情報システム190は、経路情報またはチェックポイントセキュリティメッセージなどのメッセージを表示するように構成され得、視覚的警告を表示し、及び/または可聴警告を出力し得る。通信コンポーネント130は、外部コンピューティングデバイス(図示せず)などの追加のコンピューティングデバイスから、情報を受信し得る。
図4は、一実施形態による、車両300の例示的なコンピューティングデバイスと通信するホストデバイス350を有する例示的なシステム390を示す。コンピューティングデバイスは、近距離通信デバイス(例えばNFCタグ)などの受動型通信コンポーネント310を含む。通信コンポーネント310は、車両300内に存在し得、車両300は、図3に示される車両100のように構成され、通信コンポーネント310に加えて車両100のコンポーネントを含み得、通信コンポーネント310は、車両通信コンポーネント130のように構成され得る。通信コンポーネント310は、車両300に関する情報(車両ID、運転者/乗客情報、運搬物情報など)を格納する不揮発性ストレージコンポーネント330を有するチップ320(例えば車両300のCPUまたはアプリケーションコントローラを実施する)を含む。通信コンポーネント310は、アンテナ340を含み得る。
ホストデバイス350は、例えば能動型通信デバイスであり(例えば電源を含む)、通信コンポーネント310から情報を受信し、及び/または通信コンポーネント310に情報を送信し得る。いくつかの実施例では、ホストデバイス350は、料金リーダなどのリーダ(例えばNFCリーダ)、または他のコンポーネントを含み得る。ホストデバイス350は、チェックポイントの近くに(例えば信頼ゾーンの境界に)、または一般にアクセス制限エリアの近くに配置された(例えば埋め込まれた)外部デバイスであり得る。いくつかの実施形態では、ホストデバイス350はまた、携帯デバイスとして使用するために警官により携持され得る。
ホストデバイス350は、プロセッサ360、不揮発性メモリなどのメモリ370、及びアンテナ380を含み得る。メモリ370は、ホストデバイス350が通信コンポーネント310と通信することを可能にするNFCプロトコルを含み得る。例えば、ホストデバイス350と通信コンポーネント310とは、例えば約13.56メガヘルツで、ISO/IEC18000-3国際規格に従うなど、NFCプロトコルを使用して通信することができる。RFIDタグを使用する他の手法が使用されてもよい。
ホストデバイス350はまた、サーバまたは他のコンピューティングデバイスと通信し得る(例えば無線ネットワークを介して中央オペレーションセンタと通信し得る)。例えば、ホストデバイス350は、サーバまたは通信センタに、無線接続または有線接続され得る。いくつかの実施例では、ホストデバイス350は、WIFIまたはインターネットを介してオペレーションセンタと通信し得る。車両300によりアンテナ340がアンテナ380の通信距離内に移動すると、ホストデバイス350は、通信コンポーネント310にエネルギーを供給し得る。いくつかの実施例では、ホストデバイス350は、オペレーションセンタからリアルタイム情報を受信し得、その情報を車両300に送信し得る。いくつかの実施形態では、通信コンポーネント310は、自身の電池を有し得る。
一実施形態では、ホストデバイス350は、車両300から情報を読み出し、車両300に情報を送信するように適合され、車両300は、情報交換を可能にするように構成された通信コンポーネント310(例えば能動型デバイス)を備える。
再び図3を参照すると、車両100の車両通信コンポーネント130は、内部で活動状態となって、乗客ID、輸送荷物及び/または商品に関する関連情報をリアルタイムで捕捉し得る(例えば上記の図4に関して論述された対応する無線通信コンポーネントが備わっている場合)。車両のコンピューティングデバイスは、数メートル(例えば2~3メートル)の空間範囲内の情報を検出し得、よって、乗客、荷物、及び商品に対応する全てのデータが取得され得る。一実施例では、これは、車両が、外部通信コンポーネント(例えばサーバまたはホストデバイスとして機能する他のコンピューティングデバイス)に対し、通信を開始及び/または強化することができる特定の近接範囲内に進入した時に、発生する。通信距離は、例えば2~3メートルである。
一実施形態では、車両通信コンポーネント130は、外部エンティティ及び/または内部エンティティと通信する時にデータを暗号化し得る。いくつかの事例では、輸送荷物、商品、またはさらに乗客に関するデータは、機密であり得る、または機密情報(例えば乗客の健康状態、または機密文書、または危険物)を含み得る。このような事例では、車両コンピューティングデバイスに対応付けられたメモリ部分に格納される情報及びデータは、暗号化されたデータとして保持されることが望ましい。
下記で論述される様々な実施形態では、内部車両コンピューティングデバイスと外部エンティティ(例えばホストデバイスとして機能するサーバ)との間の暗号化通信及び復号化通信の方法が説明される。一実施例では、この方法は、内部車両コンピューティングデバイスと、車両上に存在する乗客、荷物、及び商品に対応付けられた電子コンポーネントとの間でも、適用され得る。
一実施例では、車両通信コンポーネント130は、車両公開鍵を外部通信コンポーネント(例えばホストデバイス151として機能する)に送信し、外部通信コンポーネントは、外部公開鍵を車両通信コンポーネント130に送信する。これらの公開鍵(車両及び外部)を使用して、それぞれの通信コンポーネントに送信するデータが暗号化され、それぞれのIDが検証され、また確認及び他の情報が交換され得る。例として、さらに後述されるように、車両通信コンポーネント130は、受信した外部公開鍵を使用してデータを暗号化し、暗号化されたデータを外部通信コンポーネントに送信し得る。同様に、外部通信コンポーネントは、受信した車両公開鍵を使用してデータを暗号化し、暗号化されたデータを車両通信コンポーネント130に送信し得る。車両100が送信するデータには、自動車情報、乗客情報、及び商品情報などが含まれ得る。情報は、任意で、車両100のIDを証明するためにデジタル署名と共に送信され得る。さらに、情報は、車両100に提供されて、車両100のダッシュボードに表示され得る、または車両100に対応付けられたコンピューティングデバイス(例えば車両を監視するユーザデバイスまたは中央サーバ)の電子メールに送信され得る。車両は、車両デジタル署名と共に、車両の識別番号、VIN番号などに基づいて認識され得る。
一実施例では、車両と外部エンティティとの間で交換されるデータは、他で使用される鮮度を有し得る。例として、車両が外部エンティティに送信する同一の命令を示すデータは、特定の時間枠ごとに、または特定の送信データ量に関して、変更され得る。これにより、ハッカーが以前送信されたデータに含まれた機密情報を傍受し、同じデータを再度送信して同じ結果を得ることを、阻止することができる。データがわずかに変更されても同じ命令を示す場合、ハッカーは同一の情報を後の時点で送信し得るが、受信側が、変更されたデータが同じ命令を実行することを見込んだことにより、同じ命令は実行されない。
車両100と外部エンティティ(例えばコンピューティングシステムまたはデバイス)(図示せず)との間で交換されるデータは、後述のいくつかの暗号化及び/または復号化方法を使用して、実行され得る。データを保護することにより、不正なアクティビティが車両100及び外部エンティティの動作を妨害することを、確実に防ぐことができる。
図5Aは、一実施形態による、ホストデバイスに送信する識別子、証明書、及び鍵を含む三要素を生成するアプリケーションボードを示す。ホストデバイスは、三要素を使用して、アプリケーションボードのIDを検証する。アプリケーションボードは、図1のコンピューティングデバイス141の実施例である。ホストデバイスは、図1のホストデバイス151の実施例である。
一実施形態では、アプリケーションボード及びホストは、デバイス識別構成エンジン(DICE)―堅牢なモノのインターネット(RIoT)プロトコルを使用して、通信(例えば情報及びデータ)の暗号化動作及び/または復号化動作を実行する通信コンポーネントを含む。一実施例では、DICE-RIoTプロトコルは、車両通信コンポーネントと外部通信コンポーネントとの間の通信に、並びに車両通信コンポーネントと、乗客ID、荷物、及び商品などのそれぞれに対応付けられた様々な無線電子デバイスとの間の車両環境の内部で実行される通信に、適用される。
図5Bは、一実施形態による、層を使用して段階的にブートする例示的なコンピューティングシステムを示す。システムは、本開示の実施形態による、外部通信コンポーネント430’と、車両通信コンポーネント430’’とを含む。車両が外部エンティティに近づく、すなわちその近接範囲内に入ると、車両の関連する車両通信コンポーネント430’’は、例えばセンサ(例えば無線周波数識別センサ、すなわちRFIDなど)を使用して、前述のように外部エンティティとデータを交換し得る。
他の実施形態では、コンポーネント430’は、車両内に配置されたアプリケーションボードであり得、コンポーネント430’’は、DICE-RIoTプロトコルを使用してコンポーネント430’のIDを検証する、同様に車両内に配置されたホストデバイスであり得る(例えば上記の図1に関して論述されたように)。
一実施形態では、DICE-RIoTプロトコルは、コンピューティングデバイスにより、層を使用して段階的にブートするために使用され、各層は、後続の層を認証及びロードし、各層でますます精緻なランタイムサービスが提供される。従って、層は、前の層により提供され得、次の層を提供し得、これにより、より低い層の上に構築され、より高い層を提供する相互接続された層のウェブが作成される。あるいは、DICE-RIoTプロトコルの代わりに、他のプロトコルが使用されてもよい。
通信プロトコルの一例示的実施態様では、通信プロトコルのセキュリティは、製造中に(または製造後でも)設定されるデバイスシークレット(例えばUDS)であるシークレット値に基づく。デバイスシークレットUDSは、それがプロビジョニングされた(例えば図1のデバイスシークレット149として格納された)デバイス内に存在する。
デバイスシークレットUDSは、ブート時に第1段階のROMベースのブートローダによりアクセス可能である。次いでシステムは、次回のブートサイクルまでデバイスシークレットをアクセス不可能にする機構を提供し、ブートローダ(例えばブート層など)のみが常にデバイスシークレットUDSにアクセスすることができる。従って、この手法では、ブートはデバイスシークレットUDSで始まる特定のアーキテクチャで階層化される。
図5Bに示されるように、層0、L、及び層1、Lは、外部通信コンポーネント430’に存在する。層0 Lは、融合派生シークレット(FDS)鍵を、層1 Lに提供し得る。FDS鍵は、層1 LのコードのID、及び他のセキュリティ関連データに基づき得る。特定のプロトコル(堅牢なモノのインターネット(RIoT)コアプロトコルなど)は、FDSを使用して、それをロードする層1 Lのコードを立証し得る。実施例では、特定のプロトコルは、デバイス識別構成エンジン(DICE)及び/またはRIoTコアプロトコルを含み得る。例として、FDSには、層1 Lファームウェアイメージ自体、認可された層1 Lファームウェアを暗号で識別するマニフェスト、セキュアブート実施のコンテキストで署名されたファームウェアのファームウェアバージョン番号、及び/またはデバイスのセキュリティクリティカル構成設定が含まれ得る。デバイスシークレットUDSは、FDSの作成に使用され得、外部通信コンポーネントのメモリに格納される。従って、層0 Lは、実際のデバイスシークレットUDSを決して明らかにすることなく、派生鍵(例えばFDS鍵)をブートチェーンの次の層に提供する。
外部通信コンポーネント430’は、矢印410’により示されるように、車両通信コンポーネント430’’にデータを送信するように適合される。送信されるデータには、図6に関連して示されるように、公開されている外部識別、証明書(例えば外部識別証明書)、及び/または外部公開鍵が含まれ得る。車両通信コンポーネント430’’の層2 Lは、送信されたデータを受信し、オペレーティングシステムOSの動作、例えば第1のアプリケーションApp及び第2のアプリケーションApp上で、データを実行し得る。
同様に、車両通信コンポーネント430’’は、矢印410’’により示されるように、公開されている車両識別、証明書(例えば車両識別証明書)、及び/または車両公開鍵を含むデータを送信し得る。例として、認証後(例えば証明書を検証した後)、車両通信コンポーネント430’’は、車両のさらなる認証、識別、及び/または検証のために、車両識別番号、VINを送信し得る。
図5B及び図6に示されるように、例示的な動作では、外部通信コンポーネント430’は、デバイスシークレットDSを読み出し、層1 LのIDをハッシュ化し、以下の計算を実行し得る。
FDS=KDF[UDS,ハッシュ(“不変情報”)]
KDFは暗号化された一方向の鍵導出関数である(例えばHMAC-SHA256)。上記の計算では、ハッシュは、SHA256、MD5、SHA3などの任意の暗号プリミティブであり得る。
少なくとも1つの実施例では、車両は、匿名ログインまたは認証ログインのいずれかを使用して通信し得る。認証ログインにより、車両は、匿名モードで通信している時はアクセス不可能であり得る追加情報を取得することが可能となり得る。少なくとも1つの実施例では、認証は、後述されるように、車両識別番号VIN及び/または公開鍵の交換などの認証情報の提供を含み得る。匿名モード及び認証モードのいずれでも、外部エンティティ(例えば信頼ゾーンの境界にあるチェックポイントポリス)は車両と通信して、外部エンティティに対応付けられた外部公開鍵を車両に提供し得る。
図6は、一実施形態による、非対称生成器を使用して識別子、証明書、及び鍵を生成する例示的なコンピューティングデバイスを示す。一実施形態では、コンピューティングデバイスは、パラメータを決定するプロセスを実施する(例えば代替的な実施形態では、外部デバイスの層L内、または内部コンピューティングデバイスの層L内のパラメータ)。
一実施形態では、外部公開識別、外部証明書、及び外部公開鍵を含むパラメータが決定され、これらは次に、車両通信コンポーネントの層2 L(例えば図5Bの参照番号430’’)に送信される(矢印510’で示されるように)。図6の矢印510’及び510’’は、図5Bの矢印410’及び410’’にそれぞれ対応する。また、図6の層は、図5Bの層に対応する。
別の実施形態では、ホストデバイスからのメッセージ(「ホストメッセージ」)は、パターン(データ)マージング531により外部公開鍵とマージされ、マージされたデータが暗号化に提供される。マージされたデータは、暗号器530への入力である。一実施例では、ホストメッセージは、外部公開鍵と連結される。生成されるパラメータには、ホストデバイスに送信され、コンピューティングデバイスのIDを検証するために使用される三要素が含まれる。例えば、外部公開識別、外部証明書、及び外部公開鍵は、ホストデバイスの検証コンポーネントにより、IDを検証するために使用される。一実施例では、ホストデバイスは、図1のホストデバイス151である。
図6に示されるように、層0 LからのFDSは、層1 Lに送信され、非対称ID生成器520により使用されて、公開識別、IDlkpublic、及び非公開識別、IDlkprivateが生成される。短縮表記「IDlkpublic」では、「lk」は、汎用層k(この例では層1 L)を示し、「public」は識別がオープンに共有されていることを示す。公開識別IDlkpublicは、外部通信コンポーネントの層1 Lの右の外側に伸びる矢印により、共有されることが示される。生成された非公開識別IDlkprivateは、暗号器530への鍵入力として使用される。暗号器530は、例えば、データを暗号化するために使用される任意のプロセッサ、コンピューティングデバイスなどであり得る。
外部通信コンポーネントの層1 Lは、非対称鍵生成器540を含み得る。少なくとも1つの実施例では、乱数生成器RNDは、任意で、乱数を非対称鍵生成器540に入力し得る。非対称鍵生成器540は、図5Bの外部通信コンポーネント430’などの外部通信コンポーネントに対応付けられた公開鍵、KLkpublic(外部公開鍵と称される)及び秘密鍵、KLkprivate(外部秘密鍵と称される)を生成し得る。
外部公開鍵KLkpublicは、暗号器530への入力(「データ」)であり得る。上記のように、いくつかの実施形態では、ID検証プロセスの一環でホストデバイスから前に受信されたホストメッセージは、KLkpublicとマージされ、マージされたデータは、暗号器530に入力データとして提供される。
暗号器530は、外部非公開識別IDlkprivate及び外部公開鍵KLkpublicの入力を使用して、結果K’を生成し得る。外部秘密鍵KLkprivateと結果K’を追加の暗号器550に入力して、出力K’’が生成され得る。出力K’’は、層2 Lに送信される(あるいはIDを検証するホストデバイスに送信される)外部証明書IDL1certificateである。外部証明書IDL1certificateは、デバイスから送信されたデータの発信元を検証及び/または認証する能力を提供し得る。例として、外部通信コンポーネントから送信されるデータは、図7に関連してさらに説明されるように、証明書を検証することにより、外部通信コンポーネントのIDに対応付けられ得る。さらに、外部公開鍵KL1public keyが、層2 Lに送信され得る。従って、外部通信コンポーネントの公開識別IDL1public、証明書IDL1certificate、及び外部公開鍵KL1public keyは、車両通信コンポーネントの層2 Lに送信され得る。
図7は、一実施形態による、復号化動作を使用してコンピューティングデバイスのIDを検証する検証コンポーネントを示す。検証コンポーネントは、復号器730、750を含む。本開示の実施形態による検証コンポーネントは、証明書を検証するプロセスを実施する。
図7の示される実施例では、公開鍵KL1public、証明書IDL1certificate、及び公開識別IDL1publicは、外部通信コンポーネントから(例えば図5Bの外部通信コンポーネント430’の層1 Lから)提供される。
証明書IDL1certificate及び外部公開鍵KL1publicのデータは、復号器730への入力として使用され得る。復号器730は、データを復号化するために使用される任意のプロセッサ、コンピューティングデバイスなどであり得る。証明書IDL1certificate及び外部公開鍵KL1publicの復号化の結果は、公開識別IDL1publicと共に、復号器750への入力として使用され得、出力が生成される。外部公開鍵KL1public及び復号器750からの出力は、ブロック760に示されるように、証明書が検証済みであるか否かを示し得、出力として「Yes」または「No」が生成される。秘密鍵は、単一層に対応付けられており、特定の証明書は、特定の層によってのみ生成され得る。
証明書が検証済み(例えば認証後)であることに応じて、検証済みのデバイスから受信したデータは、受諾され、復号化され、及び/または処理され得る。証明書が検証済みではないことに応じて、検証済みのデバイスから受信したデータは、破棄され、削除され、及び/または無視され得る。このようにして、邪悪なデータを送信する不正デバイスを検出して回避することができる。例として、処理対象のデータを送信するハッカーは特定され得、ハッキングデータは処理されない。
代替的な実施形態では、公開鍵KL1public、証明書IDL1certificate、及び公開識別IDL1publicは、図1のコンピューティングデバイス141から、または図2のメモリシステム105から提供される。この三要素は、ホストデバイスからのホストメッセージの受信に応じて、コンピューティングデバイス141により生成される。復号器730への入力としてIDL1certificateを提供する前に、IDL1certificateとホストデバイスからのメッセージ(「ホストメッセージ」)は、パターン(データ)マージング731よりマージされる。一実施例では、マージングは、データの連結である。マージされたデータは、復号器730への入力として提供される。その後、検証プロセスが前述のとは異なるように進行する。
図8は、一実施形態による、証明書を検証する例示的なプロセスのブロック図を示す。デバイスが、検証され得るデータを送信している事例では、その後の否認を回避するために、署名が生成されデータと共に送信され得る。例として、第1のデバイスは、第2のデバイスに要求を発信し得、第2のデバイスが要求を実行すると、第1のデバイスは、第1のデバイスがそのような要求を決して行わなかったことを示すことができる。署名の使用などの否認防止手法により、第1のデバイスによる否認を回避し、第2のデバイスがその後問題なく要求されたタスクを実行できるように保証することができる。
車両コンピューティングデバイス810’’(例えば図3の車両コンピューティングデバイス110または図1のコンピューティングデバイス141)は、データDat’’を外部コンピューティングデバイス810’(または一般に任意の他のコンピューティングデバイス)に送信し得る。車両コンピューティングデバイス810’’は、車両秘密鍵KLkprivateを使用して署名Skを生成し得る。署名Skは、外部コンピューティングデバイス810’に送信され得る。外部コンピューティングデバイス810’は、データDat’及び以前受信した公開鍵KLkpublic(例えば車両公開鍵)を使用して、検証を行い得る。このように、署名検証は、秘密鍵を使用して署名を暗号化し、公開鍵を使用して署名を復号化することにより、行われる。このようにして、各デバイスの一意的な署名は、署名を送信するデバイスの非公開情報として維持され得、同時に、受信デバイスは、検証のために署名を復号化することが可能となる。これは、受信デバイスの公開鍵を使用して送信デバイスにより暗号化され、受取側の秘密鍵を使用して受信デバイスにより復号化されるデータの暗号化/復号化とは対照的である。少なくとも1つの実施例では、車両は、内部暗号化プロセス(例えば楕円曲線デジタル署名(ECDSA)または同様のプロセス)を使用することにより、デジタル署名を検証し得る。
証明書及び公開鍵に関する交換及び検証により、デバイスは安全な方法で相互通信することができる。車両が外部エンティティ(例えば信頼ゾーン境界、境界セキュリティエンティティ、または通常、電子制御されたホストデバイス)に近づくと、それぞれの通信デバイス(それぞれの証明書を検証する図7に示される機能を有する)は、証明書を交換し、相互通信を行う。認証後(例えば外部エンティティから証明書及び公開鍵を受信/検証した後)、従って車両は、プレート番号/ID、VIN、保険番号、運転者情報(例えばID、境界移行の最終許可)、乗客情報、及び輸送商品情報など、車両に関連し、かつ車両のメモリに格納された全ての必要情報を、通信することができる。次に、外部エンティティは、受信情報を確認した後に、移行要求の結果を車両に通信し、この情報は、受取側の公開鍵を使用して暗号化されている可能性がある。交換されるメッセージ/情報は、前述のDICE-RIoTプロトコルを使用して暗号化/復号化され得る。いくつかの実施形態では、いわゆる不変情報(プレート番号/ID、VIN、保険番号など)は暗号化されないが、他の情報は暗号化される。言い換えると、交換されるメッセージには、暗号化されていないデータ、並びに暗号化されたデータが存在し得、従って情報は、暗号化され得る、または暗号化され得ない、またはこれらの混合であり得る。次に、証明書/公開鍵を使用してメッセージの内容が有効であることを立証することにより、メッセージの正確性が保証される。
図9は、一実施形態による、識別子、証明書、及び鍵を使用してコンピューティングデバイスのIDを検証する方法を示す。例えば、図9の方法は、図1~図7のシステムで実施され得る。
図9の方法は、ハードウェア(例えば処理デバイス、回路、専用論理、プログラマブル論理、マイクロコード、デバイスのハードウェア、集積回路など)、ソフトウェア(例えば処理デバイスで稼働するまたは実行される命令)、またはこれらの組み合わせを含み得る処理論理により実行され得る。いくつかの実施形態では、図9の方法は、図1のIDコンポーネント147及び検証コンポーネント153により少なくとも部分的に実行される。
プロセスの順序は、特定の連続または順番で示されるが、特に指定がない限り、変更してもよい。従って、示される実施形態は、例としてのみ理解されるべきであり、示されるプロセスは、異なる順序で実行されてもよく、いくつかのプロセスは、並行して実行されてもよい。さらに、様々な実施形態では、1つ以上のプロセスが省略されてもよい。従って、全ての実施形態において全プロセスが必要とされるわけではない。他のプロセスフローも可能である。
ブロック921にて、ホストデバイスからメッセージが受信される。例えば、コンピューティングデバイス141は、ホストデバイス151からメッセージ(例えば「ホストメッセージ」または「ホストメッセージ|鮮度」)を受信する。
ブロック923にて、識別子、証明書、及び鍵(例えば公開鍵KL1public)が生成される。識別子は、コンピューティングデバイスのIDに対応付けられる。証明書は、ホストデバイスからのメッセージ(「ホストメッセージ」)を使用して生成される。一実施形態では、メッセージは、暗号化の前に公開鍵とマージされる。この暗号化では、非公開識別子IDL1privateを鍵として使用する。非公開識別子IDL1privateは、公開識別子IDL1publicに対応付けられる(例えば非対称ID生成器520により生成された対応ペアである)。
一実施例では、IDコンポーネント147は、識別子、証明書、及び鍵を生成して、三要素を提供する。一実施例では、三要素は、DICE-RIoTプロトコルに基づいて生成される。一実施例では、三要素は、図6に示されるように生成される。
一実施例では、DICE-RIoTプロトコルを使用して、各層(L)は、次の層(Lk+1)に鍵と証明書のセットを提供し、各証明書は、受信層により検証され得る。融合派生シークレットFDSは、次のように計算される。
FDS=HMAC-SHA256[UDS,SHA256(“LのID”)]
一実施例では、DICE-RIoTアーキテクチャの層1 Lは、ホストデバイスにより送信されたホストメッセージを使用して証明書を生成する。層1は、2つの対応付けられた鍵ペア、(IDlk public,IDlk private)及び(KLk public,KLk private)を計算する。
層1はまた、次のように2つの署名を計算する。
K’=暗号化(IDlk private,KLk public|ホストメッセージ)
K’’=暗号化(KLk private,K’)
上記の処理から、層1は次のように三要素を提供する。
L1={IDL1 public,IDL1certificate,KL1 public
より一般的には、各層は、次のように三要素を提供する。
Lk={鍵と証明書のセット} k=1:Nの各kについて(for each k=1:N)
それぞれの三要素を使用して、各層は、次の層にそのIDを証明することができる。
一実施例では、層2は、アプリケーションファームウェアに対応し、後続の層は、オペレーティングシステム及び/またはホストデバイスのアプリケーションに対応する。
ブロック925にて、生成された識別子、証明書、及び鍵がホストデバイスに送信される。ホストデバイスは、識別子、証明書、及び鍵を使用して、コンピューティングデバイスのIDを検証する。一実施例では、ホストデバイス151は、コンピューティングデバイス141から識別子、証明書、及び鍵を受信する。ホストデバイス151は、検証コンポーネント153を使用して、コンピューティングデバイスのIDを検証する。
一実施例では、検証コンポーネント153は、検証プロセスの一環として復号化動作を実行する。復号化は、コンピューティングデバイス141から受信した鍵を使用して復号化する前に、ホストからのメッセージを証明書とマージすることを含む。一実施例では、コンピューティングデバイスのIDの検証が、図7に示されるように実行される。
一実施例では、次のように、復号動作が実行される。
KL1 publicを使用して復号化(IDL1certificate)を行い、K’を提供する。
IDL1 publicを使用してK’を復号化して、結果を提供する。
結果は、KL1 publicと比較される。結果が、KL1 publicと等しい場合は、IDが検証される。一実施例では、アプリケーションボードのIDが検証される。
一実施形態では、人または動物のIDが証明される。人のIDの検証は、前述のようにコンピューティングデバイス141のIDを検証する場合と同様に実行される。一実施例では、コンピューティングデバイス141は、人のパスポートに統合される。パスポートを発行した国の行政部門は、ドキュメントの部類(例えば運転免許証、パスポート、IDカードなど)に特有のUDSを使用し得る。例えば、Italy、Sicily、Messina、パスポートオフィスの場合、UDS=0x12234…4444である。Germany、Bavaria、Munich、パスポートオフィスの場合、UDS=0xaabb….00322である。
パスポートに関する一実施例では、L1のIDは、次のようなASCII文字列である。
国|ドキュメントタイプ|など(例えば「Italy、Sicily、Messina、パスポートオフィス」)
割り当ての「粒度」は、各国の行政により決定され得る。
図9の方法の様々な実施形態には、様々な利点がある。例えば、モノは、サードパーティの鍵インフラストラクチャ(例えばPKI=公開鍵インフラストラクチャ)を使用せずに、特定の工場で製造されたものとして識別及び証明され得る。リプレイ保護が行われているため、中間者攻撃を行う悪意のある者やハッカーは阻止される。当方法は、モノの大量生産に利用可能である。
さらに、顧客のUDSは、ハードウェアレベルで保護される(例えばコンポーネントの外側である層0はアクセス不可能である)。UDSは誰も読み出すことはできないが、置き換えることはできる(例えばセキュアプロトコルを使用することによってのみ顧客はこれを実行できる)。セキュアプロトコルの例には、認証済みのリプレイ保護コマンド、及び/またはDiffie Hellmanのような秘密共有アルゴリズム(例えばECDH、楕円曲線Diffie Hellman)に基づいたセキュリティプロトコルが挙げられる。一実施例では、UDSは、安全なインフラストラクチャを使用して(エンドユーザではなく)顧客に伝達される。UDSは、顧客によりカスタマイズ可能である。
さらに、コンポーネント認識は、インターネットまたは他のネットワーク接続がない場合でも機能する。また、当方法を使用して、信頼ゾーンの境界(例えば国境、内部チェックポイントなど)にあるモノ、動物、及び人間のIDを簡単に確認することができる。
一実施例では、UDSの知識により、ホストデバイスはUDSを安全に置き換えることが可能となる。例えば、ホストがモノのIDの変更を所望する場合、またはモノのIDが他の誰にも(元の製造業者を含む)知られていないことをホストが所望する場合に、置き換えは実行され得る。
別の実施例では、置換コマンドがホストデバイスにより使用される。例えば、ホストデバイスは、置換UDSコマンドをコンピューティングデバイスに送信し得る。置換コマンドは、コンピューティングデバイスに起因する既存のUDSと新たなUDSを含む。
一実施例では、置換コマンドには、次のようなハッシュ値を含むフィールドを有する:ハッシュ(既存のUDS|新たなUDS)。
別の実施例では、次のようなフィールドを有する認証済みのリプレイ保護コマンドが使用される。
置換コマンド|鮮度|署名
署名=MAC[秘密鍵,置換コマンド|鮮度|ハッシュ(既存のUDS|新たなUDS)]
秘密鍵は、追加の鍵であり、デバイスに存在する認証済みコマンドに使用される鍵である。例えば、後述されるように、秘密鍵はセッション鍵であり得る(例えば図12を参照)。
一実施形態では、方法は、コンピューティングデバイス(例えばコンピューティングデバイス141)により、ホストデバイス(例えばホストデバイス151)からメッセージを受信することと、コンピューティングデバイスにより、識別子、証明書、及び鍵を生成することであって、識別子はコンピューティングデバイスのIDに対応付けられ、証明書はメッセージを使用して生成される、当該生成することと、コンピューティングデバイスにより、識別子、証明書、及び鍵をホストデバイスに送信することであって、ホストデバイスは、識別子、証明書、及び鍵を使用してコンピューティングデバイスのIDを検証するように構成される、当該送信することと、を含む。
一実施形態では、コンピューティングデバイスのIDを検証することは、メッセージと証明書を連結させて、第1のデータを提供することを含む。
一実施形態では、コンピューティングデバイスのIDを検証することはさらに、鍵を使用して第1のデータを復号化して、第2のデータを提供することを含む。
一実施形態では、コンピューティングデバイスのIDを検証することはさらに、識別子を使用して第2のデータを復号化して結果を提供し、結果を鍵と比較することを含む。
一実施形態では、識別子は公開識別子であり、コンピューティングデバイスは秘密鍵を格納し、方法はさらに、秘密鍵をメッセージ認証コードへの入力として使用して、派生シークレットを生成することを含み、公開識別子は、派生シークレットを非対称生成器への入力として使用することにより生成される。
一実施形態では、識別子は、第1の公開識別子であり、コンピューティングデバイスは、第1の公開識別子を生成するために使用された第1のデバイスシークレットを格納し、方法はさらに、ホストデバイスから置換コマンドを受信することと、置換コマンドの受信に応じて、第1のデバイスシークレットを第2のデバイスシークレットと置き換えることと、第2のデバイスシークレットを使用して生成された第2の公開識別子をホストデバイスに送信することと、を含む。
一実施形態では、鍵は公開鍵であり、証明書を生成することは、メッセージを公開鍵と連結させて、暗号化用データ入力を提供することを含む。
一実施形態では、識別子は公開識別子であり、第1の非対称生成器は、公開識別子と非公開識別子を対応付けられたペアとして生成し、鍵は公開鍵であり、第2の非対称生成器は、公開鍵と秘密鍵を対応付けられたペアとして生成し、証明書を生成することは、メッセージを公開鍵と連結させて、第1のデータを提供することと、非公開識別子を使用して第1のデータを暗号化して、第2のデータを提供することと、秘密鍵を使用して第2のデータを暗号化して、証明書を提供することと、を含む。
一実施形態では、鍵は公開鍵であり、方法はさらに、非対称鍵生成器への入力として乱数を生成することを含み、公開鍵及び対応付けられた秘密鍵は、非対称鍵生成器を使用して生成される。
一実施形態では、乱数は、物理複製困難関数(PUF)を使用して生成される。
一実施形態では、システムは、少なくとも1つのプロセッサと、命令を含むメモリと、を備え、命令は、少なくとも1つのプロセッサに指示して、コンピューティングデバイスにメッセージを送信することと、コンピューティングデバイスから、識別子、証明書、及び鍵を受信することであって、識別子はコンピューティングデバイスのIDに対応付けられ、証明書はコンピューティングデバイスによりメッセージを使用して生成される、当該受信することと、識別子、証明書、及び鍵を使用して、コンピューティングデバイスのIDを検証することと、を実行させるように構成される。
一実施形態では、コンピューティングデバイスのIDを検証することは、メッセージと証明書を連結させて、第1のデータを提供することと、鍵を使用して第1のデータを復号化して、第2のデータを提供することと、識別子を使用して第2のデータを復号化して、結果を提供することと、結果を鍵と比較することと、を含む。
一実施形態では、識別子は、第1の公開識別子であり、コンピューティングデバイスは、第1の公開識別子を生成するために使用された第1のデバイスシークレットを格納し、命令は、少なくとも1つのプロセッサに指示して、コンピューティングデバイスに第1のデバイスシークレットを第2のデバイスシークレットと置き換えさせる置換コマンドを、コンピューティングデバイスに送信することと、コンピューティングデバイスから、第2のデバイスシークレットを使用して生成された第2の公開識別子を受信することと、を実行させるようにさらに構成される。
一実施形態では、コンピューティングデバイスは、派生シークレットを提供するメッセージ認証コードへの入力として第2のデバイスシークレットを使用し、派生シークレットを使用して第2の公開識別子を生成するように構成される。
一実施形態では、置換コマンドは、第1のデバイスシークレットに基づく値を有するフィールドを含む。
一実施形態では、システムは、鮮度を生成するように構成された鮮度機構をさらに備え、コンピューティングデバイスに送信されるメッセージは鮮度を含む。
一実施形態では、コンピューティングデバイスのIDは、英数字の文字列を含む。
一実施形態では、非一時的コンピュータ記憶媒体は、命令を格納し、命令は、コンピューティングデバイス上で実行されると、コンピューティングデバイスに少なくとも、ホストデバイスからメッセージを受信することと、識別子、証明書、及び鍵を生成することであって、識別子はコンピューティングデバイスのIDに対応し、証明書はメッセージを使用して生成される、当該生成することと、識別子、証明書、及び鍵を、コンピューティングデバイスのIDの検証に使用するために、ホストデバイスに送信することと、を実行させる。
一実施形態では、識別子は、非公開識別子に対応付けられた公開識別子であり、鍵は、秘密鍵に対応付けられた公開鍵であり、証明書を生成することは、メッセージを公開鍵と連結させて、第1のデータを提供することと、非公開識別子を使用して第1のデータを暗号化して、第2のデータを提供することと、秘密鍵を使用して第2のデータを暗号化して、証明書を提供することと、を含む。
一実施形態では、コンピューティングデバイスのIDを検証することは、識別子を使用して復号化動作を実行して結果を提供し、結果を鍵と比較することを含む。
[物理複製困難関数(PUF)を使用した値の生成]
下記に開示される少なくともいくつかの実施形態は、物理複製困難関数(PUF)を使用して値を生成するための向上したアーキテクチャを提供する。いくつかの実施形態では、PUF値は、それ自体がデバイスシークレットとして使用され得る、またはデバイスシークレットを生成するために使用され得る。一実施例では、PUF値は、前述のようにDICE-RIoTプロトコルで使用する一意的なデバイスシークレット(UDS)として使用される(例えば図5A及び図5Bを参照)。一実施例では、PUFにより生成される値は、メッセージ認証コード(MAC)への入力として使用される。MACからの出力は、UDSとして使用される。
いくつかの実施形態では、PUF値、またはPUF値から生成された値は、乱数(例えばデバイス固有乱数)として使用され得る。一実施例では、前述の非対称鍵生成器を介して対応付けられた公開鍵と秘密鍵を生成する際、乱数(例えばRND)が入力として使用される(例えば図6参照)。
通常、下記のアーキテクチャは、1つ以上のPUFから提供された入力をメッセージ認証コード(MAC)に供給することにより、出力を生成する。MACからの出力は、向上したPUF(例えば上記のUDS)を提供する。
通常、半導体チップ製造業者は、例えば半導体ウェーハから提供される各チップまたは各ダイの一意的な秘密鍵をプログラミングすることである鍵投入の問題に直面する。チップに投入された秘密鍵が漏洩または開示されないように、安全な環境で鍵投入が実行されることが望ましい。また、チップの製造後に鍵のハッキングまたはリードバックができないように保証することも望ましい。いくつかの事例では、例えば、鍵投入手順は、サードパーティインフラストラクチャにより認定または実行される。
チップ製造業者は、暗号化機能を含むチップの製造コストの削減を望んでいる。チップ製造業者はまた、製造するチップの一貫したセキュリティ性能レベルを維持しながら、生産フローを簡素化することも望んでいる。しかしながら、鍵投入は、よりコストのかかる製造ステップのうちの1つである。
チップ製造業者はまた、PUFが疑似乱数生成器として使用された場合に、PUFの均一性を改善するという問題にも直面する。いくつかの事例では、この問題には、ダイ間の相互相関が含まれ得、その理由は、PUFが提供するシード値がこのような現象に基づくためである。
PUFは、例えば、オンチップ寄生効果、オンチップパス遅延など、各ダイに固有の予測不可能な物理現象に基づく。これらの現象は、例えば、疑似乱数生成器のシード値を提供するために使用される。
生産ラインで選択される2つの異なるチップは、異なるPUF値を持っていなければならない。各チップで生成されるPUF値は、デバイスの寿命の間、変化してはならない。2つのチップの鍵が類似する場合(例えばそれらのハミング距離が小さい場合)、あるチップの鍵を使用して別のチップの鍵を推測することが可能であり得る(例えば原像ハッカー攻撃)。
後述される改良されたPUFアーキテクチャを使用することにより、各チップまたは各ダイでPUFの機能を提供するのに好適な出力値が提供されることで、上記の問題の1つ以上に対するソリューションが提供され得る。下記の改良されたPUFアーキテクチャは、各チップまたは各ダイが、チップまたはダイの電源投入ごとに一意的で安全な鍵を自動的に生成することを可能にするPUFを使用する。安全な鍵は、ハッキングあるいは侵害される場合がある不揮発性メモリに、格納される必要はない。
改良されたPUFアーキテクチャはさらに、例えば半導体チップに統合された暗号化機能またはプロセスで使用する改良されたPUF出力(例えば一意鍵)を、MACを使用して生成する。MACの使用により、例えば、異なるチップで生成された鍵間のハミング距離を増大させることができる。
本明細書に開示される少なくともいくつかの実施形態では、MACからの出力を使用する改良されたPUFアーキテクチャが、シードまたは他の値を生成する方法として提供される。従って、改良されたPUFアーキテクチャは、例えば、製造コストを削減し、かつ最終的なチップでのPUF動作の信頼性及び/または均一性を改善する鍵投入の実行方法を提供する。
一実施形態では、方法は、少なくとも1つのPUFにより、少なくとも1つの値を提供することと、少なくとも1つのPUFにより提供される少なくとも1つの値を、第1の出力を生成するための入力として使用するMACに基づいて、第1の出力を生成することと、を含む。
一実施形態では、システムは、少なくとも1つのPUFデバイスと、少なくとも1つのPUFデバイスにより提供される少なくとも1つの値に基づいた第1の入力を受信するように構成されたメッセージ認証コードMACモジュールと、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに指示して、第1の入力に基づいてMACモジュールから第1の出力を生成させるように構成された命令を含むメモリと、を含む。様々な実施形態では、MACモジュールは、ハードウェア及び/またはソフトウェアを使用して実施され得る。
一実施形態では、システムはさらに、セレクタモジュールを含み、これは、PUFデバイスから、MACモジュールに値を提供する際に使用する1つ以上のPUFデバイスを選択するために使用される。例えば、いくつかのPUFデバイスから提供される値は、MACモジュールへの入力としてリンクされ、提供され得る。様々な実施形態では、セレクタモジュールは、ハードウェア及び/またはソフトウェアを使用して実施され得る。
図10は、一実施形態による、物理複製困難関数(PUF)デバイス121からの入力を受信したメッセージ認証コード(MAC)123の出力から、一意鍵125を生成するシステムを示す。システムは、メッセージ認証コード(MAC)モジュール123の出力から一意鍵125(または他の値)を生成するのに使用されるPUFアーキテクチャ111を提供する。MACモジュール123は、物理複製困難関数(PUF)デバイス121から得られる入力値を受け取る。
図10のPUFデバイス121は、例えば、様々な異なる既知の種類のPUFのうちのいずれか1つであり得る。MACモジュール123は、例えば、SHA1、SHA2、MD5、CRC、TIGERなどの一方向関数を提供する。
アーキテクチャ111は、例えば、チップ間で生成されたPUF値またはコードのハミング距離を向上させ得る。MAC関数は予測不可能である(例えば差が1ビットだけの入力シーケンスがMAC関数に提供された場合、MAC関数は完全に異なる2つの出力結果を提供する)。従って、出力しか知らない場合、MAC関数への入力を認識または特定することはできない。アーキテクチャ111はまた、例えば、擬似乱数生成器として、PUFの均一性を改善し得る。
一実施例では、PUFアーキテクチャ111により生成される値(例えば一意鍵125または別の値)は、Nビットを有する数であり得、Nは、PUFアーキテクチャ111を含むチップ(例えばメモリデバイス103または別のデバイス)で実施される暗号化アルゴリズムに依存する。一実施例では、チップは、HMAC-SHA256を使用する暗号化機能を実施し、この場合、MACモジュール123からの出力は、256ビットのサイズNを有する。MACモジュール123からの出力の使用により、鍵としての使用に好適な出力値のメッセージ長が提供される(さらなる圧縮またはパディングの必要はない)。
PUFアーキテクチャ111は、図示のメモリデバイス103などのデバイスで実施される、または、例えば、ウェーハ製造生産ラインにより提供される多数の半導体チップに実装される集積回路など、他の種類のコンピューティングデバイスで実施され得る。
一実施形態では、MACモジュール123は、例えばメモリデバイス103に暗号化機能を提供し得る暗号化モジュール127と協働し、及び/または暗号化モジュール127に統合される、またはその一部として統合される。例えば、他の暗号化目的でメモリデバイス103によりMACが使用されているため、MACモジュール123の出力は、鍵として使用するのに好適であり得る。
PUFアーキテクチャ111、暗号化モジュール127、及び/またはメモリデバイス103の他の機能の動作は、コントローラ107により制御され得る。コントローラ107は、例えば1つ以上のマイクロプロセッサを含み得る。
図10では、ホスト101は、通信チャネルを介してメモリデバイス103と通信し得る。ホスト101は、1つ以上の中央処理装置(CPU)を有するコンピュータであり得、これには、メモリデバイス103などのコンピュータ周辺デバイスが、コンピュータバスなどの相互接続(例えば周辺構成要素相互接続(PCI)、PCI eXtended(PCI-X)、PCI Express(PCIe))、通信部分、及び/またはコンピュータネットワークを介して、接続され得る。
一実施形態では、一意鍵125は、メモリデバイス103のIDを提供するためのUDSとして使用される。DICE-RIoTアーキテクチャでは、コントローラ107は、層0 L及び層1 Lを実施する。ホストインターフェース105を介してホスト101からホストメッセージを受信したことに応じて、暗号化モジュール127は、前述のように、三要素を生成する処理を実行する。ホスト101は、三要素を使用して、メモリデバイス103のIDを検証する。メモリデバイス103は、コンピューティングデバイス141の実施例である。
例証目的で、通常、2つの技術的問題があることに留意されたい。第1の問題は、ボードのIDをホストに証明することである。当問題は、例えばDICE-RIoTについて前述されたように、公開三要素と非対称暗号化を使用することにより対処され得る。この手法は、安全で簡潔であるが、いくつかの事例では、回路基板自体で直接使用するにはコスト/時間がかかりすぎであり得る。第2の問題は、(例えば不正なメモリ交換を回避するために)ボード上のメモリのIDをボードに証明することである(これは例えば電源投入後ごとに実行される)。第2の問題は、上記の公開三要素と非対称暗号化を使用して解決され得る。しかし、第2の問題に対処するには、多くの場合、単にMAC関数に基づくより軽いセキュリティ機構で十分である。
メモリデバイス103は、ホスト101用のデータを、例えば不揮発性記憶媒体109に格納するために使用され得る。一般的なメモリデバイスの例には、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、フラッシュメモリ、ダイナミックランダムアクセスメモリ、磁気テープ、ネットワーク接続ストレージデバイスなどが挙げられる。メモリデバイス103は、通信チャネルを使用してホスト101との通信を実施するホストインターフェース105を有する。例えば、ホスト101とメモリデバイス103との間の通信チャネルは、一実施形態では、周辺構成要素相互接続エクスプレス(PCIエクスプレスまたはPCIe)バスであり、ホスト101とメモリデバイス103は、NVMeプロトコル(不揮発性メモリホストコントローラインターフェース仕様(NVMHCI)、NVMエクスプレス(NVMe)としても知られる)を使用して相互通信を行う。
いくつかの実施態様では、ホスト101とメモリデバイス103との間の通信チャネルには、ローカルエリアネットワーク、無線ローカルエリアネットワーク、無線パーソナルエリアネットワーク、セルラー通信ネットワーク、ブロードバンド高速常時接続無線通信接続(例えば現世代または次世代のモバイルネットワークリンク)などのコンピュータネットワークが含まれ、ホスト101及びメモリデバイス103は、NVMeプロトコルのコマンドと同様のデータストレージ管理及び使用コマンドを使用して、相互通信を行うように構成され得る。
コントローラ107は、ファームウェア104を実行して、ホスト101からの通信に応答する動作、及び/または他の動作を実行し得る。一般のファームウェアは、工学的コンピューティングデバイスの制御、監視、及びデータ操作を提供するコンピュータプログラムの一種である。図10では、ファームウェア104は、下記でさらに論じられるように、PUFアーキテクチャ111の動作など、メモリデバイス103を作動させているコントローラ107の動作を、制御する。
メモリデバイス103は、硬質ディスク上にコーティングされた磁性材料などの不揮発性記憶媒体109、及び/または集積回路内のメモリセルを有する。記憶媒体109は、不揮発性記憶媒体109に格納されたデータ/情報を保持するために電力を要さない点で不揮発性であり、不揮発性記憶媒体109の電源を切って、再び電源を入れた後に、データ/情報を検索することができる。メモリセルは、NANDゲートベースのフラッシュメモリ、位相変化メモリ(PCM)、磁気メモリ(MRAM)、抵抗性ランダムアクセスメモリ、及び3D XPointなどの様々なメモリ/ストレージ技術を使用して実施され得、ストレージメディア109は、不揮発性であり、数日間、数か月間、及び/または数年間、電力なしでその中に格納されたデータを保持することができる。
メモリデバイス103は、コントローラ107が使用する実行時データ及び命令を格納するための揮発性ダイナミックランダムアクセスメモリ(DRAM)106を含み、コントローラ107の計算性能を改善し、及び/またはホスト101と不揮発性記憶媒体109との間で転送されるデータのバッファを提供する。DRAM106は、その中に格納されたデータ/情報を保持するために電力を要する点で揮発性であり、データ/情報は、電力が遮断されると即座または急速に失われる。
揮発性DRAM106は、通常、不揮発性記憶媒体109よりも待ち時間が短いが、電源を切るとデータがすぐに失われる。従って、現在のコンピューティングタスクでコントローラ107が使用する命令及びデータを、揮発性DRAM106を使用して一時的に格納し、パフォーマンスを向上させることが有利である。いくつかの事例では、揮発性のDRAM106は、いくつかのアプリケーションでDRAMよりも少ない電力を使用する揮発性のスタティックランダムアクセスメモリ(SRAM)に置き換えられる。不揮発性記憶媒体109が、揮発性DRAM106に匹敵するデータアクセス性能(例えば待ち時間、読み出し/書き込み速度)を有する場合、揮発性DRAM106は削除され得、コントローラ107は、命令及びデータのために、揮発性DRAM106で作動するのではなく、不揮発性記憶媒体109で作動することにより、コンピューティングを実行し得る。
例えば、クロスポイントストレージ及びメモリデバイス(例えば3D XPointメモリ)は、揮発性DRAM106に匹敵するデータアクセス性能を有する。クロスポイントメモリデバイスは、トランジスタのないメモリ素子を使用し、メモリ素子のそれぞれは、列として一緒に積層されたメモリセル及びセレクタを有する。メモリ素子列は、2つの垂直に交わるワイヤ敷設を介して接続され、一方の敷設はメモリ素子列の上に存在し、もう一方の敷設はメモリ素子列の下に存在する。各メモリ素子は、2つの層の各層上の1本のワイヤのクロスポイントで、個別に選択され得る。クロスポイントメモリデバイスは、高速で不揮発性であり、処理及びストレージの統合メモリプールとして使用され得る。
いくつかの事例では、コントローラ107は、揮発性DRAM106及び/または不揮発性記憶媒体109よりも優れたデータアクセス性能を備えたプロセッサ内キャッシュメモリを有する。従って、現在のコンピューティングタスクで使用される命令及びデータの部分は、コントローラ107のコンピューティング動作中に、コントローラ107のプロセッサ内キャッシュメモリにキャッシュされる。いくつかの事例では、コントローラ107は、複数のプロセッサを有し、それぞれが自身のプロセッサ内キャッシュメモリを有する。
任意で、コントローラ107は、メモリデバイス103内に編成されたデータ及び/または命令を使用して、データ集約型メモリ内処理を実行する。例えば、ホスト101からの要求に応じて、コントローラ107は、メモリデバイス103に格納されたデータの集合のリアルタイム分析を実行し、縮小データ集合を応答としてホスト101に通信する。例えば、いくつかのアプリケーションでは、メモリデバイス103は、センサ入力を格納するためにリアルタイムセンサに接続され、コントローラ107のプロセッサは、センサ入力に基づいて機械学習及び/またはパターン認識を実行して、メモリデバイス103及び/またはホスト101を介して少なくとも部分的に実施される人工知能(AI)システムに対応するように構成される。
いくつかの実施態様では、コントローラ107のプロセッサは、コンピュータチップ製造でメモリ(例えば106または109)と統合され、メモリ内処理が可能となり、よって、フォンノイマンアーキテクチャに従って個別に構成されたプロセッサとメモリ間のデータ移動の遅延により引き起こされるスループット制限を受けてコンピューティング性能を制限するフォンノイマンボトルネックが、打開される。処理とメモリの統合により、処理速度及びメモリ転送レートは向上し、遅延及び電力使用量は減少する。
メモリデバイス103は、クラウドコンピューティングシステム、エッジコンピューティングシステム、フォグコンピューティングシステム、及び/またはスタンドアロンコンピュータなどの様々なコンピューティングシステムで使用され得る。クラウドコンピューティングシステムでは、リモートコンピュータサーバがネットワークに接続され、データの格納、管理、及び処理を行う。エッジコンピューティングシステムは、データソースに近いコンピュータネットワークのエッジでデータ処理を実行することでクラウドコンピューティングを最適化し、よって、集中サーバ及び/またはデータストレージとのデータ通信を軽減する。フォグコンピューティングシステムは、1つ以上のエンドユーザデバイスまたはニアユーザエッジデバイスを使用してデータを格納し、よって、集中データウェアハウスにデータを格納する必要性を削減または排除する。
本明細書に開示される少なくともいくつかの実施形態は、ファームウェア104など、コントローラ107により実行されるコンピュータ命令を使用して実施され得る。いくつかの事例では、ハードウェア回路を使用して、ファームウェア104の機能のうちの少なくともいくつかが実施され得る。ファームウェア104は、最初に不揮発性記憶媒体109または別の不揮発性デバイスに格納され、コントローラ107により実行される場合は、揮発性DRAM106及び/またはプロセッサ内キャッシュメモリにロードされ得る。
例えば、ファームウェア104は、PUFアーキテクチャを作動させる際、下記で論述される技法を使用するように構成され得る。しかし、下記で論述される技法は、図10及び/または上記で論述された実施例のコンピュータシステムで使用されることに限定されない。
いくつかの実施態様では、MACモジュール123の出力を使用して、例えばルート鍵またはシード値が提供され得る。別の実施態様では、出力を使用して、1つ以上のセッション鍵が生成され得る。
一実施形態では、MACモジュール123からの出力は、別のコンピューティングデバイスに送信され得る。例えば、一意鍵125は、ホストインターフェース105を介してホスト101に送信され得る。
図11は、一実施形態による、セレクタモジュール204が選択した1つ以上のPUFデバイスからの入力を受信したMAC123の出力から、一意鍵125を生成するシステムを示す。一実施形態によれば、システムは、図10のアーキテクチャ111と同様であるが複数のPUFデバイス202とセレクタモジュール204とを含むPUFアーキテクチャ使用して、MACモジュール123の出力から一意鍵125を生成する。MACモジュール123は、セレクタモジュール204が選択した1つ以上のPUFデバイス202からの入力を受信する。一実施例では、PUFデバイス202は、PUFデバイス121を含む。
PUFデバイス202は、例えば、同一であり得る、または異なり得る(例えば異なるランダム性のある物理現象に基づいて)。一実施形態では、セレクタモジュール204は、インテリジェントPUF選択ブロックまたは回路として機能して、PUFデバイス202のうちの1つ以上を選択し、そこから、MACモジュール123への入力として提供する値を取得する。
一実施形態では、セレクタモジュール204は、PUFデバイス202の選択を、PUFデバイス202をテストした結果に少なくとも部分的に基づいて行う。例えば、セレクタモジュール204は、各PUFデバイス202の再現性をテストし得る。いずれかのPUFデバイス202がテストに失敗した場合、セレクタモジュール204は、失敗したデバイスを、MACモジュール123への入力値提供から除外する。一実施例では、失敗したデバイスは、一時的または無期限に除外され得る。
いくつかの実施態様では、セレクタモジュール204により、製造中及び/または現場での使用中に各チップのPUF機能をテストすることが可能となる(例えば各PUFデバイス202が提供する値の再現性をチェックすることにより)。所与のPUFデバイスにより提供される2つ以上の値が異なる場合、PUFデバイスは故障していると判断され、MACモジュール123への入力として使用することから除外される。
一実施形態では、MACモジュール123から向上したPUF出力を計算するためのソースとして複数のPUFデバイス202を同時に使用するために、セレクタモジュール204が使用される。例えば、セレクタモジュール204は、第1のPUFデバイスからの値を第2のPUFデバイスからの値とリンクして、MACモジュール123への入力として提供し得る。いくつかの実施態様では、このアーキテクチャでは、いくつかの異なる物理現象に依存していることから、堅牢なPUF出力を取得することが可能となる。
図12は、一実施形態による、1つ以上のPUFデバイスからの入力と、単調カウンタ302からの入力(及び/またはNONCE、タイムスタンプなどの別の鮮度機構からの入力)を受信したMACの出力から、一意鍵を生成するシステムを示す。一実施形態によれば、システムは、MACモジュール123の出力から一意鍵125を生成する。図12に示されるPUFアーキテクチャは、セレクタモジュール204に値を提供する単調カウンタ302を含むことを除いて、図11に示されるPUFアーキテクチャに類似する。様々な実施形態では、単調カウンタ302は、ハードウェア及び/またはソフトウェアを使用して実施され得る。
MACモジュール123は、1つ以上のPUFデバイス202からの入力と、単調カウンタ302からの入力とを受信する。一実施例では、PUFデバイス202と単調カウンタ302から取得された値はリンクされ、次に、MACモジュール123への入力として提供される。いくつかの実施態様では、単調カウンタ302は、要求された時にのみ、自身の値を増分させる不揮発性カウンタである。いくつかの実施形態では、単調カウンタ302は、チップの各電源投入サイクルの後に増分される。
いくつかの実施態様では、例えば公開鍵機構など、アプリケーション内の半導体チップと他のコンポーネントとの間で鍵を安全に共有する方法を提供するために、図12のPUFアーキテクチャは使用され得る。
いくつかの実施態様では、単調カウンタ302は、PUFの各計算の前に増分され、これにより、MACモジュール123の入力は各サイクルで確実に異なり、よって、提供される出力(及び/または出力のパターン)が異なる。いくつかの実施例では、この手法を使用してセッション鍵が生成され得、各セッション鍵は異なる。
いくつかの実施形態では、セレクタモジュール204は、MACモジュール123への入力としてのカウンタ値提供に、単調カウンタ302(またはNONCE、タイムスタンプなどの他の鮮度機構)を選択的に包含または除外し得る。
いくつかの実施形態では、単調カウンタ302は、暗号化モジュール127によっても使用される。いくつかの実施形態では、単調カウンタを含むPUFアーキテクチャは、各サイクルで異なる鍵を保証するセッション鍵生成器として使用され得る。いくつかの実施態様では、生成されたセッション鍵は次のように保護される。
セッション鍵=MAC[1つ以上のPUF|MTCまたはその他の鮮度]
別の実施形態では、機構は、次のように使用される。
セッション鍵=MACkey_based[Root_Key,MTC,またはその他の鮮度機構]
Root_Keyは、上記のMACモジュール123から提供される出力値、またはチップ上に存在する任意の他の種類の鍵である。
上記のMACkey_based関数は、例えば、秘密鍵に基づくMACアルゴリズムである。例えば、暗号化には、2種類のMACアルゴリズムが存在し得る。
1.例えば、HMACファミリのような、秘密鍵に基づくアルゴリズム(HMAC-SHA256は鍵ベースである)。
2.例えば、SHA256のような、秘密鍵に基づかないアルゴリズム(SHAスタンドアロンは鍵ベースではない)。
鍵ベースであるMACは、鍵を既知の値(例えば0x000…0xFFFFなど)に設定することにより、鍵ベースではないMACに変換できることに、留意されたい。
図13は、一実施形態による、1つ以上のPUFから提供される1つ以上の入力値を使用して、MACから出力を生成する方法を示す。例えば、図13の方法は、図10のメモリデバイス103で実施され得る。
図13の方法は、ブロック411にて、少なくとも1つのPUFにより1つ以上の値を提供すること(例えば1つ以上のPUFデバイス202からの値を提供すること)を含む。
ブロック413にて、例えば前述のように、PUFのうちの1つ以上に対して、再現性がテストされ得る。このテストは任意である。
ブロック415にて、ブロック413でテストが行われ、PUFデバイスがテストに失敗したと判断された場合、失敗したPUFデバイスは、MACへの入力提供から除外される。この除外は、例えば、上記で論述されたように、セレクタモジュール204により実行され得る。
ブロック417にて、値は、単調カウンタ(例えば単調カウンタ302)から提供される。PUFアーキテクチャでの単調カウンタの使用は、任意である。
ブロック419にて、PUFが提供する1つ以上の値(及び任意で単調カウンタからの少なくとも1つの値)をMACへの入力として使用するMACから、出力が生成される。
コンピューティングデバイスで実施される方法の様々な別の実施形態がここから説明され、方法は、少なくとも1つの物理複製困難関数(PUF)により、少なくとも1つの値を提供することと、少なくとも1つのPUFにより提供される少なくとも1つの値を、第1の出力を生成するための入力として使用するメッセージ認証コード(MAC)に基づいて、第1の出力を生成することと、を含む。
一実施形態では、コンピューティングデバイスは、第1のコンピューティングデバイスであり、方法はさらに、第1の出力を第2のコンピューティングデバイスに送信することを含み、第1の出力は、第1のコンピューティングデバイスの一意的な識別子である。
一実施形態では、少なくとも1つの値を提供することは、第1のPUFから第1の値を選択することと、第2のPUFから第2の値を選択することと、を含む。
一実施形態では、方法はさらに、単調カウンタから値を提供することを含み、第1の出力を生成することはさらに、単調カウンタからの値を、第1の出力を生成するためのMACへの追加の入力として使用することを含む。
一実施形態では、方法はさらに、MACが提供するそれぞれの出力に基づいて、複数のセッション鍵を生成することであって、単調カウンタは、MACへの入力として使用される値を提供する、生成することと、セッション鍵のそれぞれを生成した後に、単調カウンタを増分することと、を含む。
一実施形態では、方法はさらに、少なくとも1つのPUFのうちの第1のPUFに対して、再現性をテストすることと、第1のPUFがテストに失敗したという判断に基づいて、第1の出力の生成時にMACに任意の入力を提供することから、第1のPUFを除外することと、を含む。
一実施形態では、テストすることは、第1のPUFが提供する2つ以上の値を比較することを含む。
一実施形態では、コンピューティングデバイスはメモリデバイスであり、メモリデバイスは、MACを使用して生成された出力値を格納するように構成された不揮発性記憶媒体を備える。
一実施形態では、方法はさらに、少なくとも1つのプロセッサにより、少なくとも1つの暗号化機能を実行することを含み、少なくとも1つの暗号化機能を実行することは、MACを使用して生成された出力値を使用することを含む。
一実施形態では、非一時的コンピュータ記憶媒体は、命令を格納し、命令は、メモリデバイス(例えばメモリデバイス103)で実行されると、メモリデバイスに方法を実行させ、方法は、少なくとも1つの物理複製困難関数(PUF)により、少なくとも1つの値を提供することと、少なくとも1つのPUFにより提供される少なくとも1つの値を、第1の出力を生成するための入力として使用するメッセージ認証コード(MAC)に基づいて、第1の出力を生成することと、を含む。
後述の様々な別の実施形態では、図4の方法はシステムで実行され得、システムは、少なくとも1つの物理複製困難関数(PUF)デバイスと、少なくとも1つのPUFデバイスにより提供される少なくとも1つの値に基づいた第1の入力を受信するように構成されたメッセージ認証コード(MAC)モジュールと、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに指示して、第1の入力に基づいてMACモジュールから第1の出力を生成させるように構成された命令を含むメモリと、を含む。
一実施形態では、MACモジュールは回路を含む。一実施形態では、MACモジュールからの第1の出力は、ダイを識別する鍵である。一実施形態では、MACモジュールからの第1の出力はルート鍵であり、命令はさらに、少なくとも1つのプロセッサに指示して、MACモジュールからの出力を使用してセッション鍵を生成させるように構成される。
一実施形態では、システムは、半導体チップ(例えば半導体ウェーハから得られるいくつかのチップのうちの1つのチップ)の一部であり、MACモジュールからの第1の出力は、チップを識別する一意的な値であり、命令はさらに、少なくとも1つのプロセッサに指示して、一意的な値をコンピューティングデバイスに送信させるように構成される。
一実施形態では、少なくとも1つのPUFデバイスは、複数のPUFデバイス(例えばPUFデバイス202)を含み、システムはさらに、少なくとも1つの値を提供する少なくとも1つのPUFデバイスを選択するように構成されたセレクタモジュールを備える。
一実施形態では、セレクタモジュールはさらに、第1のPUFデバイスからの第1の値と第2のPUFデバイスからの第2の値とをリンクすることにより、MACモジュールへの第1の入力を生成するように構成される。
一実施形態では、システムはさらに、カウンタ値を提供するように構成された単調カウンタを備え、命令はさらに、少なくとも1つのプロセッサに指示して、カウンタ値を、少なくとも1つのPUFデバイスにより提供される少なくとも1つの値とリンクすることにより、第1の入力を生成させるように構成される。
一実施形態では、システムはさらに、少なくとも1つの値を提供する少なくとも1つのPUFデバイスを選択するように構成されたセレクタモジュールを備え、カウンタ値を、少なくとも1つのPUFデバイスにより提供される少なくとも1つの値とリンクすることは、セレクタモジュールにより実行される。
一実施形態では、単調カウンタはさらに、第1の入力を生成した後にカウンタ値を増分して、増分値を提供するように構成され、命令はさらに、少なくとも1つのプロセッサに指示して、増分値と、少なくとも1つのPUFデバイスにより提供される少なくとも1つの新たな値とに基づいて、MACモジュールからの第2の出力を生成させるように構成される。
図14は、一実施形態による、1つ以上のPUFデバイスからの入力と、単調カウンタからの入力(及び/またはNONCE、タイムスタンプなどの別の鮮度機構からの入力)とを受信したMACの出力から、ルート鍵を生成し、追加のMACを加えてセッション鍵を生成するシステムを示す。
一実施形態では、システムは、1つ以上のPUFデバイス202からの入力と、単調カウンタ302からの入力(及び/またはNONCE、タイムスタンプなどの別の鮮度機構からの入力)とを受信したMACの出力から、ルート鍵を生成し、追加のMACモジュール504を加えて、ルート鍵入力を使用してセッション鍵を生成する。この実施形態では、MACモジュール123は、MACモジュール123からの出力としてルート鍵502を提供する。ルート鍵502は、MACモジュール504への入力であり、MACモジュール504は、前述のセッション鍵=MACkey_based[Root_Key,MTC,またはその他の鮮度機構]などのMAC関数を使用し得る。この鍵ベース関数に入力されるルート鍵は、図示されるように、ルート鍵502であり得る。
さらに、一実施形態では、単調カウンタ302は、MACモジュール504への入力を提供し得る。別の実施形態では、単調カウンタ302を使用する代わりに、異なる単調カウンタまたはチップからの他の値が、MACモジュール504への入力として提供され得る。いくつかの事例では、単調カウンタ302は、カウンタ値をMACモジュール504に提供するが、セレクタモジュール204には提供しない。別の事例では、カウンタ値は、両方のMACモジュールに提供され得る、または両方のモジュールから除外され得る。
[鍵生成及び安全な格納]
上記のように、PUFは、安全な鍵の生成のために使用され得る。下記で論述される様々な実施形態は、少なくとも1つのPUFを使用して初期鍵を生成し、初期鍵の難読化を高める処理を適用し、最終的な難読化鍵を不揮発性メモリに格納することに関する。最終的な難読化鍵及び/または最終的な難読化鍵を生成するために使用される中間鍵は、別のコンピューティングデバイスと共有され、他のコンピューティングデバイスとの安全な通信に使用され得る(例えば共有鍵に基づいた対称暗号化を使用するメッセージング)。いくつかの実施形態では、自動車用途で使用されるコンピューティングデバイス(例えば自律走行車両のコントローラ)に対して、安全な鍵の生成が行われる。
代替的な実施形態では、初期鍵は、上記の少なくとも1つのPUFの使用を要しない他の方法で生成される。一実施形態では、初期鍵は、投入された鍵を使用して生成され得る。例えば、初期鍵は、工場またはその他の安全な環境で投入されるため、チップに存在する。この事例では、初期鍵の難読化を高める処理を適用することは、投入された鍵に難読化処理を適用することにより実行される。
自動車環境には、鍵生成フェーズ中に「ノイズ」をもたらすという技術的問題がある。下記の様々な実施形態は、難読化鍵を不揮発性メモリ領域内に格納して、この誘発ノイズによる鍵変動を低減または回避する方法論を使用することにより、この問題に対する技術的ソリューションを提供する。
自動車環境は、鍵生成に様々な影響を与え得る。例えば、エンジンの電源を投入すると、コンピューティングデバイスへのアプリケーション電力が低下し得、その結果、鍵が誤った方法で生成される。極端な温度も、鍵を生成する回路に影響を与え得る。電力線の磁場といった他のソースは、シンボル間干渉またはクロストークを引き起こし得、ホストはデバイスを認識しなくなる。
対照的に、鍵が安全な環境で生成され、メモリに格納された場合、ノイズの影響を受けない。安全な環境は、例えば、コンピューティングデバイス製品のエンドユーザ/顧客間で鍵を伝達するために使用される戦略に応じて、車、テスト環境、または工場(例えば鍵を生成するコンピューティングデバイスを製造する工場)で直接組み込まれ得る。
一実施例では、車両で使用されるADASまたは他のコンピューティングシステムは、電源の変動の影響を受ける。これは、例えば、車両の電源を入れる時、ブレーキをかける時、エンジンをかける時などに、発生し得る。
下記で論述される、鍵を生成して格納する様々な実施形態は、外部要因(例えば電源変動、温度、及び他の外部ノイズ源)から実質的に独立しているという利点を提供する。いくつかの実施形態の別の利点は、例えば、全てのサイクルで、鍵ベクトルの生成が同じであることである。
鍵の格納時に、いくつかの実施形態で提供される別の利点は、ハードウェア攻撃(例えばハッカーが導入し得る)に対して鍵が実質的に影響を受けないことである。例えば、このような攻撃の1つでは、デバイスの電源投入電流が監視され、鍵に対応付けられたビットに電流変動が対応付けられる。他の攻撃では、例えば、電圧測定(例えばVdd供給電圧)が使用され得る。いくつかの攻撃では、例えば、温度変化を使用してデバイスの動作が妨害され得る。
いくつかの実施形態では、図10~図14に関して前述された手法及び/またはアーキテクチャを使用して、初期鍵は生成され得る。例えば、鍵を格納しているコンピューティングデバイスの電源投入サイクルごとに、PUFを使用して鍵が生成される。代替的な実施形態では、他の手法を使用して、初期鍵が生成され得る。
1つの例示的な手法では、前述のように、鍵投入は、少なくとも1つのPUF及びMACアルゴリズム(例えばSHA256)を使用して、他のデバイス(例えばウェーハ上に配置された隣接ダイ)とは著しく異なるデバイスの鍵を生成する。MAC暗号化アルゴリズムには、PUFが生成するビットのエントロピーを高めるという利点がある。
一実施形態では、ハッカー攻撃を減少または回避するために、また格納された鍵の信頼性を向上させるために、生成された鍵(例えばPUF、次いでMACアルゴリズムから提供される初期鍵)は、鍵に前処理が行われた後、デバイスの不揮発性領域に格納される。一実施形態では、鍵が格納された後、鍵を生成する回路は無効化され得る。前処理は、通常、難読化処理と本明細書では称される。一実施例では、回路及び/または他の論理を使用して、デバイス上で難読化処理が実施される。一実施例では、鍵は外部ノイズ源から独立しているため、格納された鍵はデバイスにより読み出され得る。デバイスのいずれのデータも、内部機構を使用して読み出される。
様々な実施形態では、本明細書に説明されるように鍵を格納することにより、ノイズに対する余裕が増やされる。また、これにより、ハッカーは、例えば電力監視または他のハッキング方法を使用して、格納された鍵を読み出すことが困難となる。
本明細書の少なくともいくつかの実施形態は、PUF及び暗号化アルゴリズム(例えばHMAC-SHA256)を使用して、温度または電圧などの外部要因から鍵生成を独立させる。独立させないと、デバイスのある電源投入時と次の電源投入時とで鍵が異なったものになり得る。これが起こった場合、ホストがデバイスとメッセージを交換できるようになるのに、問題が生じ得る。様々な実施形態は、外部要因の影響を受けないように、格納される鍵をメモリに配置することにより、鍵生成をより堅牢にする。
一実施形態では、鍵は、デバイス上で一旦生成され、デバイスの不揮発性メモリに格納される。一実施例では、SRAMにリセットが適用される前に、SRAMの内容を使用して鍵が生成され得る。PUFの関数である鍵は、PUFから出力された疑似ランダム値を使用して生成される。装置または他のデバイスをリセットする前に、SRAMの内容が読み出される。鍵は、所望により、コマンドシーケンスを介して他の時に再生成することもできる。一実施例では、生成された鍵は、前述のように、DICE-RIoTプロトコルでUDSとして使用される。一実施例では、コマンドシーケンスは、前述のように、置換コマンドを使用して、前に生成されたUDSを新たなUDSで置き換える。
一実施形態では、鍵生成は、デバイスにより実施される暗号化とは無関係である。生成された鍵は、ホストと共有される。この実施形態は、例えばデバイスが鍵の使用中に吸収する電流の形状を分析することにより、攻撃者が鍵を推測して内部で使用することを回避する方法で、デバイスにおける鍵格納及び/または鍵読み出しを行う。
さらに、例えば、非対称暗号化では、生成された鍵は、システムの秘密鍵である可変パスワードとなる。鍵は、他の人と共有されない。公開鍵暗号化の場合、鍵を使用して、対応する公開鍵が生成される。
様々な実施形態では、投入された鍵を使用して、または1つ以上のPUFを使用して、初期鍵が生成される(例えば初期鍵PUF0が提供される)。次に、初期鍵は、難読化処理の1つ以上のステップにかけられ、後述されるような中間鍵(例えばPUF1、PUF2、…、PUF5)が提供される。この処理からの出力(例えばPUF5)は、デバイスの不揮発性メモリに格納される難読化鍵である。投入された鍵を使用する場合、PUF0の非限定的な例について後述されるのと同様に、投入された鍵には、難読化処理が適用される。
一実施形態では、上記のように、初期投入鍵の場合、以下のような機構が使用される。
セッション鍵=MACkey_based[Root_Key,MTC,またはその他の鮮度機構]
Root_Keyは、チップ上に存在する任意の他の種類の鍵である(例えば鍵は、工場または他の安全な環境でチップに投入された初期鍵であり得る)。
一実施形態では、デバイスの最初の電源投入時に、特別なシーケンスが、デバイスの少なくとも1つの回路(例えば読み出し回路)を起動させ、回路(複数可)が適切に作動していることを検証する。次に、デバイスは、上記のように、初期鍵PUF0を生成する。この鍵は、格納され得る、または後述されるように、安全な格納のために、さらに処理してより堅牢にされ得る。
中間鍵PUF1は、PUF0を所定のビットシーケンス(例えば他の人が知っているシーケンス)と連結させてPUF1を生成することで、生成される。一実施形態では、PUF1を使用して、デバイスが鍵を正しく読み出す能力を検証し、電源の変動などのノイズが生成された鍵に影響を与えていないことを確認する。
次の中間鍵PUF2が生成される。PUF1は反転ビットパターン(例えばPUF1のビットを反転することにより形成され、本明細書では時にPUF1バーと称される)でインターリーブされ、PUF2が生成される。
一実施形態では、PUF2は、同じビット数の0及び1を有する。これにより、デバイス電流の形状は、いずれの鍵でも(例えばデバイスに格納されるいずれの鍵でも)実質的に同じになる。これにより、デバイスが鍵を読み出している時に、攻撃者がデバイス電流の形状を調べて、鍵の値を推測する可能性は低下する。
次の中間鍵PUF3が生成される。PUF2のビットは疑似ランダムビットでインターリーブされて、PUF3が形成される。これは、鍵を難読化するのにさらに役立つ。一実施形態では、疑似ランダムビットは、ハッシュ関数を使用することで、PUF1またはPUF2から導出される。例えば、これらの派生ビットはPUF2に追加されて、PUF3が形成される。
次の中間鍵PUF4が生成される。エラー訂正コード(ECC)は、デバイスの内部回路により生成される(例えばプログラミング中に)。ECCのビットはPUF3に追加され、PUF4が生成される。一実施形態では、ECCビットは、例えばデバイスの耐久限界、X線、及び粒子により引き起こされ得る不揮発性メモリ(例えばNVRAM)の経年劣化の影響から、保護するのに役立つ。不揮発性メモリの経年劣化は、例えば、ビットの反転を生じ得るNVセル内の電子数の増加によっても、起こり得る。
次の中間鍵PUF5が生成される。PUF5は、PUF4のいくつかの複製を連結したものである。複数のPUF4の複製がPUF5に存在するという冗長性により、後で鍵を正しく読み出すことができる尤度が高まり、堅牢性はさらに向上する。一実施形態では、堅牢性をさらに高めるために、PUF5のいくつかの複製が不揮発性メモリストレージの様々な領域に格納される。例えば、領域のうちの1つの領域でPUF5が破損したとしても、領域のうちの他の領域からPUF5を読み出すことができるため、正しい鍵を抽出することができる。
一実施形態では、PUF1またはPUF3は、対称暗号化でホストと共有される鍵である、または非対称暗号化で公開鍵を生成するために使用される鍵である。一実施形態では、PUF4及びPUF5は、エンドユーザまたはホストと共有されない。
上記の手法は、難読化鍵を生成するためにPUF2、PUF3、PUF4、及び/またはPUF5は必要ないという点で、モジュール式である。代わりに、様々な実施形態では、前述の難読化ステップのうちの1つ以上は、初期鍵に適用され得、さらに順序を変えることができる。例えば、Vdd電圧供給は低下しないことがわかっているシステムでは、難読化ステップの数を減らすことができる。
一実施形態では、難読化鍵を格納する時、ビットパターンは、不揮発性記憶媒体の周りに物理的に分散される(例えば異なる行及びワードで)。例えば、デバイスは、同時にビットを読み出し、マルチビットエラーから保護することができる。
図15は、一実施形態による、難読化鍵635を不揮発性メモリ(例えば不揮発性記憶媒体109)に格納するコンピューティングデバイス603を示す。コンピューティングデバイス603は、図1のコンピューティングデバイス141の実施例である。一実施例では、難読化鍵は、UDSとして使用される。(注記)例えば、ハッカーが鍵の値を理解しようとする可能性を回避するために、難読化により、鍵のビットにエントロピーが追加される。デバイスは、難読化として使用された追加ビットを削除することにより、いつでも鍵を抽出することができる。一実施例では、一般的なハッカー攻撃は、統計ツールを使用して、ある特定の時間枠でデバイスにより吸収された電流プロファイルを処理することにより、デバイス内で生成/作成された秘密鍵を推測することで構成される。難読化は、この問題を大幅に軽減する。
初期鍵625は、少なくとも1つの物理複製困難関数デバイス121が提供する値に基づいて生成される。難読化鍵635は、初期鍵625に基づいて生成される。生成された後、難読化鍵635は、不揮発性記憶媒体109に格納される。
一実施形態では、メッセージ認証コード(MAC)123は、PUFデバイス121からの値を入力として使用して、初期鍵625を出力として提供する。一実施形態では、例えば上記で論述されたように、難読化鍵635(例えばPUF5)を提供するために、難読化処理モジュール630を使用して初期鍵625に処理が行われる。
一実施形態では、Mondello他により2018年4月27日に出願された「SECURE DISTRIBUTION OF SECRET KEY USING A MONOTONIC COUNTER」と題する関連米国特許出願第15/965,731号に記載されるように、難読化鍵635は、別のコンピューティングデバイスに安全に配布され、その出願の内容全体は、参照により本明細書に完全に記載されているかのように組み込まれるものとする。別の実施形態では、初期鍵625及び/または本明細書に記載の難読化処理の中間鍵のうちのいずれか1つ以上は、同一または同様の方法で安全に配布され得る。任意で、エンドユーザ/顧客は前述の手法を使用して、初期鍵(例えばPUF0)、中間鍵、及び/または最終難読化鍵(例えばPUF5)の値を読み出す。例えば、エンドユーザは、デバイスが鍵の内部生成を適切に実行していることの検証、及び/または鍵生成の統計的品質の監視を行い得る。
図16は、一実施形態による、難読化処理モジュール630により難読化プロセス中に生成される中間鍵(PUF2)の例を示す。上記のように、PUF1のビットは反転され、反転ビット702が提供される。図示されるように、ビット702は、PUF1のビットとインターリーブされる。例えば、図示される鍵の1つおきのビットは、インターリーブされた反転ビット702である。
図17は、一実施形態による、図16の難読化プロセス中に生成される別の中間鍵(PUF3)の例を示す(この例ではPUF3はPUF2に基づく)。上記のように、PUF2のビットは、擬似ランダムビット802でさらにインターリーブされる。図示されるように、ビット802は、PUF2でインターリーブされる。例えば、図示された鍵の2つおきのビットは、インターリーブされた疑似ランダムビット802である。
図18は、一実施形態による、難読化鍵(例えば難読化鍵635)を生成し、不揮発性メモリ(例えば不揮発性記憶媒体109)に格納する方法を示す。一実施例では、図2のメモリシステム105は、難読化鍵を不揮発性メモリ121に格納する。
ブロック911にて、初期鍵は、少なくとも1つの物理複製困難関数(PUF)により提供される値に基づいて生成される。
別の実施形態では、ブロック911にて、初期鍵は、鍵投入により生成される。例えば、初期鍵は、単に、製造中にチップに投入された値であり得る。
ブロック913にて、難読化鍵は、初期鍵に基づいて生成される。例えば、生成される難読化鍵は、PUF3またはPUF5である。
ブロック915にて、難読化鍵は、コンピューティングデバイスの不揮発性メモリに格納される。例えば、難読化鍵は、NANDフラッシュメモリまたはEEPROMに格納される。
一実施形態では、方法は、鍵投入を使用して初期鍵を生成することと、初期鍵に基づいて難読化鍵を生成することと、難読化鍵を不揮発性メモリに格納することと、を含む。例えば、初期鍵は、製造時の鍵投入プロセス中に投入された鍵であり得る。
一実施形態では、方法は、鍵投入により提供される初期鍵を生成する、または少なくとも1つの物理複製困難関数(PUF)により提供される値に基づいて初期鍵を生成することと、初期鍵に基づいて難読化鍵を生成することと、難読化鍵をコンピューティングデバイスの不揮発性メモリに格納することと、を含む。
一実施形態では、初期鍵を生成することは、PUFからの値(または例えばチップ上の別の値)を、初期鍵を生成するためのメッセージ認証コード(MAC)への入力として使用することを含む。
一実施形態では、難読化鍵は、ユーザアドレス指定可能メモリ空間の外側の不揮発性メモリに格納される。
一実施形態では、難読化鍵を生成することは、初期鍵を所定のビットパターンと連結させることを含む。
一実施形態では、初期鍵を所定のビットパターンと連結させることにより、第1の鍵(例えばPUF1)が提供され、難読化鍵を生成することはさらに、第1の鍵を反転ビットパターンでインターリーブすることを含み、反転ビットパターンは、第1の鍵のビットを反転することにより提供される。
一実施形態では、第1の鍵を反転ビットパターンでインターリーブすることにより、第2の鍵(例えばPUF2)が提供され、難読化鍵を生成することはさらに、第2の鍵を疑似ランダムビットでインターリーブすることを含む。
一実施形態では、この方法はさらに、ハッシュ関数を使用して、第1の鍵または第2の鍵から擬似ランダムビットを導出することを含む。
一実施形態では、第2の鍵を疑似ランダムビットとインターリーブすることにより、第3の鍵(例えばPUF3)が提供され、難読化鍵を生成することはさらに、第3の鍵を誤り訂正コードビットと連結させることを含む。
一実施形態では、コンピューティングデバイスは、第1のコンピューティングデバイスであり、方法はさらに、初期鍵、第1の鍵、または第3の鍵のうちの少なくとも1つを、第2のコンピューティングデバイスと共有し、初期鍵、第1の鍵、または第3の鍵のうちの共有された少なくとも1つを使用して暗号化された第2のコンピューティングデバイスからメッセージを受信することを含む。
一実施形態では、第3の鍵を誤り訂正コードビットと連結させることにより、第4の鍵(例えばPUF4)が提供され、難読化鍵を生成することはさらに、第4の鍵を第4の鍵の1つ以上の複製と連結させることを含む。
一実施形態では、第4の鍵を第4の鍵の1つ以上の複製と連結させることにより、第5の鍵(例えばPUF5)が提供され、難読化鍵を格納することは、第5の鍵の第2の複製が格納される行またはブロックとは異なる不揮発性メモリの行またはブロックのうちの少なくとも1つに、第5の鍵の第1の複製を格納することを含む。
一実施形態では、システムは、第1の値を提供するように構成された少なくとも1つの物理複製困難関数(PUF)デバイス(例えばPUFデバイス121)と、難読化鍵(例えば鍵635)を格納するように構成された不揮発性メモリ(例えば不揮発性記憶媒体109)と、少なくとも1つのプロセッサと、命令を含むメモリと、を備え、命令は、少なくとも1つのプロセッサに指示して、少なくとも1つのPUFデバイスが提供する第1の値に基づいて初期鍵を生成することと、初期鍵に基づいて難読化鍵を生成することと、難読化鍵を不揮発性メモリに格納することと、を実行させるように構成される。
一実施形態では、システムはさらに、少なくとも1つのPUFデバイスが提供する値を受信するように構成されたメッセージ認証コード(MAC)モジュール(例えばMAC123)を含み、初期鍵を生成することは、第1の値を、初期鍵を生成するためのMACモジュールへの入力として使用することを含む。
一実施形態では、難読化鍵を生成することは、鍵を所定のビットパターンと連結させること、第1の鍵を、第1の鍵の反転ビットパターンでインターリーブすること、鍵を疑似ランダムビットでインターリーブすること、鍵をエラー訂正コードビットと連結させること、または第2の鍵を、第2の鍵の1つ以上の複製と連結させること、のうちの少なくとも1つを含む。
一実施形態では、格納された難読化鍵は、同数の0ビット及び1ビットを有する。
一実施形態では、難読化鍵を生成することは、初期鍵を第1のビットパターンと連結させることを含む。
一実施形態では、初期鍵を第1のビットパターンと連結させることにより、第1の鍵が提供され、難読化鍵を生成することはさらに、第1の鍵を第2のビットパターンでインターリーブすることを含む。
一実施形態では、難読化鍵を生成することはさらに、鍵を疑似ランダムビットでインターリーブすることを含む。
一実施形態では、難読化鍵を生成することはさらに、鍵をエラー訂正コードビットと連結させることを含む。
一実施形態では、非一時的コンピュータ記憶媒体は、命令を格納し、命令は、コンピューティングデバイス上で実行されると、コンピューティングデバイスに方法を実行させ、方法は、少なくとも一つの物理複製困難関数(PUF)を使用して初期鍵を生成することと、初期鍵に基づいて難読化鍵を生成することと、難読化鍵を不揮発性メモリに格納することと、を含む。
図19は、一実施形態による、鍵投入1010に基づいて初期鍵625を生成し、初期鍵を難読化し、難読化鍵を不揮発性メモリに格納するために使用されるコンピューティングデバイス1003を示す。
一実施形態では、初期鍵625は、投入された鍵1010を使用することにより生成される。例えば、初期鍵625は、製造中、または他の組み立て中もしくは試験中に、工場または他の安全な環境で投入されることにより、チップ内に存在する。一実施例では、初期鍵625は、コンピューティングデバイス1003の初期UDSとして使用される。難読化は、UDSにも適用され得る。UDSは、鍵及び証明書の安全な生成を生じるためにDICE-RIoTが使用し始めるシークレットである。初期鍵の難読化を高める処理の適用は、投入された鍵(例えば鍵投入1010からの値)に難読化処理を適用することにより(モジュール630を介して)、実行される。別の実施形態では、難読化処理は、チップまたはダイ上に格納され得る、あるいは存在し得る任意の他の値に適用され得る。
[鍵生成及び安全な格納の変形形態]
ここで、様々な追加の非限定的な実施形態が、下記に説明される。一実施形態では、システムボードの第1の電源投入後(または電源投入中)に、特別なシーケンスが有効化され、暗号化エンジン(例えば暗号化モジュール127)を含むデバイスを起動させる。シーケンスはさらに、内部PUFをウェイクアップさせ、その機能を検証し、次に、PUFは、例えば前述のように、初期値PUF0を生成する。PUF0値は、オンチップアルゴリズムにより(例えば難読化処理モジュール630により)処理され、不揮発性アレイの特別領域(ユーザアドレス指定可能空間外)に書き込まれる。代替的な実施形態では、PUF0値の代わりに、投入された鍵が、後述と同様にオンチップアルゴリズムにより処理され、格納用の難読化鍵が提供される。
一実施形態では、Vdd(電圧)及び/または温度障害ハッカー攻撃を防ぐために、難読化処理が実行される。この処理には、PUF0を周知のパターン(例えば固定数の0/1ビットを含む)と連結させることが含まれる。これらのビットにより、デバイス(例えばチップ)の寿命中に、PUF値が内部で読み出されると、読み出し回路が0/1ビットを適切に識別できるか判定することが可能となる。例えば、PUF1=PUF0||010101…01である。
次に、上記の処理の結果(例えばPUF1)は、ダミービットでさらに具現化される(例えばIccハッカー分析を回避するため)。具体的には、例えば、PUF1のビットは、PUF1の反転バージョン(すなわちPUF1の各ビットを反転することにより形成されたPUF1バー)でインターリーブされる。例えば、PUF2=PUF1バーでインターリーブされたPUF1である。
一実施形態では、インターリーブの規則は、チップ/デバイス上に存在する(例えばNV不揮発性アレイの)列デコーダの種類に依存する。デバイスは、(不揮発性アレイからの)PUF値の各読み出しで、読み出し回路がPUF1及びPUF1バーから同じ数のビットを(シングルショットで)処理することを保証する。これにより、0と1の値で同じ数のビットを確実に読み出すことができ、供給電流(Idd)に規則的な形状がもたらされる。
次に、PUF2のビットはさらに、疑似ランダムビットでインターリーブされる。一実施例では、インターリーブは、不揮発性アレイ列デコーダ構造に依存する。一実施形態では、出力は、特定の数の擬似ランダムビットが詰め込まれた同じ数のPUF2ビットを有する(例えばPUF2パターンに存在し得る最終的な残差相関を不明瞭にするために)。
一実施形態では、疑似ランダムビットは、ハッシュ関数を使用することにより、PUF1またはPUF2から導出され得る。他の代替的な手法も使用できる。
一実施形態では、任意で、不揮発性の経年劣化によるビット損失を軽減または防止するために、PUF3のビットは、エラー訂正コード(ECC)ビットと連結される。一実施形態では、PUF4のビットは、任意で1回以上複製される(これはECC機能も拡張する)。例えば、前述のものは、NANDメモリで実施され得る。一実施例では、PUF5=PUF4||PUF4||…||PUF4である。
一実施形態では、PUF5の値は、不揮発性メモリアレイの異なる行及び/またはブロックに2回以上書き込まれ得る。
上記の難読化処理の結果、例えば、最終的なPUF値が不揮発性アレイブロックに一旦書き込まれると、鍵の信頼性(例えばノイズや電荷損失による)、またはIdd分析によりその値を推測する、もしくはVdd障害攻撃によりその値を奪取するいずれの試みも、あまり心配せずに、または全く心配せずに、その値を使用することができる。
一実施形態では、難読化処理が一旦完了すると、PUF回路は無効化され得る。一実施形態では、PUFデバイスは、無効化後、他の目的で(例えば不揮発性アレイ内の標準的な読み出し動作を用いる)、デバイスの内部で使用される値を提供することができる。
一実施形態では、鍵ビットは、PUF3から鍵を抽出する時にランダムビットと区別される。例えば、鍵を格納するデバイスの内部ロジックは、PUF5から前のPUFまたは元のPUF(例えばPUF3)に戻るために必要な位置及び方法を認識している。
一実施形態では、鍵ビットのビット位置は、鍵を抽出するデバイスにより把握されている。例えば、デバイスの内部ロジックは、設計の選択に応じて、中間PUFまたは最終鍵PUF5のうちの1つを受信し得る。その後、動作(複数可)を逆の順序で適用すると、元のPUFが取得される。例えば、元の鍵に戻って元の鍵を特定するには、ハッカーはコンテンツ(例えば鍵ビット)を読み出し、かつ適用された動作(複数可)も知っている必要があるように、PUF1からPUF5までの処理ステップは実行され、難読化されたPUFは格納される。
[PUFを使用したコンピューティングデバイスのIDの生成]
ここで、物理複製困難関数(PUF)を使用してコンピューティングデバイスのIDを生成することに関する様々な実施形態が、下記に説明される。下記の説明の一般性は、前述の様々な実施形態により制限されない。
以前の手法では、コンピューティングデバイスの製造業者は、コンピューティングデバイスのIDを確立するために、コンピューティングデバイスを購入する顧客と1つ以上の秘密鍵を共有する必要がある。しかし、秘密鍵を共有することは、鍵を共有するために顧客との面倒で複雑で高価な安全なチャネル及びインフラストラクチャが必要になるため、技術的な問題が生じる。さらに、鍵共有を実施するには、人員サービスが必要となる。さらに、前述のセキュリティニーズは、ハッカーまたは他の権限のない人によりセキュリティ対策が侵害され得るリスクを高め得る。
下記に論じられる本開示の様々な実施形態は、上記の技術的問題に対する技術的ソリューションを提供する。様々な実施形態では、コンピューティングデバイスは、1つ以上のPUFを使用してIDを生成する。一実施例では、IDはUDSである。
一実施形態では、コンピューティングデバイスのIDの生成は、自動的な方法で割り当てられる(例えばスケジュールされた時間または所定のイベントの発生に基づき、これに応じて、コンピューティングデバイスは、PUFを使用してUDSを自己生成する)。PUFを使用してIDを割り当てることにより、ID割り当ての複雑さ及び費用が削減され得る。
コンピューティングデバイスがIDを生成した後、これを使用して、識別子、証明書、及び鍵の三要素が生成され得る。一実施形態では、三要素は、ホストデバイスからのメッセージの受信に応じて生成される。ホストデバイスは、生成された識別子、証明書、及び鍵を使用して、コンピューティングデバイスのIDを検証し得る。IDが検証された後、ホストデバイスとコンピューティングデバイスによるさらなる安全な通信が、鍵を使用して実行され得る。
いくつかの実施形態では、コンピューティングデバイスは、ホストデバイスからのコマンドの受信に応じて、IDを生成する。例えば、コマンドは、コンピューティングデバイスにより認証された安全な置換コマンドであり得る。IDを生成した後、コンピューティングデバイスは、置換IDが生成されたことを確認するための確認メッセージを、ホストデバイスに送信する。一実施例では、置換IDは、不揮発性メモリに格納され、以前格納されたUDS(例えばコンピューティングデバイスの元の製造業者により割り当てられたUDS)を置き換える新たなUDSである。
一実施形態では、IDは、コンピューティングデバイスのメモリに格納されるデバイスシークレット(例えば上記で論述されたようなDICE-RIoTプロトコルで使用されるUDS)である。少なくとも1つの値は、コンピューティングデバイスの1つ以上のPUFにより提供される。コンピューティングデバイスは、鍵導出関数(KDF)を使用してデバイスシークレットを生成する。1つ以上のPUFにより提供される値(複数可)は、KDFへの入力(複数可)である。KDFの出力は、デバイスシークレットを提供する。KDFの出力は、デバイスシークレットとしてコンピューティングデバイスのメモリに格納される。
一実施例では、KDFはハッシュである。一実施例では、KDFは、メッセージ認証コードである。
一実施形態では、コンピューティングデバイスは、ホストデバイスと通信するために使用される秘密鍵を格納し、KDFは、メッセージ認証コード(MAC)である。1つ以上のPUFにより提供される少なくとも1つの値は、MACへの第1の入力であり、秘密鍵は、MACへの第2の入力として使用される。
いくつかの実施例では、コンピューティングデバイスは、フラッシュメモリデバイスであり得る。例えば、シリアルNORが使用され得る。
図20は、一実施形態による、物理複製困難関数(PUF)2005を使用して、ID(例えばコンピューティングデバイス141のUDS)を生成するために使用されるコンピューティングデバイス141を示す。より具体的には、値は、PUF2005により提供される。この値は、鍵導出関数(KDF)2007への入力として提供される。KDFからの出力は、デバイスシークレット149として格納される。
一実施形態では、デバイスシークレット149は、DICE-RIoTプロトコルで使用されるUDSである。前述と同様に、UDSは、ホストデバイス151に送信する三要素を生成するための基礎として使用され得る。この三要素は、コンピューティングデバイス141との安全な通信のために、ホストデバイス151が使用し得る公開鍵を含む。
一実施形態では、デバイスシークレットの生成は、ホストインターフェース2009を介してホストデバイス151からコマンドを受信したことに応じて実行される。一実施例では、コマンドは置換コマンドである。一実施例では、コマンドは、秘密鍵を使用してホストデバイス151により署名された署名を伴う。デバイスシークレットを生成した後、確認メッセージがホストインターフェース2009を介してホストデバイス151に送信される。
一実施形態では、コンピューティングデバイス141は、秘密鍵2013を格納する。例えば、秘密鍵2013は、ホストデバイス151と共有され得る。一実施例では、ホストデバイス151は、秘密鍵2013を使用して、置換コマンドと共に送信される署名に署名する。
一実施形態では、KDF2007は、メッセージ認証コードである。秘密鍵2013は、デバイスシークレットを生成する時に、KDF2007への鍵入力として使用される。PUF2005からの値は、KDF2007へのデータ入力として使用される。
鮮度機構は、単調カウンタ2003を使用して、コンピューティングデバイス141で実施される。単調カウンタ2003は、ホストデバイス151との安全な通信で鮮度として使用する値を提供し得る。
一意的な識別子(UID)2001は、コンピューティングデバイス141のメモリに格納される。例えば、UID2001は、工場で投入される。
一実施形態では、コンピューティングデバイス141は、周知のUDS(例えば自明のUDS=0x00000…000または同様のもの)と共に、顧客に渡される。顧客は、その工場内のホストデバイス151を使用して、コンピューティングデバイス141が新たなUDS(例えばUDS_puf)を自己生成するように要求する。このステップは、認証済みコマンドを使用して実行され得る。秘密鍵2013を知っている顧客またはホストデバイスのみが、この動作を実行することができる(例えば秘密鍵2013は、より一般的に、コンピューティングデバイス141が対応する認証済みコマンドセットを管理するために使用され得る)。
UDS_pufが生成されると、それを使用して、元の(自明の)UDSが置き換えられる。置き換えは、認証済みコマンドを使用して行われる。外部ホストデバイス(顧客)はUDS_pufを読み出すことができる。
生成されたUDS_pufを使用して、DICE-RIoTプロトコルが実施され得る。例えば、IDコンポーネント147及びIDコンポーネント107について前述されたのと同様に、FDSは、UDS_pufを使用して計算され得る。一実施例では、FDS=HMAC-SHA256[UDS,SHA256(“L1のID”)]である。
さらに、識別子、証明書、及び鍵を含む三要素(例えばKL1)は、図1について前述されたのと同様に、UDS_pufを使用して生成され得る。ホストデバイスは、鍵(例えばKL1public)を使用して、コンピューティングデバイス141と信頼できる通信を行う。
一実施形態では、アプリケーションボードの初めての使用時に、またはスケジュールされたイベントもしくは所定のイベントが発生した(例えば更新などのコンピューティングデバイスの構成として、顧客によりスケジュール/特定され、メモリ145に格納されたイベントが発生した)現場で、コンピューティングデバイス(例えばプロセッサを含むアプリケーションボード)により、上記のID生成機構が自動的に実行され得る。
一実施形態では、ID自己生成は、以下のように実行される。コンフィギュレータホストデバイス(例えばソフトウェアを備えたラップトップ)は、自律走行車両バスに接続されたコンピューティングデバイスに接続される(例えば安全な無線インターフェースなどを使用して)。ホストデバイスは、認証済みコマンドを使用して、コンピューティングデバイスがUDS(例えばUDSPUF)を自己生成するように要求する。認証は、秘密鍵2013に基づく(例えば秘密鍵は製造業者により投入され、安全なインフラストラクチャで顧客に提供され得る)。
認証済みコマンドの実行は、認証済み応答(例えば図20に示される「確認」)で確認される。UDSPUF生成の終了時に、ホストデバイスは、セキュアプロトコルを使用して生成されたUDSPUFを通知される(例えば単調カウンタ2003により提供される鮮度を使用して、安全な有線及び/または無線ネットワーク(複数可)を介して送信することにより)。
一実施形態では、ホストインターフェース2009は、認証済みのリプレイ保護コマンドに対応するコマンドインターフェースである。一実施形態では、認証は、秘密鍵(例えば秘密鍵2013)に基づいて、MACアルゴリズム(例えばHMAC)を使用する。一実施例では、コマンドオペコード、コマンドパラメータ、及び鮮度に基づく署名を含むID生成コマンドが、ホストデバイス151から受信される。一実施例では、署名=MAC(オペコード|パラメーター|鮮度、秘密鍵)である。
一実施形態では、コンピューティングデバイス141は、署名を含むID生成確認を提供する。一実施例では、署名=MAC(コマンド結果|鮮度、秘密鍵)である。
一実施形態では、秘密鍵2013は、工場で投入される。一実施例では、秘密鍵は、対称的であり得る(例えばHMAC-SHA256に基づく)。別の実施例では、秘密鍵は、非対称スキーム(例えばECDSA)を使用し得る。
デバイスシークレット149(例えばUDSPUF)は、様々なオプションを使用して生成され得る。例えば、生成フローが有効化されると、適切な認証済みのリプレイ保護コマンドを使用して、以下のように選択されたコマンドオプションに従って、UDSPUFが生成される。
オプション#1:PUFパターンからの少なくとも1つの値(時に「PUF RAW」と称される)(また時にUDSRAWと表示される)が読み出され、KDF2007(鍵導出関数)(例えばSHA256)に提供される。このようなプロセスの結果が、最後鍵である。よって、UDSPUF=KDF(UDSRAW)である。
オプション#2:PUF RAWパターン(UDSRAW)が読み出され、UDSPUFは、UDSPUF=KDF(UDSRAW|UID)で計算され、UIDは、全てのデバイスに割り当てられた一意的な公開IDである(いくつかの事例では、UIDは、セキュリティで保護されていないデバイスにも割り当てられ得る)。一実施形態では、UID2001は、KDFへの入力として使用される。
オプション#3:PUF RAWパターン(UDSRAW)が読み出され、UDSPUFは、UDSPUF=KDF(UDSRAW|UID|HASH(ユーザパターン))で計算され、ユーザパターンは、ID自己生成を要求するコマンドペイロードでホストにより提供される。
オプション#4:PUF RAWパターン(UDSRAW)が読み出され、UDSPUFは、UDSPUF=KDF(UDSRAW|UID|HASH(ユーザパターン)|鮮度)で計算され、鮮度は、例えばコマンドペイロードで提供される鮮度である。
より一般的には、UDSは、UDSPUF=KDF[(ホストデバイスにより提供される情報|デバイス内に存在する情報)]で計算される。KDF関数は、単純なHASH関数(例えばSHA256)、または秘密鍵を使用するMAC関数(例えばHMAC-SHA256)として、使用され得る。
一実施例では、MAC関数がKDFとして使用される場合、使用される秘密鍵は、認証済みコマンドを提供するために使用される鍵と同じである。デバイスシークレット(例えばUDS)は、次のオプションのうちの1つを使用して生成され得る。
オプション#5:UDSPUF=MAC[Secret_Key,(UDSRAW)]
オプション#6:UDSPUF=MAC[Secret_Key,(UDSRAW|UID)]
オプション#7:UDSPUF=MAC[Secret_Key,(UDSRAW|UID|HASH(ユーザパターン))]
オプション#8:UDSPUF=MAC[Secret_Key,(UDSRAW|UID|HASH(ユーザパターン)|鮮度)]
より一般的には、UDSPUF=MAC[Secret_Key,(ホストから提供された情報|デバイスに存在する情報)]である。
上記のように、UDSPUFは、生成された後、ホストデバイス151に通信され得る。一実施形態では、ホストデバイス151は、UDSPUFを直接読み出すことができる。UDSPUFは、所定の回数(例えば1回または数回)のみ読み出すことができる。一実施例では、下記の図21で説明されるプロセスが使用され得る。UDSPUFを所定の回数読み出した後、読み出し機構は永続的に無効化される。例えば、この手法は、安全な環境で(例えば顧客の工場でコンピューティングデバイス141を使用してコンピューティングシステムまたは他の製品を組み立てる時に)使用され得る。
一実施例では、UDSPUFは、ホストデバイス151から受信した公開鍵を使用してコンピューティングデバイス141により暗号化され、UDSPUFはその後、ホストデバイス151に送信される。この手順の後、UDSPUF読み出し機構は、永続的に無効化される。
別の実施形態では、コンピューティングデバイス141は、難読化処理モジュール2011を含む。難読化処理モジュール2011は、図15の難読化処理モジュール630、または図19の難読化処理モジュール630の例である。
一実施形態では、UDSPUFは、ホスト公開鍵で暗号化され、ホストデバイスに通信され、ホストデバイスは、その対応する秘密鍵を使用して、それを復号化する。ホスト公開鍵は、特定の通信セットアップフェーズ中に、コンピューティングデバイス141に通信される。一実施形態では、UDSPUFの共有は、認証済みコマンドを使用した直接読み出し動作により行われ得、所定回数(例えば通常は1回のみ)の読み出しの後、このような読み出し動作は、永久に無効化される。コンピューティングデバイス141は、UDS鍵を耐タンパ領域に格納する。また内部(コンピューティングデバイス)での使用にUDS鍵を使用するたびに、情報漏洩を回避するために難読化機構が使用される(例えばハッカーが電流プロファイルまたは電圧波プロファイルを分析するなどして、格納されたUDS鍵をハッカーが推測する可能性を回避することにより)。例えば、使用される難読化機構は、図15、図18、図19で前述されたものであり得る。
一実施形態では、コンピューティングデバイス141は、暗号化されたデバイスシークレットをホストデバイス151に送信する前に、デバイスシークレットを難読化する。
図21は、一実施形態による、システムの単調カウンタが提供する初期値を、システムの改竄が起こったか否かの判定に使用するために送信するシステムを示す。一実施例では、システムは、図20のコンピューティングデバイス141である。
いくつかの実施形態では、システムは、秘密鍵を使用して、他のデバイス(例えばホストデバイス151)と安全な通信を行う。秘密鍵は生成され、システムに格納される(例えばシステムボードの最初の組み立て後、工場での鍵投入により)。システムの単調カウンタを使用して、初期値が提供される。
別の実施形態では、秘密鍵は、DICE-RIoTプロトコルで使用されるUDSである。秘密鍵は、ホストデバイス(例えばホストデバイス151)からのコマンドに応じて生成される。
一実施形態では、初期値は、電子通信により、物理システムの対象受取側に送信される(例えば物理システムが受取側の場所に物理的に移送された後に、受取側は初期値を受信する)。システムを受け取った後に、受取側は単調カウンタから出力値を読み出す。受取側は、(例えば以前に初期値を受信した受取側のコンピューティングデバイスまたはサーバを使用して)初期値と出力値を比較して、システムで改竄が発生したか否かを判定する。一実施例では、改竄は、システムを物理的に移送している間に侵入者がシステムの秘密鍵にアクセスする不正な試みである。
一実施形態では、秘密鍵は、例えば真のRNG(乱数生成器)またはPUFを使用して生成され得る、または前もって工場のような安全な環境でシステム(メモリ)に投入され得る。
一実施形態では、生成された鍵は、単調カウンタの初期値に対応付けられる。システムの受取側は、初期値を使用して、格納された鍵に不正にアクセスする試みがあったか否かを判定する。一実施形態では、鍵投入プロセスは、物理複製困難関数(PUF)からの出力を使用して、鍵を格納するコンピューティングデバイスの電源投入サイクルごとに鍵を生成し得る。
より具体的には、図21は、一実施形態による、単調カウンタ355が提供する初期値を、システム351の改竄が起こったか否かの判定に使用するために送信するシステム351を示す。例えば、システム351を物理的に移送している間に、格納された鍵への不正アクセスを求めるハッカーによりシステム351が改竄されたか否かが判定され得る。一実施例では、システム351は、不揮発性メモリ306、プロセッサ(複数可)304、単調カウンタ(複数可)355、及び電源318を含むシステムボードである。
プロセッサ304の制御下で、1つ以上の鍵314が生成される。不揮発性メモリ306は、生成された鍵を格納するために使用される。不揮発性メモリ306は、例えば、不揮発性メモリデバイス(例えば3Dクロスポイントストレージ)である。
単調カウンタ355は、初期値を提供するために初期化される。この初期値は、格納された鍵314に対応付けられる。初期値は、プロセッサ304により、外部インターフェース312を介して別のコンピューティングデバイスに送信される。例えば、初期値は、製造及び鍵投入が完了した後に、システム351の出荷先である受取側のサーバに、送信され得る。
システム351が受取側により受け取られると、受取側のコンピューティングデバイスは、初期値を特定する。例えば、コンピューティングデバイスは、上記のように送信された時に受信した初期値を、メモリに格納し得る。コンピューティングデバイスは、単調カウンタ355から出力値を読み出す。この出力値は初期値と比較されて、システム351に改竄があったか否かが判定される。
一実施形態では、受取側のコンピューティングデバイスは、単調カウンタ355を増加させる原因となったイベントの発生数を特定する。例えば、単調カウンタ355からの出力値は、システム351の各電源投入動作(例えば電源318を監視することにより検出される)で増分するように構成され得る。単調カウンタ355からの出力値は、付加的及び/または代替的に、格納された鍵314の読み出しアクセスを行う試みごとに、増分するように構成され得る。
例えば、単調カウンタを増分させる既知のイベントの数を追跡することにより、この既知のイベントの数に基づいて、送付側から受信した初期値は調整され得る。次に、調整された初期値は、単調カウンタ355から読み出された出力値と比較される。値が一致する場合、改竄は発生していない。値が一致しない場合、コンピューティングデバイスは、改竄が検出されたと判定する。
改竄が検出されたという判定に応じて、システム351の1つ以上の機能が無効化され得る。一実施形態では、プロセッサ304は、改竄が検出されたという表示を含む、受取側のコンピューティングデバイスからの通信を受信する。通信の受信に応じて、プロセッサ304は、システム351の少なくとも1つの機能を無効化する。一実施例では、無効化される機能は、格納された鍵314への読み出しアクセスである。
一実施形態では、システム351は、単調カウンタ355から出力されるカウンタ値が所定の最大値を超えることがないように構成され得る。例えば、各カウンタ値が単調カウンタ355から読み出される時、カウンタ値が所定の最大値を超えるか否かの判定が行われる。カウンタ値が所定の最大値を超える場合、格納された鍵314への読み出しアクセスは、永久に無効化され得る(例えばプロセッサ304の制御下で)。
一実施形態では、システム351は、半導体ダイ上に具現化される。別の実施形態では、システム351は、システムボード上に形成される。アプリケーションは、システムメモリ353に格納され、プロセッサ304により実行される。アプリケーションの実行は、システム351の電源投入後に行われる。例えば、システム351の受取側は、システムに改竄が発生していないと判断した後に、アプリケーションを実行し得る。
一実施形態では、鍵314は、1つ以上の物理複製困難関数(PUF)からの出力値を使用して生成される。例えば、鍵は、システム351の電源投入サイクルごとに生成される。別の実施例では、鍵314は、外部インターフェース312を介してホストデバイスから受信した置換コマンドに応じて生成されたUDSである。
一実施形態では、システム351は、鍵314を格納するコントローラである。外部インターフェース312を使用して、単調カウンタ355からの初期値が、コントローラと同じシステムボード上の外部不揮発性メモリデバイス(図示せず)に送信される。外部不揮発性メモリデバイスは、単調カウンタ355から出力値を読み出して、出力値をシステム351から受信した初期値と比較することにより、改竄が発生したか否かを判定する。
一実施形態では、システムメモリ353は、揮発性メモリ308及び/または不揮発性メモリ306を含む。暗号化モジュール316は、鍵314(例えば対称鍵)を使用して、外部インターフェース312を介した安全な通信のための暗号化動作を実行するために使用される。
ここで、秘密鍵の共有について、さらなる様々な実施形態で説明される。安全な通信チャネルは、通信に参加する関係者間での鍵共有により築かれる。トラステッドプラットフォームモジュールボードで使用されるコンポーネントには、例えば公開鍵暗号化などのスキームを実施するのに十分な処理能力がないことが多い。
一実施形態では、1つ以上の秘密鍵は、デバイス/ボード製造業者とOEM/最終顧客との間で共有される。また、必要に応じて、現場での同じボード内の異なるデバイス間で、鍵が共有され得る。上記で論述されたように、1つ以上の単調カウンタが安全なデバイス内で使用される。
一実施例では、デバイスが工場または製造業者のテストラインを離れる前に、デバイス機能及びユーザのニーズに応じて、1つ以上の秘密鍵がデバイス内に投入される(例えば1つ以上の秘密鍵、Secret_Keyであって、k=1、…、N)。
デバイス機能及びユーザのニーズに応じて、1つ以上の単調カウンタが初期化される(N個(N≧1)の異なるMTC→MTCk=0)。単調カウンタ(MTC)は、システム/デバイスの電源投入が生じた時はいつでも、及び格納された秘密鍵が読み出される(試みの)時はいつでも、出力値を増分するように構成される。
各MTCの値は、公開され、顧客と共有され得る(例えばMTCとして)。コマンドシーケンス(例えばシステム設計者が任意に決定したもの)は、デバイスから鍵を読み出すために使用され、コマンドシーケンスは、公開されてもよい(例えば方法の強度は、読み出しプロトコルの機密性には基づかない)。
一実施形態では、秘密鍵ごとに専用MTCを使用する必要はない。これは、使用されるセキュリティサービスの種類によって異なり得る。例えば、いくつかの鍵を一緒に読み出すことができ、それに必要なMTCは1つだけである。
一実施形態では、受取側(例えば顧客/ユーザ)の場所にシステムが到着した後に、いくつかの動作が実行される。受取側のコンピューティングデバイスは、最初に、単調カウンタ(複数可)355の初期値(複数可)を特定する。例えば、MTC=(MTCの値が取得される(例えばデバイスが工場から出荷される時に書き込まれ送信された初期値)。MTC値は、MTCまたは対応付けられた鍵ごとに、異なり得る。
次に、受取側の顧客/ユーザは、システム351の電源を入れる。最初に対応される動作は、MTC値の読み出しである。各MTC値が、予想(受信)初期値[例えば、MTC=(MTC+1)]と一致する場合、デバイスは、物理的配送中または他の移送中に電源投入されていなかったと判定され、システム351は本物である(及び改竄されていない)とエンドユーザ/顧客により見なされる。
1つ以上の値が一致しない場合は、改竄が発生していた。例えば、権限のない人が、デバイスの電源を入れ、格納された鍵を読み出そうと試みた。改竄が発生していた場合、デバイスは破棄され、さらなる技術的なセキュリティ問題を回避するために、改竄の通知が送付側(例えば移送会社)に伝えられる。
別の実施形態では、複数の読み出し動作は、システム351の受取側により実行される。例えば、デバイスは工場から出荷され、顧客/OEMに到着する。顧客は、1つ以上の鍵を読み出し、関連MTCは1つ増分される。増分されたMTCが、シリコン工場(送付側)により事前に設定された値(MTCj MAX)を超えた場合、鍵(Secret_Key)の読み出しは、永続的に無効化される。
この実施例では、MTCj MAXは、MTCごとに送付側と顧客が合意した所定の最大値である。この方法により、MTC値の読み出しを確認または実行できた後に/できる前に、鍵の読み出しを1回以上試行することが可能となる。これにより、例えば、いずれの不正アクセスも検出が可能となり、また同時に、OEM/顧客が、鍵の読み出しを無効化される前に数回実行できるようになる。
読み出しプロセス中に、1つ以上のMTCに予期しない値がある場合(例えば既知の読み出し及び電源投入動作の回数を調整した後で、初期値と読み出し値が一致しない場合)、デバイスは破棄される。一実施形態では、全ての鍵が一旦読み出されると、関連するMTCは、クリーンアップされ、他の目的で再利用され得る(例えば暗号処理機能など、システム設計者が構成し望むように)。
別の実施例では、デバイス/ボードの使用状況が監視される。この実施例では、安全なデバイスに既に存在する(例えば暗号化モジュール316が使用するために存在する)単調カウンタを使用する。デバイスがシリコン工場から出荷される前に、テストラインで次のことが実行される。M個(M≧1)の異なるMTCを初期化してMTC=0にする。このようなMTCカウンタは、デバイスの電源が投入されるたびに増分される。各カウンタは、ゼロ(または必要に応じて別の初期値)に初期化され得る。
受取側のエンドユーザは、受信したMTC値を使用して、システム351に関する様々な情報を取得し得、情報は、例えば、コンポーネント/ボードの不正使用検出、コンポーネントがはんだ除去され、ハッキングするためにボード外で使用されたという判断、顧客のサービスに基づいて料金体系(fee mechanism)を実施するための電源サイクルカウント、デバイスボードの保証ポリシー、及び電力損失などが挙げられる。
一実施形態では、料金体系を実施することは、特定の使用に値を対応付けることを含む。アプリケーションが顧客に提供され得、顧客は、特定の使用をロック解除するために、料金を支払う必要がある。
一実施形態では、秘密鍵は、同じシステムボード上の異なるデバイス間で共有される(例えばエンドユーザが使用する時、現場で共有される)。鍵は、同じボード上のコンポーネント間(例えばプロセッサ間)で交換することにより、共有される。
一実施形態では、1つ以上の単調カウンタ(MTCk)のそれぞれは、その初期値がゼロに設定されることで、初期化される。一実施例では、MTCk=0を設定する場合、MTCkは、数字kで示される特定の鍵に対応付けられたカウンタである。MTCk=0は、カウンタの初期値がゼロであることを示す。各kは、デバイスに格納された内部鍵の数に対応するカウンタ数のうちの1つを示す。各カウンタの値は、デバイスの不揮発性メモリ領域に格納される。
一実施形態では、デバイスの電源投入(時にパワーアップとも称される)が検出される。デバイスには、電源の値を測定するための内部回路が含まれる。電源が特定の閾値を超えると、回路は、内部信号をトリガーして、電源投入イベントの存在(検出)を示す。この信号により、単調カウンタの増分が引き起こされ得る。
一実施形態では、秘密鍵を読み出す試みが検出される。カウンタ(MTCk)は、電源が検出されるたびに増分され(上記のように)、さらに、鍵を読み出すコマンドシーケンスがデバイスインターフェースにより認識されるたびに増分される。デバイスの出荷が完了した時に初期MTCk値を知ることにより、デバイスの最終的な受取側(例えばエンドユーザ/顧客)は、デバイス(及びカウンタ)のステータスを知ることができる。よって、移送中にデバイスの電源を投入する及び/またはデバイスを読み出す試みがあった場合、各MTCkに格納されたカウンタ値に変動が生じる。
一実施形態では、コマンドシーケンスを使用して、デバイスから鍵が読み出される。例えば、デバイスは、他のコンピューティングコンポーネントまたはデバイスからのコマンドを受け入れる外部インターフェースを有する。鍵は、最大カウンタ値に達するまで読み出すことが可能である。一実施例では、デバイスはインターフェースに、コマンド(例えば0x9b)+引数(0x34)+署名というシーケンスを有する。デバイスは、鍵が読み出され、出力で提供されることを把握する。
一実施形態では、デバイスのテスト後(例えば最初の工場における)、各鍵のMTCkは、初期化での初期値を有する。よって、例えば、k=3の場合、MTC0=20d、MTC1=25d、MTC2=10となる。値MTC0、MTC1、MTC2は、初期値のセットとして顧客に送られる/送信される。顧客がデバイスを受け取ると、顧客は、コマンドシーケンスを使用して値を読み出す。次に、顧客(例えばコンピューティングデバイスを使用する顧客)は、出荷中にデバイスが侵害されたかを判定する。一実施例では、単調カウンタ値は、上記で説明されたコマンドシーケンスを使用して、読み出される。
一実施形態では、所定の最大カウンタ値は、事前に設定される。例えば、最大値の事前設定は、顧客の手順に基づいて選択され得る。例えば、顧客が鍵を10回読み出したいと想定する。また、MTCkは電源が投入された時にのみ増分し、MTC0(電源投入にのみ対応付けられる)とMTC1(鍵読み出しコマンド手順にのみ対応付けられる)の2つのカウンタが存在すると想定する。工場でのテスト後、MTC0及びMTC1の値の監視に基づいて、MTC0=30、MTC1=25が検出される。一実施例では、内部閾値は、MTC0では40に、MTC1では35に設定される。
一実施形態では、鍵に対応付けられたMTCは、電源投入及び鍵を読み出す試みにより増分する。2つのイベントのうちのいずれかが発生するたびに、MTCは増分する。
一実施形態では、単調カウンタは、格納された鍵の最終読み出し後に、クリーンアップされる(及び任意で、デバイス上の他の処理に再利用され得る)。システム設計者は、必要に応じてこれを構成し得る。例えば、悪意のあるイベントの検出器としてMTC集計を行う目的が不要になった時に、最終的な読み出しが行われる。これにより、カウンタは、リソースとしては解放され、他の目的で使用することができ、またはカウンタは、集計し続け得る。
一実施形態では、単調カウンタを使用して、はんだ除去されたコンポーネント、料金体系の実施、保証の実施など、様々な種類の情報が取得され得る。カウンタ値の増分は外部からトリガーされ得るため、カウンタを使用して、様々な種類の発生を監視することができる。
一実施形態では、複数鍵読み出しオプションが提供される。一実施例では、MTC値の初期化に関して(鍵に対応付けられたMTCkに関して)、コンポーネントの受取側及び/または最終ユーザによる各鍵の読み出しを可能にするように、最大閾値が設定される。複数読み出しオプションにより、特定の鍵の最大読み出し試行回数(鍵ごとに異なり得る)に応じて、閾値を変更することが可能となる。
一実施形態では、様々な種類のデバイスが上記の方法を使用し得る。例えば、CPUまたはMCUは通常、外部アクセスではアクセス不可能な内部ハードウェアセキュリティモジュールを有する。一実施例では、正しく動作するためには、同じ鍵がデバイスまたはコンポーネントに格納される必要がある(例えば対称鍵手法が使用される場合)。このような事例では、CPU/MCUは、許可されたエンティティ、デバイス、またはコンポーネントへの鍵の配布/共有の恩恵を受けられる。この共有により、鍵の読み出しが可能となる(例えばこの共有はMTCk閾値の値のプログラミングに対応する)。
一実施形態では、上記の方法は、顧客のファームウェア投入に使用される。例えば、上記の方法により、重要なコンテンツをデバイスの内部(例えばアプリケーションファームウェア)に格納し、セキュリティで保護されていない環境でデバイスの移動を実施すること(ファームウェア/デバイスの整合性を損なうことなく)が可能となる。一実施例では、ファームウェア投入の場合、移送中のMTCkカウンタ値の予期しない変更が、ファームウェアの侵害が発生したことを示すインデックスとして使用される。
図22は、一実施形態による、物理複製困難関数(PUF)を使用してコンピューティングデバイスのIDを生成する方法を示す。例えば、図22の方法は、図20のシステムで実施され得る。
図22の方法は、ハードウェア(例えば処理デバイス、回路、専用論理、プログラマブル論理、マイクロコード、デバイスのハードウェア、集積回路など)、ソフトウェア(例えば処理デバイスで稼働するまたは実行される命令)、またはこれらの組み合わせを含み得る処理論理により実行され得る。いくつかの実施形態では、図22の方法は、図20のプロセッサ143により少なくとも部分的に実行される。
プロセスの順序は、特定の連続または順番で示されるが、特に指定がない限り、変更してもよい。従って、示される実施形態は、例としてのみ理解されるべきであり、示されるプロセスは、異なる順序で実行されてもよく、いくつかのプロセスは、並行して実行されてもよい。さらに、様々な実施形態では、1つ以上のプロセスが省略されてもよい。従って、全ての実施形態において全プロセスが必要とされるわけではない。他のプロセスフローも可能である。
ブロック2211にて、少なくとも1つの値が、少なくとも1つの物理複製困難関数(PUF)により提供される。例えば、PUF2005は、出力として値を提供する。
ブロック2213にて、鍵導出関数(KDF)を使用して、デバイスシークレットが生成される。少なくとも1つのPUFにより提供される少なくとも1つの値は、KDFへの入力として使用される。例えば、PUF2005からの出力は、KDF2007への入力として使用される。
ブロック2215にて、生成されたデバイスシークレットが格納される。例えば、KDF2007は、デバイスシークレット149として格納される出力を生成する。
一実施形態では、方法は、コンピューティングデバイスにより、デバイスシークレット(例えばデバイスシークレット149として格納されるUDS)を生成することであって、当該生成することは、少なくとも1つの物理複製困難関数(PUF)により、少なくとも1つの値を提供することと、鍵導出関数(例えばKDF2007)を使用して、デバイスシークレットを生成することであって、少なくとも1つのPUFにより提供される少なくとも1つの値はKDFへの入力である、デバイスシークレットを生成することと、を含む、当該生成することと、生成されたデバイスシークレットをコンピューティングデバイスのメモリに格納することと、を含む。
一実施形態では、生成されたデバイスシークレットを格納することは、メモリに前に格納されたデバイスシークレットを、生成されたデバイスシークレットで置き換えることを含む。
一実施形態では、KDFは、ハッシュまたはメッセージ認証コードである。
一実施形態では、方法はさらに、ホストデバイスと通信するのに使用する秘密鍵を格納することを含み、KDFは、メッセージ認証コード(MAC)であり、少なくとも1つのPUFにより提供される少なくとも1つの値は、MACへの第1の入力であり、秘密鍵は、MACへの第2の入力である。
一実施形態では、デバイスシークレットは、イベントに応じて生成され、イベントは、コンピューティングデバイスによりホストデバイスからコマンドを受信することである。
一実施形態では、方法はさらに、ホストデバイスからホスト公開鍵を受信することと、ホスト公開鍵を使用して、生成されたデバイスシークレットを暗号化することと、暗号化されたデバイスシークレットをホストデバイスに送信することと、を含む。
一実施形態では、方法はさらに、暗号化されたデバイスシークレットをホストデバイスに送信した後、メモリ内のデバイスシークレットへの読み出しアクセスを永続的に無効化することを含む。
一実施形態では、方法はさらに、暗号化されたデバイスシークレットをホストデバイスに送信する前に、デバイスシークレットを難読化することを含む。
一実施形態では、方法はさらに、コンピューティングデバイスにより秘密鍵(例えば秘密鍵2013)をメモリに格納することを含み、コマンドは、コンピューティングデバイスによりメッセージ認証コード(MAC)を使用して認証され、秘密鍵は、MACへの入力として使用される。
一実施形態では、ホストデバイスは、コマンドを認証するための署名を送信し、署名は、MACを使用して生成され、ホストデバイスにより生成される鮮度は、MACへの入力として使用される。
一実施形態では、鮮度は、KDFへの追加の入力である。
一実施形態では、ホストデバイスは、コマンドと共にユーザパターンを提供し、ユーザパターンのハッシュは、KDFへの追加の入力である。
一実施形態では、方法はさらに、デバイスシークレットを生成する前に、コンピューティングデバイスによりコマンドを認証することを含む。
一実施形態では、方法はさらに、コンピューティングデバイスの一意的な識別子を格納することを含み、一意的な識別子は、KDFへの追加の入力である。
一実施形態では、デバイスシークレットは、イベントに応じて生成され、イベントは、コンピューティングデバイスによる、コンピューティングシステムの使用の検出である。
一実施形態では、使用とは、コンピューティングシステムによるアプリケーションの実行である。一実施形態では、使用とは、ブートローディングプロセスの開始である。
一実施形態では、デバイスシークレットは、イベントに応じて生成され、イベントは、時間スケジュールされたイベントである。
一実施形態では、システムは、少なくとも1つのプロセッサと、命令を含むメモリと、を備え、命令は、少なくとも1つのプロセッサに指示して、デバイスシークレットを生成することであって、当該生成することは、少なくとも1つの物理複製困難関数(PUF)により、少なくとも1つの値を提供することと、鍵導出関数(KDF)を使用して、デバイスシークレットを生成することであって、少なくとも1つのPUFにより提供される少なくとも1つの値はKDFへの入力である、デバイスシークレットを生成することと、を含む、当該生成することと、生成されたデバイスシークレットをコンピューティングデバイスのメモリに格納することと、を実行させるように構成される。
一実施形態では、命令はさらに、少なくとも1つのプロセッサに指示して、ホストデバイスから置換コマンドを受信することと、生成されたデバイスシークレットを使用して生成された公開識別子をホストデバイスに送信することと、を実行させるように構成され、デバイスシークレットは、置換コマンドの受信に応じて生成され、生成されたデバイスシークレットを格納することは、前に格納されたデバイスシークレットを、生成されたデバイスシークレットで置き換えることを含む。
一実施形態では、非一時的コンピュータ記憶媒体は、命令を格納し、命令は、コンピューティングデバイス上で実行されると、コンピューティングデバイスに少なくとも、少なくとも1つの物理複製困難関数(PUF)により、少なくとも1つの値を提供することと、鍵導出関数(KDF)を使用して、デバイスシークレットを生成することであって、少なくとも1つのPUFにより提供される少なくとも1つの値はKDFへの入力である、生成することと、生成されたデバイスシークレットをメモリに格納することと、を実行させる。
[結び]
非一時的コンピュータ記憶媒体を使用して、ファームウェア104の命令が格納され得る、またはプロセッサ143または処理デバイス111の命令が格納され得る。命令が、例えばメモリデバイス103のコントローラ107またはコンピューティングデバイス603のコントローラ107により実行されると、命令は、コントローラ107に、上記で論述された方法のうちのいずれかを実行させる。
この説明では、説明を簡略化するために、様々な機能及び動作は、コンピュータ命令により実行される、または引き起こされるものとして、説明され得る。しかし、マイクロプロセッサなどの1つ以上のコントローラまたはプロセッサがコンピュータ命令を実行した結果、機能が引き起こされることを、このような表現が意味することを、当業者は認識するであろう。あるいは、または組み合わせでは、ソフトウェア命令の有無にかかわらず、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)を使用するなど、専用回路を使用して、機能及び動作が実施され得る。実施形態は、有線接続回路を使用して、ソフトウェア命令なしで、またはソフトウェア命令と組み合わせて、実施され得る。従って、本技法は、ハードウェア回路とソフトウェアとのいずれかの特定の組み合わせにも、データ処理システムにより実行される命令のいずれの特定のソースにも、限定されない。
いくつかの実施形態は、完全に機能するコンピュータ及びコンピュータシステムで実施され得るが、様々な実施形態は、様々な形態のコンピューティング製品として流通されることが可能であり、使用される特定の種類の機械またはコンピュータ可読媒体に関係なく、適用することが可能であり、実際に流通を達成する。
開示される少なくともいくつかの態様は、少なくとも部分的に、ソフトウェアで具体化され得る。すなわち、本技法は、コンピュータシステムまたは他のデータ処理システムにおいて、マイクロプロセッサまたはマイクロコントローラなど、そのプロセッサに応じて実行され得、ROM、揮発性RAM、不揮発性メモリ、キャッシュ、またはリモートストレージデバイスなどのメモリに含まれる命令のシーケンスを実行する。
実施形態を実施するために実行されるルーチンは、オペレーティングシステムの一部として、または「コンピュータプログラム」と称される特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、または命令のシーケンスとして、実施され得る。コンピュータプログラムは、通常、様々な時間に設定された1つ以上の命令を、コンピュータ内の様々なメモリ及びストレージデバイスに含み、命令は、コンピュータ内の1つ以上のプロセッサにより読み出されて実行されると、様々な態様を含む要素を実行するのに必要な動作をコンピュータに実行させる。
有形の非一時的コンピュータ記憶媒体を使用して、ソフトウェア及びデータが格納され得、ソフトウェア及びデータは、データ処理システムにより実行されると、システムに様々な方法を実行させる。実行可能なソフトウェア及びデータは、例えばROM、揮発性RAM、不揮発性メモリ、及び/またはキャッシュを含む様々な場所に格納され得る。このソフトウェア及び/またはデータの部分は、これらのストレージデバイスのうちのいずれか1つに格納され得る。さらに、データ及び命令は、集中型サーバまたはピアツーピアネットワークから取得され得る。データ及び命令の異なる部分は、異なる集中型サーバ及び/またはピアツーピアネットワークから、異なる時間に、異なる通信セッションまたは同じ通信セッションで、取得され得る。データ及び命令は、その全体が、アプリケーション実行の前に取得され得る。あるいは、データ及び命令の部分は、実行に必要な時に、ちょうどいいタイミングで、動的に取得され得る。従って、データ及び命令は、その全体が、特定の時点で機械可読媒体上に存在する必要はない。
コンピュータ可読記憶媒体の例には、数ある中でも、揮発性及び不揮発性メモリデバイス、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、フラッシュメモリデバイス、フロッピー及び他のリムーバブルディスク、磁気ディスク記憶媒体、並びに光記憶媒体(例えばコンパクトディスク読み出し専用メモリ(CD ROM)、デジタル多用途ディスク(DVD)など)といった記録可能及び記録不可能な種類の媒体が挙げられるが、これらに限定されない。命令は、搬送波、赤外線信号、デジタル信号など、電気、光、音響、または他の形態の伝搬信号などの一時的媒体で、具現化され得る。一時的媒体は、通常、命令を送信するために使用されるが、命令を格納可能であるとは見なされない。
様々な実施形態では、有線接続回路をソフトウェア命令と組み合わせて使用して、本技法が実施され得る。従って、本技法は、ハードウェア回路とソフトウェアとのいずれかの特定の組み合わせにも、データ処理システムにより実行される命令のいずれの特定のソースにも、限定されない。
図面のうちのいくつかは、複数の動作を特定の順序で示しているが、順序に依存しない動作は、並べ替えられてもよく、他の動作が組み合わされても、または分割されてもよい。いくつかの並べ替えまたは他のグループ化が具体的に言及されているが、他も当業者には明らかであるため、代替形態の完全なリストの提示は行われない。さらに、段階は、ハードウェア、ファームウェア、ソフトウェア、またはこれらの任意の組み合わせで実施され得ることを、認識されたい。
上記の説明及び図面は、例示的なものであり、限定的なものとして解釈されるべきではない。完全な理解をもたらすために、多数の具体的な詳細が説明される。しかし、特定の事例では、説明が曖昧になるのを避けるために、周知または従来の詳細は説明されない。本開示における一実施形態(“one embodiment”または“an embodiment”)への言及は、必ずしも同じ実施形態への言及ではなく、このような言及は、少なくとも1つを意味する。
前述の明細書では、本開示は、本開示の特定の例示的な実施形態を参照して、説明された。下記の特許請求の範囲に記載されるより広範の趣旨及び範囲から逸脱することなく、様々な変更が本明細書に加えられ得ることは明らかである。従って、明細書及び図面は、限定的な意味ではなく例示的な意味で考えられるべきである。

Claims (20)

  1. コンピューティングデバイスにより、デバイスシークレットを生成することであって、前記生成することは、
    少なくとも1つの物理複製困難関数(PUF)により、少なくとも1つの値を提供することと、
    鍵導出関数(KDF)を使用して、前記デバイスシークレットを生成することであって、前記少なくとも1つのPUFにより提供される前記少なくとも1つの値は前記KDFへの入力である、前記デバイスシークレットを生成することと、
    を含む、当該生成することと、
    前記生成されたデバイスシークレットを前記コンピューティングデバイスのメモリに格納することと、
    を含む、方法。
  2. 前記生成されたデバイスシークレットを格納することは、前記メモリに前に格納されたデバイスシークレットを、前記生成されたデバイスシークレットで置き換えることを含む、請求項1に記載の方法。
  3. 前記KDFは、ハッシュまたはメッセージ認証コードである、請求項1に記載の方法。
  4. ホストデバイスと通信するのに使用する秘密鍵を格納することであって、前記KDFは、メッセージ認証コード(MAC)であり、前記少なくとも1つのPUFにより提供される前記少なくとも1つの値は、前記MACへの第1の入力であり、前記秘密鍵は、前記MACへの第2の入力である、前記格納することをさらに含む、請求項1に記載の方法。
  5. 前記デバイスシークレットは、イベントに応じて生成され、前記イベントは、前記コンピューティングデバイスによりホストデバイスからコマンドを受信することである、請求項1に記載の方法。
  6. 前記ホストデバイスからホスト公開鍵を受信することと、
    前記ホスト公開鍵を使用して、前記生成されたデバイスシークレットを暗号化することと、
    前記暗号化されたデバイスシークレットを前記ホストデバイスに送信することと、
    をさらに含む、請求項5に記載の方法。
  7. 前記暗号化されたデバイスシークレットを前記ホストデバイスに送信した後、前記メモリ内の前記デバイスシークレットへの読み出しアクセスを永続的に無効化することをさらに含む、請求項6に記載の方法。
  8. 前記コンピューティングデバイスの前記メモリから前記デバイスシークレットを読み出す時に、前記デバイスシークレットを難読化することをさらに含む、請求項6に記載の方法。
  9. 前記コンピューティングデバイスにより秘密鍵をメモリに格納することであって、前記コマンドは、前記コンピューティングデバイスによりメッセージ認証コード(MAC)を使用して認証され、前記秘密鍵は、前記MACへの入力として使用される、前記格納することをさらに含む、請求項5に記載の方法。
  10. 前記ホストデバイスは、前記コマンドを認証するための署名を送信し、前記署名は、前記MACを使用して生成され、前記ホストデバイスにより生成される鮮度は、前記MACへの入力として使用される、請求項9に記載の方法。
  11. 前記鮮度は、前記KDFへの追加の入力である、請求項10に記載の方法。
  12. 前記ホストデバイスは、前記コマンドと共にユーザパターンを提供し、前記ユーザパターンのハッシュは、前記KDFへの追加の入力である、請求項5に記載の方法。
  13. 前記デバイスシークレットを生成する前に、前記コンピューティングデバイスにより前記コマンドを認証することをさらに含む、請求項5に記載の方法。
  14. 前記コンピューティングデバイスの一意的な識別子を格納することであって、前記一意的な識別子は、前記KDFへの追加の入力である、前記格納すること、をさらに含む、請求項1に記載の方法。
  15. 前記デバイスシークレットは、イベントに応じて生成され、前記イベントは、前記コンピューティングデバイスによる、コンピューティングシステムの使用の検出である、請求項1に記載の方法。
  16. 前記使用とは、前記コンピューティングシステムによるアプリケーションの実行である、請求項15に記載の方法。
  17. 前記デバイスシークレットは、イベントに応じて生成され、前記イベントは、時間スケジュールされたイベントである、請求項1に記載の方法。
  18. 少なくとも1つのプロセッサと、
    命令を含むメモリと、
    を備えるシステムであって、前記命令は、前記少なくとも1つのプロセッサに指示して、
    デバイスシークレットを生成することであって、前記生成することは、
    少なくとも1つの物理複製困難関数(PUF)により、少なくとも1つの値を提供することと、
    鍵導出関数(KDF)を使用して、前記デバイスシークレットを生成することであって、前記少なくとも1つのPUFにより提供される前記少なくとも1つの値は前記KDFへの入力である、前記デバイスシークレットを生成することと、
    を含む、前記生成することと、
    前記生成されたデバイスシークレットを前記コンピューティングデバイスのメモリに格納することと、
    を実行させるように構成される、前記システム。
  19. 前記命令はさらに、前記少なくとも1つのプロセッサに指示して、
    ホストデバイスから置換コマンドを受信することと、
    前記生成されたデバイスシークレットを使用して生成された公開識別子を前記ホストデバイスに送信することと、
    を実行させるように構成され、
    前記デバイスシークレットは、前記置換コマンドの受信に応じて生成され、
    前記生成されたデバイスシークレットを格納することは、前に格納されたデバイスシークレットを、前記生成されたデバイスシークレットで置き換えることを含む、
    請求項18に記載のシステム。
  20. 命令を格納した非一時的コンピュータ記憶媒体であって、前記命令は、コンピューティングデバイス上で実行されると、前記コンピューティングデバイスに少なくとも、
    少なくとも1つの物理複製困難関数(PUF)により、少なくとも1つの値を提供することと、
    鍵導出関数(KDF)を使用して、デバイスシークレットを生成することであって、前記少なくとも1つのPUFにより提供される前記少なくとも1つの値は前記KDFへの入力である、前記生成することと、
    前記生成されたデバイスシークレットをメモリに格納することと、
    を実行させる、前記非一時的コンピュータ記憶媒体。
JP2021557290A 2019-03-25 2020-03-04 物理複製困難関数を使用したコンピューティングデバイスのidの生成 Pending JP2022527757A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/363,204 US11218330B2 (en) 2019-03-25 2019-03-25 Generating an identity for a computing device using a physical unclonable function
US16/363,204 2019-03-25
PCT/US2020/020906 WO2020197722A1 (en) 2019-03-25 2020-03-04 Generating an identity for a computing device using a physical unclonable function

Publications (1)

Publication Number Publication Date
JP2022527757A true JP2022527757A (ja) 2022-06-06

Family

ID=72607371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021557290A Pending JP2022527757A (ja) 2019-03-25 2020-03-04 物理複製困難関数を使用したコンピューティングデバイスのidの生成

Country Status (6)

Country Link
US (2) US11218330B2 (ja)
EP (1) EP3949257A4 (ja)
JP (1) JP2022527757A (ja)
KR (1) KR20210131444A (ja)
CN (1) CN113632417A (ja)
WO (1) WO2020197722A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11233650B2 (en) 2019-03-25 2022-01-25 Micron Technology, Inc. Verifying identity of a vehicle entering a trust zone
US11323275B2 (en) 2019-03-25 2022-05-03 Micron Technology, Inc. Verification of identity using a secret key
US11361660B2 (en) 2019-03-25 2022-06-14 Micron Technology, Inc. Verifying identity of an emergency vehicle during operation
US11387983B2 (en) * 2019-03-25 2022-07-12 Micron Technology, Inc. Secure medical apparatus communication
US11018861B2 (en) * 2019-04-17 2021-05-25 Piston Vault Pte. Ltd. System and method for storage and management of confidential information
US11218307B1 (en) * 2019-04-24 2022-01-04 Wells Fargo Bank, N.A. Systems and methods for generation of the last obfuscated secret using a seed
US11763008B2 (en) * 2020-01-15 2023-09-19 International Business Machines Corporation Encrypting data using an encryption path and a bypass path
US11520709B2 (en) 2020-01-15 2022-12-06 International Business Machines Corporation Memory based encryption using an encryption key based on a physical address
US11343139B2 (en) * 2020-03-23 2022-05-24 Microsoft Technology Licensing, Llc Device provisioning using a supplemental cryptographic identity
US11444771B2 (en) * 2020-09-08 2022-09-13 Micron Technology, Inc. Leveraging a trusted party third-party HSM and database to securely share a key
TWI769961B (zh) * 2020-12-11 2022-07-01 熵碼科技股份有限公司 基於物理不可複製函數的密鑰管理系統及其操作方法
CN112243011A (zh) * 2020-12-18 2021-01-19 东方微电科技(武汉)有限公司 一种签名验证方法、系统、电子设备及存储介质
US11784827B2 (en) * 2021-03-09 2023-10-10 Micron Technology, Inc. In-memory signing of messages with a personal identifier
US11650914B2 (en) 2021-08-05 2023-05-16 SK Hynix Inc. System and method for identification of memory device based on physical unclonable function
US11741224B2 (en) * 2021-09-20 2023-08-29 Intel Corporation Attestation with a quantified trusted computing base
US20220029838A1 (en) * 2021-09-22 2022-01-27 Intel Corporation Method, System and Apparatus for Protection of Multi-Die Structures
CN116451188B (zh) * 2023-06-16 2023-08-29 无锡沐创集成电路设计有限公司 一种软件程序运行安全保护方法、系统以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011123909A (ja) * 2002-04-16 2011-06-23 Massachusetts Inst Of Technology <Mit> 集積回路の認証
JP2013003431A (ja) * 2011-06-20 2013-01-07 Renesas Electronics Corp 半導体装置及び半導体装置へのデータ書き込み方法
JP2013522942A (ja) * 2010-03-11 2013-06-13 シーメンス アクチエンゲゼルシヤフト 信号の単方向伝送を保護して行う方法
WO2015001600A1 (ja) * 2013-07-01 2015-01-08 三菱電機株式会社 機器認証システム、メーカ鍵生成装置、機器鍵生成装置、製造機器、連携認証装置、機器再生鍵生成装置、機器認証方法および機器認証プログラム
WO2017077611A1 (ja) * 2015-11-05 2017-05-11 三菱電機株式会社 セキュリティ装置、及びセキュリティ方法
JP2018525920A (ja) * 2015-08-06 2018-09-06 イントリンシツク・イー・デー・ベー・ベー 物理的複製困難関数を有する暗号装置

Family Cites Families (133)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119105A (en) 1996-06-17 2000-09-12 Verifone, Inc. System, method and article of manufacture for initiation of software distribution from a point of certificate creation utilizing an extensible, flexible architecture
AUPP752398A0 (en) * 1998-12-04 1999-01-07 Collins, Lyal Sidney Secure multi-point data transfer system
AU4794101A (en) * 2000-04-11 2001-10-23 Richard M Mathis Method and apparatus for computer memory protection and verification
US20050268099A1 (en) * 2000-08-22 2005-12-01 Dallas Semiconductor Corporation Security device and method
KR100427323B1 (ko) 2001-08-31 2004-04-14 현대자동차주식회사 차고문 자동 개폐 제어장치 및 방법
US20030147534A1 (en) 2002-02-06 2003-08-07 Ablay Sewim F. Method and apparatus for in-vehicle device authentication and secure data delivery in a distributed vehicle network
US7600114B2 (en) 2002-06-28 2009-10-06 Temic Automotive Of North America, Inc. Method and system for vehicle authentication of another vehicle
US6977580B2 (en) 2002-09-26 2005-12-20 International Business Machines Corporation Apparatus, system and method of securing perimeters of security zones from suspect vehicles
US7165181B2 (en) * 2002-11-27 2007-01-16 Intel Corporation System and method for establishing trust without revealing identity
US7603557B2 (en) 2004-04-15 2009-10-13 Panasonic Corporation Communication device, communication system and authentication method
CN1973480A (zh) * 2004-04-21 2007-05-30 松下电器产业株式会社 内容提供系统、信息处理设备以及存储卡
US7573373B2 (en) 2004-08-25 2009-08-11 Hap Nguyen Anti-carjacking apparatus, systems, and methods for hi-speed pursuit avoidance and occupant safety
US7525435B2 (en) 2005-08-02 2009-04-28 Performance Partners, Llc Method, apparatus, and system for securing areas of use of vehicles
US7613891B2 (en) * 2006-05-04 2009-11-03 Intel Corporation Methods and apparatus for providing a read access control system associated with a flash device
US20100138652A1 (en) 2006-07-07 2010-06-03 Rotem Sela Content control method using certificate revocation lists
US9794247B2 (en) 2006-08-22 2017-10-17 Stmicroelectronics, Inc. Method to prevent cloning of electronic components using public key infrastructure secure hardware device
KR100823738B1 (ko) 2006-09-29 2008-04-21 한국전자통신연구원 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법
US7613915B2 (en) * 2006-11-09 2009-11-03 BroadOn Communications Corp Method for programming on-chip non-volatile memory in a secure processor, and a device so programmed
US9830637B2 (en) 2007-02-23 2017-11-28 Epona Llc System and method for processing vehicle transactions
EP2003813B1 (en) 2007-06-15 2009-03-18 NTT DoCoMo, Inc. Method and Apparatus for Authentication
CN103605936A (zh) * 2008-06-24 2014-02-26 Nds有限公司 集成电路内的安全
US8761390B2 (en) 2008-06-30 2014-06-24 Gm Global Technology Operations Production of cryptographic keys for an embedded processing device
US8484486B2 (en) * 2008-08-06 2013-07-09 Silver Spring Networks, Inc. Integrated cryptographic security module for a network node
WO2010055171A1 (en) 2008-11-17 2010-05-20 Intrinsic-Id B.V. Distributed puf
JP5390844B2 (ja) * 2008-12-05 2014-01-15 パナソニック株式会社 鍵配布システム、鍵配布方法
TWM356972U (en) 2008-12-17 2009-05-11 Univ Kun Shan Portable storage device with local and remote identity recognition function
FR2941343B1 (fr) 2009-01-20 2011-04-08 Groupe Des Ecoles De Telecommunications Get Ecole Nat Superieure Des Telecommunications Enst Circuit de cryptographie, protege notamment contre les attaques par observation de fuites d'information par leur chiffrement.
US8499154B2 (en) 2009-01-27 2013-07-30 GM Global Technology Operations LLC System and method for establishing a secure connection with a mobile device
US8184812B2 (en) 2009-06-03 2012-05-22 Freescale Semiconductor, Inc. Secure computing device with monotonic counter and method therefor
JP5612514B2 (ja) * 2010-03-24 2014-10-22 パナソニック株式会社 不揮発性メモリコントローラ及び不揮発性記憶装置
US8499155B2 (en) 2010-03-24 2013-07-30 GM Global Technology Operations LLC Adaptive certificate distribution mechanism in vehicular networks using variable inter-certificate refresh period
US8667265B1 (en) 2010-07-28 2014-03-04 Sandia Corporation Hardware device binding and mutual authentication
US20120038489A1 (en) 2010-08-12 2012-02-16 Goldshmidt Ehud System and method for spontaneous p2p communication between identified vehicles
JP2012118805A (ja) * 2010-12-01 2012-06-21 Sony Corp 情報処理装置、リムーバブルストレージ装置、情報処理方法、及び情報処理システム
US8526606B2 (en) 2010-12-20 2013-09-03 GM Global Technology Operations LLC On-demand secure key generation in a vehicle-to-vehicle communication network
US9467293B1 (en) * 2010-12-22 2016-10-11 Emc Corporation Generating authentication codes associated with devices
EP2479731B1 (en) 2011-01-18 2015-09-23 Alcatel Lucent User/vehicle-ID associating access rights and privileges
US20120183135A1 (en) 2011-01-19 2012-07-19 Verayo, Inc. Reliable puf value generation by pattern matching
KR101881167B1 (ko) 2011-06-13 2018-07-23 주식회사 케이티 차량 제어 시스템
US8924737B2 (en) 2011-08-25 2014-12-30 Microsoft Corporation Digital signing authority dependent platform secret
US8700916B2 (en) 2011-12-02 2014-04-15 Cisco Technology, Inc. Utilizing physically unclonable functions to derive device specific keying material for protection of information
JP5710460B2 (ja) 2011-12-16 2015-04-30 株式会社東芝 暗号化鍵生成装置およびプログラム
CN104115465A (zh) 2012-01-20 2014-10-22 交互数字专利控股公司 具有本地功能的身份管理
DE102012201164B4 (de) 2012-01-26 2017-12-07 Infineon Technologies Ag Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes
US8750502B2 (en) 2012-03-22 2014-06-10 Purdue Research Foundation System on chip and method for cryptography using a physically unclonable function
US9172538B2 (en) 2012-04-20 2015-10-27 T-Mobile Usa, Inc. Secure lock for mobile device
US20140006777A1 (en) * 2012-06-29 2014-01-02 Oslsoft, Inc. Establishing Secure Communication Between Networks
US10079678B2 (en) 2012-07-24 2018-09-18 Intel Corporation Providing access to encrypted data
US8525169B1 (en) * 2012-08-10 2013-09-03 International Business Machines Corporation Reliable physical unclonable function for device authentication
US9742563B2 (en) 2012-09-28 2017-08-22 Intel Corporation Secure provisioning of secret keys during integrated circuit manufacturing
KR102201062B1 (ko) 2012-10-04 2021-01-11 인트린직 아이디 비브이 물리적 복제방지 기능으로서 이용되는 메모리로부터 암호 키를 생성하기 위한 시스템
JP5967822B2 (ja) * 2012-10-12 2016-08-10 ルネサスエレクトロニクス株式会社 車載通信システム及び装置
JP5939126B2 (ja) 2012-10-17 2016-06-22 株式会社デンソー 車載装置および車両盗難防止システム
US8885819B2 (en) 2012-12-27 2014-11-11 Intel Corporation Fuse attestation to secure the provisioning of secret keys during integrated circuit manufacturing
US8938792B2 (en) * 2012-12-28 2015-01-20 Intel Corporation Device authentication using a physically unclonable functions based key generation system
JP2014158105A (ja) 2013-02-14 2014-08-28 Panasonic Corp 端末装置
US20140245010A1 (en) * 2013-02-25 2014-08-28 Kabushiki Kaisha Toshiba Device and authentication method therefor
DE102013203415B4 (de) * 2013-02-28 2016-02-11 Siemens Aktiengesellschaft Erstellen eines abgeleiteten Schlüssels aus einem kryptographischen Schlüssel mittels einer physikalisch nicht klonbaren Funktion
US9367701B2 (en) 2013-03-08 2016-06-14 Robert Bosch Gmbh Systems and methods for maintaining integrity and secrecy in untrusted computing platforms
US9858208B2 (en) 2013-03-21 2018-01-02 International Business Machines Corporation System for securing contents of removable memory
US9906372B2 (en) * 2013-06-03 2018-02-27 Intel Deutschland Gmbh Authentication devices, key generator devices, methods for controlling an authentication device, and methods for controlling a key generator
US9769658B2 (en) 2013-06-23 2017-09-19 Shlomi Dolev Certificating vehicle public key with vehicle attributes
KR101521412B1 (ko) 2013-07-11 2015-05-19 가톨릭관동대학교산학협력단 인증기반 메시지 집계 프로토콜 관리시스템
US20150256522A1 (en) 2013-09-16 2015-09-10 Clutch Authentication Systems, Llc System and method for communication over color encoded light patterns
US9992031B2 (en) 2013-09-27 2018-06-05 Intel Corporation Dark bits to reduce physically unclonable function error rates
EP3056394B1 (en) * 2013-10-08 2022-11-30 ICTK Holdings Co., Ltd. Vehicle security network device and design method therefor
US9225530B2 (en) * 2013-10-21 2015-12-29 Microsoft Technology Licensing, Llc Secure crypto-processor certification
FR3013138B1 (fr) 2013-11-12 2015-10-30 Morpho Procede et systeme de controle lors de l'acces ou la sortie d'une zone
DE102013227087A1 (de) * 2013-12-23 2015-06-25 Siemens Aktiengesellschaft Gesichertes Bereitstellen eines Schlüssels
US9647832B2 (en) * 2014-01-13 2017-05-09 Visa International Service Association Efficient methods for protecting identity in authenticated transmissions
CN104901931B (zh) 2014-03-05 2018-10-12 财团法人工业技术研究院 证书管理方法与装置
US9147075B1 (en) 2014-03-20 2015-09-29 Juniper Networks, Inc. Apparatus and method for securely logging boot-tampering actions
CN106575324A (zh) 2014-04-09 2017-04-19 有限公司Ictk 认证设备及方法
CN105337725B (zh) 2014-08-08 2019-04-23 中国科学院数据与通信保护研究教育中心 一种密钥管理装置及方法
GB2530028B8 (en) * 2014-09-08 2021-08-04 Advanced Risc Mach Ltd Registry apparatus, agent device, application providing apparatus and corresponding methods
JP6789222B2 (ja) * 2014-10-13 2020-11-25 イントリンシツク・イー・デー・ベー・ベー 物理的複製不可能関数を備える暗号デバイス
US9935937B1 (en) 2014-11-05 2018-04-03 Amazon Technologies, Inc. Implementing network security policies using TPM-based credentials
EP3823209B1 (en) 2014-11-13 2023-09-06 Panasonic Intellectual Property Corporation of America Key management method, vehicle-mounted network system, and key management device
US9740863B2 (en) 2014-11-25 2017-08-22 Intel Corporation Protecting a secure boot process against side channel attacks
US9584329B1 (en) 2014-11-25 2017-02-28 Xilinx, Inc. Physically unclonable function and helper data indicating unstable bits
US9569601B2 (en) 2015-05-19 2017-02-14 Anvaya Solutions, Inc. System and method for authenticating and enabling functioning of a manufactured electronic device
US10057224B2 (en) * 2015-08-04 2018-08-21 Rubicon Labs, Inc. System and method for initializing a shared secret system
US9604651B1 (en) 2015-08-05 2017-03-28 Sprint Communications Company L.P. Vehicle telematics unit communication authorization and authentication and communication service provisioning
US10402792B2 (en) 2015-08-13 2019-09-03 The Toronto-Dominion Bank Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers
US9917687B2 (en) 2015-10-12 2018-03-13 Microsoft Technology Licensing, Llc Migrating secrets using hardware roots of trust for devices
JP6951329B2 (ja) 2015-10-14 2021-10-20 ケンブリッジ ブロックチェーン,エルエルシー デジタルアイデンティティを管理するためのシステム及び方法
DE102015220224A1 (de) 2015-10-16 2017-04-20 Volkswagen Aktiengesellschaft Verfahren zur geschützten Kommunikation eines Fahrzeugs
DE102015220227A1 (de) 2015-10-16 2017-04-20 Volkswagen Aktiengesellschaft Verfahren und System für eine asymmetrische Schlüsselherleitung
KR101782483B1 (ko) 2015-12-03 2017-10-23 현대오토에버 주식회사 차량 애드 혹 네트워크에서의 차량 인증서 생성 방법 및 장치
JP5991561B2 (ja) 2015-12-25 2016-09-14 パナソニックIpマネジメント株式会社 無線装置
JP6684690B2 (ja) 2016-01-08 2020-04-22 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム
US10484351B2 (en) 2016-01-28 2019-11-19 Etas Embedded Systems Canada Inc. System and method for certificate selection in vehicle-to-vehicle applications to enhance privacy
DE102016205198A1 (de) * 2016-03-30 2017-10-05 Siemens Aktiengesellschaft Nachweisen einer Authentizität eines Gerätes mithilfe eines Berechtigungsnachweises
WO2017194335A2 (en) 2016-05-09 2017-11-16 Intrinsic Id B.V. Programming device arranged to obtain and store a random bit string in a memory device
EP3474488A4 (en) 2016-06-17 2019-11-06 KDDI Corporation SYSTEM, CERTIFICATION CENTER, VEHICLE-ASSEMBLED COMPUTER, VEHICLE, METHOD OF ISSUING PUBLIC KEYS AND PROGRAM
KR102562786B1 (ko) 2016-07-07 2023-08-03 엘지이노텍 주식회사 차량 운전 보조 장치 및 이를 포함하는 주차 관제 시스템
KR102598613B1 (ko) 2016-07-21 2023-11-07 삼성전자주식회사 개인 인증 및 차량 인증 기반으로 차량 정보를 제공하는 시스템 및 방법
US10390221B2 (en) 2016-07-25 2019-08-20 Ford Global Technologies, Llc Private vehicle-to-vehicle communication
US20180060813A1 (en) 2016-08-23 2018-03-01 Ford Global Technologies, Llc Autonomous delivery vehicle system
JP6479724B2 (ja) * 2016-09-02 2019-03-06 日本電信電話株式会社 秘密鍵同期システム、ユーザ端末及び秘密鍵同期方法
US10397215B2 (en) * 2016-09-27 2019-08-27 Visa International Service Assocation Secure element installation and provisioning
CN110024422B (zh) 2016-12-30 2023-07-18 英特尔公司 物联网的命名和区块链记录
PH12017000044A1 (en) 2017-02-13 2018-08-20 Samsung Electronics Co Ltd Vehicle parking area access management system and method
US12020526B2 (en) 2017-03-03 2024-06-25 Ford Global Technologies, Llc Vehicle parking control
US11341251B2 (en) * 2017-04-19 2022-05-24 Quintessencelabs Pty Ltd. Encryption enabling storage systems
US10984136B2 (en) 2017-04-21 2021-04-20 Micron Technology, Inc. Secure memory device with unique identifier for authentication
US10783600B2 (en) 2017-05-25 2020-09-22 GM Global Technology Operations LLC Method and system using a blockchain database for data exchange between vehicles and entities
JP6754325B2 (ja) 2017-06-20 2020-09-09 国立大学法人東海国立大学機構 車載認証システム、車載認証装置、コンピュータプログラム及び通信装置の認証方法
US20190027044A1 (en) 2017-07-19 2019-01-24 Aptiv Technologies Limited Automated secured-area access system for an automated vehicle
JP6773617B2 (ja) 2017-08-21 2020-10-21 株式会社東芝 更新制御装置、ソフトウェア更新システムおよび更新制御方法
GB2566265B (en) * 2017-09-01 2020-05-13 Trustonic Ltd Post-manufacture generation of device certificate and private key for public key infrastructure
JP6903529B2 (ja) * 2017-09-11 2021-07-14 株式会社東芝 情報処理装置、情報処理方法およびプログラム
US11140141B2 (en) 2017-09-18 2021-10-05 Fiske Software Llc Multiparty key exchange
JP6929181B2 (ja) * 2017-09-27 2021-09-01 キヤノン株式会社 デバイスと、その制御方法とプログラム
US10783729B2 (en) 2017-10-11 2020-09-22 Marc Chelnik Vehicle parking authorization assurance system
EP3701669B1 (en) 2017-10-22 2023-09-06 Lg Electronics, Inc. Cryptographic methods and systems for managing digital certificates
US10812257B2 (en) 2017-11-13 2020-10-20 Volkswagen Ag Systems and methods for a cryptographically guaranteed vehicle identity
WO2019124953A1 (en) 2017-12-20 2019-06-27 Lg Electronics Inc. Cryptographic methods and systems for authentication in connected vehicle systems and for other uses
US10867058B2 (en) * 2017-12-29 2020-12-15 Niall Joseph Duffy Method and system for protecting secure computer systems from insider threats
US11011056B2 (en) 2018-01-29 2021-05-18 Fujitsu Limited Fragmentation-aware intelligent autonomous intersection management using a space-time resource model
CN108683491B (zh) * 2018-03-19 2021-02-05 中山大学 一种基于加密和自然语言生成的信息隐藏方法
US10917237B2 (en) * 2018-04-16 2021-02-09 Microsoft Technology Licensing, Llc Attestable and destructible device identity
US10778661B2 (en) 2018-04-27 2020-09-15 Micron Technology, Inc. Secure distribution of secret key using a monotonic counter
US10742406B2 (en) 2018-05-03 2020-08-11 Micron Technology, Inc. Key generation and secure storage in a noisy environment
US10326797B1 (en) * 2018-10-03 2019-06-18 Clover Network, Inc Provisioning a secure connection using a pre-shared key
WO2020074934A1 (en) 2018-10-12 2020-04-16 Micron Technology , Inc. Improved vehicle communication
US11482017B2 (en) 2018-10-12 2022-10-25 Micron Technology, Inc. Method and apparatus to recognize transported passengers and goods
US10868667B2 (en) 2018-11-06 2020-12-15 GM Global Technology Operations LLC Blockchain enhanced V2X communication system and method
KR20200091689A (ko) 2019-01-23 2020-07-31 한국전자통신연구원 차량 통신을 위한 보안 관리 시스템, 그것의 동작 방법, 및 그것을 포함하는 차량 통신 서비스 제공 시스템의 메시지 처리 방법
US11271755B2 (en) 2019-03-25 2022-03-08 Micron Technology, Inc. Verifying vehicular identity
US11233650B2 (en) 2019-03-25 2022-01-25 Micron Technology, Inc. Verifying identity of a vehicle entering a trust zone
US11361660B2 (en) 2019-03-25 2022-06-14 Micron Technology, Inc. Verifying identity of an emergency vehicle during operation
US11323275B2 (en) 2019-03-25 2022-05-03 Micron Technology, Inc. Verification of identity using a secret key

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011123909A (ja) * 2002-04-16 2011-06-23 Massachusetts Inst Of Technology <Mit> 集積回路の認証
JP2013522942A (ja) * 2010-03-11 2013-06-13 シーメンス アクチエンゲゼルシヤフト 信号の単方向伝送を保護して行う方法
JP2013003431A (ja) * 2011-06-20 2013-01-07 Renesas Electronics Corp 半導体装置及び半導体装置へのデータ書き込み方法
WO2015001600A1 (ja) * 2013-07-01 2015-01-08 三菱電機株式会社 機器認証システム、メーカ鍵生成装置、機器鍵生成装置、製造機器、連携認証装置、機器再生鍵生成装置、機器認証方法および機器認証プログラム
JP2018525920A (ja) * 2015-08-06 2018-09-06 イントリンシツク・イー・デー・ベー・ベー 物理的複製困難関数を有する暗号装置
WO2017077611A1 (ja) * 2015-11-05 2017-05-11 三菱電機株式会社 セキュリティ装置、及びセキュリティ方法

Also Published As

Publication number Publication date
CN113632417A (zh) 2021-11-09
WO2020197722A1 (en) 2020-10-01
US20220078035A1 (en) 2022-03-10
US11218330B2 (en) 2022-01-04
US20200313911A1 (en) 2020-10-01
KR20210131444A (ko) 2021-11-02
EP3949257A1 (en) 2022-02-09
EP3949257A4 (en) 2022-12-21

Similar Documents

Publication Publication Date Title
US11218330B2 (en) Generating an identity for a computing device using a physical unclonable function
US11962701B2 (en) Verifying identity of a vehicle entering a trust zone
US11361660B2 (en) Verifying identity of an emergency vehicle during operation
TWI740409B (zh) 使用密鑰之身份驗證
US20130086385A1 (en) System and Method for Providing Hardware-Based Security
KR20210132721A (ko) 네트워크에 액세스 시의 보안 통신
US20200310776A1 (en) Over-the-air update validation
EP2575068A1 (en) System and method for providing hardware-based security
CN115037492A (zh) 基于在存储器装置中实施的安全特征的在线安全服务
US20230370446A1 (en) Track Activities of components in Endpoints having Secure Memory Devices via Identity Validation
CN115037494A (zh) 无需预先定制端点的云服务登入
CN115037496A (zh) 经由在线固件商店的端点定制
CN115021950A (zh) 用于端点的在线服务商店
CN115037493A (zh) 监测具有安全存储器装置的端点的完整性以用于身份认证
CN115021949A (zh) 具有被保护用于可靠身份验证的存储器装置的端点的识别管理方法和系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221227

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230718