(57)【要約】  端末装置１から特定サービスに対するサービスログイン要求を受信すると、認証サーバ３は、その特定サービスに対応するサービスコードを生成し、その端末装置１へ送信する。端末装置１は、サービスコードを受信すると、そのサービスコードを所定の形態で出力する。ユーザ認証デバイス４は、そのサービスコードの入力を受け付け、そのサービスコードを認証サーバ３へ送信し、認証サーバ３は、サービスコードを送信したユーザ認証デバイス４の機器認証に成功すると、ユーザ認証デバイス４に関連付けられているユーザについて特定サービスのログインを許可する。
2017029708.tif 000002
【特許請求の範囲】
【請求項１】
ユーザについて特定サービスのログイン可否を判定する認証サーバと、
前記ユーザにより操作され前記特定サービスのデータを受信する端末装置と、
前記認証サーバによって前記ユーザに関連付けられているユーザ認証デバイスとを備え、
（ａ）前記端末装置は、固定的なユーザ認証データを送信せずに前記特定サービスに対するサービスログイン要求を前記認証サーバへ送信し、
（ｂ）前記認証サーバは、前記サービスログイン要求を受信すると、前記特定サービスに対応するサービスコードを生成し、前記サービスログイン要求の送信元である前記端末装置へ送信し、
（ｃ）前記端末装置は、前記サービスコードを受信すると、受信した前記サービスコードを所定の形態で出力し、
（ｄ）前記ユーザ認証デバイスは、前記端末装置により出力された前記サービスコードの入力を所定の形態で受け付けると、固定的なユーザ認証データを送信せずに、入力された前記サービスコードを前記認証サーバへ送信し、
（ｅ）前記認証サーバは、前記サービスコードを受信すると、前記サービスコードの送信元である前記ユーザ認証デバイスの機器認証を実行し、前記ユーザ認証デバイスの機器認証に成功した場合、前記ユーザ認証デバイスに関連付けられている前記ユーザについて、受信した前記サービスコードにより指定される前記特定サービスのログインを許可すること、
を特徴とする個人認証システム。
【請求項２】
前記認証サーバは、前記サービスログイン要求を受信すると、前記サービスログイン要求の送信元である前記端末装置の機器認証を実行し、前記端末装置の機器認証に成功した場合、前記特定サービスに対応するサービスコードを生成し、前記サービスログイン要求の送信元である前記端末装置へ送信することを特徴とする請求項１記載の個人認証システム。
【請求項３】
前記端末装置および前記認証サーバは、それぞれ、シードを生成し、生成した前記シードを暗号化して相互に送受信し、生成した前記シードおよび受信し復号した前記シードからワンタイム認証子を生成し、生成した前記ワンタイム認証子を相互に送受信し、生成した前記シードおよび受信し復号した前記シードに基づいて、受信した前記ワンタイム認証子についての認証を行い、前記認証に成功するたびに次回認証用シードを生成して前記シードを更新していき、
前記端末装置は、自己の生成した前記シードおよび自己の生成した前記ワンタイム認証子を前記サービスログイン要求とともに前記認証サーバへ送信し、
前記認証サーバは、前記サービスコードを暗号化し、自己の生成した前記シードおよび自己の生成した前記ワンタイム認証子を、暗号化された前記サービスコードとともに前記端末装置へ送信し、
前記端末装置は、暗号化された前記サービスコードを受信すると、受信した暗号化された前記サービスコードを復号し、
前記認証サーバは、受信した前記端末装置の前記ワンタイム識別子についての認証に成功した場合、前記端末装置の機器認証に成功したとみなすこと、
を特徴とする請求項２記載の個人認証システム。
【請求項４】
前記ユーザ認証デバイスおよび前記認証サーバは、それぞれ、シードを生成し、生成した前記シードを暗号化して相互に送受信し、生成した前記シードおよび受信し復号した前記シードからワンタイム認証子を生成し、生成した前記ワンタイム認証子を相互に送受信し、生成した前記シードおよび受信し復号した前記シードに基づいて、受信した前記ワンタイム認証子についての認証を行い、前記認証に成功するたびに次回認証用シードを生成して前記シードを更新していき、
前記ユーザ認証デバイスは、前記サービスコードを暗号化し、自己の生成した前記シードおよび自己の生成した前記ワンタイム認証子を、暗号化された前記サービスコードとともに前記認証サーバへ送信し、
前記認証サーバは、（ａ）暗号化された前記サービスコードを受信すると、受信した暗号化された前記サービスコードを復号し、（ｂ）受信した前記ユーザ認証デバイスの前記ワンタイム識別子についての認証に成功した場合、前記ユーザ認証デバイスの機器認証に成功したとみなすこと、
を特徴とする請求項１から請求項３のうちのいずれか１項記載の個人認証システム。
【請求項５】
前記端末装置は、生成した前記シードを共通暗号鍵で暗号化し、暗号化された前記シードを送信し、
前記認証サーバは、（ａ）受信した暗号化された前記シードを前記共通暗号鍵で復号し、（ｂ）前記サービスコードを前記共通暗号鍵で暗号化し、
前記端末装置および前記認証サーバは、それぞれ、前記ワンタイム認証子についての認証が成功するたびに、少なくとも生成した前記シードおよび受信し復号した前記シードに基づいて前記共通暗号鍵を更新すること、
を特徴とする請求項３記載の個人認証システム。
【請求項６】
前記ユーザ認証デバイスは、生成した前記シードを共通暗号鍵で暗号化し、暗号化されたシードを送信し、
前記認証サーバは、（ａ）受信した暗号化された前記シードを前記共通暗号鍵で復号し、（ｂ）受信した暗号化された前記サービスコードを前記共通暗号鍵で復号し、
前記ユーザ認証デバイスおよび前記認証サーバは、それぞれ、前記ワンタイム認証子についての認証が成功するたびに、少なくとも生成した前記シードおよび受信し復号した前記シードに基づいて前記共通暗号鍵を更新すること、
を特徴とする請求項４記載の個人認証システム。
【請求項７】
ユーザについて特定サービスのログイン可否を判定する認証サーバにおいて、
通信装置と、
認証処理部と、
サービスコード生成部とを備え、
前記サービスコード生成部は、前記通信装置を使用して、前記ユーザにより操作され前記特定サービスのデータを受信する端末装置から、固定的なユーザ認証データを受信せずに前記特定サービスに対するサービスログイン要求が前記認証サーバによって受信されると、前記特定サービスに対応するサービスコードを生成し、
前記認証処理部は、前記通信装置を使用して、生成した前記サービスコードを、前記サービスログイン要求の送信元である前記端末装置へ送信し、
前記認証処理部は、（ａ）前記通信装置を使用して、当該認証サーバによって前記ユーザに関連付けられているユーザ認証デバイスから、固定的なユーザ認証データを受信せずに、前記端末装置により出力された前記サービスコードを受信し、（ｂ）受信した前記サービスコードの送信元である前記ユーザ認証デバイスの機器認証を実行し、前記ユーザ認証デバイスの機器認証に成功した場合、前記ユーザ認証デバイスに関連付けられている前記ユーザについて、受信した前記サービスコードにより指定される前記特定サービスのログインを許可すること、
を特徴とする認証サーバ。
【請求項８】
ユーザについて特定サービスのログイン可否を判定する認証サーバにおいて実行される認証プログラムにおいて、
前記認証サーバ内のコンピュータを
サーバ側認証処理部と、
サービスコード生成部として機能させ、
前記サービスコード生成部は、前記認証サーバの通信装置を使用して、前記ユーザにより操作され前記特定サービスのデータを受信する端末装置から、固定的なユーザ認証データを受信せずに前記特定サービスに対するサービスログイン要求が前記認証サーバによって受信されると、前記端末装置の機器認証に成功した場合、前記特定サービスに対応するサービスコードを生成し、
前記サーバ側認証処理部は、前記認証サーバの通信装置を使用して、生成した前記サービスコードを、前記サービスログイン要求の送信元である前記端末装置へ送信し、
前記サーバ側認証処理部は、（ａ）前記認証サーバの通信装置を使用して、当該認証サーバによって前記ユーザに関連付けられているユーザ認証デバイスから、固定的なユーザ認証データを受信せずに、前記端末装置により出力された前記サービスコードを受信し、（ｂ）受信した前記サービスコードの送信元である前記ユーザ認証デバイスの機器認証を実行し、前記ユーザ認証デバイスの機器認証に成功した場合、前記ユーザ認証デバイスに関連付けられている前記ユーザについて、受信した前記サービスコードにより指定される前記特定サービスのログインを許可すること、
を特徴とするコンピュータ読取可能な認証プログラム。
【請求項９】
ユーザにより操作され、認証サーバによりユーザについてのログイン可否が判定される特定サービスのデータを受信する端末装置において実行される認証プログラムにおいて、
前記端末装置内のコンピュータを、
認証処理部と、
サービスコード出力部として機能させ、
前記認証処理部は、
（ａ）固定的なユーザ認証データを送信せずに前記特定サービスに対するサービスログイン要求を前記認証サーバへ送信し、
（ｂ）前記認証サーバから、前記サービスログイン要求に対応して送信されてくる前記特定サービスに対応するサービスコードを受信し、
前記サービスコード出力部は、前記サービスコードが受信されると、受信された前記サービスコードを、ユーザ認証デバイスに対して入力可能な所定の形態で出力し、前記ユーザ認証デバイスは、前記認証サーバによって前記ユーザに関連付けられており、前記端末装置により出力された前記サービスコードの入力を受け付けると、固定的なユーザ認証データを送信せずに、入力された前記サービスコードを前記認証サーバへ送信すること、
を特徴とする認証プログラム。
【請求項１０】
ユーザについて特定サービスのログイン可否を判定する認証サーバによって前記ユーザに関連付けられているユーザ認証デバイスにおいて実行される認証プログラムにおいて、
前記ユーザ認証デバイス内のコンピュータを、
認証処理部として機能させ、
前記認証処理部は、
（ａ）前記ユーザにより操作され前記特定サービスのデータを受信する端末装置により前記認証サーバから受信され所定の形態で出力されたサービスコードの入力を所定の形態で受け付け、
（ｂ）前記端末装置により出力された前記サービスコードの入力を受け付けると、固定的なユーザ認証データを送信せずに、入力された前記サービスコードを前記認証サーバへ送信し、前記サービスコードの送信元である前記ユーザ認証デバイスの機器認証を実行させ、前記ユーザ認証デバイスの機器認証に成功した場合、前記ユーザ認証デバイスに関連付けられている前記ユーザについて、受信した前記サービスコードにより指定される前記特定サービスのログインを許可させること、
を特徴とする認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、個人認証システムに関するものである。
【背景技術】
【０００２】
クライアントおよびサーバのそれぞれにおいて乱数などのシードを認証に成功するたびに更新し、次回認証時に、それらのシードからワンタイムＩＤを生成し、クライアントとサーバとの間で相互に認証を行うシステムがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２８２２９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述のシステムでは、クライアントおよびサーバの機器特定および機器認証（つまり、通信相手の機器が正規の機器であることの認証）は可能である。【０００５】
しかしながら、クライアント側からサーバ側により提供される特定のサービスに対してログインする際に、その特定のサービスにおいてユーザ特定のためにサービス固有の固定的なユーザ認証データ（例えばユーザＩＤとパスワードの対）をクライアント側からサーバ側へ送信する場合、マンインザミドル攻撃、マンインザブラウザ攻撃、マルウェアによる画面キャプチャ攻撃、キーロガー攻撃などによって、ユーザ認証データが悪意の第三者に不正に取得される可能性がある。【０００６】
本発明は、上記の問題に鑑みてなされたものであり、サービスログインのためのユーザ認証に要求される固定的なユーザ認証データをインターネットなどの通信経路を介して送受信することなく、ユーザを特定し正規ユーザに対してサービスログインを許可する個人認証システムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る個人認証システムは、ユーザについて特定サービスのログイン可否を判定する認証サーバと、ユーザにより操作され特定サービスのデータを受信する端末装置と、認証サーバによってユーザに関連付けられているユーザ認証デバイスとを備える。（ａ）端末装置は、固定的なユーザ認証データを送信せずに特定サービスに対するサービスログイン要求を認証サーバへ送信し、（ｂ）認証サーバは、サービスログイン要求を受信すると、特定サービスに対応するサービスコードを生成し、サービスログイン要求の送信元である端末装置へ送信し、（ｃ）端末装置は、サービスコードを受信すると、受信したサービスコードを所定の形態で出力し、（ｄ）ユーザ認証デバイスは、端末装置により出力されたサービスコードの入力を所定の形態で受け付けると、固定的なユーザ認証データを送信せずに、入力されたサービスコードを認証サーバへ送信し、（ｅ）認証サーバは、サービスコードを受信すると、サービスコードの送信元であるユーザ認証デバイスの機器認証を実行し、ユーザ認証デバイスの機器認証に成功した場合、ユーザ認証デバイスに関連付けられているユーザについて、受信したサービスコードにより指定される特定サービスのログインを許可する。【０００８】
本発明に係る認証サーバは、通信装置と、認証処理部と、サービスコード生成部とを備える。サービスコード生成部は、認証サーバの通信装置を使用して、ユーザにより操作され特定サービスのデータを受信する端末装置から、固定的なユーザ認証データを受信せずに特定サービスに対するサービスログイン要求が認証サーバによって受信されると、特定サービスに対応するサービスコードを生成し、認証処理部は、通信装置を使用して、生成したサービスコードを、サービスログイン要求の送信元である端末装置へ送信し、認証処理部は、（ａ）通信装置を使用して、当該認証サーバによってユーザに関連付けられているユーザ認証デバイスから、固定的なユーザ認証データを受信せずに、端末装置により出力されたサービスコードを受信し、（ｂ）受信したサービスコードの送信元であるユーザ認証デバイスの機器認証を実行し、ユーザ認証デバイスの機器認証に成功した場合、ユーザ認証デバイスに関連付けられているユーザについて、受信したサービスコードにより指定される特定サービスのログインを許可する。【０００９】
本発明に係る認証プログラムは、認証サーバ内のコンピュータをサーバ側認証処理部と、サービスコード生成部として機能させる。サービスコード生成部は、認証サーバの通信装置を使用して、ユーザにより操作され特定サービスのデータを受信する端末装置から、固定的なユーザ認証データを受信せずに特定サービスに対するサービスログイン要求が認証サーバによって受信されると、特定サービスに対応するサービスコードを生成し、サーバ側認証処理部は、認証サーバの通信装置を使用して、生成したサービスコードを、サービスログイン要求の送信元である端末装置へ送信し、サーバ側認証処理部は、（ａ）認証サーバの通信装置を使用して、当該認証サーバによってユーザに関連付けられているユーザ認証デバイスから、固定的なユーザ認証データを受信せずに、端末装置により出力されたサービスコードを受信し、（ｂ）受信したサービスコードの送信元であるユーザ認証デバイスの機器認証を実行し、ユーザ認証デバイスの機器認証に成功した場合、ユーザ認証デバイスに関連付けられているユーザについて、受信したサービスコードにより指定される特定サービスのログインを許可する。【００１０】
本発明に係る認証プログラムは、端末装置内のコンピュータをサービスコード出力部と、認証処理部として機能させる。認証処理部は、（ａ）固定的なユーザ認証データを送信せずに特定サービスに対するサービスログイン要求を認証サーバへ送信し、（ｂ）認証サーバから、そのサービスログイン要求に対応して送信されてくる特定サービスに対応するサービスコードを受信し、サービスコード出力部は、サービスコードが受信されると、受信されたサービスコードを、ユーザ認証デバイスに対して入力可能な所定の形態で出力し、ユーザ認証デバイスは、認証サーバによってユーザに関連付けられており、端末装置により出力されたサービスコードの入力を受け付けると、ユーザ認証データを送信せずに、入力されたサービスコードを認証サーバへ送信する。【００１１】
本発明に係る認証プログラムは、ユーザ認証デバイス内のコンピュータを、認証処理部として機能させる。認証処理部は、（ａ）ユーザにより操作され特定サービスのデータを受信する端末装置により認証サーバから受信され所定の形態で出力されたサービスコードの入力を所定の形態で受け付け、（ｂ）端末装置により出力されたサービスコードの入力を受け付けると、固定的なユーザ認証データを送信せずに、入力されたサービスコードを認証サーバへ送信し、サービスコードの送信元であるユーザ認証デバイスの機器認証を実行させ、ユーザ認証デバイスの機器認証に成功した場合、ユーザ認証デバイスに関連付けられているユーザについて、受信したサービスコードにより指定される特定サービスのログインを許可させる。
【発明の効果】
【００１２】
本発明によれば、サービスログインのためのユーザ認証に要求されるユーザ認証データをインターネットなどの通信経路を介して送受信することなく、ユーザを特定し正規ユーザに対してサービスログインを許可する個人認証システムが得られる。【００１３】
本発明の上記又は他の目的、特徴および優位性は、添付の図面とともに以下の詳細な説明から更に明らかになる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施の形態に係るワンタイム認証システムの構成を示すブロック図である。
【図２】図２は、図１における端末装置１の構成を示すブロック図である。
【図３】図３は、図２に示す端末装置１において実現される処理部を示すブロック図である。
【図４】図４は、図１における認証サーバ３の構成を示すブロック図である。
【図５】図５は、図４に示す認証サーバ３において実現される処理部を示すブロック図である。
【図６】図６は、図１におけるユーザ認証デバイス４の構成を示すブロック図である。
【図７】図７は、図６に示すユーザ認証デバイス４において実現される処理部を示すブロック図である。
【図８】図８は、図１に示すシステムにおけるサービスログイン時の処理を説明するシーケンス図である。
【図９】図９は、本発明の実施の形態における端末装置１と認証サーバ３との間のワンタイム認証の詳細について説明するシーケンス図である。
【図１０】図１０は、本発明の実施の形態におけるユーザ認証デバイス４と認証サーバ３との間のワンタイム認証の詳細について説明するシーケンス図である。
【発明を実施するための形態】
【００１５】
以下、図に基づいて本発明の実施の形態を説明する。
【００１６】
図１は、本発明の実施の形態に係るワンタイム認証システムの構成を示すブロック図である。
【００１７】
図１に示すシステムでは、クライアントとしての端末装置１は、インターネットなどのネットワーク２に接続されており、そのネットワーク２には認証サーバ３が接続されている。ユーザは、ネットワーク２に接続可能なユーザ認証デバイス４を所持しており、端末装置１およびユーザ認証デバイス４を操作できる。
【００１８】
端末装置１は、ユーザにより操作されその特定サービスのデータを認証サーバ３などから受信する。認証サーバ３は、ユーザについて特定サービスのログイン可否を判定するサーバ装置である。ユーザ認証デバイス４は、認証サーバ３によってユーザに関連付けられているデバイスである。
【００１９】
端末装置１は、パーソナルコンピュータ、キオスク端末などのコンピュータを内蔵した装置である。この実施の形態では、端末装置１は、１または複数の特定または不特定のユーザにより使用可能である。ネットワーク２は、有線および／または無線のＬＡＮ（Local Area Network）、および／またはインターネットなどのＷＡＮ（Wide Area Network）を含んでいる。
【００２０】
ユーザ認証デバイス４は、ネットワーク２に接続可能な、コンピュータを内蔵した携帯型デバイスである。例えば、スマートフォン、タブレット端末などをユーザ認証デバイス４として使用可能である。
【００２１】
ユーザ認証デバイス４は、各ユーザに携帯され、認証サーバにおいて、１つのユーザ認証デバイス４に対して１ユーザが関連付けられている。
【００２２】
なお、互いに同様の機能を有する複数の端末装置１がネットワーク２に接続されていてもよい。また、認証サーバ３は、複数の特定サービスのうちの、ユーザにより指定された特定サービスのログイン可否を判定するようにしてもよい。
【００２３】
そして、図１に示すシステムにおいて、端末装置１は、所定のユーザ操作を受け付けると、ネットワーク２を介して、特定サービスに固有で固定的なユーザ認証データ（特定サービスのユーザＩＤなど）を送信せずに特定サービスに対するサービスログイン要求を認証サーバ３へ送信する。
【００２４】
認証サーバ３は、そのサービスログイン要求を受信すると、そのサービスログイン要求の送信元である端末装置１の機器認証を実行し、その端末装置１の機器認証に成功した場合、その特定サービスに対応するサービスコードを生成し、ネットワーク２を介して、そのサービスログイン要求の送信元である端末装置１へ送信する。つまり、認証サーバ３は、この時点では、ユーザを特定していない。なお、生成したサービスコードは、サービスログイン要求および端末装置１に関連付けて保持される。
【００２５】
端末装置１は、そのサービスコードを受信すると、受信したサービスコードを所定の形態（ユーザ認証デバイス４におけるサービスコードの入力形態に応じた形態）で出力する。例えば、ユーザ認証デバイス４においてサービスコードがユーザによりテキスト入力される場合には、端末装置１は、受信したサービスコードをテキストとして表示したり、印刷したりする。また、例えば、ユーザ認証デバイス４においてサービスコードが２Ｄコードなどの可視コードの読み取りで入力される場合には、端末装置１は、受信したサービスコードを可視コードに符号化し、その可視コードを表示したり、印刷したりする。また、例えば、ユーザ認証デバイス４においてサービスコードが有線通信または近距離無線通信で入力される場合には、端末装置１は、その有線通信または近距離無線通信で、受信したサービスコードをデータとして出力する。
【００２６】
ユーザ認証デバイス４は、端末装置１により出力されたサービスコードの入力を所定の形態で受け付けると、ネットワーク２を介して、固定的なユーザ認証データを送信せずに、入力されたサービスコードを認証サーバ３へ送信する。
【００２７】
認証サーバ３は、そのサービスコードを受信すると、そのサービスコードの送信元であるユーザ認証デバイス４の機器認証を実行し、ユーザ認証デバイス４の機器認証に成功した場合、そのユーザ認証デバイス４に関連付けられているユーザについて、受信したサービスコードにより指定される特定サービス（つまり、サービスコードに対応するサービスログイン要求により指定された特定サービス）のログインを許可する。つまり、認証サーバ３は、この時点では、ユーザを特定している。
【００２８】
この実施の形態では、認証サーバ３と端末装置１との間で、相互的な機器認証としてワンタイム認証が繰り返し実行され、また、認証サーバ３とユーザ認証デバイス４との間で、相互的な機器認証としてワンタイム認証が繰り返し実行される。なお、相互的な機器認証は、別の認証処理によって実現してもよい。
【００２９】
具体的には、端末装置１および認証サーバ３は、それぞれ、自己のシードを生成し、生成したシードを暗号化して相互に送受信し、生成した自己のシードおよび受信し復号した通信相手のシードから自己のワンタイム認証子（ワンタイムＩＤなど）を生成し、生成したワンタイム認証子を相互に送受信し、生成した自己のシードおよび受信し復号した通信相手のシードに基づいて、受信した通信相手のワンタイム認証子についての認証を行い、その認証に成功するたびに次回認証用シードを生成して自己のシードを更新していく。このワンタイム認証子についての認証のことを、ワンタイム認証という。
【００３０】
端末装置１は、自己の生成したシードおよび自己の生成したワンタイム認証子をサービスログイン要求とともにネットワーク２を介して認証サーバ３へ送信する。認証サーバ３は、上述のサービスコードを暗号化し、自己の生成したシードおよび自己の生成したワンタイム認証子を、暗号化されたサービスコードとともに、ネットワーク２を介して、サービスログイン要求の送信元である端末装置１へ送信する。なお、端末装置１は、暗号化されたサービスコードを受信すると、受信した暗号化されたサービスコードを復号する。そして、認証サーバ３は、受信した端末装置１のワンタイム識別子についての認証に成功した場合、端末装置１の機器認証に成功したとみなす。
【００３１】
また、認証サーバ３およびユーザ認証デバイス４は、認証サーバ３および端末装置１のワンタイム認証とは独立して、同様のワンタイム認証を行い、互いの機器認証を行う。
【００３２】
具体的には、ユーザ認証デバイス４および認証サーバ３は、それぞれ、自己のシードを生成し、生成した自己のシードを暗号化して相互に送受信し、生成した自己シードおよび受信し復号した通信相手のシードからワンタイム認証子を生成し、生成したワンタイム認証子を相互に送受信し、生成した自己のシードおよび受信し復号した通信相手のシードに基づいて、受信したワンタイム認証子についての認証を行い、その認証に成功するたびに次回認証用シードを生成して自己のシードを更新していく。
【００３３】
ユーザ認証デバイス４は、上述のサービスコードを暗号化し、自己の生成したシードおよび自己の生成したワンタイム認証子を、暗号化されたサービスコードとともに認証サーバ３へ送信する。なお、認証サーバ３は、暗号化されたサービスコードを受信すると、受信した暗号化されたサービスコードを復号する。そして、認証サーバ３は、受信したユーザ認証デバイス４のワンタイム識別子についての認証に成功した場合、ユーザ認証デバイス４の機器認証に成功したとみなす。
【００３４】
この実施の形態では、端末装置１と認証サーバ３との間でのワンタイム認証において、端末装置１は、生成したシードを共通暗号鍵で暗号化し、暗号化されたシードを送信し、認証サーバ３は、受信した暗号化されたシードを共通暗号鍵で復号する。また、認証サーバ３は、その共通暗号鍵でサービスコードを暗号化している。
【００３５】
さらに、この実施の形態では、端末装置１および認証サーバ３は、それぞれ、ワンタイム認証子についての認証が成功するたびに、少なくとも生成した自己のシードおよび受信し復号した通信相手のシード（ここでは、現時点の共通暗号鍵、生成した自己のシード、および受信し復号した通信相手のシード）に基づいてその共通暗号鍵を更新する。つまり、端末装置１および認証サーバ３は、自己の保持している共通暗号鍵をそれぞれ更新し、更新後の共通暗号鍵の鍵配送は行われない。
【００３６】
また、この実施の形態では、ユーザ認証デバイス４と認証サーバ３との間でのワンタイム認証において、ユーザ認証デバイス４は、生成した自己のシードを共通暗号鍵で暗号化し、暗号化されたシードを送信し、認証サーバ３は、受信した暗号化されたシードを共通暗号鍵で復号する。なお、ユーザ認証デバイス４と認証サーバ３との間でのワンタイム認証における共通暗号鍵は、端末装置１と認証サーバ３との間でのワンタイム認証における共通暗号鍵とは別に生成され更新されていく。また、認証サーバ３は、受信した暗号化されたサービスコードをその共通暗号鍵で復号する。
【００３７】
さらに、この実施の形態では、ユーザ認証デバイス４および認証サーバ３は、それぞれ、ワンタイム認証子についての認証が成功するたびに、少なくとも生成した自己のシードおよび受信し復号した通信相手のシード（現時点の共通暗号鍵、生成した自己のシード、および受信し復号した通信相手のシード）に基づいて共通暗号鍵を更新する。つまり、端末装置１および認証サーバ３は、自己の保持している共通暗号鍵をそれぞれ更新し、更新後の共通暗号鍵の鍵配送は行われない。
【００３８】
以下、上記システムにおける各装置の構成および動作について説明する。
【００３９】
（１）端末装置１
【００４０】
図２は、図１における端末装置１の構成を示すブロック図である。図２に示すように、端末装置１は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３などを有するコンピュータを内蔵する。
【００４１】
ＣＰＵ１１は、プログラムを実行し、プログラムに記述された処理を実行するプロセッサである。また、ＲＯＭ１２は、プログラムおよびデータを予め記憶した不揮発性のメモリである。また、ＲＡＭ１３は、プログラムを実行する際にそのプログラムおよびデータを一時的に記憶する揮発性のメモリである。
【００４２】
また、インターフェイス１４は、記憶装置１５を接続可能なインターフェイス回路であり、記憶装置１５は、インターフェイス１４に接続され、図示せぬオペレーティングシステム、認証プログラム３１、アプリケーションプログラム３２などを格納する記録媒体を有する装置である。記憶装置１５としては、ハードディスクドライブ、ＳＳＤ（Solid State Disk）などの不揮発性記憶装置が使用される。
【００４３】
また、インターフェイス１６は、通信装置１７を接続可能なインターフェイス回路である。通信装置１７は、ネットワークインターフェイス、モデムなどといったネットワーク２に接続可能な装置である。
【００４４】
また、インターフェイス１８は、ＩＥＥＥ１３９４、ＵＳＢ（Universal Serial Bus）などといった周辺機器インターフェイスである。
【００４５】
また、インターフェイス２０は、入力装置２１を接続可能なインターフェイス回路である。入力装置２１は、キーボード、マウスなどといったユーザ操作を受け付けてそのユーザ操作に応じた信号を出力する装置である。
【００４６】
また、画像処理回路２２は、画像データを書き込まれると、そのデータに対応する画像信号を出力する回路である。この画像処理回路２２には、その画像信号に基づいて画像を表示する表示装置２３が接続可能である。
【００４７】
ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、インターフェイス１４，１６，１８，２０および画像処理回路２２は、バスやコントローラチップによって相互にデータ通信可能に接続されている。
【００４８】
図３は、図２に示す端末装置１において実現される処理部を示すブロック図である。図３に示すように、この端末装置１において、通信処理部４１、認証処理部４２、サービスコード出力部４３が実現される。
【００４９】
通信処理部４１は、通信装置１７を使用して、所定の通信プロトコルで認証サーバ３などとネットワーク２を介してデータ通信を行う。
【００５０】
認証処理部４２は、ＣＰＵ１１で認証プログラム３１が実行されることにより実現され、通信装置１７および通信処理部４１を使用して、（ａ）上述のサービスログイン要求の送信、（ｂ）認証サーバ３との間のワンタイム認証による相互機器認証におけるクライアント側の処理などを実行する処理部である。
【００５１】
サービスコード出力部４３は、ＣＰＵ１１で認証プログラム３１が実行されることにより実現され、上述のサービスコードの出力を実行する処理部である。
【００５２】
アプリケーション４４は、ＣＰＵ１１でアプリケーションプログラム３２が実行されることにより実現され、認証サーバ３によってサービスログインが許可された後に、特定のサービスのデータの送信要求の送信、そのデータの受信、受信したデータに対するデータ処理などを行う処理部である。
【００５３】
（２）認証サーバ３
【００５４】
図４は、図１における認証サーバ３の構成を示すブロック図である。
【００５５】
図４において、ＣＰＵ５１は、プログラムを実行し、プログラムに記述された処理を実行するプロセッサである。また、ＲＯＭ５２は、プログラムおよびデータを予め記憶した不揮発性のメモリである。また、ＲＡＭ５３は、プログラムを実行する際にそのプログラムおよびデータを一時的に記憶するメモリである。
【００５６】
また、インターフェイス５４は、記憶装置５５を接続可能なインターフェイス回路であり、記憶装置５５は、インターフェイス５４に接続され、図示せぬオペレーティングシステム、認証プログラム６１、認証に使用されるデータなどを格納する記録媒体を有する装置である。記憶装置５５としては、ハードディスクドライブ、ＳＳＤなどの不揮発性記憶装置が使用される。
【００５７】
記憶装置５５には、端末装置１と認証サーバ３との間でのワンタイム認証に使用されるデータとして、シードテーブル７１ａ、認証子テーブル７２ａ、および端末属性テーブル７３ａが格納されており、ユーザ認証デバイス４と認証サーバ３との間でのワンタイム認証に使用されるデータとして、シードテーブル７１ｂ、認証子テーブル７２ｂ、およびデバイス属性テーブル７３ｂが格納されている。
【００５８】
シードテーブル７１ａは、端末装置１と認証サーバ３との間でのワンタイム認証において最後の認証時に更新された次回認証用シードおよび次回認証用共通暗号鍵を有する。シードテーブル７１ｂは、ユーザ認証デバイス４と認証サーバ３との間でのワンタイム認証において最後の認証時に更新された次回認証用シードおよび次回認証用共通暗号鍵を有する。
【００５９】
認証子テーブル７２ａは、端末装置１と認証サーバ３との間でのワンタイム認証において最後の認証時に更新された次回認証用のクライアント側ワンタイム認証子を有する。認証子テーブル７２ｂは、ユーザ認証デバイス４と認証サーバ３との間でのワンタイム認証において最後の認証時に更新された次回認証用のクライアント側ワンタイム認証子を有する。
【００６０】
端末属性テーブル７３ａは、各端末装置１のデバイスＩＤ、およびそのデバイスＩＤに関連付けられている属性情報（所有者情報など）を有するテーブルである。なお、端末属性テーブル７３ａにおける各端末装置１のデバイスＩＤは、識別子テーブル７２ａにおけるその端末装置１のワンタイム識別子に関連付けられている。また、端末属性テーブル７３ａにおいて、各端末装置１のデバイスＩＤの代わりに、各端末装置１のワンタイム識別子を使用してもよい。
【００６１】
デバイス属性テーブル７３ｂは、各ユーザ認証デバイス４のデバイスＩＤ、およびそのデバイスＩＤに関連付けられている属性情報（ユーザＩＤ、所有者情報など）を有するテーブルである。なお、デバイス属性テーブル７３ｂにおける各ユーザ認証デバイス４のデバイスＩＤは、識別子テーブル７２ｂにおけるそのユーザ認証デバイス４のワンタイム識別子に関連付けられている。また、デバイス属性テーブル７３ｂにおいて、各ユーザ認証デバイス４のデバイスＩＤの代わりに、各ユーザ認証デバイス４のワンタイム識別子を使用してもよい。
【００６２】
ユーザ属性テーブル７４は、各ユーザのユーザＩＤ、およびそのデバイスＩＤに関連付けられている属性情報（氏名、特定サービスで使用されるユーザＩＤ、特定サービスが有料サービスである場合の課金情報など）を有するテーブルである。なお、ユーザ属性テーブル７４における各ユーザＩＤは、デバイス属性テーブル７３ｂにおける同一のユーザＩＤに関連付けられている。
【００６３】
また、インターフェイス５６は、通信装置５７を接続可能なインターフェイス回路である。通信装置５７は、ネットワークインターフェイスカード、モデムなどといったネットワーク３に接続可能な装置である。
【００６４】
ＣＰＵ５１、ＲＯＭ５２、ＲＡＭ５３、およびインターフェイス５４，５６は、バスやコントローラチップによって相互にデータ通信可能に接続されている。
【００６５】
図５は、図４に示す認証サーバ３において実現される処理部を示すブロック図である。図５に示す認証サーバ３では、通信処理部８１、サーバ側認証処理部８２、サービスコード管理部８３、およびサービス提供部８４が実現される。
【００６６】
通信処理部８１は、通信装置５７を使用して、所定の通信プロトコルで端末装置１およびユーザ認証デバイス４とネットワーク２を介してデータ通信を行う。
【００６７】
サーバ側認証処理部８２は、ＣＰＵ５１で認証プログラム６１が実行されることにより実現され、通信処理部８１を使用して、各端末装置１とのワンタイム認証による相互機器認証におけるサーバ側の処理、および各ユーザ認証デバイス４とのワンタイム認証による相互機器認証におけるサーバ側の処理を実行する。
【００６８】
また、サーバ側認証処理部８２は、サービスログイン要求に対して、サービスコードが適切にユーザ認証デバイス４から送信されて来た場合には、サービスログインを許可し、そうでない場合には、サービスログインを拒否する。
【００６９】
サービスコード管理部８３は、サービスコードの生成、サービスコードの有効期限の設定、サービスログイン要求（つまり、サービスログイン要求を送信した端末装置１）と生成したサービスコードとの対応付けなどを行う処理部である。
【００７０】
例えば、サービスコード管理部８３は、サービスコードの有効期限前においては、サービスコードを有効とし、サービスコードの有効期限後においては、サービスコードを無効とし、サーバ側認証処理部８２は、受信したサービスコードが無効である場合には、受信したサービスコードが適切なものであっても、サービスログインを拒否する。
【００７１】
サービス提供部８４は、サーバ側認証処理部８２によりサービスログインを許可された後に、通信装置５７および通信処理部８１を使用して、サーバ側認証処理部８２によりサービスログインを許可された端末装置１から受信されたサービスデータ要求に対する応答として、サービスデータをその端末装置１へ送信する。
【００７２】
（３）ユーザ認証デバイス４
【００７３】
図６は、図１におけるユーザ認証デバイス４の構成を示すブロック図である。図６に示すように、ユーザ認証デバイス４は、ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３などを有するコンピュータを内蔵する。
【００７４】
ＣＰＵ１１１は、プログラムを実行し、プログラムに記述された処理を実行するプロセッサである。また、ＲＯＭ１１２は、プログラムおよびデータを予め記憶した不揮発性のメモリである。また、ＲＡＭ１１３は、プログラムを実行する際にそのプログラムおよびデータを一時的に記憶する揮発性のメモリである。
【００７５】
また、インターフェイス１１４は、記憶装置１１５を接続可能なインターフェイス回路であり、記憶装置１１５は、インターフェイス１１４に接続され、図示せぬオペレーティングシステム、認証プログラム１３１などを格納する記録媒体を有する装置である。記憶装置１１５としては、フラッシュメモリなどの不揮発性記憶装置が使用される。
【００７６】
また、インターフェイス１１６は、通信装置１１７を接続可能なインターフェイス回路である。通信装置１１７は、ネットワークインターフェイスなどといったネットワーク２に接続可能な装置、携帯電話網を介してネットワーク２に接続可能な携帯電話機のベースバンド部などである。また、インターフェイス１１８は、ＵＳＢなどといった周辺機器インターフェイスである。
【００７７】
また、インターフェイス１２０は、入力装置１２１を接続可能なインターフェイス回路である。入力装置１２１は、ハードキー、タッチパネルなどといったユーザ操作を受け付けてそのユーザ操作に応じた信号を出力する装置である。
【００７８】
また、画像処理回路１２２は、画像データを書き込まれると、そのデータに対応する画像信号を表示装置１２３に出力する回路である。表示装置１２３は、液晶ディスプレイなどであって、その画像信号に基づいて画像を表示する。
【００７９】
ＣＰＵ１１１、ＲＯＭ１１２、ＲＡＭ１１３、インターフェイス１１４，１１６，１１８，１２０および画像処理回路１２２は、バスやコントローラチップによって相互にデータ通信可能に接続されている。
【００８０】
図７は、図６に示すユーザ認証デバイス４において実現される処理部を示すブロック図である。図７に示すように、このユーザ認証デバイス４において、通信処理部１４１、および認証処理部１４２が実現される。
【００８１】
通信処理部１４１は、通信装置１１７を使用して、所定の通信プロトコルで認証サーバ３などとネットワーク２を介してデータ通信を行う。
【００８２】
認証処理部１４２は、ＣＰＵ１１１で認証プログラム１３１が実行されることにより実現され、通信装置１１７および通信処理部１４１を使用して、（ａ）上述のサービスコードの入力の受け付けおよびサービスコードの送信、（ｂ）認証サーバ３との間のワンタイム認証による相互機器認証におけるクライアント側の処理などを実行する処理部である。
【００８３】
（４）サービスログイン時の処理
【００８４】
図８は、図１に示すシステムにおけるサービスログイン時の処理を説明するシーケンス図である。
【００８５】
ユーザは、端末装置１を操作して、特定サービスを選択し、選択した特定サービスについてのサービスログイン要求を認証サーバ３に送信させる。
【００８６】
このとき、端末装置１では、認証処理部４２は、そのユーザ操作を入力装置２１で検出すると、端末装置１の次のシードＲ１（ｎ）を暗号鍵Ｋ１（ｎ−１）で暗号化し、通信装置１７および通信処理部４１を使用して、サービスログイン要求、機器認証のための端末装置１のワンタイム認証子Ｃ１（ｎ−１）および暗号化された端末装置１のシードＫ１（ｎ−１）＊Ｒ１（ｎ）をまとめて１つのメッセージとして送信する（ステップＳ１）。
【００８７】
認証サーバ３では、サーバ側認証処理部８２が、通信装置５７および通信処理部８１を使用して、サービスログイン要求、ワンタイム認証子Ｃ１（ｎ−１）および暗号化されたシードＫ１（ｎ−１）＊Ｒ１（ｎ）を受信すると、暗号化されたシードＫ１（ｎ−１）＊Ｒ１（ｎ）を復号し、受信し復号した端末装置１のシードＲ１（ｎ）および保持している認証サーバ３のシードＱ１（ｎ−１）に基づいて、ワンタイム認証子Ｃ１（ｎ−１）が正当なものであるか否かを判定する。つまり、シードＲ１（ｎ）およびシードＱ１（ｎ−１）からワンタイム認証子Ｃ１（ｎ−１）が計算され、計算されたワンタイム認証子Ｃ１（ｎ−１）と受信されたワンタイム認証子Ｃ１（ｎ−１）とが一致するか否かが判定される。
【００８８】
サーバ側認証処理部８２が、ワンタイム認証子Ｃ１（ｎ−１）が正当なものであると判定した場合、送信元の端末装置１の機器認証に成功したと判定する（ステップＳ２）。
【００８９】
送信元の端末装置１の機器認証に成功したと判定した場合、サービスコード管理部８３は、サービスコードを生成する（ステップＳ３）。サービスコードには、例えば乱数が使用される。
【００９０】
なお、送信元の端末装置１の機器認証に失敗した場合、サービスコードは生成されず、サービスログイン要求は拒否される。
【００９１】
端末装置１の機器認証に成功した場合、サーバ側認証処理部８２は、認証サーバ３の次のシードＱ１（ｎ）およびサービスコードを暗号鍵Ｋ１（ｎ−１）で暗号化し、通信装置５７および通信処理部８１を使用して、その暗号化されたサービスコード、機器認証のための認証サーバ３のワンタイム認証子Ｓ１（ｎ−１）および暗号化された認証サーバ３のシードＫ１（ｎ−１）＊Ｑ１（ｎ）をまとめて１つのメッセージとしてその端末装置１へ送信する（ステップＳ４）。
【００９２】
端末装置１では、認証処理部４２は、通信装置１７および通信処理部４１を使用して、その暗号化されたサービスコード、ワンタイム認証子Ｓ１（ｎ−１）、および暗号化されたシードＫ１（ｎ−１）＊Ｑ１（ｎ）を受信すると、暗号化されたサービスコードおよび暗号化されたシードＫ１（ｎ−１）＊Ｑ１（ｎ）を復号し、保持している端末装置１のシードＲ１（ｎ−１）および受信し復号した認証サーバ３のシードＱ１（ｎ）に基づいて、ワンタイム認証子Ｓ１（ｎ−１）が正当なものであるか否かを判定する。つまり、シードＲ１（ｎ−１）およびシードＱ１（ｎ）からワンタイム認証子Ｓ１（ｎ−１）が計算され、計算されたワンタイム認証子Ｓ１（ｎ−１）と受信されたワンタイム認証子Ｓ１（ｎ−１）とが一致するか否かが判定される。
【００９３】
認証処理部４２が、ワンタイム認証子Ｓ１（ｎ−１）が正当なものであると判定した場合、送信元の認証サーバ３の機器認証に成功したと判定する（ステップＳ５）。
【００９４】
認証サーバ３の機器認証に成功した場合、サービスコード出力部４３は、サービスコードを所定の形態で出力する（ステップＳ６）。その出力されたサービスコードは、ユーザ認証デバイス４に入力される。
【００９５】
ここでは、サービスコード出力部４３は、画像処理回路２２を使用して、そのサービスコードをテキストとして表示装置２３に表示する。そして、ユーザは、表示されているテキストとしてのサービスコードを、入力装置１２１を操作して、ユーザ認証デバイス４に入力する。
【００９６】
ユーザ認証デバイス４では、ユーザ操作に従って認証処理部１４２が起動される（ステップＳ７）。認証処理部１４２の起動に、ユーザＩＤおよびパスワードが要求されるようにしてもよい。その場合、予め登録した正規のユーザＩＤおよびパスワードがユーザ認証デバイス４に入力されれば、認証処理部１４２が起動するが、正規のユーザＩＤおよびパスワード以外のユーザＩＤおよびパスワードが入力された場合には、認証処理部１４２は起動しない。なお、ユーザ認証デバイス４に入力されたユーザＩＤおよびパスワードは外部へは送信されない。また、ユーザＩＤおよびパスワードによる認証の代わりに、指紋などの生体情報を利用した生体認証を行うようにしてもよい。
【００９７】
その後、認証処理部１４２は、入力されたサービスコードを取得すると（ステップＳ８）、そのサービスコードおよびユーザ認証デバイス４の次のシードＲ２（ｎ）を暗号鍵Ｋ２（ｎ−１）で暗号化し、通信装置１１７および通信処理部１４１を使用して、ユーザ認証要求、暗号化されたサービスコード、機器認証のためのユーザ認証デバイス４のワンタイム認証子Ｃ２（ｎ−１）、および暗号化されたユーザ認証デバイス４のシードＫ２（ｎ−１）＊Ｒ２（ｎ）をまとめて１つのメッセージとして認証サーバ３へ送信する（ステップＳ９）。
【００９８】
認証サーバ３では、サーバ側認証処理部８２が、通信装置５７および通信処理部８１を使用して、ユーザ認証要求、暗号化されたサービスコード、ワンタイム認証子Ｃ２（ｎ−１）、および暗号化されたシードＫ２（ｎ−１）＊Ｒ２（ｎ）を受信すると、暗号化されたサービスコードおよび暗号化されたシードＫ２（ｎ−１）＊Ｒ２（ｎ）を復号し、受信し復号したユーザ認証デバイス４のシードＲ２（ｎ）および保持している認証サーバ３のシードＱ２（ｎ−１）に基づいて、ワンタイム認証子Ｃ２（ｎ−１）が正当なものであるか否かを判定する。つまり、シードＲ２（ｎ）およびシードＱ２（ｎ−１）からワンタイム認証子Ｃ２（ｎ−１）が計算され、計算されたワンタイム認証子Ｃ２（ｎ−１）と受信されたワンタイム認証子Ｃ２（ｎ−１）とが一致するか否かが判定される。
【００９９】
サーバ側認証処理部８２が、ワンタイム認証子Ｃ２（ｎ−１）が正当なものであると判定した場合、送信元のユーザ認証デバイス４の機器認証に成功したと判定し（ステップＳ１０）、ユーザ認証応答をユーザ認証デバイス４へ送信する（ステップＳ１１）。このとき、サーバ側認証処理部８２は、機器認証が成功したユーザ認証デバイス４に関連付けられているユーザのユーザ認証に成功したと判定する。
【０１００】
なお、送信元のユーザ認証デバイス４の機器認証に失敗した場合、サービスログイン要求は拒否される。
【０１０１】
サーバ側認証処理部８２は、そのユーザのユーザ認証に成功したと判定した場合、そのユーザを、サービスログイン要求を送信したユーザとして特定し、サービスログイン要求により指定された特定サービスへのログインを許可し、通信装置５７および通信処理部８１を使用して、サービスログイン許可通知を、そのサービスコードが生成された端末装置１へ送信する（ステップＳ１２）。これにより、その特定サービスを享受するユーザが特定サービス側で特定される。したがって、特定サービスでそのユーザ向けのデータを送信したり、そのユーザにサービス利用料を課金したりすることが可能となる。なお、サービスログイン許可通知は、端末装置１へ送信しなくてもよい。その場合、端末装置１は、サービスコードの出力（ステップＳ６）から所定時間経過後に、サービスデータ要求を送信するようにしてもよい。
【０１０２】
端末装置１では、認証処理部４２は、通信装置１７および通信処理部４１を使用して、サービスログイン許可通知を受信すると、ログインが許可された旨をアプリケーション４４に通知する。
【０１０３】
その後、端末装置１のアプリケーション４４は、通信装置１７および通信処理部４１を使用して、特定サービスのサービスデータ要求を、（ここでは認証サーバ３の）サービス提供部８４へ送信する（ステップＳ１３）。
【０１０４】
認証サーバ３では、サービス提供部８４は、通信装置５７および通信処理部８１を使用して、サービスデータ要求を受信すると、サービスデータ要求により指定されたデータを端末装置１のアプリケーション４４へ送信する（ステップＳ１４）。
【０１０５】
このようにして、端末装置１のユーザは、ユーザ認証デバイス４を使用してユーザ認証を受けた後、端末装置１を使用して特定サービスを享受することができる。
【０１０６】
（５）端末装置１と認証サーバ３との間のワンタイム認証の詳細
【０１０７】
図９は、本発明の実施の形態における端末装置１と認証サーバ３との間のワンタイム認証の詳細について説明するシーケンス図である。
【０１０８】
端末装置１および認証サーバ３では、端末装置１のシードＲ１（ｎ−１）、認証サーバ３のシードＱ１（ｎ−１）、および共通暗号鍵Ｋ１（ｎ−１）が、記憶装置１５，５５などの不揮発性記憶装置においてそれぞれ保持されている。なお、端末装置１のシードの初期値Ｒ１（０）、認証サーバ３のシードの初期値Ｑ１（０）、および共通暗号鍵の初期値Ｋ１（０）は、適宜設定される。また、認証サーバ３には、クライアント側のワンタイム識別子Ｃ１（ｎ−１）が予め計算され保持されている。
【０１０９】
シードＲ１（ｎ−１）は、今回（ｎ−１）のワンタイム認証についてのクライアント側シードである。シードＱ１（ｎ−１）は、今回（ｎ−１）のワンタイム認証についてのサーバ側シードである。共通暗号鍵Ｋ１（ｎ−１）は、今回（ｎ−１）のワンタイム認証時に、次回認証用のクライアント側シードＲ１（ｎ）を認証サーバ３へ送信する際に、そのＲ１（ｎ）を暗号化するための共通暗号鍵である。
【０１１０】
まず、認証処理部４２は、乱数Ｒを生成し、その乱数Ｒを、次回認証用のクライアント側シードＲ１（ｎ）にセットする（ステップＳ２１）。
【０１１１】
そして、認証処理部４２は、今回のワンタイム認証についての、クライアント側ワンタイム認証子Ｃ１（ｎ−１）を生成する（ステップＳ２２）。
【０１１２】
ワンタイム認証子Ｃ１（ｎ−１）は、一方向性関数で計算される。この一方向性関数は、２つの引数をとり、引数の順序によって関数値の異なる関数である。この実施の形態では、この一方向性関数は、ハッシュ関数ｈｃである。
【０１１３】
ワンタイム認証子Ｃ１（ｎ−１）は、例えば、次式に従って計算される。
【０１１４】
Ｃ１（ｎ−１）＝ｈｃ（Ｒ１（ｎ−１），Ｑ１（ｎ−１））    ・・・（１）
【０１１５】
ここで、ハッシュ関数ｈｃの第１引数には、Ｒ１（ｎ−１）が使用され、第２引数には、Ｑ１（ｎ−１）が使用される。
【０１１６】
また、認証処理部４２は、所定の暗号化方式に従って、共通暗号鍵Ｋ１（ｎ−１）で、Ｒ１（ｎ）を暗号化する。なお、共通暗号鍵Ｋ１（ｎ−１）での暗号化後のＲ１（ｎ）を、Ｋ１（ｎ−１）＊Ｒ１（ｎ）と表現する。
【０１１７】
そして、認証処理部４２は、ワンタイム認証子Ｃ１（ｎ−１）およびＫ１（ｎ−１）＊Ｒ１（ｎ）を認証サーバ３へ送信する（ステップＳ２３，Ｓ１）。このとき、通信処理部４１は、ワンタイム認証子Ｃ１（ｎ−１）およびＫ１（ｎ−１）＊Ｒ１（ｎ）を１つのメッセージとして送信する。
【０１１８】
認証サーバ３では、サーバ側認証処理部８２は、通信処理部８１を使用して、そのメッセージを受信し、そのメッセージからワンタイム認証子Ｃ１（ｎ−１）およびＫ１（ｎ−１）＊Ｒ１（ｎ）を抽出し、受信したワンタイム認証子Ｃ１（ｎ−１）が、保持しているクライアント側ワンタイム認証子（つまり、保持しているシードＲ１（ｎ−１），Ｑ１（ｎ−１）から上述の式（１）で得られる値）に一致するか否かを判定する（ステップＳ２４，Ｓ２）。
【０１１９】
受信したワンタイム認証子Ｃ１（ｎ−１）が、不正なワンタイム認証子であると判定した場合、サーバ側認証処理部８２は、認証失敗と判定し、処理を終了する。
【０１２０】
受信したワンタイム認証子Ｃ１（ｎ−１）が、認証子テーブル７２ａに保持しているクライアント側ワンタイム認証子に一致した場合、サーバ側認証処理部８２は、認証成功と判定し、まず、乱数Ｑを生成し、その乱数Ｑを、次回認証用のサーバ側シードＱ１（ｎ）にセットする（ステップＳ２５）。
【０１２１】
また、サーバ側認証処理部８２は、Ｋ１（ｎ−１）＊Ｒ１（ｎ）を、シードテーブル７１ａに保持している共通暗号鍵Ｋ１（ｎ−１）で、Ｒ１（ｎ）へ復号する。そして、サーバ側認証処理部８２は、今回（ｎ−１）のワンタイム認証用のサーバ側ワンタイム認証子Ｓ１（ｎ−１）を生成する（ステップＳ２６）。
【０１２２】
ワンタイム認証子Ｓ１（ｎ−１）は、一方向性関数で計算される。この一方向性関数は、２つの引数をとり、引数の順序によって関数値の異なる関数である。この実施の形態では、この一方向性関数は、ハッシュ関数ｈｓである。
【０１２３】
ワンタイム認証子Ｓ１（ｎ−１）は、次式に従って計算される。
【０１２４】
Ｓ１（ｎ−１）＝ｈｓ（Ｒ１（ｎ），Ｑ１（ｎ−１））    ・・・（２）
【０１２５】
ここで、ハッシュ関数ｈｓの第１引数には、Ｒ１（ｎ）が使用され、第２引数には、Ｑ１（ｎ−１）が使用される。なお、ハッシュ関数ｈｓは、ハッシュ関数ｈｃと同一の関数でもよいし、異なる関数でもよい。
【０１２６】
また、サーバ側認証処理部８２は、所定の暗号化方式に従って、共通暗号鍵Ｋ１（ｎ−１）で、Ｑ１（ｎ）を暗号化する。なお、共通暗号鍵Ｋ１（ｎ−１）での暗号化後のＱ１（ｎ）を、Ｋ１（ｎ−１）＊Ｑ１（ｎ）と表現する。
【０１２７】
そして、サーバ側認証処理部８２は、通信処理部８１を使用して、ワンタイム認証子Ｓ１（ｎ−１）およびＫ１（ｎ−１）＊Ｑ１（ｎ）を端末装置１へ送信する（ステップＳ２７，Ｓ４）。このとき、通信処理部８１は、ワンタイム認証子Ｓ１（ｎ−１）およびＫ１（ｎ−１）＊Ｑ１（ｎ）を１つのメッセージとして送信する。
【０１２８】
端末装置１では、認証処理部４２は、通信処理部４１を使用して、そのメッセージを受信し、ワンタイム認証子Ｓ１（ｎ−１）およびＫ１（ｎ−１）＊Ｑ１（ｎ）を抽出する。
【０１２９】
そして、認証処理部４２は、Ｒ１（ｎ）およびＱ１（ｎ−１）に基づいて、上述の式（２）に従って正当なワンタイム認証子Ｓ１（ｎ−１）の値を計算し、受信したワンタイム認証子Ｓ１（ｎ−１）が、計算した値に一致するか否かを判定する（ステップＳ２８）。
【０１３０】
このとき、受信したワンタイム認証子Ｓ１（ｎ−１）が、計算した値に一致しない場合、認証処理部４３は、認証失敗と判定し、処理を終了する。
【０１３１】
受信したワンタイム認証子Ｓ１（ｎ−１）が、計算した値に一致した場合、認証処理部４２は、認証成功と判定し、まず、Ｋ１（ｎ−１）＊Ｑ１（ｎ）を、保持している共通暗号鍵Ｋ１（ｎ−１）で、Ｑ１（ｎ）へ復号し、この値を、次回認証用のサーバ側シードにセットする。
【０１３２】
そして、認証処理部４２は、次回認証用の共通暗号鍵Ｋ１（ｎ）を次式に従って計算し、共通暗号鍵を更新する（ステップＳ２９）。
【０１３３】
Ｋ１（ｎ）＝ｈｋ（Ｋ１（ｎ−１），Ｒ１（ｎ），Ｑ１（ｎ））    ・・・（３）
【０１３４】
ここで、ｈｋは、一方向性関数であって、かつハッシュ関数である。
【０１３５】
このようにして、ワンタイム認証に成功した後、認証処理部４２は、保持しているシードＲ１（ｎ−１），Ｑ１（ｎ−１）および共通暗号鍵Ｋ１（ｎ−１）を、Ｒ１（ｎ）およびＱ１（ｎ）、並びにＫ１（ｎ）で更新する。
【０１３６】
一方、認証サーバ３においても、ワンタイム認証子Ｓ１（ｎ−１）の送信後、サーバ側認証処理部８２は、次回認証用の共通暗号鍵Ｋ１（ｎ）を上述の式（３）に従って計算し、共通暗号鍵を更新する（ステップＳ３０）。
【０１３７】
さらに、サーバ側認証処理部８２は、次回のワンタイム認証時に使用するクライアント側ワンタイム認証子Ｃ１（ｎ）を、Ｒ１（ｎ）およびＱ１（ｎ）から、上述の式（１）に従って計算する。そして、サーバ側認証処理部８２は、Ｒ１（ｎ）、Ｑ１（ｎ）およびＫ１（ｎ）で、シードテーブル７１ａにおける、端末装置１についてのデータを更新し、Ｃ１（ｎ）で、認証子テーブル７２ａにおける、端末装置１についてのワンタイム認証子を更新する。これにより、これらの値が、次回のセッション（つまり、次回のワンタイム認証）まで保持される。
【０１３８】
このようにして、端末装置１と認証サーバ３との間のワンタイム認証が実行される。
【０１３９】
（６）ユーザ認証デバイス４と認証サーバ３との間のワンタイム認証の詳細
【０１４０】
図１０は、本発明の実施の形態におけるユーザ認証デバイス４と認証サーバ３との間のワンタイム認証の詳細について説明するシーケンス図である。なお、図９に示す処理と図１０に示す処理とは独立して行われる。
【０１４１】
ユーザ認証デバイス４および認証サーバ３では、ユーザ認証デバイス４のシードＲ２（ｎ−１）、認証サーバ３のシードＱ２（ｎ−１）、および共通暗号鍵Ｋ２（ｎ−１）が、記憶装置１１５，５５などの不揮発性記憶装置においてそれぞれ保持されている。なお、ユーザ認証デバイス４のシードの初期値Ｒ２（０）、認証サーバ３のシードの初期値Ｑ２（０）、および共通暗号鍵の初期値Ｋ２（０）は、適宜設定される。また、認証サーバ３には、クライアント側のワンタイム識別子Ｃ２（ｎ−１）が予め計算され保持されている。
【０１４２】
シードＲ２（ｎ−１）は、今回（ｎ−１）のワンタイム認証についてのクライアント側シードである。シードＱ２（ｎ−１）は、今回（ｎ−１）のワンタイム認証についてのサーバ側シードである。共通暗号鍵Ｋ２（ｎ−１）は、今回（ｎ−１）のワンタイム認証時に、次回認証用のクライアント側シードＲ２（ｎ）を認証サーバ３へ送信する際に、そのＲ２（ｎ）を暗号化するための共通暗号鍵である。
【０１４３】
まず、認証処理部１４２は、乱数Ｒを生成し、その乱数Ｒを、次回認証用のクライアント側シードＲ２（ｎ）にセットする（ステップＳ４１）。
【０１４４】
そして、認証処理部１４２は、今回のワンタイム認証についての、クライアント側ワンタイム認証子Ｃ２（ｎ−１）を生成する（ステップＳ４２）。
【０１４５】
ワンタイム認証子Ｃ２（ｎ−１）は、一方向性関数で計算される。この一方向性関数は、２つの引数をとり、引数の順序によって関数値の異なる関数である。この実施の形態では、この一方向性関数は、ハッシュ関数ｈｃである。
【０１４６】
ワンタイム認証子Ｃ２（ｎ−１）は、例えば、次式に従って計算される。
【０１４７】
Ｃ２（ｎ−１）＝ｈｃ（Ｒ２（ｎ−１），Ｑ２（ｎ−１））    ・・・（４）
【０１４８】
ここで、ハッシュ関数ｈｃの第１引数には、Ｒ２（ｎ−１）が使用され、第２引数には、Ｑ２（ｎ−１）が使用される。なお、ワンタイム認証子Ｃ２（ｎ−１）を生成するためのハッシュ関数ｈｃは、ワンタイム認証子Ｃ１（ｎ−１）を生成するためのハッシュ関数ｈｃと同じでもよいし異なっていてもよい。
【０１４９】
また、認証処理部４２は、所定の暗号化方式に従って、共通暗号鍵Ｋ２（ｎ−１）で、Ｒ２（ｎ）を暗号化する。なお、共通暗号鍵Ｋ２（ｎ−１）での暗号化後のＲ２（ｎ）を、Ｋ２（ｎ−１）＊Ｒ１（ｎ）と表現する。
【０１５０】
そして、認証処理部４２は、ワンタイム認証子Ｃ２（ｎ−１）およびＫ２（ｎ−１）＊Ｒ２（ｎ）を認証サーバ３へ送信する（ステップＳ４３，Ｓ９）。このとき、通信処理部４１は、ワンタイム認証子Ｃ２（ｎ−１）およびＫ２（ｎ−１）＊Ｒ２（ｎ）を１つのメッセージとして送信する。
【０１５１】
認証サーバ３では、サーバ側認証処理部８２は、通信処理部８１を使用して、そのメッセージを受信し、そのメッセージからワンタイム認証子Ｃ２（ｎ−１）およびＫ２（ｎ−１）＊Ｒ２（ｎ）を抽出し、受信したワンタイム認証子Ｃ２（ｎ−１）が、保持しているクライアント側ワンタイム認証子（つまり、保持しているシードＲ２（ｎ−１），Ｑ２（ｎ−１）から上述の式（４）で得られる値）に一致するか否かを判定する（ステップＳ４４）。
【０１５２】
受信したワンタイム認証子Ｃ２（ｎ−１）が、不正なワンタイム認証子であると判定した場合、サーバ側認証処理部８２は、認証失敗と判定し、処理を終了する。
【０１５３】
受信したワンタイム認証子Ｃ２（ｎ−１）が、認証子テーブル７２ｂに保持しているクライアント側ワンタイム認証子に一致した場合、サーバ側認証処理部８２は、認証成功と判定し、まず、乱数Ｑを生成し、その乱数Ｑを、次回認証用のサーバ側シードＱ２（ｎ）にセットする（ステップＳ４５）。
【０１５４】
また、サーバ側認証処理部８２は、Ｋ２（ｎ−１）＊Ｒ２（ｎ）を、シードテーブル７１ｂに保持している共通暗号鍵Ｋ２（ｎ−１）で、Ｒ２（ｎ）へ復号する。そして、サーバ側認証処理部８２は、今回（ｎ−１）のワンタイム認証用のサーバ側ワンタイム認証子Ｓ２（ｎ−１）を生成する（ステップＳ４６）。
【０１５５】
ワンタイム認証子Ｓ２（ｎ−１）は、一方向性関数で計算される。この一方向性関数は、２つの引数をとり、引数の順序によって関数値の異なる関数である。この実施の形態では、この一方向性関数は、ハッシュ関数ｈｓである。
【０１５６】
ワンタイム認証子Ｓ２（ｎ−１）は、次式に従って計算される。
【０１５７】
Ｓ２（ｎ−１）＝ｈｓ（Ｒ２（ｎ），Ｑ２（ｎ−１））    ・・・（５）
【０１５８】
ここで、ハッシュ関数ｈｓの第１引数には、Ｒ２（ｎ）が使用され、第２引数には、Ｑ２（ｎ−１）が使用される。なお、ハッシュ関数ｈｓは、ハッシュ関数ｈｃと同一の関数でもよいし、異なる関数でもよい。また、ワンタイム認証子Ｓ２（ｎ−１）を生成するためのハッシュ関数ｈｓは、ワンタイム認証子Ｓ１（ｎ−１）を生成するためのハッシュ関数ｈｓと同じでもよいし異なっていてもよい。
【０１５９】
また、サーバ側認証処理部８２は、所定の暗号化方式に従って、共通暗号鍵Ｋ２（ｎ−１）で、Ｑ２（ｎ）を暗号化する。なお、共通暗号鍵Ｋ２（ｎ−１）での暗号化後のＱ２（ｎ）を、Ｋ２（ｎ−１）＊Ｑ２（ｎ）と表現する。
【０１６０】
そして、サーバ側認証処理部８２は、通信処理部８１を使用して、ワンタイム認証子Ｓ２（ｎ−１）およびＫ２（ｎ−１）＊Ｑ２（ｎ）を端末装置１へ送信する（ステップＳ４７，Ｓ１１）。このとき、通信処理部８１は、ワンタイム認証子Ｓ２（ｎ−１）およびＫ２（ｎ−１）＊Ｑ２（ｎ）を１つのメッセージとして送信する。
【０１６１】
ユーザ認証デバイス４では、認証処理部１４２は、通信処理部１４１を使用して、そのメッセージを受信し、ワンタイム認証子Ｓ２（ｎ−１）およびＫ２（ｎ−１）＊Ｑ２（ｎ）を抽出する。
【０１６２】
そして、認証処理部１４２は、Ｒ２（ｎ）およびＱ２（ｎ−１）に基づいて、上述の式（５）に従って正当なワンタイム認証子Ｓ２（ｎ−１）の値を計算し、受信したワンタイム認証子Ｓ２（ｎ−１）が、計算した値に一致するか否かを判定する（ステップＳ４８）。
【０１６３】
このとき、受信したワンタイム認証子Ｓ２（ｎ−１）が、計算した値に一致しない場合、認証処理部１４３は、認証失敗と判定し、処理を終了する。
【０１６４】
受信したワンタイム認証子Ｓ２（ｎ−１）が、計算した値に一致した場合、認証処理部１４２は、認証成功と判定し、まず、Ｋ２（ｎ−１）＊Ｑ２（ｎ）を、保持している共通暗号鍵Ｋ２（ｎ−１）で、Ｑ２（ｎ）へ復号し、この値を、次回認証用のサーバ側シードにセットする。
【０１６５】
そして、認証処理部１４２は、次回認証用の共通暗号鍵Ｋ２（ｎ）を次式に従って計算し、共通暗号鍵を更新する（ステップＳ４９）。
【０１６６】
Ｋ２（ｎ）＝ｈｋ（Ｋ２（ｎ−１），Ｒ２（ｎ），Ｑ２（ｎ））    ・・・（６）
【０１６７】
ここで、ｈｋは、一方向性関数であって、かつハッシュ関数である。なお、Ｋ２（ｎ）を生成するためのハッシュ関数ｈｋは、Ｋ１（ｎ）を生成するためのハッシュ関数ｈｋと同じでもよいし異なっていてもよい。
【０１６８】
このようにして、ワンタイム認証に成功した後、認証処理部１４２は、保持しているシードＲ２（ｎ−１），Ｑ２（ｎ−１）および共通暗号鍵Ｋ２（ｎ−１）を、Ｒ２（ｎ）およびＱ２（ｎ）、並びにＫ２（ｎ）で更新する。
【０１６９】
一方、認証サーバ３においても、ワンタイム認証子Ｓ２（ｎ−１）の送信後、サーバ側認証処理部８２は、次回認証用の共通暗号鍵Ｋ２（ｎ）を上述の式（６）に従って計算し、共通暗号鍵を更新する（ステップＳ５０）。
【０１７０】
さらに、サーバ側認証処理部８２は、次回のワンタイム認証時に使用するクライアント側ワンタイム認証子Ｃ２（ｎ）を、Ｒ２（ｎ）およびＱ２（ｎ）から、上述の式（４）に従って計算する。そして、サーバ側認証処理部８２は、Ｒ２（ｎ）、Ｑ２（ｎ）およびＫ２（ｎ）で、シードテーブル７１ｂにおける、ユーザ認証デバイス４についてのデータを更新し、Ｃ２（ｎ）で、認証子テーブル７２ｂにおける、ユーザ認証デバイス４についてのワンタイム認証子を更新する。これにより、これらの値が、次回のセッション（つまり、次回のワンタイム認証）まで保持される。
【０１７１】
このようにして、ユーザ認証デバイス４と認証サーバ３との間のワンタイム認証が実行される。
【０１７２】
以上のように、上記実施の形態によれば、（ａ）端末装置１は、固定的なユーザ認証データを送信せずに特定サービスに対するサービスログイン要求を認証サーバ３へ送信し、（ｂ）認証サーバ３は、サービスログイン要求を受信すると、サービスログイン要求の送信元である端末装置１の機器認証を実行し、端末装置１の機器認証に成功した場合、特定サービスに対応するサービスコードを生成し、サービスログイン要求の送信元である端末装置１へ送信し、（ｃ）端末装置１は、サービスコードを受信すると、受信したサービスコードを所定の形態で出力し、（ｄ）ユーザ認証デバイス４は、端末装置１により出力されたサービスコードの入力を所定の形態で受け付けると、固定的なユーザ認証データを送信せずに、入力されたサービスコードを認証サーバ３へ送信し、（ｅ）認証サーバ３は、サービスコードを受信すると、サービスコードの送信元であるユーザ認証デバイス４の機器認証を実行し、ユーザ認証デバイス４の機器認証に成功した場合、ユーザ認証デバイス４に関連付けられているユーザについて、受信したサービスコードにより指定される特定サービスのログインを許可する。
【０１７３】
これにより、サービスログインのためのユーザ認証に要求されるユーザ認証データをインターネットなどの通信経路を介して送受信することなく、ユーザが特定され正規ユーザに対してサービスログインが許可される。
【０１７４】
例えば、クライアント側の端末装置１が複数ユーザにより使用可能な端末装置（例えばマルチユーザオペレーティングシステムが稼働している端末装置）である場合、端末装置１の機器認証に成功してもその端末装置１を現時点で操作しているユーザを特定することは困難であるが、上記実施の形態のシステムによれば、端末装置１のユーザが特定される。
【０１７５】
なお、上述の実施の形態に対する様々な変更および修正については、当業者には明らかである。そのような変更および修正は、その主題の趣旨および範囲から離れることなく、かつ、意図された利点を弱めることなく行われてもよい。つまり、そのような変更および修正が請求の範囲に含まれることを意図している。
【０１７６】
例えば、上記実施の形態において、サービスログイン許可後に、サービス提供部８４と端末装置１との間の通信のために、特開２０１２−３４２９２号に記載のフェーズ２のワンタイム認証（つまり、上述のワンタイム認証から派生する、上述のワンタイム認証とは別系列のワンタイム認証）を繰り返し行うようにしてもよい。
【０１７７】
また、上記実施の形態において、サービス提供部８４を認証サーバ３とは別のサーバに設け、サービスログイン許可後にそのサーバから端末装置１へサービスデータを提供するようにしてもよい。
【０１７８】
また、上記実施の形態において、認証プログラム３１，６１，１３１は、それぞれ、可搬性のある、コンピュータ読み取り可能な記録媒体（ＣＤ−ＲＯＭなど）に記録されていてもよい。その場合、認証プログラム３１，６１，１３１は、その記録媒体から読み出され、上述の端末装置１、認証サーバ３、またはユーザ認証デバイス４にインストールされてもよい。また、上記実施の形態において、認証プログラム３１，６１，１３１は、それぞれ、サーバからダウンロードされ、上述の端末装置１、認証サーバ３、またはユーザ認証デバイス４にインストールされてもよい。
【０１７９】
また、上記実施の形態では、認証サーバ３において、１台のユーザ認証デバイス４に対して１人のユーザが関連付けられているが、１台のユーザ認証デバイス４に対して複数人のユーザが関連付けてもよい。その場合、ユーザ認証デバイス４の現時点のユーザを示すユーザＩＤをサービスコードとともに暗号化して認証サーバ３に送信し、そのユーザＩＤを復号化してユーザ認証デバイス４の現時点のユーザを特定すればよい。あるいは、ユーザ認証デバイス４の複数ユーザに対して複数のワンタイム認証子をそれぞれ独立に設定し、ユーザ認証デバイス４において選択されたワンタイム認証子によるワンタイム認証によって、ユーザ認証デバイス４の現時点のユーザを特定してもよい。
【０１８０】
また、上記実施の形態では、端末装置１と認証サーバ３との間でワンタイム認証によって相互的に機器認証を行っているが、その代わりにＳＳＬ（Secure Sockets Layer）で相互的にあるいは端末装置１および認証サーバ３の一方のみの機器認証を行うようにしてもよい。
【産業上の利用可能性】
【０１８１】
本発明は、例えば、ネットワークサービスにおけるユーザ認証に適用可能である。
【図１】
2017029708.tif 000003
【図２】
2017029708.tif 000004
【図３】
2017029708.tif 000005
【図４】
2017029708.tif 000006
【図５】
2017029708.tif 000007
【図６】
2017029708.tif 000008
【図７】
2017029708.tif 000009
【図８】
2017029708.tif 000010
【図９】
2017029708.tif 000011
【図１０】
2017029708.tif 000012
【国際調査報告】
2017029708.tif 000013
2017029708.tif 000014
2017029708.tif 000015
2017029708.tif 000016