(57)【要約】【課題】Ｍ−Ｐｉｎのための秘密情報の漏洩時の作業負担を軽減すること。【解決手段】認証システムは、クライアント端末にネットワークを介して接続されるサービス提供サーバと、前記サービス提供サーバにネットワークを介して接続される認証サーバとを含み、前記サービス提供サーバは、前記クライアント端末のユーザのＭ−Ｐｉｎによる認証に必要なパラメータを前記認証サーバに送信する際に、前記サービス提供サーバの公開鍵及び秘密鍵については、共通の乱数を適用した値を前記認証サーバに送信する送信部を有し、前記認証サーバは、前記パラメータを受信すると、当該パラメータに基づいて、Ｍ−Ｐｉｎのための計算を実行し、計算結果を前記サービス提供サーバに送信する計算部を有する。【選択図】図３
2018207287.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末にネットワークを介して接続されるサービス提供サーバと、前記サービス提供サーバにネットワークを介して接続される認証サーバとを含む認証システムであって、
前記サービス提供サーバは、
前記クライアント端末のユーザのＭ−Ｐｉｎによる認証に必要なパラメータを前記認証サーバに送信する際に、前記サービス提供サーバの公開鍵及び秘密鍵については、共通の乱数を適用した値を前記認証サーバに送信する送信部を有し、
前記認証サーバは、
前記パラメータを受信すると、当該パラメータに基づいて、Ｍ−Ｐｉｎのための計算を実行し、計算結果を前記サービス提供サーバに送信する計算部を有する、
ことを特徴とする認証システム。
【請求項２】
前記送信部は、
前記クライアント端末が生成した乱数をｘ、
前記サービス提供サーバが生成した乱数をｙ及びｒ１、
正しい識別番号をα１、
前記クライアント端末にユーザによって入力された識別番号をα２、
マスタ秘密鍵をｓ、
前記サービス提供サーバの楕円曲線Ｅ上の公開鍵をＱ、
サービス提供サーバの秘密鍵をｓＱ、
前記楕円曲線Ｅ上の前記クライアント端末のＩＤのハッシュ値をＡ、
Ｖ＝−（ｘ＋ｙ）（（ｓ−α１）Ａ＋α２Ａ）、
Ｕ＝ｘＡ、
とした場合に、Ｖ、ｒ１Ｑ、Ｕ＋ｙＡ、ｒ１ｓＱを前記認証サーバに送信する、
ことを特徴とする請求項１記載の認証システム。
【請求項３】
前記送信部は、
前記クライアント端末が生成した乱数をｘ、
前記サービス提供サーバが生成した乱数をｙ，ｒ１及びｒ２、
正しい識別番号をα１、
前記クライアント端末にユーザによって入力された識別番号をα２、
マスタ秘密鍵をｓ、
前記サービス提供サーバの楕円曲線Ｅ上公開鍵をＱ、
サービス提供サーバの秘密鍵をｓＱ、
前記楕円曲線Ｅ上の前記クライアント端末のＩＤのハッシュ値をＡ、
Ｖ＝−（ｘ＋ｙ）（（ｓ−α１）Ａ＋α２Ａ）、
Ｕ＝ｘＡ、
とした場合に、ｒ２Ｖ、ｒ１Ｑ、ｒ２（Ｕ＋ｙＡ）、ｒ１ｓＱを前記認証サーバに送信する、
ことを特徴とする請求項１記載の認証システム。
【請求項４】
請求項１乃至３いずれか一項記載のサービス提供サーバ。
【請求項５】
請求項１乃至３いずれか一項記載の認証サーバ。
【請求項６】
クライアント端末と認証サーバとにネットワークを介して接続されるサービス提供サーバに、
前記クライアント端末のユーザのＭ−Ｐｉｎによる認証に必要なパラメータを前記認証サーバに送信する際に、前記サービス提供サーバの公開鍵及び秘密鍵については、共通の乱数を適用した値を前記認証サーバに送信する送信手順をさせ、
前記認証サーバは、
前記パラメータを受信すると、当該パラメータに基づいて、Ｍ−Ｐｉｎのための計算を実行し、計算結果を前記サービス提供サーバに送信する、
ことを特徴とするプログラム。
【請求項７】
クライアント端末にネットワークを介して接続されるサービス提供サーバとネットワークを介して接続される認証サーバに、
前記クライアント端末のユーザのＭ−Ｐｉｎによる認証に必要なパラメータを前記サービス提供サーバから受信すると、当該パラメータに基づいて、Ｍ−Ｐｉｎのための計算を実行する計算手順と、
前記計算の結果を前記サービス提供サーバに送信する送信手順とを実行させ、
前記サービス提供サーバは、
前記パラメータを前記認証サーバに送信する際に、前記サービス提供サーバの公開鍵及び秘密鍵については、共通の乱数を適用した値を前記認証サーバに送信する、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証システム、サービス提供サーバ、認証サーバ、及びプログラムに関する。
【背景技術】
【０００２】
従来の知識認証では、ＯＴＰ（one-time password）、ＰＡＫＥ（Password Authenticated Key Exchange）等がよく利用されているが、ＯＴＰは、全数探索攻撃には強いがフィッシング攻撃に弱く、ＰＡＫＥは、フィッシング攻撃には強いが全数探索攻撃に弱い。
【０００３】
これに対し、フィッシング攻撃にも全数探索攻撃にも強い認証方法としてＭ−Ｐｉｎが提案されている（例えば、非特許文献１参照）。すなわち、Ｍ−Ｐｉｎでは、パスワードを直接送信しないことによりフィッシング攻撃を防御し、２要素認証により全数探索攻撃を防御することができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Michael S., M-Pin: A Multi-Factor Zero Knowledge Authentication Protocol, (2016), インターネット＜URL：https://www.miracl.com/hs-fs/hub/230906/file-63954152-pdf/downloads/certivox_labs_mpin.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、Ｍ−Ｐｉｎによる認証処理は、サービスを提供するサーバごとに実行される。したがって、鍵発行局から秘密情報（マスタ秘密鍵）が漏洩した場合、なりすまし攻撃を防ぐためには、漏洩元の鍵発行局を利用している全てのサービス提供者に連絡して、当該全てのサービス提供者のサーバを停止する必要があり、作業負担が大きいという問題が有った。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、Ｍ−Ｐｉｎのための秘密情報の漏洩時の作業負担を軽減することを目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、認証システムは、クライアント端末にネットワークを介して接続されるサービス提供サーバと、前記サービス提供サーバにネットワークを介して接続される認証サーバとを含み、前記サービス提供サーバは、前記クライアント端末のユーザのＭ−Ｐｉｎによる認証に必要なパラメータを前記認証サーバに送信する際に、前記サービス提供サーバの公開鍵及び秘密鍵については、共通の乱数を適用した値を前記認証サーバに送信する送信部を有し、前記認証サーバは、前記パラメータを受信すると、当該パラメータに基づいて、Ｍ−Ｐｉｎのための計算を実行し、計算結果を前記サービス提供サーバに送信する計算部を有する。
【発明の効果】
【０００８】
Ｍ−Ｐｉｎのための秘密情報の漏洩時の作業負担を軽減することができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施の形態における認証システムの構成例を示す図である。
【図２】第１の実施の形態におけるサービス提供サーバ１０のハードウェア構成例を示す図である。
【図３】第１の実施の形態におけるサービス提供サーバ１０及び認証サーバ２０の機能構成例を示す図である。
【図４】第１の実施の形態の運用前の前処理の処理手順の一例を説明するためのシーケンス図である。
【図５】第１の実施の形態の認証時の処理手順の一例を説明するためのシーケンス図である。
【図６】第２の実施の形態の認証時の処理手順の一例を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて第１の実施の形態を説明する。図１は、第１の実施の形態における認証システムの構成例を示す図である。図１において、認証システム１は、サービス提供サーバ１０ａ及び１０ｂ等の複数のサービス提供サーバ１０、クライアント端末３０ａ及び３０ｂ等の１以上のクライアント端末３０、鍵発行局４０及び認証サーバ２０等を含む。サービス提供サーバ１０は、クライアント端末３０、鍵発行局４０及び認証サーバ２０とネットワークを介して接続される。クライアント端末３０は、更に、鍵発行局４０とネットワークを介して通信可能である。
【００１１】
サービス提供サーバ１０は、Ｗｅｂサーバ等、何らかのサービスをクライアント端末３０に提供する１以上のコンピュータである。
【００１２】
クライアント端末３０は、サービス提供サーバ１０によって提供されるサービスのユーザインタフェースとして機能する端末である。例えば、ＰＣ（Personal Computer）、スマートフォン、又はタブレット端末等がクライアント端末３０として利用されてもよい。
【００１３】
認証サーバ２０は、いずれかのサービス提供サーバ１０へアクセスを要求するクライアント端末３０のユーザについて認証処理を実行する１以上のコンピュータである。本実施の形態において、認証サーバ２０は、複数のサービス提供サーバ１０によって共用される。すなわち、本実施の形態では、従来技術（例えば、非特許文献１）において区別されていなかったサービス提供サーバ１０と認証サーバ２０とが、それぞれに分離され、複数のサービス提供サーバ１０に関する認証処理が、認証サーバ２０によって一元的に実行される。
【００１４】
鍵発行局４０は、クライアント端末３０のユーザの認証（Ｍ−Ｐｉｎ）に利用される暗号鍵の発行等を行う１以上のコンピュータである。
【００１５】
図２は、第１の実施の形態におけるサービス提供サーバ１０のハードウェア構成例を示す図である。図２のサービス提供サーバ１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１６】
サービス提供サーバ１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１７】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従ってサービス提供サーバ１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１８】
なお、認証サーバ２０及び鍵発行局４０等も、図２に示されるような１以上のコンピュータによって構成されてもよい。
【００１９】
図３は、第１の実施の形態におけるサービス提供サーバ１０及び認証サーバ２０の機能構成例を示す図である。
【００２０】
図３において、サービス提供サーバ１０は、鍵受信部１１、ログイン要求受信部１２、認証情報受信部１３、認証要求部１４及び認証結果受信部１５等を有する。これら各部は、サービス提供サーバ１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。サービス提供サーバ１０は、また、鍵記憶部１２１を利用する。鍵記憶部１２１は、例えば、補助記憶装置１０２、又はサービス提供サーバ１０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００２１】
一方、認証サーバ２０は、楕円曲線発行部２１及び認証処理部２２等を有する。これら各部は、認証サーバ２０にインストールされた１以上のプログラムが、認証サーバ２０のＣＰＵに実行させる処理により実現される。認証サーバ２０は、また、トラップドア情報記憶部２１１を利用する。トラップドア情報記憶部２１１は、例えば、補助記憶装置１０２、又は認証サーバ２０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。なお、トラップドア情報記憶部２１１としては、ＨＳＭ（Hardware Security Module）が好適である。
【００２２】
以下、認証システム１において実行される処理手順について説明する。図４は、第１の実施の形態の運用前の前処理の処理手順の一例を説明するためのシーケンス図である。
【００２３】
ステップＳ１０１において、認証サーバ２０の楕円曲線発行部２１は、ｓｕｐｅｒｓｉｎｇｕｌａｒ楕円曲線Ｅ（Ｚ／ＮＺ）を発行する。この際、楕円曲線発行部２１は、楕円曲線Ｅの位数情報であり、後述されるペアリングｅの計算に用いられるトラップドア情報Ｔ（ｐ１，ｐ２，ｊ１，ｊ２）を、トラップドア情報記憶部２１１に保存する。なお、Ｚは有理整数環であり、Ｎ＝ｐ１ｐ２である。また、各ｊｄ（ｄ＝１，２）は、ｊｄ｜（ｐｄ＋１）を満たすような十分大きな素数である。ここで、ｊｄ｜（ｐｄ＋１）は、ｊｄが（ｐｄ＋１）によって割り切れることを意味する。
【００２４】
続いて、楕円曲線発行部２１は、楕円曲線Ｅを鍵発行局４０に送信する（Ｓ１０２）。鍵発行局４０は、マスタ秘密鍵ｓとする整数を生成し（Ｓ１０３）、サービス提供サーバ１０にＱとｓＱを送信する（Ｓ１０４）。ここで、Ｑは、楕円曲線Ｅ上の点であり、ｓＱは、楕円曲線Ｅ上におけるスカラー倍算を意味する。なお、楕円曲線Ｅは、複数のサービス提供サーバ１０に対して共通である。一方、マスタ秘密鍵ｓ、Ｑ及びｓＱは、サービス提供サーバ１０ごと（サービスごと）に異なる。なお、以下において、基本的に、小文字のアルファベット１文字は、整数を示す。大文字のアルファベット１文字は、楕円曲線Ｅ上の点を示す。整数をａ、楕円曲線Ｅ上の点をＢとした場合に、ａＢは、Ｂについてのａによる楕円曲線Ｅ上におけるスカラー倍算を示す。
【００２５】
サービス提供サーバ１０の鍵受信部１１は、Ｑ及びｓＱを受信すると、Ｑを公開鍵として、ｓＱを秘密鍵としてそれぞれを鍵記憶部１２１に保存する（Ｓ１０５）。なお、サービス提供サーバ１０と認証サーバ２０との通信は暗号化されているものとする。
【００２６】
一方、クライアント端末３０は、ＩＤのハッシュ値であるＡ＝Ｈ（ＩＤ）を含む登録要求を鍵発行局４０に送信する（Ｓ１１１）。Ｈ（ｘ）は、ｘについての楕円曲線Ｅ上のハッシュ値を算出する関数である。また、ＩＤは、クライアント端末３０ごとの識別情報であり、例えば、各クライアント端末３０に予め保存されている。
【００２７】
鍵発行局４０は、当該登録要求を受信すると、マスタ秘密鍵ｓと当該登録要求に含まれているＡとに基づいてｓＡを発行（計算）し（Ｓ１１２）、ｓＡを暗号化通信によってクライアント端末３０に送信する（Ｓ１１３）。続いて、ユーザがＰＩＮ（Personal Identification Number：個人暗証番号）α１を入力すると（Ｓ１１４）、クライアント端末３０は、（ｓ−α１）Ａをクライアント端末３０内に保存する（Ｓ１１５）。
【００２８】
以上で前処理は終了する。続いて、認証時の処理手順について説明する。図５は、第１の実施の形態の認証時の処理手順の一例を説明するためのシーケンス図である。
【００２９】
ユーザによって、ＰＩＮα２がクライアント端末３０に入力されると（Ｓ２０１）、クライアント端末３０は乱数ｘを生成する（Ｓ２０２）。続いて、クライアント端末３０は、Ｕ＝ｘＡを計算し（Ｓ２０３）、（ＩＤ，Ｕ）を含むログイン要求を、例えば、ユーザによって指定されたサービス提供サーバ１０に送信する（Ｓ２０４）。
【００３０】
サービス提供サーバ１０のログイン要求受信部１２は、当該ログイン要求を受信すると、乱数ｙを生成し（Ｓ２０５）、乱数ｙをクライアント端末３０に送信する（Ｓ２０６）。
【００３１】
クライアント端末３０は、乱数ｙを受信すると、認証情報Ｖ＝−（ｘ＋ｙ）（（ｓ−α１）Ａ＋α２Ａ）を生成（計算）し（Ｓ２０７）、認証情報Ｖをサービス提供サーバ１０に送信する（Ｓ２０８）。ここで、（ｓ−α１）Ａは、予めクライアント端末３０に保存されている値である。なお、正しいユーザであれば、α１＝α２である。
【００３２】
サービス提供サーバ１０の認証情報受信部１３が、認証情報Ｖを受信すると、認証要求部１４は、乱数ｒ１を生成する（Ｓ２０９）。続いて、認証要求部１４は、（Ｖ，ｒ１Ｑ，（Ｕ＋ｙＡ），ｒ１ｓＱ）を含む認証要求を認証サーバ２０に送信する（Ｓ２１０）。すなわち、Ｑ及びｓＱには、共通の乱数ｒ１が適用される。ｓＱに乱数ｒ１が適用されるのは、秘密鍵であるｓＱをそのままネットワーク上に流通させるのはセキュリティの観点において好ましくないからである。Ｑに乱数ｒ１が適用されるのは、ｓＱに適用された乱数ｒ１と同じ乱数を適用することで、後述のペアリングｅの計算を可能とするためである。なお、認証要求部１４は、ステップＳ２０４において受信されたＩＤに基づいて、Ａを計算し、更に、ｙＡを計算する。
【００３３】
認証サーバ２０の認証処理部２２は、当該認証要求を受信すると、トラップドア情報記憶部２１１に記憶されているトラップドア情報Ｔを用いてｇ＝ｅ（Ｖ，ｒ１Ｑ）ｅ（（Ｕ＋ｙＡ），ｒ１ｓＱ）を計算する（Ｓ２１１）。すなわち、ペアリングｅの計算が実行される。ここで、α１＝α２であり、かつ、クライアント端末３０に保存されている（ｓ−α１）Ａが正しければ、ｇ＝０となり、そうでなければ、ｇ≠０となる。なお、計算方法は、例えば、「http://www.ieice-hbkb.org/files/01/01gun_03hen_07.pdf」及び「https://www.researchgate.net/publication/225174550_Hidden_Pairings_and_Trapdoor_DDH_Groups」等を参考とすることができる。続いて、認証処理部２２は、計算結果ｇをサービス提供サーバ１０に送信する（Ｓ２１２）。
【００３４】
サービス提供サーバ１０の認証結果受信部１５は、計算結果ｇを受信すると、ｇに基づいて認証の成否を判定する（Ｓ２１３）。具体的には、ｇ＝０であれば認証は成功と判定され、それ以外であれば認証は失敗と判定される。続いて、認証結果受信部１５は、認証結果をクライアント端末３０に送信する（Ｓ２１４）。具体的には、ｇ＝０ならばａｃｃｅｐｔ、それ以外ではｒｅｊｅｃｔがクライアント端末３０に送信される。
【００３５】
上述したように、本実施の形態によれば、サービス提供サーバ１０から認証サーバ２０が分離され、複数のサービス提供サーバ１０のそれぞれに対するログイン要求について、一つの認証サーバ２０によって一元的に認証処理が実行される。したがって、鍵発行局４０から秘密情報（マスタ秘密鍵ｓ）が漏洩した場合でも認証サーバ２０による処理を停止させることでなりすまし等の不正行為を防ぐことができる。その結果、Ｍ−Ｐｉｎのための秘密情報の漏洩時の作業負担を軽減することができる。
【００３６】
また、Ｍ−Ｐｉｎに必要なパラメータがサービス提供サーバ１０から認証サーバ２０へ送信される際において、サービス提供サーバ１０の秘密鍵ｓＱには乱数ｒ１が適用される。したがって、秘密鍵ｓＱが漏洩する可能性を低下させることができ、サービス提供サーバ１０と認証サーバ２０とを分離したことによるセキュリティの低下を抑制することができる。
【００３７】
また、サービス提供サーバ１０の公開鍵Ｑに対しても、秘密鍵ｓＱと共通の乱数ｒ１が適用されることで、認証サーバ２０におけるペアリングｅの計算を可能とすることができる。
【００３８】
なお、鍵発行局４０は、複数存在してもよい。この場合であっても、サービス提供サーバ１０と認証サーバ２０との間のやりとりは、上記した通りでよい。
【００３９】
次に、第２の実施の形態について説明する。第２の実施の形態では第１の実施の形態と異なる点について説明する。第２の実施の形態において特に言及されない点については、第１の実施の形態と同様でもよい。
【００４０】
図６は、第２の実施の形態の認証時の処理手順の一例を説明するためのシーケンス図である。図６中、図５と同一ステップには同一ステップ番号を付し、その説明は省略する。図６では、図５のステップＳ２０９〜Ｓ２１１が、Ｓ２０９ａ〜Ｓ２１１ａに置換されている。
【００４１】
ステップＳ２０９ａにおいて、認証情報受信部１３は、認証情報Ｖを受信すると、乱数ｒ１に加えて乱数ｒ２を生成する（Ｓ２０９）。乱数ｒ２は、乱数ｒ１とは異なる乱数である。続いて、認証要求部１４は、（ｒ２Ｖ，ｒ１Ｑ，ｒ２（Ｕ＋ｙＡ），ｒ１ｓＱ）を含む認証要求を認証サーバ２０に送信する（Ｓ２１０ａ）。すなわち、Ｖ及び（Ｕ＋ｙＡ）に対して乱数ｒ２が適用される。
【００４２】
認証サーバ２０の認証処理部２２は、当該認証要求を受信すると、トラップドア情報記憶部２１１に記憶されているトラップドア情報Ｔを用いてｇ＝ｅ（ｒ２Ｖ，ｒ１Ｑ）ｅ（ｒ２（Ｕ＋ｙＡ），ｒ１ｓＱ）を計算する（Ｓ２１１）。ここで、α１＝α２であり、かつ、クライアント端末３０に保存されている（ｓ−α１）Ａが正しければ、ｇ＝０となり、そうでなければ、ｇ≠０となる。なお、計算方法は、第１の実施の形態と同様でよい。
【００４３】
なお、上記各実施の形態において、認証要求部１４は、送信部の一例である。認証処理部２２は、計算部の一例である。ＰＩＮは、識別番号の一例である。
【００４４】
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４５】
１            認証システム
１０          サービス提供サーバ
１１          鍵受信部
１２          ログイン要求受信部
１３          認証情報受信部
１４          認証要求部
１５          認証結果受信部
２０          認証サーバ
２１          楕円曲線発行部
２２          認証処理部
３０          クライアント端末
４０          鍵発行局
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１２１        鍵記憶部
２１１        トラップドア情報記憶部
Ｂ            バス
【図１】
2018207287.tif 000003
【図２】
2018207287.tif 000004
【図３】
2018207287.tif 000005
【図４】
2018207287.tif 000006
【図５】
2018207287.tif 000007
【図６】
2018207287.tif 000008