JP2016035727A - 二要素認証システム - Google Patents
二要素認証システム Download PDFInfo
- Publication number
- JP2016035727A JP2016035727A JP2014166950A JP2014166950A JP2016035727A JP 2016035727 A JP2016035727 A JP 2016035727A JP 2014166950 A JP2014166950 A JP 2014166950A JP 2014166950 A JP2014166950 A JP 2014166950A JP 2016035727 A JP2016035727 A JP 2016035727A
- Authority
- JP
- Japan
- Prior art keywords
- factor authentication
- user
- program
- login
- server
- 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.)
- Pending
Links
Images
Abstract
【課題】既存Webアプリケーションに対して、利用者の携帯する携帯電話機と連動した二要素認証を可能とする。
【解決手段】既存Webアプリケーションのログインページに、ECMASriptあるいはJavaScript(登録商標)にて記述されたプログラムを埋め込むことにより、利用者のログインの際に入力される利用者識別子を、二要素認証サーバ上で稼働するプログラムに転送する。これを受信した二要素認証サーバ上のプログラムは、利用者識別子に対応する二要素認証専用利用者識別子をWebサーバ上で稼働するプログラムに問合せた後、二要素認証専用利用者識別子に対応する携帯電話機上で稼働するプログラムに、即時通知機能を利用して既存Webアプリケーションへの二要素認証が必要である旨、通知を行う。この通知を受けた携帯電話機上のプログラムの画面に対して利用者がワンタイムパスワードを入力する。
【選択図】図1
【解決手段】既存Webアプリケーションのログインページに、ECMASriptあるいはJavaScript(登録商標)にて記述されたプログラムを埋め込むことにより、利用者のログインの際に入力される利用者識別子を、二要素認証サーバ上で稼働するプログラムに転送する。これを受信した二要素認証サーバ上のプログラムは、利用者識別子に対応する二要素認証専用利用者識別子をWebサーバ上で稼働するプログラムに問合せた後、二要素認証専用利用者識別子に対応する携帯電話機上で稼働するプログラムに、即時通知機能を利用して既存Webアプリケーションへの二要素認証が必要である旨、通知を行う。この通知を受けた携帯電話機上のプログラムの画面に対して利用者がワンタイムパスワードを入力する。
【選択図】図1
Description
本発明は既存のWebアプリケーションのログイン画面に対して、小規模なコード追加を行うだけで、二要素認証機能を追加できる方法を提供するためのシステムである。
近年、クラウド化という潮流の下、各種のソフトウェア機能が、インターネットなどのIP通信網を通じてWebブラウザ上で操作できるものとして普及している。こうしたWebブラウザ上で操作できるソフトウェア機能を、Webアプリケーションと呼ぶが、多くのWebアプリケーションでは、利用者の認証に利用者識別子とパスワードのみを用いている。しかしながら、利用者識別子とパスワードだけを要素とする認証方式は、利用者識別子やパスワードの推測、あるいは総当たりという攻撃手法に対して脆弱である。
利用者識別子とパスワードの代わりに、公開鍵基盤に基づく電子証明書を利用する方式の一つとして、秘密鍵を計算機内に暗号化して格納する方式があり、これもWebブラウザとWebサーバ間で、利用者を認証する方式として利用できる。しかしながらこの方式では、利用者の操作次第で秘密鍵をファイルとして抽出することが可能となり、これを悪意のある第三者が行うことで秘密鍵の不正利用が可能となる。またこの際に正当な利用者が秘密鍵の紛失に気づくことが困難である。
利用者識別子とパスワードの代わりに、公開鍵基盤に基づく電子証明書を利用するもう一つの方式として、秘密鍵をICチップなどの専用の小型デバイスに格納する方式もある。この方式では、ICチップから秘密鍵を抽出することは非常に困難であり、また当該小型デバイスの紛失を認識することは容易である。しかし、デバイスの形状によっては、主に外出先での利用が物理的に不便と感じられることが多い。特にカード型デバイスとそれを読み取るための装置を用いる方式では特に物理的な不便さ、つまり利用する際の占有作業面積の問題、また携帯する物品が多くなるという問題が発生する。
Webアプリケーションにログインする際に、利用者識別子とパスワードのみを認証要素とする認証方式には脆弱性があるため、ワンタイムパスワードなど、利用者識別子とパスワード以外の認証要素を追加するためには、既存Webアプリケーションに対する機能追加に掛かる工数が必要となり、この工数が軽微ではない。
一方で、既存のWebアプリケーションに対して、別のWebサーバである二要素認証サーバ上のWebコンテンツを埋め込む場合、HTMLのiFrameタグを使うと、クロスサイトスクリプティングなどの攻撃手法への対策から、多くのWebブラウザでは、相互のオブジェクトをECMAScriptまたはJavaScriptにてアクセスできない。
Webアプリケーションにログインする際に、ワンタイムパスワードを当該Webアプリケーション側に入力する方式の場合、推測や総当たりにより、不正なログインを許してしまう可能性が0ではない。
認証要素を追加するにあたり、利用者に対して追加の携帯物品を要求する方式を採用した場合、携帯物品が増えるという点で、利用者にとっての利便性が損なわれる。
本発明は、図1に示すとおり、利用者が携帯している携帯電話機上で稼働するプログラム、利用者が利用するWebブラウズ用コンピュータ、Webサーバ上で稼働し、利用者が最終的に利用を目的としているサービスを提供するWebアプリケーション、および二要素認証サーバ上で稼働するプログラムから構成される。
利用者は目的となるWebアプリケーションの利用に向けて、まずはWebブラウズ用コンピュータ上で稼働するWebブラウザを操作して、IP通信網を通じ、目的となるWebアプリケーションが稼働する既存Webサーバにアクセスする。
Webアプリケーションのログインページには、二要素認証機能実現のためのECMASriptあるいはJavaScriptプログラムが埋め込まれており、このプログラムが利用者のWebブラウズ用コンピュータで稼働すると、対象となるログインページから、ログインする利用者の利用者識別子入力欄のオブジェクト名と、ログイン処理を実行するためのボタンのオブジェクト名をパラメータとして受け取った後、入力された利用者識別子をパラメータにして、二要素認証サーバに対し、二要素認証要求を送信する。また、この時当該二要素認証トランザクションを一意に区別するために、二要素認証トランザクション識別子を生成し、パラメータに加える。
二要素認証サーバ上で稼働するプログラムは、[0011]に記載されたプログラムから、二要素認証要求を受信すると、二要素認証の状態および履歴管理テーブルに、当該二要素認証トランザクションに関する、二要素認証トランザクション識別子、時刻、状態を格納する。この時、状態としては、「二要素認証専用利用者識別子問合せ中」を示す値を格納する。その後パラメータとして付加されてきた利用者識別子を元に、二要素認証機能の追加対象となるWebアプリケーションに、利用者識別子に対応付けられた二要素認証専用利用者識別子を問い合わせる。
既存Webサーバ上で稼働するプログラムは、[0012]の問い合わせを受けると、自身の持つ情報を検索し、指定された利用者識別子に対応する二要素認証専用利用者識別子を返却する。
二要素認証サーバ上で稼働するプログラムは、[0013]の応答により二要素認証専用利用者識別子を取得すると、二要素認証の状態および履歴管理テーブル上に格納された、当該二要素認証トランザクションに関する、レコードに二要素認証専用利用者識別子を格納し、状態を二要素認証処理中に更新する。その後、携帯電話機上で稼働するプログラムに対して、携帯電話機のオペレーティングシステムが提供する、即時通知機能を用い、二要素認証機能の追加対象となるWebアプリケーションへのログインが行われようとしていることを通知する。二要素認証トランザクション識別子をパラメータとして付加する。これに先立ち4桁程度の英数字からなるワンタイムパスワードを割り当て、二要素認証の状態および履歴管理テーブル上に格納された、当該二要素認証トランザクションに関するレコードに格納する。
[0011]に記載されたプログラムは、定期的に[0014]に記載されたプログラムに対して、二要素認証トランザクションの状態を確認する必要がある。この時、図4で示されているWeb画面を構成する各Webコンテンツのうち、既存Webアプリケーションのログイン画面および[0011]に記載されたプログラムは、既存Webサーバのドメイン上で動作するものとして、Webブラウザに認識される。このプログラムから、二要素認証サーバ側のドメインのWebコンテンツを図4の領域Aの〈div〉タグ内に埋め込む方法としては、1.HTMLの〈iframe〉タグを用いて、外部HTMLを埋め込む方法、2.ECMASriptあるいはJavaScriptの持つHTTP、HTTPS通信機能を用いて二要素認証サーバ側と通信し、結果をそのまま、あるいは加工して既存Webアプリケーションのログイン画面内に追記する方法などが一般的に想定される。しかし、[0006]に記載されている様に、クロスサイトスクリプティングへの対策から、多くのWebブラウザでは、1の方法の場合には、埋め込んだHTMLの内容を[0011]に記載されたプログラムから参照できない他、2の方法は、ECMASriptあるいはJavaScriptが二要素認証サーバに対してHTTP、HTTPS通信を行おうとした時点でセキュリティの観点でエラーになる。
この様に、1や2の方法では、別ドメインのWebコンテンツである二要素認証サーバからのWebコンテンツの内容を参照することが難しい。ただし、二要素認証サーバ上のWebコンテンツの形式のうち、画像ファイルをHTMLの〈img〉タグとして埋め込む3の方法では、埋め込み先〈img〉タグの横幅、縦幅の指定をしないことで、二要素認証サーバ側が送信する画像ファイルに格納されたビットマップ画像の横幅、縦幅を、[0011]に記載されたプログラムが参照できるため、小規模な相互通信を行う事ができる。この点を使用して、既存Webアプリケーションのログイン画面側で、稼働するECMAScriptまたはJavaScriptのプログラムは、二要素認証サーバ上で行われている二要素認証処理の成否や進捗状況を把握できる。
この様に、1や2の方法では、別ドメインのWebコンテンツである二要素認証サーバからのWebコンテンツの内容を参照することが難しい。ただし、二要素認証サーバ上のWebコンテンツの形式のうち、画像ファイルをHTMLの〈img〉タグとして埋め込む3の方法では、埋め込み先〈img〉タグの横幅、縦幅の指定をしないことで、二要素認証サーバ側が送信する画像ファイルに格納されたビットマップ画像の横幅、縦幅を、[0011]に記載されたプログラムが参照できるため、小規模な相互通信を行う事ができる。この点を使用して、既存Webアプリケーションのログイン画面側で、稼働するECMAScriptまたはJavaScriptのプログラムは、二要素認証サーバ上で行われている二要素認証処理の成否や進捗状況を把握できる。
一方、二要素認証ワンタイムパスワードは、1桁目の数字表示用画像、2桁目の数字表示用画像、3桁目の数字表示用画像、4桁目の数字表示用画像など、画像ファイルとして問い合せ、これを利用者のWebブラウズ用コンピュータの画面に表示する。こちらについては、ワンタイムパスワードの実際の値を[0011]に記載されたプログラムが知る必要はなく、Webブラウズ用コンピュータの画面上に表示して利用者が知ることができれば良い。
利用者が携帯する携帯電話機上で稼働するプログラムは、[0014]に記載された即時通知機能を通じた通知を受信すると、利用者に対し、ワンタイムパスワードの入力を促す画面を表示、入力を待つ。
利用者が携帯する携帯電話機上で稼働するプログラムの画面にワンタイムパスワードが入力されると、[利用者が携帯する携帯電話機上で稼働するプログラムは、二要素認証サーバ上で稼働するプログラムに、指定された二要素認証トランザクション識別子と共に、入力されたワンタイムパスワードを送信する。
二要素認証サーバ上で稼働するプログラムであって、[0018]で送信されたワンタイムパスワードと、自身が生成したワンタイムパスワードを照合する。両者が一致する場合、当該二要素認証トランザクション識別子に対応付けられた二要素認証処理が成功した旨、記憶する。
[0011]に記載されたプログラムは、[0014]に記載されたプログラムに対して、定期的に当該トランザクションに対応付けられた二要素認証処理の成否を問い合わせる。二要素認証処理が成功したという応答を受信した際には、Webサーバに対して、パラメータを送付するために利用されるHTMLのHIDDEN項目に二要素認証トランザクション識別子を入れて、Webアプリケーションへのログイン処理を実行する。
既存のWebアプリケーションのログイン処理を担うプログラムは、[0020]に記載されたHTMLのHIDDEN項目に入れられた二要素認証トランザクション識別子をパラメータとし、二要素認証サーバに対して当該二要素認証トランザクション成功の正当性を問い合わせる。ここで正当性を確認できないログイン処理については、二要素認証が失敗したものとしてエラー画面を表示するなどのエラー処理を行う。
二要素認証サーバでは、各二要素認証トランザクションに対応する、二要素認証トランザクション識別子、時刻、状態を記録しており、[0021]に記載された問い合わせに対応できる様になっている。
利用者は、日ごろから携帯している携帯電話のみを使って、二要素認証システムを利用することができる。
既存のWebアプリケーションのログインページにECMAScriptあるいはJavaScriptプログラムを埋め込むためのリンク情報を追加、ログイン処理用のパラメータを追加するという数行のコード追加で、二要素認証機能を追加できる。
[0014]に記載されている様に、携帯電話機側に即時通知機能を通じた通知を行う事で、Webアプリケーションへの不正ログインの試みを即座に利用者が検知できる。
[0018]に記載されている様に、携帯電話機側でワンタイムパスワードを入力させることで、推測や総当たりによるWebアプリケーションへの不正ログインを防ぐことができる。
本件発明の具体的な実装においては、まずクライアント側でWebブラウザを搭載したパーソナルコンピュータあるいはタブレット型コンピュータを用い、二要素認証対象Webアプリケーションを格納したWebサーバ、および二要素認証サーバとしては、LinuxなどのWebサーバ機能を備えた一般的なサーバを用いる。また携帯電話機としては、米Apple社の提供するiPhone、または米Google社がオペレーティングシステムを提供するAndroidが搭載された携帯電話機を利用する。
既存Webアプリケーションのログイン画面側で稼働するECMAScriptまたはJavaScriptのプログラムは、ログインボタンを押された時点で動作を開始し、まず、当該ログイン処理に対応する二要素認証トランザクションを識別するために二要素認証トランザクション識別子を生成し、メモリ上に保持する。
図4で示された画面を構成するために、既存Webアプリケーションのログイン画面側で稼働するECMAScriptまたはJavaScriptのプログラムは、進捗状況を確認する画像を貼り付けるための領域Aを、HTMLの〈div〉タグを用いて、既存Webアプリケーションのログイン画面に挿入し、この領域の中に進捗状況確認用の画像を貼り付ける〈img〉タグを挿入する。この時、利用者はこの画像を見る必要はないので、〈div〉タグのStyle指定で、透明度を100%に設定し、領域A全体を透明にする。そして、この画像ファイルの〈img〉タグのsrc属性で指定される画像のURLを、ECMAScriptまたはJavaScriptのプログラムにより、1秒おきに更新することで、二要素サーバ側での処理状況を、画像ファイルの横幅の変化として、把握できる様にする。例えば、状態が「認証処理中」であれば、横幅が200ピクセル、「認証エラー」であれば、横幅が220ピクセルといった具合である。
二要素認証サーバ上で稼働するプログラム内には、二要素トランザクション識別子で指定された二要素認証トランザクションの状態によって横幅の異なるビットマップ画像をPNGファイルとして動的に生成する機能を持たせる。これはPerlスクリプト言語や他の多くのプログラム言語で実現可能である。
図4で示された画面を構成するために、既存Webアプリケーションのログイン画面側で稼働するECMAScriptまたはJavaScriptのプログラムは、既存Webアプリケーションのログイン画面に対して、靄が掛かった様に演出するための領域B用の〈div〉タグを挿入し、style指定で半透明とする。また、利用者に対してワンタイムパスワードによる認証を促すための画面要素を表示するために、図4に示す領域C用の〈div〉タグを挿入する
既存Webアプリケーションのログイン画面側で、稼働するECMAScriptまたはJavaScriptのプログラムが、二要素認証の正常終了を検知すると、メモリ上で保持していた二要素認証トランザクション識別子を、ログイン画面のHIDDEN項目として埋め込んだのち、既存Webアプリケーションのログイン処理を実行する。これにより、既存Webアプリケーションのログイン処理が行われ、既存Webサーバ上で稼働するプログラムが、ログイン処理を開始する。
既存Webサーバ上で稼働するプログラムは、従来のログイン処理では、利用者識別子とパスワードのみをログインの成否判定に利用しているが、二要素認証が正当に行われたかどうかを、検証しないと、[0032]で記載されたログイン処理を攻撃者が不正なHTMLコンテンツの改ざんにて行っているかどうか見分けることができない。このため、既存Webサーバ上で稼働するプログラムは従来のログイン判定に追加して、二要素認証サーバに対して、当該二要素認証処理が正当に行われたかどうかを確認する処理を行う。この時当該二要素認証を一意に識別するために、[0032]において、HIDDEN項目として埋め込まれた二要素認証識別子をパラメータとして二要素認証サーバに対するHTTPS通信を行う。なお、この時HTTPS通信にて通信を行う事で、二要素認証サーバのなりすましを防止することができる。
[0033]で記載された二要素認証の正当性確認が行われたのち、二要素認証サーバ上で稼働するプログラムは、当該二要素認証トランザクションの状態を「ログイン完了」とし、再度同じ二要素認証トランザクション識別子で状態を問い合わされたときに、状態不整合である旨の回答を、既存Webサーバ上で稼働するプログラムに対して行う。これにより、[0032]で行われるログイン処理時に攻撃者が、以前成功した二要素認証トランザクションの二要素認証トランザクション識別子を利用した、いわゆるリプレイ攻撃を防止する。
本発明により、既存のWebアプリケーションのログインページ、及びログイン処理を実行するプログラムに対して極めて小規模な機能追加を行うだけで、携帯電話機と連動した二要素認証機能を追加することが可能となる。
本発明により、現在、利用者識別子とパスワードという要素のみで認証を行っている多くのWebアプリケーションに対して、携帯電話機と連動した二要素認証機能を追加することが可能となり、セキュリティレベルの向上に役立つ。
Claims (3)
- 二要素認証機能の追加対象となるWebアプリケーションのログインページにECMASriptあるいはJavaScriptとして埋め込まれ、利用者のWebブラウズ用コンピュータで稼働するプログラムであって、ログインページから、ログインする利用者の利用者識別子入力欄を識別するためのオブジェクト名と、ログイン処理を実行するためのボタンのオブジェクト名をパラメータとして受け取った後、入力された利用者識別子をパラメータにして、二要素認証サーバにログイン認証要求を送信するプログラム。
- 請求項1のプログラムであって、二要素認証サーバから受信した画像ファイルに格納されたビットマップ画像の横幅、または縦幅を認識することで、二要素認証処理の進捗状況あるいは成否を検知するプログラム。
- 既存Webサーバ上で稼働するプログラムであって、利用者のログイン処理が行われる際に、HIDDEN項目として付与された、二要素認証トランザクション識別子をパラメータとして、二要素認証サーバにその妥当性を問い合わせるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014166950A JP2016035727A (ja) | 2014-08-03 | 2014-08-03 | 二要素認証システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014166950A JP2016035727A (ja) | 2014-08-03 | 2014-08-03 | 二要素認証システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016035727A true JP2016035727A (ja) | 2016-03-17 |
Family
ID=55523528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014166950A Pending JP2016035727A (ja) | 2014-08-03 | 2014-08-03 | 二要素認証システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016035727A (ja) |
-
2014
- 2014-08-03 JP JP2014166950A patent/JP2016035727A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10791126B2 (en) | System and methods for protecting users from malicious content | |
US20200304491A1 (en) | Systems and methods for using imaging to authenticate online users | |
TWI530894B (zh) | 資訊驗證的方法、相關裝置及系統 | |
KR101214839B1 (ko) | 인증 방법 및 그 시스템 | |
US20160112437A1 (en) | Apparatus and Method for Authenticating a User via Multiple User Devices | |
TR201810238T4 (tr) | Bir mobil kimlik doğrulama uygulaması kullanarak kullanıcıya uygun kimlik doğrulama yöntemi ve aparatı. | |
KR20170040122A (ko) | 인증 장치의 등록을 위한 향상된 보안 | |
CN104967586B (zh) | 一种用户身份验证方法、装置及系统 | |
US20190373002A1 (en) | Method and system for detecting credential stealing attacks | |
CN104468531A (zh) | 敏感数据的授权方法、装置和系统 | |
US10735436B1 (en) | Dynamic display capture to verify encoded visual codes and network address information | |
US10666656B2 (en) | Systems and methods for protecting users from malicious content | |
Ferry et al. | Security evaluation of the OAuth 2.0 framework | |
CN102073822A (zh) | 防止用户信息泄漏的方法及系统 | |
TWI668586B (zh) | Data communication method and system, client and server | |
KR101027228B1 (ko) | 인터넷 보안을 위한 본인인증 장치, 그 방법 및 이를 기록한 기록매체 | |
CN104618356B (zh) | 身份验证方法及装置 | |
JP6059788B2 (ja) | カード装置を用いたネットワーク認証方法 | |
JP6349188B2 (ja) | ユーザ認証装置 | |
CN104917755A (zh) | 一种基于移动通信终端和短信的登录方法 | |
JP2016170464A (ja) | ウェブシステム、ウェブクライアント装置および改ざん検査装置 | |
KR101742105B1 (ko) | Qr코드를 통한 전화번호 보안 인증 장치, 시스템 및 방법 | |
Gibbons et al. | Security evaluation of the OAuth 2.0 framework | |
JP2016035727A (ja) | 二要素認証システム | |
JP6778988B2 (ja) | 認証情報生成プログラム、認証情報生成装置、及び認証情報生成方法 |