(57)【要約】      （修正有）【課題】オンチップ不揮発性メモリ（ＮＶＭ）とオンチッププロセッサとを有する集積回路（ＩＣ）へのコンパクトなセキュリティ証明書記憶のための改善された方法およびシステムを提供する。【解決手段】オンチップＮＶＭは、ＩＣに割り当てられたセキュリティ証明書の装置固有部分の表現を記憶する。オンチッププロセッサは、セキュリティ証明書の共通部分を取得し、取得した共通部分と、オンチップＮＶＭに記憶されている装置固有部分の表現と、からセキュリティ証明書を再構築する。そして、再構築されたセキュリティ証明書を使用してセキュリティ操作を実行する。【選択図】図２
2019134423.tif 000002
【特許請求の範囲】
【請求項１】
集積回路（ＩＣ）であって：
前記ＩＣに割り当てられたセキュリティ証明書の装置固有部分の表現を記憶するように構成されたオンチップ不揮発性メモリ（ＮＶＭ）と；そして
前記セキュリティ証明書の共通部分を取得し、取得した前記共通部分と、および前記オンチップＮＶＭに記憶されている前記装置固有部分の表現と、から前記セキュリティ証明書を再構築し、そして前記再構築されたセキュリティ証明書を使用してデータに対しセキュリティ操作を実行するように構成されるオンチッププロセッサと；
を有することを特徴とする集積回路（ＩＣ）。
【請求項２】
前記表現は、前記セキュリティ証明書の前記装置固有部分の圧縮形式を有し、前記オンチッププロセッサは、前記装置固有部分の前記表現を解凍するように構成される、ことを特徴とする請求項１に記載のＩＣ。
【請求項３】
前記オンチッププロセッサは、前記再構成された証明書の署名を検証するように構成される、ことを特徴とする請求項１に記載のＩＣ。
【請求項４】
証明書署名サーバであって：
集積回路（ＩＣ）と通信するためのインタフェースと；そして
前記ＩＣから少なくとも公開鍵を受け取り、前記ＩＣに対するセキュリティ証明書を生成し、前記セキュリティ証明書を前記ＩＣに固有の装置固有部分と前記ＩＣに固有ではない共通部分に分割し、そして前記ＩＣに対し、前記セキュリティ証明書の全体よりも少なく、しかし少なくとも前記装置固有部分の表現を送信する、ように構成されるプロセッサと；
を有することを特徴とする証明書署名サーバ。
【請求項５】
前記プロセッサは、前記セキュリティ証明書に署名し、前記セキュリティ証明書の署名を前記ＩＣに送信するように構成される、ことを特徴とする請求項４に記載の証明書署名サーバ。
【請求項６】
前記プロセッサは、前記ＩＣから前記公開鍵を受信し、前記公開鍵を使用して前記証明書に署名するように構成されている、ことを特徴とする請求項５に記載の証明書署名サーバ。
【請求項７】
前記プロセッサは、前記装置固有部分を圧縮することにより前記表現を作成するように構成されている、ことを特徴とする請求項４に記載の証明書署名サーバ。
【請求項８】
証明書署名サーバであって：
集積回路（ＩＣ）と通信するためのインタフェースと；  そして
公開鍵と秘密鍵のペアを生成し、前記ＩＣ用のセキュリティ証明書を作成し、前記セキュリティ証明書を前記ＩＣ固有の装置固有部分と装置固有のものではない共通部分とに分割し、そして前記ＩＣに対し、前記セキュリティ証明書の全体よりも少ないが、少なくとも前記装置固有の部分の表現を送信するように構成されるプロセッサと；
を有することを特徴とする証明書署名サーバ。  
【請求項９】
前記プロセッサは、前記セキュリティ証明書に署名し、前記セキュリティ証明書の署名を前記ＩＣに送信するように構成されている、ことを特徴とする請求項８に記載の証明書署名サーバ。
【請求項１０】
前記プロセッサは、前記秘密鍵を使用して前記証明書に署名するように構成されている、ことを特徴とする請求項９に記載の証明書署名サーバ。
【請求項１１】
前記プロセッサは、前記装置の固有部分を圧縮することにより前記表現を作成するように構成される、ことを特徴とする請求項８に記載の証明書署名サーバ。
【請求項１２】
集積回路（ＩＣ）内のオンチップ不揮発性メモリ（ＮＶＭ）に、前記ＩＣに割り当てられたセキュリティ証明書の装置固有部分の表現を記憶するステップと；そして
前記ＩＣ内のオンチッププロセッサを使用して、前記セキュリティ証明書の共通部分を取得し、取得された前記共通部分および前記オンチップＮＶＭに記憶された前記装置固有部分の表現からセキュリティ証明書を再構築し、そして前記再構築されたセキュリティ証明書を使用してセキュリティ操作を実行するステップと；
を有することを特徴とする方法。
【請求項１３】
前記表現は前記セキュリティ証明書の前記装置固有部分の圧縮形式を有し、前記セキュリティ証明書を再構築するステップは前記装置固有部分の表現を解凍するステップを有する、ことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記オンチッププロセッサによって再構築された前記証明書の署名を検証するステップを有する、ことを特徴とする請求項１２に記載の方法。
【請求項１５】
集積回路（ＩＣ）から少なくとも公開鍵を受け取るステップと；
前記ＩＣのためにセキュリティ証明書を作成するステップと；
前記セキュリティ証明書を、前記ＩＣに固有の装置固有部分と、前記ＩＣに固有ではない共通部分に分割するステップと；そして
前記セキュリティ証明書の全体よりも少ないが、少なくとも前記装置固有の部分の表現を前記ＩＣに送信するステップと；
を有することを特徴とする方法。
【請求項１６】
前記セキュリティ証明書に署名するステップと、そして前記セキュリティ証明書の署名を前記ＩＣに送信するステップと、を有することを特徴とする、請求項１５に記載の方法。
【請求項１７】
前記セキュリティ証明書に署名するステップは、秘密鍵を使用して前記証明書に署名するステップを有する、ことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記装置固有部分を圧縮することにより前記表現を作成するステップを有する、ことを特徴とする請求項１５に記載の方法。
【請求項１９】
公開鍵と秘密鍵のペアを生成するステップと；
集積回路（ＩＣ）のセキュリティ証明書を作成するステップと；
前記セキュリティ証明書を、前記ＩＣに固有の装置固有部分と、ＩＣに固有ではない共通部分に分割するステップと；そして
前記セキュリティ証明書の全体よりも少ないが、少なくとも前記装置固有部分の表現を前記ＩＣに送信するステップと；
を有することを特徴とする方法。
【請求項２０】
前記セキュリティ証明書に署名し、前記セキュリティ証明書の署名を前記ＩＣに送信するステップを有する、ことを特徴とする請求項１９に記載の方法。
【請求項２１】
前記証明書に署名するステップは、前記秘密鍵を使用して前記証明書に署名するステップを有する、ことを特徴とする請求項２０に記載の方法。
【請求項２２】
前記装置固有部分を圧縮することにより前記表現を作成するステップを有する、ことを特徴とする請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に電子装置のセキュリティに関し、特にコンパクトなセキュリティ証明書に関する。
【背景技術】
【０００２】
（関連出願の参照）
本出願は、その開示が参照により本明細書に組み込まれる、２０１８年２月４日に出願された米国暫定特許出願第６２／６２６，０９２号の利益を主張する。
【０００３】
（発明の背景）
通信および／またはコンピューティングのセキュリティを向上させるために、通信および／またはコンピューティングシステムには、信頼できると考えられるルートオブトラスト（ＲｏＴ）が通常提供され、そしてそれは証明書および他の秘密をセキュアに確立／提供し、また通信チャネルのセキュリティ確保に使用されうる。ＲｏＴを装置にセキュアにインストールするために、さまざまなセキュア形成ソリューションが開発されてきた。
【０００４】
「インダストリ  ４．０  およびサイバーセキュリティ」、デロイト大学出版、２０１７年３月２１日、Ｗａｓｌｏ他著には、コネクテッドプロダクションにおけるリスク管理に使用される手法が記載されている。ＩＯＴセキュリティ財団による「セキュアデザイン最善実施ガイド」と題された２０１８年１２月のリリース１．２．１には、セキュアＩｏＴ製品設計のためのガイドラインが列挙されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国暫定特許出願第６２／６２６，０９２号
【非特許文献】
【０００６】
【非特許文献１】インダストリ  ４．０  およびサイバーセキュリティ」、デロイト大学出版、２０１７年３月２１日、Ｗａｓｌｏ他著
【非特許文献２】「セキュアデザイン最善実施ガイド」２０１８年１２月、リリース１．２．１、ＩＯＴセキュリティ財団
【発明の概要】
【０００７】
本明細書に記載される本発明の実施形態は、オンチップ不揮発性メモリ（ＮＶＭ）とオンチッププロセッサとを含む集積回路（ＩＣ）を提供する。オンチップＮＶＭは、ＩＣに割り当てられたセキュリティ証明書の装置固有部分の表現を記憶するように構成されている。オンチッププロセッサは、セキュリティ証明書の共通部分を取得し、取得した共通部分およびオンチップＮＶＭに記憶されている装置固有部分の表現からセキュリティ証明書を再構築し、そして再構築されたセキュリティ証明書を使用して、データに対しセキュリティ操作を実行するように構成される。
【０００８】
いくつかの実施形態では、表現はセキュリティ証明書の装置固有部分の圧縮形式を含み、オンチッププロセッサは装置固有部分の表現を解凍するように構成される。一実施形態では、オンチッププロセッサは、再構築された証明書の署名を検証するように構成される。
【０００９】
本発明の一実施形態によれば、インタフェースとプロセッサとを有する証明書署名サーバがさらに提供される。インタフェースは、集積回路（ＩＣ）と通信するように構成されている。プロセッサは、ＩＣから少なくとも公開鍵を受信し、ＩＣのためにセキュリティ証明書を作成し、セキュリティ証明書をＩＣに固有の装置固有部分と、ＩＣに固有ではない共通部分とに分割し、そしてセキュリティ証明書全体よりも少ないが、しかし少なくとも装置固有部分の表現をＩＣに送信するように構成される。
【００１０】
開示される実施形態では、プロセッサはセキュリティ証明書に署名し、セキュリティ証明書の署名をＩＣに送信するように構成される。例示的実施形態では、プロセッサは、ＩＣから公開鍵を受け取り、認証機関（ＣＡ）秘密鍵を使用して証明書に署名するように構成される。別の実施形態では、プロセッサは装置固有部分を圧縮することにより表現を作成するように構成される。
【００１１】
本発明の一実施形態によれば、インタフェースとプロセッサとを含む証明書署名サーバも提供される。インタフェースは、集積回路（ＩＣ）と通信するように構成される。プロセッサは、公開鍵と秘密鍵のペアを生成し、ＩＣのセキュリティ証明書を作成し、セキュリティ証明書をＩＣに固有の装置固有部分と、ＩＣに固有ではない共通部分に分割し、そしてセキュリティ証明書全体よりも少ないが、しかし少なくとも装置固有の部分の表現をＩＣに送信するように構成される。
【００１２】
いくつかの実施形態において、プロセッサは、セキュリティ証明書に署名し、セキュリティ証明書の署名をＩＣに送信するように構成される。一実施形態では、プロセッサは、秘密鍵を使用して証明書に署名するように構成されている。一実施形態では、プロセッサは、装置固有部分を圧縮することにより表現を作成するように構成される。
【００１３】
本発明の一実施形態によれば、さらに、集積回路（ＩＣ）内のオンチップ不揮発性メモリ（ＮＶＭ）に、ＩＣに割り当てられたセキュリティ証明書の装置固有部分の表現を記憶するステップを有する方法が提供される。ＩＣ内のオンチッププロセッサを使用して、セキュリティ証明書の共通部分が取得され、取得された共通部分から、およびオンチップＮＶＭに記憶された装置固有部分の表現から、セキュリティ証明書が再構築され、そして再構築されたセキュリティ証明書を使用してデータに対してセキュリティ操作が実行される。
【００１４】
本発明の一実施形態によれば、少なくとも公開鍵を集積回路（ＩＣ）から受信するステップを有する方法も提供される。セキュリティ証明書がＩＣに対して作成される。セキュリティ証明書は、ＩＣに固有の装置固有部分と、ＩＣに固有ではない共通部分に分割されている。セキュリティ証明書全体より少ないが、少なくとも装置固有部分の表現が、ＩＣに送信される。
【００１５】
本発明の一実施形態によれば、一対の公開鍵および秘密鍵を生成するステップを有する方法も提供される。セキュリティ証明書が集積回路（ＩＣ）に対して作成される。セキュリティ証明書は、ＩＣに固有の装置固有部分と、ＩＣに固有ではない共通部分に分割される。セキュリティ証明書全体より少ないが、少なくとも装置固有部分の表現が、ＩＣに送信される。
【図面の簡単な説明】
【００１６】
本発明は、図面と併せた実施形態の詳細な以下の説明から、より完全に理解されよう：
【図１】本発明の一実施形態によるモノのインターネット（ＩｏＴ）装置を概略的に示すブロック図である。
【図２】本発明の一実施形態による、コンパクトセキュリティ証明書を生成するためのシーケンスを概略的に示すシーケンス図である。
【図３】本発明の一実施形態による、セキュリティ証明書を再構築するためのシーケンスを概略的に示すシーケンス図である。
【発明を実施するための形態】
【００１７】
コンピュータセキュリティにおいて、ルートオブトラスト（ＲｏＴ）は、認証に使用される既知の信頼できるエンティティである。典型的には、ＲｏＴはファームウェア（ＦＷ）または、集積回路上の不揮発性メモリに記憶されている構成、に基づいている。（より短い表記のために、以下では「集積回路」を「チップ」と呼ぶ）。
【００１８】
ＲｏＴおよびセキュリティ証明書という用語は、以下の説明において互換的に使用される。しかし、セキュリティ証明書はＲｏＴの一例である。ＲｏＴには一般的にいくつかの種類がある−たとえば、ソフトウェアロード用のＲｏＴ、証明用のＲｏＴ、ＲｏＴプロビジョニングなどがある。ＲｏＴの種類によっては証明書になるものもあれば、そうでないものもある。本発明による実施形態はセキュリティ証明書に限定されない−代替実施形態では任意の適切な種類のＲｏＴを使用することができる。
【００１９】
それぞれのコンピューティング装置に最初のＲｏＴをインストールすることは、通常は証明書のサポートなしに行われるべきであり、それでも秘密が偽造、盗難、複製、またはその他の方法で侵害されないことを保証するべきであるため、困難である。業界によって開発されたセキュアな生産（またはセキュア製造）技術は、最初のＲｏＴをインストールするための技術を有している。そのような技術は、装置に第１の秘密をインストールするために使用することができる、専用の生産現場の物理的およびデジタルなセキュリティを定義する。
【００２０】
ただし、一部の用途は従来のセキュア製造ソリューションには適していない。たとえば、モノのインターネット（ＩｏＴ）市場では、多数のベンダーが多数の製造場所で膨大な数の小規模プロジェクトを開発／作成している。このような環境は、セキュアな製造に新たな課題をもたらす。一般的なＩＯＴ装置は、チップベンダによって製造されているシリコンオンシステム（ＳＯＣ）チップを有することができる。通常は別の場所におけるその後の装置製造段階で、ＳＯＣと他の構成要素が組み立てられテストされる。
【００２１】
ＩｏＴ装置に適した１つの解決策は、チップベンダおよびチップ製造場所の数がＩｏＴ装置タイプの数よりはるかに少ないので、（装置レベルではなく）チップレベルでセキュアな製造を実行することである。
【００２２】
セキュアな製造モデルをチップレベルにおいて適用することの１つの課題は、多くの場合、チップが、供給されたＲｏＴを記憶するのに十分な量の不揮発性メモリ（ＮＶＭ）を有しないことである。
【００２３】
本発明の実施形態は、一般的なＳＯＣにおいて制限される利用可能なＮＶＭを前提に、チップレベルでのＲｏＴ記憶のための改善された方法およびシステムを提供する。本発明の実施形態によれば、ＳＯＣの製造中に、コンパクトな形式のＲｏＴが、通常サイズが制限されるＳＯＣの不揮発性メモリに記憶される。ＲｏＴのコンパクトな形式は、ＳＯＣ固有情報（チップ固有、したがって装置固有の情報）の最小限のセットで構成される。この最小セットは、本明細書では証明書の装置固有部分の表現とも呼ばれる。完全なＲｏＴは、全ての装置によって共有される共通情報を外部ソースから提供することによって、そして外部ソースから追加のＳＯＣ固有情報を提供することなく、後の段階、例えば装置製造時に再構築される。
【００２４】
一実施形態では、ＳＯＣ（またはサーバ）は、チップ製造時に完全なＲｏＴを作成し、次いで、ＲｏＴからすべての非ＳＯＣ固有情報を取り除く。その後、ＳＯＣは残ったＳＯＣ固有情報をオンチップＮＶＭに記憶する。いくつかの実施形態では、ＳＯＣは、例えばＺＩＰを使用してＳＯＣ固有情報を圧縮し、次いで圧縮データをオンチップＮＶＭに記憶する。
【００２５】
一実施形態では、（全ての装置に対して同じである）非ＳＯＣ固有情報は、ＩｏＴ装置のソフトウェアイメージの一部として提供される（イメージの完全性はその署名をチェックすることによって検証される）。セキュアであることを要求されない場所で行われるその後の生産段階で、非ＳＯＣ固有情報は、例えばフラッシュメモリに記憶されてもよい。次に、コンピューティング装置内で実行されているソフトウェアは、オンチップＮＶＭに記憶されているＳＯＣ固有部分と外部ＮＶＭに記憶されている非ＳＯＣ固有部分とからＲｏＴを再構築する。
【００２６】
したがって、本発明の実施形態によれば、装置のセキュリティを損なうことなく、コンパクトな形式のセキュリティ証明書を、利用可能なオンチップＮＶＭに記憶することができる。コンパクトなセキュリティ証明書はチップ製造時に作成されそして記憶されるため、装置の組み立てなどのその後の製造工程はセキュアである必要はない。
【００２７】
（システムの記述）
図１は、本発明の一実施形態によるモノのインターネット（ＩｏＴ）装置１００を概略的に示すブロック図である（ＩｏＴ装置は通常、センサやアクチュエータなどの追加のユニットを含むが、それらは明確化のため省略されている）。一般に、開示された技術は、ＲｏＴの使用を必要とする様々な他の種類のコンピューティング装置および／または通信装置に適用可能である。
【００２８】
ＩｏＴ装置１００は、ＳＯＣ１０２およびフラッシュメモリチップ１０４を含む。セキュリティ証明書を作成するために、ＳＯＣ１０２は、ＳＯＣ製造現場において証明書署名サーバ１５０に接続される（フラッシュ１０４は通常この段階では接続されていない）。
【００２９】
ＳＯＣ１０２は、図１の例示的実施形態によれば、ソフトウェアプログラムを実行する縮小命令セットコンピュータ（ＲＩＳＣ）コア１０６を含む（代替実施形態では、他の形態のハードウェアを使用することができる；例えばコンプレックス命令セットコンピュータ（ＣＩＳＣ））。ＲＩＳＣコアは、内部バス１０８を介して、以下のものを含む様々なユニットと通信する：固定データ（例えば、コードおよび固定テーブル）を記憶するように構成された読み取り専用メモリ（ＲＯＭ）１１０；データを一時的に記憶するように構成されるランダムアクセスメモリ（ＲＡＭ）１１２；インターネットとインタフェースするように構成されたネットワークインターフェースコントローラ（ＮＩＣ）１１４；クロックソースと、例えばウォッチドッグタイマを含むタイマとからなるクロック／ウォッチドッグ／タイマユニット１１６；ＳＯＣの汎用入出力（ＧＰＩＯ）ポートを制御するように構成されたＧＰＩＯ／インタフェース１１８；およびＳＯＣ１０２と外部フラッシュ１０４との間のデータ転送を制御するように構成されるフラッシュインタフェース１２０。
【００３０】
図１の例示的な実施形態によれば、コンパクトなＲｏＴを容易にするために、ＳＯＣ１０２は、暗号ハードウェア１２２、乱数発生器（ＲＮＧ）１２４、オンチップＮＶＭ  ＯＴＰメモリ１２６、およびインタフェースユニット１２８をさらに有する。暗号ハードウェアは、（ＲＮＧ１２４によって生成された乱数を使用して）秘密鍵と公開鍵のペアを生成し、そして証明書署名を検証するように構成されている（いくつかの実施形態では、証明書署名はソフトウェアによって検証され得る）。インタフェースは、ＲＩＳＣコア１０６と証明書署名サーバ１５０との間のインタフェースをとるように構成される。いくつかの実施形態では、証明書署名サーバは、フラッシュインタフェース１２０を介してＳＯＣに接続され得る。他の実施形態では、証明書署名サーバは、汎用入出力（ＧＰＩＯ）ポートを介して、ネットワークインターフェースコントローラ（ＮＩＣ）を介して、または他の手段を介してＳＯＣに接続されうる。
【００３１】
ＳＯＣ製造現場で証明書を生成し署名するために使用される証明書署名サーバ１５０は、プロセッサ１５２と、証明書署名サーバとＳＯＣとの間で通信するように構成されたインタフェース１５４と、ネットワークインターフェースコントローラ（ＮＩＣ）１５６とを備える。ＮＩＣは、証明書署名サーバとインターネットとの間で、そして特に証明書署名機関との間でインタフェースをとるように構成されている。（いくつかの代替実施形態では、証明書署名サーバ１５０は下位認証機関であり、そして証明書署名機関に接続する必要はない。この場合、証明書署名サーバはＮＩＣを含まなくてもよい。）
【００３２】
セキュアな製造施設で行われるＳＯＣ製造中に、暗号ハードウェアは一対の公開−秘密鍵を生成し、そして公開鍵および他のＳＯＣ固有情報をサーバに送信する（代替的な実施形態では、それらの鍵はサーバによって生成され得る）。次いで、サーバは、ＳＯＣ固有部分と共通部分とを含むセキュリティ証明書を作成することができ、後者は一般的にすべての装置に対して同じである。その後、サーバは、署名プロセスに使用される認証機関（ＣＡ）または下位認証機関の秘密キーを使用して証明書に署名し、セキュリティ証明書のＳＯＣ固有部分を署名と共にＳＯＣに返送する。ＳＯＣは、秘密鍵およびセキュリティ証明書のＳＯＣ固有部分（またはその表現）をオンチップＮＶＭ  ＯＴＰ１２６に記憶する。いくつかの実施形態では、ＳＯＣは、ＳＯＣがＯＴＰに記憶するデータを圧縮する。証明書の共通部分（ＳＯＣ固有部分ではない）は、さらなる生産段階で（および、いくつかの実施形態ではＳＯＣシステムがデプロイされるときに）使用される、ソフトウェアイメージとして提供される。
【００３３】
（証明書は通常、階層構造で構築され、ここで各階層の証明書は、公開鍵を有し、そして上位階層の証明書秘密鍵を使用して署名されている。装置は装置証明書公開鍵を送信し、サーバは、この公開鍵を含む証明書を作成し、そしてサーバにあるより高いレベル（認証機関（ＣＡ）証明書）の秘密鍵を使って署名する。）
【００３４】
必ずしもセキュアであるとは限らない後続の装置レベルの生産段階では、ＳＯＣは、共通部分とＳＯＣ固有部分とを組み合わせることによってセキュリティ証明書を再構築することができる。ＳＯＣは、例えば外部フラッシュ１０４から証明書の共通部分を、オンチップＮＶＭ  ＯＴＰ１２６からＳＯＣ固有部分を読み取ることができる。
【００３５】
いくつかの実施形態において、署名書の全体は、デプロイされた製品によって使用されるために、外部ＮＶＭメモリに記憶されてもよい；代替実施形態では、署名書の全体は記憶されていない；むしろ、デプロイされた製品によって必要に応じて再構築される。再構築された証明書は、セキュアな通信およびセキュアなソフトウェアの更新などの任意の所望のセキュリティ関連動作を実行するために、ＩｏＴ装置によって使用されうる。
【００３６】
このように、図１に示される例示的な実施形態によれば、大容量のオンチップＮＶＭメモリを必要とせずに、そしてセキュアな装置製造現場を必要とせずに、高レベルの証明書ベースのセキュリティが提供される。証明書は、証明書全体（チップ固有部分および一般部分）の署名を検証することによって第三者（例えば、サーバ）によって有効とされる。
【００３７】
署名はＯＴＰに記憶され、再構築された証明書は署名の判断に使用された最初の証明書と同一であるため、署名は有効とされうる。
【００３８】
証明書を再構築するのと同じ装置ソフトウェアは、再構築後に署名を有効とすることによってその正当性を検証できる。
【００３９】
理解されるように、ＩｏＴコンピューティング装置１００、ＳＯＣ１０２、および証明書署名サーバ１５０は例として記載されている。開示された技術によるＩｏＴ装置、他のタイプのコンピューティング装置、ＳＯＣ、およびサーバは、上記の記載に限定されない。例えば、代替の実施形態では、ＲＩＳＣ１０６は複合命令セットコンピュータ（ＣＩＳＣ）によって、または複数のコンピュータの集合によって置き換えられてもよい。クロック／ウォッチドッグ／タイマユニット１１６およびＧＰＩＯ／インタフェースユニット１１８はなくてもよく、または類似のユニットによって置き換えられてもよい。いくつかの実施形態ではＲＯＭがなく、他の実施形態では外部フラッシュ１０４は他の記憶媒体によって置き換えられてもよい。いくつかの代替実施形態では、証明書署名サーバ１５０は、（シリアルインターフェース１２８ではなく）パラレルインターフェースを介して、ＮＩＣポートを介して、または例えばＳＯＣパッドのスキャンチェーンを介してＳＯＣ１０２に接続される。
【００４０】
例−Ｘ．５０９証明書
様々な実施形態において、開示された技術は様々なタイプおよびフォーマットのセキュリティ証明書と共に使用することができる。次の例は、ＩＴＵ  Ｘ．５０９  Ｖ３規格に準拠したセキュリティ証明書のフィールドとそのＳＯＣ固有のフィールドのリストである：
・証明書
・バージョン番号
・シリアル番号
・署名アルゴリズムＩＤ
・発行者名
・有効期間
・より前ではない
・より後ではない
・サブジェクト名
・サブジェクトの公開鍵情報
・公開鍵アルゴリズム
・サブジェクトの公開鍵
・発行者の一意の識別子（オプション）
・サブジェクトの一意の識別子（オプション）
・拡張機能（オプション）
・．．．
・証明書署名アルゴリズム
・証明書の署名
【００４１】
上記の例では、証明書のＳＯＣ固有（装置固有）部分は、シリアル番号、サブジェクトの公開鍵、および証明書署名フィールドのみを有する。他のすべてのフィールドは証明書共通部分と見なされる。この例では、証明書の装置固有部分を取り出すステップは、サブジェクトの公開鍵フィールドと証明書署名フィールドを選択するステップを有する。
【００４２】
別の実施形態では、証明書のフォーマットに応じて、証明書を他の適切な態様で設計固有部分と共通部分に分割することができる。
【００４３】
図２は、本発明の実施形態による、コンパクトセキュリティ証明書を生成するためのシーケンスを概略的に示すシーケンス図２００である。シーケンス図は、ＳＯＣをパーソナライズするように構成された、チップ製造場所に配置された、オンチップＮＶＭ  ＯＴＰ１２６、オンチップＲＩＳＣ１０６、および証明書署名サーバ１５０（図１）に関する動作を示す。
【００４４】
シーケンスは、鍵生成ステップ２０４から始まり、オンチップＣＰＵは一対の公開鍵と秘密鍵を生成する。ＳＯＣ情報送信ステップ２０６において、ＳＯＣは公開鍵および他のＳＯＣ固有データを証明書署名サーバ１５０に送信し、秘密鍵記憶ステップ２０８において、オンチップＣＰＵ１０６は秘密鍵をオンチップＮＶＭ  ＯＴＰ１２６に記憶する。
【００４５】
ＳＯＣからＳＯＣ固有データを受信した後、証明書署名サーバ１５０は、ＳＯＣ証明書作成ステップ２１０を実行する。証明書は、ＳＯＣ固有データと、サーバによって管理される証明書固有データとを含む。次に、ＳＯＣブロブ作成ステップ２１２において、サーバは証明書に署名し、証明書特定情報と証明書署名とを含むバイナリ−ロングオブジェクト（Ｂｌｏｂ）ストリングを作成する。次に、サーバは、ＳＯＣブロブ送信ステップ２１４で、ＳＯＣブロブをオンチップＣＰＵ１０６に送信する。
【００４６】
ＳＯＣブロブを受信した後、オンチップＣＰＵ１０６はブロブ圧縮ステップ２１６を実行することができ、ここでブロブは例えばＺＩＰを使用して圧縮される（ステップ２１６は任意選択肢であり、そして本発明のいくつかの実施形態によれば、ブロブは圧縮されない。）ブロブ記憶ステップ２１８において、オンチップＣＰＵはブロブ（圧縮または非圧縮のいずれか）をオンチップＮＶＭ  ＯＴＰ１２６に記憶し、そして受信通知送信ステップ２２０において、オンチップＣＰＵは、オンチップＣＰＵが首尾よくシークエンスを完了し、コンパクトセキュリティ証明書をオンチップＮＶＭ  ＯＴＰに記憶したことを示す、受信通知をサーバに送信する。サーバは、装置ロギングステップ２２２において、シークエンス情報のログを、典型的には製造ログファイルに取る（ログは典型的にはすべての装置およびそれらの証明書のリストを有する）。
【００４７】
要約すると、図２に示される例示的な実施形態によれば、チップ製造中に、オンチップＣＰＵが公開鍵および秘密鍵を作成する。製造施設内のサーバがセキュリティ証明書を作成して署名する。オンチップＣＰＵは秘密鍵と証明書固有部分をオンチップＮＶＭ  ＯＴＰに記憶する。記憶されたデータは署名書全体に比べて小さく、通常はオンチップＮＶＭ  ＯＴＰに収まる。いくつかの実施形態では、記憶サイズをさらに縮小するために、記憶されるデータが圧縮される。
【００４８】
図３は、本発明の実施形態による、セキュリティ証明書を再構築するためのシーケンスを概略的に示すシーケンス図３００である。シーケンス図は、オンチップＮＶＭ  ＯＴＰ１２６、オンチップＲＩＳＣ１０６（オンチップＣＰＵと呼ばれる）、および外部フラッシュ１０４（図３の「ソフトウェアがインストールされた外部メモリ」）に関する動作を示す。
【００４９】
シーケンスは、証明書一般データ読み取りステップ３０２で開始し、オンチップＣＰＵ１０６は、外部フラッシュ１０４から証明書一般データを含むブロックを読み取る。次に、ＳＯＣ固有データ読み取りステップ３０４において、オンチップＣＰＵは、ＳＯＣ固有データをオンチップＮＶＭ  ＯＴＰ１２６から読み取る。オンチップＣＰＵは、オプションとして、解凍ステップ３０６に入り、ＳＯＣ固有データを解凍してもよい。次に、証明書再構築ステップ３０８において、オンチップＣＰＵは、装置固有データおよび証明書一般データから証明書全体を組み立てる。いくつかの実施形態では、ステップ３０８は署名検証ステップ３１０を有し、ここでオンチップＣＰＵは証明書の署名を検証する。
【００５０】
オンチップＣＰＵは、今やセキュアに証明しそして外部装置と通信できるようになった。いくつかの実施形態では、オンチップＣＰＵはオプションとして証明書全体記憶ステップ３１２を実行し、ここでオンチップＣＰＵはセキュリティ証明書の全部を外部フラッシュメモリ１０４に記憶する。代替実施形態では、オンチップＣＰＵはステップ３１２を実行せず、そしてデプロイされた装置が証明書を必要なときはいつでも、上記のシークエンスを繰り返すことにより、証明書全体を再構築する。
【００５１】
したがって、図３に示される例示的な実施形態によれば、ＳＯＣは、ＳＯＣのＯＴＰに記憶されている限られたＳＯＣ固有のデータから、および外部に記憶されている保護されていないデータからセキュリティ証明書全体をセキュアに再構築できる。
【００５２】
理解されるように、図２および３を参照して記載されたシークエンス２００および３００は、例として引用されている。開示された技術によるシーケンスは上記の記載に限定されない。例えば、代替実施形態では、オンチップＣＰＵは、ステップ２０８で秘密鍵ではなく秘密鍵のシードを記憶し、ステップ３０４でシードから秘密鍵を再構築することができる。他の１つの事例として、オプションとしてのＳＯＣ固有データの圧縮（ステップ２１６）は、証明書署名サーバ１５０によって行われてもよい（この場合、ステップ２１４でサーバが送信するブロブは圧縮データを含む）。一実施形態では、公開鍵／秘密鍵ペアの生成ステップ２０４は、証明書署名サーバけによって行われ、その後、サーバは（他のＳＯＣ固有情報に加えて）秘密鍵をＳＯＣに送信する。
【００５３】
図１〜図３に示され、上で記載されたＩｏＴ装置１００、ＳＯＣ１０２、証明書署名サーバ１５０の構成、ならびにシーケンス２００および３００は、純粋に概念の明確化のために示される、例示的な構成およびシーケンスである。代替実施形態では、他の任意の適切な構成を使用することができる。明確化のため、開示された技術の理解に必須ではない要素は図面から省略されている。
【００５４】
様々な実施形態において、ＳＯＣ１０２および／または証明書署名サーバ１５０の異なる要素は、特定用途向け集積回路（ＡＳＩＣ）またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの適切なハードウェアを使用して実装され得る。代替として、ＳＯＣ１０２および／または証明書署名サーバ１５０のいくつかの要素は、ソフトウェアで、またはソフトウェア要素とハードウェア要素との組み合わせを使用して実装され得る。
【００５５】
いくつかの実施形態では、ＳＯＣ１０２および／または証明書署名サーバ１５０は、本明細書で記載されている機能を実行するようにソフトウェアでプログラムされる、１つまたは複数の汎用プロセッサ（たとえば、ＲＩＳＣコア１０６）を備える。ソフトウェアは、例えば、ネットワークを介して、またはホストから電子形式でプロセッサにダウンロードされてもよく、あるいは代替的にまたは追加的に、磁気、光または電子メモリなどの非一過性有形媒体上に提供および／または記憶されてもよい。
【００５６】
本明細書に記載の実施形態は、主にＩｏＴ装置（および他のコンピューティング装置）アプリケーションにおけるコンパクトセキュリティ証明書を扱っているが、本明細書に記載の方法およびシステムは、他の種類のメモリが制限されたセキュア装置にも使用できる。
【００５７】
上記の実施形態は例として引用され、本発明は上記に特に示され記載されたものに限定されないことが理解されよう。むしろ、本発明の範囲は、上記の様々な特徴の組み合わせおよびサブ組み合わせ、ならびに上記記載を読んだ当業者に想起される、既存技術に開示されていない変形および修正の両方を含む。参照により本特許出願に組み込まれる文書は、本出願の統合的部分とみなされるべきであるが、本明細書において明示的または黙示的になされる定義と矛盾する場合には、本明細書における定義が優先される。
【図１】
2019134423.tif 000003
【図２】
2019134423.tif 000004
【図３】
2019134423.tif 000005
【外国語明細書】
2019134423000001.pdf