JP2021150681A - 情報処理システム、情報処理プログラムおよび情報処理方法 - Google Patents
情報処理システム、情報処理プログラムおよび情報処理方法 Download PDFInfo
- Publication number
- JP2021150681A JP2021150681A JP2020045636A JP2020045636A JP2021150681A JP 2021150681 A JP2021150681 A JP 2021150681A JP 2020045636 A JP2020045636 A JP 2020045636A JP 2020045636 A JP2020045636 A JP 2020045636A JP 2021150681 A JP2021150681 A JP 2021150681A
- Authority
- JP
- Japan
- Prior art keywords
- authentication
- user
- information
- server
- biometric
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims description 29
- 238000003672 processing method Methods 0.000 title claims description 6
- 238000012545 processing Methods 0.000 claims description 155
- 238000000034 method Methods 0.000 claims description 138
- 230000008569 process Effects 0.000 claims description 83
- 230000008859 change Effects 0.000 description 61
- 230000004044 response Effects 0.000 description 39
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 230000007423 decrease Effects 0.000 description 11
- 238000012795 verification Methods 0.000 description 7
- 238000012937 correction Methods 0.000 description 6
- 230000007704 transition Effects 0.000 description 5
- 230000000052 comparative effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 210000003462 vein Anatomy 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 238000012508 change request Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000015654 memory Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Telephonic Communication Services (AREA)
Abstract
【課題】生体認証を実行する端末装置が変更されても認証強度が維持されるようにする。【解決手段】バックアップサーバ300は、他の端末装置から、ユーザの秘密鍵Ksと、他の端末装置における生体認証の認証強度を識別可能にする認証器情報Da1とを受信して記憶する。端末装置は、秘密鍵Ksと認証器情報Da1とをバックアップサーバ300から受信し、端末装置における生体認証の認証強度を識別可能にする認証器情報Da2と、受信した認証器情報Da1との比較結果に基づき、端末装置での認証強度が他の端末装置での認証強度以上である場合に、受信した秘密鍵Ksを保存して使用可能な状態にし、サービスを利用する際に、ユーザの生体認証を実行し、認証に成功すると、認証サーバ100がユーザを認証するための認証用データを、保存された秘密鍵Ksで暗号化した状態で認証サーバ100に送信する。【選択図】図7
Description
本発明は、情報処理システム、情報処理プログラムおよび情報処理方法に関する。
オンライン上のユーザ認証法として、FIDO(Fast IDentity Online)認証が注目されている。FIDO認証では、ユーザ側の端末装置が、ユーザの本人性を検証する「認証器」として動作する。本人性の検証は、生体認証など、ユーザによるパスワード入力を伴わない方法で行われる。そして、端末装置でユーザの本人性が検証されるとともに、端末装置と認証サーバとの間で公開鍵暗号化方式を用いたチャレンジ・レスポンス認証が行われることで、ユーザ認証が行われる。このような認証手順では、パスワード入力の排除によりユーザの利便性が向上するとともに、生体情報などのユーザの秘密情報が端末装置から認証サーバへ送信されないことにより、秘密情報の漏洩リスクが低下し、ユーザ認証の安全性も向上する。
FIDO認証に関しては、次のような提案がある。例えば、FIDO認証を用いたサービスを利用するための端末を変更する際、変更前後のいずれかの端末で、サービスへの通常の登録作業とは異なる移行作業を開始させ、ユーザに両端末での認証作業を繰り返し行わせることで、変更後の端末における登録作業を完了させるようにしたシステムが提案されている。また、新規端末の公開鍵に登録済み端末の秘密鍵で署名を行い、署名済みの公開鍵をキーストアで認証して新規端末の公開鍵を登録することで、新規端末をキーストアに登録する際に本人確認情報を提示しなくても容易に認証して登録できるようにした認証鍵共有システムが提案されている。
ところで、FIDO認証においては、ユーザの秘密鍵が端末装置側に保存される。認証器として利用する端末装置を変更する場合には、変更前の端末装置に保存された秘密鍵が、セキュアな方法で変更後の端末装置に受け渡される。これにより、変更後の端末装置を用いて認証サーバのサービスを利用できるようになる。
ここで、認証サーバでのユーザの認証強度を一定以上に維持するためには、変更後の端末装置での生体認証の認証強度が、変更前の認証強度以上に維持される必要がある。しかし、上記のように秘密鍵が変更後の端末装置に受け渡されるだけでは、端末装置の変更後に生体認証の認証強度が維持されることを保証できないという問題がある。
1つの側面では、生体認証を実行する端末装置が変更されても認証強度を維持することが可能な情報処理システム、情報処理プログラムおよび情報処理方法を提供することを目的とする。
1つの案では、バックアップサーバと端末装置とを有する次のような情報処理システムが提供される。この情報処理システムにおいて、バックアップサーバは、認証サーバが提供するサービスを利用するためにユーザの生体認証を実行する他の端末装置から、サービスを利用するためのユーザの秘密鍵と、他の端末装置における生体認証の認証強度を識別可能にする第1の認証器情報とを受信して記憶する。端末装置は、秘密鍵と第1の認証器情報とをバックアップサーバから受信し、端末装置における生体認証の認証強度を識別可能にする第2の認証器情報と、受信した第1の認証器情報との比較結果に基づき、端末装置での認証強度が他の端末装置での認証強度以上である場合に、受信した秘密鍵を保存して使用可能な状態にし、サービスを利用する際に、ユーザの生体認証を実行し、認証に成功すると、認証サーバがユーザを認証するための認証用データを、保存された秘密鍵で暗号化した状態で認証サーバに送信する。
また、1つの案では、コンピュータに、認証サーバが提供するサービスを利用するためにユーザの生体認証を実行する他の端末装置から出力された、サービスを利用するためのユーザの秘密鍵と、他の端末装置における生体認証の認証強度を識別可能にする第1の認証器情報とを取得し、コンピュータにおける生体認証の認証強度を識別可能にする第2の認証器情報と、取得した第1の認証器情報との比較結果に基づき、コンピュータでの認証強度が他の端末装置での認証強度以上である場合に、受信した秘密鍵を保存して使用可能な状態にし、サービスを利用する際に、ユーザの生体認証を実行し、認証に成功すると、認証サーバがユーザを認証するための認証用データを、保存された秘密鍵で暗号化した状態で認証サーバに送信する、処理を実行させる情報処理プログラムが提供される。
さらに、1つの案では、コンピュータに、ユーザを認証するための認証用データを端末装置に送信して、ユーザの生体認証の実行を要求し、生体認証に成功した場合に端末装置から送信される、ユーザの秘密鍵によって暗号化された認証用データと、端末装置における生体認証の認証強度を識別可能にする認証器情報とを受信し、暗号化された認証用データをユーザの公開鍵で復号することでユーザの認証処理を実行するとともに、認証器情報に基づいて、生体認証の認証強度が所定の条件を満たすかを判定し、公開鍵を用いた復号によるユーザの認証処理に成功し、かつ、当該認証強度が所定の条件を満たす場合には、ユーザによる所定のサービスの利用を許可し、当該認証強度が所定の条件を満たさない場合には、ユーザによるサービスの利用を不許可にする、処理を実行させる情報処理プログラムが提供される。
また、1つの案では、上記の各情報処理プログラムを用いた処理と同様の処理をコンピュータが実行する情報処理方法が提供される。
1つの側面では、生体認証を実行する端末装置が変更されても認証強度を維持できる。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。図1に示す情報処理システムは、認証サーバ1、端末装置2,3およびバックアップサーバ4を含む。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る情報処理システムの構成例および処理例を示す図である。図1に示す情報処理システムは、認証サーバ1、端末装置2,3およびバックアップサーバ4を含む。
認証サーバ1は、ユーザを認証し、認証に成功したユーザに対して所定のサービスを提供するサーバコンピュータである。端末装置2,3は、認証サーバ1が提供するサービスをユーザが利用するためのコンピュータである。本実施の形態では、当初、ユーザは端末装置2を使用してサービスを利用し、その後に、ユーザの使用端末が端末装置3に変更されるものとする。バックアップサーバ4は、サービスの利用のために端末装置に保存される鍵情報(後述する秘密鍵11)をバックアップするためのサーバコンピュータである。
認証サーバ1が提供するサービスをユーザが端末装置を使用して利用するためには、ユーザに対応する秘密鍵11および公開鍵12の認証鍵ペアが使用される。ユーザが端末装置2を使用している状況では、秘密鍵11が端末装置2に保存され、公開鍵12が認証サーバ1に保存される。なお、公開鍵12は、ネットワーク上の他の装置に保存され、認証サーバ1がその装置から公開鍵12を取得するようにしてもよい。
端末装置2を使用してサービスを利用する場合、端末装置2は、ユーザの生体認証を実行し(ステップS1a)、認証に成功すると、認証サーバ1がユーザを認証するための認証用データを、秘密鍵11で暗号化した状態で認証サーバ1に送信する(ステップS1b)。認証サーバ1は、暗号化された認証用データを受信すると、受信したデータを公開鍵12で復号することで検証し、ユーザを受け入れるか否かを判定する。
実際には、例えば、端末装置2がサービスの利用を認証サーバ1に要求すると、認証サーバ1が端末装置2に認証用データ(例えば、乱数によるチャレンジコード)を送信してユーザの生体認証を要求する。ステップS1aの生体認証はこの要求に応じて実行され、ステップS1bでは、認証サーバ1から送信された認証用データが暗号化されて送信される。
また、端末装置2は、秘密鍵11をバックアップサーバ4に送信して、バックアップさせる。このとき、端末装置2は、端末装置2に対応する認証器情報21を、秘密鍵11とともに送信する。バックアップサーバ4は、秘密鍵11と認証器情報21とを受信して記憶する(ステップS2)。
認証器情報21とは、端末装置2における生体認証の認証強度を識別可能にする情報である。例えば、認証器情報21は、端末装置2が備える生体センサや生体認証アプリケーションの識別情報を示す。この場合、例えば、識別情報ごとの認証強度がサーバ装置などの所定の記憶場所に記憶されており、認証器情報21が示す識別情報をキーとして認証強度が記憶場所から取得される。また、認証器情報21は、他人受入率(FAR:False Acceptance Rate)の逆数や、本人拒否率(FRR:False Rejection Rate)の逆数など、認証強度を直接的に示す数値であってもよい。
なお、秘密鍵11と認証器情報21のうち、少なくとも秘密鍵11は、暗号化された状態でバックアップサーバ4に送信され、記憶されることが望ましい。
次に、ユーザの使用端末が端末装置3に変更されると、バックアップサーバ4にバックアップされたデータが端末装置3に受け渡される。すなわち、端末装置3は、秘密鍵11と認証器情報21をバックアップサーバ4から受信する(ステップS3a)。端末装置3は、端末装置3における生体認証の認証強度を識別可能にする認証器情報22と、受信した認証器情報21とを比較する。そして、端末装置3は、認証器情報21,22の比較結果に基づき、変更後の端末装置3での認証強度が変更前の端末装置2での認証強度以上である場合に、受信した秘密鍵11を記憶部3aに保存する(ステップS3b)。これにより、秘密鍵11は使用可能な状態になる。一方、変更後の端末装置3での認証強度が変更前の端末装置2での認証強度より低い場合には、秘密鍵11は保存されずに破棄される。
次に、ユーザの使用端末が端末装置3に変更されると、バックアップサーバ4にバックアップされたデータが端末装置3に受け渡される。すなわち、端末装置3は、秘密鍵11と認証器情報21をバックアップサーバ4から受信する(ステップS3a)。端末装置3は、端末装置3における生体認証の認証強度を識別可能にする認証器情報22と、受信した認証器情報21とを比較する。そして、端末装置3は、認証器情報21,22の比較結果に基づき、変更後の端末装置3での認証強度が変更前の端末装置2での認証強度以上である場合に、受信した秘密鍵11を記憶部3aに保存する(ステップS3b)。これにより、秘密鍵11は使用可能な状態になる。一方、変更後の端末装置3での認証強度が変更前の端末装置2での認証強度より低い場合には、秘密鍵11は保存されずに破棄される。
なお、記憶部3aは、例えば、端末装置3が備える図示しない記憶装置の記憶領域として実現される。
ここで、認証器情報21,22の比較処理では、例えば、認証器情報21と認証器情報22とが同一の場合、端末変更前後で生体認証の認証強度は変化しないので、秘密鍵11は記憶部3aに保存される。また、例えば、認証器情報21,22が認証強度を直接的に示す数値である場合、認証器情報22の値が認証器情報21の値以上であれば、秘密鍵11が記憶部3aに保存される。また、例えば、認証器情報21,22が生体センサや生体認証アプリケーションの識別情報であり、これらが同一でない場合には、上記の記憶場所から認証器情報21,22のそれぞれに対応する認証強度の数値が取得されて比較されればよい。
ここで、認証器情報21,22の比較処理では、例えば、認証器情報21と認証器情報22とが同一の場合、端末変更前後で生体認証の認証強度は変化しないので、秘密鍵11は記憶部3aに保存される。また、例えば、認証器情報21,22が認証強度を直接的に示す数値である場合、認証器情報22の値が認証器情報21の値以上であれば、秘密鍵11が記憶部3aに保存される。また、例えば、認証器情報21,22が生体センサや生体認証アプリケーションの識別情報であり、これらが同一でない場合には、上記の記憶場所から認証器情報21,22のそれぞれに対応する認証強度の数値が取得されて比較されればよい。
その後、サービスを利用する際、端末装置3は、ユーザの生体認証を実行し(ステップS4a)、認証に成功すると、認証サーバ1がユーザを認証するための認証用データを、秘密鍵11で暗号化した状態で認証サーバ1に送信する(ステップS4b)。これらのステップS4a,S4bは、ステップS1a,S1bと同様の手順で実行されればよい。ただし、使用される認証用データは互いに異なっていてもよい。認証サーバ1は、暗号化された認証用データを受信すると、受信したデータを公開鍵12で復号することで検証し、ユーザを受け入れるか否かを判定する。
以上の処理によれば、ユーザの使用端末が端末装置3に変更され、秘密鍵11が端末装置3に受け渡される際に、変更前の端末装置2の認証器情報21と変更後の端末装置3の認証器情報22とは比較される。そして、その比較結果に基づき、変更後の端末装置3での認証強度が変更前の端末装置2での認証強度以上である場合に、秘密鍵11が記憶部3aに保存されて使用可能な状態になる。これにより、ユーザが変更後の端末装置3を使用してサービスを利用する際に、変更前の端末装置2を使用した場合と比較して、生体認証の認証強度が低下しないことが保証される。その結果、ユーザの使用端末が変更されても、認証サーバ1でのユーザの認証強度を維持することができる。
なお、上記の第1の実施の形態では、秘密鍵11と認証器情報21は、バックアップサーバ4を介して端末装置2から端末装置3に受け渡されていた。しかし、他の例として、バックアップサーバ4が使用されずに、可搬型記録媒体を介して、あるいはネットワークを介して直接的に、端末装置2から端末装置3に対して秘密鍵11と認証器情報21が受け渡されてもよい。
〔第2の実施の形態〕
図2は、第2の実施の形態に係る認証システムの構成例を示す図である。図2に示す認証システムは、認証サーバ100、ユーザ端末200、バックアップサーバ300およびメタデータサーバ400を含む。認証サーバ100、ユーザ端末200、バックアップサーバ300およびメタデータサーバ400は、ネットワーク50を介して相互に接続されている。
図2は、第2の実施の形態に係る認証システムの構成例を示す図である。図2に示す認証システムは、認証サーバ100、ユーザ端末200、バックアップサーバ300およびメタデータサーバ400を含む。認証サーバ100、ユーザ端末200、バックアップサーバ300およびメタデータサーバ400は、ネットワーク50を介して相互に接続されている。
認証サーバ100は、ユーザを認証し、認証に成功したユーザに対して所定のサービスを提供するサーバコンピュータである。本実施の形態では、認証サーバ100は、ユーザからのログイン要求に応じてユーザを認証し、ユーザの認証に成功した場合に、ユーザのログインを受け入れ、ログイン状態のユーザに対してWebサービスを提供する。
ユーザ端末200は、ユーザによって利用される端末装置である。ユーザは、ユーザ端末200を操作することで認証サーバ100にログインする。ユーザ端末200としては、例えば、パーソナルコンピュータ、タブレット端末、スマートフォンなどが適用される。
認証サーバ100はFIDOサーバとして動作し、ユーザ端末200はFIDOクライアントとして動作する。そして、ユーザの認証はFIDO方式で行われる。特に、本実施の形態では、ユーザの生体情報を用いたFIDO認証が行われる。すなわち、ユーザ端末200は、生体認証によってユーザを認証する。生体認証を行うために、ユーザ端末200は、ユーザの生体情報を検出するための生体センサ201を備えている。一方、認証サーバ100は、ユーザ端末200との間で、秘密鍵および公開鍵の認証鍵ペアとチャレンジ・レスポンスを用いたユーザ認証を行う。
なお、生体認証としては、例えば、指紋認証、静脈認証、虹彩認証、顔認証などの方式を適用可能である。この場合、生体センサ201は、例えば、撮像装置、または、赤外線などの発光装置と撮像装置とが組み合わされた装置として実現される。また、生体センサ201は、ユーザ端末200に内蔵されていてもよいし、USB(Universal Serial Bus)ケーブルなどによってユーザ端末200に外付けされていてもよい。
バックアップサーバ300は、認証のためのユーザの情報がバックアップされるサーバコンピュータである。バックアップサーバ300には、少なくとも、ユーザの秘密鍵がバックアップされる。
メタデータサーバ400は、端末の認証器に関する情報を保持するサーバコンピュータである。メタデータサーバ400は、少なくとも、生体認証を用いた認証器の識別情報および仕様情報を保持している。メタデータサーバ400は、例えば、FIDOアライアンスのサーバであり、この場合には、FIDOアライアンスで認定された認証器の識別情報や仕様情報がメタデータサーバ400に保持される。
ここで、以下の説明では、ユーザが認証サーバ100にログインするために利用する端末装置を、ユーザ端末200からユーザ端末200aに変更するものとする。ユーザ端末200aも、ユーザ端末200と同様に、例えば、パーソナルコンピュータ、タブレット端末、スマートフォンなどとして実現される。ユーザ端末200aは、ユーザ端末200と同じ機種である必要はない。また、ユーザ端末200aは、ユーザの生体情報を検出するための生体センサ201aを備えている。生体センサ201aも、生体センサ201と同じ機種である必要はない。
なお、図2に示した認証サーバ100、ユーザ端末200,200a、バックアップサーバ300は、それぞれ図1に示した認証サーバ1、端末装置2,3、バックアップサーバ4の一例である。
図3は、認証サーバのハードウェア構成例を示す図である。認証サーバ100は、例えば、図3に示すようなコンピュータとして実現される。図3に示す認証サーバ100は、プロセッサ101、RAM(Random Access Memory)102、HDD(Hard Disk Drive)103、グラフィックインタフェース(I/F)104、入力インタフェース(I/F)105、読み取り装置106およびネットワークインタフェース(I/F)107を備える。
プロセッサ101は、認証サーバ100全体を統括的に制御する。プロセッサ101は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはPLD(Programmable Logic Device)である。また、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM102は、認証サーバ100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
HDD103は、認証サーバ100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
グラフィックインタフェース104には、表示装置104aが接続されている。グラフィックインタフェース104は、プロセッサ101からの命令にしたがって、画像を表示装置104aに表示させる。表示装置としては、液晶ディスプレイや有機EL(ElectroLuminescence)ディスプレイなどがある。
入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
ネットワークインタフェース107は、ネットワーク50を介して他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、認証サーバ100の処理機能を実現することができる。なお、ユーザ端末200,200a、バックアップサーバ300およびメタデータサーバ400についても、例えば、図3に示すような構成のコンピュータとして実現することができる。ただし、ユーザ端末200には生体センサ201が接続され、ユーザ端末200aには生体センサ201aが接続されている。
以上のようなハードウェア構成によって、認証サーバ100の処理機能を実現することができる。なお、ユーザ端末200,200a、バックアップサーバ300およびメタデータサーバ400についても、例えば、図3に示すような構成のコンピュータとして実現することができる。ただし、ユーザ端末200には生体センサ201が接続され、ユーザ端末200aには生体センサ201aが接続されている。
次に、図4、図5を用いて、認証システムにおける動作の比較例について説明する。
まず、図4は、FIDO認証について説明するための図である。図4を用いて、生体情報を用いたFIDO認証の基本的な手順について説明する。また、図4では例として、ユーザ端末200と認証サーバ100との間の処理を示す。
まず、図4は、FIDO認証について説明するための図である。図4を用いて、生体情報を用いたFIDO認証の基本的な手順について説明する。また、図4では例として、ユーザ端末200と認証サーバ100との間の処理を示す。
ユーザ端末200では、ユーザの秘密鍵と公開鍵とが生成される。そして、認証サーバ100に対して公開鍵が事前に登録される(ステップS11)。一方、ユーザ端末200では、秘密鍵がセキュアな状態で記憶される。
その後、ユーザ端末200から認証サーバ100に対してユーザのログインが要求される(ステップS12)。すると、認証サーバ100は、ユーザ端末200に対して生体認証によるユーザの認証を依頼する。このとき、認証サーバ100は、乱数などによって一時的な数値であるチャレンジコードを生成し、ユーザ端末200に送信する(ステップS13)。
ユーザ端末200は、認証依頼に応じて、ユーザに対して生体認証の操作を要求し(ステップS14)、生体センサ201によってユーザの生体情報が読み取られると、生体情報に基づいてユーザの認証を行う(ステップS15)。ユーザの認証に成功すると、ユーザ端末200は、受信したチャレンジコードに対してユーザの秘密鍵を用いて署名する(チャレンジコードを秘密鍵で暗号化する)ことでレスポンスデータを生成し、認証サーバ100に送信する(ステップS16)。
認証サーバ100は、受信したレスポンスデータを、ユーザの公開鍵を用いて検証する(ステップS17)。具体的には、認証サーバ100は、レスポンスデータをユーザの公開鍵で復号することでチャレンジコードを復元し、復元されたチャレンジコードとステップS13で送信されたチャレンジコードとが一致するかを判定する。認証サーバ100は、これらが一致した場合、認証に成功したと判定し、ユーザのログインを受け入れる(ステップS18)。
以上の認証手順によれば、ユーザIDとパスワードとを用いた認証方法と比較して、次のような利点がある。まず、ユーザによるパスワードの入力操作が不要になることから、ユーザの利便性が向上する。これに加えて、生体情報などのユーザの秘密情報がユーザ端末200から認証サーバ100に送信されないことから、秘密情報の漏洩リスクが低下し、ユーザ認証の安全性も向上する。
ところで、上記の認証手順では、ユーザの秘密鍵がユーザ端末200に保存される。そのため、例えば、ユーザ端末200の故障や変更に備えて、秘密鍵を安全にバックアップできることが望まれている。秘密鍵のバックアップ方法としては、例えば、パスワードを用いて秘密鍵を暗号化した状態で、外部装置に保存する方法が考えられる。そこで、次の図5では、この方法を用いて秘密鍵をバックアップサーバ300にバックアップする場合の、認証システム全体の処理手順を例示する。
図5は、ユーザ端末変更時における処理手順の比較例を示す図である。この図5では、ユーザが利用する端末装置がユーザ端末200からユーザ端末200aに変更される場合について例示する。
まず、ユーザがユーザ端末200を用いて認証サーバ100にログインできるようにするために、ユーザの公開鍵を認証サーバ100に登録する処理が行われる。この処理では、認証サーバ100からユーザ端末200に対して認証鍵の登録が依頼される(ステップS21a)。すると、ユーザ端末200からユーザに対して生体認証の操作が要求され、生体センサ201によってユーザの生体情報が読み取られて、ユーザ端末200によって生体認証が行われる(ステップS21b)。ユーザ端末200は、ユーザの認証に成功すると、ユーザの秘密鍵Ksおよび公開鍵Kpを生成し、公開鍵Kpを認証サーバ100に登録する(ステップS21c)。
また、秘密鍵Ksは、ユーザ端末200内のセキュアな記憶領域に保存されるとともに、バックアップサーバ300にバックアップされる。この処理では、ユーザ端末200は、ユーザからパスワードの入力を受け付け、入力されたパスワードを用いて秘密鍵Ksを暗号化し、暗号化された秘密鍵Ksをバックアップサーバ300に保存する(ステップS21d)。
その後、ユーザ端末200を用いて認証サーバ100にログインする場合には、図4に示した手順によって認証処理が行われる。すなわち、認証サーバ100からユーザ端末200に対して、生体認証によるユーザの認証が依頼される(ステップS22a)。このとき、チャレンジコードが生成され、ユーザ端末200に送信される。ユーザ端末200は、ユーザの生体認証を実行し(ステップS22b)、認証に成功すると、チャレンジコードに対して秘密鍵Ksを用いて署名することでレスポンスデータを生成し、認証サーバ100に送信する。認証サーバ100は、レスポンスデータを公開鍵Kpを用いて検証し(ステップS22c)、正当性が確認されるとユーザのログインを受け入れる。
次に、ユーザが利用する端末装置がユーザ端末200からユーザ端末200aに変更されたとする。この場合、変更後のユーザ端末200aは、暗号化された秘密鍵Ksをバックアップサーバ300からダウンロードし、パスワードを用いて秘密鍵Ksを復元し、ユーザ端末200a内のセキュアな記憶領域に保存する(ステップS23a)。
ユーザ端末200aを用いてログインする場合には、変更前のユーザ端末200を用いた場合と同様の認証処理が実行される。すなわち、認証サーバ100からユーザ端末200aに対して、生体認証によるユーザの認証が依頼されるとともに、チャレンジコードが送信される(ステップS23b)。ユーザ端末200aは、ユーザの生体認証を実行し(ステップS23c)、認証に成功すると、チャレンジコードに対して秘密鍵Ksを用いて署名することでレスポンスデータを生成し、認証サーバ100に送信する。認証サーバ100は、レスポンスデータを公開鍵Kpを用いて検証し(ステップS23d)、正当性が確認されるとユーザのログインを受け入れる。
以上の処理によれば、ユーザの秘密鍵Ksを安全にユーザ端末200aに移動させることができる。また、秘密鍵Ksの移動後にはすぐに認証サーバ100にログインでき、例えば、ユーザの鍵情報を生成し直して新たな公開鍵Kpを認証サーバ100に登録する、といった手間がかからない。
しかしながら、上記処理では次のような課題がある。
(課題1)ユーザが利用する端末装置が変更された場合には、同じ鍵情報を持つ端末装置が複数存在しないように、変更前のユーザ端末200に保存された秘密鍵Ksを無効化しなければならない。このような無効化のためにユーザの操作が必要になる場合、ユーザの手間が増え、ユーザにとっての利便性が低下する。
(課題1)ユーザが利用する端末装置が変更された場合には、同じ鍵情報を持つ端末装置が複数存在しないように、変更前のユーザ端末200に保存された秘密鍵Ksを無効化しなければならない。このような無効化のためにユーザの操作が必要になる場合、ユーザの手間が増え、ユーザにとっての利便性が低下する。
(課題2)FIDO認証では、ユーザの本人性の検証がユーザ端末側で実行される。このため、ユーザの認証強度は、ユーザ端末が備える生体センサやユーザ端末で利用される生体認証アルゴリズムの仕様に依存する。したがって、認証サーバ100での認証強度を維持するためには、ユーザ端末の変更前後においてユーザ端末における生体認証の認証強度が低下しないことが求められる。しかし、図5の処理では、変更前後のユーザ端末において、生体センサや生体認証アルゴリズムが同じとは限らない。このため、変更後のユーザ端末200aにおける認証強度が、変更前の認証強度を維持していることを保証できない。
以上の課題に鑑み、第2の実施の形態に係る認証システムでは、以下の図6、図7に示すような処理が実行される。
図6は、第2の実施の形態に係る認証システムの処理例を示す第1の図である。本実施の形態に係る認証システムでは、前述の課題1に関し、次のような処理が実行される。
図6は、第2の実施の形態に係る認証システムの処理例を示す第1の図である。本実施の形態に係る認証システムでは、前述の課題1に関し、次のような処理が実行される。
まず、事前処理として、認証サーバ100には、ユーザの公開鍵Kpに加えて、公開鍵Kp(および秘密鍵Ks)をユーザ端末に保存した時刻を示す鍵保存時刻Tg1も登録される。すなわち、認証サーバ100からユーザ端末200に対して認証鍵の登録が依頼される(ステップS31a)。すると、ユーザ端末200からユーザに対して生体認証の操作が要求され、生体センサ201によってユーザの生体情報が読み取られて、ユーザ端末200によって生体認証が行われる(ステップS31b)。ユーザ端末200は、ユーザの認証に成功すると、ユーザの秘密鍵Ksおよび公開鍵Kpを生成するとともに、そのときの時刻を示す鍵保存時刻Tg1を取得する。そして、ユーザ端末200は、公開鍵Kpと鍵保存時刻Tg1とを認証サーバ100に登録する(ステップS31c)。
秘密鍵Ksと鍵保存時刻Tg1は、ユーザ端末200内のセキュアな記憶領域に保存される。また、秘密鍵Ksは、暗号化された状態でバックアップサーバ300に保存される(ステップS31d)。秘密鍵Ksとともに鍵保存時刻Tg1もバックアップサーバ300にバックアップされてもよい。なお、バックアップサーバ300に保存するデータの暗号化は、図5と同様にパスワードを用いて行われてもよいが、例えば、ファジーコミットメント(Fuzzy Commitment)による生体情報を用いた暗号化が行われてもよい。
その後、ユーザ端末200を用いて認証サーバ100にログインする場合には、認証サーバ100からユーザ端末200に対して、生体認証によるユーザの認証が依頼されるとともに、チャレンジコードが送信される(ステップS32a)。ユーザ端末200は、ユーザの生体認証を実行する(ステップS32b)。そして、ユーザ端末200は、認証に成功すると、チャレンジコードと鍵保存時刻Tg1とを含むデータセットに対して秘密鍵Ksを用いて署名することでレスポンスデータを生成し、認証サーバ100に送信する。認証サーバ100は、レスポンスデータを公開鍵Kpを用いて検証するとともに、鍵保存時刻Tg1を照合する(ステップS32c)。
具体的には、認証サーバ100は、公開鍵Kpを用いてレスポンスデータを復号し、チャレンジコードと鍵保存時刻Tg1を復元する。認証サーバ100は、復元されたチャレンジコードと、ステップS32aで送信されたチャレンジコードとが一致することを確認する。さらに、認証サーバ100は、復元された鍵保存時刻Tg1と、登録されていた鍵保存時刻Tg1とが一致することを確認する。これらの一致が確認されると、認証サーバ100はユーザのログインを受け入れる。
次に、ユーザが利用する端末装置がユーザ端末200からユーザ端末200aに変更されたとする。この場合、変更後のユーザ端末200aは、暗号化された秘密鍵Ksをバックアップサーバ300からダウンロードして秘密鍵Ksを復元し、ユーザ端末200a内のセキュアな記憶領域に保存する(ステップS33a)。
ユーザ端末200aを用いてログインする場合には、認証サーバ100からユーザ端末200aに対して、生体認証によるユーザの認証が依頼されるとともに、チャレンジコードが送信される(ステップS33b)。ユーザ端末200aは、ユーザの生体認証を実行する(ステップS33c)。ユーザ端末200aは認証に成功すると、秘密鍵Ksを用いてレスポンスデータを生成する。
ここで、初回ログイン時には、ユーザ端末200aは、秘密鍵Ksについての鍵保存時刻を、現在時刻を示す鍵保存時刻Tg2に更新し、ユーザ端末200aのセキュアな記憶領域に保存する。なお、2回目以降のログイン時には、保存された鍵保存時刻Tg2が利用されることになる。
ユーザ端末200aは、チャレンジコードと鍵保存時刻Tg2とを含むデータセットに対して秘密鍵Ksを用いて署名することでレスポンスデータを生成し、認証サーバ100に送信する。認証サーバ100は、レスポンスデータを公開鍵Kpを用いて検証するとともに、鍵保存時刻の照合を行う(ステップS33d)。
具体的には、認証サーバ100は、公開鍵Kpを用いてレスポンスデータを復号し、チャレンジコードと鍵保存時刻Tg2を復元する。認証サーバ100は、復元されたチャレンジコードと、ステップS33bで送信されたチャレンジコードとが一致することを確認する。さらに、認証サーバ100は、復元された鍵保存時刻Tg2と、登録されていた鍵保存時刻Tg1とを比較する。ここで、初回ログイン時には、これらの時刻は一致せず、登録されていた鍵保存時刻Tg1の方が古い時刻(前の時刻)を示す。この場合、認証サーバ100は、ログインに利用されたユーザ端末が変更されたと判断し、受信した鍵保存時刻Tg2によって、登録されていた鍵保存時刻Tg1を更新する。
この後、例えば、変更前のユーザ端末200から認証サーバ100に対してログインが要求されたとする。この場合、ステップS32a〜S32cと同様の処理が実行され、認証サーバ100では、受信したレスポンスデータから鍵保存時刻Tg1が復元される。しかし、復元された鍵保存時刻Tg1は、認証サーバ100に登録されている(更新されている)鍵保存時刻Tg2より前の時刻を示す。
この場合、認証サーバ100は、鍵保存時刻が整合しないことから、変更前のユーザ端末200からのログイン要求であると判断して、ログインを拒否する(ステップS34)。さらに、認証サーバ100は、鍵保存時刻Tg1が鍵保存時刻Tg2より前の時刻を示すことから、ユーザ端末200に対して秘密鍵Ksを無効化するように要求する(ステップS35)。ユーザ端末200は、この無効化要求に応じて、自装置に保存されている秘密鍵Ksを消去する。
このように、変更後のユーザ端末200aを用いたログインが1回でも実行された後に、変更前のユーザ端末200からログインが要求された場合には、ログインが拒否されるとともに、変更前のユーザ端末200上の秘密鍵Ksが消去される。このため、ユーザが変更後のユーザ端末200aを通じたサービスの利用を開始すると、変更前のユーザ端末200上の秘密鍵が自動的に無効化される。したがって、秘密鍵を無効化するための操作をユーザが特に行うことなく、変更前のユーザ端末200上の秘密鍵Ksを自動的に無効化することができ、ユーザの利便性が向上する。
また、変更後のユーザ端末200aを用いたサービスの利用が開始されると、変更前のユーザ端末200を用いてサービスを利用することができなくなる。したがって、変更後のユーザ端末200を用いた認証サーバ100への不正アクセスを防止できる。
図7は、第2の実施の形態に係る認証システムの処理例を示す第2の図である。本実施の形態に係る認証システムでは、前述の課題2に関し、次のような処理が実行される。なお、図7では、図6と同じ処理には同じステップ番号を付して示している。
ユーザ端末200においては、認証器情報Da1が使用される。認証器情報Da1は、ユーザ端末200が備える生体認証器の認証強度(ユーザ端末200における生体認証の認証強度)を識別することを可能にする情報である。認証器情報Da1は、例えば、生体認証器の識別情報を示す。この場合の例として、認証器情報Da1は、ユーザ端末200の生体センサ201の機種名や、ユーザ端末200で利用される生体認証アルゴリズム(例えば、後述する生体認証処理部による生体認証アルゴリズム)の識別情報を含むことができる。また、認証器情報Da1は、生体認証器の仕様(生体センサ201の仕様、生体認証アルゴリズムの仕様など)を示す情報であってもよい。
ユーザ端末200から認証サーバ100に対する公開鍵Kpの事前登録処理では、まず、図6のステップS31a,S31bの処理が実行される。また、ユーザ端末200においてユーザの認証に成功すると、図6のステップS31cと同様に、ユーザの公開鍵Kpが認証サーバ100に送信される(実際には、鍵保存時刻Tg1も送信される)。ただし、図7の処理では、公開鍵Kpとともに認証器情報Da1も認証サーバ100に送信される。認証サーバ100は、認証器情報Da1を検証する。この検証では、受信した認証器情報Da1が示す生体認証器の認証強度が、認証サーバ100での認証ポリシーとしてあらかじめ決められた条件を満たすかが判定される。認証サーバ100は、生体認証器の認証強度が条件を満たす場合に、受信した公開鍵Kpを保存し、登録処理を完了させる(ステップS31c1)。
また、バックアップサーバ300に対するバックアップ処理では、秘密鍵Ksに加えて認証器情報Da1がバックアップサーバ300に保存される(ステップS31d1)。認証器情報Da1は、秘密鍵Ksとともに暗号化された状態で保存されてもよい。
その後、ユーザ端末200を用いて認証サーバ100にログインする場合には、図6のステップS32a〜S32cと同様の処理が実行される。なお、図7には示していないが、ステップS32cでは実際には、鍵保存時刻Tg1の照合も行われる。
次に、ユーザが利用する端末装置がユーザ端末200からユーザ端末200aに変更されたとする。この場合、変更後のユーザ端末200aは、暗号化された秘密鍵Ksと認証器情報Da1とをバックアップサーバ300からダウンロードし、秘密鍵Ksを復元する。認証器情報Da1が暗号化されている場合、認証器情報Da1も復元される。ユーザ端末200aは、自装置の生体認証器の認証強度を識別可能な認証器情報Da2を取得し、ダウンロードされた認証器情報Da1と照合する(ステップS33a1)。
ユーザ端末200aは、認証器情報Da2が示す認証強度が、認証器情報Da1が示す認証強度以上である場合に、認証強度を維持できると判断して、復元された秘密鍵Ksをユーザ端末200a内のセキュアな記憶領域に保存する。一方、認証器情報Da2が示す認証強度が、認証器情報Da1が示す認証強度より低い場合には、秘密鍵Ksは保存されず、生体認証の方法を変更して認証強度を高めるようにユーザに通知される。
次に、ユーザ端末200aを用いて認証サーバ100にログインする場合には、認証サーバ100からユーザ端末200aに対して、生体認証によるユーザの認証が依頼されるとともに、チャレンジコードが送信される(ステップS33b)。ユーザ端末200aは、ユーザの生体認証を実行する(ステップS33c)。
生体認証に成功すると、チャレンジコードに署名することでレスポンスデータが生成される。ただし、端末変更後の初回ログインの場合には、ユーザ端末200aは、チャレンジコードと認証器情報Da2とを含むデータセットに対して秘密鍵Ksを用いて署名することでレスポンスデータを生成し、認証サーバ100に送信する。なお、実際には図6に示したように、署名対象のデータセットには鍵保存時刻Tg2も含まれる。
認証サーバ100は、変更後のユーザ端末200aからの初回ログイン時には、レスポンスデータを公開鍵Kpを用いて検証するとともに、認証器情報Da2を検証する(ステップS33d1)。なお、ユーザ端末200aからの初回ログインであることは、例えば、認証サーバ100に登録されている鍵保存時刻と、ユーザ端末200aから送信された鍵保存時刻との比較結果から判断できる。
認証器情報Da2の検証では、受信した認証器情報Da2が示す生体認証器の認証強度が、認証ポリシーの条件を満たすかが判定される。認証サーバ100は、復元されたチャレンジコードと送信されたチャレンジコードとが一致し、かつ、生体認証器の認証強度が条件を満たす場合に、認証に成功したと判断してユーザのログインを受け入れる。一方、認証サーバ100は、復元されたチャレンジコードと送信されたチャレンジコードとが一致した場合でも、生体認証器の認証強度が条件を満たさない場合には、ログインを拒否する。
以上の処理によれば、変更後のユーザ端末200aは、バックアップされていた秘密鍵Ksを復元する際に、変更前のユーザ端末200についての認証器情報Da1と、変更後のユーザ端末200aについての認証器情報Da2とを照合する。そして、ユーザ端末200aは、認証器情報Da2が示す認証強度が認証器情報Da1が示す認証強度より低下しないと判定された場合にのみ、復元された秘密鍵Ksをユーザ端末200a内に保存する。
これにより、変更後のユーザ端末200aにおける生体認証の認証強度が、ユーザ端末の変更前より低下しないことが保証される。このため、ユーザ端末200aから認証サーバ100にログインする際に、認証サーバ100でのユーザ認証の認証強度が低下しないことも保証される。
また、変更後のユーザ端末200aから認証サーバ100へのログインの際には、ユーザ端末200aについての認証器情報Da2が認証サーバ100に送信される。認証サーバ100は、変更後のユーザ端末200aからの初回ログインの際に、送信された認証器情報Da2に基づいてユーザ端末200aの認証強度を検証する。そして、認証サーバ100は、送信された認証器情報Da2が示す認証強度が所定の条件を満たす場合にのみ、ログインを許可する。これにより、ログイン要求元のユーザ端末が変更された場合でも、認証サーバ100でのユーザ認証の認証強度が低下しないことが保証される。
図7の例では、変更後のユーザ端末200aでの秘密鍵Ksの復元・保存時と、認証サーバ100に対する初回ログイン時の両方において、認証器情報に基づく認証強度の検証が行われる。これにより、認証強度の維持についての確実性が向上する。また、例えば、ユーザ端末200aで認証強度が検証されることにより、端末変更によって認証強度が低下する場合に、その旨を秘密鍵Ksの復元時点でユーザに通知することができる。そのため、認証強度が不適切な状態で認証サーバ100にログインを要求して、ログインを拒否されるという事態の発生が抑止される。したがって、認証強度の低下を未然に防止できるとともに、ユーザの利便性を向上させることもできる。
また、秘密鍵Ksの復元・保存時と、初回ログイン時の一方においてのみ認証強度の検証が行われてもよい。秘密鍵Ksの復元・保存時にのみ認証強度の検証が行われる場合、ログインの際に認証器情報Da2が認証サーバ100に送信される必要はない。一方、初回ログイン時にのみ認証強度の検証が行われる場合、変更前のユーザ端末200についての認証器情報Da1がバックアップサーバ300にバックアップされる必要はない。
また、図7の例では、認証サーバ100での認証強度の検証は、ユーザ端末の変更後の初回ログイン時にのみ実行されている。しかし、別の方法として、認証サーバ100に対するログインが要求されるたびに、毎回、認証サーバ100においてユーザ端末からの認証器情報に基づく認証強度の検証が実行されてもよい。
以下、本実施の形態に係る認証システムについて、さらに詳しく説明する。
図8は、認証システム内の各装置が備える処理機能の構成例を示す図である。
まず、認証サーバ100は、記憶部110とFIDOサーバ120を備える。
図8は、認証システム内の各装置が備える処理機能の構成例を示す図である。
まず、認証サーバ100は、記憶部110とFIDOサーバ120を備える。
記憶部110は、RAM102やHDD103など、認証サーバ100が備える記憶装置の記憶領域として実現される。記憶部110には、ユーザデータベース(DB)111と認証ポリシー112が記憶される。
ユーザデータベース111には、認証サーバ100にログインするユーザに関する情報が登録される。ユーザに関する情報としては、例えば、公開鍵、鍵保存時刻、認証器情報が登録される。
認証ポリシー112には、認証強度に関する条件を示す情報が記述される。例えば、認証ポリシー112には、利用可能な生体センサの識別情報、利用可能な生体認証アルゴリズムの識別情報の少なくとも一方が記述される。あるいは、認証ポリシー112には、認証強度の下限値が記述されてもよい。この場合、認証強度を示す数値としては、例えば、他人受入率(FAR)の逆数や、本人拒否率(FRR)の逆数を適用可能である。
FIDOサーバ120の処理は、例えば、認証サーバ100が備えるプロセッサ101が所定のプログラムを実行することで実現される。FIDOサーバ120は、ユーザに関する情報の登録処理や、ユーザからのログイン要求に応じた認証処理を実行する。
ここで、図9は、ユーザデータベースのデータ構成例を示す図である。図9に示すように、ユーザデータベース111は、ユーザごとのレコードを含む。各レコードには、ユーザを識別するアカウント名と、前述した公開鍵、鍵保存時刻および認証器情報が登録される。
以下、図8に戻って説明を続ける。
ユーザ端末200は、記憶部210、FIDOクライアント220、バックアップ処理部230および生体認証処理部240を備える。
ユーザ端末200は、記憶部210、FIDOクライアント220、バックアップ処理部230および生体認証処理部240を備える。
記憶部210は、ユーザ端末200が備える図示しない記憶装置の記憶領域として実現される。記憶部210には、鍵データベース(DB)211と設定情報212が記憶される。鍵データベース211には、ユーザの秘密鍵および鍵保存時刻が登録される。設定情報212は、ユーザ端末200での生体認証処理に関する情報を含む。この設定情報212は、ユーザ端末200の生体認証器についての認証器情報を取得するために用いられる情報であり、例えば、生体センサ201や生体認証アプリケーションの製造者、型名、仕様、生体認証アルゴリズムの仕様などの情報を含む。
FIDOクライアント220、バックアップ処理部230および生体認証処理部240の処理は、例えば、ユーザ端末200が備える図示しないプロセッサが所定のプログラムを実行することで実現される。
FIDOクライアント220は、認証サーバ100に対する公開鍵などの情報の登録処理や、認証サーバ100にログインするための処理を実行する。バックアップ処理部230は、秘密鍵などの情報をバックアップサーバ300に保存する処理や、バックアップサーバ300にバックアップされた情報を取得して復元する処理を実行する。生体認証処理部240は、生体センサ201によって読み取られた生体情報に基づいてユーザの認証処理を実行する。
なお、以下の説明では、生体認証器についての認証器情報として、生体認証器の識別子が用いられるものとする。ここで、ユーザ端末200の生体認証器とは、FIDO認証システム上の認証器(Authenticator)を示し、具体的には、生体センサ201と生体認証処理部240とを用いて実現される生体認証機能を指す。この場合、ユーザ端末200が備える生体認証器の識別子とは、生体センサ201と生体認証処理部240とを用いて実現される生体認証機能を識別する情報(例えば、ベンダ名と型式名)を指す。ユーザ端末200が備える生体認証器の識別子は、このような生体認証機能を実現するユーザ端末200自体を識別する情報であってもよい。
ここで、図10は、鍵データベースのデータ構成例を示す図である。鍵データベース211には、ユーザの秘密鍵および鍵保存時刻が、ユーザのアカウント名に対応付けて登録される。また、ログイン先のWebサイトが複数存在する場合(例えば、ログイン先の認証サーバが複数存在する場合)、鍵データベース211には、ログイン先のWebサイトごとに秘密鍵および鍵保存時刻が登録される。図10はこの場合を示しており、「登録サイトURL」は、ログイン先のWebサイトのURL(Uniform Resource Locator)を示している。さらに、ユーザ端末200が複数のユーザに利用される場合、これらの情報はユーザごとに鍵データベース211に登録される。
以下、図8に戻って説明を続ける。
ユーザ端末200aも、ユーザ端末200と同様に、記憶部210a、FIDOクライアント220a、バックアップ処理部230aおよび生体認証処理部240aを備える。記憶部210aは、ユーザ端末200aが備える図示しない記憶装置の記憶領域として実現される。記憶部210aには、鍵データベース211と同様のデータ構成を有する鍵データベース(DB)211aと、ユーザ端末200aの生体認証処理に関する設定情報212aが記憶される。
ユーザ端末200aも、ユーザ端末200と同様に、記憶部210a、FIDOクライアント220a、バックアップ処理部230aおよび生体認証処理部240aを備える。記憶部210aは、ユーザ端末200aが備える図示しない記憶装置の記憶領域として実現される。記憶部210aには、鍵データベース211と同様のデータ構成を有する鍵データベース(DB)211aと、ユーザ端末200aの生体認証処理に関する設定情報212aが記憶される。
FIDOクライアント220a、バックアップ処理部230aおよび生体認証処理部240aの処理は、例えば、ユーザ端末200aが備える図示しないプロセッサが所定のプログラムを実行することで実現される。FIDOクライアント220a、バックアップ処理部230a、生体認証処理部240aは、それぞれFIDOクライアント220、バックアップ処理部230、生体認証処理部240と同様の処理を実行する。ただし、生体認証処理部240aは、生体センサ201aによって読み取られた生体情報に基づいてユーザの認証処理を実行する。
なお、前述のように、以下の説明では、生体認証器についての認証器情報として、生体認証器の識別子が用いられるものとする。ここで、ユーザ端末200aの生体認証器とは、生体センサ201aと生体認証処理部240aとを用いて実現される生体認証機能を指す。この場合、ユーザ端末200aが備える生体認証器の識別子とは、生体センサ201aと生体認証処理部240aとを用いて実現される生体認証機能を識別する情報(例えば、ベンダ名と型式名)を指す。ユーザ端末200aが備える生体認証器の識別子は、このような生体認証機能を実現するユーザ端末200a自体を識別する情報であってもよい。
バックアップサーバ300は、記憶部310とサーバ処理部320を備える。
記憶部310は、バックアップサーバ300が備える図示しない記憶装置の記憶領域として実現される。記憶部310には、バックアップデータベース(DB)311が記憶される。バックアップデータベース311には、ユーザごとのバックアップデータがユーザのアカウント名に対応付けて登録される。
記憶部310は、バックアップサーバ300が備える図示しない記憶装置の記憶領域として実現される。記憶部310には、バックアップデータベース(DB)311が記憶される。バックアップデータベース311には、ユーザごとのバックアップデータがユーザのアカウント名に対応付けて登録される。
サーバ処理部320の処理は、例えば、バックアップサーバ300が備える図示しないプロセッサが所定のプログラムを実行することで実現される。サーバ処理部320は、ユーザ端末からの送信されたバックアップデータをバックアップデータベース311に登録する処理や、バックアップデータをバックアップデータベース311から読み出してユーザ端末に送信する処理を実行する。
図11は、ユーザ端末での鍵のバックアップ処理手順を示すフローチャートの例である。図11では例として、ユーザ端末200のバックアップ処理部230および生体認証処理部240による処理について説明するが、ユーザ端末200aのバックアップ処理部230aおよび生体認証処理部240aも同様の処理を実行可能である。
また、バックアップサーバ300にバックアップする秘密鍵の暗号化には、ファジーコミットメントによる生体情報を用いた暗号化手法が用いられるものとする。この手法によれば、秘密鍵を暗号化してバックアップを行った端末側のユーザと、その秘密鍵を復号して利用する端末側のユーザとの同一性を、生体認証を用いて保証することが可能となる。
[ステップS41]バックアップ処理部230は、鍵のバックアップを要求するためのユーザによる操作入力を受けると、生体認証を行うようにユーザに通知するとともに、生体認証処理部240に認証処理の実行を依頼する。生体センサ201によってユーザの生体情報が読み取られると、生体認証処理部240は、その生体情報を取得してユーザの認証を実行する。例えば、生体認証処理部240は、取得した生体情報に基づく特徴情報と、あらかじめ登録されたユーザの生体情報に基づく特徴情報とを比較して、特徴情報間の類似度を算出する。生体認証処理部240は、類似度が所定の閾値以上である場合、認証成功と判定し、認証に成功したことをバックアップ処理部230に通知する。このように認証に成功した場合、処理がステップS42に進められる。
[ステップS42]ここでは図10の例のように、鍵データベース211には登録サイトごとに情報が登録されているとする。バックアップ処理部230は、ステップS41で得られた生体情報を用いて、次のような手順で登録サイトごとにファジーコミットメントのヘルパデータを生成する。
バックアップ処理部230は、鍵データベース211から登録サイトに対応する秘密鍵を取得する。バックアップ処理部230は、取得した秘密鍵を第1の誤り訂正符号化によって符号化データに変換し、乱数を生成して符号化データに加算する。バックアップ処理部230は、加算後のデータを第2の誤り訂正符号化によって符号化データに変換し、この符号化データに生体情報から抽出した特徴量ビットを加算することで、登録サイトに対応するヘルパデータを生成する。なお、ヘルパデータの生成過程における加算処理は、例えば、排他的論理和の計算によって行われる。
[ステップS43]バックアップ処理部230は、登録サイトごとに、ヘルパデータと、登録サイトのURLと、鍵保存時刻とを含むデータセットを生成する。
[ステップS44]バックアップ処理部230は、設定情報212に基づいて、ユーザ端末200の生体認証器についての認証器情報を取得する。ここでは例として、認証器情報は、生体認証器の識別子を示すものとする。
[ステップS44]バックアップ処理部230は、設定情報212に基づいて、ユーザ端末200の生体認証器についての認証器情報を取得する。ここでは例として、認証器情報は、生体認証器の識別子を示すものとする。
[ステップS45]バックアップ処理部230は、生成された各データセットに、ユーザのアカウント名および認証器情報を付加してバックアップサーバ300に送信し、バックアップを要求する。バックアップサーバ300のサーバ処理部320は、バックアップ要求に応じて、データセットおよび認証器情報を、アカウント名をキーにしてバックアップデータベース311に登録する。
なお、以上の処理例では秘密鍵が暗号化された状態でバックアップされるが、秘密鍵に加えて登録サイトのURLや鍵保存時刻、認証器情報も暗号化されてもよい。この場合、ヘルパデータの生成の際に、暗号化の対象データと秘密鍵とを組み合わせたデータに対して第1の誤り訂正符号化が実行されればよい。
図12は、鍵のバックアップ実行時における画面遷移例を示す図である。図11のような鍵のバックアップ処理が実行される際、ユーザ端末200の表示装置には図12に示すような画面が表示される。
まず、鍵管理のための画面500が表示される。この画面500には、ボタン501〜504が表示される。ボタン501は、鍵データベース211に登録されたWebサイトの一覧を表示させるための選択ボタンである。ボタン502は、鍵をバックアップするための選択ボタンである。ボタン503は、バックアップされた鍵を復元するための選択ボタンである。ボタン504は、登録された鍵をリセットするための選択ボタンである。
ボタン502に対する選択操作が行われることで、鍵のバックアップ処理が開始され、画面510が表示される。画面510には、鍵のバックアップを行うことが文字情報で表示され、さらにボタン511〜513が表示される。ボタン511は、バックアップ処理の実行を継続するための選択ボタンであり、ボタン512は、バックアップ処理の実行を中止するための選択ボタンである。ボタン513は、ボタン501と同様に、登録されたWebサイトの一覧を表示させるための選択ボタンであり、ユーザはボタン513に対する選択操作を行うことで、登録サイトを確認できる。
ボタン512に対する選択操作が行われると、生体認証を行うようにユーザに通知するための画面520が表示される。この画面520は、図11のステップS41で表示される画面の一例である。また、ユーザの生体情報が読み取られ、生体認証に成功し、バックアップサーバ300へのバックアップが完了すると(図11のステップS45の処理が完了すると)、画面530が表示されて、バックアップが完了したことがユーザに通知される。
図13、図14は、ユーザ端末での鍵の復元処理手順を示すフローチャートの例である。図13では例として、ユーザ端末200aのバックアップ処理部230aおよび生体認証処理部240aによる処理について説明するが、ユーザ端末200のバックアップ処理部230および生体認証処理部240も同様の処理を実行可能である。
[ステップS51]バックアップ処理部230aは、鍵を復元するためのユーザによる操作入力を受けると、ユーザのバックアップデータがバックアップサーバ300に存在するかを確認する。具体的には、バックアップ処理部230aは、ユーザのアカウント名をバックアップサーバ300に送信し、バックアップデータの存在確認を要求する。
バックアップサーバ300のサーバ処理部320は、受信したアカウント名をキーとしてバックアップデータベース311を検索して、アカウント名に対応するバックアップデータの有無を確認し、確認結果をユーザ端末200aに通知する。
[ステップS52]ユーザ端末200aのバックアップ処理部230aは、ユーザのバックアップデータが存在するという通知を受けると、生体認証を行うようにユーザに通知するとともに、生体認証処理部240aに認証処理の実行を依頼する。生体センサ201aによってユーザの生体情報が読み取られると、生体認証処理部240aは、その生体情報を取得してユーザの認証を実行する。生体認証処理部240aは、ユーザの認証に成功すると、認証に成功したことをバックアップ処理部230aに通知する。このように認証に成功した場合、処理がステップS53に進められる。
[ステップS53]バックアップ処理部230aは、乱数を生成し、この乱数を前述の第2の誤り訂正符号化によって符号化データに変換する。バックアップ処理部230aは、この符号化データに、ステップS52で得られた生体情報から抽出した特徴量ビットを加算する(例えば、排他的論理和を計算する)ことで、クエリデータを生成する。
[ステップS54]バックアップ処理部230aは、バックアップサーバ300に対してユーザのバックアップデータの送信を要求する。バックアップサーバ300のサーバ処理部320は、ステップS51で受信したアカウント名に対応付けられたバックアップデータをバックアップデータベース311から読み出して、ユーザ端末200aに送信する。これにより、ユーザ端末200aのバックアップ処理部230aは、バックアップデータとして、ヘルパデータを含むデータセットと、認証器情報とをバックアップサーバ300から受信する。
[ステップS55]バックアップ処理部230aは、受信した各データセットから登録サイトごとのヘルパデータを抽出し、登録サイトごとに、抽出されたヘルパデータと、ステップS53で算出されたクエリデータとに基づいて秘密鍵を復元する。具体的には、バックアップ処理部230aは、ヘルパデータとクエリデータとを加算する(例えば、排他的論理和を計算する)ことで秘密鍵を復号する。ここで、ヘルパデータ生成時およびクエリデータ生成時にそれぞれ使用された生体情報が類似していれば、前述の第1の誤り訂正符号化による符号化データによって乱数の差異が相殺され、第2の誤り訂正符号化による符号化データによって生体情報に基づく特徴量ビットの差異が相殺される。このため、生体情報同士が類似している場合(すなわち、ヘルパデータ生成時およびクエリデータ生成時のそれぞれにおける認証対象のユーザが同じ場合)、ヘルパデータとクエリデータとの加算によって、秘密鍵が復号される。
[ステップS56]バックアップ処理部230aは、秘密鍵の復元に成功した場合、処理を図14のステップS61に進め、秘密鍵の復元に失敗した場合、処理をステップS57に進める。
[ステップS57]バックアップ処理部230aは、秘密鍵の復元に失敗したことをユーザに通知して、鍵の復元処理を終了する。このとき、バックアップ処理部230aは、例えば、秘密鍵の復元に失敗した理由をユーザに提示してもよい。なお、このケースでの認証失敗の理由は、バックアップ時と復元時の各ユーザが同一でない(ユーザ認証失敗)か、または生体認証の種類が異なる(認証方法エラー)ことのいずれかである。
なお、秘密鍵の復元は登録サイトごとに実行されるので、実際には、秘密鍵の復元に失敗した登録サイトがあった場合にのみ、その登録サイトについてステップS57が実行される。秘密鍵の復元に成功した登録サイトが1つでも存在する場合には、それらの登録サイトを処理対象としてステップS61以降の処理が実行される。
以下、図14を用いて説明を続ける。
[ステップS61]バックアップ処理部230aは、受信した各データセットから鍵保存時刻を抽出し、現在時刻と比較する。バックアップ処理部230aは、抽出された鍵保存時刻が現在時刻より古い場合(前の時刻の場合)、処理をステップS63に進める。一方、バックアップ処理部230aは、抽出された鍵保存時刻が現在時刻と同じか、それより新しい場合(後の時刻の場合)には、処理をステップS62に進める。ここでは、抽出された鍵保存時刻のうちの少なくとも1つが、現在時刻と同じかそれより新しい場合には、処理がステップS62に進められる。
[ステップS61]バックアップ処理部230aは、受信した各データセットから鍵保存時刻を抽出し、現在時刻と比較する。バックアップ処理部230aは、抽出された鍵保存時刻が現在時刻より古い場合(前の時刻の場合)、処理をステップS63に進める。一方、バックアップ処理部230aは、抽出された鍵保存時刻が現在時刻と同じか、それより新しい場合(後の時刻の場合)には、処理をステップS62に進める。ここでは、抽出された鍵保存時刻のうちの少なくとも1つが、現在時刻と同じかそれより新しい場合には、処理がステップS62に進められる。
[ステップS62]ステップS61でNoと判定される場合、バックアップデータは改ざんされた不正データである可能性がある。このため、バックアップ処理部230aは、不正データであるため復元に失敗したことをユーザに通知する。
[ステップS63]バックアップ処理部230aは、設定情報212aに基づいて、ユーザ端末200aの生体認証器についての認証器情報を取得する。ここでは、図11のステップS44と同様に、認証器情報として生体認証器の識別子が取得される。バックアップ処理部230aは、取得した認証器情報(ユーザ端末200aについての認証器情報)が、バックアップサーバ300から受信した認証器情報と一致するかを判定する。これらの認証器情報が一致する場合、処理がステップS67に進められ、一致しない場合、処理がステップS64に進められる。
[ステップS64]バックアップ処理部230aは、ステップS63で取得した、ユーザ端末200aの生体認証器についての認証器情報をメタデータサーバ400に送信して、認証器情報に対応する生体認証器の構成情報の送信を要求する。要求された構成情報がメタデータサーバ400から送信されると、バックアップ処理部230aはこれを受信する。
なお、このステップS64では、バックアップ処理部230aは、ユーザ端末200aの生体認証器についての認証器情報だけでなく、バックアップサーバ300から受信した認証器情報もメタデータサーバ400に送信して、各認証器情報に対応する構成情報の送信を要求してもよい。この場合、バックアップ処理部230aは、ユーザ端末200aの生体認証器についての構成情報と、変更前のユーザ端末の生体認証器についての構成情報とをメタデータサーバ400から受信する。
[ステップS65]バックアップ処理部230aは、受信した構成情報に基づき、ユーザ端末200aの生体認証器の認証強度が所定の条件を満たすかを判定する。認証強度が条件を満たす場合、処理がステップS67に進められ、認証強度が条件を満たさない場合、処理がステップS66に進められる。
[ステップS66]ステップS65でNoと判定される場合、変更後のユーザ端末200aが備える生体認証器の認証強度が、所定の条件を満たしていない。このため、バックアップ処理部230aは、生体認証の方法が認証強度の条件を満たしていない「認証方法エラー」であるために復元に失敗したことをユーザに通知する。
[ステップS67]バックアップ処理部230aは、現在時刻を取得し、取得した現在時刻を新たな鍵生成時刻として生成する。
[ステップS68]バックアップ処理部230aは、復元された秘密鍵を鍵データベース211aに保存する。このとき、鍵データベース211aには、登録サイトごとに、登録サイトのURL、秘密鍵および新たな鍵生成時刻が登録される。バックアップ処理部230aは、鍵の復元に成功したことをユーザに通知して、処理を終了する。
[ステップS68]バックアップ処理部230aは、復元された秘密鍵を鍵データベース211aに保存する。このとき、鍵データベース211aには、登録サイトごとに、登録サイトのURL、秘密鍵および新たな鍵生成時刻が登録される。バックアップ処理部230aは、鍵の復元に成功したことをユーザに通知して、処理を終了する。
ここで、上記のステップS65では、例えば、次のような条件判定処理が実行される。
例えば、ステップS64で、ユーザ端末200aの生体認証器についての構成情報だけでなく、バックアップサーバ300から受信した認証器情報についての構成情報が取得されたとする。この場合、バックアップ処理部230aは、各構成情報に記述された認証強度を示す情報を比較して、端末変更後の生体認証器の認証強度が、端末変更前より低下しないかを判定する。認証強度が低下しない場合、ステップS65では「条件を満たす」と判定され、認証強度が低下する場合、ステップS65では「条件を満たさない」と判定される。
例えば、ステップS64で、ユーザ端末200aの生体認証器についての構成情報だけでなく、バックアップサーバ300から受信した認証器情報についての構成情報が取得されたとする。この場合、バックアップ処理部230aは、各構成情報に記述された認証強度を示す情報を比較して、端末変更後の生体認証器の認証強度が、端末変更前より低下しないかを判定する。認証強度が低下しない場合、ステップS65では「条件を満たす」と判定され、認証強度が低下する場合、ステップS65では「条件を満たさない」と判定される。
また、例えば、ステップS64で、ユーザ端末200aの生体認証器についての構成情報のみ取得された場合、ステップS65では、構成情報に記述された認証強度を示す情報に基づいて、その認証強度があらかじめ記憶された認証強度の閾値以上かが判定される。構成情報に基づく認証強度が閾値以上の場合、条件を満たすと判定される。この場合、比較対象となる閾値は、認証サーバ100から通知されたものであってもよい。また、この場合、閾値は登録サイトごとに用意されていてもよい。この場合には、ステップS65の条件判定処理は登録サイトごとに実行され、認証強度が条件を満たす登録サイトについてのみ、ステップS68で秘密鍵および鍵生成時刻が登録されればよい。
図15は、生体認証器の構成情報の例を示す図である。例えば、図14のステップS64である生体認証器の構成情報の送信が要求された場合、メタデータサーバ400からは図15に示す構成情報410が送信される。
構成情報410においては、第3行目の「1234#5678」が、生体認証器の識別情報(ベンダ名およびモデル名)を示す。ステップS64では、例えば、認証器情報としてこの識別情報が送信され、メタデータサーバ400は、受信した識別情報をキーとしてこの識別情報に対応する生体認証器の構成情報410を検索し、送信する。
また、例えば、構成情報410の第6行目は生体認証器の認証アルゴリズムのプロトコルバージョンを示し、第9行目は生体認証器の暗号方式を示し、第10行目は暗号化における鍵長(鍵のビット数)を示し、第16行目はFARを示す。図14のステップS65では、これらの項目を認証強度の条件として用いることができる。例えば、下記のような条件を満たす場合に、ステップS65で認証強度が条件を満たすと判定される。なお、下記の条件のうち1つだけが判定に用いられてもよいし、あるいは、2以上の条件が用いられて、それらのすべてを満たす場合にステップS65で認証強度が条件を満たすと判定されてもよい。
(条件1)端末変更後の生体認証器について許可されるプロトコルバージョンが1以上あらかじめ設定され、ステップS64で取得された構成情報に記述されたプロトコルバージョンが、設定されたプロトコルバージョンの1つとして含まれる。
(条件2)端末変更後の生体認証器について許可される暗号方式が1以上あらかじめ設定され、ステップS64で取得された構成情報に記述された暗号方式が、設定された暗号方式の1つとして含まれる。
(条件3)ステップS64で取得された構成情報に記述された鍵長が、所定の下限閾値以上である。
(条件4)ステップS64で取得された構成情報に記述されたFARが、所定の上限閾値以下である。
(条件4)ステップS64で取得された構成情報に記述されたFARが、所定の上限閾値以下である。
なお、上記の認証強度の条件は、登録サイトごと(認証サーバごと)に個別に設定され得る。例えば、認証サーバ100では、認証サーバ100に固有の条件が認証ポリシー112に記述される。
一方、ユーザ端末での秘密鍵の復号時において、登録サイトごとに個別の条件を用いて認証強度を検証した場合、処理が煩雑になる。そこで、ユーザ端末での秘密鍵の復号時には、登録サイトごとの認証強度の条件を用いずに、単に端末変更後に認証強度が低下しないことが検証されてもよい。この場合、ステップS65では、ユーザ端末200aの生体認証器についての構成情報と、バックアップサーバ300から受信した認証器情報についての構成情報との比較結果に基づき、ユーザ端末200aでの認証強度が低下しない場合にYesと判定される。例えば、端末変更後における認証強度を示す数値(鍵長や、FARの逆数など)が、端末変更前における同じ項目の数値以上となる場合に、ステップS65でYesと判定される。
図16は、鍵の復元処理の実行時における画面遷移例を示す図である。図13、図14のような鍵の復元処理が実行される際、ユーザ端末200aの表示装置には図16に示すような画面が表示される。
まず、図12と同様の鍵管理のための画面500が表示され、ボタン503に対する選択操作が行われると、鍵の復元処理が開始される。このとき、例えば、図13のステップS51の処理が実行され、ユーザのバックアップデータがバックアップサーバ300に存在した場合、画面540が表示される。画面540には、バックアップデータが存在することが文字情報で表示され、さらにボタン541〜543が表示される。ボタン541は、鍵の復元処理の実行を継続するための選択ボタンであり、ボタン542は、鍵の復元処理の実行を中止するための選択ボタンである。ボタン543は、ボタン501と同様に、登録されたWebサイトの一覧を表示させるための選択ボタンであり、ユーザはボタン543に対する選択操作を行うことで、登録サイトを確認できる。
ボタン541に対する選択操作が行われると、生体認証を行うようにユーザに通知するための画面550が表示される。この画面550は、図13のステップS52で表示される画面の一例である。ユーザの生体情報が読み取られ、生体認証に成功すると、図13のステップS53以降の処理が実行されて、鍵の復元処理が継続される。
ここで、秘密鍵の復元に成功し、図14のステップS68で秘密鍵(および鍵生成時刻)が鍵データベース211aに保存されると、画面560が表示されて、鍵の復元が正常に完了したことがユーザに通知される。一方、秘密鍵の復元に失敗すると、画面570が表示される。画面570は、図14のステップS66が実行された場合に表示される画面の例であり、生体認証の方法を変えるようにユーザに通知するための文字情報が表示されている。
なお、前述のように、認証強度の条件についての判定により、鍵の復元の成否は登録サイトごとに異なる場合がある。この場合、鍵の復元処理が終了したとき、鍵の復元に成功した登録サイトの一覧や、復元に失敗した登録サイトの一覧が表示されてもよい。
図17は、ユーザ端末でのログイン処理手順を示すフローチャートの例である。図17では例として、ユーザ端末200aのFIDOクライアント220aによる処理について説明するが、ユーザ端末200のFIDOクライアント220も同様の処理を実行可能である。
[ステップS71]ユーザにより、認証サーバ100にログインするための操作が行われる。すると、FIDOクライアント220aは、ログイン要求をユーザのアカウント名とともに認証サーバ100に送信する。
[ステップS72]FIDOクライアント220aは、認証サーバ100から、生体認証によるユーザの認証依頼をチャレンジコードとともに受信する。
[ステップS73]FIDOクライアント220aは、生体認証を行うようにユーザに通知するとともに、生体認証処理部240aに認証処理の実行を依頼する。生体センサ201aによってユーザの生体情報が読み取られると、生体認証処理部240aは、その生体情報を取得してユーザの認証を実行する。生体認証処理部240aは、ユーザの認証に成功すると、認証に成功したことをFIDOクライアント220aに通知する。このように認証に成功した場合、処理がステップS74に進められる。
[ステップS73]FIDOクライアント220aは、生体認証を行うようにユーザに通知するとともに、生体認証処理部240aに認証処理の実行を依頼する。生体センサ201aによってユーザの生体情報が読み取られると、生体認証処理部240aは、その生体情報を取得してユーザの認証を実行する。生体認証処理部240aは、ユーザの認証に成功すると、認証に成功したことをFIDOクライアント220aに通知する。このように認証に成功した場合、処理がステップS74に進められる。
[ステップS74]FIDOクライアント220aは、設定情報212aに基づいて、ユーザ端末200aの生体認証器についての認証器情報を取得する。ここでは、図11のステップS44や図14のステップS63と同様に、認証器情報として生体認証器の識別子が取得される。
[ステップS75]FIDOクライアント220aは、認証サーバ100に対応する秘密鍵および鍵保存時刻を鍵データベース211aから取得する。FIDOクライアント220aは、ステップS72で受信したチャレンジコードと、鍵データベース211aから取得した鍵保存時刻と、ステップS74で取得した認証器情報とを含むデータセットに対して、鍵データベース211aから取得した秘密鍵を用いて署名する。具体的には、データセットが秘密鍵によって暗号化され、これによってレスポンスデータが生成される。
[ステップS76]FIDOクライアント220aは、生成されたレスポンスデータを認証サーバ100に送信する。
[ステップS77]FIDOクライアント220aは、認証サーバ100からユーザの認証結果に応じた情報を受信する。認証に成功してログインが受け入れられた場合、その旨を通知する画面が表示され認証サーバ100からサービスの提供が開始される。一方、認証に失敗したことが通知された場合、処理がステップS78に進められる。
[ステップS77]FIDOクライアント220aは、認証サーバ100からユーザの認証結果に応じた情報を受信する。認証に成功してログインが受け入れられた場合、その旨を通知する画面が表示され認証サーバ100からサービスの提供が開始される。一方、認証に失敗したことが通知された場合、処理がステップS78に進められる。
[ステップS78]認証に失敗した理由に応じた処理が実行される。
例えば、ユーザ端末200aが変更前の端末であり、すでに新たなユーザ端末から認証サーバ100に対するログインが実行済みの場合、認証サーバ100からは鍵消去依頼が送信される。FIDOクライアント220aは、鍵消去依頼を受信すると、鍵データベース211aに登録された、認証サーバ100に対応する秘密鍵を消去する。
例えば、ユーザ端末200aが変更前の端末であり、すでに新たなユーザ端末から認証サーバ100に対するログインが実行済みの場合、認証サーバ100からは鍵消去依頼が送信される。FIDOクライアント220aは、鍵消去依頼を受信すると、鍵データベース211aに登録された、認証サーバ100に対応する秘密鍵を消去する。
また、例えば、ユーザ端末200aの生体認証器の認証強度が認証ポリシー112に記載された条件を満たさない「認証方法エラー」の場合、その旨を通知する画面を表示するための表示情報が認証サーバ100から送信される。FIDOクライアント220aは、受信した表示情報に基づく画面を表示装置に表示する。この画面には、例えば、生体認証の方法を変えて認証強度を高めるように促す情報が表示される。
図18、図19は、認証サーバでのログイン受け付け処理手順を示すフローチャートの例である。
[ステップS81]認証サーバ100のFIDOサーバ120は、ユーザ端末からログイン要求をユーザのアカウント名とともに受信する。
[ステップS81]認証サーバ100のFIDOサーバ120は、ユーザ端末からログイン要求をユーザのアカウント名とともに受信する。
[ステップS82]FIDOサーバ120は、受信したアカウント名に対応するユーザの情報がユーザデータベース111に登録されていることを確認すると、乱数の発生によってチャレンジコードを生成し、ユーザ端末に送信する。
[ステップS83]FIDOサーバ120は、ユーザ端末からレスポンスデータを受信する。
[ステップS84]FIDOサーバ120は、ステップS82で受信したアカウント名に対応する秘密鍵をユーザデータベース111から取得し、レスポンスデータを秘密鍵を用いて復号する。これにより、レスポンスデータからチャレンジコード、鍵保存時刻および認証器情報が復元される。
[ステップS84]FIDOサーバ120は、ステップS82で受信したアカウント名に対応する秘密鍵をユーザデータベース111から取得し、レスポンスデータを秘密鍵を用いて復号する。これにより、レスポンスデータからチャレンジコード、鍵保存時刻および認証器情報が復元される。
[ステップS85]FIDOサーバ120は、復元されたチャレンジコードが、ステップS82で送信したチャレンジコードと一致するかを判定する。チャレンジコードが一致する場合、処理がステップS87に進められ、チャレンジコードが一致しない場合、処理がステップS86に進められる。
[ステップS86]このケースでは、受信データが改ざんされるといった不正による認証エラーとなる。FIDOサーバ120は、認証エラーであることを示す画面を表示するための表示情報をユーザ端末に送信して、その画面を通じて認証エラーであることをユーザに通知する。
[ステップS87]FIDOサーバ120は、ステップS82で受信したアカウント名に対応する鍵保存時刻をユーザデータベース111から取得し、ステップS84でレスポンスデータから復元された鍵保存時刻と比較する。
[ステップS88]ユーザデータベース111から取得した鍵保存時刻(登録されている鍵保存時刻)より、レスポンスデータから復元された鍵保存時刻(受信した鍵保存時刻)の方が古い場合(前の時刻の場合)、処理がステップS89に進められる。一方、受信した鍵保存時刻が、登録されている鍵保存時刻と同じか、それより新しい場合、処理が図19のステップS91に進められる。
[ステップS89]このケースでは、例えば、ユーザ端末が変更され、ログイン要求元は変更前のユーザ端末であり、しかも変更後のユーザ端末から認証サーバ100へのログインが1回以上成功している。そこで、FIDOサーバ120は、ログイン要求元のユーザ端末に対して、認証サーバ100に対応する秘密鍵を消去するように依頼する。これにより、変更前のユーザ端末が保持する秘密鍵が自動的に無効化され、そのユーザ端末からのログインが不可能になる。
なお、ステップS88でYesと判定される場合、変更前のユーザ端末からの不正アクセスである可能性もある。ステップS89でログインを受け入れないことにより、このような不正アクセスを阻止できる。
以下、図19を用いて説明を続ける。
[ステップS91]登録されている鍵保存時刻より、受信した鍵保存時刻の方が新しい場合、処理がステップS92に進められる。一方、これらの時刻が同じ場合、処理がステップS97に進められる。後者の場合、ユーザ端末から認証サーバ100に対する2回目以降のログインとなり、ログインが許可される。
[ステップS91]登録されている鍵保存時刻より、受信した鍵保存時刻の方が新しい場合、処理がステップS92に進められる。一方、これらの時刻が同じ場合、処理がステップS97に進められる。後者の場合、ユーザ端末から認証サーバ100に対する2回目以降のログインとなり、ログインが許可される。
[ステップS92]このケースは、ユーザ端末が変更されており、ログイン要求元は変更後のユーザ端末であって、変更後のユーザ端末からの初回ログインとなる。この場合、FIDOサーバ120は次に、ステップS82で受信したアカウント名に対応する認証器情報をユーザデータベース111から取得し、ステップS84でレスポンスデータから復元された認証器情報と比較する。これらの認証器情報が同じ場合、処理がステップS96に進められる。この場合、端末変更前後で生体認証の認証強度が変化しないため、ログインが許可される。一方、比較された認証器情報が互いに異なる場合、処理がステップS93に進められる。
[ステップS93]FIDOサーバ120は、レスポンスデータから復元された認証器情報(変更後のユーザ端末についての認証器情報)をメタデータサーバ400に送信して、対応する生体認証器の構成情報の送信を要求する。要求された構成情報がメタデータサーバ400から送信されると、FIDOサーバ120はこれを受信する。
[ステップS94]FIDOサーバ120は、受信した構成情報に基づき、ユーザ端末の生体認証器の認証強度が、認証ポリシー112に記述された条件を満たすかを判定する。この判定では、例えば、図15で説明した条件1〜4の少なくとも1つが用いられればよい。条件1〜4のうち複数の条件が用いられる場合には、すべての条件を満たす場合に認証強度が条件を満たすと判定されればよい。認証強度が条件を満たす場合、処理がステップS96に進められ、認証強度が条件を満たさない場合、処理がステップS95に進められる。
[ステップS95]このケースでは、生体認証器の認証強度が認証サーバ100で定められる基準を満たしておらず、生体認証の方法が不適切である「認証方法エラー」となる。FIDOサーバ120は、認証に失敗したことをユーザ端末に通知するとともに、例えば、生体認証の認証強度が不適切であることを示す文字情報や、生体認証の方法を変えるように促す文字情報を送信して、ユーザ端末に表示させる。
[ステップS96]FIDOサーバ120は、現在時刻を取得する。FIDOサーバ120は、ユーザデータベース111においてステップS81で受信したアカウント名に対応付けられた鍵保存時刻を、取得した現在時刻によって更新する。
[ステップS97]FIDOサーバ120は、ログインに成功したことをユーザ端末に通知する。
なお、上記の第2の実施の形態では、認証サーバ100側がユーザ端末の認証器情報を保持し、図19のステップS92で、保持している認証器情報と受信した認証器情報とが比較される。しかし、他の例として、認証サーバ100側がユーザ端末の認証器情報を保持しないようにしてもよい。この場合、ステップS92の処理がスキップされる。ただし、認証サーバ100側がユーザ端末の認証器情報を保持してステップS92が実行されることで、端末変更の前後で生体認証器が変化しない場合には、ステップS92でYesと判定され、ステップS93でのメタデータサーバ400との通信が不要になる。このため、ログイン時の処理を効率化できる。
なお、上記の第2の実施の形態では、認証サーバ100側がユーザ端末の認証器情報を保持し、図19のステップS92で、保持している認証器情報と受信した認証器情報とが比較される。しかし、他の例として、認証サーバ100側がユーザ端末の認証器情報を保持しないようにしてもよい。この場合、ステップS92の処理がスキップされる。ただし、認証サーバ100側がユーザ端末の認証器情報を保持してステップS92が実行されることで、端末変更の前後で生体認証器が変化しない場合には、ステップS92でYesと判定され、ステップS93でのメタデータサーバ400との通信が不要になる。このため、ログイン時の処理を効率化できる。
また、図19では、ステップS91の判定により、端末変更後の初回ログインの場合のみ、ステップS92〜S94での認証強度の判定が実行される。しかし、他の例として、ステップS91の判定処理を実行せず、常時ステップS92〜S94での認証強度の判定が実行されてもよい。この場合、認証強度の判定処理を効率化するために、認証サーバ100側がユーザ端末の認証器情報を保持してステップS92が実行される方が望ましい。
また、上記の第2の実施の形態では、秘密鍵をバックアップする際の暗号化方法としてファジーコミットメントが用いられた。これにより、認証サーバ100に対するログイン時に加えて、秘密鍵のバックアップ時や復元時においても、ユーザがパスワードを入力する必要がなくなり、ユーザの操作性が向上する。ただし、これはあくまで一例であり、秘密鍵をバックアップする際の暗号化方法として他の方法が用いられてもよい。例えば、パスワード入力によって秘密鍵が暗号化されてもよい。
秘密鍵の暗号化方法としてファジーコミットメントが用いられる場合、生体認証の方式(用いられる生体情報の種類)はユーザ端末の変更前後で同じである、という制限がかかる。しかし、認証強度が低下しなければ、ユーザ端末の変更前後で生体認証の方式が異なってもよい。例えば、変更前のユーザ端末では指紋認証が行われ、変更後のユーザ端末では静脈認証が行われてもよい。したがって、例えば、ユーザ端末の変更前後で生体認証の方式が異なることが許容される場合には、秘密鍵をバックアップする際の暗号化方法として、生体認証の方式に依存しない方法が用いられればよい。
また、図8〜図19の説明では、生体認証器の識別子は、生体センサと生体認証処理部とを用いて実現される生体認証機能を識別する情報とされていたが、他の例として、生体センサを識別する情報であってもよい。
なお、上記の各実施の形態に示した装置(例えば、認証サーバ1,100、端末装置2,3、ユーザ端末200,200a、バックアップサーバ4,300、メタデータサーバ400)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
1 認証サーバ
2,3 端末装置
3a 記憶部
4 バックアップサーバ
11 秘密鍵
12 公開鍵
21,22 認証器情報
S1a,S1b,S2,S3a,S3b,S4a,S4b ステップ
2,3 端末装置
3a 記憶部
4 バックアップサーバ
11 秘密鍵
12 公開鍵
21,22 認証器情報
S1a,S1b,S2,S3a,S3b,S4a,S4b ステップ
Claims (10)
- バックアップサーバと端末装置とを有する情報処理システムであって、
前記バックアップサーバは、認証サーバが提供するサービスを利用するためにユーザの生体認証を実行する他の端末装置から、前記サービスを利用するための前記ユーザの秘密鍵と、前記他の端末装置における生体認証の認証強度を識別可能にする第1の認証器情報とを受信して記憶し、
前記端末装置は、
前記秘密鍵と前記第1の認証器情報とを前記バックアップサーバから受信し、
前記端末装置における生体認証の認証強度を識別可能にする第2の認証器情報と、受信した前記第1の認証器情報との比較結果に基づき、前記端末装置での認証強度が前記他の端末装置での認証強度以上である場合に、受信した前記秘密鍵を保存して使用可能な状態にし、
前記サービスを利用する際に、前記ユーザの生体認証を実行し、認証に成功すると、前記認証サーバが前記ユーザを認証するための認証用データを、保存された前記秘密鍵で暗号化した状態で前記認証サーバに送信する、
情報処理システム。 - 前記バックアップサーバは、前記他の端末装置における生体認証の際に取得された第1の生体情報を用いて暗号化された状態の前記秘密鍵を、前記他の端末装置から受信して記憶し、
前記端末装置は、
前記第1の認証器情報と暗号化された前記秘密鍵とを前記バックアップサーバから受信するとともに、前記ユーザの生体認証を実行し、
認証に成功すると、当該生体認証の際に取得された第2の生体情報を用いて、暗号化された前記秘密鍵を復号し、
復号に成功すると、前記第1の認証器情報と前記第2の認証器情報との比較処理を実行する、
請求項1記載の情報処理システム。 - 前記情報処理システムは前記認証サーバをさらに有し、
前記認証サーバは、
前記ユーザの公開鍵を記憶し、
前記秘密鍵で暗号化された前記認証用データを受信すると、前記認証用データを前記公開鍵で復号することで前記ユーザの認証処理を実行する、
請求項1または2記載の情報処理システム。 - 前記端末装置は、暗号化された前記認証用データとともに前記第2の認証器情報を前記認証サーバに送信し、
前記認証サーバは、
前記第2の認証器情報に基づいて、前記端末装置での認証強度が所定の条件を満たすかを判定し、
前記公開鍵を用いた復号による前記ユーザの認証処理に成功し、かつ、当該認証強度が前記所定の条件を満たす場合には、前記ユーザによる前記サービスの利用を許可し、
当該認証強度が前記所定の条件を満たさない場合には、前記ユーザによる前記サービスの利用を不許可にする、
請求項3記載の情報処理システム。 - 前記端末装置は、前記バックアップサーバから受信した前記秘密鍵を保存した時刻を示す第2の時刻情報を、暗号化された前記認証用データとともに前記認証サーバに送信し、
前記認証サーバは、
前記公開鍵とともに、前記秘密鍵が前記他の認証サーバに保存された時刻を示す第1の時刻情報を記憶し、
暗号化された前記認証用データと前記第2の時刻情報とを受信すると、受信した前記第2の時刻情報と記憶された前記第1の時刻情報とを比較し、
前記公開鍵を用いた復号による前記ユーザの認証処理に成功し、かつ、当該認証強度が前記所定の条件を満たし、かつ、前記第2の時刻情報が前記第1の時刻情報より後の時刻を示す場合に、前記ユーザによる前記サービスの利用を許可するとともに、記憶された前記第1の時刻情報を前記第2の時刻情報に更新する、
請求項3記載の情報処理システム。 - 前記認証サーバは、
記憶された前記第1の時刻情報が前記第2の時刻情報に更新された後に、前記サービスを利用するために前記他の端末装置から送信された前記第1の時刻情報を受信した場合、受信した前記第1の時刻情報と記憶された前記第2の時刻情報とを比較し、
受信した前記第1の時刻情報が記憶された前記第2の時刻情報より前の時刻を示す場合に、前記他の端末装置が記憶している前記秘密鍵を消去するように前記他の端末装置に要求する、
請求項5記載の情報処理システム。 - コンピュータに、
認証サーバが提供するサービスを利用するためにユーザの生体認証を実行する他の端末装置から出力された、前記サービスを利用するための前記ユーザの秘密鍵と、前記他の端末装置における生体認証の認証強度を識別可能にする第1の認証器情報とを取得し、
前記コンピュータにおける生体認証の認証強度を識別可能にする第2の認証器情報と、取得した前記第1の認証器情報との比較結果に基づき、前記コンピュータでの認証強度が前記他の端末装置での認証強度以上である場合に、受信した前記秘密鍵を保存して使用可能な状態にし、
前記サービスを利用する際に、前記ユーザの生体認証を実行し、認証に成功すると、前記認証サーバが前記ユーザを認証するための認証用データを、保存された前記秘密鍵で暗号化した状態で前記認証サーバに送信する、
処理を実行させる情報処理プログラム。 - コンピュータに、
ユーザを認証するための認証用データを端末装置に送信して、前記ユーザの生体認証の実行を要求し、
前記生体認証に成功した場合に前記端末装置から送信される、前記ユーザの秘密鍵によって暗号化された前記認証用データと、前記端末装置における前記生体認証の認証強度を識別可能にする認証器情報とを受信し、
暗号化された前記認証用データを前記ユーザの公開鍵で復号することで前記ユーザの認証処理を実行するとともに、前記認証器情報に基づいて、前記生体認証の認証強度が所定の条件を満たすかを判定し、
前記公開鍵を用いた復号による前記ユーザの認証処理に成功し、かつ、当該認証強度が前記所定の条件を満たす場合には、前記ユーザによる所定のサービスの利用を許可し、
当該認証強度が前記所定の条件を満たさない場合には、前記ユーザによる前記サービスの利用を不許可にする、
処理を実行させる情報処理プログラム。 - コンピュータが、
認証サーバが提供するサービスを利用するためにユーザの生体認証を実行する他の端末装置から出力された、前記サービスを利用するための前記ユーザの秘密鍵と、前記他の端末装置における生体認証の認証強度を識別可能にする第1の認証器情報とを取得し、
前記コンピュータにおける生体認証の認証強度を識別可能にする第2の認証器情報と、取得した前記第1の認証器情報との比較結果に基づき、前記コンピュータでの認証強度が前記他の端末装置での認証強度以上である場合に、受信した前記秘密鍵を保存して使用可能な状態にし、
前記サービスを利用する際に、前記ユーザの生体認証を実行し、認証に成功すると、前記認証サーバが前記ユーザを認証するための認証用データを、保存された前記秘密鍵で暗号化した状態で前記認証サーバに送信する、
情報処理方法。 - コンピュータが、
ユーザを認証するための認証用データを端末装置に送信して、前記ユーザの生体認証の実行を要求し、
前記生体認証に成功した場合に前記端末装置から送信される、前記ユーザの秘密鍵によって暗号化された前記認証用データと、前記端末装置における前記生体認証の認証強度を識別可能にする認証器情報とを受信し、
暗号化された前記認証用データを前記ユーザの公開鍵で復号することで前記ユーザの認証処理を実行するとともに、前記認証器情報に基づいて、前記生体認証の認証強度が所定の条件を満たすかを判定し、
前記公開鍵を用いた復号による前記ユーザの認証処理に成功し、かつ、当該認証強度が前記所定の条件を満たす場合には、前記ユーザによる所定のサービスの利用を許可し、
当該認証強度が前記所定の条件を満たさない場合には、前記ユーザによる前記サービスの利用を不許可にする、
情報処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020045636A JP2021150681A (ja) | 2020-03-16 | 2020-03-16 | 情報処理システム、情報処理プログラムおよび情報処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020045636A JP2021150681A (ja) | 2020-03-16 | 2020-03-16 | 情報処理システム、情報処理プログラムおよび情報処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2021150681A true JP2021150681A (ja) | 2021-09-27 |
Family
ID=77851354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020045636A Pending JP2021150681A (ja) | 2020-03-16 | 2020-03-16 | 情報処理システム、情報処理プログラムおよび情報処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2021150681A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11983965B2 (en) | 2020-11-05 | 2024-05-14 | Samsung Electronics Co., Ltd. | Electronic device for biometric authentication and method for operating the same |
-
2020
- 2020-03-16 JP JP2020045636A patent/JP2021150681A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11983965B2 (en) | 2020-11-05 | 2024-05-14 | Samsung Electronics Co., Ltd. | Electronic device for biometric authentication and method for operating the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109951489B (zh) | 一种数字身份认证方法、设备、装置、系统及存储介质 | |
EP2924604B1 (en) | Electronic biometric (dynamic) signature references enrollment method | |
US9589117B2 (en) | Computer security system and method | |
US11842348B2 (en) | Data management system and data management method | |
US11556617B2 (en) | Authentication translation | |
US20110138450A1 (en) | Secure Transaction Systems and Methods using User Authenticating Biometric Information | |
EP1777641A1 (en) | Biometric authentication system | |
KR101221272B1 (ko) | 이동식 스마트카드 기반 인증 | |
US20080040613A1 (en) | Apparatus, system, and method for secure password reset | |
US20080010453A1 (en) | Method and apparatus for one time password access to portable credential entry and memory storage devices | |
KR20110081103A (ko) | 보안 트랜잭션 시스템 및 방법 | |
TW202036337A (zh) | 基於身分資訊的密碼金鑰管理 | |
JP4786501B2 (ja) | データ管理システム、データ管理方法、情報処理装置 | |
JP2007527059A (ja) | ユーザ、およびコンピュータシステムから受信された通信の認証のための方法および装置 | |
JP2006311529A (ja) | 認証システムおよびその認証方法、認証サーバおよびその認証方法、記録媒体、プログラム | |
TWI724681B (zh) | 基於身分資訊管理密碼金鑰 | |
US11528266B2 (en) | Information processing apparatus, system, and control method therefor | |
EP1542135B1 (en) | A method which is able to centralize the administration of the user registered information across networks | |
JP4724107B2 (ja) | リムーバブル・デバイスを用いたユーザの認証方法およびコンピュータ | |
JP2021150681A (ja) | 情報処理システム、情報処理プログラムおよび情報処理方法 | |
JP4584196B2 (ja) | 情報処理システム、情報処理方法、およびプログラム | |
JP2007060581A (ja) | 情報管理システム及び方法 | |
WO2017091133A1 (en) | Method and system for secure storage of information | |
JP2006268513A (ja) | 端末装置のログオン管理装置 | |
JP2006527446A (ja) | 取引を実行し、ディジタル・データへの正当なアクセスまたはその使用を検証するための方法およびシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20221208 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230905 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20240305 |