JPWO2008035450A1 - ワンタイムidによる認証 - Google Patents

ワンタイムidによる認証 Download PDF

Info

Publication number
JPWO2008035450A1
JPWO2008035450A1 JP2007540445A JP2007540445A JPWO2008035450A1 JP WO2008035450 A1 JPWO2008035450 A1 JP WO2008035450A1 JP 2007540445 A JP2007540445 A JP 2007540445A JP 2007540445 A JP2007540445 A JP 2007540445A JP WO2008035450 A1 JPWO2008035450 A1 JP WO2008035450A1
Authority
JP
Japan
Prior art keywords
time
random number
client
server
communication unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007540445A
Other languages
English (en)
Other versions
JP4219965B2 (ja
Inventor
大河 克好
克好 大河
Original Assignee
株式会社Psd
モーダス アイディー コーポレーション
モーダス アイディー コーポレーション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社Psd, モーダス アイディー コーポレーション, モーダス アイディー コーポレーション filed Critical 株式会社Psd
Application granted granted Critical
Publication of JP4219965B2 publication Critical patent/JP4219965B2/ja
Publication of JPWO2008035450A1 publication Critical patent/JPWO2008035450A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3273Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Computer And Data Communications (AREA)

Abstract

この認証システムでは、複数のクライアント装置が、クライアント乱数R(i)およびサーバ乱数Q(i)から生成されたワンタイムIDによりサーバ装置により認証を受ける。サーバ装置は、次の通信単位についてのクライアント装置のワンタイムID:C(i+1)の生成に使用されるサーバ装置のサーバ乱数Q(i+1)を生成する際に、複数のうちのいずれかのクライアント装置に現在既に割り当てられているワンタイムIDと同一にならないように検証した上でサーバ乱数Q(i+1)を生成しクライアント装置2へ送信する。

Description

本発明は、ワンタイムIDによる認証に関するものである。
耐タンパ性を向上させるためにセッションごとにパスワードを変更して認証処理を行う技術としてワンタイムパスワードがある。ワンタイムパスワードを使用する場合でも、認証を受けるユーザまたは機器を特定するために固有ID(識別情報)が必要になる。
固有IDとワンタイムパスワードを認証に使用する場合、固有IDは、認証を行うセッションごとに変更されず一定のものとされる。したがって、固有IDを盗聴することで、認証を受けるユーザまたは機器が特定される可能性がある。
そこで、定期的にまたはセッション毎にIDを変更するワンタイムIDという技術が提案されている(例えば、文献1参照)。
文献1:国際公開公報WO2004/019553
しかしながら、上記文献1では、ワンタイムIDの生成に擬似乱数関数が使用されており、擬似乱数関数の値に衝突が発生すると、同一のIDが複数のユーザまたは機器に割り当てられる可能性がある。同一のIDが複数のユーザまたは機器に割り当てられた場合、ユーザまたは機器を一意に特定できないという問題がある。また、衝突が発生せず一意性を確保できる関数を使用する場合、演算量が増えたり、関数値から引数値が推測されやすくなる可能性がある。
そこで、本発明は、固有IDを使用せずに、高い耐タンパ性を維持しつつ、一方向性関数の値に基づくワンタイムIDで、機器を短時間で一意に特定可能な認証を行うことを目的とする。
上記の課題を解決するために、本発明では以下のようにした。
本発明に係る認証システムは、複数のクライアント装置またはクライアント装置から直接読み書き可能な複数のデータ格納機器を、所定の通信単位ごとに変化するワンタイムIDで認証サーバ装置により認証する。クライアント装置は、第1のワンタイムID生成手段と、第1の乱数生成手段と、第1の送信手段と、第1の受信手段と、第1の認証手段とを備える。第1のワンタイムID生成手段は、内蔵記憶媒体またはデータ格納機器に格納された現通信単位の認証サーバ装置のサーバ乱数とクライアント装置またはデータ格納機器のクライアント乱数とを読み出しそれらの乱数を引数としたハッシュ関数の値に基づいて当該クライアント装置またはデータ格納機器のワンタイムIDを生成する。第1の乱数生成手段は、所定の通信単位ごとにクライアント乱数を生成する。第1の送信手段は、第1のワンタイムID生成手段による現通信単位のワンタイムIDおよび第1の乱数生成手段による次の通信単位のクライアント乱数を認証サーバ装置に送信する。第1の受信手段は、認証サーバ装置から、現通信単位の認証サーバ装置のワンタイムIDおよび次の通信単位のサーバ乱数を受信する。第1の認証手段は、第1の受信手段により受信されたワンタイムIDとに基づいて認証サーバ装置の正当性を判断する。
また、認証サーバ装置は、記憶手段と、第2の乱数生成手段と、第2の受信手段と、第2の認証手段と、クライアントワンタイムID生成手段と、第2のワンタイムID生成手段と、第2の送信手段とを備える。記憶手段は、各クライアント装置または各データ格納機器のワンタイムIDを格納する。第2の乱数生成手段は、所定の通信単位ごとにサーバ乱数を生成する。第2の受信手段は、クライアント装置の現通信単位のワンタイムIDおよび次の通信単位のクライアント乱数をクライアント装置から受信する。第2の認証手段は、記憶手段におけるワンタイムIDと第2の受信手段により受信されたワンタイムIDとに基づきクライアント装置またはデータ格納機器の正当性を判断する。クライアントワンタイムID生成手段は、第2の乱数生成手段による次の通信単位のサーバ乱数と第2の受信手段により受信された次の通信単位のクライアント乱数とを引数としたハッシュ関数の値に基づいてクライアント装置またはデータ格納機器の次の通信単位のワンタイムIDを生成し、このワンタイムIDが、記憶手段に格納されている複数のワンタイムIDのいずれかと同一である場合には、第2の乱数生成手段により再度生成されたサーバ乱数と第2の受信手段により受信されたクライアント乱数とを引数としたハッシュ関数の値に基づいてワンタイムIDを再度生成し、そうでない場合には、そのワンタイムIDで記憶手段におけるクライアント装置またはデータ格納機器のワンタイムIDを更新する。第2のワンタイムID生成手段は、現通信単位のサーバ乱数と第2の受信手段により受信された次の通信単位のクライアント乱数とを引数としたハッシュ関数の値に基づいて現通信単位の認証サーバ装置のワンタイムIDを生成する。第2の送信手段は、現通信単位の認証サーバ装置のワンタイムIDおよび次の通信単位のサーバ乱数をクライアント装置へ送信する。
これによれば、クライアント装置のワンタイムIDの生成に使用されるサーバ装置のサーバ乱数が生成される際に、いずれかのクライアント装置に現在既に割り当てられているワンタイムIDと同一にならないように検証した上でサーバ乱数を生成している。また、ハッシュ関数により短時間でワンタイムIDが生成される。これにより、高い耐タンパ性を維持しつつ、固有IDを送受しなくても、一方向性関数の値に基づくワンタイムIDで、クライアント装置またはデータ格納機器を短時間で一意に特定することが可能になる。
本発明に係る認証サーバ装置は、複数のクライアント装置またはクライアント装置から直接読み書き可能な複数のデータ格納機器を、所定の通信単位ごとに変化するワンタイムIDで認証する。この認証サーバ装置は、受信手段と、乱数生成手段と、クライアントワンタイムID生成手段と、送信手段と、認証手段とを備える。受信手段は、いずれかのクライアント装置により生成されたクライアント乱数を受信する。乱数生成手段は、サーバ乱数を生成する。クライアントワンタイムID生成手段は、通信単位ごとに更新されるクライアント乱数とサーバ乱数とを引数とした一方向性関数でクライアント装置またはデータ格納機器の次の通信単位のワンタイムIDを生成し、生成したワンタイムIDがいずれかのクライアント装置またはデータ格納機器に割り当てられているワンタイムIDと同一である場合、乱数生成手段によりサーバ乱数を再生成させ再生成されたサーバ乱数を使用して次の通信単位のワンタイムIDを再度生成する。送信手段は、次の通信単位のワンタイムIDの生成に使用されたサーバ乱数をクライアント装置に送信する。認証手段は、次の通信単位で、クライアントワンタイムID生成手段により生成されたワンタイムIDに基づいてクライアント装置またはデータ格納機器の正当性を判断する。
これによれば、クライアント装置のワンタイムIDの生成に使用される認証サーバ装置のサーバ乱数が生成される際に、いずれかのクライアント装置に現在既に割り当てられているワンタイムIDと同一にならないように検証した上でサーバ乱数を生成している。これにより、高い耐タンパ性を維持しつつ、固有IDを送受しなくても、一方向性関数の値に基づくワンタイムIDで、クライアント装置またはデータ格納機器を短時間で一意に特定することが可能になる。
また、本発明に係る認証サーバ装置は、上記の認証サーバ装置に加え、次のようにしてもよい。この場合、認証サーバ装置は、各クライアント装置または各データ格納機器のワンタイムIDを格納する記憶手段を備える。そして、受信手段は、現通信単位についてのクライアント乱数およびサーバ乱数から生成されたワンタイムIDと次の通信単位のクライアント乱数とをクライアント装置から受信し、認証手段は、受信手段により受信されたワンタイムIDと記憶手段におけるワンタイムIDとに基づきクライアント装置またはデータ格納機器の正当性を判断する。クライアントワンタイムID生成手段は、認証手段によりクライアント装置またはデータ格納機器が正当なものであると判断された後に、次の通信単位のサーバ乱数と次の通信単位のクライアント乱数とを引数とした一方向性関数の値に基づいてクライアント装置またはデータ格納機器についての次の通信単位のワンタイムIDを生成し、生成したワンタイムIDが、記憶手段に格納されている複数のワンタイムIDのいずれかと同一である場合には、乱数生成手段により再生成された次の通信単位のサーバ乱数と次の通信単位のクライアント乱数とを引数とした一方向性関数の値に基づいてワンタイムIDを再度生成し、生成したワンタイムIDが、記憶手段に格納されている複数のワンタイムIDのいずれとも同一ではない場合には、生成したワンタイムIDで、記憶手段におけるクライアント装置またはデータ格納機器のワンタイムIDを更新する。
これによれば、現通信単位のワンタイムIDに基づきクライアント装置またはデータ格納機器が正当なものであると判断された後に、直ちに同一の通信単位内で、そのクライアント装置またはデータ格納機器の次の通信単位のワンタイムIDが生成され、記憶手段におけるそのクライアント装置またはデータ格納機器のワンタイムIDが更新される。これにより、ワンタイムIDを盗聴した第三者がそのワンタイムIDを使用した場合でもその第三者の機器が正当なクライアント装置またはデータ格納機器と特定されることを防止できる。つまり、ワンタイムIDが盗聴された場合でも、正当な機器を一意に特定することができる。
また、本発明に係る認証サーバ装置は、上記の認証サーバ装置のいずれかに加え、次のようにしてもよい。この場合、認証サーバ装置は前記サーバ乱数を暗号化する暗号化手段を備える。そして、乱数生成手段は、クライアント乱数およびサーバ乱数が消失した場合に、サーバ乱数の初期値を新たに生成する。クライアントワンタイムID生成手段は、サーバ乱数の初期値を使用してワンタイムIDを生成する。暗号化手段は、クライアント装置から認証要求とともに受信したワンタイムIDに基づいて生成された暗号鍵でサーバ乱数の初期値を暗号化する。送信手段は、クライアント乱数およびサーバ乱数が消失したことを通知するデータ、並びに暗号化されたサーバ乱数の初期値を、クライアント装置に送信する。
これによれば、認証サーバ装置におけるクライアント乱数およびサーバ乱数が消失した場合、クライアント装置からの認証要求が発生すると、サーバ装置により新たに生成されたサーバ乱数の初期値を、認証要求とともに送信されてきたワンタイムIDを使用して暗号化した上でそのクライアント装置へ供給する。これにより、認証要求を送信したクライアント装置のみがそのサーバ乱数の初期値を取得することができるため、認証サーバ装置におけるクライアント乱数およびサーバ乱数が消失した場合でも、耐タンパ性を維持しつつ、クライアント装置の認証を継続して行うことができる。また、そのような場合でも、正当なクライアント装置を一意に特定することができる。
また、本発明に係る認証サーバ装置は、上記の認証サーバ装置のいずれかに加え、次のようにしてもよい。この場合、記憶手段は、クライアント装置またはデータ格納機器のそれぞれについて、連続する2つの通信単位のワンタイムIDを格納する。認証手段は、サーバ装置からの次の通信単位のサーバ乱数がクライアント装置により受信されず受信エラーが発生した場合には、受信手段により受信されたワンタイムIDと記憶手段における2つのワンタイムIDのうちの古いワンタイムIDとに基づきクライアント装置またはデータ格納機器の正当性を判断し、クライアント装置からのワンタイムIDが受信手段により受信されず受信エラーが発生した場合には、受信手段により受信されたワンタイムIDと記憶手段における2つのワンタイムIDのうちの新しいワンタイムIDとに基づきクライアント装置またはデータ格納機器の正当性を判断する。クライアントワンタイムID生成手段は、ワンタイムIDを生成する際に、生成したワンタイムIDが、記憶手段に格納されている2つの通信単位のすべてのワンタイムIDのいずれかと同一である場合には、乱数生成手段により再生成された次の通信単位のサーバ乱数と次の通信単位のクライアント乱数とを引数とした一方向性関数の値に基づいてワンタイムIDを再度生成する。
これにより、クライアント装置・サーバ装置間の通信障害に起因してクライアント装置 に受信エラーが発生した場合でも、耐タンパ性を維持しつつ、クライアント装置の認証を継続して行うことができる。また、そのような場合でも、正当なクライアント装置を一意に特定することができる。
また、本発明に係る認証サーバ装置は、上記の認証サーバ装置のいずれかに加え、次のようにしてもよい。この場合、送信手段は、クライアントワンタイムID生成手段により生成された次の通信単位のワンタイムIDをクライアント装置に送信せずに、クライアント装置において次の通信単位のワンタイムIDが生成される際に使用される次の通信単位のサーバ乱数を送信する。
これによれば、クライアント装置は、次の通信単位のワンタイムIDを、サーバ装置から受信せず、サーバ装置から受信したサーバ乱数および自己の生成するクライアント乱数から生成する。このようにして、次回使用予定のワンタイムIDが盗聴されることがなく、かつ、上記のようにサーバ乱数を生成することで、サーバ装置においてクライアント装置またはデータ格納機器をワンタイムIDにより一意に特定することができる。
また、本発明に係る認証サーバ装置は、上記の認証サーバ装置のいずれかに加え、次のようにしてもよい。この場合、クライアントワンタイムID生成手段は、クライアント装置のそれぞれまたはデータ格納機器のそれぞれについて生成されたサーバ乱数を使用して、クライアント装置のそれぞれまたはデータ格納機器のそれぞれについてのワンタイムIDを生成する。
これにより、正当なクライアント装置が、自己についてのサーバ乱数を取得したとしても、他のクライアント装置についてのサーバ乱数とは異なるため、他のクライアント装置のワンタイムIDが推測しにくい。
また、本発明に係る認証サーバ装置は、上記の認証サーバ装置のいずれかに加え、次のようにしてもよい。この場合、クライアントワンタイムID生成手段は、通信プロトコルおよびポート番号のいずれかごとにワンタイムIDを生成する。認証手段は、クライアント装置と受信手段との通信に使用される通信プロトコルおよびポート番号のいずれかに応じたワンタイムIDでクライアント装置の正当性を判断する。
これによれば、通信プロトコルまたはポート番号ごとに、複数のクライアント装置のワンタイムIDが管理される。したがって、1つのクライアント装置で複数の通信プロトコルまたはポートが使用される場合には、1つのクライアント装置に対して複数のワンタイムIDが生成され、通信プロトコルまたはポート番号ごとに、認証サーバ装置により認証を受ける。これにより、通信プロトコルまたはポート番号ごとに、クライアント装置またはデータ格納機器を一意に特定することが可能になる。
また、本発明に係る認証サーバ装置は、上記の認証サーバ装置のいずれかに加え、次のようにしてもよい。この場合、認証サーバ装置は、現通信単位のサーバ乱数、および受信手段により受信された次の通信単位のクライアント乱数を引数とした一方向性関数の値に基づいて当該認証サーバ装置のワンタイムIDを生成するワンタイムID生成手段を備える。そして、送信手段は、次の通信単位のサーバ乱数とともに、当該認証サーバ装置のワンタイムIDを送信する。
これによれば、ワンタイムIDを送信してきたクライアント装置においても、認証サーバ装置のワンタイムIDに基づいて認証サーバ装置の正当性を判断することができる。つまり、これによれば、相互認証が可能となる。
また、本発明に係る認証サーバ装置は、上記の認証サーバ装置のいずれかに加え、次のようにしてもよい。この場合、認証サーバ装置は、通信単位ごとに更新される可変共通鍵で復号をする復号手段と、可変共通鍵で暗号化をする暗号化手段とを備える。そして、受信手段は、可変共通鍵で暗号化された次の通信単位のクライアント乱数をクライアント装置から受信し、復号手段は、認証手段によりクライアント装置またはデータ格納機器が正当なものであると判断された後に、受信手段により受信された次の通信単位のクライアント乱数を復号する。暗号化手段は、次の通信単位のサーバ乱数を可変共通鍵で暗号化し、送信手段は、暗号化された次の通信単位のサーバ乱数とともに、当該認証サーバ装置のワンタイムIDを送信する。
これにより、クライアント装置が正当なものである場合にのみ復号処理が実行されるため、不正クライアントからの認証要求に対する処理を短時間で行うことができる。このため、不正クライアントからの大量の認証要求によるDoS(Denial of Service)攻撃に対する耐性が向上する。
また、本発明に係る認証サーバ装置は、上記の認証サーバ装置のいずれかに加え、次のようにしてもよい。この場合、認証サーバ装置は、現通信単位の可変共通鍵と次の通信単位のクライアント乱数と次の通信単位のサーバ乱数とを引数とした一方向性関数の値に基づき次の通信単位の可変共通鍵を生成し、可変共通鍵を更新する共通鍵更新手段を備える。
これにより、クライアント装置と認証サーバ装置との間で全く送受されない可変共通鍵を用いて次の通信単位の可変共通鍵を生成するため、可変共通鍵を解読しにくくすることができる。
また、本発明に係る認証サーバ装置は、上記の認証サーバ装置のいずれかに加え、次のようにしてもよい。この場合、一方向性関数には、暗号鍵を使用せずにダイジェストを生成するハッシュ関数が使用される。
これにより、衝突が発生しうるが計算量の比較的少ないハッシュ関数を一方向性関数として使用することができる。計算量の比較的少ないハッシュ関数を使用することで認証処理の時間を短くすることができる。
本発明に係る記録媒体は、複数のクライアント装置またはクライアント装置から直接読み書き可能な複数のデータ格納機器を、所定の通信単位ごとに変化するワンタイムIDで認証する認証サーバ装置としてコンピュータを機能させるコンピュータプログラムを格納する。このコンピュータプログラムは、サーバ乱数を生成する乱数生成手段、サーバ乱数とクライアント装置により生成され通信単位ごとに更新されるクライアント乱数とを引数とした一方向性関数でクライアント装置またはデータ格納機器の次の通信単位のワンタイムIDを生成し、生成したワンタイムIDがいずれかのクライアント装置またはデータ格納機器に割り当てられているワンタイムIDと同一である場合、乱数生成手段によりサーバ乱数を再生成させ再生成されたサーバ乱数を使用して次の通信単位のワンタイムIDを再度生成するクライアントワンタイムID生成手段、並びに、次の通信単位で、クライアントワンタイムID生成手段により生成されたワンタイムIDに基づいてクライアント装置またはデータ格納機器の正当性を判断する認証手段としてコンピュータを機能させる。
これによれば、クライアント装置のワンタイムIDの生成に使用される認証サーバ装置のサーバ乱数が生成される際に、いずれかのクライアント装置に現在既に割り当てられているワンタイムIDと同一にならないように検証した上でサーバ乱数を生成している。これにより、高い耐タンパ性を維持しつつ、固有IDを送受しなくても、一方向性関数の値に基づくワンタイムIDで、短時間でクライアント装置またはデータ格納機器を一意に特定することが可能になる。
本発明に係るワンタイムID管理方法は、複数のクライアント装置またはクライアント装置から直接読み書き可能な複数のデータ格納機器に割り当てられる所定の通信単位ごとに変化するワンタイムIDを認証サーバ装置で管理する方法である。この方法は、いずれかのクライアント装置により生成されたクライアント乱数を受信する受信ステップと、サーバ乱数を生成する乱数生成ステップと、通信単位ごとに更新されるクライアント乱数とサーバ乱数とを引数とした一方向性関数でクライアント装置またはデータ格納機器の次の通信単位のワンタイムIDを生成し、生成したワンタイムIDがいずれかのクライアント装置またはデータ格納機器に割り当てられているワンタイムIDと同一である場合、乱数生成ステップにてサーバ乱数を再生成し再生成したサーバ乱数を使用して次の通信単位のワンタイムIDを再度生成するクライアントワンタイムID生成ステップと、次の通信単位のワンタイムIDの生成に使用されたサーバ乱数をクライアント装置に送信する送信ステップと、次の通信単位で、クライアントワンタイムID生成ステップにて生成されたワンタイムIDに基づいてクライアント装置またはデータ格納機器の正当性を判断する認証ステップとを備える。
これによれば、クライアント装置のワンタイムIDの生成に使用される認証サーバ装置のサーバ乱数が生成される際に、いずれかのクライアント装置に現在既に割り当てられているワンタイムIDと同一にならないように検証した上でサーバ乱数を生成している。これにより、高い耐タンパ性を維持しつつ、固有IDを送受しなくても、一方向性関数の値に基づくワンタイムIDで、クライアント装置またはデータ格納機器を一意に特定することが可能になる。
本発明によれば、高い耐タンパ性を維持しつつ、固有IDを使用せずに、一方向性関数の値に基づくワンタイムIDで、機器を短時間で一意に特定可能な認証を行うことができる。
図1は、本発明の実施の形態1に係る認証システムの構成を示すブロック図である。 図2は、実施の形態1において、サーバ装置の認証サーバプログラムおよびクライアント装置の認証処理プログラムを実行することにより実現される処理部を説明するブロック図である。 図3は、実施の形態1におけるクライアント装置・サーバ装置間の認証手順を説明するフローチャートである。 図4は、図3のステップS37の詳細を説明するフローチャートである。 図5は、図3のステップS40の詳細を説明するフローチャートである。 図6は、実施の形態1におけるクライアントテーブルの一例を示す図である。 図7は、実施の形態2におけるクライアント装置・サーバ装置間の認証手順を説明するフローチャートである。 図8は、実施の形態3におけるクライアント装置・サーバ装置間の認証手順を説明するフローチャートである。 図9は、実施の形態3におけるクライアントテーブルの一例を示す図である。 図10は、図8のステップS245の詳細を説明するフローチャートである。 図11は、本発明の実施の形態4に係る認証システムの構成を示すブロック図である。
符号の説明
1,101 サーバ装置(認証サーバ装置の一例)
2,102 クライアント装置
14 HDD(記憶手段の一例,記録媒体の一例)
14a 認証サーバプログラム(コンピュータプログラムの一例)
34 HDD(内蔵記憶媒体の一例)
51 乱数生成部(第2の乱数生成手段の一例,乱数生成手段の一例)
52 ワンタイムID生成部(クライアントワンタイムID生成手段の一例,ワンタイムID生成手段の一例)
53 暗号処理部(復号手段の一例,暗号化手段の一例)
54 共通鍵更新部(共通鍵更新手段の一例)
55 通信処理部(第2の受信手段の一例,第2の送信手段の一例,受信手段の一例,送信手段の一例)
56 データ管理部(第2の認証手段の一例,認証手段の一例)
71 乱数生成部(第1の乱数生成手段の一例)
72 ワンタイムID生成部(第1のワンタイムID生成手段の一例)
75 通信処理部(第1の送信手段の一例,第1の受信手段の一例)
76 データ管理部(第1の認証手段の一例)
以下、図に基づいて本発明の実施の形態を説明する。
実施の形態1.
図1は、本発明の実施の形態1に係る認証システムの構成を示すブロック図である。
図1において、サーバ装置1は、本発明の認証サーバ装置の一実施の形態である装置である。クライアント装置2は、サーバ装置1により認証を受ける装置である。通信ネットワーク3は、サーバ装置1およびクライアント装置2が接続される有線および/または無線の通信路である。なお、図1では、クライアント装置2は1つであるが、通信ネットワーク3には複数のクライアント装置2が接続されていてもよい。
このシステムでは、クライアント装置2で生成されるクライアント乱数、サーバ装置1で生成されるサーバ乱数、および、クライアント乱数、サーバ乱数などから生成される共通秘密鍵が、クライアント装置2およびサーバ装置1により共有される。そして、クライアント乱数、サーバ乱数および共通秘密鍵は、認証セッションごとに更新される。ワンタイムIDは、クライアント乱数およびサーバ乱数から認証セッションごとに生成され更新される。また、クライアント装置2とサーバ装置1との間では、ワンタイムIDとともに、自己の生成したクライアント乱数またはサーバ乱数が共通暗号鍵で暗号化された上で通信相手に送信される。これにより、認証のために送受されるデータは、すべて認証セッションごとに更新されるとともに、共通秘密鍵も認証セッションごとに更新されるため、高い耐タンパ性が実現される。
サーバ装置1は、HDD14および通信装置15を内蔵し、認証サーバプログラム14aをインストールされたコンピュータである。
CPU11は、プログラムを実行し、プログラムに記述された処理を実行する演算処理装置である。また、ROM12は、プログラムおよびデータを予め記憶した不揮発性のメモリである。また、RAM13は、プログラムを実行する際にそのプログラムおよびデータを一時的に記憶するメモリである。
また、HDD14は、図示せぬオペレーティングシステム、認証サーバプログラム14aといったアプリケーションプログラム、認証処理に必要なデータ14b,14cなどを格納する記録媒体としてのハードディスク駆動装置である。認証サーバプログラム14aは、以下に説明する認証処理のうちのサーバ側の処理を記述されたコンピュータプログラムである。認証データ14bは、複数のクライアント装置2のそれぞれについて所定の通信単位ごとに更新されるクライアント乱数R、サーバ乱数Qおよび可変共通鍵Kである。クライアント乱数Rは、通信単位ごとに1つのクライアント装置2において生成される乱数である。サーバ乱数Qは、通信単位ごとにサーバ装置1において生成される乱数である。可変共通鍵Kは、通信単位ごとに更新され、1つのクライアント装置2とサーバ装置1とで共有される秘密鍵である。なお、可変共通鍵Kは、機器間で送受されず、クライアント装置2およびサーバ装置1のそれぞれにおいて生成される。クライアント乱数R、サーバ乱数Qおよび可変共通鍵Kは、1つのクライアント装置2とサーバ装置1との間で1組ずつ生成される。クライアント装置2がN台ある場合には、N組のクライアント乱数R、サーバ乱数Qおよび可変共通鍵Kが生成される。クライアントテーブル14cは、各クライアント装置2のワンタイムIDおよびそのクライアント装置2に関するクライアント情報を関連づけて有するテーブルである。クライアント情報は、クライアント装置2の固有ID、アカウント情報、属性情報などとされる。実施の形態1では、クライアントテーブル14cは、ワンタイムIDとして、各クライアント装置2が次セッションで使用するワンタイムIDのみを有する。つまり、使用されたワンタイムIDはクライアントテーブル14cから削除される。
また、通信装置15は、ネットワークインタフェースカード、モデムなどといった通信ネットワーク3を介してクライアント装置2と通信可能な装置である。
また、インタフェース16は、キーボード、マウスなどといった入力装置17を接続可能なインタフェース回路である。画像処理回路18は、画像データを書き込まれると、そのデータに対応する画像信号を出力する回路である。この画像処理回路18には、その画像信号に基づいて画像を表示する表示装置19が接続可能である。
バス20は、CPU11、ROM12、RAM13、HDD14、通信装置15、インターフェース16および画像処理回路18を相互に接続する信号路である。バス20としては、PCI(Peripheral Component Interconnect)などといった規格のバスが使用される。また、ブリッジコントローラにより複数のバスが接続される形態としてもよい。
一方、クライアント装置2は、HDD34および通信装置35を内蔵し、認証処理プログラム34aをインストールされたコンピュータ端末である。なお、クライアント装置2は、携帯型のパーソナルコンピュータ、携帯電話機などとしてもよい。
CPU31は、プログラムを実行し、プログラムに記述された処理を実行する演算処理装置である。また、ROM32は、プログラムおよびデータを予め記憶した不揮発性のメモリである。また、RAM33は、プログラムを実行する際にそのプログラムおよびデータを一時的に記憶するメモリである。
また、HDD34は、図示せぬオペレーティングシステム、認証処理プログラム34aといったアプリケーションプログラム、認証処理に必要なデータ34b,34cなどを格納する記録媒体としてのハードディスク駆動装置である。認証処理プログラム34aは、以下に説明する認証処理のうちのクライアント側の処理を記述されたコンピュータプログラムである。認証データ34bは、所定の通信単位ごとに更新されるクライアント乱数R、サーバ乱数Qおよび可変共通鍵Kである。クライアント乱数R、サーバ乱数Qおよび可変共通鍵Kは、サーバ装置1に格納されている、このクライアント装置2についてクライアント乱数R、サーバ乱数Qおよび可変共通鍵Kと同一の値のものである。サーバデータ34cは、サーバ装置1のワンタイムIDおよびそのサーバ装置1に関する情報を関連づけて有するテーブルである。
また、通信装置35は、ネットワークインタフェースカード、モデムなどといった通信ネットワーク3を介してサーバ装置1と通信可能な装置である。
また、インタフェース36は、キーボード、マウスなどといった入力装置37を接続可能なインタフェース回路である。画像処理回路38は、画像データを書き込まれると、そのデータに対応する画像信号を出力する回路である。この画像処理回路38には、その画像信号に基づいて画像を表示する表示装置39が接続可能である。
バス40は、CPU31、ROM32、RAM33、HDD34、通信装置35、インターフェース36および画像処理回路38を相互に接続する信号路である。バス40としては、PCIなどといった規格のバスが使用される。また、ブリッジコントローラにより複数のバスが接続される形態としてもよい。
図2は、実施の形態1において、サーバ装置1の認証サーバプログラム14aおよびクライアント装置2の認証処理プログラム34aを実行することにより実現される処理部を説明するブロック図である。
サーバ装置1では、認証サーバプログラム14aがCPU11により実行されることで、乱数生成部51、ワンタイムID生成部52、暗号処理部53、共通鍵更新部54、通信処理部55およびデータ管理部56が生成される。
乱数生成部51は、演算により擬似乱数を生成する処理部である。ワンタイムID生成部52は、クライアント乱数およびサーバ乱数を引数とした一方向性関数の値に基づきワンタイムIDを生成する処理部である。この実施の形態1では、一方向性関数として、暗号鍵を使用せずにダイジェストを生成するMD5などのハッシュ関数が使用される。暗号処理部53は、可変共通鍵で暗号化および復号を行う処理部である。共通鍵更新部54は、可変共通鍵、クライアント乱数およびサーバ乱数を引数とした一方向性関数の値に基づき可変共通鍵を更新する処理部である。この実施の形態1では、一方向性関数として、暗号鍵を使用せずにダイジェストを生成するMD5などのハッシュ関数が使用される。通信処理部55は、通信装置15を制御して、クライアント装置2との間で各種データを送受する処理部である。データ管理部56は、HDD14およびRAM13にアクセスして、認証処理に係る一時データの読み書き、認証データ14aおよびクライアントテーブル14cの更新を行う処理部である。
一方、クライアント装置2では、認証処理プログラム34aがCPU31により実行されることで、乱数生成部71、ワンタイムID生成部72、暗号処理部73、共通鍵更新部74、通信処理部75およびデータ管理部76が生成される。
乱数生成部71は、演算により擬似乱数を生成する処理部である。ワンタイムID生成部72は、クライアント乱数およびサーバ乱数を引数とした一方向性関数の値に基づきワンタイムIDを生成する処理部である。この一方向性関数は、サーバ装置1のワンタイムID生成部52と同一の関数とされる。暗号処理部73は、可変共通鍵で暗号化および復号を行う処理部である。共通鍵更新部74は、可変共通鍵、クライアント乱数およびサーバ乱数を引数とした一方向性関数の値に基づき可変共通鍵を更新する処理部である。この一方向性関数は、サーバ装置1の共通鍵更新部54と同一の関数とされる。通信処理部75は、通信装置35を制御して、サーバ装置1との間で各種データを送受する処理部である。データ管理部76は、HDD34およびRAM33にアクセスして、認証処理に係る一時データの読み書き、認証データ34bおよびサーバデータ34cの更新を行う処理部である。
次に、上記装置の動作について説明する。図3は、実施の形態1におけるクライアント装置2・サーバ装置1間の認証手順を説明するフローチャートである。
まず、サーバ装置1およびクライアント装置2は、初期値として、クライアント乱数R(0)、サーバ乱数Q(0)および可変共通鍵K(0)を共有している。サーバ装置1では、クライアント乱数R(0)、サーバ乱数Q(0)および可変共通鍵K(0)は、HDD14における認証データ14bとして予め格納される。クライアント装置2では、クライアント乱数R(0)、サーバ乱数Q(0)および可変共通鍵K(0)は、HDD34における認証データ34bとして予め格納される。なお、最初の可変共通鍵K(0)は、クライアント装置2およびサーバ装置1により、後述の式(5)に基づき生成されるようにしてもよい。その場合、前セッションの可変共通鍵の代わりに、真性乱数Zが使用される。この真性乱数Zは、初期状態にて、サーバ装置1およびクライアント装置2により共有される。
そして、1回の認証セッションごとに、サーバ装置1およびクライアント装置2に保持されているクライアント乱数R(i)、サーバ乱数Q(i)および可変共通鍵K(i)が更新されていく。
したがって、n回の認証セッションが完了した後には、クライアント乱数R(n)、サーバ乱数Q(n)および可変共通鍵K(n)が共有されている状態となる。
ここで、i回の認証セッションが完了した後のクライアント乱数R(i)、サーバ乱数Q(i)および可変共通鍵K(i)が共有されている状態から、(i+1)回目の認証セッションが発生し完了するまでの処理について図3を参照して説明する。
サーバ装置1では、認証サーバプログラム14aがCPU11により実行され、図2に示す各処理部51〜56が実現される。また、クライアント装置2では、認証処理プログラム34aがCPU31により実行され、図2に示す各処理部71〜76が実現される。なお、認証サーバプログラム14aおよび認証処理プログラム34aは、装置起動時に実行され、その後常駐しているようにしてもよい。
この状態では、クライアント乱数R(i)、サーバ乱数Q(i)および可変共通鍵K(i)が共有されている(ステップS11,S31)。
クライアント装置2においてサーバ装置1による認証を受ける要求が発生した場合、まず、ワンタイムID生成部72は、式(1)に従って、現セッションiについての、クライアント装置2のワンタイムID:C(i)を生成する(ステップS12)。ワンタイムID:C(i)はデータ管理部76により一時的にRAM33に記憶される。
C(i)=hash(R(i),Q(i)) ・・・(1)
ただし、hashは、MD5などのハッシュ関数である。このハッシュ関数としては、暗号鍵を使用せずにダイジェストを生成するハッシュ関数が使用される。このハッシュ関数には、多少の衝突が発生してもよく、計算量があまり多くないものが選択される。
次に、乱数生成部71は、次セッション(i+1)についてのクライアント乱数R(i+1)を発生する(ステップS13)。このクライアント乱数R(i+1)は、データ管理部76によりRAM33に一時的に記憶される。また、このクライアント乱数R(i+1)は、次セッションのワンタイムID:C(i+1)およびサーバ装置1の現セッションのワンタイムID:S(i)の生成に使用される。
そして、データ管理部76は、可変共通鍵K(i)をHDD34から読み出し、クライアント乱数R(i+1)とともに暗号処理部73に供給する。暗号処理部73は、所定の暗号化関数Fcに従って、可変共通鍵K(i)でクライアント乱数R(i+1)を暗号化する(ステップS14)。暗号化されたクライアント乱数Acは、データ管理部76によりRAM33に一時的に記憶される。
そして、データ管理部76は、RAM33から、ワンタイムID:C(i)および暗号化されたクライアント乱数Acを読み出し通信処理部75に供給する。通信処理部75は、ワンタイムID:C(i)および暗号化されたクライアント乱数Acを、認証要求とともに、サーバ装置1へ送信する(ステップS15)。
サーバ装置1では、通信処理部55が、サーバ装置1宛の通信データを受信する。このため、認証要求、ワンタイムID:C(i)および暗号化されたクライアント乱数Acは、通信処理部55により受信される(ステップS32)。
サーバ装置1の通信処理部55が認証要求を受信すると、データ管理部56は、HDD14のクライアントテーブル14cを参照し、受信されたワンタイムID:C(i)と同一のワンタイムIDがクライアントテーブル14cに登録されているか否かを判定する(ステップS33)。
データ管理部56は、受信されたワンタイムID:C(i)がクライアントテーブル14cに登録されていない場合には、認証処理を中止する(ステップS34)。
一方、データ管理部56は、受信されたワンタイムID:C(i)がクライアントテーブル14cに登録されている場合、認証要求を送信したクライアント装置2が正当なクライアントであると判断するとともに、クライアント装置2を特定する。
クライアント装置2が正当なクライアントであると判断された後、データ管理部56は、特定されたクライアント装置2の可変共通鍵K(i)をHDD14から読み出し、クライアント乱数Acとともに、暗号処理部53に供給する。暗号処理部53は、所定の復号関数Fdに従って、暗号化されているクライアント乱数Acを可変共通鍵K(i)で復号し、平文のクライアント乱数R(i+1)を取得する(ステップS35)。なお、復号関数Fdは、クライアント装置2における暗号処理部73の暗号化関数Fcにより暗号化された暗号文を平文に変換する関数である。クライアント乱数R(i+1)はデータ管理部56により一時的にRAM13に記憶される。
次に、サーバ装置1のデータ管理部56は、HDD14からサーバ乱数Q(i)を読み出し、クライアント乱数R(i+1)とともに、ワンタイムID生成部52に供給する。ワンタイムID生成部52は、現セッションについてのサーバ装置1のワンタイムID:S(i)を式(2)に従って生成する(ステップS36)。ワンタイムID:S(i)はデータ管理部56により一時的にRAM13に記憶される。
S(i)=hash(R(i+1),Q(i)) ・・・(2)
ただし、hashは、MD5などのハッシュ関数である。式(2)の関数hashは、式(1)の関数hashと同一であってもよい。
また、クライアント装置2が正当なクライアントであると判断された後、乱数生成部51は、特定されたクライアント装置2との間で使用される次セッションのサーバ乱数Q(i+1)を生成する(ステップS37)。サーバ乱数Q(i+1)はデータ管理部56により一時的にRAM13に記憶される。このサーバ乱数Q(i+1)は、次セッションのワンタイムID:C(i+1),S(i+1)の生成に使用される。
その際、乱数生成部51は、次セッションについてのクライアント装置2のワンタイムID:C(i+1)がクライアントテーブル14cに登録済みで未使用のワンタイムと重複しないようにサーバ乱数Q(i+1)を生成する。
図4は、図3のステップS37の詳細を説明するフローチャートである。
まず、乱数生成部51は、乱数Qtを生成する(ステップS61)。乱数Qtは、サーバ乱数Q(i+1)の候補である。
そして、データ管理部56は、この乱数Qtと、次セッションのクライアント乱数R(i+1)とをワンタイムID生成部52に供給する。ワンタイムID生成部52は、式(3)に従って、乱数Qtがサーバ乱数Q(i+1)とされた場合の、次セッションについてのクライアント装置2のワンタイムID:CCを生成する(ステップS62)。
CC=hash(R(i+1),Qt) ・・・(3)
ただし、hashは、式(1)の関数hashと同一なハッシュ関数である。
次に、データ管理部56は、クライアントテーブル14cに登録されている各ワンタイムIDと、生成されたワンタイムID:CCとを比較する(ステップS63)。
クライアントテーブル14cに登録されているいずれかのワンタイムIDと、生成されたワンタイムID:CCとが同一である場合には、乱数生成部51は、別の乱数Qtを生成し(ステップS64)、ワンタイムID生成部52は、その別の乱数Qtに基づいてワンタイムID:CCを生成する(ステップS62)。そして、生成されたワンタイムID:CCは、クライアントテーブル14cに登録されている各ワンタイムIDと比較される。
そして、生成されたワンタイムID:CCが、クライアントテーブル14cに登録されているいずれのワンタイムIDとも同一ではない場合には、データ管理部56は、この乱数Qtを次セッションについてのサーバ乱数Q(i+1)とし、一時的にRAM13に記憶する(ステップS65)。
このように、サーバ装置1では、クライアント装置2においてワンタイムIDを生成する関数hashと同一の関数を使用して、複数のクライアント装置2のワンタイムIDに衝突が生じないサーバ乱数が予め選択される。
特定されたクライアント装置2について次セッションのサーバ乱数Q(i+1)が生成されると、図3に戻り、データ管理部56は、そのサーバ乱数Q(i+1)をRAM13から読み出し、可変共通鍵K(i)をHDD14から読み出し、それらを暗号処理部53に供給する。暗号処理部53は、所定の暗号化関数Fcに従って、可変共通鍵K(i)でサーバ乱数Q(i+1)を暗号化する(ステップS38)。暗号化されたクライアント乱数Asは、データ管理部56によりRAM13に一時的に記憶される。なお、この暗号化関数Fcは、クライアント装置2における暗号処理部53の暗号化関数と同一でもよいし、別のものでもよい。
そして、データ管理部56は、RAM13から、ワンタイムID:S(i)および暗号化されたクライアント乱数Asを読み出し通信処理部55に供給する。通信処理部55は、認証されたことを示す返答、並びにワンタイムID:S(i)および暗号化されたサーバ乱数Asを、認証要求の送信元のクライアント装置2へ送信する(ステップS39)。
このように、サーバ装置1は、次セッションのワンタイムID:C(i+1)をクライアント装置2に送信せずに、クライアント装置2において次セッションのワンタイムID:C(i+1)が生成される際に使用される次セッションのサーバ乱数Q(i+1)を送信する。
認証されたことを示す返答、並びにワンタイムID:S(i)および暗号化されたサーバ乱数Asを送信した後、サーバ装置1のデータ管理部56は、今回認証を行ったクライアント装置2の次セッションについてのワンタイムID:C(i+1)をクライアントテーブル14cに登録する(ステップS40)。その際、今回認証を行ったクライアント装置2の現セッションについてのワンタイムID:C(i)が、次セッションについてのワンタイムID:C(i+1)で上書きされ更新される。また、次セッションについてのワンタイムID:C(i+1)は、サーバ乱数Q(i+1)を生成する際に計算したもの(ステップS62)としてもよいし、ワンタイムID生成部52により式(4)に従って生成されたものとしてもよい。
C(i+1)=hash(R(i+1),Q(i+1)) ・・・(4)
ただし、hashは、式(1)と同一なハッシュ関数である。
ここで、クライアントテーブル14cの更新処理について説明する。図5は、図3のステップS40の詳細を説明するフローチャートである。図6は、実施の形態1におけるクライアントテーブル14cの一例を示す図である。
図6に示すように、実施の形態1では、クライアントテーブル14cには、複数mのレコードが確保されている。各レコードは、1つのクライアント装置2についてのワンタイムIDおよびクライアント情報を有する。また、各レコードには、連続するインデックスが付されており、インデックスの値を指定することで所望の1つのレコードが読み出される。実施の形態1では、インデックスの値は、ワンタイムIDを所定の整数Nで除算した際の剰余とされ、レコード数mは、Nの10〜20倍程度の数とされる。ただし、インデックスの値が衝突した場合には、インデックスの値を1ずつ増加させる。例えば、図6では、インデックス値が1であるレコードに、あるクライアント装置のワンタイムID:C2およびそのクライアント装置の情報が格納されている。
まず、データ管理部56は、現セッションのワンタイムID:C(i)からインデックスの値を計算する(ステップS81)。ワンタイムIDを所定の整数Nで除算した際の剰余が計算され、その剰余の値をインデックスの値とする。
次に、データ管理部56は、クライアントテーブル14cにおけるそのインデックス値のレコードを読み出す(ステップS82)。
そして、データ管理部56は、読み出したレコード内のワンタイムIDがワンタイムID:C(i)と同一であるか否かを判断する(ステップS83)。
データ管理部56は、読み出したレコード内のワンタイムIDがワンタイムID:C(i)と同一ではない場合、インデックス値を1だけ増加させ(ステップS84)、そのインデックス値のレコードを読み出し(ステップS82)、ワンタイムIDが同一であるか否かを判断する(ステップS83)。
そして、読み出したレコード内のワンタイムIDがワンタイムID:C(i)と同一である場合、データ管理部56は、次セッションのワンタイムID:C(i+1)からインデックスの値を計算する(ステップS85)。ワンタイムIDを所定の整数Nで除算した際の剰余が計算され、その剰余の値をインデックスの値とする。
次に、データ管理部56は、そのインデックス値のレコードが空きか否かを判断する(ステップS86)。
データ管理部56は、そのインデックス値のレコードが空きではない場合、インデックス値を1だけ増加させ(ステップS87)、そのインデックス値のレコードが空きか否かを判断する(ステップS86)。
そして、データ管理部56は、インデックス値のレコードが空きである場合、そのインデックス値のレコードに、次セッションのワンタイムID:C(i+1)、および現セッションのワンタイムID:C(i)のレコードにおけるクライアント情報を格納する(ステップS88)。
次セッションのワンタイムID:C(i+1)を登録した後、データ管理部56は、現セッションのワンタイムID:C(i)のレコードをクライアントテーブル14cから削除する(ステップS89)。
このようにして、クライアントテーブル14c内のワンタイムIDが更新される。
図3に戻り、その後、データ管理部56は、特定されたクライアント装置2についての次セッションのクライアント乱数R(i+1)およびサーバ乱数Q(i+1)をRAM13から読み出し、可変共通鍵K(i)をHDD14から読み出し、それらを共通鍵更新部54に供給する。共通鍵更新部54は、クライアント乱数R(i+1)、サーバ乱数Q(i+1)および現セッションの可変共通鍵K(i)から次セッションの可変共通鍵K(i+1)を式(5)に従って生成する(ステップS41)。次セッションの可変共通鍵K(i+1)は、データ管理部56により一時的にRAM13に記憶される。
K(i+1)=hash2(K(i),R(i+1),Q(i+1))・・・(5)
ただし、hash2は、ハッシュ関数である。
そして、データ管理部56は、RAM13から次セッションのクライアント乱数R(i+1)、サーバ乱数Q(i+1)および可変共通鍵K(i+1)を読み出し、HDD14の認証データ14bとして格納されているクライアント乱数R(i)、サーバ乱数Q(i)および可変共通鍵K(i)を次セッションのクライアント乱数R(i+1)、サーバ乱数Q(i+1)および可変共通鍵K(i+1)へ更新する(ステップS42)。
一方、クライアント装置2では、通信処理部75が、クライアント装置2宛の通信データを受信する。このため、返答、ワンタイムID:S(i)および暗号化されたサーバ乱数Asは、通信処理部75により受信される(ステップS16)。
クライアント装置2のデータ管理部76は、返答が受信されると、サーバ装置1の真正なワンタイムID:Yと、受信されたワンタイムID:S(i)とを比較してサーバ装置1の正当性を判断する(ステップS17,S18)。なお、サーバ装置1の真正なワンタイムID:Yは、ワンタイムID生成部72により式(6)に従って生成される。
Y=hash(R(i+1),Q(i)) ・・・(6)
ただし、hashは、式(2)と同一なハッシュ関数である。
データ管理部76は、受信されたワンタイムID:S(i)が真正なワンタイムID:Yと同一ではない場合、返答したサーバ装置1を不正サーバと判断し、認証処理を中止する(ステップS19)。
一方、データ管理部76は、受信されたワンタイムID:S(i)が真正なワンタイムID:Yと同一である場合、返答したサーバ装置1が正当なサーバであると判断するとともに、サーバ装置1を特定する。
サーバ装置1が正当なサーバであると判断された後、データ管理部76は、可変共通鍵K(i)をHDD34から読み出し、サーバ乱数Asとともに、暗号処理部73に供給する。暗号処理部73は、所定の復号関数Fdに従って、暗号化されているクライアント乱数Asを可変共通鍵K(i)で復号し、平文のサーバ乱数Q(i+1)を取得する(ステップS20)。なお、復号関数Fdは、サーバ装置1における暗号処理部53の暗号化関数Fcにより暗号化された暗号文を平文に変換する関数である。サーバ乱数Q(i+1)はデータ管理部76により一時的にRAM33に記憶される。
データ管理部76は、次セッションのクライアント乱数R(i+1)およびサーバ乱数Q(i+1)をRAM33から読み出し、可変共通鍵K(i)をHDD34から読み出し、それらを共通鍵更新部74に供給する。共通鍵更新部74は、クライアント乱数R(i+1)、サーバ乱数Q(i+1)および現セッションの可変共通鍵K(i)から次セッションの可変共通鍵K(i+1)を式(5)に従って生成する(ステップS21)。次セッションの可変共通鍵K(i+1)は、データ管理部76により一時的にRAM33に記憶される。
そして、データ管理部76は、RAM33から次セッションのクライアント乱数R(i+1)、サーバ乱数Q(i+1)および可変共通鍵K(i+1)を読み出し、HDD34の認証データ34bとして格納されているクライアント乱数R(i)、サーバ乱数Q(i)および可変共通鍵K(i)を次セッションのクライアント乱数R(i+1)、サーバ乱数Q(i+1)および可変共通鍵K(i+1)へ更新する(ステップS22)。
このようにして、1認証セッションにおいて、ワンタイムID:C(i),S(i)によりクライアント装置2およびサーバ装置1が相互に認証を行うとともに、共有している情報であるクライアント乱数R(i)、サーバ乱数Q(i)および可変共通鍵K(i)がクライアント装置2およびサーバ装置1のそれぞれにおいて更新される。
そして、上述のようにして、1回の認証セッションが完了し相互に認証が完了した後、クライアント装置2とサーバ装置1との間で、各種アプリケーションのデータ通信が開始される。なお、各種アプリケーションのデータ通信は、複数回の認証セッションを行った後に開始するようにしてもよい。
以上のように、上記実施の形態1によれば、サーバ装置1は、複数のクライアント装置2を、所定の通信単位(認証セッション)ごとに変化するワンタイムIDで認証サーバ装置により認証する。
クライアント装置2では、ワンタイムID生成部72は、現セッションのサーバ乱数Q(i)とクライアント乱数R(i)とを引数としたハッシュ関数の値でクライアント装置2のワンタイムID:C(i)を生成する。通信処理部75は、そのワンタイムID:C(i)およびクライアント乱数R(i+1)をサーバ装置1に送信する。ただし、クライアント乱数R(i+1)は暗号化された状態で送信される。サーバ装置1では、データ管理部56は、クライアントテーブル14cにおけるワンタイムIDと受信されたワンタイムIDとに基づきクライアント装置2の正当性を判断する。
クライアント装置2が正当なものであると判断された後、ワンタイムID生成部52は、次セッションのサーバ乱数Q(i+1)と受信された次セッションのクライアント乱数R(i+1)とを引数としたハッシュ関数の値に基づいてクライアント装置2の次セッションのワンタイムID:C(i+1)を生成し、このワンタイムID:C(i+1)が、クライアントテーブル14cに格納されている複数のワンタイムIDのいずれかと同一である場合には、再度生成されたサーバ乱数Q(i+1)と受信されたクライアント乱数R(i+1)とからワンタイムID:C(i+1)を再度生成し、そのワンタイムIDでクライアントテーブル14cにおけるそのクライアント装置2のワンタイムID:C(i)を更新する。そして、通信処理部55は、次セッションのワンタイムID:C(i)の生成に使用されたサーバ乱数Q(i+1)をクライアント装置2に送信する。ただし、サーバ乱数Q(i+1)は暗号化された状態で送信される。
そして、クライアント装置2では、次セッションにおいて、そのサーバ乱数Q(i+1)と既に生成されているクライアント乱数R(i+1)から次セッションのワンタイムID:C(i+1)が生成される。
これによれば、クライアント装置2のワンタイムID:C(i+1)の生成に使用されるサーバ装置1のサーバ乱数Q(i+1)が生成される際に、複数のうちのいずれかのクライアント装置2に現在既に割り当てられているワンタイムIDと同一にならないように検証した上でサーバ乱数Q(i+1)を生成している。これにより、固有IDを送受しなくても、一方向性関数の値に基づくワンタイムIDで、クライアント装置2を常に一意に特定することが可能になる。
また、サーバ装置1において、現セッションのワンタイムID:C(i)に基づきクライアント装置2が正当なものであると判断された後に、直ちに同一のセッション内で、そのクライアント装置2の次セッションのワンタイムID:C(i+1)が生成され更新される。これにより、さらに、ワンタイムID:C(i)を盗聴した第三者がそのワンタイムID:C(i)を使用した場合でもその第三者の機器が正当なクライアント装置2と特定されてしまうことを防止できる。つまり、ワンタイムIDが盗聴された場合でも、正当な機器を一意に特定することができる。
また、クライアント装置2からサーバ装置1へのワンタイムID:C(i)などの送信、およびサーバ装置1からクライアント装置2へのワンタイムID:S(i)などの送信という2回の通信のみで相互認証を行うことができる。このため、相互認証に要する時間が短くて済む。
また、実施の形態1によれば、サーバ装置1で生成された次セッションについてのクライアント装置2のワンタイムID:C(i+1)がクライアント装置2に送信されず、その代わりに、クライアント装置2においてワンタイムID:C(i+1)が生成される際に使用される次セッションのサーバ乱数Q(i+1)が送信される。したがって、クライアント装置2は、次セッションのワンタイムID:C(i+1)を、サーバ装置1から受信せず、サーバ装置1から受信したサーバ乱数Q(i+1)および自己の生成するクライアント乱数R(i+1)から生成する。このようにして、次回使用されるワンタイムID:C(i+1)が盗聴されることがない。
また、実施の形態1によれば、クライアント装置2は、固有IDなどの固定的な識別情報を全く送信しない。したがって、クライアント装置2からサーバ装置1へ送信されるデータが盗聴され解析されたとしても、盗聴者がクライアント装置2の固定的な識別情報を取得することはできない。
また、実施の形態1によれば、サーバ装置1は、複数のクライアント装置2のそれぞれについて生成されたサーバ乱数Q(i)を使用して、複数のクライアント装置2のそれぞれについてのワンタイムID:C(i)を生成する。これにより、正当なクライアント装置2が、自己についてのサーバ乱数を取得しても、他のクライアント装置2についてのサーバ乱数とは異なるため、他のクライアント装置2のワンタイムIDが推測しにくい。
また、上記実施の形態1によれば、サーバ装置1は、現セッションについてのサーバ装置1のワンタイムID:S(i)を生成しクライアント装置2へ送信する。これによれば、ワンタイムID:C(i)を送信してきたクライアント装置2においても、サーバ装置1のワンタイムID:S(i)に基づいてサーバ装置1の正当性を判断することができる。これにより、相互認証が可能となる。
また、上記実施の形態1によれば、サーバ装置1は、可変共通鍵で暗号化された次セッションのクライアント乱数Acをクライアント装置2から受信し、そのクライアント装置2が正当なものであると判断された後に、そのクライアント乱数Acを復号する。これにより、クライアント装置2が正当なものである場合にのみ復号処理が実行されるため、不正クライアントからの認証要求に対する処理を短時間で行うことができる。このため、不正クライアントからの大量の認証要求によるDoS攻撃に対する耐性が向上する。
また、上記実施の形態1によれば、サーバ装置1は、現セッションの可変共通鍵K(i)を使用して次セッションの可変共通鍵K(i+1)を生成し、可変共通鍵K(i+1)を更新する。これにより、クライアント装置2とサーバ装置1との間で全く送受されない可変共通鍵を用いて次セッションの可変共通鍵K(i+1)を生成するため、可変共通鍵K(i+1)を解読しにくくすることができる。
また、上記実施の形態1によれば、ワンタイムID:C(i)を生成するための一方向性関数に、暗号鍵を使用せずにダイジェストを生成するハッシュ関数が使用される。これにより、衝突が発生しうるが計算量の比較的少ないハッシュ関数を一方向性関数として使用することができる。計算量の比較的少ないハッシュ関数を使用することで認証処理の時間を短くすることができる。
実施の形態2.
本発明の実施の形態2に係る認証システムでは、サーバ装置1で保持されていた認証データ14bが消失した場合に、正当なクライアント装置2のみが確実に認証されるようにサーバ装置1がクライアント装置2とともに復旧処理を行う。このようなサーバリセット事象の原因としては、誤操作によるデータ削除、HDD14の故障などがありうる。また、認証データ14bがRAM13などの揮発性メモリに格納されている場合には、サーバ装置1の再起動、停電なども原因となる。
実施の形態2に係る認証システムの構成は、原則として実施の形態1のものと同一である。ただし、実施の形態2におけるサーバ装置1およびクライアント装置2は、クライアント乱数の初期値R(0)、固定の秘密鍵Kfおよび真性乱数Zを共有してHDD14,34などに保持する。また、実施の形態2におけるサーバ装置1およびクライアント装置2は、以下のように動作する。
図7は、実施の形態2におけるクライアント装置2・サーバ装置1間の認証手順を説明するフローチャートである。
サーバリセット事象が検出された後(ステップS131)、サーバ装置1は、サーバリセット事象に起因して認証処理を通常どおり行うことができないため、以下の処理を行う。サーバ装置1では、通信処理部55により認証要求、ワンタイムID:C(i)およびクライアント乱数Acが受信されると(ステップS132)、乱数生成部51は、サーバ乱数Qxを生成する(ステップS133)。なお、その際、実施の形態1のステップS37と同様に、サーバ乱数Qxとクライアント乱数R(0)から生成されるワンタイムID:C(0)が、その時点でクライアントテーブル14cに登録されている他のワンタイムIDと一致しないように、サーバ乱数Qxは生成される。
次に、乱数生成部51は、リセット乱数Vを生成する(ステップS134)。リセット乱数Vは、擬似乱数か真性乱数とされる。
そして、式(7)に従って、図示せぬリセット秘密鍵生成部により、リセット乱数V、受信されたワンタイムID:C(i)および固定秘密鍵Kfからリセット秘密鍵Krが生成される(ステップS135)。
Kr=hash3(V,C(i),Kf) ・・・(7)
ただし、hash3は、ハッシュ関数である。
そして、暗号処理部53によりサーバ乱数Qxがリセット秘密鍵Krで暗号化され(ステップS136)、暗号化されたサーバ乱数Axが、通信処理部55により、リセット乱数Vおよびリセット発生情報とともに、クライアント装置2へ送信される(ステップS137)。リセット発生情報は、サーバリセット事象が発生したことをクライアント装置2に通知するためのフラグ値などといったデータである。
その後、サーバ装置1では、共通鍵更新部54により、真性乱数Z、クライアント乱数の初期値R(0)およびサーバ乱数Qxから式(8)に従って可変秘密鍵Kxが生成される(ステップS138)。
Kx=hash2(Z,R(0),Qx) ・・・(8)
ただし、hash2は、式(5)の関数hash2と同一のものである。
また、ワンタイムID生成部52により、クライアント乱数R(0)およびサーバ乱数Qxから、クライアント装置2のワンタイムID:C(0)が生成され、実施の形態1のステップS40の処理と同様にして、クライアントテーブル14cに登録される。
そして、サーバ装置1では、サーバリセット後の認証データ14bの初期値として、クライアント乱数R(0)、サーバ乱数Qxおよび共通鍵KxがHDD14に格納される(ステップS140)。
一方、クライアント装置2では、通信処理部75により、リセット発生情報、リセット乱数Vおよびサーバ乱数Axが受信されると(ステップS111)、リセット乱数V、ステップS15で送信したワンタイムID:C(i)および固定暗号鍵Kfから式(7)に従って、リセット秘密鍵Krが生成される(ステップS112)。そして、そのリセット秘密鍵Krにより、サーバ乱数Axが復号され、平文のサーバ乱数Qxが取得される(ステップS113)。
次に、クライアント装置2では、共通鍵更新部74により、真性乱数Z、クライアント乱数の初期値R(0)およびサーバ乱数Qxから式(8)に従って可変秘密鍵Kxが生成される(ステップS114)。
そして、クライアント装置2では、サーバリセット後の認証データ14bの初期値として、クライアント乱数R(0)、サーバ乱数Qxおよび共通鍵KxがHDD34に格納される(ステップS115)。
このように、まず、クライアント装置2とサーバ装置1とにより、クライアント乱数R(0)、サーバ乱数Qxおよび共通鍵Kxが、サーバリセット後の認証データ14bの初期値として共有される。
その後、クライアント装置2とサーバ装置1は、実施の形態1と同様にして認証セッションを1回実行してクライアント乱数、サーバ乱数および可変共通鍵を更新する(ステップS12〜S22,S32〜S42)。
これにより、サーバ装置1において、このクライアント装置2についての認証データ14bおよびクライアントテーブル14c内のワンタイムIDが復旧される。
それ以降、サーバリセット事象が発生しなければ、実施の形態1と同様にして認証セッションが必要に応じて適宜実行される。
以上のように、上記実施の形態2によれば、サーバ装置1では、認証データ14b(クライアント乱数、サーバ乱数など)が消失した場合に、乱数生成部51が、サーバ乱数の初期値Qxを新たに生成する。そして、ワンタイムID生成部52は、そのサーバ乱数の初期値Qxを使用して、クライアント装置2が次回使用するワンタイムID:C(0)を生成する。暗号処理部53は、認証要求とともに受信したクライアント装置2のワンタイムID:C(i)から生成された暗号鍵Krでサーバ乱数の初期値Qxを暗号化する。通信処理部55は、サーバリセット発生情報、および暗号化されたサーバ乱数の初期値Axを、クライアント装置2に送信する。
これにより、認証要求を送信したクライアント装置2のみがそのサーバ乱数の初期値Qxを復号して取得することができるため、サーバ装置1におけるクライアント乱数およびサーバ乱数が消失した場合、耐タンパ性を維持しつつ、クライアント装置2の認証を継続して行うことができる。
実施の形態3.
本発明の実施の形態3に係る認証システムでは、サーバ装置1は、連続する2セッション分の認証データ14bおよびクライアントテーブル14cを保持し、クライアント装置2・サーバ装置1間の通信障害で認証に失敗した場合でも再度認証処理を行うことができる。
クライアント装置2・サーバ装置1間の通信障害に起因する事象としては、クライアント装置2から送信されたワンタイムID:C(i)およびクライアント乱数Acがサーバ装置1へ到達しない(事象#1)、サーバ装置1から送信されたワンタイムID:S(i)およびサーバ乱数Asがクライアント装置2へ到達しない(事象#2)、の2つがある。
実施の形態3に係る認証システムの構成は、原則として実施の形態1または2のものと同一である。ただし、実施の形態3におけるサーバ装置1およびクライアント装置2は、以下のように動作する。
図8は、実施の形態3におけるクライアント装置2・サーバ装置1間の認証手順を説明するフローチャートである。
実施の形態3では、サーバ装置1には、2セッション分の認証データ14bが保持される。つまり、現セッション開始時には、前セッション時に使用されたクライアント乱数R(i−1)、サーバ乱数Q(i−1)および可変共通鍵K(i−1)、並びに現セッションについてのクライアント乱数R(i)、サーバ乱数Q(i)および可変共通鍵K(i)が保持されている(ステップS231)。
図9は、実施の形態3におけるクライアントテーブル14cの一例を示す図である。図9に示すように、実施の形態3では、クライアントテーブル14cは、現セッションのクライアントテーブル14c1と前セッションのクライアントテーブル14c2とを有する。
クライアント装置2の通信処理部75は、実施の形態1と同様にして、認証要求、ワンタイムID:C(i)、および暗号化されたクライアント乱数Acをサーバ装置1へ送信する。そして、通信処理部75は、所定時間(例えば60秒)以内にサーバ装置1から返答がない場合には、通信障害が発生したと判断する(ステップS211)。
通信障害が発生した場合、通信処理部75は、受信エラー情報を付して、認証要求、ワンタイムID:C(i)およびクライアント乱数Acをサーバ装置1へ再送信する(ステップS212)。受信エラー情報は、受信エラーが発生したことをサーバ装置1へ通知するためのフラグ値などといったデータである。
サーバ装置1の通信処理部55は、認証要求を受信し(ステップS232)、認証要求に付されている受信エラー情報を検出すると、通常処理とは異なるリカバリ処理を開始する(ステップS233)。なお、受信エラー情報が検出されない場合、サーバ装置1は、実施の形態1の場合と同様の処理を行う。
リカバリ処理では、まず、データ管理部56により、受信されたワンタイムID:C(i)が前セッションのクライアントテーブル14c2に登録されているか否かが判断される(ステップS234)。
事象#2に起因して認証が失敗した場合、クライアント装置2の現セッションとサーバ装置1の前セッションとが同一のセッションとなる。したがって、正当なクライアント装置2による認証が事象#2に起因して失敗した場合には、受信されたワンタイムID:C(i)は前セッションのクライアントテーブル14c2に登録されている。
この場合、サーバ装置1の現セッションについてのクライアント乱数R(i)および前セッションについてのサーバ乱数Q(i−1)が読み出され、ワンタイムID生成部52により、式(7)に従って、サーバ装置1のワンタイムID:S(i−1)が生成される(ステップS235)。また、暗号処理部52により、所定の暗号化関数Fcに従って、前セッションの可変共通鍵K(i−1)で現セッションのサーバ乱数Q(i)が暗号化される(ステップS236)。そして、通信処理部55により、このワンタイムID:S(i−1)および暗号化されたサーバ乱数Asが、認証要求を送信したクライアント装置2へ送信される(ステップS237)。
S(i−1)=hash(R(i),Q(i−1))・・・(7)
ただし、hashは、式(2)と同一なハッシュ関数である。
一方、受信されたワンタイムID:C(i)が前セッションのクライアントテーブルに登録されていない場合、データ管理部56により、受信されたワンタイムID:C(i)が現セッションのクライアントテーブル14c1に登録されている否かが判断される(ステップS238)。
事象#1に起因して認証が失敗した場合、クライアント装置2の現セッションとサーバ装置1の現セッションとが同一のセッションとなる。したがって、正当なクライアント装置2による認証が事象#1に起因して失敗した場合には、受信されたワンタイムID:C(i)は現セッションのクライアントテーブル14c1に登録されている。
この場合、実施の形態1と同様にクライアント乱数Acが復号され次セッションについての平文のクライアント乱数R(i+1)が取得される(ステップS239)。
次に、実施の形態1と同様にワンタイムID:S(i)およびサーバ乱数Q(i+1)が生成される(ステップS240,S241)。ただし、サーバ乱数Q(i+1)を生成するとき、次セッションについてのクライアント装置2のワンタイムID:CCがクライアントテーブル14cにおける現セッションおよび前セッションのテーブルにおけるいずれのワンタイムIDとも一致しないようなサーバ乱数Q(i+1)が生成される。また、実施の形態1と同様にサーバ乱数Q(i+1)が暗号化される(ステップS242)。
そして、通信処理部55により、このワンタイムID:S(i)および暗号化されたサーバ乱数Asが、認証要求を送信したクライアント装置2へ送信される(ステップS243)。
なお、受信されたワンタイムID:C(i)が、前セッションおよび現セッションのいずれのクライアントテーブル14c1,14c2にも登録されていない場合には、認証要求を送信したクライアント装置2は、不正クライアントと判断される(ステップS244)。
その後、事象#1に起因して認証が失敗した場合には、次セッションについてのクライアント装置2のワンタイムID:C(i+1)がクライアントテーブル14cに登録される(ステップS245)。図10は、図8のステップS245の詳細を説明するフローチャートである。
実施の形態3では、サーバ装置1のデータ管理部56は、現セッションのクライアントテーブル14c1から現セッションのワンタイムID:C(i)のレコードを読み出す(ステップS251)。その際、データ管理部56は、ワンタイムID:C(i)を所定の整数Nで除算した際の剰余をインデックス値として計算しそのインデックス値のレコードを読み出し、そのレコード内のワンタイムIDがワンタイムID:C(i)と一致するか否かを判断する。一致する場合には、データ管理部56は、そのレコードがワンタイムID:C(i)のレコードであると判断する。一方、そのレコード内のワンタイムIDがワンタイムID:C(i)と一致しない場合には、データ管理部56は、インデックス値を1だけ増加させてそのインデックス値のレコードを読み出し、そのレコード内のワンタイムIDがワンタイムID:C(i)と一致するか否かを判断する。このようにして、データ管理部56は、ワンタイムID:C(i)のレコードが発見されるまで、インデックス値を1ずつ増加させてレコードを読み出していく。
次に、データ管理部56は、読み出したワンタイムID:C(i)のレコードからクライアント情報を抽出し、ワンタイムID:C(i)およびそのクライアント情報を、前セッションのクライアントテーブル14c2に格納する(ステップS252)。その際、データ管理部56は、ワンタイムID:C(i)を所定の整数Nで除算した際の剰余をインデックス値としそのインデックス値のレコードが空きであるか否かを判断する。空きである場合には、データ管理部56は、そのレコードにワンタイムID:C(i)とクライアント情報を格納する。一方、そのレコードが空きではない場合には、データ管理部56は、インデックス値を1ずつ増加させていき、そのインデックス値のレコードが空きであるか否かを判断し、空きのレコードに、ワンタイムID:C(i)とクライアント情報を格納する。
また、データ管理部56は、読み出したワンタイムID:C(i)のレコードにおけるクライアント情報と次セッションのワンタイムID:C(i+1)を、現セッションのクライアントテーブル14c1に格納する(ステップS253)。その際、データ管理部56は、ワンタイムID:C(i+1)を所定の整数Nで除算した際の剰余をインデックス値として計算しそのインデックス値のレコードが空きであるか否かを判断する。空きである場合には、データ管理部56は、そのレコードにワンタイムID:C(i+1)とクライアント情報を格納する。一方、そのレコードが空きではない場合には、データ管理部56は、インデックス値を1ずつ増加させていき、そのインデックス値のレコードが空きであるか否かを判断し、空きのレコードに、ワンタイムID:C(i+1)とクライアント情報を格納する。
そして、データ管理部56は、現セッションのクライアントテーブル14c1における現セッションのワンタイムID:C(i)のレコードを特定し、そのレコードの内容を削除する(ステップS254)。その際、データ管理部56は、ステップS251で特定した現セッションのクライアントテーブルにおけるワンタイムID:C(i)のレコードのインデックス値をRAM13に記憶しておき、ステップS254でそのインデックス値のレコードの内容を削除する。
また、データ管理部56は、前セッションのクライアントテーブル14c2における前セッションのワンタイムID:C(i−1)のレコードを特定し、そのレコードの内容を削除する(ステップS255)。その際、ワンタイムID生成部52は、前セッションのクライアント乱数R(i−1)およびサーバ乱数Q(i−1)から前セッションのワンタイムID:C(i−1)を生成し、データ管理部56は、そのワンタイムID:C(i−1)を所定の整数Nで除算した際の剰余をインデックス値として計算しそのインデックス値のレコードを読み出し、そのレコード内のワンタイムIDがワンタイムID:C(i−1)と一致するか否かを判断する。一致する場合には、データ管理部56は、そのレコードがワンタイムID:C(i−1)のレコードであると判断する。一方、そのレコード内のワンタイムIDがワンタイムID:C(i)と一致しない場合には、データ管理部56は、インデックス値を1ずつ増加させていき、そのインデックス値のレコードを読み出し、そのレコード内のワンタイムIDがワンタイムID:C(i)と一致する場合に、そのレコードがワンタイムID:C(i−1)のレコードであると判断する。
このようにして、次セッションについてのクライアント装置2のワンタイムID:C(i+1)がクライアントテーブル14cに登録されるとともに、現セッションについてのクライアント装置2のワンタイムID:C(i)もクライアントテーブル14cに保持される。なお、前セッションについてのワンタイムID:C(i−1)はクライアントテーブル14cから削除される。つまり、あるセッションで、現セッションのクライアントテーブル14c1に格納されたワンタイムIDは、次のセッションで、前セッションのクライアントテーブル14c2に移動し、さらにその次のセッションで、クライアントテーブル14cから削除される。
図8に戻り、事象#1に起因して認証が失敗した場合には、実施の形態1と同様にして、可変共通鍵K(i)が更新される(ステップS246)。
そして、データ管理部56は、HDD14に認証データ14bとして格納されているクライアント乱数R(i−1)、サーバ乱数Q(i−1)および可変共通鍵K(i−1)並びにクライアント乱数R(i)、サーバ乱数Q(i)および可変共通鍵K(i)を、クライアント乱数R(i)、サーバ乱数Q(i)および可変共通鍵K(i)並びにクライアント乱数R(i+1)、サーバ乱数Q(i+1)および可変共通鍵K(i+1)へ更新する(ステップS247)。
なお、事象#2に起因して認証が失敗した場合には、既に認証データ14bおよびクライアントテーブル14cが更新されているため、ステップS245,S246の処理は必要ない。また、事象#2に起因して認証が失敗した場合には、その際に、既に、クライアント乱数R(i)、サーバ乱数Q(i)および共通鍵K(i)、並びにクライアント乱数R(i+1)、サーバ乱数Q(i+1)および共通鍵K(i+1)への更新が行われているため、サーバ装置1は、それらの数値をそのまま保持する(ステップS247)。
他方、クライアント装置2は、ステップS212においてワンタイムIDおよびクライアント乱数Acを再送した後、実施の形態1のステップS16〜S22の処理を同様に行う。事象#1および事象#2のいずれで認証に失敗したかをサーバ装置1が検出しそれに応じた処理を実行するため、クライアント装置2は、ワンタイムIDおよびクライアント乱数Acを再送した後は、通常通りの処理を行う。
以上のように、上記実施の形態3によれば、サーバ装置1のHDD14は、各クライアント装置2について、連続する2つのセッションのワンタイムIDを格納する。事象#2による受信エラーが発生した場合には、データ管理部56は、クライアント装置2から受信されたワンタイムIDと前セッションのクライアントテーブル14c2内のワンタイムIDとに基づきクライアント装置2の正当性を判断し、事象#1による受信エラーが発生した場合には、データ管理部56は、クライアント装置2から受信されたワンタイムIDと現セッションのクライアントテーブル14c1内のワンタイムIDとに基づきクライアント装置2の正当性を判断する。ただし、最終的には正当性は、この後に通常の認証セッションを実行し、その認証セッションにて判断される。
また、事象#1による受信エラーが発生した場合、ワンタイムID生成部52は、ワンタイムID:C(i+1)を生成する際に、そのワンタイムID:C(i+1)が、クライアントテーブル14c1,14c2に登録されているワンタイムIDのいずれかと同一である場合には、再生成されたサーバ乱数Q(i+1)とクライアント乱数R(i+1)からワンタイムIDを再度生成する。
これにより、クライアント装置2・サーバ装置1間の通信障害に起因してクライアント装置2に受信エラーが発生しても、クライアント装置2が、同じワンタイムID:C(i)を使用して、サーバ装置1による認証を受けることができ、サーバ装置1は、1つ前の古いワンタイムIDに基づき、そのクライアント装置2を一意に特定することができる。
なお、実施の形態3では、認証失敗後のワンタイムID送信時に受信エラー情報を付加しているが、受信エラー情報を付加しなくてもよい。ただし、その場合には、最初に、実施の形態1と同様に、現セッションのクライアントテーブルを参照し、受信したワンタイムIDがそのテーブルに登録されている場合には、ステップS239以降の処理を行う。一方、受信したワンタイムIDがそのテーブルに登録されていない場合には、前セッションのクライアントテーブルを参照し、受信したワンタイムIDがそのテーブルに登録されている場合には、ステップS235以降の処理を行う。受信したワンタイムIDがいずれのクライアントテーブルにも登録されていない場合には、処理を中止する。つまり、前セッションのクライアントテーブルにワンタイムIDが登録されていれば、受信エラーが発生したものとして復旧処理(ステップS235〜S237)を行う。
実施の形態4.
本発明の実施の形態4に係る認証システムは、1つのプロトコルによる通信セッションに1つのワンタイムID:C(i),S(i)を割り当てるようにしたものである。
図11は、本発明の実施の形態4に係る認証システムの構成を示すブロック図である。
図11において、サーバ装置101は、図1のサーバ装置1と同様の装置である。ただし、サーバ装置101は、1または複数のプロトコルに応じて1または複数のサーバプログラムを格納している。そして、1つのサーバプログラムがCPUにより実行されることで、1つのサーバ処理部111が実現される。このようなサーバプログラムとしては、POP3(Post Office Protocol version 3)などのメール配信サーバプログラム、HTTP(HyperText Transfer Protocol)サーバプログラムなどがある。また、サーバ装置101は、各プロトコルのセッションについてワンタイムIDにて認証処理を行う認証処理部112を有する。認証処理部112は、図2の処理部51〜56と同様の機能を有し、図示せぬHDDおよびRAMにおける認証データ、クライアントテーブルなどにアクセスしつつ、プロトコルごとに、ワンタイムID:C(i),S(i)により通信セッションの正当性を確保する。
また、クライアント装置102は、図1のクライアント装置2と同様の装置である。ただし、クライアント装置102は、1または複数のプロトコルに応じて1または複数のアプリケーションプログラムを格納している。そして、1つのアプリケーションプログラムがCPUにより実行されることで、1つのアプリケーション処理部121が実現される。このようなアプリケーションプログラムとしては、メールクライアントプログラム、ウェブブラウザプログラムなどがある。また、クライアント装置102は、各プロトコルのセッションについてワンタイムIDにて認証処理を行う認証処理部122を有する。認証処理部122は、図2の処理部71〜76と同様の機能を有し、図示せぬHDDおよびRAMにおける認証データ、サーバデータなどにアクセスしつつ、プロトコルごとに、ワンタイムID:C(i),S(i)により通信セッションの正当性を確保する。
なお、クライアント装置102およびサーバ装置101は、図示せぬ通信ネットワークを介して通信を行う。また、図11ではクライアント装置102は1台であるが、複数台存在してもよい。
次に、上記装置の動作について説明する。
クライアント装置102のアプリケーション処理部121は、所定のプロトコルに従ってサーバ装置112のサーバ処理部122とデータ通信を行う。つまり、認証処理部112,122の有無に拘わらず、アプリケーション処理部121とサーバ処理部122は、同一手順でデータ131を送受する。
そして、クライアント装置102の認証処理部122は、アプリケーション処理部121からサーバ処理部122へのデータ131に認証データ132を付加し、サーバ装置101の認証処理部112は、アプリケーション処理部121からサーバ処理部122へのデータ131に付加された認証データ132を受信し、そのデータ131から認証データ132を削除する。この場合の認証データ132は、クライアント側のワンタイムID:C(i)および暗号化されたクライアント乱数Acである。
一方、サーバ装置101の認証処理部112は、サーバ処理部111からクライアント処理部121へのデータ131に認証データ132を付加し、クライアント装置102の認証処理部122は、サーバ処理部122からアプリケーション処理部121へのデータ131に付加された認証データ132を受信し、そのデータ131から認証データ132を削除する。この場合の認証データ132は、サーバ側のワンタイムID:S(i)および暗号化されたサーバ乱数Asである。
このように、認証処理部112,122は、プロトコルごとに、クライアント側のワンタイムIDおよびクライアント乱数、並びにサーバ側のワンタイムIDおよびクライアント乱数を送受して、各プロトコルの通信セッションを認証する。なお、各認証処理部112,122での認証処理については、実施の形態1〜3のいずれかと同様に行われる。
認証処理部112から認証処理部122への認証データ132の伝送は、アプリケーション処理部121とサーバ処理部111との通信セッション開始時のみとしてもよいし、定期的に行うようにしてもよい。認証処理部122から認証処理部112への認証データ132の伝送は、認証処理部112から認証処理部122へ認証データ132が伝送された場合に行われる。また、認証処理部122から認証処理部112へ認証データ132が伝送された後、直ちに、認証処理部112から認証処理部122へ認証データ132を伝送するようにして、通信セッションが存在する期間中、継続的に認証を行うようにしてもよい。
以上のように、上記実施の形態4によれば、サーバ装置101の認証処理部112は、通信プロトコルごとにワンタイムID:C(i)を生成し、クライアント装置102との通信に使用される通信プロトコルに応じたワンタイムID:C(i)でクライアント装置102の正当性を判断する。
これによれば、通信プロトコルごとに、複数のクライアント装置102のワンタイムIDが管理される。したがって、1つのクライアント装置102で複数の通信プロトコルまたはポートが使用される場合には、1つのクライアント装置102に対して複数のワンタイムIDが生成され、通信プロトコルごとに、サーバ装置101により認証を受ける。これにより、通信プロトコルごとに、クライアント装置102を一意に特定することが可能になる。
なお、上述の各実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
例えば、上記各実施の形態において、HDD14,34に格納されている認証データ14b,34bは、装置1,2の起動時にRAM13,33に読み出し、以後、データ管理部56,76は、RAM13,33内の認証データ14b,34bにアクセスするようにしてもよい。その場合、装置1,2のシャットダウン時、認証サーバプログラム14aおよび認証処理プログラム34aの実行終了時に、RAM13,33内の認証データ14b,34bをHDD14,34へ反映すればよい。
また、上記各実施の形態では、認証データ34bは、クライアント装置2に内蔵される記憶媒体において保持されているが、その代わりに、クライアント装置2から直接読み書き可能なデータ格納機器に認証データ34bが格納されるようにしてもよい。その場合、データ管理部76は、図示せぬインタフェースまたはリーダライタを介してそのデータ格納機器にアクセスし、認証データ34bを読み書きする。そのようなデータ格納機器としては、USBメモリ、SDメモリ(商標)、メモリースティック(商標)などの携帯型不揮発性半導体メモリ、ICカード、記憶領域を有するRFIDタグなどが使用される。その場合、クライアント装置2ではなくデータ格納機器がワンタイムIDにより認証されることになる。
また、上記各実施の形態では、クライアント装置2およびサーバ装置1が、ワンタイムID:C(i),S(i)で相互に認証を行っているが、クライアント装置2のみが、サーバ装置1によりワンタイムID:C(i)で認証を受けるようにしてもよい。その場合、サーバ装置1によるワンタイムID:S(i)の生成、クライアント装置2へのワンタイムID:S(i)の送信、およびクライアント装置2による正当性判断処理(ステップS17〜S19)は省略される。
また、上記各実施の形態では、クライアント装置2は、ワンタイムID:S(i)を受信した際に、真正なワンタイムID:Yを生成しているが、その代わりに、真正なワンタイムID:Yを予め生成してサーバデータ34cとしてHDD34に格納しておき、ワンタイムID:S(i)を受信した際に、サーバデータ34cを真正なワンタイムID:Yとして読み出すようにしてもよい。その場合、例えば、認証データ34bとして、クライアント乱数R(i)、サーバ乱数Q(i)および可変共通鍵K(i)がHDD14に格納される際に、ワンタイムID生成部72により真正なワンタイムID:Yが予め生成され、サーバデータ34cとして格納される。このようにした場合、認証処理中に真正なワンタイムID:Yを生成せずに済むため、認証処理の時間が短くなる。
また、上記実施の形態4ではプロトコルごとにワンタイムIDを生成しているが、その代わりに、TCP(Transmission Control Protocol)のポートごとにワンタイムIDを生成するようにしてもよい。また、上記実施の形態4において、認証データ132を、IPパケット、TCPパケットなどのペイロードの所定の領域に含めるようにしてもよい。
また、上記各実施の形態において、サーバ乱数Q(i+1)を生成する際に、認証データ14bに登録されている複数のクライアント装置についてのサーバ乱数Q(i)(またはQ(i)およびQ(i−1))のいずれとも同一ではないサーバ乱数Q(i+1)を生成するようにしてもよい。
また、上記各実施の形態において、サーバ装置1は、認証のみを行い、認証後に、クライアント装置2と他のサーバ装置とがアプリケーションのデータ通信を行うようにしてもよい。その場合には、クライアント装置2の認証後に、サーバ装置1がその他のサーバ装置へ、認証結果、そのクライアント装置2の識別情報などを送信する。
また、上記各実施の形態において、クライアント装置2,102・サーバ装置1,101間で送受されるワンタイムID、クライアント乱数およびサーバ乱数に、チェックサムなどの改ざん検出用データを付すようにしてもよい。これにより、受信側にて、通信の途中で、ワンタイムID、クライアント乱数およびサーバ乱数が改ざんされたか否かを検出することができる。
また、上記各実施の形態において、真性乱数や認証データ14bの初期値を、クライアント装置2,102およびサーバ装置1,101にて共有する方法としては、サーバ装置1,101が生成しクライアント装置2,102へ送信する方法、第三者の認証機関データがサーバ装置1,101およびクライアント装置2,102へ提供する方法、ICカード、CD−ROMなどの記録媒体や、印刷物などを配布する方法などが考えられる。
また、上記各実施の形態において、認証サーバプログラム14aは、可搬性のある記録媒体、インターネットなどの通信媒体により提供されるようにしてもよい。
また、上記実施の形態3において、サーバ装置1の通信処理部55は、ワンタイムID:S(i)またはS(i−1)に再認証要求を付して送信するようにしてもよい(ステップS237,S243)。その場合、クライアント装置2は、再認証要求を受信すると、図8に示す処理が完了した後に、受信エラー情報を付さずにワンタイムID等を送信しサーバ装置1による認証を受ける。
本発明は、例えば、クライアント端末、携帯型記憶媒体などの機器認証に適用可能である。
また、認証サーバ装置は、記憶手段と、第2の乱数生成手段と、第2の受信手段と、第2の認証手段と、クライアントワンタイムID生成手段と、第2のワンタイムID生成手段と、第2の送信手段とを備える。記憶手段は、各クライアント装置または各データ格納機器のワンタイムIDを格納する。第2の乱数生成手段は、所定の通信単位ごとにサーバ乱数を生成する。第2の受信手段は、クライアント装置の現通信単位のワンタイムIDおよび次の通信単位のクライアント乱数をクライアント装置から受信する。第2の認証手段は、記憶手段におけるワンタイムIDと第2の受信手段により受信されたワンタイムIDとに基づきクライアント装置またはデータ格納機器の正当性を判断する。クライアントワンタイムID生成手段は、第2の乱数生成手段による次の通信単位のサーバ乱数と第2の受信手段により受信された次の通信単位のクライアント乱数とを引数としたハッシュ関数の値に基づいてクライアント装置またはデータ格納機器の次の通信単位のワンタイムIDを生成し、このワンタイムIDが、記憶手段に格納されている複数のワンタイムIDのいずれかと同一である場合には、第2の乱数生成手段により再度生成されたサーバ乱数と第2の受信手段により受信されたクライアント乱数とを引数としたハッシュ関数の値に基づいてワンタイムIDを再度生成し、そうでない場合には、そのワンタイムIDで記憶手段におけるクライアント装置またはデータ格納機器のワンタイムIDを更新する。第2のワンタイムID生成手段は、現通信単位のサーバ乱数と第2の受信手段により受信された次の通信単位のクライアント乱数とを引数としたハッシュ関数の値に基づいて現通信単位の認証サーバ装置のワンタイムIDを生成する。第2の送信手段は、現通信単位の認証サーバ装置のワンタイムIDおよび次の通信単位のサーバ乱数をクライアント装置へ送信する。
さらに、認証サーバ装置は、サーバ乱数を暗号化する暗号化手段とを備える。そして、第2の乱数生成手段は、当該認証サーバ装置におけるクライアント乱数およびサーバ乱数が消失した場合には、サーバ乱数の初期値を新たに生成し、クライアントワンタイムID生成手段は、当該認証サーバ装置におけるクライアント乱数およびサーバ乱数が消失した場合には、新たに生成されたサーバ乱数の初期値を使用してワンタイムIDを生成し、暗号化手段は、当該認証サーバ装置におけるクライアント乱数およびサーバ乱数が消失した場合には、クライアント装置から認証要求とともに受信したワンタイムIDを引数に含む一方向性関数で生成された暗号鍵で、新たに生成されたサーバ乱数の初期値を暗号化し、第2の送信手段は、当該認証サーバ装置におけるクライアント乱数およびサーバ乱数が消失した場合には、クライアント乱数およびサーバ乱数が消失したことを通知するデータ、並びに新たに生成され暗号化されたサーバ乱数の初期値を、クライアント装置に送信する。
これによれば、クライアント装置のワンタイムIDの生成に使用されるサーバ装置のサーバ乱数が生成される際に、いずれかのクライアント装置に現在既に割り当てられているワンタイムIDと同一にならないように検証した上でサーバ乱数を生成している。また、ハッシュ関数により短時間でワンタイムIDが生成される。これにより、高い耐タンパ性を維持しつつ、固有IDを送受しなくても、一方向性関数の値に基づくワンタイムIDで、クライアント装置またはデータ格納機器を短時間で一意に特定することが可能になる。
さらに、認証サーバ装置におけるクライアント乱数およびサーバ乱数が消失した場合、クライアント装置からの認証要求が発生すると、認証サーバ装置により新たに生成されたサーバ乱数の初期値を、認証要求とともに送信されてきたワンタイムIDを使用して暗号化した上でそのクライアント装置へ供給する。これにより、認証要求を送信したクライアント装置のみがそのサーバ乱数の初期値を取得することができるため、認証サーバ装置におけるクライアント乱数およびサーバ乱数が消失した場合でも、耐タンパ性を維持しつつ、クライアント装置の認証を継続して行うことができる。また、そのような場合でも、正当なクライアント装置を一意に特定することができる。
本発明に係る認証サーバ装置は、複数のクライアント装置またはクライアント装置から直接読み書き可能な複数のデータ格納機器を、所定の通信単位ごとに変化するワンタイムIDで認証する。この認証サーバ装置は、受信手段と、乱数生成手段と、クライアントワンタイムID生成手段と、送信手段と、認証手段とを備える。受信手段は、いずれかのクライアント装置により生成されたクライアント乱数を受信する。乱数生成手段は、サーバ乱数を生成する。クライアントワンタイムID生成手段は、通信単位ごとに更新されるクライアント乱数とサーバ乱数とを引数とした一方向性関数でクライアント装置またはデータ格納機器の次の通信単位のワンタイムIDを生成し、生成したワンタイムIDがいずれかのクライアント装置またはデータ格納機器に割り当てられているワンタイムIDと同一である場合、乱数生成手段によりサーバ乱数を再生成させ再生成されたサーバ乱数を使用して次の通信単位のワンタイムIDを再度生成する。送信手段は、次の通信単位のワンタイムIDの生成に使用されたサーバ乱数をクライアント装置に送信する。認証手段は、次の通信単位で、クライアントワンタイムID生成手段により生成されたワンタイムIDに基づいてクライアント装置またはデータ格納機器の正当性を判断する。
さらに、認証サーバ装置は、サーバ乱数を暗号化する暗号化手段とを備える。そして、乱数生成手段は、クライアント乱数およびサーバ乱数が消失した場合には、サーバ乱数の初期値を新たに生成し、クライアントワンタイムID生成手段は、クライアント乱数およびサーバ乱数が消失した場合には、新たに生成されたサーバ乱数の初期値を使用してワンタイムIDを生成し、暗号化手段は、クライアント乱数およびサーバ乱数が消失した場合には、クライアント装置から認証要求とともに受信したワンタイムIDを引数に含む一方向性関数で生成された暗号鍵で、新たに生成されたサーバ乱数の初期値を暗号化し、送信手段は、クライアント乱数およびサーバ乱数が消失した場合には、クライアント乱数およびサーバ乱数が消失したことを通知するデータ、並びに新たに生成され暗号化されたサーバ乱数の初期値を、クライアント装置に送信する。
これによれば、クライアント装置のワンタイムIDの生成に使用される認証サーバ装置のサーバ乱数が生成される際に、いずれかのクライアント装置に現在既に割り当てられているワンタイムIDと同一にならないように検証した上でサーバ乱数を生成している。これにより、高い耐タンパ性を維持しつつ、固有IDを送受しなくても、一方向性関数の値に基づくワンタイムIDで、クライアント装置またはデータ格納機器を短時間で一意に特定することが可能になる。
さらに、認証サーバ装置におけるクライアント乱数およびサーバ乱数が消失した場合、クライアント装置からの認証要求が発生すると、認証サーバ装置により新たに生成されたサーバ乱数の初期値を、認証要求とともに送信されてきたワンタイムIDを使用して暗号化した上でそのクライアント装置へ供給する。これにより、認証要求を送信したクライアント装置のみがそのサーバ乱数の初期値を取得することができるため、認証サーバ装置におけるクライアント乱数およびサーバ乱数が消失した場合でも、耐タンパ性を維持しつつ、クライアント装置の認証を継続して行うことができる。また、そのような場合でも、正当なクライアント装置を一意に特定することができる。
本発明に係る記録媒体は、複数のクライアント装置またはクライアント装置から直接読み書き可能な複数のデータ格納機器を、所定の通信単位ごとに変化するワンタイムIDで認証する認証サーバ装置としてコンピュータを機能させるコンピュータプログラムを格納する。このコンピュータプログラムは、サーバ乱数を生成する乱数生成手段、サーバ乱数とクライアント装置により生成され通信単位ごとに更新されるクライアント乱数とを引数とした一方向性関数でクライアント装置またはデータ格納機器の次の通信単位のワンタイムIDを生成し、生成したワンタイムIDがいずれかのクライアント装置またはデータ格納機器に割り当てられているワンタイムIDと同一である場合、乱数生成手段によりサーバ乱数を再生成させ再生成されたサーバ乱数を使用して次の通信単位のワンタイムIDを再度生成するクライアントワンタイムID生成手段、次の通信単位で、クライアントワンタイムID生成手段により生成されたワンタイムIDに基づいてクライアント装置またはデータ格納機器の正当性を判断する認証手段、並びに、サーバ乱数を暗号化する暗号化手段としてコンピュータを機能させる。
さらに、乱数生成手段は、クライアント乱数およびサーバ乱数が消失した場合には、サーバ乱数の初期値を新たに生成し、クライアントワンタイムID生成手段は、クライアント乱数およびサーバ乱数が消失した場合には、新たに生成されたサーバ乱数の初期値を使用してワンタイムIDを生成し、暗号化手段は、クライアント乱数およびサーバ乱数が消失した場合には、クライアント装置から認証要求とともに受信したワンタイムIDを引数に含む一方向性関数で生成された暗号鍵で、新たに生成されたサーバ乱数の初期値を暗号化し、送信手段は、クライアント乱数およびサーバ乱数が消失した場合には、クライアント乱数およびサーバ乱数が消失したことを通知するデータ、並びに新たに生成され暗号化されたサーバ乱数の初期値を、クライアント装置に送信する。
これによれば、クライアント装置のワンタイムIDの生成に使用される認証サーバ装置のサーバ乱数が生成される際に、いずれかのクライアント装置に現在既に割り当てられているワンタイムIDと同一にならないように検証した上でサーバ乱数を生成している。これにより、高い耐タンパ性を維持しつつ、固有IDを送受しなくても、一方向性関数の値に基づくワンタイムIDで、クライアント装置またはデータ格納機器を短時間で一意に特定することが可能になる。
さらに、認証サーバ装置におけるクライアント乱数およびサーバ乱数が消失した場合、クライアント装置からの認証要求が発生すると、認証サーバ装置により新たに生成されたサーバ乱数の初期値を、認証要求とともに送信されてきたワンタイムIDを使用して暗号化した上でそのクライアント装置へ供給する。これにより、認証要求を送信したクライアント装置のみがそのサーバ乱数の初期値を取得することができるため、認証サーバ装置におけるクライアント乱数およびサーバ乱数が消失した場合でも、耐タンパ性を維持しつつ、クライアント装置の認証を継続して行うことができる。また、そのような場合でも、正当なクライアント装置を一意に特定することができる。
本発明に係るワンタイムID管理方法は、複数のクライアント装置またはクライアント装置から直接読み書き可能な複数のデータ格納機器に割り当てられる所定の通信単位ごとに変化するワンタイムIDを認証サーバ装置で管理する方法である。この方法は、いずれかのクライアント装置により生成されたクライアント乱数を受信する受信ステップと、サーバ乱数を生成する乱数生成ステップと、通信単位ごとに更新されるクライアント乱数とサーバ乱数とを引数とした一方向性関数でクライアント装置またはデータ格納機器の次の通信単位のワンタイムIDを生成し、生成したワンタイムIDがいずれかのクライアント装置またはデータ格納機器に割り当てられているワンタイムIDと同一である場合、乱数生成ステップにてサーバ乱数を再生成し再生成したサーバ乱数を使用して次の通信単位のワンタイムIDを再度生成するクライアントワンタイムID生成ステップと、次の通信単位のワンタイムIDの生成に使用されたサーバ乱数をクライアント装置に送信する送信ステップと、次の通信単位で、クライアントワンタイムID生成ステップにて生成されたワンタイムIDに基づいてクライアント装置またはデータ格納機器の正当性を判断する認証ステップとを備える。
さらに、クライアント乱数およびサーバ乱数が消失した場合には、サーバ乱数の初期値を新たに生成し、新たに生成されたサーバ乱数の初期値を使用してワンタイムIDを生成し、クライアント装置から認証要求とともに受信したワンタイムIDを引数に含む一方向性関数で生成された暗号鍵で、新たに生成されたサーバ乱数の初期値を暗号化し、クライアント乱数および前記サーバ乱数が消失したことを通知するデータ、並びに新たに生成され暗号化されたサーバ乱数の初期値をクライアント装置に送信する。
これによれば、クライアント装置のワンタイムIDの生成に使用される認証サーバ装置のサーバ乱数が生成される際に、いずれかのクライアント装置に現在既に割り当てられているワンタイムIDと同一にならないように検証した上でサーバ乱数を生成している。これにより、高い耐タンパ性を維持しつつ、固有IDを送受しなくても、一方向性関数の値に基づくワンタイムIDで、クライアント装置またはデータ格納機器を短時間で一意に特定することが可能になる。
さらに、認証サーバ装置におけるクライアント乱数およびサーバ乱数が消失した場合、クライアント装置からの認証要求が発生すると、認証サーバ装置により新たに生成されたサーバ乱数の初期値を、認証要求とともに送信されてきたワンタイムIDを使用して暗号化した上でそのクライアント装置へ供給する。これにより、認証要求を送信したクライアント装置のみがそのサーバ乱数の初期値を取得することができるため、認証サーバ装置におけるクライアント乱数およびサーバ乱数が消失した場合でも、耐タンパ性を維持しつつ、クライアント装置の認証を継続して行うことができる。また、そのような場合でも、正当なクライアント装置を一意に特定することができる。

Claims (14)

  1. 複数のクライアント装置または前記クライアント装置から直接読み書き可能な複数のデータ格納機器を、所定の通信単位ごとに変化するワンタイムIDで認証サーバ装置により認証する認証システムであって、
    前記クライアント装置は、
    内蔵記憶媒体または前記データ格納機器に格納された現通信単位の前記認証サーバ装置のサーバ乱数と前記クライアント装置または前記データ格納機器のクライアント乱数とを読み出しそれらの乱数を引数としたハッシュ関数の値に基づいて当該クライアント装置または前記データ格納機器のワンタイムIDを生成する第1のワンタイムID生成手段と、
    前記所定の通信単位ごとにクライアント乱数を生成する第1の乱数生成手段と、
    前記第1のワンタイムID生成手段による現通信単位のワンタイムIDおよび前記第1の乱数生成手段による次の通信単位のクライアント乱数を前記認証サーバ装置に送信する第1の送信手段と、
    前記認証サーバ装置から、現通信単位の前記認証サーバ装置のワンタイムIDおよび次の通信単位のサーバ乱数を受信する第1の受信手段と、
    前記第1の受信手段により受信されたワンタイムIDとに基づいて前記認証サーバ装置の正当性を判断する第1の認証手段とを備え、
    前記認証サーバ装置は、
    各クライアント装置または各データ格納機器のワンタイムIDを格納する記憶手段と、
    前記所定の通信単位ごとに前記サーバ乱数を生成する第2の乱数生成手段と、
    前記クライアント装置の現通信単位のワンタイムIDおよび次の通信単位のクライアント乱数を前記クライアント装置から受信する第2の受信手段と、
    前記記憶手段におけるワンタイムIDと前記第2の受信手段により受信されたワンタイムIDとに基づき前記クライアント装置または前記データ格納機器の正当性を判断する第2の認証手段と、
    前記第2の乱数生成手段による次の通信単位のサーバ乱数と前記第2の受信手段により受信された次の通信単位のクライアント乱数とを引数としたハッシュ関数の値に基づいて前記クライアント装置または前記データ格納機器の次の通信単位のワンタイムIDを生成し、このワンタイムIDが、前記記憶手段に格納されている複数のワンタイムIDのいずれかと同一である場合には、前記第2の乱数生成手段により再度生成されたサーバ乱数と前記第2の受信手段により受信されたクライアント乱数とを引数としたハッシュ関数の値に基づいて前記ワンタイムIDを再度生成し、このワンタイムIDが、前記記憶手段に格納されている複数のワンタイムIDのいずれとも同一ではない場合には、そのワンタイムIDで前記記憶手段における前記クライアント装置またはデータ格納機器のワンタイムIDを更新するクライアントワンタイムID生成手段と、
    現通信単位の前記サーバ乱数と前記第2の受信手段により受信された前記次の通信単位のクライアント乱数とを引数としたハッシュ関数の値に基づいて現通信単位の前記認証サーバ装置のワンタイムIDを生成する第2のワンタイムID生成手段と、
    現通信単位の前記認証サーバ装置のワンタイムIDおよび前記次の通信単位のサーバ乱数を前記クライアント装置へ送信する第2の送信手段とを備えること、
    を特徴とする認証システム。
  2. 複数のクライアント装置または前記クライアント装置から直接読み書き可能な複数のデータ格納機器を、所定の通信単位ごとに変化するワンタイムIDで認証する認証サーバ装置であって、
    いずれかの前記クライアント装置により生成されたクライアント乱数を受信する受信手段と、
    サーバ乱数を生成する乱数生成手段と、
    前記所定の通信単位ごとに更新される前記クライアント乱数と前記サーバ乱数とを引数とした一方向性関数で前記クライアント装置または前記データ格納機器の次の通信単位のワンタイムIDを生成し、生成したワンタイムIDがいずれかのクライアント装置またはデータ格納機器に割り当てられているワンタイムIDと同一である場合、前記乱数生成手段によりサーバ乱数を再生成させ再生成されたサーバ乱数を使用して前記次の通信単位のワンタイムIDを再度生成するクライアントワンタイムID生成手段と、
    前記次の通信単位のワンタイムIDの生成に使用された前記サーバ乱数を前記クライアント装置に送信する送信手段と、
    次の通信単位で、前記クライアントワンタイムID生成手段により生成された前記ワンタイムIDに基づいて前記クライアント装置または前記データ格納機器の正当性を判断する認証手段と、
    を備えることを特徴とする認証サーバ装置。
  3. 各クライアント装置または各データ格納機器のワンタイムIDを格納する記憶手段を備え、
    前記受信手段は、現通信単位についての前記クライアント乱数および前記サーバ乱数から生成された前記ワンタイムIDと次の通信単位の前記クライアント乱数とを前記クライアント装置から受信し、
    前記認証手段は、前記受信手段により受信された前記ワンタイムIDと前記記憶手段における前記ワンタイムIDとに基づき前記クライアント装置またはデータ格納機器の正当性を判断し、
    前記クライアントワンタイムID生成手段は、前記認証手段により前記クライアント装置またはデータ格納機器が正当なものであると判断された後に、前記次の通信単位のサーバ乱数と前記次の通信単位のクライアント乱数とを引数とした一方向性関数の値に基づいて前記クライアント装置または前記データ格納機器についての次の通信単位のワンタイムIDを生成し、生成したワンタイムIDが、前記記憶手段に格納されている複数のワンタイムIDのいずれかと同一である場合には、前記乱数生成手段により再生成された前記次の通信単位のサーバ乱数と前記次の通信単位のクライアント乱数とを引数とした一方向性関数の値に基づいて前記ワンタイムIDを再度生成し、生成したワンタイムIDが、前記記憶手段に格納されている複数のワンタイムIDのいずれとも同一ではない場合には、生成したワンタイムIDで、前記記憶手段における前記クライアント装置または前記データ格納機器のワンタイムIDを更新すること、
    を特徴とする請求項2記載の認証サーバ装置。
  4. 前記サーバ乱数を暗号化する暗号化手段を備え、
    前記乱数生成手段は、前記クライアント乱数および前記サーバ乱数が消失した場合に、前記サーバ乱数の初期値を新たに生成し、
    前記クライアントワンタイムID生成手段は、前記サーバ乱数の初期値を使用して前記ワンタイムIDを生成し、
    前記暗号化手段は、前記クライアント装置から認証要求とともに受信したワンタイムIDに基づいて生成された暗号鍵で前記サーバ乱数の初期値を暗号化し、
    前記送信手段は、前記クライアント乱数および前記サーバ乱数が消失したことを通知するデータ、並びに暗号化された前記サーバ乱数の初期値を、前記クライアント装置に送信すること、
    を特徴とする請求項2記載の認証サーバ装置。
  5. 前記記憶手段は、前記クライアント装置または前記データ格納機器のそれぞれについて、連続する2つの通信単位のワンタイムIDを格納し、
    前記認証手段は、当該認証サーバ装置からの前記次の通信単位のサーバ乱数が前記クライアント装置により受信されず受信エラーが発生した場合には、前記受信手段により受信された前記ワンタイムIDと前記記憶手段における2つのワンタイムIDのうちの古いワンタイムIDとに基づき前記クライアント装置またはデータ格納機器の正当性を判断し、前記クライアント装置からのワンタイムIDが前記受信手段により受信されず受信エラーが発生した場合には、前記受信手段により受信された前記ワンタイムIDと前記記憶手段における2つのワンタイムIDのうちの新しいワンタイムIDとに基づき前記クライアント装置またはデータ格納機器の正当性を判断し、
    前記クライアントワンタイムID生成手段は、前記ワンタイムIDを生成する際に、生成したワンタイムIDが、前記記憶手段に格納されているすべてのワンタイムIDのいずれかと同一である場合には、前記乱数生成手段により再生成された前記次の通信単位のサーバ乱数と前記次の通信単位のクライアント乱数とを引数とした一方向性関数の値に基づいて前記ワンタイムIDを再度生成すること、
    を特徴とする請求項3記載の認証サーバ装置。
  6. 前記送信手段は、前記クライアントワンタイムID生成手段により生成された前記次の通信単位のワンタイムIDを前記クライアント装置に送信せずに、前記クライアント装置において次の通信単位のワンタイムIDが生成される際に使用される前記次の通信単位のサーバ乱数を送信することを特徴とする請求項2記載の認証サーバ装置。
  7. 前記クライアントワンタイムID生成手段は、前記クライアント装置のそれぞれまたは前記データ格納機器のそれぞれについて生成されたサーバ乱数を使用して、前記クライアント装置のそれぞれまたは前記データ格納機器のそれぞれについての前記ワンタイムIDを生成することを特徴とする請求項2記載の認証サーバ装置。
  8. 前記クライアントワンタイムID生成手段は、通信プロトコルおよびポート番号のいずれかごとにワンタイムIDを生成し、
    前記認証手段は、前記クライアント装置と前記受信手段との通信に使用される通信プロトコルおよびポート番号のいずれかに応じたワンタイムIDで前記クライアント装置の正当性を判断すること、
    を特徴とする請求項2記載の認証サーバ装置。
  9. 現通信単位のサーバ乱数、および前記受信手段により受信された次の通信単位のクライアント乱数を引数とした一方向性関数の値に基づいて当該認証サーバ装置のワンタイムIDを生成するワンタイムID生成手段を備え、
    前記送信手段は、前記次の通信単位のサーバ乱数とともに、当該認証サーバ装置のワンタイムIDを送信すること、
    を特徴とする請求項3記載の認証サーバ装置。
  10. 通信単位ごとに更新される可変共通鍵で復号をする復号手段と、
    前記可変共通鍵で暗号化をする暗号化手段とを備え、
    前記受信手段は、前記可変共通鍵で暗号化された前記次の通信単位のクライアント乱数を前記クライアント装置から受信し、
    前記復号手段は、前記認証手段により前記クライアント装置または前記データ格納機器が正当なものであると判断された後に、前記受信手段により受信された前記次の通信単位のクライアント乱数を復号し、
    前記暗号化手段は、前記次の通信単位のサーバ乱数を前記可変共通鍵で暗号化し、
    前記送信手段は、暗号化された前記次の通信単位のサーバ乱数とともに、当該認証サーバ装置のワンタイムIDを送信すること、
    を特徴とする請求項9記載の認証サーバ装置。
  11. 現通信単位の前記可変共通鍵と次の通信単位の前記クライアント乱数と次の通信単位の前記サーバ乱数とを引数とした一方向性関数の値に基づき次の通信単位の前記可変共通鍵を生成し、前記可変共通鍵を更新する共通鍵更新手段を備えることを特徴とする請求項10記載の認証サーバ装置。
  12. 前記一方向性関数は、暗号鍵を使用せずにダイジェストを生成するハッシュ関数であることを特徴とする請求項2記載の認証サーバ装置。
  13. 複数のクライアント装置または前記クライアント装置から直接読み書き可能な複数のデータ格納機器を、所定の通信単位ごとに変化するワンタイムIDで認証する認証サーバ装置としてコンピュータを機能させるコンピュータプログラムであって、
    サーバ乱数を生成する乱数生成手段、
    前記サーバ乱数と前記クライアント装置により生成され前記所定の通信単位ごとに更新される前記クライアント乱数とを引数とした一方向性関数で前記クライアント装置または前記データ格納機器の次の通信単位のワンタイムIDを生成し、生成したワンタイムIDがいずれかのクライアント装置またはデータ格納機器に割り当てられているワンタイムIDと同一である場合、前記乱数生成手段によりサーバ乱数を再生成させ再生成されたサーバ乱数を使用して前記次の通信単位のワンタイムIDを再度生成するクライアントワンタイムID生成手段、並びに
    次の通信単位で、前記クライアントワンタイムID生成手段により生成された前記ワンタイムIDに基づいて前記クライアント装置または前記データ格納機器の正当性を判断する認証手段、
    としてコンピュータを機能させるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
  14. 複数のクライアント装置または前記クライアント装置から直接読み書き可能な複数のデータ格納機器に割り当てられる所定の通信単位ごとに変化するワンタイムIDを認証サーバ装置で管理するワンタイムID管理方法であって、
    いずれかの前記クライアント装置により生成されたクライアント乱数を受信する受信ステップと、
    サーバ乱数を生成する乱数生成ステップと、
    前記サーバ乱数と前記所定の通信単位ごとに更新される前記クライアント乱数とを引数とした一方向性関数で前記クライアント装置または前記データ格納機器の次の通信単位のワンタイムIDを生成し、生成したワンタイムIDがいずれかのクライアント装置またはデータ格納機器に割り当てられているワンタイムIDと同一である場合、前記乱数生成ステップにてサーバ乱数を再生成し再生成したサーバ乱数を使用して前記次の通信単位のワンタイムIDを再度生成するクライアントワンタイムID生成ステップと、
    前記次の通信単位のワンタイムIDの生成に使用された前記サーバ乱数を前記クライアント装置に送信する送信ステップと、
    次の通信単位で、前記クライアントワンタイムID生成ステップにて生成された前記ワンタイムIDに基づいて前記クライアント装置または前記データ格納機器の正当性を判断する認証ステップと、
    を備えることを特徴とするワンタイムID管理方法。
JP2007540445A 2006-09-20 2007-05-09 ワンタイムidによる認証 Expired - Fee Related JP4219965B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006255010 2006-09-20
JP2006255010 2006-09-20
PCT/JP2007/000495 WO2008035450A1 (fr) 2006-09-20 2007-05-09 Authentification par un identifiant ponctuel

Publications (2)

Publication Number Publication Date
JP4219965B2 JP4219965B2 (ja) 2009-02-04
JPWO2008035450A1 true JPWO2008035450A1 (ja) 2010-01-28

Family

ID=39200281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007540445A Expired - Fee Related JP4219965B2 (ja) 2006-09-20 2007-05-09 ワンタイムidによる認証

Country Status (3)

Country Link
US (1) US20080162934A1 (ja)
JP (1) JP4219965B2 (ja)
WO (1) WO2008035450A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013218488A (ja) * 2012-04-06 2013-10-24 Akimichi Kume 識別子(id)を使用しないでワンタイム・パスワードのみを用いて行うパスワード認証システムおよび方法
JP2013218489A (ja) * 2012-04-06 2013-10-24 Akimichi Kume 識別子(id)を使用しないでワンタイム・パスワードのみを用いて行うパスワード認証システムおよび方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2105873A1 (en) * 2008-03-11 2009-09-30 Imunant S.r.l. System and method for performing a transaction
JP5370989B2 (ja) 2008-12-18 2013-12-18 スパンション エルエルシー 通信装置、データの通信方法及びネットワークシステム
US8301879B2 (en) * 2009-01-26 2012-10-30 Microsoft Corporation Conversation rights management
US8468347B2 (en) * 2009-02-19 2013-06-18 Emc Corporation Secure network communications
US8600058B2 (en) * 2009-03-27 2013-12-03 Samsung Electronics Co., Ltd. Generation of self-certified identity for efficient access control list management
JP5616156B2 (ja) * 2010-08-02 2014-10-29 株式会社通信広告社 ワンタイム認証システム
WO2013047093A1 (ja) 2011-09-29 2013-04-04 沖電気工業株式会社 Id管理装置、プログラム、利用者端末、およびid管理システム
JP5467429B1 (ja) * 2012-11-15 2014-04-09 株式会社パレス興業 ワンタイムパッドを運用するデバイス間認証方法及びこれを用いた遊技機並びに遊技機ネットワークシステム
EP3015990B1 (en) 2013-06-27 2018-08-08 Fujitsu Limited Information processing device, and destination information updating method and program
CA2942765C (en) 2014-03-16 2022-05-17 Ric B. Richardson Persistent authentication system incorporating one time pass codes
JP6454614B2 (ja) * 2015-07-10 2019-01-16 日立オートモティブシステムズ株式会社 車載システム、その制御装置および制御方法
JP6649858B2 (ja) * 2016-08-31 2020-02-19 合同会社Fom研究所 ワンタイム認証システム
DE102017202953A1 (de) * 2017-02-23 2018-08-23 Bundesdruckerei Gmbh Zugangskontrollvorrichtung und Verfahren zur Authentisierung einer Zugangsberechtigung
CN111181940A (zh) * 2019-12-20 2020-05-19 国久大数据有限公司 数据校验方法及数据校验系统
JP7412691B2 (ja) * 2021-08-13 2024-01-15 株式会社ギガ・システム 認証システム、認証モジュール、および認証プログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000079445A1 (fr) * 1999-06-22 2000-12-28 Sp Center Co., Ltd. Code d'identification d'informations personnelles, et systeme et procede d'utilisation d'un code d'identification d'informations personnelles
US7716484B1 (en) * 2000-03-10 2010-05-11 Rsa Security Inc. System and method for increasing the security of encrypted secrets and authentication
US6944663B2 (en) * 2002-03-06 2005-09-13 Sun Microsystems, Inc. Method and apparatus for using client puzzles to protect against denial-of-service attacks
US7080404B2 (en) * 2002-04-01 2006-07-18 Microsoft Corporation Automatic re-authentication
WO2004019553A1 (ja) * 2002-06-19 2004-03-04 Advanced Computer Systems, Inc. 相互認証方法及び装置
KR100529876B1 (ko) * 2002-10-10 2005-11-22 엘지전자 주식회사 홈 네트워크 시스템의 동작방법
JP3974070B2 (ja) * 2003-04-04 2007-09-12 株式会社三菱東京Ufj銀行 ユーザ認証装置、端末装置、プログラム及びコンピュータ・システム
JP4240297B2 (ja) * 2003-04-21 2009-03-18 ソニー株式会社 端末機器、認証端末プログラム、機器認証サーバ、機器認証プログラム
KR20080059617A (ko) * 2005-10-05 2008-06-30 프리바스피어 아게 사용자 인증 방법 및 디바이스
EP1865656A1 (en) * 2006-06-08 2007-12-12 BRITISH TELECOMMUNICATIONS public limited company Provision of secure communications connection using third party authentication
US20080046731A1 (en) * 2006-08-11 2008-02-21 Chung-Ping Wu Content protection system
EP1903740A1 (en) * 2006-09-21 2008-03-26 Irdeto Access B.V. Method for implementing a state tracking mechanism in a communications session between a server and a client system
US8590024B2 (en) * 2007-02-01 2013-11-19 The Boeing Company Method for generating digital fingerprint using pseudo random number code
KR100936920B1 (ko) * 2007-12-14 2010-01-18 한국전자통신연구원 원 타임 패스워드를 사용하는 관리 서버 예약 접속 방법,클라이언트 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013218488A (ja) * 2012-04-06 2013-10-24 Akimichi Kume 識別子(id)を使用しないでワンタイム・パスワードのみを用いて行うパスワード認証システムおよび方法
JP2013218489A (ja) * 2012-04-06 2013-10-24 Akimichi Kume 識別子(id)を使用しないでワンタイム・パスワードのみを用いて行うパスワード認証システムおよび方法

Also Published As

Publication number Publication date
WO2008035450A1 (fr) 2008-03-27
US20080162934A1 (en) 2008-07-03
JP4219965B2 (ja) 2009-02-04

Similar Documents

Publication Publication Date Title
JP4219965B2 (ja) ワンタイムidによる認証
CN110799941B (zh) 防盗和防篡改的数据保护
CN110537346B (zh) 安全去中心化域名系统
CN111708991B (zh) 服务的授权方法、装置、计算机设备和存储介质
JP6719079B2 (ja) 情報機器、データ処理システム、データ処理方法およびコンピュータプログラム
JP5860815B2 (ja) コンピューターポリシーを施行するためのシステムおよび方法
JP6215934B2 (ja) ログイン検証の方法、クライアント、サーバ、およびシステム
US7155616B1 (en) Computer network comprising network authentication facilities implemented in a disk drive
US8369521B2 (en) Smart card based encryption key and password generation and management
EP1802025B1 (en) Regular content check method, content transmission/reception system, transmitter, and receiver
US20050055552A1 (en) Assurance system and assurance method
CN106790045B (zh) 一种基于云环境分布式虚拟机代理装置及数据完整性保障方法
JP2006139747A (ja) 通信システムおよび安全性保証装置
KR20090084545A (ko) Ce 장치 관리 서버, ce 장치 관리 서버를 이용한drm 키 발급 방법, 및 그 방법을 실행하기 위한프로그램 기록매체
KR20150135032A (ko) Puf를 이용한 비밀키 업데이트 시스템 및 방법
CN115473655B (zh) 接入网络的终端认证方法、装置及存储介质
CN114244508A (zh) 数据加密方法、装置、设备及存储介质
US20090210719A1 (en) Communication control method of determining whether communication is permitted/not permitted, and computer-readable recording medium recording communication control program
KR102062851B1 (ko) 토큰 관리 데몬을 이용한 싱글 사인 온 서비스 인증 방법 및 시스템
JP5665592B2 (ja) サーバ装置並びにコンピュータシステムとそのログイン方法
JP6524556B2 (ja) 認証鍵複製システム
JP5175541B2 (ja) ネットワークを介した動作をセキュリティ保護する方法および関連装置
CN111669380B (zh) 一种基于运维审计系统的免密登录方法
KR102547745B1 (ko) 사전 인증정보를 이용해 네트워크 응답속도를 개선한 영상 보안 시스템
JP2005141654A (ja) 情報通過制御システム、情報通過制御装置、サービス提供装置、プログラム及び記録媒体

Legal Events

Date Code Title Description
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: 20081028

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081112

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

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees