トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 代行認証方法、その各装置、その装置の処理方法、及びプログラム記録媒体
【発明者】 【氏名】山本 奏

【氏名】堀岡 力

【氏名】佐野 睦夫

【要約】 【課題】代行ユーザの不正資源利用を不可能とし、かつ構成を簡単にする。

【解決手段】認証装置から、セッションIDn をユーザは受信し、ユーザの秘密情報Sに対し、n−1回の一方向性ハッシュ関数を演算して被認証データan=hn-1 (s)を生成し、また検証データvn =hn (s)を生成し、vn を認証装置へ送り、認証装置はそのハッシュ値h(vn )と登録データhn-1(s)とが等しいかを調べ、等しければvn を保存する。ユーザは代行ユーザの正当性を認証し、an を代行ユーザへ送り、代行ユーザは認証装置から正当性の認証を受けるとan を認証装置へ送り、認証装置an にハッシュ値h(an )とvn が等しければ、資源の利用を許可する。an =hn-1 (s)を次回検証データとして保存する。
【特許請求の範囲】
【請求項1】 認証者に対する認証処理をユーザに代って行う代行認証を代行ユーザに依頼するためにユーザが利用する利用者認証装置であって、代行ユーザ端末装置および認証装置とデータの送受信を行うデータ送受信手段と、データ送受信手段を通じた代行ユーザ端末装置とのデータの送受信によって、代行ユーザの正当性を認証する処理を行う代行ユーザ認証処理手段と、セッションごとに異なる情報を認証装置と共有するデータ共有手段と、ユーザが秘密に保持している秘密情報およびデータ共有手段からのセッションごとに異なる情報とを入力し、代行ユーザに開示する被認証データを求める被認証データ演算手段と、秘密情報およびデータ共有手段からのセッションごとに異なる情報とを入力し、代行ユーザに開示する前記被認証データの正当性を確認する検証データを求める検証データ演算手段とを備えたことを特徴とするユーザ端末装置。
【請求項2】 請求項1記載の装置において、上記被認証データ演算手段は前記秘密情報およびデータ共有手段からのセッションごとに異なる情報とを入力し、ユーザの正当性を示す際に認証装置に送信するユーザ被認証データを求める手段を含む、前記検証データ演算手段は、秘密情報およびデータ共有手段からのセッションごとに異なる情報とを入力し、ユーザ端末装置が次回の認証に使用する被認証データの正当性を確認する検証データを求める手段を含む、ことを特徴とする利用者認証装置。
【請求項3】 資源を利用する権限を持つ正当なユーザから認証者に対する認証処理の代行を依頼され代行認証を処理する代行ユーザが利用する代行ユーザ端末装置であって、ユーザ端末装置および認証装置とデータを送受信するデータ送受信手段と、データ送受信部によってユーザ端末装置から受信した被認証データとユーザ識別子を記憶する被認証データ管理手段と、送受信手段を通じたユーザ端末装置および認証装置とのデータ送受信によって、代行ユーザの正当性を証明するための認証処理を行う代行ユーザ被認証手段と、認証処理ごとに異なる情報を認証装置と共有するデータ共有手段と、ユーザ識別子と代行ユーザ識別子を関連づけた代行処理識別子、代行ユーザの秘密情報と認証処理ごとに異なる情報を入力し、代行ユーザ端末装置による2回目以降の認証処理の際に認証装置に提示する代行ユーザ被認証データを求める被認証データ演算手段と、認証処理ごとに異なる情報と代行ユーザの秘密情報を入力し、代行ユーザ端末装置による2回目以降の認証処理の際に認証装置に提示する前記代行ユーザ被認証データの正当性を確認する代行ユーザ認証検証データを求める検証データ演算手段とを備えたことを特徴とする代行ユーザ端末装置。
【請求項4】 資源を利用する権限を持つ正当なユーザから認証者に対する認証処理の代行を依頼され代行認証を処理する代行ユーザに対し、代行処理の正当性の認証を行う認証装置であって、ユーザ端末装置および代行ユーザ端末装置とデータを送受信するデータ送受信手段と、ユーザ端末装置とセッションごとに異なる情報を共有するデータ共有手段と、ユーザ識別子に対応して検証データを記憶するユーザ情報管理手段と、ユーザ情報管理手段によって記憶された検証データと、代行ユーザ端末装置からの被認証データに基づいて認証可否を判定する認証判定手段と、認証判定手段の出力に応じて資源へのアクセスなどのサービスの提供/拒否を制御するサービス制御手段と、データ送受信手段を通じた代行ユーザ端末装置とのデータ送受信によって、代行ユーザの正当性を認証する処理を行う代行ユーザ認証処理手段とを備えたことを特徴とする認証装置。
【請求項5】 請求項4に記載の認証装置であって、代行ユーザ端末装置から受信した、ユーザ識別子と代行ユーザ識別子を関連づけた代行処理識別子に対応して代行認証検証データを記憶する代行ユーザ情報管理手段を備え、前記認証判定手段は代行ユーザ情報管理手段に記憶された代行ユーザ認証検証データと、代行ユーザ端末装置から受信した代行ユーザ被認証データに基づいて認証可否を判定する手段を含むことを特徴とする認証装置。
【請求項6】 資源を利用する権限を持つ正当なユーザが認めた別な代行ユーザに対して、上記代行ユーザが、上記資源を上記正当なユーザに代って利用することを上記正当なユーザが認めた代行ユーザであることを、上記資源の利用者の認証を管理する認証装置が確認するための代行利用者認証方法において、(a)上記正当なユーザの利用するユーザ端末装置が上記認証装置との間で、個々の認証処理ごとに異なるデータを共有し、(b)上記ユーザ端末装置が、上記認証処理ごとに異なるデータと上記ユーザに固有の秘密情報を変換した被認証データとその被認証データの検証データを生成し、(c)上記ユーザ端末装置が上記検証データを上記認証装置に送信登録し、(d)上記ユーザ端末装置が上記代行ユーザの利用する代行ユーザ端末装置に対し、上記被認証データを送信し、(e)上記代行ユーザ端末装置が受信した上記被認証データを保存し、(f)上記代行ユーザ端末装置が上記認証装置に対し、上記被認証データを送信し、(g)上記認証装置が上記検証データを用いて上記代行ユーザ端末装置から受信した被認証データを検証し、(h)上記ユーザ端末装置が認めた代行ユーザ端末装置であることを認証するステップを含むことを特徴とする代行利用者認証方法。
【請求項7】 請求項6の代行利用者認証方法において、2回目以降の認証処理の際に上記代行ユーザ端末装置が上記認証装置との間で個々の認証処理ごとに異なるデータを共有し、(i)上記代行ユーザ端末装置が、上記認証処理ごとに異なるデータと上記代行ユーザに固有の秘密情報を用いて、上記認証装置が上記代行ユーザの正当性を認証するための代行ユーザ被認証データと、次回の認証において送信される代行ユーザ被認証データの正当性検証に用いる次回代行ユーザ認証検証データとを生成し、上記認証装置に送信し、(j)上記認証装置が受信した代行ユーザ被認証データの正当性を、その前に受信した次回代行ユーザ認証検証データを用いて検証し、(k)上記ユーザ端末装置が認めた代行ユーザ端末装置であることを認証し、(l)受信した上記次回代行ユーザ認証検証データを保存するステップを繰返すことを特徴とする代行利用者認証方法。
【請求項8】 認証者に対する認証処理をユーザに代って行う代行認証を代行ユーザに依頼するためにユーザが利用する利用者認証装置の認証処理方法において、認証者の認証装置と共有のセッションごとに異なる情報を取得するステップと、ユーザが秘密に保持している秘密情報とセッションごとに異なる情報とから被認証データを演算するステップと、上記被認証データの正当性を確認する検証データを、次のセッションごとに異なる情報と上記秘密情報とから演算するステップと、上記検証データを認証装置へ送るステップと、代行ユーザの端末装置とデータを送受信して、代行ユーザの正当性を認証するステップと、上記被認証データを上記代行ユーザの端末装置へ送信するステップと、を有する利用者認証処理方法。
【請求項9】 資源を利用する権限を持つ正当なユーザから認証者に対する認証処理の代行を依頼され、代行認証を処理する代行ユーザが利用する代行ユーザ端末装置の認証方法において、上記ユーザの端末装置とデータの送受信を行って、代行ユーザの正当性の認証を受けるステップと、上記ユーザの端末装置から1回目の代行ユーザ被認証データを受信するステップと、上記ユーザ端末装置と上記認証の認証装置との間で共有する認証処理ごとに異なるデータと継続する認証処理ごとに異なるデータと、代行ユーザに個有の秘密情報とを用いて2回目の代行ユーザ被認証データの検証に用いる代行ユーザ認証検証データを生成するステップと、上記認証者の認証装置とデータの送受信を行って代行ユーザの正当性の認証を受けるステップと、上記受信した1回目の代行ユーザ被認証データと上記2回目の検証に用いる代行ユーザ認証検証データを認証装置へ送信するステップとを有する代行ユーザ認証方法。
【請求項10】 認証処理ごとに異なるデータと、代行ユーザの秘密情報とを用いて2回目以降の代行ユーザ被認証データを生成するステップと、次の認証処理ごとに異なるデータと、代行ユーザの秘密情報とを用いて次の代行ユーザ被認証データを検証するための次回代行ユーザ認証検証データを生成するステップと、上記2回目以降の代行ユーザ被認証データと、上記次回代行ユーザ認証検証データを認証装置へ送信するステップとを有することを特徴とする請求項9記載の代行ユーザ認証方法。
【請求項11】 請求項8乃至10の何れかに記載の方法をコンピュータにより実行するプログラムを記録した記録媒体。
【発明の詳細な説明】【0001】
【発明の属する技術分野】この発明は、例えばネットワークを通じて資源を利用するユーザ(利用者)の正当性を確認する認証方法、特にユーザの秘密情報を漏らすことなく、正当なユーザの代行者にユーザの権限を一時的に許諾する代行認証を可能にする代行認証方法、その装置、装置の処理方法及びプログラム記録媒体に関するものである。
【0002】
【従来の技術】ユーザがネットワークを通じて資源を利用する際に、資源を利用しようとするユーザがその資源を利用する権限を持っているのかどうか確かめるために認証技術が用いられる。ここで、資源の利用とは、例えば、端末をネットワークで接続された遠隔地のコンピュータに接続し、そのコンピュータに接続されたデータベースに記録された情報を参照するなど、上記コンピュータが提供するアプリケーションやサービスを利用することなどである。また、ネットワークを通じなくとも、コンピュータの提供するサービスを上記コンピュータの端末装置から利用する場合も、資源の利用といえる。ただしこれらの例はこの発明の請求範囲を限定するものではない。
【0003】資源の利用は複雑化しているので、資源を利用する権限を持つ正当なユーザが上記資源を直接利用するのではなく、上記正当なユーザの意図に基づき、上記正当なユーザに代って適宜資源の利用を行うサービスが必要とされる。例えば、決済サービスにおいてユーザの代りに代行ユーザが複雑な決済処理を行う場合などが考えられる。また、ユーザがアクセス権を持つ複数のデータベースに対して代行ユーザがそれぞれ検索を行い、その検索結果を統合してユーザに分かりやすく提示するサービスなども考えられる。ここで、代行ユーザは人であっても良いし、処理を自動的に行う例えばコンピュータなどの機械であっても良い。ただし、これらの例はこの発明の請求範囲を限定するものではない。
【0004】このようなサービスでは代行ユーザがユーザの代りに資源へアクセスする必要があるため、資源にアクセスする際の認証においては、ユーザが認めた代行ユーザであることを確認しなければ処理できない。正当なユーザが処理の代行を行うことを認めた代行ユーザに対して、また上記代行ユーザに対してのみ、上記代行ユーザが正当なユーザによって認められた代行ユーザであることを資源の提供者が確認するための認証方法が必要となる。ここでは、このような認証方法を代行認証と呼ぶことにする。
(従来の代行認証方法)こういった代行認証を可能にする方法として特開平8−335208の代理認証方法がある。
【0005】特開平8−335208の代理認証方法では、正当なユーザのノードAが、ノードAがアクセス権をもつノードNに対して直接アクセスする代りに、ノードAの代理としてノードBがノードNにアクセスすることを可能にするため、ノードAがノードBの正当性を確認した後に、ノードAの秘密情報をノードBに送信し、ノードBが上記秘密情報を保持し、ノードBが上記保持された秘密情報を利用してノードAの代りにノードNにアクセスするという方法により、上記のような代行認証を可能としている。
【0006】しかし、正当なユーザのノードAが代行ユーザのノードBに秘密情報を渡してしまうので、いったん代行を依頼すると、代行ユーザによる資源の利用を制限することができない。また、別な代行認証方法として、公開鍵暗号方式を利用した代行認証方法がある。[金岡、中原、“代理申請における本人認証方式の提案”、情報処理学会研究報告コンピュータセキュリティ、10−19、pp.129−136(2000).]では、ユーザが代行者に資源へのアクセスを依頼するために、代行ユーザに対して代行処理を依頼する委任状を発行する。委任状には、ユーザによって、公開鍵暗号方式を用いた署名が付けられ、資源へのアクセスを管理する認証者は、上記署名の正当性を確認することによって代行認証処理を行う。
【0007】しかし、公開鍵暗号方式を利用した認証方法は、秘密鍵暗号方式を利用した認証方法に比べ演算コストが大きいため、メモリや演算能力の小さい携帯電話や携帯端末のような小規模な端末装置のための認証方法としては適さない。
(ワンタイムパスワード認証方法)また、秘密情報をネットワークに漏らさない認証方法として、ワンタイムパスワード(OTP)認証方法がある。ワンタイムパスワード認証方法では、認証の際にネットワーク上を流れるデータは毎回異なり、そのデータを盗んでも次の認証に用いることができない。代表的なワンタイムパスワード認証方法にS/KEYとPERM認証がある。
【0008】S/KEYは一方向ハッシュ関数を基にしたワンタイムパスワード方式であり、[RFC1938]に述べられている。S/KEYの処理の概要を以下に示す。
1.元のパスワードをn回暗号化したものをシステム上に保存しておきユーザからの要求を待つ。
2.ユーザからの要求がきたらn−1というチャレンジを返す。
3.ユーザはチャレンジをうけてn−1回暗号化した元のパスワードをシステムに返す。
【0009】4.システム側ではそれをもう一度暗号化(n−1+1)し、最初に保存してあったn回暗号化したパスワードと比較する。
5.比較の結果同じであれば、認証が成功したものとして(現在保存してある)n回暗号化したパスワードを(今回受信した)n−1回暗号化したパスワードに更新する。
上記の手順を、nを1づつ減じていくことで毎回異なるパスワードを生成する。以上の手順からも分かるように、最初のnが0になると設定を更新する必要が生じる。そのため、初期値として大きなnをとることも考えられるが、あまり大きな数値を設定するとクライアント側の処理負担が大きくなるという欠点がある。
【0010】S/KEYに対し、登録されているデータの更新の必要がない認証方式としてPERM認証[SHIMIZU,HORIOKA,INAGAKI,“A Password Authentication Methodfor Contents Communications in the Internet,”IEICE Trans.on Communication, Vol.81-B,No.8,pp.1666-1673(Aug.1998).]がある。PERM認証では被認証者(ユーザ)が認証者(システム)に対し、次の3つのデータを送信することによって認証情報を更新しながら連鎖的に認証を行うことを特徴としている。以下にPERM認証の概略を示す。
【0011】1.前回、正当性の確認を終え、登録されている一方向変換データの、変換前の元のデータ2.次々回の認証に用いる一方向性変換後のデータ3.次々回の認証に用いる一方向性変換後のデータの正当性を次回に確認するための認証子データPERM認証は、S/KEYに比べ一方向性関数の適用回数が少ないため、処理負担をおさえることができる。
【0012】これらのOTP認証方法では、ネットワークにユーザの秘密情報を流さないため、代行ユーザに対して秘密情報を漏らさない代行認証方法に応用することが考えられるが、S/KEYおよびPERM認証自体では、代行認証のプロセスが考慮されていないため、そのままでは容易に代行認証を実現することはできない。
【0013】
【発明が解決しようとする課題】以上のように従来の方法では、代行認証を実現するために、正当なユーザの持つ秘密情報を完全に代行ユーザに対し開示してしまっていたため、いったん代行を依頼すると、代行ユーザの資源利用に対する制御が困難であった。また、公開鍵暗号方式を用いた認証方法は演算コストが大きく、小規模な端末装置での利用には適さなかった。この発明の目的は、このような問題点を鑑み、代行認証を行う認証システムにおいて、代行ユーザに正当なユーザの持つ秘密情報を開示することなしに認証情報を渡し、秘密鍵暗号方式に基づいて、安全かつ高速な代行認証を可能とする利用者認証装置、その方法およびその装置を動作させるプログラムを記録した記録媒体を提供することにある。
【0014】
【課題を解決するための手段】この発明は、ワンタイムパスワード(OTP)認証方法に基づく一時的に生成された被認証データを代行ユーザに開示し、一方で、上記被認証データを検証するための検証データを認証装置に登録し、代行ユーザが代行ユーザ自身の認証の後に、上記被認証データ及び上記検証データを用いて代行処理に関する認証を行うことを最も主要な特徴とする。この発明の一形態によればユーザ自身の認証のためのOTP系列における一つの被認証データを代行処理に関する認証を行うための被認証データとして利用することで、ユーザ自身の認証のためのOTP系列から代行処理の認証データを派生させることも最も主要な特徴とする。
【0015】また、この発明の他の形態によればユーザ自身の認証のためのOTP系列から代行処理に関する認証のためのOTP系列を、分岐させて生成することも最も主要な特徴とする。従来の技術とは、代行ユーザに対しユーザの持つ秘密情報を開示せずに代行認証を可能にする点が異なる。
作用認証処理ごとに異なるデータを元に代行ユーザに開示するデータを生成するため、秘密情報を開示せずに代行認証が可能となる。また、代行ユーザによる代行処理が行われる前に、代行の許諾を取り消すことが可能となる。
【0016】従来の認証方法では、被認証者が他者に知られずに保持している秘密情報を認証者に示すことで認証が行われる。言い換えれば、秘密情報が第3者に知られた場合、その第3者が被認証者になりかわって資源へのアクセスが可能となる。しかし、この発明では、認証のセッションごとに異なる情報などから一方向的に生成される被認証情報を代行ユーザに開示し、それを認証に用いる。そのため、他のセッションに関する秘密情報を代行ユーザに開示せずにすむ。この被認証データの開示の要否について本来のユーザが判断できる余地が与えられるので代行ユーザによる意図しない資源の利用を制限できる。
【0017】また、代行ユーザが代行処理を行う前に、開示した被認証データを用いてユーザ自身が認証処理を行えば、代行ユーザによる代行処理を阻止することができる。このようにして本来のユーザによる代行ユーザへの利用許諾を制御できる。一方、ワンタイムパスワードの系列を分岐する場合は、何回の代行認証を許可するか、など、代行ユーザによる資源の利用を停止するための条件をユーザ側から認証装置に入力することで、代行ユーザによる意図しない資源の利用を制限できる。
【0018】また、認証処理に公開鍵暗号方式を用いないため、小規模な端末装置でも利用可能な代行認証が可能となる。ここで、ユーザが委任状に公開鍵暗号方式に基づいて署名を加え、それを代行ユーザに開示し、代行ユーザが認証者に対してその委任状を示し、認証者が委任状に付けられた署名を検証するという、単純な例を考える。従来技術では、ユーザ側1回、認証者側1回の計2回の公開鍵暗号方式に基づく演算が行われる。一方、この発明の方法では、後で述べる実施例4の場合、ユーザ端末装置で7回、代行ユーザ端末装置で一回の代行認証ごとに4回(一回目は3回)、認証装置で代行認証依頼と一回の代行認証との合わせて5回の一方向性関数の演算が行われる。
【0019】一般に、公開鍵暗号の演算はハッシュなどの計算よりも1000倍程度計算時間が多いと言われる(Schneier,B.,“Applied Cryptography Second Edition: protocols,algorithms,and source code in C,”p.469,John Wiley & Sons, Inc.(1996)において(代表的な公開鍵暗号方式である)RSAの処理速度に比べ、(同じく代表的な秘密鍵暗号方式である)DESは、ハードウェアでおよそ1000倍、ソフトウェアでおよそ100倍高速であると述べられている。SHA−1などの単純な一方向性ハッシュ関数はDESと比較してもより高速であるため、公開鍵暗号方式を用いないこの発明方法の方が明らかに高速である。
【0020】また、ユーザ認証のためのOTP系列から代行処理に関する認証のための認証データを派生させるため、代行処理のための認証とユーザ認証とを一括して取り扱うことが可能となる。また、ユーザ自身の認証のためのOTP系列から、代行処理に関する認証のためのOTP系列を分岐させて生成するため、代行認証の処理が、ユーザ自身の認証に影響を与えず、複数の代行認証を並行して実施することが可能となり、また一度の代行認証依頼に基づいて、代行ユーザが複数回の代行認証を繰り返すことが可能となる。
【0021】
【発明の実施の形態】実施例1(OTPによる代行認証)この発明の実施例1を以下に示す。
(システム構成)この実施例が適用されるシステム構成例を図1に示す。このシステムは、管理する資源を利用するユーザが、上記資源を利用する権限を持っているのかどうかを認証する機能を持つ認証装置101と、上記資源を利用する権限を持つ正当なユーザが利用するユーザ端末装置102と、上記正当なユーザが自身の代りに上記資源を利用することを許諾した代行ユーザが利用する代行ユーザ端末装置103から構成される。
【0022】これらの装置は互いにネットワーク104を通じて接続され、データの送受信が可能であるとする。ただし、これはこの発明の請求範囲を限定するものではなく、各装置間でデータの授受が可能であれば、ネットワークを通じた通信が行われなくても構わない。例えば、送受信するデータをフロッピー(登録商標)ディスク、ICカード、メモリカード、ハードディスク、CD−ROM、DVD−ROM/RAMなどの外部記憶媒体に記録したのちに、その媒体を用いてデータの送受信を行っても構わない。また、人手によりデータの送受信を行っても構わない。以下の実施例において、各装置間のデータの送受信はネットワークを通じたデータの送受信に限定するものではない。
(ユーザ端末装置)ユーザ端末装置102の内部機能構成例を図2に示す。ユーザ端末装置は、ユーザ識別子、ユーザが秘密に保持している秘密情報および代行を依頼する代行ユーザ識別子などを入力する入力部201と、代行ユーザ端末装置および認証装置とデータの送受信を行うデータ送受信部202と、入力部201からの代行ユーザ識別子と、データ送受信部202を通じた代行ユーザ端末装置とのデータの送受信によって、代行ユーザの正当性を認証する処理を行う代行ユーザ認証処理部203と、データ送受信部202を通じた認証装置とのデータ送受信によってセッションごとに異なる情報を共有する処理を行うデータ共有処理部204と、入力部201からの秘密情報およびデータ共有処理部204からのセッションごとに異なる情報とを入力し、代行ユーザに開示する被認証データを求める被認証データ演算部205と、入力部201からの秘密情報およびデータ共有処理部204からのセッションごとに異なる情報とを入力し、代行ユーザに開示する上記被認証データの正当性を確認する検証データを求める検証データ演算部206と、から構成される。前記セッションごとに異なる共有の情報としては例えば、a)認証処理セッションごとにインクリメントあるいはデクリメントされ、ステイタスを表す数nb)認証装置が生成した乱数rc)事前に同期させた時計を認証装置とユーザ端末装置が互いに備え、認証処理時の現在時刻などが考えられる。共有するために、後述する実施例2,4では、セッションIDn ,Nn などを共有する情報とし、認証装置に記録しておき、認証処理の開始時にユーザ端末装置に送信する。
【0023】入力部201から入力されるユーザ識別子、秘密情報等は、ユーザの記憶を基に、端末のキーボードから入力する方法や、ICカード等の記憶媒体を用いて自動的に入力する方法などがある。ただしこれらはこの発明の請求範囲を限定するものではない。ここで、秘密情報とは、例えばユーザが記憶しているパスワードや、端末装置やICカードなどの記憶媒体に保持されている秘密鍵データなどが挙げられる。ただし、秘密情報は、ユーザが第3者に知られないように保持しているデータであり、これを用いてユーザの正当性を証明するためのデータであればどのような情報でもよく、これらの例はこの発明の請求範囲を限定するものではない。
(代行ユーザ端末装置)代行ユーザ端末装置103の内部の機能構成例を図3に示す。代行ユーザ端末装置は、ユーザ端末装置および認証装置とデータを送受信するデータ送受信部301と、データ送受信部301によってユーザ端末装置から受信した被認証データとユーザ識別子を記憶する被認証データ管理部302と、データ送受信部301を通じたユーザ端末装置および認証装置とのデータ送受信によって、代行ユーザの正当性を証明するための認証処理を行う代行ユーザ被認証処理部303とから構成される。
(認証装置)認証装置101の内部の機能構成例を図4に示す。認証装置は、ユーザ端末装置および代行ユーザ端末装置とデータを送受信するデータ送受信部401と、データ送受信部401を通じたユーザ端末装置とのデータ送受信によってセッションごとに異なる情報を共有する処理を行うデータ共有処理部402と、ユーザ識別子に対応して検証データを記憶するユーザ情報管理部403と、ユーザ情報管理部403に記憶された検証データと、データ送受信部401からの被認証データに基づいて認証可否を判定する認証判定部404と、認証判定部404の出力に応じて資源へのアクセスなどのサービスの提供/拒否を制御するサービス制御部405と、データ送受信部401を通じた代行ユーザ端末装置とのデータ送受信によって、代行ユーザの正当性を認証する処理を行う代行ユーザ認証処理部406とから構成される。
【0024】ユーザ端末装置および認証装置のデータ共有処理部204,402は、個々の認証処理セッションごとに異なる値をユーザ端末装置と認証装置の間で共有する手段を備えていればどのような構造を持っていても良い。例えば、ユーザ端末装置および認証装置のデータ共有処理部204,402のどちらかが共有データを生成あるいは記憶し、他方に送信することで共有しても良い。あるいは、ユーザ端末装置および認証装置のデータ共有処理部204,402が、事前に同期させた時計を備え、認証処理時の現在時刻を上記共有データの一部または全部として用いても良い。ただしこれらの例はこの発明の請求範囲を限定するものではないことはいうまでもない。
(OTP開示による代行認証の処理フロー)この実施例1における代行認証の処理の流れを図5に示す。以下に、図の各ステップでの処理内容の詳細を述べる。
【0025】ステップ501において、認証装置のデータ共有処理部402とユーザ端末装置のデータ共有処理部204の間で、個々の認証処理ごとに異なる共有データを共有する。上記共有データは、認証処理セッションごとにインクリメントあるいはデクリメントされステイタスを表す数nであっても良い。また、認証装置が乱数rを生成してそれをユーザ端末装置に伝えても良い。上記共有データは、同じデータを認証装置とユーザ端末装置とが同じデータを共有できれば、認証装置とユーザ端末装置とで何らかのデータの送受信を行わなくても構わない。例えば、事前に同期させた時計を認証装置とユーザ端末装置がお互いに備え、認証処理時の現在時刻を上記共有データの一部または全てとして用いても良い。ただしこれらの例はこの発明の請求範囲を限定するものではないことはいうまでもない。
【0026】ステップ502において、ユーザ端末装置の被認証データ演算部205は、入力部201で入力されたユーザ識別子および秘密情報と、上記共有データを基に代行ユーザに開示するための被認証データを生成する。この場合被認証データから秘密情報を求めることが困難なように被認証データを生成する。ステップ503において、ユーザ端末装置の検証データ演算部206は、入力部201で入力されたユーザ識別子および秘密情報と、上記共有データを基に上記被認証データの正当性を認証装置が検証するために必要な検証データを生成する。この場合も検証データから秘密情報を求めることが困難なようにする。
【0027】ステップ504において、ユーザ端末装置から認証装置へ上記検証データを送信する。ステップ505において、認証装置のユーザ情報管理部403は、受信した上記検証データを上記ユーザ識別子と関連づけて保存する。上記ユーザ識別子は、ステップ504において、あるいは認証処理の開始時にユーザ端末装置から認証装置へと送信しておいても良い。このとき、ステップ505に先だって、受信した検証データが、正当なユーザが利用するユーザ端末装置によって生成されたものであることを確認するために、任意の認証方法を用いて認証を行っても良い。この認証処理は、安全に認証を行える方法であればどのような方法を用いても良い。事前に認証装置のユーザ情報管理部403にユーザ認証用検証データを上記ユーザ識別子と関連づけて保存しておき、それを用いた認証方法を用いても良い。
【0028】ステップ506において、ユーザ端末装置の代行ユーザ認証部203と代行ユーザ端末装置の代行ユーザ被認証部303との間で、代行ユーザ端末装置が確にユーザ端末装置を利用するユーザが代行を依頼しようとする代行ユーザの利用する端末装置であることを確認するための認証処理を行う。これは例えば、ユーザ端末装置の入力部201から代行を依頼する代行ユーザの識別子を入力し、代行認証処理を行おうとする代行ユーザ端末装置が、上記代行ユーザ識別子で示されるユーザによるものかどうかを判定する認証処理を行っても良い。この認証処理は、安全に認証を行える方法であればどのような方法を用いても良い。
【0029】ステップ507において、ユーザ端末装置から代行ユーザ端末装置に上記被認証データを送信する。ステップ508において、代行ユーザ端末装置において、被認証データ管理部302が上記被認証データを上記ユーザ識別子および上記代行ユーザ識別子と関連づけて保存する。ユーザ識別子はステップ506又は507で代行ユーザ端末装置に送信する。ここで、上記被認証データを被認証データ管理部302で保存する代りに、代行ユーザ端末装置が上記被認証データを出力してICカードに記憶し、あるいは表示器に表示し、これを代行ユーザがノートに記録しておき、代行ユーザがステップ509以降の代行認証処理を実施する際に、改めて代行ユーザ端末装置に上記被認証データを入力するようにしても良い。
【0030】ここで、ステップ502〜508は、ステップ502,507,508およびステップ503,504,505がそれぞれこの順で実施され、かつステップ506がステップ507に先だって行われさえすれば、どのような順序で実施しても構わない。ステップ509において、認証装置の代行ユーザ認証部406と代行ユーザ端末装置の代行ユーザ被認証部303との間で、代行ユーザ端末装置が確にユーザ端末装置を利用するユーザが代行を依頼しようとする代行ユーザの利用する端末装置であることを確認するための認証処理を行う。この認証処理は、安全に認証を行える方法であればどのような方法を用いても良い。上記認証処理を行うために、ステップ504において、あるいは認証処理の開始時にユーザ端末装置から認証装置へ、代行を依頼する代行ユーザ識別子を送信しておき、ユーザ情報管理部403に上記検証データとともに保存しておいても良い。
【0031】ステップ510において、代行ユーザ端末装置の被認証データ管理部302に保存された上記被認証データをそのユーザ識別子と共に認証装置に送信する。ステップ511において、認証判定部404が、上記被認証データの正当性を、ユーザ情報管理部403に保存された受信したユーザ識別子の上記検証データを用いて検証する。サービス制御部405は、検証の結果に応じて代行ユーザに対する資源へのアクセスなどのサービス提供を制御する。認証装置は、上記被認証データを基にして得られるデータを、ステップ504に先だって行われるユーザ認証、あるいはこれとは別個の次回のユーザ認証の際に利用するユーザ認証検証データとして、ユーザ情報管理部403にユーザ識別子と関連づけて保存しても良い。
【0032】ステップ507において、ユーザ端末装置から代行ユーザ端末装置に対して上記被認証データを送信した後に、ステップ509〜ステップ511の代行認証が行われるよりも前に、ユーザが代行ユーザに許諾した代行処理を取り消したい場合には、ユーザ端末装置から認証装置に対して、上記被認証データを送信し、代行ユーザに代わって認証処理を行うことで、上記代行処理の許諾を取り消すことができる。
(効果)上記の構成によれば、個々の認証処理ごとに異なる共有データを用いて被認証データを生成するため、上記被認証データは個々の認証処理ごとに異なるデータとなり、今回の認証処理以降に認証処理に利用することができない。また、代行ユーザによる代行処理の前に、ユーザが、代行ユーザに対する代行処理の許諾を取り消すことも可能である。そのため、代行ユーザがユーザの意思に反して、不正に資源を利用することは不可能となる。
実施例2(S/KEYによる代行認証)この発明の実施例2を以下に示す。
【0033】この実施例2では、実施例1の具体例として、認証の基本アルゴリズムとしてS/KEYによる認証方法を適用したものを示す。基本的な処理の流れは実施例1に準じるものとする。この実施例2のシステム構成は例えば実施例1のシステム構成(図1)と同一である。各装置の機能構成はそれぞれ実施例1の機能構成(図2,3,4)と同一である。図6にこの実施例2の処理フローを示す。以下に処理フローの各ステップの詳細を述べる。
【0034】以下でhn (x)はxに対する一方向性関数(例えばSHA−1などの一方向性ハッシュ関数)hをn回適用した値を表すものとする。またA=?Bは式の左辺Aと右辺Bの値が等しいかどうかを比較検証することを表わすものとする。以下も同様である。まず、認証装置のユーザ情報管理部403には事前に、ユーザ識別子Aに対応づけてセッションIDn および検証データvn+1 =hn+1(s)が登録されているものとする(ステップ601)。ここで、sはユーザAの知る秘密情報である。
【0035】ステップ602において、認証装置からユーザ端末装置へ、認証依頼を受けたユーザ識別子Aに対応するセッションIDn を送信する。これは実施例1におけるステップ501のデータ共有処理に相当する。ステップ603において、実施例1におけるステップ502の被認証データ生成処理に相当する処理として、被認証データan を、an =hn-1(s)により求める。ここで、sは入力部201において入力された秘密情報、nは共有データとする。この例では被認証データの生成にユーザ識別子を用いていない。
【0036】ステップ604において、実施例1におけるステップ503の検証データ生成処理に相当する処理として、検証データvn を、vn =hn(s)により求める。この例では検証データの生成にユーザ識別子を用いていない。ステップ605において、実施例1におけるステップ504の検証データ送信処理に相当する処理として、上記ステップ604で求めた検証データvn を、認証装置へ送信する。
【0037】ステップ606において、受信した上記検証データが正当なユーザが生成送信したものであることを確認するため、すでに登録されている検証データvn+1 =hn+1(s)と、受信した検証データvn に一回一方向性関数hを適用したものを比較する。
h(vn )=?vn+1比較の結果、値が一致しなければ、受信した検証データが正当なユーザによって生成されたものでないとして、認証処理を中断する。
【0038】ステップ607において、実施例1におけるステップ505の検証データ保存処理に相当する処理として、認証装置は上記検証データvn をユーザ情報管理部403にユーザ識別子Aと関連づけて保存する。ステップ608において、実施例1におけるステップ506の代行ユーザ認証処理に相当する処理として、代行ユーザ端末装置が確かにユーザ端末装置を利用するユーザが代行を依頼しようとする代行ユーザの利用する端末装置であることを確認するための認証処理を行う。この認証処理は、安全に認証を行える方法であればどのような方法を用いても良い。ここで、代行ユーザの識別子をBとする。
【0039】ステップ609において、実施例1におけるステップ507の被認証データ送信処理に相当する処理として、ユーザ端末装置から代行ユーザ端末装置に上記被認証データan を送信する。ステップ610において、実施例1におけるステップ508の被認証データ保存処理に相当する処理として、代行ユーザ端末装置において、被認証データ管理部302が上記被認証データan を上記ユーザ識別子Aおよび上記代行ユーザ識別子Bと関連づけて保存する。ユーザ識別子Aはステップ608又は609で受信してある。
【0040】ここで、上記被認証データを被認証データ管理部302で保存する代りに、代行ユーザ端末装置が上記被認証データを出力し例えばICカードに記憶し、代行ユーザがステップ611以降の代行認証処理を実施する際に、改めて代行ユーザ端末装置に被認証データを入力するようにしても良いことは、実施例1と同様であることはいうまでもない。ここで、ステップ603〜610は、ステップ603,609,610およびステップ604,605,606,607がそれぞれこの順で実施され、かつステップ608がステップ609に先だって行われさえすれば、どのような順序で実施しても構わないことは、実施例1と同様である。
【0041】ステップ611において、実施例1におけるステップ509の代行ユーザ認証処理に相当する処理として、代行ユーザ端末装置が確にユーザ端末装置を利用するユーザが代行を依頼しようとする代行ユーザの利用する端末装置であることを確認するための認証処理を行う。この認証処理は、安全に認証を行える方法であればどのような方法を用いても良い。ここで、代行ユーザの認証方法としてS/KEYの認証方法を用いても良い。ステップ612において、実施例1におけるステップ510の被認証データ送信処理に相当する処理として、代行ユーザ端末装置の被認証データ管理部302に保存された上記被認証データan を認証装置に送信する。ステップ611又は612でユーザ識別子A、代行ユーザ識別子Bが認証装置に送信されてある。
【0042】ステップ613において、実施例1におけるステップ511のデータ検証処理に相当する処理として、認証判定部404が、上記被認証データan の正当性を、ユーザ情報管理部403に保存されたユーザ識別子Aと対応する上記検証データvn と以下のように比較することで検証する。
h(an)=?vn上記の関係が満たされない場合、認証失敗とする。サービス制御部405は、検証の結果に応じて代行ユーザに対する資源へのアクセスなどのサービス提供を制御する。
【0043】ステップ614において、上記被認証データan を、次回の代行認証処理におけるステップ606のユーザ認証あるいは、通常のS/KEY認証方法による次回のユーザ認証に用いる検証データvn-1 として利用するためにユーザ情報管理部403に保存する。ステップ609において、ユーザ端末装置から代行ユーザ端末装置に対して上記被認証データan を送信した後に、ステップ611〜ステップ612の代行認証が行われるよりも前に、ユーザが代行ユーザに許諾した代行処理を取り消したい場合には、ユーザ端末装置から認証装置に対して、上記被認証データan を送信し、代行ユーザに代わって認証処理を行うことで、上記代行処理の許諾を取り消すことができる。
(効果)上記の構成によれば、ステップ606の検証データ検証方法と、ステップ613のデータ検証方法と、通常のS/KEY認証方法によるユーザ認証方法とが同一になるため、ユーザ認証と代行認証とを一括して取り扱うことが可能となる。また、認証装置の機能が流用可能となり、比較的安価に実装が可能である。
【0044】上記の構成によれば、ステップ611の認証方法としてS/KEYを用いれば、認証装置の機能が流用可能なため、比較的安価に実装が可能である。上記の構成によれば、公開鍵暗号方式を利用せず、主に一方向性関数の適用のみで認証処理が可能となり、小規模な端末装置での代行認証処理に利用することが可能である。
実施例3(複数OTP系列への分岐による代行認証)この発明の実施例3を以下に示す。
【0045】この実施例3では、ユーザ端末装置と認証装置との間で行われるOTP認証におけるOTPの系列を代行ユーザの認証のために分割して利用する方法を示す。この実施例3のシステム構成は、例えば実施例1のシステム構成(図1)と同一である。各装置の機能構成を以下に示す。
(ユーザ端末装置)ユーザ端末装置102の内部の機能構成例を図7に示す。ユーザ端末装置は、実施例1と同様の入力部701、データ送受信部702、データ共有処理部704と、被認証データ演算部としての、入力部701からのユーザ識別子および秘密情報と、データ共有処理部704からのセッションごとに異なる情報とを入力し、代行ユーザに開示する代行ユーザ被認証データを求め、入力部701からのユーザ識別子および秘密情報と、データ共有処理部704からのセッションごとに異なる情報とを入力し、ユーザの正当性を示す際に認証装置に送信するユーザ被認証データを求める被認証データ演算部705と、検証データ演算部としての、入力部701からのユーザ識別子、代行ユーザ識別子および秘密情報と、データ共有処理部704からのセッションごとに異なる情報とを入力し、代行ユーザ端末装置が認証装置に送信する上記代行ユーザ被認証データの正当性を確認する検証データを求める代行ユーザ認証検証データ演算部707と、さらに、入力部701からのユーザ識別子および秘密情報と、データ共有処理部704からのセッションごとに異なる情報とを入力し、ユーザ端末装置が次回の認証に使用する被認証データの正当性を確認する検証データを求めるユーザ認証検証データ演算部706とから構成される。
【0046】入力部701から入力されるユーザ識別子、秘密情報等は、ユーザの記憶を基に端末のキーボードから入力する方法や、ICカード等の記憶媒体を用いて自動的に入力する方法などがあることは、実施例1と同様である。ただしこれらはこの発明の請求範囲を限定するものではない。ユーザ被認証データ、代行ユーザ認証検証データ、ユーザ認証検証データは、それぞれそのデータから秘密情報を求めることが困難なものである。
(代行ユーザ端末装置)代行ユーザ端末装置103の内部の機能構成例を図8に示す。代行ユーザ端末装置は、実施例1における代行ユーザ端末装置と同様のデータ送受信部801、被認証データ管理部802、代行ユーザ被認証処理部803に加え、ユーザ識別子と代行ユーザ識別子を関連づけた代行処理識別子と、代行ユーザの秘密情報を入力する入力部804と、入力部804からの代行処理識別子、代行ユーザの秘密情報、データ共有処理部807からの認証処理ごとに異なる情報を入力し、代行ユーザ端末装置による2回目以降の認証処理の際に認証装置に提示する代行ユーザ被認証データを求める被認証データ演算部805と、入力部804からの代行処理識別子、代行ユーザの秘密情報、データ共有処理部807からの認証処理ごとに異なる情報を入力し、代行ユーザ端末装置による2回目以降の認証処理の際に認証装置に提示する上記代行ユーザ被認証データの正当性を確認する代行ユーザ認証検証データを求める検証データ演算部806と、データ送受信部801を通じた認証装置とのデータ送受信によって認証処理ごとに異なる情報を共有する処理を行うデータ共有処理部807から構成される。
【0047】入力部804からの代行処理識別子、代行ユーザの秘密情報などの入力は、代行ユーザの記憶を基に端末のキーボードから入力する方法や、ICカード等の記憶媒体を用いて自動的に入力する方法などがある。ただしこれらはこの発明の請求範囲を限定するものではない。代行ユーザ被認証データ、代行ユーザ認証検証データはそれぞれ、そのデータから代行ユーザの秘密情報を求めることが困難なものである。
(認証装置)認証装置101の内部の機能構成例を図9に示す。認証装置は、実施例1における認証装置と同様のデータ送受信部901、データ共有処理部902、ユーザ情報管理部903、サービス制御部906、代行ユーザ認証処理部907と、ユーザ識別子と代行ユーザ識別子を関連づけた代行処理識別子に対応して代行ユーザ認証検証データを記憶する代行ユーザ情報管理部904と、ユーザ情報管理部903に記憶されたユーザ認証検証データと、代行ユーザ情報管理部904に記憶された代行ユーザ認証検証データと、データ送受信部901からのユーザ被認証データおよび代行ユーザ被検証データに基づいて認証可否を判定する認証判定部905とから構成される。
【0048】ここで、上記代行処理識別子はユーザ識別子と代行ユーザ識別子に加え、代行処理の内容を関連づけておいても良い。
(複数OTP系列への分岐による代行認証処理の流れ)この実施例3における代行認証の処理の流れを図10に示す。以下に、図の各ステップでの処理内容の詳細を述べる。まず、処理に先だって認証装置のユーザ情報管理部903には、ユーザ認証の際にユーザ端末装置の送信したユーザ被認証データ、次回ユーザ認証検証データおよび代行ユーザ認証検証データの正当性を確認するために用いるユーザ認証検証データが、ユーザ識別子に対応づけられて登録されているものとする。
【0049】ステップ1001において、認証装置のデータ共有処理部902とユーザ端末装置のデータ共有処理部704の間で、個々の認証処理ごとに異なる共有データを共有する。上記共有データは、認証処理セッションごとにイクリメントあるいはデクリメントされステイタスを示す数nであっても良い。また、認証装置が乱数rを生成してそれをユーザ端末装置に伝えても良い。上記共有データは、同じデータを認証装置とユーザ端末装置とが同じデータを共有できれば、認証装置とユーザ端末装置とで何らかのデータの送受信を行わなくても構わない。例えば、事前に同期させた時計を認証装置とユーザ端末装置がお互いに備え、認証処理時の現在時刻を上記共有データの一部または全てとして用いても良い。ただしこれらの例はこの発明の請求範囲を限定するものではないことはいうまでもない。
【0050】ステップ1002において、ユーザ端末装置の被認証データ演算部705は、入力部701で入力されたユーザ識別子、秘密情報および上記共有データを基に認証装置がステップ1007においてユーザの正当性を確認するために用いるユーザ被認証データを生成する。ステップ1003において、ユーザ端末装置の被認証データ演算部705は、入力部701で入力されたユーザ識別子、秘密情報および上記共有データを基に代行ユーザに開示するための代行ユーザ被認証データを生成する。
【0051】ステップ1004において、ユーザ端末装置のユーザ認証検証データ演算部706は、入力部701で入力されたユーザ識別子、秘密情報および上記共有データを基に次回の代行認証処理におけるステップ1007もしくは次回のユーザ自身の認証処理の際に、ユーザの提示するユーザ認証被認証データ、次回ユーザ認証検証データ、代行ユーザ認証検証データの正当性を検証するために用いる次回ユーザ認証検証データを生成する。ステップ1005において、ユーザ端末装置の代行ユーザ認証検証データ演算部707は、入力部701で入力されたユーザ識別子、代行ユーザ識別子、秘密情報および上記共有データを基に上記代行ユーザ被認証データの正当性を認証装置が検証するために必要な代行ユーザ認証検証データを生成する。
【0052】ステップ1006において、ユーザ端末装置から認証装置へ上記ユーザ被認証データ、上記次回ユーザ認証検証データおよび上記代行ユーザ認証検証データを送信する。ステップ1007において、認証装置の認証判定部905は上記ユーザ被認証データ、上記次回ユーザ認証検証データおよび上記代行ユーザ認証検証データの正当性を確認する。正当でないと判断した場合には認証処理を中断する。ステップ1008において、認証装置のユーザ情報管理部903は、受信した上記次回ユーザ認証検証データを上記ユーザ識別子と関連づけて保存する。また、同時に代行ユーザ情報管理部904は、受信した上記代行ユーザ認証検証データを、上記ユーザ識別子と上記代行ユーザ識別子を関連づけた代行処理識別子と関連づけて保存する。
【0053】ここで、上記代行処理識別子はユーザ識別子と代行ユーザ識別子に加え、代行処理の内容を関連づけておいても良い。上記ユーザ識別子、上記代行ユーザ識別子および上記代行処理内容は、ステップ1006において、あるいは認証処理の開始時にユーザ端末装置から認証装置へと送信しておいても良い。ステップ1009において、ユーザ端末装置の代行ユーザ認証部703と代行ユーザ端末装置の代行ユーザ被認証部803との間で、代行ユーザ端末装置が確にユーザ端末装置を利用するユーザが代行を依頼しようとする代行ユーザの利用する端末装置であることを確認するための認証処理を行う。これは例えば、ユーザ端末装置の入力部701から代行を依頼する代行ユーザの識別子を入力し、代行認証処理を行おうとする代行ユーザ端末装置が、上記代行ユーザ識別子で示さされるユーザによるものかどうかを判定する認証処理を行っても良い。この認証処理は、安全に認証を行える方法であればどのような方法を用いても良い。
【0054】ステップ1010において、ユーザ端末装置から代行ユーザ端末装置に上記代行ユーザ被認証データを送信する。ステップ1011において、代行ユーザ端末装置の被認証データ管理部802が上記代行ユーザ被認証データを上記ユーザ識別子および上記代行ユーザ識別子と関連づけて保存する。ここで、ステップ1002〜1005は、順序を入れ替えて実施しても良い。ステップ1012において、認証装置の代行ユーザ認証部907と代行ユーザ端末装置の代行ユーザ被認証部803との間で、代行ユーザ端末装置が確かにユーザ端末装置を利用するユーザが代行を依頼しようとする代行ユーザの利用する端末装置であることを確認するための認証処理を行う。この認証処理は、安全に認証を行える方法であればどのような方法を用いても良い。この際に代行ユーザ識別子が認証装置へ送信される。
【0055】ステップ1013において認証装置から、ユーザとの共有データの次のものを受信する。ステップ1014において、代行ユーザ認証検証データ演算部806は、上記代行処理識別子および入力部804で入力された代行ユーザの知る秘密情報、データ共有処理部807からの共有データを基に、代行ユーザ端末装置の代行ユーザが次回の代行処理に関する認証時に、代行ユーザが送信する代行ユーザ被認証データの正当性を認証装置が確認するために用いる次回代行ユーザ認証検証データを生成する。
【0056】ここで、ステップ1012および1013の順序を逆に実施しても構わない。ステップ1015において、代行ユーザ端末装置の被認証データ管理部802に保存された上記代行ユーザ被認証データおよび上記ステップ1012で生成した次回代行ユーザ認証検証データを認証装置に送信する。この際にユーザ識別子も送信する。ステップ1016において、認証判定部905が、上記代行ユーザ被認証データおよび上記次回代行ユーザ認証検証データの正当性を、代行ユーザ情報管理部904に保存されたそのユーザ識別子及び代行ユーザ識別子と対応する上記代行ユーザ認証検証データを用いて検証する。サービス制御部906は、検証の結果に応じて代行ユーザに対する資源へのアクセスなどのサービス提供を制御する。
【0057】ステップ1017において、上記次回代行ユーザ認証検証データを代行ユーザ情報管理部904に保存する。代行ユーザ端末装置の以降の代行処理においては、代行ユーザ端末装置に対する認証装置の認証処理の後に、代行ユーザ端末装置が、上記代行処理識別子および代行ユーザの知る秘密情報、共有データを基に生成した代行ユーザ被認証データを、認証装置が、認証装置の代行ユーザ情報管理部904を用いて検証することで代行ユーザの正当性を確認する。
【0058】正当なユーザは、代行ユーザ端末装置が最初の代行認証後、認証を許可される回数を、予めユーザ端末装置から認証装置に送信し、認証装置の代行ユーザ情報管理部904に記憶することで、これに基づいて認証装置が認証の可否判断を行っても良い。あるいは、代行認証を終了させる条件、例えばその資源の利用に必要とする手順が終了した時、あるいは予め決めた期限などを予めユーザ端末装置から認証装置に送信し、認証装置の代行ユーザ情報管理部904に記憶することで、これに基づいて認証装置が認証の可否判断を行っても良い。これらの代行認証可否の制御方法は、この発明の請求範囲を限定するものではなく、この発明の代行認証方法によって認証が許可されたのちに、さらに代行ユーザによる代行処理に対する代行処理を許可/拒否するかを決定する方法であればどのような方法を用いても構わない。なおユーザ被認証データ、ユーザ認証検証データ中の生成にユーザ識別子を用いなくても良い。代行ユーザ被認証データ、代行ユーザ認証検証データの生成に代行処理識別子を用いなくても良い。同様に次回代行ユーザ認証検証データの生成に代行ユーザ識別子を用いなくても良い。
【0059】ステップ1010において、ユーザ端末装置から代行ユーザ端末装置に対して上記被認証データを送信した後に、ステップ1012〜ステップ1016の代行認証が行われるよりも前に、ユーザが代行ユーザに許諾した代行処理を取り消したい場合には、ユーザ端末装置から認証装置に対して、上記被認証データを送信し、代行ユーザに代わって認証処理を行うことで、上記代行処理の許諾を取り消すことができる。上記の構成における、ワンタイムパスワードの認証データ系列における分岐の概要を、図14に示す。ユーザは認証要求ごとに今回の被認証データ1401と、次回の検証データ1402を生成するワンタイムパスワード(OTP)系列1403を生成する。このOTP系列1403の途中、例えばn=3でユーザが代行を依頼する際には、ステップ1005において生成した代行ユーザの代行認証に用いるための検証データ1404を、ユーザ認証に用いる被認証データ1401および検証データ1402に加えて生成送信し、認証装置に登録し、代行ユーザ被認証データ1405を生成して、代行ユーザ端末装置へ送る。代行ユーザによる最初の代行認証時に、次回の代行ユーザの認証に用いる検証データ1406を、ステップ1014において代行ユーザが生成し、ステップ1015において認証装置に送信登録する。これにより、代行認証用のワンタイムパスワード系列1407が、ユーザ認証のためのワンタイムパスワード系列1403から分岐される。
(効果)上記の構成によれば、ユーザ端末装置自身の認証処理のためのOTPの系列から、代行ユーザの認証に用いるOTP系列を派生させることによって、いったん代行処理を依頼すれば、ユーザ端末装置自身の認証処理に影響を与えずに、代行ユーザの代行認証を可能にする。
【0060】上記の構成によれば、同時に複数の代行ユーザに異なる代行処理を依頼し、それぞれが任意に代行認証を行うことを可能にする。つまりある代行ユーザに代行処理を依頼した後に、図10中のステップ1001〜1011を他の代行ユーザに行って異なる代行処理を依頼することを次々と行えば良い。上記の構成によれば、代行ユーザによる代行処理が複数回の資源の利用を伴う場合に、代行ユーザの代行認証処理の度にユーザ端末装置が代行ユーザ端末装置および認証装置とデータ送受信を行うことなしに、代行ユーザ端末装置と認証装置の間で複数の代行認証を行うことを可能にする。
実施例4(PERMを改良した複数OTP系列への分岐による代行認証)この発明の実施例4を以下に示す。
【0061】この実施例4では、実施例3の具体例として、認証の基本アルゴリズムとしてPERMによる認証方法を適用したものを示す。基本的な処理の流れは実施例3に準じるものとする。以下でhは一方向性関数を表すものとする。また、(+)は排他的論理和演算を表すものとする。この実施例4のシステム構成は実施例1,3のシステム構成(図1)と同一である。この各装置の機能構成はそれぞれ実施例3の機能構成(図7,8,9)と同一である。
(初期登録)ユーザは予め認証装置において初期登録を行う。
【0062】初期登録として、ユーザはユーザ識別子AとセッションID初期値N1 を認証装置にアカウントとして登録する。セッションID初期値N1 はユーザ自身あるいはユーザ端末装置が生成しても良いし、認証装置が生成しても良い。次にユーザはユーザ端末装置において、ユーザ識別子A、セッションID初期値N1 およびユーザの秘密情報Sを用いてユーザ認証検証データW1 を求める。
1 =h(A,S(+)N1
1 =h(A,V1
求めたユーザ認証検証データW1 をユーザ識別子Aに対応させて認証装置のユーザ情報管理部903に登録する。この登録は安全な通信路を通じて、あるいはICカードから、又は認証装置の入力部により行う。
(代行依頼処理)図11は、この実施例4のn回目の認証における代行依頼時の処理の流れを表す。以下にこの処理の流れの各ステップの詳細を述べる。
【0063】n回目の認証の開始時には、ユーザ識別子Aに対応づけて認証回数n、セッションIDNn および検証データWn が登録されている(ステップ1101)。ここで、セッションIDNn は、認証回数nの増加に伴って変化する値であり、セッションID初期値N0 および認証回数nから求められる値であるとする。このような値であればNn をどのように定義しても構わない。Nn を前回のセッションIDNn-1 および認証回数n−1からNn =f(Nn-1 ,n−1)
のように漸次的に求めるよう定義しても良い。関数fは、Nn-1 とn−1の加算、乗算など任意に定めて良い。最も単純な定義として、N0 =0,Nn =Nn-1 +1と定義しても良い。
【0064】ステップ1102において、認証装置からユーザ端末装置へ、認証依頼を受けたユーザ識別子Aに対応する認証番号nおよびセッションIDNn を送信する。これは実施例3におけるステップ1001のデータ共有処理に相当する。ここで、セッションIDNn の定義によって、例えばセッションID初期値N0 と認証回数nを加算した値をNn とする場合のように、セッションIDNn の値が認証回数nのみで算出することができる場合は、認証回数nのみを認証装置からユーザ端末装置へ送信しても良い。同様にセッションIDNn のみで次のセッションIDNn+1 を算出できる場合には、セッションIDNn のみを送信しても良いことはいうまでもない。
【0065】ステップ1103において、実施例3におけるステップ1002のユーザ被認証データ生成処理に相当する処理として、ユーザ被認証データVn を、Vn =h(A,S(+)Nn
により求める。ここで、Sは入力部701において入力された秘密情報とする。ステップ1104において、実施例3におけるステップ1003の代行ユーザ被認証データ生成処理に相当する処理として、データ共有処理部704で次のセッションIDNn+1 を算出して代行ユーザ被認証データV′n を、V′n=h(A′,S(+)Nn+1
により求める。ここで、Sは入力部701において入力された秘密情報とする。また、A′はユーザ識別子Aおよび代行ユーザ識別子Bから求められる代行処理識別子とする。これは例えば次のように定義しても良い。
【0066】A′=A|Bただし、ここでA|BはAとBの連接を表す。また、上記代行処理識別子はユーザ識別子Aと代行ユーザ識別子Bに加え、例えば代行処理の内容を関連づけて定義しても良い。これらの例はこの発明の請求範囲に限定するものではないことはいうまでもない。ステップ1105において、実施例3におけるステップ1004のユーザ認証検証データ生成処理に相当する処理として、ユーザ認証検証データWn+1 およびMn を、次式により求める。
【0067】Wn+1 =h(A,Vn+1
n =h(Wn+1 ,Vn
ここで、Vn+1 =h(A,S(+)Nn+1
ステップ1106において、実施例3におけるステップ1005の代行ユーザ認証検証データ生成処理に相当する処理として、代行ユーザ認証検証データW′n+1 およびM′n を、次式により求める。
W′n+1 =h(A′,V′n+1
M′n =h(W′n+1 , Vn
ここで、ステップ1103,1104,1105,1106は、正しい値を算出できさえすればどのような順序で実施しても構わない。
【0068】ステップ1107において、実施例3におけるステップ1006の認証データ送信処理に相当する処理として、上記ステップ1103,1105,1106で求めた各データVn ,Wn+1 ,Mn ,W′n+1 ,M′n を、認証装置へ送信する。ステップ1108において、受信した上記認証データが正当なユーザが生成送信したものであることを確認するため、すでに登録されている検証データWn と受信した上記認証データVn ,Wn+1 ,Mn ,W′n+1 ,M′nを基に以下の比較を行う。
【0069】Wn =?h(A,Vn
n =?h(Wn+1 ,Vn
M′n =?h(W′n+1 ,Vn
比較の結果、値が一致しなければ、受信した検証データが正当なユーザによって生成されたものでないとして、認証処理を中断する。ステップ1109において、実施例3におけるステップ1008の検証データ保存処理に相当する処理として、認証装置は上記ユーザ認証検証データWn+1 および次回の認証回数n+1、セッションIDNn+1 をユーザ情報管理部903にユーザ識別子Aと関連づけて保存する。
【0070】(A,n+1,Nn+1 , Wn+1
また、同時に上記代行ユーザ認証検証データW′n+1 および次回の認証回数n+1、セッションIDNn+1 を代行ユーザ情報管理部903に代行処理識別子A′と関連づけて保存する。
(A′,n+1,Nn+1 , W′n+1
ステップ1110において、実施例3におけるステップ1009の代行ユーザ認証処理に相当する処理として、代行ユーザ端末装置が確かにユーザ端末装置を利用するユーザが代行を依頼しようとする代行ユーザの利用する端末装置であることを確認するための認証処理を行う。この認証処理は、安全に認証を行える方法であればどのような方法を用いても良い。
【0071】ステップ1111において、実施例3におけるステップ1010の被認証データ送信処理に相当する処理として、ユーザ端末装置から代行ユーザ端末装置に上記代行ユーザ被認証データV′n+1 を送信する。ステップ1112において、実施例3におけるステップ1011の被認証データ保存処理に相当する処理として、代行ユーザ端末装置において、被認証データ管理部802が上記代行ユーザ被認証データV′n+1 を上記ユーザ識別子A、上記代行ユーザ識別子Bおよび上記代行処理識別子A′と関連づけて保存する。上記代行処理識別子A′から上記ユーザ識別子Aおよび上記代行ユーザ識別子Bが容易に求められる場合には、上記ユーザ識別子Aおよび上記代行ユーザ識別子Bを明示的に保存しなくてもよいことはいうまでもない。
【0072】ステップ1111において、ユーザ端末装置から代行ユーザ端末装置に対して上記被認証データV′n+1 を送信した後に、代行認証が行われるよりも前に、ユーザが代行ユーザに許諾した代行処理を取り消したい場合には、ユーザ端末装置から認証装置に対して、上記被認証データV′n+1 を送信し、代行ユーザに代わって認証処理を行うことで、上記代行処理の許諾を取り消すことができる。
(1回目の代行認証)図12に、この実施例4のn回目の認証における代行依頼に基づく1回目の代行ユーザ認証の処理の流れを表す。以下にこの処理の流れの各ステップの詳細を述べる。
【0073】ステップ1201において、実施例3におけるステップ1013の代行ユーザ認証処理に相当する処理として、代行ユーザ端末装置が確にユーザ端末装置を利用するユーザが代行を依頼しようとする代行ユーザの利用する端末装置であることを確認するための認証処理を行う。この認証処理は、安全に認証を行える方法であればどのような方法を用いても良い。例えば、代行ユーザの認証方法としてPERMの認証方法を用いても良い。ステップ1202において、認証装置から代行ユーザ端末装置へ、認証依頼を受けた代行処理識別子A′に対応する認証番号n+1およびセッションIDNn+1 を送信する。ここで、ステップ1102と同様に、セッションIDNn の定義により、認証回数nのみ、あるいはセッションIDNn のみを認証装置から代行ユーザ端末装置へ送信しても良いことはいうまでもない。
【0074】ステップ1203において、実施例3におけるステップ1012の次回代行ユーザ認証検証データ生成処理に相当する処理としてデータ共有処理部807は次のセッションIDNn+2 を生成し代行ユーザ認証検証データ演算部806は、上記セッションNn+2、上記代行処理識別子A′および入力部804で入力された代行ユーザの知る秘密情報Sを基に、代行ユーザ端末装置の代行ユーザが次回の代行処理に関する認証時に、代行ユーザが送信する代行ユーザ被認証データの正当性を認証装置が確認するために用いる次回代行ユーザ認証検証データW′n+2,M′n+1 を以下のように生成する。
【0075】W′n+2 =h(A′,V′n+2
M′n+1 =h(W′n+2 ,V′n+1
ここで、V′n+2 =h(A′,S′(+)Nn+2
ステップ1204において、実施例3におけるステップ1014の被認証データ送信処理に相当する処理として、代行ユーザ端末装置の被認証データ管理部802に保存された上記代行ユーザ被認証データV′n+1 および上記ステップ1203で生成した上記次回代行ユーザ認証検証データW′n+2 ,M′n+1 を認証装置に送信する。
【0076】ステップ1205において、認証判定部905が、上記代行ユーザ被認証データV′n+1 および上記次回代行ユーザ認証検証データW′n+2 ,M′n+1の正当性を、代行ユーザ情報管理部904に保存された上記代行ユーザ認証検証データを用い以下のように比較することで検証する。
W′n+1 =?h(A′,V′n+1
M′n+1 =?h(W′n+2 ,V′n+1
上記の関係が満たされない場合、認証失敗とする。
【0077】認証成功の場合、ステップ1206において、上記次回代行ユーザ認証検証データのうちW′n+2、次回代行認証時の認証回数n+2およびセッションIDNn+2 を、代行処理識別子A′と関連づけて代行ユーザ情報管理部904に保存する。
(A′,n+2,Nn+2 , W′n+2
サービス制御部906は、検証の結果に応じて代行ユーザに対する資源へのアクセスなどのサービス提供を制御する。
(k回目の代行認証)図13に、この実施例4のn回目の認証における代行依頼に基づく一連の代行認証の、k回目の代行認証の処理の流れを示す。ただし、ここでk2である。
【0078】この処理の流れは、図12の1回目の代行認証の処理フローに対して、以下の点で異なっている以外は同一の処理フローである。・認証回数n+1をn+k=mと置き換えている。・認証処理開始時には、以下の情報が認証装置の代行ユーザ情報管理部904に保存されている。
(A′,m,Nm , W′m
ここで、A′は代行処理識別子、mは認証回数、Nm はセッションID,W′m は代行ユーザ認証検証データである(ステップ1301)。
【0079】・ステップ1304において、代行処理の正当性を認証装置が確認するために用いる代行ユーザ被認証データを以下のように求める。
V′m=h(A′,S′(+)Nm
・ステップ1306において、代行ユーザ端末装置の被認証データ管理部802に保存された代行ユーザ被認証データの代りに、上記ステップ1304で生成した代行ユーザ被認証データV′mを認証装置に送信する。
(効果)上記の構成によれば、ステップ1108のユーザ認証方法と、ステップ1205の認証方法と、通常のPERM認証方法によるユーザ認証方法とが同一になるため、ユーザ端末装置自身の認証処理と、代行ユーザの認証処理とを一括して取り扱うことが可能となる。また認証装置の機能が流用可能となり、比較的安価に実装が可能である。
【0080】上記の構成によれば、ステップ1201の認証方法としてPERM認証方法を用いれば、認証装置の機能が流用可能なため、比較的安価に実装が可能である。上記の構成によれば、公開鍵暗号方式を利用せず、主に一方向性関数の適用のみで認証処理が可能となり、小規模な端末装置での代行認証処理に利用することが可能である。ユーザ端末装置、代行ユーザ端末装置、認証装置はそれぞれコンピュータによりプログラムを実行させることにより動作させることもできる。例えばユーザ端末装置は図15に示すように、代行ユーザ端末装置、認証装置とデータの送受信を行うことができるデータ送受信部11、ユーザ識別子、ユーザ秘密情報を入力する入力部12、記憶部13、データ演算部14、代行ユーザ認証処理部15、プログラムを格納したメモリ16、CPU17がバス18に接続され、図5、図6、図10又は図11中の各ユーザ端末装置における処理をコンピュータに実行させるためのプログラムがメモリ16に格納されており、このプログラムのメモリ16への格納はハードディスク19からの転送、図に示していないが、CD−ROMからインストール、外部の装置からのネットワークを通じてのインストールなど各種の手法をとることができる。
【0081】CPU17がメモリ16内のプログラムを実行することにより、データ送受信部11を介しての認証処理ごとに異なる共有データの共有、データ演算部14による被認証データ、検証データの生成、あるいは更に代行ユーザ被認証データ、代行ユーザ認証検証データの生成などを行わせ、また代行ユーザ認証処理部15により、代行ユーザ端末装置の正当性認証を行わせ、更に生成したデータを対応した認証装置又は代行ユーザ端末装置へ送信させ、これらの処理に応じて各種データを記憶部13に一時格納するなどの処理を行って、前記ユーザ端末装置として動作をする。
【0082】代行ユーザ端末装置は図16に示すように、ユーザ端末装置又は認証装置とデータの送受をするデータ送受信部21、代行ユーザ識別子、代行ユーザの秘密情報などを入力する入力部22、記憶部23、データ演算部24、代行ユーザ被認証処理部25、プログラムが格納されたメモリ26、CPU27がバス28に接続されている。メモリ26には図15の場合と同様にしてプログラムがインストールされ、CPU27がこのプログラムを実行して代行ユーザ被認証処理部25により、代行ユーザの正当性をユーザ端末装置又は認証装置に認証させ、データ演算部24は、図10、図13に示した例では代行ユーザ被認証データや次回代行ユーザ認証検証データを生成させ、ユーザ端末装置から受信した被認証データを、記憶部23に一時格納させ、また受信した共有データや生成したデータを記憶部23に一時格納させるなどを行って前記代行ユーザ端末装置として動作させる。
【0083】上述において、認証装置と、ユーザ端末装置又は代行ユーザ端末装置を一体的に設けても良い。ただし機能としてはそれぞれ独立して動作させる。このような場合でも例えばユーザ端末装置と認証装置が一体化されていれば、安全性が保たれユーザの正当性の認証を簡単に行うことができるが、前述したようにこの発明によりワンタイムパスワードを使用することによりワンタイムパスワード系列を代行ユーザへ分岐させ、しかも複数の代行ユーザにそれぞれ異なる代行を依頼することもできる。
【0084】
【発明の効果】この発明により、ユーザの秘密情報を代行ユーザに開示することがなく、開示する被認証データは個々の認証処理ごとに異なるデータとなるため、代行ユーザは上記被認証データをユーザの意思に反して、許された認証処理以降に認証処理に利用し、不正に資源を利用することは不可能となり、代行ユーザの資源利用の制御が可能となる。また、公開鍵暗号方式を利用せず、主に一方向性関数の適用のみで代行認証処理が可能となり、そのようにすれば小規模な端末装置での代行認証処理に利用することが可能となる。
【0085】また、ユーザ自身の認証処理に影響を与えずに、代行ユーザの代行認証が可能となる。また、第3、第4実施例によれば、同時に複数の代行ユーザに異なる代行処理を依頼し、各代行ユーザが任意に代行認証を行うことができる。更に、代行ユーザによる代行処理が複数回の資源の利用を伴う場合に、ユーザからの複数の代行処理依頼なしに、代行ユーザが複数の代行認証を行うことを可能にする。
【出願人】 【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
【出願日】 平成12年10月30日(2000.10.30)
【代理人】 【識別番号】100066153
【弁理士】
【氏名又は名称】草野 卓 (外1名)
【公開番号】 特開2002−132722(P2002−132722A)
【公開日】 平成14年5月10日(2002.5.10)
【出願番号】 特願2000−330163(P2000−330163)