(58)【調査した分野】(Int.Cl.,DB名)
鍵認証に用いる秘密鍵を記憶している認証端末による、鍵認証に用いる予備の公開鍵および秘密鍵の登録の要求を、認証サーバから受信した場合に、該予備の公開鍵および秘密鍵を生成して記憶部に保存し、該予備の公開鍵を前記認証サーバに送信して記憶させ、
前記予備の公開鍵および秘密鍵の登録の後、鍵認証に用いる秘密鍵が記憶されていない認証端末から該鍵認証に用いる公開鍵および秘密鍵の再登録を要求された場合に、該要求を前記記憶部に記憶されている前記予備の秘密鍵を用いて暗号化して前記認証サーバに送信する制御ステップをコンピュータに実行させるための予備鍵管理プログラム。
【発明を実施するための形態】
【0013】
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
【0014】
[認証システムの構成]
まず、
図1を参照して、本実施形態の認証システムの構成について説明する。
図1に示すように、認証システム10は、認証端末としての端末1と、認証サーバとしてのWEBサービスサーバ2と、予備鍵管理装置としての予備鍵預かりサーバ3とが、互いにインターネット等の通信ネットワークを介して通信可能に接続されている。
【0015】
WEBサービスサーバ2は、WEBサービスのサービス事業者が運用するサーバ装置であって、サービスを利用するユーザの登録と認証とを行う。WEBサービスサーバ2は、登録したユーザを鍵認証を用いて認証する。そのため、WEBサービスサーバ2では、鍵認証に用いる公開鍵(以後、サービス認証用の公開鍵とも称する。)K1が、登録されたユーザを識別するユーザIDと対応付けして記憶部に記憶され登録されている。
【0016】
端末1は、WEBサービスサーバ2に対してサービスの利用を開始するログインを要求するユーザが所有するパソコン、スマートホン、またはタブレット等の端末装置であって、WEBサービスサーバ2との間の鍵認証に応答する。そのため、端末1の認証デバイスの耐タンパー領域に、鍵認証に用いる秘密鍵(以後、サービス認証用の秘密鍵とも称する。)K2が登録されている。
【0017】
予備鍵預かりサーバ3は、サービスの利用登録を行ったユーザに対して端末1とWEBサービスサーバ2との間で行われる鍵認証に用いる予備の秘密鍵K4を管理する装置である。本実施形態では、予備鍵預かりサーバ3は、ISP(Internet Service Provider)により運用される。予備鍵預かりサーバ3は、WEBサービスサーバ2にログインを要求するユーザの鍵認証に用いる予備の公開鍵K3および秘密鍵K4(以後、予備鍵または予備鍵ペアとも称する。)を生成する。そして、予備鍵預かりサーバ3は、生成した予備の秘密鍵K4を登録するとともに、生成した予備の公開鍵K3をWEBサービスサーバ2に引き渡す。また、予備鍵預かりサーバ3は、予備鍵が登録された後、ユーザが、例えば端末1を紛失したり変更したりして、サービス認証用の秘密鍵K2が記憶されていない端末1を用いて予備鍵預かりサーバ3にアクセスした際、予備鍵を用いてユーザを認証し、端末1およびWEBサービス2の間にサービス認証用の秘密鍵K2および公開鍵K1を再登録、すなわち、改めて生成し登録する。
【0018】
ここで、
図2を参照し、本実施形態の概要について説明する。
図2に例示するように、ISPでの端末1の認証は、例えばPPPoE(PPP over Ethernet(登録商標))のセッションIDと払い出されたIP(Internet Protocol)アドレス等のアクセス時の回線認証情報と、ISPのユーザIDおよび予め登録されたパスワード(PW)との組み合わせで実施される。一方、WEBサービスサーバ2での端末1の認証は、後述するように、予備鍵預かりサーバ3に予備鍵を登録する場合には、サービス認証用の公開鍵K1を用いて行われ、サービス認証用の公開鍵K1および秘密鍵K2を再登録させる場合には、予備鍵を用いて行われる。
【0019】
なお、
図1に例示した認証システム10では、予備鍵預かりサーバ3がISP網内に設置されているが、認証システム10の構成はこれに限定されない。例えば、予備鍵預かりサーバ3は、LTE(Long Term Evolution)網内や固定網内に設置されもよい。この場合、端末1がWi−Fi(登録商標)(Wireless Fidelity)やLTE等を介してアクセスする。
【0020】
また、予備鍵預かりサーバ3を、例えば、予備鍵預かりサービスというようなWEBサービスを提供するサービス事業者が運用してもよい。その場合、ISP等における回線情報を用いた認証の代わりに、パスワードに依らないハードウェアのOTP(One Time Password)トークン等による認証を提供する。
【0021】
[WEBサービスサーバの構成]
WEBサービスサーバ2は、ワークステーションやパソコン等の汎用コンピュータで実現され、装置内部のCPU(Central Processing Unit)等の演算処理装置がメモリに記憶された制御プログラムを実行することによって、制御部として機能する。
【0022】
また、WEBサービスサーバ2は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される記憶部を備える。記憶部は、予備の公開鍵K3を記憶する。具体的に記憶部には、
図3に例示するように、WEBサービスのユーザID、サービス認証用公開鍵、予備の公開鍵、および予備鍵預かりサーバのURI(Uniform Resource Identifier)等を含む情報が記憶される。
図3に示す例では、例えば、WEBサービスのユーザIDが「userid2」であるユーザに対応付けられて、サービス認証用公開鍵「Reoin.....niwoak」、予備の公開鍵「Nioowa.....ewnin」、予備鍵預かりサーバのURI「https://spare-key.isp.com/authorize」が記憶されている。これらの情報は、後述する認証処理手順でWEBサービスのユーザIDに対応づけて記憶される。
【0023】
WEBサービスサーバ2は、制御部の制御により、鍵認証に用いる秘密鍵が記憶されている端末1から予備の公開鍵K3および秘密鍵K4の登録を要求された場合に、この要求を予備鍵預かりサーバ3に転送し、予備の公開鍵K3および秘密鍵K4が生成された場合に、生成された予備の公開鍵K3を予備鍵預かりサーバ3から受信して記憶部に保存する。ここで、予備の公開鍵K3および秘密鍵K4の登録とは、予備の公開鍵K3および秘密鍵K4を生成させ、予備の秘密鍵K4を予備鍵預かりサーバ3に記憶させるとともに、予備の公開鍵K3をWEBサービスサーバ2に記憶させることを意味する。
【0024】
また、WEBサービスサーバ2は、予備鍵預かりサーバ3から、予備の秘密鍵K4を用いて暗号化された、鍵認証に用いる公開鍵K1および秘密鍵K2の再登録の要求を受信した場合に、予備の公開鍵K3を用いて復号した要求に応じて、鍵認証に用いる公開鍵K1および秘密鍵K2を生成させ指示を端末1に送信する。ここで、鍵認証に用いる公開鍵K1および秘密鍵K2の再登録とは、サービス認証用の公開鍵K1および秘密鍵K2のペアを生成させ、サービス認証用の秘密鍵K2を端末1に記憶させ、サービス認証用の公開鍵K1をWEBサービスサーバ2に更新記憶させることを意味する。認証システム10の全体における認証処理手順については後述する。
【0025】
[端末の構成]
端末1は、パソコンやスマートホンやタブレット等の汎用コンピュータで実現され、装置内部のCPU等の演算処理装置がメモリに記憶された制御プログラムを実行することによって、制御部として機能する。また、端末1は、記憶部として認証デバイスを備え、耐タンパー領域にサービス認証用の秘密鍵K2が記憶される。このサービス認証用の秘密鍵K2は、WEBサービスのユーザIDが発行された際や、後述する鍵再登録処理の際等に実行されるサービス認証用鍵の登録処理により、端末1に登録される。
【0026】
端末1は、制御部の制御により、鍵認証に用いる秘密鍵が記憶されている場合に、WEBサービスサーバ2に鍵認証に用いる予備の公開鍵K3および秘密鍵K4の登録を要求する。また、端末1は、予備の公開鍵K3および秘密鍵K4の登録の後、鍵認証に用いる秘密鍵が記憶されていない場合に、予備鍵預かりサーバ3に鍵認証に用いる公開鍵K1および秘密鍵K2の再登録を要求する。認証システム10の全体における認証処理手順については後述する。
【0027】
[予備鍵預かりサーバの構成]
予備鍵預かりサーバ3は、ワークステーションやパソコン等の汎用コンピュータで実現され、装置内部のCPU等の演算処理装置がメモリに記憶された制御プログラムを実行することによって、制御部として機能する。
【0028】
また、予備鍵預かりサーバ3は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される記憶部を備える。記憶部は、予備の秘密鍵K4を記憶する。具体的に記憶部には、
図4に例示するように、ISPのユーザID、予備の秘密鍵、予備の公開鍵、WEBサービスサーバ2のURI、WEBサービスのユーザID、端末認証トークン等を含む情報が記憶される。
図4に示す例では、ISPのユーザIDが「Isp_userid1」であるユーザに対応付けて、予備の秘密鍵「nwio.....ewnioa」、予備の公開鍵「hun....eniv」、WEBサービスサーバのURI「https://spare-key.web-service.com/cb」、WEBサービスのユーザID「userid1」、端末認証トークン「awniw....newoan」が記憶されている。これらの情報は、後述する認証処理手順でISPのユーザIDに対応づけて記憶される。
【0029】
予備鍵預かりサーバ3は、制御部の制御により、WEBサービスサーバ2から端末1による予備の公開鍵K3および秘密鍵K4の登録の要求を受信した場合に、予備の公開鍵K3および秘密鍵K4を生成して記憶部に保存し、該予備の公開鍵K3をWEBサービスサーバ2に送信して記憶させる。また、予備鍵預かりサーバ3は、予備の公開鍵K3および秘密鍵K4の登録の後に鍵認証に用いる秘密鍵が記憶されていない端末1から鍵認証に用いる公開鍵K1および秘密鍵K2の再登録を要求された場合に、要求を記憶部に記憶されている予備の秘密鍵K4を用いて暗号化してWEBサービスサーバ2に送信する。認証システム10の全体における認証処理手順については後述する。
【0030】
[認証処理手順]
次に、
図5〜
図12を参照して、認証システム10における認証処理手順について説明する。本実施形態の認証処理は、予備鍵登録処理および鍵再登録処理を含む。
【0031】
[予備鍵登録処理]
図5は、予備の公開鍵K3および秘密鍵K4を生成し登録する予備鍵登録処理手順を例示するシーケンス図である。端末1は、WEBサービスのサービスIDが発行され、サービス認証用の秘密鍵K2を認証デバイスに記憶している場合に、予備の公開鍵K3および秘密鍵K4の生成を要求できる。その場合、
図5に示すように、端末1はまず、WEBサービスサーバ2との間でHTTPSのセッションを確立し(S1)、WEBサービスサーバ2のサーバ証明書を受信して、このサーバ証明書を検証する(S2)。ここで、HTTPSを利用することにより、サーバ証明書を利用したTLS/SSL接続により、二者間の通信を中継するようなMITM(Man-In-The-Middle)攻撃を防止することができる。
【0032】
次に、端末1は、WEBサービスサーバ2のURIにアクセスしてログインを要求する(S3)。WEBサービスサーバ2は、端末1が記憶しているサービス認証用の秘密鍵K2と自身が記憶しているサービス認証用の公開鍵K1とを用いた鍵認証により、端末1のユーザに対して発行されているWEBサービスのユーザIDでログインさせる(S4)。
【0033】
次に、ユーザが予備鍵預かりサーバ3のURIを指定して、予備鍵の生成を要求するための所定のボタンを押下する等の操作入力を行うと、端末1が、ユーザが指定した予備鍵預かりサーバ3のURIが含まれた予備鍵登録要求を、WEBサービスサーバ2に送信する(S5)。
【0034】
WEBサービスサーバ2は、予備鍵登録要求を受信した際、この予備鍵預かりサーバ3のURIを記憶部に記憶させる(S6、
図3参照)とともに、予備鍵登録要求をリダイレクトにより予備鍵預かりサーバ3に転送する(S7)。このリダイレクトには、次式(1)に例示されるように、ユーザのWEBサービスのユーザID「userid1」、予備鍵預かりサーバ3のURI「https://spare-key.isp.com/authorize」が含まれる。
【0036】
端末1は、予備鍵預かりサーバ3との間でHTTPSのセッションを確立し(S8)、予備鍵預かりサーバ3のサーバ証明書を受信して検証する(S9)。また、予備鍵預かりサーバ3は、ISPのユーザIDでログインさせる(S10)。
【0037】
ここで、
図6および
図7を参照して、S10の予備鍵預かりサーバ3へのログイン処理について説明する。
図6に示すように、予備鍵預かりサーバ3は、まずログインを要求したユーザのISPのユーザIDとパスワード(PW)との入力を受け付け、併せて端末の接続情報を取得する(S101)。ここで取得される端末の接続情報とは、ログイン要求時のPPPのセッションIDとIPアドレスとを意味する。
【0038】
図7に例示するように、予備鍵預かりサーバ3は、ユーザがISPとの契約時に決定されたISPのユーザIDとパスワードとを、記憶部に記憶させて管理している。なお、ここで決定されたISPのユーザIDとパスワードとは、通知を受けたユーザ側では、例えばブロードバンドルータに設定される。また、予備鍵預かりサーバ3は、インターネット接続時にISPで決定された、PPPのセッションIDと払い出したIPアドレスとを記憶部に記憶させて管理している。例えば、
図7に示す例では、ISPのユーザID「Isp_userid1」に対応して、パスワード「lwojwkif」、PPPのセッションID「0x3457」、払い出したIPアドレス「210.132.100.20」が記憶されている。
【0039】
予備鍵預かりサーバ3は、入力されたISPのユーザIDおよびパスワードと、取得された端末の接続情報とが、記憶部で管理している
図7に示す情報と一致するか否かを判定する(S102)。一致している場合には(S102,OK)ログインが許可され(S103)、S10の処理が完了して次の処理に移行する。一方、不一致の場合には(S102,NG)ログインが不許可とされ(S104)、S101の処理に戻る。
【0040】
図5に戻る。予備鍵預かりサーバ3は、予備鍵ペア、すなわち予備の公開鍵K3および秘密鍵K4を生成し、記憶部等の適当なメモリ領域に記憶する(S11)。また、予備鍵預かりサーバ3は、端末1の認証が完了した旨をWEBサービスサーバ2に通知するための端末認証トークンを、生成した予備の秘密鍵K4を用いて生成する(S12)。
【0041】
ここで、
図8および
図9を参照して、端末認証トークンの生成処理について説明する。端末認証トークンは、
図8に示すように、
図9に示す各種パラメータの値を含んだ情報を、予備の秘密鍵K4で暗号化して生成される。
【0042】
すなわち、端末認証トークンには、
図9に示すように、トークンごとに発行されるランダム値(nonce)、リダイレクト(S7)に含まれるWEBサービスサーバ2のURI(web_service_uri)およびWEBサービスのユーザID(user_id)、トークンの有効期限(秒)(expire)およびトークンの生成時の時刻(年月日時分秒)(time)の各パラメータ値が含まれる。予備鍵預かりサーバ3は、これらのパラメータ値を含んだ情報を予備の秘密鍵K4で暗号化し、Base64Encoding等によりURLに記載できる文字コードに表現形式を変えることによって、端末認証トークンを生成する。
【0043】
具体的に、
図8に示す例では、生成された端末認証トークン「awniw....newoan」には、ランダム値(nonce)として「nkidsoab」、WEBサービスサーバ2のURI(web_service_uri)として「https://spare-key.isp.com/authorize」、WEBサービスのユーザID(user_id)として「userid1」、トークンの有効期限(秒)(expire)として「300」、トークンの生成時の時刻(年月日時分秒)(time)として「20141122133020」が含まれている。
【0044】
図5に戻る。予備鍵預かりサーバ3は、生成した端末認証トークンと、リダイレクト(S7)に含まれるWEBサービスサーバ2のURIおよびWEBサービスのユーザIDとを記憶部に記憶させる(S13、
図4参照)。
【0045】
また、予備鍵預かりサーバ3は、S12の処理で生成した端末認証トークンを、リダイレクトによりWEBサービスサーバ2に転送する(S14)。このリダイレクトには、次式(2)に例示されるように、WEBサービスサーバ2のURI「https://spare-key.web-service.com/cb」、端末認証トークン「awniw....newoan」が含まれる。
【0047】
WEBサービスサーバ2は、S6の処理で記憶しておいた予備鍵預かりサーバ3のURI(
図3参照)のドメインと、リダイレクト(S14)の送信元のURIのドメインとが一致していることを確認する(S15)。また、WEBサービスサーバ2は、予備鍵預かりサーバ3との間でHTTPSのセッションを確立し、予備鍵預かりサーバ3のサーバ証明書を受信する(S16)。そして、WEBサービスサーバ2は、受信したサーバ証明書に記載されているURIのドメインと、S6の処理で記憶しておいた予備鍵預かりサーバ3のURIのドメインとが一致していることを確認する(S17)。これらの確認により、予備鍵預かりサーバ3の成りすましを防止できる。
【0048】
次に、WEBサービスサーバ2は、S14の処理で受信した端末認証トークンをPOSTにより予備鍵預かりサーバ3にデータ送信、すなわち返送する(S18)。このPOSTには、次式(3)に例示されるように、端末認証トークン「awniw....newoan」の他、送信元であるWEBサービスサーバ2のURI(web_service_uri)として「https://spare-key.web-service.com/cb」と、WEBサービスのユーザID(user_id)として「userid1」とが含まれる。
【0050】
予備鍵預かりサーバ3は、S16の処理で受信して記憶しておいた、WEBサービスサーバ2のサーバ証明書を参照し、サーバ証明書に記載されているURIのドメインと、データ送信(S18)の送信元のURIのドメインと、S13の処理で記憶しておいたWEBサービスサーバ2のドメインとが一致していることを確認する(S19)。
【0051】
また、予備鍵預かりサーバ3は、S18の処理で受信した端末認証トークンを生成した予備の公開鍵K3で復号し検証する(S20)。具体的に、予備鍵預かりサーバ3は、
図9に例示した検証方法により、検証を行う。
【0052】
例えば、予備鍵預かりサーバ3は、トークン毎に生成されるランダム値(nonce)が以前に受信した値ではないことを確認する。これにより、リプレイアタックを防止する。また予備鍵預かりサーバ3は、S13の処理で記憶しておいたWEBサービスサーバ2のURI、S18の処理で受信したPOSTのボディ部に送信元として含まれるWEBサービスサーバ2のURI(web_service_uri)、および復号した端末認証トークンに含まれるWEBサービスサーバ2のURI(web_service_uri)が一致することを確認する。これにより、WEBサービスサーバ2の詐称を防止する。また、予備鍵預かりサーバ3は、S13の処理で記憶しておいたWEBサービスのユーザID、S18の処理で受信したPOSTのボディ部に含まれるWEBサービスのユーザID(user_id)、および復号した端末認証トークンに含まれるWEBサービスのユーザID(user_id)が一致することを確認する。これにより、WEBサービスを利用しているユーザの詐称を防止する。また、予備鍵預かりサーバ3は、復号した端末認証トークンが有効期限内であること、すなわち、現在時刻が、端末認証トークンの生成時刻(time)に端末認証トークンの有効期限(expire)を加算した時刻より前であることを確認する。これにより、端末認証トークンを一定期間中のみ有効にして、不正利用されることを防止する。
【0053】
以上、S19の確認処理およびS20の検証処理により、端末1およびWEBサービスサーバ2の成りすましを防止できる。
【0054】
その後、予備鍵預かりサーバ3は、S5およびS7の予備鍵登録要求に応答して、WEBサービスサーバ2に生成した予備の公開鍵K3を送信する(S21)。この応答には、次式(4)に例示されるように、ユーザのWEBサービスのユーザID(user_id)「userid1」および公開鍵(public_key)「WQiOiAic…………zZCaGRSa3F」が含まれる。
【0056】
応答を受信したWEBサービスサーバ2は、受信した予備の公開鍵K3を記憶部に記憶させる(S22、
図4参照)。これにより、一連の予備鍵登録処理が完了する。
【0057】
[鍵再登録処理]
図10は、サービス認証用の公開鍵K1および秘密鍵K2を再登録する鍵再登録処理手順を例示するシーケンス図である。上記の予備鍵登録処理により予備鍵を登録したユーザは、端末1を紛失したり変更したりして認証デバイスにサービス認証用の秘密鍵K2を記憶していない場合に、サービス認証用の公開鍵K1および秘密鍵K2の再登録を要求できる。その場合、
図10に示すように、端末1はまず、予備鍵預かりサーバ3との間でHTTPSのセッションを確立し(S31)、予備鍵預かりサーバ3のサーバ証明書を受信して検証する(S32)。また、端末1が予備鍵預かりサーバ3にログインを要求し(S33)、予備鍵預かりサーバ3は、ISPのユーザIDでログインさせる(S34)。なお、S34の処理は、前述したS10の処理と同様に行われる。
【0058】
ユーザは、WEBサービスサーバ2のURIを指定して、サービス認証用の公開鍵K1および秘密鍵K2の再登録を要求するための所定のボタンを押下する等の操作入力を行う(S35)。予備鍵預かりサーバ3およびWEBサービスサーバ2は、互いの間でHTTPSのセッションを確立し、サーバ証明書を交換し検証する(S36)。
【0059】
予備鍵預かりサーバ3はWEBサービスサーバ2のサーバ証明書に記載されているURIのドメインと、S13の処理で記憶しておいたWEBサービスサーバ2のURI(
図4参照)のドメインとが一致していることを確認する(S37)。
【0060】
予備鍵預かりサーバ3は、端末1からの鍵再登録要求をWEBサービスサーバ2に通知するための鍵再登録トークンを、予備の秘密鍵K4を用いて生成する(S38)。
【0061】
ここで、
図11および
図12を参照して、鍵再登録トークンの生成処理について説明する。鍵再登録トークンは、
図11に示すように、
図12に示す各種パラメータの値を含んだ情報を、予備の秘密鍵K4で暗号化して生成される。
【0062】
すなわち、鍵再登録トークンには、
図12に示すように、トークンごとに発行されるランダム値(nonce)、予備鍵預かりサーバ3のURI(isp_uri)、予備鍵預かりサーバ3が記憶しているWEBサービスのユーザID(user_id)、トークンの有効期限(秒)(expire)およびトークンの生成時の時刻(年月日時分秒)(time)の各パラメータ値が含まれる。予備鍵預かりサーバ3は、これらのパラメータ値を含んだ情報を予備の秘密鍵K4で暗号化して、鍵再登録トークンを生成する。
【0063】
具体的に、
図11に示す例では、生成された端末認証トークン「ncion......ewnoi」には、ランダム値(nonce)として「na35soab」、予備鍵預かりサーバ3のURI(isp_uri)として「https://spare-key.web-service.com/cb」、予備鍵預かりサーバ3が記憶しているWEBサービスのユーザID(user_id)として「userid1」、トークンの有効期限(秒)(expire)として「300」、トークンの生成時の時刻(年月日時分秒)(time)として「20141222143020」が含まれている。
【0064】
図10に戻る。予備鍵預かりサーバ3は、生成した鍵再登録トークンをPOSTによりWEBサービスサーバ2にデータ送信する(S39)。このPOSTには、次式(5)に例示されるように、鍵再登録トークン(recreate_token)として「ncion......ewnoi」が含まれる他、鍵生成要求を示すフラグ「key_recreate=1」と、WEBサービスのユーザID(user_id)として「userid1」とが含まれる。
【0066】
WEBサービスサーバ2は、記憶部を参照して受信したWEBサービスのユーザIDに対応する予備の公開鍵K3を抽出し、受信した鍵再登録トークンを、抽出した予備の公開鍵K3で復号し検証する(S40)。具体的に、WEBサービスサーバ2は、
図12に例示した検証方法により、検証を行う。
【0067】
例えば、WEBサービスサーバ2は、トークン毎に生成されるランダム値(nonce)が以前に受信した値ではないことを確認する。これにより、リプレイアタックを防止する。また、WEBサービスサーバ2は、S6の処理で記憶しておいた予備鍵預かりサーバ3のURI(
図3参照)と、復号した鍵再登録トークンに含まれる予備鍵預かりサーバ3のURI(isp_uri)とが一致することを確認する。これにより、予備鍵預かりサーバ3の詐称を防止する。また、WEBサービスサーバ2は、S39の処理で受信したPOSTのボディ部に含まれるWEBサービスのユーザID(user_id)と、復号した鍵再登録トークンに含まれるWEBサービスのユーザID(user_id)とが一致することを確認する。これにより、WEBサービスを利用しているユーザの詐称を防止する。また、WEBサービスサーバ2は、復号した鍵再登録トークンが有効期限内であること、すなわち、現在時刻が、鍵再登録トークンの生成時刻(time)に鍵再登録トークンの有効期限(expire)を加算した時刻より前であることを確認する。これにより、鍵再登録トークンを一定期間中のみ有効として不正利用されることを防止する。
【0068】
また、WEBサービスサーバ2は、S6の処理で記憶しておいた予備鍵預かりサーバ3のURI(
図3参照)のドメインと、S36の処理で受信した予備鍵預かりサーバ3のサーバ証明書に記載されているURIのドメインとが一致することを確認する(S41)。
【0069】
以上の処理により、端末1および予備鍵預かりサーバ3を認証すると、WEBサービスサーバ2は、サービス認証用の鍵の登録処理に用いられるワンタイムパスワード(otp)を生成し(S42)、鍵生成要求(S39)に応答して、予備鍵預かりサーバ3にotpを送信する(S43)。予備鍵預かりサーバ3は、受信したotpを鍵再登録要求(S35)に応答して端末1に転送する(S44)。
【0070】
端末1がotpを受信すると、端末1とWEBサービスサーバ2との間で、サービス認証用の公開鍵K1および秘密鍵K2の登録処理が実行される(S45)。これにより、端末1にサービス認証用の秘密鍵K2が記憶され、WEBサービスサーバ2のサービス認証用の公開鍵K1が更新される。
【0071】
なお、上記の予備鍵登録処理は、ユーザに対してWEBサービスのユーザIDが発行され、S45の処理と同様に端末1とWEBサービスサーバ2との間でサービス認証用の公開鍵K1および秘密鍵K2が生成され登録された後に、引き続き行われてもよい。この場合、WEBサービスサーバ2へのログイン処理(S1〜S4)を省略できる。
【0072】
以上、説明したように、本実施形態の認証システム10において、WEBサービスのユーザIDが発行されているユーザが所有し、サービス認証用の秘密鍵K2を記憶している端末1が、予備の公開鍵K3および秘密鍵K4の登録を要求すると、予備鍵預かりサーバ3がWEBサービスサーバ2を介して要求を受信して、予備の公開鍵K3および秘密鍵K4を生成し、生成した予備の秘密鍵K4を登録するとともに、生成した予備の公開鍵K3をWEBサービスサーバ2に送信して登録させる。また、予備の公開鍵K3および秘密鍵K4が登録されているユーザが所有し、サービス認証用の秘密鍵K2が登録されていない端末1が、サービス認証用の秘密鍵K2の再登録を要求すると、予備鍵預かりサーバ3は、要求を予備の秘密鍵K4を用いて暗号化した鍵再登録トークンをWEBサービスサーバ2に送信する。WEBサービスサーバ2は、予備の公開鍵K3を用いて鍵再登録トークンを復号して得た要求に基づいて、端末1とWEBサービスサーバ2との間でサービス認証用の公開鍵K1および秘密鍵K2を生成し登録するサービス認証用鍵の登録処理を開始させる。
【0073】
これにより、ユーザの所有する端末ではなく予備鍵預かりサーバ3とWEBサービスサーバ2との間で予備鍵を管理することができる。そして、ユーザがサービス認証用の公開鍵K1および秘密鍵K2の再登録を要求した場合、WEBサービスサーバ2が予備鍵を用いてユーザを認証することができる。したがって、本実施形態の認証システム10によれば、WEBサービスを利用するユーザが、所有端末を紛失したり変更したりして鍵を紛失した場合に、セキュリティを低下させることなくオンラインでサービス認証用の公開鍵K1および秘密鍵K2を再登録すなわち復旧することができる。
【0074】
また、HTTPSを利用して通信することにより、サーバ証明書を利用したTLS/SSL接続を行うことができるので、二者間の通信を中継するようなMITM攻撃を防止することができる。さらに、ランダム値を用いた有効期限のあるトークンを生成して情報を送受するため、リプレイ攻撃や不正利用を防止することができる。
【0075】
[他の実施形態]
[プログラム]
上記実施形態に係る予備鍵預かりサーバ3が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。この場合、コンピュータがプログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、係るプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませて実行することにより上記実施形態と同様の処理を実現してもよい。以下に、予備鍵預かりサーバ3と同様の機能を実現する予備鍵管理プログラムを実行するコンピュータの一例を説明する。
【0076】
図13に示すように、予備鍵管理プログラムを実行するコンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
【0077】
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
【0078】
ここで、
図13に示すように、ハードディスクドライブ1031は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各テーブルは、例えばハードディスクドライブ1031やメモリ1010に記憶される。
【0079】
また、予備鍵管理プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明した予備鍵預かりサーバ3が実行する各処理が記述されたプログラムモジュールが、ハードディスクドライブ1031に記憶される。
【0080】
また、予備鍵管理プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
【0081】
なお、予備鍵管理プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、予備鍵管理プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
【0082】
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。