(57)【要約】      （修正有）【課題】既存Ｗｅｂアプリケーションに対して、利用者の携帯する携帯電話機と連動した二要素認証を可能とする。【解決手段】既存Ｗｅｂアプリケーションのログインページに、ＥＣＭＡＳｒｉｐｔあるいはＪａｖａＳｃｒｉｐｔ（登録商標）にて記述されたプログラムを埋め込むことにより、利用者のログインの際に入力される利用者識別子を、二要素認証サーバ上で稼働するプログラムに転送する。これを受信した二要素認証サーバ上のプログラムは、利用者識別子に対応する二要素認証専用利用者識別子をＷｅｂサーバ上で稼働するプログラムに問合せた後、二要素認証専用利用者識別子に対応する携帯電話機上で稼働するプログラムに、即時通知機能を利用して既存Ｗｅｂアプリケーションへの二要素認証が必要である旨、通知を行う。この通知を受けた携帯電話機上のプログラムの画面に対して利用者がワンタイムパスワードを入力する。【選択図】図１
2016035727.tif 000002
【特許請求の範囲】
【請求項１】
二要素認証機能の追加対象となるＷｅｂアプリケーションのログインページにＥＣＭＡＳｒｉｐｔあるいはＪａｖａＳｃｒｉｐｔとして埋め込まれ、利用者のＷｅｂブラウズ用コンピュータで稼働するプログラムであって、ログインページから、ログインする利用者の利用者識別子入力欄を識別するためのオブジェクト名と、ログイン処理を実行するためのボタンのオブジェクト名をパラメータとして受け取った後、入力された利用者識別子をパラメータにして、二要素認証サーバにログイン認証要求を送信するプログラム。
【請求項２】
請求項１のプログラムであって、二要素認証サーバから受信した画像ファイルに格納されたビットマップ画像の横幅、または縦幅を認識することで、二要素認証処理の進捗状況あるいは成否を検知するプログラム。
【請求項３】
既存Ｗｅｂサーバ上で稼働するプログラムであって、利用者のログイン処理が行われる際に、ＨＩＤＤＥＮ項目として付与された、二要素認証トランザクション識別子をパラメータとして、二要素認証サーバにその妥当性を問い合わせるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】本発明は既存のＷｅｂアプリケーションのログイン画面に対して、小規模なコード追加を行うだけで、二要素認証機能を追加できる方法を提供するためのシステムである。
【背景技術】
【０００２】近年、クラウド化という潮流の下、各種のソフトウェア機能が、インターネットなどのＩＰ通信網を通じてＷｅｂブラウザ上で操作できるものとして普及している。こうしたＷｅｂブラウザ上で操作できるソフトウェア機能を、Ｗｅｂアプリケーションと呼ぶが、多くのＷｅｂアプリケーションでは、利用者の認証に利用者識別子とパスワードのみを用いている。しかしながら、利用者識別子とパスワードだけを要素とする認証方式は、利用者識別子やパスワードの推測、あるいは総当たりという攻撃手法に対して脆弱である。【０００３】利用者識別子とパスワードの代わりに、公開鍵基盤に基づく電子証明書を利用する方式の一つとして、秘密鍵を計算機内に暗号化して格納する方式があり、これもＷｅｂブラウザとＷｅｂサーバ間で、利用者を認証する方式として利用できる。しかしながらこの方式では、利用者の操作次第で秘密鍵をファイルとして抽出することが可能となり、これを悪意のある第三者が行うことで秘密鍵の不正利用が可能となる。またこの際に正当な利用者が秘密鍵の紛失に気づくことが困難である。【０００４】利用者識別子とパスワードの代わりに、公開鍵基盤に基づく電子証明書を利用するもう一つの方式として、秘密鍵をＩＣチップなどの専用の小型デバイスに格納する方式もある。この方式では、ＩＣチップから秘密鍵を抽出することは非常に困難であり、また当該小型デバイスの紛失を認識することは容易である。しかし、デバイスの形状によっては、主に外出先での利用が物理的に不便と感じられることが多い。特にカード型デバイスとそれを読み取るための装置を用いる方式では特に物理的な不便さ、つまり利用する際の占有作業面積の問題、また携帯する物品が多くなるという問題が発生する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】Ｗｅｂアプリケーションにログインする際に、利用者識別子とパスワードのみを認証要素とする認証方式には脆弱性があるため、ワンタイムパスワードなど、利用者識別子とパスワード以外の認証要素を追加するためには、既存Ｗｅｂアプリケーションに対する機能追加に掛かる工数が必要となり、この工数が軽微ではない。【０００６】一方で、既存のＷｅｂアプリケーションに対して、別のＷｅｂサーバである二要素認証サーバ上のＷｅｂコンテンツを埋め込む場合、ＨＴＭＬのｉＦｒａｍｅタグを使うと、クロスサイトスクリプティングなどの攻撃手法への対策から、多くのＷｅｂブラウザでは、相互のオブジェクトをＥＣＭＡＳｃｒｉｐｔまたはＪａｖａＳｃｒｉｐｔにてアクセスできない。【０００７】Ｗｅｂアプリケーションにログインする際に、ワンタイムパスワードを当該Ｗｅｂアプリケーション側に入力する方式の場合、推測や総当たりにより、不正なログインを許してしまう可能性が０ではない。【０００８】認証要素を追加するにあたり、利用者に対して追加の携帯物品を要求する方式を採用した場合、携帯物品が増えるという点で、利用者にとっての利便性が損なわれる。
【課題を解決するための手段】
【０００９】本発明は、図１に示すとおり、利用者が携帯している携帯電話機上で稼働するプログラム、利用者が利用するＷｅｂブラウズ用コンピュータ、Ｗｅｂサーバ上で稼働し、利用者が最終的に利用を目的としているサービスを提供するＷｅｂアプリケーション、および二要素認証サーバ上で稼働するプログラムから構成される。【００１０】利用者は目的となるＷｅｂアプリケーションの利用に向けて、まずはＷｅｂブラウズ用コンピュータ上で稼働するＷｅｂブラウザを操作して、ＩＰ通信網を通じ、目的となるＷｅｂアプリケーションが稼働する既存Ｗｅｂサーバにアクセスする。【００１１】Ｗｅｂアプリケーションのログインページには、二要素認証機能実現のためのＥＣＭＡＳｒｉｐｔあるいはＪａｖａＳｃｒｉｐｔプログラムが埋め込まれており、このプログラムが利用者のＷｅｂブラウズ用コンピュータで稼働すると、対象となるログインページから、ログインする利用者の利用者識別子入力欄のオブジェクト名と、ログイン処理を実行するためのボタンのオブジェクト名をパラメータとして受け取った後、入力された利用者識別子をパラメータにして、二要素認証サーバに対し、二要素認証要求を送信する。また、この時当該二要素認証トランザクションを一意に区別するために、二要素認証トランザクション識別子を生成し、パラメータに加える。【００１２】二要素認証サーバ上で稼働するプログラムは、［００１１］に記載されたプログラムから、二要素認証要求を受信すると、二要素認証の状態および履歴管理テーブルに、当該二要素認証トランザクションに関する、二要素認証トランザクション識別子、時刻、状態を格納する。この時、状態としては、「二要素認証専用利用者識別子問合せ中」を示す値を格納する。その後パラメータとして付加されてきた利用者識別子を元に、二要素認証機能の追加対象となるＷｅｂアプリケーションに、利用者識別子に対応付けられた二要素認証専用利用者識別子を問い合わせる。【００１３】既存Ｗｅｂサーバ上で稼働するプログラムは、［００１２］の問い合わせを受けると、自身の持つ情報を検索し、指定された利用者識別子に対応する二要素認証専用利用者識別子を返却する。【００１４】二要素認証サーバ上で稼働するプログラムは、［００１３］の応答により二要素認証専用利用者識別子を取得すると、二要素認証の状態および履歴管理テーブル上に格納された、当該二要素認証トランザクションに関する、レコードに二要素認証専用利用者識別子を格納し、状態を二要素認証処理中に更新する。その後、携帯電話機上で稼働するプログラムに対して、携帯電話機のオペレーティングシステムが提供する、即時通知機能を用い、二要素認証機能の追加対象となるＷｅｂアプリケーションへのログインが行われようとしていることを通知する。二要素認証トランザクション識別子をパラメータとして付加する。これに先立ち４桁程度の英数字からなるワンタイムパスワードを割り当て、二要素認証の状態および履歴管理テーブル上に格納された、当該二要素認証トランザクションに関するレコードに格納する。【００１５】［００１１］に記載されたプログラムは、定期的に［００１４］に記載されたプログラムに対して、二要素認証トランザクションの状態を確認する必要がある。この時、図４で示されているＷｅｂ画面を構成する各Ｗｅｂコンテンツのうち、既存Ｗｅｂアプリケーションのログイン画面および［００１１］に記載されたプログラムは、既存Ｗｅｂサーバのドメイン上で動作するものとして、Ｗｅｂブラウザに認識される。このプログラムから、二要素認証サーバ側のドメインのＷｅｂコンテンツを図４の領域Ａの〈ｄｉｖ〉タグ内に埋め込む方法としては、１．ＨＴＭＬの〈ｉｆｒａｍｅ〉タグを用いて、外部ＨＴＭＬを埋め込む方法、２．ＥＣＭＡＳｒｉｐｔあるいはＪａｖａＳｃｒｉｐｔの持つＨＴＴＰ、ＨＴＴＰＳ通信機能を用いて二要素認証サーバ側と通信し、結果をそのまま、あるいは加工して既存Ｗｅｂアプリケーションのログイン画面内に追記する方法などが一般的に想定される。しかし、［０００６］に記載されている様に、クロスサイトスクリプティングへの対策から、多くのＷｅｂブラウザでは、１の方法の場合には、埋め込んだＨＴＭＬの内容を［００１１］に記載されたプログラムから参照できない他、２の方法は、ＥＣＭＡＳｒｉｐｔあるいはＪａｖａＳｃｒｉｐｔが二要素認証サーバに対してＨＴＴＰ、ＨＴＴＰＳ通信を行おうとした時点でセキュリティの観点でエラーになる。
この様に、１や２の方法では、別ドメインのＷｅｂコンテンツである二要素認証サーバからのＷｅｂコンテンツの内容を参照することが難しい。ただし、二要素認証サーバ上のＷｅｂコンテンツの形式のうち、画像ファイルをＨＴＭＬの〈ｉｍｇ〉タグとして埋め込む３の方法では、埋め込み先〈ｉｍｇ〉タグの横幅、縦幅の指定をしないことで、二要素認証サーバ側が送信する画像ファイルに格納されたビットマップ画像の横幅、縦幅を、［００１１］に記載されたプログラムが参照できるため、小規模な相互通信を行う事ができる。この点を使用して、既存Ｗｅｂアプリケーションのログイン画面側で、稼働するＥＣＭＡＳｃｒｉｐｔまたはＪａｖａＳｃｒｉｐｔのプログラムは、二要素認証サーバ上で行われている二要素認証処理の成否や進捗状況を把握できる。【００１６】一方、二要素認証ワンタイムパスワードは、１桁目の数字表示用画像、２桁目の数字表示用画像、３桁目の数字表示用画像、４桁目の数字表示用画像など、画像ファイルとして問い合せ、これを利用者のＷｅｂブラウズ用コンピュータの画面に表示する。こちらについては、ワンタイムパスワードの実際の値を［００１１］に記載されたプログラムが知る必要はなく、Ｗｅｂブラウズ用コンピュータの画面上に表示して利用者が知ることができれば良い。【００１７】利用者が携帯する携帯電話機上で稼働するプログラムは、［００１４］に記載された即時通知機能を通じた通知を受信すると、利用者に対し、ワンタイムパスワードの入力を促す画面を表示、入力を待つ。【００１８】利用者が携帯する携帯電話機上で稼働するプログラムの画面にワンタイムパスワードが入力されると、［利用者が携帯する携帯電話機上で稼働するプログラムは、二要素認証サーバ上で稼働するプログラムに、指定された二要素認証トランザクション識別子と共に、入力されたワンタイムパスワードを送信する。【００１９】二要素認証サーバ上で稼働するプログラムであって、［００１８］で送信されたワンタイムパスワードと、自身が生成したワンタイムパスワードを照合する。両者が一致する場合、当該二要素認証トランザクション識別子に対応付けられた二要素認証処理が成功した旨、記憶する。【００２０】［００１１］に記載されたプログラムは、［００１４］に記載されたプログラムに対して、定期的に当該トランザクションに対応付けられた二要素認証処理の成否を問い合わせる。二要素認証処理が成功したという応答を受信した際には、Ｗｅｂサーバに対して、パラメータを送付するために利用されるＨＴＭＬのＨＩＤＤＥＮ項目に二要素認証トランザクション識別子を入れて、Ｗｅｂアプリケーションへのログイン処理を実行する。【００２１】既存のＷｅｂアプリケーションのログイン処理を担うプログラムは、［００２０］に記載されたＨＴＭＬのＨＩＤＤＥＮ項目に入れられた二要素認証トランザクション識別子をパラメータとし、二要素認証サーバに対して当該二要素認証トランザクション成功の正当性を問い合わせる。ここで正当性を確認できないログイン処理については、二要素認証が失敗したものとしてエラー画面を表示するなどのエラー処理を行う。【００２２】二要素認証サーバでは、各二要素認証トランザクションに対応する、二要素認証トランザクション識別子、時刻、状態を記録しており、［００２１］に記載された問い合わせに対応できる様になっている。
【発明の効果】
【００２３】利用者は、日ごろから携帯している携帯電話のみを使って、二要素認証システムを利用することができる。【００２４】既存のＷｅｂアプリケーションのログインページにＥＣＭＡＳｃｒｉｐｔあるいはＪａｖａＳｃｒｉｐｔプログラムを埋め込むためのリンク情報を追加、ログイン処理用のパラメータを追加するという数行のコード追加で、二要素認証機能を追加できる。【００２５】［００１４］に記載されている様に、携帯電話機側に即時通知機能を通じた通知を行う事で、Ｗｅｂアプリケーションへの不正ログインの試みを即座に利用者が検知できる。【００２６】［００１８］に記載されている様に、携帯電話機側でワンタイムパスワードを入力させることで、推測や総当たりによるＷｅｂアプリケーションへの不正ログインを防ぐことができる。
【発明を実施するための最良の形態】
【００２７】本件発明の具体的な実装においては、まずクライアント側でＷｅｂブラウザを搭載したパーソナルコンピュータあるいはタブレット型コンピュータを用い、二要素認証対象Ｗｅｂアプリケーションを格納したＷｅｂサーバ、および二要素認証サーバとしては、ＬｉｎｕｘなどのＷｅｂサーバ機能を備えた一般的なサーバを用いる。また携帯電話機としては、米Ａｐｐｌｅ社の提供するｉＰｈｏｎｅ、または米Ｇｏｏｇｌｅ社がオペレーティングシステムを提供するＡｎｄｒｏｉｄが搭載された携帯電話機を利用する。【００２８】既存Ｗｅｂアプリケーションのログイン画面側で稼働するＥＣＭＡＳｃｒｉｐｔまたはＪａｖａＳｃｒｉｐｔのプログラムは、ログインボタンを押された時点で動作を開始し、まず、当該ログイン処理に対応する二要素認証トランザクションを識別するために二要素認証トランザクション識別子を生成し、メモリ上に保持する。【００２９】図４で示された画面を構成するために、既存Ｗｅｂアプリケーションのログイン画面側で稼働するＥＣＭＡＳｃｒｉｐｔまたはＪａｖａＳｃｒｉｐｔのプログラムは、進捗状況を確認する画像を貼り付けるための領域Ａを、ＨＴＭＬの〈ｄｉｖ〉タグを用いて、既存Ｗｅｂアプリケーションのログイン画面に挿入し、この領域の中に進捗状況確認用の画像を貼り付ける〈ｉｍｇ〉タグを挿入する。この時、利用者はこの画像を見る必要はないので、〈ｄｉｖ〉タグのＳｔｙｌｅ指定で、透明度を１００％に設定し、領域Ａ全体を透明にする。そして、この画像ファイルの〈ｉｍｇ〉タグのｓｒｃ属性で指定される画像のＵＲＬを、ＥＣＭＡＳｃｒｉｐｔまたはＪａｖａＳｃｒｉｐｔのプログラムにより、１秒おきに更新することで、二要素サーバ側での処理状況を、画像ファイルの横幅の変化として、把握できる様にする。例えば、状態が「認証処理中」であれば、横幅が２００ピクセル、「認証エラー」であれば、横幅が２２０ピクセルといった具合である。【００３０】二要素認証サーバ上で稼働するプログラム内には、二要素トランザクション識別子で指定された二要素認証トランザクションの状態によって横幅の異なるビットマップ画像をＰＮＧファイルとして動的に生成する機能を持たせる。これはＰｅｒｌスクリプト言語や他の多くのプログラム言語で実現可能である。【００３１】図４で示された画面を構成するために、既存Ｗｅｂアプリケーションのログイン画面側で稼働するＥＣＭＡＳｃｒｉｐｔまたはＪａｖａＳｃｒｉｐｔのプログラムは、既存Ｗｅｂアプリケーションのログイン画面に対して、靄が掛かった様に演出するための領域Ｂ用の〈ｄｉｖ〉タグを挿入し、ｓｔｙｌｅ指定で半透明とする。また、利用者に対してワンタイムパスワードによる認証を促すための画面要素を表示するために、図４に示す領域Ｃ用の〈ｄｉｖ〉タグを挿入する【００３２】既存Ｗｅｂアプリケーションのログイン画面側で、稼働するＥＣＭＡＳｃｒｉｐｔまたはＪａｖａＳｃｒｉｐｔのプログラムが、二要素認証の正常終了を検知すると、メモリ上で保持していた二要素認証トランザクション識別子を、ログイン画面のＨＩＤＤＥＮ項目として埋め込んだのち、既存Ｗｅｂアプリケーションのログイン処理を実行する。これにより、既存Ｗｅｂアプリケーションのログイン処理が行われ、既存Ｗｅｂサーバ上で稼働するプログラムが、ログイン処理を開始する。【００３３】既存Ｗｅｂサーバ上で稼働するプログラムは、従来のログイン処理では、利用者識別子とパスワードのみをログインの成否判定に利用しているが、二要素認証が正当に行われたかどうかを、検証しないと、［００３２］で記載されたログイン処理を攻撃者が不正なＨＴＭＬコンテンツの改ざんにて行っているかどうか見分けることができない。このため、既存Ｗｅｂサーバ上で稼働するプログラムは従来のログイン判定に追加して、二要素認証サーバに対して、当該二要素認証処理が正当に行われたかどうかを確認する処理を行う。この時当該二要素認証を一意に識別するために、［００３２］において、ＨＩＤＤＥＮ項目として埋め込まれた二要素認証識別子をパラメータとして二要素認証サーバに対するＨＴＴＰＳ通信を行う。なお、この時ＨＴＴＰＳ通信にて通信を行う事で、二要素認証サーバのなりすましを防止することができる。【００３４】［００３３］で記載された二要素認証の正当性確認が行われたのち、二要素認証サーバ上で稼働するプログラムは、当該二要素認証トランザクションの状態を「ログイン完了」とし、再度同じ二要素認証トランザクション識別子で状態を問い合わされたときに、状態不整合である旨の回答を、既存Ｗｅｂサーバ上で稼働するプログラムに対して行う。これにより、［００３２］で行われるログイン処理時に攻撃者が、以前成功した二要素認証トランザクションの二要素認証トランザクション識別子を利用した、いわゆるリプレイ攻撃を防止する。
【産業上の利用可能性】
【００３５】本発明により、既存のＷｅｂアプリケーションのログインページ、及びログイン処理を実行するプログラムに対して極めて小規模な機能追加を行うだけで、携帯電話機と連動した二要素認証機能を追加することが可能となる。【００３６】本発明により、現在、利用者識別子とパスワードという要素のみで認証を行っている多くのＷｅｂアプリケーションに対して、携帯電話機と連動した二要素認証機能を追加することが可能となり、セキュリティレベルの向上に役立つ。
【図面の簡単な説明】
【００３７】
【図１】本発明を実現するための構成要素
【図２】二要素認証専用利用者情報管理テーブルの形式
【図３】二要素認証の状態および履歴管理テーブルの形式
【図１】
2016035727.tif 000003
【図２】
2016035727.tif 000004
【図３】
2016035727.tif 000005
【図４】
2016035727.tif 000006
【手続補正書】
【提出日】平成26年9月15日(2014.9.15)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３７
【補正方法】変更
【補正の内容】
【００３７】
【図１】本発明を実現するための構成要素
【図２】二要素認証専用利用者情報管理テーブルの形式
【図３】二要素認証の状態および履歴管理テーブルの形式
【図４】二要素認証を行う際の画面構成