IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社 エヌティーアイの特許一覧 ▶ 株式会社ナンバーワンソリューションズの特許一覧

<>
  • 特許-本人認証システム及び本人認証方法 図1
  • 特許-本人認証システム及び本人認証方法 図2
  • 特許-本人認証システム及び本人認証方法 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-10
(45)【発行日】2023-05-18
(54)【発明の名称】本人認証システム及び本人認証方法
(51)【国際特許分類】
   G06F 21/31 20130101AFI20230511BHJP
【FI】
G06F21/31
【請求項の数】 9
(21)【出願番号】P 2021097320
(22)【出願日】2021-06-10
(65)【公開番号】P2022188998
(43)【公開日】2022-12-22
【審査請求日】2023-03-24
【早期審査対象出願】
(73)【特許権者】
【識別番号】398030229
【氏名又は名称】株式会社 エヌティーアイ
(73)【特許権者】
【識別番号】518307846
【氏名又は名称】株式会社ナンバーワンソリューションズ
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】中村 貴利
(72)【発明者】
【氏名】高橋 直太
【審査官】平井 誠
(56)【参考文献】
【文献】特開2003-233591(JP,A)
【文献】特開2004-192193(JP,A)
【文献】特表2014-501953(JP,A)
【文献】特開2004-153300(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00-88
(57)【特許請求の範囲】
【請求項1】
サーバシステムに備えられるトークン管理部、WEB-IF(インターフェース)部、及びOTP(ワンタイムパスワード)管理部と、
WEBブラウザを有するユーザ端末に備えられるトークン管理部と
を備え、
前記サーバシステムの前記トークン管理部が、トークンを生成し、
前記サーバシステムの前記WEB-IF部が、当該生成されたトークンをHTTPで前記ユーザ端末に送信し、
前記ユーザ端末の前記トークン管理部が、前記サーバシステムからの前記トークンを保存し、
前記サーバシステムの前記OTP管理部が、ユーザの本人認証に必要な発行されたOTPを、前記生成され前記ユーザが関連付けられたトークンに関連付け、
前記サーバシステムの前記OTP管理部が、当該トークンに基づく文字列を有するリンクであるOTPリンクが記述されたユーザ宛のリンク通知を送信し、
前記発行されたリンク通知に記述されている前記OTPリンクが指定された場合、
前記ユーザ端末の前記トークン管理部が、当該指定されたOTPリンクが有する文字列の基になっているトークンと、前記保存されたトークンとが一致するか否かを判定し、
当該判定の結果が肯定の場合に前記ユーザ端末により当該OTPリンクに従うHTTPリクエストが送信され、
前記OTPリンクに従うHTTPリクエストを前記サーバシステムが受信した場合、前記サーバシステムの前記WEB-IF部が、前記OTPのHTTPレスポンスを前記ユーザ端末に送信し、前記ユーザ端末の前記WEBブラウザが、当該OTPを表示し、
前記ユーザの本人認証成功の要件が、前記ユーザにより入力されたOTPが、前記ユーザが関連付けられているトークンに関連付けられているOTPに一致していることである、
本人認証システム。
【請求項2】
前記サーバシステムの前記WEB-IF部が、本人認証用の情報の入力を受け付けるWEBページである第1のWEBページと、OTPの入力を受け付けるWEBページである第2のWEBページとを提供するようになっており、
前記第1のWEBページと前記第2のWEBページとのうちの少なくとも一つのWEBページが、前記生成されたトークンを有する、
請求項1に記載の本人認証システム。
【請求項3】
前記サーバシステムが、暗号化部とサーバ鍵とを有し、
前記ユーザ端末が、暗号化部とユーザ鍵とを有し、
前記サーバシステムの前記暗号化部が、前記ユーザ端末にHTTPで送信される情報である対象情報を、前記サーバ鍵と、前記生成されたトークンであるサーバ側暗号化用パスワードとを用いて暗号化し、前記サーバシステムの前記WEB-IF部が、当該暗号化された対象情報である第1の暗号化情報を前記ユーザ端末にHTTPで送信し、
前記ユーザ端末の前記暗号化部が、前記サーバシステムからの前記第1の暗号化情報を、前記ユーザ鍵と、前記保存されたトークンであるユーザ側暗号化用パスワードとを用いて暗号化し、前記ユーザ端末の前記WEBブラウザが、当該暗号化された第1の暗号化情報である第2の暗号化情報を前記サーバシステムにHTTPで送信し、
前記サーバシステムの前記暗号化部が、前記ユーザ端末からの前記第2の暗号化情報を、前記サーバ鍵と、前記サーバ側暗号化用パスワードと同じパスワードとを用いて復号し、前記サーバシステムの前記WEB-IF部が、当該復号された第2の暗号化情報である第1の暗号化情報を前記ユーザ端末にHTTPで送信し、
前記ユーザ端末の前記暗号化部が、前記サーバシステムからの前記第1の暗号化情報を、前記ユーザ鍵と、前記ユーザ側暗号化用パスワードと同じパスワードとを用いて復号することで、前記対象情報を得る、
請求項1又は2に記載の本人認証システム。
【請求項4】
前記対象情報は、前記OTPである、
請求項3に記載の本人認証システム。
【請求項5】
前記サーバシステムが、暗号化部とサーバ鍵とを有し、
前記ユーザ端末が、暗号化部とユーザ鍵とを有し、
前記ユーザ端末の前記暗号化部が、前記サーバシステムにHTTPで送信される情報である対象情報を、前記ユーザ鍵と、前記保存されたトークンと前記サーバシステムからのOTPとのうちの少なくとも一つであるユーザ側暗号化用パスワードとを用いて暗号化し、前記ユーザ端末の前記WEBブラウザが、当該暗号化された対象情報である第1の暗号化情報を前記サーバシステムにHTTPで送信し、
前記サーバシステムの前記暗号化部が、前記ユーザ端末からの前記第1の暗号化情報を、前記サーバ鍵と、前記生成されたトークンと前記発行されたOTPとのうちの少なくとも一つであるサーバ側暗号化用パスワードとを用いて暗号化し、前記サーバシステムの前記WEB-IF部が、当該暗号化された第1の暗号化情報である第2の暗号化情報を前記ユーザ端末にHTTPで送信し、
前記ユーザ端末の前記暗号化部が、前記サーバシステムからの前記第2の暗号化情報を、前記ユーザ鍵と、前記ユーザ側暗号化用パスワードと同じパスワードとを用いて復号し、前記ユーザ端末の前記WEBブラウザが、当該復号された第2の暗号化情報である第1の暗号化情報を前記サーバシステムにHTTPで送信し、
前記サーバシステムの前記暗号化部が、前記ユーザ端末からの前記第1の暗号化情報を、前記サーバ鍵と、前記サーバ側暗号化用パスワードと同じパスワードとを用いて復号することで、前記対象情報を得る、
請求項1又は2に記載の本人認証システム。
【請求項6】
前記対象情報は、前記ユーザ端末の前記WEBブラウザにより表示されたWEBページに対してユーザにより入力された情報である、
請求項5に記載の本人認証システム。
【請求項7】
前記サーバシステムが、暗号化部とサーバ鍵とを有し、
前記ユーザ端末が、暗号化部とユーザ鍵とを有し、
前記ユーザ端末の前記WEBブラウザと前記サーバシステムの前記WEB-IF部間の通信のプロトコルが第1のHTTPから第2のHTTPに遷移し、
前記第2のHTTPに従う通信は、多重暗号通信であり、
前記多重暗号通信の対象は、前記ユーザ端末の前記WEBブラウザから前記サーバシステムの前記WEB-IF部へ送信される情報と、前記サーバシステムの前記WEB-IF部から前記ユーザ端末の前記WEBブラウザへ送信される情報との少なくとも一部であり、
前記多重暗号は、前記サーバシステムの前記暗号化部による前記サーバ鍵とサーバ側の暗号化用パスワードとを用いた暗号化と、前記ユーザ端末の前記暗号化部による前記ユーザ鍵とユーザ側の暗号化用パスワードとを用いた暗号化とを含み、
前記サーバ側の暗号化用パスワードと前記ユーザ側の暗号化用パスワードとのいずれも、前記トークンと、前記トークンを暗号化用パスワードとして用いた多重暗号通信において前記サーバシステムと前記ユーザ端末間で送受信された情報とのうちの少なくとも一つである、
請求項1乃至6のうちのいずれか1項に記載の本人認証システム。
【請求項8】
WEBブラウザを有するユーザ端末と通信するサーバシステムにより行われる本人認証方法であって、
トークンを生成し、
当該生成され前記ユーザ端末により保存されるトークンをHTTPで前記ユーザ端末に送信し、
前記生成されたトークンにユーザを関連付け、
発行されたOTPを、前記生成され前記ユーザが関連付けられたトークンに関連付け、
前記生成されたトークンに基づく文字列を有するリンクであるOTPリンクが記述されたユーザ宛のリンク通知を送信し、
前記発行されたリンク通知上の指定されたOTPリンクが有する文字列の基になっているトークンと、前記保存されたトークンとが一致することが前記ユーザ端末により判定された場合に、当該OTPリンクに従うHTTPリクエストを受信し、前記OTPのHTTPレスポンスを前記ユーザ端末に送信し、
前記ユーザの本人認証成功の要件が、前記ユーザにより入力されたOTPが、前記ユーザが関連付けられているトークンに関連付けられているOTPに一致していることである、
本人認証方法。
【請求項9】
請求項1に記載のサーバシステムと通信しWEBブラウザを有するユーザ端末に請求項1に記載のトークン管理部の動作を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、概して、本人認証に関する。
【背景技術】
【0002】
ワンタイムパスワード(以下、OTP)を利用した本人認証技術が知られている。「OTP」とは、一回だけ利用可能な文字列(一般的には乱数)である。「文字列」は、複数(又は一つ)の文字で構成されており、各文字は、アルファベット、数字及びその他の符号のうちのいずれかでよい。また、典型的には、OTPは、使用可能な回数の上限が1である文字列であるが、本明細書で使用する「OTP」は、使用可能な回数の上限が2以上である拡張されたOTPであってもよいし、使用可能な回数に代えて又は加えて、使用可能な期間の上限が定められた拡張されたOTPであってもよい。
【0003】
OTPを利用した本人認証技術として、例えば特許文献1に開示の技術が知られている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2011-215940号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
インターネット経由でのサービスの提供にはWEB機能が利用される。WEB機能とは、一般に、ユーザ端末のWEBブラウザからURL(Uniform Resource Locator)を指定したリクエストをサーバシステムへ送り、そのURLに従うHTML(Hypertext Markup Language)ファイルをサーバシステムがユーザ端末のWEBブラウザに表示させる機能である。
【0006】
本人認証に必要なOTPも、WEB機能を利用して提供することができれば、ユーザの利便性が向上する。しかし、WEB機能を利用してユーザに安全にOTPを提供する方法は存在しない。ユーザと通信経路の両方を正しく確認することができないためである。
【0007】
そこで、OTPを利用する本人認証方法として、一般に、二段階認証が採用されている。二段階認証では、OTPをユーザに伝える方法として、メール、SMS(Short Message Service)、ドングル(ハードウェアトークン)、電話音声、又は、アプリ(例えば、ブラウザ又はサービス用アプリとは別のアプリとしてのOTP発行用アプリ)が利用される。
【0008】
しかし、二段階認証では、フィッシング詐欺を防ぐことができない。すなわち、悪意のある第三者に、偽のWEB画面を介してユーザが入力した認証情報(例えばID及びパスワード)が取得され、且つ、OTPも取得されてしまうと、その悪意のある第三者がユーザ本人に成り済ますことができてしまう。
【課題を解決するための手段】
【0009】
WEBブラウザを有するユーザ端末と通信するサーバシステムが、トークンを生成し、当該生成されユーザ端末により保存されるトークンをHTTPで送信する。サーバシステムが、上記生成されたトークンにユーザを関連付け、発行されたOTPを、上記生成されユーザが関連付けられたトークンに関連付ける。サーバシステムが、上記生成されたトークンに基づく文字列を有するリンクであるOTPリンクが記述されたユーザ宛のリンク通知を送信する。発行されたリンク通知上の指定されたOTPリンクが有する文字列の基になっているトークンと、保存されたトークンとが一致する場合に、サーバシステムが、当該OTPリンクに従うHTTPリクエストをユーザ端末から受信し、OTPのHTTPレスポンスをユーザ端末に送信する。ユーザにより入力されたOTPが、ユーザが関連付けられているトークンに関連付けられているOTPに一致していることが、ユーザの本人認証成功の要件である。
【発明の効果】
【0010】
本発明によれば、OTPをWEB機能で安全に提供することができる。
【図面の簡単な説明】
【0011】
図1】本発明の一実施形態に係るシステム構成を示す図である。
図2】本発明の一実施形態において行われる認証処理の一部である。
図3】本発明の一実施形態において行われる認証処理の残りである。
【発明を実施するための形態】
【0012】
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/O(Input/Output)インターフェースデバイスは、I/Oデバイスと遠隔の表示用計算機とのうちの少なくとも一つに対するインターフェースデバイスである。表示用計算機に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボードおよびポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
【0013】
また、以下の説明では、「メモリ」は、一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
【0014】
また、以下の説明では、「永続記憶装置」は、一つ以上の永続記憶デバイスである。永続記憶デバイスは、典型的には、不揮発性の記憶デバイス(例えば補助記憶デバイス)であり、具体的には、例えば、HDD(Hard Disk Drive)またはSSD(Solid State Drive)である。
【0015】
また、以下の説明では、「記憶装置」は、メモリと永続記憶装置の少なくともメモリでよい。
【0016】
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサデバイスである。少なくとも一つのプロセッサデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサデバイスであるが、GPU(Graphics Processing Unit)のような他種のプロセッサデバイスでもよい。少なくとも一つのプロセッサデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサデバイスは、プロセッサコアでもよい。少なくとも一つのプロセッサデバイスは、処理の一部または全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)またはASIC(Application Specific Integrated Circuit))といった広義のプロセッサデバイスでもよい。
【0017】
また、以下の説明では、「yyy部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、一つ以上のハードウェア回路(例えばFPGAまたはASIC)によって実現されてもよいし、それらの組合せによって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置および/またはインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機または計算機が読み取り可能な記憶媒体(例えば非一時的な記憶媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
【0018】
以下、図面を参照して、本発明の一実施形態を詳述する。なお、以下の実施形態では、本人認証の一例としてログイン認証が採用され、本人認証用の認証情報としてID及びパスワードといったログイン情報が採用され、本人認証用の認証情報の入力のためのWEBページとしてID及びパスワードが入力されるログインページが採用される。
【0019】
図1は、本発明の一実施形態に係るシステム構成を示す図である。
【0020】
インターネットのような通信ネットワークを介してユーザ端末150とサーバシステム100間で通信が行われる。
【0021】
ユーザ端末150は、パーソナルコンピュータやスマートフォンのような情報処理端末である。ユーザ端末150は、IF装置(インターフェース装置)160、記憶装置180及びそれらに接続されたプロセッサ190を有する。また、ユーザ端末150は、IF装置160に接続されたUI(User Interface)装置170を有する。
【0022】
IF装置160は、サーバシステム100の後述のIF装置110と通信したり、UI装置170と通信したりする。
【0023】
UI装置170は、キーボードやマウスのような入力装置と、液晶ディスプレイのような表示装置とのうちの少なくとも一つである。UI装置170は、タッチパネルのように入力装置と表示装置とが一体の装置でもよい。
【0024】
記憶装置180は、鍵Uを記憶する。鍵Uは、一つ又は複数のユーザ鍵である。ユーザ鍵は、情報の暗号化や復号に用いられる。以下、第nのユーザ鍵を「KUn」と表記する(nは自然数)。多重暗号通信対象(例えば情報の一例としての引数)毎に使用されるユーザ鍵が異なってもよいし、多重暗号通信対象に関わらずユーザ鍵が共通でもよい。
【0025】
プロセッサ190が、WEBブラウザ191、トークン管理部192及び暗号化部193として機能する。これらの機能191~193は、ユーザ端末150のOS(Operating System)を含む又は除く一つ以上のコンピュータプログラムの少なくとも一部をプロセッサ190が実行することにより実現される。例えば、トークン管理部192及び暗号化部193の少なくとも一つは、予めユーザ端末150に用意された機能(例えばWEBブラウザ191のプラグイン)でもよいし、サーバシステム100からのWEBページに対してJAVAスクリプト(「JAVA」は登録商標)のように埋め込まれた機能(WEBページから取得された機能)でもよい。これらの機能191~193の説明は、図2及び図3が表す認証処理の説明の中で行われる。
【0026】
サーバシステム100は、IF装置110、記憶装置120及びそれらに接続されたプロセッサ130といった計算資源を有する一つ以上の物理的な計算機で構成された物理的なシステムでもよいし、そのような物理的なシステムに基づく論理的なシステム(例えば、クラウドコンピューティングサービスとしてのシステム)でもよい。
【0027】
IF装置110は、ユーザ端末150のIF装置160と通信する。
【0028】
記憶装置120が、鍵S及び管理DB(データベース)121を記憶する。
【0029】
鍵Sは、一つ又は複数のユーザ鍵にそれぞれ対応した一つ又は複数のサーバ鍵である。サーバ鍵は、情報の暗号化や復号に用いられる。多重暗号通信対象(例えば情報の一例としての引数)毎に使用されるサーバ鍵が異なってもよいし、多重暗号通信対象に関わらずサーバ鍵が共通でもよい。本実施形態では、ユーザ鍵とサーバ鍵は1:1で対応しているとする。以下、第nのユーザ鍵KUnに対応した第nのサーバ鍵を「KSn」と表記する。どの多重暗号通信でどのユーザ鍵及びどのサーバ鍵が使用されるかは予め決められていてもよいし、どの多重暗号通信であるかに関わらず使用されるユーザ鍵及びサーバ鍵はそれぞれ任意でもよい。
【0030】
管理DB121は、管理情報の一例であり、ユーザ毎に情報を含む。例えば、各ユーザについて、当該ユーザの情報は、例えば、当該ユーザのID及びパスワードのような認証情報を含む。また、各ユーザについて、当該ユーザの情報には、適宜に、トークンとOTPが追加される。なお、ユーザの認証情報は、ID及びパスワードの少なくとも一つに代えて又は加えて、ユーザの生体情報のような他種の情報を含んでもよい。
【0031】
プロセッサ130が、トークン管理部131、WEB-IF部132、暗号化部133、OTP管理部134及び認証部135として機能する。これらの機能131~135は、サーバシステム100のOSを含む又は除く一つ以上のコンピュータプログラムの少なくとも一部をプロセッサ130が実行することにより実現される。また、これらの機能131~135の説明は、図2及び図3が表す認証処理の説明の中で行われる。
【0032】
図2及び図3は、本発明の一実施形態において行われる認証処理を示す。
【0033】
S201で、ユーザ端末150のWEBブラウザ191が、サーバシステム100にHTTPリクエストを送信する。ここで言う「HTTPリクエスト」は、ログインページのURLが指定されたリクエストであるが、そのようなリクエストに代えて、ログインページ以外のWEBページのURLが指定されたHTTPリクエストが採用されてもよい。このHTTPリクエストに応答してユーザのログイン認証が済んでいないことがサーバシステム100により特定された場合には、ログインページのHTTPレスポンスがユーザ端末150に提供されてよい。
【0034】
S202:S201で送信されたHTTPリクエスト(又はリダイレクトにより送信されたHTTPリクエスト)をサーバシステム100が受信する。当該HTTPリクエストに応答して、サーバシステム100のトークン管理部131が、トークン(以下、トークンA)を生成し、例えば記憶装置120に一時保存する。トークンAは、例えば乱数としての文字列である。サーバシステム100のWEB-IF部132が、トークンAが関連付けられた(例えば埋め込まれた)ログインページのHTTPレスポンスを、ユーザ端末150に提供する。
【0035】
S203:ユーザ端末150のWEBブラウザ191が、サーバシステム100からのログインページを表示し、ユーザ端末150のトークン管理部192が、ログインページに関連付けられているトークンAを保存する。トークンAの保存先は、記憶装置180(つまりローカルストレージ)でよいが、それに代えて又は加えて、セッションストレージであってもよい。
【0036】
S204:ユーザ端末150のWEBブラウザ191が、ログインページに対するID及びPW(パスワード)の入力を受け付ける。
【0037】
S205:S204で例えばログインページ上のログインボタンが押された場合、ユーザ端末150のWEBブラウザ191が、当該入力されたID及びパスワードを含んだ情報である引数(以下、引数P)を暗号化部193に渡し、暗号化部193が、引数Pを、第1のユーザ鍵KU1と上記保存されたトークンA(暗号化用パスワード)とを用いて暗号化する。引数Pは、ID及びパスワード以外の情報(例えば、タイムスタンプ)を含んでもよい。第1のユーザ鍵KU1を用いて暗号化された引数を「引数EU1」と表記する。
【0038】
S206:ユーザ端末150のWEBブラウザ191が、引数EU1を関連付けたHTTPリクエスト(例えば、本人認証のリクエスト)を送信する。
【0039】
S207:引数EU1が関連付いたHTTPリクエストをサーバシステム100(例えばWEB-IF部132)が受信し、サーバシステム100の暗号化部133が、上記一時保存されたトークンA(暗号化用パスワード)と第1のサーバ鍵KS1とを用いて引数EU1を暗号化する。第1のユーザ鍵KU1と第1のサーバ鍵KS1とを用いて暗号化された引数、つまり多重暗号された引数を「引数EU1S1」と表記する。サーバシステム100(例えばWEB-IF部132)が、引数EU1S1をユーザ端末150に送信する。
【0040】
S208:引数EU1S1をユーザ端末150(例えばWEBブラウザ191)が受信し、ユーザ端末150の暗号化部193が、引数EU1S1を、上記保存されたトークンA(復号用パスワード)と第1のユーザ鍵KU1とを用いて復号する。これにより、引数Pが第1のサーバ鍵KS1で暗号化されている状態の引数ES1が取得される。ユーザ端末150(例えばWEBブラウザ191)が、引数ES1をサーバシステム100に送信する。
【0041】
S209:引数ES1をサーバシステム100(例えばWEB-IF部132)が受信し、サーバシステム100の暗号化部133が、上記一時保存されたトークンA(復号用パスワード)と第1のサーバ鍵KS1とを用いて引数ES1を復号する。これにより、引数Pが取得され、故に、引数PからID及びパスワードの取得が可能である。
【0042】
S206~S209に係る多重暗号通信(ユーザ端末150のWEBブラウザ191とサーバシステム100のWEB-IF部132間の通信)は、HTTPで行われる。すなわち、引数EU1、引数EU1S1及び引数ES1の送受信は、HTTPで行われる。また、鍵及び暗号化用パスワードを用いた暗号化、及び、鍵及び復号用パスワードを用いた復号は、本実施形態では、バーナム暗号が利用される。暗号化及び復号には、バーナム暗号以外の手法が採用されてもよい。
【0043】
S210:サーバシステム100の認証部135が、引数Pから取得されたID及びパスワードに一致するID及びパスワードを含んだ情報が管理DB121にあるか否かを判定する。この判定の結果が偽の場合(S210:NO)、認証部135が、エラー処理(例えば、ID又はパスワードの入力のやり直しを表すメッセージをユーザ端末150に送信すること)を行う。この判定の結果が真の場合(S210:YES)、処理が図3のS211に進む。
【0044】
S211:サーバシステム100のトークン管理部192が、S210:YESのID及びパスワードに対応したユーザの情報(管理DB121内の情報)に、上記一時保存されたトークンAを含める。つまり、トークン管理部192が、トークンAに当該ユーザを関連付ける。サーバシステム100のWEB-IF部132が、トークンAが関連付けられた(例えば埋め込まれた)OTP入力用のWEBページであるOTP入力ページを、ユーザ端末150に提供する。OTP入力ページは、S206で送信されたHTTPリクエストのHTTPレスポンスとして提供されてよい。
【0045】
S212:ユーザ端末150のWEBブラウザ191が、サーバシステム100からのOTP入力ページを表示する。なお、この段階で、ユーザ端末150のトークン管理部192が、上記保存されたトークンAに一致するトークンがOTP入力ページに関連付けられているか否かを判定してよい。この判定の結果が偽の場合、ユーザ端末150(例えばWEBブラウザ191)が、エラー処理(例えば、不正なページであることの警告メッセージを表示すること)を行ってよい。
【0046】
S213:S211に並行して、サーバシステム100のOTP管理部134が、URL通知を、S210でID及びパスワードの認証がされたユーザ宛に送信する。「URL通知」とは、トークンAに基づく文字列(本実施形態ではトークンAを含んだ文字列)を有するURL(リンクの一例)であるOTP-URLが記述された通知(例えば、電子メール、又は、SMSメッセージ)である。本実施形態では、OTP-URLは、第1のユーザ鍵KU1とトークンAとを用いて復号可能な引数(つまり引数EU1)としての文字列を含む。引数EU1は、S206でサーバシステム100に送信されたリクエストに関連付けられている引数である。
【0047】
S214:ユーザ端末150(例えば、図示しないメールアプリ又はSMSアプリ)が、サーバシステム100からのURL通知を表示し、当該通知に記述されているURLを指定するユーザ操作を受け付ける。
【0048】
S215:ユーザ端末150の暗号化部193が、指定されたURLにおける文字列(引数EU1としての文字列)を、第1のユーザ鍵KU1と上記保存されたトークンAとを用いて復号する。
【0049】
S216:ユーザ端末150のトークン管理部192が、S215の復号により得られたトークンと、上記保存されたトークンAとが一致するか否かを判定する。この判定の結果が偽の場合、ユーザ端末150(例えばWEBブラウザ191)が、エラー処理(例えば、ID及びパスワードの入力からやり直すことのメッセージを表示すること)を行ってよい。この判定の結果が真の場合(S216:YES)、処理がS217に進む。
【0050】
S217:ユーザ端末150のWEBブラウザ191が、OTP-URLを指定したHTTPリクエスト(OTPを表示したWEBページであるOTP表示ページのリクエスト)を送信する。
【0051】
S218:OTP-URLを指定したリクエストをサーバシステム100(例えばWEB-IF部132)が受信し、サーバシステム100のOTP管理部134が、OTPを発行し、当該OTPを、S210でID及びパスワードの認証がされたユーザに対応した情報(管理DB121内の情報)に関連付ける。つまり、OTP管理部134が、当該ユーザが関連付けられたトークンに、発行されたOTPを関連付ける。なお、OTPの発行は、OTP-URLを指定したHTTPリクエストを受信したときに代えて、S210:YESの後の任意のタイミングで行われてもよい。また、OTPの発行は、サーバシステム100の外部のシステムにより行われてもよい。
【0052】
S219:下記の多重暗号通信が行われる。この多重暗号通信の対象は、OTPである。なお、OTPは多重暗号されることなくユーザ端末150に送信されてもよい。
(X1)サーバシステム100の暗号化部133が、発行されたOTPを、トークンA(暗号化用パスワード)と第2のサーバ鍵KS2とを用いて暗号化する。この暗号化されたOTPを「OTP-ES2」と表記する。また、例えば鍵Sにおけるサーバ鍵の1つだけの場合、第1のサーバ鍵KS1と第2のサーバ鍵KS2は同じ鍵でよい。サーバシステム100(例えばWEB-IF部132)が、OTP-ES2をユーザ端末150に送信する。
(X2)ユーザ端末150(例えばWEBブラウザ191)が、OTP-ES2を受信し、ユーザ端末150の暗号化部193が、上記保存されたトークンA(暗号化用パスワード)と第2のサーバ鍵KS2に対応する第2のユーザ鍵KU2とを用いてOTP-ES2を暗号化する。第2のサーバ鍵KS2と第2のユーザ鍵KU2とを用いて暗号化されたOTP、つまり多重暗号されたOTPを「OTP-ES2U2」と表記する。ユーザ端末150(例えばWEBブラウザ191)が、OTP-ES2U2をサーバシステム100に送信する。
(X3)サーバシステム100(例えばWEB-IF部132)が、OTP-ES2U2を受信し、サーバシステム100の暗号化部133が、OTP-ES2U2を、トークンA(復号用パスワード)と第2のサーバ鍵KS2とを用いて復号する。これにより、OTPが第2のユーザ鍵KU2で暗号化されている状態のOTP-EU2が取得される。サーバシステム100(例えばWEB-IF部132)が、OTP-EU2をユーザ端末150に送信する。
(X4)ユーザ端末150(例えばWEBブラウザ191)が、OTP-EU2を受信し、ユーザ端末150の暗号化部193が、上記保存されたトークンA(復号用パスワード)と第2のユーザ鍵KU2とを用いてOTP-EU2を復号する。これにより、OTPが取得される。
【0053】
(X1)~(X4)に係る多重暗号通信(ユーザ端末150のWEBブラウザ191とサーバシステム100のWEB-IF部132間の通信)は、HTTPで行われる。すなわち、OTP-ES2、OTP-ES2U2及びOTP-EU2の送受信は、HTTPで行われる。
【0054】
S220:ユーザ端末150のWEBブラウザ191が、サーバシステム100からのOTP(例えば(X4)で復号されたOTP)を表示する。
【0055】
S221:ユーザ端末150のWEBブラウザ191が、OTP入力ページに対するOTPの入力を受け付ける。
【0056】
S222:S221で例えばOTP入力ページ上のログインボタンが押された場合、ユーザ端末150のWEBブラウザ191が、HTTPリクエストを送信する。当該リクエストでは、(トークン/ID)U3が指定される。「(トークン/ID)U3」は、OTP(暗号化用パスワード)と第3のユーザ鍵KU3とを用いて暗号化されたトークンA及びID(ログインのために入力されたユーザのID)である。本実施形態では、トークンA及びIDが、多重暗号通信の対象である。具体的には、下記が行われる。なお、第3のユーザ鍵KU3は、第1のユーザ鍵KU1又は第2のユーザ鍵KU2と同じユーザ鍵でもよいし、それらのユーザ鍵とは異なるユーザ鍵でもよい。
(Y1)サーバシステム100(例えばWEB-IF部132)が、(トークン/ID)U3を受信し、サーバシステム100の暗号化部133が、(トークン/ID)U3を、上記発行されたOTP(復号用パスワード)と第3のサーバ鍵KS3(第3のユーザ鍵KU3に対応したサーバ鍵)とを用いて暗号化する。第3のユーザ鍵KU3と第3のサーバ鍵KS3とを用いて暗号化されたトークン/ID、つまり多重暗号されたトークン/IDを「(トークン/ID)U3S3」と表記する。サーバシステム100(例えばWEB-IF部132)が、(トークン/ID)U3S3をユーザ端末150に送信する。
(Y2)ユーザ端末150(例えばWEBブラウザ191)が、(トークン/ID)U3S3を受信し、ユーザ端末150の暗号化部193が、上記保存されたOTP(復号用パスワード)と第3のユーザ鍵KU3とを用いて(トークン/ID)U3S3を復号する。これにより、トークン/IDが第3のサーバ鍵KS3で暗号化されている状態の(トークン/ID)S3が取得される。ユーザ端末150(例えばWEBブラウザ191)が、(トークン/ID)S3をサーバシステム100に送信する。
(Y3)サーバシステム100(例えばWEB-IF部132)が、(トークン/ID)S3を受信し、サーバシステム100の暗号化部133が、上記発行されたOTP(復号用パスワード)と第3のサーバ鍵KS3とを用いてを(トークン/ID)S3を復号する。これにより、トークン/IDが取得される。
【0057】
(Y1)~(Y3)に係る多重暗号通信(ユーザ端末150のWEBブラウザ191とサーバシステム100のWEB-IF部132間の通信)は、HTTPで行われる。すなわち、(トークン/ID)U3、(トークン/ID)U3S3及び(トークン/ID)S3の送受信は、HTTPで行われる。
【0058】
S223:サーバシステム100の認証部135が、管理DB121を参照し、トークン/IDがトークンA及びユーザ(S210でID及びパスワードの認証がされたユーザ)のIDと一致するか否かを判定する。この判定の結果が偽の場合(S223:NO)、認証部135が、エラー処理(例えば、ID又はパスワードの入力のやり直しを表すメッセージをユーザ端末150に送信すること)を行う。この判定の結果が真の場合(S223:YES)、処理がS224に進む。
【0059】
S224:サーバシステム100の認証部135が、ユーザのログインを許可する(本人認証の成功)。
【0060】
本実施形態を考察すると、例えば下記の通りの問題回避が期待できる。
【0061】
第1に、ログインページが偽のページであり、第三者が、偽のページに入力されたID及びパスワードを使用してユーザになりすまそうとするケースが考えられる。しかし、URL通知におけるOTP-URLが第三者により指定されたときに、S216でトークンの不一致が検出される。トークンA(正しいトークン)が第三者のユーザ端末に存在しないためである。故に、S216:NO(エラー)となり、処理が先に進まない。結果として、このケースの問題は回避可能である。
【0062】
第2に、URL通知が偽の通知であるケースが考えられる。しかし、URL通知におけるOTP-URLがユーザにより指定されたときに、S216でトークンの不一致が検出される。OTP-URLの文字列がトークンAを基にした文字列ではないためである。故に、S216:NO(エラー)となり、処理が先に進まない。
【0063】
第3に、URL通知が第三者に盗られるケースが考えられる。しかし、下記(3-1)及び(3-2)のいずれかの方法により、このケースの問題は回避される。
(3-1)URL通知におけるOTP-URLが第三者により指定されたときに、S216でトークンの不一致が検出される。OTP-URLの文字列の基になっているトークンAと同じトークンAが、第三者のユーザ端末に保存されていないためである。故に、S216:NO(エラー)となり、処理が先に進まない。
(3-2)S219での送信対象のOTPは、トークンAを暗号化用パスワードとした多重暗号通信の対象である。トークンAは、第三者のユーザ端末に保存されていない。このため、多重暗号されたOTPの復号は失敗する。
【0064】
第4に、OTP入力ページが偽のページであり、第三者が、偽のページに入力されたOTPを使用してユーザになりすまそうとするケースが考えられる。しかし、下記(4-1)及び(4-2)のいずれかの方法により、このケースの問題は回避される。
(4-1)その入力されたOTPは、サーバシステム100において第三者に関連付けられていない。このため、S223:NO(エラー)、つまり、本人認証が失敗する。
(4-2)その入力されたOTPは、サーバシステム100においてトークンAを復号用パスワードとした多重暗号通信の対象である。しかし、トークンAは第三者のユーザ端末に保存されていない。故に、サーバシステム100において復号が失敗する。
【0065】
以上の説明を、例えば、下記のように総括することができる。下記の総括は、上述の説明の補足や変形例を含んでよい。
【0066】
本人認証システムは、サーバシステム100に備えられるトークン管理部131、WEB-IF部132、及びOTP管理部134を備える。また、本人認証システムは、WEBブラウザ191を有するユーザ端末150に備えられるトークン管理部192を備える。サーバシステム100のトークン管理部131が、トークンAを生成する。サーバシステム100のWEB-IF部132が、当該生成されたトークンAをHTTPでユーザ端末150に送信する。ユーザ端末150のトークン管理部192が、サーバシステム100からのトークンAを保存する。サーバシステム100のOTP管理部134が、ユーザの本人認証に必要な発行されたOTPを、サーバシステム100において生成されユーザが関連付けられたトークンAに関連付ける。サーバシステム100のOTP管理部134が、当該トークンAに基づく文字列を有するリンクであるOTPリンクが記述されたユーザ宛のリンク通知(例えば上述のURL通知)を送信する。発行されたリンク通知に記述されているOTPリンクが指定された場合、ユーザ端末150のトークン管理部192が、当該指定されたOTPリンクが有する文字列の基になっているトークンと、保存されたトークンAとが一致するか否かを判定する。当該判定の結果が肯定の場合にユーザ端末150(WEBブラウザ191)により当該OTPリンクに従うHTTPリクエストが送信される。OTPリンクに従うHTTPリクエストをサーバシステム100が受信した場合、サーバシステム100のWEB-IF部132が、OTPのHTTPレスポンスをユーザ端末150に送信し、ユーザ端末150のWEBブラウザ191が、当該OTPを表示する。ユーザの本人認証成功の要件が、ユーザにより入力されたOTPが、ユーザが関連付けられているトークンに関連付けられているOTPに一致していることである。
【0067】
これにより、OTPをWEB機能で安全に提供することができ、OTPをWEB機能で通知しても、ユーザと通信経路の両方を正しく確認することができる。具体的には、サーバシステム100において生成されたトークンがHTTPでユーザ端末150に送信されてユーザ端末150に保存され、以降の通信では、トークンの不一致が検出された場合には処理が先に進まない。
【0068】
なお、上記において、「トークンAに基づく文字列」とは、トークンAを含んだ文字列と、トークンAを暗号用パスワードとして用いて暗号化された情報としての文字列(この文字列はトークンAを含んでいてもいなくてもよい)とのいずれかでよい。
【0069】
また、「当該指定されたOTPリンクが有する文字列の基になっているトークンと、保存されたトークンAとが一致するか否か」は、例えば下記のいずれでもよい。
・指定されたOTPリンクが有する文字列から取得されたトークンが、保存されたトークンAと一致するか否か。
・指定されたOTPリンクが有する文字列を、保存されたトークンAを復号用パスワードとして用いて復号すること(例えばバーナム暗号に従う復号)に成功するか否か。
【0070】
また、トークンAの生成及び送信は、ユーザが不特定の状態において行われてもよいし、ユーザが特定されている状態(例えば、社内ネットワークに接続のユーザ端末のユーザであることが特定されている状態)において行われてもよい。また、「特定されたユーザ」とは、ID及びパスワードのような認証情報の認証は済んでいないが特定の範囲に属していることが特定されているユーザでもよいし、ID及びパスワードのような認証情報の認証が済んだユーザでもよい。
【0071】
サーバシステム100のWEB-IF部132が、本人認証用の情報の入力を受け付けるWEBページである第1のWEBページ(例えばログインページ)と、OTPの入力を受け付けるWEBページである第2のWEBページ(例えばOTP入力ページ)とを提供するようになっている。第1のWEBページと第2のWEBページとのうちの少なくとも一つのWEBページが、生成されたトークンAを有する。このように、トークンAが、WEBページと共に(例えばWEBページに埋め込まれた状態で)送信されるので、トークンAの送信のためだけの通信が不要である。なお、実施形態では最初のトークンAの送信は、トークンAが埋め込まれたログインページの送信であるが、それに代えて、S210:YESの後のトークンAが埋め込まれたOTP入力ページの送信でもよい。
【0072】
サーバシステム100が、暗号化部133とサーバ鍵とを有する。ユーザ端末150が、暗号化部193とユーザ鍵とを有する。サーバシステム100からユーザ端末150へ送信される情報(典型的には、サーバシステム100からユーザ端末150へのHTTPレスポンスに関連付けられる情報)と、ユーザ端末150からサーバシステム100へ送信される情報(典型的には、ユーザ端末150からサーバシステム100へのHTTPリクエストに関連付けられる情報)とのうちの少なくとも一方が、多重暗号対象とされる。このため、中間者攻撃の防止が可能である。例えば、下記の通りである。
【0073】
<サーバシステム100からユーザ端末150へ送信される情報の多重暗号通信>
【0074】
サーバシステム100の暗号化部133が、ユーザ端末150にHTTPで送信される情報である対象情報を、サーバ鍵と、生成されたトークンAであるサーバ側暗号化用パスワードとを用いて暗号化する。サーバシステム100のWEB-IF部132が、当該暗号化された対象情報である第1の暗号化情報をユーザ端末150にHTTPで送信する。ユーザ端末150の暗号化部193が、サーバシステム100からの第1の暗号化情報を、ユーザ鍵と、保存されたトークンAであるユーザ側暗号化用パスワードとを用いて暗号化する。ユーザ端末150のWEBブラウザ191が、当該暗号化された第1の暗号化情報である第2の暗号化情報をサーバシステム100にHTTPで送信する。サーバシステム100の暗号化部133が、ユーザ端末150からの第2の暗号化情報を、サーバ鍵と、サーバ側暗号化用パスワードと同じパスワードとを用いて復号する。サーバシステム100のWEB-IF部132が、当該復号された第2の暗号化情報である第1の暗号化情報をユーザ端末150にHTTPで送信する。ユーザ端末150の暗号化部193が、サーバシステム100からの第1の暗号化情報を、ユーザ鍵と、ユーザ側暗号化用パスワードと同じパスワードとを用いて復号することで、対象情報を得る。このようにして、サーバシステム100からユーザ端末150へ送信される情報について中間者攻撃を防ぐことができる。なお、この段落で言う「対象情報」は、例えばOTPである。これにより、OTPの秘匿通信が実現される。
【0075】
<ユーザ端末150からサーバシステム100へ送信される情報の多重暗号通信>
【0076】
ユーザ端末150の暗号化部193が、サーバシステム100にHTTPで送信される情報である対象情報を、ユーザ鍵と、ユーザ側暗号化用パスワード(保存されたトークンAとサーバシステム100からのOTPとのうちの少なくとも一つ)とを用いて暗号化する。ユーザ端末150のWEBブラウザ191が、当該暗号化された対象情報である第1の暗号化情報をサーバシステム100にHTTPで送信する。サーバシステム100の暗号化部133が、ユーザ端末150からの第1の暗号化情報を、サーバ鍵と、サーバ側暗号化用パスワード(生成されたトークンAと発行されたOTPとのうちの少なくとも一つ)とを用いて暗号化する。サーバシステム100のWEB-IF部132が、当該暗号化された第1の暗号化情報である第2の暗号化情報をユーザ端末150にHTTPで送信する。ユーザ端末150の暗号化部193が、サーバシステム100からの第2の暗号化情報を、ユーザ鍵と、ユーザ側暗号化用パスワードと同じパスワードとを用いて復号する。ユーザ端末150のWEBブラウザ191が、当該復号された第2の暗号化情報である第1の暗号化情報をサーバシステム100にHTTPで送信する。サーバシステム100の暗号化部133が、ユーザ端末150からの第1の暗号化情報を、サーバ鍵と、サーバ側暗号化用パスワードと同じパスワードとを用いて復号することで、対象情報を得る。このようにして、ユーザ端末150からサーバシステム100へ送信される情報について中間者攻撃を防ぐことができる。なお、この段落で言う「対象情報」は、例えば、ユーザ端末150のWEBブラウザ191により表示されたWEBページに対してユーザにより入力された情報である。これにより、ユーザにより入力された情報(例えば、認証情報又はOTP)の秘匿通信が実現される。
【0077】
ユーザ端末150のWEBブラウザ191とサーバシステム100のWEB-IF部132間の通信において、通信のプロトコルが、第1のHTTP(例えば、HTTP又はHTTPS)から第2のHTTP(便宜上「HTTPM」と呼ばれてよい)に遷移してよい。例えば、このプロトコル遷移は、WEB-IF部132により行われてよい。HTTPMに従う通信は、多重暗号通信である。多重暗号通信の対象は、ユーザ端末150のWEBブラウザ191からサーバシステム100のWEB-IF部132へ送信される情報(例えば、HTTPリクエストの引数)と、サーバシステム100のWEB-IF部132からユーザ端末150のWEBブラウザ191へ送信される情報(例えば、HTTPレスポンスの引数)とのうちの少なくとも一部である。多重暗号は、サーバシステム100の暗号化部133によるサーバ鍵とサーバ側の暗号化用パスワードとを用いた暗号化と、ユーザ端末150の暗号化部193によるユーザ鍵とユーザ側の暗号化用パスワードとを用いた暗号化とを含む。サーバ側の暗号化用パスワードとユーザ側の暗号化用パスワードとのいずれも、トークンAと、トークンAを暗号化用パスワードとして用いた多重暗号通信においてサーバシステム100とユーザ端末150間で送受信された情報(つまり、ユーザ端末150とサーバシステム100において共有されている情報)とのうちの少なくとも一つでよい。このようなプロトコル変換を経て多重暗号通信を維持することができる。
【0078】
以上、本発明の一実施の形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施の形態に限定する趣旨ではない。本発明は、他の種々の形態でも実施する事が可能である。
【0079】
例えば、上述の説明における本人認証システムは、本人認証以外のサービスを提供するサービスシステムの外部のシステムであり当該サービスシステムに代わって本人認証を行うシステムでもよいし、本人認証に成功した(つまり認証が済んだ)ユーザに対してサービスを提供するサービスシステムでもよい。
【0080】
また、上述の説明では、URL通知におけるURLが指定されたときにHTTPで提供される情報はOTPであるが、OTPに代えて又は加えて、他種の情報が採用されてもよい。例えば、「本人認証」が、OTP無しに(例えばID及びパスワードのような認証情報のみで)行われてもよく、本人認証成功後の通信において、トークンの発行、トークンのユーザ端末への送信、URL通知のユーザ端末への送信、当該URL通知におけるURLが指定されたときにHTTPでのユーザ端末への情報提供等が行われてもよい。また、そのサービスシステムでの通信において、所定の段階から、常に上述のHTTPMでの通信が行われてよい。
【符号の説明】
【0081】
100…サーバシステム、150…ユーザ端末
図1
図2
図3