JP2018180911A - Authentication device, authentication program, and authentication method - Google Patents
Authentication device, authentication program, and authentication method Download PDFInfo
- Publication number
- JP2018180911A JP2018180911A JP2017079202A JP2017079202A JP2018180911A JP 2018180911 A JP2018180911 A JP 2018180911A JP 2017079202 A JP2017079202 A JP 2017079202A JP 2017079202 A JP2017079202 A JP 2017079202A JP 2018180911 A JP2018180911 A JP 2018180911A
- Authority
- JP
- Japan
- Prior art keywords
- password
- authentication
- storage unit
- value
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
Description
本発明は、認証装置、認証プログラム及び認証方法に関する。 The present invention relates to an authentication device, an authentication program, and an authentication method.
ユーザ名とパスワードの2つの文字列の組み合わせによる認証方法には、悪意を持った攻撃者がすべての文字列パターンを総当りで入力すると、膨大な時間がかかったとしてもいつかは必ず認証に成功してしまうという課題がある。 In the authentication method based on the combination of two strings of username and password, if a malicious attacker inputs all string patterns in a round-robin manner, authentication will always succeed even if it takes a huge amount of time. There is a problem that you
そこで、入力されたパスワードを解析して攻撃者による総当たり攻撃であるかどうかを判定し、攻撃者に対しては、不正なパスワード試行を何回か行わせた後、偽サーバにログインさせる技術が提案されている(例えば、特許文献1参照)。特許文献1では、総当たり攻撃かどうかの判別は、誤ったパスワードを入力したことでログインに失敗したときの回数をカウントすることにより行う。その際、正規のユーザが、間違いやすいパスワードを誤って入力したときには、ログインに失敗した回数にカウントしない処理を行う。
Therefore, this technology analyzes the input password to determine whether it is a brute force attack by an attacker, and makes the attacker log in to a fake server after having made several unauthorized password attempts. Has been proposed (see, for example, Patent Document 1). In
しかしながら、上記手法では、間違いやすいパスワードは、例えば隣のキー、大文字と小文字等、予め定義されている。よって、予め定義されたパスワードの誤り以外のパスワードの誤入力は、正規ユーザの行為とはみなされず、悪意を持った攻撃者の行為であると判定され、ログインに失敗した回数にカウントされる。よって、上記手法では、正規ユーザのパスワードによる認証を阻害する場合がある。 However, in the above method, a password that is easy to be mistaken is previously defined, for example, the next key, upper case, and lower case. Therefore, incorrect input of a password other than the error of the predefined password is not considered to be an act of a legitimate user, is determined to be an act of a malicious attacker, and is counted as the number of unsuccessful login attempts. Therefore, in the above method, authentication by the password of a legitimate user may be hindered.
そこで、1つの側面では、正規ユーザのパスワードによる認証を阻害せず、攻撃者のパスワードによる認証を阻止することを目的とする。 Therefore, in one aspect, it is an object of the present invention to prevent authentication by an attacker's password without disturbing authentication by an authorized user's password.
1つの実施態様では、正しいパスワードを受け付ける前に認証処理に失敗したパスワード又は該パスワードの対応値を所定個数記憶する記憶部に、新たに認証処理に失敗したパスワード又は該パスワードの対応値を記憶する際、該記憶部から消失するパスワード又は該パスワードの対応値の個数をカウントするカウント部と、前記カウントした値が所定個数以上である場合、正しいパスワードの入力を受け付けたときに認証処理に成功したと判定せずに、前記カウントした値をリセットする認証部と、を有する認証装置が提供される。 In one embodiment, a password for which authentication processing has failed anew or a corresponding value of the password is stored in a storage unit that stores a predetermined number of passwords for which authentication processing has failed before receiving a correct password or the corresponding value of the password. In the case where the password is lost from the storage unit or the counting unit for counting the number of corresponding values of the password, and when the counted value is equal to or more than the predetermined number, the authentication processing is successful when the input of the correct password is accepted. There is provided an authentication device including: an authentication unit that resets the counted value without determining that it is.
1つの側面では、本発明は、正規ユーザのパスワードによる認証を阻害せず、攻撃者のパスワードによる認証を阻止することができる。 In one aspect, the present invention can prevent authentication by an attacker's password without inhibiting authentication by a legitimate user's password.
以下、本発明の実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。 Hereinafter, embodiments of the present invention will be described with reference to the attached drawings. In the present specification and the drawings, components having substantially the same functional configuration are denoted by the same reference numerals and redundant description will be omitted.
[認証装置の機能構成]
まず、本発明の一実施形態に係る認証システム1の構成及び認証サーバ10の機能構成の一例について、図1を参照しながら説明する。図1は、一実施形態に係る認証システム1の構成及び認証サーバ10の機能構成の一例を示す。
[Functional configuration of authentication device]
First, an example of a configuration of an
本実施形態に係る認証システム1は、認証サーバ10及び端末装置20を有する。認証サーバ10と端末装置20とは、ネットワーク30を介して接続されている。ネットワーク30は、公衆ネットワーク、LAN(Local Area Network)等のネットワークであってもよい。
The
認証サーバ10は、端末装置20のログイン画面から入力されたユーザ名及びパスワードをネットワーク30を介して取得し、正しいユーザ名及びパスワードが入力されたか否かを判定する。認証サーバ10は、正しいユーザ名及びパスワードが入力されたと判定すると、認証処理の成功を端末装置20に通知し、端末装置20のログインを許可する。認証サーバ10は、認証装置の一例であり、認証機能と通信機能とを有する電子機器で構成され得る。認証サーバ10は、クラウド上のサーバであってもよい。
The
端末装置20は、PC(Personal Computer)、タブレット型端末、スマートフォン、PDA(Personal Digital Assistants)、携帯電話、HMD(Head Mount Display)、FMD(Face Mount Display)等のウェアラブルデバイスであってもよい。
The
なお、認証サーバ10の認証機能を端末装置20の内部に有してもよい。この場合、図2に示すように、端末装置20が、図1の認証サーバ10と同じ認証機能を有する。図2の端末装置20もまた、直接入力されたユーザ名及びパスワードが正しいかを判定し、正しい場合にはユーザにログインを許可する認証装置の一例である。
The authentication function of the
以下、本実施形態では、図1の認証サーバ10による認証機能及び動作を説明することで、同じ機能を有する図2の端末装置20の認証機能及び動作については説明を省略する。
Hereinafter, in the present embodiment, the authentication function and operation of the
[機能構成]
一実施形態に係る認証サーバ10の機能構成の一例について説明する。本実施形態に係る認証サーバ10は、入力受付部11、入力チェック部12、記憶部13、パスワード変換部14、カウント部15、認証部16及び制御部17を有する。
[Function configuration]
An example of a functional configuration of the
入力受付部11は、ネットワーク30を介して端末装置20からユーザ名及びパスワードを受け付ける。入力チェック部12は、受け付けたユーザ名が存在するか、またパスワードが正しいかを判定する。
The
パスワード変換部14は、入力されたパスワード文字列をハッシュ関数などを使って出現頻度記憶部132の記憶領域の大きさの範囲の数値に変換する。パスワード変換部14は、入力されたパスワードをハッシュ値以外の値に変換してもよい。ハッシュ関数の一例としては、与えられた入力に対して128ビットのハッシュ値を出力するMD5(エムディーファイブ、Message Digest Algorithm5)が挙げられる。
The
認証部16は、受け付けたユーザ名及びパスワードに基づき認証処理を行う。認証部16は、記憶部13に記憶されているユーザ毎のユーザ名文字列及びパスワード文字列135のうち、端末装置のシリアル番号等から特定されるユーザのユーザ名文字列及びパスワード文字列135と、受け付けたユーザ名及びパスワードとを比較する。ユーザ名文字列及びパスワード文字列135はユーザ毎に事前に登録されている。
The
認証部16は、比較の結果、ユーザ名及びパスワードが一致すると判定した場合、認証に成功したと判定し、ユーザ名及びパスワードが一致しないと判定した場合、認証に失敗したと判定する。ただし、総当たり攻撃と判定されている間は、正しいパスワードが入力されても、一度は認証に成功したと判定しない。
If it is determined that the user name and the password match as a result of the comparison, the
記憶部13は、ユーザ毎の記憶領域を有する。例えば、ユーザA用記憶部13aには、ユーザAのためのパスワード履歴記憶部131a、出現頻度記憶部132a、動作モードフラグ133a、認証状態フラグ134aを有する。ユーザB用記憶部13b及びユーザC用記憶部13cも同様に、上記2つの記憶部と2つのフラグを有する。
The
以下、ユーザA用記憶部13a、ユーザB用記憶部13b、ユーザC用記憶部13cを含むユーザ毎に設けられた記憶部のすべてを記憶部13と総称する。また、パスワード履歴記憶部131a、131b・・・をパスワード履歴記憶部131と総称する。また、出現頻度記憶部132a、132b・・・を出現頻度記憶部132と総称する。また、動作モードフラグ133a、133b・・・を動作モードフラグ133と総称する。また、認証状態フラグ134a、134b・・・を認証状態フラグ134と総称する。つまり、パスワード履歴記憶部131、出現頻度記憶部132、動作モードフラグ133及び認証状態フラグ134はユーザ毎にそれぞれ独立して確保される。各情報の記憶場所が確保されるユーザ数は、ユーザA,ユーザB、ユーザCの3人に限られず、1人であっても、2人以上であってもよい。
Hereinafter, all storage units provided for each user, including the storage unit for
パスワード履歴記憶部131は、ユーザが入力した所定個の直近のパスワード文字列をハッシュ化したハッシュ値を記憶する。図1はパスワード文字列をハッシュ化したハッシュ値の履歴の数を4個として記載しているが、特に4個に限定するものではない。
The password
出現頻度記憶部132は、入力されたパスワードのハッシュ値ごとにその入力の有無を示す情報を記憶する。本実施形態では、出現頻度記憶部132は、合計55個分の情報を記憶できる。しかしながら、出現頻度記憶部132は、特に55個に限定するものでなく、認証サーバ10の持つメモリや処理性能の許す範囲でなるべく大きな数の情報を記憶できるように設計することが望ましい。
The appearance
動作モードフラグ133は、総当り攻撃の兆候が検出された場合に動作モードを通常状態からブロック状態に変更したことを記憶するフラグである。動作モードフラグ133は、総当り攻撃を受けていないことを示す通常状態か、総当り攻撃を受けていることを示すブロック状態かのいずれかに設定される。
The
認証状態フラグ134は、正しいユーザ名及びパスワードが入力されて認証に成功したかどうかを記憶する。認証状態フラグ134は、認証に成功した状態を示す認証状態か、認証に失敗した状態又は認証前の状態を示す非認証かのいずれかに設定される。
The
カウント部15は、正しいパスワードを受け付ける前に認証処理に失敗したパスワード又はパスワードに対応するハッシュ値を記憶するパスワード履歴記憶部131に、新たに認証処理に失敗したパスワード又はハッシュ値を記憶する際、パスワード履歴記憶部131から追い出される(消失する)パスワード又はハッシュ値の個数をカウントする。ハッシュ値は、パスワードに対応するパスワードの対応値の一例である。
When storing the password or hash value for which the authentication process has failed anew in the password
例えば、ユーザA用記憶部13aのパスワード履歴記憶部131aには、最新、1つ前、2つ前、3つ前の認証処理に失敗した4つのハッシュ値が格納される。本実施形態では、パスワードの対応値としてハッシュ値が記憶される。しかしながら、パスワード履歴記憶部131aには、ハッシュ値が記憶される替わりにパスワード自体が記憶されてもよい。
For example, in the password
最新、1つ前、2つ前、3つ前の認証処理に失敗したハッシュ値が記憶されている場合、次に認証処理に失敗したハッシュ値をパスワード履歴記憶部131aに記憶させるためには、FIFO(First In First Out)により3つ前の認証処理に失敗したハッシュ値がパスワード履歴記憶部131aから追い出され、消失される。そして、格納されているハッシュ値を一つずつずらして最新の認証処理に失敗したハッシュ値を新たにパスワード履歴記憶部131aに記憶する。カウント部15は、パスワード履歴記憶部131aから消失されるハッシュ値の個数をカウントし、カウント値を得る。実際には、カウント部15は、出現頻度記憶部132の各ハッシュ値の領域の正の値の個数をカウントする。
In the case where a hash value that has failed in the latest, one previous, two previous, or three previous authentication processes is stored, in order to store in the password
認証部16は、正規ユーザに対する認証処理を行うとともに、攻撃者が端末装置20を利用して、すべての文字列パターンを総当りで入力する「総当たり攻撃」の判定を行う。認証部16は、出現頻度記憶部132の内容をチェックし、カウント部15がカウントした出現頻度記憶部132の正の領域の個数から攻撃の兆候を判断する。総当たり攻撃の判定では、認証部16は、カウント値が所定個数以上である場合、正しいパスワードの入力を受け付けたときに認証処理に成功した判定せずに、カウント値をリセットする。一方、認証部16、カウント値が所定個数未満である場合、正しいパスワードの入力を受け付けたときに認証処理に成功したと判定する。
The
制御部17は、認証サーバ10の全体を制御する。また、制御部17は、パスワード履歴記憶部131及び出現頻度記憶部132等の記憶部13へのデータ格納を制御する。なお、図2は機能に着目したブロック図を描いており、これらの機能ブロックで示した各部のソフトウエアを実行するプロセッサは、一例を図3に示すようにハードウェアである。
The
[ハードウェア構成]
次に、本実施形態に係る認証サーバ10のハードウェア構成について、図3を参照して説明する。図3は、本実施形態に係る認証サーバ10のハードウェア構成の一例を示す。認証サーバ10は、入力装置101、出力装置102、外部I/F103、RAM(Random Access Memory)104、ROM(Read Only Memory)105、CPU(Central Processing Unit)106、通信I/F107、及びHDD(Hard Disk Drive)108などを備え、それぞれがバスBで相互に接続されている。
[Hardware configuration]
Next, the hardware configuration of the
入力装置101は、キーボードやマウスなどを含み、認証サーバ10に各操作信号を入力するために用いられる。出力装置102は、LCD(Liquid crystal Display)モニタ等のディスプレイ、プリンタ、CRT(Cathode Ray Tube)などを含み、各種の処理結果を出力する。通信I/F107は、認証サーバ10をネットワークに接続するインターフェースである。これにより、認証サーバ10は、通信I/F107を介して、他の機器(端末装置20等)とデータ通信を行うことができる。
The
HDD108は、プログラムやデータを格納している不揮発性の記憶装置である。格納されるプログラムやデータには、認証サーバ10の全体を制御する基本ソフトウェア及びアプリケーションソフトウェアがある。例えば、HDD108には、各種のデータベースやプログラム等が格納されてもよい。
The
外部I/F103は、外部装置とのインターフェースである。外部装置には、記録媒体103aなどがある。これにより、認証サーバ10は、外部I/F103を介して記録媒体103aの読み取り及び/又は書き込みを行うことができる。記録媒体103aには、CD(Compact Disk)、及びDVD(Digital Versatile Disk)、ならびに、SDメモリカード(SD Memory card)やUSBメモリ(Universal Serial Bus memory)等がある。
The external I /
ROM105は、電源を切っても内部データを保持することができる不揮発性の半導体メモリである。ROM105には、ネットワーク設定等のプログラム及びデータが格納されている。RAM104は、認証プログラム等のプログラムやデータを一時保持する揮発性の半導体メモリである。CPU106は、HDD108やROM105などの記憶装置から、認証プログラム等のプログラムやデータをRAM104上に読み出し、処理を実行することで、装置全体の制御や搭載機能を実現する演算装置である。
The
かかる構成により、本実施形態に係る認証サーバ10では、CPU106が、例えばRAM104、ROM105、HDD108内に格納された認証プログラム及びデータを用いて初期化処理、認証処理及び攻撃判定処理を実行する。なお、パスワード履歴記憶部131、出現頻度記憶部132、動作モードフラグ133、認証状態フラグ134及び登録されたユーザ名文字列並びにパスワード文字列135の各情報は、RAM104、HDD108、又はネットワークを介して認証サーバ10に接続されるクラウド上のサーバ等に格納され得る。
With this configuration, in the
また、入力受付部11の機能は、例えば、入力装置101により実現可能である。入力チェック部12、パスワード変換部14、カウント部15、認証部16及び制御部17の機能は、例えば、認証プログラムがCPU106に実行させる処理により実現される。
Also, the function of the
[初期化処理]
次に、本実施形態に係る認証サーバ10の動作について説明する。まず、認証サーバ10が行う初期化処理の一例について、図4を参照して説明する。図4は、一実施形態に係る初期化処理の一例を示したフローチャートである。
[Initialization process]
Next, the operation of the
初期化処理が開始されると、制御部17は、記憶部13に記憶されている動作モードフラグ133の状態を「通常」に設定する(ステップS1)。次に、制御部17は、パスワード履歴記憶部131をすべて空にする(ステップS2)。次に、制御部17は、出現頻度記憶部132のすべての領域の値を0にする(ステップS3)。次に、制御部17は、認証状態フラグ134の状態を「非認証」に設定し(ステップS4)、本処理を終了する。以上のステップは、すべての登録ユーザに対して行われる。
When the initialization process is started, the
初期化処理が行われた結果、記憶部13の状態は、すべての登録ユーザに対して、図5に示すように、パスワード履歴記憶部131のすべてが空の状態になり、出現頻度記憶部132の55個の領域のすべてに「0」が設定される。また、動作モードフラグは、攻撃者のパスワードによる認証でない(正規者のパスワードによる認証である)ことを示す「通常」状態に設定される。認証状態フラグは、認証前の状態を示す「非認証」に設定される。
As a result of the initialization processing being performed, the state of the
[認証処理]
次に、認証サーバ10が行う認証処理の一例について、図6及び図7を参照して説明する。図6および図7は、一実施形態に係る認証処理の一例を示すフローチャートである。ユーザが、端末装置20のログイン画面からユーザ名とパスワードを入力すると、入力受付部11は、ユーザ名及びパスワードの入力を受け付け(ステップS10)、入力チェック部12に送る。
[Authentication process]
Next, an example of the authentication process performed by the
次に、入力チェック部12は、記憶部13を参照して、特定のユーザのユーザ名が登録されているかを判定する(ステップS12)。例えば、入力チェック部12は、ユーザ名及びパスワードと共に、端末装置20を特定する情報を取得し、該情報から特定のユーザを判別し、特定のユーザのユーザ名文字列とパスワード文字列135を参照して、ユーザ名が登録されているかを判定してもよい。端末装置20を特定する情報には、端末装置20に付与された装置のシリアル番号等を用いることができる。
Next, the
入力チェック部12は、記憶部13に登録された特定のユーザのユーザ名文字列と比較して一致しない場合、入力したユーザ名が登録されていないと判定し、本処理を終了する。一方、入力チェック部12は、特定のユーザのユーザ名文字列と一致する場合、入力したユーザ名が登録されていると判定し、パスワードが正しいかを判定する(ステップS14)。
If the
入力チェック部12は、特定のユーザのパスワード文字列と一致する場合、入力したパスワードは正しいと判定し、ステップS16に進む。入力チェック部12は、特定のユーザのパスワード文字列と一致しない場合、入力したパスワードは誤っていると判定し、図7の処理(ステップS30〜)に進む。
When the
ステップS30において、制御部17は、動作モードフラグ133が「通常」状態に設定されているかを判定する。制御部17は、動作モードフラグ133は「通常」状態に設定されていない場合、ステップS40に進む。制御部17は、動作モードフラグ133は「通常」状態に設定されている場合、ステップS32に進み、パスワード履歴記憶部131に以前に誤入力したパスワードのハッシュ値が記憶され、一杯であるかを判定する。制御部17は、パスワード履歴記憶部131が以前に誤入力したパスワードのハッシュ値で一杯でないと判定した場合、ステップS40に進む。
In step S30, the
ステップS40において、パスワード履歴記憶部131に記憶されているハッシュ値を古い方向の記憶領域に1つずつずらす。つまり、2つ前の領域に記憶されていたハッシュ値は3つ前の領域に1つずらし、1つ前の領域に記憶されていたハッシュ値は2つ前の領域に1つずらし、最新の領域に記憶されていたハッシュ値は1つ前の領域に1つずらして記憶される。
In step S40, the hash values stored in the password
次に、パスワード変換部14は、ハッシュ関数を用いて、誤って入力されたと判定されたパスワードのハッシュ値を算出し(ステップS42)、算出したハッシュ値をパスワード履歴記憶部131の最新の領域に記憶し(ステップS44)、本処理を終了する。
Next, the
このようにして、誤ったパスワードが入力されると、パスワード履歴記憶部131には、誤入力されたパスワードのハッシュ値が記憶される。例えば、正しいパスワードが"Himitsu"である場合に、最初に"himitsu"、次に"Himitu"と誤ってパスワードが入力された場合のパスワード履歴記憶部131の変化の一例を図8に示す。この場合、パスワード履歴記憶部131にはまだ空きが残っているため、図7のステップS32からステップS40〜S44の処理が行われ、ステップS34〜S38に示す処理は発生しない。
Thus, when an incorrect password is input, the password
なお、図8では、説明をわかりやすくするためにパスワードが文字列で表現されているが、実際はハッシュ値に変換されて記憶される。ただし、パスワード履歴記憶部131には、パスワードの文字列をそのまま記憶してもよい。
Although the password is expressed as a character string in FIG. 8 to make the description easy to understand, the password is actually converted to a hash value and stored. However, the password
パスワード変換部14が使用するハッシュ化アルゴリズムは特に限定しないが、本実施形態の例では、出現頻度記憶部132の領域が55個に設定されているため、パスワード変換部14で生成されるハッシュ値は0から54の値になるようにパスワードが変換される。例えば、パスワード変換部14は、パスワード文字列に含まれる各文字の文字コードを単純に加算した後、55で割った余りの値をハッシュ値に用いることができる。実際には入力された類似の文字列に対してもなるべくバラバラの値を取るような既存アルゴリズムが存在しており、パスワード変換部14は、それらのアルゴリズムでハッシュ値を算出することが望ましい。パスワード変換部14は、例えばパスワード文字列の文字毎にビットシフトを加える等の処理を施して、ビットシフト処理後のパスワードに対してハッシュ値を算出してもよい。
Although the hashing algorithm used by the
ユーザが2回連続してパスワードの入力を誤り、パスワード履歴記憶部131が図8の状態になった後に、正しいパスワードである"Himitsu"が入力されたとする。この場合、図6のステップS10〜S14の処理を行い、ステップS14において、入力チェック部12は正しいパスワードが入力されたと判定し、制御部17は、動作モードフラグ133が「通常」状態に設定されているかを判定する(ステップS16)。
It is assumed that the user enters a password incorrectly twice in succession, and after the password
制御部17は、動作モードフラグ133が「通常」状態に設定されていないと判定した場合、ステップS26に進む。制御部17は、動作モードフラグ133が「通常」状態に設定されていると判定した場合、認証状態フラグ134を、認証に成功したことを示す「認証」状態に設定する(ステップS18)。つまり、認証状態フラグ134は、今回入力されたパスワード"Himitsu"が正しいパスワードであると認証済みであることを示す。
If the
次に、制御部17は、パスワード履歴記憶部131に記憶されているハッシュ値に対応する出現頻度記憶部132の領域の値から1を減算する(ステップS20)。次に、制御部17は、ステップS20にて「−1」した出現頻度記憶部132の領域の値が下限値よりも小さくなった場合、下限値に設定し直す(ステップS22)。
Next, the
このように、認証状態フラグ134が認証済みに切り替わったタイミングで、パスワード履歴記憶部131に最大で4つの直近の誤りパスワードが蓄積されている場合は、それらのパスワードは正規ユーザが誤って入力しやすいパスワードと判定できる。よって、この場合、パスワード履歴記憶部131に記憶されているハッシュ値に対応する出現頻度記憶部132内の領域の値に「−1」を加算する。なお、後述するように、出現頻度記憶部132内の領域の正の値を持つ個数が所定個以上の場合、攻撃者によるパスワードの認証が行われていると判定される。
As described above, at the timing when the
制御部17は、図6のステップS20及びステップS22の処理を、パスワード履歴記憶部131に記憶されているハッシュ値の数だけ行った後、パスワード履歴記憶部131をすべて空にし(ステップS24)、本処理を終了する。
After performing the processes of step S20 and step S22 of FIG. 6 for the number of hash values stored in the password
本実施形態では、総当り攻撃による誤ったパスワードの入力と、正規ユーザの記憶違いやタイプミスと言った原因による誤ったパスワードの入力を、過去に入力されたパスワードとの類似性(バラツキ)で判別する。 In this embodiment, incorrect password input due to a brute force attack and incorrect password input due to a memory mistake or a typo of a legitimate user are caused by similarity (variation) with passwords input in the past. Determine.
そのために、パスワード履歴記憶部131と出現頻度記憶部132の2種の領域が用いられる。これらの2つの領域は、ユーザ毎に別々に用意される。パスワード履歴記憶部131は、入力されたパスワード文字列の直近の履歴を所定個数(本実施形態では、4つ)記憶しておく領域である。記憶する個数は固定数に限定されず、n(n≧1)個とする。この際、パスワード文字列をそのまま記憶するのではなくハッシュ関数を用いて数値化した値を記憶する。この仕組みにより正規ユーザが正しくパスワードを入力した時点で、パスワード履歴記憶部131に蓄積されている誤ったパスワードを正規ユーザが誤りやすいパスワードと判断することが可能となる。
For this purpose, two types of areas, password
例えば、ハッシュ関数を、各文字列の文字コードを単純に加算した後、55で割った余りとした場合、図8のパスワード履歴記憶部131に蓄積されている、正規ユーザが誤りやすいパスワードのハッシュ値は、以下のように算出される。
For example, if the hash function is simply added to the character code of each character string and then divided by 55, the hash of the password that is likely to cause an error for a legitimate user, stored in the password
"himitsu"=(0x68+0x69+0x6D+0x69+0x74+0x73+0x75)/55=1
"Himitu"=(0x48+0x69+0x6D+0x69+0x74+0x75)/55=19
この場合、出現頻度記憶部132の状態は図9のようになる。つまり、出現頻度記憶部132の領域の左上のマスをハッシュ値「0」に対応する領域と定義し、そこから1行目を右方向にハッシュ値「1」、「2」・・・に対応する領域としている。1行目の右上の「10」の次は2行目の左端がハッシュ値「11」に対応する領域になる。
"himitsu" = (0x68 + 0x69 + 0x6D + 0x69 + 0x74 + 0x73 + 0x75) / 55 = 1
"Himitu" = (0x48 + 0x69 + 0x6D + 0x69 + 0x74 + 0x75) / 55 = 19
In this case, the state of the appearance
よって、図6のステップS20の処理が実行されると、図9に示すように、正規ユーザが誤りやすいhimitsu"のパスワードのハッシュ値「1」に対応する領域と、"Himitu"のパスワードのハッシュ値「19」に対応する領域に「−1」が設定される。 Therefore, when the process of step S20 of FIG. 6 is executed, as shown in FIG. 9, the area corresponding to the hash value “1” of the password of the Himitsu password that is likely to be mistaken for the regular user and the hash of the password of “Himitu” "-1" is set in the area corresponding to the value "19".
ステップS22において、出現頻度記憶部132に設定することが可能な負の値に下限を設け、例えば下限値を「−3」に設定されると、出現頻度記憶部132に設定される値は−3よりも小さい値にはならないように制御される。下限値を設ける理由は、下限を設けないと、ユーザが同一の入力誤りを繰り返すたびに出現頻度記憶部132に設定される値が無制限に小さくなっていき、総当たり攻撃の判定の際に、いつまでも総当たり攻撃と判断されにくくなるためである。
In step S22, a lower limit is provided for negative values that can be set in the appearance
次に、4パターン「"aaa","aab","aac","AAA"」の誤ったパスワード文字列が入力された場合について説明する。上記4パターンのパスワードの入力では、正規ユーザが誤ってパスワードを入力したのか、総当たり攻撃の初回4回で入力されたパスワードであるのかの判断は難しい。この状態で、更にもう1つ間違ったパスワード"AAB"が入力されたとする。 Next, the case where an incorrect password string of four patterns “aaa”, “aab”, “aac”, “AAA” is input will be described. With the above four patterns of password input, it is difficult to determine whether the legitimate user has entered the password by mistake or the password entered in the first four rounds of the brute force attack. In this state, it is assumed that one more incorrect password "AAB" is input.
この場合、図6のステップS10〜S14の処理が実行され、ステップS14にて「No」と判定され、図7のステップS30、S32の処理が実行される。ステップS32にて、制御部17は、パスワード履歴記憶部131は一杯であると判定する。
In this case, the processes of steps S10 to S14 of FIG. 6 are executed, it is determined as "No" at step S14, and the processes of steps S30 and S32 of FIG. 7 are executed. In step S32, the
そこで、次に、制御部17は、パスワード履歴記憶部131の最も古いパスワードのハッシュ値に対して出現頻度記憶部132の対応する領域の値に1を加算する(ステップS34)。次に、制御部17は、加算した後の領域の値が、1よりも大きくなった場合、当該領域の値を1に設定する(ステップS36)。次に、制御部17は、攻撃判定処理を呼び出す(ステップS38)。呼び出された、図10に示す攻撃判定処理は、主に認証部16及びカウント部15により実行される。なお、図10の処理後、図7に戻り、ステップS40〜S44が処理される。
Therefore, next, the
この時点では、図11(a)に示すパスワード履歴記憶部131の3つ前の領域に記憶されていたパスワード"aaa"は、更にもう1つ間違ったパスワード"AAB"が入力された時点で、図11(b)に示すように、パスワード履歴記憶部131から消失される。このときに消失された(追い出された)"aaa"に対応する出現頻度記憶部132の対応領域の値が「+1」される。
At this point in time, the password "aaa" stored in the third area of the password
"aaa"のハッシュ値は、以下の計算により16となる。
"aaa"=(0x61+0x61+0x61)/55=16
このため、図11(c)に示すように、ハッシュ値16に対応する出現頻度記憶部132の領域が+1となる。なお、図11(a)及び図11(b)では、説明をわかりやすくするためにパスワードが文字列で表現されているが、実際はパスワード履歴記憶部131には、パスワードのハッシュ値が記憶される。
The hash value of "aaa" is 16 by the following calculation.
"aaa" = (0x61 + 0x61 + 0x61) / 55 = 16
Therefore, as shown in FIG. 11C, the area of the appearance
図11(c)に示す出現頻度記憶部132の状態で、図10の攻撃判定処理が開始されると、カウント部15は、出現頻度記憶部132の正の値を持つ領域の数を示す変数であるカウンタCに「0」を設定する(ステップS50)。
When the attack determination process of FIG. 10 is started in the state of the appearance
次に、認証部16は、出現頻度記憶部132の領域の位置を示す変数Nの値に「0」を設定する(ステップS52)。「0」の変数Nは、図11(c)の出現頻度記憶部132の先頭の位置、つまり、左上の位置を示す。
Next, the
次に、認証部16は、出現頻度記憶部132のN番目が正の値かを判定する(ステップS54)。認証部16は、出現頻度記憶部132のN番目が正の値でないと判定した場合、そのままステップS58に進む。一方、認証部16は、出現頻度記憶部132のN番目が正の値であると判定した場合、カウント部15は、カウンタCに「1」を加算し(ステップS56)、ステップS58に進む。
Next, the
ステップS58において、認証部16は、変数Nに「1」を加算し、出現頻度記憶部132の領域を次の領域であるN番目に変更する(ステップS58)。次に、認証部16は、出現頻度記憶部132の領域の最後までチェックしたかを判定する(ステップS60)。例えば、認証部16は、Nの値が55になった場合には「Yes」と判定し、Nの値が55未満である場合には「No」と判定する。認証部16は、出現頻度記憶部132の領域の最後までチェックしていないと判定した場合、ステップS54に戻り、出現頻度記憶部132のN番目が正の値かを判定する。つまり、出現頻度記憶部132の先頭(0番目)の領域から最後の領域(54番目)まで各領域が正の値かをチェックするまで、ステップS54〜S60が繰り返される。ステップS60において、認証部16は、出現頻度記憶部132の最後の領域までチェックしたと判定すると、カウンタCの数が、所定個数以上かを判定する(ステップS62)。予め所定個数は10に設定されているとすると、例えば、図11(c)の場合、カウンタCの数は1である。よって、ステップS62において、認証部16は、カウンタCの数が10未満であると判定し、総当たりの攻撃は生じていないと判断して、本処理を終了する。
In step S58, the
更に3回間違ったパスワードが入力されると、パスワード履歴記憶部131から消失される、以下の各パスワードのハッシュ値に該当する箇所が1加算される。
"aab"=(0x61+0x61+0x62)/55=17
"aac"=(0x61+0x61+0x63)/55=18
"AAA"=(0x41+0x41+0x41)/55=30
このとき、図6のステップS10〜S14、図7のステップS30〜S38の処理が時移行され、ステップS38にて呼び出された図10に示す攻撃判定処理において、カウント部15は、出現頻度記憶部132が正の値の領域の数をカウントCにカウントする。
Further, when the wrong password is input three times, the places corresponding to the following hash values of the password which are erased from the password
"aab" = (0x61 + 0x61 + 0x62) / 55 = 17
"aac" = (0x61 + 0x61 + 0x63) / 55 = 18
"AAA" = (0x41 + 0x41 + 0x41) / 55 = 30
At this time, the processing of steps S10 to S14 of FIG. 6 and steps S30 to S38 of FIG. 7 are shifted to the time, and in the attack determination processing shown in FIG. The count C counts the number of areas having a
図12(a)には "aab"、"aac"、"AAA"の各パスワードのハッシュ値に該当する箇所が1加算された結果の出現頻度記憶部132の状態が示されている。この場合、カウントCには4が設定される。この場合、図10のステップS62において、認証部16は、カウンタCの数が10未満であると判定し、総当たり攻撃は生じていないと判断して、本処理を終了する。
FIG. 12A shows the state of the appearance
カウント部15は、出現頻度記憶部132が更新されるたびに、その中で正の値の領域の数をカウントし、認証部16は、それが所定個数(本実施形態では10箇所)を超えると、総当り攻撃が発生したと判定する(ステップS62)。そして、認証部16は、動作モードフラグ133を「通常」状態から「ブロック」状態に変更する(ステップS64)。
Every time the appearance
例えば、図12(b)に示す出現頻度記憶部132では、カウントCには10が設定される。この場合、図10のステップS62において、カウント部15は、カウンタCの数が10以上であると判定し、認証部16は、総当たり攻撃が発生したと判定する。この判定結果により、動作モードフラグ133が、「通常」状態から「ブロック」状態に変更される。動作モードフラグ133が「ブロック」状態になっている場合、「攻撃者のパスワードによる認証が行われている」ことを示す。
For example, in the appearance
このように、本実施形態では、誤ったパスワードが連続して入力された場合、出現頻度記憶部132は、パスワード履歴記憶部131から追い出された(消失された)パスワードを数値化したハッシュ値に対する入力の頻度を負の値で記憶し、正規者が誤入力しやすいパスワードとして記憶しておく。また、総当たり攻撃の場合、入力されるパスワードは毎回異なるものとなるため、パスワードを数値化したハッシュ値もバラバラな値を取る可能性が非常に高くなる。よって、総当たり攻撃を受けたと予測される出現頻度記憶部132の正の値の領域が示すように、所定個数以上の領域にわたって多様なハッシュ値が蓄積されている場合にこれを総当たり攻撃の兆候と捉えることが可能となる。
As described above, in the present embodiment, when erroneous passwords are continuously input, the appearance
また、本実施形態では、出現頻度記憶部132を利用して総当たり攻撃の兆候を捉えたことを記憶し、動作モードを切り替えるための動作モードフラグ133(記憶域)がユーザ毎に用意されている。総当たり攻撃を受けると動作モードフラグ133が通常状態からブロック状態に切り替わり、この状態では正しいパスワードが入力されても認証を通さない動作とする。
Further, in the present embodiment, the appearance
つまり、動作モードフラグ133がブロック状態のときに正しいパスワードが入力された場合、図6のステップS10〜S16の処理が実行され、ステップS16にて「No」と判定される。この場合、認証部16は、動作モードフラグ133を「通常」状態に設定する(ステップS26)。次に、認証部16は、出現頻度記憶部132をすべてチェックし、値が正の領域を「0」に設定する(ステップS28)。これにより、出現頻度記憶部132の正の値の領域の数により総当たり攻撃を受けている状態をカウントしていたカウント値がリセットされる。なお、制御部17は、パスワード履歴記憶部131をすべて空にし(ステップS24)、本処理が終了する。
That is, when the correct password is input when the
これにより、総当たり攻撃中に正しいパスワードが一度入力されても、動作モードフラグ133が「ブロック」状態から「通常」状態に切り替わる動作が行われるのみで認証を成功させない。このため、総当たり攻撃中の正しいパスワードの入力に対して認証が通り、パスワードが漏えいすることを防止できる。かかる仕組みでは、動作モードフラグ133がブロック状態のときに正規ユーザが正しいパスワードを入力しても認証に成功しないが、正規ユーザの場合は認証に失敗するとユーザ名やパスワードの入力ミスを疑って、再度正しいパスワードを入力する。その際、正規ユーザは認証に成功するため、正規ユーザが再度正しいパスワードを入力しても認証に成功しないという不都合は生じない。
As a result, even if the correct password is inputted once during the brute force attack, the
一方、総当たり攻撃の場合には、その性質上、総当たり攻撃中にたまたま正しいパスワードを入力して認証に成功しなかった後に、再度正しいパスワードを入力する可能性は極めて低い。以上から、本実施形態に係る認証処理及び攻撃判定処理によれば、正規ユーザのパスワードによる認証を阻害せず、攻撃者のパスワードによる認証を阻止することができる。 On the other hand, in the case of a brute force attack, by its nature, it is extremely unlikely that the correct password will be entered again after accidentally entering the correct password and failing in authentication during the brute force attack. From the above, according to the authentication process and the attack determination process according to the present embodiment, it is possible to prevent the authentication by the password of the attacker without inhibiting the authentication by the password of the authorized user.
動作モードフラグ133は、攻撃者のパスワードによる認証か否かを示す動作モード情報の一例であり、通常状態又ブロック状態に設定される。通常状態は、攻撃者のパスワードによる認証でないことを示す第1モードの状態であり、ブロック状態は、攻撃者のパスワードによる認証であることを示す第2モードの状態である。
The
なお、本実施形態では、攻撃者のパスワードによる認証の一例として、総当たり攻撃を例に挙げて説明しているが、攻撃者のパスワードによる認証には、辞書攻撃を含む。パスワードが完全にランダムな文字列では利用者の記憶や入力が困難なため、既存の単語をベースにパスワードを設定することが多い。その場合、攻撃者は総当りではなく、既存単語の辞書に従って作成されたパスワードを優先的に入力することで、総当りに比べてはるかに少ない試行回数で認証に成功する可能性がある。この手法を用いた攻撃者のパスワードによる認証を辞書攻撃と呼ぶ。 In the present embodiment, a brute force attack is described as an example of authentication using an attacker's password, but authentication using an attacker's password includes a dictionary attack. Since a password whose password is completely random is difficult for the user to memorize and input, a password is often set based on existing words. In such a case, an attacker may succeed in authentication with a much smaller number of attempts than brute force by preferentially inputting a password created according to a dictionary of existing words instead of brute force. Authentication using an attacker's password using this method is called a dictionary attack.
以上に説明したように、本実施形態では、ユーザがパスワードを入力するたびに、そのパスワードはハッシュ化されてパスワード履歴記憶部131に蓄積される。入力パスワードの履歴が蓄積された状態で正しいパスワードが入力された場合は、パスワード履歴記憶部131に記憶している最大n個のパスワードは正規ユーザが間違えて入力したパスワードと判断し、出現頻度記憶部132に「負」の値を加算する形で記憶していく。
As described above, in the present embodiment, each time the user inputs a password, the password is hashed and accumulated in the password
正しいパスワードが入力されずに、誤ったパスワード入力が続く場合、パスワード履歴記憶部131の蓄積可能な数を超えて追い出されたパスワードのハッシュ値は、出現頻度記憶部132に「正」の値を加算する形で記憶していく。
If an incorrect password entry continues without entering a correct password, the hash value of the password evicted beyond the storable number in the password
パスワードが入力されるたびに、出現頻度記憶部132の中で「正」の値を持つ領域の数をチェックし、その数があらかじめ決められた所定個数を超えると総当り攻撃の兆候と判断して、認証部16は、認証をブロックする状態に動作モードフラグ133を切り替える。総当たり攻撃が続くと、いずれは正しいパスワードが入力されるが、ブロック状態では、たとえ正しいパスワードが入力されても認証失敗と処理されるため認証は成功しない。
Every time a password is input, the number of regions having a “positive” value is checked in the appearance
ブロック状態になると、その後は誤ったパスワードが入力されても出現頻度記憶部132の更新は不要となる。その後も総当り攻撃が続いて、いずれは正しいパスワードを入力される可能性があるが、正しいパスワードが入力されても、動作モードフラグ133がブロック状態であれば認証失敗となる。このため総当たり攻撃により正しいパスワードが入力されても、不正に認証されてパスワードが漏えいすることを防止できる。
Once in the blocked state, updating of the appearance
ブロック状態で一度正しいパスワードが入力されると、動作モードフラグ133は通常状態に戻される。その際、出現頻度記憶部132のうち、値が「+1」以上の箇所は値を「0」に戻す。総当り攻撃がその後も続いた場合でも、一度正しいパスワードに対して認証失敗を応答しているため、総当り攻撃では再度正しいパスワードは入力されない。よって、一度入力された正しいパスワードと同じパスワードによるアタックは行われず、セキュリティは守られる。また、総当たり攻撃が続くと、出現頻度記憶部132の領域を一度「0」に戻した後でもすぐに「+1」以上の領域が増えて再びブロック状態となる。
Once the correct password is entered in the blocked state, the
以上、本実施形態では、ユーザ名とパスワードの2つの文字列で管理される認証システム1において、総当り攻撃などの手法による端末装置20の不正利用やアカウント情報の漏洩を防止する仕組みを実現することができる。
As described above, in the present embodiment, in the
本実施形態では、ユーザ名ごとに過去に入力された直近の複数回のパスワード文字列をハッシュ関数で数値化したハッシュ値がパスワード履歴記憶部131に蓄積される。また、過去の誤った入力パスワードの出現頻度が、ハッシュ値毎に記録する出現頻度記憶部132を使って分析される。これにより、総当り攻撃、辞書攻撃の兆候が見られた場合には正しいユーザ名、パスワードが入力されても認証成功させないようにガードすることができる。加えて、本実施形態では、正規ユーザの入力誤りや記憶違いによる誤ったパスワード入力については、出現頻度記憶部132に「負」の値を加算する形で記憶することで、総当たり攻撃とみなされにくい仕組みを実現する。
In the present embodiment, the password
以上により、認証システム1では、正規ユーザのパスワードによる認証を阻害せず、攻撃者のパスワードによる認証を阻止することができる。
As described above, the
[変形例]
次に、一実施形態の変形例に係る認証サーバ10の構成について、図13を参照しながら説明する。図13は、一実施形態の変形例に係る認証サーバ10の機能構成の一例を示す。
[Modification]
Next, the configuration of the
多くの場合、攻撃者は手入力でデタラメな文字列を入力するのではなく、特定のプログラムアルゴリズムによって生成した文字列や単語辞書を参照して生成した文字列を順番に自動的に入力する。従って、攻撃者が同一の攻撃プログラムを利用して一つの端末装置20の複数のユーザや、異なる端末装置20に対して総当り攻撃を実施すると、出現頻度記憶部132に記憶される「正」の値の領域や出現順序はほぼ同じになると考えられる。
In many cases, an attacker does not manually input a messy string, but automatically sequentially inputs a string generated with reference to a string generated by a particular program algorithm or a word dictionary. Therefore, when an attacker performs a brute-force attack on a plurality of users of one
上記実施形態では10箇所の出現頻度をカウントした際に総当り攻撃の兆候と判断した。本変形例では、その判断をした時点での出現頻度記憶部132の情報を他システムや他ユーザでも共有することで、他ユーザでも同一の発生パターンと判断した場合は10箇所より最大で2倍早い段階で総当り攻撃と判断することが可能となる。
In the above embodiment, when the frequency of appearance at ten places is counted, it is judged as a sign of a total hit attack. In this modification, the information of the appearance
そこで、図13の変形例に係る認証サーバ10では、出現頻度記憶部132の情報を他ユーザや他装置で共有できる仕組みを実現する。これにより、総当たり攻撃の兆候を通常より早い段階で捉えることができ、偶然に早い段階での攻撃で正しいパスワードが入力された場合にもパスワードが漏えいするリスクを低減できる。つまり、ブロック状態に推移する前に攻撃者により偶然に早い段階で正しいパスワードが入力されてしまったときにパスワードが漏えいする可能性を下げることができる。
Therefore, the
具体的には、図13に示す一実施形態の変形例に係る認証サーバ10は、図1に示した一実施形態に係る認証サーバ10に対して、出現頻度共有記憶部200が追加されている点のみが異なる。出現頻度共有記憶部200は、ユーザ毎の出現頻度記憶部132と同じ構造であり、いずれかのユーザで総当たり攻撃の兆候が検出された際に、その中身がコピーされ、他ユーザでの攻撃判定実施の際にコピーした出現頻度記憶部132が参照可能となる。出現頻度共有記憶部200には、1つ又は複数の出現頻度記憶部132のデータがコピーされ得る。
Specifically, in the
図14は、一実施形態の変形例に係る出現頻度記憶部132及び出現頻度共有記憶部200の状態の一例を示す。ここでは、ユーザAの端末装置20に対する攻撃の兆候を、ユーザB用の端末装置との間で共有する場合の例を示す。
FIG. 14 illustrates an example of the states of the appearance
攻撃が行われていない状態では、ユーザA用記憶部13aの図14(a)に示す出現頻度記憶部132aと、ユーザB用記憶部13bの図14(b)に示す出現頻度記憶部132bとは、各ユーザの過去の入力誤り等で異なる状態になっている。また、図14(c)に一例を示す出現頻度共有記憶部200は初期状態で何も記憶されていない。
In a state where an attack is not performed, an appearance
攻撃者がユーザAに対して総当たり攻撃を仕掛けてきた際、出現頻度記憶部132aにおいて総当たり攻撃の兆候を検出したら、検出したタイミングでユーザAの出現頻度記憶部132aを出現頻度共有記憶部200に保存しておく。図15には、出現頻度記憶部132aの正の領域が10カ所以上になり、総当たり攻撃と判定されたため、図15(a)の出現頻度記憶部132aのデータを、図15(c)の出現頻度共有記憶部200にコピーした状態が示されている。
When an attacker has launched a brute force attack on user A, if the appearance
出現頻度共有記憶部200にデータが格納されているとき、認証部16は出現頻度記憶部132と出現頻度共有記憶部200の2つを参照して判定を行う。図16は、一実施形態の変形例に係る攻撃判定処理の一例を示すフローチャートである。本変形例において、図16の攻撃判定処理は、図7のステップS38にて呼び出される図10の攻撃判定処理の替わりに呼び出される。なお、図16の攻撃判定処理では、図10の攻撃判定処理と同一の処理を行うステップには、図10のステップ番号と同一ステップ番号を付すことにより、説明を簡略化する。
When data is stored in the appearance frequency shared
また、ここでは、ユーザAのログイン操作に対して図16のフローチャートを用いて、変形例に係る攻撃判定処理を説明し、ユーザB及びその他のユーザのログイン操作に対する攻撃判定処理についてはユーザAの場合と同じ処理であるため、説明を省略する。 Here, the attack determination process according to the modification is described using the flowchart of FIG. 16 for the login operation of user A, and the attack determination process for login operations of user B and other users is described by user A's. Since the process is the same as in the case, the description is omitted.
図16の処理が開始されると、ステップS50〜S56の処理が実行される。ステップS54において、認証部16は、出現頻度記憶部132のN番目が正の値かを判定する。認証部16は、出現頻度記憶部132のN番目が正の値でないと判定した場合、そのままステップS78に進む。一方、認証部16は、出現頻度記憶部132のN番目が正の値であると判定した場合、カウント部15は、カウンタCに「1」を加算し(ステップS56)、ステップS78に進む。
When the process of FIG. 16 is started, the processes of steps S50 to S56 are performed. In step S54, the
ステップS78において、認証部16は、出現頻度共有記憶部200のN番目が正の値かを判定する。認証部16は、出現頻度共有記憶部200のN番目が正の値でないと判定した場合、ステップS58に進む。一方、認証部16は、出現頻度共有記憶部200のN番目が正の値であると判定した場合、カウント部15は、カウンタCに「1」を加算し(ステップS80)、ステップS58に進む。
In step S78, the
ステップS58において、認証部16は、変数Nに「1」を加算し、出現頻度記憶部132の領域を次の領域であるN番目に変更する。次に、認証部16は、出現頻度記憶部132の領域の最後までチェックしたかを判定する(ステップS60)。例えば、認証部16は、Nの値が55になった場合には「Yes」と判定し、Nの値が55未満である場合には「No」と判定する。認証部16は、出現頻度記憶部132の領域の最後までチェックしていないと判定した場合、ステップS54に戻り、出現頻度記憶部132のN番目が正の値かを判定する。つまり、出現頻度記憶部132の先頭(0番目)の領域から最後の領域(54番目)までチェックするまで、ステップS54、S56,S78、S80、S58,S60の処理が繰り返される。ステップS60において、認証部16は、領域の最後までチェックしたと判定すると、カウンタCの数が、所定個数以上かを判定する(ステップS62)。
In step S58, the
例えば、図17(a)に示す出現頻度記憶部132a及び図17(c)に示す出現頻度共有記憶部200の正の値の領域が一致する数をカウントすると、カウンタCの数は20である。所定個数が10であるとすると、ステップS62において、認証部16は、カウンタCの数が所定個数以上であると判定し、総当たりの攻撃がされていると判断して、動作モードフラグ133を「ブロック」状態に設定し(ステップS64)、本処理を終了する。
For example, counting the number of matching areas of the appearance
以上に説明したように、一実施形態の変形例に係る攻撃判定処理では、出現頻度共有記憶部200にデータが存在し、ユーザ毎の出現頻度記憶部132と出現頻度共有記憶部200の両者で同一箇所が「正」になっている場合は、カウンタCの加算数が2倍になる。これにより、同じ総当たり攻撃を受けた際のカウントの増加が最大で通常の2倍になり、各ユーザが単独で出現頻度記憶部132の「正」の値の領域の個数を検出するよりも最大で2倍早い時点で総当り攻撃の兆候を捕らえることができる。
As described above, in the attack determination process according to the modification of the embodiment, data is present in the appearance frequency sharing
また、上記の説明では出現頻度共有記憶部200は1個としているが、これを複数用意し、複数ユーザで総当たり攻撃の兆候を検出し、その出現パターンが異なる場合はそれぞれのコピーを用いてもよい。また、単独のユーザでも複数回の攻撃の兆候を捕えたならその都度コピーを保存してもよい。出現頻度共有記憶部200が複数存在する場合は、認証部16は、その判定を出現頻度共有記憶部200の個数分だけ繰り返すことになる。
Further, although the appearance frequency sharing
一実施形態の変形例に係る認証サーバ10によれば、一のユーザの出現頻度記憶部132のデータを認証サーバ10の出現頻度共有記憶部200に転送し、他のユーザへの総当たり攻撃を判定する際に用いることができる。また、転送される出現頻度記憶部132には、ユーザが入力した正しいパスワードや誤ったパスワードの履歴の直接の文字列が含まれないため、共有の際にパスワードが漏えいする危険性が少ないという特長がある。
According to the
以上、一実施形態に係る認証サーバ10及びその変形例に係る認証サーバ10について説明した。本実施形態及びその変形例に係る認証サーバ10によれば、総当り攻撃及び辞書攻撃でのパスワード漏洩を防止できるため、ユーザは複雑なパスワードの設定ルールを強いられることなく、利用しやすいパスワードを設定することができる。
In the above, the
また、普段から入力誤りをしやすいパスワードについては、パスワード履歴記憶部131を用いて記憶し、誤ったパスワードの入力頻度によって出現頻度記憶部132に「負」の重み付けがなされるため、すぐに総当り攻撃と判断されない。よって、所定回数パスワードを間違えるとアカウントがロックされるといった短所が発生しない。
Also, since passwords that are prone to input errors are stored using the password
また、パスワード文字列の攻撃判定や過去入力パスワードの記憶にはハッシュ化した数値を用いるため、システム内部に入力文字列そのものを記憶する必要がない。これにより処理の高速化、必要とするメモリ量の削減、セキュリティの向上といった効果が得られる。 In addition, since the hashed numerical value is used for the attack determination of the password string and storage of the past input password, there is no need to store the input string itself inside the system. As a result, the processing speed can be increased, the required amount of memory can be reduced, and the security can be improved.
以上、認証装置、認証プログラム及び認証方法を上記実施形態により説明したが、本発明に係る認証装置、認証プログラム及び認証方法は上記実施形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。また、上記実施形態及び変形例が複数存在する場合、矛盾しない範囲で組み合わせることができる。 The authentication apparatus, the authentication program, and the authentication method have been described above according to the above embodiments, but the authentication apparatus, the authentication program, and the authentication method according to the present invention are not limited to the above embodiments, and various modifications are possible within the scope of the present invention Variations and improvements are possible. Moreover, when there exist two or more said embodiment and modification, it can combine in the not inconsistent range.
以上の説明に関し、更に以下の項を開示する。
(付記1)
正しいパスワードを受け付ける前に認証処理に失敗したパスワード又は該パスワードの対応値を所定個数記憶する記憶部に、新たに認証処理に失敗したパスワード又は該パスワードの対応値を記憶する際、該記憶部から消失するパスワード又は該パスワードの対応値の個数をカウントするカウント部と、
前記カウントした値が所定個数以上である場合、正しいパスワードの入力を受け付けたときに認証処理に成功したと判定せずに、前記カウントした値をリセットする認証部と、
を有する認証装置。
(付記2)
前記認証部は、前記カウントした値が所定個数未満である場合、正しいパスワードの入力を受け付けたときに認証処理に成功したと判定する、
付記1に記載の認証装置。
(付記3)
前記認証部は、前記カウントした値が所定個数以上である場合、動作モード情報を、攻撃者のパスワードによる認証でないことを示す第1モードから、攻撃者のパスワードによる認証であることを示す第2モードに切り替え、
前記カウントした値が所定個数以上である場合、正しいパスワードの入力を受け付けたときに、動作モード情報を前記第1モードに切り替え、
前記カウント部は、前記第2モードの状態において前記記憶部から消失するパスワード又は該パスワードの対応値が、前記第1モードの状態において前記記憶部から消失するパスワード又は該パスワードの対応値と同じ値の場合、少なくとも一回は前記カウントする個数から除外する、
付記1又は2に記載の認証装置。
(付記4)
正しいパスワードを受け付ける前に認証処理に失敗したパスワード又は該パスワードの対応値を所定個数記憶する記憶部に、新たに認証処理に失敗したパスワード又は該パスワードの対応値を記憶する際、該記憶部から消失するパスワード又は該パスワードの対応値の個数をカウントする処理と、
前記カウントした値が所定個数以上である場合、正しいパスワードの入力を受け付けたときに認証処理に成功したと判定せずに、前記カウントした値をリセットする処理と、
をコンピュータに実行させるための認証プログラム。
(付記5)
前記カウントした値が所定個数未満である場合、正しいパスワードの入力を受け付けたときに認証処理に成功したと判定する、
付記4に記載の認証プログラム。
(付記6)
前記カウントした値が所定個数以上である場合、動作モード情報を、攻撃者のパスワードによる認証でないことを示す第1モードから、攻撃者のパスワードによる認証であることを示す第2モードに切り替え、
前記カウントした値が所定個数以上である場合、正しいパスワードの入力を受け付けたときに、動作モード情報を前記第1モードに切り替え、
前記第2モードの状態において前記記憶部から消失するパスワード又は該パスワードの対応値が、前記第1モードの状態において前記記憶部から消失するパスワード又は該パスワードの対応値と同じ値の場合、少なくとも一回は前記カウントする個数から除外する、
付記4又は5に記載の認証プログラム。
(付記7)
正しいパスワードを受け付ける前に認証処理に失敗したパスワード又は該パスワードの対応値を所定個数記憶する記憶部に、新たに認証処理に失敗したパスワード又は該パスワードの対応値を記憶する際、該記憶部から消失するパスワード又は該パスワードの対応値の個数をカウントし、
前記カウントした値が所定個数以上である場合、正しいパスワードの入力を受け付けたときに認証処理に成功したと判定せずに、前記カウントした値をリセットする、
ことをコンピュータが実行する認証方法。
(付記8)
前記カウントした値が所定個数未満である場合、正しいパスワードの入力を受け付けたときに認証処理に成功したと判定する、
付記7に記載の認証方法。
(付記9)
前記カウントした値が所定個数以上である場合、動作モード情報を、攻撃者のパスワードによる認証でないことを示す第1モードから、攻撃者のパスワードによる認証であることを示す第2モードに切り替え、
前記カウントした値が所定個数以上である場合、正しいパスワードの入力を受け付けたときに、動作モード情報を前記第1モードに切り替え、
前記第2モードの状態において前記記憶部から消失するパスワード又は該パスワードの対応値が、前記第1モードの状態において前記記憶部から消失するパスワード又は該パスワードの対応値と同じ値の場合、少なくとも一回は前記カウントする個数から除外する、
付記7又は8に記載の認証方法。
The following sections will be further disclosed regarding the above description.
(Supplementary Note 1)
When storing a password for which authentication processing has failed anew or a corresponding value of the password in a storage unit for storing a predetermined number of passwords for which authentication processing has failed before receiving a correct password or the corresponding value of the password A counting unit that counts the number of lost passwords or corresponding values of the passwords;
An authentication unit that resets the counted value without determining that the authentication processing is successful when the input of the correct password is accepted when the counted value is equal to or greater than a predetermined number;
An authentication device having
(Supplementary Note 2)
The authentication unit determines that the authentication processing is successful when the input of the correct password is accepted when the counted value is less than a predetermined number.
The authentication device according to
(Supplementary Note 3)
If the counted value is equal to or more than a predetermined number, the authentication unit indicates that the operation mode information is an authentication by a password of an attacker from a first mode indicating that authentication by the password of the attacker is not performed. Switch to mode
When the counted value is equal to or more than a predetermined number, operation mode information is switched to the first mode when an input of a correct password is accepted,
The counting unit is the same as the password or the corresponding value of the password that disappears from the storage unit in the first mode state or the password that disappears from the storage unit in the second mode state. In the case of, excluding at least once from the counted number,
The authentication device according to
(Supplementary Note 4)
When storing a password for which authentication processing has failed anew or a corresponding value of the password in a storage unit for storing a predetermined number of passwords for which authentication processing has failed before receiving a correct password or the corresponding value of the password A process of counting the number of lost passwords or corresponding values of the passwords;
A process of resetting the counted value without determining that the authentication process is successful when the input of a correct password is accepted when the counted value is equal to or greater than a predetermined number;
An authentication program to make a computer run.
(Supplementary Note 5)
If the counted value is less than a predetermined number, it is determined that the authentication process has succeeded when the input of the correct password is accepted.
The certification program described in
(Supplementary Note 6)
When the counted value is equal to or more than a predetermined number, the operation mode information is switched from a first mode indicating that the authentication is not based on the password of the attacker to a second mode indicating that the authentication is based on the password of the attacker;
When the counted value is equal to or more than a predetermined number, operation mode information is switched to the first mode when an input of a correct password is accepted,
If at least one of the password or the corresponding value of the password lost from the storage unit in the second mode state has the same value as the password or the corresponding value of the password lost from the storage unit in the first mode state, Times are excluded from the counted number,
The authentication program according to
(Appendix 7)
When storing a password for which authentication processing has failed anew or a corresponding value of the password in a storage unit for storing a predetermined number of passwords for which authentication processing has failed before receiving a correct password or the corresponding value of the password Count the number of lost passwords or their corresponding values,
When the counted value is equal to or more than the predetermined number, when the input of the correct password is accepted, the counted value is reset without determining that the authentication process is successful.
An authentication method that a computer performs.
(Supplementary Note 8)
If the counted value is less than a predetermined number, it is determined that the authentication process has succeeded when the input of the correct password is accepted.
The authentication method according to
(Appendix 9)
When the counted value is equal to or more than a predetermined number, the operation mode information is switched from a first mode indicating that the authentication is not based on the password of the attacker to a second mode indicating that the authentication is based on the password of the attacker;
When the counted value is equal to or more than a predetermined number, operation mode information is switched to the first mode when an input of a correct password is accepted,
If at least one of the password or the corresponding value of the password lost from the storage unit in the second mode state has the same value as the password or the corresponding value of the password lost from the storage unit in the first mode state, Times are excluded from the counted number,
The authentication method according to
1 認証システム
10 認証サーバ
11 入力受付部
12 入力チェック部
13 記憶部
13a ユーザA用記憶部
14 パスワード変換部
15 カウント部
16 認証部
17 制御部
20 端末装置
30 ネットワーク
131a、131 パスワード履歴記憶部
132a、132 出現頻度記憶部
133a、133 動作モードフラグ
134a、134 認証状態フラグ
Claims (5)
前記カウントした値が所定個数以上である場合、正しいパスワードの入力を受け付けたときに認証処理に成功したと判定せずに、前記カウントした値をリセットする認証部と、
を有する認証装置。 When storing a password for which authentication processing has failed anew or a corresponding value of the password in a storage unit for storing a predetermined number of passwords for which authentication processing has failed before receiving a correct password or the corresponding value of the password A counting unit that counts the number of lost passwords or corresponding values of the passwords;
An authentication unit that resets the counted value without determining that the authentication processing is successful when the input of the correct password is accepted when the counted value is equal to or greater than a predetermined number;
An authentication device having
請求項1に記載の認証装置。 The authentication unit determines that the authentication processing is successful when the input of the correct password is accepted when the counted value is less than a predetermined number.
The authentication device according to claim 1.
前記カウントした値が所定個数以上である場合、正しいパスワードの入力を受け付けたときに、動作モード情報を前記第1モードに切り替え、
前記カウント部は、前記第2モードの状態において前記記憶部から消失するパスワード又は該パスワードの対応値が、前記第1モードの状態において前記記憶部から消失するパスワード又は該パスワードの対応値と同じ値の場合、少なくとも一回は前記カウントする個数から除外する、
請求項1又は2に記載の認証装置。 If the counted value is equal to or more than a predetermined number, the authentication unit indicates that the operation mode information is an authentication by a password of an attacker from a first mode indicating that authentication by the password of the attacker is not performed. Switch to mode
When the counted value is equal to or more than a predetermined number, operation mode information is switched to the first mode when an input of a correct password is accepted,
The counting unit is the same as the password or the corresponding value of the password that disappears from the storage unit in the first mode state or the password that disappears from the storage unit in the second mode state. In the case of, excluding at least once from the counted number,
The authentication device according to claim 1.
前記カウントした値が所定個数以上である場合、正しいパスワードの入力を受け付けたときに認証処理に成功したと判定せずに、前記カウントした値をリセットする処理と、
をコンピュータに実行させるための認証プログラム。 When storing a password for which authentication processing has failed anew or a corresponding value of the password in a storage unit for storing a predetermined number of passwords for which authentication processing has failed before receiving a correct password or the corresponding value of the password A process of counting the number of lost passwords or corresponding values of the passwords;
A process of resetting the counted value without determining that the authentication process is successful when the input of a correct password is accepted when the counted value is equal to or greater than a predetermined number;
An authentication program to make a computer run.
前記カウントした値が所定個数以上である場合、正しいパスワードの入力を受け付けたときに認証処理に成功したと判定せずに、前記カウントした値をリセットする、
ことをコンピュータが実行する認証方法。 When storing a password for which authentication processing has failed anew or a corresponding value of the password in a storage unit for storing a predetermined number of passwords for which authentication processing has failed before receiving a correct password or the corresponding value of the password Count the number of lost passwords or their corresponding values,
When the counted value is equal to or more than the predetermined number, when the input of the correct password is accepted, the counted value is reset without determining that the authentication process is successful.
An authentication method that a computer performs.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017079202A JP6816623B2 (en) | 2017-04-12 | 2017-04-12 | Authentication device, authentication program and authentication method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017079202A JP6816623B2 (en) | 2017-04-12 | 2017-04-12 | Authentication device, authentication program and authentication method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018180911A true JP2018180911A (en) | 2018-11-15 |
JP6816623B2 JP6816623B2 (en) | 2021-01-20 |
Family
ID=64275507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017079202A Active JP6816623B2 (en) | 2017-04-12 | 2017-04-12 | Authentication device, authentication program and authentication method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6816623B2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007156675A (en) * | 2005-12-02 | 2007-06-21 | Fuji Xerox Co Ltd | Program for controlling user authentication, method, and computer system |
JP2008046867A (en) * | 2006-08-16 | 2008-02-28 | Fuji Xerox Co Ltd | Authentication control program and authentication device |
JP2015072527A (en) * | 2013-10-01 | 2015-04-16 | キヤノン株式会社 | Information processing system, information processing device and method of controlling the same, and program |
JP2016051251A (en) * | 2014-08-29 | 2016-04-11 | キヤノンマーケティングジャパン株式会社 | Authentication apparatus, authentication system, authentication method, and program |
-
2017
- 2017-04-12 JP JP2017079202A patent/JP6816623B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007156675A (en) * | 2005-12-02 | 2007-06-21 | Fuji Xerox Co Ltd | Program for controlling user authentication, method, and computer system |
JP2008046867A (en) * | 2006-08-16 | 2008-02-28 | Fuji Xerox Co Ltd | Authentication control program and authentication device |
JP2015072527A (en) * | 2013-10-01 | 2015-04-16 | キヤノン株式会社 | Information processing system, information processing device and method of controlling the same, and program |
JP2016051251A (en) * | 2014-08-29 | 2016-04-11 | キヤノンマーケティングジャパン株式会社 | Authentication apparatus, authentication system, authentication method, and program |
Also Published As
Publication number | Publication date |
---|---|
JP6816623B2 (en) | 2021-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10715320B2 (en) | Password generation with key and derivation parameter | |
US9514294B1 (en) | Accessing a computing resource | |
US8006078B2 (en) | Central processing unit having branch instruction verification unit for secure program execution | |
US10320848B2 (en) | Smart lockout | |
US10915656B2 (en) | Rollback protection for login security policy | |
JP4845057B2 (en) | Portable electronic device and program | |
JP5943359B2 (en) | System, method and program for verifying password | |
US8549314B2 (en) | Password generation methods and systems | |
US8140824B2 (en) | Secure code authentication | |
JP5500180B2 (en) | Fingerprint authentication apparatus, fingerprint authentication method, and fingerprint authentication program | |
CN109891422B (en) | Dynamic reputation indicator for optimizing computer security operations | |
KR20080100204A (en) | Client side attack resistant phishing detection | |
US10853058B1 (en) | Application similarity detection | |
WO2013080062A1 (en) | Cross system secure logon | |
JP5833640B2 (en) | Method, device, and computer program support for password generation and verification | |
CN104834840A (en) | Password protection method based on mapping drifting technology | |
JP5568696B1 (en) | Password management system and program for password management system | |
KR102179854B1 (en) | Method and apparatus for using network exhaustive resource | |
JP6816623B2 (en) | Authentication device, authentication program and authentication method | |
EP2477137A1 (en) | Method for verifying the integrity of a set of data | |
KR102350718B1 (en) | Password encryption method using variable salt, apparatus and server therefor | |
CN112765588A (en) | Identity recognition method and device, electronic equipment and storage medium | |
JP2015072511A (en) | Onetime password device, method, and program | |
US20230401339A1 (en) | Monitoring range determination device, monitoring range determination method, and computer readable medium | |
TWI807451B (en) | Malware scans |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200115 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201030 |
|
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: 20201124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201207 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6816623 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |