(58)【調査した分野】(Int.Cl.,DB名)
【背景技術】
【0002】
従来より、インターネットのウェブサイト等に対して不正にログインする方法の一つとして、リスト型攻撃と称されるものが知られている。
【0003】
リスト型攻撃とは、不正行為者が、あるウェブサイトのログイン認証に使用するユーザID及びパスワードを大量に不正入手し、それらのユーザID及びパスワードを用いて、他のウェブサイトのログイン認証を受けようと試みる不正ログイン方法である。正規ユーザが、複数のウェブサイトについて同一のユーザIDやパスワードを使用している場合、このリスト型攻撃によって不正にログインされるおそれがある。
【0004】
このようなリスト型攻撃は、一般に、コンピュータに機械的ログインプログラムを実行させることで、行われる。この機械的ログインプログラムは、大量のユーザIDやパスワードについてのログイン認証要求を、様々なウェブサイトに対して、機械的に高速で実行する。機械的ログインプログラムを用いることにより、不正行為者は、多数の不正アクセスを、短時間で自動的に試みることができる。
【0005】
機械的ログインプログラムを用いた認証要求を拒否する技術としては、例えば、下記特許文献1や2に記載されたものが知られている。
【0006】
特許文献1には、キャプチャ(CAPTCHA)
と称される認証技術が開示されている。この認証技術では、認証を要求した通信端末の認証用ウェブページに任意の文字列を表示するとともに、その通信端末のユーザに、その文字列を手入力するように促す。このとき、その文字列を、人間には識別できるがコンピュータの文字認識プログラムでは識別できないような形態で表示することにより、機械的ログインプログラムによる機械的な認証要求を拒否することができる(特許文献1の
図1等参照)。
【0007】
また、特許文献2では、ログイン認証ページにジグソーパズルを表示して、その通信端末のユーザに、そのジグソーパズルを解かせることにより、機械的ログインプログラムによる機械的な認証要求を拒否している(特許文献2の段落[0077]、
図8(c)等参照)。
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、上記特許文献1の認証技術(キャプチャ)には、入力する文字列が人間にとっても読み難い場合があるため、正規のユーザにとって使い勝手が悪いという欠点がある。
【0010】
同様に、上記特許文献2の認証技術にも、その都度ジグソーパズルを解かなければならないために、正規のユーザにとって使い勝手が悪いという欠点がある。
【0011】
この発明は、ユーザの操作負担を増すこと無しに、機械的ログインプログラムによる機械的な認証要求を拒否することができる、ウェブ認証システム及び認証プログラムを提供することを課題とする。
【課題を解決するための手段】
【0012】
請求項1の発明は、
通信端末が、ブラウザに認証ページを表示させる処理を実行すること無しにウェブサーバから認証を受けることを、防止する認証システムであって、第1の認証キーに文字列加工処理を施すことで生成された第2の認証キーを保存するキー保存部と、
前記通信端末が前記ウェブサーバへ認証を要求したときに、該通信端末の表示部に
前記認証ページを表示させる表示処理と、前記文字列加工処理を自動実行することによって前記第1の認証キーから第3の認証キーを生成する演算処理と、該第3の認証キーを返送させる返送処理とを、該通信端末の
前記ブラウザに実行させる
プログラムを、前記認証ページの表示プログラム
として該通信端末宛に送信する送信処理部と、前記通信端末から受信した前記第3の認証キーが前記キー保存部に保存された前記第2の認証キーと一致する場合に
、前記表示プログラムが実行されたと判断する比較処理部と、を備える認証システムとしたことを特徴とする。
【0013】
請求項2の発明は、請求項1に記載の構成に加え、前記第1の認証キーは、前記表示プログラム内又は該表示プログラムに付随して送信されるデータ内に埋め込まれた状態で、前記通信端末に送信されることを特徴とする。
【0014】
請求項3の発明は、請求項1又は2に記載の構成に加え、前記認証ページは、ユーザID及びパスワードの入力フィールドを含み、且つ、前記表示プログラムの前記返送処理は、該入力フィールドに入力された該ユーザID及び該パスワードと共に、前記第3の認証キーを返送する処理である、ことを特徴とする。
【0015】
請求項4の発明は、通信端末が、ブラウザに認証ページを表示させる処理を実行すること無しにウェブサーバから認証を受けることを、防止する表示プログラムであって、前記通信端末が前記ウェブサーバへ認証を要求したときに、請求項1乃至3の何れかに記載の認証システムから送信され
、前記通信端末の表示部に前記認証ページを表示させる表示処理と、前記文字列加工処理を自動実行することによって前記第1の認証キーから第3の認証キーを生成する演算処理と、該第3の認証キーを返送させる返送処理とを、該通信端末の前記ブラウザに実行させる表示プログラムとしたことを特徴とする。
【発明の効果】
【0016】
請求項1及び4の発明によれば、キー保存部に保存された第2の認証キーと、通信端末のブラウザが表示プログラムを実行することによって自動演算された第3の認証キーとを比較することで認証処理を行う。そのため、表示プログラムを実行しない通信端末は、この認証システムから認証を受けることができない。ここで、通常、機械的ログインプログラムは、表示プログラムを実行しない。従って、請求項1及び4の発明によれば、多くの機械的ログインプログラムによる不正な認証要求(例えばリスト型攻撃の認証要求)を拒否できる。
【0017】
また、不正行為者が、表示プログラムを実行できる機械的ログインプログラムを開発して使用することも考えられるが、その場合でも、機械的ログインプログラムの開発コストの高騰や処理速度(すなわち、単位時間内に認証要求できる回数)の低下を図ることができ、これにより、不正行為を行い難くすることができる。
【0018】
更に、請求項1の発明によれば、第3の認証キーは、通信端末が表示プログラムを実行することによって自動演算されるので、正規ユーザの操作負担を増大させることが無い。
【0019】
請求項2の発明によれば、第1の認証キーは、表示プログラム内又は該表示プログラムに付随して送信されるデータ内に埋め込まれた状態で通信端末に送信されるので、その通信端末の機械的ログインプログラムは、その第1の認証キーを、その表示プログラムの中から探し出す必要がある。このため、請求項2の発明によれば、機械的ログインプログラムの開発コストの高騰や処理速度の低下を図ることができ、これにより、不正行為を行い難くすることができる。その一方で、正規ユーザにとっては、第1の認証キーを通信端末に入力する操作が不要なので、操作負担が増大することがない。
【0020】
請求項3の発明によれば、認証システムは、認証ページで入力されたユーザID及びパスワードと共に、第3の認証キーを受け取るので、機械的ログインプログラムによる機械的な認証要求に使用されたユーザID及びパスワードが不正取得された正規のものであっても、その認証を拒否することができる。
【発明を実施するための形態】
【0022】
[発明の実施の形態1]
以下、この発明の実施の形態1について、
図1乃至
図5を用いて説明する。
【0023】
図1は、この実施の形態1のネットワーク構成を示す概念図である。
【0024】
図1に示したように、この実施の形態1に係るネットワーク100では、ウェブサーバ200と通信端末300とが、インターネット400を介して通信接続されている。
【0025】
ウェブサーバ200は、この発明の「認証システム」に対応し、ウェブ認証部210と、ウェブページ配信部220とを備えている。
【0026】
ウェブ認証部210は、キー生成部211と、データベース212と、比較処理部213とを備えている。
【0027】
キー生成部211は、例えば疑似乱数や乱数生成器等を用いて、第1の認証キーを生成する。第1の認証キーは、例えば、文字列(数字や記号等を含んでもよい)である。
【0028】
そして、キー生成部211は、この第1の認証キーに、予め用意された文字列加工処理を施すことで、第2の認証キーを生成する。
【0029】
文字列加工処理の内容は特に限定されず、その文字列加工処理を行うのがウェブ認証部210であるか通信端末300のブラウザであるかに拘わらず、常に、同じ第1の認証キーから同じ第2の認証キーを生成できる処理であれば良い。例えば、この文字列加工処理は、SHA(Secure Hash Algorithm)−1 等の暗号学的ハッシュ関数を用いた演算処理であってもよいし、第1の認証キーを特定の文字列で排他的論理和演算する処理であってもよい。
【0030】
文字列加工処理の内容は、適宜変更することが可能である。文字列加工処理の内容を変更可能にすることで、不正行為者が、この文字列加工処理に対応した機械的ログインプログラムを開発し難くすることができる。更には、1回の認証処理毎に、文字列加工処理の内容を変更できるようにしてもよい。
【0031】
生成された第1の認証キーは、ウェブページ配信部220に送られる。一方、上述の文字列加工処理で得られた第2の認証キーは、データベース212に送られる。
【0032】
データベース212は、この発明の「キー保存部」に対応し、キー生成部211から受け取った第2の認証キーを一時保存する。加えて、データベース212は、比較処理部213から第3の認証キーを受け取って、この第3の認証キーと一致する第2の認証キーを検索する(後述)。
【0033】
比較処理部213は、通信端末300からで生成された第3の認証キー(後述)を、ウェブページ配信部220から受け取る。続いて、データベース212に、この第3の認証キーと一致する第2の認証キーの検索を要求する。そして、比較処理部213は、その第3の認証キーと一致する第2の認証キーがデータベース212から発見された場合には、認証成功と判断して、その第2の認証キーをデータベース212から削除させると共に、認証成功をウェブページ配信部220に通知する(後述)。
【0034】
ウェブページ配信部220は、この発明の「送信処理部」に対応し、通信端末300に対して、ウェブ表示プログラムを配信する。ウェブ表示プログラムとは、通信端末300の画面へのウェブページの表示等を行わせるためのプログラムであり、この通信端末300のウェブブラウザ310によって実行される。このウェブ表示プログラムは、例えばHTML(HyperText Markup Language) 等を用いて記述することができる。ウェブページ配信部220が配信するウェブページには、ログイン認証ページが含まれる。
【0035】
ログイン認証ページ用のウェブ表示プログラムは、通信端末300の使用者にユーザIDを入力させるための入力フィールド320と、該使用者にパスワードを入力させるための入力フィールド330と、これら入力フィールド320,330の入力文字列を送信するためのログインボタン340とを、その通信端末300の表示画面に表示させる。
【0036】
更に、ログイン認証ページ用のウェブ表示プログラムは、通信端末300に文字列加工処理を実行させて第1の認証キーから第3の認証キーを生成するための、プログラムコードを含んでいる。この文字列加工処理の内容は、上述したキー生成部211の文字列加工処理と同一である。従って、このウェブ表示プログラムが正常に実行された場合、この第3の認証キーは、キー生成部211の文字列加工処理で生成される第2の認証キーと、同一の文字列となる。
【0037】
加えて、ウェブページ配信部220は、ログイン認証ページ用のウェブ表示プログラム或いはそのウェブ表示プログラムに付随して配信するデータ内に、この文字列加工処理の対象となる第1の認証キーを埋め込む。この第1の認証キーを埋め込む位置は、そのウェブ表示プログラム内のスクリプトがアクセスできる位置であれば、何処でも良い。例えば、文書構造を定義する記述部分や、スタイルを定義する記述部分に、第1の認証キーを埋め込むことができる。
【0038】
加えて、ログイン認証ページ用のウェブ表示プログラムは、ウェブサーバ200のウェブページ配信部220に第3の認証キーを送信するためのプログラムコードを含んでいる。この実施の形態1では、入力フィールド320,330に入力されたユーザID及びパスワードをウェブサーバ200に送信するためのフォーム・タグ内に、この第3の認証キーを、非表示データ(input typeが"hidden"のデータ)として格納する。このフォーム・タグの記述の一例を、以下に示す。
【0039】
<form action="/login"mehtod="post" name="loginForm">
<input type="hidden"name="_token" value="fF7eg6CSD3d636d" />
<input type="text"name="user_id" />
<input type="password"name="password" />
<input id="submit"type="image" src="img/img/login.gif" value="ログイン" />
</form>
また、ウェブページ配信部220は、ユーザID、パスワード及び第3の認証キーを通信端末300から受け取って、後述のような認証処理を行う。
【0040】
通信端末300は、インターネット400を介してウェブサーバ200にアクセスできる通信装置であれば何でもよく、例えば、パーソナルコンピュータ、携帯電話機、スマートフォン、タブレット端末等である。正規ユーザの通信端末300には、例えばアプリケーションソフトウエアとして、ウェブブラウザ310がインストールされている。このウェブブラウザ310は、上述のようなウェブ表示プログラムを実行できるものであれば何でもよく、従来のものをそのまま使用できる。
【0041】
次に、この実施の形態1に係るネットワークの全体動作について、
図2乃至
図5を用いて説明する。
【0042】
まず、通信端末300の使用者が、ウェブブラウザ310を操作して、ウェブサーバ200にアクセスする。そして、このウェブサーバ200のウェブページ配信部220に、所望のウェブページの配信(すなわち、そのウェブページに対応するウェブ表示プログラムの送信)を要求するページ要求信号を送信する(
図2のステップS201参照)。
【0043】
ウェブページ配信部220は、このページ要求信号を受信すると、ウェブ認証部210に、認証キー要求信号を送信する(
図2のステップS202参照)。
【0044】
ウェブ認証部210のキー生成部211は、この認証キー要求信号を受信すると、以下のような処理を行う(
図3参照)。
【0045】
まず、キー生成部211は、この認証キー要求信号を受信すると(
図3のステップS301参照)、第1の認証キーを生成する(
図3のステップS302参照)。上述のように、第1の認証キーは、例えば疑似乱数を用いて生成できるが、他の方法であっても良い。
【0046】
続いて、キー生成部211は、この第1の認証キーを用いた文字列加工処理を行うことで、第2の認証キーを生成する(
図3のステップS303参照)。
【0047】
更に、キー生成部211は、この第2の認証キーを用いた認証のタイムアウト時刻を決定し、これら第2の認証キー及びタイムアウト時刻をデータベース212に保存する(
図3のステップS304参照)。なお、タイムアウト時刻に代えて、第2の認証キーの生成時刻を、データベース212に保存してもよい。
【0048】
その後、キー生成部211は、第1の認証キーを、ウェブページ配信部220へ送信する(
図3のステップS305及び
図2のステップS203参照)。
【0049】
ウェブページ配信部220は、ウェブ認証部210から第1の認証キーを受け取ると、その第1の認証キーを、予め用意されたログイン認証ページ用ウェブ表示プログラム(上述)に埋め込む。そして、ウェブページ配信部220は、そのウェブ表示プログラムを、通信端末300へ送信する(
図2のステップS204参照)。
【0050】
通信端末300は、このウェブ表示プログラムを、ウェブブラウザ310に実行させる。これにより、ウェブブラウザ310は、通信端末の表示画面に、ログイン認証ページを表示する。上述のように、このログイン認証ページは、ユーザID用の入力フィールド320と、パスワード用の入力フィールド330と、ログインボタン340とを含んでいる(
図1参照)。
【0051】
加えて、ウェブブラウザ310がウェブ表示プログラムを実行することで、上述のようにして、第3の認証キーが生成される(上述)。なお、第3の認証キーを生成するプログラムは、ログイン認証ページの画面表示を行う際(すなわち、入力フィールド320,330及びログインボタン340を表示する際)に実行してもよいが、通信端末のユーザがログインボタン340を操作したタイミング(後述)で実行してもよい。
【0052】
その後、通信端末300のユーザが、入力フィールド320,330にユーザID及びパスワードを入力した後で、ログインボタン340を操作すると、これらユーザID、パスワードおよび第3の認証キーを含む認証情報が、ウェブサーバ200に送信される(
図2のステップS205参照)。なお、入力フィールド330に入力されたパスワードは、暗号的ハッシュ関数等を用いて暗号化して、送信してもよい。
【0053】
ウェブサーバ200は、この認証情報を受信すると、以下のような処理を行う(
図4及び
図5参照)。なお、
図4はウェブページ配信部220の動作を示しており、
図5はウェブ認証部210に設けられた比較処理部213の動作を示している。
【0054】
ウェブページ配信部220は、認証情報を受信すると(
図4のステップS401参照)、その認証情報に格納されたユーザID及びパスワードの正誤をチェックする(
図4のステップS402参照)。
【0055】
そして、ユーザID及びパスワードが誤りである場合、ウェブページ配信部220は、認証失敗と判断して、通信端末300のログインを拒否するための処理を行う(
図4のステップS403参照)。この処理により、通信端末300には、ログインを拒否したことが通知される(
図2のステップS208参照)。
【0056】
一方、ステップS402においてユーザID及びパスワードが正しかった場合、ウェブページ配信部220は、認証確認要求に第3の認証キーを格納して、ウェブ認証部210へ送信する(
図4のステップS404、
図2のステップS206参照)。
【0057】
比較処理部213は、この認証確認要求を受信すると(
図5のステップS501参照)、その認容確認要求から第3の認証キーを取り出す。続いて、比較処理部213は、データベース212に、その第3の認証キーと一致する第2の認証キーを探すように要求する(
図5のステップS502参照)。
【0058】
ここで、第3の認証キーと一致する第2の認証キーが存在しなかった場合(
図5のステップS503参照)、比較処理部213は、ウェブページ配信部220に、認証に失敗した旨を通知する(
図5のステップS504、
図2のステップS207参照)。なお、第3の認証キーと一致する第2の認証キーが検索された場合であっても、その検索の時刻がタイムアウト時刻(上述)を超えている場合には、認証失敗と判断すると共に、それら第2の認証キー及びタイムアウト時刻がデータベース212から削除される。なお、タイムアウト時刻に代えて第2の認証キーの生成時刻をデータベース212に保存する場合には、その生成から検索までの経過時間が所定時間を超えている場合に、認証失敗と判断すればよい。
【0059】
一方、第3の認証キーと一致する第2の認証キーが確認され、且つ、その第2の認証キーが生成されてからの経過時間が所定時間内である場合、比較処理部213は、それら第2の認証キー及びタイムアウト時刻(又は生成時刻)をデータベース212から削除すると共に(
図5のステップS505参照)、ウェブページ配信部220に、認証が成功した旨を通知する(
図5のステップS506、
図2のステップS207参照)。
【0060】
ウェブページ配信部220は、ウェブ認証部210から通知を受信すると、その通知から、認証の成功/失敗を判断する(
図4のステップS405参照)。そして、認証に失敗したと判断した場合、ウェブページ配信部220は、通信端末300のログインを拒否するための処理を行う(
図4のステップS406参照)。この処理により、通信端末300には、ログインを拒否したことが通知される(
図2のステップS208参照)。
【0061】
一方、ステップS405で認証に成功したと判断した場合、ウェブページ配信部220は、通信端末300のためのセッションキーを生成すると共に(
図4のステップS407参照)、そのセッションキーを通信端末300へ送信する(
図4のステップS408、
図2のステップS208参照)。このセッションキーにより、通信端末300にログインが許可されると共に、ログインしたあとのセッション管理が行われる。
【0062】
以上説明したように、この実施の形態1では、キー生成部211に保存された第2の認証キーと、通信端末300のウェブブラウザ310がウェブ表示プログラムを実行することによって自動演算された第3の認証キーとを比較することで、ログイン認証を行う。このため、ウェブ表示プログラムを実行しない通信端末300は、認証を受けることができない。ここで、通常、機械的ログインプログラムは、ウェブ表示プログラムを実行しない。従って、この実施の形態によれば、多くの機械的ログインプログラムによる不正な認証要求(例えばリスト型攻撃の認証要求)を拒否できる。
【0063】
また、不正行為者が、ウェブ表示プログラムを実行できる機械的ログインプログラムを開発して使用することも考えられるが、その場合でも、機械的ログインプログラムの開発コストの高騰や処理速度(すなわち、単位時間内に認証要求できる回数)の低下を図ることができ、これにより、不正行為を行い難くすることができる。
【0064】
更に、この実施の形態1によれば、第3の認証キーは、通信端末300がウェブ表示プログラムを実行することによって自動演算されるので、通信端末300のユーザの操作負担を増大させることが無い。
【0065】
また、この実施の形態1によれば、第1の認証キーは、ウェブ表示プログラム内に埋め込まれた状態で通信端末300に送信されるので、その通信端末300の機械的ログインプログラムは、その第1の認証キーを、そのウェブ表示プログラムの中から探し出す必要がある。このため、この実施の形態1によれば、機械的ログインプログラムの開発コストの高騰や処理速度の低下を図ることができ、これにより、不正行為を行い難くすることができる。
【0066】
その一方で、正規ユーザにとっては、第1の認証キーを通信端末に入力等する操作が不要なので、操作負担が増大することがない。
【0067】
加えて、この実施の形態1によれば、ウェブサーバ200は、認証ページで入力されたユーザID及びパスワードと共に、第3の認証キーを受け取るので、機械的ログインプログラムによる機械的な認証要求に使用されたユーザID及びパスワードが不正取得された正規のものであっても、その認証を拒否することができる。
【0068】
なお、この実施の形態1では、この発明の認証技術(第2及び第3の認証キーを比較することによる認証技術)をユーザID及びパスワードによる認証技術と併用する場合を例に採って説明したが、この発明の認証技術を他の認証技術と併用してもよく、更には、単独で使用してもよい。