(57)【要約】【課題】時刻同期方式のワンタイムパスワードを生成するトークンの時刻を、サーバの時刻にセキュアに合わせる方法を提供する。【解決手段】トークン１がワンタイムパスワードを生成したときトークン１内の時刻である生成時刻をサーバ２は割出し、トークン１とサーバ２の時刻同期の時刻ズレを算出し、トークン１内の時刻を修正するためのメッセージを生成し、トークン１を所持するユーザ５に伝達する。ユーザ５がこのメッセージをトークン１に入力することで、このメッセージに従い、トークン１内の時刻は修正される。なお、サーバ２が生成するメッセージの少なくとも一部を、トークン１に記憶された暗号鍵と対になる暗号鍵で暗号化することで、このメッセージの改竄を防止する。【選択図】図１
2008198147.tif 000002
【特許請求の範囲】
【請求項１】
時刻同期方式のワンタイムパスワードを生成するトークンの時刻を修正する時刻修正方法であって、
ステップａ）前記トークンに備えられた第１の時計の時刻をパラメータとし、サーバによって認証されるワンタイムパスワードを前記トークンが生成し、前記トークンを所持するユーザからワンタイムパスワードを前記サーバが取得するステップ、
ステップｂ）ワンタイムパスワードの認証に利用する第２の時計を備えた前記サーバが、ステップａ）で前記トークンがワンタイムパスワードを生成したときの前記第１の時計の時刻である生成時刻を割出すステップ、
ステップｃ）ワンタイムパスワードを認証するときの前記第２の時計の時刻である認証時刻と前記ステップｂ）で割出した前記生成時刻の差から、前記第１の時計と前記第２の時計の時刻ズレを算出し、前記トークンに備えられた前記第１の時計の時刻を修正するためのメッセージを生成するステップ、
ステップｄ）前記トークンが記憶している第１の暗号鍵と対になる第２の暗号鍵を用いて、前記メッセージの少なくとも一部を暗号化し、前記メッセージを前記ユーザに送信するステップ、
ステップｅ）前記サーバから送信された前記メッセージが前記トークンに入力され、前記第１の暗号鍵を用いて前記メッセージを復号した後、前記メッセージに従い前記トークンが前記第１の時計の時刻を修正するステップ、
とが順に実行されることを特徴とするトークンの時刻修正方法。
【請求項２】
請求項１に記載のトークンの時刻修正方法において、前記ステップｂ）は、前記サーバが、ワンタイムパスワードを取得したときの前記第２の時計の時刻を基準とし、時刻を変更しながら、前記トークンと同じ手順でワンタイムパスワードを生成し、前記トークンで生成されたワンタイムパスワードと一致するワンタイムパスワードを生成したときに利用した時刻から、前記生成時刻を割出すステップであることを特徴とするトークンの時刻修正方法。
【請求項３】
請求項１に記載のトークンの時刻修正方法において、前記ステップａ）において、前記トークンは、前記トークンがワンタイムパスワードを生成したときの前記第１の時計の時刻を前記生成時刻として、可逆性のアルゴリズムで暗号化してワンタイムパスワードに含ませ、前記ステップｂ）は、前記第２の暗号鍵を用いて前記生成時刻を復号することで、前記生成時刻を割出すステップであることを特徴とするトークンの時刻修正方法。
【請求項４】
時刻同期方式のワンタイムパスワードを生成するトークンであって、前記トークンは、前記ワンタイムパスワードを生成するときに参照する時計と、前記トークンに秘匿に記憶された暗号鍵を用い、前記時計の時刻を非可逆性のアルゴリズムで暗号化することで、ワンタイムパスワードを生成するワンタイムパスワード生成手段と、データが入力されるデータ入力手段と、前記データ入力手段に前記時計の時刻を修正するメッセージが入力されたとき、前記暗号鍵を用いて前記メッセージを復号し、前記メッセージの内容に従い前記時計の時刻を修正する時刻修正手段と、を備えていることを特徴とするトークン。
【請求項５】
請求項４に記載のトークンであって、前記トークンに備えられた前記ワンタイムパスワード生成手段は、ワンタイムパスワードを生成したときの前記時計の時刻を、前記暗号鍵を用い可逆性のアルゴリズムで暗号化して、生成するワンタイムパスワードに含ませることを特徴とするトークン。
【請求項６】
請求項４または請求項５に記載のトークンであって、前記トークンは、前記データ入力手段から入力されたＰＩＮを照合する手段を備え、前記ＰＩＮの照合に成功したときのみ、前記トークンに備えられた前記時刻修正手段を作動させることを特徴とするトークン。
【請求項７】
トークンが生成した時刻同期方式のワンタイムパスワードを認証するサーバであって、前記サーバは、ワンタイムパスワードの認証に利用する時計と、ワンタイムパスワードが生成されたときの前記トークン内の時刻である生成時刻を割出し、ワンタイムパスワードを認証するときの前記時計の時刻である認証時刻と前記生成時刻の差から、ワンタイムパスワードを生成したトークンの時刻と前記時計の時刻との時刻ズレを修正するためのメッセージを生成し、前記トークンが記憶している第１の暗号鍵と対になる第２の暗号鍵を用いて、前記メッセージの少なくとも一部を暗号化し、前記トークンを所持するユーザに前記メッセージを伝達する時刻修正指示手段と、を備えたことを特徴とするサーバ。
【請求項８】
請求項７の発明に記載のサーバにおいて、前記サーバに備えられた前記時刻修正指示手段は、ワンタイムパスワードを取得したときの前記時計の時刻を基準とし、時刻を変更しながら、前記トークンと同じ手順でワンタイムパスワードを生成し、前記トークンで生成されたワンタイムパスワードと一致するワンタイムパスワードを生成したときに利用した時刻から、前記サーバが前記生成時刻を割出すことを特徴とするサーバ。
【請求項９】
請求項７に記載のサーバにおいて、前記サーバが取得するワンタイムパスワードには、前記トークンがワンタイムパスワードを生成したときの前記トークン内の時刻が前記生成時刻として、可逆性のアルゴリズムを用いて暗号化された状態で含まれ、前記サーバに備えられた前記時刻修正指示手段は、前記第２の暗号鍵を用いて前記生成時刻を復号することで、前記サーバが前記生成時刻を割出すことを特徴とするサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時刻同期方式のワンタイムパスワードを生成するトークン内の時刻を、ワンタイムパスワードを認証するサーバの時刻に合わせる技術に関する。
【背景技術】
【０００２】
フィッシング詐欺やスパイウェア対策として、ネットバンキングなどの用途で二要素認証が注目を集めている。二要素認証とは、異なる性質を持つ二つの認証要素を組み合せてユーザを認証する方式である。
【０００３】
二要素認証でユーザを認証するときは、「自分だけが知っている（know）」に係る認証要素であるＰＩＮ（Personal Identification Number）などのパスワードと、「自分だけが知っている（know）」に係る認証要素以外の認証要素を用いてユーザ認証することが一般的である。
【０００４】
「自分だけが知っている（know）」以外の認証要素としては、「自分自身（is）」に係る認証要素であるバイオメトリクス情報（例えば、指紋）を用いる場合もあるが、バイオメトリクス情報に対してユーザは強い抵抗感をもつため、「自分だけが持っている（has）」に係る認証要素であるワンタイムパスワード（OTP: One Time Password）を利用するケースが増えている。
【０００５】
ＯＴＰを利用してユーザを認証するとき、ユーザはＯＴＰを生成する機能を備えたトークンを所持し、このトークンによって生成されたＯＴＰをサーバに送信し、サーバはユーザから取得したＯＴＰを認証する。
【０００６】
ＯＴＰの代表的な方式である時刻同期方式においては、ＯＴＰを生成するトークンとサーバは時刻同期する時計をそれぞれ有し、トークンは、特許文献１に記載されているように、ＯＴＰを生成するときの分単位の時刻をパラメータとして生成し、サーバは、ログイン画面などを利用してユーザからＯＴＰを取得すると、ユーザを認証するときの分単位の時刻をパラメータとし、トークンと同じ手順でＯＴＰを生成し、ユーザから取得したＯＴＰを認証する。
【０００７】
トークンとサーバの間に時刻ズレがなければユーザの認証に支障は生じないが、実際は、トークンの内部時計とサーバの内部時計の間に若干の時刻ずれが生じるため、サーバがＯＴＰを認証するときは、ユーザを認証するときの時刻を基準とした前後数分間の許容時刻を設け、ユーザから取得したＯＴＰが、この許容時刻内で生成されるＯＴＰのいずれかと一致するか確認する。
【０００８】
しかし、トークンとサーバの時刻ずれが大きくなると、ユーザから取得したＯＴＰと生成したＯＴＰのいずれとも一致することはなくなり、正当なユーザであるにも関わらずユーザの認証に失敗するため、時刻同期方式においては、トークンとサーバの時刻合わせを行う仕組みが必要となる。
【０００９】
時計の時刻を調整する機構をトークンに設けることで、トークンとサーバの時刻を合わせることは容易に実現できるが、ユーザ自身がトークンの時計の時刻を任意に合わせることが可能であると、ユーザがトークンの時計の時刻を故意的に進めることで、ユーザは将来のＯＴＰを知り得ることができ、セキュリティ的に好ましくない。
【００１０】
また、特許文献２で開示されているように、標準時刻をのせている標準電波を受信する機能をトークンに備えさせることも考えられるが、トークン自体に標準電波を受信する特別な装置が必要になってしまうし、何よりも、時刻同期方式においては、トークンの内部時計とサーバの内部時計を同期させることが重要であるが、特許文献２の発明は、トークンの時計をサーバの時計に合わせるための発明ではない。
【特許文献１】特開平１１−３１６７４０号公報
【特許文献２】特開２００５−５０２９２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
そこで、トークンとサーバの時刻合わせをセキュアに行うために、本発明は、時刻同期方式のワンタイムパスワードを生成するトークンの時刻を合わせる方法、時刻同期方式のワンタイムパスワードを生成し、内蔵された時計の時刻をセキュアに修正する機能を備えたトークン、及び、トークンの時刻を修正するためのメッセージを生成するサーバを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決する第１の発明は、時刻同期方式のワンタイムパスワードを生成するトークンの時刻を修正する時刻修正方法であって、
ステップａ）前記トークンに備えられた第１の時計の時刻をパラメータとし、サーバによって認証されるワンタイムパスワードを前記トークンが生成し、前記トークンを所持するユーザからワンタイムパスワードを前記サーバが取得するステップ、
ステップｂ）ワンタイムパスワードの認証に利用する第２の時計を備えた前記サーバが、前記ステップａ）で前記トークンがワンタイムパスワードを生成したときの前記第１の時計の時刻である生成時刻を割出すステップ、
ステップｃ）ワンタイムパスワードを認証するときの前記第２の時計の時刻である認証時刻と前記ステップｂ）で割出した前記生成時刻の差から、前記第１の時計と前記第２の時計の時刻ズレを算出し、前記トークンに備えられた前記第１の時計の時刻を修正するためのメッセージを生成するステップ、
ステップｄ）前記トークンが記憶している第１の暗号鍵と対になる第２の暗号鍵を用いて、前記メッセージの少なくとも一部を暗号化し、前記メッセージを前記ユーザに伝達するステップ、
ステップｅ）前記サーバから送信された前記メッセージが前記トークンに入力され、前記第１の暗号鍵を用いて前記メッセージを復号した後、前記メッセージに従い前記トークンが前記第１の時計の時刻を修正するステップ、
とが順に実行されることを特徴とする。
【００１３】
上述した第１の発明によれば、前記サーバが、取得したワンタイムパスワードが生成された時刻である生成時刻を割出し、前記トークンに備えられた前記第１の時計の時刻を修正するための前記メッセージを生成し、前記メッセージを用いて前記トークンの時刻を修正することで、前記トークンの時刻を前記サーバの時刻に合わせることができる。
【００１４】
更に、前記サーバから前記ユーザに伝達される前記メッセージの少なくとも一部は暗号化されているため、前記ユーザが前記メッセージを改竄することはできなくなる。
【００１５】
更に、第２の発明は、第１の発明に記載のトークンの時刻修正方法において、前記ステップｂ）は、前記サーバが、ワンタイムパスワードを取得したときの前記第２の時計の時刻を基準とし、時刻を変更しながら、前記トークンと同じ手順でワンタイムパスワードを生成し、前記トークンで生成されたワンタイムパスワードと一致するワンタイムパスワードを生成したときに利用した時刻から、前記生成時刻を割出すステップであることを特徴とする。
【００１６】
更に、第３の発明は、第１の発明に記載のトークンの時刻修正方法において、前記ステップａ）において、前記トークンは、前記トークンがワンタイムパスワードを生成したときの前記第１の時計の時刻を前記生成時刻として、可逆性のアルゴリズムで暗号化してワンタイムパスワードに含ませ、前記ステップｂ）は、前記第２の暗号鍵を用いて前記生成時刻を復号することで、前記サーバが前記生成時刻を割出すステップであることを特徴とする。
【００１７】
前記サーバが、前記トークンがワンタイムパスワードを生成した時刻である前記生成時刻を割出す方式は、第２の発明または第３の発明に記述した方式で実現できる。
【００１８】
更に、第４の発明は、時刻同期方式のワンタイムパスワードを生成するトークンであって、前記トークンは、前記ワンタイムパスワードを生成するときに参照する時計と、前記トークンに秘匿に記憶された暗号鍵を用い、前記時計の時刻を非可逆性のアルゴリズムで暗号化することで、ワンタイムパスワードを生成するワンタイムパスワード生成手段と、データが入力されるデータ入力手段と、前記データ入力手段に前記時計の時刻を修正するメッセージが入力されたとき、前記暗号鍵を用いて前記メッセージを復号し、前記メッセージの内容に従い前記時計の時刻を修正する時刻修正手段と、を備えていることを特徴とする。
【００１９】
更に、第５の発明は、第４の発明に記載のトークンであって、前記トークンに備えられた前記ワンタイムパスワード生成手段は、ワンタイムパスワードを生成したときの前記時計の時刻を、前記暗号鍵を用い可逆性のアルゴリズムで暗号化して、生成するワンタイムパスワードに含ませることを特徴とする。
【００２０】
更に、第６の発明は、第４の発明または第５の発明に記載のトークンであって、前記トークンは、前記データ入力手段から入力されたＰＩＮを照合する手段を備え、前記ＰＩＮの照合に成功したときのみ、前記トークンに備えられた前記時刻修正手段を作動させることを特徴とする。
【００２１】
第４の発明から第６の発明に記載の前記トークンは、上述した方法を実現するために必要な前記トークンである。
【００２２】
更に、第７の発明は、トークンが生成した時刻同期方式のワンタイムパスワードを認証するサーバであって、前記サーバは、ワンタイムパスワードの認証に利用する時計と、前記トークンがワンタイムパスワードを生成したときの前記トークン内の時刻である生成時刻を割出し、ワンタイムパスワードを認証するときの前記時計の時刻である認証時刻と前記生成時刻の差から、ワンタイムパスワードを生成したトークンの時刻と前記時計の時刻との時刻ズレを修正するためのメッセージを生成し、前記トークンが記憶している第１の暗号鍵と対になる第２の暗号鍵を用いて、前記メッセージの少なくとも一部を暗号化し、前記トークンを所持するユーザに前記メッセージを伝達する時刻修正指示手段と、を備えたことを特徴とする。
【００２３】
更に、第８の発明は、第７の発明に記載のサーバにおいて、前記サーバに備えられた前記時刻修正指示手段は、ワンタイムパスワードを取得したときの前記時計の時刻を基準とし、時刻を変更しながら、前記トークンと同じ手順でワンタイムパスワードを生成し、前記トークンで生成されたワンタイムパスワードと一致するワンタイムパスワードを生成したときに利用した時刻から、前記サーバが前記生成時刻を割出すことを特徴とする。
【００２４】
更に、第９の発明は、第７の発明に記載のサーバにおいて、前記サーバが取得するワンタイムパスワードには、前記トークンがワンタイムパスワードを生成したとに利用したきの前記トークン内の時刻が前記生成時刻として、可逆性のアルゴリズムを用いて暗号化された状態で含まれ、前記サーバに備えられた前記時刻修正指示手段は、前記第２の暗号鍵を用いて前記生成時刻を復号することで、前記サーバが前記生成時刻を割出すことを特徴とする。
【００２５】
第７の発明に記載の前記サーバは、第１の発明に記載の方法を実現するために必要な前記サーバであって、更に、第８の発明に記載の前記サーバは、第９の発明に記載の方法を実現するために必要な前記サーバで、第９の発明に記載の前記サーバは、第３の発明に記載の方法を実現するために必要な前記サーバである。
【発明の効果】
【００２６】
上述した本発明によれば、トークンとサーバの時刻合わせをセキュアに行うために、本発明は、時刻同期方式のワンタイムパスワードの生成に利用され、セキュアに内蔵された時計の時刻を修正する機能を備えたトークン、トークンの時刻を修正するためのメッセージを生成するサーバ、及び、時刻同期方式のワンタイムパスワードの生成に利用されるトークンの時刻を合わせる方法を提供できる。
【発明を実施するための最良の形態】
【００２７】
ここから、本発明について図を参照しながら詳細に説明する。図１は、本発明に係るトークンとサーバを説明する図である。図１において、ユーザ５は、時刻同期方式のワンタイムパスワード（OTP: One Time Password）を生成する機能を有するトークン１を所持し、ユーザ５がクライアント３を操作してアクセスするサーバ２は、トークン１が生成した時刻同期方式のＯＴＰを認証する機能を有している。
【００２８】
時刻同期方式においては、サーバ２が有する内部時計とトークン１が有する内部時計の時刻は同期していなければならないが、実際は、サーバ２とトークン１では同期時刻のズレが生じてしまい、トークン１の内部時計の時刻を修正することが必要となる。
【００２９】
そこで、サーバ２とトークン１との同期時刻のズレを修正するために、図１で図示したサーバ２には、トークン１がＯＴＰを生成したときのトークン１内の時刻である生成時刻を割出し、生成時刻とＯＴＰを認証するときの時刻とから同期時刻の時刻ズレを算出し、時刻ズレに応じて、トークン１の内部時計の時刻を修正するメッセージを生成する機能を有し、トークン１は、このメッセージに従いトークン１の内部時計の時刻を修正する機能を有している。
【００３０】
まず、発明に係るトークン１について説明する。図２はトークン１の外観図で、図３はトークン１のブロック図である。
【００３１】
図２に図示したように、ユーザ５が所持するトークン１には、ＯＴＰを生成するときにユーザ５が押すボタン１４、ユーザ５がＰＩＮなどのメッセージを入力するときに利用するテンキー１５、そして、トークン１が生成したＯＴＰなどを表示するディスプレイ１６を備える。
【００３２】
更に、図３に図示したように、トークン１は、上述した要素に加え、トークン１に内蔵された内部時計であるトークン時計１１と、時刻同期方式のＯＴＰを生成する手段であるＯＴＰ生成手段１０と、内部時計１１の時刻を修正するための時刻修正手段１３を備え、更に、ＯＴＰ生成手段１０が利用する暗号鍵であるトークン鍵１２を記憶し、
【００３３】
ユーザ５がボタン１４を押すと、トークン１に備えられたＯＴＰ生成コマンド１０は、ＯＴＰ生成コマンド１０が実行されるときのトークン時計１１の時刻を平文とし、トークン１に記憶されたトークン鍵１２を用いて、非可逆性のアルゴリズムに従ってこの平文を暗号化することでＯＴＰを生成し、生成したユーザ５のＯＴＰをディスプレイ１６に表示する。なお、ＯＴＰ生成コマンド１０が実行されるときのトークン時計１１の時刻が、サーバ２が割出す生成時刻となる。
【００３４】
更に、トークン１は、テンキー１５の「♯」のボタンが長押しされるなどすると、コマンドの入力を受け付ける状態に遷移し、トークン時計１１の時刻を修正するコマンドメッセージである時刻修正メッセージが入力されると、入力された時刻修正メッセージに含まれる修正時間に従いトークン時計１１の時刻を修正する。
【００３５】
トークン１に入力される時刻修正メッセージは、後述するようにサーバ２によって生成され、セキュアにトークン時計１１の時刻を修正できるように、トークン１に入力される時刻修正メッセージに含まれる修正時間は、トークン１のトークン鍵１２を用いて復号できる形式で暗号化されている。
【００３６】
トークン１の時刻修正手段１３は、テンキー１５によって時刻修正メッセージが入力されると、トークン鍵１２を用いて、時刻修正メッセージに含まれる修正時間を復号し、復号した修正時間に従いトークン時計１１を修正する。
【００３７】
図１で図示したクライアント３には、ユーザ５がサーバ２にアクセスするときに利用されるブラウザがインストールされ、ユーザ５がアクセスするサーバ２は、サービスを提供するビジネスロジックの一つの機能として、クライアント３から送信されるＯＴＰを用いて、クライアント３を操作するユーザ５を認証する機能を有する。
【００３８】
図４はサーバ２のブロック図で、図４に図示したように、サーバ２は、クライアント３から送信されるＯＴＰを認証する機能を実現するために、ＯＴＰ認証手段２０と、ユーザ５が所持するトークン１のトークン鍵１２と対になる暗号鍵を記憶したデータベース２１を備え、ＯＴＰ認証手段２０は、認証するユーザ５のユーザＩＤ及びＯＴＰを取得するＯＴＰ取得部２００と、データベース２１を参照してＯＴＰを生成し、ユーザ５から取得したＯＴＰを認証するＯＴＰ認証部２０１と、ＯＴＰを生成するときに参照される内部時計であるサーバ時計２０２とを有している。
【００３９】
更に、サーバ２のＯＴＰ認証手段２０は、ユーザ５から取得したＯＴＰを認証した結果、ユーザ５が所持するトークン１の時刻を修正する必要があると判断したとき、トークン１に備えられたトークン時計１１の時刻の修正をユーザ５に指示する時刻修正指示部２０３を有する。
【００４０】
図５は、データベース２１を説明する図である。データベース２１には、ユーザ５ごとに割り振られた識別データであるユーザＩＤに関連付けて、ユーザ５が所持するトークン１に秘匿に記憶されたトークン鍵１２と対になる暗号鍵であるサーバ鍵２１０が記憶されている。。
【００４１】
サーバ２に備えられたＯＴＰ認証手段２０のＯＴＰ取得部２００は、サーバ２にアクセスするユーザ５からユーザＩＤとＯＴＰを受け付ける機能を有し、ＯＴＰ取得部２００は一つのウェブページで実現され、このウェブページは、少なくとも、ユーザ５がユーザＩＤを入力するフォームと、ユーザ５がＯＴＰを入力するフォームを有し、サーバ２にアクセスするユーザ５は、このウェブページに、ユーザ５側で生成したユーザ５のＯＴＰと、ユーザＩＤとを入力する。
【００４２】
ＯＴＰ認証手段２０のＯＴＰ認証部２０１は、ユーザ５のＯＴＰを認証するときに利用するＯＴＰを生成する機能を有し、データベース２１を参照し、ＯＴＰ取得部２００が取得したユーザＩＤに関連付けられているサーバ鍵２１０を取得し、ユーザ５を認証するときのサーバ時計２０２の時刻を基準とし前後数分間の許容時刻を設け、許容時刻に含まれる時刻をそれぞれ平文とし、サーバ鍵２１０を用いて所定のアルゴリズムでこれらの平文を暗号化することで、許容時刻内の時刻で生成されるＯＴＰを生成する。
【００４３】
そして、ＯＴＰ認証部２０１は、ユーザ５から取得したＯＴＰが、ＯＴＰ認証部２０１が生成した許容時刻内のＯＴＰのいずれかと一致するか確認することで、ＯＴＰ取得部２００に入力されたユーザ５のＯＴＰの正当性を検証する。
【００４４】
時刻修正指示部２０３は、ユーザ５から取得したＯＴＰの認証結果から、トークン１がＯＴＰを生成したときのトークン時計１１の時刻である生成時刻を割出すことで、トークン１に備えられたトークン時計１１とサーバ２に備えられたサーバ時計２０２の時刻ズレを算出し、トークン時計１１の時刻修正が必要と判断したとき、クライアント３に対して、トークン時計１１の時刻の修正を指示する時刻修正メッセージを生成し、生成した時刻修正メッセージをクライアント３に送信する。
【００４５】
なお、時刻修正指示部２０３が、トークン１がＯＴＰを生成したときのトークン時計１１の時刻である生成時刻を割出す方式は様々な方式が考えられるが、時刻修正指示部２０３は、許容時刻内で生成されるＯＴＰの中で、ユーザから取得したＯＴＰと一致するＯＴＰが生成される許容時刻内の時刻を生成時刻として割出すとよい。そして、割出した生成時刻とユーザを認証するときのサーバ時計２０２の時刻との差から、トークン１に備えられたトークン時計１１とサーバ２に備えられたサーバ時計２０２の時刻ズレは算出される。
【００４６】
図６は、トークン時計１１とサーバ時計２０２の時刻ズレを、時刻修正指示部２０３が算出する仕組みを説明する図である。図６において、ユーザを認証する時刻は「１２：００」で、ＯＴＰ認証部２０１は、ユーザを認証する時刻を基準とし、前後３分間の許容時刻を設けて、ユーザを認証する時刻を含み、許容時刻内（ここでは、１１：５７〜１２：０３）の１分単位の時刻それぞれをパラメータとしてＯＴＰを生成し、ユーザから取得したＯＴＰを認証する。
【００４７】
例えば、トークン時計１１がサーバ時刻２０２よりも２分進んでいた場合、トークン１でＯＴＰを生成したときの時刻は「１２：０２」になり、トークン１からサーバ２へは、値が「８９０１２３」であるＯＴＰが送信される。
【００４８】
ＯＴＰ認証手段２０のＯＴＰ認証部２０１がクライアント３から送信されたＯＴＰを認証するとき、図６で示した複数のＯＴＰの中で、クライアント３から送信されたＯＴＰは「１２：０２」のＯＴＰと一致するため、ＯＴＰ認証部２０１は、ユーザ５を正当であると判断する。
【００４９】
時刻修正指示部２０３は、ユーザ５を認証する時刻（ここでは、１２：００）と、ユーザのＯＴＰと一致するＯＴＰが生成される時刻（ここでは、１２：０２）との差から、トークン時計１１とサーバ時計２０２の時刻ズレは２分と算出できる。
【００５０】
なお、ユーザ５から取得したＯＴＰの認証に失敗したとき、例えば、ユーザ５から取得したＯＴＰが図６で記述したＯＴＰのいずれとも一致しなかった場合、時刻修正指示部２０３は、時刻ズレを算出するためだけに、許容時刻の範囲を広げ（例えば、前後５分間）てＯＴＰを生成し、時刻ズレを算出してもよい。
【００５１】
そして、ＯＴＰ認証手段２０の時刻修正指示部２０３は、トークン時計１１とサーバ時計２０２の時刻ズレが基準値（例えば、１分）より大きい場合は、トークン時計１１がサーバ時刻２０２の時刻ズレを修正すべく、時刻修正メッセージを生成し、生成した時刻修正メッセージをクライアント３に送信する。
【００５２】
時刻修正指示部２０３が生成する時刻修正メッセージには、トークン３の時刻修正手段１３を動作させるためのコマンドコードと、トークン時計１１の時刻の修正時間とが含まれ、時刻修正メッセージに含まれる修正時間は、ユーザ５から取得したＯＴＰを認証するときに利用したサーバ鍵２１０で暗号化する。
【００５３】
サーバ２送信された時刻修正メッセージはクライアント３に表示され、ユーザ５は、時刻修正メッセージをそのままトークン１に入力し、トークン１はこの時刻修正メッセージに含まれる修正時間をトークン１２鍵で復号し、修正時刻に従い、トークン１内部で秘匿にトークン時計１１の時刻を修正する。
【００５４】
ここから、ユーザ５のＯＴＰを認証し、トークン１の内部時計の時刻を修正する手順について、図１のシステムを例に挙げながら説明する。図７は、ユーザ５のＯＴＰを認証し、上述した時刻修正メッセージをユーザ５に伝達するまでの手順を示したフロー図である。
【００５５】
ユーザ５はクライアント３を操作してサーバ２にアクセスし、ユーザ５がサーバ２のサービスの利用を要求すると（ステップＳ１）、サーバ２は、ＯＴＰ認証手段２０のＯＴＰ取得部２００を作動させることで、ユーザＩＤとユーザ５のＯＴＰを入力するためのウェブページがクライアント３に表示され、ユーザ５に対し、トークン１１で生成されたＯＴＰとユーザＩＤの入力を要求する（ステップＳ２）。
【００５６】
トークン１１で生成されたＯＴＰとユーザＩＤの入力を要求するためのウェブページがクライアント３に表示されると、ユーザ５はトークン１のボタン１４を押し、トークン１にＯＴＰ生成の指示を出す（ステップＳ３）。
【００５７】
トークン１はＯＴＰ生成の指示を受けると、ユーザ５のＰＩＮの入力を促す画面をディスプレイ１６に表示することで、ユーザ５にＰＩＮの入力を要求する（ステップＳ４）。
【００５８】
ＰＩＮの入力を促す画面がトークン１のディスプレイ１６に表示されると、ユーザ５は、トークン１のテンキー１５を操作することで、ＰＩＮをトークン１に入力し（ステップＳ５）、トークン１は、正当なユーザ５であるか確認するために、入力されたＰＩＮを照合する（ステップＳ６）。
【００５９】
トークン１はＰＩＮの照合に成功すると、トークン鍵１２を用いて、非可逆性のアルゴリズムに従いトークン時計１１の時刻を暗号化することでＯＴＰを生成し（ステップＳ７）、生成したＯＴＰをディスプレイ１６に表示する（ステップＳ８）。
【００６０】
ユーザ５は、トークン１のディスプレイ１６にＯＴＰが表示されると、トークン１に表示されたＯＴＰとユーザＩＤをクライアント３に入力し、クライアント３は、入力されたＯＴＰとユーザＩＤをサーバ２に送信する（ステップＳ９）。
【００６１】
サーバ２のＯＴＰ認証手段２０は、ＯＴＰ取得部２００がユーザ５からＯＴＰとユーザＩＤを取得すると、ＯＴＰ認証部２０１を作動させ、ＯＴＰ認証部２０１は、取得したユーザＩＤに関連付けられてサーバ２が記憶しているサーバ鍵２１０を取得する（ステップＳ１０）。
【００６２】
ＯＴＰ認証手段２０のＯＴＰ認証部２０１は、サーバ鍵２１０を取得すると、このときのサーバ時計２０２の時刻を基準とし、許容時刻に含まれる１分単位の時刻それぞれにおけるＯＴＰを、取得したサーバ鍵２１０を用いて生成し、図６に図示したように、許容時刻に含まれる１分単位のそれぞれとＯＴＰを関連付けて記憶しておく（ステップＳ１１）。
【００６３】
ＯＴＰ認証手段２０のＯＴＰ認証部５４は、許容時刻内のＯＴＰすべてを生成すると、ユーザから取得したユーザ５のＯＴＰが、生成したＯＴＰのいずれかと一致するか確認することで、クライアント３を操作しているユーザ５を認証する（ステップＳ１２）。
【００６４】
ユーザ５の認証に成功すると、時刻修正指示部２０３は、ユーザ５から取得したＯＴＰと一致するときＯＴＰが生成される時刻を生成時刻として割出し、割出した生成時刻とユーザ５を認証するときの時刻との差から、トークン時計１１とサーバ時計２０２の時刻ズレを算出し（ステップＳ１３）、トークン１に備えられたトークン時計１１の時刻を修正するための時刻修正メッセージを生成し（ステップＳ１４）、生成した時刻修正メッセージをクライアント３に送信する（ステップＳ１５）。
【００６５】
図８は、時刻修正メッセージを用いて、トークン１に備えられたトークン時計１１を修正する手順を示したフロー図である。図７のフローが実行され、サーバ２から時刻修正メッセージがクライアント３に送信されると、トークン１のテンキー１５の「＃」を長押しするなどして、トークン１に時刻修正を指示する（ステップＳ２０）。
【００６６】
トークン１は、時刻修正が指示されるとユーザ５のＰＩＮの入力を促す画面をディスプレイ１６に表示することで、ユーザ５にＰＩＮの入力を要求する（ステップＳ２１）。
【００６７】
ＰＩＮの入力を促す画面がトークン１のディスプレイ１６に表示されると、ユーザ５は、トークン１のテンキー１５を操作することで、ＰＩＮをトークン１に入力し（ステップＳ２２）、正当なユーザ５であるか確認するために、入力されたＰＩＮを照合する（ステップＳ２３）。
【００６８】
トークン１はＰＩＮの照合に成功すると、トークン１は時刻修正メッセージの入力を要求する画面をディスプレイ１６に表示し（ステップＳ２４）、ユーザ５は、テンキー１５を操作して、クライアント３に表示された時刻修正メッセージを入力する（ステップＳ２５）。
【００６９】
トークン１は時刻修正メッセージが入力されると、時刻修正手段１３を作動させ、トークン鍵１２を用いて時刻修正メッセージに含まれる修正時間を復号した後、修正時間に従い、トークン時計１１の時刻を修正し（ステップＳ２６）、トークン時計１１の時刻の修正結果をディスプレイ１６に表示する（ステップＳ２７）。
【００７０】
なお、本発明は、これまで説明した実施の形態に限定されることなく、種々の変形や変更が可能であって、それらも本発明の均等の範囲に含まれる。
【００７１】
例えば、上述した形態においては、例えば、図６に図示したように、許容時刻内のＯＴＰすべてを生成し、許容時刻内に生成されるＯＴＰに、ユーザ５から取得したＯＴＰと一致するＯＴＰが含まれるか確認していたが、許容範囲の下限或いは上限から順にＯＴＰを生成し、ＯＴＰを生成するごとにユーザから取得したＯＴＰと比較することで、許容時刻内に生成されるＯＴＰに、ユーザ５から取得したＯＴＰと一致するＯＴＰが含まれるか確認してもよい。
【００７２】
また、上述した形態においては、ユーザ５から取得したＯＴＰと同じＯＴＰを生成したときに利用した時刻を見つけることで、ＯＴＰの生成時刻を割出していたが、トークン１が生成するＯＴＰに、トークン１がＯＴＰを生成したときのトークン時計１１の時刻である生成時刻を含ませて、サーバ２はトークンが生成したＯＴＰから、ＯＴＰの生成時刻を割出すこともできる。
【００７３】
このとき、トークン１は、ＯＴＰを生成するときのトークン時計１１の時刻を生成時刻として、トークン鍵１２を用い可逆性のあるアルゴリズムで暗号化して含ませ、サーバ２は、生成時刻をサーバ鍵で復号しすることで生成時刻を割出し、生成時刻とサーバ２に備えられたサーバ時計２０２の時刻の差から、トークン時計１１とサーバ時計２０２の時刻ズレを算出する。
【００７４】
トークン１が生成時刻ををＯＴＰに含ませるときは、図７のステップＳ７で、トークン１は、ＯＴＰを生成するときのトークン時計１１の時刻を生成時刻とし、トークン鍵１２を用い可逆性のあるアルゴリズムで暗号化してＯＴＰに含ませ、図７のステップＳ１３で、サーバ２は、サーバ鍵２０２を用いて、ＯＴＰに含まれる生成時刻を復号し、ユーザ５を認証するときのサーバ２のサーバ時計２０２との時刻ズレを算出する。
【図面の簡単な説明】
【００７５】
【図１】本発明に係るトークンとサーバを説明する図。
【図２】トークンの外観図。
【図３】トークンのブロック図。
【図４】サーバにブロック図。
【図５】サーバのデータベースを説明する図。
【図６】サーバの時刻修正指示部が、時刻ズレを算出する仕組みを説明する図。
【図７】時刻修正メッセージをユーザに伝達するまでの手順を示したフロー図。
【図８】トークンの時刻を修正する手順を示したフロー図。
【符号の説明】
【００７６】
１  トークン
１０  ＯＴＰ生成手段
１１  トークン時計
１２  トークン鍵
１３  時刻修正手段
１４  ボタン
１５  テンキー
１６  ディスプレイ
２  サーバ
２０  ＯＴＰ認証手段
２００  ＯＴＰ取得手段
２０１  ＯＴＰ認証部
２０２  サーバ時計
２０３  時刻修正指示部
２１  データベース
２１０  サーバ鍵
３  クライアント
４  ネットワーク
５  ユーザ
【図１】
2008198147.tif 000003
【図２】
2008198147.tif 000004
【図３】
2008198147.tif 000005
【図４】
2008198147.tif 000006
【図５】
2008198147.tif 000007
【図６】
2008198147.tif 000008
【図７】
2008198147.tif 000009
【図８】
2008198147.tif 000010