(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024071510
(43)【公開日】2024-05-24
(54)【発明の名称】シール及び検証によるデバイス認証
(51)【国際特許分類】
G06F 21/44 20130101AFI20240517BHJP
G06F 21/60 20130101ALI20240517BHJP
G06F 21/57 20130101ALI20240517BHJP
H04L 9/10 20060101ALI20240517BHJP
【FI】
G06F21/44
G06F21/60 360
G06F21/57 320
H04L9/10 A
【審査請求】有
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2024047633
(22)【出願日】2024-03-25
(62)【分割の表示】P 2021527944の分割
【原出願日】2019-11-22
(31)【優先権主張番号】18208070.5
(32)【優先日】2018-11-23
(33)【優先権主張国・地域又は機関】EP
(71)【出願人】
【識別番号】504344495
【氏名又は名称】ナグラビジョン エス アー
(74)【代理人】
【識別番号】100129229
【弁理士】
【氏名又は名称】村澤 彰
(72)【発明者】
【氏名】グルモー,ファビアン
(57)【要約】
【課題】通信デバイス(1)は、生産フローへの影響を最小限に抑える。
【解決手段】信頼の基点RoT(2)であって、秘密情報を格納するのに安全な環境を提供し、安全にデータを共有するように構成された信頼の基点RoT(2)と、前記基点RoT(2)は、安全にデータを共有するように構成され、前記基点RoT(2)によって制御されたメモリーであって、通信デバイス(1)の製造(101)の際に、通信デバイス(1)のデバイス情報を、メモリ内に保存するように構成されたメモリーと、前記RoT(2)に関する情報をシステム(10)に提供し、前記メモリ内に保存された装置情報をシステム(10)に提供するように構成されたプロセッサとを備えることを特徴とする通信デバイス。
【選択図】
図1
【特許請求の範囲】
【請求項1】
信頼の基点RoT(2)であって、秘密情報を格納するのに安全な環境を提供し、安全にデータを共有するように構成された信頼の基点RoT(2)と、
前記基点RoT(2)によって制御されたメモリーであって、通信デバイス(1)の製造(101)の際に、通信デバイス(1)のデバイス情報をメモリ内に保存するように構成されたメモリーと、
前記RoT(2)に関する情報をシステム(10)に提供し、前記メモリ内に保存された装置情報をシステム(10)に提供するように構成されたプロセッサとを備えることを特徴とする通信デバイス。
【請求項2】
前記通信デバイス(1)が1つ又は複数のシステムオンチップSoC(3)を有し、前記RoT(2)が各SoC(3)に対するデバイス情報のプログラミングを管理することを特徴とする請求項1に記載の通信デバイス。
【請求項3】
前記RoT(2)が前記通信デバイス(1)の前記SoC(3)のいずれにも埋め込まれていないことを特徴とする請求項2に記載の通信デバイス。
【請求項4】
前記RoT(2)と前記通信デバイス(1)とを暗号的にバインドするのに使用するために、デバイス生産中(101)に前記通信デバイス(1)の各SoC(3)との専用バインディング鍵に、前記RoT(2)が合意するように構成されていることを特徴とする請求項3に記載の通信デバイス。
【請求項5】
前記通信デバイス(1)と前記RoT(2)との間の通信を暗号化するためにデバイス鍵が使用されるように構成されていることを特徴とする請求項4に記載の通信デバイス。
【請求項6】
前記RoT(2)が前記システム(10)に1回だけブートストラップするように構成されていることを特徴とする上記請求項1から5のいずれか1項に記載の通信デバイス。
【請求項7】
前記RoT(2)に関する前記情報が前記RoT(2)の公開idから成ることを特徴とする上記請求項1から5のいずれか1項に記載の通信デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に認証デバイスに関連する。より具体的には、本発明は、信頼の基点(Root-of-Trust)(RoT))を含むモノのインターネット(Internet of Things(IoT))デバイスに関連し、セキュリティ所有者のシステムによって認証出来る。
【背景技術】
【0002】
IoTは、電子機器やソフトウェアに組み込まれた物理的なデバイス、アプライアンス、又はアイテムのネットワークであり、これらのオブジェクトは、人との相互作用なしにデータを交換出来る。
【0003】
ITU-T Y.2060は、IoTを情報社会のグローバルインフラストラクチャとして定義し、既存及び進化する相互運用可能な情報通信技術に基づいて物理的なモノと仮想的なモノとを相互接続することで、高度なサービスを可能にする。
【0004】
「IoT」という用語の「モノ(thing)」は、物理的な世界である物理的なモノ、又は情報の世界である仮想的なモノの対象と考えられており、通信ネットワークに識別され統合することが出来る。
【0005】
この定義では、物理的なモノは物理的な世界に存在し、感知され、作動し、つながることが出来る。物理的なモノの例としては、周辺環境、産業用ロボット、物品、電気機器などが挙げられる。
この定義では、仮想的なモノは情報の世界に存在し、保存、処理、及びアクセスが可能である。仮想的なモノの例としては、マルチメディアコンテンツやアプリケーションソフトウェアなどが挙げられる。
【0006】
ITU-T Y.2060では、IoTデバイスは、通信の必須機能と、感知、作動、データキャプチャ、データ保存、及び/又はデータ処理のオプション機能を備えた機器の一部と見なされる。
【0007】
IoTデバイスは、ゲートウェイを介して通信ネットワークを通じて通信したり、ゲートウェイを使用せずに通信ネットワークを通じて通信したり、通信ネットワークを使用せずに直接通信することが出来るなど、通常、他のデバイスとの通信を行う。また、通信シナリオの組み合わせも可能であり、例えば、デバイスは、ローカルネットワーク(即ちアドホックネットワークのような、デバイス間及びデバイスとゲートウェイ間のローカル接続性を提供するネットワーク)による直接通信、及びローカルネットワークゲートウェイを介した通信ネットワークを通じた通信を用いて、他のデバイスとの通信を行うことができる。
【0008】
通信ネットワークは、IoTデバイスによって取り入れられたデータをアプリケーション及び他のデバイスに転送したり、アプリケーションからデバイスへ命令を転送することもできる。
通信ネットワークは、一般に、信頼性が高く効率的なデータ転送のための機能を提供する。IoTネットワークインフラストラクチャは、従来のTCP/IPベースのネットワークなどの既存のネットワーク、及び/又は次世代ネットワーク(NGN)などの進化するネットワークを介して実現することができる。
【0009】
IoTデバイスは、例えばシステムオンチップ(system on a chip(SoC))の形態で集積回路の周辺に構築することが出来る。
このようなSoCには、デバイスによって常に信頼され、デバイスの資格情報とソフトウェアを強力に保護するためにハードウェアベースで提供される一連の機能である、信頼の基点(RoT)が含まれる場合がある。
【0010】
RoTは通常、統合されたセキュア要素に実装される。RoTがデバイスのSoCに埋め込まれておらず、デバイスの統合されたセキュア要素に実装されていない可能性がある。RoTは、一般的に、信頼出来る実行環境(trusted execution environment(TEE))よりも信頼出来る。
【0011】
RoTは、オンチップの他のデバイスとデータを安全に共有出来る。RoTは、SoC内で、また異なるホストCPUで実行されるクライアントアプリケーションの代わりに、秘密(secrets)を作成、格納、使用するのに安全な環境を提供する。RoTは、セキュリティモジュール、暗号コア等で構成出来る。
【0012】
IoTデバイスは、例えばある機能を起動するために、接続されているデバイスの強力な認証を必要とする特定のシステムに接続出来る。
このような認証は、通常、デバイスとシステム間の強力な暗号化認証プロトコルのセットアップで使用されるデバイスに埋め込まれたデバイス毎に一意の秘密(unique per device secret)に依存している。たとえば、システムは IoTプラットフォームであっても良い。
【0013】
これらのデバイス毎に一意の秘密は、通常、RoTで保護され、通常はSoC又はセキュアエレメントの製造中にプロビジョニングされる。
システムは、デバイスに埋め込まれたRoT秘密を認証する。デバイスを認証するには、システムは、デバイスにRoT毎に一意の秘密のバインドを安全にする必要がある。
【0014】
マーリンペアリング(Merlin Pairing)や、TVkeyのデバイスシーリングセキュアメッセージ(Device Sealing secure message)など、様々なソリューションが存在する。マーリンペアリングは、製造時に設定されたユニークキーを使用する。
セキュアメッセージTVkeyは、チップ製造時に非対称のユニークキーセットを使用する。
【0015】
既存のソリューションの欠点は、デバイスの製造中に特定の処理が必要な点である。
このような従来の技術を用いると、デバイスの製造はより長く、より費用がかさみ、そのようなデバイスの全体的な生産フローに大きな影響を与える。
【発明の概要】
【発明が解決しようとする課題】
【0016】
既存のソリューションの欠点は、デバイスの製造中に特定の処理が必要な点である。このような従来の技術を用いると、デバイスの製造はより長く、より費用がかさみ、そのようなデバイスの全体的な生産フローに大きな影響を与える。
【課題を解決するための手段】
【0017】
本発明は、従来技術に存在する上記の課題を解決する。
【0018】
本発明の態様によれば、デバイスがシステムによってプログラムされ、認証されることが出来る方法が提案される。
デバイスの信頼の基点RoTによって管理されるメモリは、デバイスの生産中にデバイスのデバイス情報を受信出来る。
【0019】
デバイスはシステムにブートストラップされることが出来、情報は、システムの暗号化プロトコルによってRoTを認証するためのRoTとプログラムされたデバイス情報とに提供することが出来る。
これにより、認証されたRoTとシステムに知られているデバイス情報との間のバインディングが発生し、デバイスのデバイス生産を確認するために使用され、システムによってバインディングが検証されることが可能である。
【0020】
このようにして、デバイスの製造中の特定の処理を回避することが出来る。
即ち、デバイスはシステムによってプログラムされ、認証されるので、製造中の時間を節約する。
【0021】
実施形態では、デバイスは1つ又は複数のSoCを有することが出来、RoTは、各SoCのデバイス情報のプログラミングを管理することが出来る。
デバイス情報は、SoC(複数可)及びデバイスにも関連する場合がある。
デバイスに関連する場合、情報は、例えば、モジュール、CPU、又はアプリケーションに関するものである。
【0022】
一方のパーティがデバイスを提供でき、別のパーティがデバイスを所有することが出来るので、モジュールの製造元とモジュール/デバイスの所有者を有することが出来る。
従って、モジュールとそれが埋め込まれているモジュールの所有者という、それぞれの情報のプログラミングを管理する必要があるが、別のSoC上である必要はない。
【0023】
このように、デバイスの設計はより多目的であり、認証は、デバイスのRoTを使用することによってのみ異なるSoCのために実行することが出来る。
【0024】
実施形態では、RoTは、デバイスのSoCのいずれかに埋め込まれる必要はない。
このように、デバイスの設計及び生産はより多目的になる。
【0025】
実施形態では、RoTは、デバイスの生産中にデバイスの各SoCとの専用のバインディング鍵に合意することが出来、これはRoTとデバイスを暗号的にバインドするために使用出来る。
このようにして、RoTとデバイスとは相互に暗号化されてバインド出来る。キーアグリーメント(Key agreement)は、Diffie-Hellmanキー交換を利用し進んだ秘密を持つ暗号化の挑戦になる可能性がある。
【0026】
実施形態では、デバイス鍵は、デバイスとRoTとの間の通信を暗号化するために使用することが出来る。
このようにして、デバイス及びRoTは安全な方法で相互に情報を送受信することが出来る。
【0027】
実施形態では、デバイス情報のプログラミングは、永続的な方法で行うことが出来る。
このようにして、デバイス情報はデバイスに永続的に格納され、簡単に失われることはない。
【0028】
実施形態では、RoTはシステムに一回だけブートストラップするように構成することが出来る。
このように、システムへのブートストラップは一回だけ起こるので、特定のブートストラップは以前に実行されたブートストラップとのコンフリクトを生成しない。更に、システムとデバイス間の不要な通信の量を制限する。
【0029】
実施形態では、本方法は、更に、セキュリティ所有者に対してRoTのデバイス生産に関する情報を報告することから構成することが出来る。
このようにして、特定のデバイスに配置された特定のRoTのデバイス生産に関する詳細情報は、セキュリティ所有者が利用出来る。
【0030】
実施形態では、デバイスのデバイス生産の検証は、ブートストラップされたRoTがデバイスの生産中に報告されたかどうかの検証を含むことが出来る。
このようにして、デバイスの起点(origin)をセキュリティ所有者が簡単に確認出来る。
【0031】
実施形態では、検証は、システムへのデバイスのブートストラップ中に強制することが出来る。
このようにして、システムがデバイスを認証するときに、システムによるデバイス情報の検証が実行される。これにより、認証プロセスが改善される。
【0032】
実施形態では、検証は、デバイス生産に関する報告された情報がシステムによって受信された後に行うことが出来る。
このようにして、検証プロセスは、デバイス生産に関する報告された情報がシステムによって受信される時間にあまり依存しない。実施形態では、ブートストラップ情報及びデバイス生産に関する報告情報をRoTのセキュリティ所有者に報告することが出来る。
【0033】
このようにして、セキュリティ所有者は、デバイスのブートストラップ情報に対応するデバイス生産情報を決定出来る。つまり、セキュリティ所有者は、生産されたデバイスがどの認証済みデバイスに属しているかを判断出来る。
【0034】
実施形態において、RoTに関する情報は、RoTの公開idから構成することが出来る。
報告される最低限の情報は、RoTの公開識別子である。
その他の情報はオプションである。
従って、RoTのタイプが異なるデバイス生産サイトを持つ異なるデバイス所有者によって共有されている場合、異なる生産サイトを持つ各デバイス所有者は、デバイスに埋め込まれたRoTの公開識別子を報告出来るため、他のデバイスのRoTを要求できない。
【0035】
1つのRoTの種類が1つのデバイス所有者によって使用されるだけである場合、セキュリティに関するレポートは必要ない。それ以外の場合は、デバイス所有者毎のRoT公開idレポートはセキュリティのために必須である。
このようにして、特定のデバイスに配置される特定のRoTを決定することが出来る。
【0036】
本発明の別の態様によれば、記載された実施形態のいずれかに従って方法のステップを実行するように構成されたプロセッサを備えることが出来るデバイスが提案される。
【0037】
本発明の別の態様によれば、記載された実施形態のいずれかに従って方法のステップを実行するように構成された集積回路を備えることが出来るデバイスが提案される。
【0038】
実施形態では、デバイスはモノのインターネットデバイスであり得る。
【0039】
本発明の別の態様によれば、コンピュータプログラム製品が提案され、コンピュータ読み取り可能な非一時的記憶媒体上に実装することが出来る、ここでコンピュータプログラム製品は、プロセッサによって実行される際に、記載された実施形態のいずれかによる方法のステップをプロセッサに実行させることが出来るコンピュータ実行可能命令を含むことが出来る。
【0040】
本発明の別の態様によれば、コンピュータ読み取り可能な非一時的な記憶媒体が提案され、コンピュータ実行可能命令を含み、プロセッサによって実行される際にプロセッサが上記のいずれかの実施形態による方法のステップを実行させ得る。
【0041】
本発明の別の態様によれば、信頼の基点RoT(2)であって、秘密情報を格納するのに安全な環境を提供し、安全にデータを共有するように構成された信頼の基点RoT(2)と、
前記基点RoT(2)によって制御されたメモリーであって、通信デバイス(1)の製造(101)の際に、通信デバイス(1)のデバイス情報をメモリ内に保存するように構成されたメモリーと、
前記RoT(2)に関する情報をシステム(10)に提供し、前記メモリ内に保存された装置情報をシステム(10)に提供するように構成されたプロセッサとを備えることを特徴とする通信デバイスである。
【0042】
本発明の別の態様によれば、前記通信デバイス(1)が1つ又は複数のシステムオンチップSoC(3)を有し、前記RoT(2)が各SoC(3)に対するデバイス情報のプログラミングを管理することを特徴とする通信デバイスである。
【0043】
本発明の別の態様によれば、前記RoT(2)が前記通信デバイス(1)の前記SoC(3)のいずれにも埋め込まれていないことを特徴とする通信デバイスである。
【0044】
本発明の別の態様によれば、前記RoT(2)と前記通信デバイス(1)とを暗号的にバインドするのに使用するために、デバイス生産中(101)に前記通信デバイス(1)の各SoC(3)との専用バインディング鍵に、前記RoT(2)が合意するように構成されていることを特徴とする通信デバイスである。
【0045】
本発明の別の態様によれば、前記通信デバイス(1)と前記RoT(2)との間の通信を暗号化するためにデバイス鍵が使用されるように構成されていることを特徴とする通信デバイスである。
【0046】
本発明の別の態様によれば、前記RoT(2)が前記システム(10)に1回だけブートストラップするように構成されていることを特徴とする通信デバイスである。
【0047】
本発明の別の態様によれば、前記RoT(2)に関する前記情報が前記RoT(2)の公開idから成ることを特徴とする通信デバイスである。
【0048】
実施形態は、例えば、対応する参照記号が対応する部品を示す添付の概略図を参照して、次の内容について説明する。
【図面の簡単な説明】
【0049】
【
図1】
図1は、デバイスの生産、認証及び検証プロセスの例示的な実施形態を示す
図である。
【
図2】
図2は、RoTがSoCに埋め込まれているデバイスの例示的な実施形態を示す
図である。
【
図3】
図3は、RoTがSoCに埋め込まれていないデバイスの例示的な実施形態を示す
図である。
【
図4】
図4は、複数のSoCを有するデバイスの例示的な実施形態を示す
図である。
【
図5】
図5は、デバイス生産によってセキュリティ所有者に生産情報が送信されていないデバイスの生産、認証及び検証プロセスの例示的な実施形態を示す
図である。
【発明を実施するための形態】
【0050】
以下の例ではクライアントデバイスに対して参照がなされているが、開示はクライアントデバイスへの適用に限定されないことが理解される。
【0051】
図1は、デバイス1の生産、認証及び検証プロセスの例示的な実施形態を示す。
【0052】
セキュリティ所有者11は、RoTの生産100の間にRoT2にRoT公開idとRoT鍵とを提供し200、その後それらはRoT2をプログラム出来る201。
RoT公開idは、後でデバイス1が接続するシステム10と交換することが出来るRoT2に関する情報の一例である。
これは、デバイス1に配置された特定のRoTを識別するために使用することが出来る。
RoT鍵は、例えば、RoT2とデバイス1又はシステム10とを暗号的にバインドするために使用される暗号鍵の例であり得る。
【0053】
セキュリティ所有者11は、RoT2に関する情報をデバイス生産時101にもRoT2に提供することが出来る。
RoT2に関する情報は、RoT2に永久的にプログラムされるか、又はRoT2によって管理されるメモリユニットに提供される。
【0054】
デバイス生産101の間、RoT2が配置されている特定のデバイス1に関するデバイス情報は、RoT2に、又はRoT2によって管理されるセキュアメモリユニット4にシールしてもよい202。
このセキュアメモリユニット4は、RoT2の一部であっても良いし、別のメモリユニット4であっても良い。
シールは、RoT2又はRoT2によって管理されるセキュアメモリユニット4にデバイス情報を永久にプログラミングすることから成り立つ。
【0055】
特定のデバイス1に関するデバイス情報は、メーカー情報、モデル情報、ブランド情報、バージョン番号及びシリアル番号、一般に汎用一意識別子(Universal Unique Identifier)(UUID)の形式で、デバイスの抽象的な識別子を含み得るが、これに限定されない。
【0056】
図2は、RoT2がSoC3に埋め込まれたデバイス1の例示的な実施形態を示す。本実施形態においてRoT2によって管理されるセキュアメモリユニット4は、RoT2の外側に描かれているが、RoT2の一部であってもよい。
【0057】
図3は、RoT2がSoC3に埋め込まれていないデバイス1の例示的な実施形態を示す。
RoT2は、デバイス1の一部であってもよいし、あるいは、デバイス1の外部に設けてもよい。
【0058】
図3の実施形態では、RoT2とSoC3との間の通信30は、例えば通信を暗号化することによって、安全にする必要がある。
この暗号化通信30を有効にするために、RoT2は、通常、相互認証によって、例えば1回のシーリング処理(sealing procedure)の間に、鍵合意暗号プロトコルを使用して、デバイス毎に一意の鍵を使用することに合意することが出来る。
【0059】
このデバイス鍵はデバイス1に格納され、RoT2及びデバイス1を暗号化してバインドするために使用される。
RoT2とデバイス1との間の通信を暗号化する方法の例としては、RoT2とデバイス1との相互認証を使用した、標準又は独自の公開鍵ベースのセキュアチャネルが含まれる。
相互認証は製造時に行われ、共有の交渉済み秘密は、RoT2のメモリ及びデバイス1のメモリの両方にプログラムされても良い。
【0060】
次に、デバイス1の生産設備は、セキュリティ所有者11に、RoT2に関する情報のリストを報告204してもよいし、例えばRoT公開idを、デバイス1のデバイス生産に用いる。
【0061】
この情報は、後で、システム10にブートストラップされたRoT2が、生産設備によって報告され、従って生産されたことを確認するために使用することが出来る。
この情報は、たとえば、生産ログに含めることが出来る。生産ログには、たとえば、RoT公開idと共にデバイス情報、又はRoT公開idと共にデバイスのシリアル番号を含めることが出来る。
【0062】
次に、生産されたデバイス1は、システム10にブートストラップされてもよい。
これは、デバイス生産101の直後に、又はデバイス1が消費者に販売された後に行われてもよい。
【0063】
このようにして、デバイス1及びデバイス1のRoT2をブートストラップ及び認証することは、生産プロセス100、101とは別に行われ、従ってデバイスの生産フローに対する影響を最小限に抑える。
【0064】
デバイス1がシステム10にブートストラップされると、RoT2に関する情報、例えばRoT公開id、タイプ又はバージョン番号を、シーリングプロセス202の間にシールされたデバイス情報と共に、システム10に提供してもよい205。
【0065】
デバイス情報は、デバイスの製造元、例えば、ブランドや種類によって定義されてもよい。
デバイス情報は、システム10によって定義されデバイス製造者に返される一意の識別子であり得る。
【0066】
この情報の送信は、例えば事前共有秘密に基づく標準又は専有セキュアチャネルを使用して、安全な方法で実行することが出来る。
たとえば、Diffie-Hellmanキー交換を使用して、安全なチャネルを設定出来る。これについては、以下で詳しく説明する。
【0067】
デバイス1がセキュアリンクの初期化を求められた後、デバイス1は、鍵の個人部分(private part of the key)、即ち、個人デバイス鍵、及び鍵の公開部分、即ち公開デバイス鍵からなるランダムなキーペアを生成する。
【0068】
これは通常、ランダムなキーペアである。個人デバイス鍵は、暗号化の目的で1回だけ使用出来る、ノンス、数値又はビット文字列であっても良い。
公開デバイス鍵は、個人デバイス鍵に基づいて計算出来る。これは通常、デバイス1のより安全な部分で行われる。
【0069】
デバイス1は、公開デバイス鍵をシステム10に送信する。
この送信は、デバイス1の安全な部分を介して直接、又はデバイス1の別のより安全性の低い部分を介して行ってもよい。
デバイス1は、システム10にその一意のIDを送信することも出来る。
【0070】
システム10は、デバイス1に属するこの一意のIDをチェックして、システム10とのセキュアリンクを確立しようとしているデバイス1の同一性を確認し、その一意のIDが実際に生産されたチップに属していることを確認してもよい。
更に、デバイス1は、署名(signature)を用いて送信にサインしてもよい。これは、認証、否認防止、及びメッセージが送信後に変更されていないかどうかを確認するために使用出来る。
【0071】
送信を受信すると、システム10は送信のパラメータをチェックする。これは、たとえば、デバイス1によって送信される署名又は一意のIDをチェックすることを意味する。
【0072】
次に、システム10は、鍵の個人部分-個人サーバ鍵-及び鍵の公開部分-公開サーバ鍵-から構成されるキーペアを生成する。これはランダムなキーペアであっても良い。個人サーバの鍵はノンスであっても良く、公開サーバの鍵は、個人サーバ鍵に基づいて計算出来る。
【0073】
次に、システム10は、公開デバイス鍵及び個人サーバ鍵に基づいて、セキュアリンクキーを計算してもよい。このセキュアリンクキーは、システム10とデバイス1との間に形成されるセキュアリンクを安全にするために使用され得る。
【0074】
システム10は、セキュアリンクキーを計算する際に、公開サーバ鍵をデバイス1に送信する。
この送信は、デバイス1の安全性の低い部分を介して、又はデバイス1のより安全な部分に直接行うことが出来る。
システム10はまた、そのサーバ証明書を送信し、送信を介して送られた公開サーバ鍵が実際にシステム10によって所有されていることを証明するために使用される。
更に、システム10は、その署名を用いて送信にサインしてもよい。
【0075】
送信を受信すると、デバイス1は、署名、サーバ証明書などの送信のパラメータをチェックし、デバイス1の個人鍵及びシステム10の公開鍵に基づいてセキュアリンクキーを算出する。
これで、デバイス1及びシステム10の両方が、セキュアリンクキーに合意する。
このキーは、次に、デバイス1とシステム10との間のセキュアリンクを介して送信されるデータを暗号化及び復号化するために使用され得る。
【0076】
システム10は、強力な暗号認証プロトコル及び秘密を使用してRoT2を認証することが出来る。
このようなプロトコル及び秘密の例としては、TLS若しくはDTLS PKI、RAW証明書、又は相互認証を使用したPKIスキームなどがある。
このようにして、システム10は、RoT2がシステム10によって信頼され得るか否かを検証してもよい。
このようにして、セキュリティシステムは、信頼されたRoT秘密とデバイス1のデバイス情報との間のバインディングを受け取ることがある。
【0077】
例えば、シーリングデバイス1情報及びRoT情報が暗号で認証されたRoT2から受信されたデータであることをシステム10が認証した場合に、RoT2は信頼され得る。
ブートストラップ205をシステムに対して、例えばRoT2によって1回だけ行ってもよい。
【0078】
次に、システム10は、ブートストラップされたRoT2が生産設備によって報告された204か否かを確認しても良い206。
この検証206は、ブートストラップ205中に強制されても良いし、システム10によって生産ログが受信された後に実行されても良い。
【0079】
このようにして、システム10は、システム10にブートストラップされたRoT2が実際に生産設備によって生産されたことを検証することが出来る。
この検証は、デバイスのメモリの特定の測定を行い、ブートストラップされたタイプのデバイスの有効なパターンに対応することを確認することによって行うことが出来る。
【0080】
RoT秘密は、RoT2の認証に使用出来る。
更に、システム10は、デバイス1のデバイス情報を用いてシステム10にブートストラップされたRoT2が、実際にその特定のデバイス1に配置されたことを確認することが出来る。
この検証206の間、RoT公開idは、RoT2が生産設備によって報告されたことを確認するために、デバイス製造情報と例えばRoT秘密との間のリンクとして使用され得る。
【0081】
検証206の後、RoT2とデバイス1との一意のバウンディング(unique bounding)は、システム10のデータベースに認証済みとして報告され得る。
【0082】
また、デバイス2の生産に使用されたRoT公開idのリストを、生産設備が報告しないことも考えられる。
【0083】
例えば、システム10のセキュリティ所有者は、RoT公開idをRoT2に既に提供しており、既にそれを知っている可能性がある。
更に、RoT公開idが、例えばデバイス1のインストール中に現場で(in the field)報告されることがある。
RoT公開idは、例えばデバイスに一致するメモリフットプリントをチェックするなどして、フィールド内のリモート構成証明によって報告及び検証することも出来る。
【0084】
ブートストラップ205からのブートストラップ情報及び生産情報204は、RoT2を使用する全システム10での一貫性を検証するために、RoTセキュリティ所有者11に報告され得る。
【0085】
従って上記の方法は、正しいデバイス情報のシーリング202のデバイス生産設備を信頼し、生産ログを正しく報告する204ことに依存する。この方法は、多くの攻撃の可能性を妨げる可能性がある。
【0086】
まず、「正規のデバイスアップグレード(ligid device upgrade)」と呼ばれる攻撃を防御することが出来る。
この攻撃では、正規のRoT2を有する正規のデバイス1は、別の正規のデバイス1のふりをすることが出来る。
【0087】
通常、ローエンドデバイス1は、ハイエンドデバイス1としてブートストラップ205を試みる。
信頼された環境でデバイス情報がRoT2にシールされ202、ブートストラップ205中にシステムに安全に報告されるので、ローエンドデバイス1は、生産後にハイエンドデバイス1のふりをすることができない。
【0088】
第二に、「偽りのデバイス(non-legit device)」と呼ばれる攻撃が防御される。
この攻撃では、正しいRoT2を有する偽りのデバイス1は、正規のデバイス1のふりをすることが出来る。
【0089】
典型的には、偽りのデバイス1は、システム10の有効なRoT2を用いて、正規のシステム10内でブートストラップ205してもよい。
偽りのデバイス1は、システム10が、例えばそのRoT公開idのブートストラップされたRoT2についての情報が、正規の生産設備100,101によって報告204されていないことを検出したときに、検証ステップ206中に検出される。
【0090】
第三に、「クローンデバイス(clone device)」と呼ばれる攻撃が防御される。
この攻撃では、偽りのデバイス1は、RoT2がデバイス1のSoC3の外部にある場合に、正規のデバイス1のRoT2を使用する可能性がある。
シーリング処理202の間に、デバイス1に一意のデバイス毎の鍵がインストールされ(203)、秘密鍵のクローンを作成することを攻撃者に強制する場合がある。
【0091】
第四に、「クローンRoT(clone RoT)」と呼ばれる攻撃も防御される。
この攻撃では、クローンRoT2は、正規のRoT2の秘密を使用して、システムにブートストラップしようとする205。
クローンRoT2は、単一のRoT2が複数のブートストラップ205を試みる場合、検証ステップ206中に検出される場合がある。
【0092】
次に、システムはブートストラップ205を拒否し、更なる調査のためにRoT2にタグを付けるかも知れない。このようにして、セキュリティ所有者は、特定のRoT2がブートストラップを一回だけ確認するだけで、特定のRoT2のクローンを防ぐことによって、RoT2の一貫性を検証出来る。
【0093】
図4は、複数のSoC3を有するデバイス1の例示的な実施形態を示す。
【0094】
本実施形態では、デバイス1のRoT2は、1つ又は複数の生産設備を有する複数のシーリング処理を管理することが出来る。上記の方法は、デバイス1毎に複数のSoC3もサポートする。
【0095】
図5は、デバイス生産によってセキュリティ所有者に生産情報が送られていないデバイス1の生産、認証及び検証プロセスの例示的な実施形態を示す。
【0096】
システム10の1つの利点は、生産情報が部分的又は欠落している場合でも、システム10が機能し、部分的に安全なままである点である。
検証後のプロセス207は、完全に認証されていないデバイス1を認証するために実行されてもよい。
これは、多数のデバイス1を管理するシステム10に特に有用である。
【0097】
このような事後検証処理207は、例えば、RoT2によって行われるデバイスメモリ領域の安全な遠隔測定を含み得る。これは、RoT2がSoC3に統合されている場合に特に効率的である。
【0098】
1つ以上の実施形態は、コンピュータシステムで使用するためのコンピュータプログラム製品として実装され得る。
プログラム製品のプログラムは、本明細書に記載されている方法を含む実施形態の機能を定義し、様々なコンピュータ読み取り可能な記憶媒体に含めることが出来る。
【0099】
コンピュータ読み取り可能な記憶媒体は、一時的ではない記憶媒体である場合がある。
例示的なコンピュータ読み取り可能な記憶媒体には、
(i)その上で情報が永久的に記憶可能な書き込み不可の記憶媒体(例えば、CD-ROMドライブ、ROMチップ、又はあらゆる種類の固体不揮発性半導体メモリによって読み取り可能なCD-ROMディスクなどのコンピュータ内の読み取り専用メモリデバイス)、
(ii)その上に変更可能な情報が記憶され得る書き込み可能な記憶媒体、例えば、ハードディスクドライブ又は任意のタイプの固体ランダムアクセス半導体メモリ、フラッシュメモリが含まれる。
【0100】
上記の実施形態のうちの2つ以上は、適切な方法で組み合わせてもよい。