(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-20
(45)【発行日】2023-04-28
(54)【発明の名称】認証装置、認証方法及び認証プログラム
(51)【国際特許分類】
G06F 21/42 20130101AFI20230421BHJP
G06F 21/55 20130101ALI20230421BHJP
G06F 21/62 20130101ALI20230421BHJP
【FI】
G06F21/42
G06F21/55
G06F21/62 309
(21)【出願番号】P 2020123024
(22)【出願日】2020-07-17
【審査請求日】2022-07-06
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100106002
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【氏名又は名称】林 一好
(72)【発明者】
【氏名】田淵 純一
(72)【発明者】
【氏名】磯村 学
【審査官】局 成矢
(56)【参考文献】
【文献】特開2009-276864(JP,A)
【文献】特表2017-503253(JP,A)
【文献】特開2017-112592(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/42
G06F 21/55
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
第1の端末で動作する第1のアプリケーションからのアクセスに応じて、当該第1のアプリケーションに対して、ログイン準備画面のデータを送信する準備画面送信部と、
前記第1の端末において前記ログイン準備画面に入力されたユーザIDを受信したことに応じて、前記第1のアプリケーションに対して、端末データを収集するためのスクリプトが難読されて記述されたログイン中画面のデータを送信する処理中画面送信部と、
前記スクリプトが実行されることにより収集された前記端末データを受信し、当該端末データが正当であることを検証する端末データ検証部と、
ワンタイムパスワードを生成し、前記スクリプトに対して、当該ワンタイムパスワードをエンコードして送信し、前記スクリプトによりデコードさせて前記ログイン中画面に表示させる乱数送信部と、
前記ユーザIDと予め紐付けられている第2の端末へ、ログイン許可画面のURLを含むログイン通知データを送信するログイン通知送信部と、
前記URLに基づく前記第2の端末で動作する第2のアプリケーションからのアクセスに応じて、当該第2のアプリケーションに対して、前記ログイン許可画面のデータを送信する許可画面送信部と、
前記第2の端末において前記ログイン許可画面に入力されたパスワードを前記ワンタイムパスワードと照合することにより、前記第1のアプリケーションによるログインを承認するログイン承認部と、を備える認証装置。
【請求項2】
前記端末データ検証部は、前記端末データに基づいて、前記第1のアプリケーションのアクセス先が自装置であることを検証する請求項1に記載の認証装置。
【請求項3】
前記端末データ検証部は、前記端末データに基づいて、前記第1のアプリケーションの識別情報が規定のものであることを検証する請求項1又は請求項2に記載の認証装置。
【請求項4】
前記端末データ検証部は、前記端末データに基づいて、前記第1のアプリケーションが表示中の画面のデータが前記処理中画面送信部により送信されたものであることを検証する請求項1から請求項3のいずれかに記載の認証装置。
【請求項5】
前記端末データ検証部は、前記端末データに基づいて、前記第1のアプリケーションの前記第1の端末における実行状態が所定の条件を満たすことを検証する請求項1から請求項4のいずれかに記載の認証装置。
【請求項6】
前記端末データ検証部により前記端末データが正当でないと判定された場合、前記乱数送信部及び前記許可画面送信部が機能した後に、前記ログイン承認部は、前記ワンタイムパスワードとの照合の結果によらず、前記第1のアプリケーションによるログインを失敗させる請求項1から請求項5のいずれかに記載の認証装置。
【請求項7】
第1の端末で動作する第1のアプリケーションからのアクセスに応じて、当該第1のアプリケーションに対して、ログイン準備画面のデータを送信する準備画面送信ステップと、
前記第1の端末において前記ログイン準備画面に入力されたユーザIDを受信したことに応じて、前記第1のアプリケーションに対して、端末データを収集するためのスクリプトが難読されて記述されたログイン中画面のデータを送信する処理中画面送信ステップと、
前記スクリプトが実行されることにより収集された前記端末データを受信し、当該端末データが正当であることを検証する端末データ検証ステップと、
ワンタイムパスワードを生成し、前記スクリプトに対して、当該ワンタイムパスワードをエンコードして送信し、前記スクリプトによりデコードさせて前記ログイン中画面に表示させる乱数送信ステップと、
前記ユーザIDと予め紐付けられている第2の端末へ、ログイン許可画面のURLを含むログイン通知データを送信するログイン通知送信ステップと、
前記URLに基づく前記第2の端末で動作する第2のアプリケーションからのアクセスに応じて、当該第2のアプリケーションに対して、前記ログイン許可画面のデータを送信する許可画面送信ステップと、
前記第2の端末において前記ログイン許可画面に入力されたパスワードを前記ワンタイムパスワードと照合することにより、前記第1のアプリケーションによるログインを承認するログイン承認ステップと、をコンピュータが実行する認証方法。
【請求項8】
請求項1から請求項6のいずれかに記載の認証装置としてコンピュータを機能させるための認証プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フィッシングによる不正アクセスを防止する認証システムに関する。
【背景技術】
【0002】
従来、第三者による不正アクセスを防止するユーザ認証の仕組みとして、2段階認証が利用されている。2段階認証では、ユーザがアカウントにログインする際に、ID及びパスワードの入力に加えて、登録してある電話番号又はメールアドレス等を利用して別の端末に届く通知に対して承認を行う(例えば、セキュリティコードを入力する)ことで、ログインが完了する(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の認証システムにおいて表示されるログイン画面は、容易に模倣されフィッシングサイトが作成される可能性があった。このフィッシングサイトは、ユーザの入力を正規の認証システムへ中継することにより正規の通知を出力させ、この通知をユーザに承認させることにより認証システムが返送する鍵情報を詐取できる。
【0005】
本発明は、フィッシングサイトの作成が困難な認証システムを構築できる認証装置、認証方法及び認証プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る認証装置は、第1の端末で動作する第1のアプリケーションからのアクセスに応じて、当該第1のアプリケーションに対して、ログイン準備画面のデータを送信する準備画面送信部と、前記第1の端末において前記ログイン準備画面に入力されたユーザIDを受信したことに応じて、前記第1のアプリケーションに対して、端末データを収集するためのスクリプトが難読されて記述されたログイン中画面のデータを送信する処理中画面送信部と、前記スクリプトが実行されることにより収集された前記端末データを受信し、当該端末データが正当であることを検証する端末データ検証部と、ワンタイムパスワードを生成し、前記スクリプトに対して、当該ワンタイムパスワードをエンコードして送信し、前記スクリプトによりデコードさせて前記ログイン中画面に表示させる乱数送信部と、前記ユーザIDと予め紐付けられている第2の端末へ、ログイン許可画面のURLを含むログイン通知データを送信するログイン通知送信部と、前記URLに基づく前記第2の端末で動作する第2のアプリケーションからのアクセスに応じて、当該第2のアプリケーションに対して、前記ログイン許可画面のデータを送信する許可画面送信部と、前記第2の端末において前記ログイン許可画面に入力されたパスワードを前記ワンタイムパスワードと照合することにより、前記第1のアプリケーションによるログインを承認するログイン承認部と、を備える。
【0007】
前記端末データ検証部は、前記端末データに基づいて、前記第1のアプリケーションのアクセス先が自装置であることを検証してもよい。
【0008】
前記端末データ検証部は、前記端末データに基づいて、前記第1のアプリケーションの識別情報が規定のものであることを検証してもよい。
【0009】
前記端末データ検証部は、前記端末データに基づいて、前記第1のアプリケーションが表示中の画面のデータが前記処理中画面送信部により送信されたものであることを検証してもよい。
【0010】
前記端末データ検証部は、前記端末データに基づいて、前記第1のアプリケーションの前記第1の端末における実行状態が所定の条件を満たすことを検証してもよい。
【0011】
前記端末データ検証部により前記端末データが正当でないと判定された場合、前記乱数送信部及び前記許可画面送信部が機能した後に、前記ログイン承認部は、前記ワンタイムパスワードとの照合の結果によらず、前記第1のアプリケーションによるログインを失敗させてもよい。
【0012】
本発明に係る認証方法は、第1の端末で動作する第1のアプリケーションからのアクセスに応じて、当該第1のアプリケーションに対して、ログイン準備画面のデータを送信する準備画面送信ステップと、前記第1の端末において前記ログイン準備画面に入力されたユーザIDを受信したことに応じて、前記第1のアプリケーションに対して、端末データを収集するためのスクリプトが難読されて記述されたログイン中画面のデータを送信する処理中画面送信ステップと、前記スクリプトが実行されることにより収集された前記端末データを受信し、当該端末データが正当であることを検証する端末データ検証ステップと、ワンタイムパスワードを生成し、前記スクリプトに対して、当該ワンタイムパスワードをエンコードして送信し、前記スクリプトによりデコードさせて前記ログイン中画面に表示させる乱数送信ステップと、前記ユーザIDと予め紐付けられている第2の端末へ、ログイン許可画面のURLを含むログイン通知データを送信するログイン通知送信ステップと、前記URLに基づく前記第2の端末で動作する第2のアプリケーションからのアクセスに応じて、当該第2のアプリケーションに対して、前記ログイン許可画面のデータを送信する許可画面送信ステップと、前記第2の端末において前記ログイン許可画面に入力されたパスワードを前記ワンタイムパスワードと照合することにより、前記第1のアプリケーションによるログインを承認するログイン承認ステップと、をコンピュータが実行する。
【0013】
本発明に係る認証プログラムは、前記認証装置としてコンピュータを機能させるためのものである。
【発明の効果】
【0014】
本発明によれば、フィッシングサイトの作成が困難な認証システムが構築される。
【図面の簡単な説明】
【0015】
【
図1】実施形態における認証方法でユーザに提示される画面の遷移を示す図である。
【
図2】実施形態における認証装置の機能構成を示す図である。
【
図3】実施形態における認証方法により認証に成功した場合の処理の流れを示すシーケンス図である。
【
図4】実施形態における認証方法が攻撃を受けた場合の処理の流れを例示する第1の図である。
【
図5】実施形態における認証方法が攻撃を受けた場合の処理の流れを例示する第2の図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態の一例について説明する。
本実施形態の認証システムでは、2段階認証において、スクリプトによりログイン中画面に表示されるワンタイムパスワードを、ログイン許可画面に入力させる。
このスクリプトは、解析及び改変ができないように難読化されて認証装置からログイン端末に提供され、さらに、スクリプトによりアクセス元の情報を収集することによりユーザの正当性が検証される。
【0017】
図1は、本実施形態における認証方法でユーザに提示される画面の遷移を示す図である。
まず、ユーザがパーソナルコンピュータ又はモバイル端末等のユーザ端末Xから、ブラウザ又は専用アプリケーション等を利用してログイン先のサイトにアクセスすると、端末Xにはログイン準備画面が表示される。
【0018】
ログイン準備画面でユーザIDを入力後、ログインボタンが押下されると、ユーザ端末Xには、ログイン中画面が表示される。ログイン中画面には、ワンタイムパスワードとしての乱数が表示され、別途、ログイン通知がユーザ端末Yに送信される。
【0019】
ユーザ端末Yに届いたログイン通知に基づいてアクセスしたログイン許可画面において、ユーザ端末Xに表示された乱数を入力後、承認ボタンが押下されると、ユーザ端末Xのログイン中画面は、手動更新あるいは自動更新により、ログイン完了となる。
【0020】
図2は、本実施形態における認証装置1の機能構成を示す図である。
認証装置1は、サーバ装置又はパーソナルコンピュータ等の情報処理装置(コンピュータ)であり、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイス等を備える。
【0021】
制御部10は、認証装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。
【0022】
記憶部20は、ハードウェア群を認証装置1として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)等であってよい。具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(認証プログラム)、及びユーザの登録情報等を記憶する。
【0023】
制御部10は、準備画面送信部11と、処理中画面送信部12と、端末データ検証部13と、乱数送信部14と、ログイン通知送信部15と、許可画面送信部16と、ログイン承認部17とを備える。
【0024】
準備画面送信部11は、ユーザ端末X(第1の端末)で動作するブラウザ又は専用ソフトウェア等、第1のアプリケーションMからのアクセスに応じて、このアプリケーションMに対して、ログイン準備画面のデータを送信する。
【0025】
処理中画面送信部12は、ユーザ端末Xにおいてログイン準備画面に入力されたユーザIDを受信したことに応じて、アプリケーションMに対して、端末データを収集するためのスクリプトが難読されて記述されたログイン中画面のデータを送信する。
【0026】
端末データ検証部13は、スクリプトが実行されることにより収集された端末データを受信し、この端末データが正当であることを検証する。
ここで、端末データは、次の(1)~(3)の情報を含む。
【0027】
(1)アプリケーションMの現在のアクセス先を示す情報として、URL、IPアドレス、ドメイン名等。
端末データ検証部13は、この端末データに基づいて、アプリケーションMのアクセス先が認証装置1であることを検証する。
【0028】
(2)アプリケーションMそのものの識別情報として、UserAgent、アプリケーション名、バージョン等。
端末データ検証部13は、この端末データに基づいて、アプリケーションMの識別情報が規定のものであることを検証する。
【0029】
(3)アプリケーションMが表示中のログイン中画面に関する情報として、表示中のHTMLテキスト、動作中のスクリプト等。
端末データ検証部13は、この端末データに基づいて、アプリケーションMが表示中の画面のデータが処理中画面送信部12により送信されたものであること、すなわち改変されていないことを検証する。
【0030】
(4)アプリケーションMの実行状態を示す情報として、表示ウィンドウのサイズ等。
端末データ検証部13は、この端末データに基づいて、アプリケーションMのユーザ端末Xにおける実行状態が所定の条件を満たすことを検証する。例えば、実行されるべき端末の解像度を超えるサイズで実行されている場合に不正が考えられる。
【0031】
乱数送信部14は、端末データ検証部13により端末データが正当であると判定された場合に、ワンタイムパスワードとして、例えば乱数を生成し、ログイン中画面のスクリプトに対して、生成したワンタイムパスワードをエンコードして送信し、スクリプトによりデコードさせてログイン中画面に表示させる。
【0032】
ログイン通知送信部15は、記憶部20の登録情報においてユーザIDと予め紐付けられているユーザ端末Y(第2の端末)へ、ログイン許可画面のURLを含むログイン通知データを送信する。
【0033】
許可画面送信部16は、URLに基づくユーザ端末Yで動作する第2のアプリケーションNからのアクセスに応じて、このアプリケーションNに対して、ログイン許可画面のデータを送信する。
【0034】
ログイン承認部17は、ユーザ端末Yにおいてログイン許可画面に入力されたパスワードを、乱数送信部14により生成されたワンタイムパスワードと照合することにより、アプリケーションMによるログインを承認する。
【0035】
図3は、本実施形態における認証方法により認証に成功した場合の処理の流れを示すシーケンス図である。
【0036】
ステップS1において、ユーザ端末Xは、ユーザの操作に応じて、アプリケーションMにより認証装置1にアクセスする。
ステップS2において、認証装置1は、ユーザ端末XのアプリケーションMに対してログイン準備画面のデータを送信する。
ステップS3において、ユーザ端末Xは、アプリケーションMにより受信したデータに基づいてログイン準備画面を表示する。
【0037】
ステップS4において、ユーザは、ユーザ端末Xのログイン準備画面にユーザIDを入力し、ログインボタンを押下(タッチ)する。
ステップS5において、ユーザ端末Xは、アプリケーションMにより、入力されたユーザIDを認証装置1へ送信する。
ステップS6において、認証装置1は、ユーザ端末XのアプリケーションMに対してログイン中画面のデータを送信する。
【0038】
ステップS7において、ユーザ端末Xは、アプリケーションMにより受信したデータに基づいてログイン中画面を表示する。このとき、アプリケーションMにより、ログイン中画面のデータに含まれるスクリプトが実行される。
ステップS8において、ユーザ端末Xは、実行されたスクリプトによりアプリケーションMに関する端末データを収集し、認証装置1へ送信する。
【0039】
ステップS9において、認証装置1は、端末データを検証し、アプリケーションMのアクセス先が認証装置1となっていることを確認する。
ステップS10において、認証装置1は、乱数Pを生成し、ユーザ端末Xのスクリプトに対して、エンコードした乱数を送信する。
ステップS11において、ユーザ端末Xは、スクリプトにより乱数Pをデコードし、ログイン中画面に表示する。
【0040】
ステップS12において、認証装置1は、ユーザ端末Yに対してログイン通知データを送信する。
ステップS13において、ユーザは、ユーザ端末Yに届いたログイン通知をタップし、アプリケーションNを起動する。
ステップS14において、ユーザ端末Yは、アプリケーションNにより認証装置1にアクセスする。これに応じて、認証装置1は、ユーザ端末YのアプリケーションNに対してログイン許可画面のデータを送信し、ユーザ端末Yは、アプリケーションNにより受信したデータに基づいてログイン許可画面を表示する。
【0041】
ステップS15において、ユーザは、ユーザ端末Yのログイン許可画面の入力欄に乱数Pを入力し、承認ボタンを押下(タッチ)する。これに応じて、ユーザ端末Yは、アプリケーションNにより、入力された乱数Pを認証装置1へ送信する。
ステップS16において、ユーザ端末Xは、アプリケーションMによるログイン中画面の自動更新、又はユーザの操作(更新ボタン)に応じた手動更新により、認証装置1から鍵情報を取得し、ログインを完了する。
【0042】
図4は、本実施形態における認証方法が攻撃を受けた場合の処理の流れを例示する第1の図である。
この例では、攻撃者がユーザ端末Xと認証装置1との通信を中継している。
【0043】
ステップS1、S2、S5、S6、S8において、攻撃者が通信データを中継することにより、ユーザ端末XのアプリケーションMに関する端末データが認証装置1に提供される。
ステップS9において、認証装置1は、端末データを検証するが、アプリケーションMのアクセス先(ステップS1)は、認証装置1とはなっておらず、攻撃者のフィッシングサイトを経由していることが検知される。
【0044】
なお、ステップS9において端末データが正当でないと判定され攻撃が検知された場合、この時点で処理が終了してもよいが、
図3と同様にステップS10~S15が実行されてもよい。この場合、ステップS16において、認証装置1は、ログインを失敗させる。
これにより、どのステップで攻撃が検知されてログインに失敗したのかを、攻撃者が判断できなくなる。
【0045】
図5は、本実施形態における認証方法が攻撃を受けた場合の処理の流れを例示する第2の図である。
この例では、
図4の例のように端末データにより攻撃が検知されないために、攻撃者が自らスクリプトを実行して端末データを取得している。
【0046】
攻撃者の端末は、ステップS6において、ログイン中画面のデータを取得すると、ステップS7aにおいて、データに含まれるスクリプトを取得して自端末で実行することにより、自端末におけるアプリケーションMに関する端末データを認証装置1へ送信する。
この結果、ステップS9において、認証装置1は、端末データに含まれるアクセス先等が正当であることを確認できるため、ステップS10において、エンコードした乱数を送信する。
【0047】
攻撃者は、エンコードされた乱数、及び難読化されたスクリプトを解読できないことから、乱数をユーザ端末Xのログイン中画面に表示させることができない。
したがって、ステップS12のログイン通知データに基づいて、ステップS13~S14においてユーザ端末YでアプリケーションNが起動されたとしても、ユーザは、ステップS15で乱数を入力することができず、ログインを完了できない。
【0048】
本実施形態によれば、認証装置1は、難読化したスクリプトによりユーザ端末Xにワンタイムパスワードである乱数を表示させ、ユーザIDに紐づけられたユーザ端末Yにこの乱数を入力させる。
これにより、ユーザ端末Xと認証装置1との通信を中継する攻撃者は、難読化されたスクリプトが解読できなければ、スクリプトの実行結果のみを中継することができないため、乱数をユーザ端末Xに表示させるためには、このスクリプトをユーザ端末Xで実行させなければならない。
したがって、認証装置1は、スクリプトの機能によりユーザ端末Xで動作中のアプリケーションMに関する端末データを収集し、この端末データが正当であることを検証できる。この結果、攻撃者による標的型フィッシングサイトによる攻撃は検知されるので、難読化技術のセキュリティ強度に応じて、フィッシングサイトの作成が困難な認証システムが構築される。
【0049】
認証装置1は、端末データに基づいて、ログインのためにユーザ端末Xで実行されているアプリケーションMのアクセス先が自装置であることを検証することにより、ユーザ端末Xがフィッシングサイトにアクセスしていることを容易に検知できる。
【0050】
認証装置1は、端末データに基づいて、アプリケーションMの識別情報が規定のものであることを検証してもよい。これにより、提供サービスに専用のアプリケーションが利用される、あるいは使用可能なブラウザアプリケーションに制限があるような場合に、認証装置1は、このアプリケーションMを識別する情報により、不正なアクセスを検知できる。
【0051】
認証装置1は、端末データに基づいて、アプリケーションMが表示中の画面のデータが認証装置1により送信されたものと同一であり、改変されていないことを検証してもよい。これにより、認証装置1は、例えば、攻撃者による正規のログイン中画面における注意文言を削除する等といった僅かな改変、あるいは、難読化されたスクリプトの万が一の改変を検知できる。
【0052】
認証装置1は、端末データに基づいて、アプリケーションMのユーザ端末Xにおける実行状態が所定の条件を満たすことを検証してもよい。これにより、認証装置1は、アプリケーションMが想定される画面サイズ等により正常に実行されているか否かを判定し、不正なアクセスを検知できる。
【0053】
認証装置1は、端末データ検証部13により端末データが正当でないと判定された場合、乱数送信部14及び許可画面送信部16を機能させた後に、ログイン承認部17によるワンタイムパスワードの照合の結果によらず、アプリケーションMによるログインを失敗させる。
これにより、認証装置1は、どのステップで攻撃を検知したのかを攻撃者に対して秘匿でき、攻撃検知の回避行動を抑制できるので安全性を高めることができる。
【0054】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。
【0055】
ログインを行うユーザ端末Xと承認を行うユーザ端末Yとは、同一のデバイスであってもよい。また、ログイン準備画面及びログイン中画面を表示するアプリケーションMと、ログイン許可画面を表示するアプリケーションNとは、同一のアプリケーションであってもよい。
【0056】
認証装置1による認証方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。
【符号の説明】
【0057】
1 認証装置
10 制御部
11 準備画面送信部
12 処理中画面送信部
13 端末データ検証部
14 乱数送信部
15 ログイン通知送信部
16 許可画面送信部
17 ログイン承認部
20 記憶部
M 第1のアプリケーション
N 第2のアプリケーション
X ユーザ端末(第1の端末)
Y ユーザ端末(第2の端末)