(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-04-17
(54)【発明の名称】バイオセンサおよびバイオセンサ出力の絡み合った認証のためのシステムおよび方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20240410BHJP
G06F 21/32 20130101ALI20240410BHJP
G06F 21/62 20130101ALI20240410BHJP
G06F 21/60 20130101ALI20240410BHJP
G06F 21/64 20130101ALI20240410BHJP
G06F 21/71 20130101ALI20240410BHJP
【FI】
H04L9/32 200A
H04L9/32 100D
G06F21/32
G06F21/62
G06F21/60 320
G06F21/64
G06F21/71
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023566540
(86)(22)【出願日】2022-04-29
(85)【翻訳文提出日】2023-12-20
(86)【国際出願番号】 US2022072007
(87)【国際公開番号】W WO2022232833
(87)【国際公開日】2022-11-03
(32)【優先日】2021-04-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】521509620
【氏名又は名称】エイチアイディ グローバル コーポレイション
【氏名又は名称原語表記】HID GLOBAL CORP.
(71)【出願人】
【識別番号】523406602
【氏名又は名称】エイチアイディ チェコ エス.アール.オー.
【氏名又は名称原語表記】HID CZECH S.R.O.
(71)【出願人】
【識別番号】523406613
【氏名又は名称】エイチアイディ グローバル タイワン リミテッド
【氏名又は名称原語表記】HID GLOBAL TAIWAN LTD.
(74)【代理人】
【識別番号】100105957
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ボルガッティ、ミケーレ
(72)【発明者】
【氏名】ファブリツィオ、ヴィート
(72)【発明者】
【氏名】マンチーニ、マルコ
(57)【要約】
本明細書には、生体認証センサおよび生体認証センサ出力の絡み合った認証のためのシステムおよび方法が開示される。一実施形態では、セキュア生体認証センサシステムは、互いに物理的に結合された生体認証センサおよびセキュア要素を備えている。センサは、ホストとセキュア要素との間に通信可能に介在する。センサはホストから暗号チャレンジを受信してセキュア要素に転送する。センサは、生体認証読み取り値を取得してホストに送信する。センサは、ホストとセキュア要素との間の共有シークレットを含むチャレンジレスポンスをセキュア要素から受信する。センサは、共有シークレットと、取得された生体認証読み取り値に関連するデータとの所定の組み合わせから暗号的に絡み合ったトークンを生成し、生体認証読み取り値がセンサによって取得されたものであることの認証を試みる際にホストが使用するために、暗号的に絡み合ったトークンをホストに送信する。
【特許請求の範囲】
【請求項1】
セキュア生体認証センサシステムであって、
セキュア要素と、
ホストと前記セキュア要素との間に通信可能に介在するように構成された生体認証センサであって、該生体認証センサと前記セキュア要素とは互いに物理的に結合されており、センサ認証ロジックを有している前記生体認証センサと、を備え、
前記センサ認証ロジックが、前記生体認証センサの少なくとも1つのハードウェアプロセッサによって実行されると、前記生体認証センサに複数の処理を行わせ、
前記複数の処理が、
前記ホストから暗号チャレンジを受信することと、
前記暗号チャレンジを前記セキュア要素に転送することと、
生体認証感知要素を使用して生体認証読み取り値を取得することと、
取得された前記生体認証読み取り値を前記ホストに送信することと、
前記暗号チャレンジに基づいて前記セキュア要素が計算した暗号レスポンスを前記セキュア要素から受信することと、ここで、前記暗号レスポンスが、前記ホストと前記セキュア要素との間の共有シークレットを含んでおり、
読み取り関連データと前記共有シークレットとの所定の組み合わせから暗号的に絡み合ったトークンを生成することと、ここで、前記読み取り関連データが、前記生体認証読み取り値および該生体認証読み取り値から導き出されたデータの一方または両方を含んでおり、
取得された前記生体認証読み取り値が前記生体認証センサによって取得されたものであることの認証を試みる際にホストが使用するために、前記暗号的に絡み合ったトークンをホストに送信することと、
を含む、セキュア生体認証センサシステム。
【請求項2】
互いに物理的に結合されている前記生体認証センサおよび前記セキュア要素が、共通のパッケージ基板に固定された前記生体認証センサおよび前記セキュア要素を含む、請求項1に記載のセキュア生体認証センサシステム。
【請求項3】
前記ホストと前記セキュア要素との間に通信可能に介在するように構成された前記生体認証センサが、
第1の通信インターフェイスと、
前記第1の通信インターフェイスとは異なる第2の通信インターフェイスと、
を有している前記生体認証センサを含んでおり、
前記生体認証センサは、前記第1の通信インターフェイスを介して前記ホストと通信するように構成されており、
前記生体認証センサは、前記第2の通信インターフェイスを介して前記セキュア要素と別個に通信するように構成されている、請求項1または2に記載のセキュア生体認証センサシステム。
【請求項4】
取得された前記生体認証読み取り値を前記ホストへ送信することが、前記セキュア要素から前記暗号レスポンスを受信する前に開始される、請求項1または2に記載のセキュア生体認証センサシステム。
【請求項5】
取得された前記生体認証読み取り値を前記ホストへ送信することが、前記セキュア要素から前記暗号レスポンスを受信した後に開始され、
前記複数の処理が、取得した前記生体認証読み取り値を前記ホストに送信する前に、前記共有シークレットを使用して、取得した前記生体認証読み取り値を暗号化することをさらに含む、請求項1または2に記載のセキュア生体認証センサシステム。
【請求項6】
前記複数の処理が、前記暗号的に絡み合ったトークンを前記ホストに送信する前に、前記ホストによる前記セキュア要素のデジタル証明書の確認のために、前記セキュア要素を用いて、前記暗号的に絡み合ったトークンにデジタル署名することをさらに含む、請求項1または2に記載のセキュア生体認証センサシステム。
【請求項7】
前記暗号的に絡み合ったトークンが、ハッシュ関数のセンサ側ハッシュ結果を含んでおり、
前記複数の処理が、前記ハッシュ関数を使用して、前記読み取り関連データと前記共有シークレットとの前記所定の組み合わせから前記センサ側ハッシュ結果を生成することをさらに含む、請求項1または2に記載のセキュア生体認証センサシステム。
【請求項8】
取得された前記生体認証読み取り値が前記生体認証センサによって取得されたものであることの認証を前記ホストが試みることが、
前記共有シークレットのホスト側コピーを前記暗号チャレンジから計算することと、
前記ハッシュ関数を使用して、ホスト側読み取り関連データと、前記共有シークレットの前記ホスト側コピーとの対応する所定の組み合わせからホスト側ハッシュ結果を生成することと、
前記センサ側ハッシュ結果が前記ホスト側ハッシュ結果と一致するか否かを判断することと、
を前記ホストが行うことを含む、請求項7に記載のセキュア生体認証センサシステム。
【請求項9】
前記暗号的に絡み合ったトークンが、外部ハッシュ関数のセンサ側ハッシュ結果を含んでおり、
前記複数の処理が、
内部ハッシュ関数を使用して、前記生体認証読み取り値および前記共有シークレットから、中間センサ側ハッシュ結果を生成することと、
前記外部ハッシュ関数を使用して、前記中間センサ側ハッシュ結果から、前記センサ側ハッシュ結果を生成することと、
をさらに含む、請求項1または2に記載のセキュア生体認証センサシステム。
【請求項10】
前記内部ハッシュ関数を使用して、前記生体認証読み取り値および前記共有シークレットから、前記中間センサ側ハッシュ結果を生成することが、
前記内部ハッシュ関数を使用して、前記生体認証読み取り値および前記共有シークレットから、前記中間センサ側ハッシュ結果の2つの部分のうちの第1の部分を生成することと、
次に、前記内部ハッシュ関数を使用して、前記中間センサ側ハッシュ結果の前記2つの部分のうちの第2の部分を生成することと、
を含む、請求項9に記載のセキュア生体認証センサシステム。
【請求項11】
前記内部ハッシュ関数を使用して、前記中間センサ側ハッシュ結果の前記2つの部分のうちの前記第1の部分を生成することの少なくとも一部が、前記暗号レスポンスを前記セキュア要素から受信する前に行われる、請求項10に記載のセキュア生体認証センサシステム。
【請求項12】
前記内部ハッシュ関数を使用して、前記中間センサ側ハッシュ結果の前記2つの部分のうちの前記第1の部分を生成することのすべてが、前記暗号レスポンスを前記セキュア要素から受信する前に行われる、請求項10に記載のセキュア生体認証センサシステム。
【請求項13】
取得された前記生体認証読み取り値が前記生体認証センサによって取得されたものであることの認証を前記ホストが試みることが、
前記共有シークレットのホスト側コピーを前記暗号チャレンジから計算することと、
前記内部ハッシュ関数を使用して、前記生体認証読み取り値と前記共有シークレットの前記ホスト側コピーとから中間ホスト側ハッシュ結果を生成することと、
前記外部ハッシュ関数を使用して、前記中間ホスト側ハッシュ結果からホスト側ハッシュ結果を生成することと、
前記センサ側ハッシュ結果が前記ホスト側ハッシュ結果と一致するか否かを判断することと、
を前記ホストが行うことを含む、請求項9または10に記載のセキュア生体認証センサシステム。
【請求項14】
取得された前記生体認証読み取り値を前記ホストに送信する前に、ブロック暗号を使用して、前記生体認証読み取り値を第1の暗号鍵を使用して暗号化することをさらに含み、
前記暗号的に絡み合ったトークンが、暗号化された前記生体認証読み取り値を含み、
前記暗号的に絡み合ったトークンを前記ホストに送信することが、取得された前記生体認証読み取り値を前記ホストに送信することを含む、請求項1または2に記載のセキュア生体認証センサシステム。
【請求項15】
前記共有シークレットが、前記第1の暗号鍵である、請求項14に記載のセキュア生体認証センサシステム。
【請求項16】
取得された前記生体認証読み取り値が前記生体認証センサによって取得されたものであることの認証を前記ホストが試みることが、
前記共有シークレットのホスト側コピーを前記暗号チャレンジから計算することと、
前記共有シークレットの前記ホスト側コピーを復号鍵として使用して、暗号化された前記生体認証読み取り値を復号化することと、
を前記ホストが行うことを含む、請求項15に記載のセキュア生体認証センサシステム。
【請求項17】
乱数を取得することと、ここで、取得された前記乱数が、前記第1の暗号鍵であり、
前記共有シークレットを第2の暗号鍵として使用して前記乱数を暗号化することによって、暗号化された乱数を生成することと、
前記暗号化された乱数を前記ホストに送信することと、をさらに含む請求項14に記載のセキュア生体認証センサシステム。
【請求項18】
取得された前記生体認証読み取り値が前記生体認証センサによって取得されたものであることの認証を前記ホストが試みることが、
前記共有シークレットのホスト側コピーを前記暗号チャレンジから計算することと、
前記共有シークレットの前記ホスト側コピーを第2の復号鍵として使用して、前記暗号化された乱数を復号化することによって、前記乱数を取得することと、
取得した前記乱数を第1の復号鍵として使用して、前記暗号化された生体認証読み取り値を復号化することと、
を前記ホストが行うことを含む、請求項17に記載のセキュア生体認証センサシステム。
【請求項19】
取得された前記生体認証読み取り値が、生体検知データを含む、請求項1または2に記載のセキュア生体認証センサシステム。
【請求項20】
生体認証センサであって、
第1の通信インターフェイスおよび第2の通信インターフェイスであって、前記生体認証センサは、前記第1の通信インターフェイスおよび前記第2の通信インターフェイスを介して、ホストとセキュア要素との間に通信可能に介在するように構成されており、前記生体認証センサと前記セキュア要素とが互いに物理的に結合されている、前記第1の通信インターフェイスおよび前記第2の通信インターフェイスと、
センサ認証ロジックと、を備え、
前記センサ認証ロジックが、前記生体認証センサの少なくとも1つのハードウェアプロセッサによって実行されると、前記生体認証センサに複数の処理を行わせ、
前記複数の処理が、
前記ホストから暗号チャレンジを受信することと、
前記暗号チャレンジを前記セキュア要素に転送することと、
生体認証感知要素を使用して生体認証読み取り値を取得することと、
取得された前記生体認証読み取り値をホストに送信することと、
前記暗号チャレンジに基づいて前記セキュア要素が計算した暗号レスポンスを前記セキュア要素から受信することと、ここで、前記暗号レスポンスが、前記ホストと前記セキュア要素との間の共有シークレットを含んでおり、
読み取り関連データと前記共有シークレットとの所定の組み合わせから暗号的に絡み合ったトークンを生成することと、ここで、前記読み取り関連データが、前記生体認証読み取り値および該生体認証読み取り値から導き出されたデータの一方または両方を含んでおり、
取得された前記生体認証読み取り値が前記生体認証センサによって取得されたものであることの認証を試みる際にホストが使用するために、前記暗号的に絡み合ったトークンをホストに送信することと、
を含む、生体認証センサ。
【請求項21】
記憶された複数の命令を実行する生体認証センサによって実行される方法であって、
ホストから暗号チャレンジを受信することと、ここで、前記生体認証センサが、前記ホストとセキュア要素との間に通信可能に介在しており、前記生体認証センサと前記セキュア要素とは互いに物理的に結合されており、
前記暗号チャレンジを前記セキュア要素に転送することと、
生体認証感知要素を使用して生体認証読み取り値を取得することと、
取得された前記生体認証読み取り値をホストに送信することと、
前記暗号チャレンジに基づいて前記セキュア要素が計算した暗号レスポンスを前記セキュア要素から受信することと、ここで、前記暗号レスポンスが、前記ホストと前記セキュア要素との間の共有シークレットを含んでおり、
読み取り関連データと前記共有シークレットとの所定の組み合わせから暗号的に絡み合ったトークンを生成することと、ここで、前記読み取り関連データが、前記生体認証読み取り値および該生体認証読み取り値から導き出されたデータの一方または両方を含んでおり、
取得された前記生体認証読み取り値が前記生体認証センサによって取得されたものであることの認証を試みる際にホストが使用するために、前記暗号的に絡み合ったトークンをホストに送信することと、を備える方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、概して、生体認証センサ(バイオセンサとも称される)を含むセンサ、認証、暗号化、個人情報保護、詐欺防止、プライバシー、セキュリティに関し、より詳細には、生体認証センサおよび生体認証センサ出力の絡み合った(entangled)認証のためのシステムおよび方法に関する。
【背景技術】
【0002】
今日の現代社会では、例えば従業員、顧客、特定の装置の承認されたユーザー等の個人が本人であることを、装置、装置システム、ネットワーク等が確認(すなわち検査や検証等)できることが重要である場面や状況が多く存在する。個人(および装置)の身元を確認する(または少なくとも確認を試みる)処理は、認証と一般的に呼ばれている。これは、正しく認証された個人および/または装置が、アクセスできる特定のリソースに対する制御を有効にする承認とは区別される。
【0003】
概して、当該技術分野で周知であり、かつ本明細書に例示するように、個人の認証においては、その個人が「知っている」もの、「持っている」もの、および/または「である」ものを示す必要がある。個人が「知っている」(または知っている可能性がある)ものの例としては、パスワード、暗証番号(PIN)、1つまたは複数のセキュリティの質問に対する回答、頻繁に変更される認証コード等が挙げられる。個人が「持っている」(または持っている可能性がある)ものの例としては、アクセスカード、スマートカード、特定のモバイルデバイス等が挙げられる。最後の、個人が「である」(またはその可能性がある)ものの例としては、特定の指紋、特定の声紋、特定の顔(顔の構造等)、特定の網膜、一対の網膜等が挙げられる。当然ながら、指紋が個人の全体を表すわけではないが、このような表現は当該技術分野において一般的に用いられている。
【0004】
生体認証センサの分野においては、このようなセンサを備えたシステムに対する脅威が常に存在し、1つまたは複数のセンサによって少なくとも部分的に保護されている様々なリソースに対し、悪意の行為者によるアクセスの試みが繰り返されるおそれがある。このようなアクセスの試みは、例えば、建物またはその他のセキュリティ保護されたスペース(オフィス、研究室、保管庫等)への物理的な不正侵入、保護されたシステムへの不正なログイン、不正な購入や口座振替の実行、個人情報の取得等の試みである。このような攻撃の加害者は、関連するシステムの正当なユーザーになりすます場合が多い。人であろうとプログラム(いわゆる「ボット」等)であろうと、これらの不正行為者は執拗で、防御手段を回避するために攻撃戦略を絶えず調整している。これに対し、防御手段も攻撃に応じて進化している。
【図面の簡単な説明】
【0005】
詳細は、図面を参照して記載される以下の説明から理解される。図面において、同様の要素には同様の符号が付されている。
【
図1】少なくとも1つの実施形態に係る、通信構成の第1の例を示す図。
【
図2】少なくとも1つの実施形態に係る、通信構成の第2の例を示す図。
【
図3】少なくとも1つの実施形態に係る、通信構成の第3の例を示す図。
【
図4】少なくとも1つの実施形態に係る、セキュア生体認証センサシステムのアーキテクチャの第1の例を示す図。
【
図5】少なくとも1つの実施形態に係る、セキュア生体認証センサシステムのアーキテクチャの第2の例を示す図。
【
図6】情報フロー図の第1の例を示す図であり、少なくとも1つの実施形態に係る、例示的ホストおよび例示的生体認証センサの両方が複数の対応するハッシュ関数を使用する構成例を示す図。
【
図7】情報フロー図の第2の例を示す図であり、少なくとも1つの実施形態に係る、例示的ホストおよび例示的生体認証センサの両方が単一の対応するハッシュ関数を使用する構成例を示す図。
【
図8】情報フロー図の第3の例を示す図であり、少なくとも1つの実施形態に係る、例示的ホストおよび例示的生体認証センサが共通の暗号化および復号化方法を用いる第1の構成例を示す図。
【
図9】情報フロー図の第4の例を示す図であり、少なくとも1つの実施形態に係る、例示的ホストおよび例示的生体認証センサが共通の暗号化および復号化方法を用いる第2の構成例を示す図。
【
図10】情報フロー図の第5の例を示す図であり、少なくとも1つの実施形態に係る、例示的ホストおよび例示的生体認証センサが共通の暗号化および復号化方法を用いる第3の構成例を示す図。
【
図11】少なくとも1つの実施形態に係る、例えば生体認証センサまたはセキュア生体認証センサシステムによって実行される例示的な方法を示す図。
【
図12】少なくとも1つの実施形態に係る、少なくとも1つの実施形態を実行し、かつ/または、1つもしくは複数の装置やシステム等を具体化するように構成される例示的コンピュータシステムを示す図。
【
図13】少なくとも1つの実施形態に係る、
図12の例示的コンピュータシステム等のコンピュータシステムにおいて実装可能な例示的ソフトウェアアーキテクチャを示す図。
【発明を実施するための形態】
【0006】
現在、様々な種類の生体認証センサが市販されており、今後さらに多くの生体認証センサが提供されると考えられる。生体認証センサの種類の例としては、指紋スキャナ、網膜スキャナ、声紋識別装置、顔認識スキャナ等が挙げられる。本開示は主に指紋スキャナ(本明細書では指紋センサとも呼ぶ)について説明するが、これは例示であり、限定ではない。本開示の実施形態は、他の種類の生体認証センサに同様に適用でき、さらに、多種の他のセンサ(例えば、温度センサ、動作検出器、ガラス破壊センサ、圧力センサ、近接センサ、ガス(一酸化炭素等)検出器、位置決定システム等)にも適用可能である。データが特定のセンサによって正当に取得されたものであることを確認することは、多くの分野で有益である。さらに、取得されたデータの整合性の確認は認証と密接に関係しており、重要である。
【0007】
従来構成においては、指紋センサは、売店、ATM(現金自動預け払い機)、POS装置等の大型の固定システムに組み込まれている場合が多い。このような設置構成では、所与の指紋画像が、特定の装置またはシステムに組み込まれた指紋センサによって取得されたものであることの信頼度が比較的高い。これは、このような物理的に保護された固定式のシステムは、関係者(例えば、店舗従業員、銀行従業員、官公庁職員等)によって直接的に制御および/または監視されている場合が多いためである。
【0008】
いくつかの着想および目的の中でも、本開示の実施形態は、一人または複数の個人の認証(物理的アクセスや支払取引等のための認証)に利用される指紋センサが、スマートフォン、タブレット、ラップトップ、ネットブック、IDトークン、スマートカード(例えば、スマートクレジットカード)等のモバイルデバイスに配置されることが一般的になりつつあるという認識および理解等から生じたものである。一般的な状況では、個人は、スマートフォン(モバイルデバイスの一例)を所有しているか、そのスマートフォンを支給された正規のユーザー等である。このような個人は、サービスプロバイダからスマートフォンを購入またはレンタルしている場合や、雇用主からスマートフォンを支給されている場合や、個人またはその組織(雇用主等)がスマートフォンのサービスプランのサブスクリプションのアカウント所有者である場合等が想定される。個人は、購入、アプリのダウンロード、個人情報(保存されたパスワード等)の表示を承認するためや、情報へのアクセスや、所定の機能または取引の実行(もしくは許可)を行うために身元認証を必要とする他の目的のために、スマートフォンに搭載されている指紋センサを使用する。
【0009】
また、本開示の実施形態は、モバイルデバイス(および一部の他の装置)の指紋センサは比較的単純な装置であり、悪意のある行為者が事前に記録されたデータ(例えば、記憶された指紋画像等)を用いてなりすましに成功することが多いという事実を認識および理解することからも生じている。指紋センサが搭載された装置、または指紋センサが少なくとも一時的に(USB(ユニバーサルシリアルバス)ポート等を使用して)接続されている装置に対し、攻撃者が物理的にアクセスする場合もある。物理的なアクセスに成功した攻撃者は、指紋センサを、事前に記録されたデータを認証用に送るように構成および/またはプログラミング等された別のセンサや他の電子回路に置き換えることができる。
【0010】
一般的なホスト(スマートフォン等)と一般的な指紋センサとの間のインターフェイスは、標準的であるとともに比較的単純な場合が多いため、上記のような攻撃が助長されている。さらに、有効な指紋画像のデジタルサンプルは、攻撃者によって容易に取得できることがわかっている。この問題は、提示された指紋(またはその他の生体認証読み取り値)の認証(または拒否)を実行するホストと指紋センサとの間の連結が密接ではない場合(例えばネットワーク接続を介している場合等)にさらに悪化する。
【0011】
さらに、本開示の実施形態は、機密情報のダウンロード、転送、表示等の承認や、購入、取引および他の金融取引等の実行の許可に用いられる指紋センサが、事前に記録された画像やその他のデータを認証のためにホストに提供するように構成された不正な回路(「生体から」、すなわちセンサのそばに居てセンサと物理的に接触している、生きている人間から実際に取得した生体認証データを提供する適切な生体認証センサではない)によって置き換えられることを防止することの重要性を認識および判断することからも生じている。このような重要性は、上記装置が、モバイルデバイスである場合や、個人のユーザー(消費者等)が使用する装置である場合特に顕著である。このような装置の指紋センサが、実効的なエミュレータに置き換えられた場合、個人や組織(企業等)に対して、個人情報や金銭に関する問題等の、様々な問題が発生するおそれがある。
【0012】
多くの解決策が従来の構成において試みられている。いくつかの解決策においては、センサおよび処理システム(指紋画像が本物であるか否かを判断するホスト等)の両方を囲む密閉された保護ケースを物理的に配置することや、物理的な改ざんが検出された場合にはセンサおよび/または装置全体を無効化することが行われている。いくつかの構成で現在行われている別のアプローチにおいては、フィジカリー・アンクローナブル・ファンクション(PUF : physically unclonable function)と呼ばれる技術をセンサに組み込み、組み込まれたPUFを用いてセンサの認証が行われる。このアプローチは、少なくともチップ面積(つまりシリコンの面積)の点で高コストであり、また、PUFベースの認証は攻撃者によって破られる場合もあることがわかっている。さらに、PUFベースの認証のセキュリティ認証には問題が生じる場合が多い。
【0013】
従来の構成の課題を解消するために、本明細書においては、生体認証センサおよび生体認証センサ出力の絡み合った認証のためのシステムおよび方法の実施形態が開示される。本開示の実施形態では、生体認証センサ(指紋センサ等)は、いわゆるセキュア要素(secure element)と物理的に結合され、例えば、セキュア要素と同じパッケージ基板に成形される(molded)。様々な異なる実施形態に関して、以下の点について記載する。
【0014】
・特定の(例えば、ソリッドステート式の)生体認証センサ(またはセキュア生体認証センサシステム)が通信可能に接続されているホストによって行われる例示的な通信および機能
・生体認証センサ(またはセキュア生体認証センサシステム)に関連する例示的な通信および機能
・セキュア要素に関連する例示的な通信および機能
「生体認証センサ(またはシステム)」、「生体認証センサ(またはセキュア生体認証センサシステム)」等の表現の繰り返しを避けるために、本開示においては、「生体認証センサ」という文言は、他に明示的に規定されている場合や文脈から明らかである場合を除き、「生体認証センサ、セキュア生体認証センサシステム、このようなシステムの一部としての生体認証センサ等」を指すものとして理解される。
【0015】
次にセキュア要素について記載するが、当該技術分野で知られているように、セキュア要素は、IC分野においては比較的単純な通信インターフェイス(例えば、2本のワイヤ(またはピンやパッド等))を備えている。さらに、本開示の実施形態では、生体認証センサは、生体認証読み取り値(指紋画像等)の確認を行うホストとセキュア要素との間に通信可能に介在している。生体認証センサは、第1の通信インターフェイスを介してホストに通信可能に接続されるとともに、別の第2の通信インターフェイスを介してセキュア要素に通信可能に接続される。第2の通信インターフェイスは、生体認証センサ専用である(つまり、ホストは、直接利用することができず、生体認証センサを介してのみ利用できる)。したがって、本開示の実施形態の利点の1つは、ホストに対して、本開示の実施形態のセキュア生体認証センサシステム(生体認証センサおよびセキュア要素を含む)が、少なくとも物理的および通信プロトコルに関しては、従来型の生体認証センサとして示されることである。
【0016】
最近では、暗号IDを特定の装置または他のシステムに割り当てるための効果的な技術コンポーネントとして、低コストのシリアルインターフェイスセキュア要素が登場している。この暗号IDは、詳細は後述するが、1つまたは複数の暗号プロトコルを用いて証明および確認可能である。前述したように、セキュア要素は、ピン数の少ないICである場合が多く、通常は、ベアシリコンダイであるか、チップスケールパッケージ(CSP)である。CSPは、ICパッケージの一種であり、「フリップチップおよびチップスケール技術の実装」と題されるJ-STD-012に規定されている。J-STD-012は、IPCとして知られる事業者団体によって発行されている。
【0017】
様々な実施形態において、生体認証センサとセキュア要素との間で用いられる通信インターフェイスは、Inter-Integrated Circuit(「I2C」または「I2C」)等のプロトコル(またはフォーマット)に従って動作する。これに対し、生体認証センサと所定のホストとの間の別個の独立したインターフェイスは、USB、シリアルペリフェラルインターフェイス(SPI)、イーサネット、Wi-Fi、Bluetooth(登録商標)、赤外線、RF等のプロトコルに従って動作する。一般的に、上記の2つのインターフェイスは同じまたは異なるプロトコルを使用することができ、その一方または両方は、構成または状況に応じて当業者が最適であるとみなす任意のプロトコルであってもよい。
【0018】
いくつかの実施形態では、センサダイ(sensor die)(すなわち、指紋センサコンポーネントが配置されるダイ)は、単純な1線式または2線式のインターフェイス(I2C等を使用)を介し、専用の接続によってセキュア要素に接続されている。いくつかの実施形態では、いわゆるメッセージ認証コード(MAC : message authentication code)を生成するために、いくつかの暗号計算を実行可能である。MACは、当該技術分野で使用される多種のMACのうちのいずれであってもよい。例えば、MACは、当該技術分野では「鍵付きハッシュMAC」とも呼ばれる、HMAC(hash-based MAC)であってもよい。HMACは、一般的に、秘密鍵とともに暗号ハッシュ関数を用いてメッセージまたは他のデータを処理することによって生成される。
【0019】
別の例においては、MACはブロック暗号に基づく種類のMACである。例えば、MACは暗号ブロックチェーン(cipher-block-chaining)MAC(CBC-MAC)である。CBC-MACでは、ブロック暗号を用いてブロックの「チェーン」を生成する暗号化装置が用いられる。所定のブロックを暗号化する際には、暗号化装置は前のブロックを適切に暗号化している必要があり、これによってチェーンが形成される。この特性、すなわち、各ブロック(最初以外)がその直前のブロックに依存するという特性によって、メッセージ(または指紋画像等)の平文ビットに変更が加えられた場合は、最終的なブロックが予測不可能かつ不可逆的に変更される。このため、復号装置はメッセージを正しく復号化するために暗号鍵を有している必要があり、セキュリティが確立されている。
【0020】
なお、本開示においては、ある時点において特定の鍵がメッセージの暗号化に使用されるかメッセージの復号化に使用されるかを問わず、その鍵は両方の場面において「暗号鍵」と呼ばれる(異なる時点において「暗号鍵」または「復号鍵」を同じ値に対して用いるのは混乱を招く可能性があり、これらが実際には同じ値であることが不明瞭になるため、使用しない)。暗号鍵は、本明細書では「セッション鍵」、「一時的セッション鍵」等と呼ばれる場合もある。
【0021】
上述したように、いくつかの実施形態では、生体認証センサは、第1の通信インターフェイス(USBまたはSPI等を使用)を介してホストと通信する。上記インターフェイスを使用して指紋画像を読み出し、生体認証センサの動作レジスタを設定することに加えて、ホストは、本開示の第1のインターフェイスを用いて、生体認証センサ自体またはセキュア要素の機能を利用する生体認証センサによってサポートされる多くの認証プロセスの1つまたは複数を行うことができる。本明細書に記載する例示的な認証プロセスのうち、本開示の実施形態の生体認証センサは、以下のうちの1つまたは複数をサポートする。
【0022】
1.ホストに対して、生体認証センサ自体を(つまり装置として)認証すること。
2.生体認証センサが読み取った指紋画像を認証することによって、同時に、生体認証センサ自体を本質的に認証すること。
【0023】
3.センサとホストとの間の少なくとも関連する通信が暗号化される(一時的セッション鍵等を用いて暗号化される)、上記2の認証プロセス。関連する通信は、例えば、認証のために実際に送信される指紋を含む通信である(ピクセルアレイの較正等の管理目的の通信ではない)。
【0024】
特に、上記の3つの認証プロセスのうちの1番目のプロセス、つまりホストに対して生体認証センサが自身を装置として認証するプロセスに関し、ホストはこのようなプロセスを定期的に行ってもよく、例えば、所定の画像数ごと、ユーザーの要求に応じて、特定のトリガイベントの発生が検知された場合等に行うことができる。しかしながら、少なくとも1つの実施形態において、上記の1番目のプロセスは、各画像の取り込み時にその画像自体の認証が行われる(上記第2の認証プロセスまたは第3の認証プロセスが行われる)場合は不必要であるが、これ(すべての画像に対して認証をオンにしておくか否か)は、ホストから決定できる。
【0025】
なお、ホストが生体認証センサからの「すべての」画像を認証する実施形態であっても、認証されない介在画像が存在することに留意されたい。例えば、ホストが「すべての」画像を認証するように生体認証センサを設定している場合でも、撮像されるが認証には使用されない画像、例えば指紋画像を撮像するピクセルアレイの較正(焦点合わせ等)等のために使用される画像は、認証されない。このような「較正用画像」は、ホストおよび/または生体認証センサによって単に破棄されてもよい。このような較正用画像は、最終的に認証の試みの対象となる画像に対する焦点合わせを行うために、生体認証センサの1つまたは複数のレジスタの設定を繰り返し調節する一種のフォワードフィードバックループで使用される場合もある。他のアプローチを採用してもよい。
【0026】
このように、本開示の実施形態は、効率的かつ低コストで、ホストおよびセンサのいずれにも大幅な変更を必要としない方法によって、指紋センサ等のセンサのセキュリティを大幅に強化することが可能である。本開示の実施形態は、指紋画像の例においては、画像ソースのデータと、暗号レスポンスソースのデータとをセンサ側において組み合わせること等によって、生体認証読み取り値の保護を大幅に向上させる。この組み合わせは、センサ側の暗号配列に対応する暗号配列を備えたホストが、暗号的に絡み合った画像および暗号データを受け取ってセンサ側で処理するまで、理解可能な状態に分離できないように行われる。
【0027】
画像データと、暗号化されたID証明データとはセンサ側で組み合わされて絡み合わされる。その後、絡み合わされたデータは、センサ側で、少なくとも1つの暗号化プロセスまたは関数(ハッシュ化、暗号化等)への入力として使用される。この暗号的に絡み合ったデータの確認(ハッシュ結果の比較の成功、復号の成功等)がホスト側で行われることによって、対応する画像がその特定の生体認証センサによって実際に生体から取得されたものであることがホストによって確認される。このようにして、特定の画像を認証することにより、同時に、その画像がそのセンサによって取得されたものであることが本質的に認証される。様々な実施形態に関して、本開示においてさらに詳しく後述する。本開示の実施形態の利点のひとつは、データ転送と認証とが、1つのプロセス(例えば一連の処理)に組み合わされることである。様々な実施形態において、この利点および他の利点は、市場で容易に入手可能な低コストのセキュア要素を活用することによってもたらされている。
【0028】
実施形態において指紋センサが取得するセンサ取得データには、指紋画像に加えて、当該技術分野において「生体検知データ」と呼ばれるデータが含まれる場合もある。このデータを取得する目的は、指紋画像の取得が、センサのそばに居る、生きている人の本物の指から取得されたものであることを確認することである。このようなデータには、例えば、皮膚温度、脈拍(すなわち心拍数)、血圧、パルスオキシメトリー、発汗、電気コンダクタンス等の測定値が含まれる。いくつかの例においては、1つまたは複数の機械学習モデルが、指紋を「生体」または「非生体」として分類するように訓練されており、その分類結果(および/または関連する信頼度等)が認証の一部として使用される。このため、本明細書において、「画像データ」、「指紋画像データ」、「指紋画像」、「センサデータ」等の用語および語句は、少なくとも1つの実施形態において生体検知データを包含すると理解されるべきである。したがって、少なくとも1つの実施形態では、ホスト側での確認のためにセンサ側で組み合わせて絡み合わされるデータは指紋・生体検知データを含む。
【0029】
さらに、本開示の実施形態では、認証データから画像データが切り離せないことに加えて、生体認証センサとセキュア要素とが、セキュア生体認証センサシステムの一部として互いに物理的に結合していることによっても、セキュリティの向上が達成されている。ホストは、情報に基づく認証が成功することによって、関連する画像が正しいセンサによって生体から取得されたことを信頼できるだけでなく、少なくともいくつかの実施形態では、生体認証センサおよびセキュア要素が、単一の物理的アセンブリにおいて不可欠な部分であることによってホストの信頼性が強化されている。生体認証センサとセキュア要素とが単一の物理的パッケージ内に(成形等により)一緒に設けられること自体によって、セキュリティが強化されている。少なくともいくつかの実施形態では、セキュア生体認証センサシステム自体の機能を無効にすることなく、生体認証センサを対応するセキュア要素から分離することは不可能または極めて困難である。
【0030】
また、本開示の実施形態は、面積が重視される状況において、使用する基板面積が少ないという利点も備えている。この点に関し、コストは、平方ミリメートル(mm)あたりの金額(ドル等)で測定される場合が多い。これに加え、物理的なサイズの制約(例えば、一般的な指紋の表面積)も存在する。さらに、追加のメモリモジュール等の高電力要素を必要としない。このような特徴を備えていることによって、本開示の実施形態は、他のアプローチと比較して、合理化されているだけでなく、製造コストや負荷も減らすことができる。
【0031】
さらに、本開示の実施形態によって提供される利便性およびセキュリティは、ホストとセキュア要素との間に生体認証センサが通信可能に介在する上記構成によってさらに向上されている。このため、いくつかの実施形態においては、ホストと生体認証センサとの間の通信インターフェイスを(従来構成と同様に)構造的に同一に保つことができるが、これに加え、少なくともいくつかの実施形態では、ホストと生体認証センサとの間において、生体認証センサのみがセキュア要素と直接通信できるように構成される。このような実施形態では、正しいセキュア要素の正常な関与を証明する通信は、その通信が正しい生体認証センサを経て送信されたものであることをホストが信頼することができる。暗号的に変更された画像データと暗号認証データとは分離不可能であるため、正しいセキュア要素が、正しい生体認証センサを介して関与したことを確認できる。様々な実施形態の態様に関して、本開示においてさらに詳しく述べる。
【0032】
一実施形態は、互いに物理的に結合されたセキュア要素および生体認証センサを備えたセキュア生体認証センサシステムとして構成される。生体認証センサは、ホストとセキュア要素との間に通信可能に介在するように構成されている。生体認証センサはロジックを有しており、このロジックは、生体認証センサの少なくとも1つのハードウェアプロセッサによって実行されると、生体認証センサに処理を行わせ、この処理は、ホストから暗号チャレンジ(cryptographic challenge)を受信することと、暗号チャレンジをセキュア要素に転送することと、生体認証感知要素を使用して生体認証読み取り値を取得することと、取得された生体認証読み取り値をホストに送信することとを含む。この処理には、暗号チャレンジに基づいてセキュア要素が計算した暗号レスポンス(cryptographic response)をセキュア要素から受信することが含まれる。暗号レスポンスは、ホストとセキュア要素との間の共有シークレットを含んでいる。処理は、読み取り関連データと共有シークレットとの所定の組み合わせから暗号的に絡み合ったトークン(cryptographically entangled token)を生成することをさらに含んでいる。読み取り関連データは、生体認証読み取り値および生体認証読み取り値から導き出されたデータの一方または両方を含んでいる。処理はさらに、取得された生体認証読み取り値が生体認証センサによって取得されたものであることの認証を試みる際にホストが使用するために、暗号的に絡み合ったトークンをホストに送信することを含んでいる。
【0033】
別の実施形態は、第1の通信インターフェイスおよび第2の通信インターフェイスを備えた生体認証センサとして具体化される。生体認証センサは、第1の通信インターフェイスおよび第2の通信インターフェイスを介して、ホストとセキュア要素との間に通信可能に介在するように構成される。生体認証センサとセキュア要素とは互いに物理的に結合されている。生体認証センサはロジック(logic)も有しており、このロジックは、生体認証センサの少なくとも1つのハードウェアプロセッサによって実行されると、生体認証センサに処理を行わせ、この処理は、ホストから暗号チャレンジを受信することと、暗号チャレンジをセキュア要素に転送することと、生体認証感知要素を使用して生体認証読み取り値を取得することと、取得された生体認証読み取り値をホストに送信することとを含んでいる。この処理には、暗号チャレンジに基づいてセキュア要素が計算した暗号レスポンスをセキュア要素から受信することが含まれる。暗号レスポンスは、ホストとセキュア要素との間の共有シークレットを含んでいる。処理は、読み取り関連データと共有シークレットとの所定の組み合わせから暗号的に絡み合ったトークンを生成することをさらに含んでいる。読み取り関連データは、生体認証読み取り値および生体認証読み取り値から導き出されたデータの一方または両方を含んでいる。処理はさらに、取得された生体認証読み取り値が生体認証センサによって取得されたものであることの認証を試みる際にホストが使用するために、暗号的に絡み合ったトークンをホストに送信することを含んでいる。
【0034】
さらに別の実施形態は、記憶された命令を実行する生体認証センサによって実行される方法として具体化される。この方法は、ホストから暗号チャレンジを受信することを含み、生体認証センサはホストとセキュア要素との間に通信可能に介在する。生体認証センサとセキュア要素とは互いに物理的に結合されている。生体認証センサは、暗号チャレンジをセキュア要素に転送し、生体認証感知要素を使用して生体認証読み取り値を取得し、取得された生体認証読み取り値をホストに送信する。さらに、生体認証センサは、暗号チャレンジに基づいてセキュア要素が計算した暗号レスポンスをセキュア要素から受信する。暗号レスポンスは、ホストとセキュア要素との間の共有シークレットを含んでいる。生体認証センサは、読み取り関連データと共有シークレットとの所定の組み合わせから暗号的に絡み合ったトークンを生成する。読み取り関連データは、生体認証読み取り値および生体認証読み取り値から導き出されたデータの一方または両方を含んでいる。生体認証センサは、取得された生体認証読み取り値が生体認証センサによって取得されたものであることの認証を試みる際にホストが使用するために、暗号的に絡み合ったトークンをホストに送信する。
【0035】
本明細書に記載されるように、本開示の1つまたは複数の実施形態は、複数の処理を含む方法として具体化される。1つまたは複数の他の実施形態は、少なくとも1つのハードウェアプロセッサを含み、少なくとも1つのハードウェアプロセッサによって実行されると、複数の処理(開示される方法の実施形態において実行される処理に対して、いくつかの実施形態では対応しているが、他の実施形態では対応していない)を少なくとも1つのハードウェアプロセッサに行わせる命令を格納している1つまたは複数の非一時的なコンピュータ可読記憶媒体を含んでいる。さらに別の1つまたは複数の他の実施形態は、少なくとも1つのハードウェアプロセッサによって実行されると、複数の処理(開示される方法の実施形態において実行される処理および/または開示されるシステムの実施形態において実行される処理に対して、いくつかの実施形態では対応しているが、別の実施形態では対応していない)を少なくとも1つのハードウェアプロセッサに行わせる命令を格納している1つまたは複数の非一時的なコンピュータ可読記憶媒体として具体化される。
【0036】
さらに、上記の実施形態の多くの変形例および置換例が本明細書に記載されており、本開示に記載される任意の変形例または置換例は、あらゆる種類の実施形態において実施可能である。例えば、主に方法の実施形態に関連して本開示で記載されている変形例および置換例は、システムの実施形態および/または非一時的なコンピュータ可読記憶媒体の実施形態に関連して具体化してもよい。このような実施形態のこの柔軟性および相互適用性は、実施形態および/またはその要素の記載および/または定義に用いられている文言(例えば、プロセス、プロセスフロー、方法、手法、ステップ、処理、機能等)の若干の相違に左右されない。
【0037】
図1に、少なくとも1つの実施形態に係る例示的な通信構成100を示す。
図1に示すように、通信構成100は、セキュア生体認証センサシステム102およびホスト104を有しており、ホスト104はリソース106へのアクセスを制御する。リソース106は総称を意図しており、例えば、物理空間、コンピュータシステム、オンラインリソース、一人または複数のユーザーの個人情報(医療情報、金融情報等)等である。記載される例では、ホスト104がセキュア生体認証センサシステム102と行う通信と、セキュア生体認証センサシステム102から受信した情報に対してホスト104が行う処理とに基づいて、ホスト104が、リソース106へのアクセスを許可または拒否する。いくつかの構成では、ホスト104は、現在提示されている指紋を認証した場合はアクセスを許可し、そうでない場合はアクセスを拒否する。他の構成においては、ホスト104は、提示された指紋が認証されると同様にアクセスを許可するが、認証がすぐに成功しなかった場合には、追加情報の要求等の別の機会を提供する。
【0038】
ホスト104は、例えば、マイクロコントローラやマイクロプロセッサ(ARM CM4、ARM CM7、ARM Cortex A9等)から構成される。一般的に、ホスト104は、本明細書に記載されるホスト処理を実行するように適切に装備および構成された(例えば、プログラムされた)任意の演算および通信装置であり、または、集合的にホスト処理を実行する複数の装置の組み合わせである。セキュア生体認証センサシステム102およびホスト104は、単一の演算装置(スマートフォン等)または他の筐体等の、共通の地理的位置に配置してもよいが、これに限定されない。一般的に、セキュア生体認証センサシステム102とホスト104とは、任意の距離によって隔てられており、1つまたは複数のネットワークを介して互いに通信する。
【0039】
セキュア生体認証センサシステム102とホスト104との間の通信は、有線および/または無線で行う。本明細書で主に記載する例では、ホスト104とセキュア生体認証センサシステム102とは、USB、SPI等の有線シリアルインターフェイスを介して接続される。さらに、本明細書で主に記載する例においては、セキュア生体認証センサシステム102の構成要素のうち、生体認証センサ108がホスト104と直接通信する。生体認証センサ108に加えて、セキュア生体認証センサシステム102はセキュア要素110を有しており、生体認証センサ108とセキュア要素110とは物理結合112によって物理的に結合されている。
【0040】
リソース106と同様に、物理結合112は総称を意図しており、実施形態においては、生体認証センサ108とセキュア要素110との間の任意の物理結合が適宜使用される。例えば、いくつかの実施形態では、物理結合112は、生体認証センサ108およびセキュア要素110の両方が成形される共通のパッケージ基板として構成されるか、このような基板を少なくとも有している。いくつかの実施形態では、生体認証センサ108およびセキュア要素110は、別個のダイ上に設けられた後に周知の方法によって(Die-to-dieボンディング等によって)互いに接合される。少なくとも1つの実施形態では、物理結合112は改ざんを防止するように構成されており、生体認証センサ108がセキュア要素110から物理的に分離されると、セキュア生体認証センサシステム102が動作不能になる。
【0041】
ホスト104および生体認証センサ108は、本明細書の記載においては、ホスト/センサインターフェイス116を介してホスト・センサ通信経路114を用いて通信する。この通信はシリアルインターフェイスを介して行ってもよいし、パラレルインターフェイス(カメラインターフェイス等)やネットワーク接続等を介して行ってもよい。BluetoothやWi-Fi等の無線インターフェイスを使用してもよい。さらに、本明細書の記載において、生体認証センサ108およびセキュア要素110は、センサ/セキュア要素インターフェイス120を介して、センサ・セキュア要素通信経路118を用いて通信する。生体認証センサ108とセキュア要素110との間の通信は、I2C等の適宜のプロトコルに準拠していてもよい。
【0042】
セキュア要素110は、1つまたは複数のシークレットおよび1つまたは複数の秘密鍵を有するIC(例えばNXP A1006等の市販品)であってもよい。これらのシークレットおよび秘密鍵によって、セキュア要素110、ひいてはセキュア要素110に密接に結合された生体認証センサ108等の装置に対して、固有の暗号アイデンティティが付与される。この固有の暗号アイデンティティは、チャレンジ・レスポンス認証方式を用いて確認してもよいし、他の周知の方法を用いてもよい。さらに、セキュア要素110は、例えばセキュア生体認証センサシステム102の製造業者等の適切な法人によって暗号的に署名されたデジタル証明書を記憶していてもよい。少なくとも1つの実施形態では、ホスト104はセキュア要素110のデジタル証明書のコピーも記憶しており、このコピーを用いて、セキュア要素110が自らのデジタル署名でデジタル署名した1つまたは複数のデータブロックを確認する。いくつかの実施形態では、ホスト104自体がセキュア要素(図示せず)を有している。
【0043】
少なくとも1つの実施形態では、センサ/セキュア要素インターフェイス120を介して行われる通信に関して、生体認証センサ108は制御コンポーネントとして機能し、セキュア要素110は対応する被制御コンポーネントとして機能する。このような関係は、当該技術分野では「マスター・スレーブ」関係と称される場合もあるが、本開示においては、「制御コンポーネント」および「被制御コンポーネント」という用語を代わりに用いる。生体認証センサ108は、生体認証センサ108とセキュア要素110との間の通信の同期を行うためのシリアルクロックとして機能してもよい。同様に、少なくとも1つの実施形態では、ホスト/センサインターフェイス116を介して行われる通信に関して、ホスト104が制御コンポーネントとして機能し、生体認証センサ108が被制御コンポーネントとして機能する。
【0044】
様々な実施形態および様々な場合において、ホスト104は、認証されていない指紋を少なくともある程度の時間にわたって単に読み取るモードを選択するか、このモードで動作するように指示される。さらに、すべての指紋を認証するモードを有していてもよい。代替的または追加的に、ホスト104は、すべてではなく一部の指紋を認証するモードを有していてもよく、例えば、一定時間ごとに、一定回数の指紋スキャナごとに、ランダムに、要求されているリソースに応じて、かつ/またはその他の方法によって1つまたは複数の指紋を認証するように動作してもよい。一実施形態においては、ホスト104は、特定の値および/またはコマンドを生体認証センサ108内の1つまたは複数のレジスタまたは他の記憶要素に書き込むことによって、現在の動作モードに関して、生体認証センサ108に対して少なくとも部分的に指示を行う。これらのレジスタは、認証に関するタスク専用のレジスタであるため、本明細書では「認証レジスタ」と称される。
【0045】
いくつかの実施形態では、状況に応じて(例えば、一定時間ごと、上記の例のうちの1つの方法、または別の方法によって)、ホスト104に対して生体認証センサ108の認証を行うように、ホスト104が生体認証センサ108に指示する。このような例の説明に先立ち、様々な図および/または図の組み合わせを参照して以下に記載される多くの例においては、ホスト104は、指紋画像が生体認証センサ108によって取得されたものであることを認証することに留意されたい。しかしながら、次に記載する例では、生体認証センサ108自体を装置として認証することをホスト104が要求する。この処理は、追加的または代替的に、生体認証センサ108から開始してもよい。
【0046】
生体認証センサ108(またはセキュア生体認証センサシステム102)を装置として認証するために、ホスト104は、セキュア要素110に固有のデジタル証明書のコピーを記憶していてもよい。この証明書は他の目的にも使用でき、例えば、後述するように、生体認証センサ108からホスト104に送信される画像データのデジタル署名の確認にも使用できる。生体認証センサ108を装置として認証する例に戻り説明を続ける。まず、ホスト104は、ホスト/センサインターフェイス116を介して生体認証センサ108に読み取りコマンドを送信し、この読み取りが、生体認証センサ108からセキュア要素110に転送される。次に、ホスト104は、暗号チャレンジ(セキュア要素の技術的能力に応じて、乗数を伴う乱数、特定の楕円曲線上の点等)を生体認証センサ108に送信し、生体認証センサ108は同様にセキュア要素110に転送する。
【0047】
生体認証センサ108は、本明細書において「センサ認証ロジック」と呼ばれるロジックを備えている。生体認証センサ108は、このロジックを実行することによって、上記および他の様々な処理を実行する。セキュア要素110は、作成されたチャレンジに対するレスポンスを計算し、そのレスポンスを生体認証センサ108に通信する。生体認証センサ108は、そのレスポンスをホスト104に送信する。次いで、ホスト104は、レスポンスの真正性を確認することによって、生体認証センサ108を装置として認証する。次いで、生体認証センサ108は、(ホスト104によって行われた)読み取りを自身に、すなわち生体認証センサ108に転送する。セキュア要素110は、自身のデジタル証明書を使用してレスポンスにデジタル署名してもよく、ホスト104は、その証明書のコピーを使用して確認できる。生体認証センサ108の装置としての認証をホスト104に対して行う上記のような処理には60ミリ秒(ms)程度を要し、この時間の大部分(~50ms)は、セキュア要素110がチャレンジに対するレスポンスを計算することに費やされる。
【0048】
画像認証を行う(つまり、本質的にセンサ認証を行う)他の例については後述する。なお、ホスト104が、生体認証センサ108の装置としての認証を行うことはある程度有用ではあるが、攻撃に対するホスト104の脆弱性の課題が残る。例えば、悪意のある行為者がホスト104と生体認証センサ108との間に介入し、事前に記録された指紋画像を、その画像が生体認証センサ108から送られたかのように送信することによって、生体認証センサ108になりすます攻撃を受けるおそれがある。これは、本開示の実施形態によって対処される問題の一例である。実施形態においては、指紋画像自体がホスト104によって認証され、詳細には、確認された画像が、生体認証センサ108によって取得されたものであることをホスト104が認証する。これによって、本質的に、生体認証センサ108がホスト104に対して装置として認証される。
【0049】
図2に、少なくとも1つの実施形態に係る例示的な通信構成200を示す。
図1の通信構成100と同様に、
図2の通信構成200も、ホスト104およびリソース106を有し、ホスト/センサインターフェイス116およびセンサ/セキュア要素インターフェイス120(通信構成200に図示されている)を有している。ホスト104は、ホストコンポーネント204およびプロトコルA制御コンポーネント206を有している。ホストコンポーネント204は、ホスト104の各構成要素を包括的に表す総称であり、メモリ、他のデータ格納装置、1つまたは複数のプロセッサ、1つまたは複数の他の通信インターフェイス、任意のユーザーインターフェイス等が含まれる。ホストの内部アーキテクチャの詳細は構成に応じて異なっていてもよい。
【0050】
通信構成200は、セキュア生体認証センサシステム202をさらに有している。セキュア生体認証センサシステム202は、(i)センサダイ214を含む生体認証センサ208と、(ii)セキュア要素ダイ216とを有している。これらは、物理結合212によって互いに物理的に結合されている。物理結合212は、例えば、当業者に周知のDie-to-dieボンディングである。センサダイ214は、プロトコルA被制御コンポーネント218、センサレジスタ220、指紋センサアレイ(fingerprint sensor array)222、センサ認証ロジック230、認証レジスタ232およびプロトコルB制御コンポーネント234を有している。ホスト/センサインターフェイス116を介したホスト104とセキュア生体認証センサシステム202との間の通信に例示的なプロコトルとしてSPIが使用される場合、プロトコルA制御コンポーネント206はSPI制御コンポーネントであり、プロトコルA被制御コンポーネント218はSPI被制御コンポーネントとなる。
【0051】
センサレジスタ220および指紋センサアレイ222は、制御およびステータスメッセージ224を通信する。指紋がスキャンされると、指紋センサアレイ222が、指紋画像226(
図2では総称的に「センサデータ」として示されている)をプロトコルA被制御コンポーネント218に送信する。指紋画像226のコピーは、ジャンクション(junction)228を介してセンサ認証ロジック230にも送信される。プロトコルA被制御コンポーネント218は、本明細書に記載される様々な目的のために、センサレジスタ220、センサ認証ロジック230および認証レジスタ232と通信する。
【0052】
指紋センサアレイ222から指紋画像226を受信することと、上記のようにプロトコルA被制御コンポーネント218と通信することに加えて、センサ認証ロジック230は、センサレジスタ220、認証レジスタ232およびプロトコルB制御コンポーネント234とも通信する。さらに、認証レジスタ232は、上記のようにプロトコルA被制御コンポーネント218およびセンサ認証ロジック230と通信することに加えて、プロトコルB制御コンポーネント234と通信する。
【0053】
さらに、プロトコルB制御コンポーネント234は、センサ認証ロジック230および認証レジスタ232との通信に加えて、プロトコルB被制御コンポーネント236と通信する。プロトコルB被制御コンポーネント236は、セキュア要素210とともに、セキュア要素ダイ216上に設けられている。生体認証センサ208とセキュア要素210との間の通信に例示的なプロトコルとしてI
2Cが使用される場合、プロトコルB制御コンポーネント234はI
2C制御コンポーネントであり、プロトコルB被制御コンポーネント236はI
2C被制御コンポーネントとなる。さらに、セキュア要素210およびプロトコルB被制御コンポーネント236は、
図2では説明のために別個のものとして示されているが、セキュア要素210自体が、I
2Cおよび/または1つもしくは複数の他のプロトコルに従って(部分的に)制御されるコンポーネントであってもよい。
【0054】
指紋センサアレイ222は、周知のピクセルアレイまたは他の感知アレイおよび/または要素であってもよい。センサレジスタ220には、ホスト104によって様々な値を設定可能であり、指紋センサアレイ222が様々な方法およびモードで動作するように構成できる。認証レジスタ232は、本開示に記載する様々な認証関連タスクおよび機能を実行するために、プロトコルB制御コンポーネント234およびプロトコルB被制御コンポーネント236を介して、センサ認証ロジック230およびセキュア要素210によってリソースとして使用される。他の実施形態では、認証レジスタ232は、制御レジスタ、ステータスレジスタ、データレジスタ等の他の様々な用途に使用される。
【0055】
動作時には、センサ認証ロジック230が実行されることによって、セキュア生体認証センサシステム202が、本明細書に記載される一連の処理のうちの1つまたは複数を実行する。例えば、セキュア生体認証センサシステム202は、方法1100および本明細書で説明される多くの別例を実行するように構成(例えば、プログラム)される。これらの機能については、本開示の別の部分において図面を参照して説明する。なお、
図2に示すように、一体成型モジュールにおいて2つのダイを一体化する構成が採用されていることによって、安全でコスト効率の高いセキュア生体認証センサシステムが達成されている。セキュアモジュール。指紋センサアレイ222およびセンサ認証ロジック230は、フィールドプログラマブルゲートアレイ(FPGA)上に実装することができ、セキュア要素210は、例えば、NXP A1006等の製品である。実装の例は多数存在するが、センサ認証ロジック230の一部またはすべてを実装するために専用のハードウェアが使用される実装や、生体認証センサ208およびセキュア要素210が単一のダイに設けられる構成またはdie-to-dieボンディングを行う構成で配置される実装等が挙げられる。
【0056】
様々な実施形態において、センサ認証ロジック230は、同じ物理的回線(SPI等)を介して認証および画像読み出しの両方の実行が可能であり、非認証関連コマンドおよびデータを、センサレジスタ220および指紋センサアレイ222等の生体認証センサ208のコンポーネントに送信可能であり、認証関連のコマンドおよびデータを、プロトコルB制御コンポーネント234およびプロトコルB被制御コンポーネント236を介して、認証レジスタ232とセキュア要素210との間で送信可能であり、画像認証、暗号化等をサポートする演算リソースを提供できるという利点等を備えている。後者の点に関し、センサ認証ロジック230は、いくつかの実施形態では1つまたは複数の暗号ハッシュ関数を使用した画像認証をサポートし、いくつかの実施形態では画像認証および暗号化(ブロック暗号等を使用)をサポートする。
【0057】
図3に、少なくとも1つの実施形態に係る例示的な通信構成300を示す。
図3の通信構成300は、多くの点で
図2の通信構成200に類似しているため、詳しい説明は省略する。
図2と
図3との間の主な相違点は、セキュア生体認証センサシステム302に関して、
図2では別個のセンサダイ214上に示されていたコンポーネントが、セキュア要素310とともに共通のパッケージ基板304に設けられていることである。他の大部分の態様は(少なくとも1つの実施形態において)本質的に同じであるが、(i)センサ認証ロジック330および認証レジスタ332と、(ii)セキュア要素310との間のセンサ/セキュア要素インターフェイス120を介した通信は、パッケージ基板304上の有線接続(ワイヤボンディング等)によって行われる。
【0058】
本開示における多くの図面において、対応する要素には、異なる図においても同様の符号が付されている。したがって、
図2および3においては、セキュア生体認証センサシステム202(302)、プロトコルA被制御コンポーネント218(318)、センサレジスタ220(320)、指紋センサアレイ222(322)、制御およびステータスメッセージ224(324)、指紋画像226(326)、ジャンクション228(328)、センサ認証ロジック230(330)および認証レジスタ232(332)について、先頭の桁を除いて、要素の符号が一致している。図面全体において、可能な限り、各要素に対してこのような符号付けがなされている。
【0059】
図4に、少なくとも1つの実施形態に係る、例示的なセキュア生体認証センサシステム402の例示的なアーキテクチャ400を示す。
図4のアーキテクチャ400は、範囲に関しては、
図1のセキュア生体認証センサシステム102、
図2のセキュア生体認証センサシステム202および
図3のセキュア生体認証センサシステム302に類似するセキュア生体認証センサシステム402を備えている。図示を簡略化するために、
図4ではホストおよびリソースが省略されているが、実際の構成ではホストとリソースが存在しないというわけではない。
図4の要素のうち、プロトコルA被制御コンポーネント418、センサレジスタ420、指紋センサアレイ422、制御およびステータスメッセージ424、指紋画像426、ジャンクション428、センサ認証ロジック430および認証レジスタ432は、少なくとも1つの実施形態において、
図3(および
図2)に示す要素と対応しているため、詳しい説明は省略する。
【0060】
図に示すように、セキュア要素410は、他のコンポーネントが設けられるセンサダイ406と、パッケージ基板404を共有している。
図4において、ホスト/センサインターフェイス116は、4つのパッドのグループとして示されている。これらのパッドは、
図4では追加パッド444として示されている、より大きいグループの一部である。これらのパッドは、名称が与えられている4つのパッド、すなわち、電源パッド440、接地パッド442、データパッド436およびデータパッド438以外のパッドであるため、
図4において「追加」と表現されている。
図4では、センサ/セキュア要素インターフェイス120は、各ワイヤボンディング接続によって、(i)センサダイ406のデータパッド436がセキュア要素410のデータパッド446に接続され、(ii)センサダイ406のデータパッド438がセキュア要素410のデータパッド448に接続される各点として図示されている。セキュア要素410は、電源パッド450および接地パッド452も有している。
【0061】
相互接続における対応関係を示すために、データパッド436および446には両方とも「A」の符号が付され、データパッド438および448には両方とも「B」の符号が付されている。
図4において、プロトコルB制御コンポーネント434は、センサ認証ロジック430および認証レジスタ432に接続され、端子「A」および「B」も有するものとして示されている。これらの接続を介して、センサ認証ロジック430および認証レジスタ432は、プロトコルB制御コンポーネント434内の「A」端子および「B」端子を使用して、(i)センサダイ406の「A」データパッド436を介してセキュア要素410の「A」データパッド446と通信し、(ii)センサダイ406の「B」データパッド438を介してセキュア要素410の「B」データパッド438と通信する。
【0062】
少なくとも1つの実施形態では、センサダイ406およびセキュア要素410は、通信チャネル(I2C等)とともに、ベアダイ(bare die)の状態で共通のパッケージ基板、すなわち、パッケージ基板404に装着されて成形されている。様々な実施形態において、センサダイ(センサダイ406等)およびセキュア要素(セキュア要素410等)は、ワイヤボンディングまたは他の同等のマルチダイモジュールもしくはシステムインパッケージ相互接続技術によって接続される。相互接続された2つのダイを備えた基板は、エポキシ化合物等を用いて成形でき、これは、ソリッドステート指紋センサ技術の分野では一般的な方法である。
【0063】
図5に、少なくとも1つの実施形態に係る、例示的なセキュア生体認証センサシステム502のわずかに異なるアーキテクチャ500を示す。
図5のアーキテクチャ500は、
図4のアーキテクチャ400とよく似ているため、
図5では、400番台の符号も用いられている。
図5において500番台の符号が付されているのは、セキュア生体認証センサシステム502、パッケージ基板504、セキュア要素510ならびにセキュア要素510の4つのコンポーネント、すなわち電源はんだバンプ550、接地はんだバンプ552、データはんだバンプ546およびデータはんだバンプ548である。これらのはんだバンプはチップパッド上に積層されている。
【0064】
このように、セキュア要素510は、パッドではなく、4つのはんだボール546、548、550および552によってパッケージ基板504に接続されている。これは、当該技術分野ではチップスケールパッケージ(CSP : chip-scale packaging)と呼ばれている接続の一例であり、ICのパッケージの一種である。一実施形態では、対応する生体認証センサの形状を損なわないように、はんだCSP(ボールが潰れた状態)の高さは、生体認証センサの高さよりも低い。
【0065】
図6に、第1の例の情報フロー
図600を示す。この図には、少なくとも1つの実施形態に係る、例示的ホスト604および例示的セキュア生体認証センサシステム602の両方が複数の対応するハッシュ関数を使用する構成例を示す。
図6には、セキュア生体認証センサシステム602およびホスト604が示されている。ホスト604は、画像記憶装置618、レスポンス計算器610、内部ハッシュ関数624、外部ハッシュ関数640および比較関数646を有している。セキュア生体認証センサシステム602は、指紋センサアレイ622、ジャンクション614、レスポンス計算器612を含むセキュア要素608ならびに内部ハッシュ関数624および外部ハッシュ関数640を含むセンサ認証ロジック630を有している。当然ながら、内部ハッシュ関数624および外部ハッシュ関数640は、ハッシュ関数のセンサ側のインスタンスであるが、実質的には同じである。
図6および続く4つの図では、情報項目(例えば、暗号チャレンジ606、暗号レスポンス636等)が破線で示されている。
【0066】
情報フロー
図600の情報フローは、ホスト604が暗号チャレンジ606を生成(計算等)し、その暗号チャレンジ606をホスト604のレスポンス計算器610およびセキュア要素608のレスポンス計算器612の両方に提供することから始まる。これらのレスポンス計算器610および612の一方または両方、ならびに以下の各図を参照して説明される他のレスポンス計算器は、当業者が適切であると判断するハードウェア、ファームウェアおよび/またはソフトウェアの任意の組み合わせで構成することができる。いくつかの実施形態では、ホストのレスポンス計算器はファームウェアおよび/またはソフトウェアで構成されるが、セキュア要素のレスポンス計算器はハードウェアで構成される。レスポンス計算器610は、暗号チャレンジ606に基づいてシークレット(secret)628を計算し、そのシークレット628を、本明細書では内部ハッシュ関数624と呼ぶ関数に入力する2つの入力のうちの1つとして使用する。
【0067】
センサ側では、指紋画像626が指紋センサアレイ622によって読み取られ、ジャンクション614を介してセンサ側の内部ハッシュ関数624およびホスト側の画像記憶装置618の両方に送信される。少なくとも1つの実施形態では、指紋画像626は、セキュア生体認証センサシステム602とホスト604との間で平文として送信される。図示されるように、指紋画像626は2つの入力のうちの1つであり、もう1つは、暗号チャレンジ606に基づいてセキュア要素608のレスポンス計算器612によって計算されるシークレット638である。このシークレット638は、セキュア要素608から内部ハッシュ関数624に送信される、暗号レスポンス636内のシークレット638である。
【0068】
多くの場合、セキュア要素608による暗号レスポンス636の計算に伴う待ち時間は、50ミリ秒程度である。この計算が完了するまでセンサ側の内部ハッシュ関数624が待機してから処理を開始した場合、上記の50ミリ秒程度の遅延によりプロセス全体が滞る。しかしながら、少なくとも一実施形態では、センサ側の内部ハッシュ関数624は、指紋画像626からのデータブロックのハッシュ結果の計算を開始してダイジェストを生成する。このダイジェストは、
図6ではセンサ側の中間ハッシュ結果634として示されている。一実施形態では、シークレット638が用意されると、センサ側の内部ハッシュ関数624がシークレット638に基づいて結果を計算する。
【0069】
プロセスのこの時点で、セキュア生体認証センサシステム602は、指紋画像626およびシークレット638の両方からに基づくハッシュ関数結果を含むデータセットを、センサ認証ロジック630を用いて生成している。しかしながら、これらのハッシュ関数結果はまだ2つの別個のデータセットであり、センサ側内部ハッシュ関数624を用いてこれらのハッシュ関数結果が生成されるデータ(指紋画像626またはシークレット638)に基づいて分離可能である。セキュリティをさらに強化するために、本開示の実施形態は、次に、その組み合わされたデータセット(センサ側中間ハッシュ結果634)を、外部ハッシュ関数640を用いて処理し、
図6におけるセンサハッシュ結果644を生成する。
【0070】
重要な点は、センサハッシュ結果644は、(i)画像ソースデータ(この例では、内部ハッシュ関数624を用いて指紋画像626を処理したハッシュ結果)と、(ii)暗号認証データ(この例ではシークレット638)との両方から、分離不可能に生成された値であることである。センサハッシュ結果644の値自体からは、これら2つのデータセットのどちらがセンサハッシュ結果644の一部に(単独で)寄与したかを知ることは不可能である。このため、これは、本明細書において「暗号的に絡み合ったトークン」と称されるものの一例である。
【0071】
これは、2つのテキスト文書を取得し、両方の文書内の「a」で始まる単語、「b」で始まる単語から「z」で始まる単語までの合計数を数える方法に似ている。双方が知っている「horse」等の暗号コードを入力し、「h」で始まる単語の合計数、「o」で始まる単語の合計数、「r」で始まる単語の合計数、「s」で始まる単語の合計数および「e」で始まる単語の合計数の積を計算する。暗号化されたチャネルの両側で同じ答えが得られる(得られることが期待される)が、その数字だけからは、どちらの文書の詳細も推定不可能である。このため、これは「暗号的に絡み合ったトークン」の一例である。
【0072】
本例の2つのハッシュ関数に戻るが、2つのハッシュ関数624および640の順次演算は次のように表すことができる。
【0073】
【0074】
ここで、「H1」は内部ハッシュ関数624を表し、「H2」は外部ハッシュ関数640を表し、「K」は計算されたシークレット628または638を表し、「image data」は指紋画像626を表し、「K XOR ipad」は計算されたシークレットのipadスライスを表し、「K XOR opad」は、計算されたシークレットのopadスライスを表す。当該技術分野で知られているように、「ipad」と「opad」は実質的にシークレットをスライスするナイフ(knives used to slice your secret)として機能する既知の定数である。詳細には、「ipad」はブロックサイズの内部パディング(inner padding)であり、バイト0x36の繰り返しで構成される。一方、opadはブロックサイズの外部パディングであり、バイト0x5cの繰り返しで構成される。
【0075】
ホスト側での処理も同様の数式によって表されるが、当然ながら、内部ハッシュ関数624および外部ハッシュ関数640のホスト側インスタンスが使用される点、センサ側中間ハッシュ結果634の代わりにホスト側中間ハッシュ結果632が使用される点(ただし、認証の試みが適正に行われた場合、すなわち、セキュア生体認証センサシステム602において生体からの指紋スキャンが適正に行われている試み(認証が成功するか否かは問わない)が行われた場合は、これらの結果は実質的に等しい)、シークレット638の代わりにシークレット628が使用される点(ただし、上記と同じく、正当な認証の試みにおいてはこれらのシークレットは実施的に等しい)において相違している。
【0076】
ホスト側外部ハッシュ関数640の出力は、
図6ではホストハッシュ結果642として示されている。比較関数646を使用して、ホスト604は、ホストハッシュ結果642を、セキュア生体認証センサシステム602から受信したセンサハッシュ結果644と比較する。一致した場合、指紋画像626が、セキュア生体認証センサシステム602において生体から正当にスキャンされたものであると結論付けることができる。したがって、認証結果648は、一致した場合には真に設定され、そうでない場合には偽に設定される。当然ながら、その指紋画像626が、特定のシステムの承認されたユーザーのものであるか否かに関しては、別の事項である。
【0077】
いくつかの実施形態では、内部ハッシュ関数624および外部ハッシュ関数640は、Secure Hash Algorithm 256(SHA-256)アルゴリズム、SHA-512アルゴリズム等のセキュアハッシュアルゴリズムである。内部ハッシュ関数624および外部ハッシュ関数640は、異なる入力を使用して2回実行される同じハッシュ関数であってもよいし、2つの異なるハッシュ関数であってもよい。いくつかの実施形態では、以下のように、内部ハッシュ関数624への入力の順序が逆になる。
【0078】
【0079】
なお、これら2つの「個別の入力(separate inputs)」は、実際には「2つの」入力の単一値の連結(concatenation)である。また、この方法では、「K」(つまり、シークレット638)の計算が完了してから後続の計算を行うため、上記の方法よりも待ち時間が長くなる。同様に、ホスト側でも、ホスト604は、セキュア生体認証センサシステム602から指紋画像626を(例えば、一般的に60msを超えるフレーム読み出し速度において画像データフレームとして)受信し始めると、指紋画像626のハッシュ化を開始する。一般的にセキュア要素の処理能力は低いため、セキュア要素608がシークレット638を用意するよりもはるかに早くホストがシークレット628を用意する可能性が高い。
【0080】
セキュア生体認証センサシステム602は、セキュア要素608からの暗号レスポンス636(シークレット638を含む)が生成されているか否かを(例えば、各フレームの送信後に)確認する。シークレット638が用意されると、セキュア生体認証センサシステム602は、内部ハッシュ関数624を使用してシークレット638をハッシュ化してダイジェスト(digest)に累算し、次に外部ハッシュ関数640を使用してセンサ側の中間ハッシュ結果634をハッシュ化する。これが完了すると、セキュア生体認証センサシステム602は、センサハッシュ結果644をホスト604に送信する。この送信は、割り込みベースで、またはホスト604による定期的なポーリングに対する応答として行われる。いくつかの実施形態では、センサハッシュ結果644は、セキュア生体認証センサシステム602によってセキュア要素608に送られ、セキュア要素608のデジタル証明書を使用して暗号署名される。この場合、追加のセキュリティ対策として、デジタル署名もホスト604によって確認される。さらに、少なくとも1つの実施形態では、ハッシュ関数、暗号化(詳細は後述する)または別の暗号化手法が使用されているか否かに関係なく、画像全体が、関連する暗号化関数を用いて処理される。このため、ホスト側において、画像全体の完全な一致がホストで得られたことを判断できる。
【0081】
図7に、第2の例の情報フロー
図700を示す。この図には、少なくとも1つの実施形態に係る、例示的ホストおよび例示的生体認証センサの両方が単一の対応ハッシュ関数を使用する構成例を示す。
図7は
図6によく似ており、
図6よりも単純であるため、詳しい説明は省略する。
図6の情報フロー
図600と、
図7の情報フロー
図700との主な相違点は、
図7では、各側(セキュア生体認証センサシステム702およびホスト704)で単一のハッシュ関数のみが使用されるのに対し、
図6の情報フロー
図600では、2つの(またはより多くの)ハッシュ関数が用いられる点である。
【0082】
図7に示す要素のうち、暗号チャレンジ706、レスポンス計算器710、シークレット724、セキュア要素708、レスポンス計算器712、暗号レスポンス734、シークレット736、画像記憶装置718、比較関数744および認証結果746は、
図6において対応する符号が付された要素と実質的に(少なくとも1つの実施形態において)同じである。
【0083】
各側の単一のハッシュ関数732では、指紋画像726およびシークレット724または736が、ハッシュ関数732を用いて処理される前に所定の方法で組み合わされ、その結果、単一のハッシュ関数のみを使用して暗号的に絡み合ったトークンが生成される。一例においては、ホスト704およびセキュア生体認証センサシステム702の両方が、指紋画像726およびシークレット724または736から構成されるブロックシーケンス内の特定の位置に計算したシークレットを配置できる。例えば、双方とも、ホストハッシュ結果740およびセンサハッシュ結果742をそれぞれ生成する前に、最後から5番目にシークレットを配置し、他方が同じことを行うことを把握している。別の例では、ブロックシーケンス内のシークレットの位置の選択は、計算されたシークレット自体によって決まる。例えば、両側において、以下の通り、値が計算される。
【0084】
【0085】
この場合は、使用する係数(modulus)が11であることを双方が把握している。他の実施形態では、計算されたシークレットの最終桁(または他の所定の桁)が係数として使用される。また、暗号的に絡み合ったトークンの生成においては、他の様々な手法を用いて指紋画像726およびシークレット724または736を所定の形式に組み合わせることができる。
図6と同様に、比較関数744によって、ホストハッシュ結果740とセンサハッシュ結果742との間で一致が判断されたか否かに応じて、認証結果746が真または偽に設定される。
【0086】
図8に、第3の例の情報フロー
図800を示す。この図には、少なくとも1つの実施形態に係る、例示的ホスト804および例示的セキュア生体認証センサシステム802が共通の暗号化および復号化方法を用いる第1の構成例が示されている。
図8、9および10を参照して説明する暗号化の実施形態は、上記のハッシュ関数ベースの実施形態に比べて、待ち時間が長くなる場合がある。これは、
図8、9および10の実施形態のセキュア要素は、画像データおよびシークレットを一緒に使用して、暗号化された暗号的に絡み合ったトークン(これらの実施形態では、画像全体および追加データが含まれる)を生成する前に、シークレットの計算を完了する必要があるためである。
【0087】
図8に示す要素のうち、暗号チャレンジ806、レスポンス計算器810、セキュア要素808、レスポンス計算器812、シークレット814、シークレット834を含む暗号レスポンス832、画像記憶装置818、指紋センサアレイ822および指紋画像826は、上記の図面において対応する符号が付された要素と実質的に(少なくとも1つの実施形態において)同じである(このため、詳しい説明は省略する)。
【0088】
本実施形態では、センサ認証ロジック830は、暗号鍵を用いたデータブロックの暗号化において、AES(Advanced Encryption Standard)等のブロック暗号ベースの暗号規格を使用するハードウェア暗号化装置836を有している。
図8に示される実施形態では、ハードウェア暗号化装置836は、シークレット834を暗号鍵として用いて指紋画像826を暗号化する。これに対し、ホスト804は、計算されたシークレット814を用いて指紋画像826を復号化する。認証結果844は、復号化が成功した場合には真に設定され、それ以外の場合には偽に設定される。
図8、9および10に示す実施形態のように、少なくともいくつかの実施形態では、暗号化が実行されるまでは、指紋画像は送信されない。ただし、実施形態の一部の記載においては、この処理はプロセスのより早い時点(例えば、
図11の通信構成100の処理1108等)で言及されている。
【0089】
図9に、第4の例の情報フロー
図900を示す。この図には、少なくとも1つの実施形態に係る、例示的ホストおよび例示的生体認証センサが共通の暗号化および復号化方法を用いる第2の構成例が示されている。
図9の情報フロー
図900は、
図8の情報フロー
図800に類似しているため、詳しい説明は省略する。唯一の相違点は、ハードウェア暗号化装置936がセキュア要素908に対して要求する乱数944に等しい暗号鍵を使用して、ハードウェア暗号化装置936が指紋画像926を暗号化することである。他の実施形態では、センサ認証ロジック930自体が乱数944を生成する。
【0090】
さらに、センサ暗号結果938に示すように、ハードウェア暗号化装置936は、乱数944を(一時的な)暗号鍵として用いて指紋画像926を暗号化するだけでなく、シークレット934を暗号鍵として用いて乱数を暗号化する。一実施形態では、ホスト904は、暗号化された指紋画像926を最初に受信した後に、暗号化された乱数944を要求する。次に、ホスト904は、自らが計算したシークレット914を用いて乱数944を復号化し、その後、乱数944を一時的セッション鍵として用いて指紋画像926を復号化する。比較関数946の結果は、認証結果948として記憶される。
【0091】
図10に、第5の例の情報フロー
図1000を示す。この図には、少なくとも1つの実施形態に係る、例示的ホスト1004および例示的セキュア生体認証センサシステム1002が共通の暗号化および復号化方法を用いる第3の構成例が示されている。
図10に示す要素のうち、暗号チャレンジ1006、セキュア要素1008、レスポンス計算器1010、レスポンス計算器1012、シークレット1014、画像記憶装置1018、指紋センサアレイ1022、指紋画像1026および比較関数1044は、上記の図において同様の符号が付された、対応する要素と実質的に同じである。
【0092】
前述した2つの図と
図10との間の主な相違点は、センサ暗号結果1038からわかるように、センサ認証ロジック1030がハードウェア暗号化装置1036を用いて、指紋画像1026およびシークレット1034の両方をパッケージとして一緒に暗号化し、この暗号化には対称暗号鍵1048が用いられることである。同様に、ホスト側では、セキュア生体認証センサシステム802から送信された情報が鍵1048を用いて復号化され、その後、ホスト1004が、ホストが計算したシークレット1014と、セキュア要素が計算したシークレット1034とを、比較関数1044を用いて比較する。比較関数1044の出力に応じて、真または偽の結果が認証結果1046として格納される。さらに、指紋画像1026が画像記憶装置1018に格納される。
【0093】
図11に、セキュア生体認証センサシステム102、セキュア生体認証センサシステム202、セキュア生体認証センサシステム302、セキュア生体認証センサシステム402または別のセキュア生体認証センサシステム等のセキュア生体認証センサシステムによって実行される方法の一例である方法1100を示す。一般的に、方法1100は、記載された機能を実行するように装備され、プログラムされ、構成された任意の適切な演算および通信装置によって実行される。ここでは、方法1100について比較的簡潔に説明するが、本明細書で開示される実施形態のあらゆる置換および組み合わせが、方法1100の置換や実施形態等として適用できることを理解されたい。
【0094】
処理1102において、セキュア生体認証センサシステムがホストから暗号チャレンジを受信する。生体認証センサは、ホストとセキュア要素との間に通信可能に介在しており、生体認証センサおよびセキュア要素は互いに物理的に結合されている。処理1104では、セキュア生体認証センサシステムが暗号チャレンジをセキュア要素に転送する。処理1106では、セキュア生体認証センサシステムが、生体認証感知要素を用いて生体認証読み取り値を取得する。処理1108では、セキュア生体認証センサシステムが、取得された生体認証読み取り値をホストに送信する。前述したように、この処理は、センサ側で暗号化が実行されるまで行われない。一般的に、論理的な依存関係によって決定される場合を除き、列挙されている方法1100の処理の順序は限定を意図するものではなく、異なる順序で処理を実行してもよい。
【0095】
処理1110では、セキュア生体認証センサシステムが、セキュア要素から暗号レスポンスを受信する。暗号レスポンスは、暗号チャレンジに基づいてセキュア要素によって計算されたものであり、ホストとセキュア要素との間の共有シークレットを含んでいる。処理1112では、セキュア生体認証センサシステムが、読み取り関連データと共有シークレットとの所定の組み合わせから、暗号的に絡み合ったトークン(例えば、1つまたは複数のハッシュ関数の結果、暗号結果等)を生成する。読み取り関連データには、生体認証読み取り値(例えば指紋画像)と、生体認証読み取り値から導出されたデータ(例えば計算された暗号レスポンスシークレット等の1つまたは複数の他の値を伴う指紋画像のハッシュ)との一方または両方が含まれる。処理1114では、セキュア生体認証センサシステムが、暗号的に絡み合ったトークンをホストに送信する。ホストは、この暗号的に絡み合ったトークンを用いて、取得された生体認証読み取り値が、生体認証センサによって取得されたものであることの認証を試みる。
【0096】
図12に、少なくとも1つの実施形態の具体化および/または実行に使用可能なコンピュータシステム1200を示す。このコンピュータシステム1200において命令1212(例えば、ソフトウェア、プログラム、アプリケーション、アプレット、アプリおよび/または他の実行可能コード)が実行されることによって、コンピュータシステム1200が、本明細書に記載される方法のうちの任意の1つまたは複数を実行する。例えば、命令1212が実行されることによって、コンピュータシステム1200が、本明細書に記載される方法のうちの任意の1つまたは複数を実行する。命令1212は、プログラムされていない一般的なコンピュータシステム1200を、記載および図示された機能を記載された方法で実行するようにプログラムされた特定のコンピュータシステム1200に変換する。コンピュータシステム1200は、スタンドアロンデバイスとして動作してもよいし、他の機械に接続(例えば、ネットワーク接続)されてもよい。ネットワーク化された構成においては、コンピュータシステム1200は、サーバクライアントネットワーク環境におけるサーバ装置またはクライアント装置として機能することもできるし、ピアツーピア(または分散)ネットワーク環境におけるピア装置として機能することもできる。
【0097】
本開示に関し、センサ側において、任意の実施形態におけるセンサ認証ロジックは、ハードウェア(例えば、専用ハードウェア)に構成してもよいし、命令を実行するプロセッサを介して構成してもよいし、これら以外であってもよい。同様に、ホスト側でも、上記の構成または別の構成によって実行することができる。
【0098】
コンピュータシステム1200は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、セットトップボックス(STB)、携帯情報端末(PDA)、エンターテイメントメディアシステム、携帯電話、スマートフォン、モバイルデバイス、ウェアラブルデバイス(スマートウォッチ等)、スマートホームデバイス(スマートアプライアンス等)、その他のスマートデバイス、ウェブアプライアンス、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジおよび/またはコンピュータシステム1200によって実行される処理を指定する命令1212を順次または別の方法で実行することができる任意の他の機械であってもよいし、これらを含んでいてもよいが、これに限定されない。さらに、単一のコンピュータシステム1200のみが示されているが、「機械」という用語は、本明細書に記載される方法のいずれか1つまたは複数を実行するために命令1212を個別にまたは共同で実行する機械の集合も含むものと解釈される。
【0099】
コンピュータシステム1200は、プロセッサ1202、メモリ1204およびI/Oコンポーネント1206等を有しており、これらは、バス1244を介して相互に通信するように構成される。例示的な実施形態では、プロセッサ1202(例えば、中央処理装置(CPU)、縮小命令セットコンピューティング(RISC)プロセッサ、復号命令セットコンピューティング(CISC)プロセッサ、グラフィックスプロセッシングユニット(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、無線周波数集積回路(RFIC)、他のプロセッサおよび/またはこれらの任意の適切な組み合わせ)には、命令1212を実行するプロセッサ1208およびプロセッサ1210が含まれる。「プロセッサ」という用語は、命令を同時に実行できる2つ以上の独立したプロセッサ(「コア」と呼ばれる場合もある)を含むマルチコアプロセッサを含むことを意図している。
図12には複数のプロセッサ1202が示されているが、コンピュータシステム1200は、単一のコアを有する単一のプロセッサ、複数のコアを有する単一のプロセッサ(例えば、マルチコアプロセッサ)、単一のコアを有する複数のプロセッサ、複数のコアを有する複数のプロセッサまたはこれらの任意の組み合わせであってもよい。
【0100】
メモリ1204は、メインメモリ1214、スタティックメモリ1216および記憶ユニット1218を含み、それぞれがバス1244を介してプロセッサ1202にアクセス可能である。メモリ1204、スタティックメモリ1216および/または記憶ユニット1218は、本明細書に記載される方法または機能のうちの任意の1つまたは複数を実行するために実行可能な命令1212を格納している。追加的または代替的に、命令1212は、コンピュータシステム1200による実行時に、メインメモリ1214内、スタティックメモリ1216内、記憶ユニット1218内の機械可読媒体1220内、少なくとも1つのプロセッサ1202内(例えば、プロセッサ1202の一方のキャッシュメモリ内)および/またはこれらの組み合わせに完全にもしくは部分的に置かれていてもよい。機械可読媒体1220は、1つまたは複数の非一時的なコンピュータ可読記憶媒体である。
【0101】
I/Oコンポーネント1206には、入力の受信、出力の生成および/または提供、情報の送信、情報の交換、測定値の取得等を行うための多種多様なコンポーネントが含まれる。コンピュータシステム1200の特定のインスタンスに含まれる特定のI/Oコンポーネント1206は、機械の種類によって決まる。例えば、携帯電話等のポータブル機械にはタッチ入力装置または他の同様の入力機構が含まれるが、ヘッドレスサーバー機械にはそのようなタッチ入力装置が含まれない。なお、I/Oコンポーネント1206は、
図12には示されていない他の多くのコンポーネントを含んでいてもよい。
【0102】
様々な例示的な実施形態において、I/Oコンポーネント1206には、出力コンポーネント1232および入力コンポーネント1230が含まれる。出力コンポーネント1232は、例えば、視覚コンポーネント(例えば、プラズマディスプレイパネル(PDP)、発光ダイオード(LED)ディスプレイ、液晶ディスプレイ(LCD)、プロジェクタ、ブラウン管(CRT))、音響コンポーネント(スピーカー等)、触覚コンポーネント(振動モータ、抵抗機構等)およびその他の信号発生器等である。入力コンポーネント1230は、例えば、英数字入力コンポーネント(キーボード、英数字入力を受けるように構成されたタッチスクリーン、フォトオプティカルキーボード、他の英数字入力コンポーネント等)、ポイントベースの入力コンポーネント(マウス、タッチパッド、トラックボール、ジョイスティック、モーションセンサ、他のポインティング装置等)、触覚入力コンポーネント(物理ボタン、タッチの位置や力もしくはタッチジェスチャに反応するタッチスクリーン、1つまたは複数の他の触覚入力コンポーネント等)、音声入力コンポーネント(マイク等)である。
【0103】
他の例示的実施形態では、I/Oコンポーネント1206には、生体認証コンポーネント1234、動作コンポーネント1236、環境コンポーネント1238、位置コンポーネント1240等の種々なコンポーネントが含まれる。生体認証コンポーネント1234は、表情(例えば、手の表情、顔の表情、声の表情、体のジェスチャー、視線追跡等)を検出し、生体信号(例えば、血圧、心拍数、体温、発汗、脳波等)を測定し、個人の識別(例えば、音声識別、網膜識別、顔識別、指紋識別、脳波ベースの識別等による)を行うコンポーネント等である。動作コンポーネント1236は、例えば、加速度感知コンポーネント(加速度計等)、重力感知コンポーネント、回転感知コンポーネント(ジャイロスコープ等)である。
【0104】
環境コンポーネント1238は、例えば、照度感知コンポーネント(光度計等)、温度感知コンポーネント(1つまたは複数の温度計等)、湿度感知コンポーネント、圧力感知コンポーネント(気圧計等)、音響感知コンポーネント(1つまたは複数のマイク等)、近接感知コンポーネント(近くの物体を検出する赤外線センサ等)、ガス感知コンポーネント(保安のためや大気中の汚染物質を測定するために有害ガスの濃度を検出するガス検出センサ)、周囲の物理的環境に対応する指標、測定値、信号等を提供する他のコンポーネント等である。位置コンポーネント1240は、例えば、位置感知コンポーネント(全地球測位システム(GPS)受信機等)、高度感知コンポーネント(高度を求めるために気圧を検出する高度計および/または気圧計等)、方位感知コンポーネント(磁力計)等である。
【0105】
通信には、様々な技術を採用することができる。I/Oコンポーネント1206には、通信コンポーネント1242も含まれる。通信コンポーネント1242は、接続1226および/または接続1228を介して、コンピュータシステム1200をネットワーク1222および/または装置1224に通信可能に接続するように動作する。例えば、通信コンポーネント1242は、ネットワークインターフェイスコンポーネント、またはネットワーク1222と接続するための別の適切な装置を有していてもよい。別の例では、通信コンポーネント1242は、有線通信コンポーネント、無線通信コンポーネント、セルラー通信コンポーネント、近距離無線通信(NFC)コンポーネント、Bluetooth(Bluetooth Low Energy(登録商標)等)コンポーネント、Wi-Fiコンポーネント、1つまたは複数の方式を介して通信を行う他の通信コンポーネント等である。装置1224は、例えば、1つまたは複数の他の装置、多種多様な周辺装置(例えば、ユニバーサルシリアルバス(USB)接続を介して接続された周辺装置)等である。
【0106】
さらに、通信コンポーネント1242は、識別子の検出が可能であってもよいし、識別を検出するように動作可能なコンポーネントを備えていてもよい。例えば、通信コンポーネント1242は、無線周波数識別(RFID)タグリーダーコンポーネント、NFCスマートタグ検出コンポーネント、光学リーダーコンポーネント(ユニバーサルプロダクトコード(UPC)バーコード等の一次元バーコード、Quick Response(QR)コード、Aztecコード、Data Matrix、Dataglyph、MaxiCode、PDF417、Ultra Code、UCC RSS-2Dバーコード、その他の光学コード等の多次元バーコードを検出する光学センサ等)、音響検出コンポーネント(タグ付き音声信号を識別するマイク等)である。さらに、インターネットプロトコル(IP)地理位置による位置、Wi-Fi信号三角測量による位置、特定の位置を示すNFCビーコン信号の検出による位置等の様々な情報を、通信コンポーネント1242を介して求めることが可能である。
【0107】
1つまたは複数の命令(ソフトウェア等)や、本明細書に記載の方法や機能を具体化するかこれらに用いられるデータ構造を、様々なメモリ(例えば、メモリ1204、メインメモリ1214、スタティックメモリ1216、1つまたは複数のプロセッサ1202の(例えば、キャッシュ)メモリ等)および/または記憶ユニット1218に格納してもよい。これらの命令(例えば、命令1212)が1つまたは複数のプロセッサ1202によって実行されると、本開示の様々な実施形態を実現するための様々な処理が行われる。
【0108】
命令1212は、伝送媒体を用いて、ネットワーク1222を介して送信および受信される。この送受信は、ネットワークインターフェイス装置(例えば、通信コンポーネント1242に含まれるネットワークインターフェイスコンポーネント)を介して、様々な周知の転送プロトコル(セッション開始プロトコル(SIP)、ハイパーテキスト転送プロトコル(HTTP)等)のうちのいずれかを用いて行われる。同様に、命令1212は、伝送媒体を用いて、接続1228(例えば、ピアツーピア接続)を介して装置1224に送信または受信される。
【0109】
図13に、少なくとも1つの実施形態に係る、
図12の例示的コンピュータシステム1200等のコンピュータシステムにおいて実行可能な例示的なソフトウェアアーキテクチャ1302を示す。図示された例示的なソフトウェアアーキテクチャ1302は、本明細書に記載の1つまたは複数の装置にインストールできる。例えば、ソフトウェアアーキテクチャ1302は、
図12のコンピュータシステム1200と同様に構成された任意の装置またはシステムにインストールされる。ソフトウェアアーキテクチャ1302は、プロセッサ1306、メモリ1308およびI/Oコンポーネント1310を備えた機械1304等のハードウェアによってサポートされる。この例では、ソフトウェアアーキテクチャ1302は、各層が特定の機能を提供する積層構造として概念化されている。ソフトウェアアーキテクチャ1302は、オペレーティングシステム1312、ライブラリ1314、フレームワーク1316およびアプリケーション1318等の層を有している。動作的には、アプリケーション1318は、1つまたは複数のアプリケーションプログラミングインターフェイス(API)を使用して、ソフトウェア階層を介してAPIコール1320を呼び出し、APIコール1320に応答してメッセージ1322を受信する。
【0110】
オペレーティングシステム1312は、ハードウェアリソースを管理し、共通のサービスを提供する。オペレーティングシステム1312は、例えば、カーネル1324、サービス1326およびドライバ1328を有している。カーネル1324は、ハードウェア層と他のソフトウェア層との間の抽象化層として機能する。例えば、カーネル1324は、メモリ管理、プロセッサ管理(スケジューリング等)、コンポーネント管理、ネットワーキングおよび/またはセキュリティ設定等の機能を提供する。サービス1326は、他のソフトウェア層に他の共通サービスを提供する。ドライバ1328は、基礎となるハードウェアの制御または接続を行う。例えば、ドライバ1328は、ディスプレイドライバ、カメラドライバ、BluetoothまたはBluetooth Low Energyドライバ、フラッシュメモリドライバ、シリアル通信ドライバ(USBドライバ等)、Wi-Fiドライバ、オーディオドライバ、電源管理ドライバ等である。
【0111】
ライブラリ1314は、アプリケーション1318によって使用される低レベルの共通インフラストラクチャを提供する。ライブラリ1314は、例えば、メモリ割り当て関数、文字列操作関数、数学関数等の関数を提供するシステムライブラリ1330(C標準ライブラリ等)であってもよい。さらに、ライブラリ1314は、メディアライブラリ(例えば、Moving Picture Experts Group-4(MPEG4)、Advanced Video Coding(H.264またはAVC)、Moving Picture Experts Group Layer-3(MP3)、Advanced Audio coding(AAC)、Adaptive Multi-Rate(AMR)オーディオコーデック、Joint Photographic Experts Group(JPEGまたはJPG)、Portable Network Graphics(PNG)等の様々なメディア形式の描写および/または操作をサポートするライブラリ等)等のAPIライブラリ1332、グラフィックスライブラリ(ディスプレイ上のグラフィックコンテンツを2次元(2D)および3次元(3D)でレンダリングするために使用されるOpenGLフレームワーク等)、データベースライブラリ(様々なリレーショナルデータベース機能を提供するSQLite等)、ウェブライブラリ(ウェブブラウジング機能を提供するWebKit等)等であってもよい。ライブラリ1314は、アプリケーション1318に多くの他のAPIを提供するために、多種多様なその他のライブラリ1334を含んでいてもよい。
【0112】
フレームワーク1316は、アプリケーション1318によって使用される高レベルの共通インフラストラクチャを提供する。例えば、フレームワーク1316は、様々なグラフィカルユーザーインターフェイス(GUI)機能、高レベルのリソース管理、高レベルの位置サービス等を提供することができる。フレームワーク1316は、アプリケーション1318によって使用できる広範囲の他のAPIを提供することができ、その一部は特定のオペレーティングシステムまたはプラットフォームに専用のものであってもよい。
【0113】
アプリケーション1318の代表的な例としては、ホームアプリケーション1336、連絡先アプリケーション1338、ブラウザアプリケーション1340、書籍リーダーアプリケーション1342、位置アプリケーション1344、メディアアプリケーション1346、メッセージングアプリケーション1348、ゲームアプリケーション1350、
図13にサードパーティアプリケーション1352として示されている他の様々なアプリケーションが挙げられる。アプリケーション1318は、プログラムに定義された機能を実行するプログラムである。様々な方法で構築される1つまたは複数のアプリケーション1318の生成には、オブジェクト指向プログラミング言語(Objective-C、Java、C++等)や手続き型プログラミング言語(C、アセンブリ言語等)等の様々なプログラミング言語を用いることができる。特定の例では、サードパーティアプリケーション1352(例えば、特定のプラットフォームの製造元以外の法人によってANDROID(登録商標)またはIOS(登録商標)ソフトウェア開発キット(SDK)を使用して開発されたアプリケーション)は、IOS、ANDROID、WINDOWS(登録商標)フォン等のモバイルオペレーティングシステムで動作するモバイルソフトウェアである。この例では、サードパーティアプリケーション1352は、オペレーティングシステム1312によって提供されるAPIコール1320を呼び出して、本明細書に記載の機能を容易に実行できる。
【0114】
上記の開示を鑑み、様々な例を以下に説明する。例における1つまたは複数の特徴は、単独または組み合わせのいずれにおいても、本出願の開示範囲である。
実施例1は、セキュア生体認証センサシステムであり、該セキュア生体認証センサシステムは、セキュア要素と、ホストとセキュア要素との間に通信可能に介在するように構成された生体認証センサであって、生体認証センサとセキュア要素とは互いに物理的に結合されており、センサ認証ロジックを有している生体認証センサと、を備えている。センサ認証ロジックが、生体認証センサの少なくとも1つのハードウェアプロセッサによって実行されると、生体認証センサに複数の処理を行わせる。複数の処理は、ホストから暗号チャレンジを受信することと、暗号チャレンジをセキュア要素に転送することと、生体認証感知要素を使用して生体認証読み取り値を取得することと、取得された生体認証読み取り値をホストに送信することと、暗号チャレンジに基づいてセキュア要素が計算した暗号レスポンスをセキュア要素から受信することであって、暗号レスポンスがホストとセキュア要素との間の共有シークレットを含んでいる、受信することと、読み取り関連データと共有シークレットとの所定の組み合わせから暗号的に絡み合ったトークンを生成することであって、読み取り関連データが、生体認証読み取り値および生体認証読み取り値から導き出されたデータの一方または両方を含んでいる、生成することと、取得された生体認証読み取り値が生体認証センサによって取得されたものであることの認証を試みる際にホストが使用するために、暗号的に絡み合ったトークンをホストに送信することとを含む。
【0115】
実施例2は、互いに物理的に結合されている生体認証センサおよびセキュア要素が、共通のパッケージ基板に固定された(affixed)生体認証センサおよびセキュア要素を含む、実施例1に記載のセキュア生体認証センサシステムである。
【0116】
実施例3は、ホストとセキュア要素との間に通信可能に介在するように構成された生体認証センサが、第1の通信インターフェイスであって、生体認証センサが、第1の通信インターフェイスを介してホストと通信するように構成されている、第1の通信インターフェイスと、第1の通信インターフェイスとは異なる第2の通信インターフェイスであって、生体認証センサが、第2の通信インターフェイスを介してセキュア要素と別個に通信するように構成されている、第2の通信インターフェイスと、を有している生体認証センサを含む、実施例1または2に記載のセキュア生体認証センサシステムである。
【0117】
実施例4は、取得された生体認証読み取り値をホストへ送信することが、セキュア要素から暗号レスポンスを受信する前に開始される、実施例1~3のいずれかに記載のセキュア生体認証センサシステムである。
【0118】
実施例5は、取得された生体認証読み取り値をホストへ送信することが、セキュア要素から暗号レスポンスを受信した後に開始され、複数の処理が、取得した生体認証読み取り値をホストに送信する前に、共有シークレットを使用して、取得した生体認証読み取り値を暗号化することをさらに含む、実施例1~3のいずれかに記載のセキュア生体認証センサシステムである。
【0119】
実施例6は、複数の処理が、暗号的に絡み合ったトークンをホストに送信する前に、ホストによるセキュア要素のデジタル証明書の確認のために、セキュア要素を用いて、暗号的に絡み合ったトークンにデジタル署名することをさらに含む、実施例1~5のいずれかに記載のセキュア生体認証センサシステムである。
【0120】
実施例7は、暗号的に絡み合ったトークンが、ハッシュ関数のセンサ側ハッシュ結果を含んでおり、複数の処理が、ハッシュ関数を使用して、読み取り関連データと共有シークレットとの所定の組み合わせからセンサ側ハッシュ結果を生成することをさらに含む、実施例1~6のいずれかに記載のセキュア生体認証センサシステムである。
【0121】
実施例8は、取得された生体認証読み取り値が生体認証センサによって取得されたものであることの認証をホストが試みることが、共有シークレットのホスト側コピーを暗号チャレンジから計算することと、ハッシュ関数を使用して、ホスト側読み取り関連データと、共有シークレットのホスト側コピーとの対応する所定の組み合わせからホスト側ハッシュ結果を生成することと、センサ側ハッシュ結果がホスト側ハッシュ結果と一致するか否かを判断することと、をホストが行うことを含む、実施例7に記載のセキュア生体認証センサシステムである。
【0122】
実施例9は、暗号的に絡み合ったトークンが、外部ハッシュ関数のセンサ側ハッシュ結果を含んでおり、複数の処理が、内部ハッシュ関数を使用して、生体認証読み取り値および共有シークレットから中間センサ側ハッシュ結果を生成することと、外部ハッシュ関数を使用して、中間センサ側ハッシュ結果からセンサ側ハッシュ結果を生成することと、をさらに含む、実施例1~6のいずれかに記載のセキュア生体認証センサシステムである。
【0123】
実施例10は、内部ハッシュ関数を使用して、生体認証読み取り値および共有シークレットから中間センサ側ハッシュ結果を生成することが、内部ハッシュ関数を使用して、生体認証読み取り値および共有シークレットから、中間センサ側ハッシュ結果の2つの部分のうちの第1の部分を生成することと、次に、内部ハッシュ関数を使用して、中間センサ側ハッシュ結果の2つの部分のうちの第2の部分を生成することと、を含む、実施例9に記載のセキュア生体認証センサシステムである。
【0124】
実施例11は、内部ハッシュ関数を使用して、中間センサ側ハッシュ結果の2つの部分のうちの第1の部分を生成することの少なくとも一部が、暗号レスポンスをセキュア要素から受信する前に行われる、実施例10に記載のセキュア生体認証センサシステムである。
【0125】
実施例12は、内部ハッシュ関数を使用して、中間センサ側ハッシュ結果の2つの部分のうちの第1の部分を生成することのすべてが、暗号レスポンスをセキュア要素から受信する前に行われる、実施例10に記載のセキュア生体認証センサシステムである。
【0126】
実施例13は、取得された生体認証読み取り値が生体認証センサによって取得されたものであることの認証をホストが試みることが、共有シークレットのホスト側コピーを暗号チャレンジから計算することと、内部ハッシュ関数を使用して、生体認証読み取り値と共有シークレットのホスト側コピーとから中間ホスト側ハッシュ結果を生成することと、外部ハッシュ関数を使用して、中間ホスト側ハッシュ結果からホスト側ハッシュ結果を生成することと、センサ側ハッシュ結果がホスト側ハッシュ結果と一致するか否かを判断することと、をホストが行うことを含む、実施例9~12のいずれかに記載のセキュア生体認証センサシステムである。
【0127】
実施例14は、取得された生体認証読み取り値をホストに送信する前に、ブロック暗号を使用して、生体認証読み取り値を第1の暗号鍵を使用して暗号化することをさらに含み、暗号的に絡み合ったトークンが、暗号化された生体認証読み取り値を含み、暗号的に絡み合ったトークンをホストに送信することが、取得された生体認証読み取り値をホストに送信することを含む、実施例1~6のいずれかに記載のセキュア生体認証センサシステムである。
【0128】
実施例15は、共有シークレットが、第1の暗号鍵である、実施例14に記載のセキュア生体認証センサシステムである。
実施例16は、取得された生体認証読み取り値が生体認証センサによって取得されたものであることの認証をホストが試みることが、共有シークレットのホスト側コピーを暗号チャレンジから計算することと、共有シークレットのホスト側コピーを復号鍵として使用して、暗号化された生体認証読み取り値を復号化することと、をホストが行うことを含む、実施例15に記載のセキュア生体認証センサシステムである。
【0129】
実施例17は、乱数を取得することであって、取得された乱数が第1の暗号鍵である、取得することと、共有シークレットを第2の暗号鍵として使用して乱数を暗号化することによって、暗号化された乱数を生成することと、暗号化された乱数をホストに送信することと、をさらに含む、実施例14に記載のセキュア生体認証センサシステムである。
【0130】
実施例18は、取得された生体認証読み取り値が生体認証センサによって取得されたものであることの認証をホストが試みることが、共有シークレットのホスト側コピーを暗号チャレンジから計算することと、共有シークレットのホスト側コピーを第2の復号鍵として使用して、暗号化された乱数を復号化することによって乱数を取得することと、取得した乱数を第1の復号鍵として使用して、暗号化された生体認証読み取り値を復号化することと、をホストが行うことを含む、実施例17に記載のセキュア生体認証センサシステムである。
【0131】
実施例19は、取得された生体認証読み取り値が、生体検知データを含む、実施例1~18のいずれかに記載のセキュア生体認証センサシステムである。
実施例20は、生体認証センサであり、該生体認証センサは、第1の通信インターフェイスおよび第2の通信インターフェイスであって、生体認証センサは、第1の通信インターフェイスおよび第2の通信インターフェイスを介して、ホストとセキュア要素との間に通信可能に介在するように構成されており、生体認証センサとセキュア要素とが互いに物理的に結合されている、第1の通信インターフェイスおよび第2の通信インターフェイスと、センサ認証ロジックと、を備え、センサ認証ロジックが、生体認証センサの少なくとも1つのハードウェアプロセッサによって実行されると、生体認証センサに複数の処理を行わせ、複数の処理が、ホストから暗号チャレンジを受信することと、暗号チャレンジをセキュア要素に転送することと、生体認証感知要素を使用して生体認証読み取り値を取得することと、取得された生体認証読み取り値をホストに送信することと、暗号チャレンジに基づいてセキュア要素が計算した暗号レスポンスをセキュア要素から受信することであって、暗号レスポンスがホストとセキュア要素との間の共有シークレットを含んでいる、受信することと、読み取り関連データと共有シークレットとの所定の組み合わせから暗号的に絡み合ったトークンを生成することであって、読み取り関連データが、生体認証読み取り値および生体認証読み取り値から導き出されたデータの一方または両方を含んでいる、生成することと、取得された生体認証読み取り値が生体認証センサによって取得されたものであることの認証を試みる際にホストが使用するために、暗号的に絡み合ったトークンをホストに送信することと、を含む。
【0132】
実施例21は、記憶された命令を実行する生体認証センサによって実行される方法であり、該方法は、ホストから暗号チャレンジを受信することであって、生体認証センサがホストとセキュア要素との間に通信可能に介在しており、生体認証センサとセキュア要素とは互いに物理的に結合されている、受信することと、暗号チャレンジをセキュア要素に転送することと、生体認証感知要素を使用して生体認証読み取り値を取得することと、取得された生体認証読み取り値をホストに送信することと、暗号チャレンジに基づいてセキュア要素が計算した暗号レスポンスをセキュア要素から受信することであって、暗号レスポンスがホストとセキュア要素との間の共有シークレットを含んでいる、受信することと、読み取り関連データと共有シークレットとの所定の組み合わせから暗号的に絡み合ったトークンを生成することであって、読み取り関連データが、生体認証読み取り値および生体認証読み取り値から導き出されたデータの一方または両方を含んでいる、生成することと、取得された生体認証読み取り値が生体認証センサによって取得されたものであることの認証を試みる際にホストが使用するために、暗号的に絡み合ったトークンをホストに送信することと、を備える。
【0133】
実施例22は、少なくとも1つのハードウェアプロセッサによって実行されると、実施例1に関連して前述した複数の処理を含む複数の処理を少なくとも1つのハードウェアプロセッサに行わせる命令を格納している1つまたは複数の非一時的なコンピュータ可読記憶媒体である。
【0134】
実施例23は、少なくとも1つのハードウェアプロセッサによって実行されると、実施例20に関連して前述した複数の処理を含む複数の処理を少なくとも1つのハードウェアプロセッサに行わせる命令を格納している1つまたは複数の非一時的なコンピュータ可読記憶媒体である。
【0135】
実施例24は、少なくとも1つのハードウェアプロセッサによって実行されると、実施例21に関連して前述した複数の処理を含む複数の処理を少なくとも1つのハードウェアプロセッサに行わせる命令を格納している1つまたは複数の非一時的なコンピュータ可読記憶媒体である。
【0136】
実施例25はシステムであり、該システムは、少なくとも1つのハードウェアプロセッサと、少なくとも1つのハードウェアプロセッサによって実行されると、実施例20に関連して前述した複数の処理を含む複数の処理を少なくとも1つのハードウェアプロセッサに行わせる命令を格納している1つまたは複数の非一時的なコンピュータ可読記憶媒体と、を含む。
【0137】
実施例26はシステムであり、該システムは、少なくとも1つのハードウェアプロセッサと、少なくとも1つのハードウェアプロセッサによって実行されると、実施例21に関連して前述した複数の処理を含む複数の処理を少なくとも1つのハードウェアプロセッサに行わせる命令を格納している1つまたは複数の非一時的なコンピュータ可読記憶媒体と、を含む。
【0138】
別の例には、セキュア生体認証センサシステムの実施形態、生体認証センサの実施形態、方法の実施形態、非一時的なコンピュータ可読記憶媒体の実施形態および上記の実施例2~19のシステムの実施形態が含まれる。
【0139】
本開示の主旨の理解を助けるために、様々な実施形態が図面に示されている。本明細書に開示される実施形態は、網羅的であることを意図しておらず、本開示を上記の詳細な説明で開示された形態に限定することを意図するものではない。記載された実施形態は、当業者がその教示を利用できるように選択されたものである。したがって、本開示の範囲の限定を意図するものではない。
【0140】
本開示でモジュールと呼ばれる装置、システム等のコンポーネントは、ハードウェアおよび実行可能命令の両方を含み、単一のコンポーネント内で構成してもよいし、単一のコンポーネントとして構成してもよいし、複数のコンポーネントにわたって分散させてもよい。命令は、ハードウェアによって実行されると、本明細書においてはモジュールによって実行されるものとして説明されている1つまたは複数の処理(機能等)をハードウェアに行わせる(例えば実行させる)。ハードウェアには、1つまたは複数のプロセッサ、1つまたは複数のマイクロプロセッサ、1つまたは複数のマイクロコントローラ、1つまたは複数のマイクロチップ、1つまたは複数の特定用途向け集積回路(ASIC)、1つまたは複数のフィールドプログラマブルゲートアレイ(FPGA)、1つまたは複数のグラフィカルプロセッシングユニット(GPU)、1つまたは複数のテンソルプロセッシングユニット(TPU)、構成に応じて当業者が適切であるとみなす他の種類の1つまたは複数のハードウェア装置および/またはハードウェアコンポーネント等が含まれる。命令には、構成に応じて当業者が適切であるとみなす1つまたは複数の非一時的なコンピュータ可読記憶媒体に記憶されたハードウェア(例えばハードワイヤードの)命令、ファームウェア命令、ソフトウェア命令等が含まれる。このような非一時的なコンピュータ可読記憶媒体は、メモリ(例えば、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、erasable programmable read-only memory(EPROM)、electrically erasable programmable read-only memory(EEPROMもしくはE2PROM)、フラッシュメモリ、1つまたは複数の他の種類のメモリ等)および/または1つもしくは複数の他の種類の非一時的なコンピュータ可読記憶媒体であってもよいし、これらを備えていてもよい。
【0141】
特許請求の範囲を含む本開示のすべての部分において、第1、第2および第3等の数値的修飾語が、コンポーネント、データ(値、識別子、パラメータ等)および/または他の要素に使用されているが、このような修飾語の使用は、参照される要素の特定の順序または必要とされる順序を示すことを意図するものではない。このような修飾語は、要素の区別を助けるために使用されており、特定の順序や重要性が明示されている場合を除いて、特定の順序や重要性に限定するものではない。
【0142】
さらに、本開示で使用される「AおよびBの少なくとも1つ」、「A、BおよびCの少なくとも1つ」等の表現は、「Aおよび/またはB」、「A、Bおよび/またはC」等の表現が、完全な表現の代わりに使用されていると解釈される。特定の事例に関連して明示的に別に記載されている場合を除いて、本開示では、上記のような表現は、「Aの少なくとも1つおよびBの少なくとも1つ」、「Aの少なくとも1つ、Bの少なくとも1つおよびCの少なくとも1つ」等を意味するものではない。本開示において、2つの要素がある場合は、「1つまたは複数のAが存在し、Bが存在しない」、「1つまたは複数のBが存在し、Aが存在しない」および「1つまたは複数のAおよび1つまたは複数のBが存在する」のうちのいずれかであり、3つ以上の要素がある場合もこれと同様である。同様の解釈が、特定の事例に関連して明示的に別に記載されている場合を除いて、「少なくとも1つ」の代わりに「1つまたは複数の」が使用されている場合に適用される。
【0143】
また、記載される実体および配置は、図示される実体および配置ならびに図に関連して説明される実体および配置を含め、例示であり、限定を意図するものではない。図面または開示における特定の要素または実体が「何であるか」または「何を有しているか」に関する言及または記載、ならびに、「少なくとも1つの実施形態において」等の節によって明示的に限定されていない同様の言及は、絶対的であり全実施形態に対する限定であると、文脈とは関係なく単独で解釈されるおそれもあるが、上記の節によって限定されていると適切に解釈される。この暗黙の限定節は、記載の簡潔かつ明瞭にするために、本開示において繰り返しが省略されている。
【国際調査報告】