JP5836188B2 - 認証装置、認証方法、認証プログラム - Google Patents

認証装置、認証方法、認証プログラム Download PDF

Info

Publication number
JP5836188B2
JP5836188B2 JP2012102838A JP2012102838A JP5836188B2 JP 5836188 B2 JP5836188 B2 JP 5836188B2 JP 2012102838 A JP2012102838 A JP 2012102838A JP 2012102838 A JP2012102838 A JP 2012102838A JP 5836188 B2 JP5836188 B2 JP 5836188B2
Authority
JP
Japan
Prior art keywords
user
authentication
message
user terminal
authentication 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
JP2012102838A
Other languages
English (en)
Other versions
JP2013232729A (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.)
NTT Data Corp
Original Assignee
NTT Data 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 NTT Data Corp filed Critical NTT Data Corp
Priority to JP2012102838A priority Critical patent/JP5836188B2/ja
Publication of JP2013232729A publication Critical patent/JP2013232729A/ja
Application granted granted Critical
Publication of JP5836188B2 publication Critical patent/JP5836188B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ユーザ端末から送信されるメッセージを認証する技術に関する。
サーバ装置がユーザ端末から送信されるメッセージを認証する技術として、例えばMAC(メッセージ認証符号:Message Authentication Code)に一方向性ハッシュ関数を組み合わせたHMAC(Keyed-Hashing for Message Authentication code)を用いる方式が存在する。この方式では、ユーザ端末とサーバ装置との間で予め共通鍵(Ks)を共有しておく。ユーザ端末は、サーバ装置に送信するメッセージの原文(m)と共通鍵(Ks)とに基づくハッシュ値であるHMAC値(H(m、Ks))を算出する。ユーザ端末は、メッセージの原文(m)とHMAC値(H(m、Ks))とを含むメッセージ(m||H(m、Ks))をサーバ装置に送信する。サーバ装置は、ユーザ端末から受信したメッセージの原文(m)と、予め共有した共通鍵(Ks)とに基づいてHMAC値(H(m、Ks))を算出し、算出したHMAC値と、ユーザ端末から受信したHMAC値とが一致するか否かを判定することによりメッセージを認証する。このようにすれば、共通鍵を知らない第三者がメッセージを改ざんしても正しいHMAC値を生成できないため、第三者によるメッセージの改ざんを検知できる。ただし、ユーザ端末からサーバ装置に送信される、HMAC値を含むメッセージ(m||H(m、Ks))が第三者に盗聴された場合、その第三者が、盗聴したメッセージをサーバ装置に再送すると認証が成功する。このような攻撃をリプレイ攻撃という。このようなリプレイ攻撃を防ぐために、例えば特許文献1には、チャレンジ/レスポンス方式による認証を行うことが記載されている。特許文献2には、シーケンス番号を用いた認証を行う方式が記載されている。
特開2010−193110号公報 特開2010−273225号公報
しかしながら、チャレンジ/レスポンス方式による認証では、ユーザ端末とサーバ装置との間で、事前にノンスと呼ばれるランダムなデータを共有する必要があるため、通信回数が倍になる。シーケンス番号を用いた認証を行う方式では、ユーザ端末とサーバ装置とがシーケンス番号を共有しなければならないため、ユーザ端末側においてシーケンス番号を管理する手間が必要になるとともに、シーケンス番号を消失した場合にセキュアな通信を行うことができない。そこで、リプレイ攻撃を防ぎつつも、ユーザ端末とサーバ装置とが効率良く通信を行うことが望ましい。
本発明は、このような状況に鑑みてなされたもので、ユーザ端末から送信されるメッセージを認証する認証装置、認証方法、認証プログラムを提供する。
上述した課題を解決するために、本発明は、ユーザを識別するユーザIDと、当該ユーザIDに対応するユーザ端末から送信された認証情報が当該ユーザIDに対応するユーザ端末から既に送信された認証情報に一致するか否かを判定するための認証情報とが対応付けられたユーザ情報を記憶するユーザ情報記憶部と、前記ユーザ端末から、複数の操作要求と、当該操作要求に付加された、当該ユーザ端末がメッセージを送信した時刻を示すタイムスタンプが含まれるメッセージを受信する受信部と、前記受信部が受信した前記メッセージと、当該メッセージを送信した前記ユーザ端末に対応する前記ユーザIDに対応付けられて前記ユーザ情報記憶部に記憶されている前記認証情報とに基づいて、前記受信部が受信した前記認証情報が当該ユーザIDに対応するユーザ端末から既に送信された認証情報に一致するか否かを判定する認証処理を行う認証部と、前記認証部によって、前記受信部によって受信された前記認証情報が前記ユーザIDに対応するユーザ端末から既に送信された認証情報に一致しないと判定された場合、当該メッセージに対応する認証情報を、前記ユーザ情報記憶部に記憶させる認証情報登録部と、を備えることを特徴とする。
また、本発明は、前記認証部によって、前記受信部によって受信された前記認証情報が前記ユーザIDに対応するユーザ端末から既に送信された認証情報に一致しないと判定された場合、当該メッセージに含まれる複数の操作要求に対応する処理を実行する実行部を備えることを特徴とする。
また、本発明は、前記ユーザ端末から複数の操作要求が含まれるメッセージを受信した場合には、当該メッセージに含まれる複数の操作要求を処理するうちは、前記複数の操作要求が付加されたタイムスタンプを前記ユーザ情報記憶部に記憶させないことを特徴とする
また、本発明は、前記認証情報は、前記タイムスタンプであり、前記認証部は、前記受信部が受信した前記メッセージに含まれるタイムスタンプが示す時刻が、前記ユーザ情報記憶部に記憶されたタイムスタンプが示す時刻より後であれば一致しないと判定することを特徴とする
また、本発明は、前記認証情報は、前記メッセージに含まれるパラメータに基づく署名値であることを特徴とする。
また、本発明は、ユーザを識別するユーザIDと、当該ユーザIDに対応するユーザ端末から送信された認証情報が当該ユーザIDに対応するユーザ端末から既に送信された認証情報に一致するか否かを判定するための認証情報とが対応付けられたユーザ情報を記憶するユーザ情報記憶部を備える認証装置の認証方法であって、前記ユーザ端末から、複数の操作要求と、当該操作要求に付加された、当該ユーザ端末がメッセージを送信した時刻を示すタイムスタンプが含まれるメッセージを受信するステップと、受信した前記メッセージと、当該メッセージを送信した前記ユーザ端末に対応する前記ユーザIDに対応付けられて前記ユーザ情報記憶部に記憶されている前記認証情報とに基づいて、前記受信部が受信した前記認証情報が当該ユーザIDに対応するユーザ端末から既に送信された認証情報に一致するか否かを判定する認証処理を行うステップと、受信した前記認証情報が前記ユーザIDに対応するユーザ端末から既に送信された認証情報に一致しないと判定された場合、当該メッセージに対応する認証情報を、前記ユーザ情報記憶部に記憶させるステップと、を備えることを特徴とする。
また、本発明は、ユーザを識別するユーザIDと、当該ユーザIDに対応するユーザ端末から送信された認証情報が当該ユーザIDに対応するユーザ端末から既に送信された認証情報に一致するか否かを判定するための認証情報とが対応付けられたユーザ情報を記憶するユーザ情報記憶部を備える認証装置のコンピュータに、前記ユーザ端末から、複数の操作要求と、当該操作要求に付加された、当該ユーザ端末がメッセージを送信した時刻を示すタイムスタンプが含まれるメッセージを受信するステップと、受信した前記メッセージと、当該メッセージを送信した前記ユーザ端末に対応する前記ユーザIDに対応付けられて前記ユーザ情報記憶部に記憶されている前記認証情報とに基づいて、前記受信部が受信した前記認証情報が当該ユーザIDに対応するユーザ端末から既に送信された認証情報に一致するか否かを判定する認証処理を行うステップと、受信した前記認証情報が前記ユーザIDに対応するユーザ端末から既に送信された認証情報に一致しないと判定された場合、当該メッセージに対応する認証情報を、前記ユーザ情報記憶部に記憶させるステップと、を実行させる認証プログラムである。
以上説明したように、本発明によれば、ユーザ端末から送信されるメッセージを認証することができる。
本発明の第1の実施形態によるクラウドシステム1の構成例を示すブロック図である。 本発明の第1の実施形態によるユーザ情報のデータ例を示す図である。 本発明の第1の実施形態によるメッセージの例を示す図である。 本発明の第1の実施形態による操作要求の例を示す図である。 本発明の第1の実施形態によるクラウドシステムの動作例を示す図である。 本発明の第1の実施形態によるメッセージに応じた処理結果の例を示す図である。 本発明の第1の実施形態によるメッセージに応じた処理結果の例を示す図である。 本発明の第3の実施形態によるユーザ情報のデータ例を示す図である。 本発明の第3の実施形態によるクラウドシステムの動作例を示す図である。 本発明の第3の実施形態によるメッセージに応じた処理結果の例を示す図である。 本発明の第3の実施形態によるメッセージに応じた処理結果の例を示す図である。
以下、本発明の一実施形態について、図面を参照して説明する。
<第1の実施形態>
図1は、本実施形態によるクラウドシステム1の構成を示すブロック図である。クラウドシステム1は、複数の物理マシン10(物理マシン10−1、物理マシン10−2、物理マシン10−3、・・・)と、クラウドサーバ20と、ユーザ端末30とのコンピュータ装置を備えており、これらのコンピュータ装置はネットワークを介して接続されている。複数の物理マシン10(物理マシン10−1、物理マシン10−2、物理マシン10−3、・・・)は同様の構成であり、特に区別しない場合には「−1」、「−2」等を省略して物理マシン10として説明する。ここでは、3台の物理マシン10を示しているが、任意の台数の物理マシン10が接続されていてもよい。
物理マシン10は、CPU(Central Processing Unit)、メモリ、ディスク(HDD:Hard disk drive)等のコンピュータリソースを備えたコンピュータ装置であり、ネットワークを介してユーザ端末30やクラウドサーバ20に接続される。物理マシン10のコンピュータリソース上には、ユーザ端末30からの要求に応じた仮想マシンが起動され、動作する。
クラウドサーバ20は、ユーザ端末30からの要求に応じて複数の物理マシン10のいずれかに仮想マシンを起動し、動作させる。クラウドサーバ20は、ユーザ情報記憶部21と、通信部22と、認証部23と、クラウドコントローラ部27と、制御部28とを備えている。
ユーザ情報記憶部21は、ユーザを識別するユーザID(Identifier)と、そのユーザIDに対応するユーザ端末30から送信されたメッセージがそのユーザ端末30から既に送信されたメッセージに一致するか否かを判定するための認証情報とが対応付けられたユーザ情報を記憶する。図2は、ユーザ情報記憶部21が記憶するユーザ情報のデータ例を示す図である。ユーザ情報には、ユーザID毎に、共通鍵(Ks)と、最終リクエスト時刻(Tl)とを対応付けた情報が含まれる。ユーザIDは、ユーザを識別する識別情報である。共通鍵(Ks)は、ユーザIDが識別するユーザとクラウドサーバ20との間で予め共有された秘密鍵である。最終リクエスト時刻は、ユーザIDに対応するユーザ端末30から送信されたメッセージに含まれるタイムスタンプである。タイムスタンプは、「YYYY−MM−DDTHH:MM:SSZ」の形式により表される。本実施形態では、このタイムスタンプを認証情報として用いる。
通信部22は、ユーザ端末30から、そのユーザ端末30がメッセージを送信した時刻を示すタイムスタンプが含まれるメッセージを受信する。図3は、通信部22がユーザ端末30から受信するメッセージの例を示す図である。ここでは、HTTPリクエストにおけるGETパラメータによるメッセージの例を示している。すなわち、URL(https://a.com)に対するパラメータとして、Operationと、MachineTemplateと、Countと、UserIDと、Timeと、HMACとのパラメータが付加されている。
Operationは、クラウドサーバ20に対する操作要求を示すパラメータである。この例では、仮想マシンの起動要求であるMakeMachinesが指定されている。MachineTemplateと、Countとは、操作要求に対応するパラメータである。図4は、クラウドサーバ20に対する操作要求の例を示す図である。操作要求には、例えば、仮想マシンにSSH(Secure Shell)ログインするためのキーペアの作成要求であるMakeKey、仮想マシンに割り当てるファイアウォール設定の作成要求であるMakeGroup、仮想マシンの起動要求であるMakeMachines、仮想マシンへのIPアドレスの割当要求であるSetIP、仮想マシンの利用要求等が存在し、それぞれの操作要求に対応するパラメータとともにユーザ端末30からクラウドサーバ20に送信される。
図3に戻り、UserIDは、メッセージを送信するユーザ端末30に対応するユーザを識別するユーザIDである。Timeは、ユーザ端末30がメッセージを送信した時刻を示すタイムスタンプである。HMACは、操作要求名からタイムスタンプまでのパラメータをメッセージの原文(m)とし、メッセージの原文(m)と、クラウドサーバ20とユーザ端末30との間で予め共有された共通鍵(Ks)とに基づいて、予め定められた一方向性ハッシュ関数により算出された署名値(HMAC値:H(m、Ks))である。このようなメッセージの原文(m)とHMAC値(H(m、Ks))とが連結されたパラメータをメッセージ(Msg(=m||H(m、Ks)))とする。
認証部23は、第1の認証部24と、第2の認証部25と、認証情報登録部26とを備えており、ユーザ端末30から送信されるメッセージを認証する。
第1の認証部24は、ユーザ端末30からのメッセージを通信部22が受信すると、そのユーザ端末30のユーザIDに対応する共通鍵(Ks)をユーザ情報記憶部21から読み出し、メッセージに含まれるメッセージの原文(m)と、読み出した共通鍵(Ks)とに基づいて、予め定められた一方向性ハッシュ関数によりHMAC値を算出する。一方向性ハッシュ関数のアルゴリズムは、第1の認証部24の記憶領域に予め記憶されているものとする。そして、算出したHMAC値と、通信部22がユーザ端末30から受信したメッセージに含まれるHMAC値とを比較し、一致すれば認証成功と判定し、一致しなければ認証失敗と判定する。
第2の認証部25は、通信部22が受信したメッセージ(Msg)と、そのメッセージを送信したユーザ端末30に対応するユーザIDに対応付けられてユーザ情報記憶部21に記憶されている認証情報である最終リクエスト時刻とに基づいて、通信部22が受信したメッセージがそのユーザIDに対応するユーザ端末30から既に送信されたメッセージに一致するか否かを判定する認証処理を行う。
本実施形態では、第2の認証部25は、通信部22が受信したメッセージに含まれるタイムスタンプ(Ts)が示す第1の時刻と、そのメッセージを送信したユーザ端末30に対応するユーザIDに対応付けられてユーザ情報記憶部21に記憶されている認証情報である最終リクエスト時刻(Tl)が示す第2の時刻とを比較することにより、認証処理を行う。すなわち、第1の時刻(Ts)が第2の時刻(Tl)よりも後であれば、通信部22によって受信されたメッセージはユーザ端末30から既に送信されたメッセージに一致しないと判定する。この場合、そのメッセージは、新たなタイムスタンプと、そのユーザIDに対応する共通鍵とに基づいて新たに生成されたメッセージであり、正当なユーザから送信された正当なメッセージである可能性が高いと推定できる。
また、第2の認証部25は、第1の時刻(Ts)が第2の時刻(Tl)よりも後でなければ、通信部22によって受信されたメッセージはユーザIDに対応するユーザ端末30から既に送信されたメッセージに一致すると判定する。この場合、そのメッセージは、第三者によって盗聴されたメッセージが、リプレイ攻撃によって再送されたメッセージである可能性が高いと推定できる。
認証情報登録部26は、第2の認証部25によって、通信部22によって受信されたメッセージがユーザIDに対応するユーザ端末30から既に送信されたメッセージに一致しないと判定された場合、そのメッセージに含まれるタイムスタンプを、最終リクエスト時刻としてユーザ情報記憶部21に記憶させる。
クラウドコントローラ部27は、第2の認証部25によって、通信部22によって受信されたメッセージがユーザIDに対応するユーザ端末30から既に送信されたメッセージに一致しないと判定された場合、そのメッセージに含まれる操作要求に応じた処理を実行する。例えば、操作要求が仮想マシンの起動要求(MakeMachines)であれば、パラメータにより指定された仮想マシンを物理マシン10に起動させる。
制御部28は、クラウドサーバ20が備える各部を制御する。
ユーザ端末30は、物理マシン10とクラウドサーバ20とにネットワークを介して接続され、クラウドシステム1によって提供される物理マシン10のコンピュータリソースを利用する。ユーザ端末30は、キーボードやマウス等である入力部、ディスプレイである表示部、出力部、制御部、記憶部等を備えている。ユーザ端末30は、ユーザからの操作入力に応じて、クラウドサーバ20にコンピュータリソースの操作要求を送信する。
次に、図面を参照して、本実施形態によるクラウドシステム1の動作例を説明する。図5は、本実施形態によるクラウドシステム1の動作例を示す図である。
ユーザ端末30は、ユーザからの入力に応じて、メッセージ(Msg=m||H(m、Ks))を生成する(ステップS1)。ユーザ端末30は、生成したメッセージ(Msg)をクラウドサーバ20に送信する(ステップS2)。クラウドサーバ20の通信部22が、ユーザ端末30から送信したメッセージ(Msg)を受信すると、制御部28は、メッセージ(Msg)の認証要求を認証部23に送信する(ステップS3)。認証部23は、メッセージ(Msg)に含まれるパラメータであるユーザID(UserID)に対応するユーザ情報を、ユーザ情報記憶部21から読み出す(ステップS4、5)。ここで認証部23がユーザ情報記憶部21から読み出すユーザ情報には、共通鍵(Ks)と最終リクエスト時刻(Tl)とが含まれる。
認証部23の第1の認証部24は、メッセージ(Msg)に含まれるメッセージの原文(m)と、ユーザ情報記憶部21から読み出した共通鍵(Ks)とに基づいて、予め定められた一方向性ハッシュ関数によりHMAC値を算出する。そして、算出したHMAC値と、メッセージ(Msg)に含まれるHMAC値とが一致するか否かを判定する。ここで、第1の認証部24は、算出したHMAC値と、メッセージ(Msg)に含まれるHMAC値とが一致しないと判定すれば、認証失敗と判定する。一方、算出したHMAC値と、メッセージ(Msg)に含まれるHMAC値とが一致すると判定すれば、認証成功と判定する(ステップS6)。
第1の認証部24が、認証成功と判定すると、第2の認証部25は、メッセージ(Msg)に含まれるタイムスタンプ(Ts)と、ステップS5においてユーザ情報記憶部21から読み出した最終リクエスト時刻(Tl)とを比較する。第2の認証部25は、タイムスタンプ(Ts)が、最終リクエスト時刻(Tl)より後であれば、認証成功と判定する。一方、タイムスタンプ(Ts)が、最終リクエスト時刻(Tl)より後でなければ、認証失敗と判定する(ステップS7)。
ステップS6とステップS7とにおいて認証成功と判定すれば、認証情報登録部26は、メッセージ(Msg)に含まれるタイムスタンプ(Ts)を、最終リクエスト時刻(Tl)に対応付けてユーザ情報記憶部21に記憶させる(ステップS8、9)。認証部23は、ステップS6とステップS7とにおける認証結果(認証成功であればTrue、認証失敗であればFalse)を、制御部28に返却する(ステップS10)。制御部28は、認証部23による認証結果が認証成功を示すものであれば、メッセージ(Msg)に含まれる操作要求をクラウドコントローラ部27に送信する(ステップS11)。
クラウドコントローラ部27は、制御部28からの操作要求に応じた操作を実行し(ステップS12)、処理結果(処理成功であればTrue、処理失敗であればFalse)を返却する(ステップS13)。制御部28は、ステップS6とステップS7とにおける認証結果が認証失敗を示すものであれば、ステップS11からステップS13までの処理を行わずに、認証失敗を示す認証結果をユーザ端末30に送信する。一方、ステップS6とステップS7とにおける認証結果が認証成功を示すものであれば、ステップS13においてクラウドコントローラ部27から受信した処理結果をユーザ端末30に送信する(ステップS14)。
図6は、本実施形態によりクラウドサーバ20に送信されるメッセージに応じた処理結果の例を示す図である。ここでは、符号a、b、c、dに示すメッセージが順にクラウドサーバ20に送信されたものとする。この場合、符号aに示すメッセージが送信された時点で、最終リクエスト時刻(Tl)に「2012−01−01T09:00:00Z」の値が記憶される。符号bに示すメッセージに含まれるタイムスタンプ(Ts)は、「2012−01−01T09:02:00Z」であり、最終リクエスト時刻(Tl)より後であるから、認証成功と判定される。この時点で、最終リクエスト時刻(Tl)には、符号bのタイムスタンプである「2012−01−01T09:02:00Z」の値が記憶される。
そして、符号aに示すメッセージが盗聴され、リプレイ攻撃により符号cに示すメッセージが送信されると、このメッセージに含まれるタイムスタンプ(Ts)は、「2012−01−01T09:00:00Z」であり、最終リクエスト時刻(Tl)以前であるから、認証失敗と判定される。その後に、正当なユーザにより、符号dに示すメッセージが送信されると、このメッセージに含まれるタイムスタンプ(Ts)は、「2012−01−01T09:03:00Z」であり、最終リクエスト時刻(Tl)より後であるから、認証成功と判定される。
以上説明したように、本実施形態によれば、クラウドサーバ20が、ユーザ端末30から受信したメッセージの認証が成功すれば、そのメッセージのタイムスタンプ(Ts)を、最終リクエスト時刻(Tl)としてユーザ情報記憶部21に記憶させておき、新たなメッセージを受信した場合に、その新たなメッセージのタイムスタンプ(Ts)が、ユーザ情報記憶部21に記憶されている最終リクエスト時刻(Tl)より後である場合にのみ、認証成功として操作要求に応じた処理を実行するようにした。これにより、第三者によるリプレイ攻撃があった場合に、認証失敗として処理を実行しないようにすることができる。
このようにすれば、例えば、正当なユーザによる仮想マシンの起動要求である操作要求が第三者に盗聴され、その第三者によって仮想マシンの起動要求が大量にクラウドサーバ20に再送されて、大量の仮想マシンが起動されるリプレイ攻撃を防ぐことができる。すなわち、このようなリプレイ攻撃により正当なユーザへの過剰な課金が発生したり、クラウドサーバ20や物理マシン10のリソースが過剰に逼迫されたりすることを防ぐことができる。また、例えば、正当なユーザによる仮想マシンの停止要求である操作要求が第三者に盗聴され、その第三者によって仮想マシンの停止要求がクラウドサーバ20に再送されることより、正当なユーザがクラウドサーバ20を用いて提供するサービスを不本意に停止させるようなリプレイ攻撃を防ぐことができる。
また、例えば、ユーザ端末30とクラウドサーバ20との間の通信路をSSL(Secure Socket Layer)等により暗号化すれば、通信路における盗聴を防ぐことはできる。しかし、ユーザ端末30からクラウドサーバ20にメッセージを送信するツールがマルウェアとなっており、クラウドサーバ20にメッセージを送信すると同時に第三者へのメッセージを送信しているような場合には、メッセージが盗まれてリプレイ攻撃をされる可能性がある。あるいは、例えばフィッシング詐欺によって、クラウドサーバ20に送信するメッセージが第三者のサーバに送信されることによりメッセージが盗まれてリプレイ攻撃をされる可能性がある。これに対し、本実施形態によれば、盗まれたメッセージが再送された場合には、再送されたメッセージに含まれるタイムスタンプ(Ts)は既に最終リクエスト時刻(Tl)として記憶されているため認証失敗となり、リプレイ攻撃があった場合に処理を実行しないようにすることができる。
また、ユーザ端末30は、自身の端末における時刻をタイムスタンプとして含めたメッセージをクラウドサーバ20に送信すればよいため、シーケンス番号のような新たな情報を管理する必要がない。
また、ユーザ端末30は、チャレンジ/レスポンス方式によるノンスの取得のような通信をする必要がないため、リプレイ攻撃への対策のために通信回数が増えることがない。
また、本実施形態によれば、タイムスタンプを用いてリプレイ攻撃を検知するため、タイムスタンプが含まれるようなメッセージにより操作要求を行っている既存のシステムに対して、メッセージのパラメータを増やしたり、通信のシーケンスを変更したりすることなく、効率良くリプレイ攻撃を防ぐ機能を実装することができる。
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。本実施形態によるクラウドシステム1の構成は第1の実施形態と同様であるため、本実施形態において特徴的な点について説明する。第1の実施形態によれば、リプレイ攻撃を防ぐことができるが、正当なユーザのユーザ端末30から同時刻に複数のメッセージがクラウドサーバ20に送信される場合、最初のメッセージのみが認証成功し、その後のメッセージは認証失敗となる。例えば、第1の実施形態では、タイムスタンプの時刻を秒単位で記憶しているため、図7に示すように、1秒以内の同時刻に複数のメッセージが送信された場合、2回目以降に送信されたメッセージは認証失敗となる。例えば、ユーザ端末30からクラウドサーバ20に対するメッセージの送信処理を、スクリプトやツール等により自動化している場合は、このように1秒以内に複数のメッセージが送信されることも考えられる。タイムスタンプのフォーマットをミリ秒単位に発生しても、1ミリ秒以内に複数のメッセージが送信されれば、同様に認証失敗となる。
そこで、本実施形態の通信部22は、ユーザ端末30から、複数の操作要求が含まれるメッセージを受信する。例えば、ユーザ端末30は、複数の操作要求を示すメッセージを「Next」等の項目として入れ子構造にしたひとつのメッセージをクラウドサーバ20に送信する。例えば、「https://a.com/?operation=・・・&Param1=・・・&Next=”operation=・・・&Param1=・・・&Next=”operation=・・・&Param1=・・・””」のように、Next文を入れ子構造にすることで、ひとつのメッセージに複数の操作要求を含ませる。
この場合、タイムスタンプは、ひとつのメッセージに含まれる複数の操作要求毎に付加してもよいし、複数の操作要求に対してひとつのタイムスタンプを付加することもできる。第2の認証部25は、ひとつのメッセージに含まれる複数の操作要求毎にタイムスタンプが付加されている場合は、そのメッセージに含まれる複数の操作要求を処理するうちは、そのタイムスタンプ(Ts)をユーザ情報記憶部21に記憶させない。これにより、ひとつのメッセージに含まれる複数の操作要求に対する処理を実行することができる。あるいは、複数の操作要求に対してひとつのタイムスタンプが付加されている場合は、第2の認証部25は、タイムスタンプと最終リクエスト時刻との比較処理を一度だけ行い、認証可否を判定する。
クラウドコントローラ部27は、第2の認証部25によって、通信部22によって受信されたメッセージがユーザIDに対応するユーザ端末30から既に送信されたメッセージに一致しないと判定された場合、そのメッセージに含まれる複数の操作要求に対応する処理を実行する。
このようにすれば、ユーザ端末30は、ひとつのメッセージに複数の操作要求を含ませることにより、限られた時間内(例えば、1秒)に複数の操作要求をクラウドサーバ20に送信し、実行させることが可能となる。
<第3の実施形態>
次に、本発明の第3の実施形態について説明する。本実施形態によるクラウドシステム1の構成は第1の実施形態と同様であるため、本実施形態において特徴的な点について説明する。第1の実施形態では、ユーザ端末30から送信されたメッセージがそのユーザIDに対応するユーザ端末30から既に送信されたメッセージに一致するか否かを認証するための認証情報としてタイムスタンプ(Ts)を適用する例を説明した。これに対し、本実施形態においては、認証情報として、メッセージに含まれるパラメータに基づく署名値であるHMAC値を適用する。HMAC値は、タイムスタンプ(Ts)が含まれるメッセージの原文(m)に基づいて生成されるものであるため、HMAC値を比較することによっても、リプレイ攻撃を検知することができる。すなわち、同一のメッセージが複数回送信された場合、そのメッセージに含まれるHMAC値は同一であるため、同一のHMAC値が対応付けられた2回目以降のメッセージは、リプレイ攻撃により送信された可能性が高いと推定できる。
図8は、本実施形態におけるユーザ情報記憶部21に記憶されるユーザ情報のデータ例を示す図である。ユーザ情報には、ユーザID毎に、共通鍵(Ks)と、HMAC値のリスト(H_list)とを対応付けた情報が含まれる。HMAC値のリスト(H_list)には、そのユーザのユーザ端末30から受信した1以上のHMAC値が含まれる。
第2の認証部25は、通信部22が受信したメッセージに含まれる第1のHMAC値と、そのメッセージを送信したユーザ端末30に対応するユーザIDに対応付けられてユーザ情報記憶部21に記憶されている認証情報である第2のHMAC値とを比較することにより、認証処理を行う。すなわち、第2の認証部25は、第1のHMAC値が、第2のHMAC値と一致すれば、通信部22によって受信されたメッセージはユーザIDに対応するユーザ端末30から既に送信されたメッセージに一致すると判定し、第1のHMAC値が、第2のHMAC値と一致しなければ、通信部22によって受信されたメッセージはユーザIDに対応するユーザ端末30から既に送信されたメッセージに一致しないと判定する。
図9は、本実施形態によるクラウドシステム1の動作例を示す図である。ステップS20からステップS23までは、第1の実施形態におけるステップS1からステップS4までと同様である。第1の認証部24は、ユーザ情報記憶部21からHMAC値のリストが含まれるユーザ情報を読み出す(ステップS24)。第1の認証部24は、第1の実施形態におけるステップS6と同様のHMAC認証の処理を行う(ステップS25)。第2の認証部25は、ユーザ端末30から受信したメッセージ(Msg)に含まれるHMAC値が、ユーザ情報記憶部21から読み出したHMAC値のリストに含まれるか否かを判定する。第2の認証部25は、ユーザ端末30から受信したメッセージ(Msg)に含まれるHMAC値が、ユーザ情報記憶部21から読み出したHMAC値のリストに含まれていれば、認証失敗と判定する。ユーザ端末30から受信したメッセージ(Msg)に含まれるHMAC値が、ユーザ情報記憶部21から読み出したHMAC値のリストに含まれていなければ、認証成功と判定する(ステップS26)。
ステップS25とステップS26とにおいて認証成功と判定すれば、認証情報登録部26は、メッセージ(Msg)に含まれるHMAC値(H(m、Ks))を、HMAC値のリストに追加し、ユーザ情報記憶部21に記憶させる(ステップS27、28)。ステップS29からステップS33までの処理は、第1の実施形態におけるステップS10からステップS14までと同様である。
図10は、本実施形態によりクラウドサーバ20に送信されるメッセージに応じた処理結果の例を示す図である。この場合、符号a、b、c、dに示すメッセージに含まれるタイムスタンプ(Ts)の値は同一であるが、メッセージの原文(m)に含まれるパラメータのうち、Operationの値が異なる。これにより、符号a、b、c、dに示すメッセージに対応するHMAC値は異なる値となるから、HMAC値はHMAC値のリストに含まれないと判定され、いずれも認証成功する。
図11は、本実施形態によりクラウドサーバ20に送信されるメッセージに応じた処理結果の別の例を示す図である。ここでは、符号aに示すメッセージのHMAC値と符号bに示すメッセージのHMAC値とは異なるため、認証成功と判定される。符号cに示すメッセージのHMAC値と符号aに示すメッセージのHMAC値とが同一であり、符号dに示すメッセージのHMAC値と符号bに示すメッセージのHMAC値とが同一であるため、認証失敗と判定され、操作要求に対応する処理は実行されない。
以上説明したように、本実施形態によれば、クラウドサーバ20は、ユーザ端末30から送信されたメッセージに含まれるHMAC値のリストをユーザ情報記憶部21に記憶させておき、ユーザ端末30から新たなメッセージが送信されると、そのメッセージに含まれるHMAC値が、ユーザ情報記憶部21に記憶されているHMAC値のリストに含まれるか否かを判定し、含まれる場合には操作要求に対応する処理を実行しないようにした。これにより、リプレイ攻撃によるメッセージに含まれるHMAC値は、既にクラウドサーバ20のユーザ情報記憶部21に記憶されているため、そのメッセージに対応する処理を実行しないようにすることができ、リプレイ攻撃を防ぐことができる。
これによれば、第1の実施形態に比べて、同一のタイムスタンプが付加されたメッセージであっても、他のパラメータが異なれば、処理を実行することができる。
なお、本実施形態においても、第2の実施形態と同様に、ひとつのメッセージに複数の操作要求を含ませるようにしてもよい。
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりメッセージの認証を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
1 クラウドシステム
10 物理マシン
20 クラウドサーバ
21 ユーザ情報記憶部
22 通信部
23 認証部
24 第1の認証部
25 第2の認証部
26 認証情報登録部
27 クラウドコントローラ部
28 制御部
30 ユーザ端末

Claims (7)

  1. ユーザを識別するユーザIDと、当該ユーザIDに対応するユーザ端末から送信された認証情報が当該ユーザIDに対応するユーザ端末から既に送信された認証情報に一致するか否かを判定するための認証情報とが対応付けられたユーザ情報を記憶するユーザ情報記憶部と、
    前記ユーザ端末から、複数の操作要求と、当該操作要求に付加された、当該ユーザ端末がメッセージを送信した時刻を示すタイムスタンプが含まれるメッセージを受信する受信部と、
    前記受信部が受信した前記メッセージと、当該メッセージを送信した前記ユーザ端末に対応する前記ユーザIDに対応付けられて前記ユーザ情報記憶部に記憶されている前記認証情報とに基づいて、前記受信部が受信した前記認証情報が当該ユーザIDに対応するユーザ端末から既に送信された認証情報に一致するか否かを判定する認証処理を行う認証部と、
    前記認証部によって、前記受信部によって受信された前記認証情報が前記ユーザIDに対応するユーザ端末から既に送信された認証情報に一致しないと判定された場合、当該メッセージに対応する認証情報を、前記ユーザ情報記憶部に記憶させる認証情報登録部と、
    を備えることを特徴とする認証装置。
  2. 前記認証部によって、前記受信部によって受信された前記認証情報が前記ユーザIDに対応するユーザ端末から既に送信された認証情報に一致しないと判定された場合、当該メッセージに含まれる複数の操作要求に対応する処理を実行する実行部を備えることを特徴とする請求項1に記載の認証装置。
  3. 前記ユーザ端末から複数の操作要求が含まれるメッセージを受信した場合には、当該メッセージに含まれる複数の操作要求を処理するうちは、前記複数の操作要求が付加されたタイムスタンプを前記ユーザ情報記憶部に記憶させないことを特徴とする請求項2に記載の認証装置。
  4. 前記認証情報は、前記タイムスタンプであり、前記認証部は、前記受信部が受信した前記メッセージに含まれるタイムスタンプが示す時刻が、前記ユーザ情報記憶部に記憶されたタイムスタンプが示す時刻より後であれば一致しないと判定することを特徴とする請求項1から請求項3のいずれか1項に記載の認証装置。
  5. 前記認証情報は、前記メッセージに含まれるパラメータに基づく署名値であることを特徴とする請求項1または請求項2に記載の認証装置。
  6. ユーザを識別するユーザIDと、当該ユーザIDに対応するユーザ端末から送信された認証情報が当該ユーザIDに対応するユーザ端末から既に送信された認証情報に一致するか否かを判定するための認証情報とが対応付けられたユーザ情報を記憶するユーザ情報記憶部を備える認証装置の認証方法であって、
    前記ユーザ端末から、複数の操作要求と、当該操作要求に付加された、当該ユーザ端末がメッセージを送信した時刻を示すタイムスタンプが含まれるメッセージを受信するステップと、
    受信した前記メッセージと、当該メッセージを送信した前記ユーザ端末に対応する前記ユーザIDに対応付けられて前記ユーザ情報記憶部に記憶されている前記認証情報とに基づいて、前記受信部が受信した前記認証情報が当該ユーザIDに対応するユーザ端末から既に送信された認証情報に一致するか否かを判定する認証処理を行うステップと、
    受信した前記認証情報が前記ユーザIDに対応するユーザ端末から既に送信された認証情報に一致しないと判定された場合、当該メッセージに対応する認証情報を、前記ユーザ情報記憶部に記憶させるステップと、
    を備えることを特徴とする認証方法。
  7. ユーザを識別するユーザIDと、当該ユーザIDに対応するユーザ端末から送信された認証情報が当該ユーザIDに対応するユーザ端末から既に送信された認証情報に一致するか否かを判定するための認証情報とが対応付けられたユーザ情報を記憶するユーザ情報記憶部を備える認証装置のコンピュータに、
    前記ユーザ端末から、複数の操作要求と、当該操作要求に付加された、当該ユーザ端末がメッセージを送信した時刻を示すタイムスタンプが含まれるメッセージを受信するステップと、
    受信した前記メッセージと、当該メッセージを送信した前記ユーザ端末に対応する前記ユーザIDに対応付けられて前記ユーザ情報記憶部に記憶されている前記認証情報とに基づいて、前記受信部が受信した前記認証情報が当該ユーザIDに対応するユーザ端末から既に送信された認証情報に一致するか否かを判定する認証処理を行うステップと、
    受信した前記認証情報が前記ユーザIDに対応するユーザ端末から既に送信された認証情報に一致しないと判定された場合、当該メッセージに対応する認証情報を、前記ユーザ情報記憶部に記憶させるステップと、
    を実行させる認証プログラム。
JP2012102838A 2012-04-27 2012-04-27 認証装置、認証方法、認証プログラム Expired - Fee Related JP5836188B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012102838A JP5836188B2 (ja) 2012-04-27 2012-04-27 認証装置、認証方法、認証プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012102838A JP5836188B2 (ja) 2012-04-27 2012-04-27 認証装置、認証方法、認証プログラム

Publications (2)

Publication Number Publication Date
JP2013232729A JP2013232729A (ja) 2013-11-14
JP5836188B2 true JP5836188B2 (ja) 2015-12-24

Family

ID=49678830

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012102838A Expired - Fee Related JP5836188B2 (ja) 2012-04-27 2012-04-27 認証装置、認証方法、認証プログラム

Country Status (1)

Country Link
JP (1) JP5836188B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016095597A (ja) * 2014-11-12 2016-05-26 富士通株式会社 配備制御プログラム、配備制御装置及び配備制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5102701B2 (ja) * 2008-05-27 2012-12-19 パナソニック株式会社 秘密鍵配布方法、秘密鍵配布システム
KR101000693B1 (ko) * 2008-10-21 2010-12-10 엘지전자 주식회사 디지털 저작권 관리에서 사용권리 이동 방법
JP2010226570A (ja) * 2009-03-25 2010-10-07 Panasonic Corp 中継通信装置及び中継通信方法

Also Published As

Publication number Publication date
JP2013232729A (ja) 2013-11-14

Similar Documents

Publication Publication Date Title
US10277577B2 (en) Password-less authentication system and method
CN108768970B (zh) 一种智能设备的绑定方法、身份认证平台及存储介质
US10904758B2 (en) Secure method for configuring internet of things (IOT) devices through wireless technologies
US8079076B2 (en) Detecting stolen authentication cookie attacks
US9264420B2 (en) Single sign-on for network applications
CN107040513B (zh) 一种可信访问认证处理方法、用户终端和服务端
EP2316097B1 (en) Protocol for device to station association
CN109413201B (zh) Ssl通信方法、装置及存储介质
EP2779524A1 (en) Secure data transmission method, device and system
CN109167802B (zh) 防止会话劫持的方法、服务器以及终端
RU2008114665A (ru) Защищенная обработка мандата клиентской системы для доступа к ресурсам на основе web
US10148636B2 (en) Authentication methods and apparatus
EP3182673A1 (en) Main stream connection establishment method and device based on mptcp
EP2993859B1 (en) Secure communication method
US20140237627A1 (en) Protecting data in a mobile environment
CN105656854B (zh) 一种验证无线局域网络用户来源的方法、设备及系统
JP5836188B2 (ja) 認証装置、認証方法、認証プログラム
JP2013134530A (ja) 認証システム、認証方法及び認証プログラム
EP4062616B1 (en) Configuring a target device
CN111711628B (zh) 网络通信身份认证方法、装置、系统、设备及存储介质
EP4356634A1 (en) Digest access authentication for a client device
CN117061140A (zh) 一种渗透防御方法和相关装置
CN113099443A (zh) 设备认证方法、装置、设备和系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140827

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150423

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151102

R150 Certificate of patent or registration of utility model

Ref document number: 5836188

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees