JP4794970B2 - 秘密情報の保護方法及び通信装置 - Google Patents

秘密情報の保護方法及び通信装置 Download PDF

Info

Publication number
JP4794970B2
JP4794970B2 JP2005288893A JP2005288893A JP4794970B2 JP 4794970 B2 JP4794970 B2 JP 4794970B2 JP 2005288893 A JP2005288893 A JP 2005288893A JP 2005288893 A JP2005288893 A JP 2005288893A JP 4794970 B2 JP4794970 B2 JP 4794970B2
Authority
JP
Japan
Prior art keywords
information
shared key
generated
data
control unit
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.)
Active
Application number
JP2005288893A
Other languages
English (en)
Other versions
JP2007104118A (ja
Inventor
徹 飯野
真一郎 松尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Data Corp
Original Assignee
NTT Data Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NTT Data Corp filed Critical NTT Data Corp
Priority to JP2005288893A priority Critical patent/JP4794970B2/ja
Publication of JP2007104118A publication Critical patent/JP2007104118A/ja
Application granted granted Critical
Publication of JP4794970B2 publication Critical patent/JP4794970B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、秘密情報を安全に保護する方法、そのための装置に関する。より詳しくは、例えばサーバベースコンピューティングの環境において、シングルサインオンで複数サイト(サーバ)へアクセスするためのサイトアクセス用の権限情報をサーバ側に登録しておき、これをクライアント端末の側から安全に利用する手法に関する。
サーバベースコンピューティングの環境においてシングルサインオンの手法が知られている。シングルサインオンは、以下の手順で利用することができる。
(1)サーバ側に登録してあるサイトアクセス用パスワードに対してクライアント側からアクセスがあるたびに、サーバが異なるパスワード暗号用鍵を生成する。そして、このパスワード暗号用鍵でサイトアクセス用パスワードを暗号化してサーバ側に登録する。
(2)サーバが生成したパスワード暗号用鍵をクライアント側のICカードのようなセキュリティ媒体に登録する。
(3)サーバ側に登録したサイトアクセス用パスワードをユーザが利用する場合は、ユーザがクライアント側に登録されたパスワード暗号用鍵を利用し、クライアント端末とサーバとの間でセキュアチャネル、すなわち暗号通信によってセキュリティが確保された通信チャネルを確立する。このようなセキュアチャネルでは、パスワード暗号用鍵を用いてサーバ及びクライアント端末の双方が同一のセキュアチャネル用鍵を生成し、サーバとクライアント端末の双方が、このセキュアチャネル用鍵を共有する。
(4)セキュアチャネル用鍵を用いて、クライアント側に登録されたパスワード暗号用鍵、ユーザのログイン用のID及びパスワードを暗号化し、暗号データをクライアント端末からサーバに通知する。
(5)サーバは、クライアント端末から受信した暗号データをセキュアチャネル用鍵で復号し、そのユーザのログイン用のIDとパスワードでユーザの本人確認を行う。本人確認ができた場合、サーバは、暗号データを復号して得たパスワード暗号用鍵を用い、このパスワード暗号用鍵で暗号化されているサイトアクセス用パスワードを復号化して利用し、その結果をクライアント端末に通知する。
上記のシングルサインオンによるサーバへのアクセス手法については、下記の特許文献1,2に、詳細に紹介されている。
特開2002−288139号公報 特開2000−259566号公報
しかしながら、従来の手法では、次のような問題があった。
サーバとクライアント端末の間で用いるセキュアチャネル用鍵と、サーバがサイトアクセス用パスワードを暗号化するためのパスワード暗号用鍵との2つの鍵が必要であるが、これらの鍵を同一にすると、サーバ側も鍵を保持することになるため、例えばサーバ管理者がサーバ側の鍵を不正に利用して、サイトアクセス用パスワードを勝手に使用できるという不都合が生じる。サーバ側に設定されている鍵の不正利用を防止するために、例えば秘密分散法を利用し、サーバ側とクライアント側とで鍵を分散することも考えられるが、しかし、その場合でも鍵を利用する際には、分散された鍵をサーバ側に通知するための通信路に暗号化鍵を使用するため、根本的な問題解決にはならない。さらに、クライアント側のトークンに鍵そのものを設定することも考えられるが、そうすると、ICカード等の高価なセキュリティ媒体を用いなければならなくなる。
上述の問題を解決するパスワードや鍵、その他の秘密情報の保護方法は、未だ実現されていない。例えば、前述のサーバベースコンピューティングの環境において、シングルサインオンでクライアント端末が複数サイトへアクセスするためのサイトアクセス用パスワード情報をサーバ側で保持する形態では、サーバ側での不正使用の余地をなくすための方向性が示されていない。
本発明は、例えばシングルサインオンで使用するパスワードや鍵等の秘密情報の保護を安全且つ確実ならしめる手法を提供することを、主たる課題とするものである。
本発明は、通信路を介して接続された第1装置と第2装置の双方が、相手側で生成された情報(Wa/Wb)と自己側で生成した情報(C1/S1)とに基づいて前記通信路をセキュアチャネル化して情報交換を行うための共有鍵(SK1)を生成する段階と、前記第1装置が、前記第2装置への登録を希望する秘密情報を前記共有鍵(SK1)で暗号化し、この暗号データを前記第2装置に伝達する段階と、前記第2装置が、前記第1装置より受け取った前記暗号データを前記共有鍵(SK1)で復号して前記秘密情報を得た後は次回アクセス用の新規情報(C2*S2)を生成し、この新規情報(C2*S2)の一部(S2)を保存し、残部の新規情報(C2)を前記共有鍵(SK1)で暗号化して前記第1装置(クライアント端末)へ伝達する段階と、前記第1装置が、前記第2装置から受け取った暗号データを前記共有鍵(SK1)で復号して前記残部の新規情報(C2)を得、この残部の新規情報(C2)を次回アクセス用の前記自己側で生成した情報として保存する段階と、前記第2装置が、前記次回アクセス用の新規情報(C2*S2)に基づいて新たな共有鍵(SK2)を生成するとともに、前記共鍵(SK1)で復号した秘密情報を前記新たな共有鍵(SK2)で暗号化し、前記一部の新規情報(S2)とともに、次回アクセス用の前記自己側で生成した情報として保存する段階と、前記第1装置が所定のサイトにアクセスする際に、前記第1装置と前記第2装置の双方が、相手側で生成された情報(Wax/Wbx)と前記自己側で生成した情報として保存している情報(Cx/Sx)とに基づいて前記通信路をセキュアチャネル化して情報交換を行うための共有鍵(SKx)を生成する段階と、前記第2装置が、生成した共有鍵(SKx)を用いて前記秘密情報を復号し、復号した秘密情報を伴う前記第1装置から前記サイトへのアクセスを可能にする段階と、前記第2装置が、次回アクセス用の新規情報(C(x+1)*S(x+1))を生成し、この新規情報(C(x+1)*S(x+1))の一部(S(x+1))を保存し、残部の新規情報(C(x+1))を前記共有鍵(SKx)で暗号化した第1暗号データを前記第1装置へ伝達する段階と、前記第1装置が、前記第2装置から受け取った前記第1暗号データを前記共有鍵(SKx)で復号して前記残部の新規情報(C(x+1))を得、この残部の新規情報(C(x+1))を次回アクセス用の前記自己側で生成した情報として保存する段階と、前記第2装置が、前記次回アクセス用の新規情報(C(x+1)*S(x+1))に基づいて新たな共有鍵(SK(x+1))を生成するとともに、前記復号した秘密情報を前記生成した共有鍵(SK(x+1))で暗号化して保存し、前記新規情報の一部(S(x+1))を次回アクセス用の前記自己側で生成した情報として保存する段階とを有する、暗号化された秘密情報の保護方法である。
前記共有鍵を生成する段階は、例えば、前記第1装置が、自己が生成した乱数(C1)に基づいて第1データ(Wa)を生成し、この第1データ(Wa)を前記第2装置に伝達する段階と、前記第2装置が、前記第1装置より受け取った第1データ(Wa)と自己が生成した乱数(S1)とに基づいて第2データ(Wb)を生成し、この第2データ(Wb)を前記第1装置に伝達するとともに、前記第1データ(Wa)と前記自己が生成した乱数(S1)とに基づいてそのハッシュ値が共有鍵(SK1)となる共有データ(Kb)を生成する段階と、前記第1装置が、前記第2装置より受け取った第2データ(Wb)と自己が生成した前記乱数(C1)とに基づいてそのハッシュ値が共有鍵(SK1)となる共有データ(Ka)を生成する段階とを含み、これらの共有データの各々から前記共有鍵(SK1)を導出することにより実現される。
本発明のある実施の態様では、前記秘密情報を2つの分散データに分ける。そして、前記第1装置が、前記2つの分散データを復元するためのシェアを保持するとともに、このシェアのハッシュ値を自己側で生成する情報とし、前記サーバが、前記2つの分散データうち前記サイトにおいて前記共有鍵で暗号化された一方の分散データを保持し、他方の分散データを前記自己側で生成する情報とすることにより、前記サーバが、前記2つの分散データと前記シェアとから前記秘密情報を復号可能にする。
本発明のある実施の態様では、前記第1装置が、前記第2装置を介した前記サイトへのアクセス権限情報を前記秘密情報として前記第2装置に伝達する。そして、前記第2装置が、前記アクセス権限情報を取得し、このアクセス権限情報をメモリ領域に登録することにより、このアクセス権限情報を伴う前記第1装置から前記サイトへのアクセスを可能にする。
また、本発明は、通信路を介して接続された第2装置との間で双方向の通信を行う通信装置であって、第2装置で生成された情報(Wb)と自己側で生成した情報(C1)とに基づいて前記通信路をセキュアチャネル化して情報交換を行うための共有鍵(SK1)を生成する第1鍵情報生成手段と、前記第2装置への登録を希望する秘密情報を前記共有鍵(SK1)で暗号化し、この第1暗号データを前記第2装置に伝達する第1伝達手段と、前記第2装置において前記共有鍵(SK1)で復号された前記秘密情報を新たな共有鍵(SK2)で暗号化して保存し、前記新たな共有鍵(SK2)を生成するときに用いた次回アクセス用の新規情報(C2*S2)の一部(C2)を前記共有鍵(SK1)で暗号化したデータを前記第2装置から受け取る第1受取手段と、前記第2装置から受け取った第1暗号データを前記共有鍵(SK1)で復号して前記一部の新規情報(C2)を得、この一部の新規情報(C2)を次回アクセス用の前記自己側で生成した情報として保存する第1保存手段と、所定のサイトにアクセスする際に、前記第2装置で生成された情報(Wbx)と前記自己側で生成した情報として保存している情報(Cx)とに基づいて前記通信路をセキュアチャネル化して情報交換を行うための共有鍵(SKx)を生成する第2鍵情報生成手段と、前記第2装置を介して、前記第2装置において生成された前記共有鍵(SKx)を用いて復号された前記秘密情報を伴って前記サイトへアクセスするアクセス手段と、前記第2装置において、前記秘密情報を新たな共有鍵(SK(x+1))で暗号化して保存する際に、前記新たな共有鍵(SK(x+1))を生成する際に用いた次回アクセス用の新規情報(C(x+1)*S(x+1))の一部(C(x+1))が前記共有鍵(SKx)で暗合された第2暗号データを受け取る第2受取手段と、前記第2装置から受け取った第2暗号データを前記共有鍵(SKx)で復号して前記一部の新規情報(C(x+1))を得、この一部の新規情報(C(x+1))を次回アクセス用の前記自己側で生成した情報として保存する第2保存手段とを有する、通信装置である。
また、本発明は、通信路を介して接続された第1装置との間で双方向の通信を行う通信装置であって、前記第1装置で生成された情報(Wa)と自己側で生成した情報(S1)とに基づいて前記通信路をセキュアチャネル化して情報交換を行うための共有鍵(SK1)を生成する第1鍵情報生成手段と、自装置への登録を希望する秘密情報であって、前記共有鍵(SK1)で暗号化された第1暗号データを前記第1装置から受信する受信手段と、前記第1装置から受け取った前記第1暗号データを前記共有鍵(SK1)で復号して前記秘密情報を得た後は次回アクセス用の新規情報(C2*S2)を生成し、この新規情報(C2*S2)の一部(S2)を保存し、残部の新規情報(C2)を前記共有鍵(SK1)で暗号化して前記第1装置(クライアント端末)へ伝達する第1伝達手段と、前記次回アクセス用の新規情報(C2*S2)に基づいて新たな共有鍵(SK2)を生成するとともに、前記共有鍵(SK1)で復号した秘密情報を前記新たな共有鍵(SK2)で暗号化し、前記一部の新規情報(S2)とともに、次回アクセス用の前記自己側で生成した情報として保存する第1保存手段と、前記第1装置が所定のサイトにアクセスする際に、前記第1装置で生成された情報(Wax)と前記自己側で生成した情報として保存している情報(Sx)とに基づいて前記通信路をセキュアチャネル化して情報交換を行うための共有鍵(SKx)を生成する第2鍵情報生成手段と、前記第2鍵情報生成手段が生成した共有鍵(SKx)を用いて前記秘密情報を復号し、復号した秘密情報を伴う前記第1装置から前記サイトへのアクセスを可能にするアクセス手段と、次回アクセス用の新規情報(C(x+1)*S(x+1))を生成し、この新規情報(C(x+1)*S(x+1))の一部(S(x+1))を保存し、残部の新規情報(C(x+1))を前記共有鍵(SKx)で暗号化して前記第1装置へ伝達する第2伝達手段と、前記第2伝達手段が生成した前記次回アクセス用の新規情報(C(x+1)*S(x+1))に基づいて新たな共有鍵(SK(x+1))を生成するとともに、前記復号した秘密情報を前記生成した共有鍵(SK(x+1))で暗号化して保存し、前記新規情報の一部(S(x+1))を次回アクセス用の前記自己側で生成した情報として保存する第2保存手段とを有する、通信装置である。
本発明では、第1装置と第2装置との間でセキュアチャネル化するための鍵と、第2装置にある秘密情報を暗号化するための鍵を同じにしつつ、第1装置と第2装置の双方のもつ情報がないと共有鍵が生成できないので、鍵管理負担を軽減することができ、それでいて、秘密情報を管理する第2装置側での不正を防止することができる。
[第1実施の形態]
本発明は、例えば図1に示されるパスワード認証鍵交換システムとしての実施が可能である。この実施の形態のパスワード認証鍵交換システムは、インターネット等で構成されるネットワーク10に接続されるサーバ20と、このネットワーク10を介してサーバ20に接続されるクライアント端末30と、サーバ20に接続されたサイト40を含んで構成される。サイトは、ひとまとまりに公開可能なWebページ群を保有する情報処理システムであり、実質的にはサーバである。なお、図1では、便宜上1つのサイト40のみが示されているが、サイトの数はいくつであってもよい。
サーバ20は、ネットワーク10を介して通信を行うためのインターフェイス(以下、「I/F」と略す)21と、後述する各種処理を実行する制御部(以下、クライアント30のものと区別する必要があるときは「サーバ制御部」と称する)22と、サーバデータベース(以下、データベースを「DB」と略す)23とを備えている。サーバ制御部22は、コンピュータプログラムを読み込んで実行する一種のコンピュータである。サーバ制御部22は、このコンピュータプログラムを実行することにより、鍵情報生成手段、暗号・復号手段、情報生成手段の機能を形成する。
クライアント端末30は、ネットワーク10を介して通信を行うためのI/F31と、後述する各種処理を実行する制御部(以下、サーバ20のものと区別する必要があるときは「クライアント制御部」と称する)32と、パスワードや後述する乱数を保存するためのメモリ33とを備えている。クライアント制御部32は、コンピュータプログラムを読み込んで実行する一種のコンピュータである。このコンピュータプログラムは、サーバ20からダウンロードしたアプリケーションやトークンなどに実装しても良い。クライアント制御部32は、このコンピュータプログラムを実行することにより、鍵情報生成手段、暗号・復号手段の機能を形成する。
サイト40は、ネットワーク10を介して通信を行うためのI/F41と、サイト運営に必要な処理を実行するサイト制御部42と、サイトDB43を備えている。サイト制御部42もまた、コンピュータプログラムを読み込んで実行する一種のコンピュータである。
サーバ20とクライアント端末30は、ネットワーク10上に暗号化通信を行うためのセキュアチャネルを共有鍵を用いて確立し、暗号化したデータの通信を行う。また、サーバ20は、クライアント端末30から受信したサイトアクセス用パスワードを上述した共有鍵を用いて暗号化し、この暗号化したサイトアクセス用パスワードをサーバDB23に登録する。
このようにセキュアチャネルで用いる共有鍵は、サーバ20とクライアント端末30の双方が保持する別々の情報(例えば乱数)を用いて生成する鍵であり、この共有鍵の生成には、例えばDiffie Hellmanの鍵交換方式を用いる。
サーバ20とクライアント端末30との間における鍵交換には、後述するパスワード認証鍵交換プロトコルを利用する。このパスワード認証鍵交換プロトコルで共有した鍵(共有鍵)を、サイトアクセス用パスワードをクライアント端末30からサーバ20に通知する際の暗号化及び復号化に利用するとともに、サーバ20側におけるサイトアクセス用パスワードの暗号化にも利用する。
また、サイトアクセス用パスワードを一度利用した後に、サーバ20は、乱数を生成する。この乱数は、クライアント端末30がサイト40に次回アクセスする際に利用する次回用の共有鍵の生成に用いられる。サーバ20は、この次回用の乱数を任意に二分割し、一方を前回の共有鍵で暗号化し、サーバ20側からクライアント端末30に通知する。サーバ20は、二分割した乱数の他方をサーバ20側で保持する。
また、サーバ20は、次回用の共有鍵でサイトアクセス用パスワードを暗号化し、これを保持する。この暗号化が済むと、サーバ20は、次回用の共有鍵を削除する。
クライアント端末30と、サーバ20とが、二分割した乱数の一方と他方をそれぞれ保持し、次回の共有鍵を生成する際に用いるため、次回の処理においても、セキュアチャネルを確立する時の鍵は同一の鍵となり、この共有鍵を用いてサイト用アクセスパスワードを暗号化する。
以上のような手法により、複数のサイトアクセス用パスワードを暗号化してサーバDB23に登録すれば、クライアント端末30は、シングルサインオンで複数のサイトにアクセスすることができる。
[動作例]
次に、この実施の形態に係るパスワード認証鍵交換システムにおいて、サーバ20と、クライアント端末30とが、ネットワーク10を通じて、実際には複数存在するサイト40にシングルサインオンでアクセスするときの動作例を示す。
この通信は、サイトアクセス用パスワードの登録処理と、サイトアクセス用パスワードの利用処理とに大別される。
<サイトアクセス用パスワード登録処理>
図2ないし図4は、パスワード認証鍵交換プロトコルを用いたサイトアクセス用パスワード登録処理の手順を時系列的に示している。このサイトアクセス用パスワードの登録処理に際しては、ユーザのユーザIDとパスワードπが対応付けられて事前にサーバ20のサーバDB23に登録されているものとする。
サーバ制御部22と、クライアント制御部32との間における通信は、すべてI/F21、ネットワーク10及びI/F31を通じて行われるため、以下では、この記載を省略するが、特に、サーバ制御部22と、クライアント制御部32とが共有鍵を用いてデータを暗号化して通信を行う場合、通信チャネルはセキュアチャネルとなる。
また、図5は、サーバ20のサーバDB23内と、クライアント端末30のメモリ内におけるデータ構造を示す。
なお、図2ないし図4における処理(1)〜(26)は、具体的には、図1に示す機能ブロックにおいて行われる。
(1)ユーザがサーバ20にアクセスすべく、クライアント端末30を操作すると、クライアント制御部32は、I/F31を通じてトークンを確保する。ユーザは、クライアント端末30にユーザIDとパスワードπを入力する。また、このとき、ユーザは、アクセスを希望するサイト情報(例えばURL(Uniform Resource Locator)をクライアント端末30に入力する。
(2)クライアント制御部32は、後述する共有鍵を生成するための乱数C1を生成する。
(3)クライアント制御部32は、ユーザがアクセスを希望するサイト情報と、ユーザIDとをサーバ制御部22に通知する。
(4)サーバ制御部22は、クライアント制御部32から通知されたユーザIDがサーバDB23に登録されているか否かを確認する。
(5)サーバ制御部22は、(4)の処理でユーザIDがサーバDB23に登録されていることを確認した場合には、共有鍵生成用の乱数S1を生成する。また、このとき、サーバ制御部22は、(3)の処理で通知を受けたサイト情報をユーザIDと対応付けてサーバDB23に登録する。
(6)サーバ制御部22は、(4)の処理でユーザIDがサーバDB23に登録されていないことを確認した場合には、クライアント端末30にエラーを通知する。
(7)クライアント制御部32は、(1)の処理でユーザによってパスワードπが入力されると、このパスワードπのハッシュ値H(π)を生成し、ハッシュ値H(π)と、(2)の処理で生成した乱数C1とを用いて、クライアントデータWaを生成する。
(8)クライアント制御部32は、(7)の処理で生成したクライアントデータWaをサーバ制御部22に通知する。
ここで、クライアントデータWaは、パスワードπのハッシュ値をH(π)、離散対数のドメインパラメータをk,qとすると、下記式により求めることができる。
g1 = H(π)^k mod q
Wa = g1^C1 mod q
(9)サーバ制御部22は、(8)の処理でクライアント制御部32において生成されたクライアントデータWaが正しく計算されているかを確認する。例えば、mod qによる演算をしている場合は、得られた値がq−1以下の値になっているか等を確認する。
(10) サーバ制御部22は、(9)の処理でクライアントデータWaが正しく計算されていることを確認した場合には、(4)の処理でクライアント端末30から受信したユーザIDに対応するパスワードπをサーバDB23から読み出し、そのハッシュ値H(π)と、(5)の処理で生成した乱数S1とを用いて、サーバデータWbを生成する。さらに、サーバ制御部22は、このサーバデータWbをクライアント制御部32に通知する。
サーバデータWbは、例えば、下記式により求めることができる。
g1 = H(π)^k mod q
Wb = g1^S1 mod q
(11)サーバ制御部22は、(9)の処理でクライアントデータWaが正しく計算されていないことを確認した場合は、エラーであることをクライアント制御部32に通知する。このとき、サーバ制御部22は、乱数S1を消去する。
(12)サーバ制御部22は、(9)の処理で正確性を確認したクライアントデータWaと、(5)の処理で生成した乱数S1を用いて鍵交換共有データKbを生成する。
この鍵交換共有データKbのハッシュ値が、共有鍵SK1となる。つまり、サーバ制御部22で生成する共有鍵SK1は、以下のようになる。Hはハッシュ関数である。
SK1=H(Kb||Pi)
(13)クライアント制御部32は、サーバデータWbが正しく計算されているかを確認する。例えば、mod qによる演算をしている場合は、得られた値がq−1以下の値になっているか等を確認する。
(14)クライアント制御部32は、(13)の処理で確認データが正しく計算されていないことを確認した場合は、サーバ制御部22にエラーを通知し、(2)の処理で生成した乱数C1と、サーバ制御部22から通知されたサーバデータWbとを消去する。
(15)クライアント制御部32は、(12)の処理でサーバ制御部22から通知されたサーバデータWbと、(2)の処理で生成した乱数C1とを用いて鍵交換共有データKaを生成する。この鍵交換共有データKaのハッシュ値が、共有鍵となる。つまり、クライアント制御部32で生成する共有鍵SK1は、以下のようになる。
SK1=H(Ka||Pi)
(16)クライアント制御部32は、鍵交換共有データKa、クライアントデータWa、サーバデータWb、及び、その他必要な情報を連結した確認データ(H(|パラメータ|Wa|Wb|Ka|g))をサーバ制御部22に通知する。
ここで、サーバ制御部22が生成する鍵交換共有データKbと、クライアント制御部32が生成する鍵交換共有データKaとは、Diffie Hellmanの鍵交換方式によれば、以下の通り一致する。
任意の素数a(1<=a<=q-1)に対してa = g^b mod qとなる素数bが存在する(qは、この条件を満たす任意の素数)。
Ka= b^C1 mod q
=( g1^S1 mod q)^C1 mod q
=(g1^S1)^C1 mod q = g1^S1・C1 mod q
Kb= a^C1 mod q= g1^C1 mod p)^S1 mod q
=(g1^C1)^S1 mod q
= g1^C1・S1 mod q
である。この通り、KaとKbは一致する。
(17)サーバ制御部22は、クライアント制御部32から通知された確認データ(H(|パラメータ|Wa|Wb|Ka|g))と、これに対応するサーバ側の確認データ(H(|パラメータ|Wa|Wb|Kb|g))とが一致するかどうかを確認する。確認データの一致を確認した場合は、その旨をクライアント制御部32に通知する。
(18)サーバ制御部22は、(17)の処理において、サーバ側の確認データとクライアント側の確認データとが不一致であることを確認した場合には、エラーであることをクライアント制御部32に通知するとともに、乱数S1と確認データを消去する。
(19)クライアント制御部32は、ユーザがサーバ20への登録を希望するサイトアクセス用パスワードを(15)の処理で生成した共有鍵SK1で暗号化し、セキュアチャネルを通じて、この暗号データをサーバ制御部22に通知する。
(20)サーバ制御部22は、(12)の処理で生成した共有鍵SK1を用いて、クライアント制御部32から通知された暗号データを復号化することにより、サイトアクセス用パスワードを得る。
(21)サーバ制御部22は、(20)の処理で取得したサイトアクセス用パスワードを用いて、そのサイト40にログインし、クライアント制御部32から通知を受けたサイトアクセス用パスワードが正しいか否かを確認する。
(22)サーバ制御部22は、(21)の処理において、サイトアクセス用パスワードに対応するサイト40に正しくログインできなかった場合は、クライアント制御部32にエラーであることを通知し、サイトアクセス用パスワードの再入力を求める。
(23)サーバ制御部22は、サイトアクセス用パスワードに対応するサイト40に正しくログインできた場合は、乱数(C2*S2)を生成する。サーバ制御部22は、乱数(C2*S2)を任意に二分割し、その一方の乱数S2をサーバDB23に登録し、他方の乱数C2を(12)の処理で生成した共有鍵SK1で暗号化して、セキュアチャネルを通じて、クライアント制御部32に通知する。
(24)クライアント制御部32は、(15)の処理で生成した共有鍵SK1を用いて、サーバ制御部22から受け取った暗号データを復号化し、(23)の処理で二分割された乱数の一方の乱数C2を得る。クライアント制御部32は、この乱数C2をトークンに設定する。
(25)クライアント制御部32は、トークンに乱数C2を設定し、サーバ制御部22に通知する。クライアント制御部32は、乱数C2をサーバ制御部22に通知した後に、トークンを返却するため乱数C2をトークンから外してクライアントメモリ33に登録する。なお、トークン利用者が複数のクライアント端末を利用する場合には、トークンのみに乱数を保持し、クライアントメモリ33には登録しなくても良い。
このときのクライアントメモリ33内のデータ構造は、図5(b)に示す通りである。
(26)サーバ制御部22は、クライアント制御32から乱数C2をトークンに設定した旨の通知を受けると、次回用の乱数(C2*S2)を用いて共有鍵SK2を生成する。さらに、サーバ制御部22は、サイトアクセス用パスワードを共有鍵SK2で暗号化し、乱数S2とともにサーバDB23に登録する。また、サーバ制御部22は、生成した次回用の共有鍵SK2を削除する。このときのサーバDB23内のデータ構造は、図5(a)に示す通りである。
以上のように、パスワード認証鍵交換プロトコルを用いたサイトアクセス用パスワードの登録処理によれば、サーバ20とクライアント端末30との間で確立するセキュアチャネルで用いる共有鍵と、サイトアクセス用パスワードを暗号化する鍵とを同一の鍵にしつつ、この共有鍵を生成するために必要な乱数をサーバ20側と、クライアント端末30側とで分割して保持するので、不正者がサーバ20にアクセスしても、共有鍵を生成することのできない、安全性の高いパスワード認証鍵交換システムを提供することができる。
<サイトアクセス用パスワード利用処理>
図6ないし図9は、サイトアクセス用パスワード利用処理のための手順説明図である。図6ないし図9における処理(31)〜(58)は、具体的には、図1に示す機能ブロックにおいて行われる。このサイトアクセス用パスワードの利用処理は、基本的にはサイトアクセス用パスワードの登録処理に準ずる処理である。また、サーバ制御部22と、クライアント制御部32との間における通信は、すべてI/F21、ネットワーク10及びI/F31を通じて行われるため、以下では、この記載を省略する。
なお、サイトアクセス用パスワード利用処理は、サーバ20とクライアント端末30とよって繰り返し行われる処理であるため、ここでは、説明を一般化するために、サイトアクセス用パスワード登録処理における乱数C1、乱数S1、クライアントデータWa、サーバデータWb、共有鍵鍵交換共有データKa、Kb、及び、共有鍵SK1に相当する値を、それぞれ、乱数Cx、乱数Sx、クライアントデータWax、サーバデータWbx、共有鍵鍵交換共有データKax、Kbx、及び、共有鍵SKxとする。xは世代数を表し、例えば、乱数S(x+1)は、乱数Sxを生成した処理の次回処理で生成された一世代後の乱数であることを意味する。
(31)ユーザがサーバ20にアクセスすべく、クライアント端末30を操作すると、クライアント制御部32は、トークンを確保する。ユーザは、クライアント端末30にユーザIDとパスワードπを入力する。また、このとき、ユーザは、アクセスを希望するサイト情報(例えばURL(Uniform Resource Locator) をクライアント端末30に入力する。
(32)クライアント制御部32は、クライアントメモリ33内に登録されている乱数Cxをトークンに設定する。なお、事前にトークンに乱数Cxが登録されている場合は、省略しても良い。
(33)クライアント制御部32は、ユーザがアクセスを希望するサイト情報と、ユーザIDとをサーバ制御部22に通知する。
(34)サーバ制御部22は、クライアント制御部32から通知されたユーザIDがサーバDB23に登録されているか否かを確認する。
(35)サーバ制御部22は、(34)の処理でユーザIDがサーバDB23に登録されていることを確認した場合には、このユーザIDに対応する乱数SxをサーバDB23から読み出す。
(36)サーバ制御部22は、(34)の処理でユーザIDがサーバDB23に登録されていないことを確認した場合には、クライアント端末30にエラーを通知する。
(37)クライアント制御部32は、(31)の処理でユーザによって入力されたパスワードπのハッシュ値H(π)を生成し、このH(π)と、(32)の処理でトークンに設定した乱数Cxとを用いて、クライアントデータWaxを生成する。
(38)クライアント制御部32は、(37)の処理で生成したクライアントデータWaxをサーバ制御部22に通知する。
クライアントデータWaxは、下記式により求めることができる。
g1’ = H(π)^k mod q
Wax = g1’^Cx mod q
(39)サーバ制御部22は、(38)の処理でクライアント制御部32において生成されたクライアントデータWaxが正しく計算されているかを確認する。例えば、mod qによる演算をしている場合は、得られた値がq−1以下の値になっているかを確認する。
(40) サーバ制御部22は、(39)の処理でクライアントデータWaxが正しく計算されていることを確認した場合には、(34)の処理でクライアント端末30から受信したユーザIDに対応するパスワードπをサーバDB23から読み出し、このパスワードπのハッシュ値H(π)と、(35)の処理で用いた乱数Sxとを用いて、サーバデータWbxを生成する。さらに、サーバ制御部22は、このサーバデータWbxをクライアント制御部32に通知する。
サーバデータWbxは、下記式により求めることができる。
g1’ = H(π)^k mod q
Wbx = g1’^Sx mod q
(41)サーバ制御部22は、(39)の処理でクライアントデータWaxが正しく計算されていないことを確認した場合は、エラーであることをクライアント制御部32に通知する。このとき、サーバ制御部22は、乱数Sxを消去する。
(42)サーバ制御部22は、(39)の処理で正しく計算されていることを確認したクライアントデータWaxと、(35)の処理で読み出した乱数Sxを用いて鍵交換共有データKbxを生成する。この鍵交換共有データKbxのハッシュ値が、共有鍵となる。つまり、サーバ制御部22で生成する共有鍵SKxは、以下のようになる。
SKx=Hash(Kbx||Pi)
(43)クライアント制御部32は、サーバデータWbxが正しく計算されているかを確認する。例えばmod qによる演算をしている場合は、q−1以下の値になっているか等を確認する。
(44)クライアント制御部32は、(43)の処理で確認データが正しく計算されていないことを確認した場合は、サーバ制御部22にエラーを通知し、(35)の処理で読み出した乱数Sxと、サーバ制御部22から通知されたサーバデータWbxとを消去する。
(45)クライアント制御部32は、(42)の処理でサーバ制御部22から通知されたサーバデータWbxと、(35)の処理で読み出した乱数Sxを用いて鍵交換共有データKaxを生成する。この鍵交換共有データKaxのハッシュ値が、共有鍵となる。つまり、クライアント制御部32で生成する共有鍵SKxは、以下のようになる。
SKx=H(Kax||Pi)
なお、鍵交換共有データKaxとKbxとの同一性については、サイトアクセス用パスワード登録処理における鍵交換共有データKaとKbとが同一であることと同じ理由により説明が付くので、省略する。
(46)クライアント制御部32は、鍵交換共有データKax、クライアントデータWax、サーバデータWbx、及び、その他必要な情報を連結した確認データ(H(|パラメータ|Wax|Wbx|Kax|g))をサーバ制御部22に通知する。
(47)サーバ制御部22は、クライアント制御部32から通知された確認データ(H(|パラメータ|Wax|Wbx|Kax|g))と、これに対応するサーバ側の確認データ(H(|パラメータ|Wax|Wbx|Kbx|g))とが一致するか確認する。サーバ制御部22は、これらの確認データの一致を確認した場合は、その旨をクライアント制御部32に通知する。
(48)サーバ制御部22は、(47)の処理において、サーバ側の確認データと、クライアント側の確認データの不一致を確認した場合には、エラーであることをクライアント制御部32に通知するとともに、乱数Cxと確認データを消去する。
(49)サーバ制御部22は、(47)の処理において、サーバ側の確認データと、クライアント側の確認データとの一致を確認した場合には、共有鍵SKxで暗号化されているサイトアクセス用パスワードを復号化する。
(50)サーバ制御部22は、ユーザIDに対応するサイト情報をサーバDB23から読み出し、サイト40に接続するために使用する接続データ(アドレス等)をクライアント制御部32に通知する。
(51)クライアント制御部32は、サーバ20を経由して、サイト40にアクセスする。ユーザは、サイト40によるサービスを利用することができる。
(52)クライアント制御部32は、サイト40へのアクセスを終了するかを繰り返し確認する。この処理は、ユーザがクライアント端末30に終了する旨を入力するまでクライアント制御部32によって繰り返し実行される。
(53)ユーザによってクライアント端末30にサイト40へのアクセスを終了する旨が入力されると、クライアント制御部32は、サーバ制御部22にサイトをログオフする旨を通知する。
(54)サーバ制御部22は、サイト40からログオフする。
(55)サーバ制御部22は、乱数C(x+1)*S(x+1)を生成する。サーバ制御部22は、乱数C(x+1)*S(x+1)を任意に二分割し、その一方の乱数S(x+1)をサーバDB23に登録し、他方の乱数C(x+1)を共有鍵SKxで暗号化して、セキュアチャネルを通じて、クライアント制御部32に通知する。
(56)クライアント制御部32は、共有鍵SKxを用いて、サーバ制御部22から受け取った暗号データを復号化し、二分割された乱数の一方の乱数C(x+1)を得る。クライアント制御部32は、この乱数C(x+1)をトークンに設定する。
(57)クライアント制御部32は、トークンに乱数C(x+1)を設定し、サーバ制御部22に通知する。なお、クライアント制御部32は、乱数C(x+1)をサーバ制御部22に通知した後に、トークンを返却するため乱数C(x+1)をトークンから外してクライアントメモリ33に登録する。なお、トークン利用者が複数のクライアント端末を利用する場合には、トークンのみに乱数を保持し、クライアントメモリ33には登録しなくとも良い。
(58)サーバ制御部22は、クライアント制御32から乱数C(x+1)をトークンに設定した旨の通知を受けると、次回用の乱数C(x+1)*S(x+1)を用いて共有鍵SK(x+1)を生成する。また、サーバ制御部22は、サイトアクセス用パスワードを共有鍵SK(x+1)で暗号化し、乱数S(x+1)とともにサーバDB23に登録する。さらに、サーバ制御部22は、生成した次回用の共有鍵SK(x+1)を削除する。
以上のように、第1実施形態のパスワード認証鍵交換プロトコルを用いたサイトアクセス用パスワードの利用処理によれば、サーバ20とクライアント端末30との間で確立するセキュアチャネルで用いる共有鍵と、サイトアクセス用パスワードを暗号化する鍵とを同一の鍵にしつつ、この共有鍵を生成するために必要な乱数をサーバ20側と、クライアント端末30側とで分割して保持するので、不正者がサーバ20にアクセスしても、共有鍵を生成することのできない、安全性の高いパスワード認証鍵交換システムを提供することができる。
なお、以上の説明では、サーバ20上にあるサイトアクセス用パスワードを共有鍵で暗号化することによって保護する手法を示したが、共有鍵を用いて保護する対象は、サイトアクセス用パスワードに限定されず、個人のみが利用する秘密鍵や権限情報などの個人情報を、さらには個人情報を含むアプリケーション、ワンタイムで利用するチケット設定などを秘密情報として保護することも可能である。
クライアント端末30には、利用毎に毎回異なる乱数が通知し設定されるだけなので、トークンとしてメモリーカードなどを利用することができ、且つリモートに設定したパスワードなどの個人情報の保護を、サーバでの鍵の管理負担を軽減しつつ実現できる。
[第2実施形態]
次に、本発明の第2実施形態を説明する。第2実施形態では、図1に示したサイト40において、秘密分散法を用いて、サイトアクセス用パスワードとシェアから2つの分散データを生成する。クライアント端末30は、2つの分散データを復元するためのシェアを保持し、シェアのハッシュ値をクライアント端末30が利用する乱数にする。サーバ20は、分散データの一方を共有鍵で暗号化して保持し、他方の分散データを乱数として利用する。
サーバ20とクライアント端末30との間で形成するセキュアチャネルで用いる暗号化のための共有鍵は、サーバ20が有する乱数と、クライアント端末30が有する乱数とを利用して生成した共有鍵となる。
クライアント端末30がサイト40にアクセスする際には、セキュアチャネルで共有鍵を生成し、サーバ20がこの共有鍵を用いて暗号化された分散データを復号化する。サーバ20は、さらに分散された2つの分散データとシェアを用いてサイトアクセスパスワードを生成する。このようにして、クライアント端末30は、サーバ20を介して、実際には複数あるサイト40にシングルサインオンすることができる。
[動作例]
次に、第2実施形態において、サーバ20と、クライアント端末30とが、ネットワーク10を通じて通信を行い、実際には複数存在するサイト40にシングルサインオンでアクセスするときの動作例を示す。この通信は、サイトアクセス用パスワードの登録処理と、サイトアクセス用パスワードの利用処理とに大別される。
<サイトアクセス用パスワード登録処理>
図10〜図11は、パスワード認証鍵交換プロトコルを用いたサイトアクセス用パスワード登録処理の手順説明図である。このサイトアクセス用パスワードの登録処理に際しては、ユーザのユーザIDとパスワードφが対応付けられて事前にサーバ20のサーバDB23に登録されているものとする。また、サーバ制御部22、クライアント制御部32及びサイト制御部42の間における通信は、すべてI/F21、ネットワーク10、I/F31及びI/F41を通じて行われるため、以下では、この記載を省略する。また、図12は、サーバ20のサーバDB23内と、クライアント端末30のメモリ内におけるデータ構造説明図である。
なお、図10及び図11における処理(101)〜(118)は、具体的には、図1に示す機能ブロックにおいて行われる。
(101)ユーザがサーバ20にアクセスすべく、クライアント端末30を操作すると、クライアント制御部32は、I/F31を通じてトークンを確保する。ユーザは、クライアント端末30にユーザIDとパスワードφを入力する。
(102)クライアント制御部32は、ユーザIDに対応するクライアントメモリ33内のデータを読み込み、サイトアクセス用パスワードをサイト40で登録済みかを確認する。具体的には、ユーザIDに対応するクライアントメモリ33内のデータにシェアが存在するか否かを確認する。
(103)クライアント制御部32は、(102)の処理でユーザIDに対応するクライアントメモリ33内のデータにシェアが存在しないことを確認した場合は、I/F31及びネットワーク10を通じ、サーバ20経由でそのユーザが登録を希望するサイトアクセス用パスワードをサイト40に通知する。
(104)サイト制御部42は、クライアント制御部32から通知されたサイトアクセス用パスワードをユーザIDと対応付けてサイトDB43に登録する。
(105)サイト制御部42は、サーバ20のサーバDB23にサイトアクセス用パスワードの分散データを設定するために必要な設定コードと、クライアント端末30が利用するトークンに設定させるシェアとを任意に生成し、ネットワーク10を通じてクライアント端末30のクライアント制御部32に通知する。
(106)クライアント制御部32は、(105)の処理でサイト制御部42から通知された設定コードとシェアをクライアントメモリ33に登録する。このときのメモリ33内のデータ構造は、図12(b)に示す通りである。
(107)クライアント制御部32は、サーバアクセス用パスワードφを次式に代入して、g2値を生成する。
g2=H(φ)^k mod q
(108)クライアント制御部32は、(106)の処理でクライアントメモリ33に保存したシェアと、(107)の処理で生成された値g2とを次式に代入してクライアントデータWa’を生成する。クライアント制御部32は、クライアントデータWa’をサイト制御部42に通知する。
Wa’=g2^H(シェア) mod q
(109)サイト制御部42は、(105)の処理で生成した設定コードをキー情報として、サイトアクセス用パスワード、シェア、及び、クライアントデータWa’をサイトDB43に保存する。
(110)サーバ制御部22とクライアント制御部32との間で共有鍵を生成する。すなわち、(108)で生成したクライアントデータWa’と乱数とに基づいて生成されるサーバデータWb’とを用いて、実施の形態1における(9)から(18)の処理と同様の処理を実行することにより、サーバ制御部22及びクライアント制御部32は、共有鍵SK1’をそれぞれ生成する。
この結果、サーバ20とクライアント端末30は、共有鍵SK1’を共有する。
(111)クライアント制御部32は、クライアントメモリ33に登録してある設定コードを共有鍵SK1’で暗号化し、セキュアチャネルを通じてサーバ制御部22に通知する。
(112)サーバ制御部22は、共有鍵SK1’を用いて、暗号化された設定コードを復号化するとともに、後述する分散データ1を暗号化するための次回処理用の共有鍵を生成する際に利用する共有鍵生成パラメータPi’と、設定コードとを、サイト制御部42に通知する。
(113)サイト制御部42は、サーバ制御部22から通知された設定コードが、(105)の処理で生成した設定コードと同一であるかを確認する。
(114)サイト制御部42は、サーバ制御部22から通知された設定コードが、(105)の処理で生成した設定コードと同一でないことを確認した場合は、ネットワーク10を通じて、クライアント制御部32にエラーであることを通知する。
(115)サイト制御部42は、サーバ制御部22から通知された設定コードが、(105)の処理で生成した設定コードと同一であることを確認した場合は、(105)の処理で生成した設定コードをサイトDB43から削除し、サイトDB43内において、その設定コードに対応するサイトアクセス用パスワードとシェアを読み出し、このサイトアクセス用パスワードとシェアとから分散データ1及び分散データ2を生成する。
分散データ2=p+x*a+x*b
分散データ1=p+y*a+y*b
ここで、P=サイト用パスワード、[a,b]はシェア,[x,y]は任意の乱数である。
なお、分散の方法は、本方式に限定されるものではない。また、シェアのサイズは、ユーザの利用頻度によって変更しても良い。
(116)サイト制御部42は、設定コードに対応するクライアントデータWa’をサイトDB43から読み出し、このクライアントデータWa’と分散データ2とを次式に代入して鍵交換共有データZを生成する。
Z = Wa’^分散データ2 mod q
(117)サイト制御部42は、鍵交換共有データZと、サーバ20から受信した共有鍵生成パラメータPi’とを用いて共有鍵SKx’を生成し、(115)の処理で生成した分散データ1を暗号化すると、暗号化した分散データ1と暗号化していない分散データ2とをネットワーク10を通じてサーバ20に通知する。なお、サイト制御部42が生成する共有鍵SKx’は、以下のようになる。
SKx’=Hash(Z||Pi’)
(118)サーバ制御部22は、サイト制御部42から通知された、暗号化された分散データ1と、暗号化されていない分散データ2とをユーザIDと対応付けてサーバDB23に登録する。このときのサーバDB23内のデータ構造は、図12(a)に示す通りである。
以上により、サイトアクセス用パスワード登録処理は終了する。サーバ20には、サイトアクセス用パスワードは登録されていない。
<サイトアクセス用パスワード利用処理>
図13ないし図16は、サイトアクセス用パスワード利用処理の手順説明図である。また、サーバ制御部22、クライアント制御部32及びサイト制御部42の間における通信は、すべてI/F21、ネットワーク10、I/F31及びI/F41を通じて行われるため、以下では、この記載を省略する。なお、図13ないし図16における処理(131)〜(158)は、具体的には、図1に示す機能ブロックにおいて行われる。
このサイトアクセス用パスワードの利用処理は、基本的にはサイトアクセス用パスワードの登録処理に準ずる処理である。
(131)ユーザがサーバ20にアクセスすべく、クライアント端末30を操作すると、クライアント制御部32は、トークンを確保する。ユーザは、クライアント端末30にユーザIDとパスワードφを入力する。また、このとき、ユーザは、アクセスを希望するサイト情報(例えばURL(Uniform Resource Locator) をクライアント端末30に入力する。
(132)クライアント制御部32は、クライアントメモリ33内に登録されているシェアのハッシュ値をトークンに設定する。なお、事前にトークンにシェアのハッシュ値が設定されている場合は省略しても良い。
(133)クライアント制御部32は、ユーザがアクセスを希望するサイト情報と、ユーザIDとをサーバ制御部22に通知する。
(134)サーバ制御部22は、クライアント制御部32から通知されたユーザIDがサーバDB23に登録されているか否かを確認する。
(135)サーバ制御部22は、(134)の処理でユーザIDがサーバDB23に登録されていることを確認した場合には、このユーザIDに対応する分散データ2をサーバDB23から読み出す。
(136)サーバ制御部22は、(134)の処理でユーザIDがサーバDB23に登録されていないことを確認した場合には、クライアント端末30にエラーを通知する。
(137)クライアント制御部32は、(131)の処理でユーザによって入力されたパスワードφのハッシュ値Hash(φ)を生成し、このパスワードφのハッシュ値Hash(φ)と、(132)の処理でトークンに設定した乱数(シェアのハッシュ値H(シェア))とを用いてクライアントデータWax’を生成する。
(138)クライアント制御部32は、(137)の処理で生成したクライアントデータWax’をサーバ制御部22に通知する。
ここで、クライアントデータWax’は、例えば、次のように算出することができる。
パスワードφのハッシュ値H(φ)を用いて、下記式によりg2を求める。
g2=H(φ)^k mod q
Wax’ = g2^H(シェア) mod q
(139)サーバ制御部22は、(138)の処理でクライアント制御部32において生成されたクライアントデータWax’が正しく計算されているかを確認する。例えば、mod q演算をしている場合は、得られる値がq−1以下の値になっているかを確認する。
(140)サーバ制御部22は、(139)の処理でクライアントデータWax’が正しく計算されていることを確認した場合には、(134)の処理でクライアント端末30から受信したユーザIDに対応するパスワードφをサーバDB23から読み出し、このパスワードφのハッシュ値Hash(φ)と、(135)の処理で用いた分散データ2とを用いて、サーバデータWbx’を生成する。さらに、サーバ制御部22は、このサーバデータWbx’をクライアント制御部32に通知する。
サーバデータWbx’は、下記式により求めることができる。
g2=H(φ)^k mod q
Wbx’ = g2^分散データ2 mod q
(141)サーバ制御部22は、(139)の処理でクライアントデータWax’が正しく計算されていないことを確認した場合は、エラーであることをクライアント制御部32に通知する。このとき、サーバ制御部22は、分散データ2を消去する。
(142)サーバ制御部22は、(139)の処理で正確性を確認したクライアントデータWax’と、(135)の処理で読み出した分散データ2を用いて鍵交換共有データKbx’を生成する。この鍵交換共有データKbxのハッシュ値が、共有鍵となる。つまり、サーバ制御部22で生成する共有鍵SKx’は、以下のようになる。
SKx’=H(Kbx’||Pi)
(143)クライアント制御部32は、サーバデータWbx’が正しく計算されているかを確認する。例えば、mod q演算をしている場合は、得られる値がq−1以下の値になっているかを確認する。
(144)クライアント制御部32は、(143)の処理で確認データが正しく計算されていないことを確認した場合は、サーバ制御部22にエラーを通知し、(135)の処理で読み出した分散データ2と、サーバ制御部22から通知されたサーバデータWbx’とを消去する。
(145)クライアント制御部32は、(142)の処理でサーバ制御部22から通知されたサーバデータWbx’と、(135)の処理で読み出した分散データ2を用いて鍵交換共有データKax’を生成する。この鍵交換共有データKax’のハッシュ値が共有鍵となる。つまり、クライアント制御部32で生成する共有鍵SKx’は、以下のようになる。
SKx’=H(Kax’||Pi)
(146)クライアント制御部32は、鍵交換共有データKax、クライアントデータWax’、サーバデータWbx’、及び、その他必要な情報を連結した確認データ(H(|パラメータ|Wax’|Wbx’|Kax|g))をサーバ制御部22に通知する。
(147)サーバ制御部22は、クライアント制御部32から通知された確認データ(H(|パラメータ|Wax’|Wbx’|Kax|g))と、これに対応するサーバ側の確認データ(H(|パラメータ|Wax’|Wbx’|Kbx|g))とが一致するか確認する。サーバ制御部22は、これらの確認データの一致を確認した場合は、その旨をクライアント制御部32に通知する。
(148)サーバ制御部22は、(147)の処理において、サーバ側の確認データと、クライアント側の確認データの不一致を確認した場合には、エラーであることをクライアント制御部32に通知するとともに、分散データ2と確認データを消去する。
(149)サーバ制御部22は、共有鍵SKx’で暗号化されている分散データ1を復号化する。
(150)サーバ制御部22は、分散データ1と分散データ2とをクライアント制御部32に通知する。
(151)クライアント制御部32は、シェアと、分散データ1及び分散データ2とを用いてサイトアクセス用パスワードを復元し、サーバ20を経由して、サイト40にアクセスする。ユーザは、サイト40によるサービスを利用することができる。
(152)クライアント制御部32は、サイト40へのアクセスを終了するかを繰り返し確認する。この処理は、ユーザがクライアント端末30に終了する旨を入力するまで繰り返し実行される。
(153)ユーザによってクライアント端末30にサイト40へのアクセスを終了する旨が入力されると、クライアント制御部32は、サーバ制御部22にサイトをログオフする旨を通知する。
(154)サーバ制御部22は、サイト40からログオフする。
(155)サイト制御部42は、サーバ20のサーバDB23にサイトアクセス用パスワードの分散データを設定するために必要な設定コードと、クライアント端末30が利用するトークンに設定させるシェアとを任意に生成し、ネットワーク10を通じてクライアント端末30のクライアント制御部32に通知する。これらの設定コードとシェアは、前回処理のものとは異なる値を有する。
(156)クライアント制御部32は、共有鍵SK(x+1)’を用いて、サーバ制御部22から受け取った暗号データを復号化し、次回処理用のシェアを得る。クライアント制御部32は、この次回処理用のシェアのハッシュ値をトークンに設定する。
(157)クライアント制御部32は、トークンに次回処理用のシェアのハッシュ値を設定し、サーバ制御部22に通知する。なお、クライアント制御部32は、次回処理用のシェアをサーバ制御部22に通知した後に、トークンを返却するため次回処理用のシェアをトークンから外してクライアントメモリ33に登録する。なお、トークン利用者が複数のクライアント端末を利用する場合には、トークンのみにシェアを保持し、クライアントメモリ33に登録してなくとも良い。
(158)サーバ制御部22は、クライアント制御32から次回処理用のシェアをトークンに設定した旨の通知を受けると、次回用のシェアのハッシュ値と次回用の分散データ2を用いて共有鍵SK(x+1)’を生成する。さらに、サーバ制御部22は、分散データ1を共有鍵SK(x+1)’で暗号化し、暗号化していない分散データ2とともにサーバDB23に登録する。また、サーバ制御部22は、生成した次回用の共有鍵SK(x+1)’を削除する。
以上、第2実施形態によれば、クライアント端末30経由でのみサイトアクセス用パスワードの利用が可能になるので、サーバ20側での不正をより厳密に防ぐことができる。
本発明の第1実施形態に係るパスワード認証鍵交換システムの全体構成図。 第1実施形態によるサイトアクセス用パスワード登録処理の手順説明図。 第1実施形態によるサイトアクセス用パスワード登録処理の手順説明図。 第1実施形態によるサイトアクセス用パスワード登録処理の手順説明図。 第1実施形態で使用するデータの構造例を示す図。 第1実施形態によるサイトアクセス用パスワード利用処理の手順説明図。 第1実施形態によるサイトアクセス用パスワード利用処理の手順説明図。 第1実施形態によるサイトアクセス用パスワード利用処理の手順説明図。 第1実施形態によるサイトアクセス用パスワード利用処理の手順説明図。 第2実施形態によるサイトアクセス用パスワード登録処理の手順説明図。 第2実施形態によるサイトアクセス用パスワード登録処理の手順説明図。 第2実施形態で使用するデータの構造例を示す図。 第2実施形態によるサイトアクセス用パスワード利用処理の手順説明図。 第2実施形態によるサイトアクセス用パスワード利用処理の手順説明図。 第2実施形態によるサイトアクセス用パスワード利用処理の手順説明図。 第2実施形態によるサイトアクセス用パスワード利用処理の手順説明図。
符号の説明
10・・・ネットワーク、20・・・サーバ、21,31,41・・・I/F、22・・・サーバ制御部、23・・・サーバDB、30・・・クライアント端末、31・・・I/F、32・・・クライアント制御部、33・・・クライアントメモリ、40・・・サイト、42・・・サイト制御部。

Claims (6)

  1. 通信路を介して接続された第1装置と第2装置の双方が、相手側で生成された情報(Wa/Wb)と自己側で生成した情報(C1/S1)とに基づいて前記通信路をセキュアチャネル化して情報交換を行うための共有鍵(SK1)を生成する段階と、
    前記第1装置が、前記第2装置への登録を希望する秘密情報を前記共有鍵(SK1)で暗号化し、この暗号データを前記第2装置に伝達する段階と、
    前記第2装置が、前記第1装置より受け取った前記暗号データを前記共有鍵(SK1)で復号して前記秘密情報を得た後は次回アクセス用の新規情報(C2*S2)を生成し、この新規情報(C2*S2)の一部(S2)を保存し、残部の新規情報(C2)を前記共有鍵(SK1)で暗号化して前記第1装置(クライアント端末)へ伝達する段階と、
    前記第1装置が、前記第2装置から受け取った暗号データを前記共有鍵(SK1)で復号して前記残部の新規情報(C2)を得、この残部の新規情報(C2)を次回アクセス用の前記自己側で生成した情報として保存する段階と、
    前記第2装置が、前記次回アクセス用の新規情報(C2*S2)に基づいて新たな共有鍵(SK2)を生成するとともに、前記共鍵(SK1)で復号した秘密情報を前記新たな共有鍵(SK2)で暗号化し、前記一部の新規情報(S2)とともに、次回アクセス用の前記自己側で生成した情報として保存する段階と
    前記第1装置が所定のサイトにアクセスする際に、前記第1装置と前記第2装置の双方が、相手側で生成された情報(Wax/Wbx)と前記自己側で生成した情報として保存している情報(Cx/Sx)とに基づいて前記通信路をセキュアチャネル化して情報交換を行うための共有鍵(SKx)を生成する段階と、
    前記第2装置が、生成した共有鍵(SKx)を用いて前記秘密情報を復号し、復号した秘密情報を伴う前記第1装置から前記サイトへのアクセスを可能にする段階と、
    前記第2装置が、次回アクセス用の新規情報(C(x+1)*S(x+1))を生成し、この新規情報(C(x+1)*S(x+1))の一部(S(x+1))を保存し、残部の新規情報(C(x+1))を前記共有鍵(SKx)で暗号化した第1暗号データを前記第1装置へ伝達する段階と、
    前記第1装置が、前記第2装置から受け取った前記第1暗号データを前記共有鍵(SKx)で復号して前記残部の新規情報(C(x+1))を得、この残部の新規情報(C(x+1))を次回アクセス用の前記自己側で生成した情報として保存する段階と、
    前記第2装置が、前記次回アクセス用の新規情報(C(x+1)*S(x+1))に基づいて新たな共有鍵(SK(x+1))を生成するとともに、前記復号した秘密情報を前記生成した共有鍵(SK(x+1))で暗号化して保存し、前記新規情報の一部(S(x+1))を次回アクセス用の前記自己側で生成した情報として保存する段階とを有する、
    暗号化された秘密情報の保護方法。
  2. 前記共有鍵(SK1)を生成する段階は、
    前記第1装置が、自己が生成した乱数(C1)に基づいて第1データ(Wa)を生成し、この第1データ(Wa)を前記第2装置に伝達する段階と、
    前記第2装置が、前記第1装置より受け取った第1データ(Wa)と自己が生成した乱数(S1)とに基づいて第2データ(Wb)を生成し、この第2データ(Wb)を前記第1装置に伝達するとともに、前記第1データ(Wa)と前記自己が生成した乱数(S1)とに基づいてそのハッシュ値が共有鍵(SK1)となる共有データ(Kb)を生成する段階と、
    前記第1装置が、前記第2装置より受け取った第2データ(Wb)と自己が生成した前記乱数(C1)とに基づいてそのハッシュ値が共有鍵(SK1)となる共有データ(Ka)を生成する段階とを含み、
    これらの共有データの各々から前記共有鍵(SK1)を導出する、
    請求項1記載の保護方法。
  3. 前記秘密情報を2つの分散データに分け、
    前記第1装置が、前記2つの分散データを復元するためのシェアを保持するとともに、このシェアのハッシュ値を自己側で生成する情報(C1)とし、
    前記第2装置が、前記2つの分散データうち前記サイトにおいて前記共有鍵(SK1)で暗号化された一方の分散データを保持し、他方の分散データを前記自己側で生成する情報(S1)とすることにより、前記第2装置が、前記2つの分散データと前記シェアとから前記秘密情報を復号可能にする、
    請求項2記載の保護方法。
  4. 前記第1装置が、前記第2装置を介した前記サイトへのアクセス権限情報を前記秘密情報として前記第2装置に伝達し、
    前記第2装置が、前記アクセス権限情報を取得し、このアクセス権限情報をメモリ領域に登録することにより、このアクセス権限情報を伴う前記第1装置から前記サイトへのアクセスを可能にする、
    請求項1又は2記載の保護方法。
  5. 通信路を介して接続された第2装置との間で双方向の通信を行う通信装置であって、
    第2装置で生成された情報(Wb)と自己側で生成した情報(C1)とに基づいて前記通信路をセキュアチャネル化して情報交換を行うための共有鍵(SK1)を生成する第1鍵情報生成手段と、
    前記第2装置への登録を希望する秘密情報を前記共有鍵(SK1)で暗号化し、この第1暗号データを前記第2装置に伝達する第1伝達手段と、
    前記第2装置において前記共有鍵(SK1)で復号された前記秘密情報を新たな共有鍵(SK2)で暗号化して保存し、前記新たな共有鍵(SK2)を生成するときに用いた次回アクセス用の新規情報(C2*S2)の一部(C2)を前記共有鍵(SK1)で暗号化したデータを前記第2装置から受け取る第1受取手段と、
    前記第2装置から受け取った第1暗号データを前記共有鍵(SK1)で復号して前記一部の新規情報(C2)を得、この一部の新規情報(C2)を次回アクセス用の前記自己側で生成した情報として保存する第1保存手段と、
    所定のサイトにアクセスする際に、前記第2装置で生成された情報(Wbx)と前記自己側で生成した情報として保存している情報(Cx)とに基づいて前記通信路をセキュアチャネル化して情報交換を行うための共有鍵(SKx)を生成する第2鍵情報生成手段と、
    前記第2装置を介して、前記第2装置において生成された前記共有鍵(SKx)を用いて復号された前記秘密情報を伴って前記サイトへアクセスするアクセス手段と、
    前記第2装置において、前記秘密情報を新たな共有鍵(SK(x+1))で暗号化して保存する際に、前記新たな共有鍵(SK(x+1))を生成する際に用いた次回アクセス用の新規情報(C(x+1)*S(x+1))の一部(C(x+1))が前記共有鍵(SKx)で暗合された第2暗号データを受け取る第2受取手段と、
    前記第2装置から受け取った第2暗号データを前記共有鍵(SKx)で復号して前記一部の新規情報(C(x+1))を得、この一部の新規情報(C(x+1))を次回アクセス用の前記自己側で生成した情報として保存する第2保存手段とを有する、
    通信装置。
  6. 通信路を介して接続された第1装置との間で双方向の通信を行う通信装置であって、
    前記第1装置で生成された情報(Wa)と自己側で生成した情報(S1)とに基づいて前記通信路をセキュアチャネル化して情報交換を行うための共有鍵(SK1)を生成する第1鍵情報生成手段と、
    自装置への登録を希望する秘密情報であって、前記共有鍵(SK1)で暗号化された第1暗号データを前記第1装置から受信する受信手段と、
    前記第1装置から受け取った前記第1暗号データを前記共有鍵(SK1)で復号して前記秘密情報を得た後は次回アクセス用の新規情報(C2*S2)を生成し、この新規情報(C2*S2)の一部(S2)を保存し、残部の新規情報(C2)を前記共有鍵(SK1)で暗号化して前記第1装置(クライアント端末)へ伝達する第1伝達手段と、
    前記次回アクセス用の新規情報(C2*S2)に基づいて新たな共有鍵(SK2)を生成するとともに、前記共有鍵(SK1)で復号した秘密情報を前記新たな共有鍵(SK2)で暗号化し、前記一部の新規情報(S2)とともに、次回アクセス用の前記自己側で生成した情報として保存する第1保存手段と、
    前記第1装置が所定のサイトにアクセスする際に、前記第1装置で生成された情報(Wax)と前記自己側で生成した情報として保存している情報(Sx)とに基づいて前記通信路をセキュアチャネル化して情報交換を行うための共有鍵(SKx)を生成する第2鍵情報生成手段と、
    前記第2鍵情報生成手段が生成した共有鍵(SKx)を用いて前記秘密情報を復号し、復号した秘密情報を伴う前記第1装置から前記サイトへのアクセスを可能にするアクセス手段と、
    次回アクセス用の新規情報(C(x+1)*S(x+1))を生成し、この新規情報(C(x+1)*S(x+1))の一部(S(x+1))を保存し、残部の新規情報(C(x+1))を前記共有鍵(SKx)で暗号化して前記第1装置へ伝達する第2伝達手段と、
    前記第2伝達手段が生成した前記次回アクセス用の新規情報(C(x+1)*S(x+1))に基づいて新たな共有鍵(SK(x+1))を生成するとともに、前記復号した秘密情報を前記生成した共有鍵(SK(x+1))で暗号化して保存し、前記新規情報の一部(S(x+1))を次回アクセス用の前記自己側で生成した情報として保存する第2保存手段とを有する、通信装置。
JP2005288893A 2005-09-30 2005-09-30 秘密情報の保護方法及び通信装置 Active JP4794970B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005288893A JP4794970B2 (ja) 2005-09-30 2005-09-30 秘密情報の保護方法及び通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005288893A JP4794970B2 (ja) 2005-09-30 2005-09-30 秘密情報の保護方法及び通信装置

Publications (2)

Publication Number Publication Date
JP2007104118A JP2007104118A (ja) 2007-04-19
JP4794970B2 true JP4794970B2 (ja) 2011-10-19

Family

ID=38030648

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005288893A Active JP4794970B2 (ja) 2005-09-30 2005-09-30 秘密情報の保護方法及び通信装置

Country Status (1)

Country Link
JP (1) JP4794970B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4924943B2 (ja) * 2007-09-04 2012-04-25 Kddi株式会社 認証付鍵交換システム、認証付鍵交換方法およびプログラム
US9137346B2 (en) 2009-06-18 2015-09-15 Qualcomm Incorporated System and method for permitting recordation of voice transmissions among group members of a communication group of wireless communication devices
US8195213B2 (en) 2009-06-18 2012-06-05 Qualcomm Incorporated System and method for permitting recordation of voice transmissions among group members of a communication group of wireless communication devices
US9143903B2 (en) 2012-10-19 2015-09-22 Qualcomm Incorporated Requesting and providing acknowledgements to specific PTT talk spurts
CN104852796B (zh) * 2015-04-13 2018-05-01 南昌大学 基于连续变量来实现受多方控制的量子对话方法
RU2018137847A (ru) * 2016-03-29 2020-04-29 Конинклейке Филипс Н.В. Система и способ для распространения основанного на идентификационной информации ключевого материала и сертификата

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001075468A (ja) * 1999-09-03 2001-03-23 Yamazaki Kyoiku Kizai Kk インターネット教育システム、クライアントサーバシステムおよび記録媒体
JP4604418B2 (ja) * 2001-07-26 2011-01-05 パナソニック株式会社 通信装置および通信方法
JP4614664B2 (ja) * 2003-01-10 2011-01-19 パナソニック株式会社 グループ加入認可システム、サーバ機器及びクライアント機器

Also Published As

Publication number Publication date
JP2007104118A (ja) 2007-04-19

Similar Documents

Publication Publication Date Title
US7688975B2 (en) Method and apparatus for dynamic generation of symmetric encryption keys and exchange of dynamic symmetric key infrastructure
CN109088889B (zh) 一种ssl加解密方法、系统及计算机可读存储介质
EP2020797B1 (en) Client-server Opaque token passing apparatus and method
KR101130415B1 (ko) 비밀 데이터의 노출 없이 통신 네트워크를 통해 패스워드 보호된 비밀 데이터를 복구하는 방법 및 시스템
US8059818B2 (en) Accessing protected data on network storage from multiple devices
US7231526B2 (en) System and method for validating a network session
TWI288552B (en) Method for implementing new password and computer readable medium for performing the method
US8644516B1 (en) Universal secure messaging for cryptographic modules
US5418854A (en) Method and apparatus for protecting the confidentiality of passwords in a distributed data processing system
US20020087862A1 (en) Trusted intermediary
EP2251810B1 (en) Authentication information generation system, authentication information generation method, and authentication information generation program utilizing a client device and said method
JP2009529832A (ja) 発見不可能、即ち、ブラック・データを使用するセキュアなデータ通信
US7266705B2 (en) Secure transmission of data within a distributed computer system
CN110868291B (zh) 一种数据加密传输方法、装置、系统及存储介质
JP4794970B2 (ja) 秘密情報の保護方法及び通信装置
CN114244508A (zh) 数据加密方法、装置、设备及存储介质
CN110519222B (zh) 基于一次性非对称密钥对和密钥卡的外网接入身份认证方法和系统
US10764260B2 (en) Distributed processing of a product on the basis of centrally encrypted stored data
JP4924943B2 (ja) 認証付鍵交換システム、認証付鍵交換方法およびプログラム
JP7337763B2 (ja) 通信システム、通信方法およびプログラム
CA3210990C (en) End to end encryption with roaming capabilities
CN118300905B (zh) 基于保密认证模式的密文传输方法、装置、设备及介质
KR100842014B1 (ko) 다수의 장치로부터 네트워크 저장 장치상의 보호 데이터에대한 접근
CA3225987A1 (en) End to end encryption with roaming capabilities
KR20210126944A (ko) 비밀정보의 공유 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080318

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100325

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100402

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110411

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110719

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110727

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4794970

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140805

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350