JP2022528641A - 秘密鍵を使用したアイデンティティの検証 - Google Patents

秘密鍵を使用したアイデンティティの検証 Download PDF

Info

Publication number
JP2022528641A
JP2022528641A JP2021557289A JP2021557289A JP2022528641A JP 2022528641 A JP2022528641 A JP 2022528641A JP 2021557289 A JP2021557289 A JP 2021557289A JP 2021557289 A JP2021557289 A JP 2021557289A JP 2022528641 A JP2022528641 A JP 2022528641A
Authority
JP
Japan
Prior art keywords
key
computing device
identifier
data
certificate
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
JP2021557289A
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 JP2022528641A publication Critical patent/JP2022528641A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication 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/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/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/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
    • 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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • 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/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]

Landscapes

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

Abstract

方法は、コンピューティングデバイスによって、ホストデバイスからメッセージを受信することを含む。メッセージを受信したことに応答して、コンピューティングデバイスは、識別子、証明書、及び鍵を生成する。識別子はコンピューティングデバイスのアイデンティティに関連し、証明書はメッセージを使用して生成される。コンピューティングデバイスは、識別子、証明書、及び鍵をホストデバイスに送信する。ホストデバイスは、識別子、証明書、及び鍵を使用して、コンピューティングデバイスのアイデンティティを検証する。

Description

関連出願の相互参照
本出願は、2019年3月25日に出願され、「VERIFICATION OF IDENTITY USING A SECRET KEY」と題された、米国特許出願第16/363,196号の優先権を主張し、その開示全体が引用により本明細書に組み込まれている。
本出願は、2018年5月3日に出願され、「Key Generation and Secure Storage in a Noisy Environment」と題された、Pisasaleらによる米国非仮出願第15/970,660号に関連しており、その出願の全内容は、引用により本明細書に完全に記載されているかのように組み込まれている。
本出願は、2017年12月22日に出願され、「PHYSICAL UNCLONABLE FUNCTION USING MESSAGE AUTHENTICATION CODE」と題された、Mondelloらによる米国非仮出願第15/853,498号に関連しており、その出願の全内容は、引用により本明細書に完全に記載されているかのように組み込まれている。
本出願は、2018年4月27日に出願され、「SECURE DISTRIBUTION OF SECRET KEY USING A MONOTONIC COUNTER」と題された、Mondelloらによる米国非仮出願第15/965,731号に関連しており、その出願の全内容は、引用により本明細書に完全に記載されているかのように組み込まれている。
本明細書に開示する少なくともいくつかの実施形態は、一般に、アイデンティティ検証に関し、より詳細には、秘密鍵を使用したアイデンティティの検証に関するが、これに限定されない。
物理複製困難関数(PUF:physical unclonable function)は、たとえば、マイクロプロセッサなどの半導体デバイスの一意のアイデンティティとしての役割を果たすことができるデジタル値を提供する。PUFは、たとえば、半導体製造中に自然に生じ、本来同一の半導体チップを区別することを可能にする物理的なばらつきに基づいている。
PUFは、典型的には、暗号技術で使用される。PUFは、たとえば、物理的構造で具現化される物理的実体とすることができる。PUFは集積回路で実装されることが多く、典型的には、セキュリティ要求の高い用途で使用される。たとえば、PUFは、一意の改ざん不可能なデバイス識別子として使用することができる。PUFは、安全な鍵の生成のために、また、ランダム性のソースとして、使用することもできる。
デバイスの識別に関連する一例では、Microsoft(登録商標)Azure(登録商標)IoTプラットフォームは、Microsoftによって提供されるクラウドサービスのセットである。Azure(登録商標)IoTプラットフォームは、デバイスアイデンティティ構成エンジン(DICE:Device Identity Composition Engine)と、多くの様々な種類のハードウェアセキュリティモジュール(HSM)とをサポートする。DICEは、製造業者がシリコンゲートを使用して、ハードウェアに基づくデバイス識別情報を作成することを可能にする、デバイスの識別及びアテステーション(attestation)のためのトラステッドコンピューティンググループ(TCG)における今後の標準である。HSMは、デバイスアイデンティティを保護し、ハードウェアベースのデバイスアテステーション及びゼロタッチプロビジョニングなどの高度な機能を提供するために使用される。
DICEは、HSMフットプリントを使用して、認証、セキュアブート、及びリモートアテステーションなどのセキュリティソリューションを構築する際に使用される信頼を支えるスケーラブルなセキュリティフレームワークを提供する。DICEは、IoTデバイスを特徴付ける現在の制約のあるコンピューティング環境に有用であり、トラステッドコンピューティンググループ(TCG)のトラステッドプラットフォームモジュール(TPM)のように、より従来的なセキュリティフレームワーク標準に代わるものを提供する。Azure(登録商標)IoTプラットフォームは、一部のシリコンベンダーからのHSMにおけるDICEのHSMサポートを有する。
信頼サービスに関連する一例では、堅牢なモノのインターネット(RIoT:Robust Internet-of-Things)は、信頼サービスをコンピューティングデバイスに提供するためのアーキテクチャである。信頼サービスには、デバイスアイデンティティ、アテステーション、及びデータの完全性が含まれる。RIoTアーキテクチャを使用して、マルウェアによって危険にさらされたデバイスの信頼をリモートで再確立することができる。また、RIoTサービスは、非常に小型のデバイスにも低コストで提供することができる。
セキュリティ技術の向上により、現場の製品に対するより頻繁なソフトウェア更新の必要性が生じている。しかしながら、これらの更新は、人間の関与なしに管理及び検証しなければならない。これらの技術的な問題に対処するためにRIoTを使用することができる。
RIoTは、多くのセキュリティシナリオに対して暗号操作及び鍵管理の基盤を提供する。認証、完全性検証、及びデータ保護には、暗号化及び復号のための暗号鍵に加え、データをハッシュ化して署名するためのメカニズムが必要となる。ほとんどのインターネットに接続されたデバイスもまた、他のデバイスとの通信を保護するために暗号技術を使用している。
RIoTによって提供される暗号サービスには、デバイスアイデンティティ、データ保護、及びアテステーションが含まれる。デバイスアイデンティティに関して、デバイスは、典型的には、暗号鍵の所持を証明することによって自身を認証する。デバイスに関連付けられた鍵が抽出されてクローンされた場合、このデバイスは偽装される可能性がある。
データ保護に関して、デバイスは、典型的には、暗号技術を使用してローカルに記憶されたデータを暗号化し、その完全性を保護する。許可されたコードのみが暗号鍵にアクセス可能である場合、無許可のソフトウェアはデータの復号も変更も行うことができない。
アテステーションに関して、デバイスは、実行しているコードと、自身のセキュリティ構成とを報告する必要がある場合がある。たとえば、アテステーションは、デバイスが最新のコードを実行していることを証明するために使用される。
鍵がソフトウェアのみで管理されている場合、ソフトウェアコンポーネントのバグにより、鍵が危険にさらされる可能性がある。ソフトウェアのみのシステムの場合、鍵が危険にさらされた後に信頼を回復するための主な方法は、更新されたソフトウェアをインストールし、デバイスに新しい鍵をプロビジョニングすることである。これはサーバ及びモバイルデバイスにとって時間がかかり、デバイスに物理的にアクセスできない場合には不可能である。
安全なリモートでの再プロビジョニングのためのいくつかのアプローチは、ハードウェアベースのセキュリティを使用する。ソフトウェアレベルの攻撃により、ハッカーはハードウェアで保護された鍵を使用することはできるが、それらを抽出することはできないので、ハードウェアで保護された鍵は、危険にさらされたシステムの安全な再プロビジョニングのための有用なビルディングブロックである。トラステッドプラットフォームモジュール、すなわち、TPMは、鍵のハードウェア保護を提供し、デバイスが実行中のソフトウェアを報告(アテスト)できるようにするセキュリティモジュールの一例である。したがって、危険にさらされたTPM搭載デバイスに安全に新しい鍵を発行することができ、このデバイスはアテステーションレポートを提供することができる。
TPMはコンピューティングプラットフォームで広く利用可能である(たとえば、SoCに統合され、プロセッサモードで分離されたファームウェアTPMを使用する)。しかしながら、TPMは実用的でないことが多い。たとえば、小型のIoTデバイスは、コスト及び電力の必要性を大幅に増加させずにTPMをサポートすることができない。
RIoTは、小型のコンピューティングデバイスにデバイスセキュリティを提供するために使用することができるが、任意のプロセッサまたはコンピュータシステムに適用することもできる。RIoTコア以外のソフトウェアコンポーネントが危険にさらされた場合、RIoTは安全なパッチ適用及び再プロビジョニングを提供する。また、RIoTは、暗号鍵を保護するための異なるアプローチを使用する。RIoTフレームワークによって使用される最も保護された暗号鍵は、ブート時に短時間しか使用することができない。
実施形態は、限定ではなく例として添付図面の図に示しており、図面では、同様の参照符号は同様の要素を示す。
一実施形態による、コンピューティングデバイスのアイデンティティを検証するホストデバイスを示す図である。 一実施形態による、アイデンティティコンポーネント及び検証コンポーネントを有する例示的なコンピューティングシステムを示す図である。 一実施形態による、車両の例示的なコンピューティングデバイスを示す図である。 一実施形態による、車両の例示的なコンピューティングデバイスと通信する例示的なホストデバイスを示す図である。 一実施形態による、ホストデバイスの識別子、証明書、及び鍵を生成するアプリケーションボードを示す図である。 一実施形態による、レイヤを使用して段階的にブートする例示的なコンピューティングシステムを示す図である。 一実施形態による、非対称生成器を使用して識別子、証明書、及び鍵を生成する例示的なコンピューティングデバイスを示す図である。 一実施形態による、復号操作を使用してコンピューティングデバイスのアイデンティティを検証する検証コンポーネントを示す図である。 一実施形態による、証明書を検証するための例示的な処理のブロック図である。 一実施形態による、識別子、証明書、及び鍵を使用してコンピューティングデバイスのアイデンティティを検証する方法を示す図である。 一実施形態による、物理複製困難関数(PUF)デバイスから入力を受け取るメッセージ認証コード(MAC)の出力から一意の鍵を生成するためのシステムを示す図である。 一実施形態による、セレクタモジュールによって選択された1つまたは複数のPUFデバイスから入力を受け取るMACの出力から一意の鍵を生成するためのシステムを示す図である。 一実施形態による、1つまたは複数のPUFデバイスからの入力及びモノトニックカウンタからの入力(ならびに/あるいはNONCE、タイムスタンプなどの他のフレッシュネスメカニズムからの入力)を受け取るMACの出力から一意の鍵を生成するためのシステムを示す図である。 一実施形態による、1つまたは複数のPUFから提供される1つまたは複数の入力値を使用するMACから出力を生成する方法を示す図である。 一実施形態による、1つまたは複数のPUFデバイスからの入力及びモノトニックカウンタからの入力(ならびに/あるいはNONCE、タイムスタンプなどの他のフレッシュネスメカニズムからの入力)を受け取るMACの出力からルート鍵を生成するためのシステムであって、追加のMACを追加してセッション鍵を生成する、システムを示す図である。 一実施形態による、難読化された鍵を不揮発性メモリに記憶するためのコンピューティングデバイスを示す図である。 一実施形態による、難読化処理中に生成される中間鍵の一例を示す図である。 一実施形態による、図16の難読化処理中に生成される他の中間鍵の一例を示す図である。 一実施形態による、難読化された鍵を生成して、不揮発性メモリに記憶するための方法を示す図である。 一実施形態による、鍵注入に基づいて初期鍵を生成し、初期鍵を難読化し、難読化された鍵を不揮発性メモリに記憶するためのコンピューティングデバイスを示す図である。
本明細書の少なくともいくつかの実施形態は、1つまたは複数のコンピューティングデバイスのアイデンティティの検証に関する。様々な実施形態において、ホストデバイスは、コンピューティングデバイスにメッセージを送信することによって、コンピューティングデバイスのアイデンティティを検証する。コンピューティングデバイスは、メッセージを使用して識別子、証明書、及び鍵を生成し、これらはホストデバイスに送信される。ホストデバイスは、生成された識別子、証明書、及び鍵を使用して、コンピューティングデバイスのアイデンティティを検証する。
いくつかの例では、コンピューティングデバイスはフラッシュメモリデバイスとすることができる。いくつかの例では、フラッシュメモリを利用して、強力なレベルのセキュリティ機能をコンピューティングシステム(たとえば、自立走行車のアプリケーションコントローラ)に追加する。
フラッシュメモリは、多くのコンピュータシステムで使用されている。現在、様々なタイプのフラッシュメモリが存在し、これには、シリアルNOR、パラレルNOR、シリアルNAND、パラレルNAND、e.MMC、UFSなどが含まれる。これらのソケットは、様々な産業及び用途にわたるほとんどの組み込みシステムで使用されている。
たとえば、シリアルNORは、医療デバイス、ファクトリーオートメーションボード、自動車用ECU、スマートメーター、及びインターネットゲートウェイなどの幅広い用途で使用されている。これらの用途にわたって使用されているチップセットアーキテクチャ(プロセッサ、コントローラ、またはSoC)、オペレーティングシステム、及びサプライチェーンの多様性を考えると、フラッシュメモリは、これらのシステムの共通項(common denominator)のビルディングブロックである。
昨今のコンピュータシステムの復元力は、典型的には、デバイスに統合され、それらが提供するセキュリティ機能のソリューションによって利用される信頼の基点(roots of trust)の場所によって特徴付けられる。信頼の基点の詳細については、米国国立標準技術研究所(NIST)によって特別刊行物800-164に作成された定義を参照されたい。既存の産業では、ハードウェア機能及びソフトウェア機能の組み合わせを用いて、システムレベルで信頼の基点の様々な実装を使用しており、その結果、アプローチが散在し、セキュリティのレベルが入り組んでいるという技術的な問題が生じている。また、この当惑させる数々の選択肢には、重要なコード及びデータが記憶されている不揮発性メモリをどのように防御するかについて大きな制限がある。
既存のアプローチは、プロセッサ及び他のセキュアな素子、たとえば、ハードウェアセキュリティモジュール(HSM)などに依存して、それらのシステムに重要なセキュリティサービスを提供している。これにより、ディスクリートのフラッシュメモリ部品がシステムの重要なコード及びデータを記憶する多くのシステムにおいて、ブートの最低レベルでセキュリティのギャップが生じている。フラッシュは、多くのハッカーの標的になっており、より上位レベルのコードから身を隠し、削除に抵抗することができる高度標的型攻撃(APT:Advanced Persistent Threat)を作り出している。これらの場合の多くにおいて、フラッシュメモリは新しい悪意のあるコードによって再イメージ化されるかまたは書き換えられ、そのデバイスの完全性が損なわれる。
本開示の様々な実施形態は、上記の技術的問題に対する技術的解決策を提供する。いくつかの実施形態では、コンピューティングデバイスは、ハードウェアベースの信頼の基点をフラッシュメモリデバイスに統合して、IoTデバイスの強力な暗号化アイデンティティ及び健康管理を可能にする。重要なセキュリティプリミティブをメモリ内に移動することにより、メモリ自体に収容されているコード及びデータの完全性を保護することがより単純になる。このアプローチにより、実装の複雑性及びコストを最小限に抑えながら、システムレベルのセキュリティを大幅に高めることができる。
一実施形態では、新しいIoTデバイス管理機能は、フラッシュメモリ及び関連するソフトウェアを使用したMicrosoft(登録商標)Azure(登録商標)IoTクラウドによるデバイスのオンボーディング及び管理を可能にすることにより、フラッシュメモリを活用する。一例では、解決策は、重要なデバイスプロビジョニングサービス(たとえば、Azure IoTハブのデバイスプロビジョニングサービス(DPS))の基礎となる暗号化アイデンティティを提供する。一例では、このDPSは、対応メモリと共に、適切なIoTハブならびに他のサービスへのデバイスのゼロタッチプロビジョニングを可能にすることができる。
いくつかの実施形態では、上記の機能を実装するために、デバイスアイデンティティ構成エンジン(DICE)が使用される(DICEはトラステッドコンピューティンググループ(TCG)による今後の標準である)。一例では、対応メモリは、信頼できるハードウェアのみがMicrosoft Azure IoTクラウドにアクセスすることを許可する。一例では、IoTデバイスの健康状態及びアイデンティティは、重要なコードが通常記憶されているメモリにおいて検証される。各IoTデバイスの一意のアイデンティティにより、ブート処理から始まる新しいレベルでエンドツーエンドのデバイスの完全性を提供できるようになった。これにより、ハードウェアベースのデバイスのアテステーション及びプロビジョニングに加え、必要に応じたデバイスの管理上の修復などの追加機能を実現することができる。
一実施形態では、方法は、コンピューティングデバイス(たとえば、シリアルNORフラッシュメモリデバイス)によって、ホストデバイス(たとえば、CPU、GPU、FPGA、または車両のアプリケーションコントローラ)からメッセージを受信することと、コンピューティングデバイスによって、識別子(たとえば、公開識別子IDL1 public)、証明書(たとえば、IDL1 certificate)、及び鍵(たとえば、KL1 public)を生成することであって、識別子はコンピューティングデバイスのアイデンティティに関連し、証明書はメッセージを使用して生成される、生成することと、コンピューティングデバイスによって、識別子、証明書、及び鍵をホストデバイスに送信することであって、ホストデバイスは、識別子、証明書、及び鍵を使用してコンピューティングデバイスのアイデンティティを検証するように構成される、送信することと、を含む。
いくつかの実施形態では、上記のコンピューティングデバイス(たとえば、フラッシュメモリデバイス)はDICE-RIoT機能を統合し、DICE-RIoT機能は、上述の識別子、証明書、及び鍵を生成するために使用され、ホストデバイスによってコンピューティングデバイスのアイデンティティを検証するために使用される。一例では、コンピューティングデバイスは、DICE-RIoTプロトコルのレイヤ間の一連の識別ステップの基礎となるプリミティブ鍵として機能するデバイスシークレットを記憶する。一例では、DICE-RIoT機能のレイヤL及びLは、ハードウェア及び/またはソフトウェアを使用して、コンピューティングデバイスに実装される。一例では、レイヤLは、ハードウェアだけで実装される。
図1は、一実施形態による、コンピューティングデバイス141のアイデンティティを検証するホストデバイス151を示している。ホストデバイス151は、コンピューティングデバイス141にメッセージを送信する。一実施形態では、ホストデバイス151は、リプレイ攻撃を回避するためにコンピューティングデバイス141にメッセージを送信する際に使用するためのフレッシュネスを生成するフレッシュネスメカニズム(図示せず)を含む。一例では、コンピューティングデバイス141に送信される各メッセージは、モノトニックカウンタによって生成されたフレッシュネスを含む。
一例では、メッセージは、空の文字列、慣習的な既知の文字列(たとえば、ホストデバイス151の製造業者またはオペレータに既知の英数字の文字列)であるか、または他の値(たとえば、コンピューティングデバイスに割り当てられたアイデンティティ値)とすることができる。一例では、メッセージはデバイスの一意のアイデンティティ(UID)である。
メッセージを受信したことに応答して、コンピューティングデバイス141は、識別子、証明書、及び鍵を生成する。識別子は、コンピューティングデバイス141のアイデンティティに関連する。コンピューティングデバイス141は、アイデンティティコンポーネント147及び/またはコンピューティングデバイス141の他の機能の動作を制御する1つまたは複数のプロセッサ143を含む。
識別子、証明書、及び鍵は、アイデンティティコンポーネント147によって生成され、デバイスシークレット149に基づく。一例では、デバイスシークレット149は、コンピューティングデバイス141のメモリに記憶された一意のデバイスシークレット(UDS:unique device secret)である。一例では、アイデンティティコンポーネント147は、DICE-RIoTプロトコルを実装するためのプリミティブ鍵としてUDSを使用する。識別子、証明書、及び鍵は、DICE-RIoTプロトコルのレイヤLからの出力である(たとえば、図6を参照)。一実施形態では、レイヤLのアイデンティティは、コンピューティングデバイス141自体、コンピューティングデバイス141の製造業者、コンピューティングデバイス141を構成要素として含むモノの製造業者、及び/またはコンピューティングデバイス141のメモリに記憶されたアプリケーションまたは他のソフトウェアのアイデンティティに対応する。一例では、アプリケーションアイデンティティ(たとえば、ID番号)は、モノを識別するために文字及び数字の一意の組み合わせが使用される、携帯電話、テレビ、STBなどのものである。
一例では、レイヤLのアイデンティティはASII文字列である。たとえば、アイデンティティは、製造業者名にモノの名前を連結したもの(たとえば、LG|TV_model_123_year_2018など)とすることができる。一例では、アイデンティティは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に記憶された秘密鍵である。アイデンティティコンポーネント147は、秘密鍵をメッセージ認証コード(MAC:message authentication code)への入力として使用して、派生秘密を生成する。一例では、派生秘密は、DICE-RIoTプロトコルにおけるヒューズ派生秘密(FDS:fuse derived secret)である。
一例では、メモリ145は、コンピューティングデバイス141をブートするための初期ブートコードを記憶する読み取り専用メモリ(ROM)を含む。FDSは、ブート動作中にプロセッサ143によって初期ブートコードに提供される鍵である。一例では、ROMは、DICE-RIoTプロトコルのレイヤLに対応する。
ホストデバイス151は、識別子、証明書、及び鍵を検証コンポーネント153への入力として使用し、検証コンポーネント153は、コンピューティングデバイス141のアイデンティティを検証する。一実施形態では、検証コンポーネント153は、識別子を使用して少なくとも1回の復号操作を実行することによって、結果を提供する。結果は鍵と比較されて、コンピュータデバイス141のアイデンティティが有効であるか否かが判定される。有効である場合、ホストデバイス151は、コンピューティングデバイス141から受信した鍵を使用して、コンピューティングデバイス141とのさらなる通信を実行する。たとえば、ホストデバイス151が「三つ組」(識別子、証明書、及び鍵)を検証すると、鍵を使用して、コンピューティングデバイス141とホストデバイス151との間で交換される他の情報をアテストすることができる。
一実施形態では、デジタル識別情報が、(たとえば、モノのインターネットによる)多数の「モノ」に割り当てられる。一例では、モノは、車両または車両内に存在する物理的アイテムなどの物理的物体である。一例では、モノは人間または動物である。たとえば、各人間または動物に一意のデジタル識別子を割り当てることができる。
いくつかの場合では、製品の製造業者は、各製品が本物であると証明できることを望む。現在、この問題は、信頼できる販売者からのみモノを購入するか、購入したモノが本物であることを保証する何らかの法的証明書を有する他者からモノを購入することによって、解決されている。しかしながら、モノが盗難にあった場合、モノが電子アイデンティティを有さなければ、モノが不適切に使用されないようにモノをブロックしたり位置を特定したりすることは困難である。一例では、位置の特定は、モノが公開インフラストラクチャとやりとりしようとする場合のアイデンティティに基づく。一例では、ブロッキングは、公開インフラストラクチャを使用したいモノのアイデンティティを証明できないことに基づく。
一実施形態では、コンピューティングデバイス141は、一意の署名をコンピューティングデバイス141に対応する信頼の連鎖(chain of trust)に関連付けるために、アイデンティティコンポーネント147を使用してDICE-RIoTプロトコルを実装する。コンピューティングデバイス141は、レイヤL及びLを確立する。信頼の連鎖は、レイヤL、...を確立するホストデバイス151によって続けられる。一例では、一意の識別子を、任意の定義された環境(たとえば、地理的パラメータによって定義された信頼ゾーン)内の全ての物体、人間、及び動物に割り当てることができる。
一実施形態では、コンピューティングデバイス141は、アイデンティティを割り当てたいモノの構成要素である。たとえば、モノは、コンピューティングデバイス141を含む自立走行車とすることができる。たとえば、コンピューティングデバイス141は、車両のアプリケーションコントローラによって使用されるフラッシュメモリとすることができる。
コンピューティングデバイス141が製造されるときに、製造業者はUDSをメモリ145に注入することができる。一例では、UDSは、コンピューティングデバイス141を使用して追加の製造作業を行う顧客と合意し、共有することができる。他の例では、UDSは、元の製造業者がランダムに生成し、その後安全なインフラストラクチャを使用して(たとえば、インターネットなどのネットワークを介して)顧客に伝達することができる。
一例では、顧客は、コンピューティングデバイス141を組み込んだ車両の製造業者とすることができる。多くの場合、車両の製造業者は、コンピューティングデバイス141の販売者に知られないように、UDSを変更することを望む。そのような場合、顧客は、ホストデバイス151によってコンピューティングデバイス141に提供される認証された置換コマンドを使用してUDSを置き換えることができる。
いくつかの実施形態では、顧客は、顧客の不変情報をコンピューティングデバイス141のメモリ145に注入することができる。一例では、不変情報は、一意のFDSを生成するために使用され、単に区別要素として使用されるわけではない。顧客の不変情報は、顧客によって製造される様々な物体を区別するために使用される。たとえば、顧客の不変情報は、プリミティブ情報を定義するための文字及び/または数字の組み合わせ(たとえば、日付、時刻、ロット位置、ウエハー位置、ウエハー内のx、y位置などの情報の一部または全ての組み合わせ)とすることができる。
たとえば、多くの場合、不変情報は、ユーザ(たとえば、製造業者からデバイスを受け取る顧客)によって実行される暗号機能構成のデータも含む。この構成または設定は、認証されたコマンド(実行する鍵の知識を必要とするコマンド)を使用することによってのみ実行することができる。ユーザは(たとえば、製造業者から安全なインフラストラクチャを介して鍵が提供されることに基づいて)鍵の知識を有する。不変情報は、コンピューティングデバイスの一種の暗号化アイデンティティを表し、これはこのデバイスの一意のID(UID)とは異なる。一例では、暗号構成が不変情報セットに含まれることにより、不変情報を自分でカスタマイズするのに有用なツールがユーザに提供される。
一実施形態では、コンピューティングデバイス141は、フレッシュネスを生成するフレッシュネスメカニズムを含む。フレッシュネスは、ホストデバイス151に送信されるときに、識別子、証明書、及び鍵と共に提供することができる。フレッシュネスは、ホストデバイス151との他の通信で使用することもできる。
一実施形態では、コンピューティングデバイス141は、アプリケーションボード上のコンポーネントである。アプリケーションボード上の他のコンポーネント(図示せず)は、デバイスシークレット149の知識(たとえば、注入されたUDSの知識)を使用して、コンピューティングデバイス141のアイデンティティを検証することができる。このコンポーネントは、コンピューティングデバイス141に、UDSの所持を証明するために、メッセージ認証コードを使用して出力を生成するように要求する。たとえば、メッセージ認証コードは、次のようにすることができる:HMAC(UDS,“アプリケーションボードメッセージ|フレッシュネス”)。
他の実施形態では、FDSは、デバイスの所持(たとえば、秘密鍵(複数可)の知識)を証明するための基準として使用することもできる。FDSはUDSから次のようにして導出される:FDS=HMAC-SHA256[UDS,SHA256(“Lのアイデンティティ”)]。
したがって、メッセージ認証コードは、次のようにすることができる:HMAC(FDS,“アプリケーションボードメッセージ|フレッシュネス”)。
図2は、一実施形態による、アイデンティティコンポーネント107及び検証コンポーネント109を有する例示的なコンピューティングシステムを示している。101は、バス103を介してメモリシステム105と通信する。メモリシステム105の処理デバイス111は、不揮発性メモリ121のメモリ領域111、113、...、119に対して読み出し/書き込みアクセスを行うことができる。一例では、ホストシステム101はまた、揮発性メモリ123との間でデータを読み書きする。一例では、アイデンティティコンポーネント107は、DICE-RIoTプロトコルのレイヤL及びLをサポートする。一例では、不揮発性メモリ121はブートコードを記憶する。
検証コンポーネント109は、メモリシステム105のアイデンティティを検証するために使用される。検証コンポーネント109は、たとえば上述のように、ホストシステム101からのホストメッセージを受信したことに応答して、アイデンティティコンポーネント107によって生成された識別子、証明書、及び鍵を含む三つ組を使用する。
アイデンティティコンポーネント107は、図1のアイデンティティコンポーネント147の一例である。検証コンポーネント109は、図1の検証コンポーネント153の一例である。
メモリシステム105は、鍵記憶器157及び鍵生成器159を含む。一例では、鍵記憶器157は、ルート鍵、セッション鍵、UDS(DICE-RIoT)、及び/またはメモリシステム105による暗号操作に使用される他の鍵を記憶することができる。
一例では、鍵生成器159は、検証コンポーネント109による検証で使用するためにホストシステム101に送信される公開鍵を生成する。公開鍵は、上述のように、識別子及び証明書をさらに含む三つ組の一部として送信される。
メモリシステム105は、フレッシュネス生成器155を含む。一例では、フレッシュネス生成器155は、認証されたコマンドに使用することができる。一例では、複数のフレッシュネス生成器155を使用することができる。一例では、フレッシュネス生成器155は、ホストシステム101によって使用可能である。
一例では、処理デバイス111及びメモリ領域111、113、...、119は、同じチップまたはダイ上にある。いくつかの実施形態では、メモリ領域は、ホストシステム101及び/または処理デバイス111によって機械学習処理中に使用されるデータ、またはホストシステム101もしくは処理デバイス111で実行されるソフトウェアプロセス(複数可)によって生成される他の実行時データを記憶する。
コンピューティングシステムは、ホストシステム101からの新しいデータを記録するためのメモリ領域111(たとえば、フラッシュメモリの記録セグメント)を選択する書き込みコンポーネントをメモリシステム105内に含むことができる。コンピューティングシステム100はさらに、少なくともメモリ領域111の選択を容易にするために、メモリシステム105内の書き込みコンポーネント107と連携する書き込みコンポーネントをホストシステム101内に含むことができる。
一例では、揮発性メモリ123は、ホストシステム101の処理デバイス(図示せず)のためのシステムメモリとして使用される。一実施形態では、ホストシステム101のプロセスは、データを書き込むためのメモリ領域を選択する。一例では、ホストシステム101は、センサ及び/または自立走行車上で実行されるソフトウェアプロセスからのデータに部分的に基づいてメモリ領域を選択することができる。一例では、前述のデータは、メモリ領域を選択した処理デバイス111へホストシステム101によって提供される。
いくつかの実施形態では、ホストシステム101または処理デバイス111は、アイデンティティコンポーネント107及び/または検証コンポーネント109の少なくとも一部を含む。他の実施形態では、または組み合わせて、処理デバイス111及び/またはホストシステム101内の処理デバイスは、アイデンティティコンポーネント107及び/または検証コンポーネント109の少なくとも一部を含む。たとえば、処理デバイス111及び/またはホストシステム101の処理デバイスは、アイデンティティコンポーネント107及び/または検証コンポーネント109を実装する論理回路を含むことができる。たとえば、ホストシステム101のコントローラまたは処理デバイス(たとえば、CPU、FPGA、またはGPU)は、本明細書に記載のアイデンティティコンポーネント107及び/または検証コンポーネント109の動作を実行するための、メモリに記憶された命令を実行するように構成することができる。
いくつかの実施形態では、アイデンティティコンポーネント107は、メモリシステム105内に配置された集積回路チップに実装される。他の実施形態では、ホストシステム101内の検証コンポーネント109は、ホストシステム101のオペレーティングシステム、デバイスドライバ、またはアプリケーションの一部である。
メモリシステム105の一例は、メモリバスを介して中央処理装置(CPU)に接続されたメモリモジュールである。メモリモジュールの例には、デュアルインラインメモリモジュール(DIMM)、スモールアウトラインDIMM(SO-DIMM)、不揮発性デュアルインラインメモリモジュール(NVDIMM)などが含まれる。いくつかの実施形態では、メモリシステムは、メモリ機能及びストレージ機能の両方を提供するハイブリッドメモリ/ストレージシステムとすることができる。一般に、ホストシステムは、1つまたは複数のメモリ領域を含むメモリシステムを利用することができる。ホストシステムは、メモリシステムに記憶されるデータを提供することができ、メモリシステムから取り出されるデータを要求することができる。一例では、ホストは、揮発性メモリ及び不揮発性メモリを含む様々なタイプのメモリにアクセスすることができる。
ホストシステム101は、車両内のコントローラ、ネットワークサーバ、モバイルデバイス、携帯電話、組み込みシステム(たとえば、システムオンチップ(SOC)及び内部もしくは外部メモリを有する組み込みシステム)、またはメモリ及び処理デバイスを含む任意のコンピューティングデバイスなどのコンピューティングデバイスとすることができる。ホストシステム101は、メモリシステム105を含むか、またはそれに結合することができ、それによってホストシステム101は、メモリシステム105に対してデータの読み書きを行うことができる。ホストシステム101は、物理ホストインターフェースを介してメモリシステム105に結合することができる。本明細書で使用する場合、「結合される」とは、一般にコンポーネント間の接続を指し、この接続は、電気、光、磁気などの接続を含む、有線か無線かを問わない、間接的な通信接続または直接的な通信接続(たとえば、介在コンポーネントなし)とすることができる。物理ホストインターフェースの例には、シリアルアドバンストテクノロジーアタッチメント(SATA)インターフェース、周辺機器相互接続エクスプレス(PCIe)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、ファイバチャネル、シリアル接続SCSI(SAS)、ダブルデータレート(DDR)メモリバスなどが含まれるが、これらに限定されない。物理ホストインターフェースを使用して、ホストシステム101とメモリシステム105との間でデータを伝送することができる。物理ホストインターフェースは、メモリシステム105とホストシステム101との間で、制御、アドレス、データ、及び他の信号を渡すためのインターフェースを提供することができる。
図2は、メモリシステム105を一例として示している。一般に、ホストシステム101は、同じ通信接続、複数の別々の通信接続、及び/または通信接続の組み合わせを介して複数のメモリシステムにアクセスすることができる。
ホストシステム101は、処理デバイス及びコントローラを含むことができる。ホストシステム101の処理デバイスは、たとえば、マイクロプロセッサ、中央処理装置(CPU)、プロセッサの処理コア、実行ユニットなどとすることができる。場合によっては、ホストシステムのコントローラは、メモリコントローラ、メモリ管理ユニット、及び/またはイニシエータと呼ばれ得る。一例では、コントローラは、ホストシステム101とメモリシステム105との間のバス103を介した通信を制御する。これらの通信は、上述のようにメモリシステム105のアイデンティティを検証するためのホストメッセージの送信を含む。
ホストシステム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は、アイデンティティコンポーネント107及び/または検証コンポーネント109の少なくとも一部を含む。たとえば、コントローラ及び/または処理デバイス111は、アイデンティティコンポーネント107及び/または検証コンポーネント109を実装する論理回路を含むことができる。たとえば、処理デバイス(プロセッサ)は、本明細書に記載のように、アイデンティティコンポーネント107にメモリ領域への読み出し/書き込みアクセスを提供する動作を実行するための、メモリに記憶された命令を実行するように構成することができる。いくつかの実施形態では、検証コンポーネント109は、オペレーティングシステム、デバイスドライバ、またはアプリケーションの一部である。
図3は、一実施形態による、車両100の例示的なコンピューティングデバイスを示している。たとえば、車両100は、自立走行車、非自立走行車、緊急車両、サービス車両などとすることができる。
車両100は、車載コンピュータなどの車両コンピューティングデバイス110を含む。車両コンピューティングデバイス110は、図1のホストデバイス151の一例である。他の例では、コンピューティングデバイス110は、図2のホストシステム101の一例であり、メモリ160は、メモリシステム105の一例である。
車両コンピューティングデバイス110はプロセッサ120を含み、プロセッサ120は、リーダー、ライター、及び/または以下に説明する機能を実行することが可能な他のコンピューティングデバイスなどの車両通信コンポーネント130に結合されており、車両通信コンポーネント130は、アンテナ140に結合されている(またはこれを含む)。車両通信コンポーネント130は、不揮発性フラッシュメモリなどのメモリ160に結合されたプロセッサ150を含むが、実施形態は、そのような種類のメモリデバイスにそのように限定されない。
一例では、メモリ160は、車両に関連する全ての情報(たとえば、運転者、乗客、及び運搬商品)を記憶するようになされ、以下に説明するように、車両100が通信インターフェース(たとえば、いわゆるDICE-RIoTプロトコル)を使用して検問所に近づいたときに、この情報を提供できるようになる。
一例では、車両情報(たとえば、車両ID/プレート番号)は、車両メモリ160に既に記憶されており、車両100は、たとえば、通信コンポーネント130を介して、また、知られているDICE-RIoTプロトコルまたは同様のプロトコルを使用して、乗客の電子ID及び/または運搬荷物、商品などのIDを識別し、次いでこの情報をメモリ160に記憶することができる。一例では、輸送荷物及び商品のコンテナの電子IDには、無線応答装置、NFC、Bluetooth、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から情報を受信し、及び/またはこれに情報を送信することができる。いくつかの例では、ホストデバイス350は、料金リーダーなどのリーダー(たとえば、NFCリーダー)、または他のコンポーネントを含むことができる。ホストデバイス350は、(たとえば、信頼ゾーンの境界にある)検問所の近くに、または一般的には、制限されたアクセスエリアの近くに配置された(たとえば、埋め込まれた)外部デバイスとすることができる。いくつかの実施形態では、ホストデバイス350は、警官が持ち運んで携帯デバイスとして使用することもできる。
ホストデバイス350は、プロセッサ360、不揮発性メモリなどのメモリ370、及びアンテナ380を含むことができる。メモリ370は、ホストデバイス350が通信コンポーネント310と通信することを可能にするNFCプロトコルを含むことができる。たとえば、ホストデバイス350及び通信コンポーネント310は、たとえば、約13.56メガヘルツのNFCプロトコルを使用して、また、ISO/IEC18000-3国際規格に従って、通信することができる。RFIDタグを使用する他のアプローチを使用することができる。
ホストデバイス350はまた、サーバまたは他のコンピューティングデバイスと通信する(たとえば、無線ネットワークを介して中央オペレーションセンターと通信する)ことができる。たとえば、ホストデバイス350は、サーバまたは通信センターに無線で結合する、または配線で接続することができる。いくつかの例では、ホストデバイス350は、WIFIまたはインターネットを介してオペレーションセンターと通信することができる。車両300がアンテナ340をアンテナ380の通信距離内に持ち込んだときに、ホストデバイス350は通信コンポーネント310に電力を供給することができる。いくつかの例では、ホストデバイス350は、オペレーションセンターからリアルタイム情報を受信し、その情報を車両300に送信することができる。いくつかの実施形態では、通信コンポーネント310は、それ自体の電池を有することができる。
一実施形態では、ホストデバイス350は、車両300との間で情報を読み出し/送信するようになされ、車両300は、情報交換を可能にするように構成される通信コンポーネント310(たとえば、能動デバイス)が備えられている。
再び図3を参照すると、車両100の車両通信コンポーネント130を内部でアクティブにして、乗客ID、輸送荷物及び/または商品に関するリアルタイムの関連情報を拾い上げることができる(たとえば、上記で図4に関して論じた対応する無線通信コンポーネントが備えられている場合)。車両のコンピューティングデバイスは、数メートル(たとえば、2~3メートル)の空間範囲内の情報を検出し得、それによって、乗客、荷物、及び商品に対応する全てのデータが取得され得る。一例では、これが発生するのは、車両が外部通信コンポーネント(たとえば、サーバ、またはホストデバイスとして機能する他のコンピューティングデバイス)に特定の近接距離内で接近して、通信を開始及び/または強化できるようになったときである。通信距離は、たとえば、2~3メートルである。
一実施形態では、車両通信コンポーネント130は、外部エンティティ及び/または内部エンティティと通信する場合に、データを暗号化することができる。いくつかの場合では、輸送荷物、商品、さらには乗客に関するデータは、機密であり得、または機密情報(たとえば、乗客の健康状態、機密文書、または危険物)を含み得る。そのような場合、車両コンピューティングデバイスに関連付けられたメモリ部分に記憶された情報及びデータは、暗号化されたデータとして保持されることが望ましい。
以下で論じる様々な実施形態では、内部の車両コンピューティングデバイスと外部エンティティ(たとえば、ホストデバイスとして機能するサーバ)との間の暗号化及び復号された通信のための方法について論じる。一例では、この方法は、内部の車両コンピューティングデバイスと、車両に乗っている乗客、荷物、及び商品に関連付けられた電子部品との間でさえ適用され得る。
一例では、車両通信コンポーネント130は、車両公開鍵を外部通信コンポーネント(たとえば、ホストデバイス151として機能するもの)に送信し、外部通信コンポーネントは、外部公開鍵を車両通信コンポーネント130に送信する。これらの公開鍵(車両及び外部)を使用して、それぞれの通信コンポーネントに送信されるデータを暗号化し、それぞれのアイデンティティを検証することができ、確認及び他の情報を交換することもできる。一例として、以下でさらに説明するように、車両通信コンポーネント130は、受信した外部公開鍵を使用してデータを暗号化し、暗号化されたデータを外部通信コンポーネントに送信することができる。同様に、外部通信コンポーネントは、受信した車両公開鍵を使用してデータを暗号化し、暗号化されたデータを車両通信コンポーネント130に送信することができる。車両100によって送信されるデータは、車情報、乗客情報、商品情報などを含むことができる。これらの情報は、任意選択により、車両100のアイデンティティを検証するためのデジタル署名と共に送信することができる。さらに、情報を車両100に提供し、車両100のダッシュボードに表示するか、または車両100に関連付けられたコンピューティングデバイス(たとえば、ユーザデバイス、または車両を監視する中央サーバ)の電子メールに送信することができる。車両は、車両のデジタル署名と共に、車両の識別情報、VIN番号などに基づいて認識することができる。
一例では、車両と外部エンティティとの間で交換されるデータは、他方によって使用されるフレッシュネスを有することができる。一例として、同一の命令を示すために車両によって外部エンティティに送信されるデータは、それぞれの特定の時間枠において、または特定のデータ送信量について、変更することができる。これにより、ハッカーが、以前に送信されたデータに含まれる機密情報を傍受し、同じデータを再度送信して、同じ結果を得ることを防ぐことができる。データがわずかに変更されているが、それでも同じ命令を示している場合、ハッカーは同一の情報を後の時点で送信し得、受信機は同じ命令を実行するために変更されたデータを予期するので、同じ命令が実行されることはない。
車両100と外部エンティティ(たとえば、コンピューティングシステムまたはデバイス)(図示せず)との間でのデータの交換は、以下に説明するいくつかの暗号化及び/または復号方法を使用して実行することができる。データを保護することによって、無許可のアクティビティが車両100及び外部エンティティの動作を妨害しないようにすることができる。
図5Aは、一実施形態による、ホストデバイスに送信される識別子、証明書、及び鍵を含む三つ組を生成するアプリケーションボードを示している。ホストデバイスは三つ組を使用して、アプリケーションボードのアイデンティティを検証する。アプリケーションボードは、図1のコンピューティングデバイス141の一例である。ホストデバイスは、図1のホストデバイス151の一例である。
一実施形態では、アプリケーションボード及びホストは、デバイス識別情報構成エンジン(DICE)-堅牢なモノのインターネット(RIoT)プロトコルを使用して、通信(たとえば、情報及びデータに関するもの)に暗号化及び/または復号操作を実行する通信コンポーネントを含む。一例では、DICE-RIoTプロトコルは、車両通信コンポーネントと外部通信コンポーネントとの間の通信、ならびに車両通信コンポーネントと、乗客ID、荷物、商品などのそれぞれに関連付けられた様々な無線電子デバイスとの間で車両環境に対して内部で実行される通信に適用される。
図5Bは、一実施形態による、レイヤを使用して段階的にブートする例示的なコンピューティングシステムを示している。このシステムは、本開示の一実施形態によれば、外部通信コンポーネント430’及び車両通信コンポーネント430’’を含む。車両が外部エンティティに近づくか、またはその付近に入ると、車両に関連付けられた車両通信コンポーネント430’’は、たとえば、センサ(無線周波数識別センサ、すなわち、RFIDなど)を使用して、上述のように外部エンティティとデータを交換することができる。
他の実施形態では、コンポーネント430’は、車両内に配置されたアプリケーションボードとすることができ、コンポーネント430’’は、同じく車両内に配置されたホストデバイスとすることができ、ホストデバイスは、(たとえば、上記で図1に関して論じたように)DICE-RIoTプロトコルを使用してコンポーネント430’のアイデンティティを検証する。
一実施形態では、DICE-RIoTプロトコルは、コンピューティングデバイスによってレイヤを使用して段階的にブートするために使用され、各レイヤは次のレイヤを認証及びロードし、各レイヤで次第に高度になるランタイムサービスを提供する。このように、レイヤが前のレイヤによって提供され、次のレイヤを提供することによって、下位レイヤの上に構築され、上位のレイヤを提供する、レイヤの相互接続されたウェブを作成することができる。あるいは、DICE-RIoTプロトコルの代わりに他のプロトコルを使用することもできる。
通信プロトコルの1つの例示的な実施態様では、通信プロトコルのセキュリティは、製造中に(またはその後でも)設定される秘密値に基づき、これはデバイスシークレット(たとえば、UDS)である。デバイスシークレットUDSは、それがプロビジョニングされたデバイス内に存在する(たとえば、図1のデバイスシークレット149として記憶される)。
デバイスシークレットUDSには、ブート時に第1段階のROMベースのブートローダがアクセスすることができる。次いで、システムは、次のブートサイクルまでデバイスシークレットにアクセスできないようにするメカニズムを提供し、ブートローダ(たとえば、ブートレイヤ)のみがデバイスシークレットUDSにいつでもアクセスすることができる。したがって、このアプローチでは、ブートは、デバイスシークレットUDSから始まる特定のアーキテクチャでレイヤ化される。
図5Bに示すように、レイヤ0 L及びレイヤ1 Lは、外部通信コンポーネント430’内にある。レイヤ0 Lは、ヒューズ派生秘密FDS鍵をレイヤ1 Lに提供することができる。FDS鍵は、レイヤ1 Lのコードのアイデンティティ及び他のセキュリティ関連データに基づくことができる。特定のプロトコル(たとえば、堅牢なモノのインターネット(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のアイデンティティをハッシュ化し、以下の計算を実行することができる。
FDS=KDF[UDS,Hash(「不変情報」)]
ここで、KDFは暗号化一方向鍵導出関数である(たとえば、HMAC-SHA256)。上記の計算では、HashはSHA256、MD5、SHA3などの任意の暗号化プリミティブとすることができる。
少なくとも1つの例では、車両は、匿名ログインまたは認証ログインのいずれかを使用して通信することができる。認証ログインにより、車両は、匿名モードで通信している場合にはアクセス不可能であり得る追加情報を取得することができる。少なくとも1つの例では、認証は、以下に説明するように、車両識別番号VIN及び/または認証情報の提供、たとえば、公開鍵の交換などを含むことができる。匿名モード及び認証モードのいずれにおいても、外部エンティティ(たとえば、信頼ゾーンの境界にある検問所の警察)は、車両と通信して、外部エンティティに関連付けられた外部公開鍵を車両に提供することができる。
図6は、一実施形態による、非対称生成器を使用して識別子、証明書、及び鍵を生成する例示的なコンピューティングデバイスを示している。一実施形態では、コンピューティングデバイスは、(たとえば、外部デバイスのレイヤL内、または代替の実施形態では、内部コンピューティングデバイスのレイヤL内の)パラメータを決定する処理を実装する。
一実施形態では、外部公開識別情報、外部証明書、及び外部公開鍵を含むパラメータが決定され、これらは次いで(矢印510’で示すように)車両通信コンポーネントのレイヤ2 L(たとえば、図5Bの参照符号430’’)に送信される。図6の矢印510’及び510’’は、図5Bの矢印410’及び410’’にそれぞれ対応する。また、図6のレイヤは、図5Bのレイヤに対応する。
他の実施形態では、ホストデバイスからのメッセージ(「ホストメッセージ」)は、パターン(データ)マージ531によって外部公開鍵とマージされて、マージされたデータが暗号化のために提供される。マージされたデータは、暗号化器530への入力である。一例では、ホストメッセージは外部公開鍵と連結される。生成されたパラメータは三つ組を含み、これはホストデバイスに送信され、コンピューティングデバイスのアイデンティティを検証するために使用される。たとえば、外部公開識別情報、外部証明書、及び外部公開鍵は、ホストデバイスの検証コンポーネントによってアイデンティティを検証するために使用される。一例では、ホストデバイスは、図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への(「データ」としての)入力とすることができる。上記のように、いくつかの実施形態では、アイデンティティ検証処理の一部としてホストデバイスから以前に受信されたホストメッセージは、KLkpublicとマージされて、マージされたデータが暗号化器530への入力データとして提供される。
暗号化器530は、外部秘密識別情報IDlkprivate及び外部公開鍵KLkpublicの入力を使用して、結果K’を生成することができる。外部秘密鍵KLkprivate及び結果K’を追加の暗号化器550に入力して、出力K’’を得ることができる。出力K’’は、レイヤ2 Lに送信される(あるいはアイデンティティを検証するホストデバイスに送信される)外部証明書IDL1certificateである。外部証明書IDL1certificateは、デバイスから送信されたデータの発信元を検証及び/または認証する能力を提供することができる。一例として、外部通信コンポーネントから送信されたデータは、証明書を検証することによって、外部通信コンポーネントのアイデンティティに関連付けることができ、これについては図7に関連してさらに説明する。さらに、外部公開鍵KL1public keyは、レイヤ2 Lに送信することができる。したがって、外部通信コンポーネントの公開識別情報IDL1public、証明書IDL1certificate、及び外部公開鍵KL1public keyは、車両通信コンポーネントのレイヤ2 Lに送信することができる。
図7は、一実施形態による、復号操作を使用してコンピューティングデバイスのアイデンティティを検証する検証コンポーネントを示している。検証コンポーネントは、復号器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、及び公開識別情報IDL1 publicは、図1のコンピューティングデバイス141または図2のメモリシステム105から提供される。この三つ組は、コンピューティングデバイス141によって、ホストデバイスからホストメッセージを受信したことに応答して生成される。IDL1certificateを復号器730への入力として提供する前に、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は、一実施形態による、識別子、証明書、及び鍵を使用してコンピューティングデバイスのアイデンティティを検証する方法を示している。たとえば、図9の方法は、図1~図7のシステムに実装することができる。
図9の方法は、ハードウェア(たとえば、処理デバイス、回路、専用ロジック、プログラマブルロジック、マイクロコード、デバイスのハードウェア、集積回路など)、ソフトウェア(たとえば、処理デバイスで動作するもしくは実行される命令)、またはそれらの組み合わせを含むことができる処理ロジックによって実行することができる。いくつかの実施形態では、図9の方法は、図1のアイデンティティコンポーネント147及び検証コンポーネント153によって少なくとも部分的に実行される。
特定の順番または順序で示しているが、特に指定のない限り、処理の順序は変更することができる。したがって、図示した実施形態は、例としてのみ理解されるべきであり、図示した処理は、異なる順序で実行することができ、いくつかの処理は、並行して実行することができる。さらに、様々な実施形態では、1つまたは複数の処理を省略することができる。したがって、全ての実施形態において全ての処理が必要とされるわけではない。他の処理フローも可能である。
ブロック921において、ホストデバイスからメッセージが受信される。たとえば、コンピューティングデバイス141は、ホストデバイス151からメッセージ(たとえば、「ホストメッセージ」または「ホストメッセージ|フレッシュネス」)を受信する。
ブロック923において、識別子、証明書、及び鍵(たとえば、公開鍵KL1public)が生成される。識別子は、コンピューティングデバイスのアイデンティティに関連する。証明書は、ホストデバイスからのメッセージ(たとえば、「ホストメッセージ」)を使用して生成される。一実施形態では、メッセージは、暗号化の前に公開鍵とマージされる。この暗号化は、秘密識別子IDL1privateを鍵として使用する。秘密識別子IDL1privateは、公開識別子IDL1publicに関連付けられている(たとえば、非対称ID生成器520によって生成される関連付けられたペア)。
一例では、アイデンティティコンポーネント147は、識別子、証明書、及び鍵を生成して三つ組を提供する。一例では、三つ組はDICE-RIoTプロトコルに基づいて生成される。一例では、三つ組は、図6に示すように生成される。
一例では、DICE-RIoTプロトコルを使用して、各レイヤ(L)は次のレイヤ(Lk+1)に鍵及び証明書のセットを提供し、各証明書は受信レイヤによって検証することができる。ヒューズ派生秘密FDSは、次のように計算される。
FDS=HMAC-SHA256[UDS,SHA256(「Lのアイデンティティ」)]
一例では、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,IDL1 certificate,KL1 public
より一般的には、各レイヤは三つ組を次のように提供する:
各k=1:Nについて、KLk={鍵及び証明書のセット}
各レイヤは、それぞれの三つ組を使用して、そのアイデンティティを次のレイヤに証明することができる。
一例では、レイヤ2はアプリケーションファームウェアに対応し、後続のレイヤはホストデバイスのオペレーティングシステム及び/またはアプリケーションに対応する。
ブロック925において、生成された識別子、証明書、及び鍵がホストデバイスに送信される。ホストデバイスは、識別子、証明書、及び鍵を使用して、コンピューティングデバイスのアイデンティティを検証する。一例では、ホストデバイス151は、コンピューティングデバイス141から識別子、証明書、及び鍵を受信する。ホストデバイス151は、検証コンポーネント153を使用して、コンピューティングデバイスのアイデンティティを検証する。
一例では、検証コンポーネント153は、検証処理の一部として復号操作を実行する。復号は、コンピューティングデバイス141から受信した鍵を使用して復号する前に、ホストからのメッセージを証明書とマージすることを含む。一例では、図7に示すように、コンピューティングデバイスのアイデンティティの検証が行われる。
一例では、以下のように、復号操作が実行される。
KL1 publicを使用して(IDL1certificate)を復号することによってK’を提供し、
IDL1 publicを使用してK’を復号することによって結果を提供し、
結果はKL1 publicと比較される。結果がKL1 publicと等しい場合、アイデンティティが検証される。一例では、アプリケーションボードのアイデンティティが検証される。
一実施形態では、人間または動物のアイデンティティが証明される。人間のアイデンティティの検証は、上述のようにコンピューティングデバイス141のアイデンティティを検証する場合と同様に実行される。一例では、コンピューティングデバイス141は、人のパスポートに統合される。パスポートを発行した国の行政部門は、ドキュメントのクラス(たとえば、運転免許証、パスポート、IDカードなど)に固有のUDSを使用することができる。たとえば、イタリアのシチリアのメッシーナのパスポートオフィスの場合、UDS=0x12234...4444である。ドイツのバイエルンのミュンヘンのパスポートオフィスの場合、UDS=0xaabb....00322である。
パスポートに関する一例では、L1のアイデンティティは次のようなASCII文字列である。
国|ドキュメントタイプ|他(たとえば、「イタリア、シチリア、メッシーナ、パスポートオフィス」)
割り当ての「粒度」は、各国の行政によって決定することができる。
図9の方法の様々な実施形態は、様々な利点を提供する。たとえば、サードパーティの鍵インフラストラクチャ(たとえば、PKI=公開鍵インフラストラクチャ)を使用せずに、モノを識別し、特定の工場で生産されたものとして認定することができる。悪意のある、またはハッカーによる中間者攻撃は、リプレイ保護されているので阻止される。この方法は、モノの大量生産に使用することができる。
さらに、顧客のUDSはハードウェアレベルで保護される(たとえば、コンポーネントの外部はレイヤ0にアクセスすることができない)。UDSは誰も読み出すことはできないが、置き換えることはできる(たとえば、顧客のみが安全なプロトコルを使用してこれを行うことができる)。安全なプロトコルの例には、認証されたリプレイ保護されたコマンド、及び/またはDiffie Hellman(たとえば、ECDH楕円曲線Diffie Hellman)などの秘密共有アルゴリズムに基づくセキュリティプロトコルが含まれる。一例では、UDSは、安全なインフラストラクチャを使用して(エンドユーザではなく)顧客に伝達される。UDSは顧客によってカスタマイズ可能である。
さらに、コンポーネントの認識は、インターネットまたは他のネットワーク接続がない場合でも機能する。また、この方法を使用して、信頼ゾーンの境界(たとえば、国境、国内検問所など)において、モノ、動物、及び人間のアイデンティティを簡単にチェックすることができる。
一例では、UDSを知っている場合、ホストデバイスはUDSを安全に置き換えることができる。たとえば、ホストがモノのアイデンティティを変更したい場合、またはホストがモノのアイデンティティを(元の製造業者を含めて)他の誰にも知られないようにしたい場合に、置き換えを行うことができる。
他の例では、置換コマンドがホストデバイスによって使用される。たとえば、ホストデバイスは、UDS置換コマンドをコンピューティングデバイスに送信することができる。置換コマンドは、既存のUDSと、コンピューティングデバイスに帰属させる新しいUDSとを含む。一例では、置換コマンドは、次のようなハッシュ値を含むフィールドを有する。hash(既存のUDS|新しいUDS)
他の例では、次のようなフィールドを有する認証されたリプレイ保護コマンドが使用される。置換コマンド|フレッシュネス|署名
ここで、署名=MAC[秘密鍵,置換コマンド|フレッシュネス|hash(既存のUDS|新しいUDS)]
秘密鍵は追加の鍵であり、デバイスに存在する認証されたコマンドに使用される鍵である。たとえば、秘密鍵は、以下に説明するセッション鍵とすることができる(たとえば、図12を参照)。
一実施形態では、方法は、コンピューティングデバイス(たとえば、コンピューティングデバイス141)によって、ホストデバイス(たとえば、ホストデバイス151)からメッセージを受信することと、コンピューティングデバイスによって、識別子、証明書、及び鍵を生成することであって、識別子はコンピューティングデバイスのアイデンティティに関連し、証明書はメッセージを使用して生成される、生成することと、コンピューティングデバイスによって、識別子、証明書、及び鍵をホストデバイスに送信することであって、ホストデバイスは、識別子、証明書、及び鍵を使用してコンピューティングデバイスのアイデンティティを検証するように構成される、送信することと、を含む。
一実施形態では、コンピューティングデバイスのアイデンティティを検証することは、第1のデータを提供するためにメッセージ及び証明書を連結することを含む。
一実施形態では、コンピューティングデバイスのアイデンティティを検証することは、第2のデータを提供するために鍵を使用して第1のデータを復号することをさらに含む。
一実施形態では、コンピューティングデバイスのアイデンティティを検証することは、結果を提供するために識別子を使用して第2のデータを復号することと、結果を鍵と比較することと、をさらに含む。
一実施形態では、識別子は公開識別子であり、コンピューティングデバイスは秘密鍵を記憶し、方法は、派生秘密を生成するために、秘密鍵をメッセージ認証コードへの入力として使用すること、をさらに含み、公開識別子は、派生秘密を非対称生成器への入力として使用して生成される。
一実施形態では、識別子は第1の公開識別子であり、コンピューティングデバイスは、第1の公開識別子を生成するために使用される第1のデバイスシークレットを記憶し、方法は、ホストデバイスから置換コマンドを受信することと、置換コマンドを受信したことに応答して、第1のデバイスシークレットを第2のデバイスシークレットに置き換えることと、第2のデバイスシークレットを使用して生成される第2の公開識別子をホストデバイスに送信することと、をさらに含む。
一実施形態では、鍵は公開鍵であり、証明書を生成することは、暗号化のためのデータ入力を提供するためにメッセージを公開鍵と連結することを含む。
一実施形態では、識別子は公開識別子であり、第1の非対称生成器は、公開識別子及び秘密識別子を関連付けられたペアとして生成し、鍵は公開鍵であり、第2の非対称生成器は、公開鍵及び秘密鍵を関連付けられたペアとして生成し、証明書を生成することは、第1のデータを提供するために、メッセージを公開鍵と連結することと、第2のデータを提供するために、秘密識別子を使用して第1のデータを暗号化することと、証明書を提供するために、秘密鍵を使用して第2のデータを暗号化することと、を含む。
一実施形態では、鍵は公開鍵であり、方法は、非対称鍵生成器への入力として乱数を生成することをさらに含み、公開鍵及び関連付けられた秘密鍵は、非対称鍵生成器を使用して生成される。
一実施形態では、乱数は、物理複製困難関数(PUF)を使用して生成される。
一実施形態では、システムは、少なくとも1つのプロセッサと、命令を含むメモリと、を備え、命令は、少なくとも1つのプロセッサに、コンピューティングデバイスにメッセージを送信することと、コンピューティングデバイスから、識別子、証明書、及び鍵を受信することであって、識別子はコンピューティングデバイスのアイデンティティに関連し、証明書はコンピューティングデバイスによってメッセージを使用して生成される、受信することと、識別子、証明書、及び鍵を使用して、コンピューティングデバイスのアイデンティティを検証することと、を行うように命令するよう構成される。
一実施形態では、コンピューティングデバイスのアイデンティティを検証することは、第1のデータを提供するために、メッセージ及び証明書を連結することと、第2のデータを提供するために、鍵を使用して第1のデータを復号することと、結果を提供するために、識別子を使用して第2のデータを復号することと、結果を鍵と比較することと、を含む。
一実施形態では、識別子は第1の公開識別子であり、コンピューティングデバイスは、第1の公開識別子を生成するために使用される第1のデバイスシークレットを記憶し、命令は、少なくとも1つのプロセッサに、置換コマンドをコンピューティングデバイスに送信することであって、置換コマンドは、コンピューティングデバイスに、第1のデバイスシークレットを第2のデバイスシークレットに置き換えさせる、送信することと、コンピューティングデバイスから、第2のデバイスシークレットを使用して生成される第2の公開識別子を受信することと、を行うように命令するようさらに構成される。
一実施形態では、コンピューティングデバイスは、第2のデバイスシークレットを、派生秘密を提供するメッセージ認証コードへの入力として使用し、派生秘密を使用して第2の公開識別子を生成するように構成される。
一実施形態では、置換コマンドは、第1のデバイスシークレットに基づく値を有するフィールドを含む。
一実施形態では、フレッシュネスを生成するように構成されるフレッシュネスメカニズムをさらに備え、コンピューティングデバイスに送信されるメッセージは、フレッシュネスを含む。
一実施形態では、コンピューティングデバイスのアイデンティティは、英数字の文字列を含む。
一実施形態では、非一時的コンピュータ記憶媒体は命令を記憶し、命令は、コンピューティングデバイス上で実行された場合に、コンピューティングデバイスに少なくとも、ホストデバイスからメッセージを受信することと、識別子、証明書、及び鍵を生成することであって、識別子はコンピューティングデバイスのアイデンティティに対応し、証明書はメッセージを使用して生成される、生成することと、コンピューティングデバイスのアイデンティティを検証する際に使用するために、識別子、証明書、及び鍵をホストデバイスに送信することと、を行わせる。
一実施形態では、識別子は、秘密識別子に関連付けられた公開識別子であり、鍵は、秘密鍵に関連付けられた公開鍵であり、証明書を生成することは、第1のデータを提供するために、メッセージを公開鍵と連結することと、第2のデータを提供するために、秘密識別子を使用して第1のデータを暗号化することと、証明書を提供するために、秘密鍵を使用して第2のデータを暗号化することと、を含む。
一実施形態では、コンピューティングデバイスのアイデンティティを検証することは、結果を提供するために、識別子を使用して復号操作を実行することと、結果を鍵と比較することと、を含む。
物理複製困難関数(PUF)を使用した値の生成
以下に開示する少なくともいくつかの実施形態は、物理複製困難関数(PUF)を使用して値を生成するための改良されたアーキテクチャを提供する。いくつかの実施形態では、PUF値自体をデバイスシークレットとして使用することができるか、またはPUF値を使用してデバイスシークレットを生成することできる。一例では、PUF値は、上述のように(たとえば、図5A及び図5B参照)DICE-RIoTプロトコルで使用するための一意のデバイスシークレット(UDS)として使用される。一例では、PUFによって生成された値は、メッセージ認証コード(MAC)への入力として使用される。MACからの出力はUDSとして使用される。
いくつかの実施形態では、PUF値またはPUF値から生成される値は、乱数(たとえば、デバイス固有の乱数)として使用することができる。一例では、上述の非対称鍵生成器(たとえば、図6参照)を介して関連付けられた公開鍵及び秘密鍵を生成する場合の入力として乱数(たとえば、RND)が使用される。
一般に、以下のアーキテクチャは、1つまたは複数のPUFから提供された入力をメッセージ認証コード(MAC)に供給することによって出力を生成する。MACからの出力は、改善されたPUF(たとえば、上記のUDS)を提供する。
一般に、半導体チップ製造業者は、鍵注入の問題に直面しており、これは、半導体ウエハーなどから提供される各チップまたはダイの一意の秘密鍵をプログラミングすることである。チップに注入された秘密鍵が漏洩したり開示されたりしないように、安全な環境で鍵の注入が実行されることが望まれる。また、チップの生産後に鍵がハッキングされたり、復唱されたりできないようにすることも望まれる。いくつかの場合では、たとえば、鍵注入手順がサードパーティのインフラストラクチャによって認定または実行される。
チップ製造業者は、暗号機能を含むチップの生産コストを削減することを望んでいる。チップ製造業者はまた、製造されたチップの一貫したレベルのセキュリティ性能を維持しながら、生産フローを簡素化することを望んでいる。しかしながら、鍵注入は、よりコストのかかる生産ステップのうちの1つである。
チップ製造業者は、疑似乱数発生器として使用された場合のPUFの一様性を向上させるという問題にも直面している。いくつかの場合では、この問題は、PUFによって提供されるシード値の基礎となる現象に起因する、ダイ間の相互相関を含み得る。
PUFは、たとえば、各ダイの固有のオンチップ寄生効果、オンチップパス遅延など、予測不可能な物理現象に基づいている。これらの現象を使用して、たとえば、疑似乱数発生器のシード値を提供する。
生産ラインで選択された2つの異なるチップは、異なるPUF値を有していなければならない。各チップで生成されるPUF値は、デバイスの寿命中に変化してはならない。2つのチップが類似した鍵を有する(たとえば、それらのハミング距離が短い)場合、あるチップの鍵を使用して他のチップの鍵を推測することが可能であり得る(たとえば、ハッカーによる原像攻撃)。
以下に説明する改良されたPUFアーキテクチャを使用すると、各チップまたはダイにPUFの機能を提供するのに適した出力値を提供することにより、上記の問題の1つまたは複数への解決策を提供することができる。以下の改良されたPUFアーキテクチャは、各チップまたはダイが、チップまたはダイの電源投入ごとに一意の安全な鍵を自動的に生成することを可能にするPUFを使用する。安全な鍵は、ハッキングされるかまたは別の方法で危険にさらされ得る不揮発性メモリに記憶する必要はない。
改良されたPUFアーキテクチャは、さらにMACを使用して、たとえば、半導体チップに統合された暗号関数または処理などが使用するための改善されたPUF出力(たとえば、一意の鍵)を生成する。MACを使用すると、たとえば、異なるチップで生成された鍵の間のハミング距離を増加させることができる。
本明細書に開示した少なくともいくつかの実施形態では、MACからの出力を使用する改良されたPUFアーキテクチャが、シードまたは他の値を生成する方法として提供される。したがって、改良されたPUFアーキテクチャは、たとえば、製造コストを削減し、最終的なチップでのPUF動作の信頼性及び/または一様性を改善する、鍵注入を実行するための方法を提供する。
一実施形態では、方法は、少なくとも1つのPUFによって、少なくとも1つの値を提供することと、MACに基づいて、第1の出力を生成することと、を含み、MACは、第1の出力を生成するための入力として、少なくとも1つのPUFによって提供される少なくとも1つの値を使用する。
一実施形態では、システムは、少なくとも1つのPUFデバイスと、少なくとも1つのPUFデバイスによって提供される少なくとも1つの値に基づく第1の入力を受け取るように構成されるメッセージ認証コードMACモジュールと、少なくとも1つのプロセッサと、第1の入力に基づいて、MACモジュールから第1の出力を生成するように少なくとも1つのプロセッサに命令するよう構成される命令を含むメモリと、を含む。様々な実施形態では、MACモジュールは、ハードウェア及び/またはソフトウェアを使用して実装することができる。
一実施形態では、このシステムは、MACモジュールに値を提供する際に使用するための、PUFデバイスのうちの1つまたは複数を選択するために使用されるセレクタモジュールをさらに含む。たとえば、いくつかの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関数は予測不可能である(たとえば、MAC関数に提供された1ビット差しかない入力シーケンスは、2つの完全に異なる出力結果を提供する)。したがって、出力しか知らない場合、MAC関数への入力を認識または特定することができない。アーキテクチャ111はまた、たとえば、擬似乱数発生器としてのPUFの一様性を改善することができる。
一例では、PUFアーキテクチャ111によって生成される値(たとえば、一意の鍵125または他の値)は、Nビットを有する数であり得、ここでNは、PUFアーキテクチャ111を含むチップ(たとえば、メモリデバイス103または他のデバイス)に実装される暗号アルゴリズムに依存する。一例では、チップは、HMAC-SHA256を使用する暗号関数を実装し、その場合、MACモジュール123からの出力は、サイズNが256ビットである。MACモジュール123からの出力を使用することにより、(さらなる圧縮またはパディングを必要としない)鍵としての使用に適した出力値のメッセージ長が提供される。
PUFアーキテクチャ111は、図示したメモリデバイス103などのデバイスに実装され、または、たとえば、ウエハー製造生産ラインによって提供される多数の半導体チップに実装される集積回路などの他のタイプのコンピューティングデバイスに実装することができる。
一実施形態では、MACモジュール123は、たとえば、メモリデバイス103に暗号関数を提供することができる暗号モジュール127と連携し、及び/またはこれに統合され、あるいはその一部として組み込まれる。たとえば、MACがメモリデバイス103によって暗号に関する他の目的で使用されるという理由から、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のアイデンティティを提供するためのUDSとして使用される。コントローラ107はDICE-RIoTのアーキテクチャにおけるレイヤ0 L及びレイヤ1 Lを実装する。ホスト101からホストインターフェース105を介してホストメッセージを受信したことに応答して、暗号モジュール127は、上述のように、三つ組を生成するための処理を実行する。ホスト101は、三つ組を使用して、メモリデバイス103のアイデンティティを検証する。メモリデバイス103は、コンピューティングデバイス141の一例である。
例示的な説明の目的で、典型的には2つの技術的問題があることに注目することができる。第1の問題は、ボードのアイデンティティをホストに証明することである。この問題は、たとえばDICE-RIoTについて上記で論じたように、公開された三つ組及び非対称暗号を使用することによって、対処することができる。このアプローチは安全でエレガントであるが、いくつかの場合では、回路基板自体で直接使用するにはコストや時間がかかりすぎる場合がある。第2の問題は、(たとえば、無許可のメモリの置き換えを回避するために)ボード上のメモリのアイデンティティをボードに証明することである(これは、たとえば、各電源投入後に実行される)。第2の問題は、上記の公開された三つ組及び非対称暗号を使用して解決することができる。しかしながら、第2の問題に対処するには、MAC関数のみに基づくより軽いセキュリティメカニズムで十分であることが多い。
メモリデバイス103を使用して、ホスト101のデータを、たとえば、不揮発性記憶媒体109に記憶することができる。一般的なメモリデバイスの例には、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、フラッシュメモリ、ダイナミックランダムアクセスメモリ、磁気テープ、ネットワーク接続型ストレージデバイスなどが含まれる。メモリデバイス103は、通信チャネルを使用してホスト101との通信を実施するホストインターフェース105を有する。たとえば、ホスト101とメモリデバイス103との間の通信チャネルは、一実施形態では、周辺機器相互接続エクスプレス(PCI ExpressまたはPCIe)バスであり、ホスト101及びメモリデバイス103は、NVMeプロトコル(不揮発性メモリホストコントローラインターフェース規格(NVMHCI)、別名、NVM Express(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の計算性能を向上させるために、及び/またはホスト101と不揮発性記憶媒体109との間で転送されるデータ用のバッファを提供するために、コントローラ107によって使用される実行時データ及び命令を記憶するための揮発性ダイナミックランダムアクセスメモリ(DRAM)106を含む。DMA106は、記憶しているデータ/情報を維持するために電力を必要とするという点で揮発性であり、そのデータ/情報は、電力が遮断されると即座にまたは急速に失われる。
揮発性DRAM106は、典型的には、不揮発性記憶媒体109よりも待ち時間が短いが、電源が切られるとすぐにデータが失われる。したがって、パフォーマンスを改善するために、コントローラ107がその現在のコンピューティングタスクで使用する命令及びデータの一時記憶用に揮発性DRAM106を使用すると有利である。いくつかの例では、揮発性DRAM106は、いくつかの応用例では、DRAMよりも少ない電力を使用する揮発性スタティックランダムアクセスメモリ(SRAM)に置き換えられる。不揮発性記憶媒体109が、揮発性DRAM106に匹敵するデータアクセス性能(たとえば、待ち時間、読み出し/書き込み速度)を有する場合、揮発性DRAM106を排除することができ、コントローラ107は、命令及びデータに関して、揮発性DRAM106で動作する代わりに、不揮発性記憶媒体106で動作することによってコンピューティングを実行することができる。
たとえば、クロスポイントストレージ及びメモリデバイス(たとえば、3D XPointメモリ)は、揮発性DRAM106に匹敵するデータアクセス性能を有する。クロスポイントメモリデバイスは、トランジスタレスの記憶素子を使用し、各記憶素子はメモリセル及びセレクタを有し、これらは一緒に列としてスタックされる。記憶素子の列は、2つの直交する撚り(lay)のワイヤを介して接続され、1つの撚りは記憶素子列の上にあり、もう1つの撚りは記憶素子列の下にある。各記憶素子は、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による実行のために揮発性DMA106及び/またはプロセッサ内キャッシュメモリにロードすることができる。
たとえば、ファームウェア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は、MACモジュール123への入力として提供する値を取得するPUFデバイス202のうちの1つまたは複数を選択するためのインテリジェントPUF選択ブロックまたは回路として機能する。
一実施形態では、セレクタモジュール204は、PUFデバイス202の選択を、PUFデバイス202をテストした結果に、少なくとも部分的に基づいて行う。たとえば、セレクタモジュール204は、各PUFデバイス202の再現性をテストすることができる。いずれかのPUFデバイス202がテストで不合格になった場合、セレクタモジュール204は、MACモジュール123に入力値を提供することから不合格のデバイスを除外する。一例では、不合格のデバイスを一時的または無期限に除外することができる。
いくつかの実施態様では、セレクタモジュール204は、生産中及び/または現場での使用中に(たとえば、各PUFデバイス202によって提供される値の再現性をチェックすることによって)各チップのPUF機能をテストすることを可能にする。所与のPUFデバイスによって提供される2つ以上の値が異なる場合、そのPUFデバイスは故障していると判定され、MACモジュール123への入力として使用することから除外される。
一実施形態では、セレクタモジュール204を用いて、MACモジュール123からの改善されたPUF出力を計算するためのソースとして複数のPUFデバイス202を同時に使用する。たとえば、セレクタモジュール204は、第1のPUFデバイスからの値を第2のPUFデバイスからの値とリンクさせて、MACモジュール123への入力として提供することができる。いくつかの実施態様では、このアーキテクチャは、いくつかの異なる物理現象に依存しているので、堅牢なPUF出力を取得することを可能にする。
図12は、一実施形態による、1つまたは複数のPUFデバイスからの入力及びモノトニックカウンタ302からの入力(ならびに/あるいはNONCE、タイムスタンプなどの他のフレッシュネスメカニズムからの入力)を受け取るMACの出力から一意の鍵を生成するためのシステムを示している。一実施形態によれば、このシステムは、MACモジュール123の出力から一意の鍵125を生成する。図12に示すPUFアーキテクチャは、図11に示すPUFアーキテクチャに類似しているが、モノトニックカウンタ302がセレクタモジュール204に値を提供するために含まれていることを除く。様々な実施形態では、モノトニックカウンタ302は、ハードウェア及び/またはソフトウェアを使用して実装することができる。
MACモジュール123は、1つまたは複数のPUFデバイス202からの入力と、モノトニックカウンタ302からの入力とを受け取る。一例では、PUFデバイス202及びモノトニックカウンタ302から得られた値はリンクされ、次いで、MACモジュール123への入力として提供される。いくつかの実施態様では、モノトニックカウンタ302は、要求された場合にのみその値をインクリメントする不揮発性カウンタである。いくつかの実施形態では、モノトニックカウンタ302は、チップの各電源投入サイクルの後にインクリメントされる。
いくつかの実施態様では、図12のPUFアーキテクチャを使用して、半導体チップとアプリケーション内の他のコンポーネントとの間で鍵を安全に共有する方法、たとえば、公開鍵メカニズムなどを提供することができる。
いくつかの実施態様では、モノトニックカウンタ302は、PUFの各計算の前にインクリメントされ、これにより、MACモジュール123の入力が各サイクルで異なり、ひいては、提供される出力(及び/または出力のパターン)が異なることが保証される。いくつかの例では、このアプローチを使用して、各セッション鍵が異なるセッション鍵を生成することができる。
いくつかの実施形態では、セレクタモジュール204は、モノトニックカウンタ302(またはNONCE、タイムスタンプなどの他のフレッシュネスメカニズム)を、MACモジュール123への入力としてカウンタ値を提供することに関して、選択的に包含または除外することができる。
いくつかの実施形態では、モノトニックカウンタ302は、暗号モジュール127によっても使用される。いくつかの実施形態では、モノトニックカウンタを含むPUFアーキテクチャをセッション鍵生成器として使用して、各サイクルで異なる鍵を保証することができる。いくつかの実施態様では、生成されたセッション鍵は次のように保護される。セッション鍵=MAC[1つまたは複数のPUF|MTCまたは他のフレッシュネス]
他の実施形態では、次のようなメカニズムが使用される。
セッション鍵=MACkey_based[ルート鍵,MTCまたは他のフレッシュネスメカニズム]
ここで、ルート鍵=上記の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つまたは複数の値を提供すること(たとえば、PUFデバイス202のうちの1つまたは複数から値を提供すること)を含む。
ブロック413において、たとえば上述したように、PUFのうちの1つまたは複数の再現性をテストすることができる。このテストは任意選択である。
ブロック413においてテストが実行され、PUFデバイスがテストに不合格になったと判定された場合、ブロック415において、不合格のPUFデバイスは、MACに入力を提供することから除外される。この除外は、たとえば、上記で論じたように、セレクタモジュール204によって実行され得る。
ブロック417において、モノトニックカウンタ(たとえば、モノトニックカウンタ302)から値が提供される。PUFアーキテクチャにおけるモノトニックカウンタの使用は任意選択である。
ブロック419において、MACから出力が生成され、MACは、PUFによって提供される1つまたは複数の値(及び任意選択により、モノトニックカウンタからの少なくとも1つの値)をMACへの入力として使用する。
ここで、コンピューティングデバイスに実装される方法について、他の様々な実施形態を以下に説明する。この方法は、少なくとも1つの物理複製困難関数(PUF)によって、少なくとも1つの値を提供することと、メッセージ認証コード(MAC)に基づいて、第1の出力を生成することと、を含み、MACは、第1の出力を生成するための入力として、少なくとも1つのPUFによって提供される少なくとも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つの値を提供することと、メッセージ認証コード(MAC)に基づいて、第1の出力を生成することと、を含み、MACは、第1の出力を生成するための入力として、少なくとも1つのPUFによって提供される少なくとも1つの値を使用する。
以下に説明する他の様々な実施形態では、図4の方法は、システムで実行することができ、このシステムは、少なくとも1つの物理複製困難関数(PUF)デバイスと、少なくとも1つのPUFデバイスによって提供される少なくとも1つの値に基づく第1の入力を受け取るように構成されるメッセージ認証コード(MAC)モジュールと、少なくとも1つのプロセッサと、第1の入力に基づいて、MACモジュールから第1の出力を生成するように少なくとも1つのプロセッサに命令するよう構成される命令を含むメモリと、を備える。
一実施形態では、MACモジュールは回路を含む。一実施形態では、MACモジュールからの第1の出力は、ダイを識別する鍵である。一実施形態では、MACモジュールからの第1の出力はルート鍵であり、命令は、MACモジュールからの出力を使用してセッション鍵を生成するように、少なくとも1つのプロセッサに命令するようさらに構成される。
一実施形態では、このシステムは、半導体チップ(たとえば、半導体ウエハーから得られるいくつかのチップのうちの1つのチップ)の一部であり、MACモジュールからの第1の出力は、チップを識別する一意の値であり、命令は、一意の値をコンピューティングデバイスに送信するように少なくとも1つのプロセッサに命令するようさらに構成される。
一実施形態では、少なくとも1つのPUFデバイスは、複数のPUFデバイス(たとえば、PUFデバイス202)を含み、このシステムは、少なくとも1つの値を提供する少なくとも1つのPUFデバイスを選択するように構成されるセレクタモジュールをさらに備える。
一実施形態では、セレクタモジュールは、第1のPUFデバイスからの第1の値と第2のPUFデバイスからの第2の値とをリンクさせることによって、MACモジュール用の第1の入力を生成するようにさらに構成される。
一実施形態では、システムは、カウンタ値を提供するように構成されるモノトニックカウンタをさらに含み、命令は、カウンタ値を、少なくとも1つのPUFデバイスによって提供される少なくとも1つの値とリンクさせることによって、第1の入力を生成するように少なくとも1つのプロセッサに命令するようさらに構成される。
一実施形態では、このシステムは、少なくとも1つの値を提供する少なくとも1つのPUFデバイスを選択するように構成されるセレクタモジュールをさらに備え、カウンタ値を、少なくとも1つのPUFデバイスによって提供される少なくとも1つの値とリンクさせることは、セレクタモジュールによって実行される。
一実施形態では、モノトニックカウンタは、第1の入力を生成した後に、インクリメントされた値を提供するために、カウンタ値をインクリメントするようにさらに構成され、命令は、インクリメントされた値と、少なくとも1つのPUFデバイスによって提供される少なくとも1つの新しい値とに基づいて、MACモジュールから第2の出力を生成するように少なくとも1つのプロセッサに命令するようさらに構成される。
図14は、一実施形態による、1つまたは複数のPUFデバイスからの入力及びモノトニックカウンタからの入力(ならびに/あるいはNONCE、タイムスタンプなどの他のフレッシュネスメカニズムからの入力)を受け取るMACの出力からルート鍵を生成するためのシステムであって、追加のMACを追加してセッション鍵を生成する、システムを示している。
一実施形態では、システムは、一実施形態によれば、1つまたは複数のPUFデバイス202からの入力及びモノトニックカウンタ302からの入力(ならびに/あるいはNONCE、タイムスタンプなどの他のフレッシュネスメカニズムからの入力)を受け取るMACの出力からルート鍵を生成し、追加のMACモジュール504を追加して、ルート鍵入力を使用してセッション鍵を生成する。この実施形態では、MACモジュール123は、MACモジュール123からの出力としてルート鍵502を提供する。ルート鍵502は、MACモジュール504への入力であり、MACモジュール504は、上述したMAC関数、たとえば、セッション鍵=MACkey_based[ルート鍵,MTCまたは他のフレッシュネスメカニズム]を使用することができる。この鍵ベースの関数に入力されるルート鍵は、図示のように、ルート鍵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[ルート鍵,MTCまたは他のフレッシュネスメカニズム]
ここで、ルート鍵=チップ上に存在する他の任意の種類の鍵である(たとえば、この鍵は、工場または他の安全な環境でチップに注入された初期鍵とすることができる)。
一実施形態では、デバイスの初回の電源投入時に、特別なシーケンスが、デバイスの少なくとも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を出力として提供する。一実施形態では、難読化処理モジュール630を使用して、たとえば上記で論じたように、難読化された鍵635(たとえば、PUF5)を提供するために、初期鍵625に処理を実行する。
一実施形態では、難読化された鍵635は他のコンピューティングデバイスに安全に配布され、これについては、2018年4月27日に出願され、「SECURE DISTRIBUTION OF SECRET KEY USING A MONOTONIC COUNTER」と題された、Mondelloらによる、関連する米国非仮出願第15/965,731号に記載されており、その出願の全内容は、引用により本明細書に完全に記載されているかのように組み込まれている。他の実施形態では、初期鍵625及び/または本明細書に記載の難読化処理からの中間鍵のうちの任意の1つまたは複数は、同じまたは類似の方法で安全に配布することができる。任意選択により、エンドユーザ/顧客は前述のアプローチを使用して、初期鍵(たとえば、PUF0)、中間鍵、及び/または最終的な難読化された(たとえば、PUF5)の値を読み出す。たとえば、エンドユーザは、デバイスによる鍵の内部生成の適切な実行を検証し、及び/または鍵生成の統計的性質を監視することができる。
図16は、一実施形態による、難読化処理部630による難読化処理中に生成される中間鍵(PUF2)の一例を示している。上記のように、PUF1のビットを反転させて、反転されたビット702を提供する。図示のように、ビット702は、PUF1のビットと交互配置される。たとえば、図示した鍵は2ビットごとに、交互配置された反転されたビット702である。
図17は、一実施形態による、図16の難読化処理中に生成される他の中間鍵(PUF3)の一例を示している(この例では、PUF3はPUF2に基づく)。上記のように、PUF2のビットはさらに、擬似ランダムビット802と交互配置される。図示のように、ビット802はPUF2と交互配置される。たとえば、図示した鍵は3ビットごとに、交互配置された疑似ランダムビット802である。
図18は、一実施形態による、難読化された鍵(たとえば、難読化された鍵635)を生成して、不揮発性メモリ(たとえば、不揮発性記憶媒体109)に記憶するための方法を示している。一例では、図2のメモリシステムの105は、難読化された鍵を不揮発性メモリ121に記憶する。
ブロック911において、少なくとも1つの物理複製困難関数(PUF)によって提供される値に基づいて、初期鍵が生成される。
他の実施形態では、ブロック911において、鍵注入によって初期鍵が生成される。たとえば、初期鍵は、単純に、製造中にチップに注入された値とすることができる。
ブロック913において、初期鍵に基づいて、難読化された鍵が生成される。たとえば、生成された難読化された鍵は、PUF3またはPUF5である。
ブロック915において、難読化された鍵は、コンピューティングデバイスの不揮発性メモリに記憶される。たとえば、難読化された鍵は、NANDフラッシュメモリまたはEEPROMに記憶される。
一実施形態では、方法は、鍵注入を使用して初期鍵を生成することと、初期鍵に基づいて難読化された鍵を生成することと、難読化された鍵を不揮発性メモリに記憶することと、を含む。たとえば、初期鍵は、製造時の鍵注入工程中に注入される鍵とすることができる。
一実施形態では、方法は、鍵注入によって提供される初期鍵、または少なくとも1つの物理複製困難関数(PUF)によって提供される値に基づく初期鍵を生成することと、初期鍵に基づいて難読化された鍵を生成することと、難読化された鍵をコンピューティングデバイスの不揮発性メモリに記憶することと、を含む。
一実施形態では、初期鍵を生成することは、初期鍵を生成するために、メッセージ認証コード(MAC)への入力として、PUFからの値(または、たとえば、チップ上の他の値)を使用することを含む。
一実施形態では、難読化された鍵は、ユーザがアドレス指定可能なメモリ空間外の不揮発性メモリに記憶される。
一実施形態では、難読化された鍵を生成することは、初期鍵を所定のビットパターンと連結することを含む。
一実施形態では、初期鍵を所定のビットパターンと連結することは、第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の鍵の第1のコピーを、第5の鍵の第2のコピーが記憶された行またはブロックとは異なる、不揮発性メモリの行またはブロックの少なくとも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のビットパターンと交互配置することをさらに含む。
一実施形態では、難読化された鍵を生成することは、鍵を疑似ランダムビットと交互配置することをさらに含む。
一実施形態では、難読化された鍵を生成することは、鍵をエラー訂正コードビットと連結することをさらに含む。
一実施形態では、非一時的コンピュータ記憶媒体は命令を記憶し、命令は、コンピューティングデバイス上で実行された場合に、コンピューティングデバイスに方法を実行させ、この方法は、少なくとも1つの物理複製困難関数(PUF)を使用して初期鍵を生成することと、初期鍵に基づいて難読化された鍵を生成することと、難読化された鍵を不揮発性メモリに記憶することと、を含む。
図19は、一実施形態による、鍵注入1010に基づいて初期鍵625を生成し、初期鍵を難読化し、難読化された鍵を不揮発性メモリに記憶するために使用されるコンピューティングデバイス1003を示している。
一実施形態では、初期鍵625は、注入された鍵1010を使用して生成される。たとえば、初期鍵625は、製造または他の組み立てもしくはテスト中に、工場または他の安全な環境で注入されることによって、チップ内に存在する。一例では、初期鍵625は、コンピューティングデバイス1003の初期UDSとして使用される。難読化はUDSに適用することもできる。UDSは、DICE-RIoTが鍵及び証明書の安全な生成を行うために使用を開始するシークレットである。初期鍵の難読化を高めるための処理を適用することは、注入された鍵(たとえば、鍵注入1010からの値)に(モジュール630を介して)難読化処理を適用することによって実行される。他の実施形態では、難読化処理は、チップまたはダイに記憶されるか、または別の方法で存在し得る他の任意の値に適用することができる。
鍵の生成及び安全な記憶の変形例
ここで、様々な追加の非限定的な実施形態を以下に説明する。一実施形態では、システムボードの初回の電源投入後に(またはその最中に)、特別なシーケンスがアクティブ化されて、暗号エンジン(たとえば、暗号モジュール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の一方を受け取ることができる。次いで、動作(複数可)を逆の順序で適用すると、元のPUFが得られる。たとえば、PUF1からPUF5への処理ステップを実行して、ハッカーが、内容(たとえば、鍵ビット)を読み出すことと、元の鍵に戻して特定するために、適用された動作(複数可)を知っていることとの両方が必要になるような方法で難読化されたPUFを記憶する。
結び
非一時的コンピュータ記憶媒体を使用して、ファームウェア104の命令を記憶したり、プロセッサ143もしくは処理デバイス111の命令を記憶したりすることができる。命令が、たとえば、メモリデバイス103のコントローラ107またはコンピューティングデバイス603によって実行された場合、命令はコントローラ107に上記で論じた方法のいずれかを実行させる。
この説明では、説明を簡単にするために、様々な機能及び動作を、コンピュータ命令によって実行されるか、またはコンピュータ命令によって引き起こされるものとして説明し得る。しかしながら、そのような表現が意味することは、マイクロプロセッサなどの1つまたは複数のコントローラまたはプロセッサによりコンピュータ命令を実行することによって、それらの機能がもたらされることであるということを当業者は認識するであろう。あるいは、または組み合わせて、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)を使用するなど、ソフトウェア命令の有無にかかわらず、専用の回路を使用して、それらの機能及び動作を実装することができる。実施形態は、ハードワイヤード回路を使用して、ソフトウェア命令なしで、またはソフトウェア命令と組み合わせて実装することができる。このように、本技術は、ハードウェア回路及びソフトウェアのいずれの特定の組み合わせにも、データ処理システムによって実行される命令のいずれの特定のソースにも限定されない。
いくつかの実施形態は、完全に機能するコンピュータ及びコンピュータシステムに実装することができるが、様々な実施形態は、様々な形態のコンピューティング製品として配布することが可能であり、実際に配布を行うために使用される特定のタイプの機械可読媒体またはコンピュータ可読媒体に関係なく適用することが可能である。
少なくともいくつかの開示した態様は、少なくとも部分的に、ソフトウェアで具現化することができる。すなわち、本技術は、コンピュータシステムまたは他のデータ処理システムにおいて、そのプロセッサ、たとえば、マイクロプロセッサまたはマイクロコントローラなどが、ROM、揮発性RAM、不揮発性メモリ、キャッシュ、またはリモートストレージデバイスなどのメモリに含まれる命令のシーケンスを実行することに応答して、実施され得る。
実施形態を実施するために実行されるルーチンは、「コンピュータプログラム」と呼ばれる、オペレーティングシステムの一部、または特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、または命令のシーケンスとして実装され得る。コンピュータプログラムは、典型的には、コンピュータ内の様々なメモリ及びストレージデバイスに様々な時点で設定される1つまたは複数の命令を含み、1つまたは複数の命令は、コンピュータ内の1つまたは複数のプロセッサによって読み出されて実行された場合に、様々な態様を含む要素を実行するために必要な動作をコンピュータに実行させる。
有形の非一時的コンピュータ記憶媒体を使用して、ソフトウェア及びデータを記憶することができ、これらは、データ処理システムによって実行された場合に、システムに様々な方法を実行させる。実行可能なソフトウェア及びデータは、たとえば、ROM、揮発性RAM、不揮発性メモリ、及び/またはキャッシュを含む様々な場所に記憶され得る。このソフトウェア及び/またはデータの一部は、これらのストレージデバイスのうちのいずれか1つに記憶され得る。さらに、データ及び命令は、集中型サーバまたはピアツーピアネットワークから取得することができる。データ及び命令の異なる部分は、異なる集中型サーバ及び/またはピアツーピアネットワークから、異なる時間に、異なる通信セッションで、または同じ通信セッションで取得することができる。データ及び命令は、アプリケーションの実行前に完全に取得することができる。あるいは、データ及び命令の一部を、実行に必要なときにジャストインタイムで動的に取得することができる。したがって、データ及び命令は、特定の時点で完全に機械可読媒体上にある必要はない。
コンピュータ可読記憶媒体の例には、記録可能及び記録不可能なタイプの媒体、たとえば、揮発性及び不揮発性メモリデバイス、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、フラッシュメモリデバイス、フロッピー及び他のリムーバブルディスク、磁気ディスク記憶媒体、及び光学記憶媒体(たとえば、コンパクトディスク読み取り専用メモリ(CD ROM)、デジタルバーサタイルディスク(DVD)など)がとりわけ含まれるが、これらに限定されない。命令は、電気、光、音響、または他の形態の伝搬信号、たとえば、搬送波、赤外線信号、デジタル信号などの一過性の媒体で具現化され得る。一過性の媒体は、典型的には、命令を送信するために使用されるが、命令を記憶可能なものとは見なされない。
様々な実施形態では、本技術を実装するために、ハードワイヤード回路が、ソフトウェア命令と組み合わせて使用され得る。このように、本技術は、ハードウェア回路及びソフトウェアのいずれの特定の組み合わせにも、データ処理システムによって実行される命令のいずれの特定のソースにも限定されない。
図面の一部では、いくつかの動作を特定の順序で示しているが、順序に依存しない動作は並べ替えられてもよく、他の動作は組み合わせられたり分割されたりしてもよい。ある並べ替えまたは他のグループ化について具体的に言及したが、その他は当業者には明らかであると思われるので、代替例の網羅的なリストは提示しない。さらに、ステージは、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせで実装できることを認識されたい。
上記の説明及び図面は例示的なものであり、限定的なものとして解釈されるべきではない。完全な理解を提供するために、多数の具体的な詳細を説明している。しかしながら、説明を不明瞭にしないように、特定の例では、よく知られている詳細または従来の詳細については説明していない。本開示における1つ実施形態または一実施形態への言及は、必ずしも同じ実施形態への言及ではなく、そのような言及は少なくとも1つを意味する。
前述の明細書では、本開示は、その特定の例示的な実施形態を参照して説明してきた。以下の特許請求の範囲に記載しているより広範の趣旨及び範囲から逸脱することなく、様々な修正がそれらに加えられ得ることは明らかであろう。したがって、本明細書及び図面は、限定的な意味でなく、例示的な意味のものと見なされるべきである。

Claims (20)

  1. コンピューティングデバイスによって、ホストデバイスからメッセージを受信することと、
    前記コンピューティングデバイスによって、識別子、証明書、及び鍵を生成することであって、前記識別子は前記コンピューティングデバイスのアイデンティティに関連し、前記証明書は前記メッセージを使用して生成される、前記生成することと、
    前記コンピューティングデバイスによって、前記識別子、前記証明書、及び前記鍵を前記ホストデバイスに送信することであって、前記ホストデバイスは、前記識別子、前記証明書、及び前記鍵を使用して前記コンピューティングデバイスの前記アイデンティティを検証するように構成される、前記送信することと、
    を含む、方法。
  2. 前記コンピューティングデバイスの前記アイデンティティを検証することは、第1のデータを提供するために前記メッセージ及び前記証明書を連結することを含む、請求項1に記載の方法。
  3. 前記コンピューティングデバイスの前記アイデンティティを検証することは、第2のデータを提供するために前記鍵を使用して前記第1のデータを復号することをさらに含む、請求項2に記載の方法。
  4. 前記コンピューティングデバイスの前記アイデンティティを検証することは、結果を提供するために前記識別子を使用して前記第2のデータを復号することと、前記結果を前記鍵と比較することと、をさらに含む、請求項3に記載の方法。
  5. 前記識別子は公開識別子であり、前記コンピューティングデバイスは秘密鍵を記憶し、前記方法は、
    派生秘密を生成するために、前記秘密鍵をメッセージ認証コードへの入力として使用すること、
    をさらに含み、
    前記公開識別子は、前記派生秘密を非対称生成器への入力として使用して生成される、請求項1に記載の方法。
  6. 前記識別子は第1の公開識別子であり、前記コンピューティングデバイスは、前記第1の公開識別子を生成するために使用される第1のデバイスシークレットを記憶し、前記方法は、
    前記ホストデバイスから置換コマンドを受信することと、
    前記置換コマンドを受信したことに応答して、前記第1のデバイスシークレットを第2のデバイスシークレットに置き換えることと、
    前記第2のデバイスシークレットを使用して生成される第2の公開識別子を前記ホストデバイスに送信することと、
    をさらに含む、請求項1に記載の方法。
  7. 前記鍵は公開鍵であり、前記証明書を生成することは、暗号化のためのデータ入力を提供するために前記メッセージを前記公開鍵と連結することを含む、請求項1に記載の方法。
  8. 前記識別子は公開識別子であり、第1の非対称生成器は、前記公開識別子及び秘密識別子を関連付けられたペアとして生成し、
    前記鍵は公開鍵であり、第2の非対称生成器は、前記公開鍵及び秘密鍵を関連付けられたペアとして生成し、
    前記証明書を生成することは、
    第1のデータを提供するために、前記メッセージを前記公開鍵と連結することと、
    第2のデータを提供するために、前記秘密識別子を使用して前記第1のデータを暗号化することと、
    前記証明書を提供するために、前記秘密鍵を使用して前記第2のデータを暗号化することと、
    を含む、請求項1に記載の方法。
  9. 前記鍵は公開鍵であり、前記方法は、非対称鍵生成器への入力として乱数を生成することをさらに含み、
    前記公開鍵及び関連付けられた秘密鍵は、前記非対称鍵生成器を使用して生成される、請求項1に記載の方法。
  10. 前記乱数は、物理複製困難関数(PUF)を使用して生成される、請求項9に記載の方法。
  11. 少なくとも1つのプロセッサと、
    命令を含むメモリと、
    を備えるシステムであって、前記命令は、前記少なくとも1つのプロセッサに、
    コンピューティングデバイスにメッセージを送信することと、
    前記コンピューティングデバイスから、識別子、証明書、及び鍵を受信することであって、前記識別子は前記コンピューティングデバイスのアイデンティティに関連し、前記証明書は前記コンピューティングデバイスによって前記メッセージを使用して生成される、前記受信することと、
    前記識別子、前記証明書、及び前記鍵を使用して、前記コンピューティングデバイスの前記アイデンティティを検証することと、
    を行うように命令するよう構成される、前記システム。
  12. 前記コンピューティングデバイスの前記アイデンティティを検証することは、
    第1のデータを提供するために、前記メッセージ及び前記証明書を連結することと、
    第2のデータを提供するために、前記鍵を使用して前記第1のデータを復号することと、
    結果を提供するために、前記識別子を使用して前記第2のデータを復号することと、
    前記結果を前記鍵と比較することと、
    を含む、請求項11に記載のシステム。
  13. 前記識別子は第1の公開識別子であり、前記コンピューティングデバイスは、前記第1の公開識別子を生成するために使用される第1のデバイスシークレットを記憶し、前記命令は、前記少なくとも1つのプロセッサに、
    置換コマンドを前記コンピューティングデバイスに送信することであって、前記置換コマンドは、前記コンピューティングデバイスに、前記第1のデバイスシークレットを第2のデバイスシークレットに置き換えさせる、前記送信することと、
    前記コンピューティングデバイスから、前記第2のデバイスシークレットを使用して生成される第2の公開識別子を受信することと、
    を行うように命令するようさらに構成される、請求項11に記載のシステム。
  14. 前記コンピューティングデバイスは、前記第2のデバイスシークレットを、派生秘密を提供するメッセージ認証コードへの入力として使用し、前記派生秘密を使用して前記第2の公開識別子を生成するように構成される、請求項13に記載のシステム。
  15. 前記置換コマンドは、前記第1のデバイスシークレットに基づく値を有するフィールドを含む、請求項13に記載のシステム。
  16. フレッシュネスを生成するように構成されるフレッシュネスメカニズムをさらに備え、
    前記コンピューティングデバイスに送信される前記メッセージは、前記フレッシュネスを含む、請求項11に記載のシステム。
  17. 前記コンピューティングデバイスの前記アイデンティティは、英数字の文字列を含む、請求項11に記載のシステム。
  18. 命令を記憶する非一時的コンピュータ記憶媒体であって、前記命令は、コンピューティングデバイスで実行された場合に、前記コンピューティングデバイスに少なくとも、
    ホストデバイスからメッセージを受信することと、
    識別子、証明書、及び鍵を生成することであって、前記識別子は前記コンピューティングデバイスのアイデンティティに対応し、前記証明書は前記メッセージを使用して生成される、前記生成することと、
    前記コンピューティングデバイスの前記アイデンティティを検証する際に使用するために、前記識別子、前記証明書、及び前記鍵を前記ホストデバイスに送信することと、
    を行わせる、前記非一時的コンピュータ記憶媒体。
  19. 前記識別子は、秘密識別子に関連付けられた公開識別子であり、前記鍵は、秘密鍵に関連付けられた公開鍵であり、前記証明書を生成することは、
    第1のデータを提供するために、前記メッセージを前記公開鍵と連結することと、
    第2のデータを提供するために、前記秘密識別子を使用して前記第1のデータを暗号化することと、
    前記証明書を提供するために、前記秘密鍵を使用して前記第2のデータを暗号化することと、
    を含む、請求項18に記載の非一時的コンピュータ記憶媒体。
  20. 前記コンピューティングデバイスの前記アイデンティティを検証することは、結果を提供するために、前記識別子を使用して復号操作を実行することと、前記結果を前記鍵と比較することと、を含む、請求項18に記載の非一時的コンピュータ記憶媒体。
JP2021557289A 2019-03-25 2020-03-03 秘密鍵を使用したアイデンティティの検証 Pending JP2022528641A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/363,196 2019-03-25
US16/363,196 US11323275B2 (en) 2019-03-25 2019-03-25 Verification of identity using a secret key
PCT/US2020/020781 WO2020197718A1 (en) 2019-03-25 2020-03-03 Verification of identity using a secret key

Publications (1)

Publication Number Publication Date
JP2022528641A true JP2022528641A (ja) 2022-06-15

Family

ID=72605209

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021557289A Pending JP2022528641A (ja) 2019-03-25 2020-03-03 秘密鍵を使用したアイデンティティの検証

Country Status (7)

Country Link
US (2) US11323275B2 (ja)
EP (1) EP3949265A4 (ja)
JP (1) JP2022528641A (ja)
KR (1) KR20210131438A (ja)
CN (1) CN113615125A (ja)
TW (1) TWI740409B (ja)
WO (1) WO2020197718A1 (ja)

Families Citing this family (14)

* 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
US11218330B2 (en) 2019-03-25 2022-01-04 Micron Technology, Inc. Generating an identity for a computing device using a physical unclonable function
US11361660B2 (en) * 2019-03-25 2022-06-14 Micron Technology, Inc. Verifying identity of an emergency vehicle during operation
US11271755B2 (en) * 2019-03-25 2022-03-08 Micron Technology, Inc. Verifying vehicular identity
JP2020167509A (ja) * 2019-03-29 2020-10-08 コベルコ建機株式会社 情報処理システム、情報処理方法、およびプログラム
US11552781B2 (en) * 2019-04-05 2023-01-10 Honeywell International Inc. Using error detection bits for cryptographic integrity and authentication
EP3913880A1 (en) * 2020-05-19 2021-11-24 Continental Teves AG & Co. OHG Method of and system for secure data export from an automotive engine control unit
US11893141B2 (en) * 2021-02-18 2024-02-06 PUFsecurity Corporation Method and control circuit for managing information of electronic device
CN113329371B (zh) * 2021-04-29 2022-12-20 北京航空航天大学 一种基于puf的5g车联网v2v匿名认证与密钥协商方法
US20220385485A1 (en) * 2021-06-01 2022-12-01 Micron Technology, Inc. Identity theft protection with no password access
WO2022271554A1 (en) * 2021-06-24 2022-12-29 Google Llc Protection environment for attestation and sealing using a device identifier composition engine
US11977640B2 (en) * 2021-07-12 2024-05-07 Dell Products, L.P. Systems and methods for authenticating the identity of an information handling system
KR102665448B1 (ko) * 2021-12-14 2024-05-10 인하대학교 산학협력단 하이브리드 전자서명 방법
KR102391791B1 (ko) * 2021-12-24 2022-04-28 쌍용자동차 주식회사 능동형 차량 사이버 해킹 대응장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170104580A1 (en) * 2015-10-12 2017-04-13 Microsoft Technology Licensing, Llc Migrating secrets using hardware roots of trust for devices
JP2018525891A (ja) * 2015-07-03 2018-09-06 アフェロ インコーポレイテッドAfero, Inc. モノのインターネット(IoT)システムに安全な通信チャネルを確立するための装置及び方法

Family Cites Families (122)

* 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
AU2001247941B2 (en) 2000-04-11 2007-09-06 Mathis, Richard M. Method and apparatus for computer memory protection and verification
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
US7840803B2 (en) 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
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
AU2003293125A1 (en) * 2002-11-27 2004-06-23 Rsa Security Inc Identity authentication system and method
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
WO2006026347A2 (en) 2004-08-25 2006-03-09 The Marenco Group Anti-carjacking system
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 한국전자통신연구원 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법
US9830637B2 (en) 2007-02-23 2017-11-28 Epona Llc System and method for processing vehicle transactions
DE602007000729D1 (de) 2007-06-15 2009-04-30 Ntt Docomo Inc Verfahren und Vorrichtung zur Authentifizierung
US20090179775A1 (en) 2008-01-10 2009-07-16 Gm Global Technology Operations, Inc. Secure information system
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
US8699714B2 (en) 2008-11-17 2014-04-15 Intrinsic Id B.V. Distributed PUF
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 株式会社東芝 暗号化鍵生成装置およびプログラム
US9774581B2 (en) 2012-01-20 2017-09-26 Interdigital Patent Holdings, Inc. Identity management with local functionality
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
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
EP2904732B1 (en) 2012-10-04 2018-11-28 Intrinsic ID B.V. System for generating a cryptographic key from a memory used as a physically unclonable function
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
EP2965254B1 (en) 2013-03-08 2020-05-13 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
US10033814B2 (en) 2013-10-08 2018-07-24 Ictk Holdings Co., Ltd. Vehicle security network device and design method therefor
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
EP4027576B1 (en) * 2014-01-13 2023-11-22 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
KR101744388B1 (ko) 2014-04-09 2017-06-09 (주) 아이씨티케이 인증 장치 및 방법
CN111355749A (zh) * 2014-06-18 2020-06-30 维萨国际服务协会 用于已认证的通信的高效方法
CN105337725B (zh) 2014-08-08 2019-04-23 中国科学院数据与通信保护研究教育中心 一种密钥管理装置及方法
US10805093B2 (en) 2014-10-13 2020-10-13 Intrinsic-Id B.V. Cryptographic device comprising a physical unclonable function
US9935937B1 (en) 2014-11-05 2018-04-03 Amazon Technologies, Inc. Implementing network security policies using TPM-based credentials
EP4254875A3 (en) 2014-11-13 2023-11-15 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
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
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
JP6103169B1 (ja) 2015-11-05 2017-03-29 三菱電機株式会社 セキュリティ装置、及びセキュリティ方法
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 不正検知方法、監視電子制御ユニット及び車載ネットワークシステム
CA2955277C (en) 2016-01-28 2020-07-07 TrustPoint Innovation Technologies, Ltd. 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
US10397215B2 (en) 2016-09-27 2019-08-27 Visa International Service Assocation Secure element installation and provisioning
US10593198B2 (en) 2016-12-06 2020-03-17 Flir Commercial Systems, Inc. Infrastructure to vehicle communication protocol
WO2018125989A2 (en) 2016-12-30 2018-07-05 Intel Corporation The internet of things
PH12017000044B1 (en) 2017-02-13 2018-08-20 Samsung Electronics Co Ltd Vehicle parking area access management system and method
US20200005568A1 (en) 2017-03-03 2020-01-02 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 株式会社東芝 更新制御装置、ソフトウェア更新システムおよび更新制御方法
JP6903529B2 (ja) 2017-09-11 2021-07-14 株式会社東芝 情報処理装置、情報処理方法およびプログラム
US11140141B2 (en) 2017-09-18 2021-10-05 Fiske Software Llc Multiparty key exchange
CA3020431A1 (en) 2017-10-11 2019-04-11 Marc Chelnik Vehicle parking authorization assurance system
JP7136903B2 (ja) 2017-10-22 2022-09-13 エルジー エレクトロニクス インコーポレイティド デジタル認証書を管理するための暗号化方法及びそのシステム
US10812257B2 (en) 2017-11-13 2020-10-20 Volkswagen Ag Systems and methods for a cryptographically guaranteed vehicle identity
US11323249B2 (en) 2017-12-20 2022-05-03 Lg Electronics, Inc. Cryptographic methods and systems for authentication in connected vehicle systems and for other uses
US11011056B2 (en) 2018-01-29 2021-05-18 Fujitsu Limited Fragmentation-aware intelligent autonomous intersection management using a space-time resource model
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
US11482017B2 (en) 2018-10-12 2022-10-25 Micron Technology, Inc. Method and apparatus to recognize transported passengers and goods
US11716194B2 (en) 2018-10-12 2023-08-01 Micron Technology, Inc. Vehicle communication for authorized entry
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 한국전자통신연구원 차량 통신을 위한 보안 관리 시스템, 그것의 동작 방법, 및 그것을 포함하는 차량 통신 서비스 제공 시스템의 메시지 처리 방법
US11361660B2 (en) 2019-03-25 2022-06-14 Micron Technology, Inc. Verifying identity of an emergency vehicle during operation
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
US11218330B2 (en) 2019-03-25 2022-01-04 Micron Technology, Inc. Generating an identity for a computing device using a physical unclonable function

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018525891A (ja) * 2015-07-03 2018-09-06 アフェロ インコーポレイテッドAfero, Inc. モノのインターネット(IoT)システムに安全な通信チャネルを確立するための装置及び方法
US20170104580A1 (en) * 2015-10-12 2017-04-13 Microsoft Technology Licensing, Llc Migrating secrets using hardware roots of trust for devices

Also Published As

Publication number Publication date
US20200313909A1 (en) 2020-10-01
EP3949265A4 (en) 2022-12-21
TW202038123A (zh) 2020-10-16
EP3949265A1 (en) 2022-02-09
US20220224550A1 (en) 2022-07-14
US11323275B2 (en) 2022-05-03
WO2020197718A1 (en) 2020-10-01
CN113615125A (zh) 2021-11-05
TWI740409B (zh) 2021-09-21
KR20210131438A (ko) 2021-11-02

Similar Documents

Publication Publication Date Title
TWI740409B (zh) 使用密鑰之身份驗證
US11218330B2 (en) Generating an identity for a computing device using a physical unclonable function
US11361660B2 (en) Verifying identity of an emergency vehicle during operation
US11962701B2 (en) Verifying identity of a vehicle entering a trust zone
US10742406B2 (en) Key generation and secure storage in a noisy environment
CN113632066A (zh) 所执行代码中的错误识别
CN113632084B (zh) 运行时代码执行验证方法、设备及系统
KR20210132721A (ko) 네트워크에 액세스 시의 보안 통신
EP2575068A1 (en) System and method for providing hardware-based security
US20200310776A1 (en) Over-the-air update validation
US20230370446A1 (en) Track Activities of components in Endpoints having Secure Memory Devices via Identity Validation
CN117150496A (zh) 装置标识符组合引擎3层架构

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211029

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221122

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230620