(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-19
(45)【発行日】2023-09-27
(54)【発明の名称】リモートサーバでの認証用のデバイス識別子を生成するためにセキュアデバイス上でソフトウェアをオンボードすること
(51)【国際特許分類】
H04L 9/32 20060101AFI20230920BHJP
G06F 21/44 20130101ALI20230920BHJP
【FI】
H04L9/32 200B
H04L9/32 200F
G06F21/44
(21)【出願番号】P 2021559035
(86)(22)【出願日】2020-03-10
(86)【国際出願番号】 US2020021824
(87)【国際公開番号】W WO2020205173
(87)【国際公開日】2020-10-08
【審査請求日】2021-11-30
(32)【優先日】2019-04-04
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】595168543
【氏名又は名称】マイクロン テクノロジー,インク.
(74)【代理人】
【識別番号】100121083
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100074099
【氏名又は名称】大菅 義之
(72)【発明者】
【氏名】デュバル オリヴィエ
【審査官】金沢 史明
(56)【参考文献】
【文献】特開2017-079369(JP,A)
【文献】特開2008-185616(JP,A)
【文献】米国特許出願公開第2017/0244562(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/00-21/88
(57)【特許請求の範囲】
【請求項1】
システムであって、
証明書ジェネレータを有する鍵管理サーバと、
前記鍵管理サーバに結合された登録ポータルと
を備え、
前記鍵管理サーバが、コンポーネントの製造中に、前記コンポーネントに実装される第1の情報を受け取り、格納するように構成され、
前記コンポーネントが、ソフトウェアを有するコンピューティングデバイスに組み付けられるように構成され、
前記登録ポータルが、前記ソフトウェアとともに使用されている前記コンポーネントの登録情報を受け取り、前記ソフトウェアについての第2の情報を受け取るように構成され、
前記コンピューティングデバイスが、前記第1の情報及び前記第2の情報から非対称鍵対を生成するように構成され、前記非対称鍵対が前記コンピューティングデバイスの公開鍵及び前記コンピューティングデバイスの秘密鍵を含み、
前記証明書ジェネレータが、前記コンピューティングデバイスとは関係なく、前記鍵管理サーバに格納された前記第1の情報、及び前記登録ポータルを介して受け取られた前記第2の情報から前記非対称鍵対を生成するように構成され、前記証明書ジェネレータによって生成された前記公開鍵のデジタル証明書に署名するように構成される、
前記システム。
【請求項2】
前記登録ポータルが、リモートサーバから、前記ソフトウェアについての前記第2の情報を受け取り、前記公開鍵の前記証明書を前記リモートサーバに提供するように構成される、請求項1に記載のシステム。
【請求項3】
前記リモートサーバがプロビジョニングツールで構成され、前記プロビジョニングツールが、前記ソフトウェアについての前記第2の情報を生成するように構成される、請求項2に記載のシステム。
【請求項4】
前記プロビジョニングツールが、前記コンピューティングデバイスに前記ソフトウェアをインストールするように構成される、請求項3に記載のシステム。
【請求項5】
前記プロビジョニングツールが、前記ソフトウェアについての前記第2の情報を前記登録ポータルに送信するように構成される、請求項3に記載のシステム。
【請求項6】
前記プロビジョニングツールが
、前記コンポーネントの機能をアクティブにするように構成される、請求項3に記載のシステム。
【請求項7】
前記コンポーネントの前記機能がアクティブにされた後、前記コンピューティングデバイスが、前記コンピューティングデバイスの前記秘密鍵を使用して、前記リモートサーバで認証することができる、請求項6に記載のシステム。
【請求項8】
前記コンポーネントの前記機能がアクティブにされた後、前記コンピューティングデバイスが、前記非対称鍵対を計算できる、請求項6に記載のシステム。
【請求項9】
前記コンピューティングデバイスが、標準に従って前記非対称鍵対を生成するように構成される、請求項8に記載のシステム。
【請求項10】
前記第1の情報が、工場で製造されたコンポーネントの中で前記コンポーネントに一意である、請求項8に記載のシステム。
【請求項11】
前記コンポーネントがメモリデバイスを含む、請求項10に記載のシステム。
【請求項12】
方法であって、
コンポーネントの製造中に前記コンポーネントに実装される第1の情報を受け取り、鍵管理サーバに格納することであって、前記コンポーネントが、ソフトウェアを有するコンピューティングデバイスに組み付けられるように構成される、前記受け取り、前記格納することと、
前記鍵管理サーバに結合された登録ポータルで、前記ソフトウェアとともに使用される前記コンポーネントの登録情報を、受け取ることと、
前記登録ポータルで、前記ソフトウェアについての第2の情報を受け取ることであって、前記コンピューティングデバイスが、前記第1の情報及び前記第2の情報から非対称鍵対を生成するように構成され、前記非対称鍵対が、前記コンピューティングデバイスの公開鍵及び前記コンピューティングデバイスの秘密鍵を含む、前記受け取ることと、
前記鍵管理サーバで、及び前記コンピューティングデバイスとは関係なく、前記鍵管理サーバに格納された前記第1の情報及び前記登録ポータルを介して受け取った前記第2の情報から前記非対称鍵対を生成することと、
前記鍵管理サーバによって、前記コンピューティングデバイスの前記秘密鍵と前記コンピューティングデバイスとの関連付けを示すために、前記公開鍵のデジタル証明書に署名することと
を含む、前記方法。
【請求項13】
前記登録ポータルによって、前記公開鍵の前記証明書を、前記ソフトウェアについての前記第2の情報を提供するリモートサーバに提供すること
をさらに含む、請求項12に記載の方法。
【請求項14】
前記リモートサーバでプロビジョニングツールを構成することであって、前記プロビジョニングツールが、前記ソフトウェアについての前記第2の情報を生成し、前記ソフトウェアを前記コンピューティングデバイスにインストールし、前記ソフトウェアについての前記第2の情報を前記登録ポータルに送信するように構成された、前記構成すること
をさらに含む、請求項13に記載の方法。
【請求項15】
前記プロビジョニングツールによって
、前記コンポーネントの機能をアクティブにすること
をさらに含む、請求項14に記載の方法。
【請求項16】
前記コンポーネントで前記機能をアクティブにすることによって、前記コンピューティングデバイスが、前記コンピューティングデバイスの前記秘密鍵を使用して前記リモートサーバで認証することを可能にする、請求項15に記載の方法。
【請求項17】
前記コンピューティングデバイスで前記機能をアクティブにすることによって、前記コンピューティングデバイスが前記非対称鍵対を計算することを可能にする、請求項15に記載の方法。
【請求項18】
前記コンピューティングデバイスが、標準に従って前記非対称鍵対を生成するように構成される、請求項17に記載の方法。
【請求項19】
前記第1の情報が、工場で製造されたコンポーネントの中で前記コンポーネントに一意であり、前記コンポーネントがフラッシュメモリデバイスを含む、請求項18に記載の方法。
【請求項20】
非一時的なコンピュータ記憶媒体であって、コンピュータシステムで実行されると、前記コンピュータシステムに、方法を実行させる命令を格納し、前記方法が、
コンポーネントの製造中に前記コンポーネントに実装される第1の情報を受け取り、鍵管理サーバに格納することであって、前記コンポーネントが、ソフトウェアを有するコンピューティングデバイスに組み付けられるように構成される、前記受け取り、前記格納することと、
前記鍵管理サーバに結合された登録ポータルで、前記ソフトウェアとともに使用される前記コンポーネントの登録情報を、受け取ることと、
前記登録ポータルで、前記ソフトウェアについての第2の情報を受け取ることであって、前記コンピューティングデバイスが、前記第1の情報及び前記第2の情報から非対称鍵対を生成するように構成され、前記非対称鍵対が、前記コンピューティングデバイスの公開鍵及び前記コンピューティングデバイスの秘密鍵を含む、前記受け取ることと、
前記鍵管理サーバで、及び前記コンピューティングデバイスとは関係なく、前記鍵管理サーバに格納された前記第1の情報及び前記登録ポータルを介して受け取った前記第2の情報から前記非対称鍵対を生成することと、
前記鍵管理サーバによって、前記コンピューティングデバイスの前記秘密鍵と前記コンピューティングデバイスとの関連付けを示す、前記公開鍵のデジタル証明書に署名することと
を含む、前記非一時的なコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願]
本願は、その開示全体が、参照により本明細書に組み込まれる、2019年4月4日に出願され、「ONBOARDING SOFTWARE ON SECURE DEVICES TO GENERAGE DEVICE IDENTITIES FOR AUTHENTICATION WITH REMOTE SERVERS」と題する米国特許出願第16/374,905号の優先権を主張する。
【0002】
本明細書に開示する少なくともいくつかの実施形態は、コンピューティングデバイスの識別及び認証に関する。
【背景技術】
【0003】
クラウドサーバに接続される、一般的にモノのインターネット(IoT)と呼ばれる低コストのデバイスの増加に伴い、IoTデバイスの一意の識別、及び偽のデバイスを拒否するためのIoTデバイスのアイデンティティの認証を含む新しいセキュリティの課題が生じている。
【0004】
コンピュータセキュリティにおけるいくつかの認証技術は、あるエンティティが別のエンティティのアイデンティティを検証するために使用することができる。例えば、秘密は、エンティティのアイデンティティの一部として使用することができ、エンティティが、それが秘密を所有していることを示すことができる能力は、エンティティのアイデンティティを認証するための方法として使用することができる。そのような秘密は、認証プロセスでパスワード、PIN、または暗号鍵として使用することができる。複製が困難である複数の信頼の基点を組み合わせることによって、IoTデバイスが主張するアイデンティティが有効である可能性を高めることができる。
【0005】
公開鍵暗号、または非対称暗号は、多くの認証技術で使用される暗号システムである。そのような暗号システムは、対の鍵の一方を他方から導出することが実用的ではないように、非対称鍵の対をいっしょに生成することができる。対の一方の鍵を使用して暗号化したメッセージは、その鍵自体を使用して解読することはできないが、対の他方の鍵を使用する場合のみ解読することができる。システムは、暗号化及び暗号解読に異なる鍵を使用するという点で非対称である。対の鍵の一方は、公開鍵として公開することができ、他方の鍵は秘密、つまり秘密鍵として保持することができる。秘密鍵の所有を立証することは、秘密鍵を有するエンティティを識別及び/または認証する方法として使用することができる。例えば、秘密鍵は、メッセージに署名するために使用できる。公開鍵は、メッセージに含まれる署名が元のメッセージに一致すること、したがってメッセージが対応する秘密鍵を使用して生成されたことを検証するために使用できる。例えば、秘密鍵は、メッセージの暗号学的ハッシュを計算することによってメッセージのデジタル署名を作成するために使用することができる。計算されたハッシュがメッセージから再作成されたハッシュと一致すると、メッセージはデジタル署名を見込んで改変されておらず、デジタル署名は秘密鍵を所有するエンティティによって署名されていると結論付けることができる。
【0006】
いくつかの認証技術は、識別及び/または認証用の鍵を導出するためにハードウェアに埋め込まれた秘密を使用する。そのようなハードウェアをベースにした秘密は、盗むまたは複製するのが困難である。
【0007】
秘密を格納することに加えて、個別のハードウェアセキュリティコンポーネントを、サイバーセキュリティタスクを実行するように構成し、このようにしてホストCPU(中央演算処理装置)から作業負荷をオフロードし、もしかすると不正アクセスされている可能性がある、ホストCPUで実行中のアプリケーションから機密操作を分離することができる。例えば、そのようなセキュリティコンポーネントの1つが、秘密を安全に格納することができ、重大なブートソフトウェアの完全性を検証する上で役割を果たすトラステッドプラットフォームモジュール(TPM)である。
【0008】
いくつかの認証技術は、低コストデバイスのきわめて信頼性が高いアイデンティティを作成するためのブートローダソースコードなどの、ハードウェアに埋め込まれた秘密とソフトウェアのデータとの組み合わせを使用する。
【0009】
Trusted Computing Group(TCG)によって開発された標準に従ったデバイスアイデンティティコンポジションエンジン(device identity composition engine)(DICE)は、信頼できるアイデンティティを作成するために、ハードウェアの秘密とソースコードとを組み合わせる標準化された技術である。
【0010】
実施形態は、類似する参照が類似する要素を示す添付の図面の図において、限定ではなく一例として示される。
【図面の簡単な説明】
【0011】
【
図1】一実施形態に係る、認証のためのデバイスを識別するためのシステムを示す。
【
図2】リモートサーバにアクセスする際のデバイスの安全な認証のための構成を備えたデバイスにソフトウェアをオンボードする(onboard)ためのプロセスを示す。
【
図3】リモートサーバにアクセスする際のデバイスの安全な認証のための構成を備えたデバイスにソフトウェアをオンボードするためのプロセスを示す。
【
図4】リモートサーバにアクセスする際のデバイスの安全な認証のための構成を備えたデバイスにソフトウェアをオンボードするためのプロセスを示す。
【
図5】リモートサーバにアクセスする際のデバイスの安全な認証のための構成を備えたデバイスにソフトウェアをオンボードするためのプロセスを示す。
【
図6】一実施形態に係る、セキュアデバイスにソフトウェアをオンボードする方法を示す。
【
図7】本開示の実施形態が動作することができる例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【0012】
本明細書に開示する少なくともいくつかの実施形態は、リモートサーバにアクセスする際の認証のためにコンピューティングデバイスを一意に識別し、コンピューティングデバイスのアイデンティティが盗まれる、または偽のデバイスのために複製されるリスクを減らすことができるように、コンピューティングデバイスを、ハードウェア及びソフトウェアを介して識別するように構成する技術を提供する。例えば、技術は、各個別のデバイスがそれ自体をオンボードする必要がある解決策よりもより低いコストで、かつより高速で、半導体サプライチェーンで処理されるデバイスの多要素認証のために使用できる。
【0013】
具体的には、技術は、コンピューティングデバイスがそのアイデンティティをリモートサーバに対して後で認証することを可能にするために、コンピュータシステム間での情報の安全な交換を簡略化する。技術は、工場でコンピューティングデバイスのコンポーネントに注入された秘密と、コンポーネントが工場を離れた後にコンピューティングデバイス用に後にインストールされるソフトウェアの暗号関数(例えば、ハッシュ)との組み合わせに依存する強力な認証機構を含む。
【0014】
例えば、安全なハードウェアコンポーネントの製造メーカは、安全なハードウェアコンポーネントに後でインストールされるソフトウェアコンテンツを知らなくても、工場でハードウェアコンポーネントに秘密を注入することができる。プロビジョニングツールは、ハードウェアコンポーネントにソフトウェアコンテンツを適切にインストールし、ソフトウェアコンテンツについて暗号サイド情報(例えば、ハッシュ)を生成するように構成することができる。暗号サイド情報は、リモートポータルと安全に共有することができる。暗号サイド情報は、コンピューティングデバイスのそれぞれの安全なハードウェアコンポーネントにインストールされるソフトウェアコンテンツの同じバージョンを使用するように構成された多くのコンピューティングデバイスに共通である場合がある。したがって、暗号サイド情報をただ1度アップロードするだけで、異なるアイデンティティを有するが、ソフトウェアコンテンツの同じバージョンを使用するコンピューティングデバイスの入力には十分である可能性がある。暗号サイド情報は、リモートサーバに対するコンピューティングデバイスの多要素認証の実装を可能にし、コンピューティングデバイスの安全なハードウェアコンポーネントは、工場でその中に異なった秘密を注入され、工場を離れた後にその中にソフトウェアコンテンツをインストールされる。この技術によって、リモートサーバが各個別デバイスに接続して、デバイスを別々のアイデンティティのために構成する必要性が排除される。
【0015】
本明細書に開示する少なくとも1つの認証機構では、悪意のある行為者が有効なコンピューティングデバイスを非個人的にするのを妨げるために、認証のための複数の要素が組み合わされる。例えば、認証のための複数の要素は、半導体製造工場内で1つのハードウェアコンポーネントに実装された秘密を含む場合がある。秘密は、半導体製造工場で製造されたハードウェアコンポーネントの中でそのハードウェアコンポーネントに一意である。したがって、秘密は、ハードウェアコンポーネントを一意に識別するために使用できる。
【0016】
そのようなハードウェアコンポーネントが、コンピューティングデバイスに統合される/組み付けられるために半導体製造工場を離れた後、ソフトウェアコンテンツは、コンピューティングデバイスの操作のためにハードウェアコンポーネントにインストールすることができる。異なるデバイス製造メーカは、自社のコンピューティングデバイスに異なるソフトウェアコンテンツをインストールできる。リモートホストがそのようなコンピューティングデバイスの真正性を検証するために、認証のための複数の要素は、さらに、ソフトウェアのソースコードの暗号学的ハッシュなど、ハードウェアコンポーネントにインストールされたソフトウェアコンテンツについての機密ではないデータをさらに含む場合がある。
【0017】
一例では、技術を実装するように構成されたシステムは、プロビジョニングツール、登録ポータル、及びクラウド証明書ジェネレータを含む場合がある。
【0018】
アイデンティティ及び鍵生成のためにコンピューティングデバイスを構成するためのコマンドのセットを生成するために、デバイス製造メーカはプロビジョニングツールを使用することができる。
【0019】
登録ポータルは、コンピューティングデバイスにインストールされたソフトウェアコンテンツについての機密ではないデータを受け取るように構成できる。コンピューティングデバイスのハードウェアコンポーネントが登録ポータルに登録されると、ハードウェアコンポーネントにインストールされた、またはインストールされるソフトウェアコンテンツについての機密ではないデータは、登録されたハードウェアコンポーネントと関連付けることができる。例えば、ソフトウェアコンテンツについての機密ではないデータのコピーは、登録プロセスの一部として登録ポータルにアップロードできる。同じソフトウェア実装を共有する複数のデバイスにとって、ただ1回アップロードするだけで十分である可能性がある。
【0020】
コンピューティングデバイスは、ソフトウェアコンテンツについての機密ではないデータ及びハードウェアコンポーネントに実装された秘密から非対称鍵の対を生成するためにセキュリティ機能を実装することができる。このセキュリティ機能は、デバイスアイデンティティコンポジションエンジン/ロバストなモノのインターネット(DICE/RIoT)の標準に従って実装できる。
【0021】
鍵管理サーバ(KMS)のクラウド証明書ジェネレータは、そのようなコンピューティングデバイスの非対称鍵生成をエミュレートする機能を備えて構成できる。クラウド証明書ジェネレータは、同じコマンドのセットを使用して構成されたコンピューティングデバイスで作成されるであろう、コンピューティングデバイスの同じ非対称鍵を生成することができる。クラウド証明書ジェネレータは、コンピューティングデバイスのエイリアス鍵対の公開鍵、またはコンピューティングデバイスのデバイスアイデンティティ鍵対の公開鍵など、コンピューティングデバイスの公開鍵の証明書を生成するように構成される。
【0022】
例えば、コンピューティングデバイスの鍵生成機能によって、コンピューティングデバイスは、デバイスが起動するたびに、一意のデバイスシークレットの第1の要約、及びソフトウェアの1つの第1の部分を計算することができる。DICE標準に従って、この要約に複合デバイス識別子(CDI)をラベル付けすることができる。CDIは、次に、非対称鍵対を生成するために、ホストCPUでの起動時に実行しているプログラムで使用することができる。このプログラムは、ロバストなモノのインターネット、つまりRIoTとラベル付けすることができる。RIoTプログラムは、CDI、及びソースコード(例えば、ブートローダのソースコード)の第2の部分の暗号学的ハッシュから第1の非対称鍵対を導出できる。この非対称鍵対には、エイリアス鍵対をラベル付けすることができる。第2の鍵の対は、CDIからであるが、ソースコードの第2の部分とは関係なく生成することができる。この第2の鍵対には、デバイス識別鍵対をラベル付けすることができる。エイリアス鍵対は、デバイスを認証するために使用できる。例えば、デバイスは、エイリアス鍵対の秘密鍵を使用してデータにデジタル署名することができ、デジタル署名は、デバイスがエイリアス鍵対の秘密鍵を所有していることを検証するために、エイリアス鍵対の公開鍵を使用して検証することができる。デバイス識別鍵対は、エイリアス鍵対の交換など、操作及び管理のために使用できる。合法的なソフトウェア更新の結果として、ソースコードの第2の部分が変化する必要がある場合、次に、RIoTプログラムは、更新されたソフトウェアから生じる新しいエイリアス鍵の証明書を生成できる。この証明書は、デバイス識別秘密鍵を用いて署名され、このようにしてピアが新しいエイリアス公開鍵の有効性を認証することを可能にする。
【0023】
例えば、安全なハードウェアコンポーネントの工場は、安全なフラッシュメモリコンポーネントなどの安全なハードウェアコンポーネントを製造するように構成できる。工場は、コンポーネントの製造工程中にデバイスシークレット及びデバイス管理鍵などの秘密情報を、安全なハードウェアコンポーネントに注入できる。いくつかの場合、デバイスシークレットには、固有デバイスシークレット(UDS)をラベル付けすることができる。工場は、秘密情報のコピーを鍵管理サーバ(KMS)にアップロードするように構成される。
【0024】
デバイス製造メーカは、安全なハードウェアコンポーネントをデバイス製造メーカによって製造されたコンピューティングデバイスに統合し得る。デバイス製造メーカは、コンピューティングデバイス向けに組み込みソフトウェアを設計し、プロビジョニングツールを使用してソフトウェアの暗号学的ハッシュなどのソフトウェアについての機密ではないデータを計算することができる。さらに、デバイス製造メーカはプロビジョニングツールを使用して、ハードウェアコンポーネントの適切な場所にソフトウェアをロードし、適切な暗号計算を生成して鍵対を生成するように、ハードウェアコンポーネントを構成することもできる。
【0025】
デバイス製造メーカは、登録ポータルを使用し、デバイス製造メーカによって製造されたコンピューティングデバイスに組み付けられる安全なハードウェアコンポーネントを登録する。例えば、登録は、安全なハードウェアコンポーネントの工場によって製造された安全なハードウェアコンポーネントの注文または購買の過程の一部として実行できる。
【0026】
デバイス製造メーカは、プロビジョニングツールによって識別されたソフトウェアについての機密ではないデータを登録ポータルにアップロードできる。さらに、デバイス製造メーカは、デバイスのオンボード先であり、証明書を受け取るフィールドサーバについての情報もアップロードできる。それに応じて、登録ポータルは、クラウド証明書ジェネレータに、登録した安全なハードウェアコンポーネントの公開鍵の証明書を生成するように要求できる。
【0027】
登録ポータルからの要求に応えて、クラウド証明書ジェネレータは、製造された安全なハードウェアコンポーネントの以前に格納したデバイスシークレットを取り出し、安全なハードウェアコンポーネントの鍵生成機能をエミュレートし、安全なハードウェアコンポーネントがその鍵対を計算するのと同じ方法で安全なハードウェアコンポーネントの鍵対を計算し、(例えば、秘密鍵を格納することなく)鍵対の公開鍵の証明書に署名することができる。
【0028】
クラウド証明書ジェネレータは、デバイス製造メーカのフィールドサーバに証明書を提供し、デバイス管理鍵を使用して安全なハードウェアコンポーネントを管理し、安全なハードウェアコンポーネントのセキュリティ機能を有効化することができる。
【0029】
デバイス製造メーカによって製造されたコンピューティングデバイスが、デバイス製造メーカのフィールドサーバ(またはエイリアス鍵証明書を知っている別のサーバ)に接続されると、コンピューティングデバイスは、認証に秘密鍵を使用できる。フィールドサーバは、クラウド証明書ジェネレータによって証明された対応する公開鍵を使用して、コンピューティングデバイスが対応する秘密鍵を所有しており、したがって公開鍵の証明と関連付けられたアイデンティティを有することを検証することができる。
【0030】
図1は、一実施形態に係る、認証のためのデバイス(101)を識別するためのシステムを示す。
【0031】
図1で、デバイス(101)は、デバイスシークレット(113)などの少なくとも1つの秘密を安全に格納するように構成された安全なコンポーネント(102)を有する。また、安全なコンポーネント(102)は、デバイス管理鍵(111)のコピーを所有するエンティティが、安全なコンポーネント(102)のセキュリティ機能をオンにするなど、安全なコンポーネント(102)を管理することを可能にするために、デバイス管理鍵(111)を格納することもできる。
【0032】
安全なコンポーネント(102)は、デバイスシークレット(113)及びソフトウェア(115)に基づいて、DICE/RIoT標準に従って生成できるデバイスシークレット要約(121)を有する場合がある。デバイスシークレット要約(121)は、第1の鍵対(125)及び第2の鍵対(123)など、非対称鍵対を生成するために使用できる。
【0033】
デバイス(101)は、ソフトウェア(115)に関連してデバイス(101)の機能を提供するために安全なコンポーネント(102)に接続された1つ以上の追加のコンポーネント(複数可)(104)を含む場合がある。
【0034】
図1のシステムは、証明書ジェネレータ(103)を有する鍵管理サーバ(105)を含む。証明書ジェネレータ(103)は、非対称鍵対を生成する際にデバイス(101)の機能をエミュレートする機能を備えて構成される。
【0035】
例えば、コマンドのセットは、デバイス(101)の安全なコンポーネント(102)に格納されたデバイスシークレット(113)から、及びソフトウェア(115)の第1の暗号学的ハッシュ(例えば、119)から、デバイスシークレット要約(121)を生成するために、デバイス(101)で実行できる。コマンドのセットを実行すると、第1の鍵対(125)または第2の鍵対(123)などの非対称鍵対をさらに生成できる。証明書ジェネレータ(103)は、鍵管理サーバ(105)に格納されたデバイスシークレット(113)のコピーから、及び登録ポータル(107)から受け取ったソフトウェア(115)の暗号学的ハッシュ(例えば、119及び120)からデバイスシークレット要約(121)を生成するためにコマンドの同じセットを使用するように構成される。同様に、証明書ジェネレータ(103)で実行されるコマンドのセットは、第1の鍵対(125)または第2の鍵対(123)など、対応する非対称鍵対を生成することができ、その結果、証明書ジェネレータ(103)は、証明書ジェネレータ(103)または鍵管理サーバ(105)の秘密鍵を使用して、対応する非対称鍵対の公開鍵の証明書にデジタル署名できる。証明書の真正性は、証明書ジェネレータ(103)の公開鍵によって検証できる。したがって、証明書ジェネレータ(103)または鍵管理サーバ(105)を信頼するフィールドサーバ(例えば、109)は、証明書ジェネレータ(103)によって署名された証明書を有する公開鍵の真正性を信頼できる。
【0036】
デバイス(101)の公開鍵が証明されると、デバイス(101)は、対応する秘密鍵を使用して、フィールドサーバ(例えば、109)に対してそれ自体を認証することができる。例えば、デバイス(101)は、秘密鍵を使用してメッセージにデジタル署名できる。デバイス(101)の秘密鍵と関連付けられていると証明された公開鍵を、デジタル署名を検証するために使用できる場合、デバイス(101)は、秘密鍵及び/または公開鍵について署名された証明書に指定されたアイデンティティを所有していると見なすことができる。
【0037】
図1のシステムは、
図2~
図5に関連してさらに以下に説明するように、安全なコンポーネントのホスト(112)(例えば、デバイス管理鍵(111)及びデバイスシークレット(113))を使用して、安全なコンポーネント(102)での秘密の実装とは異なる時間及び場所で、デバイス製造ホスト(114)を使用し、デバイス(101)にソフトウェアをロードすることを可能にする。
【0038】
図2~
図5は、リモートサーバ(例えば、109)にアクセスする際にデバイス(101)の安全な認証のための構成を備えた(例えば、
図1に示すような)コンピューティングデバイス(101)にソフトウェア(115)をオンボードするためのプロセスを示す。
【0039】
図2で、安全なコンポーネント(102)は、その後開発され得、及び/または安全なコンポーネント(102)を使用するコンピューティングデバイス(101)にインストールされ得るソフトウェア(115)を知ることなく、またはソフトウェアにアクセスすることなく工場で構成される。
【0040】
安全なコンポーネント(102)が工場にあるとき、第1の信頼の基点の秘密(例えば、デバイス管理鍵(111)及びデバイスシークレット(113))が安全なコンポーネントのホスト(112)から安全なコンポーネント(102)に注入される。同じホスト(112)は、ホスト(112)と鍵管理サーバ(105)との間の安全な接続を介して秘密のコピーを(例えば、安全なコンポーネント(102)の識別とともに)鍵管理サーバ(105)にアップロードする。
【0041】
図3で、デバイス製造メーカは、安全なコンポーネント(102)及び追加のコンポーネント(104)を統合するコンピューティングデバイス(101)の設計を開発する。コンピューティングデバイス(101)を操作するためのソフトウェア(115)は、デバイス製造メーカの施設(例えば、デバイス製造ホスト(114))で利用可能になる。プロビジョニングツール(117)は、安全なコンポーネント(102)の適切な場所にソフトウェア(115)をインストールし、ソフトウェアの第1の部分のハッシュ(119)及びソフトウェアの第2の部分のハッシュ(120)を生成するために使用できる。ハッシュ(119及び120)は、第1の鍵証明書(127)及び第2の鍵照明書(128)を生成する際に鍵管理サーバ(105)で使用される。
【0042】
図3で、デバイス製造ホスト(114)もプロビジョニングツール(117)及びデバイス管理鍵(111)を使用して、安全なコンポーネント(102)をプロビジョニングし、したがってデバイス(101)でアクティブにすることができる。デバイス製造ホスト(114)は、鍵管理サーバ(105)に対して、デバイス管理鍵(111)をデバイス製造ホスト(114)に転送する、または安全なコンポーネント(102)に送信されるコマンドに直接的に署名するなど、1つ以上の要求を行うことができる。いずれの場合も、プロビジョニングツール(117)は、安全なコンポーネント(102)をプロビジョニングするために使用される同じ構成パラメータを提供する。
【0043】
図3で、プロビジョニングツール(117)がプロビジョニング操作とソフトウェアインストール操作の両方を実施した後に、安全なコンポーネント(102)及び追加のコンポーネント(104)は、鍵管理サーバ(105)に位置する証明書ジェネレータ(103)と同じソフトウェアハッシュ(119、120)に基づいて鍵対(123及び125)を生成する。より詳細には、安全なコンポーネント(102)は、デバイスシークレット(113)、及びプロビジョニングツール(117)とは関係なく計算された第1のソフトウェアハッシュ(119)に基づいてデバイスシークレット要約(121)を内部で生成し、次に追加のコンポーネント(104)が、デバイスシークレット(113)及びやはりプロビジョニングツール(117)とは関係なく計算された第2のソフトウェアハッシュ(120)に基づいて鍵対(123、125)を生成する。
【0044】
ソフトウェア(115)についての情報は、
図4に示すソフトウェア(115)のハッシュ(119及び120)である場合がある。例えば、ソフトウェアハッシュ(119及び120)は、各々、ソフトウェア(115)のソースコードの暗号関数を用いて生成することができる。第1のソフトウェアハッシュ(119)は、デバイス製造メーカと関連するソフトウェアの信頼の基点の第1の部分の情報を表す。第2のソフトウェアハッシュ(120)は、デバイス製造メーカと関連するソフトウェアの信頼の基点の第2の部分の情報を表す。
【0045】
図4で、デバイス(101)内での鍵の生成に使用されるソフトウェアハッシュ(119及び120)は、安全なコンポーネント(104)の登録及びソフトウェア(115)とのその使用の間に登録ポータル(107)を介して鍵管理サーバ(105)に通信される。
【0046】
図5で、証明書ジェネレータ(103)は、デバイス(101)の操作に関係なく、デバイス(101)の公開鍵を生成するためにソフトウェアハッシュ(119及び120)を使用し、デバイス(101)の公開鍵の証明書(127及び128)に署名する。
【0047】
安全なコンポーネント(102)のセキュリティ機能がアクティブにされた後、コンピューティングデバイス(101)にインストールされた安全なコンポーネント(102)は、コンピューティングデバイス(101)のデバイスシークレット要約(121)及びその暗号鍵(例えば、123及び125)を生成する際に使用できる。
【0048】
鍵管理サーバ(105)は、コンピューティングデバイス(101)の鍵証明書(127)をサーバ(109)に提供することができ、サーバ(109)が、証明書ジェネレータ(103)によって証明された公開鍵、及びその対応する秘密鍵を使用してデバイス(101)によって署名されたメッセージに基づいてデバイス(101)を認証することを可能にする。
【0049】
図6は、一実施形態に係る、セキュアデバイスにソフトウェアをオンボードする方法を示す。例えば、
図6の方法は、
図2~
図5に示すプロセスを用いて
図6のシステムに実装することができる。
【0050】
ブロック141で、鍵管理サーバ(105)は、工場で製造されたコンポーネント(102)に実装された第1の情報を受け取る。
【0051】
例えば、第1の情報は、工場で製造されたコンポーネントの中でそのコンポーネント(102)に一意である。
【0052】
例えば、第1の情報はコンポーネント(102)のハードウェアに実装されたデバイスシークレット(113)及び/またはコンポーネント(102)を管理するために使用できるデバイス管理鍵(111)を含む場合がある。
【0053】
例えば、第1の情報は、コンポーネント(102)が工場で製造されている間に、安全なコンポーネントのホスト(112)を介して受け取ることができる。
【0054】
例えば、コンポーネント(102)は、安全なメモリデバイス(例えば、安全なフラッシュメモリデバイス)である場合がある。
【0055】
ブロック143で、鍵管理サーバ(105)は、第1の情報のコピーを格納する。
【0056】
コンポーネント(102)は、工場を離れた後、ソフトウェア(115)を実行するコンピューティングデバイス(101)に組み付けることができる。工場は、ソフトウェア(115)についてのいずれの情報も有さない場合がある。ソフトウェア(115)についての情報は、登録プロセス中に後で収集できる。
【0057】
ブロック145で、鍵管理サーバ(105)のポータル(107)は、ソフトウェア(115)を有するコンピューティングデバイス(101)に組み付けられているコンポーネント(102)の登録を受け取る。
【0058】
ブロック147で、ポータル(107)は、ソフトウェア(115)についての第2の情報を受け取る。コンピューティングデバイス(101)は、ソフトウェア(115)についての第2の情報を単独で生成し、それを、コンポーネント(102)のハードウェアに実装された第1の情報と結合して、(例えば、DICE/RIoTの標準に従って)鍵対(123)を生成するように構成される。
【0059】
ブロック149で、鍵管理サーバ(105)は、鍵管理サーバ(105)に格納された第1の情報のコピー及びポータル(107)を介して受け取った第2の情報を使用して、コンピューティングデバイス(101)とは関係なく、コンピューティングデバイス(101)の第1の公開鍵を生成する。
【0060】
ブロック151で、鍵管理サーバ(105)の証明書ジェネレータ(103)は、証明書ジェネレータ(103)の秘密鍵を使用して第1の公開鍵の証明書にデジタル署名して、コンピューティングデバイス(101)の鍵対(123)の証明された公開鍵及び秘密鍵によって認証を容易にする。
【0061】
ブロック153で、ポータル(107)は、ソフトウェア(115)についての第3の情報を受け取る。コンピューティングデバイス(101)は、ソフトウェア(115)についての第3の情報を単独で生成し、それを、コンポーネント(102)のハードウェアに実装された第1の情報と結合して、(例えば、DICE/RIoTの標準に従って)鍵対(125)を生成するように構成される。
【0062】
ブロック155で、鍵管理サーバ(105)は、鍵管理サーバ(105)に格納された第1の情報のコピー及びポータル(107)を介して受け取った第3の情報を使用して、コンピューティングデバイス(101)とは関係なく、コンピューティングデバイス(101)の第2の公開鍵を生成する。
【0063】
ブロック157で、鍵管理サーバ(105)の証明書ジェネレータ(103)は、証明書ジェネレータ(103)の秘密鍵を使用して第1の公開鍵の証明書にデジタル署名して、コンピューティングデバイス(101)の鍵対(125)の証明された公開鍵及び秘密鍵によってコンピューティングデバイス(101)の鍵対(123)の交換を容易にする。
【0064】
例えば、デバイス製造ホスト(114)は、ソフトウェア(115)をコンピューティングデバイス(101)に適切にインストールするためにプロビジョニングツール(117)で構成できる。プロビジョニングツール(117)は、ソフトウェア(115)の暗号学的ハッシュ(119及び120)である場合がある、ソフトウェア(115)についての第2の情報を計算するように構成できる。プロビジョニングツール(117)は、登録ポータル(107)にソフトウェア(115)についての第2の情報(例えば、119及び120)を提供でき、登録ポータル(107)はコンピューティングデバイス(101)の公開鍵の証明書をフィールドサーバ(109)に提供できる。
【0065】
第1の情報(例えば、デバイスシークレット(113))を有するコンポーネント(102)の登録に成功すると、鍵管理サーバ(105)は、コンピューティングデバイス(101)の公開鍵の証明書(127)を提供できる。
【0066】
デバイス製造ホスト(114)を用いてセキュリティ機能をアクティブにすると、コンピューティングデバイス(101)は、(例えば、DICE/RIoT標準に従って)コンピューティングデバイス(101)の公開鍵及び秘密鍵を計算する、及び/またはコンピューティングデバイス(101)の秘密鍵を使用してリモートサーバ(109)を認証することが可能になる。
【0067】
後に、デバイス(101)の存続期間中に、ソフトウェア(115)に対して有効な更新を実施することができ、この結果、第1のソフトウェアハッシュ(119)は変化しないが、第2のソフトウェアハッシュ(120)が変化する場合がある。結果的に、この更新により第2の鍵対(125)の変化が生じるが、安全なコンポーネント(102)及び追加のコンポーネント(複数可)(104)によって生成された第1の鍵対(123)の変化は生じない。デバイスは、次に、変化していない鍵対(125)を使用して、変化した公開鍵、つまり第2の鍵対(123)の部分に署名することによって鍵交換証明書を作成することができる。鍵交換証明書は、次にフィールドサーバ(109)にアップロードされ、フィールドサーバ(109)はその第2の証明書(128)を使用してその有効性を認証し、成功すると、その第1の鍵証明書(127)を鍵交換証明書で置換することができる。このプロセスは、DICE/RIoT標準に従って実施されてよい。
【0068】
図7は、コンピュータシステム(200)の例示的な機械を示し、その中で、機械に本明細書に説明する方法の任意の1つ以上を実行させるための命令のセットを実行できる。いくつかの実施形態では、コンピュータシステム(200)は、メモリサブシステムを含む、メモリサブシステムに結合される、もしくはそれを利用するコンピュータシステム(例えば、
図1の鍵管理サーバ(105)、登録ポータル(107)、及び/またはリモートサーバ(109))に対応する場合もあれば、
図1~
図6に関して説明する証明書ジェネレータ(103)、登録ポータル(107)、及び/またはプロビジョニングツール(117)に対応する操作を実行する命令など、本明細書に開示するツール(213)の操作を実行するために使用される場合もある。代替実施形態では、機械を、LAN、イントラネット、エクストラネット、及び/またはインターネット内の他の機械に接続する(例えば、ネットワーク化する)ことができる。機械は、ピアツーピア(もしくは分散型)ネットワーク環境のピアマシンとして、またはクラウドコンピューティングインフラストラクチャもしくはクラウドコンピューティング環境内のサーバもしくはクライアントマシンとして、クライアントサーバネットワーク環境内のサーバまたはクライアントマシンの立場で動作する場合がある。
【0069】
機械は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチもしくはブリッジ、またはその機械によって講じられる処置を指定する命令のセットを(連続してまたは別の方法で)実行できる任意の機械である場合がある。さらに、単一の機械が例示されているが、用語「機械」はまた、本明細書で説明する方法の任意の1つ以上を実行するために、命令の1つのセット(または複数のセット)を個別にまたは共同して実行する機械の集合体を含むと解釈されるものとする。
【0070】
例示的なコンピュータシステム(200)は、処理装置(202)、メインメモリ(204)(例えば、読み取り専用メモリ(ROM)、フラッシュメモリ、同期DRAM(SDRAM)またはラムバスDRAMなどのダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)など)、及び(複数のバスを含む場合がある)バス(230)を介して互いと通信するデータストレージシステム(218)を含む。
【0071】
処理装置(202)は、マイクロプロセッサ、中央演算処理装置などの1つ以上の汎用処理装置を表す。より具体的には、処理装置は、複数命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、または他の命令セットを実装するプロセッサ、または命令セットの組み合わせを実装するプロセッサである場合がある。また、処理装置(202)は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、ネットワークプロセッサなど、1つ以上の特殊目的の処理装置である場合がある。処理装置(202)は、本明細書に説明する操作及びステップを実行するための命令(226)を実行するように構成される。コンピュータシステム(200)は、ネットワーク(220)を介して通信するためにネットワークインタフェースデバイス(208)をさらに含む場合がある。
【0072】
データストレージシステム(218)は、本明細書に説明する方法または機能のうちのいずれか1つ以上を具体化する命令(226)の1つ以上のセットまたはソフトウェアが格納される機械可読記憶媒体(224)(コンピュータ可読媒体としても知られる)を含む場合がある。また、命令(226)は、コンピュータシステム(200)、メインメモリ(204)、及び機械可読記憶媒体も構成する処理装置(202)によるその命令の実行中に、メインメモリ(204)内または処理装置(202)内に完全にまたは少なくとも部分的に常駐する場合がある。機械可読記憶媒体(224)、データストレージシステム(218)、及び/またはメインメモリ(204)は、
図1のメモリサブシステム110に対応する場合がある。
【0073】
一実施形態では、命令(226)は、ツール(213)(例えば、
図1~
図6に関して説明するプロビジョニングツール(117)、登録ポータル(107)のソフトウェア、証明書ジェネレータ(103)のソフトウェア、鍵管理サーバ(105)のソフトウェア)に対応する機能を実装する命令を含む。機械可読記憶媒体(224)は、単一の媒体であると例示的な実施形態に示されているが、用語「機械可読記憶媒体」は、単一の媒体、または命令の1つ以上のセットを格納する複数の媒体を含むと解釈されるべきである。また、用語「機械可読記憶媒体」は、機械による実行のための命令のセットを格納または符号化することが可能であり、機械に、本開示の方法の任意の1つ以上を実行させる任意の媒体を含むと解釈されるものとする。したがって、用語「機械可読記憶媒体」は、ソリッドステートメモリ、光媒体、及び磁気媒体を含むが、これらに限定されるものではないと解釈されるものとする。
【0074】
上述の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する演算のアルゴリズム及び記号表現に関して提示されている。これらのアルゴリズムの説明及び表現は、データ処理技術の当業者が自らの研究の実体を他の当業者に最も効果的に伝えるために使用する方法である。アルゴリズムは、ここでは及び一般に、所望の結果につながる演算のセルフコンシステントなシーケンスであると考えられる。演算は、物理量の物理的な操作を必要とするものである。通常、必ずしもではないが、これらの量は、格納、結合、比較、及びそれ以外の場合操作することが可能な電気信号または磁気信号の形をとる。おもに一般的な使用上の理由から、これらの信号をビット、値、要素、記号、文字、用語、数字などと呼ぶことが便利な場合もあることが判明している。
【0075】
しかしながら、これらの用語及び類似する用語のすべてが適切な物理量と関連付けられ、これらの量に適用された便利なラベルにすぎないことを心に留めるべきである。本開示は、コンピュータシステムのレジスタ及びメモリ内の物理(電子)量として表されるデータを操作し、コンピュータシステムのメモリもしくはレジスタまたはそのような他の情報記憶システム内の物理量として同様に表される他のデータに変換する、コンピュータシステムまたは類似する電子コンピューティングデバイスの動作及びプロセスを指す場合がある。
【0076】
また、本開示は、本明細書の操作を実行するための装置にも関する。この装置は、意図した目的のために特別に構築される場合もあれば、装置は、コンピュータに格納されたコンピュータプログラムによって選択的にアクティブにされたまたは再構成された汎用コンピュータを含む場合もある。そのようなコンピュータプログラムは、それぞれがコンピュータシステムバスに結合された、フロッピーディスク、光ディスク、CD-ROM、及び磁気光学ディスクを含む任意のタイプのディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カードもしくは光カード、または電子命令を格納するために適した任意のタイプの媒体などであるが、これらに限定されるものではないコンピュータ可読記憶媒体に格納される場合がある。
【0077】
本明細書に提示されるアルゴリズム及びディスプレイは、任意の特定のコンピュータまたは他の装置に本質的に関連していない。様々な汎用システムは、本明細書の教示に従ってプログラムと使用される場合もあれば、方法を実行するためにより特殊化した装置を構築することが便利であることが判明する場合もある。種々のこれらのシステムの構造は、以下の説明に説明されるように表示される。さらに、本開示は、任意の特定のプログラミング言語を参照して説明されていない。本明細書に説明する本開示の教示を実装するために種々のプログラミング言語を使用できることが理解される。
【0078】
本開示は、本開示に従ってプロセスを実行するようにコンピュータシステム(または他の電子機器)をプログラムするために使用できる命令をその上に格納した機械可読媒体を含む場合がある、コンピュータプログラム製品、つまりソフトウェアとして提供することができる。機械可読媒体は、機械(例えば、コンピュータ)によって可読な形式で情報を格納するための任意の機構を含む。いくつかの実施形態では、機械可読(例えば、コンピュータ可読)媒体は、読み取り専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリコンポーネントなどの機械(例えば、コンピュータ)可読記憶媒体を含む。
【0079】
本明細書では、様々な機能及び操作は、説明を簡略化するために、コンピュータ命令によって実行されている、またはコンピュータ命令によって引き起こされるとして説明される。しかしながら、当業者は、そのような表現が意味することが、機能が、1つ以上のコントローラまたはマイクロプロセッサなどのプロセッサによるコンピュータ命令の実行から生じるということであることを認識する。代わりに、または組み合わせて、機能及び操作は、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)を使用するなど、ソフトウェア命令の有無に関わらず、特殊目的回路を使用して実装できる。実施形態は、ソフトウェア命令なしに、またはソフトウェア命令と組み合わせて、ハードワイヤード回路を使用して実装できる。したがって、技術は、ハードウェア回路及びソフトウェアの任意の特定の組み合わせにも、データ処理システムによって実行される命令のための任意の特定のソースにも限定されない。
【0080】
上記明細書では、本開示の実施形態は、その特定の例示的な実施形態を参照して説明されている。以下の特許請求の範囲に説明される本開示の実施形態のより広い趣旨及び範囲から逸脱することなく、それに対して様々な修正を加えることができることは明らかである。したがって、明細書及び図面は、限定的な意味ではなく、例示的な意味で考えられるべきである。