JP4258551B2 - 認証システム、認証方法、及び認証プログラム - Google Patents

認証システム、認証方法、及び認証プログラム Download PDF

Info

Publication number
JP4258551B2
JP4258551B2 JP2007014897A JP2007014897A JP4258551B2 JP 4258551 B2 JP4258551 B2 JP 4258551B2 JP 2007014897 A JP2007014897 A JP 2007014897A JP 2007014897 A JP2007014897 A JP 2007014897A JP 4258551 B2 JP4258551 B2 JP 4258551B2
Authority
JP
Japan
Prior art keywords
authentication
hash
hash value
hash algorithm
information
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.)
Expired - Fee Related
Application number
JP2007014897A
Other languages
English (en)
Other versions
JP2008182535A (ja
Inventor
祐 坂本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2007014897A priority Critical patent/JP4258551B2/ja
Priority to US12/015,630 priority patent/US8180054B2/en
Publication of JP2008182535A publication Critical patent/JP2008182535A/ja
Application granted granted Critical
Publication of JP4258551B2 publication Critical patent/JP4258551B2/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
    • 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/3236Cryptographic 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 cryptographic hash functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators

Description

本発明は、認証システムで使用するハッシュアルゴリズムが変更された場合でも継続して利用することが可能な認証システム、認証方法、及び認証プログラムに関する。
近年、インターネットなどの通信回線を介して、情報処理装置の間で営業秘密や個人情報などの送受信が広く一般に行われており、通信のセキュリティの確保は極めて重要となっている。
このような通信のセキュリティを確保すべく、従来から様々な技術が提案されているが、この中でもユーザ認証に関する技術として近年広く利用されているものに、ハッシュアルゴリズムを用いた認証システムがある。
ハッシュアルゴリズムとは、あるデータの全体を反映した別のデータをハッシュ値として生成するアルゴリズムである。元のデータがわずかでも異なれば、生成されるハッシ値は異なるものとなり、またハッシュ値を元のデータに変換することはできない。このため、万一ハッシュ値が第三者に知られても、元のデータが漏洩することはなく、ハッシュアルゴリズムは認証システムに好適に利用できるものとなっている。
このようなハッシュアルゴリズムを用いた認証システムに関する先行技術としては、以下のものを挙げることができる。
まず、特許文献1には、発生させた乱数をチャレンジデータとして、入力されたユーザIDとパスワード、及びチャレンジデータからハッシュ値を生成して認証に利用する認証装置が開示されている。
また、特許文献2には、生体情報データとキー値とからハッシュ値を計算してサーバに登録しておき、生体情報データとキー値を入力し、入力された生体情報データとキー値とからハッシュ値を計算し、登録してあるハッシュ値を計算したハッシュ値とを比較し、等しければ本人であると認証する個人認証システムが開示されている。
また、特許文献3には、利用者端末が指定されたハッシュアルゴリズムによりハッシュ値を計算し、検証装置が指定されたハッシュアルゴリズムにより再計算したハッシュ値と利用者端末から取得したハッシュ値とを比較して正当性を検証する時刻認証システムが開示されている。
しかしながら、これらの認証システムなどでは、使用するハッシュアルゴリズムが変更されると、認証サーバ装置側に記録している認証情報のハッシュ値は逆変換できないことから、そのまま認証システムを継続使用することができず、ユーザは再度認証情報を入力して、認証情報のハッシュ値を再作成する必要があるという問題があった。
また、このような場合、ユーザごとに使用するハッシュアルゴリズムを変えることができないため、全ユーザの認証情報をまとめて再作成する必要があり、再作成に相当の時間がかかり、その間認証システムが利用できないという問題があった。
さらに、認証サーバ装置側でハッシュアルゴリズムが変更されると、これに対応する認証クライアント装置側のハッシュアルゴリズムも同時に変更しなければならなかった。
ここで、認証処理におけるアルゴリズムの変更に関しては、例えば特許文献4に記載のコンピュータシステムにおける認証アルゴリズムを更新する方法などが提案されている。
この更新方法では、第1認証アルゴリズムと関連する第1のアカウントと第2認証アルゴリズムと関連する第2のアカウントを記憶手段に格納し、アカウントを切り換えるコマンドが実行されるとアカウントが切り換わり、これと同期して認証アルゴリズムも切り換わる構成となっている。
特開2000−057099号公報 特開2004−310202号公報 特開2005−094146号公報 特表2005−520423号公報
しかしながら、この更新方法を用いても、認証アルゴリズムとしてハッシュアルゴリズムを使用する認証システムに適用する場合には、ハッシュ値は元のデータに逆変換できないことから、ハッシュアルゴリズムを変更するにあたり、再度認証情報を入力し、切り替える新たなハッシュアルゴリズムを用いて認証のためのハッシュ値を再作成しておく必要があるという問題があった。
本発明は、上記の事情にかんがみなされたものであり、認証システムにおいて、認証クライアント装置と認証サーバ装置間でハッシュアルゴリズム識別子を送受信することにより、認証システムで使用するハッシュアルゴリズムが変更された場合でも継続してその認証システムを利用することが可能な認証システム、認証方法、及び認証プログラムの提供を目的とする。
上記目的を達成するため、本発明の認証システムは、通信回線を介して接続されたクライアント装置及びサーバ装置により、ハッシュアルゴリズムを用いてクライアント装置のユーザの認証を行う認証システムであって、クライアント装置が、ユーザの識別情報及びパスワードを含む認証情報を入力する認証情報入力手段と、サーバ装置から送信されてきた第一のハッシュアルゴリズム識別子に対応する第一のハッシュアルゴリズムを用いて認証情報から第一のハッシュ値を生成し、第一のハッシュアルゴリズムを用いて第一のハッシュ値とサーバ装置から送信されてきた乱数から第二のハッシュ値を生成するクライアント側ハッシュ値生成手段と、サーバ装置に認証処理を開始させるための認証要求情報をサーバ装置に送信し、サーバ装置から乱数と第一のハッシュアルゴリズム識別子を受信し、認証情報入力手段により入力されたユーザの識別情報と第二のハッシュ値をサーバ装置に送信し、サーバ装置から認証結果を受信する認証要求管理手段と、を備え、サーバ装置が、ユーザの識別情報ごとに、それぞれ対応する第二のハッシュアルゴリズム識別子と、このハッシュアルゴリズム識別子に対応する第二のハッシュアルゴリズムを用いてユーザの識別情報及びパスワードを含む認証情報から予め生成された第三のハッシュ値とを含むユーザ情報を記憶するユーザ情報記憶手段と、乱数を生成する乱数生成手段と、ハッシュ値を生成するサーバ側ハッシュ値生成手段と、クライアント装置から認証要求情報を受信すると、乱数生成手段に乱数を生成させ、乱数と第一のハッシュアルゴリズム識別子をクライアント装置に送信し、クライアント装置からユーザの識別情報と第二のハッシュ値を受信すると、この受信したユーザの識別情報に対応するユーザ情報をユーザ情報記憶手段から取得し、取得したユーザ情報に含まれる第二のハッシュアルゴリズム識別子と第一のハッシュアルゴリズム識別子とが一致するか否かを判定し、一致する場合、サーバ側ハッシュ値生成手段に、第一のハッシュアルゴリズムを用いて取得したユーザ情報に含まれる第三のハッシュ値と乱数から第四のハッシュ値を生成させ、第二のハッシュ値と第四のハッシュ値とが一致するか否かを判定し、一致する場合、認証成功を示す認証結果をクライアント装置に送信し、一致しない場合、認証失敗を示す認証結果をクライアント装置に送信する認証情報管理手段とを備えた構成としてある。
認証システムをこのような構成にすれば、サーバ装置に、クライアント装置の利用者のユーザIDごとにハッシュ値とそのハッシュ値の計算に用いられたハッシュアルゴリズムの識別子をユーザ情報として予め記憶させ、クライアント装置からの認証要求に対して所定のハッシュアルゴリズム識別子を送信させ、クライアント装置からハッシュ値とユーザIDを受信したときに、当該ユーザIDに対応するハッシュアルゴリズムの識別子と、クライアント装置に送信したハッシュアルゴリズム識別子が一致するか否かを判定することができる。
そして、一致していると判定された場合に、サーバ装置で算出したハッシュ値とクライアント装置で算出したハッシュ値を比較することで、認証の成否を判定することができる。
このように、本発明の認証システムでは、クライアント装置とサーバ装置においてハッシュ値の算出にそれぞれ用いられたハッシュアルゴリズムが同一か否かをユーザごとに判定する構成となっており、同一である場合に、ハッシュ値を比較して認証処理を行うことが可能となっている。
このため、認証システムにおいて、認証処理に用いるハッシュアルゴリズムを変更する場合に、その変更を行うタイミングで、サーバ装置における全てのユーザ情報を一度に再作成する必要はなく、ユーザごとに認証処理を行うタイミングで更新することが可能となる。また、サーバ装置側のハッシュアルゴリズムを変更しても、クライアント装置側については、全てのクライアント装置における対応するハッシュアルゴリズムを一度に変更する必要はなく、個々のクライアント装置ごとに段階的に変更することも可能となる。
また、本発明の認証システムは、サーバ装置における認証情報管理手段が、第二のハッシュアルゴリズム識別子と第一のハッシュアルゴリズム識別子とが一致しないと判定した場合、第二のハッシュアルゴリズム識別子をハッシュアルゴリズム変更要求情報としてクライアント装置に送信し、クライアント装置における認証要求管理手段が、第二のハッシュアルゴリズム識別子を受信すると、認証情報入力手段に、ユーザの識別情報、パスワード、及び新パスワードを再入力させ、クライアント側ハッシュ値生成手段に、第二のハッシュアルゴリズムを用いて再入力されたユーザの識別情報及びパスワードから新しい第三のハッシュ値を生成させるとともに、第一のハッシュアルゴリズムを用いて新しい第三のハッシュ値と乱数から新しい第四のハッシュ値を生成させ、さらに第一のハッシュアルゴリズムを用いて再入力されたユーザの識別情報及び新パスワードから第五のハッシュ値を生成させ、ユーザの識別情報、新しい第四のハッシュ値、及び第五のハッシュ値をサーバ装置に送信し、サーバ装置における認証情報管理手段が、ユーザの識別情報、新しい第四のハッシュ値、及び第五のハッシュ値を受信すると、サーバ側ハッシュ値生成手段に、第一のハッシュアルゴリズムを用いて取得したユーザ情報に含まれる第三のハッシュ値と乱数から第四のハッシュ値を生成させ、第四のハッシュ値と新しい第四のハッシュ値とが一致するか否かを判定し、一致する場合、ユーザ情報記憶手段におけるユーザの識別情報に対応する第二のハッシュアルゴリズム識別子及び第三のハッシュ値を、それぞれ第一のハッシュアルゴリズム識別子及び第五のハッシュ値に更新して、認証成功を示す認証結果をクライアント装置に送信し、一致しない場合、認証失敗を示す認証結果をクライアント装置に送信する構成としてある。
認証システムをこのような構成にすれば、クライアント装置とサーバ装置においてハッシュ値の算出にそれぞれ用いられたハッシュアルゴリズムが同一でない場合には、ユーザごとにハッシュ値の算出に使用するハッシュアルゴリズムを更新することができる。
すなわち、ハッシュアルゴリズムを変更するタイミングでサーバ装置におけるユーザ情報を新規に作成する必要はなく、各ユーザの認証を行うタイミングで、個別にユーザ情報を更新することができる。
このため、本発明の認証システムによれば、使用するハッシュアルゴリズムを変更する必要が生じても、ユーザ情報の作成などのために認証システムの利用を停止することを回避することが可能となっている。
また、本発明の認証システムは、クライアント装置が、当該クライアント装置において使用可能なハッシュアルゴリズムの識別子の一覧を記憶するハッシュアルゴリズム識別子記憶手段を備え、サーバ装置が、ハッシュアルゴリズムの識別子ごとに、対応するハッシュアルゴリズムの強度を記憶するハッシュアルゴリズム強度記憶手段を備え、クライアント装置における認証要求管理手段が、認証要求情報をサーバ装置に送信するにあたり、ハッシュアルゴリズムの識別子の一覧をサーバ装置に送信し、サーバ装置における認証情報管理手段が、クライアント装置から認証要求情報とハッシュアルゴリズムの識別子の一覧を受信すると、ハッシュアルゴリズム強度記憶手段に記憶されている各ハッシュアルゴリズムの強度にもとづいて、ハッシュアルゴリズムの識別子の一覧から最も強度の高いハッシュアルゴリズムの識別子を選択し、この選択した識別子を第一のハッシュアルゴリズム識別子として、乱数とともにクライアント装置に送信する構成としてある。
認証システムをこのような構成にすれば、認証システムにおいて使用するハッシュアルゴリズムを、ユーザごとに、クライアント装置及びサーバ装置において使用可能な最も強度の高いものに自動的に更新することができる。
このため、ハッシュアルゴリズムの脆弱性の発見等によりシステムで使用するハッシュアルゴリズムをさらに強度の高いものに変更する必要が出てきたときなどには、これを容易に認証システムに反映することが可能となっている。
また、本発明の認証方法は、通信回線を介して接続されたクライアント装置及びサーバ装置によりハッシュアルゴリズムを用いて、クライアント装置のユーザの認証を行う認証方法であって、クライアント装置における認証要求管理手段が、サーバ装置に認証処理を開始させるための認証要求情報をサーバ装置に送信し、サーバ装置における認証情報管理手段が、クライアント装置から認証要求情報を受信すると、サーバ装置における乱数生成手段に乱数を生成させ、乱数と所定の第一のハッシュアルゴリズム識別子をクライアント装置に送信し、クライアント装置における認証要求管理手段が、サーバ装置から乱数と第一のハッシュアルゴリズム識別子を受信し、クライアント装置における認証情報入力手段が、ユーザの識別情報及びパスワードを含む認証情報を入力し、クライアント装置におけるクライアント側ハッシュ値生成手段が、第一のハッシュアルゴリズム識別子に対応する第一のハッシュアルゴリズムを用いて認証情報から第一のハッシュ値を生成し、第一のハッシュアルゴリズムを用いて第一のハッシュ値と乱数から第二のハッシュ値を生成し、クライアント装置における認証要求管理手段が、ユーザの識別情報と第二のハッシュ値をサーバ装置に送信し、サーバ装置におけるユーザ情報記憶手段が、ユーザの識別情報ごとに、それぞれ対応する第二のハッシュアルゴリズム識別子と、このハッシュアルゴリズム識別子に対応する第二のハッシュアルゴリズムを用いてユーザの識別情報及びパスワードを含む認証情報から予め生成された第三のハッシュ値とを含むユーザ情報を予め記憶しており、サーバ装置における認証情報管理手段が、クライアント装置からユーザの識別情報と第二のハッシュ値を受信すると、この受信したユーザの識別情報に対応するユーザ情報をユーザ情報記憶手段から取得し、取得したユーザ情報に含まれる第二のハッシュアルゴリズム識別子と第一のハッシュアルゴリズム識別子とが一致するか否かを判定し、一致する場合、サーバ装置におけるサーバ側ハッシュ値生成手段に、第一のハッシュアルゴリズムを用いて取得したユーザ情報に含まれる第三のハッシュ値と乱数から第四のハッシュ値を生成させ、第二のハッシュ値と第四のハッシュ値とが一致するか否かを判定し、一致する場合、認証成功を示す認証結果をクライアント装置に送信し、一致しない場合、認証失敗を示す認証結果をクライアント装置に送信し、クライアント装置における認証要求管理手段が、サーバ装置から認証結果を受信する方法としてある。
また、本発明の認証方法は、サーバ装置における認証情報管理手段が、第二のハッシュアルゴリズム識別子と第一のハッシュアルゴリズム識別子とが一致しないと判定した場合、第二のハッシュアルゴリズム識別子をハッシュアルゴリズム変更要求情報としてクライアント装置に送信し、クライアント装置における認証要求管理手段が、第二のハッシュアルゴリズム識別子を受信すると、クライアント装置における認証情報入力手段に、ユーザの識別情報、パスワード、及び新パスワードを再入力させ、クライアント装置におけるクライアント側ハッシュ値生成手段に、第二のハッシュアルゴリズムを用いて再入力されたユーザの識別情報及びパスワードから新しい第三のハッシュ値を生成させるとともに、第一のハッシュアルゴリズムを用いて新しい第三のハッシュ値と乱数から新しい第四のハッシュ値を生成させ、さらに第一のハッシュアルゴリズムを用いて再入力されたユーザの識別情報及び新パスワードから第五のハッシュ値を生成させて、ユーザの識別情報、新しい第四のハッシュ値、及び第五のハッシュ値をサーバ装置に送信し、サーバ装置における認証情報管理手段が、ユーザの識別情報、新しい第四のハッシュ値、及び第五のハッシュ値を受信すると、サーバ装置におけるサーバ側ハッシュ値生成手段に、第一のハッシュアルゴリズムを用いて取得したユーザ情報に含まれる第三のハッシュ値と乱数から第四のハッシュ値を生成させ、第四のハッシュ値と新しい第四のハッシュ値とが一致するか否かを判定し、一致する場合、ユーザ情報記憶手段におけるユーザの識別情報に対応する第二のハッシュアルゴリズム識別子及び第三のハッシュ値を、それぞれ第一のハッシュアルゴリズム識別子及び第五のハッシュ値に更新して、認証成功を示す認証結果をクライアント装置に送信し、一致しない場合、認証失敗を示す認証結果をクライアント装置に送信する方法としてある。
また、本発明の認証方法は、クライアント装置が、当該クライアント装置において使用可能なハッシュアルゴリズムの識別子の一覧を記憶するハッシュアルゴリズム識別子記憶手段を備えるとともに、サーバ装置が、ハッシュアルゴリズムの識別子ごとに、対応するハッシュアルゴリズムの強度を記憶するハッシュアルゴリズム強度記憶手段を備えており、クライアント装置における認証要求管理手段が、認証要求情報をサーバ装置に送信するにあたり、ハッシュアルゴリズムの識別子の一覧をサーバ装置に送信し、サーバ装置における認証情報管理手段が、クライアント装置から認証要求情報とハッシュアルゴリズムの識別子の一覧を受信すると、ハッシュアルゴリズム強度記憶手段に記憶されている各ハッシュアルゴリズムの強度にもとづいて、ハッシュアルゴリズムの識別子の一覧から最も強度の高いハッシュアルゴリズムの識別子を選択し、この選択した識別子を第一のハッシュアルゴリズム識別子として、乱数とともにクライアント装置に送信する方法としてある。
認証方法をこのような方法にすれば、認証システムにおいて使用するハッシュアルゴリズムをさらに強度の高いものに変更する場合などに、まずサーバ装置側のハッシュアルゴリズムを変更し、クライアント装置側については、個々のクライアント装置ごとに段階的に変更することが可能となる。
また、ハッシュアルゴリズムを変更するタイミングで、サーバ装置におけるユーザ情報を変更後のハッシュアルゴリズムを用いて事前に作成しておく必要はなく、ユーザの認証を行うタイミングで、個別に最強のハッシュアルゴリズムを用いて更新することができ、ユーザ情報の再作成などのために認証システムの利用を停止することを回避することが可能となっている。
また、本発明の認証プログラムは、通信回線を介して接続されたクライアント装置及びサーバ装置によりハッシュアルゴリズムを用いて、クライアント装置のユーザの認証を行わせる認証プログラムであって、クライアント装置を、ユーザの識別情報及びパスワードを含む認証情報を入力する認証情報入力手段、サーバ装置から送信されてきた第一のハッシュアルゴリズム識別子に対応する第一のハッシュアルゴリズムを用いて認証情報から第一のハッシュ値を生成し、第一のハッシュアルゴリズムを用いて第一のハッシュ値とサーバ装置から送信されてきた乱数から第二のハッシュ値を生成するクライアント側ハッシュ値生成手段、及び、サーバ装置に認証処理を開始させるための認証要求情報をサーバ装置に送信し、サーバ装置から乱数と第一のハッシュアルゴリズム識別子を受信し、認証情報入力手段により入力されたユーザの識別情報と第二のハッシュ値をサーバ装置に送信し、サーバ装置から認証結果を受信する認証要求管理手段として機能させ、サーバ装置を、ユーザの識別情報ごとに、それぞれ対応する第二のハッシュアルゴリズム識別子と、このハッシュアルゴリズム識別子に対応する第二のハッシュアルゴリズムを用いてユーザの識別情報及びパスワードを含む認証情報から予め生成された第三のハッシュ値とを含むユーザ情報を記憶するユーザ情報記憶手段、乱数を生成する乱数生成手段、ハッシュ値を生成するサーバ側ハッシュ値生成手段、及び、クライアント装置から認証要求情報を受信すると、乱数生成手段に乱数を生成させ、乱数と所定の第一のハッシュアルゴリズム識別子をクライアント装置に送信し、クライアント装置からユーザの識別情報と第二のハッシュ値を受信すると、この受信したユーザの識別情報に対応するユーザ情報をユーザ情報記憶手段から取得し、取得したユーザ情報に含まれる第二のハッシュアルゴリズム識別子と第一のハッシュアルゴリズム識別子とが一致するか否かを判定し、一致する場合、サーバ側ハッシュ値生成手段に、第一のハッシュアルゴリズムを用いて取得したユーザ情報に含まれる第三のハッシュ値と乱数から第四のハッシュ値を生成させ、第二のハッシュ値と第四のハッシュ値とが一致するか否かを判定し、一致する場合、認証成功を示す認証結果をクライアント装置に送信し、一致しない場合、認証失敗を示す認証結果をクライアント装置に送信する認証情報管理手段として機能させる構成としてある。
また、本発明の認証プログラムは、サーバ装置における認証情報管理手段に、第二のハッシュアルゴリズム識別子と第一のハッシュアルゴリズム識別子とが一致しないと判定された場合、第二のハッシュアルゴリズム識別子をハッシュアルゴリズム変更要求情報としてクライアント装置に送信させ、クライアント装置における認証要求管理手段に、第二のハッシュアルゴリズム識別子が受信されると、クライアント装置における認証情報入力手段に、ユーザの識別情報、パスワード、及び新パスワードを再入力させ、クライアント装置におけるクライアント側ハッシュ値生成手段に、第二のハッシュアルゴリズムを用いて再入力されたユーザの識別情報及びパスワードから新しい第三のハッシュ値を生成させるとともに、第一のハッシュアルゴリズムを用いて新しい第三のハッシュ値と乱数から新しい第四のハッシュ値を生成させ、さらに第一のハッシュアルゴリズムを用いて再入力されたユーザの識別情報及び新パスワードから第五のハッシュ値を生成させ、クライアント装置における認証要求管理手段に、ユーザの識別情報、新しい第四のハッシュ値、及び第五のハッシュ値をサーバ装置へ送信させ、サーバ装置における認証情報管理手段に、ユーザの識別情報、新しい第四のハッシュ値、及び第五のハッシュ値が受信されると、サーバ装置におけるサーバ側ハッシュ値生成手段に、第一のハッシュアルゴリズムを用いて取得したユーザ情報に含まれる第三のハッシュ値と乱数から第四のハッシュ値を生成させ、サーバ装置における認証情報管理手段に、第四のハッシュ値と新しい第四のハッシュ値とが一致するか否かを判定させ、一致する場合、ユーザ情報記憶手段におけるユーザの識別情報に対応する第二のハッシュアルゴリズム識別子及び第三のハッシュ値を、それぞれ第一のハッシュアルゴリズム識別子及び第五のハッシュ値に更新させて、認証成功を示す認証結果をクライアント装置へ送信させ、一致しない場合、認証失敗を示す認証結果をクライアント装置へ送信させる構成としてある。
また、本発明の認証プログラムは、クライアント装置を、当該クライアント装置において使用可能なハッシュアルゴリズムの識別子の一覧を記憶するハッシュアルゴリズム識別子記憶手段として機能させるとともに、サーバ装置を、ハッシュアルゴリズムの識別子ごとに、対応するハッシュアルゴリズムの強度を記憶するハッシュアルゴリズム強度記憶手段として機能させ、クライアント装置における認証要求管理手段に、認証要求情報をサーバ装置へ送信させるにあたり、ハッシュアルゴリズムの識別子の一覧をサーバ装置へ送信させ、サーバ装置における認証情報管理手段に、クライアント装置から認証要求情報とハッシュアルゴリズムの識別子の一覧が受信されると、ハッシュアルゴリズム強度記憶手段に記憶されている各ハッシュアルゴリズムの強度にもとづいて、ハッシュアルゴリズムの識別子の一覧から最も強度の高いハッシュアルゴリズムの識別子を選択させ、この選択された識別子を第一のハッシュアルゴリズム識別子として、乱数とともにクライアント装置へ送信させる構成としてある。
認証プログラムをこのような構成にすれば、認証システムにおいて使用するハッシュアルゴリズムをさらに強度の高いものに変更する場合などに、各装置におけるハッシュアルゴリズムの変更を段階的に行うことが可能となる。
また、ハッシュアルゴリズムを変更するタイミングで、変更後のハッシュアルゴリズムを用いてユーザ情報をサーバ装置に事前に作成しておく必要はなく、ユーザの認証を行うタイミングで、ユーザ情報を個別に最強のハッシュアルゴリズムを用いて更新させることができるため、ユーザ情報の再作成などのために認証システムの利用を停止することを回避することが可能となっている。
本発明によれば、ハッシュアルゴリズムの脆弱性の発見等によりシステムで使用するハッシュアルゴリズムをさらに強度の高いものに変更する必要が出てきたときなどに、まず認証サーバ装置側のハッシュアルゴリズムを変更し、認証クライアント装置側については、全ての認証クライアント装置の対応するハッシュアルゴリズムを一気に変更しなくても、個々の認証クライアント装置ごとに段階的に変更することが可能となる。
また、ハッシュアルゴリズムを変更するタイミングで、ハッシュ値を含むユーザ情報を一度に新規に作成する必要がなく、各ユーザの認証を行うタイミングで個別にユーザ情報を更新することが可能となる。
以下、本発明に係る認証システムの好ましい実施形態について、図面を参照しつつ説明する。
なお、以下の実施形態に示す本発明の認証システムは、プログラムに制御されたコンピュータにより動作するようになっている。コンピュータのCPUは、プログラムにもとづいてコンピュータの各構成要素に指令を送り、認証クライアント装置及び認証サーバ装置の動作に必要となる所定の処理、例えば、所定のハッシュアルゴリズムを用いてユーザIDとパスワードなどからハッシュ値を生成する処理、認証クライアント装置及び認証サーバ装置でそれぞれ生成されたハッシュ値を比較する処理等を行わせる。このように、本発明の認証システムにおける各処理,動作は、プログラムとコンピュータとが協働した具体的手段により実現できるものである。
プログラムは予めROM,RAM等の記録媒体に格納され、コンピュータに実装された記録媒体から当該コンピュータにプログラムを読み込ませて実行されるが、例えば通信回線を介してコンピュータに読み込ませることもできる。
また、プログラムを格納する記録媒体は、例えば半導体メモリ,磁気ディスク,光ディスク、その他任意のコンピュータで読取り可能な任意の記録手段により構成できる。
まず、本発明の一実施形態の構成について、図1〜図4を参照して説明する。図1は、本実施形態の認証システムの構成を示すブロック図である。図2は、同認証システムにおけるハッシュアルゴリズムリスト14を示す図である。図3は、同認証システムにおけるハッシュアルゴリズム強度テーブル23を示す図である。図4は、同認証システムにおけるユーザ情報管理テーブル24を示す図である。
図1に示すように、本実施形態の認証システムは、ユーザIDとパスワードの組み合わせによって認証するシステムであり、認証クライアント装置10と認証サーバ装置20を有している。
認証クライアント装置10は、ユーザからの認証要求、認証情報の入力の受付、認証サーバ装置20への認証要求、ユーザへの認証結果の通知等を行う機能を備えており、図1に示すように、認証情報入力部11、認証要求管理部12、クライアント通信部13、ハッシュアルゴリズムリスト14、及びハッシュ値生成部15を備えている。
認証情報入力部11は、認証要求管理部12からの要求にもとづいてユーザによる認証情報の入力を受け付ける機能、入力された認証情報を認証要求管理部12に渡す機能を有する。
すなわち、認証情報入力部11は、認証要求管理部12から認証情報の入力要求情報を入力すると、ユーザに認証情報の入力を促すための認証情報入力画面などを認証クライアント装置10における図示しない表示手段などに出力して、ユーザの操作により認証情報を入力する。そして、この入力された認証情報を認証要求管理部12に出力する。なお、入力要求情報とは、トリガとなる情報であり、情報の内容としては任意のものを用いることができる。以下の各種要求情報についても同様であるが、その後の処理において用いられる情報、例えばハッシュアルゴリズム識別子等を要求情報として用いることも勿論可能である。
認証要求管理部12は、ユーザからの認証要求にもとづきハッシュアルゴリズムリスト14からハッシュアルゴリズム識別子の一覧を取得してクライアント通信部13に渡す機能、クライアント通信部13からチャレンジ(乱数と最高強度ハッシュアルゴリズム識別子)を取得すると、認証情報入力部11に認証情報受付要求を行う機能、認証情報入力部11から認証情報(ユーザIDとパスワード)を取得すると、最高強度ハッシュアルゴリズム識別子やユーザID、パスワード等をハッシュ値生成部15に渡し、ハッシュ値生成部15から生成されたハッシュ値を取得する機能、ハッシュ値をクライアント通信部13に渡し、クライアント通信部13からハッシュアルゴリズム変更要求や認証結果を取得し、認証結果をユーザに通知する機能を有する。
すなわち、認証要求管理部12は、ユーザの操作により図示しない入力手段から認証要求情報を入力すると、ハッシュアルゴリズムリスト14からハッシュアルゴリズム識別子の一覧を取得し、取得したハッシュアルゴリズム識別子の一覧をクライアント通信部13に出力する。
また、認証要求管理部12は、クライアント通信部13からチャレンジ(乱数と最高強度ハッシュアルゴリズム識別子)を入力すると、認証情報入力部11に認証情報受付要求情報を出力する。
さらに、認証要求管理部12は、認証情報入力部11から認証情報(ユーザIDとパスワード)を入力すると、最高強度ハッシュアルゴリズム識別子やユーザID、パスワード等をハッシュ値生成部15に出力する。そして、ハッシュ値生成部15から生成されたハッシュ値を入力する。
また、認証要求管理部12は、ハッシュ値をクライアント通信部13に出力して、クライアント通信部13からハッシュアルゴリズム変更要求や認証結果を取入力し、入力した認証結果をユーザに参照可能とするため、認証クライアント装置10における図示しない表示手段や印刷手段等に出力する。
これらの認証要求管理部12により実行される各処理の詳細については、図6a及び図6bを用いて後述する。
クライアント通信部13は、認証要求管理部12から取得した情報をサーバ通信部21に送信する機能、サーバ通信部21から受信した情報を認証要求管理部12に渡す機能を有する。
すなわち、クライアント通信部13は、認証要求管理部12から入力した各種情報を通信回線を介してサーバ通信部21に送信する。また、サーバ通信部21から通信回線を介して送信されてきた各種情報を受信すると、この受信した情報を認証要求管理部12に出力する。
ハッシュアルゴリズムリスト14は、認証クライアント装置10のハッシュ値生成部15で使用可能なハッシュアルゴリズムの識別子の一覧を記憶する記憶手段である。このハッシュアルゴリズムリスト14に記憶されるハッシュアルゴリズム識別子の一覧のデータ構造は、例えば図2に示すようなものとすることができる。同図の例では、認証クライアント装置10のハッシュ値生成部15により使用可能なハッシュアルゴリズムとして、MD4、MD5、SHA−1、SHA−256等の識別子がそれぞれ記憶されている。
ハッシュ値生成部15は、認証要求管理部12から取得した情報を元にハッシュ値を生成する機能、生成したハッシュ値を認証要求管理部12に渡す機能を有する。
すなわち、ハッシュ値生成部15は、認証要求管理部12から一定のハッシュアルゴリズム識別子と、ハッシュ値を生成するための元となる情報を入力すると、この入力した元となる情報を用いて、入力したハッシュアルゴリズム識別子に対応するハッシュアルゴリズム(例えば、MD4、SHA−1等)により、ハッシュ値を生成する。そして、生成したハッシュ値を認証要求管理部12に出力する。
認証サーバ装置20は、認証クライアント装置10からの認証要求に対して認証処理を実行し、その結果を認証クライアント装置10に返却する機能を備えており、図1に示すように、サーバ通信部21、認証情報管理部22、ハッシュアルゴリズム強度テーブル23、ユーザ情報管理テーブル24、乱数生成部25、及びハッシュ値生成部26を有している。
サーバ通信部21は、クライアント通信部13から受信した情報を認証情報管理部22に渡す機能、認証情報管理部22から取得した情報をクライアント通信部13に送信する機能を有する。
すなわち、サーバ通信部21は、クライアント通信部13から通信回線を介して送信されてきた各種情報を受信すると、この受信した情報を認証情報管理部22に出力する。また、認証情報管理部22から入力した各種情報を通信回線を介してクライアント通信部13に送信する。
認証情報管理部22は、サーバ通信部21から認証要求とハッシュアルゴリズム識別子の一覧を取得すると、ハッシュアルゴリズム強度テーブル23から各ハッシュアルゴリズムの強度を取得し、ハッシュアルゴリズム識別子の一覧における最強のハッシュアルゴリズムを選択する機能、乱数生成部25から乱数を取得する機能、チャレンジ(最高強度ハッシュアルゴリズム識別子と乱数)をサーバ通信部21に渡し、サーバ通信部21からユーザIDとハッシュ値を取得する機能、ユーザ情報管理テーブル24から指定されたユーザIDに対応するユーザ情報を取得する機能、最高強度ハッシュアルゴリズム識別子や乱数、サーバ通信部21から入力したハッシュ値等をハッシュ値生成部15に渡し、ハッシュ値生成部15から生成されたハッシュ値を取得する機能、ハッシュ値生成部15により生成されたハッシュ値とサーバ通信部21から入力したハッシュ値を比較して認証の成否を判定する機能、ユーザ情報管理テーブル24に対してユーザIDに対応する最高強度ハッシュアルゴリズム識別子とハッシュ値を更新する機能を有している。
すなわち、認証情報管理部22は、サーバ通信部21から認証要求情報とハッシュアルゴリズム識別子の一覧を入力すると、ハッシュアルゴリズム強度テーブル23から各ハッシュアルゴリズムの強度を取得する。このとき、ハッシュアルゴリズム強度テーブル23に記憶されている全てのハッシュアルゴリズム識別子に対応する強度を取得する他、サーバ通信部21から入力したハッシュアルゴリズム識別子の一覧におけるハッシュアルゴリズム識別子に対応する強度のみを取得することもできる。そして、認証情報管理部22は、ハッシュアルゴリズム識別子の一覧のうち、最高の強度を備えたハッシュアルゴリズムの識別子(最高強度ハッシュアルゴリズム識別子)を選択する。
また、認証情報管理部22は、最高強度ハッシュアルゴリズム識別子を選択すると、乱数生成部25に乱数発生要求を行い、乱数生成部25から乱数を入力する。
また、認証情報管理部22は、乱数生成部25から乱数を入力すると、この乱数と最高強度ハッシュアルゴリズム識別子をチャレンジとしてサーバ通信部21に出力し、サーバ通信部21からユーザIDとハッシュ値を入力する。
さらに、認証情報管理部22は、サーバ通信部21から入力したユーザIDにもとづいて、このユーザIDに対応するユーザ情報をユーザ情報管理テーブル24から取得する。
また、認証情報管理部22は、最高強度ハッシュアルゴリズム識別子や乱数、サーバ通信部21から入力したハッシュ値等をハッシュ値生成部26に出力し、ハッシュ値生成部26から当該ハッシュ値生成部26により生成されたハッシュ値を入力する。
また、認証情報管理部22は、ハッシュ値生成部26により生成されたハッシュ値とサーバ通信部21から入力したハッシュ値を比較し、これらが一致すれば認証成功とし、一致しなければ認証失敗と判定し、この判定結果をサーバ通信部21に出力する。
さらに、認証情報管理部22は、一定の場合に、ユーザ情報管理テーブル24に対してユーザIDに対応するハッシュアルゴリズム識別子とハッシュ値を更新する。
以上の認証情報管理部22により実行される各処理の詳細については、図9a及び図9bを用いて後述する。
ハッシュアルゴリズム強度テーブル23は、認証サーバ装置20のハッシュ値生成部26で使用可能なハッシュアルゴリズムの識別子の一覧と、それぞれのハッシュアルゴリズムの強度を記憶する記憶手段である。このハッシュアルゴリズム強度テーブル23のデータ構造は、例えば図3に示すようなものとすることができる。同図では、ハッシュアルゴリズムMD4,MD5,SHA−1,SHA−256を示す各識別子に対応付けて、それぞれの強度が1,1,2,3であることが示されている。
ユーザ情報管理テーブル24は、ユーザ情報として、ユーザIDごとに、ユーザIDとパスワードから生成したハッシュ値と、その際に使用したハッシュアルゴリズムの識別子を記憶する記憶手段であり、本実施形態の認証システムにおける認証処理の実行に先立って、これらの情報を予め記憶している。このユーザ情報管理テーブル24は、例えば図4に示すようなものとすることができる。
乱数生成部25は、認証情報管理部22からの要求にもとづき乱数を生成し、生成した乱数を認証情報管理部22に渡す機能を有する。
すなわち、乱数生成部25は、認証情報管理部22から乱数生成要求情報を入力すると、所定の計算方法により乱数を生成し、生成した乱数を認証情報管理部22に出力する。このときに乱数生成部25が用いる計算方法としては、乱数を生成できる限り任意のものとすることができる。
ハッシュ値生成部26は、認証情報管理部22から入力した情報にもとづきハッシュ値を生成する機能、生成したハッシュ値を認証情報管理部22に渡す機能を有する。
すなわち、ハッシュ値生成部26は、認証情報管理部22から所定のハッシュアルゴリズム識別子と、ハッシュ値生成の元になる情報を入力すると、この入力した元になる情報を用いて、入力したハッシュアルゴリズム識別子に対応するハッシュアルゴリズムによりハッシュ値を生成し、生成したハッシュ値を認証情報管理部22に出力する。
次に、本実施形態の認証システムにおける処理手順について、図5〜図13を参照して説明する。図5は、本実施形態の認証システムにおける変数の定義を示す図である。図6a、図6bは、それぞれ同認証システムにおける認証要求管理部12による処理手順(a)、(b)を示すフローチャートである。図7は、同認証システムにおけるクライアント通信部13による処理手順を示すフローチャートである。図8は、同認証システムにおけるサーバ通信部21による処理手順を示すフローチャートである。図9a、図9bは、それぞれ同認証システムにおける認証情報管理部22による処理手順(a)、(b)を示すフローチャートである。図10は、同認証システムにおける乱数生成部25による処理手順を示すフローチャートである。図11は、同認証システムにおける認証情報入力部11による処理手順を示すフローチャートである。図12は、同認証システムにおける認証クライアント装置のハッシュ値生成部15による処理手順を示すフローチャートである。図13は、同認証システムにおける認証サーバ装置のハッシュ値生成部26による処理手順を示すフローチャートである。
まず、図5を参照して、本実施形態の認証システムにおいて認証クライアント装置及び認証サーバ装置間で送受信される変数について説明する。
rand1は、乱数生成部25により生成された乱数を示す変数である。以下、乱数と称する場合がある。
sHash_alg_idは、認証クライアント装置10と認証サーバ装置20で共に使用可能なハッシュアルゴリズムの中で、最も強度の高いハッシュアルゴリズムの識別子を示す変数である。以下、最高強度ハッシュアルゴリズム識別子と称する場合がある。
uidは、ユーザの操作により認証情報入力部11に入力されたユーザIDを示す変数である。以下、ユーザIDと称する場合がある。
passwdは、ユーザの操作により認証情報入力部11に入力されたパスワードを示す変数である。以下、パスワードと称する場合がある。
uid_passwd_sHashVは、uidとpasswdをハッシュ値を計算するための元になる情報として用い、sHash_alg_idが示すハッシュアルゴリズムに従って生成したハッシュ値を示す変数である。以下、第一のハッシュ値と称する場合がある。
uid_passwd_sHashV_rand1_sHashVは、uid_passwd_sHashVとrand1をハッシュ値を計算するための元になる情報として用い、sHash_alg_idが示すハッシュアルゴリズムに従って生成したハッシュ値を示す変数である。以下、第二のハッシュ値と称する場合がある。
uHash_alg_idは、ユーザ情報管理テーブル24において、uidごとに記憶されているユーザ情報におけるハッシュアルゴリズム識別子を示す変数である。以下、ユーザID対応ハッシュアルゴリズム識別子と称する場合がある。
uid_passwd_uHashVは、uidとpasswdをハッシュ値を計算するための元になる情報として用い、uHash_alg_idが示すハッシュアルゴリズムに従って生成したハッシュ値を示す変数である。以下、第三のハッシュ値と称する場合がある。
uid_passwd_uHashV_rand1_sHashVは、uid_passwd_uHashVとrand1をハッシュ値を計算するための元になる情報として用い、sHash_alg_idが示すハッシュアルゴリズムに従って生成したハッシュ値を示す変数である。以下、第四のハッシュ値と称する場合がある。
Npasswdは、ユーザが入力した新しいパスワードを示す変数である。以下、新パスワードと称する場合がある。
uid_Npasswd_sHashVは、uidとNpasswdをハッシュ値を計算するための元になる情報として用い、sHash_alg_idが示すハッシュアルゴリズムに従って生成したハッシュ値を示す変数である。以下、第五のハッシュ値と称する場合がある。
<処理手順A:認証クライアント装置及び認証サーバ装置共通の最強ハッシュアルゴリズムとユーザ情報におけるハッシュ値の生成に使用されたハッシュアルゴリズムが同一である場合>
次に、認証クライアント装置10及び認証サーバ装置20に共通の最強ハッシュアルゴリズムと、ユーザ情報管理テーブル24に記憶されているハッシュ値の生成に使用されたハッシュアルゴリズムが同一である場合の認証システムにおける処理手順について、図6a〜図13のフローチャートを用いて説明する。
まず、ユーザが認証クライアント装置10を使用して、認証サーバ装置20に認証要求を行う場合、ユーザは図示しない入力手段を操作して、認証クライアント装置10に認証要求情報を入力する。
認証要求管理部12は、図6aに示すように、認証クライアント装置10に認証要求情報が入力されるかを監視し、認証要求情報が入力された場合(ステップ10のYes)、ハッシュアルゴリズムリスト14からハッシュアルゴリズム識別子の一覧を取得する(ステップ11)。
そして、認証要求管理部12は、認証要求情報と、取得したハッシュアルゴリズム識別子の一覧をクライアント通信部13に出力する(ステップ12)。
なお、認証要求情報は、認証クライアント装置10において認証を実行するためのトリガの役割を果たすものであり、その構成は特に限定されるものではなく任意の情報とすることが可能である。
次に、クライアント通信部13は、図7に示すように、認証要求管理部12から認証要求情報とハッシュアルゴリズム識別子の一覧を入力すると(ステップ30のYes)、これらの情報をサーバ通信部21に送信する(ステップ31)。
次に、サーバ通信部21は、図8に示すように、クライアント通信部13から認証要求情報とハッシュアルゴリズム識別子の一覧を受信すると(ステップ40のNo,ステップ42のYes)、これらの情報を認証情報管理部22に出力する(ステップ43)。
次に、認証情報管理部22は、図9aに示すように、サーバ通信部21から認証要求情報とハッシュアルゴリズム識別子の一覧を入力すると(ステップ50のYes)、ハッシュアルゴリズム強度テーブル23から各ハッシュアルゴリズムの強度を取得する(ステップ51)。
そして、ハッシュアルゴリズム強度テーブル23から取得した各ハッシュアルゴリズムごとの強度と、ハッシュアルゴリズム識別子の一覧にもとづいて、ハッシュアルゴリズム識別子の一覧に識別子が存在するハッシュアルゴリズムのうち、最も強度の高いハッシュアルゴリズムの識別子(sHash_alg_id:最高強度ハッシュアルゴリズム識別子)を選択する(ステップ52)。
なお、ハッシュアルゴリズム識別子の一覧に存在する識別子が、ハッシュアルゴリズム強度テーブル23に存在しておらず、認証クライアント装置10と認証サーバ装置20間で共通して使用できるハッシュアルゴリズムがない場合、認証情報管理部22は、サーバ通信部21及びクライアント通信部13を介して、認証クライアント装置10における認証要求管理部12に接続拒否の応答情報を返すことなどの処理を行うことができる。
さらに、認証情報管理部22は、乱数生成部25に乱数生成要求情報を出力して、乱数生成部25から乱数(rand1)を取得する(ステップ53)。
このとき、乱数生成部25は、図10に示すように、認証情報管理部22から乱数生成要求情報を入力すると(ステップ70のYes)、乱数(rand1)を生成し、生成した乱数を認証情報管理部22に出力する(ステップ71)。
なお、このとき用いる乱数の生成方法は、特に限定されるものではなく、任意の好適なものを用いることができる。
次に、認証情報管理部22は、図9aに示すように、取得した乱数(rand1)と最高強度ハッシュアルゴリズム識別子(sHash_alg_id)をチャレンジとして、サーバ通信部21に出力する(ステップ54)。
サーバ通信部21は、図8に示すように、認証情報管理部22から乱数(rand1)と最高強度ハッシュアルゴリズム識別子(sHash_alg_id)を入力すると(ステップ40のYes)、これらの情報をクライアント通信部13に送信する(ステップ41)。
クライアント通信部13は、図7に示すように、サーバ通信部21から乱数(rand1)と最高強度ハッシュアルゴリズム識別子(sHash_alg_id)を受信すると(ステップ30のNo,ステップ32のYes)、これらの情報を認証要求管理部12に出力する(ステップ33)。
認証要求管理部12は、図6aに示すように、クライアント通信部13からチャレンジ(乱数と最高強度ハッシュアルゴリズム識別子)を入力すると(ステップ13のYes)、認証情報入力部11に認証情報入力受付要求情報を出力する(ステップ14)。
認証情報入力部11は、図11に示すように、認証要求管理部12から認証情報入力受付要求情報を入力すると(ステップ80のYes)、認証情報の入力受付を行う(ステップ81)。
その詳細な方法は特に限定されないが、例えば認証クライアント装置10における図示しない表示手段に、ユーザの操作によって例えばユーザID(uid)及びパスワード(passwd)などの認証情報を入力するための入力領域を設けた画面を表示させ、当該画面を介して認証情報を入力させることができる。
そして、認証情報(uidとpasswd)の入力が完了すると(ステップ82のYes)、この認証情報を認証要求管理部12に出力する(ステップ83)。
次に、認証要求管理部12は、図6aに示すように、認証情報入力部11から認証情報(uidとpasswd)を入力すると(ステップ15のYes)、この認証情報(uidとpasswd)と、最高強度ハッシュアルゴリズム識別子(sHash_alg_id)をハッシュ値生成部15に出力し、ハッシュ値生成部15から第一のハッシュ値(uid_passwd_sHashV)を入力する(ステップ16)。
このとき、ハッシュ値生成部15は、図12に示すように、認証要求管理部12からハッシュ値生成要求情報として、最高強度ハッシュアルゴリズム識別子(sHash_alg_id)と、入力となる情報、すなわちハッシュ値生成のための計算要素となる入力情報として認証情報(uidとpasswd)を入力すると(ステップ90のYes)、この入力した識別子に対応するハッシュアルゴリズムにより、認証情報(uidとpasswd)を用いて第一のハッシュ値(uid_passwd_sHashV)を生成し、生成した第一のハッシュ値を認証要求管理部12に出力する(ステップ91)。
次に、認証要求管理部12は、図6aに示すように、最高強度ハッシュアルゴリズム識別子(sHash_alg_id)と、ハッシュ値生成の入力情報としての第一のハッシュ値(uid_passwd_sHashV)と乱数(rand1)をハッシュ値生成部15に出力し、ハッシュ値生成部15から第二のハッシュ値(uid_passwd_sHashV_rand1_sHashV)を入力する(ステップ17)。
このとき、ハッシュ値生成部15は、図12に示すように、認証要求管理部12からハッシュ値生成要求情報として、最高強度ハッシュアルゴリズム識別子(sHash_alg_id)と、ハッシュ値生成のための入力情報として乱数(rand1)と第一のハッシュ値(uid_passwd_sHashV)を入力すると(ステップ90のYes)、この入力した識別子に対応するハッシュアルゴリズムにより、乱数(rand1)と第一のハッシュ値(uid_passwd_sHashV)を用いて第二のハッシュ値(uid_passwd_sHashV_rand1_sHashV)を生成し、生成した第二のハッシュ値を認証要求管理部12に出力する(ステップ91)。
次に、認証要求管理部12は、ユーザID(uid)と第二のハッシュ値(uid_passwd_sHashV_rand1_sHashV)をクライアント通信部13に出力する(ステップ18)。
クライアント通信部13は、図7に示すように、認証要求管理部12からユーザID(uid)と第二のハッシュ値(uid_passwd_sHashV_rand1_sHashV)を入力すると(ステップ30のYes)、これらの情報をサーバ通信部21に送信する(ステップ31)。
サーバ通信部21は、図8に示すように、クライアント通信部13からユーザID(uid)と第二のハッシュ値(uid_passwd_sHashV_rand1_sHashV)を受信すると(ステップ40のNo,ステップ42のYes)、これらの情報を認証情報管理部22に出力する(ステップ43)。
次に、認証情報管理部22は、図9aに示すように、サーバ通信部21からユーザID(uid)と第二のハッシュ値(uid_passwd_sHashV_rand1_sHashV)を入力すると(ステップ55のYes)、ユーザ情報管理テーブル24からユーザID(uid)に対応するユーザ情報を抽出して取得する(ステップ56)。このユーザ情報には、図4を参照して説明したように、ユーザIDと予め生成された第三のハッシュ値とユーザID対応ハッシュアルゴリズム識別子(uHash_alg_id)が含まれている。
なお、ユーザ情報管理テーブル24に、ユーザID(uid)に対応するユーザ情報が存在しない場合は、認証情報管理部22はサーバ通信部21及びクライアント通信部13を介して認証要求管理部12に認証失敗の認証結果を返すなどの処理を行うことができる。
次に、認証情報管理部22は、最高強度ハッシュアルゴリズムの識別子(sHash_alg_id)とユーザID対応ハッシュアルゴリズム識別子(uHash_alg_id)を比較して、一致するか否かを判定する(ステップ57)。
これらの識別子が一致する場合(ステップ57のYes)、認証情報管理部22は、最高強度ハッシュアルゴリズムの識別子(sHash_alg_id)と、ハッシュ値生成のための入力情報としてユーザ情報における第三のハッシュ値(uid_passwd_uHashV)と乱数(rand1)をハッシュ値生成部26に出力し、ハッシュ値生成部26から第四のハッシュ値(uid_passwd_uHashV_rand1_sHashV)を入力する(ステップ58)。
このとき、ハッシュ値生成部26は、図13に示すように、認証情報管理部22からハッシュ値生成要求情報として、最高強度ハッシュアルゴリズム識別子(sHash_alg_id)と、ハッシュ値生成のための入力情報として第三のハッシュ値(uid_passwd_uHashV)と乱数(rand1)を入力すると(ステップ100のYes)、この入力した識別子に対応するハッシュアルゴリズムにより、第三のハッシュ値(uid_passwd_uHashV)と乱数(rand1)を用いて第四のハッシュ値(uid_passwd_uHashV_rand1_sHashV)を生成し、生成した第四のハッシュ値を認証情報管理部22に出力する(ステップ101)。
次に、認証情報管理部22は、ハッシュ値生成部26から入力した第四のハッシュ値(uid_passwd_uHashV_rand1_sHashV)と、第二のハッシュ値(uid_passwd_sHashV_rand1_sHashV)を比較して、一致するか否かを判定する(ステップ59)。
そして、これらのハッシュ値が一致する場合、認証情報管理部22は、認証結果として認証成功をサーバ通信部21に出力する(ステップ60)。
一方、これらのハッシュ値が一致しない場合、認証情報管理部22は、認証結果として認証失敗をサーバ通信部21に出力する(ステップ61)。
そして、サーバ通信部21は、この認証結果をクライアント通信部13に送信し(図8のステップ40のYes,ステップ41)、クライアント通信部13は、サーバ通信部21から受信した認証結果を認証要求管理部12に出力する(図7のステップ30のNo,ステップ32のYes,ステップ33)。
そして、認証要求管理部12は、クライアント通信部13から認証結果を入力すると(ステップ19のNo,ステップ20のYes)、例えば認証クライアント装置10における図示しない表示手段に認証結果を出力することで、ユーザに認証結果を通知する(ステップ21)。
<処理手順B:認証クライアント装置及び認証サーバ装置共通の最強ハッシュアルゴリズムとユーザ情報におけるハッシュ値の生成に使用されたハッシュアルゴリズムが異なる場合>
次に、認証クライアント装置10及び認証サーバ装置20に共通の最強ハッシュアルゴリズムと、ユーザ情報管理テーブル24に記憶されているハッシュ値の生成に使用されたハッシュアルゴリズムが異なる場合の認証システムにおける処理手順について、図6a〜図13のフローチャートを用いて説明する。
まず、認証要求管理部12が、認証クライアント装置10に認証要求情報が入力された場合(図6aのステップ10のYes)、ハッシュアルゴリズムリスト14からハッシュアルゴリズム識別子の一覧を取得する動作(図6aのステップ11)から、認証情報管理部22が、最高強度ハッシュアルゴリズムの識別子(sHash_alg_id)とユーザID対応ハッシュアルゴリズム識別子(uHash_alg_id)を比較して、一致するか否かを判定する動作(図9aのステップ57)までの処理手順は、上述した処理手順Aにおけるものと同様である。
次に、処理手順Bでは、図9aのステップ57において、最高強度ハッシュアルゴリズムの識別子(sHash_alg_id)とユーザID対応ハッシュアルゴリズム識別子(uHash_alg_id)が一致しないと判定される(ステップ57のNo)。
このとき、認証情報管理部22は、ハッシュアルゴリズム変更要求情報として、ユーザID対応ハッシュアルゴリズム識別子(uHash_alg_id)をサーバ通信部21に出力する(ステップ62)。
なお、ユーザID対応ハッシュアルゴリズム識別子(uHash_alg_id)のハッシュアルゴリズムの方が、最高強度ハッシュアルゴリズムの識別子(sHash_alg_id)のハッシュアルゴリズムより強度が高い場合、認証情報管理部22により、サーバ通信部21及びクライアント通信部13を介して、認証要求管理部12に接続拒否を返すなどの処理を行うようにすることもできる。
次に、サーバ通信部21は、認証情報管理部22から入力したハッシュアルゴリズム変更要求情報(ユーザID対応ハッシュアルゴリズム識別子(uHash_alg_id))をクライアント通信部13に送信し(ステップ40のYes,ステップ41)、クライアント通信部13は、受信したハッシュアルゴリズム変更要求情報を認証要求管理部12に出力する(ステップ30のNo,ステップ32のYes,ステップ33)。
次に、認証要求管理部12は、図6aに示すように、クライアント通信部13からハッシュアルゴリズム変更要求情報を入力すると(ステップ19のYes)、認証情報入力部11に認証情報再入力受付要求情報を出力する(ステップ22)。
なお、認証要求管理部12がクライアント通信部13からハッシュアルゴリズム変更要求情報を入力したときに、ステップ14の処理により先に取得したユーザID(uid)とパスワード(passwd)が認証クライアント装置10における所定の記憶手段に記憶されている場合は、認証情報入力部11に認証情報再入力受付要求情報を送信する必要はない。
この場合、ステップ23の処理結果をYesとして、ステップ24以後における処理では、パスワード(passwd)と新パスワード(Npasswd)を同一のものとして取り扱う。
ただし、セキュリティ性の向上の観点から、パスワード(passwd)は、ステップ16において、ハッシュ値生成部15によるハッシュ値生成のための入力情報として使用した時点で破棄しておくことが好ましい。これは、ステップ24,26において、ハッシュ値生成部15により、新パスワード(Npasswd)を用いてハッシュ値が生成される場合についても同様である。
次に、認証情報入力部11は、図11に示すように、認証要求管理部12から認証情報再入力受付要求情報を入力すると(ステップ80のNo,ステップ84のYes)、ステップ81の場合と同様に、認証情報の入力受付を行う(ステップ85)。ただし、この場合は、ユーザID(uid)とパスワード(passwd)に加えて、新しいパスワード(Npasswd)を含めて認証情報とする。
そして、認証情報(uidとpasswdとNpasswd)の入力が完了すると(ステップ86のYes)、この認証情報を認証要求管理部12に出力する(ステップ87)。
次に、認証要求管理部12は、図6bに示すように、認証情報入力部11から認証情報(uidとpasswdとNpasswd)を入力すると(ステップ23のYes)、ユーザID対応ハッシュアルゴリズム識別子(uHash_alg_id)と、ハッシュ値生成のための入力情報としてユーザID(uid)とパスワード(passwd)をハッシュ値生成部15に出力し、ハッシュ値生成部15から第三のハッシュ値(uid_passwd_uHashV)を入力する(ステップ24)。
このとき、ハッシュ値生成部15は、図12に示すように、認証要求管理部12からハッシュ値生成要求情報として、ユーザID対応ハッシュアルゴリズム識別子(uHash_alg_id)と、ハッシュ値生成のための入力情報としてユーザID(uid)及びパスワード(passwd)とを入力すると(ステップ90のYes)、この入力した識別子に対応するハッシュアルゴリズムにより、ユーザID(uid)及びパスワード(passwd)を用いて第三のハッシュ値(uid_passwd_uHashV)を生成し、生成した第三のハッシュ値を認証要求管理部12に出力する(ステップ91)。
次に、認証要求管理部12は、図6bに示すように、最高強度ハッシュアルゴリズムの識別子(sHash_alg_id)と、ハッシュ値生成のための入力情報として乱数(rand1)とステップ24で取得した第三のハッシュ値(uid_passwd_uHashV)をハッシュ値生成部15に出力し、ハッシュ値生成部15から第四のハッシュ値(uid_passwd_uHashV_rand1_sHashV)を入力する(ステップ25)。
このとき、ハッシュ値生成部15は、図12に示すように、認証要求管理部12からハッシュ値生成要求情報として、最高強度ハッシュアルゴリズムの識別子(sHash_alg_id)と、ハッシュ値生成のための入力情報として乱数(rand1)と図6bのステップ24において認証要求管理部12により取得された第三のハッシュ値(uid_passwd_uHashV)とを入力すると(ステップ90のYes)、この入力した識別子に対応するハッシュアルゴリズムにより、乱数(rand1)と第三のハッシュ値(uid_passwd_uHashV)を用いて第四のハッシュ値(uid_passwd_uHashV_rand1_sHashV)を生成し、生成した第四のハッシュ値を認証要求管理部12に出力する(ステップ91)。
次に、認証要求管理部12は、図6bに示すように、最高強度ハッシュアルゴリズムの識別子(sHash_alg_id)と、ハッシュ値生成のための入力情報としてユーザID(uid)及び新パスワード(Npasswd)をハッシュ値生成部15に出力し、ハッシュ値生成部15から第五のハッシュ値(uid_Npasswd_sHashV)を入力する(ステップ26)。
このとき、ハッシュ値生成部15は、図12に示すように、認証要求管理部12からハッシュ値生成要求情報として、最高強度ハッシュアルゴリズムの識別子(sHash_alg_id)と、ハッシュ値生成のための入力情報としてユーザID(uid)及び新パスワード(Npasswd)とを入力すると(ステップ90のYes)、この入力した識別子に対応するハッシュアルゴリズムにより、ユーザID(uid)及び新パスワード(Npasswd)を用いて第五のハッシュ値(uid_Npasswd_sHashV)を生成し、生成した第五のハッシュ値を認証要求管理部12に出力する(ステップ91)。
そして、認証要求管理部12は、以上のようにして取得したユーザID(uid)と第四のハッシュ値(uid_passwd_uHashV_rand1_sHashV)と第五のハッシュ値(uid_Npasswd_sHashV)をクライアント通信部13に出力する(ステップ27)。
クライアント通信部13は、認証要求管理部12から入力したユーザIDと第四のハッシュ値と第五のハッシュ値をサーバ通信部21に送信し(ステップ30のYes,ステップ31)、サーバ通信部21はこれらの情報を受信して認証情報管理部22に出力する(ステップ40のNo,ステップ42のYes,ステップ43)。
次に、認証情報管理部22は、図9bに示すように、サーバ通信部21からユーザIDと第四のハッシュ値と第五のハッシュ値を入力すると(ステップ63のYes)、最高強度ハッシュアルゴリズムの識別子(sHash_alg_id)と、ハッシュ値生成のための入力情報として乱数(rand1)とステップ56で取得したユーザ情報における第三のハッシュ値(uid_passwd_uHashV)をハッシュ値生成部26に出力し、ハッシュ値生成部26から第四のハッシュ値(uid_passwd_uHashV_rand1_sHashV)を入力する(ステップ64)。
このとき、ハッシュ値生成部26は、図13に示すように、認証情報管理部22からハッシュ値生成要求情報として、最高強度ハッシュアルゴリズムの識別子(sHash_alg_id)と、ハッシュ値生成のための入力情報として乱数(rand1)とユーザ情報における第三のハッシュ値(uid_passwd_uHashV)とを入力すると(ステップ100のYes)、この入力した識別子に対応するハッシュアルゴリズムにより、乱数(rand1)と第三のハッシュ値(uid_passwd_uHashV)を用いて第四のハッシュ値(uid_passwd_uHashV_rand1_sHashV)を生成し、生成した第四のハッシュ値を認証情報管理部22に出力する(ステップ101)。
次に、認証情報管理部22は、サーバ通信部21から入力した第四の第二のハッシュ値(uid_passwd_uHashV_rand1_sHashV)と、ハッシュ値生成部26から入力した第四のハッシュ値(uid_passwd_uHashV_rand1_sHashV)を比較して、一致するか否かを判定する(ステップ65)。
そして、これらのハッシュ値が一致しない場合(ステップ65のNo)、認証情報管理部22は、認証結果として認証失敗をサーバ通信部21に出力する(図9aのステップ61)。
一方、これらのハッシュ値が一致する場合は(ステップ65のYes)、認証情報管理部22は、ユーザ情報管理テーブル24に対して、ユーザID(uid)に対応するユーザ情報におけるユーザID対応ハッシュアルゴリズム識別子(uHash_alg_id)を、最高強度ハッシュアルゴリズムの識別子(sHash_alg_id)に更新する(ステップ66)。
また、認証情報管理部22は、同ユーザ情報における第三のハッシュ値(uid_passwd_uHashV)を、第五のハッシュ値(uid_Npasswd_sHashV)に更新する(ステップ66)。
そして、認証情報管理部22は、認証結果として認証成功をサーバ通信部21に出力する(図9aのステップ60)。
サーバ通信部21は、認証情報管理部22から入力した認証結果をクライアント通信部13に送信し(図8のステップ40のYes,ステップ41)、クライアント通信部13は、サーバ通信部21から認証情報を受信すると(図7のステップ30のNo,ステップ32のYes)、これを認証要求管理部12に出力する(ステップ33)。
そして、認証要求管理部12は、クライアント通信部13から認証結果を入力すると(図6aのステップ20のYes)、この認証結果を表示手段に出力することなどにより、ユーザに通知する(ステップ21)。
以上説明したように、本実施形態の認証システムによれば、使用するハッシュアルゴリズムをより強度の高いものに変更する場合に、まず認証サーバ装置側のハッシュアルゴリズムを変更し、認証クライアント装置側については、全ての認証クライアント装置の対応するハッシュアルゴリズムを一気に変更しなくても、個々の認証クライアント装置ごとに段階的に変更することで、ハッシュアルゴリズムの変更を認証システムに反映させることが可能となる。
また、ハッシュアルゴリズムを変更した場合でも、ユーザ認証を行うタイミングで、認証処理を行うとともに既存のユーザ情報を個別に新たなハッシュアルゴリズムを用いて更新できるため、ハッシュアルゴリズムの変更時にユーザ情報を一括して新規に作成するために認証システムを停止することなく、その認証システムを継続して利用することが可能となる。
本発明は、以上の実施形態に限定されるものではなく、本発明の範囲内において、種々の変更実施が可能であることは言うまでもない。
例えば、図1には、一の認証クライアント装置10のみを示しているが、一の認証サーバ装置20に二以上の認証クライアント装置10を接続する構成とすることも可能である。また、ハッシュアルゴリズムとして、図2に示したもの以外の新たなアルゴリズムを追加するなど適宜変更することが可能である。
本発明は、クライアント装置とサーバ装置間の通信のセキュリティを確保するために、認証処理において用いられるハッシュアルゴリズムを比較的頻繁に変更する可能性のある認証システムなどに、好適に利用することが可能である。
本発明の一実施形態の認証システムの構成を示すブロック図である。 本発明の一実施形態の認証システムにおけるハッシュアルゴリズムリスト14を示す図である。 本発明の一実施形態の認証システムにおけるハッシュアルゴリズム強度テーブル23を示す図である。 本発明の一実施形態の認証システムにおけるユーザ情報管理テーブル24を示す図である。 本発明の一実施形態の認証システムにおいて認証クライアント装置及び認証サーバ装置で送受信される変数の説明を示す図である。 本発明の一実施形態の認証システムにおける認証要求管理部12による処理手順(a)を示すフローチャートである。 本発明の一実施形態の認証システムにおける認証要求管理部12による処理手順(b)を示すフローチャートである。 本発明の一実施形態の認証システムにおけるクライアント通信部13による処理手順を示すフローチャートである。 本発明の一実施形態の認証システムにおけるサーバ通信部21による処理手順を示すフローチャートである。 本発明の一実施形態の認証システムにおける認証情報管理部22による処理手順(a)を示すフローチャートである。 本発明の一実施形態の認証システムにおける認証情報管理部22による処理手順(b)を示すフローチャートである。 本発明の一実施形態の認証システムにおける乱数生成部25による処理手順を示すフローチャートである。 本発明の一実施形態の認証システムにおける認証情報入力部11による処理手順を示すフローチャートである。 本発明の一実施形態の認証システムにおける認証クライアント装置のハッシュ値生成部15による処理手順を示すフローチャートである。 本発明の一実施形態の認証システムにおける認証サーバ装置のハッシュ値生成部26による処理手順を示すフローチャートである。
符号の説明
10 認証クライアント装置
11 認証情報入力部
12 認証要求管理部
13 クライアント通信部
14 ハッシュアルゴリズムリスト
15 ハッシュ値生成部
20 認証サーバ装置
21 サーバ通信部
22 認証情報管理部
23 ハッシュアルゴリズム強度テーブル
24 ユーザ情報管理テーブル
25 乱数生成部
26 ハッシュ値生成部

Claims (9)

  1. 通信回線を介して接続されたクライアント装置及びサーバ装置により、ハッシュアルゴリズムを用いて前記クライアント装置のユーザの認証を行う認証システムであって、
    前記クライアント装置が、
    ユーザの識別情報及びパスワードを含む認証情報を入力する認証情報入力手段と、
    前記サーバ装置から送信されてきた第一のハッシュアルゴリズム識別子に対応する第一のハッシュアルゴリズムを用いて前記認証情報から第一のハッシュ値を生成し、前記第一のハッシュアルゴリズムを用いて前記第一のハッシュ値と前記サーバ装置から送信されてきた乱数から第二のハッシュ値を生成するクライアント側ハッシュ値生成手段と、
    前記サーバ装置に認証処理を開始させるための認証要求情報を前記サーバ装置に送信し、前記サーバ装置から前記乱数と前記第一のハッシュアルゴリズム識別子を受信し、前記認証情報入力手段により入力された前記ユーザの識別情報と前記第二のハッシュ値を前記サーバ装置に送信し、前記サーバ装置から認証結果を受信する認証要求管理手段と、を備え、
    前記サーバ装置が、
    前記ユーザの識別情報ごとに、それぞれ対応する第二のハッシュアルゴリズム識別子と、このハッシュアルゴリズム識別子に対応する第二のハッシュアルゴリズムを用いて前記ユーザの識別情報及び前記パスワードを含む認証情報から予め生成された第三のハッシュ値とを含むユーザ情報を記憶するユーザ情報記憶手段と、
    乱数を生成する乱数生成手段と、
    ハッシュ値を生成するサーバ側ハッシュ値生成手段と、
    前記クライアント装置から前記認証要求情報を受信すると、前記乱数生成手段に乱数を生成させ、前記乱数と前記第一のハッシュアルゴリズム識別子を前記クライアント装置に送信し、前記クライアント装置から前記ユーザの識別情報と前記第二のハッシュ値を受信すると、この受信した前記ユーザの識別情報に対応するユーザ情報を前記ユーザ情報記憶手段から取得し、前記取得したユーザ情報に含まれる前記第二のハッシュアルゴリズム識別子と前記第一のハッシュアルゴリズム識別子とが一致するか否かを判定し、一致する場合、前記サーバ側ハッシュ値生成手段に、前記第一のハッシュアルゴリズムを用いて前記取得したユーザ情報に含まれる第三のハッシュ値と前記乱数から第四のハッシュ値を生成させ、前記第二のハッシュ値と前記第四のハッシュ値とが一致するか否かを判定し、一致する場合、認証成功を示す認証結果を前記クライアント装置に送信し、一致しない場合、認証失敗を示す認証結果を前記クライアント装置に送信する認証情報管理手段と、を備えた
    ことを特徴とする認証システム。
  2. 前記サーバ装置における前記認証情報管理手段が、
    前記第二のハッシュアルゴリズム識別子と前記第一のハッシュアルゴリズム識別子とが一致しないと判定した場合、前記第二のハッシュアルゴリズム識別子をハッシュアルゴリズム変更要求情報として前記クライアント装置に送信し、
    前記クライアント装置における前記認証要求管理手段が、
    前記第二のハッシュアルゴリズム識別子を受信すると、前記認証情報入力手段に、前記ユーザの識別情報、パスワード、及び新パスワードを再入力させ、前記クライアント側ハッシュ値生成手段に、前記第二のハッシュアルゴリズムを用いて再入力された前記ユーザの識別情報及び前記パスワードから新しい第三のハッシュ値を生成させるとともに、前記第一のハッシュアルゴリズムを用いて前記新しい第三のハッシュ値と前記乱数から新しい第四のハッシュ値を生成させ、さらに前記第一のハッシュアルゴリズムを用いて再入力された前記ユーザの識別情報及び前記新パスワードから第五のハッシュ値を生成させ、前記ユーザの識別情報、前記新しい第四のハッシュ値、及び前記第五のハッシュ値を前記サーバ装置に送信し、
    前記サーバ装置における前記認証情報管理手段が、
    前記ユーザの識別情報、前記新しい第四のハッシュ値、及び前記第五のハッシュ値を受信すると、前記サーバ側ハッシュ値生成手段に、前記第一のハッシュアルゴリズムを用いて前記取得したユーザ情報に含まれる第三のハッシュ値と前記乱数から第四のハッシュ値を生成させ、前記第四のハッシュ値と前記新しい第四のハッシュ値とが一致するか否かを判定し、一致する場合、前記ユーザ情報記憶手段における前記ユーザの識別情報に対応する前記第二のハッシュアルゴリズム識別子及び前記第三のハッシュ値を、それぞれ前記第一のハッシュアルゴリズム識別子及び前記第五のハッシュ値に更新して、認証成功を示す認証結果を前記クライアント装置に送信し、一致しない場合、認証失敗を示す認証結果を前記クライアント装置に送信する
    ことを特徴とする請求項1記載の認証システム。
  3. 前記クライアント装置が、当該クライアント装置において使用可能なハッシュアルゴリズムの識別子の一覧を記憶するハッシュアルゴリズム識別子記憶手段を備え、
    前記サーバ装置が、ハッシュアルゴリズムの識別子ごとに、対応するハッシュアルゴリズムの強度を記憶するハッシュアルゴリズム強度記憶手段を備え、
    前記クライアント装置における前記認証要求管理手段が、
    前記認証要求情報を前記サーバ装置に送信するにあたり、前記ハッシュアルゴリズムの識別子の一覧を前記サーバ装置に送信し、
    前記サーバ装置における前記認証情報管理手段が、
    前記クライアント装置から前記認証要求情報と前記ハッシュアルゴリズムの識別子の一覧を受信すると、前記ハッシュアルゴリズム強度記憶手段に記憶されている各ハッシュアルゴリズムの強度にもとづいて、前記ハッシュアルゴリズムの識別子の一覧から最も強度の高いハッシュアルゴリズムの識別子を選択し、この選択した識別子を前記第一のハッシュアルゴリズム識別子として、前記乱数とともに前記クライアント装置に送信する
    ことを特徴とする請求項1又は2記載の認証システム。
  4. 通信回線を介して接続されたクライアント装置及びサーバ装置によりハッシュアルゴリズムを用いて、前記クライアント装置のユーザの認証を行う認証方法であって、
    前記クライアント装置における認証要求管理手段が、前記サーバ装置に認証処理を開始させるための認証要求情報を前記サーバ装置に送信し、
    前記サーバ装置における認証情報管理手段が、前記クライアント装置から前記認証要求情報を受信すると、前記サーバ装置における乱数生成手段に乱数を生成させ、前記乱数と所定の第一のハッシュアルゴリズム識別子を前記クライアント装置に送信し、
    前記クライアント装置における前記認証要求管理手段が、前記サーバ装置から前記乱数と前記第一のハッシュアルゴリズム識別子を受信し、
    前記クライアント装置における認証情報入力手段が、ユーザの識別情報及びパスワードを含む認証情報を入力し、
    前記クライアント装置におけるクライアント側ハッシュ値生成手段が、前記第一のハッシュアルゴリズム識別子に対応する第一のハッシュアルゴリズムを用いて前記認証情報から第一のハッシュ値を生成し、前記第一のハッシュアルゴリズムを用いて前記第一のハッシュ値と前記乱数から第二のハッシュ値を生成し、
    前記クライアント装置における前記認証要求管理手段が、前記ユーザの識別情報と前記第二のハッシュ値を前記サーバ装置に送信し、
    前記サーバ装置におけるユーザ情報記憶手段が、前記ユーザの識別情報ごとに、それぞれ対応する第二のハッシュアルゴリズム識別子と、このハッシュアルゴリズム識別子に対応する第二のハッシュアルゴリズムを用いて前記ユーザの識別情報及び前記パスワードを含む認証情報から予め生成された第三のハッシュ値とを含むユーザ情報を予め記憶しており、
    前記サーバ装置における前記認証情報管理手段が、前記クライアント装置から前記ユーザの識別情報と前記第二のハッシュ値を受信すると、この受信した前記ユーザの識別情報に対応するユーザ情報を前記ユーザ情報記憶手段から取得し、前記取得したユーザ情報に含まれる前記第二のハッシュアルゴリズム識別子と前記第一のハッシュアルゴリズム識別子とが一致するか否かを判定し、一致する場合、前記サーバ装置におけるサーバ側ハッシュ値生成手段に、前記第一のハッシュアルゴリズムを用いて前記取得したユーザ情報に含まれる第三のハッシュ値と前記乱数から第四のハッシュ値を生成させ、前記第二のハッシュ値と前記第四のハッシュ値とが一致するか否かを判定し、一致する場合、認証成功を示す認証結果を前記クライアント装置に送信し、一致しない場合、認証失敗を示す認証結果を前記クライアント装置に送信し、
    前記クライアント装置における前記認証要求管理手段が、前記サーバ装置から認証結果を受信する
    ことを特徴とする認証方法。
  5. 前記サーバ装置における前記認証情報管理手段が、前記第二のハッシュアルゴリズム識別子と前記第一のハッシュアルゴリズム識別子とが一致しないと判定した場合、前記第二のハッシュアルゴリズム識別子をハッシュアルゴリズム変更要求情報として前記クライアント装置に送信し、
    前記クライアント装置における前記認証要求管理手段が、前記第二のハッシュアルゴリズム識別子を受信すると、前記クライアント装置における前記認証情報入力手段に、前記ユーザの識別情報、パスワード、及び新パスワードを再入力させ、前記クライアント装置における前記クライアント側ハッシュ値生成手段に、前記第二のハッシュアルゴリズムを用いて再入力された前記ユーザの識別情報及び前記パスワードから新しい第三のハッシュ値を生成させるとともに、前記第一のハッシュアルゴリズムを用いて前記新しい第三のハッシュ値と前記乱数から新しい第四のハッシュ値を生成させ、さらに前記第一のハッシュアルゴリズムを用いて再入力された前記ユーザの識別情報及び前記新パスワードから第五のハッシュ値を生成させて、前記ユーザの識別情報、前記新しい第四のハッシュ値、及び前記第五のハッシュ値を前記サーバ装置に送信し、
    前記サーバ装置における前記認証情報管理手段が、前記ユーザの識別情報、前記新しい第四のハッシュ値、及び前記第五のハッシュ値を受信すると、前記サーバ装置における前記サーバ側ハッシュ値生成手段に、前記第一のハッシュアルゴリズムを用いて前記取得したユーザ情報に含まれる第三のハッシュ値と前記乱数から第四のハッシュ値を生成させ、前記第四のハッシュ値と前記新しい第四のハッシュ値とが一致するか否かを判定し、一致する場合、前記ユーザ情報記憶手段における前記ユーザの識別情報に対応する前記第二のハッシュアルゴリズム識別子及び前記第三のハッシュ値を、それぞれ前記第一のハッシュアルゴリズム識別子及び前記第五のハッシュ値に更新して、認証成功を示す認証結果を前記クライアント装置に送信し、一致しない場合、認証失敗を示す認証結果を前記クライアント装置に送信する
    ことを特徴とする請求項4記載の認証方法。
  6. 前記クライアント装置が、当該クライアント装置において使用可能なハッシュアルゴリズムの識別子の一覧を記憶するハッシュアルゴリズム識別子記憶手段を備えるとともに、前記サーバ装置が、ハッシュアルゴリズムの識別子ごとに、対応するハッシュアルゴリズムの強度を記憶するハッシュアルゴリズム強度記憶手段を備えており、
    前記クライアント装置における前記認証要求管理手段が、前記認証要求情報を前記サーバ装置に送信するにあたり、前記ハッシュアルゴリズムの識別子の一覧を前記サーバ装置に送信し、
    前記サーバ装置における前記認証情報管理手段が、前記クライアント装置から前記認証要求情報と前記ハッシュアルゴリズムの識別子の一覧を受信すると、前記ハッシュアルゴリズム強度記憶手段に記憶されている各ハッシュアルゴリズムの強度にもとづいて、前記ハッシュアルゴリズムの識別子の一覧から最も強度の高いハッシュアルゴリズムの識別子を選択し、この選択した識別子を前記第一のハッシュアルゴリズム識別子として、前記乱数とともに前記クライアント装置に送信する
    ことを特徴とする請求項4又は5記載の認証方法。
  7. 通信回線を介して接続されたクライアント装置及びサーバ装置によりハッシュアルゴリズムを用いて、前記クライアント装置のユーザの認証を行わせる認証プログラムであって、
    前記クライアント装置を、
    ユーザの識別情報及びパスワードを含む認証情報を入力する認証情報入力手段、
    前記サーバ装置から送信されてきた第一のハッシュアルゴリズム識別子に対応する第一のハッシュアルゴリズムを用いて前記認証情報から第一のハッシュ値を生成し、前記第一のハッシュアルゴリズムを用いて前記第一のハッシュ値と前記サーバ装置から送信されてきた乱数から第二のハッシュ値を生成するクライアント側ハッシュ値生成手段、及び、
    前記サーバ装置に認証処理を開始させるための認証要求情報を前記サーバ装置に送信し、前記サーバ装置から前記乱数と前記第一のハッシュアルゴリズム識別子を受信し、前記認証情報入力手段により入力された前記ユーザの識別情報と前記第二のハッシュ値を前記サーバ装置に送信し、前記サーバ装置から認証結果を受信する認証要求管理手段として機能させ、
    前記サーバ装置を、
    前記ユーザの識別情報ごとに、それぞれ対応する第二のハッシュアルゴリズム識別子と、このハッシュアルゴリズム識別子に対応する第二のハッシュアルゴリズムを用いて前記ユーザの識別情報及び前記パスワードを含む認証情報から予め生成された第三のハッシュ値とを含むユーザ情報を記憶するユーザ情報記憶手段、
    乱数を生成する乱数生成手段、
    ハッシュ値を生成するサーバ側ハッシュ値生成手段、及び、
    前記クライアント装置から前記認証要求情報を受信すると、前記乱数生成手段に乱数を生成させ、前記乱数と所定の第一のハッシュアルゴリズム識別子を前記クライアント装置に送信し、前記クライアント装置から前記ユーザの識別情報と前記第二のハッシュ値を受信すると、この受信した前記ユーザの識別情報に対応する前記ユーザ情報を前記ユーザ情報記憶手段から取得し、取得した前記ユーザ情報に含まれる前記第二のハッシュアルゴリズム識別子と前記第一のハッシュアルゴリズム識別子とが一致するか否かを判定し、一致する場合、前記サーバ側ハッシュ値生成手段に、前記第一のハッシュアルゴリズムを用いて前記取得したユーザ情報に含まれる第三のハッシュ値と前記乱数から第四のハッシュ値を生成させ、前記第二のハッシュ値と前記第四のハッシュ値とが一致するか否かを判定し、一致する場合、認証成功を示す認証結果を前記クライアント装置に送信し、一致しない場合、認証失敗を示す認証結果を前記クライアント装置に送信する認証情報管理手段
    として機能させるための認証プログラム。
  8. 前記サーバ装置における前記認証情報管理手段に、
    前記第二のハッシュアルゴリズム識別子と前記第一のハッシュアルゴリズム識別子とが一致しないと判定された場合、前記第二のハッシュアルゴリズム識別子をハッシュアルゴリズム変更要求情報として前記クライアント装置に送信させ、
    前記クライアント装置における前記認証要求管理手段に、前記第二のハッシュアルゴリズム識別子が受信されると、
    前記クライアント装置における前記認証情報入力手段に、前記ユーザの識別情報、パスワード、及び新パスワードを再入力させ、
    前記クライアント装置における前記クライアント側ハッシュ値生成手段に、前記第二のハッシュアルゴリズムを用いて再入力された前記ユーザの識別情報及び前記パスワードから新しい第三のハッシュ値を生成させるとともに、前記第一のハッシュアルゴリズムを用いて前記新しい第三のハッシュ値と前記乱数から新しい第四のハッシュ値を生成させ、さらに前記第一のハッシュアルゴリズムを用いて再入力された前記ユーザの識別情報及び前記新パスワードから第五のハッシュ値を生成させ、
    前記クライアント装置における前記認証要求管理手段に、前記ユーザの識別情報、前記新しい第四のハッシュ値、及び前記第五のハッシュ値を前記サーバ装置へ送信させ、
    前記サーバ装置における前記認証情報管理手段に、前記ユーザの識別情報、前記新しい第四のハッシュ値、及び前記第五のハッシュ値が受信されると、
    前記サーバ装置における前記サーバ側ハッシュ値生成手段に、前記第一のハッシュアルゴリズムを用いて前記取得したユーザ情報に含まれる第三のハッシュ値と前記乱数から第四のハッシュ値を生成させ、
    前記サーバ装置における前記認証情報管理手段に、前記第四のハッシュ値と前記新しい第四のハッシュ値とが一致するか否かを判定させ、一致する場合、前記ユーザ情報記憶手段における前記ユーザの識別情報に対応する前記第二のハッシュアルゴリズム識別子及び前記第三のハッシュ値を、それぞれ前記第一のハッシュアルゴリズム識別子及び前記第五のハッシュ値に更新させて、認証成功を示す認証結果を前記クライアント装置へ送信させ、一致しない場合、認証失敗を示す認証結果を前記クライアント装置へ送信させる
    ことを実行させるための請求項7記載の認証プログラム。
  9. 前記クライアント装置を、当該クライアント装置において使用可能なハッシュアルゴリズムの識別子の一覧を記憶するハッシュアルゴリズム識別子記憶手段として機能させるとともに、
    前記サーバ装置を、ハッシュアルゴリズムの識別子ごとに、対応するハッシュアルゴリズムの強度を記憶するハッシュアルゴリズム強度記憶手段として機能させ、
    前記クライアント装置における前記認証要求管理手段に、前記認証要求情報を前記サーバ装置へ送信させるにあたり、前記ハッシュアルゴリズムの識別子の一覧を前記サーバ装置へ送信させ、
    前記サーバ装置における前記認証情報管理手段に、前記クライアント装置から前記認証要求情報と前記ハッシュアルゴリズムの識別子の一覧が受信されると、前記ハッシュアルゴリズム強度記憶手段に記憶されている各ハッシュアルゴリズムの強度にもとづいて、前記ハッシュアルゴリズムの識別子の一覧から最も強度の高いハッシュアルゴリズムの識別子を選択させ、この選択された識別子を前記第一のハッシュアルゴリズム識別子として、前記乱数とともに前記クライアント装置へ送信させる
    ことを実行させるための請求項7又は8記載の認証プログラム。
JP2007014897A 2007-01-25 2007-01-25 認証システム、認証方法、及び認証プログラム Expired - Fee Related JP4258551B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007014897A JP4258551B2 (ja) 2007-01-25 2007-01-25 認証システム、認証方法、及び認証プログラム
US12/015,630 US8180054B2 (en) 2007-01-25 2008-01-17 Authenticating system, authenticating method, and authenticating program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007014897A JP4258551B2 (ja) 2007-01-25 2007-01-25 認証システム、認証方法、及び認証プログラム

Publications (2)

Publication Number Publication Date
JP2008182535A JP2008182535A (ja) 2008-08-07
JP4258551B2 true JP4258551B2 (ja) 2009-04-30

Family

ID=39668002

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007014897A Expired - Fee Related JP4258551B2 (ja) 2007-01-25 2007-01-25 認証システム、認証方法、及び認証プログラム

Country Status (2)

Country Link
US (1) US8180054B2 (ja)
JP (1) JP4258551B2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100932536B1 (ko) * 2007-11-20 2009-12-17 한국전자통신연구원 사용자 정보 관리 장치 및 방법
US20100246815A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the kasumi cipher algorithm
US20100250965A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm
US8654970B2 (en) * 2009-03-31 2014-02-18 Oracle America, Inc. Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm
US9317286B2 (en) * 2009-03-31 2016-04-19 Oracle America, Inc. Apparatus and method for implementing instruction support for the camellia cipher algorithm
US8832464B2 (en) * 2009-03-31 2014-09-09 Oracle America, Inc. Processor and method for implementing instruction support for hash algorithms
JP5286380B2 (ja) * 2011-03-07 2013-09-11 株式会社東芝 データ送信装置および送信方法
US9778912B2 (en) * 2011-05-27 2017-10-03 Cassy Holdings Llc Stochastic processing of an information stream by a processing architecture generated by operation of non-deterministic data used to select data processing modules
US8789154B2 (en) * 2011-06-30 2014-07-22 Qualcomm Incorporated Anti-shoulder surfing authentication method
CN102868665B (zh) * 2011-07-05 2016-07-27 华为软件技术有限公司 数据传输的方法及装置
US9648011B1 (en) * 2012-02-10 2017-05-09 Protegrity Corporation Tokenization-driven password generation
JP5612006B2 (ja) 2012-03-13 2014-10-22 株式会社東芝 データ送信装置、データ受信装置、及びプログラム
US9305150B2 (en) * 2012-12-10 2016-04-05 Lookout, Inc. Method and system for managing user login behavior on an electronic device for enhanced security
US9201629B2 (en) 2013-03-14 2015-12-01 International Business Machines Corporation Instruction for performing a pseudorandom number seed operation
US8873750B2 (en) * 2013-03-14 2014-10-28 International Business Machines Corporation Instruction for performing a pseudorandom number generate operation
US9282093B2 (en) * 2013-04-30 2016-03-08 Microsoft Technology Licensing, Llc Synchronizing credential hashes between directory services
US9246677B2 (en) * 2013-07-01 2016-01-26 Infosys Limited Method and system for secure data communication between a user device and a server
KR102182894B1 (ko) 2014-02-28 2020-11-26 삼성전자주식회사 패스워드 기반의 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 방법 및 인증 방법
CN103841108B (zh) * 2014-03-12 2018-04-27 北京天诚盛业科技有限公司 用户生物特征的认证方法和系统
US9237129B2 (en) 2014-05-13 2016-01-12 Dell Software Inc. Method to enable deep packet inspection (DPI) in openflow-based software defined network (SDN)
SE538349C3 (en) * 2014-09-30 2016-06-28 Tokon Security Ab Method for authentication using an electronic device
US9537872B2 (en) * 2014-12-31 2017-01-03 Dell Software Inc. Secure neighbor discovery (SEND) using pre-shared key
US9998425B2 (en) 2015-01-27 2018-06-12 Sonicwall Inc. Dynamic bypass of TLS connections matching exclusion list in DPI-SSL in a NAT deployment
US9876783B2 (en) 2015-12-22 2018-01-23 International Business Machines Corporation Distributed password verification
CN110999209B (zh) * 2017-06-20 2022-08-16 诺基亚技术有限公司 一种用于通信的装置、方法和非瞬态计算机可读介质
EP3506138A1 (en) * 2017-12-29 2019-07-03 Gemalto Sa Authentication method, device and system
US11126755B2 (en) * 2018-01-30 2021-09-21 Hewlett Packard Enterprise Development Lp Object signatures in object stores
US11509647B2 (en) * 2019-01-28 2022-11-22 Microsoft Technology Licensing, Llc Determination of weak hashed credentials
US10790967B1 (en) * 2019-11-18 2020-09-29 Capital One Services, Llc Server side authentication
JP7445135B2 (ja) * 2020-08-27 2024-03-07 富士通株式会社 通信プログラム、通信装置、通信方法、及び通信システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000057099A (ja) 1998-08-12 2000-02-25 Open Loop:Kk 認証装置及び記録媒体
US6834112B1 (en) * 2000-04-21 2004-12-21 Intel Corporation Secure distribution of private keys to multiple clients
US7921290B2 (en) * 2001-04-18 2011-04-05 Ipass Inc. Method and system for securely authenticating network access credentials for users
US20040093525A1 (en) * 2002-02-01 2004-05-13 Larnen Vincent Alan Process based security tai building
FR2837009A1 (fr) 2002-03-11 2003-09-12 Schlumberger Systems & Service Mise a jour d'un algorithme d'authentification dans un systeme informatique
US7793323B2 (en) * 2002-04-29 2010-09-07 The Boeing Company Digital cinema system hub for multiple exhibitor distribution
US7636840B2 (en) * 2002-07-10 2009-12-22 Dresser, Inc. Secure communications and control in a fueling environment
JP2004310202A (ja) 2003-04-02 2004-11-04 Nec Corp 個人認証システムおよび方法
JP2005094146A (ja) 2003-09-12 2005-04-07 Nippon Telegr & Teleph Corp <Ntt> バルク型時刻認証要求用プログラム、及びバルク型時刻認証要求用記録媒体、並びに、検証装置、検証方法、検証用プログラム、及び検証用記録媒体
US7591012B2 (en) * 2004-03-02 2009-09-15 Microsoft Corporation Dynamic negotiation of encryption protocols
EP1745589B1 (en) * 2004-04-30 2014-07-16 BlackBerry Limited System and method for configuring devices for secure operations
US7464865B2 (en) * 2006-04-28 2008-12-16 Research In Motion Limited System and method for managing multiple smart card sessions

Also Published As

Publication number Publication date
JP2008182535A (ja) 2008-08-07
US8180054B2 (en) 2012-05-15
US20080181403A1 (en) 2008-07-31

Similar Documents

Publication Publication Date Title
JP4258551B2 (ja) 認証システム、認証方法、及び認証プログラム
US10013692B2 (en) Systems and methods for authorizing transactions via a digital device
US10454913B2 (en) Device authentication agent
US10313126B2 (en) Barcode security authentication method
US20210234857A1 (en) Authentication system, authentication method, and application providing method
CN109660343A (zh) 令牌更新方法、装置、计算机设备及存储介质
US20050021957A1 (en) Authentication method in wire/wireless communication system using markup language
KR20160099922A (ko) 사용자 인증서 발급과 사용자 인증을 위한 방법, 장치 및 컴퓨터 프로그램
US9027103B2 (en) Method and system for securely accessing to protected resource
CN112637131A (zh) 用户身份认证方法、装置、设备和存储介质
KR102162044B1 (ko) 블록체인 기반의 사용자 인증 방법 및 그 시스템
CN109660330B (zh) 一种在区块链上进行身份认证的方法及系统
WO2017000479A1 (zh) 身份信息认证方法、用户终端、服务终端、认证服务器以及服务系统
KR20210142180A (ko) 효율적인 챌린지-응답 인증을 위한 시스템 및 방법
CN105743854A (zh) 安全认证系统及方法
US20150310441A1 (en) Transaction system method, electronic signature tool, and network bank server authentication
CN114430324B (zh) 基于哈希链的线上快速身份验证方法
CN111324885A (zh) 一种分布式身份认证方法
EP1398903B1 (en) Digital signature validation and generation
JP6081857B2 (ja) 認証システムおよび認証方法
TWI645308B (zh) Electronic transaction authentication method and system using mobile device application
US11483166B2 (en) Methods and devices for enrolling and authenticating a user with a service
US10354243B2 (en) Authentication method and a server
JP2021508892A (ja) 電子デバイスの無欠性検査
JP5793593B2 (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: 20090113

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: 20090126

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4258551

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120220

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130220

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140220

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees