(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-25
(54)【発明の名称】組み込みデバイスの安全な信頼の起点登録及び識別管理
(51)【国際特許分類】
H04L 9/08 20060101AFI20240315BHJP
H04L 9/10 20060101ALI20240315BHJP
【FI】
H04L9/08 F
H04L9/10 Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023562565
(86)(22)【出願日】2022-04-12
(85)【翻訳文提出日】2023-12-08
(86)【国際出願番号】 GB2022050916
(87)【国際公開番号】W WO2022219323
(87)【国際公開日】2022-10-20
(32)【優先日】2021-04-12
(33)【優先権主張国・地域又は機関】GB
(81)【指定国・地域】
(71)【出願人】
【識別番号】521452588
【氏名又は名称】クリプト・クオンティーク・リミテッド
【氏名又は名称原語表記】Crypto Quantique Limited
(74)【代理人】
【識別番号】100145403
【氏名又は名称】山尾 憲人
(74)【代理人】
【識別番号】100135703
【氏名又は名称】岡部 英隆
(74)【代理人】
【識別番号】100221556
【氏名又は名称】金田 隆章
(72)【発明者】
【氏名】ウッデージ,ジョアン
(72)【発明者】
【氏名】パターソン,ケネス
(72)【発明者】
【氏名】モサイェビ,シャフラム
(72)【発明者】
【氏名】エルダー,ジョン アンソニー
(57)【要約】
方法、装置、デバイス、及びコンピュータ可読媒体は、デバイス登録に関連して提供される。一例では、電子デバイスが提供される。電子デバイスは、物理複製困難関数(PUF)を有するセキュリティモジュールを備える。セキュリティモジュールは、PUFに対する第1のチャレンジ及びレスポンスに基づいて、登録鍵ペア(EPK、ESK)を確立するように構成され、登録鍵ペアは、登録公開鍵(EPK)と、登録秘密鍵(ESK)と、を備える。電子デバイスは、PUFに対する第2のチャレンジ及びレスポンスに基づいて、デバイス鍵ペア(DPK、DSK)を確立するように構成され、デバイス鍵ペアは、デバイス公開鍵(DPK)と、デバイス秘密鍵(DSK)と、を備える。電子デバイスは、一次トラステッドルート証明書をインストールした1又は複数のメモリを更に備える。電子デバイスは、安全な接続を介して、DPKがデバイス識別子に関連付けられていることを証明する証明書について、証明書署名要求(CSR)をサーバに送信するように構成される1又は複数のプロセッサを更に備え、CSRは、デバイス識別子と、DPKと、を含み、CSRは、DSKを使用して署名され、デバイス識別子は、EPKの関数に基づく。1又は複数のプロセッサは、安全な接続を介して、DPKをデバイス識別子に関連付けるデバイス証明書を受信するように更に構成される。1又は複数のプロセッサは、デバイス証明書が一次トラステッドルート証明書の下位であることを検証するように更に構成される。1又は複数のプロセッサは、検証に応答して、デバイス証明書をメモリにインストールするように更に構成される。
【特許請求の範囲】
【請求項1】
物理複製困難関数(PUF)を有するセキュリティモジュールを備える電子デバイスであって、
前記セキュリティモジュールは、前記PUFに対する第1のチャレンジ及びレスポンスに基づいて、登録鍵ペア(EPK、ESK)を確立するように構成され、
前記登録鍵ペアは、登録公開鍵(EPK)及び登録秘密鍵(ESK)を備え、
前記電子デバイスは、前記PUFに対する第2のチャレンジ及びレスポンスに基づいて、デバイス鍵ペア(DPK、DSK)を確立するように構成され、
前記デバイス鍵ペアは、デバイス公開鍵(DPK)及びデバイス秘密鍵(DSK)を備え、
前記電子デバイスは、
一次トラステッドルート証明書がインストールされた1又は複数のメモリと、
プロセッサと、を更に備え、
前記プロセッサは、
安全な接続を介して、前記DPKがデバイス識別子に関連付けられていることを証明する証明書について、前記デバイス識別子と前記DPKとを含む証明書署名要求(CSR)をサーバに送信し、
前記安全な接続を介して、前記DPKを前記デバイス識別子に関連付けるデバイス証明書を受信し、
前記デバイス証明書が前記一次トラステッドルート証明書の下位であることを検証し、
前記検証に応答して、前記デバイス証明書をメモリにインストールする
ように構成され、
前記CSRは、前記DSKを使用して署名され、
前記デバイス識別子は、前記EPKの関数に基づく、
電子デバイス。
【請求項2】
前記プロセッサは、前記安全な接続を介して、IoTハブルート証明書を受信し、前記IoTハブルート証明書をメモリに記憶するように更に構成される、請求項1に記載の電子デバイス。
【請求項3】
前記プロセッサは、前記安全な接続を介して、IoTハブエンドポイントを受信し、前記IoTハブエンドポイントをメモリに記憶するように更に構成される、請求項2に記載の電子デバイス。
【請求項4】
前記1又は複数のメモリは、発行証明書をインストールしており、
前記発行証明書は、前記一次トラステッドルート証明書の下位であり、
前記デバイス証明書が前記一次トラステッドルート証明書の下位であることを検証することは、前記デバイス証明書が前記発行証明書の直接の下位であることを検証することを含む、
請求項1~3のいずれかに記載の電子デバイス。
【請求項5】
前記発行証明書は、前記一次トラステッドルート証明書の直接の下位である、請求項4に記載の電子デバイス。
【請求項6】
前記1又は複数のメモリは、一時登録デバイス証明書をインストールしており、
前記一時登録デバイス証明書は、前記EPKを前記デバイス識別子に関連付け、かつ、有効期間を含み、
前記安全な接続は、前記有効期間の満了前に確立される、
請求項1~5のいずれかに記載の電子デバイス。
【請求項7】
前記サーバとの前記安全な接続を確立するために、前記プロセッサは、前記一時登録デバイス証明書を提示することによって前記サーバと認証するように構成される、請求項6に記載の電子デバイス。
【請求項8】
前記一時登録デバイス証明書は、前記サーバに記憶された一時登録発行証明書によって署名される、請求項6又は7に記載の電子デバイス。
【請求項9】
前記プロセッサは、
安全接続発行証明書及び安全接続証明書を前記サーバ~受信し、
前記一次トラステッドルート証明書を使用して前記安全接続証明書を検証し、
前記検証に応答して、前記サーバへの前記安全な接続を確立する
ように更に構成され、
前記安全接続発行証明書及び安全接続証明書は、前記一次トラステッドルート証明書の下位である、
請求項1~8のいずれかに記載の電子デバイス。
【請求項10】
前記安全接続証明書を検証することは、前記安全接続証明書が前記一次トラステッドルート証明書の下位であることを検証することと、任意選択で、サーバ識別を前記電子デバイスの前記1又は複数のメモリに記憶されたサーバ識別と比較することと、を含む、請求項9に記載の電子デバイス。
【請求項11】
電子デバイスによる実施のための方法であって、前記電子デバイスは、
物理複製困難関数(PUF)を有するセキュリティモジュールと、
一次トラステッドルート証明書がインストールされた1又は複数のメモリと
を備え、
前記セキュリティモジュールは、前記PUFに対する第1のチャレンジ及びレスポンスに基づいて、登録鍵ペア(EPK、ESK)を確立するように構成され、
前記登録鍵ペアは、登録公開鍵(EPK)及び登録秘密鍵(ESK)を備え、
前記電子デバイスは、前記PUFに対する第2のチャレンジ及びレスポンスに基づいて、デバイス鍵ペア(DPK、DSK)を確立するように構成され、
前記デバイス鍵ペアは、デバイス公開鍵(DPK)及びデバイス秘密鍵(DSK)を備え、
前記方法は、
安全な接続を介して、前記DPKがデバイス識別子に関連付けられていることを証明する証明書について、前記デバイス識別子と前記DPKとを含む証明書署名要求(CSR)をサーバに送信するステップと、
前記安全な接続を介して、前記DPKを前記デバイス識別子に関連付けるデバイス証明書を受信するステップと、
前記デバイス証明書が前記一次トラステッドルート証明書の下位であることを検証するステップと、
前記検証に応答して、前記デバイス証明書をメモリにインストールするステップと、を含み、
前記CSRは、前記DSKを使用して署名され、
前記デバイス識別子は、前記EPKの関数に基づく、
方法。
【請求項12】
1又は複数のサーバを備え、電子デバイスを認証するためのサーバシステムのサーバであって、
前記サーバは、
デバイス鍵ペアのデバイス公開鍵(DPK)が電子デバイスを識別するためのデバイス識別子に関連付けられていることを証明する証明書について、前記デバイス識別子と前記DPKとを含む証明書署名要求(CSR)を受信し、
前記サーバが証明書に署名し得るデバイス識別子のデータベースに対して前記CSRの前記デバイス識別子を確認させ、
前記デバイス識別子が前記電子デバイスを識別するために知られていることを検証するために、前記CSRの前記デバイス識別子の確認を実施させ、
前記CSRに基づいて、前記電子デバイスに知られている一次トラステッドルート証明書の下位であるデバイス証明書に署名し、
安全な接続を介して、前記サーバシステムから前記デバイス識別子によって識別された前記電子デバイスへの前記デバイス証明書の送信を開始する
ように構成され、
前記CSRは、前記デバイス鍵ペアのデバイス秘密鍵(DSK)を使用して署名され、
前記デバイス識別子は、前記電子デバイスに属することが知られている登録鍵ペアの登録公開鍵(EPK)の関数に基づく、
サーバ。
【請求項13】
前記サーバは、前記安全な接続を介して、前記サーバシステムから前記電子デバイスへのIoTハブルート証明書の送信を開始し、及び/又は前記安全な接続を介して、前記電子デバイスへのIoTハブエンドポイントの送信を開始するように更に構成される、請求項12に記載のサーバ。
【請求項14】
前記サーバは、前記デバイス証明書をIoTハブに登録させるように更に構成される、請求項12~13のいずれかに記載のサーバ。
【請求項15】
前記サーバは、前記デバイス識別子に関連付けられたセキュリティポリシーを取得させ、前記CSR及びセキュリティポリシーに従って前記デバイス証明書に署名させるように更に構成される、請求項12~14のいずれかに記載のサーバ。
【請求項16】
前記デバイス識別子が前記電子デバイスを識別するために知られていることを検証するために、前記CSRの前記デバイス識別子の確認を実施させることは、前記CSRの前記デバイス識別子が一時登録デバイス証明書の前記デバイス識別子と一致することを検証することを含み、
前記一時登録デバイス証明書は、前記EPKが前記デバイス識別子に関連付けられていることを証明し、かつ、有効期間を含み、
前記一時登録デバイス証明書は、前記安全な接続を確立するときに、前記電子デバイスによって、前記サーバシステムに提示されている、
請求項12~15のいずれかに記載のサーバ。
【請求項17】
前記サーバは、前記一時登録デバイス証明書が前記サーバシステムに記憶された一時登録発行証明書によって署名されていることを確認させ、前記一時登録デバイス証明書が前記有効期間内であることを確認させるように更に構成される、請求項16に記載のサーバ。
【請求項18】
前記サーバは、前記一時登録デバイス証明書の前記署名の確認に基づいて、前記電子デバイスと前記サーバシステムとの間の前記安全な接続を確立するように更に構成される、請求項16又は17に記載のサーバ。
【請求項19】
前記サーバは、前記サーバシステムから前記電子デバイスへの安全接続発行証明書及び安全接続証明書の送信を開始するように更に構成され、
前記安全接続発行証明書及び安全接続証明書は、前記一次トラステッドルート証明書の下位である、
請求項16~18のいずれかに記載のサーバ。
【請求項20】
デバイス鍵ペアのデバイス公開鍵(DPK)が電子デバイスを識別するためのデバイス識別子に関連付けられていることを証明する証明書について、前記デバイス識別子と前記DPKとを含む証明書署名要求(CSR)を受信するステップと、
サーバが証明書に署名し得るデバイス識別子のデータベースに対して前記デバイス識別子を確認させるステップと、
前記デバイス識別子が前記電子デバイスを識別するために知られていることを検証するために、前記CSRの前記デバイス識別子の確認を実施させるステップと、
前記CSRに基づいて、前記電子デバイスに知られている一次トラステッドルート証明書の下位であるデバイス証明書に署名するステップと、
安全な接続を介して、前記デバイス識別子によって識別された前記電子デバイスへの前記デバイス証明書の送信を開始するステップと
を含む方法であって、
前記CSRは、前記デバイス鍵ペアのデバイス秘密鍵(DSK)を使用して署名され、
前記デバイス識別子は、前記電子デバイスに属することが知られている登録鍵ペアの登録公開鍵(EPK)の関数に基づく、
方法。
【請求項21】
電子デバイス及び1又は複数のサーバを備えるシステムであって、
前記電子デバイスは、物理複製困難関数(PUF)を有するセキュリティモジュールを備え、
前記セキュリティモジュールは、前記PUFに対する第1のチャレンジ及びレスポンスに基づいて、登録鍵ペア(EPK、ESK)を確立するように構成され、
前記登録鍵ペアは、登録公開鍵(EPK)及び登録秘密鍵(ESK)を備え、
前記電子デバイスは、前記PUFに対する第2のチャレンジ及びレスポンスに基づいて、デバイス鍵ペア(DPK、DSK)を確立するように構成され、
前記デバイス鍵ペアは、デバイス公開鍵(DPK)及びデバイス秘密鍵(DSK)を備え、
前記電子デバイスは、
一次トラステッドルート証明書がインストールされた1又は複数のメモリと、
プロセッサと、を備え、
前記プロセッサは、
安全な接続を介して、前記DPKがデバイス識別子に関連付けられていることを証明する証明書について、前記デバイス識別子と前記DPKとを含む証明書署名要求(CSR)を前記1又は複数のサーバに送信し、
前記安全な接続を介して、前記DPKを前記デバイス識別子に関連付けるデバイス証明書を受信し、
前記デバイス証明書が前記一次トラステッドルート証明書の下位であることを検証し、
前記検証に応答して、前記デバイス証明書をメモリにインストールする
ように構成され
前記CSRは、前記DSKを使用して署名され、
前記デバイス識別子は、前記EPKの関数に基づき、
前記1又は複数のサーバは、
前記安全な接続を介して、前記CSRを前記電子デバイスから受信し、
前記サーバが証明書に署名し得るデバイス識別子のデータベースに対して前記デバイス識別子を確認し、
前記デバイス識別子が前記電子デバイスを識別するために知られていることを検証し、
前記CSRに基づいて、前記一次トラステッドルート証明書の下位である前記デバイス証明書に署名し、
前記安全な接続を介して、前記デバイス識別子によって識別された前記電子デバイスに前記デバイス証明書を送信する
ように構成される、
システム。
【請求項22】
電子デバイスのプロセッサによって実行されると、前記電子デバイスに請求項11に記載の方法を実施させる命令を含むコンピュータ可読媒体。
【請求項23】
サーバのプロセッサによって実行されると、前記サーバに請求項20に記載の方法を実施させる命令を含むコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、当事者間の信頼を確立するための方法及びシステムに関する。特に、本開示は、暗号化方法及びそのような方法を実施するように構成されるコンピュータ装置に関する。本明細書の開示は、多くのデバイス及びネットワークに適用可能であるが、特にインターネット接続デバイスに適用可能である。
【背景技術】
【0002】
インターネットなどのネットワークは、日常的なタスクの実行方法を変化させており、これは情報セキュリティに大きな影響を及ぼしている。多くの日常的なタスクは、デジタルデバイスが安全に認証し、別の当事者によって認証され、及び/又は個人情報を安全に処理することを必要とする。モノのインターネット(IoT)の発展に伴い、暖房や照明などのシステムがインターネットに接続されたデバイスによって制御されることがますます一般的になり、多くのデバイスが毎年インターネットに接続されるようになっている。
【0003】
デバイス認証とは、信頼され得ることを保証するためにデバイスの識別を安全に確立する行為を指す。デバイスが接続するサービス(例えば、クラウドベースのサービス)は、デバイスが、本物であり、信頼できるソフトウェアを実行しており、信頼できるユーザに代わって動作していることを知る必要がある。
【0004】
プロビジョニングとは、エンドユーザに渡すために適したデバイスを準備し、サービスに登録するプロセスを指す。認証は、そのプロセスの一部であり、これにより、適切な認証情報を提示するデバイスのみが登録される。プロビジョニングの正確な詳細は、実装に基づいて大きく変化し得るが、ほとんどの状況では、デバイスには製造時に暗号鍵及び証明書が提供され、これにより、デバイスが展開される(サービスに接続するためにエンドユーザに提供する準備ができている)とき、適切な認証情報を提供し得る。
【0005】
多くの場合、IoTデバイスの組み込みシステムは、事前共有鍵に依存しており、これらのデバイスがインターネットに接続され、グローバルにアドレス指定可能になると問題になる。事前共有鍵は、デバイスの展開前に共有される必要があり、集中リソースは、通信するために各デバイスと鍵を共有する必要が通常あるため、単一のサーバの合意は、デバイスのネットワーク全体の安全性を危険にさらす可能性がある。更に、そのような事前共有鍵では、任意の通信の発信元の証明及びアクセス制御などの様々なセキュリティ保証を実現できない。
【0006】
公開鍵インフラストラクチャ(PKI)は、事前共有鍵に関する問題に対処する1つの方法を提案する。PKIは、集中型認証情報管理及び鍵配布のために多くのネットワークシステムで使用されているが、IoTコミュニティは、経済的理由と技術的理由との両方のためにPKIの採用に時間がかかっている。公開鍵暗号方式、すなわち非対称暗号方式は、広く周知され得る公開鍵と、デバイス/所有者にのみ知られている対応する秘密/非公開鍵と、を含む鍵のペアを使用する暗号システムである。PKIは、デジタル証明書の生成、管理、配布、使用、記憶及び失効、並びに公開鍵暗号化の管理、に必要とされる、役割、ポリシー、ハードウェア、ソフトウェア及び手順のセットである。PKIは、公開鍵をエンティティのそれぞれの識別(人、組織、又は個々のデバイスなど)とバインディングする。バインディングは、信頼できる認証局(CA)による証明書の登録及び発行のプロセスを通して確立される。
【0007】
事前共有鍵又は公開鍵インフラストラクチャを利用するために、いくつかの秘密情報が、デバイス製造時又はその直後に電子デバイスの安全な領域に通常導入される。例えば、秘密情報は、事前共有鍵であってもよく、又は秘密情報は、公開鍵暗号化に依存するシステム内の鍵ペアの秘密鍵を含んでもよい。この手法は、秘密情報を電子デバイスに導入する安全な設備、及び/又は鍵を安全に導入する第三者の能力を信頼すること、を必要とする。安全な施設は、コストが高く、管理が困難であり、新しい脅威に対する堅牢な応答を保証するためにセキュリティ手順の継続的な保守及び評価を必要とする。通常、ハードウェアセキュリティモジュール(HSM)が、鍵を生成し、記憶するために必要とされる場合があり、統合鍵導入システムが、鍵を電子デバイスに導入するために必要とされる場合があり、その場合でも、HSM及び/又は安全な設備がセキュリティ侵害を受けた場合、導入された鍵の完全性を保証し得ない。
【0008】
電子デバイスに秘密情報を安全に提供することの固有の困難が、デバイスの登録-相互接続されたデバイスのグリッドへの開始など、更なる下流プロセスに影響を及ぼす可能性がある。多くの場合、デバイス証明書は、サービスに登録するためのいくつかの基本的な認証情報をデバイスに提供するために、製造時にデバイスに安全に提供される必要がある。ここでも、これをどの程度、安全に行い得るかには限界がある。
【0009】
典型的なシナリオでは、オリジナル製品製造者(Original Equipment Manufacturer、OEM)は、製造されたデバイスに、登録を可能にするための識別を提供し、デバイスにファームウェアを安全にインストールすることを求める場合がある。デバイスは、例えば、鍵を記憶するための安全な領域を有するマイクロコントローラを含んでもよく、マイクロコントローラは、第三者の製造者によって製造されてもよい。OEM又は製造者は、例えば、秘密鍵及びデバイス証明書を安全な領域に導入することができ、安全な設備を必要とする。デバイスにファームウェア/証明書をインストールするために、OEMは、信頼を必要とするデバイスを構成するためのプログラミングハウスのサービスを利用し得る。プログラミングハウスは、安全な設備を運用し、正しい情報を導入し、OEMに代わって証明書に安全に署名するために、信頼される必要がある。状況によっては、デバイスをプロビジョニングするには、複数の異なる当事者が電子デバイスと相互作用する必要があり得る。
【0010】
本発明の実施形態の目的は、当技術分野で知られている1又は複数の問題を少なくとも緩和することである。
【発明の概要】
【0011】
本発明の一態様によれば、電子デバイスが提供される。電子デバイスは、物理複製困難関数(PUF)を有するセキュリティモジュールを備える。セキュリティモジュールは、PUFに対する第1のチャレンジ及びレスポンスに基づいて、登録鍵ペア(EPK、ESK)を確立するように構成され、登録鍵ペアは、登録公開鍵(EPK)と、登録秘密鍵(ESK)と、を備える。電子デバイスは、PUFに対する第2のチャレンジ及びレスポンスに基づいて、デバイス鍵ペア(DPK、DSK)を確立するように構成され、デバイス鍵ペアは、デバイス公開鍵(DPK)と、デバイス秘密鍵(DSK)と、を備える。電子デバイスは、一次トラステッドルート証明書をインストールした1又は複数のメモリを更に備える。電子デバイスは、安全な接続を介して、DPKがデバイス識別子に関連付けられていることを証明する証明書について、証明書署名要求(CSR)をサーバに送信するように構成される1又は複数のプロセッサを更に備え、CSRは、デバイス識別子及びDPKを含む。CSRは、DSKを使用して署名され、デバイス識別子は、EPKの関数に基づく。1又は複数のプロセッサは、安全な接続を介して、DPKをデバイス識別子に関連付けるデバイス証明書を受信するように更に構成される。1又は複数のプロセッサは、デバイス証明書が一次トラステッドルート証明書の下位であることを検証するように更に構成される。1又は複数のプロセッサは、検証に応答して、デバイス証明書をメモリにインストールするように更に構成される。
【0012】
有利には、デバイス識別子は、PUFに対するチャレンジ及びPUFからのレスポンスに基づいて、第1の鍵ペア(EPK及びESK)に関連付けられ、電子デバイスに提供されたデバイス証明書は、第2の鍵ペア(DPK、DSK)をそのデバイス識別子に関連付け、第2の鍵ペアはまた、PUFに対するチャレンジ及びPUFからのレスポンスに基づいている。秘密情報をデバイスに導入する必要はなく、その後、デバイス鍵ペアがセキュリティ侵害を受けた場合、デバイス証明書は、電子デバイスの識別子も更新する必要なしに、新規のデバイス鍵ペアを使用して鍵を再生成され得る。
【0013】
1又は複数のプロセッサは、安全な接続を介して、IoTハブルート証明書を受信し、IoTハブルート証明書をメモリに記憶するように更に構成され得る。1又は複数のプロセッサは、安全な接続を介して、IoTハブエンドポイントを受信し、IoTハブエンドポイントをメモリに記憶するように更に構成され得る。
【0014】
1又は複数のメモリは、発行証明書がインストールされていてもよく、発行証明書は、一次トラステッドルート証明書の下位である。デバイス証明書が一次トラステッドルート証明書の下位であることを検証することは、デバイス証明書が発行証明書の直接の下位であることを検証すること、を含み得る。発行証明書は、一次トラステッドルート証明書の直接の下位であり得る。
【0015】
1又は複数のメモリには、一時登録デバイス証明書がインストールされていてもよく、一時登録デバイス証明書は、EPKをデバイス識別子に関連付け、有効期間を含む。一時登録デバイス証明書は、一時登録トラステッドルート証明書の下位であり得る。安全な接続が、有効期間の満了前に、確立され得る。
【0016】
サーバへの安全な接続を確立することは、一時登録デバイス証明書を提示することによってサーバと認証すること、を含み得る。
【0017】
一時登録デバイス証明書は、サーバに記憶された一時登録発行証明書によって署名され得る。
【0018】
1又は複数のプロセッサは、サーバから安全接続発行証明書及び安全接続証明書を受信するように更に構成され、安全接続発行証明書及び安全接続証明書は、一次トラステッドルート証明書の下位である。1又は複数のプロセッサは、一次トラステッドルート証明書を使用して安全接続証明書を検証するように更に構成され得る。1又は複数のプロセッサは、検証に応答して、サーバへの安全な接続を確立するように更に構成され得る。
【0019】
安全接続証明書を検証することは、安全接続証明書が一次トラステッドルート証明書の下位であることを検証することと、任意選択で、サーバ識別を電子デバイスの1又は複数のメモリに記憶されたサーバ識別と比較することと、を含み得る。
【0020】
本発明の一態様によれば、電子デバイスによる実施のための方法が提供される。電子デバイスは、物理複製困難関数を有するセキュリティモジュールを備える。セキュリティモジュールは、PUFに対する第1のチャレンジ及びレスポンスに基づいて、登録鍵ペア(EPK、ESK)を確立するように構成され、登録鍵ペアは、登録公開鍵(EPK)と、登録秘密鍵(ESK)と、を備える。電子デバイスは、一時登録トラステッドルート証明書がインストールされた1又は複数のメモリを更に備える。電子デバイスはまた、PUFに対する第2のチャレンジ及びレスポンスに基づいて、デバイス鍵ペア(DPK、DSK)を確立するように構成され、デバイス鍵ペアは、デバイス公開鍵(DPK)と、デバイス秘密鍵(DSK)と、を備える。本方法は、安全な接続を介して、DPKがデバイス識別子に関連付けられていることを証明する証明書について、証明書署名要求(CSR)をサーバに送信すること、を含む。CSRは、デバイス識別子と、DPKと、を含む。CSRは、DSKを使用して署名され、デバイス識別子は、EPKの関数に基づく。本方法は、安全な接続を介して、DPKをデバイス識別子に関連付けるデバイス証明書を受信すること、を更に含む。本方法は、デバイス証明書が一次トラステッドルート証明書の下位であることを検証すること、を更に含む。本方法は、検証に応答して、デバイス証明書をメモリにインストールすること、を更に含む。
【0021】
本発明の一態様によれば、1又は複数のサーバを備えるサーバシステムのサーバが、提供される。サーバシステムは、電子デバイスの認証に適している。サーバは、デバイス鍵ペアのデバイス公開鍵(DPK)が電子デバイスを識別するためのデバイス識別子に関連付けられていることを証明する証明書について、証明書署名要求(CSR)を受信するように構成される。CSRは、デバイス識別子と、DPKと、を含む。CSRは、デバイス鍵ペアのデバイス秘密鍵(DSK)を使用して署名され、デバイス識別子は、電子デバイスに属することが知られている登録鍵ペアの関数に基づく。サーバは、サーバが証明書に署名し得るデバイス識別子のデータベースに対して、CSRのデバイス識別子を確認させるように更に構成される。サーバは、デバイス識別子が電子デバイスを識別するために知られていることを検証するために、CSRのデバイス識別子の確認を実施させるように更に構成される。サーバは、CSRに基づいてデバイス証明書に署名するように更に構成され、デバイス証明書は、電子デバイスに知られている一次トラステッドルート証明書の下位である。サーバは、安全な接続を介して、デバイス識別子によって識別された電子デバイスへのデバイス証明書の送信を開始するように更に構成される。
【0022】
サーバは、安全な接続を介して、電子デバイスへのIoTハブルート証明書の送信を開始するように更に構成され得る。サーバは、安全な接続を介して、電子デバイスへのIoTハブエンドポイントの送信を開始するように更に構成され得る。
【0023】
サーバは、デバイス証明書をIoTハブに登録させるように更に構成され得る。
【0024】
サーバは、デバイス識別子に関連付けられたセキュリティポリシーを取得させ、CSR及びセキュリティポリシーに従ってデバイス証明書に署名させるように更に構成され得る。
【0025】
デバイス識別子が電子デバイスを識別するために知られていることを検証するために、CSRのデバイス識別子の確認を実施させることは、CSRのデバイス識別子が一時登録デバイス証明書のデバイス識別子と一致することを検証すること、を含むことができ、一時登録デバイス証明書は、EPKがデバイス識別子に関連付けられていることを証明し、有効期間を含み、一時登録デバイス証明書は、安全な接続を確立するときに電子デバイスによってサーバシステムに提示される。
【0026】
サーバは、一時登録デバイス証明書がサーバシステムに記憶された一時登録発行証明書によって署名されていることを確認させ、一時登録デバイス証明書が有効期間内であることを確認させるように更に構成され得る。
【0027】
サーバは、一時登録デバイス証明書の署名の確認に基づいて、電子デバイスとサーバシステムとの間の安全な接続を確立するように更に構成され得る。
【0028】
サーバは、サーバシステムから電子デバイスへの安全接続発行証明書及び安全接続証明書の送信を開始するように更に構成され、安全接続発行証明書及び安全接続証明書は、一次トラステッドルート証明書の下位である。
【0029】
サーバは、EPKがデバイス識別子に関連付けられていることを証明し、有効期間を含む一時登録デバイス証明書を受信させるように更に構成され得る。
【0030】
本発明の一態様によれば、方法が提供される。本方法は、デバイス鍵ペアのデバイス公開鍵(DPK)が電子デバイスを識別するためのデバイス識別子に関連付けられていることを証明する証明書について、証明書署名要求(CSR)を受信すること、を含む。CSRは、デバイス識別子と、DPKと、を含む。CSRは、デバイス鍵ペアのデバイス秘密鍵(DSK)を使用して署名され、デバイス識別子は、電子デバイスに属することが知られている登録鍵ペアの関数に基づく。本方法は、サーバが証明書に署名し得るデバイス識別子のデータベースに対してデバイス識別子を確認させること、を更に含む。本方法は、デバイス識別子が電子デバイスを識別するために知られていることを検証するために、CSRのデバイス識別子の確認を実施させること、を更に含む。本方法は、CSRに基づいてデバイス証明書に署名すること、を更に含み、デバイス証明書は、電子デバイスに知られている一次トラステッドルート証明書の下位である。本方法は、安全な接続を介して、デバイス識別子によって識別された電子デバイスへのデバイス証明書の送信を開始すること、を更に含む。
【0031】
本発明の一態様によれば、システムが提供される。システムは、電子デバイスと、1又は複数のサーバと、を備える。電子デバイスは、物理複製困難関数(PUF)を有するセキュリティモジュールを備える。セキュリティモジュールは、PUFに対する第1のチャレンジ及びレスポンスに基づいて、登録鍵ペア(EPK、ESK)を確立するように構成され、登録鍵ペアは、登録公開鍵(EPK)と、登録秘密鍵(ESK)と、を備える。電子デバイスは、PUFに対する第2のチャレンジ及びレスポンスに基づいて、デバイス鍵ペア(DPK、DSK)を確立するように更に構成され、デバイス鍵ペアは、デバイス公開鍵(DPK)と、デバイス秘密鍵(DSK)と、を備える。電子デバイスは、一次トラステッドルート証明書をインストールした1又は複数のメモリを更に備える。電子デバイスは、安全な接続を介して、DPKがデバイス識別子に関連付けられていることを証明する証明書について、証明書署名要求(CSR)を1又は複数のサーバに送信するように構成される1又は複数のプロセッサを更に備える。CSRは、デバイス識別子と、DPKと、を含む。CSRは、DSKを使用して署名される。デバイス識別子は、EPKの関数に基づく。1又は複数のプロセッサは、安全な接続を介して、DPKをデバイス識別子に関連付けるデバイス証明書を受信するように更に構成される。1又は複数のプロセッサは、デバイス証明書が一次トラステッドルート証明書の下位であることを検証するように更に構成される。1又は複数のプロセッサは、検証に応答して、デバイス証明書をメモリにインストールするように更に構成される。1又は複数のサーバは、安全な接続を介して、CSRを電子デバイスから受信するように構成される。1又は複数のサーバは、サーバが証明書に署名し得るデバイス識別子のデータベースに対してデバイス識別子を確認させるように更に構成される。1又は複数のサーバは、デバイス識別子が電子デバイスを識別するために知られていることを検証するように更に構成される。1又は複数のサーバは、CSRに基づいてデバイス証明書に署名するように更に構成され、デバイス証明書は、一次トラステッドルート証明書の下位である。1又は複数のサーバは、安全な接続を介して、デバイス識別子によって識別された電子デバイスにデバイス証明書を送信するように更に構成される。
【0032】
本発明の一態様によれば、コンピュータ可読媒体が提供される。コンピュータ可読媒体は、電子デバイスのプロセッサによって実行されると、電子デバイスに本明細書に記載の方法を実施させる命令を記憶している。
【0033】
本発明の一態様によれば、コンピュータ可読媒体が提供される。コンピュータ可読媒体は、サーバのプロセッサによって実行されると、サーバに、本明細書に記載の方法を実施させる命令を記憶している。
【0034】
本明細書に記載の方法などを実施するためのコンピュータプログラム及び/又はコード/命令は、コンピュータ可読媒体又はコンピュータプログラム製品において、コンピュータなどの装置に提供されてもよい。コンピュータ可読媒体は、例えば、電子、磁気、光学、電磁気、赤外線、若しくは半導体システム、又はデータ伝送のために例えばインターネットを介してコードをダウンロードするための伝搬媒体、であってもよい。あるいは、コンピュータ可読媒体は、半導体又はソリッドステートメモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、剛体磁気ディスク、及びCD-ROM、CD-R/W、又はDVDなどの光ディスクなど、物理的なコンピュータ可読媒体の形態を取り得る。
【0035】
本明細書に提示された教示に照らして、これらの発明が関連する当業者には、本明細書に記載した発明の多くの修正及び他の実施形態が思い浮かぶであろう。したがって、本明細書の開示は、本明細書に開示した特定の実施形態に限定されるものではないことが理解されよう。更に、本明細書で提供する説明は、要素、ステップ、及び/又は機能の特定の組合せの文脈で例示的な実施形態を提供するが、本発明の範囲から逸脱することなく代替の実施形態によって提供されてもよい。
【図面の簡単な説明】
【0036】
ここで、添付の図面を参照して、本発明の実施形態を単なる例として説明する。
【0037】
【
図1】例示のみを目的として詳細な説明を通して参照される様々な当事者を示す図である。
【
図3A】電子デバイスのブロック図を示す図である。
【
図4A】セキュリティモジュールのブロック図を示す図である。
【
図4B】PUFモジュールのブロック図を示す図である。
【
図5】コンピュータ装置のブロック図を示す図である。
【
図6A】公開鍵インフラストラクチャによって提供される信頼のチェーン内の証明書の一例を示す図である。
【
図6B】一時登録デバイス証明書を電子デバイスに提供するために使用される信頼のチェーン内の証明書の一例を示す図である。
【
図6C】デバイス証明書を電子デバイスに提供するために使用される信頼のチェーン内の証明書の一例を示す図である。
【
図6D】ファームウェアを認証するための信頼のチェーン内の証明書の一例を示す図である。
【
図7】一時登録デバイス証明書を電子デバイスに提供するための方法のスイムレーンフローチャートを示す図である。
【
図10】デバイス証明書を電子デバイスに提供するための方法のスイムレーンフローチャートを示す図である。
【
図13】コンピュータ可読媒体のブロック図を示す図である。
【0038】
説明及び図面を通して、同様の参照番号は同様の部分を指す。
【発明を実施するための形態】
【0039】
様々な実施形態を以下に説明するが、本発明は、これらの実施形態に限定されず、これらの実施形態の変形形態は、添付の特許請求の範囲によってのみ限定されるべき本発明の範囲内に十分に含まれ得る。
【0040】
以下では、IoTデバイスのセキュリティ及び登録について言及する。しかしながら、当業者は、本明細書に記載の方法、システム、及び装置が、極めて広く適用可能であることを理解するであろう。
【0041】
以下では、一時登録デバイス証明書を電子デバイスに安全に提供する方法、及びデバイス証明書を電子デバイスに安全に提供する方法について説明する。本明細書に記載の方法は、関与する様々な当事者が電子デバイスのセキュリティを特に互いに信頼する必要なしに、電子デバイスを展開し、サービス(例えば、IoTハブによって提供されるクラウドベースのサービス)に接続する準備ができるようにする。説明を容易にするために、いくつかの対象の当事者(例えば、オリジナル製品製造者及びIoTハブ)の例示的なシナリオを
図1に記載し、詳細な説明の全体を通して参照する。しかしながら、本明細書に記載の方法は、当業者には理解されるように、一般的に適用可能である。
【0042】
詳細な説明を読むことで理解されるように、電子デバイスには、物理複製困難関数が設けられてもよい。物理複製困難関数(physically unclonable functions、つまりPUFとしても知られている)は、安全なEEPROM及び他の高価なハードウェアを必要とせずに、認証及び秘密鍵記憶のために使用される暗号プリミティブである。秘密をデジタルメモリに記憶する代わりに、PUFは、製造中に通常導入される1又は複数の構成要素の固有の物理的特性から秘密を導き出す。既知のPUFは、小さいシリカ球が懸濁された硬化エポキシのシートを通るレーザ光の散乱、又はいくつかの回路におけるゲート遅延の製造ばらつき、などの現象に基づいている。
【0043】
以下では、物理複製困難関数、physical unclonable function、及びPUFという用語は互換的に使用される。PUFは、関数演算を実施するオブジェクトを含み、すなわち、特定の入力で照会されると、PUFは測定可能な出力を生成する。通常、PUFへの入力は、「チャレンジ」と呼ばれ、結果として生じるPUFの出力は、「レスポンス」と呼ばれる。適用されたチャレンジ及びその測定されたレスポンスは、「チャレンジ-レスポンスペア」(CRP)として知られている。本明細書で使用される用語「チャレンジ」は、PUF(例えば、アレイの特定のセルの選択、特定の電圧の印加など)に提供される選択された入力を意味すると理解され、用語「レスポンス」は、PUFの対応する出力を指すように本明細書で使用される。
【0044】
PUFが、電子デバイスの使用に適している限り、任意の適切なPUFが、本明細書に記載のシステム及び方法で使用され得る。例えば、PUFは、SRAM PUFであってもよい。SRAM PUFは、SRAMの閾値電圧のランダム差を使用して、一意のチャレンジ-レスポンスペアを生成する。
【0045】
適切なPUFの別の例は、チップ上のワイヤ又はゲートにおける遅延のランダムな変動を利用する遅延PUFである。入力チャレンジが与えられると、レース条件が回路内に設定され、異なる経路に沿って伝播する2つの遷移が比較されて、どちらが最初に来るか(レスポンス)が分かる。
【0046】
PUFの他の例では、量子閉じ込めが役割を果たし得る。例えば、PUFは、いくつかの共振トンネルダイオードから形成されてもよい。
【0047】
PUFの他の例では、量子トンネル障壁を通る量子トンネルが役割を果たしてもよい。PUFの一例は、「Device Identification With Quantum Tunnelling Currents」と題する、国際公開第2020/212689号として公開された、2020年4月8日に出願された国際特許出願番号PCT/GB2020/050918号に記載されている。一例によれば、PUFは、複数の個別にアドレス指定可能なセルを有するアレイを含んでもよい。各セルは、量子トンネル障壁を有する要素回路を含み得る。セルは、トランジスタの形態の第1の電子構成要素と、第2の電子トランジスタの形態の第2の電子構成要素と、を備え得る。第1のトランジスタのソース、ドレイン及びボディは、同電位(例えば、グランド)に保持されてもよい。第2のトランジスタのソース、ドレイン、及びボディも、すべて同じ電位に保持されてもよい。第1のトランジスタは、トランジスタのチャネルとゲート端子との間に第1の量子トンネル障壁を有する。第2のトランジスタは、トランジスタのチャネルとゲート端子との間に第2の量子トンネル障壁を有する。製造中に導入されるトランジスタの固有の違いにより、第1の量子トンネル障壁は、第1のトランジスタを一意に特徴付け、第2の量子トンネル障壁は、第2のトランジスタを一意に特徴付ける。セルは、第1の量子トンネル障壁及び第2の量子トンネル障壁にわたって電位差を印加するために、行デコーダ及び列デコーダを使用して選択され得る。電位差は、電流が第1の量子トンネル障壁又は第2の量子トンネル障壁のいずれかを古典的に通過し得る閾値電圧未満であり得る。したがって、セルが選択されると、量子トンネル電流は、第1のトランジスタの第1の量子トンネル障壁を通って流れ、量子トンネル電流は、第2のトランジスタの第2の量子トンネル障壁を通って流れ、古典的な電流は流れ得ない。量子トンネル電流は、比較され、増幅され得る。セルと印加電圧との組合せを、チャレンジと見なしてもよく、出力量子トンネル電流をレスポンスと見なしてもよい。
【0048】
他の例では、PUFは、電子的に相互作用され得る限り、電子構成要素に基づく必要はない。
【0049】
以下では、非対称鍵ペアとして知られるいくつかの公開鍵ペアを参照する。非対称鍵ペアは、他の当事者と共有され得る公開鍵と、共有されない対応する秘密鍵と、を含む。公開鍵は、秘密にする必要はないが、改ざんされないように記憶されるべき公開値である。一例では、公開鍵は、決して書換え又は変更され得ないことを保証するために、電子デバイス内のROMに記憶されてもよい。本明細書に記載の公開鍵ペアは、多くの場合名前を有する。例えば、ある公開鍵ペアは、「登録公開鍵」(EPK)と、対応する「登録秘密鍵」(ESK)と、を含む「登録公開鍵ペア」として説明される。別の公開鍵ペアは、「デバイス公開鍵」(DPK)と、対応する「デバイス秘密鍵」(DSK)と、を含む「デバイス公開鍵ペア」として説明される。別の公開鍵ペアは、「公開認証局鍵」(PAK)と、対応する「秘密認証局鍵」(SAK)と、を含む「認証局鍵ペア」として説明される。読者は、これらの公開鍵ペアの名前が、公開鍵ペアを区別することのみを意図していることを理解するであろう。
【0050】
本明細書に記載の公開鍵ペアは、任意の適切な公開鍵暗号システム、例えば、RSA又は楕円曲線ベースの暗号システムと共に使用され得る。本明細書に記載の公開鍵ペアの多くは、デジタル署名と共に使用するためのものである。デジタル署名は、デジタルメッセージ又は文書の真正性を検証するための数学的スキームである。本明細書の例では、任意の適切なデジタル署名スキーム、例えばRSA、ElGamal署名スキーム又はECDSAを使用し得る。
【0051】
本明細書に記載のサーバ/サーバシステム/コンピュータ装置の一部には、「権威サーバシステム」又は「鍵管理サーバ」などの名前も付けられている。読者は、そのような名称が、異なるコンピュータ装置を区別することのみを意図していることを理解するであろう。
【0052】
図1は、電子デバイス100の安全な生成、プロビジョニング、及び展開に関与し得る民間(又は他の)当事者を示す図を示している。当業者は、他の設定が想定され、この図は例示のみを目的として提供していることを理解するであろう。高レベルでは、セキュリティモジュールが製造され、次いで、電子デバイス100にインストールするためにオリジナル製品製造者(OEM)160に(必ずしもそうとは限らないが、通常マイクロコントローラの一部として)提供される。次いで、OEM160は、プログラミングハウス180の支援により、電子デバイス100にファームウェアをインストールステップと、最終的に展開のために電子デバイス100を準備するステップを、取り得る。展開されると、電子デバイス100は、IoTハブ170を通して提供されるサービスと通信し得る。
【0053】
図を参照すると、認証局140は、電子デバイス100にインストールするためのセキュリティモジュール110を生成するために、製造能力150を有し得る(又は信頼できる製造者と密接に協働し得る)。セキュリティモジュール及び電子デバイスの例を以下で更に説明する。
【0054】
本説明の目的のために、セキュリティモジュール110は、公開鍵ペアを確立するように動作可能な、
図1には示されていない、物理複製困難関数(PUF)を含む。公開鍵ペアは、他の当事者と共有され得る公開鍵と、共有されない対応する秘密鍵と、を含む。公開鍵ペアは、非対称鍵ペアとしても知られ得る。公開鍵及び秘密鍵は、PUFに対するチャレンジ及びレスポンスに基づいてもよい。例えば、公開鍵は、PUFに対するチャレンジに基づいてもよく、秘密鍵は、そのチャレンジに対するレスポンスに基づいてもよい。したがって、セキュリティモジュール110は、製造者150又は下流のいずれかの当事者によって秘密鍵を導入することを必要とせずに、公開鍵ペアを確立し得る。
【0055】
本説明の目的のために、セキュリティモジュール110は、対応する少なくとも2つのチャレンジレスポンスペアに基づいて、少なくとも2つの鍵ペアを確立するように構成される。有利には、PUFベースの公開鍵ペアでは、秘密鍵は、電子デバイスに記憶される必要はないが、セキュリティモジュールによって提供される安全な境界/信頼ゾーン内で、PUFから動的に再生成され得る。したがって、電子デバイスがハッキングされた場合でも、盗まれる秘密鍵がそこに記憶されていない可能性がある。
【0056】
登録公開鍵(EPK)及び対応する登録秘密鍵(ESK)は、第1のCRPに基づく。EPKは、電子デバイスに識別子を提供するために使用され、以下で更に説明するように、一時登録デバイス証明書を電子デバイスに提供するプロセスで使用される。一時登録デバイス証明書は、EPKをデバイス識別子に関連付け、電子デバイスのデバイス証明書を取得するために後続の通信で使用可能である。デバイス識別子は、EPKの関数に基づく。本明細書に記載の例の多くでは、関数は、暗号ハッシュ関数であるが、これはそうである必要はなく、別の関数が使用されてもよい。
【0057】
デバイス公開鍵(DPK)及び対応するデバイス秘密鍵(DSK)は、第2のCRPに基づく。デバイス鍵ペアは、EPKに基づく特定のデバイス識別子を有する適切な電子デバイスに、デバイス証明書を提供する際に使用される。デバイス証明書は、DPKがデバイス識別子に関連付けられていることを証明する。後述するように、デバイス証明書を証明する信頼のチェーンは、OEM160によって制御される。
【0058】
本開示の目的のために、電子デバイス100は、マイクロコントローラ(MCU)などの低レベル回路から構成されると理解されてもよい。電子デバイス100は、代替的に、高いレベルの回路、例えば、湿度又は温度を感知するための回路を備えると理解されてもよく、あるいはスマートフォン又はコンピュータなどの大規模な電子デバイスであると理解されてもよい。製造者150は、セキュリティモジュール110のみを製造してもよいし、セキュリティモジュール110がインストールされたマイクロコントローラを製造してもよい。
【0059】
以下で更に説明するように、認証局140は、公開鍵ペアに関連付けられ得る。すなわち、認証局140は、公開鍵(以下、公開認証局鍵PAKと呼ぶ)、及び対応する秘密鍵(以下、秘密認証局鍵SAKと呼ぶ)に関連付けられ得る。SAKは、他の当事者と共有されないが、PAKは、広く共有され得る。例えば、PAKは、セキュリティモジュール110、例えば、安全なメモリに記憶されてもよい。あるいは、製造者150がセキュリティモジュールを含むマイクロコントローラ(又は他の電子デバイス)を製造する場合、PAKは、セキュリティモジュールの外部の電子デバイスの他の読み出し専用メモリ(ROM)にインストールされてもよい。セキュリティ目的のために、セキュリティモジュール/電子デバイスに記憶されたPAKは、その完全性を保つために、書換えも、変更もできないことが重要である。PAKは、受信した情報がSAKを使用して署名され、したがって認証局140によって承認されたことを検証するために、後の段階でセキュリティモジュール110によって使用され得る。他の非秘密情報、例えば、SAKを使用して認証局140によって署名され、PAKが認証局140に関連付けられていることを示すルート証明書も、セキュリティモジュール/電子デバイスに記憶されてもよい。認証局140によってセキュリティモジュール110に、秘密情報は提供されない。認証局140又は製造者150によってセキュリティモジュール110から、秘密情報は抽出されない。
【0060】
デバイス識別子及び1又は複数の公開鍵がセキュリティモジュール110から抽出されることを可能にするために、初期登録ファームウェア(IEF)はまた、セキュリティモジュール/電子デバイスに提供される。
【0061】
認証局140は、1又は複数のサーバを備えるサーバシステム130を所有及び/又は運用し得る。
図1の権威サーバシステム130に、3つのサーバを示しているが、当業者であれば、サーバシステム130が、多い又は少ないサーバを備えてもよいことを理解するであろう。
【0062】
権威システムのサーバの少なくとも1つは、SAKを使用して証明書に署名するように構成される(これに関する更なる情報を以下で更に提供する)。SAKは、ファームウェアの署名にも使用され得る。
【0063】
権威サーバシステム130のサーバの少なくとも1つは、デバイス識別子などのセキュリティモジュール110に関する情報を有するデータベースを保持するように構成される。
【0064】
権威サーバシステム130のサーバのうちの少なくとも1つは、オリジナル製品製造者(OEM)160によって運営されるコンピュータデバイス120と安全に通信するように構成される。
【0065】
サーバの少なくとも1つは、IoTハブ170と通信するように構成される。IoTハブは、IoTアプリケーションと、それが管理する電子デバイスとの間の双方向通信のためのメッセージハブとして機能する、クラウドでホストされるマネージドサービスである。本説明の目的のために、本明細書に記載の方法は、電子デバイスのプロビジョニングに適しており、これにより、電子デバイスが、IoTハブ170と通信する準備ができた状態で展開され得る。
【0066】
単に明確にする目的のために、サーバシステム130のサーバは、本明細書では「権威サーバ」と呼ぶことがある。
【0067】
当業者は、サーバシステム130の機能の少なくとも一部がクラウドサービスとして提供され得ることを理解するであろう。サーバのうちの1又は複数は、認証局140の物理的外部に配置され得る。サーバシステム130の権威サーバは、特定のセキュリティモジュール110を識別するためのデバイス識別子を受信し得る。デバイス識別子は、登録秘密鍵(ESK)及び登録公開鍵(EPK)を含む登録鍵ペアのEPKの関数に基づく。EPK及びESKは、セキュリティモジュール110のPUFに対するチャレンジ及びレスポンスに基づいており、ESKは、セキュリティモジュール110を離れない。一例では、EPKはPUFに対するチャレンジに基づいており、ESKは、PUFに対するチャレンジに対するレスポンスに基づいている。サーバシステム130は、デバイス識別子をデータベースに記憶するように構成される。いくつかの例では、サーバシステム130はまた、特定のセキュリティモジュール110について、EPKを受信してもよいが、受信しなくてもよい。
【0068】
サーバシステム130がセキュリティモジュール110のデバイス識別子を受信し、記憶すると、セキュリティモジュール110(場合によってはマイクロコントローラに既にインストールされている)が、OEM160に提供される。OEMは、OEM160によって製造されているいくつかの電子デバイス100にインストールするために、そのようなセキュリティモジュールのバッチを通常購入し得る。
【0069】
OEM160はまた、認証局140のサーバシステム130と安全に通信し得るコンピュータ装置120にアクセスする。参照を容易にするために、OEMによって操作されるコンピュータ装置120は、以下では「鍵管理サーバ」と呼ぶ。「鍵管理サーバ」という用語は、単数形で使用されているが、当業者であれば、コンピュータ装置120の機能は複数のコンピュータデバイス間で共有されてもよく、したがって「鍵管理サーバ」は、所望の機能を有する複数のコンピュータデバイス(1又は複数のサーバ/コンピュータデバイスを備える鍵管理サーバシステム)も指すと理解すべきであることを理解するであろう。
【0070】
以下でKMS120と呼ぶ鍵管理サーバ120は、状況によっては、OEM160が直接対話し得るサーバではあるが、権威サーバシステム130の別の権威サーバと考えてもよい。特に、KMS120は、権威サーバシステム130と安全に通信することができ、そのため、認証局140によってOEMの使用について証明され得る。
【0071】
鍵管理サーバ120は、オンプレミス運用のためにOEM160に提供される物理サーバを備え得る。例えば、OEM160は、認証局140から物理KMS120を取得するように手配してもよい。認証局140は、OEM160に提供される特定のKMSインスタンスを識別するためのKMS識別子を生成し、記録し得る。認証局140は、KMS120内部のハードウェアセキュリティモジュール(HSM)でKMS公開鍵ペアを生成し、KMS公開鍵ペアのKMS公開鍵を抽出し、KMS識別子をKMS公開鍵に関連付けるためにSAKを使用して証明書に署名し、証明書をKMSソフトウェアに埋め込み得る。認証局140はまた、KMSが権威サーバシステム130の権威サーバと接続することを可能にするURLと共に、PAKを認証局140に関連付けるルート証明書をKMS120に埋め込み得る。その後、物理KMS120は、OEM160に物理的に転送され得る。その後、KMS120は、サーバシステム130との安全な通信(例えば、TLS通信)を開始し得る。サーバシステム130は、SAKによって署名されたTLS証明書及びチェーンを提示し、TLSサーバ認証を実施することによって認証し得る。そして、KMS120は、PAKと認証局140とを関連付けるハードコーディングされたルート証明書を使用して証明書を検証し得る。KMS120は、その証明書(認証局140がSAKを使用して署名したもの)を提示し、TLSクライアント認証を実施することによって、権威サーバに対して認証し得る。認証局140は、KMSにインストールされた証明書に署名するために使用されるSAKに対応するルート公開鍵(PAK)を使用して、証明書を介して署名を検証し得る。当業者は、KMS120を証明するために使用される公開認証局鍵が、セキュリティモジュール110にインストールされた公開認証局鍵と同じであっても異なっていてもよいことを理解するであろう。
【0072】
オンプレミス運用のためにOEM160に提供される特注の物理サーバとは対照的に、OEM160によって動作するが、認証局140のサーバシステム130と通信するために設けられた安全なゲートウェイのための特注のソフトウェアを有するコンピュータ装置120を、鍵管理サーバ120は備え得る。特注のソフトウェアは、展開を容易にするために非依存(agnostic)であり、OEM160によって容易にインストールされ、操作され得る。特注のソフトウェアは、それがサーバシステム130に対して認証し得る機構(公開鍵)を含む。
【0073】
鍵管理サーバ120は、1又は複数の電子デバイス100とも通信可能である。このようにして、1又は複数の電子デバイス100を登録し得る。KMS120は、電子デバイス100へのファームウェアの安全なインストールを容易にするために使用され得る。以下で更に説明するように、KMS120を使用して、デバイス識別子を特定の電子デバイス100に関連付け得る。KMS120は、証明書に署名するために使用され得る。
【0074】
OEM160は、KMS120を使用して、受信した1又は複数のセキュリティモジュールを登録し得る。具体的には、KMS120は、デバイス識別子を抽出するために、電子デバイスのセキュリティモジュール110と通信することができ、デバイス識別子は、EPKの関数を含む。KMS120は、KMSインスタンス120とデバイス識別子との間の関連付けを、信頼できる認証局140に登録するために、権威サーバシステム130との安全な通信チャネルを開き得る。認証局140は、ローカルデータベースを更新し、デバイス識別子を正常に登録したことをKMS120に通知し、更に、そのデバイス識別子に関連付けられた電子デバイスと通信するための特定の許可をKMS120に付与し得る。
【0075】
OEM160は、KMS120を使用して、電子デバイスにファームウェアを安全に提供し得る。OEMのファームウェアは、任意の適切で安全な方法を使用して、電子デバイスにインストールされ得る。例えば、OEM160は、電子デバイス100にインストールされるファームウェアを設計してもよい。KMS120は、権威サーバシステム130との安全な通信チャネルを開き、ファームウェア又はそのハッシュを、秘密認証局鍵SAKと署名するために認証局140に送信することができ、その対応するもの(PAK)は、電子デバイス100にインストールされている。KMS120は、PUFベースのファームウェア公開鍵(FPK)でファームウェア及び認証局の署名を更に暗号化することができ、その対応するものは、電子デバイスで動的に生成可能である。したがって、電子デバイスは、対応するファームウェア秘密鍵を使用してファームウェアを復号し、ファームウェアがメモリに記憶されたPAKを使用して認証局140によって署名されていることを、検証し得る。このようにして、OEMは、電子デバイス100にファームウェアを安全に提供し得る。
【0076】
ファームウェアは、電子デバイスのハードウェアを制御するための低レベル命令を含み得る。
【0077】
ファームウェアは、以下で更に説明する方法に従ってデバイスを登録するための1又は複数のルート証明書を含み得る。特に、ファームウェアは、一次トラステッドルート証明書(
図6Cの「OEM_ROOT」)を含み得る。
【0078】
ファームウェアは、電子デバイスのデバイス識別子が登録されているKMS120の識別子を含み得る。例えば、識別子は、電子デバイスがKMS120に連絡するために通信するユニフォームリソースロケータ(URL)を含んでもよい。ファームウェアは、URLによって識別されたコンピュータ装置/サーバとのTLS接続など、安全な接続を開始するための命令を含み得る。
【0079】
ファームウェアは、電子デバイスが受信した証明書を解釈し得るように、証明書命名構造の詳細を含み得る。ファームウェアは、証明書署名要求(CSR)を確立するための詳細を更に含み得る。証明書署名要求は、証明書を発行すべき公開鍵、識別情報(デバイス識別子など)、及び完全性保護(例えば、デジタル署名)を通常含む。
【0080】
KMS120はまた、IoTハブ170に接続するために必要な情報を電子デバイスに安全に提供するために使用され得る。例えば、KMS120は、IoTハブと直接又はサーバシステム130を介して通信して、登録された各電子デバイス100のデバイス証明書をIoTハブに提供するように構成されてもよい。KMS120は、デバイスがIoTハブ170と通信することを可能にするために、IoTルート証明書及びIoTエンドポイントを電子デバイス100に提供するように構成され得る。
【0081】
したがって、電子デバイス100は、IoTハブ170と通信するために必要なすべての情報と共に展開され得る。
【0082】
図2は、
図1に存在するハードウェアデバイスの多くを含む通信システムを概略的に示している。
図2は、通信ネットワーク200と、セキュリティモジュール110を有する例示的な電子デバイス100と、例えばOEM160によって操作され得る鍵管理サーバ120と、権威サーバシステム130と、例えばIoTハブ170によって操作され得るコンピュータデバイス220と、を特に示している。通信ネットワーク200は、インターネットなどの任意の適切な通信ネットワークであってもよい。いくつかの例では、ネットワーク200は、ワイドエリアネットワーク(WAN)を備えてもよい。
【0083】
電子デバイス100は、任意の適切な形態を取り、本明細書に記載の方法を実施するための任意の適切なコンピュータ装置を備え得る。例えば、電子デバイスは、パーソナルコンピュータ、サーバ、ラップトップコンピュータ、又は他のそのような機械など、処理及び記憶が可能な任意のコンピュータデバイスであってもよい。電子デバイス100は、IoTデバイスを含み得る。電子デバイスは、大きなデバイスに設置するためのマイクロコントローラユニット(MCU)を備え得る。電子デバイス100は、直接又はネットワーク200を介して他のデバイスと通信してもよい。例えば、電子デバイス100は、物理的接続又はネットワーク200を介して、KMS120と通信してもよい。電子デバイス100が展開されると、デバイス100は、ネットワーク200を介してコンピュータデバイス220と通信し得る。電子デバイスは、安全な接続、例えばTLS接続を介して、KMS120及び/又はコンピュータデバイス220と通信し得る。
【0084】
KMS120は、以下で更に説明するコンピュータ装置500などの任意の適切なコンピュータ装置を含み得る。KMS120は、サーバのクラスタ又は単一のデバイスを備えてもよい。KMS120の機能は、分散データ処理環境、単一のデータ処理デバイスなどを含む多くの異なるタイプのデータ処理環境で利用され得る。
【0085】
KMS120は、ネットワーク200を介して権威サーバシステム130と安全な接続を確立し、更に、ネットワーク200を介して、又は場合によっては有線接続などの直接的な接続を介して、電子デバイス100と通信し得る。KMS120は、電子デバイス100のセキュリティモジュール110を識別するデバイス識別子、及び電子デバイス100のEPKなどの1又は複数の公開鍵など、電子デバイス100に関する情報を記憶するように構成される。追加的又は代替的に、KMS120は、そのような情報を取得するために、権威サーバシステム130のデータベース210と通信するように構成されてもよい。KMS120は、証明書に署名するように更に構成される。
【0086】
権威サーバシステム130は、1又は複数のサーバを備え、データベース210を含む。権威サーバシステム130のうちの1又は複数の権威サーバは、例えば、KMS120が認証局140によって信頼されていることを証明するために、又は電子デバイス100にインストールするためにファームウェアに署名するために、認証局140に代わって証明書に署名するように構成される。データベース210は、電子デバイス100を識別するデバイス識別子、いくつかの例では電子デバイス100のファームウェア公開鍵など、電子デバイス100に関する情報を記憶するように構成される。データベース210は、KMS120に関する情報を記憶するように更に構成され得る。例えば、データベース210は、デバイス識別子のバッチを特定のKMS120に関連付ける情報を含んでもよく、それが関連付けられているデバイス識別子のみと相互作用することをKMS120に許可するために使用されてもよい。
【0087】
コンピュータデバイス220は、(例えば、分散コンピュータ環境内の)多くの接続されたデバイス、又は単一のコンピュータデバイスを備えてもよい。
【0088】
図3Aは、一例による電子デバイス100のブロック図を示している。例えば、電子デバイス100は、IoTデバイスであってもよい。当業者には理解されるように、
図3Aに示すものに対する他のアーキテクチャを使用してもよい。
【0089】
図を参照すると、電子デバイス100は、セキュリティモジュール110と、1又は複数のCPU/プロセッサ302と、1又は複数のメモリ304と、センサモジュール306と、通信モジュール308と、ポート310と、電源312と、を含む。構成要素302,304,306,308,310,312の各々は、様々なバスを使用して相互接続される。CPU302は、電子デバイス100内で実行するための命令を処理することができ、通信モジュール308を介して、又はポート310を介して、受信された、メモリ304に記憶された命令を含む。
【0090】
メモリ304は、電子デバイス100内にデータを記憶するためのものである。1又は複数のメモリ304は、1又は複数の揮発性メモリユニットを含んでもよい。1又は複数のメモリは、1又は複数の不揮発性メモリユニットを含んでもよい。1又は複数のメモリ304はまた、磁気又は光ディスクなどのコンピュータ可読媒体の別の形態であってもよい。1又は複数のメモリ304は、電子デバイス100のために大容量記憶を提供してもよい。本明細書に記載の方法を実施するための命令は、1又は複数のメモリ304内に記憶され得る。
【0091】
通信モジュール308は、プロセッサ302と他のシステムとの間の通信の送受信に適している。例えば、通信モジュール308は、インターネットなどの通信ネットワーク200を介して通信を送受信するために使用されてもよい。通信モジュール308は、電子デバイス100が、WiFi(登録商標)、Bluetooth(登録商標)、NFCなどのいくつかのプロトコルのいずれかによって他のデバイス/サーバと通信することを可能にする。
【0092】
ポート310は、例えば、プロセッサ302によって処理される命令を含む非一時的コンピュータ可読媒体の受信に適している。ポート310は、例えば、電子デバイス100と鍵管理サーバ120との間の有線通信に使用されてもよい。
【0093】
センサモジュール306は、温度、湿度、又は任意の他のパラメータなどの感知パラメータのための1又は複数のセンサを備え得る。
【0094】
プロセッサ302は、例えば、センサモジュール306、セキュリティモジュール110、又は通信モジュール308からデータを受信するように構成される。プロセッサ302は、メモリ304にアクセスし、そのメモリ304から、通信モジュール308から、又はポート310に接続されたコンピュータ可読記憶媒体から、受信した命令及び/又は情報に従って動作するように、更に構成される。
【0095】
図3Bは、大きな電子デバイス内に設置され得る電子デバイス100の別の例、すなわち、マイクロコントローラユニット(MCU)315のアーキテクチャを示している。当業者は、他のMCUアーキテクチャが使用され得ることを理解するであろう。
【0096】
図3BのMCU315は、CPU320と、ユーザメモリ322と、ブートランダムアクセスメモリ328と、を備える。CPU320、ブートROM328、及びユーザメモリ322は、コードバス324を介して通信し得る。CPU320、ブートROM328、及びユーザメモリ322は、システムバス326に接続され、システムバスはまた、複数の周辺機器A、B、及びC(330、332及び334)、並びにセキュリティモジュール110に接続され得る。MCU315には、セキュリティに関する構成要素のみを示している。当業者は、MCU315が多くの又は少ない構成要素を有してもよいことを理解するであろう。例えば、MCU315は、多くの周辺機器及びシステム構成要素を有してもよい。
【0097】
図4Aは、一例によるセキュリティモジュール110のブロック図を示している。セキュリティモジュール110は、内部の安全な構成要素を電子デバイス100の他の構成要素から分離する信頼ゾーンと考えられ得る。セキュリティモジュール110は、PUFモジュール402と、暗号化アクセラレータ404と、安全なメモリ406と、を備える。当業者は、他のアーキテクチャも可能であることを理解するであろう。セキュリティモジュール110は、電子デバイス100のシステムバスに接続される。
【0098】
PUFモジュール410は、PUFと、PUFとの相互作用に必要な任意の回路と、を備える。特に、PUFモジュールは、暗号化アクセラレータ404から信号を受信し、適切な応答を提供し得る。暗号化演算を実施し、PUFモジュール402及び安全なメモリ406と相互作用するための専用処理ユニットを、暗号化アクセラレータ404は備える。
【0099】
安全なメモリは、PUFモジュール402によって生成された鍵、及び/又はルート証明書など、秘密情報を記憶するように構成される。PUFモジュール402、セキュリティモジュール110内のセキュリティ周辺機器、及び安全なメモリを制御するためにCPU320によって必要とされる命令は、システムの不変ブートプロセスの一部であるブートROM328内に含まれている。
【0100】
図4Bは、一例によるPUFモジュール402の機能構成要素を示している。PUFモジュール402は、PUF450と、アナログフロントエンド(AFE)452と、後処理エンジン454と、RISC-Vコア456と、を備える。
【0101】
当業者は、PUF450が、任意の適切なPUFであり得ることを理解するであろう。
【0102】
アナログフロントエンド(AFE)452は、PUFと相互作用するためのアナログ信号調整回路を備える。例えば、AFEは、生の「フィンガープリント」を確立するためにPUF450と相互作用してもよい。後処理エンジン454は、AFE452の出力を補正し、AFEの出力を更に処理することによって更なるプライバシー強化をもたらすように構成される。RISC-Vコア456は、PUF450からのデータの後処理、例えば、データの誤り訂正を実施するCPUコアである。RISC-Vコアは、PUFモジュール402を外部マイクロコントローラに容易に接続することを可能にするインターフェースを提供するが、他のCPUを利用してもよい。
【0103】
図5は、コンピュータ装置500のブロック図である。例えば、コンピュータ装置500は、コンピュータデバイス、サーバ、モバイル又はポータブルコンピュータ又は電話などを備えてもよい。コンピュータ装置500は、複数の接続されたデバイスにわたって分散され得る。コンピュータ装置500は、鍵管理サーバ120、権威サーバシステム130の権威サーバ、又は、例えばIoTハブで使用するためのサーバ220としての使用に適し得る。当業者には理解されるように、
図5に示すものに対する他のアーキテクチャを使用してもよい。
【0104】
図を参照すると、コンピュータ装置500は、1又は複数のプロセッサ510と、1又は複数のメモリ520と、ビジュアルディスプレイ530及び仮想又は物理キーボード540などのいくつかの任意選択のユーザインターフェースと、通信モジュール550と、任意選択的にポート560と、任意選択的に電源570と、を含む。構成要素510,520,530,540,550,560及び570の各々は、様々なバスを使用して相互接続される。プロセッサ510は、コンピュータ装置500内で実行するための命令を処理することができ、通信モジュール550を介して、又はポート560を介して受信された、メモリ520に記憶された命令を含む。
【0105】
メモリ520は、コンピュータ装置500内にデータを記憶するためのものである。1又は複数のメモリ520は、1又は複数の揮発性メモリユニットを含んでもよい。1又は複数のメモリは、1又は複数の不揮発性メモリユニットを含んでもよい。1又は複数のメモリ520はまた、磁気又は光ディスクなどのコンピュータ可読媒体の別の形態であってもよい。1又は複数のメモリ520は、コンピュータ装置500に大容量ストレージをもたらし得る。本明細書に記載の方法を実施するための命令は、1又は複数のメモリ520内に記憶され得る。
【0106】
装置500は、ビジュアルディスプレイ530などの視覚化手段と、キーボード540などの仮想又は専用のユーザ入力デバイスと、を含むいくつかのユーザインターフェースを含む。
【0107】
通信モジュール550は、プロセッサ510とリモートシステムとの間での通信の送受信に適している。例えば、通信モジュール550は、インターネットなどの通信ネットワーク200を介して通信を送受信するために使用されてもよい。
【0108】
ポート560は、例えば、プロセッサ510によって処理される命令を含む非一時的コンピュータ可読媒体の受信に適している。
【0109】
プロセッサ510は、データを受信し、メモリ520にアクセスし、そのメモリ520又はポート560に接続されたコンピュータ可読記憶媒体から、通信モジュール550から、あるいはユーザ入力デバイス540から、受信した命令に従って動作するように構成される。
【0110】
コンピュータ装置500は、暗号鍵を安全に記憶するために、
図5に示していないハードウェアセキュリティモジュール(HSM)を更に備え得る。例えば、鍵管理サーバ120として使用されるコンピュータ装置500の場合、HSMは、証明書に署名するための1又は複数の秘密鍵を、あるいはファームウェアを暗号化/復号するためのサーバ暗号化鍵及びサーバ復号鍵を、記憶する必要があり得る。例えば、権威サーバシステム130の権威サーバとして使用されるコンピュータ装置500の場合、HSMは、認証局鍵ペアの秘密認証局鍵(SAK)など、1又は複数の秘密鍵を記憶する必要があり得る。当業者は、HSMが秘密鍵を記憶する必要はなく、他のセキュリティ構成が適用可能であり得ることを理解し、例えば、コンピュータ装置は、クラウドベースのHSMにアクセスし得る。
【0111】
ファームウェアは、電子デバイス100に安全に提供され得る。ファームウェアは、例えば、権威サーバシステム130でファームウェアに署名し、KMS120で署名の前又は後のいずれかにファームウェアを暗号化し、次いで、署名された暗号化ファームウェアをプログラミングハウス180に送信して電子デバイス100にプログラムすることによって、安全に提供されてもよい。
【0112】
ファームウェアは、電子デバイスが登録されているKMS120の識別子と、信頼のチェーンを構築するための1又は複数のルート証明書と、を含み得る。ファームウェアが電子デバイス100に安全に提供された後、電子デバイス100は、登録を開始し得る。
【0113】
図7~
図9に関連して、電子デバイス100に一時登録デバイス証明書を提供する方法を説明する。更に、
図10~
図12に関連して、電子デバイスにデバイス証明書(これは、例えばIoTハブと接続するために展開されると使用され得る)を提供する方法を説明する。デバイス証明書の信頼を確立するために、電子デバイスには、OEMのための1又は複数のルート証明書を提供する必要がある。
【0114】
1又は複数のルート証明書は、製造時点で電子デバイス100にインストールされてもよいし、セキュリティを追加するために、登録前に安全にインストールされたファームウェアと共に又はその一部として、電子デバイス100に提供されてもよい。
【0115】
図6Aは、公開鍵インフラストラクチャによって提供される信頼のチェーンの一例を示している。公開鍵インフラストラクチャは、メッセージのソースを検証するために使用され得る証明書の階層(1002、1012、1024)によって表される。各証明書は、対応するエンティティが保持する秘密鍵に対応する公開鍵を含む。証明書は、鍵に関する情報と、その所有者(サブジェクトと呼ばれる)の識別に関する情報と、証明書の内容を検証したエンティティ(発行者と呼ばれる)のデジタル署名と、を含む。信頼のチェーンにおける信頼は、最終的に、ルート証明書1002に関連付けられたルート認証局(CA)から得られる。ルート証明書1002は、ルート認証局の識別子/識別名(1004)と、ルート認証局の公開鍵1006と、ルート認証局の署名(1010)と、を含み、署名は、ルート公開鍵1006に対応する秘密鍵1008を使用して署名される。
【0116】
認証局は、ツリー構造の形態で複数の証明書を発行し得る。ルート証明書1002は、ツリーの最上位の証明書であり、その秘密鍵1008は、下位の証明書に署名するために使用される。
図6Aに示すように、ルート秘密鍵1008は、中間/下位証明書1012に署名するために使用され得る。中間証明書1012は、仲介者/発行者の識別子/識別名1014と、仲介者1020の公開鍵と、ルート認証局1018の識別と、ルート認証局1016の署名と、を含む。中間証明書1012の正確性は、ルート認証局1018の識別子から、ルート公開鍵1006を発見し得る適切なルート証明書1002を決定することによって確認され得る。ルート公開鍵1006は、中間証明書1012に署名するために使用されるルート秘密鍵1008に対応するので、ルート公開鍵1006は、中間証明書1012のルート署名1016を復号するために使用され、更に確認が実施され得る。中間証明書は、中間証明書1012に関連付けられた発行者/仲介者が更なる証明書に署名することを許可されているか否かなど、更なる情報を含んでもよい。中間証明書が、発行者公開鍵1020に関連する発行者秘密鍵1022を使用して下位証明書に署名することを許可されている場合、発行者秘密鍵1022を使用して署名された証明書の信頼は、最終的に、ルート証明書1002に関連付けられたルート認証局に由来する信頼のチェーンから導出され得る。
【0117】
図6Aの発行者秘密鍵1022は、電子デバイスに関連付けられた最終証明書1024に署名するために使用される。通常、最終証明書が関連付けられている当事者が、信頼のチェーン内の更なる証明書に署名する権利がないことを、最終証明書は示す。最終デバイス証明書1024は、証明書1024が発行された電子デバイス1026の識別子と、最終証明書1012を証明した発行者の識別子と、電子デバイスに対応する公開鍵1032と、発行者1028の署名と、発行者によって証明された任意の更なる情報/メタデータ1036と、を含む。したがって、最終証明書1024は、公開鍵1032がルート認証局に由来する信頼のチェーンを用いて最終デバイス証明書1024によって識別されたエンティティ(1026)に関連付けられている、ことを証明する。電子デバイス公開鍵1032には、電子デバイス秘密鍵1034が関連付けられている。
【0118】
当然ながら、
図6Aには3つの証明書が示されているが、チェーンは、いくつかの中間証明書を用いて、長くなる場合がある。
【0119】
証明書チェーンの証明書は、更なる情報を含み得る。例えば、証明書は、バージョン番号、シリアル番号、署名アルゴリズムID、使用された公開鍵アルゴリズムに関する情報など、を含んでもよい。証明書は、有効期間を含んでもよい。公開鍵証明書にはいくつかの既知の標準フォーマットがあり、最も一般的に使用されているのはX.509である。X.509証明書は、TLS/SSLを含む多くのプロトコルで使用され、本明細書に記載の方法で使用され得る。
【0120】
従来、OEMがデバイスを製造するとき、それらは、暗号化されていない形式でその電子デバイスに秘密情報が導入されることに依存している。例えば、秘密鍵が、デバイスに導入される必要があり得る。更に、追加の証明書情報、例えば最終証明書1024も、デバイスに通常提供される。製造者がデバイスに秘密鍵及び最終証明書1024を提供する場合、いくつかの欠点がある。第1に、OEM又はIoTハブなどの下流の当事者は、秘密鍵がデバイスに安全に提供されており、それが他の当事者に知られていないことを信頼する必要がある。第2に、OEMなどの下流の当事者は、製造者の信頼に基づいて信頼のチェーンを信頼しなければならない場合があり、これは、例えば、ファームウェア更新を扱うときにセキュリティ上のよくない結果をもたらす可能性がある。あるいは、製造中に一時登録証明書がデバイスに提供されてもよい。一時登録証明書は、デバイスに導入された秘密鍵に関連付けられた公開鍵を含み、それによって、デバイスを、その公開鍵に関連付け、サービスに登録するための有限の有効期間を含み得る。しかしながら、一時登録デバイス証明書及び関連する秘密鍵の提供は、安全な設備を通常必要とする。
【0121】
対照的に、ここで異なるアプローチを説明する。特に、
図7~
図9及び添付の本文は、電子デバイスに一時登録デバイス証明書を提供するための例示的な方法を説明しており、
図10~
図12及び添付の本文は、展開の準備ができた電子デバイスに最終デバイス証明書を提供するための例示的な方法を説明している。記載の例では、OEM160は、展開された電子デバイスの信頼の基礎となる最終的な認証局がOEM160であることを確認する場合がある。
【0122】
図6B、
図6C及び
図6Dは、本明細書に記載の例で使用可能な3つの証明書チェーンを示している。例示のみを目的として
図1を参照すると、ルート証明書1038、1044、及び1058は、すべてOEM160に関連付けられ得る。すなわち、OEM160は、ルート証明書1038、1044、1058に関連付けられたルート認証局であり得る。本明細書では3つの証明書チェーンを説明しているが、他のシナリオも想定され、例えば、単一のルート証明書が、他のすべての証明書が派生したルート証明書であってもよい。OEMによって製造された電子デバイス100は、適切なルート証明書を用いてプロビジョニングされ、そこから信頼のチェーンは、電子デバイス100がデバイスに提供される任意のソフトウェア又は通信を確認し得るように、構築され得る。
【0123】
説明を簡単にするために、
図6B~
図6Dの証明書チェーンは、
図1の当事者を参照して説明しており、OEM160は、3つすべてのチェーンのルート証明書に関連付けられた認証局である。しかしながら、当業者は、他のシナリオも適用可能であることを理解するであろう。
【0124】
図6Bは、一例による証明書チェーンを示している。
図6Bの証明書チェーンは、使用時に以下で更に説明される。
図6Bでは、一時登録トラステッドルート証明書1038(「TE_OEM_Root」とラベル付けされている)は、OEM160にのみ知られている適切な秘密鍵を使用して自己署名されている。一時登録発行証明書1040(「TE_OEM_IC」とラベル付けされている)は、ルート証明書1038によって証明される。すなわち、一時登録トラステッドルート証明書1038で識別された公開鍵に関連付けられた秘密鍵を使用して、一時登録発行証明書1040に署名する。一時登録デバイス証明書1042(「TE_Dev_Cert」とラベル付けされている)は、一時登録発行証明書1040によって証明される。すなわち、一時登録発行証明書1040で識別された公開鍵に関連付けられた秘密鍵を使用して、一時登録デバイス証明書1042に署名する。
【0125】
図7に関連して説明するように、OEM160は、一時登録トラステッドルート証明書1038が関連付けられた認証局であってもよく、OEM又は(OEMが所有する)KMS120は、関連する秘密鍵を所有する。一時登録発行証明書1040に関連付けられた秘密鍵は、KMS120が所持していてもよい。OEMの一時登録(TE)PKIは、一時登録デバイス証明書を発行するために使用され、これにより、電子デバイスは、登録プロトコル中にKMSに対する認証が可能になる。これらの証明書は、他の目的に使用されるべきではないため、一時登録トラステッドルート証明書1038及び一時登録発行証明書1040は、KMSを離れる必要はない。
【0126】
図6Cは、一例による証明書チェーンを示している。
図6Cの証明書チェーンは、使用時に以下で更に説明される。
図6Cでは、一次トラステッドルート証明書1044(「OEM_ROOT」とラベル付けされている)は、適切な秘密鍵を使用して自己署名されている。
図6Cには、3つの中間証明書1046、1050、1054を示している。
【0127】
OEMの一次PKIのトラストアンカーは、自己署名された一次トラステッドルート証明書1038であり、それは、登録中にKMS120から外部で使用されるすべての証明書を発行するために使用される。一次トラステッドルート証明書1038の下には、いくつかの発行証明書がある。
【0128】
安全接続発行証明書1054は、一次トラステッドルート証明書1044に関連付けられたルート秘密鍵によって署名されている。以下に説明する例では、安全な接続自体がTLS接続であるため、
図6Cでは、安全接続発行証明書1054は、「IC_TLS」とラベル付けされている。安全接続発行証明書1054に関連付けられた発行者秘密鍵は、安全接続証明書1056(「KMS_TLS_Cert」とラベル付けされる)に署名するために使用される。以下に説明する例では、安全接続証明書1056は、TLSサーバ認証中に電子デバイス100に対して認証するためにKMS120によって使用される。
【0129】
図6Cは、一次トラステッドルート証明書1044から派生した2つの更なる中間証明書1046、1050を示している。中間証明書1046、1050(それぞれ「IC_A」及び「IC_B」とラベル付けされている)は、デバイス固有のポリシーに関連付けられた下位デバイス証明書を認証するために使用される。例えば、IC_A1046は、第1のクラスのIoTデバイスのセキュリティポリシーに基づいて、第1のクラスのIoTデバイス(例えば、トースター)のデバイス証明書を認証するために使用されてもよく、IC_B1050は、第2のクラスのIoTデバイスのセキュリティポリシーに基づいて、第2のクラスのIoTデバイス(例えば、電球)のデバイス証明書を認証するために使用されてもよい。これは、どの発行証明書が署名に使用されたかを確認することによって、証明書から所与のタイプのデバイスを識別し得るので、セキュリティポリシーの実施に有用であり得る。
【0130】
中間証明書IC_A及びIC_Bによって署名されたデバイスの最終証明書も、
図6Cに示す(それぞれ「Dev_Cert_A」1048及び「Dev_Cert_B」1052とラベル付けされている)。以下の例で分かるように、デバイス証明書1048は、そのIoTハブ170に対して認証するために電子デバイス100によって使用され得る。
【0131】
デバイス証明書を発行するための2つの中間証明書1046、1050を
図6Cに示しているが、多くの又は少ない中間発行証明書が一次トラステッドルート証明書1044から下位にあってもよいことを、当業者は理解するであろう。
【0132】
図6Dは、一例による証明書チェーンを示している。
図6Dでは、ファームウェアルート証明書1058(「OEM_Firmware」とラベル付けされる)は、認証局によって自己署名されている。ファームウェア署名証明書1060(「Firm_SC」とラベル付けされている)が、そのルート証明書から派生する。
【0133】
ファームウェア署名証明書1060は、電子デバイス100に導入されるファームウェアに署名するために使用され得る。ファームウェア署名PKIは、一次登録及び一時登録PKIとは別個のルートを有する。これは、OEM160がファームウェア署名証明書を使用して任意のメッセージ、証明書などに署名することができ、このPKIを別々に保つことで、ファームウェアPKIが登録のセキュリティを侵害するものに署名するために(偶然又は悪意を持って)使用され得ない、ことを保証する。
【0134】
当業者であれば、
図6B、
図6C及び
図6DのPKIの上記の説明で使用された証明書の名前は、3つのPKIのみを区別するために使用されていることを理解するであろう。
【0135】
電子デバイス100又はKMS120が証明書を検証するときはいつでも、できるだけ多くの有用な属性を確認する必要がある(例えば、サブジェクト名、使用制限、発行者の名前など)。電子デバイスがこれを行い得るようにするために、それらのファームウェアは、KMS120の識別子、及び異なる証明書に期待する命名構造など、これらの確認を行うために必要な情報を含まなければならない。電子デバイスは、可能な場合、チェーン内のすべての署名を検証し、チェーン内の中間証明書が証明書を発行することを許可されていることを確認し(例えば、セキュリティ侵害を受けたデバイスがそのデバイス証明書を使用して証明書を発行することを防止するため)、(時間にアクセスできる場合)すべての証明書が期限切れでないことを確認する。
【0136】
図7は、一時登録デバイス証明書1042を電子デバイス100に提供するための例示的な方法を示している。
【0137】
電子デバイス100は、PUF450を有するセキュリティモジュール110を備え、セキュリティモジュール110は、PUFに対する第1のチャレンジ及びレスポンスに基づいて登録鍵ペア(EPK、ESK)を確立するように構成され、登録鍵ペアは、登録公開鍵(EPK)と、登録秘密鍵(ESK)と、を備える。一例では、セキュリティモジュールは、PUF450に対する第1のチャレンジに基づいて、登録公開鍵(EPK)を確立し、PUF450に対する第1のチャレンジに対するレスポンスに基づいて、登録秘密鍵を確立するように構成されてもよい。
【0138】
この交換の目的は、電子デバイス100が、そのEPKについての一時登録デバイス証明書1042を要求し、発行されることである。デバイスは、これを使用して、
図10に関連して以下で更に詳述する第2のハンドシェイクでKMS120に対して認証する。この例のKMS120は、所有するデバイス識別子(すなわち、登録されているデバイス識別子)に対応するEPKについて証明書のみを発行する。KMS120はまた、最終的にその最終デバイス証明書(この例ではDev_Cert_A1048)を発行するために使用される発行証明書IC_A1046を電子デバイスに送信し、電子デバイス100は、KMS120によって発行された後続の証明書を検証するために記憶する。
【0139】
電子デバイス100は、電子デバイス100上のファームウェアにインストールされた、URLによって識別されたKMS120へのTLS接続を開始する(1102)。ハンドシェイク中に、KMS120は、(1104において)KMS_TLS_Cert1056及びTLS発行証明書IC_TLS1054を提示することによってクライアントに対して認証し、電子デバイス100が、(電子デバイス100に以前にインストールされた)一次ルート証明書1044からTLS証明書1056へのチェーンを構築することを可能にする。電子デバイス100は、TLS接続に対する信頼のチェーンを検証する(1106)。電子デバイス100は、一次トラステッドルート証明書1044で始まる証明書チェーンのみを受け入れる。電子デバイス100は、証明書1056のサブジェクト名がファームウェアに含まれるKMS識別子と同一であることを確認する。可能であれば、電子デバイス100は、TLS証明書1056がTLS発行証明書1054によって署名されたことを確認すべきである。認証が失敗した場合、デバイスは接続を終了する。クライアント認証が要求されると、デバイス100は、適切な証明書を持っていないことを示し、KMS120に対して認証しない。
【0140】
OEMの鍵のいずれもセキュリティ侵害を受けていないと仮定すると、このステップは、デバイスのファームウェア内のKMS識別子に関連付けられた実際のKMS120と通信していることを、電子デバイス100に証明する。電子デバイス100は、TLSのサブジェクト名が予想されるものと一致することを確認する必要があり、そうでない場合、電子デバイス100は、一次トラステッドルート証明書1044によって署名された任意の証明書からの接続を受け入れる脆弱性がある可能性があり、そのため、例えば、セキュリティ侵害を受けたデバイスと通信する可能性がある。同じサブジェクト名で他の証明書が発行されないことを保証する必要があり、そうでなければ、この証明書を所有する当事者は、証明書を使用して、電子デバイス100に対してKMS120をなりすまし得る。
【0141】
1106において、TLS接続が検証された場合、安全なTLS通信チャネルが、電子デバイス100とKMS120との間で開かれる(1108)。
【0142】
電子デバイス100は、1110において、証明書署名要求(CSR)を生成する。公開鍵インフラストラクチャ(PKI)システムでは、CSRは、デジタル識別証明書を申請するために、申請者から公開鍵インフラストラクチャの登録機関に送信されるメッセージである。これは通常、証明書が発行されるべき公開鍵と、識別情報(EPKに基づくドメイン名又はデバイス識別子など)と、完全性保護(例えば、デジタル署名)と、を含む。CSRのための最も一般的なフォーマットは、PKCS#10仕様であり、もう1つは、署名付き公開鍵及びチャレンジSPKACフォーマットである。
【0143】
1110において、CSRが、登録公開鍵EPKをデバイス識別子に関連付けるために生成される。更に上述したように、デバイス識別子は、EPK(f(EPK))の関数であり、この説明の目的のために、デバイス識別子はEPKのハッシュH(EPK)を含む。したがって、CSRでは、公開鍵がEPKとして識別され、サブジェクト名/識別名/識別子が、H(EPK)として識別される。今後、要求された証明書は、後続のTLSハンドシェイク中に、KMS120に対して認証するために電子デバイス100によって使用される。CSRは、1112においてKMS120に送信される。
【0144】
CSRは、CSRに対する署名の形態の登録秘密鍵ESKに関する所有の証明を含む。しかしながら、これは、TLS接続の他端において、電子デバイス100によってCSRが計算されたことをKMS120に必ずしも証明せず、攻撃者が、何らかの方法でデバイスによって計算された以前のCSRを知ることができた場合(これらがTLS接続下で暗号化されて送信されるので、可能性は低い)、攻撃者は、これを別の接続でKMS120に再生する場合がある。しかしながら、攻撃者が、そのような攻撃を実行することができたとしても、対応するEPKを知らないので、返された証明書を使用し得ない。
【0145】
KMS120は、CSRを受信すると、いくつかの確認を行う。
【0146】
KMS120は、1114において、データベースに対してCSRのサブジェクトフィールドに提供されたデバイス識別子を確認して、KMS120がそのデバイス識別子に関連付けられた電子デバイス100の証明書に署名することを許可されていること、言い換えれば、KMS120がそのデバイス識別子を「所有」していること、を検証する。適切なデータベースは、KMS120上にローカルに保持されてもよく、又は権威サーバシステム130への要求を介してアクセスされてもよい。
【0147】
KMS120は、1116において、CSRの公開鍵フィールド内の登録公開鍵EPKがサブジェクト名フィールド内のデバイス識別子にハッシュすることを更に確認する。すなわち、KMSは、デバイス識別子DeviceID=H(EPK)であることを検証する。
【0148】
1114及び1116における確認は、任意の順序で、又は同時に実行されてもよい。いずれかの確認に失敗した場合、KMS120は、接続を終了する。成功した場合、KMS120は、EPKをデバイス識別子に関連付ける-KMS120は、EPKをデータベース内のデバイス識別子のエントリに追加する。
【0149】
CSR内の公開鍵がデータベース内のデバイス識別子の1つに対応することを確認することは、重要であり、そうでなければ、攻撃者は、任意の鍵ペアの証明書を要求し得る。この確認を課すことは、KMS120によって所有されたデバイス識別子のいずれかにハッシュする公開鍵に対してのみ証明書が要求され得ることを意味する。攻撃者が、KMS120に、デバイス識別子の根底にある実際のEPK以外の公開鍵に対する証明書を発行させ得る唯一の方法は、同じデバイス識別子にハッシュする異なるEPKを見つけ得る場合である。これは、攻撃者がハッシュ関数において衝突を見つけることを必要とし、これは、定義上、極めて困難なタスクである。
【0150】
すべての確認が完了すると、KMS120は、(「TE_Dev_Cert」とラベル付けされた)一時登録デバイス証明書1042に署名する。一時登録デバイス証明書1042は、サブジェクト名としてのデバイス識別子と、公開鍵としてのEPKと、有効期間と、を含む。TE_Dev_Cert1042は、一時登録発行証明書1040(TE_OEM_IC)に関連付けられた秘密鍵によって署名されている。
【0151】
上述したように、OEMは、製造中にKMSによって所有された電子デバイス100によって生成されたEPKの証明書のみを要求するように効果的に制限され、実際のデバイス以外の当事者は、対応するESKを知らない。したがって、一時登録デバイス証明書1042は、実際の電子デバイス100を除くすべての当事者にとって役に立たないはずである。一時登録デバイス証明書1042は、登録のみで使用される一時的な認証情報としての使用を強制するために役立つ短い有効期間を有する。例えば、有効期間は5分以下であってもよい。
【0152】
1122において、そのデバイスのバッチに関連付けられたセキュリティポリシーによって指定された発行証明書IC_A1046と、署名されたTE_Dev_Cert1042との両方が、電子デバイス100に通信される。
【0153】
TLS接続は、1124において閉じられる。
【0154】
次いで、電子デバイス100は、1122において受信した認証情報を確認し(1126)、成功した場合、TE_Dev_Cert1042及びIC_A1046をインストールする(1128)。
【0155】
電子デバイス100は、ハンドシェイクで付与された発行証明書IC_A1046を検証する。電子デバイス100は、サブジェクト名フィールドが期待値と一致すること、すなわち発行証明書IC_A1046が証明書を発行するために使用され得ることを確認し、一次トラステッドルート証明書1044を使用して発行証明書IC_A1046上で署名を検証する。セキュリティを追加するために、電子デバイス100は、中間CAではなく一次トラステッドルート証明書1044によって直接署名されている場合、発行証明書IC_Aのみを受け入れるべきである。可能であれば、実施された確認は、電子デバイス100が証明書を発行する実際のデバイスのみを受け入れることに十分であることが保証されるべきであり、特に、TLS発行証明書1054及びそれによって発行された証明書を拒否すべきであり、デバイス証明書、及びデバイス証明書によって発行された証明書を拒否すべきである。確認に合格すると、電子デバイス100は、発行証明書IC_A1046をインストールし、その結果、OEM160によって発行された後続の証明書を認証するために使用され得る。
【0156】
電子デバイス100は、KMSの実際の発行証明書(これが事前に分かっている場合、理想的には、デバイスの特定の発行証明書)のいずれでもない証明書を拒否する必要がある。
【0157】
また、電子デバイス100は、TE_Dev_Cert1042内のデバイスID及びEPKが電子デバイス100に属するものと一致することを確認する。これにより、TE_Dev_Cert1042が次のハンドシェイクにおける認証の使用に適していることを保証する。
【0158】
これらの確認のいずれかが失敗した場合、電子デバイス100は登録を中止する。
【0159】
この例では、TE_Dev_Cert1042は、KMS120が電子デバイス100に対して認証されたTLSチャネルを介して受信されたので、TE_Dev_Cert1042は、KMS120によって承認されたものとして暗黙的に信頼され得る。したがって、電子デバイスは、TE_Dev_Cert1042が特定の一時登録ルート証明書TE_OEM_ROOT1038の下位であることを確認する必要はない。有利には、これは、TE_OEM_ROOT1038又は発行証明書TE_OEM_IC1040のいずれもKMS120から出る必要がないことを意味する。しかしながら、他の例では、一時登録ルート証明書1038は、OEMファームウェアの一部としてデバイスに予めインストールされてもよく、KMS120はまた、安全な接続を介して、電子デバイスが一時登録デバイス証明書1042への信頼のチェーンを構築し得るように、一時登録発行証明書1040を送信してもよい。
【0160】
図7の交換が実行された後、電子デバイス100は、EPKが電子デバイス100に関連付けられていることを証明する一時登録デバイス証明書1042を所有している。一時登録デバイス証明書1042はまた、電子デバイスがKMSと更に交換を行い得る有効期間を提供する。EPKは、この段階では、例えば権威サーバ130などによって周知されている。電子デバイス100はまた、後続の交換で発行されたデバイス証明書1048を検証するために使用され得る発行証明書1046を所有している。
【0161】
有利には、デバイスに安全な情報を導入する必要なく、一時登録デバイス証明書が、デバイスに提供される。安全な情報を導入するには、秘密情報を電子デバイスに導入する安全な設備、及び/又は情報を安全に導入する第三者の能力を信頼する必要がある。安全な施設は、コストが高く、管理が困難であり、新しい脅威に対する堅牢な応答を保証するためにセキュリティ手順の継続的な保守及び評価を必要とする。通常、ハードウェアセキュリティモジュール(HSM)は、鍵を生成及び記憶するために必要とされ、統合された鍵導入システムは、電子デバイスに鍵を導入するために必要とされ、その場合でも、HSM及び/又は安全な設備がセキュリティ侵害を受けた場合、導入された情報の完全性は、保証され得ない。したがって、安全な情報を導入する必要性を回避することにより、電子デバイスの管理が容易になり、情報の完全性が保証され、より安全になる。
【0162】
図8は、電子デバイス100による実施のための一般的な方法1200のフローチャートを示している。電子デバイス100は、物理複製困難関数(PUF)450を有するセキュリティモジュール110を備え、セキュリティモジュール110は、PUFに対する第1のチャレンジ及びレスポンスに基づいて登録鍵ペア(EPK、ESK)を確立するように構成され、登録鍵ペアは、登録公開鍵(EPK)と、登録秘密鍵(ESK)と、を備える。一例では、セキュリティモジュール110は、PUF450に対する第1のチャレンジに基づいて登録公開鍵(EPK)を、及びPUF450に対する第1のチャレンジに対するレスポンスに基づいて登録秘密鍵(ESK)を、確立するように構成されてもよい。電子デバイス100は、一時登録トラステッドルート証明書1038がインストールされた1又は複数のメモリを更に備える。
【0163】
方法1200は、1210において、安全な接続を介して、EPKがデバイス識別子に関連付けられていることを証明する証明書について、デバイス識別子及びEPKを含む証明書署名要求(CSR)をサーバに送信すること、を含み、CSRは、ESKを使用して署名され、デバイス識別子は、EPKの関数に基づく。安全な接続は、TLS接続を含み得る。例えば、安全な接続は、鍵管理サーバ120とのTLS接続を含んでもよい。
【0164】
方法1200は、1220において、安全な接続を介して、EPKがデバイス識別子に関連付けられており、有効期間を含むことを証明する一時登録デバイス証明書1042を受信すること、を更に含む。
【0165】
有効期間は、安全な接続の他端における当事者との更なる安全な接続を確立し得る期間を規定し得る。
【0166】
電子デバイス100の1又は複数のメモリはまた、一次トラステッドルート証明書1044をインストールしていてもよく、方法1200は、一次トラステッドルート証明書1044の下位にある発行証明書1046を受信すること、を含み得る。本方法は、発行証明書1046が一次トラステッドルート証明書1044から直接派生したものであることを検証すること、を更に含み得る。
【0167】
方法1200は、1230において、一時登録デバイス証明書1042をメモリにインストールすること、を更に含む。KMS120が電子デバイス100に対して認証した後に、安全なチャネルを介して、一時登録デバイス証明書が受信された場合、一時登録デバイス証明書1042は、KMSから来たものとして電子デバイスによって信頼され得る。しかしながら、他の例では、一時登録ルート証明書1038は、OEMファームウェアの一部としてデバイスに予めインストールされてもよいし、通信チャネルを介して電子デバイスによって受信されてもよい。
【0168】
図9は、方法1300のフローチャートを示している。本方法は、例えば、鍵管理サーバ120によって実施され得る。
【0169】
方法1300は、1310において、デバイス識別子と、EPKがデバイス識別子に関連付けられていることを証明する証明書について、電子デバイスによって確立された登録鍵ペアの登録公開鍵(EPK)と、を含む証明書署名要求(CSR)を受信すること、を含み、デバイス識別子はEPKの関数に基づく。
【0170】
方法1300は、1320において、サーバが証明書に署名し得るデバイス識別子のデータベースに対してデバイス識別子を確認させること、を含む。例えば、データベースは、ローカルに記憶されてもよく、その場合、
図7に関して説明したシナリオで想定されるように、データベースを直接参照してもよい。しかしながら、他の例では、データベースは、例えば、権威サーバ130を有するリモートサーバに配置されてもよく、その場合、データベースに対してデバイス識別子を確認する要求が行われてもよい。
【0171】
方法1300は、1330において、デバイス識別子がEPKの関数であることを検証するためにデバイス識別子の確認を実施させること、を更に含む。サーバは、デバイス識別子がEPKの関数であるか否かを直接評価してもよく、又はデバイス識別子がEPKの関数であることを検証するために別のコンピュータデバイスと通信してもよい。いくつかの例では、関数は、暗号化ハッシュ関数であってもよい。
【0172】
方法1300は、1340において、EPKをデータベース内のデバイス識別子に関連付けること、を含む。例えば、データベースは、ローカルに記憶されてもよく、その場合、
図7に関して説明したシナリオで想定されるように、データベースは直接修正されてもよい。しかしながら、他の例では、データベースは、例えば、権威サーバ130を有するリモートサーバに配置されてもよく、その場合、デバイス識別子をデータベース内のEPKに関連付ける要求が行われてもよい。
【0173】
方法1300は、1350において、EPKがデバイス識別子に関連付けられ、有効期間を含むことを証明する一時登録デバイス証明書に署名すること、を含む。
【0174】
方法1300は、1360において、安全な接続を介して、デバイス識別子によって識別された電子デバイスに、署名された一時登録デバイス証明書の送信を開始することを含む。署名された一時登録証明書は、デバイス識別子によって識別された電子デバイスに直接送信されてもよく、安全な接続を介して、電子デバイス100に前方送信するために別のコンピュータデバイスに渡されてもよい。
【0175】
本方法は、電子デバイスへの発行証明書1046の通信を開始すること、を更に含み得る。
【0176】
図10は、電子デバイス100を登録するための方法を示している。電子デバイス100は、物理複製困難関数(PUF)450を有するセキュリティモジュール110を含む。セキュリティモジュール110は、PUFに対する第1のチャレンジ及びレスポンスに基づいて、登録鍵ペア(EPK、ESK)を確立するように構成されており、登録鍵ペアは、登録公開鍵(EPK)と、登録秘密鍵(ESK)と、を含む。一例では、セキュリティモジュール110は、PUF450に対する第1のチャレンジに基づいて登録公開鍵(EPK)を、更にPUF450に対する第1のチャレンジに対する応答に基づいて登録秘密鍵(ESK)を、確立するように構成されてもよい。電子デバイス100は、PUFに対する第2のチャレンジ及びレスポンスに基づいて、デバイス鍵ペア(DPK、DSK)を確立するように更に構成され、デバイス鍵ペアは、デバイス公開鍵(DPK)と、デバイス秘密鍵(DSK)と、を備える。電子デバイス100は、一次トラステッドルート証明書1044(例えば、
図6Cの「OEM_ROOT」)がインストールされた1又は複数のメモリを更に備える。
【0177】
この方法では、電子デバイス100及びKMS120は互いに認証し、電子デバイス100は、IoTハブ170と通信するために使用するデバイス公開鍵(DPK)の証明書を要求する。
【0178】
電子デバイス100は、1402において、KMS120へのTLS接続を開始する。ハンドシェイク中に、KMS120は、安全接続証明書(「KMS_TLS_Cert」)1056及び安全接続発行証明書(「IC_TLS」)1054を(1404において)提示することによって、電子デバイス100に対して再度認証する。
【0179】
電子デバイス100は、
図7に関連して上述したように、この証明書に対するすべての確認を実行しなければならず、特に、サブジェクト名を慎重に確認する。これは、電子デバイス100に、ファームウェア内のKMS識別子に関連付けられたKMS120と通信していることを証明する。
【0180】
KMS認証が成功した場合、電子デバイス100は、1406において、以前の交換で受信した一時登録デバイス証明書1046を提示し、TLSクライアント認証を実行することによってサーバに対して認証する。KMS120は、一時登録発行証明書1040(「TE_OEM_IC」)によって署名された一時登録デバイス証明書のみを受け入れる。1408において、KMS120は、一時登録デバイス証明書の確認を実施する。
【0181】
クライアント認証が成功すると、電子デバイス100は、一時登録デバイス証明書1042内の登録公開鍵(EPK)に対応する登録秘密鍵(ESK)を知っていることを証明する。証明書を発行するときのKMS120による確認は、デバイス識別子が、所有するデバイスに対応することを保証し、一時登録デバイス証明書1042内の登録公開鍵が、その証明書で指定されたデバイス識別子にハッシュするので、デバイスのペアが衝突IDを有さず、攻撃者がハッシュ関数内の衝突を見つけることができなかった場合(両方のイベントは極めて小さな確率で発生する)、これは、電子デバイス100が、一時登録デバイス証明書1042内のEPKに対応するESKを知っている、H(EPK)によって与えられる識別子を有する一意のデバイスであることをKMS120に証明する。
【0182】
一時的な登録署名鍵がセキュリティ侵害を受けた場合、攻撃者は、KMS120へのTLSクライアント認証を正常に完了することを可能にする既知の鍵ペアの任意の証明書を発行し得るが、この場合は、更に後述するKMS120によって実施される確認によって捕捉される。
【0183】
双方の当事者が認証されると、安全なTLS通信チャネルが開かれる(1410)。
【0184】
電子デバイス100は、1412において、デバイス公開鍵DPKのための証明書署名要求(CSR)を生成する。CSRにおけるサブジェクト名は、EPKの暗号ハッシュH(EPK)であるデバイス識別子(図では「DeviceID」とラベル付けされている)と等しい。電子デバイス100は、1414において、CSRをKMS120に送信する。
【0185】
CSRにおける所有の証明は、電子デバイス100がCSRにおけるデバイス公開鍵(DPK)に対応するデバイス秘密鍵(DSK)を知っているという何らかの保証をKMS120に与える。将来的にチャネルバインディング情報をCSRに含め得る場合、これは、TLS接続のクライアント側の電子デバイス100がDPKに対応するDSKを知っていることを証明する。
【0186】
CSRを受信した後、KMS120は、いくつかの確認を実施する。
【0187】
KMS120は、1416において、一時登録デバイス証明書1042が有効期間内であり、一時登録デバイス証明書1042に署名するために使用された署名が正しく検証されていることを確認する。
【0188】
KMS120は、1418において、一時登録デバイス証明書1042内のデバイス識別子がKMSのデータベース内のエントリに対応することを更に確認する。これにより、(TE_OEM_IC証明書1040に関連付けられた)TE発行秘密鍵のセキュリティ侵害が軽減される。そのようなイベントが発生すると、攻撃者は、任意の有効な一時登録デバイス証明書1042を発行し得る。しかしながら、KMSが所有するセットの外部にあるデバイス識別子の一時登録デバイス証明書は、この確認後に拒否される。これは、攻撃者が発行できるのは、KMSが所有するデバイス識別子に対する悪意のある一時登録デバイス証明書のみであることを意味し、これは、後の確認で軽減される。
【0189】
KMS120は、1420において、一時登録デバイス証明書1042内のデバイス識別子が、H(EPK)に等しいことを確認し、EPKは、一時登録デバイス証明書1042の公開鍵フィールド内にある。
【0190】
悪意のある証明書は、一時登録デバイス証明書(これは、以前の確認によって、KMSに属するデバイス識別子に対応する)内のデバイス識別子にハッシュするEPKを有していなければならない。TLSクライアント認証がそのような証明書で成功するためには、攻撃者は、デバイスのESKをセキュリティ侵害しているか(この場合、デバイスはいずれにしても完全にセキュリティ侵害を受けている)、又はEPK以外の公開鍵を一時登録デバイス証明書1042で使用し得ることを意味するハッシュ関数の衝突を発見している必要がある(良好な衝突耐性ハッシュ関数には実行不可能)。
【0191】
1416、1418、1420における確認は、任意選択で、安全なチャネルが開かれる前に1408において実施され得ることに留意されたい。
【0192】
KMSは、1422において、一時登録デバイス証明書1042内のデバイス識別子がCSR内のデバイス識別子と等しいことを確認する。CSRのサブジェクト名が一時登録デバイス証明書1042のサブジェクト名と一致することを確認することは、認証電子デバイス100の識別を、発行された証明書の識別にリンク付けするために必要である。これは、電子デバイス100が異なるデバイス識別子の証明書を要求し、その証明書を使用して、その異なるデバイスになりすますことを防止するためである。
【0193】
1424において、KMS120は、そのデータベースから所与のデバイス識別子に関連付けられたセキュリティポリシーを検索し、証明書の有効期限、鍵の使用などに基づいてすべての必要な確認を実施して、CSRの詳細がKMSのセキュリティポリシーに準拠していることを保証する。
【0194】
すべての確認に成功した場合、KMS120は、ポリシーに関連付けられた発行証明書1046(「IC_A」)の秘密鍵を使用して、CSRの詳細に従って電子デバイス100にデバイス証明書1048を発行する。
【0195】
新規に生成されたデバイス証明書1048は、1426において、IoTハブエンドポイント及びIoTルート証明書と共に、電子デバイス100に送信される。デバイス証明書1048はまた、IoTハブ170に送信される。電子デバイス100は、これで、そのIoTハブ170に接続するために必要なすべての情報を有する。
【0196】
電子デバイス100がそのIoTハブ170に対して認証し得るようにするためには、デバイス証明書1048に署名した発行証明書1046は、IoTハブ170に事前に登録されている必要がある。証明書IC_A、IC_Bなどを発行するすべてのデバイスは、電子デバイスが接続する前にIoTハブ170に登録される。
【0197】
1430において、TLS接続が終了する。
【0198】
1432において、電子デバイス100は、送信されたデバイス証明書1048を検証するために、以前にインストールされた発行証明書IC_A1046を使用する。電子デバイス100は、デバイス証明書1048が、以前にインストールされた発行証明書1046によって発行されたものであることを確認し、他の証明書によって発行されたデバイス証明書を受け入れてはならない。
【0199】
電子デバイス100は、デバイス証明書1048のサブジェクト名及び公開鍵が予想通りであること(すなわち、サブジェクトがデバイス識別子H(EPK)であり、公開鍵がDPKであること)を確認する。更なるセキュリティのために、電子デバイス100は、有効期限の開始日及び有効期限の終了日が、異常であること(有効期限の開始日が過去である、又はデバイス証明書1048が期限切れであるなど)を、可能な場合、表示しないことを確認するべきである。証明書1048が更新されている(したがって、公開鍵が変更されていない)場合、電子デバイス100は、例えば、有効期限の開始日が以前の証明書と異なることを確認して、KMS120になりすました攻撃者が電子デバイスの古い証明書を返していないことをある程度保証し得る。
【0200】
電子デバイス100は、検証が失敗した場合、接続を終了し、任意選択で、詳細を示すエラーメッセージを表示しなければならない。
【0201】
このステップは、電子デバイス100が、現在信頼されている発行証明書IC_A1046によって、有効なデバイス証明書1048を発行されており、詳細が、電子デバイス100が予想する通りであることを保証するために使用される。攻撃者が(KMS_TLS_Cert証明書1056のための)TLS鍵をセキュリティ侵害したが、(IC_A証明書1046のための)発行秘密鍵をセキュリティ侵害していない場合、攻撃者は、電子デバイス100に対してKMS120をなりすまし得るが、電子デバイス100のための有効な新規のデバイス証明書1048を発行することができない。電子デバイス100は、適切な証明書を受信したことを保証するためと、KMS120になりすましているが発行秘密を知らない攻撃者が、電子デバイス100を騙して、既に発行されたデバイス証明書を受け入れさせようとしているか否かを検出するためと、の両方で、受信した証明書の詳細を慎重に確認する必要がある。
【0202】
有利には、
図10の方法の後、電子デバイスは、デバイス公開鍵(DPK)がデバイス識別子H(EPK)に関連付けられていることを証明するための有効なデバイス証明書1048を所有している。デバイス証明書1048の信頼は、OEM160に関連付けられた一次ルート証明書1044から導出される。
【0203】
図11は、電子デバイス100による実施のための一般的な方法1500のフローチャートを示している。電子デバイス100は、物理複製困難関数(PUF)450を有するセキュリティモジュール110を備える。セキュリティモジュール110は、PUFに対する第1のチャレンジ及びレスポンスに基づいて、登録鍵ペア(EPK、ESK)を確立するように構成されており、登録鍵ペアは、登録公開鍵(EPK)と、登録秘密鍵(ESK)と、を含む。一例では、セキュリティモジュール110は、PUF450に対する第1のチャレンジに基づいて登録公開鍵(EPK)を、及びPUFに対する第1のチャレンジに対するレスポンスに基づいて登録秘密鍵(ESK)を、確立するように構成されてもよい。電子デバイス100は、PUFに対する第1のチャレンジ及びレスポンスに基づいて、デバイス鍵ペア(DPK、DSK)を確立するように構成され、デバイス鍵ペアは、デバイス公開鍵(DPK)と、デバイス秘密鍵(DSK)と、を含む。電子デバイス100は、一次トラステッドルート証明書1044がインストールされた1又は複数のメモリを更に備える。
【0204】
方法1500は、1510において、安全な接続を介して、DPKがデバイス識別子に関連付けられていることを証明する証明書1048について、証明書署名要求(CSR)をサーバに送信すること、を含み、CSRは、DSKを使用して署名される。CSRは、DPKと、デバイス識別子と、を含む。デバイス識別子は、EPKの関数に基づく。
【0205】
方法1500は、1520において、安全な接続を介して、DPKをデバイス識別子に関連付けるデバイス証明書1048を受信すること、を含む。
【0206】
方法1500は、1530において、デバイス証明書1048が一次トラステッドルート証明書1044の下位であることを検証すること、を含む。電子デバイス100は、デバイス証明書1048のサブジェクト名及び公開鍵が予想通りであることを更に確認し得る(すなわち、サブジェクトがデバイス識別子H(EPK)であり、公開鍵がDPKである)。更なるセキュリティのために、電子デバイス100は、有効期限の開始日及び有効期限の終了日が、異常であること(有効期限の開始日が過去である、又はデバイス証明書1048が期限切れであるなど)を表示しないことを確認し得る。証明書1048が更新されている(したがって、公開鍵が変更されていない)場合、電子デバイス100は、有効期限の開始日が以前の証明書の有効期限と異なることを確認して、攻撃者が電子デバイスの古い証明書を返していないことをある程度保証し得る。
【0207】
方法1500は、1540において、検証に応答して、デバイス証明書1048をメモリにインストールすること、を含む。
【0208】
図12は、方法1600のフローチャートを示している。本方法は、1又は複数のコンピュータ装置(すなわち、鍵管理サーバシステム)を備え得る鍵管理サーバ120などのコンピュータ装置による実施に適している。
【0209】
方法1600は、1610において、デバイス鍵ペアのデバイス公開鍵(DPK)がデバイス識別子に関連付けられていることを証明する証明書について、証明書署名要求(CSR)を受信すること、を含む。CSRは、デバイス識別子と、DPKと、を含み、デバイス鍵ペアのデバイス秘密鍵(DSK)を使用して署名される。デバイス識別子は、電子デバイスに属することが知られている登録鍵ペアの登録公開鍵の関数に基づく。
【0210】
KMS120は、CSRを電子デバイス100から安全な接続を介して、受信してもよいし、又は電子デバイス100から安全な接続を介して、CSRを受信した鍵管理サーバシステムの別のサーバからCSRを受信してもよい。
【0211】
方法1600は、1620において、サーバが証明書に署名し得るデバイス識別子のデータベースに対してデバイス識別子を確認させること、を含む。例えば、データベースは、ローカルに記憶されてもよく、その場合、
図10に関して説明したシナリオで想定されるように、データベースを直接参照してもよい。しかしながら、他の例では、データベースは、例えば、権威サーバ130を有するリモートサーバに配置されてもよく、その場合、データベースに対してデバイス識別子を確認する要求が行われてもよい。
【0212】
方法1600は、1630において、デバイス識別子が電子デバイスを識別するために知られていることを検証するためにデバイス識別子の確認を実施させること、を含む。例えば、KMS120は、KMS120がデバイス識別子を所有していること、デバイス識別子がEPKの関数であること、及びCSRのデバイス識別子が以前に発行された一時登録デバイス証明書1042内のデバイス識別子と等しいこと、を検証するために確認を実施させてもよい。
【0213】
方法1600は、1640において、CSRに基づいてデバイス証明書1048に署名すること、を含み、デバイス証明書1048は、電子デバイスに知られている一次トラステッドルート証明書の下位である。
【0214】
本方法は、1650において、安全な接続を介して、デバイス識別子によって識別された電子デバイスへのデバイス証明書1048の送信を開始すること、を含む。本方法は、電子デバイスが、関連するIoTハブと通信することを可能にするために、IoTハブのIoTルート証明書、及びURLなどのエンドポイントの送信を開始すること、を更に含み得る。本方法は、デバイス証明書1048をIoTハブ170に通信すること、を更に含み得る。
【0215】
図13は、いくつかの例によるコンピュータ可読媒体1700を示している。
【0216】
コンピュータ可読媒体1700は、ユニットを記憶し、各ユニットは、命令1710を含み、命令は実行されると、プロセッサ1720又は他の処理/コンピュータデバイス若しくは装置に、特定の動作を実施させる。
【0217】
例えば、命令1710は、プロセッサ1720に、安全な接続を介して、EPKがデバイス識別子に関連付けられていることを証明する証明書について、デバイス識別子と登録公開鍵EPKとを含む証明書署名要求(CSR)をサーバに送信させてもよく、CSRは、登録秘密鍵ESKを使用して署名され、デバイス識別子はEPKの関数に基づく。命令1710は更に、プロセッサ1720に、安全な接続を介して、EPKがデバイス識別子に関連付けられており、有効期間を含むことを証明する一時登録デバイス証明書を受信させてもよい。命令1710は更に、プロセッサ1720に、一時登録デバイス証明書をメモリにインストールさせてもよい。
【0218】
例えば、命令1710は、プロセッサ1720に、デバイス識別子と、登録公開鍵(EPK)がデバイス識別子に関連付けられていることを証明する証明書について電子デバイスによって確立された登録鍵ペアのEPKと、を含む証明書署名要求(CSR)を受信させてもよく、デバイス識別子は、EPKの関数に基づく。命令1710は更に、プロセッサ1720に、サーバが証明書に署名し得るデバイス識別子のデータベースに対してデバイス識別子を確認させてもよい。命令1710は更に、プロセッサ1720に、デバイス識別子がEPKの関数であることを検証するためにデバイス識別子の確認を実施させてもよい。命令1710は更に、プロセッサ1720に、EPKをデータベース内のデバイス識別子に関連付けさせてもよい。命令1710は更に、プロセッサ1720に、EPKがデバイス識別子に関連付けられており、有効期間を含むことを証明する一時登録デバイス証明書に署名させてもよい。命令1710は更に、プロセッサ1720に、安全な接続を介して、デバイス識別子によって識別された電子デバイスへの署名された一時登録デバイス証明書の送信を開始させてもよい。
【0219】
例えば、命令1710は、プロセッサ1720に、安全な接続を介して、DPKがデバイス識別子に関連付けられていることを証明する証明書について、登録公開鍵(EPK)の関数に基づくデバイス識別子を含むデバイス公開鍵(DPK)に関する証明書署名要求(CSR)を、サーバに送信させてもよく、CSRは、デバイス秘密鍵(DSK)を使用して署名される。命令1710更には、プロセッサ1720に、安全な接続を介して、DPKをデバイス識別子に関連付けるデバイス証明書を受信させてもよい。命令1710は更に、プロセッサ1720に、デバイス証明書が一次トラステッドルート証明書の下位であることを検証させてもよい。命令1710は更に、プロセッサ1720に、検証に応答して、デバイス証明書をメモリにインストールさせてもよい。
【0220】
例えば、命令1710は、プロセッサ1720に、電子デバイスによって確立されたデバイス鍵ペアのデバイス公開鍵(DPK)に関する証明書署名要求(CSR)を受信させてもよく、CSRは、電子デバイスによって確立された登録鍵ペアの登録公開鍵(EPK)の関数に基づくデバイス識別子を含み、CSRは、DPKがデバイス識別子に関連付けられていることを証明する証明書に対するものである。命令1710は更に、プロセッサ1720に、プロセッサ1720が証明書に署名し得るデバイス識別子のデータベースに対してデバイス識別子を確認させてもよい。命令1710は更に、プロセッサ1720に、デバイス識別子が電子デバイスを識別するために知られていることを検証するために、デバイス識別子の確認を実施させてもよい。命令1710は更に、プロセッサ1720に、CSRに基づいてデバイス証明書に署名させてもよく、デバイス証明書は、一次トラステッドルート証明書の下位である。命令1710は更に、プロセッサ1720に、安全な接続を介して、デバイス識別子によって識別された電子デバイスへのデバイス証明書の送信を開始させてもよい。
【0221】
1又は複数のコンピュータ可読媒体の任意の組合せが、利用され得る。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、例えば、電子、磁気、光学、電磁気、赤外線、又は半導体システム、装置、デバイス、又はこれらの任意の適切な組合せであってもよいが、これらに限定されない。コンピュータ可読媒体の具体的な例(非網羅的なリスト)には、1又は複数の配線を有する電気的接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み出し専用メモリ(CDROM)、光記憶デバイス、磁気記憶デバイス、又はこれらの任意の適切な組合せを含む。本明細書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置、又はデバイスによって、又はそれらに関連して、使用のためのプログラムを含むか又は記憶し得る任意の有形媒体であってもよい。
【0222】
コンピュータ可読信号媒体は、例えば、ベースバンドにおいて、又は搬送波の一部として、コンピュータ可読プログラムコードが内部に具現化された伝搬データ信号を含んでもよい。そのような伝搬信号は、電磁的、光学的、又はそれらの任意の適切な組合せを含むがこれらに限定されない様々な形態のいずれかを取ってもよい。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、又はデバイスによって、又はそれらと関連して、使用のためのプログラムを通信、伝搬、又は輸送し得る任意のコンピュータ可読媒体であってもよい。
【0223】
コンピュータ可読媒体上に具現化されたコンピュータコードは、無線、有線、光ファイバケーブル、無線周波数(RF)など、又はそれらの任意の適切な組合せを含むがこれらに限定されない任意の適切な媒体を使用して送信され得る。
【0224】
本発明の態様のための動作を実行するためのコンピュータプログラムコードは、Java(商標)、Smalltalk(商標)、C++などのオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語などの従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組合せで記述され得る。プログラムコードは、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして部分的にユーザのコンピュータ上で、及び部分的にリモートコンピュータ上で、又は完全にリモートコンピュータ若しくはサーバ上で、実行し得る。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)、又はワイドエリアネットワーク(WAN)を含む、任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、あるいは外部コンピュータ(例えば、インターネットサービスプロバイダを使用してインターネットを介して)に接続されてもよい。
【0225】
本明細書に記載の方法の多くの変形形態が、当業者には明らかであろう。
【0226】
本明細書に開示されている各特徴(添付の特許請求の範囲、要約、及び図面を含む)は、特に明記しない限り、同じ、同等、又は同様の目的を果たす代替的な特徴によって置換されてもよい。したがって、特に明記しない限り、開示した各特徴は、一般的な一連の同等又は類似の特徴の一例にすぎない。
【0227】
本発明は、任意の前述の実施形態の詳細に限定されない。本発明は、本明細書(添付の特許請求の範囲、要約、及び図面を含む)に開示した特徴の任意の新規なもの、若しくは任意の新規な組合せ、又はそのように開示した任意の方法若しくはプロセスのステップの任意の新規なもの、若しくは任意の新規な組合せに及ぶ。特許請求の範囲は、前述の実施形態だけでなく、特許請求の範囲内に入る任意の実施形態も包含すると解釈されるべきである。
【国際調査報告】