JP2012034292A - One-time authentication system - Google Patents
One-time authentication system Download PDFInfo
- Publication number
- JP2012034292A JP2012034292A JP2010173920A JP2010173920A JP2012034292A JP 2012034292 A JP2012034292 A JP 2012034292A JP 2010173920 A JP2010173920 A JP 2010173920A JP 2010173920 A JP2010173920 A JP 2010173920A JP 2012034292 A JP2012034292 A JP 2012034292A
- Authority
- JP
- Japan
- Prior art keywords
- phase
- seed
- authentication
- server
- client
- 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.)
- Granted
Links
- 230000006870 function Effects 0.000 claims description 62
- 230000006854 communication Effects 0.000 claims description 42
- 238000004891 communication Methods 0.000 claims description 38
- 238000000034 method Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 24
- 230000001174 ascending effect Effects 0.000 description 5
- 230000000717 retained effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Abstract
Description
本発明は、ワンタイム認証システムに関するものである。 The present invention relates to a one-time authentication system.
クライアントおよびサーバのそれぞれにおいて乱数などのシードを認証に成功するたびに更新し、次回認証時に、それらのシードからワンタイムIDを生成し、クライアントとサーバとの間で相互に認証を行うシステムがある(例えば、特許文献1参照)。 There is a system in which a seed such as a random number is updated each time the client and the server are successfully authenticated, a one-time ID is generated from the seed at the next authentication, and the client and the server authenticate each other. (For example, refer to Patent Document 1).
上述のようなシステムにおいて、次回認証用のクライアント側のシードは、クライアント側の装置に記憶される。このため、通常、ワンタイムIDによる認証を受けるために使用可能なクライアント側の装置は、シードが記憶されている装置に限定される。 In the system as described above, the client-side seed for next authentication is stored in the client-side device. For this reason, normally, client-side devices that can be used to receive authentication using a one-time ID are limited to devices that store seeds.
しかし、ワンタイムIDによる認証を受けるために使用可能なクライアント側の装置が限定されないようにするために、ICカードなどの書換可能な携帯型記憶装置にクライアント側のシードを記憶させてユーザがその携帯型記憶装置を携帯することが考えられる。そのようにすることで、ユーザが選択した装置に内蔵または接続されているリーダライタにより携帯型記憶装置からシードを読み取らせ、その装置にてワンタイムIDによる認証を受けることができる。 However, in order not to limit the client-side devices that can be used for authentication by the one-time ID, the client-side seed is stored in a rewritable portable storage device such as an IC card, and the user can It is conceivable to carry a portable storage device. By doing so, the seed can be read from the portable storage device by the reader / writer built in or connected to the device selected by the user, and authentication by the one-time ID can be performed by the device.
このような認証は、セッション内で複数回、繰り返し実行され、認証に成功するたびにシード、ひいてはワンタイムIDが更新される。 Such authentication is repeatedly performed a plurality of times within the session, and the seed and thus the one-time ID are updated each time authentication is successful.
しかし、ICカードなどに内蔵される不揮発性メモリには書込可能回数に上限(つまり寿命)があり、書込回数を減らしたいことから、携帯型記憶装置に次セッション用のシードを記憶させる場合、クライアント側の装置は、セッション内においてシードが更新されても携帯型記憶装置に記憶させずにRAMに保持しておき、セッション終了時(またはセッション終了後)に次回認証用のシードを携帯型記憶装置に書き込むことになる。 However, there is an upper limit (that is, the life) of the number of writable times in a nonvolatile memory built in an IC card or the like, and the seed for the next session is stored in the portable storage device because it is desired to reduce the number of times of writing. Even if the seed is updated in the session, the client side device keeps it in the RAM without storing it in the portable storage device, and the seed for the next authentication is portable at the end of the session (or after the session ends). It will be written to the storage device.
したがって、少なくともセッション終了時まで、携帯型記憶装置をリーダライタによる書込可能な位置に配置させておく必要があり、利便性がよくない。また、セッション途中で携帯型記憶装置をリーダライタから離脱させてしまうと、次セッション時に、シードが携帯型記憶装置にないため、正規ユーザであっても、次セッションの初回認証時に、ワンタイムIDによる認証を受けることができなくなってしまう。 Therefore, it is necessary to arrange the portable storage device at a position writable by the reader / writer at least until the end of the session, which is not convenient. Also, if the portable storage device is removed from the reader / writer during the session, the seed is not in the portable storage device at the next session, so even a legitimate user can receive a one-time ID at the first authentication of the next session. You will not be able to receive authentication by.
本発明は、上記の問題に鑑みてなされたものであり、セッション開始後短時間で、シードを保持する携帯型記憶装置を離脱可能とし、携帯型記憶装置が離脱しても、その後、継続的に認証を繰り返し行うことができるワンタイム認証システム、並びにそのシステムで使用可能な端末装置およびクライアントコンピュータプログラムを得ることを目的とする。 The present invention has been made in view of the above problems, and allows a portable storage device holding a seed to be detached in a short time after the start of a session. It is an object of the present invention to obtain a one-time authentication system capable of repeatedly performing authentication, a terminal device and a client computer program usable in the system.
上記の課題を解決するために、本発明では以下のようにした。 In order to solve the above problems, the present invention is configured as follows.
本発明に係るワンタイム認証システムは、サーバ装置と、クライアント装置と、所定の位置に配置されるとクライアント装置によるデータ読み書きが可能になる携帯型記憶装置とを備える。サーバ装置およびクライアント装置は、それぞれシードを生成し、シードを暗号化して相互に送信し、シードからワンタイム認証子を生成して送信し、シードに基づいて互いにワンタイム認証子についての認証を行い、認証に成功するたびに次回認証用シードを生成してシードを更新していく。携帯型記憶装置は、サーバ装置およびクライアント装置のシードを保持する。クライアント装置は、フェーズ1において、携帯型記憶装置からシードを読み出し、読み出したシードに基づいてワンタイム認証子を生成して送信し、ワンタイム認証子について認証に成功すると、フェーズ1の次回認証用シードを携帯型記憶装置に書き込み、フェーズ1の後のフェーズ2において、フェーズ1の次回認証用シードから当該フェーズ2の初回認証用シードを導出し、初回認証用シードからワンタイム認証子を生成し、ワンタイム認証子について認証に成功すると、フェーズ2での次回認証用シードを生成してシードを更新する。サーバ装置は、フェーズ1の次回認証用シードを次回のフェーズ1での認証時まで保持するとともに、その次回認証用シードからフェーズ2の初回認証用シードを導出し、フェーズ2においてワンタイム認証子について認証に成功すると、フェーズ2での次回認証用シードを生成してシードを更新する。
The one-time authentication system according to the present invention includes a server device, a client device, and a portable storage device that can read and write data by the client device when placed at a predetermined position. Each of the server device and the client device generates a seed, encrypts and transmits the seed to each other, generates and transmits a one-time authenticator from the seed, and authenticates the one-time authenticator with each other based on the seed. Each time authentication is successful, a seed for the next authentication is generated and the seed is updated. The portable storage device holds the seeds of the server device and the client device. In
これにより、フェーズ1での認証用のシードとフェーズ2での認証用のシードとを別々に設け、携帯型記憶装置に格納されているシードを使用してフェーズ1での認証を実行し、携帯型記憶装置に格納されているシードを更新し、その後は、フェーズ2での認証を繰り返し行っていく。このため、フェーズ1での認証が完了すれば、ユーザは、携帯型記憶装置を、端末装置やリーダから離脱することができる。したがって、セッション開始後短時間で、シードを保持する携帯型記憶装置を離脱可能とし、携帯型記憶装置が離脱しても、その後、継続的に認証を繰り返し行うことができる。
Thereby, the seed for authentication in
また、本発明に係るワンタイム認証システムは、上記のワンタイム認証システムに加え、次のようにしてもよい。この場合、携帯型記憶装置およびサーバ装置は、シードとして、フェーズ1クライアント側シードおよびフェーズ1サーバ側シードを保持する。クライアント装置は、
(a1)携帯型記憶装置からフェーズ1クライアント側シードおよびフェーズ1サーバ側シードを読み出し、
(a2)フェーズ1クライアント側シードおよびフェーズ1サーバ側シードからフェーズ1クライアント側ワンタイム認証子を生成し、
(a3)次回認証用フェーズ1クライアント側シードを生成し、
(a4)フェーズ1クライアント側ワンタイム認証子および暗号化後の次回認証用フェーズ1クライアント側シードをサーバ装置へ送信し、
(a5)サーバ装置からフェーズ1サーバ側ワンタイム認証子および暗号化後の次回認証用フェーズ1サーバ側シードを受信し、
(a6)フェーズ1サーバ側ワンタイム認証子について認証に成功すると、次回認証用フェーズ1クライアント側シードおよび次回認証用フェーズ1サーバ側シードを携帯型記憶装置に書き込み、
(a7)フェーズ1サーバ側ワンタイム認証子について認証に成功すると、次回認証用フェーズ1クライアント側シードおよび次回認証用フェーズ1サーバ側シードから初回認証用フェーズ2クライアント側シードおよび初回認証用フェーズ2サーバ側シードを導出し、
(a8)初回認証用フェーズ2クライアント側シードおよび初回認証用フェーズ2サーバ側シードから初回認証用フェーズ2クライアント側ワンタイム認証子を生成し、
(a9)次回認証用フェーズ2クライアント側シードを生成し、
(a10)初回認証用フェーズ2クライアント側ワンタイム認証子および暗号化後の次回認証用フェーズ2クライアント側シードをサーバ装置へ送信し、
(a11)サーバ装置からフェーズ2サーバ側ワンタイム認証子および暗号化後の次回認証用フェーズ2サーバ側シードを受信し、
(a12)フェーズ2サーバ側ワンタイム認証子について認証に成功すると、次回認証用フェーズ2クライアント側シードおよび次回認証用フェーズ2サーバ側シードから次回認証用フェーズ2クライアント側ワンタイム認証子を生成する。
また、サーバ装置は、
(b1)クライアント装置からフェーズ1クライアント側ワンタイム認証子および暗号化後の次回認証用フェーズ1クライアント側シードを受信し、
(b2)フェーズ1クライアント側ワンタイム認証子について認証に成功すると、次回認証用フェーズ1サーバ側シードを生成し、
(b3)次回認証用フェーズ1クライアント側シードおよびフェーズ1サーバ側シードからフェーズ1サーバ側ワンタイム認証子を生成し、
(b4)クライアント装置へフェーズ1サーバ側ワンタイム認証子および暗号化後の次回認証用フェーズ1サーバ側シードを送信し、
(b5)次回認証用フェーズ1クライアント側シードおよび次回認証用フェーズ1サーバ側シードから初回認証用フェーズ2クライアント側シードおよび初回認証用フェーズ2サーバ側シードを導出し、
(b6)クライアント装置からフェーズ2クライアント側ワンタイム認証子および暗号化後の次回認証用フェーズ2クライアント側シードを受信し、
(b7)初回認証用フェーズ2クライアント側シードおよび初回認証用フェーズ2サーバ側シードに基づき、初回認証用フェーズ2クライアント側ワンタイム認証子について認証に成功すると、次回認証用フェーズ2サーバ側シードを生成し、
(b8)次回認証用フェーズ2クライアント側シードおよび初回認証用フェーズ2サーバ側シードから初回認証用フェーズ2サーバ側ワンタイム認証子を生成し、
(b9)クライアント装置へ初回認証用フェーズ2サーバ側ワンタイム認証子および暗号化後の次回認証用フェーズ2サーバ側シードを送信する。
In addition to the above one-time authentication system, the one-time authentication system according to the present invention may be as follows. In this case, the portable storage device and the server device hold the
(A1) Read the
(A2) Generate a
(A3) Generate the
(A4) Send the
(A5) receiving the
(A6) If the authentication is successful for the
(A7) If the authentication is successful for the
(A8) Generate an
(A9) Generate the
(A10) Send the
(A11) receiving the
(A12) If the authentication is successful for the
The server device
(B1) receiving a
(B2) When the authentication is successful for the
(B3) Generate a
(B4) Send the
(B5) Deriving the
(B6) receiving the
(B7) Based on the
(B8) A first-
(B9) The
また、本発明に係るワンタイム認証システムは、上記のワンタイム認証システムのいずれかに加え、次のようにしてもよい。この場合、フェーズ1クライアント側ワンタイム認証子およびフェーズ2クライアント側ワンタイム認証子は、同一の一方向性関数で計算され、その一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数である。そして、フェーズ1クライアント側ワンタイム認証子についての引数の順序が、フェーズ1クライアント側シード、フェーズ1サーバ側シードの順序である場合、フェーズ2クライアント側ワンタイム認証子についての引数の順序が、フェーズ2サーバ側シード、フェーズ2クライアント側シードの順序である。一方、フェーズ1クライアント側ワンタイム認証子についての引数の順序が、フェーズ1サーバ側シード、フェーズ1クライアント側シードの順序である場合、フェーズ2クライアント側ワンタイム認証子についての引数の順序が、フェーズ2クライアント側シード、フェーズ2サーバ側シードの順序である。
In addition to the one-time authentication system described above, the one-time authentication system according to the present invention may be as follows. In this case, the
これにより、フェーズ1クライアント側ワンタイム認証子およびフェーズ2クライアント側ワンタイム認証子に使用する関数値のデータフォーマットが同一になる。このため、盗聴してもフェーズ1のワンタイム認証子かフェーズ2のワンタイム認証子かがデータフォーマットから判別できない。また、引数の順序を変えているため、フェーズ1のワンタイム認証子とフェーズ2の初回のワンタイム認証子とが一致しにくい。したがって、耐タンパ性が向上する。
Thereby, the data formats of the function values used for the
また、本発明に係るワンタイム認証システムは、上記のワンタイム認証システムのいずれかに加え、次のようにしてもよい。フェーズ1サーバ側ワンタイム認証子およびフェーズ2サーバ側ワンタイム認証子は、同一の一方向性関数で計算され、その一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数である。そして、フェーズ1サーバ側ワンタイム認証子についての引数の順序が、次回認証用フェーズ1クライアント側シード、フェーズ1サーバ側シードの順序である場合、フェーズ2サーバ側ワンタイム認証子についての引数の順序が、フェーズ2サーバ側シード、次回認証用フェーズ2クライアント側シードの順序である。一方、フェーズ1サーバ側ワンタイム認証子についての引数の順序が、フェーズ1サーバ側シード、次回認証用フェーズ1クライアント側シードの順序である場合、フェーズ2サーバ側ワンタイム認証子についての引数の順序が、次回認証用フェーズ2クライアント側シード、フェーズ2サーバ側シードの順序である。
In addition to the one-time authentication system described above, the one-time authentication system according to the present invention may be as follows. The
これにより、フェーズ1サーバ側ワンタイム認証子およびフェーズ2サーバ側ワンタイム認証子に使用する関数値のデータフォーマットが同一になる。このため、盗聴してもフェーズ1のワンタイム認証子かフェーズ2のワンタイム認証子かがデータフォーマットから判別できない。また、引数の順序を変えているため、フェーズ1のワンタイム認証子とフェーズ2の初回のワンタイム認証子とが一致しにくい。したがって、耐タンパ性が向上する。
As a result, the data formats of the function values used for the
また、本発明に係るワンタイム認証システムは、上記のワンタイム認証システムのいずれかに加え、次のようにしてもよい。この場合、クライアント装置は、次回認証用フェーズ1クライアント側シードおよび次回認証用フェーズ1サーバ側シードを携帯型記憶装置に書き込むまでメモリで保持し、次回認証用フェーズ1クライアント側シードおよび次回認証用フェーズ1サーバ側シードを、携帯型記憶装置に書き込んだ後、メモリから消去する。
In addition to the one-time authentication system described above, the one-time authentication system according to the present invention may be as follows. In this case, the client device holds the
これにより、フェーズ1のシードがクライアント装置に残らないため、フェーズ1の認証が完了した後に、次回、フェーズ1で使用するシードをクライアント装置から不正に入手することが困難になる。
Accordingly, since the seed of
また、本発明に係るワンタイム認証システムは、上記のワンタイム認証システムのいずれかに加え、次のようにしてもよい。この場合、携帯型記憶装置およびサーバ装置は、フェーズ1共通暗号鍵を保持する。クライアント装置は、携帯型記憶装置からフェーズ1共通暗号鍵を読み出し、フェーズ1共通暗号鍵で、次回認証用フェーズ1クライアント側シードを暗号化し、フェーズ1サーバ側ワンタイム認証子について認証に成功すると、フェーズ1共通暗号鍵を更新し、更新後のフェーズ1共通暗号鍵を携帯型記憶装置に書き込み、更新後のフェーズ1共通暗号鍵からフェーズ2共通暗号鍵の初期値を導出し、フェーズ2共通暗号鍵で、次回認証用フェーズ2クライアント側シードを暗号化し、フェーズ2サーバ側ワンタイム認証子について認証に成功すると、フェーズ2共通暗号鍵を更新する。一方、サーバ装置は、フェーズ1共通暗号鍵で、次回認証用フェーズ1サーバ側シードを暗号化し、フェーズ1クライアント側ワンタイム認証子について認証に成功すると、フェーズ1共通暗号鍵を更新し、更新後のフェーズ1共通暗号鍵を次回のフェーズ1での認証時まで保持するとともに、更新後のフェーズ1共通暗号鍵からフェーズ2共通暗号鍵の初期値を導出し、フェーズ2共通暗号鍵で、次回認証用フェーズ2サーバ側シードを暗号化し、フェーズ2クライアント側ワンタイム認証子について認証に成功すると、フェーズ2共通暗号鍵を更新する。
In addition to the one-time authentication system described above, the one-time authentication system according to the present invention may be as follows. In this case, the portable storage device and the server device hold the
これにより、フェーズ1で使用される共通暗号鍵とフェーズ2で使用される共通暗号鍵とを別々に設け、携帯型記憶装置に格納されているフェーズ1共通暗号鍵を使用して暗号化されたシードの送受を行い、フェーズ1での認証が成功すると、携帯型記憶装置に格納されているフェーズ1共通暗号鍵を更新し、また、フェーズ2での認証が成功するたびに、フェーズ2共通暗号鍵を更新していく。このため、フェーズ1とフェーズ2と別々に共通暗号鍵が更新されていき、耐タンパ性が向上する。
As a result, the common encryption key used in
また、本発明に係るワンタイム認証システムは、上記のワンタイム認証システムのいずれかに加え、次のようにしてもよい。この場合、クライアント装置は、更新後のフェーズ1共通暗号鍵を携帯型記憶装置に書き込むまでメモリで保持し、更新後のフェーズ1共通暗号鍵を、携帯型記憶装置に書き込んだ後、メモリから消去する。
In addition to the one-time authentication system described above, the one-time authentication system according to the present invention may be as follows. In this case, the client device holds the updated
これにより、フェーズ1で使用する共通暗号鍵がクライアント装置に残らないため、フェーズ1の認証が完了した後に、次回、フェーズ1で使用する共通暗号鍵をクライアント装置から不正に入手することが困難になる。
As a result, since the common encryption key used in
本発明に係る端末装置は、ネットワークを介してサーバ装置と通信する通信処理部と、シードを生成するとともに通信処理部を使用してサーバ装置からサーバ装置のシードを受信し、生成したシードと受信したシードからワンタイム認証子を生成して通信処理部を使用して送信し、シードに基づいて、サーバ装置から受信されたワンタイム認証子についての認証を行い、認証に成功するたびに次回認証用シードを生成してシードを更新していく認証処理部とを備える。そして、認証処理部は、フェーズ1において、所定の位置に配置されると当該端末装置によるデータ読み書きが可能になる携帯型記憶装置からサーバ装置側および当該端末装置側のシードを読み出し、読み出したシードに基づいてワンタイム認証子を生成して送信し、ワンタイム認証子について認証に成功すると、サーバ装置側および当該端末装置側についてのフェーズ1の次回認証用シードを携帯型記憶装置に書き込み、フェーズ1の後のフェーズ2において、フェーズ1の次回認証用シードから当該フェーズ2の初回認証用シードを導出し、初回認証用シードからワンタイム認証子を生成し、ワンタイム認証子について認証に成功すると、フェーズ2での次回認証用シードを生成してシードを更新する。
A terminal device according to the present invention generates a seed from a communication processing unit that communicates with a server device via a network, and generates a seed from the server device using the communication processing unit, and receives the generated seed and reception A one-time authenticator is generated from the seed and sent using the communication processing unit, and the one-time authenticator received from the server device is authenticated based on the seed. And an authentication processing unit for generating a seed and updating the seed. Then, in
本発明に係るクライアントコンピュータプログラムは、端末装置内のコンピュータを、シードを生成するとともにサーバ装置からサーバ装置のシードを受信し、生成したシードと受信したシードからワンタイム認証子を生成して送信し、シードに基づいて、サーバ装置から受信されたワンタイム認証子についての認証を行い、認証に成功するたびに次回認証用シードを生成してシードを更新していく認証処理部として機能させるためのクライアントコンピュータプログラムである。そして、その認証処理部は、フェーズ1において、所定の位置に配置されると端末装置によるデータ読み書きが可能になる携帯型記憶装置からサーバ装置側および端末装置側のシードを読み出し、読み出したシードに基づいてワンタイム認証子を生成して送信し、ワンタイム認証子について認証に成功すると、サーバ装置側および当該端末装置側についてのフェーズ1の次回認証用シードを携帯型記憶装置に書き込み、フェーズ1の後のフェーズ2において、フェーズ1の次回認証用シードから当該フェーズ2の初回認証用シードを導出し、初回認証用シードからワンタイム認証子を生成し、ワンタイム認証子について認証に成功すると、フェーズ2での次回認証用シードを生成してシードを更新する。
The client computer program according to the present invention generates a seed from the computer in the terminal device, receives the seed of the server device from the server device, and generates and transmits a one-time authenticator from the generated seed and the received seed. , Based on the seed, to authenticate the one-time authenticator received from the server device, and to function as an authentication processing unit that generates the next authentication seed and updates the seed each time authentication is successful A client computer program. Then, in
本発明によれば、セッション開始後短時間で、シードを保持する携帯型記憶装置を離脱可能とし、携帯型記憶装置が離脱しても、その後、継続的に認証を繰り返し行うことができるワンタイム認証システムが得られる。 According to the present invention, the portable storage device that holds the seed can be detached in a short time after the session starts, and even if the portable storage device is detached, the authentication can be continuously repeated thereafter. An authentication system is obtained.
以下、図に基づいて本発明の実施の形態を説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
実施の形態1.
図1は、本発明の実施の形態に係るワンタイム認証システムの構成を示すブロック図である。 FIG. 1 is a block diagram showing a configuration of a one-time authentication system according to an embodiment of the present invention.
図1に示すシステムでは、クライアント装置としての端末装置1にICカード用リーダライタ2が接続されており、また、端末装置1は、ネットワーク3に接続されており、そのネットワーク3にはサーバ装置4が接続されている。端末装置1は、ICカード5が所定の位置(例えばリーダライタ2の上)に配置されている時に、リーダライタ2を使用して、ICカード5に対してデータの読み書きを行うことができるとともに、サーバ装置4との間でデータ通信を行うことができる。
In the system shown in FIG. 1, an IC card reader /
端末装置1は、パーソナルコンピュータなどの装置である。ネットワーク3は、有線および/または無線のLAN(Local Area Network)、および/またはインターネットなどのWAN(Wide Area Network)を含んでいる。ICカード5は、Ferica(登録商標)などといった、データ読み書き可能な不揮発性メモリ領域を有するカードである。この実施の形態1では、ICカード5は、携帯型記憶装置として使用される。
The
ICカード5は、シードを保持する。シードは、ワンタイム認証子を生成するために使用されるデータであって、この実施の形態では、乱数が使用される。ワンタイム認証子は、認証時に1度だけ使用可能なID(ワンタイムID)またはパスワード(ワンタイムパスワード)である。この実施の形態では、ワンタイム認証子は、ワンタイムIDとされる。
The
サーバ装置4および端末装置1は、それぞれシードを生成し、認証に成功するたびにシードを更新していき、そのシードを暗号化して相互に送受し、両者のシードからワンタイム認証子を生成し、シードに基づいて、互いにワンタイム認証子についての認証を行う。なお、以下では、ワンタイム認証子についての認証のことを、ワンタイム認証という。
Each of the
サーバ装置4および端末装置1は、フェーズ1およびフェーズ2のワンタイム認証を行う。フェーズ1は、セッション開始後の初回のワンタイム認証を行うフェーズであり、フェーズ2は、フェーズ1に続くフェーズである。
The
フェーズ1において、端末装置1は、ICカード5から両者のシードを読み出し、そのシードに基づいてワンタイム認証子を生成してサーバ装置4へ送信し、ワンタイム認証子について認証に成功すると、次回認証用シードをICカード5に書き込む。
In
フェーズ1の後のフェーズ2において、端末装置1は、フェーズ1の次回認証用シードから当該フェーズ2の初回認証用シードを導出し、初回認証用シードからワンタイム認証子を生成し、ワンタイム認証子について認証に成功すると、フェーズ2での次回認証用シードを生成し次回認証用シードに基づいてワンタイム認証子を生成する。
In
一方、サーバ装置4は、フェーズ1の次回認証用シードを次回のフェーズ1での認証時まで保持するとともに、その次回認証用シードからフェーズ2の初回認証用シードを導出し、ワンタイム認証子について認証に成功すると、フェーズ2での次回認証用シードを生成し次回認証用シードに基づいてワンタイム認証子を生成する。
On the other hand, the
なお、図1では、ICカード5は、1枚だけであるが、2枚以上のICカード5のそれぞれに異なるシードを保持させて、それぞれ異なるワンタイム認証子で認証を行うことも可能である。また、図1では、端末装置1およびリーダライタ2も1組のみであるが、同様のものが複数組、ネットワーク3に接続されていてもよい。
In FIG. 1, there is only one
以下、上記システムにおける各装置の構成および動作について説明する。 The configuration and operation of each device in the system will be described below.
(1)各装置の構成 (1) Configuration of each device
図2は、図1における端末装置1の構成を示すブロック図である。
FIG. 2 is a block diagram showing the configuration of the
図2に示すように、端末装置1は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13などを有するコンピュータを内蔵する。
As illustrated in FIG. 2, the
CPU11は、プログラムを実行し、プログラムに記述された処理を実行する演算処理装置である。また、ROM12は、プログラムおよびデータを予め記憶した不揮発性のメモリである。また、RAM13は、プログラムを実行する際にそのプログラムおよびデータを一時的に記憶する揮発性のメモリである。
The
また、インタフェース14は、記憶装置15を接続可能なインタフェース回路であり、SCSI(Small Computer System Interface )、IDE(Integrated Device Electronics )互換のものなどである。
The
また、記憶装置15は、インタフェース14に接続され、図示せぬオペレーティングシステム、ワンタイム認証プログラム31、アプリケーションプログラムなどを格納する記録媒体を有する装置である。記憶装置15としては、ハードディスクドライブ、SSD(Solid State Disk)などが使用される。
The
また、インタフェース16は、通信装置17を接続可能なインタフェース回路である。通信装置17は、ネットワークインタフェースカード、モデムなどといったネットワーク3に接続可能な装置である。
The
また、インタフェース18は、IEEE1394、USB(Universal Serial Bus)などといった周辺機器インタフェースであって、リーダライタ2を接続可能なインタフェース回路である。
The
また、インタフェース20は、入力装置21を接続可能なインタフェース回路である。入力装置21は、キーボード、マウスなどといったユーザ操作を受け付けてそのユーザ操作に応じた信号を出力する装置である。
The
また、画像処理回路22は、画像データを書き込まれると、そのデータに対応する画像信号を出力する回路である。この画像処理回路22には、その画像信号に基づいて画像を表示する表示装置23が接続可能である。
The
CPU11、ROM12、RAM13、インタフェース14,16,18,20および画像処理回路22は、バスやコントローラチップによって相互にデータ通信可能に接続されている。
The
図3は、図2に示す端末装置1において実現される処理部を示すブロック図である。図3に示すように、この端末装置1において、リーダライタ制御部41、通信処理部42、および認証処理部43が実現される。
FIG. 3 is a block diagram showing a processing unit realized in the
リーダライタ制御部41は、リーダライタ2を制御するドライバであって、ICカード5に対するデータの読み書きを実行する。
The reader /
通信処理部42は、通信装置17を使用して、所定の通信プロトコルでサーバ装置4とネットワーク3を介してデータ通信を行う。
The
認証処理部43は、CPU11でワンタイム認証プログラム31が実行されることにより実現され、リーダライタ制御部41および通信処理部42を使用して、サーバ装置4との相互認証におけるクライアント側の処理を実行する。
The
図4は、図1におけるサーバ装置4の構成を示すブロック図である。
FIG. 4 is a block diagram showing the configuration of the
図4において、CPU51は、プログラムを実行し、プログラムに記述された処理を実行する演算処理装置である。また、ROM52は、プログラムおよびデータを予め記憶した不揮発性のメモリである。また、RAM53は、プログラムを実行する際にそのプログラムおよびデータを一時的に記憶するメモリである。
In FIG. 4, a
また、インタフェース54は、記憶装置55を接続可能なインタフェース回路であり、SCSI、IDE互換のものなどである。記憶装置55は、インタフェース54に接続され、図示せぬオペレーティングシステム、ワンタイム認証プログラム61、認証に使用されるデータなどを格納する記録媒体を有する装置である。記憶装置55としては、ハードディスクドライブ、SSDなどが使用される。記憶装置55には、認証に使用されるデータとして、シードテーブル71、認証子テーブル72、およびカード属性テーブル73が保持されている。
The
シードテーブル71は、最後の認証時に更新された、フェーズ1およびフェーズ2のそれぞれについての次回認証用シードおよび次回認証用共通暗号鍵を有する。次回認証用シードおよび次回認証用共通暗号鍵は、1または複数のICカードのそれぞれについて別々に保持される。
The seed table 71 has a next authentication seed and a next authentication common encryption key for each of the
認証子テーブル72は、最後の認証時に更新された、フェーズ1およびフェーズ2のそれぞれについての次回認証用のクライアント側ワンタイム認証子を有する。認証子テーブル72は、フェーズ1テーブル72aとフェーズ2テーブル72bとを含む。フェーズ1テーブル72aは、フェーズ1についての次回認証用のクライアント側ワンタイム認証子を有し、とフェーズ2テーブル72bは、フェーズ2についての次回認証用のクライアント側ワンタイム認証子を有する。次回認証用のクライアント側ワンタイム認証子は、1または複数のICカードのそれぞれについて別々に保持される。
The authenticator table 72 has a client-side one-time authenticator for the next authentication for each of the
カード属性テーブル73は、ICカード5のカードID、およびそのカードIDに関連付けられている属性情報(カード所有者情報など)を有するテーブルである。カード属性テーブル73は、ワンタイム認証子がワンタイムパスワードであるときに、端末装置1からワンタイム認証子とともに受信されるカードIDの正当性を判定する際に参照される。
The card attribute table 73 is a table having a card ID of the
また、インタフェース56は、通信装置57を接続可能なインタフェース回路である。通信装置57は、ネットワークインタフェースカード、モデムなどといったネットワーク3に接続可能な装置である。
The
CPU51、ROM52、RAM53、およびインタフェース54,56は、バスやコントローラチップによって相互にデータ通信可能に接続されている。
The
図5は、図2に示すサーバ装置4において実現される処理部を示すブロック図である。図5に示すように、このサーバ装置4において、通信処理部81、およびサーバ側認証処理部82が実現される。
FIG. 5 is a block diagram showing a processing unit realized in the
通信処理部81は、通信装置57を使用して、所定の通信プロトコルで端末装置1とネットワーク3を介してデータ通信を行う。
The
サーバ側認証処理部82は、CPU51でワンタイム認証プログラム61が実行されることにより実現され、通信処理部81を使用して、1または複数のクライアント装置(端末装置1など)との相互認証におけるサーバ側の処理を実行する。
The server-side
図6は、図1におけるICカード5の構成を示すブロック図である。
FIG. 6 is a block diagram showing the configuration of the
ICカード5は、通信部91、不揮発性メモリ92、および制御部93を有する。通信部91は、リーダライタ2との通信のためのアンテナや通信回路を有する。不揮発性メモリ92は、フラッシュメモリなどであって、ユーザが書換可能なユーザ領域と、ユーザが書換可能ではない非ユーザ領域とを有する。ICカードに固有なカードID101は、予め非ユーザ領域に保持されており、シード102は、ユーザ領域に保持される。制御部93は、リーダライタ2から受信されるコマンドに従って、不揮発性メモリ92に対するデータの読み書きを行う回路である。
The
(2)各装置の動作 (2) Operation of each device
図7は、図1に示すシステムにおいて実行されるワンタイム認証子を使用して繰り返し行われる認証について説明するシーケンス図である。 FIG. 7 is a sequence diagram for explaining the authentication repeatedly performed using the one-time authenticator executed in the system shown in FIG.
まず、セッション開始時(ステップS1)に、ユーザは、ICカード5をリーダライタ2に載置しておく。
First, at the start of a session (step S1), the user places the
端末装置1では、認証処理部43は、リーダライタ制御部41を使用してリーダライタ2を制御し、ICカード5からシード102などを読み込む(ステップS2)。
In the
そして、認証処理部43は、フェーズフラグPに、フェーズ1を示す値(ここでは1)をセットする(ステップS3)。フェーズフラグPは、認証のフェーズを示すデータである。フェーズフラグPの値から、現時点のフェーズが識別され、ひいては、フェーズ1からフェーズ2へ移行したことも判定される。
And the
次に、端末装置1の認証処理部43とサーバ装置4のサーバ側認証処理部82との間で、フェーズ1でのワンタイム認証が実行される(ステップS4)。このとき、認証処理部43は、読み込んだシードからワンタイム認証子を生成し、また、次回認証用シードを生成して暗号化し、ワンタイム認証子および暗号化された次回認証用シードをサーバ装置4へ送信する。サーバ側認証処理部82は、そのワンタイム認証子および暗号化された次回認証用シードを受信し、そのワンタイム認証子が正当なものであるか否かを判定する。サーバ側認証処理部82は、そのワンタイム認証子が正当なものであれば、クライアントの次回認証用シードを復号して保持する。
Next, one-time authentication in the
なお、フェーズ1のクライアント側シードの初期値、サーバ側シードの初期値、および共通暗号鍵の初期値は、ICカード5とサーバ装置4に予めセットされる。サーバ装置4には、ICカード5に関連付けて、それらの初期値がセットされる。
Note that the initial value of the client-side seed, the initial value of the server-side seed, and the initial value of the common encryption key in
サーバ装置4では、シードテーブル71にICカード5のシード102と同一のシードが保持されており、また、フェーズ1の次回認証用クライアント側ワンタイム認証子が、認証子テーブル72に保持されている。次回認証用クライアント側ワンタイム認証子は、前回の認証時に生成され、認証子テーブル72に書き込まれたものである。この次回認証用クライアント側ワンタイム認証子は、端末装置1から送信されてくるワンタイム認証子の正当性判定に使用される。つまり、端末装置1から送信されてきたワンタイム認証子が、認証子テーブル72に保持されているワンタイム認証子と一致すると、そのワンタイム認証子は正当なものであると判定される。
In the
なお、フェーズ1のシードの初期値は、予めICカード5およびサーバ装置4にセットされ、フェーズ1の認証が成功するたびに、フェーズ1のシードの値は更新されていく。
The initial value of the seed of
フェーズ1でのワンタイム認証が成功すると、サーバ装置4では、サーバ側認証処理部82は、次回認証用シードからクライアント側ワンタイム認証子を生成し、認証子テーブル72において、ICカード5についてのフェーズ1の次回認証用クライアント側ワンタイム認証子を更新する。一方、端末装置1の認証処理部43は、次回認証用シードに基づいて、ICカード5内のシード102を更新する(ステップS5)。
When the one-time authentication in the
この時点で、ICカード5をリーダライタ2から離脱させることが可能となる。このため、認証処理部43は、オーディオ出力やビデオ出力を使用して、ICカード5をリーダライタ2から離脱させることが可能となったことを、ユーザに報知するようにしてもよい。
At this point, the
そして、認証処理部43は、フェーズフラグPに、フェーズ2を示す値(ここでは2)をセットする(ステップS6)。
And the
次に、認証が必要なタイミングでフェーズ2における初回の認証が実行される(ステップS7a)。
Next, the first authentication in
フェーズ2における初回の認証では、フェーズ1での認証で更新されたシード(つまり、フェーズ1の次回認証用シード)からフェーズ2用のシードの初期値が導出される。この実施の形態1では、フェーズ1での認証で更新されたシードの値が、フェーズ2用のシードの初期値とされる。
In the first authentication in
その後、端末装置1の認証処理部43とサーバ装置4のサーバ側認証処理部82との間で、フェーズ2でのワンタイム認証が実行される。
Thereafter, one-time authentication in the
フェーズ2の初回のワンタイム認証(ステップS7a)では、認証処理部43は、その初期値を有するシードからワンタイム認証子を生成し、また、フェーズ2の次回認証用シードを生成して暗号化し、ワンタイム認証子と暗号化された次回認証用シードをサーバ装置4へ送信する。
In the first one-time authentication in phase 2 (step S7a), the
一方、サーバ側認証処理部82は、フェーズ1の次回認証用シードからフェーズ2のシードの初期値を計算し、その初期値からICカード5についてのフェーズ2の初回のワンタイム認証子を計算する。そして、フェーズ2の初回のワンタイム認証(ステップS7a)において、サーバ側認証処理部82は、端末装置1からワンタイム認証子および暗号化された次回認証用シードを受信すると、受信したワンタイム認証子が正当なものであるか否かを、計算したワンタイム認証子に基づいて判定する。サーバ側認証処理部82は、そのワンタイム認証子が正当なものであれば、次回認証用シードを復号し保持する。
On the other hand, the server side
フェーズ2の初回のワンタイム認証に成功すると、フェーズ2の2回目以降のワンタイム認証(ステップS7)において、端末装置1の認証処理部43は、シードを生成し、同様にシードから生成したワンタイム認証子と、暗号化された次回認証用シードとをサーバ装置4へ送信する。
When the first one-time authentication in
一方、フェーズ2の2回目以降のワンタイム認証(ステップS7)において、サーバ側認証処理部82は、前回の認証時に送信されてきた次回認証用シードからワンタイム認証子を計算し、その後、端末装置1からワンタイム認証子および暗号化された次回認証用シードを受信すると、受信したワンタイム認証子が正当なものであるか否かを、計算したワンタイム認証子に基づいて判定する。サーバ側認証処理部82は、そのワンタイム認証子が正当なものであれば、次回認証用シードを復号し保持する(つまり、フェーズ2の次回認証用シードを更新する)。
On the other hand, in the second-time and subsequent one-time authentications in Step 2 (step S7), the server-side
以後、セッション終了(ステップS8)まで、認証が必要なタイミングでフェーズ2における認証が実行される(ステップS7)。
Thereafter, until the end of the session (step S8), authentication in
ここで、フェーズ1でのワンタイム認証(ステップS4)の詳細について説明する。図8は、図7におけるフェーズ1でのワンタイム認証(ステップS4)の詳細について説明するシーケンス図である。なお、以下において、フェーズ1の説明中のnとフェーズ2の説明中のnとは無関係である。
Here, details of the one-time authentication (step S4) in
ICカード5には、シード102の他に、フェーズ1用の共通暗号鍵も保持されている。また、サーバ装置4にも、シードの他に、同一の共通暗号鍵がフェーズ1用の共通暗号鍵として保持されている。つまり、フェーズ1の共通暗号鍵の初期値は、予めICカード5およびサーバ装置4にセットされている。そして、後述のように、フェーズ1の認証が成功するたびに、フェーズ1の共通暗号鍵の値は更新されていく。
In addition to the
端末装置1では、認証処理部43が、ICカード5から、シードR1(n−1)、シードQ1(n−1)、共通暗号鍵K1(n−1)を読み込み、RAM13上に保持する(ステップS2)。
In the
シードR1(n−1)は、今回(n−1)のワンタイム認証についてのフェーズ1クライアント側シードである。シードQ1(n−1)は、今回(n−1)のワンタイム認証についてのフェーズ1サーバ側シードである。共通暗号鍵K1(n−1)は、今回(n−1)のワンタイム認証時に、次回認証用のフェーズ1クライアント側シードR1(n)をサーバ装置4へ送信する際に、そのR1(n)を暗号化するためのフェーズ1共通暗号鍵である。
The seed R1 (n-1) is a
そして、まず、認証処理部43は、乱数Rを生成し、その乱数Rを、次回認証用のフェーズ1クライアント側シードR1(n)にセットする(ステップS21)。
First, the
そして、認証処理部43は、今回のワンタイム認証についての、フェーズ1クライアント側ワンタイム認証子C1(n−1)を生成する(ステップS22)。
And the
ワンタイム認証子C1(n−1)は、一方向性関数で計算される。この一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数である。この実施の形態では、この一方向性関数は、ハッシュ関数hcである。 The one-time authenticator C1 (n-1) is calculated with a one-way function. This one-way function is a function that takes two arguments and has different function values depending on the order of the arguments. In this embodiment, the one-way function is a hash function hc.
ワンタイム認証子C1(n−1)は、次式に従って計算される。 The one-time authenticator C1 (n-1) is calculated according to the following equation.
C1(n−1)=hc(R1(n−1),Q1(n−1)) C1 (n-1) = hc (R1 (n-1), Q1 (n-1))
ここで、ハッシュ関数hcの第1引数には、R1(n−1)が使用され、第2引数には、Q1(n−1)が使用される。 Here, R1 (n-1) is used as the first argument of the hash function hc, and Q1 (n-1) is used as the second argument.
また、認証処理部43は、所定の暗号化方式に従って、共通暗号鍵K1(n−1)で、R1(n)を暗号化する。なお、共通暗号鍵K1(n−1)での暗号化後のR1(n)を、K1(n−1)*R1(n)と表現する。
Further, the
そして、認証処理部43は、通信処理部42を使用して、ワンタイム認証子C1(n−1)およびK1(n−1)*R1(n)をサーバ装置4へ送信する(ステップS23)。このとき、通信処理部42は、ワンタイム認証子C1(n−1)およびK1(n−1)*R1(n)を1つのメッセージとして送信する。
And the
サーバ装置4では、サーバ側認証処理部82は、通信処理部81を使用して、そのメッセージを受信し、そのメッセージからワンタイム認証子C1(n−1)およびK1(n−1)*R1(n)を抽出し、受信したワンタイム認証子C1(n−1)が、保持しているフェーズ1用のクライアント側ワンタイム認証子に一致するか否かを判定する(ステップS24)。
In the
なお、端末装置1からサーバ装置4へのメッセージのデータフォーマット(ワンタイム認証子のサイズと位置、および暗号化されたシードのサイズと位置)は、フェーズ1とフェーズ2で同一である。
Note that the data format of the message from the
また、フェーズ1クライアント側ワンタイム認証子とフェーズ2クライアント側ワンタイム認証子は同一のデータフォーマット(つまり、同一データ長)を有し、暗号化後のフェーズ1クライアント側シードと、暗号化後のフェーズ2クライアント側シードとは同一のデータフォーマット(つまり、同一データ長)を有するため、受信データのみからでは、フェーズ1のワンタイム認証子かフェーズ2のワンタイム認証子かの区別がつかない。このため、サーバ側認証処理部82は、受信したワンタイム認証子が、フェーズ1テーブル72aに保持されているワンタイム認証子に一致するか否か、および受信したワンタイム認証子が、フェーズ2テーブル72bに保持されているワンタイム認証子に一致するか否かを判定し、受信したワンタイム認証子が、フェーズ1の正当なワンタイム認証子、フェーズ2の正当なワンタイム認証子、および不正なワンタイム認証子のいずれかであるかを判定する。
In addition, the
したがって、受信したワンタイム認証子C1(n−1)が、不正なワンタイム認証子であると判定した場合、サーバ側認証処理部82は、認証失敗と判定し、処理を終了する。
Therefore, when it is determined that the received one-time authenticator C1 (n-1) is an unauthorized one-time authenticator, the server-side
受信したワンタイム認証子C1(n−1)が、フェーズ1テーブル72aに保持しているフェーズ1用のクライアント側ワンタイム認証子に一致した場合、サーバ側認証処理部82は、認証成功と判定し、まず、乱数Qを生成し、その乱数Qを、次回認証用フェーズ1サーバ側シードQ1(n)にセットする(ステップS25)。
When the received one-time authenticator C1 (n-1) matches the client-side one-time authenticator for
また、サーバ側認証処理部82は、K1(n−1)*R1(n)を、シードテーブル71に保持している共通暗号鍵K1(n−1)で、R1(n)へ復号する。そして、サーバ側認証処理部82は、今回(n−1)のワンタイム認証用のフェーズ1サーバ側ワンタイム認証子S1(n−1)を生成する(ステップS26)。
The server-side
ワンタイム認証子S1(n−1)は、一方向性関数で計算される。この一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数である。この実施の形態では、この一方向性関数は、ハッシュ関数hsである。 The one-time authenticator S1 (n-1) is calculated with a one-way function. This one-way function is a function that takes two arguments and has different function values depending on the order of the arguments. In this embodiment, the one-way function is a hash function hs.
ワンタイム認証子S1(n−1)は、次式に従って計算される。 The one-time authenticator S1 (n-1) is calculated according to the following equation.
S1(n−1)=hs(R1(n),Q1(n−1)) S1 (n-1) = hs (R1 (n), Q1 (n-1))
ここで、ハッシュ関数hsの第1引数には、R1(n)が使用され、第2引数には、Q1(n−1)が使用される。なお、ハッシュ関数hsは、ハッシュ関数hcと同一の関数でもよいし、異なる関数でもよい。 Here, R1 (n) is used for the first argument of the hash function hs, and Q1 (n-1) is used for the second argument. The hash function hs may be the same function as the hash function hc or a different function.
また、サーバ側認証処理部82は、所定の暗号化方式に従って、共通暗号鍵K1(n−1)で、Q1(n)を暗号化する。なお、共通暗号鍵K1(n−1)での暗号化後のQ1(n)を、K1(n−1)*Q1(n)と表現する。
The server-side
そして、サーバ側認証処理部82は、通信処理部81を使用して、ワンタイム認証子S1(n−1)およびK1(n−1)*Q1(n)を端末装置1へ送信する(ステップS27)。このとき、通信処理部81は、ワンタイム認証子S1(n−1)およびK1(n−1)*Q1(n)を1つのメッセージとして送信する。
And the server side
なお、サーバ装置4から端末装置1へのメッセージのデータフォーマット(ワンタイム認証子のサイズと位置、および暗号化されたシードのサイズと位置)は、フェーズ1とフェーズ2とで同一である。
Note that the data format of the message from the
また、フェーズ1サーバ側ワンタイム認証子とフェーズ2サーバ側ワンタイム認証子は、同一のデータフォーマット(つまり、同一データ長)を有し、暗号化後のフェーズ1サーバ側シードと暗号化後のフェーズ2サーバ側シードは、同一のデータフォー待つ(つまり、同一データ長)を有するため、受信データのみからでは、フェーズ1のワンタイム認証子か、フェーズ2のワンタイム認証子がの区別がつかない。このため、端末装置1の認証処理部43は、フェーズフラグPの値でフェーズを特定し、受信したワンタイム認証子を、特定したフェーズのワンタイム認証子として取り扱う。
Also, the
端末装置1では、認証処理部43は、通信処理部42を使用して、そのメッセージを受信し、ワンタイム認証子S1(n−1)およびK1(n−1)*Q1(n)を抽出する。そして、認証処理部43は、フェーズフラグPの値に基づいて、受信したワンタイム認証子がフェーズ1のワンタイム認証子であることを特定する(ステップS28)。
In the
そして、認証処理部43は、R1(n)およびQ1(n−1)に基づいて、上述の式に従って正当なワンタイム認証子S1(n−1)の値を計算し、受信したワンタイム認証子S1(n−1)が、計算した値に一致するか否かを判定する(ステップS29)。
And the
このとき、受信したワンタイム認証子S1(n−1)が、計算した値に一致しない場合、認証処理部43は、認証失敗と判定し、処理を終了する。この場合、ICカード5用のシード102と共通暗号鍵は更新されず、次回のセッションで使用される。
At this time, if the received one-time authenticator S1 (n−1) does not match the calculated value, the
受信したワンタイム認証子S1(n−1)が、計算した値に一致した場合、認証処理部43は、認証成功と判定し、まず、K1(n−1)*Q1(n)を、保持している共通暗号鍵K1(n−1)で、Q1(n)へ復号し、この値を、次回認証用フェーズ1サーバ側シードにセットする。
When the received one-time authenticator S1 (n−1) matches the calculated value, the
そして、認証処理部43は、次回認証用フェーズ1共通暗号鍵K1(n)を次式に従って計算し、フェーズ1共通暗号鍵を更新する(ステップS30)。
Then, the
K1(n)=hk(K1(n−1),R1(n),Q1(n)) K1 (n) = hk (K1 (n-1), R1 (n), Q1 (n))
ここで、hkは、一方向性関数であって、かつハッシュ関数である。 Here, hk is a one-way function and a hash function.
このようにして、フェーズ1のワンタイム認証に成功した後、認証処理部43は、ICカード5内のシード102および共通暗号鍵を、R1(n)およびQ1(n)、並びにK1(n)で更新する(ステップS5)。
Thus, after successful one-time authentication in
一方、サーバ装置4においても、ワンタイム認証子S1(n−1)の送信後、サーバ側認証処理部82は、次回認証用フェーズ1共通暗号鍵K1(n)を上述の式に従って計算し、フェーズ1共通暗号鍵を更新する(ステップS31)。
On the other hand, also in the
そして、サーバ側認証処理部82は、フェーズ1のシードR1(n),Q1(n)の値を、初期値として、フェーズ2のクライアント側シードR2(0)およびサーバ側シードQ2(0)にセットし(ステップS32)、フェーズ1の共通暗号鍵K1(n)の値を、初期値として、フェーズ2の共通暗号鍵K2(0)にセットする(ステップS33)。また、このとき、サーバ側認証処理部82は、R2(0)およびQ2(0)から後述の式に従って、フェーズ2の初回のクライアント側ワンタイム認証子C2(0)を計算し、フェーズ2テーブル72bに書き込んで保持する。
Then, the server side
さらに、サーバ側認証処理部82は、フェーズ1の次回のワンタイム認証時に使用するクライアント側ワンタイム認証子C1(n)を、R1(n)およびQ1(n)から、上述の式に従って計算する。そして、サーバ側認証処理部82は、R1(n)、Q1(n)およびK1(n)で、シードテーブル71における、ICカード5についてのフェーズ1のデータを更新し、C1(n)で、フェーズ1テーブル72aにおける、ICカード5についてのワンタイム認証子を更新する。これにより、これらの値が、次回のセッション(つまり、次回のフェーズ1認証)まで保持される。
Further, the server-side
このようにして、フェーズ1でのワンタイム認証が実行される。
In this way, the one-time authentication in the
次に、ここで、フェーズ2でのワンタイム認証(ステップS7a)の詳細について説明する。図9は、図7におけるフェーズ2での初回のワンタイム認証(ステップS7a)の詳細について説明するシーケンス図である。図10は、図7におけるフェーズ2での2回目以降のワンタイム認証(ステップS7)の詳細について説明するシーケンス図である。
Next, details of one-time authentication (step S7a) in
フェーズ2でのワンタイム認証では、初回のみ、シードおよび共通暗号鍵の初期値がフェーズ1でのシードおよび共通暗号鍵から導出される(図9におけるステップS41,S42)。
In the one-time authentication in
初回のみ、端末装置1の認証処理部43は、まず、フェーズ1のシードR1(n),Q1(n)の値を、初期値として、フェーズ2のクライアント側シードR2(0)およびサーバ側シードQ2(0)にセットし(ステップS41)、フェーズ1の共通暗号鍵K1(n)の値を、初期値として、フェーズ2の共通暗号鍵K2(0)にセットする(ステップS42)。なお、フェーズ2のクライアント側シードR1、サーバ側シードQ2、および共通暗号鍵K2は、RAM13に保持され、ICカード5や記憶装置15には保持されない。この時点で、認証処理部43は、フェーズ1のシードR1(n),Q1(n)および共通暗号鍵K1(n)をRAM13から消去する。以後、フェーズ2のシードR2(0),Q2(0)および共通暗号鍵K2(0)が更新されると、次回使用されるフェーズ1のシードおよび共通暗号鍵の値は、端末装置1から完全に消える。
Only for the first time, the
そして、認証処理部43は、乱数Rを生成し、次回認証用フェーズ2クライアント側シードR2(n)(初回の場合、n=1)にセットする(ステップS43)。
Then, the
次に、認証処理部43は、今回のワンタイム認証についての、フェーズ2クライアント側ワンタイム認証子C2(n−1)を生成する(ステップS44)。
Next, the
ワンタイム認証子C2(n−1)は、一方向性関数で計算される。この一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数である。この実施の形態では、この一方向性関数は、上述のハッシュ関数hcである。 The one-time authenticator C2 (n-1) is calculated with a one-way function. This one-way function is a function that takes two arguments and has different function values depending on the order of the arguments. In this embodiment, this one-way function is the hash function hc described above.
ワンタイム認証子C2(n−1)は、次式に従って計算される。 The one-time authenticator C2 (n-1) is calculated according to the following equation.
C2(n−1)=hc(Q2(n−1),R2(n−1)) C2 (n-1) = hc (Q2 (n-1), R2 (n-1))
ここで、ハッシュ関数hcの第1引数には、Q2(n−1)が使用され、第2引数には、R2(n−1)が使用される。 Here, Q2 (n−1) is used as the first argument of the hash function hc, and R2 (n−1) is used as the second argument.
また、認証処理部43は、所定の暗号化方式に従って、共通暗号鍵K2(n−1)で、R2(n)を暗号化する。なお、共通暗号鍵K2(n−1)での暗号化後のR2(n)を、K2(n−1)*R2(n)と表現する。
Further, the
そして、認証処理部43は、通信処理部42を使用して、ワンタイム認証子C2(n−1)およびK2(n−1)*R2(n)をサーバ装置4へ送信する(ステップS45)。このとき、通信処理部42は、ワンタイム認証子C2(n−1)およびK2(n−1)*R2(n)を1つのメッセージとして送信する。
And the
サーバ装置4では、サーバ側認証処理部82は、通信処理部81を使用して、そのメッセージを受信し、ワンタイム認証子C2(n−1)およびK2(n−1)*R2(n)を抽出し、受信したワンタイム認証子C2(n−1)が、フェーズ2テーブル72bに保持しているフェーズ2用のクライアント側ワンタイム認証子に一致するか否かを判定する(ステップS46)。
In the
このとき、受信したワンタイム認証子C2(n−1)が、保持しているフェーズ2用のクライアント側ワンタイム認証子に一致しない場合、サーバ側認証処理部82は、上述のように、受信したワンタイム認証子C2(n−1)がフェーズ1のワンタイム認証子でもなければ、認証失敗と判定し、処理を終了する。
At this time, if the received one-time authenticator C2 (n-1) does not match the held client-side one-time authenticator for
受信したワンタイム認証子C2(n−1)が、保持しているフェーズ2用のクライアント側ワンタイム認証子に一致した場合、サーバ側認証処理部82は、認証成功と判定し、まず、乱数Qを生成し、その乱数Qを、次回認証用フェーズ2サーバ側シードQ2(n)にセットする(ステップS47)。
When the received one-time authenticator C2 (n-1) matches the held client-side one-time authenticator for
また、サーバ側認証処理部82は、K2(n−1)*R2(n)を、保持している共通暗号鍵K2(n−1)で、R2(n)へ復号する。そして、サーバ側認証処理部82は、今回(n−1)のワンタイム認証用のフェーズ2サーバ側ワンタイム認証子S2(n−1)を生成する(ステップS48)。
The server-side
ワンタイム認証子S2(n−1)は、一方向性関数で計算される。この一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数である。この実施の形態では、この一方向性関数は、上述のハッシュ関数hsである。 The one-time authenticator S2 (n-1) is calculated with a one-way function. This one-way function is a function that takes two arguments and has different function values depending on the order of the arguments. In this embodiment, this one-way function is the hash function hs described above.
ワンタイム認証子S2(n−1)は、次式に従って計算される。 One-time authenticator S2 (n-1) is calculated according to the following equation.
S2(n−1)=hs(Q2(n−1),R2(n)) S2 (n-1) = hs (Q2 (n-1), R2 (n))
ここで、ハッシュ関数hsの第1引数には、Q2(n−1)が使用され、第2引数には、R2(n)が使用される。 Here, Q2 (n−1) is used as the first argument of the hash function hs, and R2 (n) is used as the second argument.
また、サーバ側認証処理部82は、所定の暗号化方式に従って、共通暗号鍵K2(n−1)で、Q2(n)を暗号化する。なお、共通暗号鍵K2(n−1)での暗号化後のQ2(n)を、K2(n−1)*Q2(n)と表現する。
The server-side
そして、サーバ側認証処理部82は、通信処理部81を使用して、ワンタイム認証子S2(n−1)およびK2(n−1)*Q2(n)を端末装置1へ送信する(ステップS49)。このとき、通信処理部81は、ワンタイム認証子S2(n−1)およびK2(n−1)*Q2(n)を1つのメッセージとして送信する。
And the server side
端末装置1では、認証処理部43は、通信処理部42を使用して、そのメッセージを受信し、ワンタイム認証子S2(n−1)およびK2(n−1)*Q2(n)を抽出する。そして、認証処理部43は、フェーズフラグPの値に基づいて、受信したワンタイム認証子がフェーズ2のワンタイム認証子であることを特定する(ステップS50)。
In the
認証処理部43は、R2(n)およびQ2(n−1)に基づいて、上述の式に従って正当なワンタイム認証子S2(n−1)の値を計算し、受信したワンタイム認証子S2(n−1)が、計算した値に一致するか否かを判定する(ステップS51)。
Based on R2 (n) and Q2 (n-1), the
このとき、受信したワンタイム認証子S2(n−1)が、計算した値に一致しない場合、認証処理部43は、認証失敗と判定し、処理を終了する。
At this time, if the received one-time authenticator S2 (n-1) does not match the calculated value, the
受信したワンタイム認証子S2(n−1)が、計算した値に一致した場合、認証処理部43は、認証成功と判定し、まず、K2(n−1)*Q2(n)を、保持している共通暗号鍵K2(n−1)で、Q2(n)へ復号し、この値を、次回認証用フェーズ2サーバ側シードにセットする。
When the received one-time authenticator S2 (n-1) matches the calculated value, the
そして、認証処理部43は、次回認証用フェーズ2共通暗号鍵K2(n)を次式に従って計算し、フェーズ2共通暗号鍵を更新する(ステップS52)。
Then, the
K2(n)=hk(K2(n−1),R2(n),Q2(n)) K2 (n) = hk (K2 (n-1), R2 (n), Q2 (n))
ここで、hkは、一方向性関数であって、かつハッシュ関数である。 Here, hk is a one-way function and a hash function.
このようにして、フェーズ2のワンタイム認証に成功した後、認証処理部43は、RAM13上に、次のフェーズ2のワンタイム認証まで、R2(n)、Q2(n)、およびK2(n)を保持する。
In this way, after successful one-time authentication in
一方、サーバ装置4においても、ワンタイム認証子S2(n−1)の送信後、サーバ側認証処理部82は、次回認証用フェーズ2共通暗号鍵K2(n)を上述の式に従って計算し、フェーズ2共通暗号鍵を更新する(ステップS53)。
On the other hand, also in the
さらに、サーバ側認証処理部82は、R2(n)およびQ2(n)から後述の式に従って、フェーズ2の次回認証用クライアント側ワンタイム認証子C2(n)を計算する。そして、サーバ側認証処理部82は、R2(n)、Q2(n)およびK2(n)で、シードテーブル71における、ICカード5についてのフェーズ2のデータを更新し、C2(n)で、フェーズ2テーブル72bにおける、ICカード5についてのワンタイム認証子を更新する。これにより、今回のシードR2(n−1),Q2(n−1)および共通暗号鍵K2(n−1)は消去され、次回のシードR2(n),Q2(n)および共通暗号鍵K2(n)が、次回のフェーズ2認証まで保持される。次回のフェーズ2のワンタイム認証では、上述の初期値の代わりに次回のシードR2(n),Q2(n)および共通暗号鍵K2(n)が使用される。
Further, the server-side
このようにして、フェーズ2でのワンタイム認証が実行される。
In this way, the one-time authentication in the
以上のように、上記実施の形態1によれば、フェーズ1での認証用のシードとフェーズ2での認証用のシードとを別々に設け、ICカード5に格納されているシード102を使用してフェーズ1での認証を実行し、ICカード5に格納されているシード102を更新し、その後は、フェーズ2での認証を繰り返し行っていく。このため、フェーズ1での認証が完了すれば、ユーザは、ICカード5を、端末装置1やリーダライタ2から離脱することができる。したがって、セッション開始後短時間で、シード102を保持するICカード5を離脱可能とし、ICカード5が離脱しても、その後、継続的にワンタイム認証を繰り返し行うことができる。
As described above, according to the first embodiment, the seed for authentication in
また、上記実施の形態1によれば、フェーズ1とフェーズ2において同一のハッシュ関数hcを使用し、ハッシュ関数hcの引数におけるクライアント側シードとサーバ側シードの順序を、フェーズ1とフェーズ2とで逆にしている。
Further, according to the first embodiment, the same hash function hc is used in
これにより、フェーズ1クライアント側ワンタイム認証子およびフェーズ2クライアント側ワンタイム認証子に使用する関数値のデータフォーマットが同一になる。このため、盗聴してもフェーズ1のワンタイム認証子かフェーズ2のワンタイム認証子かがデータフォーマットから判別できない。また、引数の順序を変えているため、フェーズ1のワンタイム認証子とフェーズ2の初回のワンタイム認証子とが一致しない。したがって、耐タンパ性が向上する。
Thereby, the data formats of the function values used for the
また、上記実施の形態1によれば、フェーズ1とフェーズ2において同一のハッシュ関数hsを使用し、ハッシュ関数hsの引数におけるクライアント側シードとサーバ側シードの順序を、フェーズ1とフェーズ2とで逆にしている。
Further, according to the first embodiment, the same hash function hs is used in
これにより、フェーズ1サーバ側ワンタイム認証子およびフェーズ2サーバ側ワンタイム認証子に使用する関数値のデータフォーマットが同一になる。このため、盗聴してもフェーズ1のワンタイム認証子かフェーズ2のワンタイム認証子かがデータフォーマットから判別できない。また、引数の順序を変えているため、フェーズ1のワンタイム認証子とフェーズ2の初回のワンタイム認証子とが一致しない。したがって、耐タンパ性が向上する。
As a result, the data formats of the function values used for the
また、上記実施の形態1によれば、フェーズ1で使用される共通暗号鍵とフェーズ2で使用される共通暗号鍵とを別々に設け、ICカード5に格納されているフェーズ1共通暗号鍵を使用して暗号化されたシードの送受を行い、フェーズ1での認証が成功すると、ICカード5に格納されているフェーズ1共通暗号鍵を更新し、また、フェーズ2での認証が成功するたびに、フェーズ2共通暗号鍵を更新していく。このため、フェーズ1とフェーズ2と別々に共通暗号鍵が更新されていき、耐タンパ性が向上する。
Further, according to the first embodiment, the common encryption key used in
実施の形態2.
本発明の実施の形態2では、実施の形態1におけるサーバ装置4内のデータ構造およびそのデータ構造に沿ったデータ処理の一例について説明する。なお、システムの基本的な構成および動作は、実施の形態1と同様であるので、その説明は省略する。なお、この実施の形態2において、ワンタイム認証子はワンタイムIDである。
In the second embodiment of the present invention, an example of the data structure in the
まず、データ構造について説明する。 First, the data structure will be described.
実施の形態2では、サーバ装置4において、ICカード5と同様の、1または複数のICカードのそれぞれに対して固有の管理番号が割り当てられ、その管理番号に関連付けて、(a)次回認証用のフェーズ1クライアント側ワンタイム認証子C1(n)、(b)次回認証用のフェーズ2クライアント側ワンタイム認証子C2(n)、(c)フェーズ1についての現時点(n−1)でのシードR1(n−1),Q1(n−1)および共通暗号鍵K1(n−1)並びに次回認証用のシードR1(n),Q1(n)および共通暗号鍵K1(n)、並びに(d)フェーズ2についての現時点(n−1)でのシードR2(n−1),Q2(n−1)および共通暗号鍵K2(n−1)並びに次回認証用のシードR2(n),Q2(n)および共通暗号鍵K2(n)が保持される。
In the second embodiment, a unique management number is assigned to each of one or a plurality of IC cards, similar to the
つまり、フェーズ1テーブル72aにおいて、管理番号に関連付けて、(a)次回認証用のフェーズ1クライアント側ワンタイム認証子C1(n)が保持される。また、フェーズ2テーブル72bにおいて、管理番号に関連付けて、(b)次回認証用のフェーズ2クライアント側ワンタイム認証子C2(n)が保持される。また、シードテーブル71において、管理番号に関連付けて、(c)フェーズ1についての現時点(n−1)でのシードR1(n−1),Q1(n−1)および共通暗号鍵K1(n−1)並びに次回認証用のシードR1(n),Q1(n)および共通暗号鍵K1(n)、並びに(d)フェーズ2についての現時点(n−1)でのシードR2(n−1),Q2(n−1)および共通暗号鍵K2(n−1)並びに次回認証用のシードR2(n),Q2(n)および共通暗号鍵K2(n)が保持される。
That is, in the
図11は、実施の形態2におけるシードテーブル71の構造の一例を示す図である。図12は、実施の形態2における認証子テーブル72の一例を示す図である。図12(A)は、フェーズ1テーブル72aの一例を示し、図12(B)は、フェーズ2テーブル72bの一例を示す。
FIG. 11 is a diagram illustrating an example of the structure of the seed table 71 according to the second embodiment. FIG. 12 is a diagram illustrating an example of the authenticator table 72 in the second embodiment. FIG. 12A shows an example of the
図11におけるフェーズ1アドレスは、フェーズ1テーブル72a内で、当該フェーズ1アドレスに関連付けられている管理番号と同一の管理番号を有するレコードの位置を示すデータである。同様に、図11におけるフェーズ2アドレスは、フェーズ2テーブル72b内で、当該フェーズ2アドレスに関連付けられている管理番号と同一の管理番号を有するレコードの位置を示すデータである。
The
また、図12において、サーバ側認証処理部82により、フェーズ1テーブル72a内のレコード(ワンタイム認証子と管理番号の組)は、ワンタイム認証子の値について昇順にソートされる。同様に、フェーズ2テーブル72b内のレコード(ワンタイム認証子と管理番号の組)は、ワンタイム認証子の値について昇順にソートされる。これにより、ワンタイム認証時に迅速に、クライアントから受信したワンタイム認証子がテーブル72a,72bに登録されているか否かを判定することができる。
In FIG. 12, the server side
なお、シードテーブル71、フェーズ1テーブル72a、およびフェーズ2テーブル72bは、予め、所定のユーザ数(ICカード数)のレコードを有しており、レコード内の管理番号以外のフィールドには初期値がセットされる。
The seed table 71, the
次に、データ処理について説明する。 Next, data processing will be described.
図13および図14は、実施の形態2におけるサーバ装置4によるデータ処理について説明するフローチャートである。
13 and 14 are flowcharts for explaining data processing by the
サーバ装置4では、サーバ側認証処理部82は、端末装置1から、ワンタイム認証子C(フェーズ1またはフェーズ2のワンタイム認証子)を含むメッセージを受信すると、そのワンタイム認証子Cがフェーズ1テーブル72aに登録されているフェーズ1クライアント側ワンタイム認証子C1(n−1)のいずれかであるか否かを判定する(ステップS101)。
In the
受信したワンタイム認証子Cがフェーズ1テーブル72aに登録されているフェーズ1クライアント側ワンタイム認証子C1(n−1)のいずれかである場合、サーバ側認証処理部82は、フェーズ1テーブル72aにおいて、受信したワンタイム認証子Cに関連付けられている管理番号を特定する(ステップS102)。この場合、フェーズ1のワンタイム認証が実行される。
When the received one-time authenticator C is one of the phase-one client-side one-time authenticators C1 (n−1) registered in the phase-one table 72a, the server-side
サーバ側認証処理部82は、特定した管理番号に関連付けられているQ1(n−1)およびK1(n−1)をシードテーブル71から読み出す(ステップS103)。
The server-side
そして、サーバ側認証処理部82は、受信したK1(n−1)*R1(n)からR1(n)を、読み出したK1(n−1)で復号し、そのR1(n)を、その管理番号に関連付けてシードテーブル71に書き込む(ステップS104)。
Then, the server-side
次に、サーバ側認証処理部82は、次回認証用サーバ側シードの生成を行う。まず、サーバ側認証処理部82は、乱数Qを生成し、この乱数Qを次回認証用サーバ側シードに使用した場合に、次回認証用のフェーズ1クライアント側ワンタイム認証子が、別のフェーズ1クライアント側ワンタイム認証子およびフェーズ2クライアント側ワンタイム認証子のいずれかに一致するか否かを判定するとともに(ステップS106)、初回のフェーズ2クライアント側ワンタイム認証子が、別のフェーズ2クライアント側ワンタイム認証子およびフェーズ1クライアント側ワンタイム認証子のいずれかに一致するか否かを判定する(ステップS107)。つまり、生成した乱数Qを使用した場合のクライアント側ワンタイム認証子の一意性(つまり、同値の別のワンタイム認証子が存在しないこと)が確保されるか否かが判定される。
Next, the server-side
このとき、サーバ側認証処理部82は、次式に従って、この乱数Qを次回認証用サーバ側シードに使用した場合の次回認証用のフェーズ1クライアント側ワンタイム認証子X1および初回のフェーズ2クライアント側ワンタイム認証子X2を計算し、これらのワンタイム認証子X1,X2がフェーズ1テーブル72aおよびフェーズ2テーブル72bに登録されているか否かを判定する。
At this time, the server-side
X1=hc(R1(n),Q) X1 = hc (R1 (n), Q)
X2=hc(Q,R2(0)),R2(0)=R1(n) X2 = hc (Q, R2 (0)), R2 (0) = R1 (n)
そして、生成した乱数Qで一意性が確保されないと判定した場合、サーバ側認証処理部82は、一意性が確保されるまで、乱数Qを再生成する。
If it is determined that the generated random number Q does not ensure uniqueness, the server-side
一方、生成した乱数Qでは一意性が確保されると判定した場合、サーバ側認証処理部82は、乱数Qを、次回認証用フェーズ1サーバ側シードQ1(n)にセットし、そのシードQ1(n)を、その管理番号に関連付けてシードテーブル71に書き込む(ステップS108)。
On the other hand, if it is determined that the generated random number Q is unique, the server-side
そして、サーバ側認証処理部82は、フェーズ1サーバ側ワンタイム認証子S1(n−1)および暗号化後の次回認証用フェーズ1サーバ側シードK1(n−1)*Q1(n)を生成し、端末装置1へ送信する(ステップS109)。
Then, the server-side
また、サーバ側認証処理部82は、ステップS106での判定時に計算したX1を、次回認証用フェーズ1クライアント側ワンタイム識別子C1(n)とし、そのC1(n)で、フェーズ1テーブル72aにおいてその管理番号に関連付けられているワンタイム識別子を更新する(ステップS110)。このとき、サーバ側認証処理部82は、その管理番号に関連付けられているフェーズ1アドレスをシードテーブル71から読み出し、そのフェーズ1アドレスで、フェーズ1テーブル72aにおけるその管理番号のレコードを特定し、そのレコード内のワンタイム識別子を更新する。
Further, the server side
その後、サーバ側認証処理部82は、フェーズ1テーブル72a内のレコードを、ワンタイム識別子の値が昇順になるようにソートし、ソートにより位置に変更のあったレコードについて、シードテーブル71においてそのレコードの管理番号に関連付けられているフェーズ1アドレスを更新する(ステップS111)。
Thereafter, the server-side
また、サーバ側認証処理部82は、ステップS107での判定時に計算したX2を、初回認証用フェーズ2クライアント側ワンタイム識別子C2(0)とし、そのC2(0)で、フェーズ2テーブル72bにおいてその管理番号に関連付けられているワンタイム識別子を更新する(ステップS112)。このとき、サーバ側認証処理部82は、その管理番号に関連付けられているフェーズ2アドレスをシードテーブル71から読み出し、そのフェーズ2アドレスで、フェーズ2テーブル72bにおけるその管理番号のレコードを特定し、そのレコード内のワンタイム識別子を更新する。
The server-side
その後、サーバ側認証処理部82は、フェーズ2テーブル72b内のレコードを、ワンタイム識別子の値が昇順になるようにソートし、ソートにより位置に変更のあったレコードについて、シードテーブル71においてそのレコードの管理番号に関連付けられているフェーズ2アドレスを更新する(ステップS113)。
Thereafter, the server-side
そして、サーバ側認証処理部82は、次回認証用のフェーズ1共通暗号鍵K1(n)を生成し、その管理番号に関連付けてシードテーブル71に書き込む(ステップS114)。
Then, the server-side
さらに、サーバ側認証処理部82は、シードテーブル71において、その管理番号の次回認証用のシードおよび共通暗号鍵R1(n),Q1(n),K1(n)で、今回認証用のシードおよび共通暗号鍵R1(n−1),Q1(n−1),K1(n−1)を更新する(ステップS115)。
Furthermore, the server-side
このようにして、フェーズ1のワンタイム認証についてのデータ処理が実行される。
In this way, the data processing for the one-time authentication in
一方、ステップS101において、受信したワンタイム認証子Cがフェーズ1テーブル72aに登録されていないと判定した場合、サーバ側認証処理部82は、受信したワンタイム認証子Cが、フェーズ2テーブル72bに登録されているフェーズ2クライアント側ワンタイム認証子C2(n−1)のいずれかであるか否かを判定する(ステップS121)。
On the other hand, if it is determined in step S101 that the received one-time authenticator C is not registered in the
受信したワンタイム認証子Cがフェーズ2テーブル72bに登録されているフェーズ2クライアント側ワンタイム認証子C2(n−1)のいずれかである場合、サーバ側認証処理部82は、フェーズ2テーブル72bにおいて、受信したワンタイム認証子Cに関連付けられている管理番号を特定する(ステップS122)。この場合、フェーズ2のワンタイム認証が実行される。
When the received one-time authenticator C is any one of the phase-two client-side one-time authenticators C2 (n−1) registered in the phase-two table 72b, the server-side
サーバ側認証処理部82は、特定した管理番号に関連付けられているQ2(n−1)およびK2(n−1)をシードテーブル71から読み出す(ステップS123)。
The server-side
そして、サーバ側認証処理部82は、受信したK2(n−1)*R2(n)からR2(n)を、読み出したK2(n−1)で復号し、そのR2(n)を、その管理番号に関連付けてシードテーブル71に書き込む(ステップS124)。
Then, the server-side
次に、サーバ側認証処理部82は、次回認証用サーバ側シードの生成を行う。まず、サーバ側認証処理部82は、乱数Qを生成し、この乱数Qを次回認証用サーバ側シードに使用した場合に、次回認証用のフェーズ2クライアント側ワンタイム認証子が、別のフェーズ2クライアント側ワンタイム認証子およびフェーズ1クライアント側ワンタイム認証子のいずれかに一致するか否かを判定する(ステップS126)。つまり、生成した乱数Qを使用した場合のクライアント側ワンタイム認証子の一意性(つまり、同値の別のワンタイム認証子が存在しないこと)が確保されるか否かが判定される。
Next, the server-side
このとき、サーバ側認証処理部82は、次式に従って、この乱数Qを次回認証用サーバ側シードに使用した場合の次回認証用のフェーズ2クライアント側ワンタイム認証子X2を計算し、このワンタイム認証子X2がフェーズ2テーブル72bに登録されているか否かを判定する。
At this time, the server-side
X2=hc(Q,R2(n)) X2 = hc (Q, R2 (n))
そして、生成した乱数Qでは一意性が確保されないと判定した場合、サーバ側認証処理部82は、一意性が確保されるまで、乱数Qを再生成する。
When it is determined that the generated random number Q does not ensure uniqueness, the server-side
一方、生成した乱数Qでは一意性が確保されると判定した場合、サーバ側認証処理部82は、乱数Qを、次回認証用フェーズ2サーバ側シードQ2(n)にセットし、そのシードQ2(n)を、その管理番号に関連付けてシードテーブル71に書き込む(ステップS127)。
On the other hand, if it is determined that the generated random number Q is unique, the server-side
そして、サーバ側認証処理部82は、フェーズ2サーバ側ワンタイム認証子S2(n−1)および暗号化後の次回認証用フェーズ2サーバ側シードK2(n−1)*Q2(n)を生成し、端末装置1へ送信する(ステップS128)。
Then, the server-side
また、サーバ側認証処理部82は、ステップS126での判定時に計算したX2を、次回認証用フェーズ2クライアント側ワンタイム識別子C2(n)とし、そのC2(n)で、フェーズ2テーブル72bにおいてその管理番号に関連付けられているワンタイム識別子を更新する(ステップS129)。このとき、サーバ側認証処理部82は、その管理番号に関連付けられているフェーズ2アドレスをシードテーブル71から読み出し、そのフェーズ2アドレスで、フェーズ2テーブル72bにおけるその管理番号のレコードを特定し、そのレコード内のワンタイム識別子を更新する。
Further, the server side
その後、サーバ側認証処理部82は、フェーズ2テーブル72b内のレコードを、ワンタイム識別子の値が昇順になるようにソートし、ソートにより位置に変更のあったレコードについて、シードテーブル71においてそのレコードの管理番号に関連付けられているフェーズ2アドレスを更新する(ステップS130)。
Thereafter, the server-side
そして、サーバ側認証処理部82は、次回認証用のフェーズ2共通暗号鍵K2(n)を生成し、その管理番号に関連付けてシードテーブル71に書き込む(ステップS131)。
Then, the server-side
さらに、サーバ側認証処理部82は、シードテーブル71において、その管理番号の次回認証用のシードおよび共通暗号鍵R2(n),Q2(n),K2(n)で、今回認証用のシードおよび共通暗号鍵R2(n−1),Q2(n−1),K2(n−1)を更新する(ステップS132)。
Further, the server side
このようにして、フェーズ2のワンタイム認証についてのデータ処理が実行される。
In this way, data processing for the one-time authentication in
以上のように、上記実施の形態2によれば、管理番号で複数のICカードを管理し、ICカードについてそれぞれ独立してワンタイム認証を行うことができる。 As described above, according to the second embodiment, a plurality of IC cards can be managed with a management number, and one-time authentication can be performed independently for each IC card.
なお、上述の各実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。 Each embodiment described above is a preferred example of the present invention, but the present invention is not limited to these, and various modifications and changes can be made without departing from the scope of the present invention. It is.
例えば、上記実施の形態1,2において、携帯型記憶装置として、ICカード5の代わりに、ICカード機能を有する携帯電話機などといった電子機器を使用してもよい。
For example, in the first and second embodiments, an electronic device such as a mobile phone having an IC card function may be used as the portable storage device instead of the
また、上記実施の形態1,2において、リーダライタ2は、端末装置1に内蔵されていてもよい。
In the first and second embodiments, the reader /
また、上記実施の形態1,2において、携帯型記憶装置は、USBメモリのように、リーダライタ2を使用せずに、端末装置1に直接接続できるようなものであってもよい。
In the first and second embodiments, the portable storage device may be directly connected to the
また、上記実施の形態1,2において、フェーズ1のシードおよび共通暗号鍵をそのままフェーズ2のシードおよび共通暗号鍵の初期値としているが、その代わりに、所定の関数(例えば、ハッシュ関数や一方向性関数)で、端末装置1およびサーバ装置4のそれぞれにおいて、フェーズ1のシードおよび共通暗号鍵から、フェーズ2のシードおよび共通暗号鍵の初期値を導出するようにしてもよい。
In the first and second embodiments, the
また、上記実施の形態1,2において、ワンタイム認証子をワンタイムパスワードとしてもよい。ワンタイム認証子がワンタイムパスワードである場合、クライアント側ワンタイム認証子の一意性についての判定(ステップS106、S107,S126)は不要であり、また、その場合、端末装置1は、ICカード5からカードID101を読み出し、ワンタイム認証子とともにそのカードID101をサーバ装置4へを送信し、サーバ装置4は、カード属性テーブル73を参照し、そのカードID101に基づいてICカード5を特定する。
In the first and second embodiments, the one-time authenticator may be a one-time password. When the one-time authenticator is a one-time password, the determination on the uniqueness of the client-side one-time authenticator (steps S106, S107, S126) is unnecessary. In this case, the
また、上記実施の形態1,2において、フェーズフラグPに2をセットするタイミングは、フェーズ1のワンタイム認証終了後であって、フェーズ2の初回のサーバ側ワンタイム認証子S2(0)を受信する前であれば、どのタイミングでもよい。
In the first and second embodiments, the timing for setting the phase flag P to 2 is after the end of the one-time authentication in the
本発明は、例えば、ネットワークサービスにおけるユーザ認証に適用可能である。 The present invention is applicable to user authentication in network services, for example.
1 端末装置(クライアント装置の一例)
3 ネットワーク
4 サーバ装置
5 ICカード(携帯型記憶装置の一例)
13 RAM(メモリの一例)
31 ワンタイム認証プログラム(クライアントコンピュータプログラムの一例)
42 通信処理部
43 認証処理部
102 シード
1 Terminal device (example of client device)
3
13 RAM (an example of memory)
31 One-time authentication program (an example of a client computer program)
42
Claims (9)
クライアント装置と、
所定の位置に配置されると前記クライアント装置によるデータ読み書きが可能になる携帯型記憶装置とを備え、
前記サーバ装置および前記クライアント装置は、それぞれシードを生成し、前記シードを暗号化して相互に送信し、前記シードからワンタイム認証子を生成して送信し、前記シードに基づいて互いにワンタイム認証子についての認証を行い、前記認証に成功するたびに次回認証用シードを生成して前記シードを更新していき、
前記携帯型記憶装置は、前記サーバ装置および前記クライアント装置の前記シードを保持し、
前記クライアント装置は、フェーズ1において、前記携帯型記憶装置から前記シードを読み出し、読み出したシードに基づいてワンタイム認証子を生成して送信し、前記ワンタイム認証子について認証に成功すると、前記フェーズ1の前記次回認証用シードを前記携帯型記憶装置に書き込み、前記フェーズ1の後のフェーズ2において、前記フェーズ1の前記次回認証用シードから当該フェーズ2の初回認証用シードを導出し、前記初回認証用シードからワンタイム認証子を生成し、前記ワンタイム認証子について認証に成功すると、前記フェーズ2での次回認証用シードを生成して前記シードを更新し、
前記サーバ装置は、前記フェーズ1の前記次回認証用シードを次回のフェーズ1での認証時まで保持するとともに、その次回認証用シードから前記フェーズ2の初回認証用シードを導出し、フェーズ2において前記ワンタイム認証子について認証に成功すると、前記フェーズ2での次回認証用シードを生成して前記シードを更新すること、
を特徴とするワンタイム認証システム。 A server device;
A client device;
A portable storage device capable of reading and writing data by the client device when placed in a predetermined position;
Each of the server device and the client device generates a seed, encrypts and transmits the seed to each other, generates a one-time authenticator from the seed, transmits the one-time authenticator to each other based on the seed Authenticates for each time, and every time the authentication succeeds, generate the next authentication seed and update the seed,
The portable storage device holds the seed of the server device and the client device,
In phase 1, the client device reads the seed from the portable storage device, generates and transmits a one-time authenticator based on the read seed, and succeeds in authenticating the one-time authenticator. 1 is written to the portable storage device. In phase 2 after phase 1, the initial authentication seed of phase 2 is derived from the next authentication seed of phase 1 and the initial When a one-time authenticator is generated from an authentication seed and the one-time authenticator is successfully authenticated, a seed for next authentication in the phase 2 is generated and the seed is updated.
The server device holds the next authentication seed in the phase 1 until the next authentication in the phase 1 and derives the initial authentication seed in the phase 2 from the next authentication seed. If authentication is successful for the one-time authenticator, generating a seed for next authentication in the phase 2 and updating the seed;
One-time authentication system characterized by
前記クライアント装置は、
(a1)前記携帯型記憶装置から前記フェーズ1クライアント側シードおよび前記フェーズ1サーバ側シードを読み出し、
(a2)前記フェーズ1クライアント側シードおよび前記フェーズ1サーバ側シードからフェーズ1クライアント側ワンタイム認証子を生成し、
(a3)次回認証用フェーズ1クライアント側シードを生成し、
(a4)前記フェーズ1クライアント側ワンタイム認証子および暗号化後の前記次回認証用フェーズ1クライアント側シードを前記サーバ装置へ送信し、
(a5)前記サーバ装置からフェーズ1サーバ側ワンタイム認証子および暗号化後の次回認証用フェーズ1サーバ側シードを受信し、
(a6)前記フェーズ1サーバ側ワンタイム認証子について認証に成功すると、前記次回認証用フェーズ1クライアント側シードおよび前記次回認証用フェーズ1サーバ側シードを前記携帯型記憶装置に書き込み、
(a7)前記フェーズ1サーバ側ワンタイム認証子について認証に成功すると、前記次回認証用フェーズ1クライアント側シードおよび前記次回認証用フェーズ1サーバ側シードから初回認証用フェーズ2クライアント側シードおよび初回認証用フェーズ2サーバ側シードを導出し、
(a8)前記初回認証用フェーズ2クライアント側シードおよび前記初回認証用フェーズ2サーバ側シードから初回認証用フェーズ2クライアント側ワンタイム認証子を生成し、
(a9)次回認証用フェーズ2クライアント側シードを生成し、
(a10)前記初回認証用フェーズ2クライアント側ワンタイム認証子および暗号化後の前記次回認証用フェーズ2クライアント側シードを前記サーバ装置へ送信し、
(a11)前記サーバ装置からフェーズ2サーバ側ワンタイム認証子および暗号化後の次回認証用フェーズ2サーバ側シードを受信し、
(a12)前記フェーズ2サーバ側ワンタイム認証子について認証に成功すると、前記次回認証用フェーズ2クライアント側シードおよび前記次回認証用フェーズ2サーバ側シードから次回認証用フェーズ2クライアント側ワンタイム認証子を生成し、
前記サーバ装置は、
(b1)前記クライアント装置から前記フェーズ1クライアント側ワンタイム認証子および暗号化後の前記次回認証用フェーズ1クライアント側シードを受信し、
(b2)前記フェーズ1クライアント側ワンタイム認証子について認証に成功すると、次回認証用フェーズ1サーバ側シードを生成し、
(b3)前記次回認証用フェーズ1クライアント側シードおよびフェーズ1サーバ側シードからフェーズ1サーバ側ワンタイム認証子を生成し、
(b4)前記クライアント装置へ前記フェーズ1サーバ側ワンタイム認証子および暗号化後の前記次回認証用フェーズ1サーバ側シードを送信し、
(b5)前記次回認証用フェーズ1クライアント側シードおよび前記次回認証用フェーズ1サーバ側シードから初回認証用フェーズ2クライアント側シードおよび初回認証用フェーズ2サーバ側シードを導出し、
(b6)前記クライアント装置から前記フェーズ2クライアント側ワンタイム認証子および暗号化後の前記次回認証用フェーズ2クライアント側シードを受信し、
(b7)前記初回認証用フェーズ2クライアント側シードおよび前記初回認証用フェーズ2サーバ側シードに基づき、前記初回認証用フェーズ2クライアント側ワンタイム認証子について認証に成功すると、次回認証用フェーズ2サーバ側シードを生成し、
(b8)前記次回認証用フェーズ2クライアント側シードおよび前記初回認証用フェーズ2サーバ側シードから初回認証用フェーズ2サーバ側ワンタイム認証子を生成し、
(b9)前記クライアント装置へ前記初回認証用フェーズ2サーバ側ワンタイム認証子および暗号化後の前記次回認証用フェーズ2サーバ側シードを送信すること、
を特徴とする請求項1記載のワンタイム認証システム。 The portable storage device and the server device hold a phase 1 client side seed and a phase 1 server side seed as the seed,
The client device is
(A1) Read the phase 1 client-side seed and the phase 1 server-side seed from the portable storage device,
(A2) generating a phase 1 client side one-time authenticator from the phase 1 client side seed and the phase 1 server side seed;
(A3) Generate the next authentication phase 1 client-side seed,
(A4) transmitting the phase 1 client-side one-time authenticator and the encrypted next-phase authentication phase 1 client-side seed to the server device;
(A5) receiving a phase 1 server side one-time authenticator and an encrypted next authentication phase 1 server side seed from the server device;
(A6) When the authentication is successful for the phase 1 server-side one-time authenticator, the next authentication phase 1 client-side seed and the next authentication phase 1 server-side seed are written to the portable storage device,
(A7) Upon successful authentication of the phase 1 server-side one-time authenticator, the next authentication phase 1 client-side seed and the next authentication phase 1 server-side seed to the initial authentication phase 2 client-side seed and initial authentication Derive phase 2 server side seed,
(A8) generating an initial authentication phase 2 client-side one-time authenticator from the initial authentication phase 2 client-side seed and the initial authentication phase 2 server-side seed;
(A9) Generate the next authentication phase 2 client-side seed,
(A10) transmitting the initial authentication phase 2 client side one-time authenticator and the encrypted next authentication phase 2 client side seed to the server device;
(A11) receiving a phase 2 server side one-time authenticator and an encrypted next phase phase 2 server side seed from the server device;
(A12) When the authentication is successful for the phase 2 server side one-time authenticator, the next authentication phase 2 client-side seed and the next authentication phase 2 client-side seed are changed to the next authentication phase 2 client-side one-time authenticator. Generate
The server device
(B1) receiving the phase 1 client side one-time authenticator from the client device and the phase 1 client side seed for next authentication after encryption;
(B2) If the authentication is successful for the phase 1 client-side one-time authenticator, the next phase 1 server-side seed for authentication is generated,
(B3) A phase 1 server side one-time authenticator is generated from the next authentication phase 1 client side seed and the phase 1 server side seed,
(B4) transmitting the phase 1 server side one-time authenticator and the encrypted next phase phase 1 server side seed to the client device;
(B5) Deriving the initial authentication phase 2 client-side seed and the initial authentication phase 2 server-side seed from the next authentication phase 1 client-side seed and the next authentication phase 1 server-side seed,
(B6) receiving the phase 2 client side one-time authenticator and the encrypted next phase phase 2 client side seed after encryption from the client device;
(B7) When the first authentication phase 2 client side one-time authenticator is successfully authenticated based on the initial authentication phase 2 client side seed and the initial authentication phase 2 server side seed, the next authentication phase 2 server side Generate seed,
(B8) generating an initial authentication phase 2 server-side one-time authenticator from the next authentication phase 2 client-side seed and the initial authentication phase 2 server-side seed;
(B9) transmitting the initial authentication phase 2 server-side one-time authenticator and the encrypted next authentication phase 2 server-side seed to the client device;
The one-time authentication system according to claim 1.
前記一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数であって、
前記フェーズ1クライアント側ワンタイム認証子についての引数の順序が、前記フェーズ1クライアント側シード、前記フェーズ1サーバ側シードの順序である場合、前記フェーズ2クライアント側ワンタイム認証子についての引数の順序が、前記フェーズ2サーバ側シード、前記フェーズ2クライアント側シードの順序であり、
前記フェーズ1クライアント側ワンタイム認証子についての引数の順序が、前記フェーズ1サーバ側シード、前記フェーズ1クライアント側シードの順序である場合、前記フェーズ2クライアント側ワンタイム認証子についての引数の順序が、前記フェーズ2クライアント側シード、前記フェーズ2サーバ側シードの順序であること、
を特徴とする請求項2記載のワンタイム認証システム。 The phase 1 client-side one-time authenticator and the phase 2 client-side one-time authenticator are calculated with the same one-way function,
The one-way function takes two arguments and has different function values depending on the order of the arguments.
When the order of arguments for the phase 1 client-side one-time authenticator is the order of the phase 1 client-side seed and the phase 1 server-side seed, the order of arguments for the phase 2 client-side one-time authenticator is , Phase 2 server-side seed, phase 2 client-side seed,
If the order of arguments for the phase 1 client-side one-time authenticator is the order of the phase 1 server-side seed and the phase 1 client-side seed, the order of arguments for the phase 2 client-side one-time authenticator is The order of the phase 2 client-side seed and the phase 2 server-side seed,
The one-time authentication system according to claim 2.
前記一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数であって、
前記フェーズ1サーバ側ワンタイム認証子についての引数の順序が、前記次回認証用フェーズ1クライアント側シード、前記フェーズ1サーバ側シードの順序である場合、前記フェーズ2サーバ側ワンタイム認証子についての引数の順序が、前記フェーズ2サーバ側シード、前記次回認証用フェーズ2クライアント側シードの順序であり、
前記フェーズ1サーバ側ワンタイム認証子についての引数の順序が、前記フェーズ1サーバ側シード、前記次回認証用フェーズ1クライアント側シードの順序である場合、前記フェーズ2サーバ側ワンタイム認証子についての引数の順序が、前記次回認証用フェーズ2クライアント側シード、前記フェーズ2サーバ側シードの順序であること、
を特徴とする請求項2または請求項3記載のワンタイム認証システム。 The phase 1 server-side one-time authenticator and the phase 2 server-side one-time authenticator are calculated with the same one-way function,
The one-way function takes two arguments and has different function values depending on the order of the arguments.
If the order of arguments for the phase 1 server-side one-time authenticator is the next authentication phase 1 client-side seed and the order of the phase 1 server-side seed, the argument for the phase 2 server-side one-time authenticator Is the order of the phase 2 server-side seed and the next authentication phase 2 client-side seed,
If the order of arguments for the phase 1 server side one-time authenticator is the order of the phase 1 server side seed and the next authentication phase 1 client side seed, the argument for the phase 2 server side one-time authenticator The order of the next authentication phase 2 client-side seed and the phase 2 server-side seed,
The one-time authentication system according to claim 2 or claim 3, wherein
前記クライアント装置は、前記携帯型記憶装置から前記フェーズ1共通暗号鍵を読み出し、前記フェーズ1共通暗号鍵で、前記次回認証用フェーズ1クライアント側シードを暗号化し、前記フェーズ1サーバ側ワンタイム認証子について認証に成功すると、前記フェーズ1共通暗号鍵を更新し、更新後の前記フェーズ1共通暗号鍵を前記携帯型記憶装置に書き込み、更新後の前記フェーズ1共通暗号鍵からフェーズ2共通暗号鍵の初期値を導出し、前記フェーズ2共通暗号鍵で、前記次回認証用フェーズ2クライアント側シードを暗号化し、前記フェーズ2サーバ側ワンタイム認証子について認証に成功すると、前記フェーズ2共通暗号鍵を更新し、
前記サーバ装置は、前記フェーズ1共通暗号鍵で、前記次回認証用フェーズ1サーバ側シードを暗号化し、前記フェーズ1クライアント側ワンタイム認証子について認証に成功すると、前記フェーズ1共通暗号鍵を更新し、更新後の前記フェーズ1共通暗号鍵を次回のフェーズ1での認証時まで保持するとともに、更新後の前記フェーズ1共通暗号鍵からフェーズ2共通暗号鍵の初期値を導出し、前記フェーズ2共通暗号鍵で、前記次回認証用フェーズ2サーバ側シードを暗号化し、前記フェーズ2クライアント側ワンタイム認証子について認証に成功すると、前記フェーズ2共通暗号鍵を更新すること、
を特徴とする請求項2記載のワンタイム認証システム。 The portable storage device and the server device hold a phase 1 common encryption key,
The client device reads the phase 1 common encryption key from the portable storage device, encrypts the next authentication phase 1 client-side seed with the phase 1 common encryption key, and the phase 1 server-side one-time authenticator. If the authentication is successful, the phase 1 common encryption key is updated, the updated phase 1 common encryption key is written in the portable storage device, and the phase 1 common encryption key is updated from the updated phase 1 common encryption key. Deriving an initial value, encrypting the next authentication phase 2 client-side seed with the phase 2 common encryption key, and updating the phase 2 common encryption key after successful authentication of the phase 2 server side one-time authenticator And
The server device encrypts the phase 1 server-side seed for the next authentication with the phase 1 common encryption key, and updates the phase 1 common encryption key when the authentication is successful for the phase 1 client-side one-time authenticator. The updated phase 1 common encryption key is held until the next authentication in phase 1, and the initial value of the phase 2 common encryption key is derived from the updated phase 1 common encryption key, Encrypting the next phase 2 server-side seed for next authentication with an encryption key, and succeeding in authenticating the one-time authenticator on the phase 2 client side, updating the phase 2 common encryption key;
The one-time authentication system according to claim 2.
シードを生成するとともに前記通信処理部を使用して前記サーバ装置から前記サーバ装置のシードを受信し、生成したシードと受信したシードからワンタイム認証子を生成して前記通信処理部を使用して送信し、前記シードに基づいて、前記サーバ装置から受信されたワンタイム認証子についての認証を行い、前記認証に成功するたびに次回認証用シードを生成して前記シードを更新していく認証処理部とを備え、
前記認証処理部は、フェーズ1において、所定の位置に配置されると当該端末装置によるデータ読み書きが可能になる携帯型記憶装置から前記サーバ装置側および当該端末装置側の前記シードを読み出し、読み出したシードに基づいてワンタイム認証子を生成して送信し、前記ワンタイム認証子について認証に成功すると、前記サーバ装置側および当該端末装置側についての前記フェーズ1の前記次回認証用シードを前記携帯型記憶装置に書き込み、前記フェーズ1の後のフェーズ2において、前記フェーズ1の前記次回認証用シードから当該フェーズ2の初回認証用シードを導出し、前記初回認証用シードからワンタイム認証子を生成し、前記ワンタイム認証子について認証に成功すると、前記フェーズ2での次回認証用シードを生成して前記シードを更新すること、
を特徴とする端末装置。 A communication processing unit that communicates with a server device via a network;
Generate a seed and receive the server device seed from the server device using the communication processing unit, generate a one-time authenticator from the generated seed and the received seed, and use the communication processing unit An authentication process for transmitting and authenticating the one-time authenticator received from the server device based on the seed, and generating a next authentication seed and updating the seed each time the authentication is successful With
In the phase 1, the authentication processing unit reads the seeds on the server device side and the terminal device side from the portable storage device that can read and write data by the terminal device when placed in a predetermined position, and reads the seed When the one-time authenticator is generated and transmitted based on the seed and authentication is successful for the one-time authenticator, the seed for next authentication in the phase 1 for the server device side and the terminal device side is used as the portable type. Write to the storage device, and in Phase 2 after Phase 1, derive the initial authentication seed of Phase 2 from the next authentication seed of Phase 1 and generate a one-time authenticator from the initial authentication seed. When the one-time authenticator is successfully authenticated, a seed for next authentication in the phase 2 is generated. To update the serial seed,
A terminal device characterized by the above.
シードを生成するとともにサーバ装置から前記サーバ装置のシードを受信し、生成したシードと受信したシードからワンタイム認証子を生成して送信し、前記シードに基づいて、前記サーバ装置から受信されたワンタイム認証子についての認証を行い、前記認証に成功するたびに次回認証用シードを生成して前記シードを更新していく認証処理部として機能させるためのクライアントコンピュータプログラムであって、
前記認証処理部は、フェーズ1において、所定の位置に配置されると前記端末装置によるデータ読み書きが可能になる携帯型記憶装置から前記サーバ装置側および前記端末装置側の前記シードを読み出し、読み出したシードに基づいてワンタイム認証子を生成して送信し、前記ワンタイム認証子について認証に成功すると、前記サーバ装置側および当該端末装置側についての前記フェーズ1の前記次回認証用シードを前記携帯型記憶装置に書き込み、前記フェーズ1の後のフェーズ2において、前記フェーズ1の前記次回認証用シードから当該フェーズ2の初回認証用シードを導出し、前記初回認証用シードからワンタイム認証子を生成し、前記ワンタイム認証子について認証に成功すると、前記フェーズ2での次回認証用シードを生成して前記シードを更新すること、
を特徴とするクライアントコンピュータプログラム。 The computer in the terminal device
Generating a seed and receiving the seed of the server device from the server device; generating and transmitting a one-time authenticator from the generated seed and the received seed; and receiving the one-time authenticator from the server device based on the seed A client computer program for performing authentication for a time authenticator and generating a next authentication seed each time the authentication is successful and functioning as an authentication processing unit that updates the seed,
In the phase 1, the authentication processing unit reads the seeds on the server device side and the terminal device side from the portable storage device that can read and write data by the terminal device when placed in a predetermined position, and reads the seed When the one-time authenticator is generated and transmitted based on the seed and authentication is successful for the one-time authenticator, the seed for next authentication in the phase 1 for the server device side and the terminal device side is used as the portable type. Write to the storage device, and in Phase 2 after Phase 1, derive the initial authentication seed of Phase 2 from the next authentication seed of Phase 1 and generate a one-time authenticator from the initial authentication seed. When the one-time authenticator is successfully authenticated, a seed for next authentication in the phase 2 is generated. To update the serial seed,
A client computer program characterized by the above.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010173920A JP5616156B2 (en) | 2010-08-02 | 2010-08-02 | One-time authentication system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010173920A JP5616156B2 (en) | 2010-08-02 | 2010-08-02 | One-time authentication system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012034292A true JP2012034292A (en) | 2012-02-16 |
JP5616156B2 JP5616156B2 (en) | 2014-10-29 |
Family
ID=45847137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010173920A Active JP5616156B2 (en) | 2010-08-02 | 2010-08-02 | One-time authentication system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5616156B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014006691A (en) * | 2012-06-25 | 2014-01-16 | Chiba Univ | Device authentication method and system |
JP5939728B1 (en) * | 2015-08-24 | 2016-06-22 | 株式会社Pips | Spoofing detection system |
JP5963382B1 (en) * | 2015-10-02 | 2016-08-03 | 株式会社Pips | One-time authentication system |
JP2018101218A (en) * | 2016-12-19 | 2018-06-28 | 株式会社東芝 | Portable electronic device, program, processing system, terminal and IC card |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027263B (en) * | 2016-07-22 | 2019-10-18 | 北京信安世纪科技股份有限公司 | A kind of update method, device and the relevant device of token seed |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008035450A1 (en) * | 2006-09-20 | 2008-03-27 | Secured Communications, Inc. | Authentication by one-time id |
WO2008142731A1 (en) * | 2007-05-17 | 2008-11-27 | Secured Communications, Inc. | Seed distribution one-time id authentication |
JP2008287488A (en) * | 2007-05-17 | 2008-11-27 | Psd:Kk | Data distributing and preserving unit |
JP2008293415A (en) * | 2007-05-28 | 2008-12-04 | Psd:Kk | Authenticity determination method, relay device for authenticity determination, and server for authenticity determination |
JP2009009427A (en) * | 2007-06-28 | 2009-01-15 | Psd:Kk | Authentication processing method, system therefor and terminal apparatus |
-
2010
- 2010-08-02 JP JP2010173920A patent/JP5616156B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008035450A1 (en) * | 2006-09-20 | 2008-03-27 | Secured Communications, Inc. | Authentication by one-time id |
WO2008142731A1 (en) * | 2007-05-17 | 2008-11-27 | Secured Communications, Inc. | Seed distribution one-time id authentication |
JP2008287488A (en) * | 2007-05-17 | 2008-11-27 | Psd:Kk | Data distributing and preserving unit |
JP2008293415A (en) * | 2007-05-28 | 2008-12-04 | Psd:Kk | Authenticity determination method, relay device for authenticity determination, and server for authenticity determination |
JP2009009427A (en) * | 2007-06-28 | 2009-01-15 | Psd:Kk | Authentication processing method, system therefor and terminal apparatus |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014006691A (en) * | 2012-06-25 | 2014-01-16 | Chiba Univ | Device authentication method and system |
JP5939728B1 (en) * | 2015-08-24 | 2016-06-22 | 株式会社Pips | Spoofing detection system |
WO2017033267A1 (en) * | 2015-08-24 | 2017-03-02 | 株式会社Pips | Spoofing sensing system |
JP5963382B1 (en) * | 2015-10-02 | 2016-08-03 | 株式会社Pips | One-time authentication system |
WO2017056329A1 (en) * | 2015-10-02 | 2017-04-06 | 株式会社Pips | One-time authentication system |
JP2018101218A (en) * | 2016-12-19 | 2018-06-28 | 株式会社東芝 | Portable electronic device, program, processing system, terminal and IC card |
Also Published As
Publication number | Publication date |
---|---|
JP5616156B2 (en) | 2014-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9740849B2 (en) | Registration and authentication of computing devices using a digital skeleton key | |
US8516265B2 (en) | Authentication method, authentication device, program and recording medium | |
JP4118092B2 (en) | Storage device and information processing device | |
JP4733167B2 (en) | Information processing apparatus, information processing method, information processing program, and information processing system | |
JP4827836B2 (en) | Rights object information transmission method and apparatus between device and portable storage device | |
KR20040030454A (en) | Content usage authority management system and management method | |
JP2009537093A (en) | Digital copyright management method and apparatus | |
JP7174237B2 (en) | Key generation device, key update method and key update program | |
JP5616156B2 (en) | One-time authentication system | |
JP4859631B2 (en) | ENCRYPTED COMMUNICATION SYSTEM, COMMUNICATION TERMINAL DEVICE, ENCRYPTED COMMUNICATION PROGRAM, AND ENCRYPTED COMMUNICATION METHOD | |
JP2008287488A (en) | Data distributing and preserving unit | |
JP7008595B2 (en) | Service integrated authentication authorization system and service integrated authentication authorization method | |
JPWO2005038661A1 (en) | Terminal authentication apparatus and method | |
WO2017029708A1 (en) | Personal authentication system | |
JP5963382B1 (en) | One-time authentication system | |
JP2007143066A (en) | Imaging apparatus and key managing method | |
JP6631210B2 (en) | Terminal device authentication program, terminal device authentication method, server device, and authentication system | |
KR101211572B1 (en) | Karaoke apparatus certification system and karaoke apparatus certification method using smart card | |
JP2002149061A (en) | Rental contents distribution system and method therefor | |
JP3625658B2 (en) | Encryption method and recording medium | |
JP2007020065A (en) | Decryption backup method, decryption restoration method, attestation device, individual key setting machine, user terminal, backup equipment, encryption backup program, decryption restoration program | |
JP7555553B1 (en) | Information terminal, information processing system, computer program, and information processing method | |
JP5939728B1 (en) | Spoofing detection system | |
JP2008191851A (en) | Electronic equipment and information processing method | |
US20220052838A1 (en) | Reinitialization of an application secret by way of the terminal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130717 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140310 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140410 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140603 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140604 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20140610 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20140605 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20140610 |
|
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: 20140904 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140911 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5616156 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S201 | Request for registration of exclusive licence |
Free format text: JAPANESE INTERMEDIATE CODE: R314201 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S804 | Written request for registration of cancellation of exclusive licence |
Free format text: JAPANESE INTERMEDIATE CODE: R314805 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
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 |