IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ホアウェイ・テクノロジーズ・カンパニー・リミテッドの特許一覧

特許7347895ハードウェア検出方法ならびに装置、デバイス、および記憶媒体
<>
  • 特許-ハードウェア検出方法ならびに装置、デバイス、および記憶媒体 図1
  • 特許-ハードウェア検出方法ならびに装置、デバイス、および記憶媒体 図2
  • 特許-ハードウェア検出方法ならびに装置、デバイス、および記憶媒体 図3
  • 特許-ハードウェア検出方法ならびに装置、デバイス、および記憶媒体 図4
  • 特許-ハードウェア検出方法ならびに装置、デバイス、および記憶媒体 図5
  • 特許-ハードウェア検出方法ならびに装置、デバイス、および記憶媒体 図6
  • 特許-ハードウェア検出方法ならびに装置、デバイス、および記憶媒体 図7
  • 特許-ハードウェア検出方法ならびに装置、デバイス、および記憶媒体 図8
  • 特許-ハードウェア検出方法ならびに装置、デバイス、および記憶媒体 図9
  • 特許-ハードウェア検出方法ならびに装置、デバイス、および記憶媒体 図10
  • 特許-ハードウェア検出方法ならびに装置、デバイス、および記憶媒体 図11
  • 特許-ハードウェア検出方法ならびに装置、デバイス、および記憶媒体 図12
  • 特許-ハードウェア検出方法ならびに装置、デバイス、および記憶媒体 図13
  • 特許-ハードウェア検出方法ならびに装置、デバイス、および記憶媒体 図14
  • 特許-ハードウェア検出方法ならびに装置、デバイス、および記憶媒体 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-11
(45)【発行日】2023-09-20
(54)【発明の名称】ハードウェア検出方法ならびに装置、デバイス、および記憶媒体
(51)【国際特許分類】
   H04L 9/32 20060101AFI20230912BHJP
   G06F 21/44 20130101ALI20230912BHJP
   G06F 21/64 20130101ALI20230912BHJP
   G06F 21/73 20130101ALI20230912BHJP
【FI】
H04L9/32 200B
H04L9/32 200F
G06F21/44
G06F21/64 350
G06F21/73
【請求項の数】 28
(21)【出願番号】P 2021578090
(86)(22)【出願日】2020-07-13
(65)【公表番号】
(43)【公表日】2022-09-27
(86)【国際出願番号】 CN2020101699
(87)【国際公開番号】W WO2021012978
(87)【国際公開日】2021-01-28
【審査請求日】2022-02-07
(31)【優先権主張番号】201910673176.6
(32)【優先日】2019-07-24
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ジャン、メンナン
(72)【発明者】
【氏名】チアオ、リジョン
(72)【発明者】
【氏名】チェン、ハイウ
【審査官】青木 重徳
(56)【参考文献】
【文献】中国特許出願公開第106529271(CN,A)
【文献】中国特許出願公開第106899410(CN,A)
【文献】中国特許出願公開第101465732(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/44
G06F 21/64
G06F 21/73
(57)【特許請求の範囲】
【請求項1】
ハードウェアのセキュリティを決定する方法であって、
少なくとも2つのハードウェアを保持する物理キャリアに第1検証データを送信する段階
前記物理キャリアにより返された少なくとも2つの暗号文であって、前記少なくとも2つのハードウェアがそれぞれのキーを使用して前記第1検証データをそれぞれ暗号化した後に取得され、前記それぞれのキーは前記少なくとも2つのハードウェアのそれぞれのハードウェア識別子に基づき生成されている、前記少なくとも2つの暗号文、およびバインディング関係情報であって、前記少なくとも2つのハードウェアの前記それぞれのキーの間におけるバインディング関係を示す公証証明書である、前記バインディング関係情報を受信する段階
前記少なくとも2つの暗号文および前記バインディング関係情報を検証して、検証結果に基づいて前記少なくとも2つのハードウェアのセキュリティを決定する段階と
を備え
前記少なくとも2つの暗号文および前記バインディング関係情報を検証して、検証結果に基づいて前記少なくとも2つのハードウェアのセキュリティを決定する前記段階は、
前記公証証明書内の前記それぞれのキーが、前記物理キャリアから取得した前記それぞれのキーと同一であると検証する、または、前記公証証明書のデジタル署名の検証に成功する、段階と、
前記少なくとも2つのハードウェアの各々の前記暗号文を、前記少なくとも2つのハードウェアの各々に対応する各々のキーを用いて復号することにより得られる第2検証データが、前記第1検証データと一致すると検証する段階と、を含む、
方法。
【請求項2】
証結果に基づいて前記少なくとも2つのハードウェアのセキュリティを決定する前記段階は、
前記バインディング関係情報に含まれる前記バインディング関係が正しい、且つ前記少なくとも2つのハードウェアの各々の前記暗号文を、前記少なくとも2つのハードウェアの各々に対応する各々のキーを用いて復号することにより取得された前記第2検証データが前記第1検証データと一致するという前記検証結果である場合、前記少なくとも2つのハードウェアが安全であると決定する段階を含む、請求項1に記載の方法。
【請求項3】
記公証証明書は前記少なくとも2つのハードウェアにそれぞれ対応する前記キー間のバインディング関係および前記バインディング関係前記デジタル署名を含み、
少なくとも2つの暗号文および前記バインディング関係情報を検証する前記段階は、
前記公証証明書内の前記デジタル署名に基づいて、前記バインディング関係情報に含まれる前記バインディング関係が正しいかどうかを検証する段階と、
少なくとも2つの暗号文を記公証証明書内の前記少なくとも2つのハードウェアにそれぞれ対応する前記キーを使用してすることによって取得された前記第2検証データが前記第1検証データと一致するかどうかを検証する段階と
を含、請求項1または2に記載の方法。
【請求項4】
前記ハードウェア識別子は、ハードウェアユニークキーHUK、物理複製困難関数PUF、および機密性が保護されたワンタイムプログラマブルOTPにおける識別情報もしくは承認キーEKを含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記キーは、対称キーまたは非対称キーを含む、請求項1からのいずれか一項に記載の方法。
【請求項6】
前記キーが前記非対称キーである場合、前記キーはパブリックキーおよびプライベートキーを含み、
前記少なくとも2つの暗号文は、前記少なくとも2つのハードウェアがそれぞれのプライベートキーを使用して前記第1検証データをそれぞれ暗号化した後に取得され、前記バインディング関係情報は前記少なくとも2つのハードウェアのそれぞれのパブリックキー間のバインディング関係に基づいて取得される、請求項に記載の方法。
【請求項7】
ハードウェアのセキュリティを決定する方法であって、
検証ユニットにより送信された第1検証データを受信する段階と、
少なくとも2つの暗号文であって、物理キャリア上に保持された少なくとも2つのハードウェアがそれぞれのキーを使用して前記第1検証データをそれぞれ暗号化した後に取得され、前記それぞれのキーは前記少なくとも2つのハードウェアのそれぞれのハードウェア識別子に基づき生成されている、前記少なくとも2つの暗号文、およびバインディング関係情報であって、前記少なくとも2つのハードウェアの前記それぞれのキーの間におけるバインディング関係を示す公証証明書である、前記バインディング関係を取得する段階
前記少なくとも2つの暗号文および前記バインディング関係情報を前記検証ユニットに送信て、前記検証ユニット、前記少なくとも2つの暗号文および前記バインディング関係情報を検証して、検証結果に基づいて前記少なくとも2つのハードウェアのセキュリティを決定させる段階と
を備え
前記検証ユニットが、前記少なくとも2つの暗号文および前記バインディング関係情報を検証して、検証結果に基づいて前記少なくとも2つのハードウェアのセキュリティを決定することは、
前記公証証明書内の前記それぞれのキーが、前記物理キャリアから送信された前記それぞれのキーと同一であると検証する、または、前記公証証明書のデジタル署名の検証に成功する、ことと、
前記少なくとも2つのハードウェアの各々の前記暗号文を、前記少なくとも2つのハードウェアの各々に対応する各々のキーを用いて復号することにより得られる第2検証データが、前記第1検証データと一致すると検証することと、を含む、方法。
【請求項8】
少なくとも2つの暗号文およびバインディング関係情報を取得する前記段階の前に、前記方法はさらに、
前記少なくとも2つのハードウェアの前記それぞれのキーを取得する段階と、前記少なくとも2つのハードウェアの前記それぞれのキー間のバインディング関係に基づいて前記バインディング関係情報を取得する段階と、前記バインディング関係情報を格納する段階とを備える、請求項に記載の方法。
【請求項9】
前記少なくとも2つのハードウェアの前記それぞれのキー間のバインディング関係に基づいて前記バインディング関係情報を取得する前記段階記バインディング関係情報を格納する前記段階は、
前記少なくとも2つのハードウェアの前記それぞれのキーを登録して、前記少なくとも2つのハードウェアにそれぞれ対応する前記キー間の前記バインディング関係および前記バインディング関係への前記デジタル署名を含む前記公証証明書を取得する段階と、前記公証証明書を格納する段階を含み、
少なくとも2つの暗号文およびバインディング関係情報を取得する前記段階は、前記公証証明書を取得する段階を含む、請求項に記載の方法。
【請求項10】
前記ハードウェア識別子は、ハードウェアユニークキーHUK、物理複製困難関数PUF、および機密性が保護されたワンタイムプログラマブルOTPにおける識別情報もしくは承認キーEKを含む、請求項7から9のいずれか一項に記載の方法。
【請求項11】
前記キーは、対称キーまたは非対称キーを含む、請求項から10のいずれか一項に記載の方法。
【請求項12】
前記キーが前記非対称キーである場合、前記キーはパブリックキーおよびプライベートキーを含み、
前記少なくとも2つの暗号文は、前記少なくとも2つのハードウェアがそれぞれのプライベートキーを使用して前記第1検証データをそれぞれ暗号化した後に取得され、前記バインディング関係情報は前記少なくとも2つのハードウェアのそれぞれのパブリックキー間のバインディング関係に基づいて取得される、請求項11に記載の方法。
【請求項13】
ハードウェアのセキュリティ決定装置であって、
少なくとも2つのハードウェアを保持する物理キャリアに第1検証データを送信するように構成された送信モジュール
前記物理キャリアにより返された少なくとも2つの暗号文であって、前記少なくとも2つのハードウェアがそれぞれのキーを使用して前記第1検証データをそれぞれ暗号化した後に取得され、前記それぞれのキーは前記少なくとも2つのハードウェアのそれぞれのハードウェア識別子に基づき生成されている、前記少なくとも2つの暗号文、およびバインディング関係情報であって、前記少なくとも2つのハードウェアの前記それぞれのキーの間におけるバインディング関係を示す公証証明書である、前記バインディング関係情報を受信するように構成された受信モジュール
前記少なくとも2つの暗号文および前記バインディング関係情報を検証して、検証結果に基づいて前記少なくとも2つのハードウェアのセキュリティを決定するように構成された検証モジュールと
備え
前記検証モジュールが、前記少なくとも2つの暗号文および前記バインディング関係情報を検証して、検証結果に基づいて前記少なくとも2つのハードウェアのセキュリティを決定することは、
前記公証証明書内の前記それぞれのキーが、前記物理キャリアから取得した前記それぞれのキーと同一であると検証する、または、前記公証証明書のデジタル署名の検証に成功する、ことと、
前記少なくとも2つのハードウェアの各々の前記暗号文を、前記少なくとも2つのハードウェアの各々に対応する各々のキーを用いて復号することにより得られる第2検証データが、前記第1検証データと一致すると検証することと、を含む、装置。
【請求項14】
前記検証モジュールは、前記バインディング関係情報に含まれる前記バインディング関係が正しい、且つ前記少なくとも2つのハードウェアの各々の前記暗号文を、前記少なくとも2つのハードウェアの各々に対応する各々のキーを用いて復号することによって取得された前記第2検証データが前記第1検証データと一致するという前記検証結果である場合、前記少なくとも2つのハードウェアが安全であると決定するうに構成される、請求項13に記載の装置。
【請求項15】
記公証証明書は前記少なくとも2つのハードウェアにそれぞれ対応する前記キー間のバインディング関係および前記バインディング関係前記デジタル署名を含み
前記検証モジュールは、
前記公証証明書内の前記デジタル署名に基づいて、前記バインディング関係情報に含まれる前記バインディング関係が正しいかどうかを検証することと、少なくとも2つの暗号文を記公証証明書内の前記少なくとも2つのハードウェアにそれぞれ対応する前記キーを使用してすることによって取得された前記第2検証データが前記第1検証データと一致するかどうかを検証することと、を行うように構成される、
請求項13または14に記載の装置。
【請求項16】
前記ハードウェア識別子は、ハードウェアユニークキーHUK、物理複製困難関数PUF、および機密性が保護されたワンタイムプログラマブルOTP)における識別情報もしくは承認キーEKを含む、請求項13から15のいずれか一項に記載の装置。
【請求項17】
前記キーは、対称キーまたは非対称キーを含む、請求項13から16のいずれか一項に記載の装置。
【請求項18】
前記キーが前記非対称キーである場合、前記キーはパブリックキーおよびプライベートキーを含み、
前記少なくとも2つの暗号文は、前記少なくとも2つのハードウェアがそれぞれのプライベートキーを使用して前記第1検証データをそれぞれ暗号化した後に取得され、前記バインディング関係情報は前記少なくとも2つのハードウェアのそれぞれのパブリックキー間のバインディング関係に基づいて取得される、請求項17に記載の装置。
【請求項19】
ハードウェアのセキュリティ決定装置であって、
検証ユニットにより送信された第1検証データを受信するように構成された受信モジュールと、
少なくとも2つの暗号文であって、物理キャリア上に保持された少なくとも2つのハードウェアがそれぞれのキーを使用して前記第1検証データをそれぞれ暗号化した後に取得され、前記それぞれのキーは前記少なくとも2つのハードウェアのそれぞれのハードウェア識別子に基づき生成されている、前記少なくとも2つの暗号文、およびバインディング関係情報であって、前記少なくとも2つのハードウェアの前記それぞれのキーの間におけるバインディング関係を示す公証証明書である、前記バインディング関係情報を取得するように構成された第1取得モジュール
前記少なくとも2つの暗号文および前記バインディング関係情報を前記検証ユニットに送信して、前記検証ユニットに、前記少なくとも2つの暗号文および前記バインディング関係情報を検証して、検証結果に基づいて前記少なくとも2つのハードウェアのセキュリティを決定させるように構成された送信モジュール
を備え
前記検証ユニットが、前記少なくとも2つの暗号文および前記バインディング関係情報を検証して、検証結果に基づいて前記少なくとも2つのハードウェアのセキュリティを決定することは、
前記公証証明書内の前記それぞれのキーが、前記送信モジュールから送信された前記それぞれのキーと同一であると検証する、または、前記公証証明書のデジタル署名の検証に成功する、ことと、
前記少なくとも2つのハードウェアの各々の前記暗号文を、前記少なくとも2つのハードウェアの各々に対応する各々のキーを用いて復号することにより得られる第2検証データが、前記第1検証データと一致すると検証することと、を含む、装置。
【請求項20】
前記装置はさらに、
前記少なくとも2つのハードウェアの前記それぞれのキーを取得することと、前記少なくとも2つのハードウェアの前記それぞれのキー間のバインディング関係に基づいて前記バインディング関係情報を取得することとを行うように構成された第2取得モジュールと、
前記バインディング関係情報を格納するように構成されたストレージモジュールと
を含む、請求項19に記載の装置。
【請求項21】
前記第2取得モジュールは、記少なくとも2つのハードウェアの前記それぞれのキーを登録して、前記少なくとも2つのハードウェアにそれぞれ対応する前記キー間の前記バインディング関係および前記バインディング関係への前記デジタル署名を含む前記公証証明書を取得するように構成され、
前記ストレージモジュールは前記公証証明書を格納するように構成され、
前記第1取得モジュールは前記公証証明書を取得するように構成される、請求項20に記載の装置。
【請求項22】
前記ハードウェア識別子は、ハードウェアユニークキーHUK、物理複製困難関数PUF、および機密性が保護されたワンタイムプログラマブルOTPにおける識別情報もしくは承認キーEKを含む、請求項19から21のいずれか一項に記載の装置。
【請求項23】
前記キーは、対称キーまたは非対称キーを含む、請求項19から22のいずれか一項に記載の装置。
【請求項24】
前記キーが前記非対称キーである場合、前記キーはパブリックキーおよびプライベートキーを含み、
前記少なくとも2つの暗号文は、前記少なくとも2つのハードウェアがそれぞれのプライベートキーを使用して前記第1検証データをそれぞれ暗号化した後に取得され、前記バインディング関係情報は前記少なくとも2つのハードウェアのそれぞれのパブリックキー間のバインディング関係に基づいて取得される、請求項23に記載の装置。
【請求項25】
コンピュータ可読記憶媒体であって、少なくとも1つの命令を格納し、前記命令はプロセッサによりロードおよび実行され、請求項1からのいずれか一項に記載の法を実装するコンピュータ可読記憶媒体。
【請求項26】
コンピュータ可読記憶媒体であって、少なくとも1つの命令を格納し、前記命令はプロセッサによりロードおよび実行され、請求項7から12のいずれか一項に記載の方法を実装する、コンピュータ可読記憶媒体。
【請求項27】
コンピュータに、請求項1からのいずれか一項に記載の方法を実行させるめのコンピュータプログラム。
【請求項28】
コンピュータに、請求項7から12のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2019年7月24日に中国国家知識産権局に出願された「ハードウェア検出方法、装置、デバイス、および記憶媒体(HARDWARE DETECTION METHOD AND APPARATUS,DEVICE,AND STORAGE MEDIUM)」と題する中国特許出願第201910673176.6号に基づく優先権を主張し、当該特許出願はその全体が参照により本明細書に組み込まれる。
【0002】
本願は、セキュリティ技術分野、特に、ハードウェア検出方法ならびに装置、デバイス、および記憶媒体に関連する。
【背景技術】
【0003】
ハードウェアのセキュリティは、暗号アルゴリズムおよびセキュリティプロトコルなどのソフトウェアセキュリティ技術の基礎である。近年、ハードウェアをターゲットとする攻撃行動がより一般的になっている。したがって、ハードウェアレベルのデバイスセキュリティを保証するためにどのようにハードウェア検出を実行するかが、セキュリティ分野において重要な話題になっている。
【発明の概要】
【0004】
本願の実施形態は、関連技術における問題を解消すべく、ハードウェア検出方法ならびに装置、デバイス、および記憶媒体を提供する。技術的解決手段は、以下の通りである。
【0005】
第1態様によると、ハードウェア検出方法が提供される。方法は、物理キャリアに第1検証データを送信する段階であって、ここで物理キャリアは複数のハードウェアを保持する段階と;物理キャリアにより返された暗号文およびバインディング関係情報を受信する段階であって、ここで暗号文は、それぞれのキーを使用して複数のハードウェアのうちの少なくとも2つのそれぞれが第1検証データを暗号化した後に取得され、バインディング関係情報は少なくとも2つのハードウェアの間におけるバインディング関係を示すために使用される段階と;暗号文およびバインディング関係情報を検証して、検証結果に基づいて少なくとも2つのハードウェアのセキュリティを決定する段階とを含む。
【0006】
ハードウェアのセキュリティは、物理キャリア上に保持されたハードウェアと、ハードウェアによるそれぞれのキーを使用した暗号化によって取得された暗号文との間のバインディング関係に基づいて検証される。これは、ハードウェアの置換および偽造などの攻撃行動を防止し得る。
【0007】
第1態様を参照すると、第1態様の第1の可能な実装において、バインディング関係情報は、少なくとも2つのハードウェアに対応するキー間のバインディング関係を含み;暗号文およびバインディング関係情報を検証する段階は、少なくとも2つのハードウェアに対応するキーを取得して、少なくとも2つのハードウェアに対応するキーに基づいて、バインディング関係情報に含まれるバインディング関係が正しいかどうかを検証する段階と;少なくとも2つのハードウェアによる暗号化によって取得された暗号文をそれぞれ復号すべく少なくとも2つのハードウェアに対応するキーを使用して、復号によって取得された第2検証データが第1検証データと一致するかどうかを検証する段階とを含み;検証結果に基づいて少なくとも2つのハードウェアのセキュリティを決定する段階は、バインディング関係情報に含まれるバインディング関係が正しい、且つ復号によって取得された第2検証データが第1検証データと一致するという検証結果である場合、少なくとも2つのハードウェアが安全であると決定する段階を含む。
【0008】
第1態様または第1態様の第1の可能な実装を参照すると、第1態様の第2の可能な実装において、物理キャリアにより返された暗号文およびバインディング関係情報を受信する段階は、物理キャリアにより返された暗号文および公証証明書を受信する段階であって、ここで公証証明書は少なくとも2つのハードウェアに対応するキー間のバインディング関係を含む、且つバインディング関係のデジタル署名をさらに含む段階を含み;暗号文およびバインディング関係情報を検証する段階は、公証証明書内のデジタル署名に基づいて、バインディング関係情報に含まれるバインディング関係が正しいかどうかを検証する段階と;少なくとも2つのハードウェアによる暗号化によって取得された暗号文をそれぞれ復号すべく公証証明書内の少なくとも2つのハードウェアに対応するキーを使用して、復号によって取得された第2検証データが第1検証データと一致するかどうかを検証する段階とを含み;検証結果に基づいて少なくとも2つのハードウェアのセキュリティを決定する段階は、バインディング関係情報に含まれるバインディング関係が正しい、且つ復号によって取得された第2検証データが第1検証データと一致するという検証結果である場合、少なくとも2つのハードウェアが安全であると決定する段階を含む。
【0009】
ハードウェア間のバインディング関係は公証証明書を使用して検証され、標準的なTCG認証プロトコルと互換性があり得る。加えて、ハードウェア間のバインディング関係はプロトコルにおいて拡張し、したがって強い実行可能性を有する。
【0010】
第1態様もしくは第1態様の第1または第2の可能な実装を参照すると、第1態様の第3の可能な実装において、少なくとも2つのハードウェアに対応するキーは、それぞれのハードウェア識別子に基づいて少なくとも2つのハードウェアのそれぞれにより生成される。
【0011】
ハードウェア識別子はハードウェアの固有属性であり、固有且つ複製不可能であり、ハードウェアにより保護される。したがって、ハードウェアのそれぞれのハードウェア識別子に基づいてハードウェアのキーを生成することは、キーのセキュリティを強化するのみならず、ハードウェアのセキュリティもさらに強化する。
【0012】
第1態様の第3の可能な実装を参照すると、第1態様の第4の可能な実装において、ハードウェア識別子は、ハードウェアユニークキーHUK、物理複製困難関数PUF、および機密性が保護されたワンタイムプログラマブルOTPにおける識別情報もしくは承認キーEKを含む。
【0013】
第1態様のいずれか1つ、または第1態様の第1から第4の可能な実装を参照すると、第1態様の第5の可能な実装において、キーは対称キーまたは非対称キーを含む。
【0014】
第1態様の第5の可能な実装を参照すると、第1態様の第6の可能な実装において、キーが非対称キーである場合、キーはパブリックキーおよびプライベートキーを含み;暗号文は、少なくとも2つのハードウェアがそれぞれのプライベートキーを使用して第1検証データをそれぞれ暗号化した後に取得され、バインディング関係情報は少なくとも2つのハードウェアに対応するパブリックキー間のバインディング関係に基づいて取得される。ハードウェアのセキュリティは非対称キーを使用してさらに高まる。
【0015】
第2態様によると、ハードウェア検出方法が提供される。方法は、検証ユニットにより送信された第1検証データを受信する段階と;暗号文およびバインディング関係情報を取得する段階であって、ここで暗号文は、物理キャリア上に保持された複数のハードウェアのうちの少なくとも2つがそれぞれのキーを使用して第1検証データをそれぞれ暗号化した後に取得され、バインディング関係情報は少なくとも2つのハードウェア間のバインディング関係を示すために使用される段階と;暗号文およびバインディング関係情報を検証ユニットに送信する段階であって、ここで検証ユニットは、暗号文およびバインディング関係情報を検証して、検証結果に基づいて少なくとも2つのハードウェアのセキュリティを決定する段階とを含む。
【0016】
第2態様を参照すると、第2態様の第1の可能な実装において、バインディング関係情報を取得する段階の前に、方法はさらに、少なくとも2つのハードウェアのキーを取得する段階と、少なくとも2つのハードウェアのキー間のバインディング関係に基づいてバインディング関係情報を取得する段階と、バインディング関係情報を格納する段階とを含む。
【0017】
第2態様の第1の可能な実装を参照すると、第2態様の第2の可能な実装において、少なくとも2つのハードウェアのキー間のバインディング関係に基づいてバインディング関係情報を取得する段階、およびバインディング関係情報を格納する段階は、少なくとも2つのハードウェアのキーを登録して公証証明書を取得する段階と、公証証明書を格納する段階であって、ここで公証証明書は少なくとも2つのハードウェアに対応するキー間のバインディング関係を含み、バインディング関係のデジタル署名をさらに含む段階とを含み;バインディング関係情報を取得する段階は、公証証明書を取得する段階を含む。
【0018】
第2態様もしくは第2態様の第1または第2の可能な実装を参照すると、第2態様の第3の可能な実装において、少なくとも2つのハードウェアに対応するキーは、それぞれのハードウェア識別子に基づいて少なくとも2つのハードウェアのそれぞれにより生成される。
【0019】
第2態様の第3の可能な実装を参照すると、第2態様の第4の可能な実装において、ハードウェア識別子は、HUK、PUF、および機密性が保護されたOTPにおける識別情報またはEKを含む。
【0020】
第2態様のいずれか1つ、または第2態様の第1から第4の可能な実装を参照すると、第2態様の第5の可能な実装において、キーは対称キーまたは非対称キーを含む。
【0021】
第2態様の第5の可能な実装を参照すると、第2態様の第6の可能な実装において、キーが非対称キーである場合、キーはパブリックキーおよびプライベートキーを含み;暗号文は、少なくとも2つのハードウェアがそれぞれのプライベートキーを使用して第1検証データをそれぞれ暗号化した後に取得され、バインディング関係情報は少なくとも2つのハードウェアに対応するパブリックキー間のバインディング関係に基づいて取得される。
【0022】
第3態様によると、ハードウェア検出装置が提供される。装置は、物理キャリアに第1検証データを送信するように構成された送信モジュールであって、ここで物理キャリアは複数のハードウェアを保持する送信モジュールと;物理キャリアにより返された暗号文およびバインディング関係情報を受信するように構成された受信モジュールであって、ここで暗号文は、それぞれのキーを使用して複数のハードウェアのうちの少なくとも2つのそれぞれが第1検証データを暗号化した後に取得され、バインディング関係情報は少なくとも2つのハードウェアの間におけるバインディング関係を示すために使用される受信モジュールと;暗号文およびバインディング関係情報を検証して、検証結果に基づいて少なくとも2つのハードウェアのセキュリティを決定するように構成された検証モジュールとを含む。
【0023】
第3態様を参照すると、第3態様の第1の可能な実装において、バインディング関係情報は、少なくとも2つのハードウェアに対応するキー間のバインディング関係を含み;検証モジュールは、少なくとも2つのハードウェアに対応するキーを取得して、少なくとも2つのハードウェアに対応するキーに基づいて、バインディング関係情報に含まれるバインディング関係が正しいかどうかを検証することと;少なくとも2つのハードウェアによる暗号化によって取得された暗号文をそれぞれ復号すべく少なくとも2つのハードウェアに対応するキー使用して、復号によって取得された第2検証データが第1検証データと一致するかどうかを検証することと;バインディング関係情報に含まれるバインディング関係が正しい、且つ復号によって取得された第2検証データが第1検証データと一致するという検証結果である場合、少なくとも2つのハードウェアが安全であると決定することとを行うように構成される。
【0024】
第3態様または第3態様の第1の可能な実装を参照すると、第3態様の第2の可能な実装において、受信モジュールは、物理キャリアにより返された暗号文および公証証明書を受信することであって、ここで公証証明書は少なくとも2つのハードウェアに対応するキー間のバインディング関係を含む、且つバインディング関係のデジタル署名をさらに含むことを行うように構成され;検証モジュールは、公証証明書内のデジタル署名に基づいて、バインディング関係情報に含まれるバインディング関係が正しいかどうかを検証することと;少なくとも2つのハードウェアによる暗号化によって取得された暗号文をそれぞれ復号すべく公証証明書内の少なくとも2つのハードウェアに対応するキーを使用して、復号によって取得された第2検証データが第1検証データと一致するかどうかを検証することと;バインディング関係情報に含まれるバインディング関係が正しい、且つ復号によって取得された第2検証データが第1検証データと一致するという検証結果である場合、少なくとも2つのハードウェアが安全であると決定することとを行うように構成される。
【0025】
第3態様もしくは第3態様の第1または第2の可能な実装を参照すると、第3態様の第3の可能な実装において、少なくとも2つのハードウェアに対応するキーは、それぞれのハードウェア識別子に基づいて少なくとも2つのハードウェアのそれぞれにより生成される。
【0026】
第3態様の第3の可能な実装を参照すると、第3態様の第4の可能な実装において、ハードウェア識別子は、ハードウェアユニークキーHUK、物理複製困難関数PUF、および機密性が保護されたワンタイムプログラマブルOTPにおける識別情報もしくは承認キーEKを含む。
【0027】
第3態様のいずれか1つ、または第3態様の第1から第4の可能な実装を参照すると、第3態様の第5の可能な実装において、キーは対称キーまたは非対称キーを含む。
【0028】
第3態様の第5の可能な実装を参照すると、第3態様の第6の可能な実装において、キーが非対称キーである場合、キーはパブリックキーおよびプライベートキーを含み;暗号文は、少なくとも2つのハードウェアがそれぞれのプライベートキーを使用して第1検証データをそれぞれ暗号化した後に取得され、バインディング関係情報は少なくとも2つのハードウェアに対応するパブリックキー間のバインディング関係に基づいて取得される。
【0029】
第4態様によると、ハードウェア検出装置が提供される。装置は、検証ユニットにより送信された第1検証データを受信するように構成された受信モジュールと;暗号文およびバインディング関係情報を取得するように構成された第1取得モジュールであって、ここで暗号文は、物理キャリア上に保持された複数のハードウェアのうちの少なくとも2つがそれぞれのキーを使用して第1検証データをそれぞれ暗号化した後に取得され、バインディング関係情報は少なくとも2つのハードウェア間のバインディング関係を示すために使用される、第1取得モジュールと;暗号文およびバインディング関係情報を検証ユニットに送信するように構成された送信モジュールであって、ここで検証ユニットは、暗号文およびバインディング関係情報を検証して、検証結果に基づいて少なくとも2つのハードウェアのセキュリティを決定する送信モジュールとを含む。
【0030】
第4態様を参照すると、第4態様の第1の可能な実装において、装置はさらに、少なくとも2つのハードウェアのキーを取得することと、少なくとも2つのハードウェアのキー間のバインディング関係に基づいてバインディング関係情報を取得することとを行うように構成された第2取得モジュールと;バインディング関係情報を格納するように構成されたストレージモジュールとを含む。
【0031】
第4態様の第1の可能な実装を参照すると、第4態様の第2の可能な実装において、第2取得モジュールは、公証証明書を取得すべく少なくとも2つのハードウェアのキーを登録するように構成され、ここで公証証明書は少なくとも2つのハードウェアに対応するキー間のバインディング関係を含み、バインディング関係のデジタル署名をさらに含み;ストレージモジュールは公証証明書を格納するように構成され;第1取得モジュールは公証証明書を取得するように構成される。
【0032】
第4態様もしくは第4態様の第1または第2の可能な実装を参照すると、第4態様の第3の可能な実装において、少なくとも2つのハードウェアに対応するキーは、それぞれのハードウェア識別子に基づいて少なくとも2つのハードウェアのそれぞれにより生成される。
【0033】
第4態様の第3の可能な実装を参照すると、第4態様の第4の可能な実装において、ハードウェア識別子は、ハードウェアユニークキーHUK、物理複製困難関数PUF、および機密性が保護されたワンタイムプログラマブルOTPにおける識別情報もしくは承認キーEKを含む。
【0034】
第4態様のいずれか1つ、または第4態様の第1から第4の可能な実装を参照すると、第4態様の第5の可能な実装において、キーは対称キーまたは非対称キーを含む。
【0035】
第4態様の第5の可能な実装を参照すると、第4態様の第6の可能な実装において、キーが非対称キーである場合、キーはパブリックキーおよびプライベートキーを含み;暗号文は、少なくとも2つのハードウェアがそれぞれのプライベートキーを使用して第1検証データをそれぞれ暗号化した後に取得され、バインディング関係情報は少なくとも2つのハードウェアに対応するパブリックキー間のバインディング関係に基づいて取得される。
【0036】
第5態様によると、ハードウェア検出デバイスが提供される。デバイスは、メモリおよびプロセッサを含む。メモリは少なくとも1つの命令を格納し、少なくとも1つの命令はプロセッサによりロードおよび実行され、本願の第1態様または第2態様の任意の可能な実装における方法を実装する。
【0037】
第6態様によると、通信装置が提供される。装置は、トランシーバ、メモリ、およびプロセッサを含む。トランシーバ、メモリ、およびプロセッサは、内部接続チャネルによって互いに通信する。メモリは、命令を格納するように構成されている。プロセッサは、信号を受信するトランシーバを制御すべく、且つ信号を送信するトランシーバを制御すべく、メモリに格納された命令を実行するように構成される。加えて、プロセッサがメモリに格納された命令を実行する場合、プロセッサは、第1態様または第2態様の任意の可能な実装における方法を実行することが可能となる。
【0038】
任意選択的に、1または複数のプロセッサが存在し、且つ、1または複数のメモリが存在する。
【0039】
任意選択的に、メモリはプロセッサと統合されてもよく、または、メモリおよびプロセッサは別個に配置される。
【0040】
具体的な実装プロセスにおいて、メモリは、例えばリードオンリメモリ(read-only memory,ROM)のような非一時的(non-transitory)メモリであり得る。メモリおよびプロセッサは同じチップ上に統合されてもよく、または、異なるチップ上に別個に配置されてもよい。メモリの種類、ならびに、メモリおよびプロセッサを配置する方式は、本願のこの実施形態に限定されない。
【0041】
第7態様によると、コンピュータプログラム(製品)が提供される。コンピュータプログラム(製品)は、コンピュータプログラムコードを含み、コンピュータプログラムコードがコンピュータにより実行される場合、コンピュータは、第1態様または第2態様の任意の可能な実装における方法を実行することが可能となる。
【0042】
第8態様によると、可読記憶媒体が提供される。可読記憶媒体は、プログラムまたは命令を格納する。プログラムまたは命令がコンピュータ上で実行される場合、第1態様または第2態様の任意の可能な実装における方法が実行される。
【0043】
第9態様によると、チップが提供され、チップはプロセッサを含む。プロセッサは、メモリに格納された命令をメモリから呼び出してそれを実行し、その結果、チップが設置されている通信デバイスが第1態様または第2態様の任意の可能な実装における方法を実行するように構成される。
【0044】
第10態様によると、別のチップが提供され、当該チップは、入力インタフェース、出力インタフェース、プロセッサ、およびメモリを含む。入力インタフェース、出力インタフェース、プロセッサ、およびメモリは、内部接続チャネルによって互いに接続される。プロセッサは、メモリ内のコードを実行するように構成される。コードが実行される場合、プロセッサは、第1態様または第2態様の任意の可能な実装における方法を実行するように構成される。
【図面の簡単な説明】
【0045】
図1】本願の実施形態に係るハードウェア検出のための実装環境の概略図である。
【0046】
図2】本願の実施形態に係るハードウェア検出方法のフローチャートである。
【0047】
図3】本願の実施形態に係るバインディング関係を確立する処理の概略図である。
【0048】
図4】本願の実施形態に係るハードウェア検出の処理の概略図である。
【0049】
図5】本願の実施形態に係るハードウェア検出のための実装環境の概略図である。
【0050】
図6】本願の実施形態に係るハードウェア検出方法のフローチャートである。
【0051】
図7】本願の実施形態に係る証明書の構造の概略図である。
【0052】
図8】本願の実施形態に係るハードウェア検出のための実装環境の概略図である。
【0053】
図9】本願の実施形態に係るハードウェア検出方法のフローチャートである。
【0054】
図10】本願の実施形態に係る関連技術におけるハードウェア検出の処理の概略図である。
【0055】
図11】本願の実施形態に係るハードウェア検出装置の構造の概略図である。
【0056】
図12】本願の実施形態に係るハードウェア検出装置の構造の概略図である。
【0057】
図13】本願の実施形態に係るハードウェア検出装置の構造の概略図である。
【0058】
図14】本願の実施形態に係るハードウェア検出デバイスの構造の概略図である。
【0059】
図15】本願の実施形態に係るハードウェア検出デバイスの構造の概略図である。
【発明を実施するための形態】
【0060】
本願の実装において使用される用語は、本願の実施形態を説明するために使用されるに過ぎず、本願を限定することを意図するものではない。
【0061】
ハードウェアのセキュリティは、暗号アルゴリズムおよびセキュリティプロトコルなどのソフトウェアセキュリティ技術の基礎である。近年、ハードウェアをターゲットとする攻撃行動がより一般的になっている。例えば、攻撃行動としては、ハードウェアの偽造および置換が挙げられる。
【0062】
これを考慮して、本願の実施形態はハードウェア検出方法を提供する。当該方法において、ハードウェアの偽造および置換などの攻撃行動に対して、ハードウェアバインディングセキュリティソリューションが提案されており、物理キャリア上に保持されたハードウェアのセキュリティは、暗号原理に基づいて保証されている。物理キャリアは、限定されないが、基板を含む。基板は、プリント回路基板(printed circuit board,PCB)、コンポーネント、およびコネクタなどの部品を含む。基板は特定の機能を実行できる回路ユニットであり、基板はバックプレーンにおけるコネクタに挿入され得る。複数のハードウェアが基板上に保持される。ハードウェアは、限定されないが、プロセッサ、マイクロコントローラユニット(Microcontroller Unit,MCU)、トラステッドプラットフォームモジュール(trusted platform module,TPM)、フィールドプログラマブルゲートアレイ(field programmable gate array,FPGA)、コンプレックスプログラマブルロジックデバイス(complex programmable logic device,CPLD)等を含む。基板およびバックプレーンは、ネットワークデバイスのコンポーネントとして使用され得る。ネットワークデバイスは、例えばルータまたは上位レイヤスイッチのようなルーティングデバイスである。上位レイヤスイッチは、レイヤ3スイッチからレイヤ7スイッチを含み、例えば、レイヤ3スイッチ、レイヤ4スイッチ、レイヤ5スイッチ、レイヤ6スイッチ、またはレイヤ7スイッチである。スイッチングデバイスは、イーサネット(登録商標)スイッチまたはレイヤ3スイッチからレイヤ7スイッチを含む。代替的に、物理キャリアは、例えば、ハンドヘルドデバイスのメインボード、コンピュータのメインボード、サーバのメインボード、または、別の電子デバイスに含まれるPCBのような別の機能を有するPCBであり得る。
【0063】
物理キャリアが基板を含み当該基板が2つのハードウェアを保持する例は、本願のこの実施形態に提供される方法が適用された実装環境を説明するために使用される。図1に示されるように、実装環境は、検証ユニット、基板、および認証機関(certificate authority,CA)を含む。検証ユニットは基板と同じ側にある場合があり、すなわち、基板に対して検証ユニットはローカルデバイスであり、検証ユニットは、基板上のハードウェアに対する検出をローカルに実装する。代替的に、検証ユニットは基板と同じ側でない場合があるが、基板と遠隔的に接続されており、基板上のハードウェアに対する検出を遠隔的に実装する。検証ユニットがローカルに配備されているかどうかは、本願のこの実施形態に限定されない。図1に示されるように、基板上に保持された2つのハードウェアは、チップ1およびチップ2である。チップ1およびチップ2は、各々がコアサービス機能を処理するチップであり得る。チップが置き換えられたまたは偽造された場合、それはサービスセキュリティに直接的な脅威となる。したがって、本願のこの実施形態において、セキュリティ検出は、チップによりチップアイデンティティキーを生成して、チップアイデンティティキーに基づいてチップ間にバインディング関係を確立し、暗号に基づいてチップの完全性を検証するなどの方式で基板上のチップに対して実行される。アイデンティティキーは、異なるチップの識別情報を表すために使用されるキーであり、ルートキーから派生する場合もある。
【0064】
図1に示されるように、検証ユニットは第1検証データを基板に送信し、基板上のチップ1およびチップ2はそれぞれ、それぞれのハードウェア識別子に基づいてキーを生成する。例えば、チップ1のハードウェア識別子はchip ID1であり、チップ2のハードウェア識別子はchip ID2である。チップ1により生成されたキーはID1 key(キー)であり、チップ2により生成されたキーはID2 keyである。チップ1は、チップ1により生成されたキーに基づいて第1検証データを暗号化して、例えば暗号文1のような暗号文を取得する。チップ2は、チップ2により生成されたキーに基づいて第1検証データを暗号化して、例えば暗号文2のような暗号文を取得する。加えて、チップ1とチップ2との間のバインディング関係が、チップ1およびチップ2により生成されたキーに基づいて確立され、バインディング関係情報が取得される。基板は、暗号文1、暗号文2、およびバインディング関係情報を検証ユニットに送信する。例えば、基板上のチップ1またはチップ2は、暗号文1、暗号文2、およびバインディング関係情報を検証ユニットに送信し得;または、暗号文を取得すべくチップ1およびチップ2が第1検証データを暗号化した後、チップ1およびチップ2はそれぞれ、それぞれの取得された暗号文1および暗号文2を基板上のチップ1およびチップ2以外のコンポーネントに送信し得、コンポーネントは、暗号文1、暗号文2、およびバインディング関係情報を検証ユニットに送信し;または、チップ1は暗号文1を検証ユニットに送信し、チップ2は暗号文2を検証ユニットに送信し、チップ1および/またはチップ2はバインディング関係を検証ユニットに送信する。本願のこの実施形態において、基板が暗号文1、暗号文2、およびバインディング関係情報を検証ユニットに送信する方式は限定されない。検証ユニットが暗号文1、暗号文2、およびバインディング関係情報を受信した後、検証ユニットは、バインディング関係の正確性および暗号化オペレーション結果の正確性を検証して、これにより、チップ1およびチップ2のセキュリティを決定する。
【0065】
チップ1およびチップ2がキーを生成する処理において、キーは、検証ユニットにより送信された第1検証データが受信される前または受信された後に生成され得る。これは、第1検証データが暗号化される前にキーが生成できることが保証され得る限り、本願のこの実施形態に限定されない。加えて、チップ1およびチップ2により第1データを暗号化し、チップ1およびチップ2により生成されたキーに基づいてチップ1とチップ2との間のバインディング関係を確立し、バインディング関係情報を取得するいくつかのプロセスの実行順序も、本願のこの実施形態に限定されない。
【0066】
例示的な実装において、バインディング関係は証明書の形態で実装され得る。図1に示される実装環境において、基板がCAにおいてキー登録を実行することが例として使用される。CAは、認証機関である。基板はキー登録をCAに申請し、CAはバインディング関係を決定して公証証明書を生成する。公証証明書は、チップ1およびチップ2のキー間のバインディング関係、例えば、ID1 keyとID2 keyとの間のバインディング関係を含む。加えて、公証証明書はさらに、CAがバインディング関係に署名した後取得されるデジタル署名を含む。公証証明書におけるデジタル署名は、CAがCAのプライベートキーを使用してバインディング関係に署名することにより取得される。CAは公証証明書を基板に返し、基板は公証証明書を格納する。例えば、公証証明書はチップ1またはチップ2に格納されてもよく、または、チップ1およびチップ2以外の基板上の別の記憶領域に格納されてもよい。検証ユニットにより送信された第1検証データを受信した後、基板は格納された公証証明書を取得して、公証証明書および暗号文を検証ユニットに送信する。
【0067】
以下では、図1に示される実装環境に基づいて、本願のこの実施形態に提供されるハードウェア検出方法を説明する。図2に示されるように、この方法は、以下のいくつかのステップを含む。
【0068】
ステップ201:検証ユニットは第1検証データを物理キャリアに送信し、ここで、物理キャリアは複数のハードウェアを保持する。
【0069】
検証ユニットにより物理キャリアに送信された第1検証データは、後続の検証に使用される。第1検証データの内容は、本願のこの実施形態に限定されない。例えば、検証ユニットは、課題‐応答メカニズムに基づいて物理キャリアに対する課題を開始し得、例えば、乱数(Nonce)を物理キャリアに送信し、ここで乱数は第1検証データである。さらに、乱数に加えて、通信プロトコルに従って決定された他のデータも送信され得る。この場合、乱数と、通信プロトコルに従って決定された他のデータと、のうち1または複数は、第1検証データとして使用され得る。例えば、通信プロトコルにより決定された他のデータは、トラステッドコンピューティンググループ(Trusted Computing Group,TCG)の引用(Quote)プロトコルに従って決定されたデータ、簡易ネットワーク管理プロトコル(simple network management protocol,SNMP)に従って決定されたデータ、またはネットワークコンフィギュレーションプロトコル(network configuration protocol,NETCONF)に従って決定されたデータ等を含む。
【0070】
物理キャリアは複数のハードウェアを保持するので、第1検証データは物理キャリア上の1つのハードウェアに直接送信され得、例えば、検出される必要があるハードウェアに送信される。代替的に、第1検証データは、物理キャリア上のデータインタフェースによって受信され得、次いで、物理キャリアのハードウェア(例えば、検出される必要があるハードウェア)に伝送される。
【0071】
ステップ202:物理キャリアは、検証ユニットにより送信された第1検証データを受信する。
【0072】
物理キャリアは、検証ユニットにより送信された第1検証データを受信する。第1検証データは、物理キャリア上に保持された複数のハードウェアのうち1つによって受信されてもよく、または、物理キャリア上のデータインタフェースによって受信されてもよい。第1検証データが物理キャリアに到達した後、ハードウェア検出が実行される必要がある各ハードウェアが後続の検出手順を実行するように第1検証データを暗号化することを可能にするために、検出される必要がある各ハードウェアに第1検証データが伝送される必要がある。
【0073】
ステップ203:物理キャリアは、暗号文およびバインディング関係情報を取得する。
【0074】
暗号文は、検出されたハードウェアのキーを使用して、検出されたハードウェアにより第1検証データを暗号化することによって取得され得る。検出されたハードウェアは、物理キャリア上に保持された複数のハードウェアのうちの少なくとも2つであり得る。言い換えれば、暗号文は、物理キャリア上に保持された複数のハードウェアのうちの少なくとも2つがそれぞれのキーを使用して第1検証データをそれぞれ暗号化した後に取得される。物理キャリア上に保持された全てのハードウェアが検出される必要がある場合、物理キャリア上に保持された各ハードウェアは、それぞれのキーを使用して第1検証データを暗号化し、暗号文を取得し得る。
【0075】
バインディング関係情報は、少なくとも2つのハードウェア間のバインディング関係を示すために使用される。物理キャリアによりバインディング関係情報を取得する方式は、少なくとも2つのハードウェア間のバインディング関係を確立して、バインディング関係情報を取得することであり得る。例えば、物理キャリアは、少なくとも2つのハードウェアのキーを結合して、キー間のバインディング関係をハードウェア間のバインディング関係として使用する。物理キャリア上に保持された全てのハードウェアが検出される必要がある場合、全てのハードウェア間のバインディング関係が確立され得る。言い換えれば、暗号文またはバインディング関係情報が取得されているかどうかに関係なく、関連物理キャリア上に保持された複数のハードウェアのうちの少なくとも2つは、物理キャリア上に保持された全てのハードウェアであってよく、または、物理キャリア上に保持されたいくつかのハードウェアであってよい。
【0076】
2つより多くのハードウェアが検出される必要がある場合、検出される必要がある全てのハードウェアは、1つのバインディング関係を使用して結合され得る。例えば、1つのバインディング関係は、検出される必要がある全てのハードウェアのキーを含む。代替的に、2つより多くのハードウェアが検出される必要がある場合、複数のバインディング関係が結合に使用され得る。例えば、1つのバインディング関係が2つのハードウェア毎にその間に確立されるか、または、1つのバインディング関係が3つのハードウェア毎に確立される。本願のこの実施形態において、バインディング関係が確立されるハードウェアの数は限定されず、確立されたバインディング関係の数も限定されない。これは、検出される必要がある各ハードウェアに対して検証を実装するためにバインディング関係が使用できることが保証されることを前提とする。複数のバインディング関係の場合、各バインディング関係は以下の検証方式で検証され得る。例えば、検出される必要があるハードウェア1に対して、検証ユニットは、ハードウェア1の暗号文と、ハードウェア1とバインディング関係を有する1または複数のハードウェアにより生成された暗号文と、バインディング関係とを取得して、ハードウェア1が正しい、且つ信頼されているかどうかを検出し得る。ハードウェア1とバインディング関係を有する複数のハードウェアによって暗号文を生成する方式は、実施形態において説明される方式と同様であり、詳細については再度説明しない。
【0077】
第1検証データを暗号化するためにハードウェアによって使用されるキーは、本願のこの実施形態に限定されない。例えば、ルートキーは、ハードウェアの生産および製造工程においてハードウェアに注入され、アイデンティティキーはルートキーに基づいて派生され得る。この場合、第1検証データは、アイデンティティキーを使用して暗号化され得る。
【0078】
ルートキーに基づいてアイデンティティキーを生成する前述の方式の代替例として、例示的な実施形態においては、ハードウェア識別子(ID)がハードウェアの信頼性およびサプライチェーンのトレーサビリティを保証するために使用できるので、ハードウェアIDはハードウェアの固有属性であり、固有且つ複製不可能であり、ハードウェアにより保護される。しかしながら、ハードウェアIDは現在、サプライチェーン保護における使用に限定されており、セキュリティの技術的解決手段において広範囲に使用されていない。したがって、本願のこの実施形態に提供される方法において、ハードウェアに対応するキーはそれぞれ、少なくとも2つのハードウェアのそれぞれのハードウェア識別子に基づいて、少なくとも2つのハードウェアにより生成される。ハードウェアIDのストレージはハードウェアにより保護されており、生産中に注入されたルートキーに基づいてアイデンティティキーを派生する方式において、アイデンティティキーはルートキーに基づいており、ルートキーのセキュリティは、ハードウェア生産環境のセキュリティとキー注入方式のセキュリティに大きく依存する。したがって、一般的なキーの生成方式と比較して、ハードウェアIDを使用してキーを生成する方式はより高いセキュリティを有する。
【0079】
例えば、ハードウェアIDは、限定されないが、ハードウェアユニークキー(hardware unique key,HUK)、物理複製困難関数(physical unclonable function,PUF)、および機密性が保護されたワンタイムプログラマブル(one-time programmable,OTP)における識別情報もしくは承認キー(endorsement key,EK)を含む。ハードウェア識別子として、HUK、PUF、およびOTPにおける識別情報もしくはEKは各々が、一意、ランダム、改ざん防止、および安全なアクセスなどの特徴を有する。したがって、ハードウェア識別子に基づいてキーを生成することで、キーのセキュリティを保証できる。キーを生成するために使用されるハードウェア識別子の種類は、ハードウェアに基づいて決定され得る。どの種類のハードウェア識別子が使用されるかに関係なく、生成されたキーは、対称キーまたは非対称キーであり得る。生成されたキーが対称キーである場合、対称キーは、第1検証データが暗号化された場合と、バインディング関係が確立された場合との両方において使用される。
【0080】
例示的な実施形態において、キーが非対称キーである場合、キーは、パブリックキーおよびプライベートキーを含む。暗号文は、少なくとも2つのハードウェアがそれぞれ、それぞれのプライベートキーを使用して第1検証データを暗号化した後に取得される。バインディング関係情報は、少なくとも2つのハードウェアに対応するパブリックキー間のバインディング関係に基づいて取得される。
【0081】
加えて、第1検証データが受信され、ハードウェア間にバインディング関係が確立された後、バインディング関係情報が取得され得る。代替的に、第1検証データが受信される前に、バインディング関係がまず確立され得、バインディング関係情報が格納される。バインディング関係情報が取得される前に、方法はさらに、少なくとも2つのハードウェアのキーを取得する段階と、少なくとも2つのハードウェアのキー間のバインディング関係に基づいてバインディング関係情報を取得する段階と、バインディング関係情報を格納する段階とを含む。第1検証データが受信された後、格納済のバインディング関係情報が取得される。
【0082】
例えば、物理キャリアが少なくとも2つのハードウェアのキー間のバインディング関係に基づいてバインディング関係情報を取得する段階と、バインディング関係情報を格納する段階とは、物理キャリアが少なくとも2つのハードウェアのキーをCAに登録することと、確立される必要があるバインディング関係を決定した後、CAがバインディング関係を確立して、バインディング関係に署名することで、公証証明書を取得することとを含む。物理キャリアが少なくとも2つのハードウェアのキーをCAに一元的に登録する方式の代替例として、例示的な実施形態において、物理キャリア上のハードウェアは、登録のためにCAにそれぞれのキーを送信し得る。例えば、検出された各ハードウェアは、検出されたハードウェアおキーと、検出されたハードウェアが配置されている物理キャリアの識別子とをCAに送信する。CAは、ハードウェアにより送信された物理キャリア識別子に基づいて同じ物理キャリア上のハードウェアのキーを結合し、バインディング関係を取得し、バインディング関係に署名することで、公証証明書を取得する。公証証明書におけるデジタル署名は、物理キャリアが登録を一様に実行するかまたは物理キャリア上の各ハードウェアが登録をそれぞれ実行するかに関係なく、バインディング関係に署名するためにCAのプライベートキーを使用してCAにより取得される。公証証明書を取得した後、CAは公証証明書を物理キャリアに送信し、物理キャリアは公証証明書を格納する。公証証明書は、少なくとも2つのハードウェアに対応するキー間のバインディング関係を含み、さらに、バインディング関係に署名された後に取得されたデジタル署名を含む。バインディング関係が証明書の形態で実装される場合、物理キャリアがバインディング関係情報を取得するということは、公証証明書を取得することを含む。ハードウェア間のバインディング関係は、キーを使用して確立され、したがって、バインディング関係は暗号方法により保護される。加えて、バインディング関係は、証明書の形態で表現され得る。したがって、使用が容易である。
【0083】
認証取得方式の場合、図1に示される実装環境に説明されるように、物理キャリア上のハードウェアまたは物理キャリアは、キーをCAに登録し得、具体的には、チップ1のキー(ID1 key)およびチップ2のキー(ID2 key)を登録し得る。チップ1のキーとチップ2のキーとの間のバインディング関係を決定した後、CAは、チップ1のキー(ID1 key)とチップ2のキー(ID2 key)との間のバインディング関係を確立し、次いで、CAのプライベートキーを使用して確立済のバインディング関係に署名することで、公証証明書を取得する。言い換えれば、公証証明書は、バインディング関係が確立されたハードウェアのキーを含み、公証証明書はさらに、バインディング関係に署名することによって取得されるデジタル署名を含む。例えば、ハードウェアにより生成されたキーが対称キーである場合、公証証明書に含まれるハードウェア間のバインディング関係は、ハードウェアの対称キー間のバインディング関係である。ハードウェアにより生成されたキーが非対称キーである場合、公証証明書に含まれるハードウェア間のバインディング関係は、ハードウェアの非対称キーにおけるパブリックキー間のバインディング関係であり得、ハードウェアのプライベートキーは、ハードウェアの安全な環境に格納される。安全な環境は、限定されないが、信頼できる実行環境(trusted execution environment,TEE)、すなわち、コードの安全な実行環境を含むか、または、安全な生産環境であってもよい。
【0084】
ステップ204:物理キャリアは、暗号文およびバインディング関係情報を検証ユニットに送信する。
【0085】
暗号文およびバインディング関係情報を取得した後、物理キャリアは、暗号文およびバインディング関係情報を検証ユニットに送信する。物理キャリアが暗号文およびバインディング関係情報を検証ユニットに送信する場合、物理キャリア上の検出されたハードウェアの任意のハードウェアは、暗号文およびバインディング関係情報を送信し得る。このように、暗号文を取得した後、物理キャリア上の検出された各ハードウェアは暗号文を任意のハードウェアに送信し、任意のハードウェアは、暗号文およびバインディング関係情報を併せて検証ユニットに送信する。代替的に、暗号文およびバインディング関係情報は、物理キャリア上の検出されたハードウェア以外の別のコンポーネントにより送信され得る。このように、暗号文を取得した後、物理キャリア上の検出された各ハードウェアは暗号文を別のコンポーネントに送信し、別のコンポーネントは、暗号文およびバインディング関係情報を併せて検証ユニットに送信する。例えば、どのエンティティが暗号文およびバインディング関係情報を検証ユニットに送信するかに関係なく、検出されたハードウェアはそれぞれ第1検証データを暗号化して暗号文を取得する、且つ暗号文の数は検出されたハードウェアの数と一致するので、各暗号文は、順次接続され、送信のためにデータ形式に追加され得る。例えば、暗号文のフォーマットは、以下の表1に示される。
[表1]
【表1】
【0086】
当然ながら、暗号文およびバインディング関係情報を送信することに加えて、物理キャリアは、他のデータを検証ユニットにさらに送信し得、または、検証ユニットにより送信された第1検証データを併せて返し得る。この場合、第1検証データが乱数Nonceである例が使用され、暗号文のフォーマットは以下の表2に示される。データは、他のデータであり得る。他のデータの内容は、本願のこの実施形態に限定されない。
[表2]
【表2】
【0087】
ステップ205:検証ユニットは、物理キャリアにより返された暗号文およびバインディング関係情報を受信する。
【0088】
検証ユニットは、物理キャリアにより返された暗号文およびバインディング関係情報を受信する。バインディング関係情報が公証証明書の形態で送信される場合、検証ユニットが物理キャリアにより返された暗号文およびバインディング関係情報を受信することは、物理キャリアにより返された暗号文および公証証明書を受信することを含み、ここで、公証証明書は、少なくとも2つのハードウェアに対応するキー間のバインディング関係を含み、さらに、バインディング関係のデジタル署名を含む。
【0089】
ステップ206:検証ユニットは、暗号文およびバインディング関係情報を検証し、検証結果に基づいて少なくとも2つのハードウェアのセキュリティを決定する。
【0090】
例えば、バインディング関係情報は、少なくとも2つのハードウェアに対応するキー間のバインディング関係を含む。検証ユニットが暗号文およびバインディング関係情報を検証することは、少なくとも2つのハードウェアに対応するキーを取得して、少なくとも2つのハードウェアに対応するキーに基づいて、バインディング関係情報に含まれるバインディング関係が正しいかどうかを検証する段階と;少なくとも2つのハードウェアに対応するキーを使用して、少なくとも2つのハードウェアにより暗号化された暗号文をそれぞれ復号して、復号によって取得された第2検証データが第1検証データと一致するかどうかを検証することとを含む。
【0091】
検証ユニットが少なくとも2つのハードウェア対応するキーを取得する方式は、バインディング関係情報を確立した後、物理キャリアは、各ハードウェアのキーを検証ユニットに送信し、検証ユニットはキーを格納することであり得る。各ハードウェアのキーは、物理キャリア上のコンポーネントにより検証ユニットに一元的に送信されてもよく、または、各ハードウェアによりそれぞれ送信されてもよい。各ハードウェアのキーを検証ユニットに送信する方式は、本願に限定されない。物理キャリアが各ハードウェアのキーを検証ユニットに一元的に送信する例が使用される。検証ユニットは複数の物理キャリア上のハードウェアを検出する必要があり得るので、検証ユニットは、複数の物理キャリアにより送信されるキーを受信し得る。キーを格納する場合、検証ユニットは物理キャリア識別子に対応して各キーを格納し、これにより、物理キャリア識別子を使用して異なる物理キャリア上のハードウェアのキーを区別し得る。その後物理キャリア上のハードウェアが検出される場合、検証ユニットは、格納されたキーから、物理キャリアにより保持される少なくとも2つのハードウェアのキーを取得する。当然ながら、別の対応する格納方式が代替的に使用されてもよい。これは、本願のこの実施形態に限定されない。
【0092】
少なくとも2つのハードウェアの前に格納したキーを取得した後、検証ユニットは、少なくとも2つのハードウェアに対応するキーに基づいて、バインディング関係情報に含まれるバインディング関係が正しいかどうかを検証する。例えば、バインディング関係における2つのキーは、検証ユニットにより前に格納されたそれらと同じであるかどうかを検証する。バインディング関係におけるキーが前に格納されたそれらと同じである場合、バインディング関係は正しい。バインディング関係におけるキーが前に格納されたそれらと異なる場合、バインディング関係は正しくない。この方式の代替例として、バインディング関係が証明書の形態で実装される場合、公証証明書は、バインディング関係のみならず、バインディング関係に署名された後に取得されるデジタル署名も含む;この場合、検証ユニットは、認証機関によりフィードバックされたキーを使用し、認証機関によりフィードバックされたキーに基づいて公証証明書内のデジタル署名を検証する;検証に成功した場合、バインディング関係は正しく、または、検証に失敗した場合、バインディング関係は正しくない。公証証明書内のデジタル署名は、認証機関のプライベートキーを使用してバインディング関係に署名することにより認証機関により取得される。次いで、検証ユニットは、認証機関のパブリックキーに基づいて、公証証明書内のデジタル署名を検証し得る。
【0093】
バインディング関係が正しい場合、少なくとも2つのハードウェアに対応するキーは少なくとも2つのハードウェアによる暗号化によって取得された暗号文をそれぞれ復号するために使用され、復号によって取得された第2検証データが第1検証データと一致するかどうかが検証される。少なくとも2つのハードウェアのセキュリティが検証結果に基づいて決定されることは、バインディング関係情報に含まれるバインディング関係が正しい、且つ復号によって取得された第2検証データが第1検証データと一致するという検証結果である場合、少なくとも2つのハードウェアが安全であると決定する段階を含む。例えば、バインディング関係情報に含まれるバインディング関係が正しくないまたは復号によって取得された第2検証データが第1検証データと一致しないという検証結果である場合、物理キャリア上のハードウェアは安全でないと決定され得、セキュリティリスクが存在し得、対応する例外処理が実行され得る。
【0094】
前述の説明において、まず、少なくとも2つのハードウェアに対応するキーが取得され、バインディング関係情報に含まれるバインディング関係が正しいかどうかが少なくとも2つのハードウェアに対応するキーに基づいて検証され、次いで、少なくとも2つのハードウェアに対応するキーは少なくとも2つのハードウェアによる暗号化によって取得された暗号文をそれぞれ復号するために使用され、復号によって取得された第2検証データが第1検証データと一致するかどうかが検証されることに留意されたい。例示的な実施形態において、代替的に、少なくとも2つのハードウェアに対応するキーが取得され得、少なくとも2つのハードウェアに対応するキーは少なくとも2つのハードウェアによる暗号化によって取得された暗号文をそれぞれ復号するために使用され、復号によって取得された第2検証データが第1検証データと一致するかどうかが検証される。復号によって取得された第2検証データが第1検証データと一致することが検証された場合、バインディング関係情報に含まれるバインディング関係が正しいかどうかが、少なくとも2つのハードウェアに対応するキーに基づいて検証される。言い換えれば、検証ユニットによる暗号文の検証およびバインディング関係情報の検証のシーケンスは、本願のこの実施形態に限定されない。
【0095】
加えて、例えば、第2検証データが第1検証データと一致するかどうかを検証する場合、検証ユニットは、第1検証データにおける各フィールドを第2検証データにおける各フィールドと一つずつ比較し得、第2検証データにおける全てのフィールドが第1検証データにおける全てのフィールドと完全に一致する場合にのみ、第2検証データが第1検証データと一致すると決定し得る。このように、第1検証データにおける全てのフィールドが第2検証データにおける全てのフィールドと比較されるので、検証結果は正確であり信頼性が高い。例えば、全てのフィールドの検証の代替例として、比較は、第2検証データにおけるターゲットフィールドと第1検証データにおけるターゲットフィールドとの間で実行され得、ここで、ターゲットフィールドは、ランダムに選択されてもよく、または、キーフィールドがターゲットフィールドとして使用されてもよい。第2検証データにおけるターゲットフィールドが第1検証データにおけるターゲットフィールドと一致する場合、第2検証データが第1検証データと一致すると決定され得る。ターゲットフィールドを比較するこの方式において、第2検証データにおける全てのフィールドを第1検証データにおける全てのフィールドと一つずつ比較する必要はなく、したがって、検証速度が改善できる。第2検証データが第1検証データと一致するかどうかを検証するために使用される方式は、本願のこの実施形態に限定されない。
【0096】
第2検証データが第1検証データと一致するかどうかを検証する方式としてどのような方式が使用されるかに関係なく、第1検証データは物理キャリアにより送信され得ることに留意されたい。言い換えれば、検証ユニットが第1検証データを物理キャリアに送信した後、暗号文およびバインディング関係情報を検証ユニットに返す場合、物理キャリアは、第1検証データも検証ユニットに返す。暗号文を復号した後、検証ユニットは、復号によって取得された第2検証データを第1検証データと比較する。例示的な実施形態において、代替的に、物理キャリアは第1検証データを返さなくてもよい。この場合、検証ユニットは、前に物理キャリアに送信された第1検証データを記録し、次いで、物理キャリアにより送信された暗号文およびバインディング関係情報を受信して暗号文を復号した後、復号によって取得された第2検証データを記録済の第1検証データと比較し得る。検証ユニットが物理キャリアに送信された第1検証データを記録する方式は、本願のこの実施形態に限定されない。これは、物理キャリアに送信された第1検証データの内容がその後物理キャリアに対して決定できることを前提とする。
【0097】
図3は、物理キャリアを基板として、物理キャリア上のハードウェアをチップとして使用してバインディング関係情報を取得する処理の例を示す。図3において、チップIDに基づいてアイデンティティキーを生成した後、基板上のチップは、バインディング関係情報の発行証明書のためにアプリケーション要求を提出する。基板からアプリケーション要求を受信して要求の有効性を検証した後、CAは、バインディング関係情報、すなわち、公証証明書を発行する。公証証明書、すなわち、バインディング関係情報は、基板に送信される。バインディング関係情報の有効性を検証した後、基板は、バインディング関係情報をローカルに格納する。次いで、ハードウェア検出が基板上のチップに対して実行される必要がある場合、図4を参照する。図4は、ハードウェア検出プロセスを示す。図4において、検証ユニットは基板に対して課題を開始し、基板上のチップは、アイデンティティキーを生成し、検証ユニットにより送信された第1検証データを暗号化するためにアイデンティティキーを使用し、暗号文を取得する。加えて、基板は、図3における取得済の公証証明書などの、チップ間のバインディング関係に基づいて取得されたバインディング関係情報を取得する。次いで、基板は、暗号文およびバインディング関係情報の両方を検証ユニットに送信する。検証ユニットは、バインディング関係情報の正確性を検証して、対応するアイデンティティキーを使用することで、暗号化されたデータ、すなわち、暗号文の正確性を検証する。物理キャリア上に保持されたハードウェアが結合された後、ハードウェアが偽造されたまたは置き換えられた場合、ハードウェア間のバインディング関係が変更され、後続の検証は失敗する。したがって、基板上のハードウェアのセキュリティは、バインディング関係および暗号文の検証によって決定できる。暗号文は、基板上のハードウェアの信頼性を検証するために使用され、バインディング関係は、基板上のハードウェアの完全性を検証するために使用される。
【0098】
前述のハードウェア検出方法は、基板上のハードウェアの検出を例として使用して説明されることに留意されたい。基板に適用されることに加えて、この実施形態に提供される方法はさらに、デバイス全体における複数の基板に対するハードウェア検出を別個に実行するために使用され得る。前述の方法は、各基板に対してハードウェア検出方式を実装するために使用され得る。デバイス全体について、基板がハードウェア検出を通過していない場合、例えば、未認証基板が挿入された場合、デバイスは、警告を生成するか、または、未認証基板によりサービスを提供することを拒否する。当然ながら、警告は、デバイス間の基板交換によって実装されてもよく、その結果、デバイス全体のハードウェア完全性がさらに保護できる。
【0099】
加えて、例示的な実施形態において、本願のこの実施形態に提供される方法では、ハードウェア検出に基づいて、ハードウェア検出結果はさらに、別の技術と組み合わせられ得る。例えば、本願のこの実施形態に提供される方法を使用して取得されたハードウェア検出結果は、ジョイントテストアクショングループ(joint test action group,JTAG)認証技術と組み合わせられる。JTAG認証機能は、未認証のエミュレータまたは制御ユニットがチップJTAGデバッグ制御許可を取得できないことを保証する。本願のこの実施形態に提供される方法がJTAG認証技術と統合された場合、例えば、JTAG権限は、ハードウェアが検出を通過した場合、すなわち、JTAG認証機能がJTAG権限によって使用される場合にのみ付与され得る。ハードウェアセキュリティは、JTAG認証技術と、本願のこの実施形態に提供されるハードウェア検出方法との組み合わせによって、より広い範囲で保証され得る。
【0100】
結論として、本願のこの実施形態に提供される方法によると、ハードウェアのセキュリティは、物理キャリア上に保持されたハードウェアと、ハードウェアによるそれぞれのキーを使用した暗号化によって取得された暗号文との間のバインディング関係に基づいて検証される。これは、ハードウェアの置換および偽造などの攻撃行動を防止し得る。
【0101】
加えて、ハードウェアキーおよび暗号化方法(デジタル署名、非対称暗号化および復号など)を使用して、ハードウェアの信頼性を検証する。検証プロセスは、課題‐応答メカニズムに基づいてよい。各ハードウェアは、課題に応答するためにプライベートキーを使用する。検証ユニットは、各ハードウェアのパブリックキーを使用して応答の正確性を検証し、ハードウェアが改ざんされたかどうかを決定する。検証プロセスは、トラステッドコンピューティンググループ(trusted computing group,TCG)検証仕様またはインターネットエンジニアリングタスクフォース(internet engineering task force,IETF)‐RATS検証仕様と互換性があり得る。
【0102】
本願のこの実施形態に提供されるハードウェア検出方法は複数のシナリオに適用され得、複数の種類のハードウェアの検出に適用可能である。次に、前述のハードウェア検出方法に基づいて、例を使用して異なる適用シナリオを説明する。
【0103】
シナリオ1:ハードウェアのルートオブトラストを保護するシナリオ
【0104】
ハードウェアルートオブトラストは、基板の安全な起動および信頼できる起動の基礎である。したがって、ハードウェアルートオブトラストの完全性を保護することが特に重要である。基板のハードウェアルートオブトラストは通常、プロセッサおよびTPMセキュリティチップを含む。プロセッサは、測定のためのルートオブトラストとして使用され、TPMチップは、レポートのためのルートオブトラストおよびストレージのためのルートオブトラストとして使用される。この場合、ハードウェア検出は、基板上のプロセッサおよびTPMチップに対して実行される。プロセッサがシステムオンチップ(system on a chip,SoC)であることが例として使用される。ハードウェア検出方法の実装環境は、図5に示される。図5に示される実装環境を参照すると、本願の実施形態に提供されるハードウェア検出方法は、図6に示され得る。物理キャリアが基板であり検証ユニットがリモート認証(remote attestation,RA)サーバであることが例として使用される。ハードウェア検出方法は、以下のいくつかのステップを含む。
【0105】
ステップ601:RAサーバは、乱数を基板に送信し、ここで基板はSoCおよびTPMを保持する。
【0106】
RAサーバにより基板に送信された乱数は後続の検証に使用され、乱数の内容は、本願のこの実施形態に限定されない。例えば、RAサーバは、課題‐応答メカニズムに基づいて基板に対して課題を開始し、乱数(Nonce)を基板に送信し得る。さらに、乱数に加えて、通信プロトコルに従って決定された他のデータも送信され得る。この場合、乱数と、通信プロトコルに従って決定された他のデータと、の各々は、第1検証データとして使用され得る。例えば、本願のこの実施形態において、乱数に加えて、RAサーバはさらに、ポートコマンドレジスタ(port command register,PCR)の値を基板に送信し得る。
【0107】
乱数のみが送信された例が使用される。基板は、SoCおよびTPMの2つのハードウェアを保持し、したがって、乱数は基板上のSoCに送信され、次いで、基板の内部でTPMに送信され得る。代替的に、乱数は基板上のデータインタフェースにより受信され、次いで、SoCおよびTPMに伝送され得る。
【0108】
ステップ602:基板は、RAサーバにより送信された乱数を受信する。
【0109】
RAサーバにより送信された乱数を基板が受信した後、ハードウェア検出が実行される必要があるSoCおよびTPMの両方が乱数を暗号化して後続の検出手順を実行できるように、乱数はSoCおよびTPMに伝送される必要がある。
【0110】
ステップ603:基板は、暗号文およびバインディング関係情報を取得する。
【0111】
暗号文は、基板上に保持されたSoCおよびTPMのそれぞれがそれぞれのキーを使用して乱数を暗号化した後に取得される。RAサーバが乱数とPCRレジスタの値との両方を送信する場合、暗号文は、基板上に保持されたSoCおよびTPMのそれぞれがそれぞれのキーを使用して乱数とPCRレジスタの値とを暗号化した後に取得される。例示的な実施形態において、ハードウェアに対応するキーは、それぞれのハードウェア識別子に基づいてハードウェアにより生成される。
【0112】
現在、TEEは全てのメインストリームプロセッサ、例えば、高度縮小命令セットコンピューティングマシン(advanced reduced instruction set computing machines,ARM)プロセッサのトラストゾーン(trust zone)、および、インテル(登録商標)(Intel)プロセッサのソフトウェアガードエクステンション(software guard extensions,SGX)によりサポートされる。TEEは、高いセキュリティ機能を有し、非対称キー(特にプライベートキー)の機密性および完全性を保証できる。したがって、図5に示されるように、SoCは、TEEの信頼できる実行環境に基づいて(例えば、トラストゾーンにおいて)、HUK情報を読み出し、アイデンティティキーのペアを生成し得、すなわち、SoCは、HUKを使用して、パブリックキーおよびプライベートキーを含む非対称キーを生成し、プライベートキーをTEEに安全に格納し得る。例えば、図5においてSoCにより生成されたキーはID keyである。
【0113】
TPMチップの場合、トラステッドコンピューティンググループ(trusted computing group,TCG)の技術的仕様によると、EKを使用して、TPMチップのアイデンティティキーとして使用される認証アイデンティティキー(attestation identity key,AIK)を生成する。加えて、TPMチップのセキュリティ属性は、キーストレージおよびアクセスに高いセキュリティ保護環境を提供できる。
【0114】
バインディング関係情報は、SoCとTPMとの間のバインディング関係を示すために使用される。例えば、ハードウェア検出が実行される前に、バインディング関係情報は、SoCおよびTPMのキー間のバインディング関係に基づいて取得され、バインディング関係情報が格納され得る。例えば、基板はCAにAIK証明書を申請する。例えば、基板は、SoCおよびTPMのパブリックキーを登録して、CAは基板にAIK証明書を発行する。基板は、AIK証明書をTPMに格納する。AIK証明書は、SoCのパブリックキーとTPMのAIKパブリックキーとの間のバインディング関係、およびデジタル署名を含む。デジタル署名は、CAがCAのプライベートキーを使用してバインディング関係に署名することにより取得される。図7は、AIK証明書の構造を示す。図7において、AIK証明書は、基本フィールドおよび拡張フィールドを含む。基本フィールドは、バージョン(version)、シリアル番号(serial no.)、発行者署名アルゴリズム(issuer signature algorithm)、対象のパブリックキー情報(subject public key information)、および発行者の署名(issuer's signature)を含む。パブリックキー情報は、AIKパブリックキーを格納し、発行者署名は、CAがバインディング関係に署名した後に取得されるデジタル署名である。拡張フィールドは、対象の別名(subject alternative name)およびキーの用途(Key Usage)を含み、ここで、subject alternative nameは、HUKから派生したキーのパブリックキー情報を格納する。
【0115】
加えて、AIK証明書は、X509.v3フォーマットまたはユーザ定義フォーマットであり得る。これは、本願のこの実施形態に限定されない。規格X509.v3バージョンは、図7の例として使用される。AIK証明書の承認がCAにより提供されるので、本願のこの実施形態に提供される方法において、TCGにおけるAIK証明書は、プロセッサとTPMチップとの間のバインディング関係を表現するために借用される。
【0116】
この場合、基板がバインディング関係情報を取得することは、公証証明書を取得することを含む。図5に示される実装環境において、基板はキーをCAに登録して公証証明書を取得し得、ここで、公証証明書は、バインディング関係が確立されたハードウェアのキーと、バインディング関係のデジタル署名とを含む。SoCおよびTPMにより生成されたキーの場合、AIK証明書に含まれるバインディング関係は、ID keyとAIKとの間のバインディング関係であり得る。すなわち、ハードウェアルートオブトラストのバインディング関係は、AIK証明書を使用して確立される。バインディング関係のデジタル署名は、CAがCAのプライベートキーを使用してバインディング関係に署名することにより取得され得る。
【0117】
ステップ604:基板は、暗号文およびバインディング関係情報をRAサーバに送信する。
【0118】
暗号文およびバインディング関係情報を取得した後、基板は、暗号文およびバインディング関係情報をRAサーバに送信する。例えば、SoCとTPMとは別個に乱数を暗号化して暗号文を取得するので、2つの暗号文が存在する。例えば、SoCは乱数を暗号化してSoC署名を取得し、TPMは乱数を暗号化してAIK署名を取得する。この場合、SoC署名とAIK署名とは順次接続され、送信のためにデータ形式に追加され得る。例えば、データ形式は以下の表3に示される。
[表3]
【表3】
【0119】
当然ながら、暗号文およびバインディング関係情報をRAサーバに送信することに加えて、基板は、RAサーバに他のデータも送信してよく、または、RAサーバにより送信された乱数を併せて返してもよい。例えば、RAサーバが乱数とPCRレジスタの値との両方を基板に送信する場合、基板はSoC署名とAIK署名とをRAサーバに送信するとともに、乱数とPCRレジスタの値との両方をRAサーバに送信する場合もある。この場合、例えば、データ形式は以下の表4に示される。
[表4]
【表4】
【0120】
ステップ605:RAサーバは、基板により返された暗号文およびバインディング関係情報を受信する。
【0121】
RAサーバは、基板により返された暗号文およびバインディング関係情報を受信する。図5に示されるように、バインディング関係情報は、公証証明書の形態で送信される。この場合、RAサーバは、基板により返された暗号文およびAIK証明書を受信し、ここで、証明書は、SoCおよびTPMに対応するキー間のバインディング関係を含む。
【0122】
ステップ606:RAサーバは、暗号文およびバインディング関係情報を検証し、検証結果に基づいてSoCおよびTPMのセキュリティを決定する。
【0123】
例えば、バインディング関係情報は、少なくとも2つのハードウェアに対応するキー間のバインディング関係を含む。RAサーバが暗号文およびバインディング関係情報を検証することは、SoCおよびTPMに対応するパブリックキーを取得することと;SoCおよびTPMに対応するパブリックキーに基づいて、バインディング関係情報に含まれるバインディング関係が正しいかどうかを決定することと;SoCおよびTPMに対応するパブリックキーを使用して、SoCおよびTPMによる暗号化によって取得された暗号文をそれぞれ復号して、復号によって取得されたデータが乱数と一致するかどうかを検証することとを含む。
【0124】
RAサーバがSoCおよびTPMに対応するパブリックキーを取得する方式は、バインディング関係情報を確立した後、基板は、SoCおよびTPMのパブリックキーをRAサーバに送信し、RAサーバは、SoCおよびTPMのパブリックキーを格納する方式であり得る。RAサーバは複数の基板上のハードウェアを検出する必要があり得るので、RAサーバは、複数の基板により送信されたキーを受信し得る。キーを格納する場合、RAサーバは基板識別子に対応して各キーを格納し、これにより、基板識別子を使用して異なる基板上のハードウェアのキーを区別し得る。その後、基板上のハードウェアが検出された場合、RAサーバは、格納されたキーから、基板上に保持された少なくとも2つのハードウェアのキーを取得する。
【0125】
SoCおよびTPMの前に格納したパブリックキーを取得した後、RAサーバは、SoCおよびTPMに対応するパブリックキーに基づいて、バインディング関係情報に含まれるバインディング関係が正しいかどうかを決定する。バインディング関係が証明書の形態で実装される場合、公証証明書は、バインディング関係のみならず、バインディング関係に署名された後に取得されるデジタル署名も含む。デジタル署名は、認証機関のプライベートキーを使用して認証機関により署名される。この場合、RAサーバは、公証証明書内のデジタル署名に基づいて、バインディング関係情報に含まれるバインディング関係が正しいかどうかを検証する。例えば、RAサーバは、認証機関のパブリックキーを使用して、公証証明書内のデジタル署名を検証する。検証に成功した場合、バインディング関係は正しい。検証に失敗した場合、バインディング関係は正しくない。証明書が使用されるかどうかに関係なく、バインディング関係が正しいと検証される場合、SoCおよびTPMに対応するキーは、SoCおよびTPMによる暗号化によって取得された暗号文をそれぞれ復号するために使用され、復号によって取得されたデータが乱数と一致するかどうかが検証される。次いで、SoCおよびTPMのセキュリティは、検証結果に基づいて決定される。例えば、バインディング関係情報に含まれるバインディング関係が正しい、且つ復号によって取得されたデータが乱数と一致するという検証結果である場合、SoCおよびTPMは安全であると決定される。SoCおよびTPMが本物であり、偽造または置換などの攻撃が存在しないことが示される。例えば、バインディング関係情報に含まれるバインディング関係が正しくないまたは復号によって取得されたデータが乱数と一致しないという検証結果である場合、基板上のSoCおよびTPMは安全でないと決定され得、セキュリティリスクが存在し得、対応する例外処理が実行され得る。例外処理の方式は、本願のこの実施形態に限定されない。
【0126】
結論として、本願のこの実施形態に提供される方法によると、SoCおよびTPMのセキュリティは、基板上に保持されたSoCとTPMとの間のバインディング関係、および、SoCおよびTPMのそれぞれのキーを使用したSoCおよびTPMによる暗号化によって取得された暗号文に基づいて検証され、その結果、置換および偽造などの攻撃行動がSoCおよびTPMに発生することが防止され得る。加えて、本願のこの実施形態において、RAサーバは検証ユニットとして使用され、TCGにおける信頼できる認証手順は、Nonce(乱数)に対する暗号化および復号オペレーションに使用され得る。前述のサービス手順は、標準的な信頼できるコンピューティング手順に基づいて確立され得る。したがって、前述のサービスプロセスは、システムのハードウェア実装の複雑性を増大させないことが可能で、実現可能性がある。
【0127】
シナリオ2:データ処理ユニットを保護するシナリオ。
【0128】
プロセッサおよびFPGAは、基板上の重要なデータ処理ユニットである。通常、プロセッサは、制御、格納、およびデータ処理機能を実装する傾向がある。データストリーム処理性能に対して高い要求を有するシナリオにおいて、ハードウェア加速機能がFPGAを使用して実装される。例えば、暗号加速器カードにおいて、FPGAは通常、暗号化オペレーションのハードウェア加速を担当し、プロセッサは主に、管理および基板間データ通信を実行するように構成される。プロセッサまたはFPGAがハードウェアトロイ(Trojan)およびスパイウェア(Spyware)を含むことは、システムのセキュリティリスクを直接引き起こす。したがって、基板上のFPGAおよびプロセッサのハードウェア完全性および信頼性を保証することが特に重要である。プロセッサがSoCである例が例として使用される。ハードウェア検出方法の実装環境は、図8に示される。図8に示される実装環境を参照すると、本願の実施形態に提供されるハードウェア検出方法は、図9に示され得、以下のいくつかのステップを含む。
【0129】
ステップ901:検証ユニットは、乱数を基板に送信し、ここで基板はSoCおよびFPGAを保持する。
【0130】
検証ユニットにより基板に送信された乱数は後続の検証に使用され、乱数の内容は、本願のこの実施形態に限定されない。例えば、検証ユニットは、課題‐応答メカニズムに基づいて基板に対して課題を開始し、乱数(Nonce)を基板に送信し得る。さらに、乱数に加えて、通信プロトコルに従って決定された他のデータも送信され得る。この場合、乱数と、通信プロトコルに従って決定された他のデータと、の各々は、第1検証データとして使用され得る。
【0131】
基板は、SoCおよびFPGAの2つのハードウェアを保持し、したがって、乱数は基板上のSoCに送信され、次いで、基板の内部でFPGAに送信され得る。代替的に、乱数は基板上のデータインタフェースにより受信され、次いで、SoCおよびFPGAに伝送され得る。
【0132】
ステップ902:基板は、検証ユニットにより送信された乱数を受信する。
【0133】
検証ユニットにより送信された乱数を基板が受信した後、ハードウェア検出が実行される必要があるSoCおよびFPGAの両方が乱数を暗号化して後続の検出手順を実行できるように、乱数はSoCおよびFPGAに伝送される必要がある。
【0134】
ステップ903:基板は、暗号文およびバインディング関係情報を取得する。
【0135】
暗号文は、基板上に保持されたSoCおよびFPGAのそれぞれがそれぞれのキーを使用して乱数を暗号化した後に取得される。例示的な実施形態において、ハードウェアに対応するキーは、それぞれのハードウェア識別子に基づいてハードウェアにより生成される。
【0136】
現在、TEEは全てのメインストリームプロセッサ、例えば、高度縮小命令セットコンピューティングマシン(advanced reduced instruction set computing machines,ARM)プロセッサのトラストゾーン(trust zone)、および、インテル(登録商標)(Intel)プロセッサのSGXによりサポートされる。TEEは、高いセキュリティ機能を有し、非対称キー(特にプライベートキー)の機密性および完全性を保証できる。したがって、図5に示されるように、SoCは、TEEの信頼できる実行環境に基づいて、HUK情報を読み出し、アイデンティティキーのペアを生成し得、すなわち、SoCは、HUKを使用して、パブリックキーおよびプライベートキーを含む非対称キーを生成し、プライベートキーをTEEに安全に格納し得る。例えば、図8においてSoCにより生成されたキーはID1 keyである。
【0137】
FPGAチップの場合、非対称キーがPUFに従って生成され、FPGAチップのアイデンティティキーとして使用される。図8に示されるように、FPGAにより生成されたキーはID2 keyである。加えて、FPGAチップは、キーストレージおよびアクセスに高いセキュリティ保護環境を提供する。
【0138】
バインディング関係情報は、SoCとFPGAとの間のバインディング関係を示すために使用される。例えば、検出前に、バインディング関係情報は、SoCおよびFPGAのキー間のバインディング関係に基づいて取得され、バインディング関係情報が格納され得る。例えば、SoCおよびFPGAのパブリックキーは公証証明書を取得するために登録され、公証証明書は格納される。公証証明書は、SoCおよびFPGAに対応するパブリックキー間のバインディング関係を含み、さらに、バインディング関係のデジタル署名を含む。この場合、バインディング関係情報を取得することは、公証証明書を取得することを含む。図8に示される実装環境において、基板はキーをCAに登録し得、公証証明書を取得した後、CAは公証証明書を基板に送信する。公証証明書は、バインディング関係が確立されたハードウェアのキーと、バインディング関係のデジタル署名とを含む。デジタル署名は、CAがCAのプライベートキーを使用してバインディング関係に署名することにより取得され得る。SoCおよびFPGAにより生成されたキーの場合、公証証明書に含まれるバインディング関係は、ID1 keyとID2 keyとの間のバインディング関係であり得る。
【0139】
ステップ904:基板は、暗号文およびバインディング関係情報を検証ユニットに送信する。
【0140】
暗号文およびバインディング関係情報を取得した後、基板は、暗号文およびバインディング関係情報を検証ユニットに送信する。例えば、SoCおよびFPGAはそれぞれ乱数を暗号化して暗号文を取得して、2つの暗号文が存在するので、各暗号文は順次接続され、送信のためにデータ形式に追加され得る。当然ながら、暗号文およびバインディング関係情報を送信することに加えて、基板は、他のデータを検証ユニットにさらに送信し得、または、検証ユニットにより送信された乱数を併せて返し得る。図8に示される実装環境において、基板は、暗号文および証明書を検証ユニットに送信する。
【0141】
ステップ905:検証ユニットは、基板により返された暗号文およびバインディング関係情報を受信する。
【0142】
検証ユニットは、基板により返された暗号文およびバインディング関係情報を受信する。図8に示されるように、バインディング関係情報は、公証証明書の形態で送信される。この場合、検証ユニットは、基板により返された暗号文およびAIK証明書を受信し、ここで、証明書は、SoCおよびFPGAに対応するキー間のバインディング関係と、バインディング関係のデジタル署名とを含む。
【0143】
ステップ906:検証ユニットは、暗号文およびバインディング関係情報を検証し、検証結果に基づいてSoCおよびFPGAのセキュリティを決定する。
【0144】
例えば、バインディング関係情報は、少なくとも2つのハードウェアに対応するキー間のバインディング関係を含む。検証ユニットが暗号文およびバインディング関係情報を検証することは、SoCおよびFPGAに対応するパブリックキーを取得することと;SoCおよびFPGAに対応するパブリックキーに基づいて、バインディング関係情報に含まれるバインディング関係が正しいかどうかを決定することと;SoCおよびFPGAに対応するパブリックキーを使用して、SoCおよびFPGAによる暗号化によって取得された暗号文をそれぞれ復号して、復号によって取得されたデータが乱数と一致するかどうかを検証することとを含む。
【0145】
検証ユニットがSoCおよびFPGAに対応するパブリックキーを取得する方式は、バインディング関係情報を確立した後、基板は、SoCおよびFPGAのパブリックキーを検証ユニットに送信し、検証ユニットは、パブリックキーを格納する方式であり得る。検証ユニットは複数の基板上のハードウェアを検出する必要があり得るので、検証ユニットは、複数の基板により送信されたキーを受信し得る。キーを格納する場合、検証ユニットは基板識別子に対応して各キーを格納し、これにより、基板識別子を使用して異なる基板上のハードウェアのキーを区別し得る。その後、基板上のハードウェアが検出された場合、検証ユニットは、格納されたキーから、基板上に保持された少なくとも2つのハードウェアのキーを取得する。
【0146】
SoCおよびFPGAの前に格納したパブリックキーを取得した後、検証ユニットは、SoCおよびFPGAに対応するパブリックキーに基づいて、バインディング関係情報に含まれるバインディング関係が正しいかどうかを検証する。バインディング関係が正しい場合、SoCおよびFPGAに対応するキーは、SoCおよびFPGAによる暗号化によって取得された暗号文をそれぞれ復号するために使用され、復号によって取得されたデータが乱数と一致するかどうかが検証される。次いで、SoCおよびFPGAのセキュリティは、検証結果に基づいて決定される。バインディング関係が証明書の形態で実装される場合、公証証明書は、バインディング関係のみならず、バインディング関係に署名された後に取得されるデジタル署名も含む。デジタル署名は、認証機関のプライベートキーを使用して認証機関により署名される。この場合、検証ユニットは、公証証明書内のデジタル署名に基づいて、バインディング関係情報に含まれるバインディング関係が正しいかどうかを検証する。例えば、検証ユニットは、認証機関のパブリックキーを使用して、公証証明書内のデジタル署名を検証する。検証に成功した場合、バインディング関係は正しい。検証に失敗した場合、バインディング関係は正しくない。
【0147】
例えば、バインディング関係情報に含まれるバインディング関係が正しい、且つ復号によって取得されたデータが乱数と一致するという検証結果である場合、SoCおよびFPGAは安全であると決定される。例えば、バインディング関係情報に含まれるバインディング関係が正しくないまたは復号によって取得されたデータが乱数と一致するという検証結果である場合、基板上のSoCおよびFPGAは安全でないと決定され得、セキュリティリスクが存在し得、対応する例外処理が実行され得る。例えば、検証ユニットは警告を送信するか、または、検証ユニットは表示デバイスにプロンプト情報を送信して、基板上のハードウェアがセキュリティリスクを有していることを示す。例外処理の別の方式が代替的に使用され得る。これは、本願のこの実施形態に限定されない。
【0148】
結論として、本願のこの実施形態に提供される方法によると、SoCおよびFPGAのセキュリティは、基板上に保持されたSoCとFPGAとの間のバインディング関係、および、SoCおよびFPGAのそれぞれのキーを使用したSoCおよびFPGAによる暗号化によって取得された暗号文に基づいて検証され、その結果、置換および偽造などの攻撃行動がSoCおよびFPGAに発生することが防止され得る。
【0149】
ハードウェアルートオブトラストを保護するシナリオの場合、ハードウェア識別子に基づいてハードウェアを検出する方式は、関連技術において提案されている。例えば、図10に示されるように、デバイスの電源がオンにされた後、まず安全な起動サービス手順を実行することで起動ソフトウェアの完全性を保証し、次いで、ハードウェアTPMの信頼性が、信頼できるソフトウェアオペレーティングシステム(OS)により検証される。OSはTPMセキュリティチップの固有IDを検証し、TPMセキュリティチップにより合法的に保持されている証明書を決定する。このように、TPMセキュリティモジュールの信頼性が決定される。言い換えれば、関連技術において、ソフトウェア完全性は安全な起動によって保証され、ハードウェア信頼性は信頼できるソフトウェアによって保証される。しかしながら、この方式は特定の制限を有する。例えば、関連技術に提供される解決手段はTPM信頼性のみを保証するが、ハードウェア間のバインディング関係は有さず、基板における別のハードウェアが置き換えられた攻撃シナリオに対する防御能力を有さず、別のハードウェアが偽造された攻撃シナリオに対する防御能力も有さない。
【0150】
本願のこの実施形態に提供される方法によると、暗号文はキーを使用した暗号化を実行することにより取得され、完全性保護は暗号文の検証に基づいて基板上のハードウェアに対して実行され、基板上のハードウェアが偽造されるまたは置き換えられることを効率的に防止する。加えて、複数のハードウェア間の結合はさらに、ハードウェアが偽造されるまたは置き換えられることを防止する。加えて、本願のこの実施形態に提供される方法において、バインディング関係は証明書の形態であり得、標準的なTCG認証プロトコルと互換性があり得、ハードウェア間のバインディング関係は、TCG標準認証要件に従いながらプロトコルにおいて拡張され得る。このように、バインディング関係は強い実行可能性を有する。加えて、本願のこの実施形態に提供される方法において、キーはハードウェアIDを使用して生成され得、その結果、ハードウェアID、およびハードウェアの安全なストレージなどのセキュリティ特徴が十分に使用され、それによりセキュリティが改善される。したがって、本願のこの実施形態に提供される方法は、出荷中であり、実際のネットワーク上で実行中であり、製品として使用される基板のハードウェア信頼性を確実に保証する能力を有する。
【0151】
図11を参照する。本願の実施形態は、ハードウェア検出装置を提供する。装置は、前述の検証部により実行される検証プロセスを実行し得る。
装置は、
第1検証データを物理キャリアに送信するように構成された送信モジュール1101であって、ここで、物理キャリアは複数のハードウェアを保持する送信モジュール1101と、
物理キャリアにより返された暗号文およびバインディング関係情報を受信するように構成された受信モジュール1102であって、ここで暗号文は、複数のハードウェアのうちの少なくとも2つのそれぞれがそれぞれのキーを使用して第1検証データを暗号化した後に取得され、バインディング関係情報は、少なくとも2つのハードウェア間のバインディング関係を示すために使用される、受信モジュール1102と、
暗号文およびバインディング関係情報を検証し、検証結果に基づいて少なくとも2つのハードウェアのセキュリティを決定するように構成された検証モジュール1103と
を含む。
【0152】
例示的な実施形態において、バインディング関係情報は、少なくとも2つのハードウェアに対応するキー間のバインディング関係を含み;検証モジュール1103は、少なくとも2つのハードウェアに対応するキーを取得して、少なくとも2つのハードウェアに対応するキーに基づいて、バインディング関係情報に含まれるバインディング関係が正しいかどうかを検証することと;少なくとも2つのハードウェアによる暗号化によって取得された暗号文をそれぞれ復号すべく少なくとも2つのハードウェアに対応するキーを使用して、復号によって取得された第2検証データが第1検証データと一致するかどうかを検証することと;
バインディング関係情報に含まれるバインディング関係が正しい、且つ復号によって取得された第2検証データが第1検証データと一致するという検証結果である場合、少なくとも2つのハードウェアが安全であると決定することとを行うように構成される。
【0153】
例示的な実施形態において、受信モジュール1102は、物理キャリアにより返された暗号文および公証証明書を受信することであって、ここで公証証明書は少なくとも2つのハードウェアに対応するキー間のバインディング関係を含む、且つバインディング関係のデジタル署名をさらに含むことを行うように構成され;
検証モジュール1103は、公証証明書内のデジタル署名に基づいて、バインディング関係情報に含まれるバインディング関係が正しいかどうかを検証することと;少なくとも2つのハードウェアによる暗号化によって取得された暗号文をそれぞれ復号すべく公証証明書内の少なくとも2つのハードウェアに対応するキーを使用して、復号によって取得された第2検証データが第1検証データと一致するかどうかを検証することと;
バインディング関係情報に含まれるバインディング関係が正しい、且つ復号によって取得された第2検証データが第1検証データと一致するという検証結果である場合、少なくとも2つのハードウェアが安全であると決定することとを行うように構成される。
【0154】
例示的な実施形態において、少なくとも2つのハードウェアに対応するキーは、それぞれのハードウェア識別子にそれぞれ基づいて少なくとも2つのハードウェアにより生成される。
【0155】
例示的な実施形態において、ハードウェア識別子は、HUK、PUF、および機密性が保護されたOTPにおける識別情報もしくはEKを含む。
【0156】
例示的な実施形態において、キーは、対称キーまたは非対称キーを含む。
【0157】
例示的な実施形態において、キーが非対称キーである場合、キーはパブリックキーおよびプライベートキーを含み;
暗号文は、少なくとも2つのハードウェアがそれぞれのプライベートキーを使用して第1検証データをそれぞれ暗号化した後に取得され、バインディング関係情報は少なくとも2つのハードウェアに対応するパブリックキー間のバインディング関係に基づいて取得される。
【0158】
図12を参照する。本願の実施形態は、ハードウェア検出装置を提供する。装置は、前述の物理キャリアの機能を実行し得る。
装置は、
検証ユニットにより送信された第1検証データを受信するように構成された受信モジュール1201と;
暗号文およびバインディング関係情報を取得するように構成された第1取得モジュール1202であって、ここで暗号文は、物理キャリア上に保持された複数のハードウェアのうちの少なくとも2つがそれぞれのキーを使用して第1検証データをそれぞれ暗号化した後に取得され、バインディング関係情報は少なくとも2つのハードウェア間のバインディング関係を示すために使用される、第1取得モジュール1202と;
暗号文およびバインディング関係情報を検証ユニットに送信するように構成された送信モジュール1203であって、ここで検証ユニットは、暗号文およびバインディング関係情報を検証して、検証結果に基づいて少なくとも2つのハードウェアのセキュリティを決定する送信モジュール1203とを含む。
【0159】
例示的な実施形態において、図13を参照する。
装置はさらに、
少なくとも2つのハードウェアのキーを取得することと、少なくとも2つのハードウェアのキー間のバインディング関係に基づいてバインディング関係情報を取得することとを行うように構成された第2取得モジュール1204と;
バインディング関係情報を格納するように構成されたストレージモジュール1205とを含む。
【0160】
例示的な実施形態において、第2取得モジュール1204は、公証証明書を取得すべく少なくとも2つのハードウェアのキーを登録するように構成され、ここで公証証明書は少なくとも2つのハードウェアに対応するキー間のバインディング関係を含み、バインディング関係のデジタル署名をさらに含み;
ストレージモジュール1205は公証証明書を格納するように構成され;
第1取得モジュール1202は公証証明書を取得するように構成される。
【0161】
例示的な実施形態において、少なくとも2つのハードウェアに対応するキーは、それぞれのハードウェア識別子にそれぞれ基づいて少なくとも2つのハードウェアにより生成される。
【0162】
例示的な実施形態において、ハードウェア識別子は、HUK、PUF、および機密性が保護されたOTPにおける識別情報もしくはEKを含む。
【0163】
例示的な実施形態において、キーは、対称キーまたは非対称キーを含む。
【0164】
例示的な実施形態において、キーが非対称キーである場合、キーは、パブリックキーおよびプライベートキーを含む。暗号文は、少なくとも2つのハードウェアがそれぞれ、それぞれのプライベートキーを使用して第1検証データを暗号化した後に取得される。バインディング関係情報は、少なくとも2つのハードウェアに対応するパブリックキー間のバインディング関係に基づいて取得される。
【0165】
前述の説明に提供された装置が装置の機能を実装する場合、前述の機能モジュールに分割することは、説明のための例として使用されるものに過ぎないことを理解されたい。実際の適用では、前述の機能は、要件に基づいて、実装のために異なる機能モジュールに割り当てられ得る。言い換えれば、デバイスは、上記で説明された機能の全てまたは一部を実装するべく、内部構造の面で、異なる機能モジュールに分割される。加えて、前述の実施形態における装置と方法の実施形態とは同じ概念に基づいている。具体的な実装プロセスについては、方法の実施形態を参照されたく、詳細については、本明細書で再度説明しない。
【0166】
同じ概念に基づいて、本願の実施形態はさらに、ハードウェア検出デバイスを提供する。図14を参照する。デバイスは、メモリ1401およびプロセッサ1402を含む。メモリ1401は少なくとも1つの命令を格納し、少なくとも1つの命令はプロセッサ1402によりロードおよび実行され、本願の実施形態に提供された前述のハードウェア検出方法のいずれか1つを実装する。
【0167】
本願の実施形態はさらに、トランシーバ1501、メモリ1502、およびプロセッサ1503を含むハードウェア検出デバイスを提供する。メモリ1502およびプロセッサ1503は、内部接続パスによって互いに通信する。メモリ1502は、命令を格納するように構成されている。プロセッサ1503は、信号を受信するトランシーバ1501を制御すべく、且つ信号を送信するトランシーバ1501を制御すべく、メモリに格納された命令を実行するように構成される。加えて、プロセッサ1503がメモリ1502に格納された命令を実行する場合、プロセッサ1503は、前述のハードウェア検出方法のいずれか1つを実行することが可能となる。
【0168】
本願の実施形態はさらに、ハードウェア検出システムを提供する。システムは、図11に示されるハードウェア検出装置と、図12または図13に示されるハードウェア検出装置とを含む。
【0169】
本願の実施形態はさらに、コンピュータ可読記憶媒体を提供する。記憶媒体は少なくとも1つの命令を格納し、命令はプロセッサによりロードおよび実行され、本願の実施形態に提供された前述のハードウェア検出方法のいずれか1つを実装する。
【0170】
本願の実施形態はさらに、プロセッサを含むチップを提供する。プロセッサは、メモリに格納された命令をメモリから呼び出してそれを実行し、その結果、チップが設置された通信デバイスが前述のハードウェア検出方法のいずれか1つを実行するように構成される。
【0171】
本願の実施形態はさらに、入力インタフェースと、出力インタフェースと、プロセッサと、メモリとを含むチップを提供する。入力インタフェース、出力インタフェース、プロセッサ、およびメモリは、内部接続パスによって接続される。プロセッサは、メモリ内のコードを実行するように構成される。コードが実行される場合、プロセッサは、前述のハードウェア検出方法のいずれか1つを実行するように構成される。
【0172】
プロセッサは、中央演算処理装置(Central Processing Unit,CPU)であってもよく、または、別の汎用プロセッサ、デジタル信号プロセッサ(digital signal processor,DSP)、特定用途向け集積回路(application-specific integrated circuit,ASIC)、フィールドプログラマブルゲートアレイ(field-programmable gate array,FPGA)もしくは別のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタロジックデバイス、またはディスクリートハードウェアコンポーネント等であってもよいことを理解されたい。汎用プロセッサは、マイクロプロセッサ、または任意の従来のプロセッサ等であり得る。プロセッサは、高度縮小命令セットコンピューティングマシン(advanced RISC machines,ARM)アーキテクチャをサポートするプロセッサであり得ることに留意されたい。
【0173】
さらに、任意選択的な実施形態において、1または複数のプロセッサが存在し、且つ、1または複数のメモリが存在する。任意選択的に、メモリはプロセッサと統合されてもよく、または、メモリおよびプロセッサは別個に配置される。メモリは、リードオンリメモリおよびランダムアクセスメモリを含み、命令およびデータをプロセッサに提供し得る。メモリはさらに、不揮発性ランダムアクセスメモリを含み得る。例えば、メモリはさらに、デバイスタイプについての情報を格納し得る。
【0174】
メモリは、揮発性メモリもしくは不揮発性メモリであってもよく、または、揮発性メモリおよび不揮発性メモリの両方を含んでもよい。不揮発性メモリは、リードオンリメモリ(read-only memory,ROM)、プログラマブルリードオンリメモリ(programmable ROM,PROM)、消去可能プログラマブルリードオンリメモリ(erasable PROM,EPROM)、電気的消去可能プログラマブルリードオンリメモリ(electrically EPROM,EEPROM)、またはフラッシュメモリであってよい。揮発性メモリは、外部キャッシュとして使用されるランダムアクセスメモリ(random access memory,RAM)であってよい。例えば、限定されるものではないが、多くの形態のRAM、例えば、スタティックランダムアクセスメモリ(static RAM,SRAM)、ダイナミックランダムアクセスメモリ(dynamic random access memory,DRAM)、シンクロナスダイナミックランダムアクセスメモリ(synchronous DRAM,SDRAM)、ダブルデータレートシンクロナスダイナミックランダムアクセスメモリ(double data rate SDRAM,DDR SDRAM)、拡張型シンクロナスダイナミックランダムアクセスメモリ(enhanced SDRAM,ESDRAM)、シンクリンクダイナミックランダムアクセスメモリ(synchlink DRAM,SLDRAM)、およびダイレクトラムバスランダムアクセスメモリ(direct rambus RAM,DR RAM)が利用可能である。
【0175】
本願は、コンピュータプログラムを提供する。コンピュータプログラムがコンピュータにより実行される場合、プロセッサまたはコンピュータは、前述の方法の実施形態における対応するステップおよび/または手順を実行することが可能となる。
【0176】
前述の実施形態の全てまたは一部が、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせを使用して実装され得る。実施形態を実装するのにソフトウェアが使用される場合、実施形態の全てまたは一部は、コンピュータプログラム製品の形態で実装され得る。コンピュータプログラム製品は、1または複数のコンピュータ命令を含む。コンピュータプログラム命令がコンピュータ上にロードされて実行される場合、本願に係る手順または機能は全てがまたは部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または別のプログラマブル装置であってよい。コンピュータ命令は、コンピュータ可読記憶媒体に格納されてもよく、または、あるコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体に伝送されてもよい。例えば、コンピュータ命令は、ウェブサイト、コンピュータ、サーバ、またはデータセンタから、別のウェブサイト、コンピュータ、サーバ、またはデータセンタに、有線(例えば、同軸ケーブル、光ファイバ、またはデジタル加入者線)または無線(例えば、赤外線、無線、またはマイクロ波)方式で伝送されてよい。コンピュータ可読記憶媒体は、コンピュータによりアクセス可能な任意の使用可能な媒体、または、統合された1または複数の使用可能な媒体を含む、サーバまたはデータセンタなどのデータストレージデバイスであってよい。使用可能な媒体は、磁気媒体(例えば、フロッピディスク、ハードディスクドライブ、または磁気テープ)、光媒体(例えば、DVD)、または半導体媒体(例えば、ソリッドステートドライブ(solid-state drive,SSD))等であってよい。
【0177】
前述の説明は、本発明の特定の実装に過ぎず、本発明の保護範囲を限定することを意図するものではない。本発明において開示された技術的範囲内で当業者が容易に想到するあらゆる変形例または置換例は、本発明の保護範囲に含まれるものとする。したがって、本発明の保護範囲は、特許請求の範囲の保護範囲に従うものとする。
[項目1]
ハードウェア検出方法であって、
物理キャリアに第1検証データを送信する段階であって、前記物理キャリアは複数のハードウェアを保持する段階と、
前記物理キャリアにより返された暗号文およびバインディング関係情報を受信する段階であって、前記暗号文は、それぞれのキーを使用して前記複数のハードウェアのうちの少なくとも2つのそれぞれが前記第1検証データを暗号化した後に取得され、前記バインディング関係情報は前記少なくとも2つのハードウェアの間におけるバインディング関係を示すために使用される段階と、
前記暗号文および前記バインディング関係情報を検証して、検証結果に基づいて前記少なくとも2つのハードウェアのセキュリティを決定する段階と
を備える、方法。
[項目2]
前記バインディング関係情報は、前記少なくとも2つのハードウェアに対応する前記キー間のバインディング関係を含み、
前記暗号文および前記バインディング関係情報を検証する前記段階は、
前記少なくとも2つのハードウェアに対応する前記キーを取得して、前記少なくとも2つのハードウェアに対応する前記キーに基づいて、前記バインディング関係情報に含まれる前記バインディング関係が正しいかどうかを検証する段階と、
前記少なくとも2つのハードウェアによる暗号化によって取得された前記暗号文をそれぞれ復号すべく前記少なくとも2つのハードウェアに対応する前記キーを使用して、復号によって取得された第2検証データが前記第1検証データと一致するかどうかを検証する段階と
を含み、
検証結果に基づいて前記少なくとも2つのハードウェアのセキュリティを決定する前記段階は、
前記バインディング関係情報に含まれる前記バインディング関係が正しい、且つ復号によって取得された前記第2検証データが前記第1検証データと一致するという前記検証結果である場合、前記少なくとも2つのハードウェアが安全であると決定する段階を含む、項目1に記載の方法。
[項目3]
前記物理キャリアにより返された暗号文およびバインディング関係情報を受信する前記段階は、
前記物理キャリアにより返された前記暗号文および公証証明書を受信する段階であって、前記公証証明書は前記少なくとも2つのハードウェアに対応する前記キー間のバインディング関係を含む、且つ前記バインディング関係のデジタル署名をさらに含む段階
を含み、
前記暗号文および前記バインディング関係情報を検証する前記段階は、
前記公証証明書内の前記デジタル署名に基づいて、前記バインディング関係情報に含まれる前記バインディング関係が正しいかどうかを検証する段階と、
前記少なくとも2つのハードウェアによる暗号化によって取得された前記暗号文をそれぞれ復号すべく前記公証証明書内の前記少なくとも2つのハードウェアに対応する前記キーを使用して、復号によって取得された第2検証データが前記第1検証データと一致するかどうかを検証する段階と
を含み、
検証結果に基づいて前記少なくとも2つのハードウェアのセキュリティを決定する前記段階は、
前記バインディング関係情報に含まれる前記バインディング関係が正しい、且つ復号によって取得された前記第2検証データが前記第1検証データと一致するという前記検証結果である場合、前記少なくとも2つのハードウェアが安全であると決定する段階を含む、項目1に記載の方法。
[項目4]
前記少なくとも2つのハードウェアに対応する前記キーは、それぞれのハードウェア識別子にそれぞれ基づいて前記少なくとも2つのハードウェアにより生成される、項目1から3のいずれか一項に記載の方法。
[項目5]
前記ハードウェア識別子は、ハードウェアユニークキーHUK、物理複製困難関数PUF、および機密性が保護されたワンタイムプログラマブルOTPにおける識別情報もしくは承認キーEKを含む、項目4に記載の方法。
[項目6]
前記キーは、対称キーまたは非対称キーを含む、項目1から5のいずれか一項に記載の方法。
[項目7]
前記キーが非対称キーである場合、前記キーはパブリックキーおよびプライベートキーを含み、
前記暗号文は、前記少なくとも2つのハードウェアがそれぞれのプライベートキーを使用して前記第1検証データをそれぞれ暗号化した後に取得され、前記バインディング関係情報は前記少なくとも2つのハードウェアに対応するパブリックキー間のバインディング関係に基づいて取得される、項目6に記載の方法。
[項目8]
ハードウェア検出方法であって、
検証ユニットにより送信された第1検証データを受信する段階と、
暗号文およびバインディング関係情報を取得する段階であって、前記暗号文は、物理キャリア上に保持された複数のハードウェアのうちの少なくとも2つがそれぞれのキーを使用して前記第1検証データをそれぞれ暗号化した後に取得され、前記バインディング関係情報は前記少なくとも2つのハードウェア間のバインディング関係を示すために使用される段階と、
前記暗号文および前記バインディング関係情報を前記検証ユニットに送信する段階であって、前記検証ユニットは、前記暗号文および前記バインディング関係情報を検証して、検証結果に基づいて前記少なくとも2つのハードウェアのセキュリティを決定する段階と
を備える、方法。
[項目9]
バインディング関係情報を取得する前記段階の前に、前記方法はさらに、
前記少なくとも2つのハードウェアの前記キーを取得する段階と、前記少なくとも2つのハードウェアの前記キー間のバインディング関係に基づいて前記バインディング関係情報を取得する段階と、前記バインディング関係情報を格納する段階とを含む、項目8に記載の方法。
[項目10]
前記少なくとも2つのハードウェアの前記キー間のバインディング関係に基づいて前記バインディング関係情報を取得する前記段階、および前記バインディング関係情報を格納する前記段階は、
前記少なくとも2つのハードウェアの前記キーを登録して公証証明書を取得する段階と、前記公証証明書を格納する段階であって、前記公証証明書は前記少なくとも2つのハードウェアに対応する前記キー間の前記バインディング関係を含み、前記バインディング関係のデジタル署名をさらに含む段階とを含み、
バインディング関係情報を取得する前記段階は、前記公証証明書を取得する段階を含む、項目9に記載の方法。
[項目11]
前記少なくとも2つのハードウェアに対応する前記キーは、それぞれのハードウェア識別子にそれぞれ基づいて前記少なくとも2つのハードウェアにより生成される、項目8から10のいずれか一項に記載の方法。
[項目12]
前記ハードウェア識別子は、ハードウェアユニークキーHUK、物理複製困難関数PUF、および機密性が保護されたワンタイムプログラマブルOTPにおける識別情報もしくは承認キーEKを含む、項目11に記載の方法。
[項目13]
前記キーは、対称キーまたは非対称キーを含む、項目8から12のいずれか一項に記載の方法。
[項目14]
前記キーが非対称キーである場合、前記キーはパブリックキーおよびプライベートキーを含み、
前記暗号文は、前記少なくとも2つのハードウェアがそれぞれのプライベートキーを使用して前記第1検証データをそれぞれ暗号化した後に取得され、前記バインディング関係情報は前記少なくとも2つのハードウェアに対応するパブリックキー間のバインディング関係に基づいて取得される、項目13に記載の方法。
[項目15]
ハードウェア検出装置であって、
物理キャリアに第1検証データを送信するように構成された送信モジュールであって、前記物理キャリアは複数のハードウェアを保持する送信モジュールと、
前記物理キャリアにより返された暗号文およびバインディング関係情報を受信するように構成された受信モジュールであって、前記暗号文は、それぞれのキーを使用して前記複数のハードウェアのうちの少なくとも2つのそれぞれが前記第1検証データを暗号化した後に取得され、前記バインディング関係情報は前記少なくとも2つのハードウェアの間におけるバインディング関係を示すために使用される受信モジュールと、
前記暗号文および前記バインディング関係情報を検証して、検証結果に基づいて前記少なくとも2つのハードウェアのセキュリティを決定するように構成された検証モジュールと
を含む、装置。
[項目16]
前記バインディング関係情報は、前記少なくとも2つのハードウェアに対応する前記キー間のバインディング関係を含み、
前記検証モジュールは、
前記少なくとも2つのハードウェアに対応する前記キーを取得して、前記少なくとも2つのハードウェアに対応する前記キーに基づいて、前記バインディング関係情報に含まれる前記バインディング関係が正しいかどうかを検証することと、前記少なくとも2つのハードウェアによる暗号化によって取得された前記暗号文をそれぞれ復号すべく前記少なくとも2つのハードウェアに対応する前記キーを使用して、復号によって取得された第2検証データが前記第1検証データと一致するかどうかを検証することと、
前記バインディング関係情報に含まれる前記バインディング関係が正しい、且つ復号によって取得された前記第2検証データが前記第1検証データと一致するという前記検証結果である場合、前記少なくとも2つのハードウェアが安全であると決定することと
を行うように構成される、項目15に記載の装置。
[項目17]
前記受信モジュールは、前記物理キャリアにより返された前記暗号文および公証証明書を受信することであって、前記公証証明書は前記少なくとも2つのハードウェアに対応する前記キー間のバインディング関係を含む、且つ前記バインディング関係のデジタル署名をさらに含むことを行うように構成され、
前記検証モジュールは、
前記公証証明書内の前記デジタル署名に基づいて、前記バインディング関係情報に含まれる前記バインディング関係が正しいかどうかを検証することと、前記少なくとも2つのハードウェアによる暗号化によって取得された前記暗号文をそれぞれ復号すべく前記公証証明書内の前記少なくとも2つのハードウェアに対応する前記キーを使用して、復号によって取得された第2検証データが前記第1検証データと一致するかどうかを検証することと、
前記バインディング関係情報に含まれる前記バインディング関係が正しい、且つ復号によって取得された前記第2検証データが前記第1検証データと一致するという前記検証結果である場合、前記少なくとも2つのハードウェアが安全であると決定することと
を行うように構成される、項目15または16に記載の装置。
[項目18]
前記少なくとも2つのハードウェアに対応する前記キーは、それぞれのハードウェア識別子にそれぞれ基づいて前記少なくとも2つのハードウェアにより生成される、項目15から17のいずれか一項に記載の装置。
[項目19]
前記ハードウェア識別子は、ハードウェアユニークキーHUK、物理複製困難関数PUF、および機密性が保護されたワンタイムプログラマブルOTPにおける識別情報もしくは承認キーEKを含む、項目18に記載の装置。
[項目20]
前記キーは、対称キーまたは非対称キーを含む、項目15から19のいずれか一項に記載の装置。
[項目21]
前記キーが非対称キーである場合、前記キーはパブリックキーおよびプライベートキーを含み、
前記暗号文は、前記少なくとも2つのハードウェアがそれぞれのプライベートキーを使用して前記第1検証データをそれぞれ暗号化した後に取得され、前記バインディング関係情報は前記少なくとも2つのハードウェアに対応するパブリックキー間のバインディング関係に基づいて取得される、項目20に記載の装置。
[項目22]
ハードウェア検出装置であって、
検証ユニットにより送信された第1検証データを受信するように構成された受信モジュールと、
暗号文およびバインディング関係情報を取得するように構成された第1取得モジュールであって、前記暗号文は、物理キャリア上に保持された複数のハードウェアのうちの少なくとも2つがそれぞれのキーを使用して前記第1検証データをそれぞれ暗号化した後に取得され、前記バインディング関係情報は前記少なくとも2つのハードウェア間のバインディング関係を示すために使用される、第1取得モジュールと、
前記暗号文および前記バインディング関係情報を前記検証ユニットに送信するように構成された送信モジュールであって、前記検証ユニットは、前記暗号文および前記バインディング関係情報を検証して、検証結果に基づいて前記少なくとも2つのハードウェアのセキュリティを決定する送信モジュールと
を備える、装置。
[項目23]
前記装置はさらに、
前記少なくとも2つのハードウェアの前記キーを取得することと、前記少なくとも2つのハードウェアの前記キー間のバインディング関係に基づいて前記バインディング関係情報を取得することとを行うように構成された第2取得モジュールと、
前記バインディング関係情報を格納するように構成されたストレージモジュールと
を含む、項目22に記載の装置。
[項目24]
前記第2取得モジュールは、公証証明書を取得すべく前記少なくとも2つのハードウェアの前記キーを登録するように構成され、前記公証証明書は前記少なくとも2つのハードウェアに対応する前記キー間の前記バインディング関係を含み、前記バインディング関係のデジタル署名をさらに含み、
前記ストレージモジュールは前記公証証明書を格納するように構成され、
前記第1取得モジュールは前記公証証明書を取得するように構成される、項目23に記載の装置。
[項目25]
前記少なくとも2つのハードウェアに対応する前記キーは、それぞれのハードウェア識別子にそれぞれ基づいて前記少なくとも2つのハードウェアにより生成される、項目22から24のいずれか一項に記載の装置。
[項目26]
前記ハードウェア識別子は、ハードウェアユニークキーHUK、物理複製困難関数PUF、および機密性が保護されたワンタイムプログラマブルOTPにおける識別情報もしくは承認キーEKを含む、項目25に記載の装置。
[項目27]
前記キーは、対称キーまたは非対称キーを含む、項目22から26のいずれか一項に記載の装置。
[項目28]
前記キーが非対称キーである場合、前記キーはパブリックキーおよびプライベートキーを含み、
前記暗号文は、前記少なくとも2つのハードウェアがそれぞれのプライベートキーを使用して前記第1検証データをそれぞれ暗号化した後に取得され、前記バインディング関係情報は前記少なくとも2つのハードウェアに対応するパブリックキー間のバインディング関係に基づいて取得される、項目27に記載の装置。
[項目29]
コンピュータ可読記憶媒体であって、少なくとも1つの命令を格納し、前記命令はプロセッサによりロードおよび実行され、項目1から7のいずれか一項に記載のハードウェア検出方法を実装するか、または、項目8から14のいずれか一項に記載のハードウェア検出方法を実装する、コンピュータ可読記憶媒体。
[項目30]
コンピュータに、項目1から7のいずれか一項に記載の方法を実行させる、または、項目8から14のいずれか一項に記載の方法を実行させるためのコンピュータプログラム。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15