説明

認証サーバ、認証プログラムおよび認証システム

【課題】二次元コードを用いて、パスワードを入力する手間を軽減すると共に、より高いセキュリティ強度の認証方式をもつ認証サーバを提供する。
【解決手段】入力表示装置(2)および二次元コード読取装置(3)とネットワーク(4)を介して接続され、ユーザ認証を行う認証サーバ(1)は、入力表示装置の画面に、ユーザに係る秘密データを所定の数(m)に分割して二次元コード化したユーザ二次元コードおよび少なくとも1つの乱数の列をその乱数の列毎に所定の数(m)に分割して二次元コード化したダミー二次元コードそれぞれを画像化させて、それら複数の二次元コードシンボルを配置指示通りの位置に配置させて表示させる。認証サーバは、二次元コード読取装置から、入力表示装置の画面上に配置された複数の二次元コードシンボルを連ねた連結情報を受信する。受信した連結情報が秘密データと合致するか否かでユーザ認証を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認証サーバ、認証プログラムおよび認証システムに関し、特に、ユーザ認証を行う認証サーバと、認証サーバと通信可能に接続する入力表示装置と、認証サーバと通信可能に接続する二次元コード読取装置とを備える認証システムに関する。
【背景技術】
【0002】
現在、放送と通信の連携時代を迎え、放送分野でも通信を利用した多様なサービスが求められている。こうした背景の中、テレビを介して通信を利用した個人向けサービスが検討されている。この個人向けサービスを提供するために、テレビを利用する利用者に合わせてテレビ自身が内部設定を変更する、つまり、テレビが利用者それぞれに特化したスタイルに変わる必要がある。よって、個人向けサービスを提供するためには、利用者を特定する認証技術が必要である。
現在広く普及している認証技術として、利用者を特定するID(IDentification)およびパスワードの両方を用いる認証方式がある。
【0003】
特許文献1のマトリクス認証方式は、IDおよびパスワードを用いる認証方式の1つである。利用者のIDと対応付けられて認証サーバ側に記憶されるパスワードは、秘密にするべき情報であり、利用者が覚えておくべき情報である。特許文献1のマトリクス認証方式は、このパスワード(秘密にするべき情報)を利用者が覚えやすくすること、および高いセキュリティ強度(安全性)を確保することを目的としている。
この特許文献1のマトリクス認証方式では、(1)ユーザは、乱数表の読み取り方法(各欄の読み取り順序)を秘密情報(パスワード)として、認証サーバに事前に登録しておく。(2)ユーザは、認証時に提示される乱数表の数字を、事前に登録した読み取り方法で読み取って覚える。(3)ユーザは覚えた数字を入力し、この数字列を入力パスワードとして認証サーバに伝える。(4)認証サーバは、ユーザから伝えられた数字列(入力パスワード)と、提示した乱数表をそのユーザに登録された秘密情報(乱数表の読み取り方法)で読み取った結果の数字列(判定パスワード)とが一致するか否かを認証する。
【0004】
この特許文献1のマトリクス認証方式では、(2)の手順において、例えば、乱数表全体をVの字に読み取るなど、視覚的な覚え方ができるので、一般的なパスワード入力方法よりも直観的に覚えることができる。
また、特許文献1のマトリクス認証方式では、ユーザが乱数表の読み取り方法を覚えるため、数字列をワンタイムパスワードとしての利用が可能である。すなわち、認証で使用する乱数表を毎回違うものにし、各乱数表は1度きりの認証でしか使えないようにすることで、たとえ(3)の手順でユーザが入力した数字列を盗まれたとしても、次回はその数字列は入力パスワードとして有効ではなくなる。よって、高いセキュリティ強度を確保することができる。また、仮に提示された乱数表も同時に盗まれたとしても、乱数表には同じ数字がいくつかの欄にあるため、ユーザが入力した数字列から、必ずしも秘密情報である乱数表の読み取り方法(読み取り順序)が判明する訳ではない。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第4090251号
【特許文献2】特開2010−61468号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1のマトリクス認証方式では、(3)の手順でユーザが手入力する都合上、入力パスワードとしては10〜20桁程度の長さの数字列が用いられることが予想される。この程度の長さの数字列(入力パスワード)では、認証サーバが全数探索攻撃をされたときに、認証サーバに事前に登録された秘密情報(乱数表の読み取り方法)であるパスワードが盗まれるリスクが高いという問題点がある。
【0007】
また、セキュリティ強度を上げるために数字列(入力パスワード)の長さを増やす場合、単にユーザの手間が増えるだけでなく、数字列の入力作業において、ユーザは、乱数表を見て、特定位置の数字を一時的に覚えて、入力欄に数字を入力するという視線の移動を伴うため、読み取りミスや記憶違いなどの人為的なミスが発生する確率が高くなってしまうという問題点もある。
【0008】
本発明は、以上のような問題点を鑑みてなされたものであり、QRコード(登録商標)などの二次元コードを用いることで、従来のマトリクス認証方式よりも、パスワードを入力する手間を軽減すると共に、より高いセキュリティ強度の認証方式をもつ認証サーバ、認証プログラムおよび認証システムを提供することを課題とする。
【課題を解決するための手段】
【0009】
前記課題を解決するために、本発明の請求項1に記載の認証サーバは、複数の二次元コードそれぞれを画像化して二次元コードシンボルそれぞれを配置指示通りに配置させて画面に表示する表示装置、および、前記画面に配置された複数の前記二次元コードシンボルを、ユーザに操作されて所定の数(m)だけ読み取り、前記所定の数(m)の読取データを連ねた連結情報を生成する二次元コード読取装置とネットワークを介して接続され、前記表示装置から受信したユーザIDに基づき前記ユーザに係る前記複数の二次元コードおよびそれらの配置位置を示す配置指示データを前記表示装置に送信し、前記二次元コード読取装置から受信した前記連結情報を用いてユーザ認証を行う認証サーバであって、記憶手段と、乱数発生手段と、二次元コード生成手段と、二次元コード配置指定手段と、二次元コード出力手段と、認証手段とを備える。
【0010】
かかる構成によれば、認証サーバは、記憶手段に、ユーザを識別するユーザIDと、前記二次元コードシンボルの配置位置を示す読取パターンと、前記ユーザIDごとに異なる秘密コードとが対応付けて予め記憶され、乱数発生手段によって、乱数を発生させる。そして、二次元コード生成手段によって、前記表示装置から送信された前記ユーザIDと対応して前記記憶手段に記憶された前記秘密コードを、前記所定の数(m)に分割してそれぞれを二次元コード化し、前記所定の数(m)のユーザ二次元コードを生成するとともに、前記乱数発生手段から乱数を取得して少なくとも1つの乱数の列を生成し、前記乱数の列を前記乱数の列毎に前記所定の数(m)に分割してそれぞれを二次元コード化し、前記生成した乱数の列の列数に前記所定の数(m)を乗算した数のダミー二次元コードを生成する。続いて、二次元コード配置指定手段によって、前記表示装置から送信された前記ユーザIDに基づく前記読取パターンを前記記憶手段から取得し、前記読取パターンで示される配置位置に沿って、前記ユーザ二次元コードそれぞれを配置させる指示と、前記ダミー二次元コードそれぞれを前記配置位置以外の位置に配置させる指示とを含む前記配置指示データを生成する。さらに、二次元コード出力手段によって、前記所定の数(m)のユーザ二次元コードおよび前記生成した乱数の列の列数に前記所定の数(m)を乗算した数のダミー二次元コードからなる前記複数の二次元コードと、前記配置指示データとを、前記表示装置へ送信させる。次に、認証手段によって、前記二次元コード読取装置から送信された連結情報と合致する前記記憶手段に記憶された秘密コードがあるか否かでユーザ認証を行う。
これによって、ユーザが二次元コード読取装置を操作して、m個の二次元コードシンボルそれぞれを正しい位置(記憶手段に記憶された配置位置と同じ)で読み取らなければ、二次元コード読取装置から送信される読取データを連ねた連結情報は、認証サーバにおいて二次元コード化する前のデータ(秘密データ)と一部のデータが異なることになる。そのため、認証サーバの認証手段において、ユーザ認証がNGとなる。一方、m個の二次元コードそれぞれを正しい位置で読み取ることで、連結情報は、認証サーバにおいて二次元コード化する前のデータ(秘密データ)と合致するため、認証サーバの認証手段において、ユーザ認証がOKとなる。
【0011】
また、請求項2に記載の認証サーバは、請求項1に記載された認証サーバにおいて、前記二次元コード生成手段が前記秘密コードを前記所定の数(m)に分割する前に、前記秘密コードを所定の暗号化方式で暗号化し、前記乱数の列毎に前記所定の数(m)に分割する前に、前記乱数の列を前記所定の暗号化方式で暗号化する暗号化手段を備えるとともに、前記認証手段は、前記二次元コード読取装置から送信された連結情報を前記所定の暗号化方式に対応した復号方式で復号する連結情報復号手段とをさらに備える。
【0012】
これによって、認証サーバは、表示装置に送信する秘密データを暗号化してからm個に分割して二次元コード化する。つまり、暗号化した秘密データを表示装置に送信する。そして、二次元コード読取装置により、m個の二次元コードシンボルそれぞれを正しい位置で読み取ることで得られる連結情報は、暗号化された秘密データである。この暗号化された秘密データを認証サーバに送信する。
【0013】
また、請求項3に記載の認証サーバは、請求項2に記載された認証サーバにおいて、現在時刻を出力する時刻出力手段をさらに備え、前記暗号化手段が、前記時刻出力手段から取得した時刻情報を含めて前記秘密コードを暗号化し、前記認証手段が、前記連結情報復号手段により復号後の前記連結情報から、時刻情報と秘密データとを分離する情報分離手段と、前記時刻出力手段から現在時刻を取得し、前記分離した時刻情報の時刻から前記現在時刻までの時間が所定の時間内であるか否かの第1のユーザ認証を行い、さらに、前記分離した秘密データと合致する秘密コードが前記ユーザDBに記憶されているか否かの第2のユーザ認証を行う二段階認証手段とを備える。
【0014】
かかる構成によれば、認証サーバは、二次元コードを表示装置に送信した時刻(時刻情報の時刻)と、二次元コード読取装置から連結情報を受信した時刻(現在時刻)とで時間認証を行う。時刻情報の時刻から現在時刻までの時間が所定の時間を越えていれば、認証NGとなる。
【0015】
また、請求項4に記載の認証サーバは、請求項1ないし請求項3のいずれか1項に記載された認証サーバにおいて、前記二次元コード配置指定手段が、前記ユーザ二次元コードおよび前記ダミー二次元コードを二次元マトリクス状に配置させる指示を、前記配置指示データに加えることを特徴とする。
【0016】
かかる構成によれば、表示装置にユーザ二次元コードおよびダミー二次元コードを二次元マトリクス状に配置させる指示を送信するため、表示装置の画面には、前記所定の数(m)のユーザ二次元コードおよび前記所定の数(m)のダミー二次元コードからなる複数の二次元コードが二次元マトリクス状に表示される。
【0017】
また、請求項5に記載の認証サーバは、請求項1ないし請求項4のいずれか1項に記載された認証サーバにおいて、前記二次元コード配置指定手段が、前記ユーザ二次元コードまたは前記ダミー二次元コードを複製して、複製した複製ユーザ二次元コードまたは複製ダミー二次元コードを、前記配置位置以外の位置に配置させる指示を、前記配置指示データに加えることを特徴とする。
【0018】
かかる構成によれば、ユーザ二次元コードを複製して、複数のユーザ二次元コードを1画面上に表示させることになるため、みかけ上、『読取パターン』が複数できることになる。しかしながら、ユーザID、二次元コード、(二次元コードを画像化した)二次元コードシンボルの配置位置、および二次元コード読取装置から認証サーバに送信される連結情報のうち、それらすべてが盗聴などにより盗まれたとしても、そのユーザIDに対応する『読取パターン』を一意に特定することが難しくなるため、セキュリティ強度をより高めることができる。
【0019】
また、請求項6に記載の認証サーバは、請求項1ないし請求項5のいずれか1項に記載された認証サーバにおいて、前記二次元コード配置指定手段が、画面表示1回につき、1個の前記ユーザ二次元コードおよび少なくとも1個の前記ダミー二次元コードを配置させる指示と、前記所定の数(m)の画面遷移を行わせる指示とを、前記配置指示データに加えることを特徴とする。
【0020】
かかる構成によれば、配置指示データを受信した表示装置では、画面遷移回数分の画面(m画面)が生成され、その1画面につき、1個のユーザ二次元コードと、少なくとも1個のダミー二次元コードとが配置されて表示される。これにより、1画面上に表示される二次元コードシンボルの数を減らすことができる。
【0021】
また、請求項7に記載のユーザ認証プログラムは、複数の二次元コードそれぞれを画像化して二次元コードシンボルそれぞれを配置指示通りに配置させて画面に表示する表示装置、および、前記画面に配置された複数の前記二次元コードシンボルを、ユーザに操作されて所定の数(m)だけ読み取り、前記所定の数(m)の読取データを連ねた連結情報を生成する二次元コード読取装置とネットワークを介して接続され、前記表示装置から受信したユーザIDに基づき前記ユーザに係る前記複数の二次元コードおよびそれらの配置位置を示す配置指示データを前記表示装置に送信し、前記二次元コード読取装置から受信した前記連結情報を用いてユーザ認証を行うために、データの送受信を行う通信手段と、ユーザを識別するユーザIDと、前記二次元コードシンボルの配置位置を示す読取パターンと、前記ユーザIDごとに異なる秘密コードとを対応付けて予め記憶する記憶手段を備える認証サーバのコンピュータを、乱数発生手段、暗号化手段、二次元コード生成手段、二次元コード配置指定手段、二次元コード出力手段および、認証手段、として機能させることを特徴とする。
【0022】
かかる構成によれば、ユーザ認証プログラムは、乱数発生手段によって、乱数を発生させ、暗号化手段によって、前記表示装置から送信された前記ユーザIDと対応して前記記憶手段に記憶された前記秘密コードを前記記憶手段から取得し、当該秘密コードを所定の暗号化方式で暗号化して暗号化ユーザデータを生成するとともに、前記乱数発生手段から乱数を取得して少なくとも1つの乱数の列を生成し、前記乱数の列を前記乱数の列毎に前記所定の暗号化方式で暗号化して暗号化ダミーデータを生成する。二次元コード生成手段によって、前記暗号化ユーザデータを前記所定の数(m)に分割してそれぞれを二次元コード化し、前記所定の数(m)のユーザ二次元コードを生成するとともに、前記暗号化ダミーデータを、前記所定の数(m)に分割してそれぞれを二次元コード化し、前記生成した乱数の列の列数に前記所定の数(m)を乗算した数のダミー二次元コードを生成する。続いて、二次元コード配置指定手段によって、前記表示装置から送信された前記ユーザIDに基づく前記読取パターンを前記記憶手段から取得し、前記読取パターンで示される配置位置に沿って、前記ユーザ二次元コードそれぞれを配置させる指示と、前記ダミー二次元コードそれぞれを前記配置位置以外の位置に配置させる指示とを含む前記配置指示データを生成する。さらに、二次元コード出力手段によって、前記所定の数(m)のユーザ二次元コードおよび前記生成した乱数の列の列数に前記所定の数(m)を乗算した数のダミー二次元コードからなる前記複数の二次元コードと、前記配置指示データとを、前記表示装置へ前記通信手段に送信させる。次に、認証手段によって、前記二次元コード読取装置から送信された連結情報を前記所定の暗号化方式に対応した復号方式で復号して秘密データを取得し、その秘密データと合致する前記記憶手段に記憶された秘密コードがあるか否かでユーザ認証に成功したか否かを判別する。
【0023】
また、請求項8に記載の認証システムは、ユーザ認証を行う認証サーバと、画像を画面に表示する入力表示装置と、二次元コード読取装置とからなる認証システムであって、前記入力表示装置が、入力手段と、通信手段と、表示手段とを備え、前記二次元コード読取装置が、操作手段と、連結情報生成手段と、送信手段とを備え、前記認証サーバが、通信手段と、記憶手段と、乱数発生手段と、暗号化手段と、二次元コード生成手段と、二次元コード配置指定手段と、二次元コード出力手段と、認証手段とを備えることとした。
【0024】
かかる構成によれば、認証システムにおいて、前記入力表示装置は、入力手段によって、ユーザからユーザIDが入力される、通信手段によって、前記認証サーバとデータの送受信を行い、表示手段によって、二次元コードを二次元コードシンボルに画像変換して、配置指示に沿って複数の当該二次元コードシンボルを画面に配置して表示させる。
また、認証システムにおいて、前記二次元コード読取装置は、操作手段によって、前記ユーザからの操作を受け付け、二次元コード読取手段によって、前記ユーザに操作されて、前記入力表示装置の画面に表示された二次元コードシンボルを読み取って所定の数(m)の読取データを取得する。そして、連結情報生成手段によって、前記所定の数(m)の前記読取データを連結して連結情報を生成し、送信手段によって、前記認証サーバにデータを送信する。
【0025】
また、認証システムにおいて、前記認証サーバは、記憶手段に、前記ユーザを識別するユーザIDと、前記二次元コードシンボルの配置位置を示す読取パターンと、前記ユーザIDごとに異なる秘密コードとの3つを対応付けて予め記憶する。また、通信手段によって、前記入力表示装置とデータの送受信を行うとともに、前記二次元コード読取装置からデータを受信する。そして、乱数発生手段によって、乱数を発生させ、暗号化手段によって、前記入力表示装置から送信されたユーザIDと対応して前記記憶手段に記憶された前記秘密コードを取得し、当該秘密コードを所定の暗号化方式で暗号化して、暗号化ユーザデータを生成するとともに、前記乱数発生手段から乱数を取得して少なくとも1つの乱数の列を生成し、前記乱数の列を前記乱数の列毎に前記所定の暗号化方式で暗号化して暗号化ダミーデータを生成する。そして、二次元コード生成手段によって、前記暗号化ユーザデータを前記所定の数(m)に分割してそれぞれを二次元コード化し、前記暗号化ダミーデータ毎に前記所定の数(m)のユーザ二次元コードを生成するとともに、前記暗号化ダミーデータを、前記所定の数(m)に分割してそれぞれを二次元コード化し、前記生成した乱数の列の列数に前記所定の数(m)を乗算した数のダミー二次元コードを生成する。続いて、二次元コード配置指定手段によって、前記入力表示装置から送信された前記ユーザIDに基づく前記読取パターンを前記記憶手段から取得し、前記読取パターンの配置位置に沿って、前記ユーザ二次元コードそれぞれを配置させる指示と、前記ダミー二次元コードそれぞれを前記配置位置以外の位置に配置させる指示とを含む配置指示データを生成する。さらに、二次元コード出力手段によって、前記所定の数(m)のユーザ二次元コードおよび前記生成した乱数の列の列数に前記所定の数(m)を乗算した数のダミー二次元コードからなる前記複数の二次元コードと、前記配置指示データとを、前記入力表示装置へ送信させる。次に、認証手段によって、前記二次元コード読取装置から送信された連結情報を前記所定の暗号化方式に対応した復号方式で復号して秘密データを取得し、その秘密データと合致する前記記憶手段に記憶された秘密コードがあるか否かでユーザ認証に成功したか否かを判別する。
【0026】
また、請求項9に記載の認証システムは、請求項8に記載された認証システムにおいて、前記入力表示装置が、第2の表示手段と、読取パターン取得手段を備え、前記認証サーバが、秘密コード生成手段と、ユーザ登録手段とを備えることとした。
【0027】
かかる構成によれば、認証システムにおいて、前記入力表示装置は、前記表示手段によって、複数の擬似二次元コードシンボルを配置して、選択可能に画面に表示させ、読取パターン取得手段によって、前記ユーザにより前記入力手段を介して所定の数(m)の前記擬似二次元コードシンボルが選択されることで、前記擬似二次元コードシンボルの所定の数(m)の配置位置を読取パターンとして取得する。
そして、認証システムにおいて、前記認証サーバは、秘密コード生成手段によって、前記入力表示装置から送信された前記ユーザIDおよび前記読取パターンを取得し、それらを含む秘密コードを生成し、ユーザ登録手段によって、前記ユーザIDと、前記読取パターンと、前記秘密コードとを対応付けて前記記憶手段に記憶させる。
【発明の効果】
【0028】
本発明は、以下に示す優れた効果を奏するものである。
請求項1、請求項7または請求項8に記載の発明によれば、認証の対象である秘密データを二次元コード化する。この二次元コードには数Kbyteまでのデータを入力できるため、秘密データをm個に分割して二次元コード化することで、m×100桁以上の秘密データをパスワードとして利用できるため、セキュリティ強度を高くすることができる。
かかる構成によれば、ユーザは、読み取るべきm個の二次元コードシンボルそれぞれの正しい位置だけを覚えればよいため、パスワードを入力する手間を軽減すると共に、記憶違いなどの人為的なミスが発生する確率を低減することができる。
【0029】
また、例えば、二次元コード読取装置にCCD(Charge Coupled Device)カメラを備える携帯電話を用いることで、ユーザは、携帯電話の画面に表示された1つ1つの二次元コードシンボルをワンクリックで撮影(読み取る)する。この操作においてユーザが携帯電話の画面から視線を移動することはないため、読み取りミスや記憶違いなどの人為的なミスが発生する確率を低減することができる。
【0030】
請求項2に記載の発明によれば、秘密コードを暗号化するため、ネットワーク上では、暗号化された秘密データの送受信を行うことになる。これにより、セキュリティ強度の高い認証サーバを提供することができる。
【0031】
請求項3に記載の発明によれば、認証サーバは、時間認証を行うため、表示装置に送信した二次元コードを有効期限付きワンタイムパスワードとすることができ、セキュリティ強度を高めることができる。
【0032】
請求項4に記載の発明によれば、表示装置の画面に、複数の二次元コードシンボルが二次元マトリクス状に表示されるため、ユーザは、正しい位置(記憶手段に記憶された配置位置と同じ)を覚えるときに、視覚的な覚え方ができる。そのため、ユーザに対して、パスワードを入力する手間を軽減すると共に、記憶違いなどの人為的なミスが発生する確率を低減することができる。
【0033】
請求項5に記載の発明によれば、みかけ上、『読取パターン』が複数できることになるが、ユーザID、二次元コード、(二次元コードを画像化した)二次元コードシンボルの配置位置、二次元コード読取装置から認証サーバに送信される連結情報のうち、それらすべてが盗聴などにより盗まれたとしても、そのユーザIDに対応する『読取パターン』を一意に特定することができないため、セキュリティ強度をより高めることができる。
【0034】
請求項6に記載の発明によれば、画面表示1回につきそれぞれ1個ずつ配置させるため、1画面上に表示される二次元コードシンボルの数を減らすことができる。これにより、マトリクスのサイズを小さくすることができ、それにより表示スペースが得られるため、二次元コードシンボルが読み取りやすくなる。そして、表示スペースや表示スペースに起因するユーザビリティの制約から解放することができる。
【図面の簡単な説明】
【0035】
【図1】第1の実施形態に係る認証システムを示す図である。
【図2】第1の実施形態に係る認証サーバのブロック図である。
【図3】第1の実施形態に係る入力表示装置に配列表示された二次元コードシンボルの一例を示す図である。
【図4】第1の実施形態に係る認証サーバのユーザDBに記憶されるデータの一例を示す図である。
【図5】(a)ユーザデータ[Du]、(b)暗号化ユーザデータ[cDu]、(c)アドレス付暗号化ユーザデータ[URL*cDu]、(d)分割データ[div*u]、(e)特定の文字列[&]が付与された分割データ[div*u]、(f)ユーザ二次元コード[QR*u]を示す図である。
【図6】第1の実施形態に係る認証システムにおいて、入力表示装置と認証サーバとの間で行われるユーザ登録処理動作のタイムチャートである。
【図7】第1の実施形態に係る認証サーバの二次元コード配置処理動作のフローチャートである。
【図8】図7に続く第1の実施形態に係る認証サーバの二次元コード配置処理動作のフローチャートである。
【図9】第1の実施形態に係る認証サーバのユーザ認証実行処理動作のフローチャートである。
【図10】第2の実施形態に係る認証サーバのブロック図である。
【発明を実施するための形態】
【0036】
《第1の実施形態》
次に、第1の実施形態について、適宜、図面を参照しながら詳細に説明する。なお、各図は、本発明について概略的に示してあるに過ぎない。よって、本発明は、図示例のみに限定されるものではない。また、各図において、共通する構成要素や同様な構成要素については、同一の符号を付し、それらの重複する説明を省略する。
【0037】
1.システム構成
認証システム100は、図1に示すように、認証サーバ1と、入力表示装置2と、通信機能付き二次元コード読取装置3と、それらを通信可能に接続するネットワーク4とを含んで構成されている。なお、本実施形態では、二次元コードとしてQRコード(登録商標)を採用した。
【0038】
(認証サーバ1)
認証サーバ1は、ユーザ認証を行うための一連のデータを分割して複数の二次元コードを生成し、生成した複数の二次元コードとそれらの配置位置とを入力表示装置2に送信(出力)する機能と、二次元コード読取装置3から受信(入力)した、読み取られた二次元コード(読取データ)が連結された連結情報に基づき、ユーザ認証を行う機能とを有する装置である。
詳細は後記するが、認証サーバ1は、入力表示装置2および二次元コード読取装置3と通信可能に接続する通信入出力手段10と、データを記憶する記憶手段20と、ユーザ登録処理を行う登録手段30と、登録されたユーザに係る情報から二次元コードを生成して配置する二次元コード生成配置手段40と、ユーザ認証を行う認証手段50とを備える。
【0039】
(入力表示装置2)
入力表示装置2は、二次元コード読取装置3が読み取り可能なように、かつ、ユーザが視認可能なように二次元コードを二次元コードシンボルに画像変換して、配置指示に沿って複数の二次元コードシンボルを画面に配置して表示する手段(表示手段)と、ユーザからデータが入力される手段(入力手段)と、認証サーバ1とデータの送受信を行う手段(通信手段)とを備える装置である。詳細は後記する。
この入力表示装置2は、CPU(Central Processing Unit)などの演算装置と、メモリやハードディスクなどの記憶装置と、マウスやキーボードなどの外部から情報の入力を検出する入力装置と、外部との各種情報の送受信を行うインターフェース装置と、LCD(Liquid Crystal Display)などの表示装置を備えたコンピュータと、このコンピュータにインストールされたプログラムとから構成される。
【0040】
入力表示装置2は、ユーザから入力された指示に応じて、ユーザ登録画面またはユーザ認証画面を表示する。
<ユーザ登録画面>
入力表示装置2は、ユーザ登録画面を表示してユーザIDの入力を促し、ユーザIDを入力させる。
次に、入力表示装置2は、画面にn×m個の擬似二次元コードシンボルのボタン(擬似ボタン)をn行m列で配列表示させるとともに、押下したボタンの位置(読取パターン)がパスワードとなることをユーザに表示告知し、所定の決まりに従って、所定の数(m)のボタンを押下することをユーザに促す。ここで、擬似二次元コードシンボルのボタンをn行m列で配列表示させることは、入力表示装置2が備える記憶部(不図示)に予め擬似ボタン配置位置情報として記憶されている。ここで、擬似ボタン配置位置情報は、後記する二次元コード配置指定手段45が生成する配置位置情報に係る情報であり、n×m個の擬似ボタンをn行m列のマトリクス状に配置するなどの情報である。
【0041】
例えば、図3に示すように、入力表示装置2の画面には、擬似的な二次元コードシンボルのボタン(擬似ボタン)が4×4のマトリクス状に配置されて表示されている。ここで所定の決まりとは、各列から1つの擬似ボタンを選択することである。ユーザ登録を行うユーザによって、第一列目(A列)の第1行目、第二列目(B列)の第3行目、第三列目(C列)の第4行目、第四列目(D列)の第1行目の擬似ボタンが選択された場合、二次元コード読取パターン入力手段13は、読取パターンとして、(1,3,4,1)を取得する。
そして、入力表示装置2は、入力されたユーザIDと、読取パターンとをユーザ登録要求を認証サーバ1に送信する。これにより、認証サーバ1に読取パターンが入力される。
【0042】
<ユーザ認証画面>
入力表示装置2は、ユーザ認証画面を表示してユーザIDの入力を促し、入力されたユーザIDとともにユーザ認証要求を認証サーバ1に送信する。
その後、入力表示装置2は、後記するように認証サーバ1(二次元コード生成配置手段40)から、『n×m個の二次元コード[QR]』および『二次元コードシンボルの配置位置情報』を受信する。ここで[ ]は符号であり、その符号がついた名称のものがデータの列であることを示している。
そして、入力表示装置2は、二次元コード読取装置3が読み取り可能なように、かつ、ユーザが視認可能なように、『二次元コードシンボルの配置位置情報』に沿って、『n×m個の二次元コード[QR]』を画面上に配置する。
これにより、図3に示すように、入力表示装置2の画面に二次元コードシンボル(QRコード(登録商標))が配列表示される。
【0043】
ここで、図1の説明に戻る。
(二次元コード読取装置3)
二次元コード読取装置3は、ユーザにより操作される手段(操作手段)と、入力表示装置2に表示された二次元コードシンボルを読み取って二次元コードを解読して、読取データを取得する手段(二次元コード読取手段)と、各二次元コードを解読した読取データを連結して連結読取データ(連結情報)を生成する手段(連結情報生成手段)と、その連結読取データから送信先(認証サーバ1)のアドレスを抽出して連結読取データ(連結情報)を認証サーバ1に送信する手段(送信手段)とを備える装置である。詳細は後記する。
この二次元コード読取装置3は、例えば、CCD(Charge Coupled Device)カメラを備える二次元コードを読み取り可能な携帯電話やスマートフォンなどである。CPU(Central Processing Unit)などの演算装置と、メモリやハードディスクなどの記憶装置と、ボタンやタッチパネルなどの外部から情報の入力を検出する入力装置と、外部との各種情報の送受信を行うインターフェース装置と、LCD(Liquid Crystal Display)などの表示装置と、二次元コードシンボルを読み取るCCDイメージセンサなどの画像処理装置とを備えたコンピュータと、このコンピュータにインストールされたプログラムとから構成される。
【0044】
認証時にユーザは、自身が登録時に入力表示装置2に表示されたユーザ登録画面にて、擬似二次元コードシンボルのボタン(擬似ボタン)を押下した位置(読取パターン)を思い出して、入力表示装置2の画面上に配置された二次元コードシンボルを二次元コード読取装置3に読み取らせる。
これにより、二次元コード読取装置3は、二次元コードシンボルを読み取って二次元コードを解読して、読取データを取得する。ここで、二次元コードシンボルはQRコードであるため、読取データにはQRコード生成時の情報が含まれている。本実施形態の読取データには、一連のデータを分割して、それぞれの分割データからQRコードを生成したときの情報が含まれており、データの総分割数や、分割後の先頭QRコードから割り振られた順番(シンボル列指示子)などが含まれている。読取データに含まれる情報についての詳細は後記する。
そして、二次元コード読取装置3は、解読後の読取データから得られるシンボル列指示子(分割後の先頭QRコードから割り振られた順番)に基づき、順番に読取データを連結して連結読取データ(連結情報)を生成する。ここで、連結読取データの先頭には、ネットワーク4を介して認証サーバ1と接続可能なように、認証サーバ1のアドレス(ここでは、URL(Uniform Resource Locator))があれば、そのアドレスを抽出し、連結読取データ(連結情報)を認証サーバ1に送信する。
ここで、二次元コード読取装置3は、認証サーバ1のアドレスを予め記憶しておき、そのアドレスを用いて、連結読取データ(連結情報)を認証サーバ1に送信してもよい。
【0045】
(ネットワーク4)
ネットワーク4は、認証サーバ1と入力表示装置2とを通信可能に接続し、さらに、認証サーバ1と二次元コード読取装置3とを通信可能に接続する通信回線であり、例えばEthernet(登録商標)やWi−Fi(登録商標)などである。このネットワーク4を介することで、各装置間にて、IP(Internet Protocol)などの通信プロトコルに従ってデータのやり取りを行うことができる。
【0046】
2.システムの動作概要
ここで、認証システム100によって行われる第1の実施形態に係るユーザ認証について簡単に説明する。
まず、認証サーバ1の記憶手段20には、ユーザを特定する「ユーザID」と、そのユーザが二次元コードの配置位置を設定した「読取パターン」と、ユーザIDおよび読取パターンを含めて関数処理した「秘密コード」との3つのデータが対応付けられて記憶されている。
認証サーバ1の二次元コード生成配置手段40は、秘密コードを暗号化したデータを所定の数に分割し、分割データ[div*u](詳細は後記する(図5(d))それぞれを二次元コード化(符号化)して、ユーザ二次元コード[QR*u](詳細は後記する(図5(f))を生成する。ここで、二次元コード生成配置手段40は、分割データ[div*u]からQRコードを生成するため、この生成されたユーザ二次元コード[QR*u]はQRコードである。そのため、QRコード化されたユーザ二次元コード[QR*u]には、QRコードにするデータ(分割データ[div*u])を基にして生成された共通の情報(パリティデータ)が割り振られ、順番(シンボル列指示子)や分割数などの情報が含まれる。さらに、二次元コード生成配置手段40は、乱数の列を暗号化したデータも所定の数に分割し、分割データ[div*d]それぞれを二次元コード化(符号化)して、ダミー二次元コード[QR*d]を生成する。
そして、二次元コード生成配置手段40は、生成したユーザ二次元コード[QR*u]およびダミー二次元コード[QR*d]と、ユーザ二次元コード[QR*u]を読取パターンに沿った位置に配置させ、それ以外の位置にダミー二次元コード[QR*d]を配置させる配置位置情報(配置指示データ)とを、入力表示装置2に出力する。
【0047】
入力表示装置2は、ユーザ二次元コード[QR*u]およびダミー二次元コード[QR*d]と配置位置情報(配置指示データ)とを受信して、配置位置情報に従って、それら二次元コードを画像化した二次元コードシンボルを画面上に配置する。これにより、画面に二次元コードシンボルが配置されて表示される。
ユーザは、自身が登録した読取パターンを思い出して、入力表示装置2の画面に配置された二次元コードシンボルを、二次元コード読取装置3に読み取らせる。
【0048】
二次元コード読取装置3は、二次元コードシンボルを読み取って、二次元コードを解読して分割データを取得する。このとき、ユーザが正しく読取パターン通りに読み取っていれば、ユーザ二次元コード[QR*u]を解読した分割データ[div*u]を取得することになる。これら分割データ[div*u]を連結して連結読取データ(連結情報)を生成して、この連結読取データ(連結情報)を認証サーバ1に送信する。
【0049】
認証サーバ1の認証手段50は、二次元コード読取装置3から連結読取データ(連結情報)を受信して、連結読取データ(連結情報)を復号して、復号データから秘密コードを取得する。認証手段50は、この秘密コードが、記憶手段20に記憶された秘密コードと一致するか否かの比較を行う。一致する秘密コードがあれば、認証されたこと(認証OK)となる。
以上で、第1の実施形態に係るユーザ認証についての簡単な説明を終了する。
【0050】
3.各部の詳細
《認証サーバ1》
図2を用いて、認証サーバ1が備える各部の詳細について説明する。
《通信入出力手段10》
通信入出力手段10は、ネットワーク4を介して接続する入力表示装置2および二次元コード読取装置3とデータの送受信を行い、データを認証サーバ1に入力する手段である。この通信入出力手段10は、通信手段11と、ユーザID入力手段12と、二次元コード読取パターン入力手段13と、連結情報入力手段14とを備える。
【0051】
(通信手段11)
通信手段11は、ネットワーク4を介して接続する入力表示装置2や二次元コード読取装置3などの他の機器から送信されたデータを受信するインターフェースである。また、他の機器へデータを送信するインターフェースである。
【0052】
(ユーザID入力手段12)
ユーザID入力手段12は、通信手段11が受信した、入力表示装置2からの送信データから「ユーザID」を取得する手段である。これにより、認証サーバ1にユーザIDが入力される。ここで、ユーザID入力手段12は、ユーザ登録要求とともに取得したユーザIDであれば、後記する秘密コード生成手段31に出力する。また、ユーザ認証要求とともに取得したユーザIDであれば、後記するユーザDB21および後記する二次元コード配置指定手段45に出力する。
【0053】
(二次元コード読取パターン入力手段13)
二次元コード読取パターン入力手段13は、入力表示装置2から送信され、通信手段11が受信したデータから「読取パターン」(二次元コードの配置位置を所定のルールに従って符号化したもの)を取得する手段である。
【0054】
(連結情報入力手段14)
連結情報入力手段14は、二次元コード読取装置3から送信され、通信手段11が受信した連結読取データから連結情報を抽出する手段である。
例えば、ユーザが操作する二次元コード読取装置3により、正しい読取パターンで二次元コードシンボルが読み取られていれば、連結情報入力手段14は、通信手段11が受信した連結読取データから連結情報を取得する。これにより、認証サーバ1に、連結情報が入力されたこととなる。
そして、連結情報入力手段14は、抽出した連結情報を後記する連結情報復号手段51に出力する。
【0055】
《記憶手段20》
記憶手段20は、データやプログラムを記憶する手段であり、例えば、HD(Hard Disc)、RAM(Random Access Memory)、光ディスクなどの記憶手段である。記憶手段20は、ユーザDB21を備えている。
【0056】
(ユーザDB21)
ユーザDB21は、ユーザを特定する「ユーザID」と、そのユーザが設定した二次元コードの配置位置を示す「読取パターン」と、ユーザIDおよび読取パターンを含めて関数処理した「秘密コード」との3つのデータを対応付けて記憶する手段である。ユーザDB21は、例えば、図4に示すように、ユーザID「Haruto」が、読取パターン(1,3,4,1)と、秘密コード「0xFA039CDC・・・」と対応付けて記憶されている。
さらに、ユーザDB21は、ユーザID入力手段12から「ユーザID」を取得したときに、その「ユーザID」と対応付けられて記憶された「秘密コード」を、後記する暗号化手段43に出力する機能を備えている。
【0057】
《登録手段30》
登録手段30は、ユーザ登録処理を行う手段であり、当該ユーザ登録処理を行うことで、ユーザDB21に「ユーザID」と「読取パターン」と「秘密コード」との3つのデータを対応付けて記憶させる。この登録手段30は、秘密コード生成手段31と、ユーザ登録手段32とを備える。
【0058】
(秘密コード生成手段31)
秘密コード生成手段31は、ユーザID入力手段12に入力されたユーザIDと、二次元コード読取パターン入力手段13に入力された読取パターンとから、一方向性関数を用いて秘密コードを生成する手段である。
【0059】
(ユーザ登録手段32)
ユーザ登録手段32は、ユーザIDと、読取パターンと、生成された秘密コードとの3つを関連付けて、ユーザDB21(データベース)に記憶させる手段である。
【0060】
《二次元コード生成配置手段40》
二次元コード生成配置手段40は、二次元コード配置処理を行う手段であり、当該二次元コード配置処理を行うことで、ユーザ二次元コード[QR*u]およびダミー二次元コード[QR*d]とで構成されるn×m個の二次元コード[QR]と、二次元コード[QR]の配置位置情報とを生成する。この二次元コード生成配置手段40は、乱数発生手段41と、時刻出力手段42と、暗号化手段43と、二次元コード生成手段44と、二次元コード配置指定手段45と、二次元コード出力手段46とを備える。
【0061】
(乱数発生手段41)
乱数発生手段41は、乱数を発生させる手段である。乱数発生手段41は、一般的な乱数生成アルゴリズムを用いて乱数を発生させる。この乱数は、数字や文字またはそれらの組み合わせである。
(時刻出力手段42)
時刻出力手段42は、動作時の時刻(現在の時刻)を取得する手段である。
【0062】
(暗号化手段43)
暗号化手段43は、1個のユーザデータ[Du]と、n−1個のダミーデータ[Dd]とを生成して、それぞれを暗号化して、さらにそれぞれの前にアドレス[URL]を付加する手段である。これにより、1個の[URL*cDu]と、n−1個の[URL*cDd]が生成される。
このアドレス[URL]は、二次元コード読取装置3がネットワーク4を介して認証サーバ1に接続可能となるアドレスであり、例えば、インターネット上のサーバの位置を識別する情報であるURLや、メールアドレスでもよい。
この“n”という数字は、図3に示す入力表示装置2の表示画面にマトリクス状に表示される二次元コードシンボルの行数(n)を示している。
【0063】
まず、暗号化手段43は、ユーザDB21から「秘密コード」を取得する。これは、ユーザID入力手段12がユーザ認証要求とともに取得した「ユーザID」をユーザDB21に出力したことにより、ユーザDB21が、その「ユーザID」と対応付けられて記憶された「秘密コード」を暗号化手段43へと出力する。これにより、暗号化手段43がユーザDB21から「秘密コード」を取得することができる。
さらに、暗号化手段43は、時刻出力手段42から現在の時刻情報を取得する。
そして、暗号化手段43は、ユーザDB21から取得した「秘密コード」と時刻出力手段42から取得した「時刻情報」とを連結して、ユーザデータ[Du]を生成する(図5(a))。図では、「時刻情報」が「秘密コード」の先に連結されているが、「秘密コード」の後であっても構わない。
【0064】
また、暗号化手段43は、乱数発生手段41から乱数を取得し、この乱数を羅列したダミーデータ[Dd]を生成する。この処理を、所定の回数(n−1回)繰り返して、暗号化手段43は、n−1個のダミーデータ[Dd]を生成する。ここで、n=4であれば、3つのダミーデータ[Dd1]、[Dd2]、[Dd3]が生成される。
【0065】
暗号化手段43は、1個のユーザデータ[Du]と、n−1個のダミーデータ[Dd]とをそれぞれ暗号化して、1個の暗号化ユーザデータ[cDu]と、n−1個の暗号化ダミーデータ[cDd]とを生成する。ここで、n=4であれば、暗号化ユーザデータ[cDu]と、3つの暗号化ダミーデータ[cDd1]、[cDd2]、[cDd3]が生成される(図5(b))。
ここで、暗号化方式を特定する必要はないが、例えばAES(Advanced Encryption Standard)などの共通鍵暗号を用いてもよい。
【0066】
暗号化手段43は、生成した1個の暗号化ユーザデータ[cDu]と、n−1個の暗号化ダミーデータ[cDd]とのそれぞれのデータの先頭に、二次元コード読取装置3がネットワーク4を介して認証サーバ1に接続可能となるアドレス[URL]を付加する。これにより、1個のアドレス付暗号化ユーザデータ[URL*cDu]と、n−1個のアドレス付暗号化ダミーデータ[URL*cDd]が生成される。ここで、n=4であれば、1個のアドレス付暗号化ユーザデータ[URL*cDu]と、3個のアドレス付暗号化ダミーデータ[URL*cDd1]、[URL*cDd2]、[URL*cDd3]が生成される(図5(c))。
【0067】
最後に、暗号化手段43は、例えば、1個のアドレス付暗号化ユーザデータ[URL*cDu]と、n−1個のアドレス付暗号化ダミーデータ[URL*cDd]とを二次元コード生成手段44に出力する。
【0068】
(二次元コード生成手段44)
二次元コード生成手段44は、データをm個に分割して、分割後のデータの列の末尾に特定の文字列[&]を付与して、二次元コード化する手段である。
この“m”という数字は、図3に示す入力表示装置2の表示画面にマトリクス状に表示される二次元コードシンボルの列数(m)を示している。
【0069】
ここで、二次元コード生成手段44は、分割後のデータの列の末尾に特定の文字列[&]を付与する。例えば、本実施形態では、特定の文字列[&]をアンダーバー( _ )を2つ連続させた“ __ ”とする。この場合、URLの文字列にこの特定の文字列[&]を付与すると、“ __ ”を含むURLとして認識されてしまい、認証サーバ1にアクセスすることができない。そのため、URLの文字列を分割する場合には、この特定の文字列[&]を付与しない。これにより、二次元コード読取装置3が、分割された2つのURLの文字列を連結させたときに、認証サーバ1に接続可能となるURLの文字列を取得することができる。また、特定の文字列[&]は、アンダーバー( _ )である必要はなく、任意の文字列でも構わない。
【0070】
まず、二次元コード生成手段44は、暗号化手段43から取得したアドレス付暗号化ユーザデータ[URL*cDu]を、m個に分割する。これにより、m個の分割データ[div*u]が生成される。ここで、m=4であれば、4個の分割データ[div1*u]、[div2*u]、[div3*u]、[div4*u]が生成される(図5(d))。
そして、二次元コード生成手段44は、分割後のデータの列の末尾に特定の文字列[&]を付与する。これにより、m=4であれば、[div1*u][&]、[div2*u][&]、[div3*u][&]、[div4*u][&]が生成される(図5(e))。
次に、二次元コード生成手段44は、特定の文字列[&]を付与したこれらのデータを二次元コード化して、m個のユーザ二次元コード[QR*u]を生成する。これにより、m=4であれば、[div1*u][&]からは[QR1*u]を生成し、[div2*u][&]からは[QR2*u]を生成し、[div3*u][&]からは[QR3*u]を生成し、[div4*u][&]からは[QR4*u]を生成する(図5(f))。
【0071】
同様に、二次元コード生成手段44は、n−1個のアドレス付暗号化ダミーデータ[URL*cDd]それぞれを、m個に分割する。分割後のデータの列の末尾に特定の文字列[&]を付与して、これらのデータを二次元コード化して、(n−1)×m個のダミー二次元コード[QR*d]を生成する。
【0072】
ここで、m=4であれば、二次元コード生成手段44は、アドレス付暗号化ダミーデータ[URL*cDd1]、[URL*cDd2]、[URL*cDd3]それぞれを4個(m個)に分割して、アドレス付暗号化ダミーデータ[URL*cDd1]からは、[QR1*d1]、[QR2*d1]、[QR3*d1]、[QR4*d1]を生成する。さらに、アドレス付暗号化ダミーデータ[URL*cDd2]からは、[QR1*d2]、[QR2*d2]、[QR3*d2]、[QR4*d2]を生成する。そして、アドレス付暗号化ダミーデータ[URL*cDd3]からは、[QR1*d3]、[QR2*d3]、[QR3*d3]、[QR4*d3]を生成する。以上により、(n−1)×m個、つまり12個のダミー二次元コード[QR*d]が生成される。
【0073】
二次元コード生成手段44は、分割により複数の二次元コード(QRコード(登録商標))を生成する際、特開2010−61468号公報(特許文献2)の方法を用いることで、任意のQRコード(登録商標)の構造的連接読み取り(連続的に複数のQRコード(登録商標)の画像(二次元コードシンボル)を読み取り、各QRコード(登録商標)を解読した読取データを連結すること)が可能となる。
【0074】
例えば、二次元コード生成配置手段40は、アドレス付暗号化ユーザデータ[URL*cDu](図5(c))を分割して複数のユーザ二次元コード[QR*u](QRコード(登録商標))(図5(f))を生成する際に、データの総分割数(m)や、分割後の先頭QRコードから割り振られた順番(シンボル列指示子)などの情報を含めて、ユーザ二次元コード[QR1*u]、[QR2*u]、[QR3*u]、[QR4*u]を生成する。つまり、[QR1*u]には「総分割数=4」および「順番(シンボル列指示子)=1」の情報が含まれている。
また、二次元コード生成配置手段40は、QRコード(登録商標)にするデータ、つまり、特定の文字列[&]を付与した分割データ[div*u][&]を基にして生成された共通の情報(パリティデータ)が割り振られている。これにより、当該QRコードを読み取る二次元コード読取装置3は、解読後のQRコードに含まれるパリティデータが同じものだけを順番に連結することで、間違いなくもとのデータを復元できる。このパリティデータは、QRコード(登録商標)にするデータをバイトごとにXOR(排他的論理和)をとった8ビットの符号である。
【0075】
最後に、二次元コード生成手段44は、m個のユーザ二次元コード[QR*u]と、(n−1)×m個のダミー二次元コード[QR*d]との全部でn×m個の二次元コードを、二次元コード配置指定手段45に出力する。
【0076】
(二次元コード配置指定手段45)
二次元コード配置指定手段45は、入力表示装置2の表示画面における、二次元コードシンボルの配置位置を指定する手段である。
まず、二次元コード配置指定手段45は、ユーザID入力手段12からユーザIDを取得し、このユーザIDに対応する「読取パターン」をユーザDB21から取得する。
また、二次元コード生成手段44から、1組(m個)のユーザ二次元コード[QR*u]および(n−1)組((n−1)×m個)のダミー二次元コード[QR*d]で構成されるn×m個の二次元コード[QR]を取得する。
【0077】
そして、二次元コード配置指定手段45は、図3に示す入力表示装置2の表示画面のように、n行m列のマトリクス状に二次元コードシンボルを配置させるために、二次元コード[QR]の配置位置を指定する。このとき、まず、m個のユーザ二次元コード[QR*u]を「読取パターン」に沿った位置に配置し、それ以外の位置に(n−1)×m個のダミー二次元コード[QR*d]を配置するように指定する。そして、この二次元コードの配置位置を指定する配置位置情報(配置指示データ)を生成する。
【0078】
二次元コード配置指定手段45は、最後に、二次元コード生成手段44から取得したユーザ二次元コード[QR*u]およびダミー二次元コード[QR*d]で構成されるn×m個の二次元コード[QR]と、これら二次元コードの配置位置を指定する配置位置情報とを、二次元コード出力手段46に出力する。
【0079】
ここで、二次元コード配置指定手段45が、入力表示装置2に4×4のマトリクス状に二次元コードシンボルを配置させる配置位置情報を生成する例を示す(適宜、図3を参照)。
二次元コード配置指定手段45は、二次元コード生成手段44から、4つで1組のユーザ二次元コード[QR*u];[QR1*u]、[QR2*u]、[QR3*u]、[QR4*u]と、4つで1組のダミー二次元コード[QR*d]が3組([QR*d1]、[QR*d2]、[QR*d3])で全12個のダミー二次元コード[QR*d1]([QR1*d1]、[QR2*d1]、[QR3*d1]、[QR4*d1]),[QR*d2]([QR1*d2]、[QR2*d2]、[QR3*d2]、[QR4*d2]),[QR*d3]([QR1*d3]、[QR2*d3]、[QR3*d3]、[QR4*d3])とを取得する。
【0080】
そして、二次元コード配置指定手段45は、ユーザDB21から取得した「読取パターン」が(1,3,4,1)である場合に、二次元コード配置指定手段45は、1組のユーザ二次元コード[QR*u]を、4×4のマトリクス状の位置のうち「読取パターン」に沿った位置に、[QR1*u]を第一列第1行目、[QR2*u]を第二列第3行目、[QR3*u]を第三列第4行目、[QR4*u]を第四列第1行目の位置に配置するように指定する。
同様に、3組全12個のダミー二次元コード[QR*d]を、4×4のマトリクス状に配置する。このとき、1組のユーザ二次元コードが配置された位置以外の位置に、全12個のダミー二次元コードを配置するように指定する。例えば、第一列目には、[QR1*d1]を第一列第2行目、[QR1*d3]を第一列第3行目、[QR1*d2]を第一列第4行目の位置に配置するように指定し、第二列目には、[QR2*d2]を第二列第1行目、[QR2*d3]を第二列第2行目、[QR2*d1]を第二列第4行目の位置に配置するように指定する。
【0081】
(二次元コード出力手段46)
二次元コード出力手段46は、二次元コード配置指定手段45から『n×m個の二次元コード[QR]』と『二次元コードシンボルの配置位置情報』とを取得し、これらを通信手段11が入力表示装置2に送信するように送信データを生成する。
【0082】
《認証手段50》
認証手段50は、連結情報復号手段51と、情報分離手段52と、二段階認証手段53とを備える。
(連結情報復号手段51)
連結情報復号手段51は、連結情報入力手段14から取得した連結情報から、特定の文字列を除去して一連のデータ(連続データ)にし、その一連のデータ(連続データ)を復号する手段である。
【0083】
連結情報復号手段51は、連結情報入力手段14から連結情報を取得し、この連結情報から特定の文字列[&]を除去して文字列が一続きとなった連続データにする。この特定の文字列[&]は、二次元コード生成手段44に付与されたものである。
【0084】
例えば、ユーザが操作する二次元コード読取装置3により、正しい読取パターンで二次元コードシンボルが読み取られていれば、連結情報復号手段51は、連結情報入力手段14から連結情報として、[div1A*u][&][div2*u][&][div3*u][&][div4*u][&]を取得する。この連結情報から[&]を除去して連続データ[div1A*u][div2*u][div3*u][div4*u]を取得する。この連続データは、二次元コード生成手段44によりm個に分割される前の、暗号化ユーザデータ[cDu]である。ここで、[div1A*u]とは、図5(d)に示す分割データ[div1*u]からアドレス[URL]を除去したデータである。
【0085】
そして、連結情報復号手段51は、連続データを復号する。この復号方式は、暗号化手段43で行われた暗号化方式に対応するものとする。
例えば、ユーザが操作する二次元コード読取装置3により、正しい読取パターンで二次元コードシンボルが読み取られていれば、連結情報復号手段51は、暗号化ユーザデータ[cDu]を復号して、ユーザデータ[Du]を取得する。
このユーザデータ[Du]を、連結情報復号手段51は、情報分離手段52に出力する。
【0086】
(情報分離手段52)
情報分離手段52は、連結情報復号手段51から取得したデータを分離して、「時刻部分の情報」と「被認証部分の情報」とを取得する手段である。情報分離手段52は、取得した時刻部分の情報と、被認証部分の情報とを二段階認証手段53に出力する。
ここで、正しい読取パターンで二次元コードシンボルが読み取られていれば、連結情報復号手段51から情報分離手段52はユーザデータ[Du]を取得する。このユーザデータ[Du]を分離して、「時刻情報が埋め込まれている領域」の時刻部分の情報と、「秘密コードが埋め込まれている領域」の被認証部分の情報とを取得する。この時刻部分の情報が、暗号化手段43が時刻出力手段42から取得した「時刻情報」であり、被認証部分の情報が、暗号化手段43がユーザDB21から取得した「秘密コード」である。
【0087】
(二段階認証手段53)
二段階認証手段53は、「時刻部分の情報」の時間内判定(第1判定)と、「被認証部分の情報」のユーザ認証判定(第2判定)とを行う手段である。そして、認証結果を通信手段11を介して出力する。出力先は二次元コード読取装置3および/または入力表示装置2とする。
【0088】
二段階認証手段53は、情報分離手段52から「時刻部分の情報」と「被認証部分の情報」とを取得し、時間内判定を行う。
(時間内判定)
二段階認証手段53は、時刻出力手段42から現在時刻を取得して、「時刻部分の情報」から「現在時刻」までの時間が所定の有効時間内であるか否かの第1判定を行う。
ここで「時刻部分の情報」が時刻の情報でなければ、第1判定NGと判定される。また、有効時間を超えていれば、第1判定NGと判定される。一方、有効時間内であれば、第1判定OKと判定される。第1判定OKであれば、次に認証判定を行う。
例えば、正しい読取パターンで二次元コードシンボルが読み取られていれば、「時刻部分の情報」は、暗号化手段43が時刻出力手段42から取得した「時刻情報」である。二段階認証手段53は、この「時刻部分の情報」(「時刻情報」)から「現在時刻」までの時間が所定の有効時間内であるか否かを判定する。
【0089】
(ユーザ認証判定)
次に、二段階認証手段53は、「被認証部分の情報」がユーザDB21に記憶されている「秘密コード」と一致するか否かの第2判定を行う。
例えば、正しい読取パターンで二次元コードシンボルが読み取られていれば、「被認証部分の情報」は、暗号化手段43がユーザDB21から取得した「秘密コード」である。二段階認証手段53は、この「被認証部分の情報」が、ユーザDB21に記憶されている「秘密コード」と一致するか否かを判定する。このとき、一致する「秘密コード」があれば、認証OKと判定される。一方、一致する「秘密コード」がなければ、認証NGと判定される。
【0090】
4.ユーザ認証処理
本実施形態では、ユーザ認証を次の3つの処理で実現している。
(1)ユーザ登録処理
(2)二次元コード配置処理
(3)ユーザ認証実行処理
【0091】
ユーザは、最初に、入力表示装置2に表示されたユーザ登録画面の指示に従って、ユーザ登録(ユーザ登録処理)を行う。その後、ユーザが入力表示装置2に表示されたユーザ認証の指示に従ってユーザ認証を行うたびに、二次元コード配置処理に続けてユーザ認証実行処理が行われる。以下、それぞれの処理について説明する。
【0092】
(1)ユーザ登録処理
次に、図6を参照して、認証システム100の認証サーバ1と入力表示装置2との間で行われるユーザ登録処理動作について説明する(適宜、図1ないし図3を参照)。
【0093】
まず、入力表示装置2は、ユーザ登録画面を表示する(ステップS101)。ユーザはそのユーザID入力画面に表示された指示に従ってユーザIDを入力する(ステップS102)。そして、入力表示装置2は、入力されたユーザIDを含むユーザ登録要求データを認証サーバ1に送信する(ステップS103)。
【0094】
認証サーバ1の通信手段11は、入力表示装置2からユーザ登録要求データを受信する。ユーザID入力手段12は受信したユーザ登録要求データからユーザID(登録ユーザID)を取得する(ステップS104)。これにより、ユーザIDが認証サーバ1に入力されたことになる。このとき、認証サーバ1は、ユーザDB21に同一のユーザIDが既に登録されていないかを確認してもよい。
【0095】
ユーザIDが入力された入力表示装置2は、次に、二次元コードに似た擬似的なシンボル(擬似二次元コードシンボル)を所定の配列で配置された画面を表示する(ステップS105)。このシンボルはボタンであって選択入力可能であり、ユーザは所定の決まりに従って、所定の数(m)のシンボル(擬似二次元コードシンボル)を選択する(ステップS106)。これにより、入力表示装置2は、選択された各シンボルの配置位置からなる『読取パターン』を生成する(ステップS107)。
【0096】
以下、ステップS107にて、入力表示装置2は(1,3,4,1)の読取パターンを生成したとする。この読取パターンを、入力表示装置2は認証サーバ1に送信する(ステップS108)。
【0097】
認証サーバ1の通信手段11は、入力表示装置2が送信したデータを受信し、二次元コード読取パターン入力手段13がデータから読取パターンを取得する(ステップS109)ことで、読取パターンが認証サーバに入力されたことになる。このとき、(1,3,4,1)の読取パターンが入力される。
【0098】
秘密コード生成手段31は、ユーザID入力手段12からユーザIDを取得し、二次元コード読取パターン入力手段13から読取パターンを取得する。秘密コード生成手段31は、ユーザIDと読取パターンとから一方向性関数を用いて秘密コードを生成する(ステップS110)。次に、秘密コード生成手段31は、ユーザIDと、読取パターンと、秘密コードとの3つのデータをユーザ登録手段32に出力する。
【0099】
ユーザ登録手段32は、秘密コード生成手段31から取得したユーザIDと、読取パターンと、秘密コードとの3つのデータを関連付けて、ユーザDB21に記憶させる(ステップS111)。以上で、認証システム100は、ユーザ登録処理動作を終了する。
【0100】
(2)二次元コード配置処理
次に、図7および図8を参照して、認証サーバ1の二次元コード配置処理動作について説明する(適宜、図1ないし図6を参照)。
【0101】
まず、入力表示装置2は、ユーザ認証画面を表示し、ユーザはユーザIDを入力する。入力表示装置2は、入力されたユーザIDを含むユーザ認証要求データを認証サーバ1に送信する。これは、図6のステップS101〜S103と同様の処理であるため、ここでは説明を省略する。
【0102】
認証サーバ1の通信手段11は、入力表示装置2からユーザ認証要求データを受信する。ユーザID入力手段12は受信したユーザ認証要求データからユーザIDを取得する(ステップS201)。これにより、ユーザIDが認証サーバ1に入力されたことになる。ユーザID入力手段12は、ユーザDB21を参照して、取得したユーザIDと関連付けられた秘密コードを取得して(ステップS202)、暗号化手段43に提供する。
【0103】
暗号化手段43は、時刻出力手段42から現在時刻を示す時刻情報を取得する(ステップS203)。暗号化手段43は、秘密コードと時刻情報とを連結して、ユーザデータ[Du]を生成し(ステップS204)(図5(a))、ユーザデータ[Du]を暗号化して暗号化ユーザデータ[cDu]を生成する(ステップS205)(図5(b))。
【0104】
次に、暗号化手段43は、乱数発生手段41に乱数を発生させて、乱数発生手段41から乱数を取得し、乱数の列(ダミーデータ[Dd])を生成する(ステップS206)。生成した乱数の列を暗号化して暗号化ダミーデータ[cDd]([cDd1])を生成する(ステップS207)。そして、生成した暗号化ダミーデータ[cDd]の数が所定の数(n−1)となったか否かを判定する([cDd]の数=所定の数(n−1)?)(ステップS208)。暗号化ダミーデータ[cDd]の数が所定の数(n−1)未満([cDd]の数<所定の数(n−1))であれば(ステップS208,No)、ステップS206の処理を再び行い、暗号化ダミーデータ[cDd]([cDd2])を生成する。
【0105】
一方、暗号化ダミーデータ[cDd]の数が所定の数(n−1)([cDd]の数=所定の数(n−1))であれば(ステップS208,Yes)、暗号化手段43は、ステップS209を実行する。
この時点で、暗号化手段43により、暗号化ユーザデータ[cDu]と、n−1個の暗号化ダミーデータ[cDd]([cDd1],[cDd2],・・・,[cDd(n−1)])とが生成される。
【0106】
次に、暗号化手段43は、(記憶手段20に記憶された)認証サーバ1にアクセスするためのアドレス[URL]を取得する(ステップS209)。
そして、ステップS205で暗号化した暗号化ユーザデータ[cDu]の前に、取得したアドレス[URL]を連結して、アドレス付暗号化ユーザデータ[URL*cDu]を生成する(ステップS210)(図5(c))。
さらに、暗号化手段43は、ステップS207で乱数の列(ダミーデータ[Dd])を暗号化した暗号化ダミーデータ[cDd]([cDd1],[cDd2],・・・,[cDd(n−1)])それぞれの前にも、取得したアドレス[URL]を連結して、n−1個のアドレス付暗号化ダミーデータ[URL*cDd]([URL*cDd1],[URL*cDd2],・・・,[URL*cDd(n−1)])を生成する(ステップS211)。暗号化手段43は、これらアドレス付暗号化ユーザデータ[URL*cDu]およびn−1個のアドレス付暗号化ダミーデータ[URL*cDd]を二次元コード生成手段44に出力する。
【0107】
二次元コード生成手段44は、アドレス付暗号化ユーザデータ[URL*cDu]を所定の数(m)に分割する(ステップS212,図8)。これにより、m個の分割データ[div*u]が生成される(図5(d))。そして、二次元コード生成手段44は、分割後のデータの列の末尾に特定の文字列[&]を付与する。m=4であれば、[div1*u][&]、[div2*u][&]、[div3*u][&]、[div4*u][&]が生成される(図5(e))。
そして、これらのm個に分割されたデータをそれぞれ二次元コード化して、m個のユーザ二次元コード[QR*u]を生成する(ステップS213)(図5(f))。
【0108】
同様に、二次元コード生成手段44は、n−1個のアドレス付暗号化ダミーデータ[URL*cDd]それぞれを所定の数(m)に分割する(ステップS214)。これにより、分割後のデータの列の末尾に特定の文字列[&]を付与して、これらのデータを二次元コード化して、(n−1)×m個の二次元コード[QR*d]を生成する(ステップS215)。
以上のステップS212〜ステップS215の処理により、n×m個の二次元コード[QR]が生成される。
【0109】
二次元コード配置指定手段45は、ユーザID入力手段12からユーザIDを取得し、そのユーザIDに対応する読取パターンをユーザDB21から取得する(ステップS216)。
次に、二次元コード配置指定手段45は、入力表示装置2の画面上にて、読取パターンに沿って、アドレス付暗号化ユーザデータ[URL*cDu]の二次元コードシンボルが表示されるように、アドレス付暗号化ユーザデータ[URL*cDu]のm個のユーザ二次元コード[QR*u]と、アドレス付暗号化ダミーデータ[URL*cDd]([URL*cDd1],[URL*cDd2],・・・,[URL*cDd(n−1)])の(n−1)×m個のダミー二次元コード[QR*d]とを、入力表示装置2の画面に配置させる配置位置情報を生成する(ステップS217)。
【0110】
二次元コード出力手段46は、n×m個の二次元コード[QR](ユーザ二次元コード[QR*u]およびダミー二次元コード[QR*d])と、それら二次元コードの配置位置情報とを、通信手段11が入力表示装置2に送信するように送信データを生成する(ステップS218)。これにより、認証サーバ1(通信手段11)は送信データを入力表示装置2に送信する。そして、認証サーバ1は、二次元コード配置処理を終了する。
【0111】
《入力表示装置2の二次元コードシンボル配置処理》
その後、入力表示装置2は、認証サーバ1から送信データを受信し、n×m個の二次元コード[QR](ユーザ二次元コード[QR*u]およびダミー二次元コード[QR*d])と、それら二次元コードの配置位置情報とを取得する。
次に、入力表示装置2は、n×m個の二次元コード[QR]それぞれを画像化して二次元コードシンボルにする。そして、m個のユーザ二次元コード[QR*u]を画像化した二次元コードシンボルそれぞれと、(n−1)×m個のダミー二次元コード[QR*d]を画像化した二次元コードシンボルそれぞれとを、配置位置情報に基づき配置させて画面に表示する。
【0112】
《二次元コード読取装置3の連結情報送信処理》
その後、ユーザに操作されて、二次元コード読取装置3は、入力表示装置2の画面上に表示された二次元コードシンボルを読み取る。
これにより、二次元コード読取装置3は、二次元コードシンボルを読み取って二次元コードを解読して、読取データを取得する。そして、その読取データから得られるシンボル列指示子に基づき、順番に読取データを連結して連結読取データ(連結情報)を生成する。さらに、読取データから送信先(認証サーバ1)のアドレス[URL]を抽出し、アドレス[URL]を使って認証サーバ1とネットワーク4を介して接続して、連結読取データ(連結情報)を認証サーバ1に送信する。
【0113】
(3)ユーザ認証実行処理
次に、図9を参照して、認証サーバ1のユーザ認証実行処理動作について説明する(適宜、図1ないし図5を参照)。
【0114】
連結情報入力手段14は二次元コード読取装置3から連結読取データを受信し、連結読取データから連結情報を抽出する(ステップS301)。ここで、正しい読取パターンで二次元コードシンボルが読み取られていれば、抽出された連結情報は、連結読取データからアドレス[URL]が除去された[div1A*u][&][div2*u][&][div3*u][&][div4*u][&]を取得する。
【0115】
連結情報復号手段51は、連結情報入力手段14から連結情報([div1A*u][&][div2*u][&][div3*u][&][div4*u][&])を取得し、この連結情報から特定の文字列[&]を除去して連続データを取得する(ステップS302)。ここで、正しい読取パターンで二次元コードシンボルが読み取られていれば、取得した連続データは、[div1A*u][div2*u][div3*u][div4*u]であり、二次元コード生成手段44によりm個に分割される前の、暗号化ユーザデータ[cDu]である。
【0116】
そして、連結情報復号手段51は、連続データ(暗号化データ)を復号し(ステップS303)、復号データを情報分離手段52に出力する。ここで、正しい読取パターンで二次元コードシンボルが読み取られていれば、連結情報復号手段51は、暗号化ユーザデータ[cDu]を復号する。この復号データは、ユーザデータ[Du]である。
【0117】
情報分離手段52は、連結情報復号手段51から取得した復号データを分離して、「時刻部分の情報」と「被認証部分の情報」とを取得する(ステップS304)。そして、取得した「時刻部分の情報」と、「被認証部分の情報」とを二段階認証手段53に出力する。ここで、正しい読取パターンで二次元コードシンボルが読み取られていれば、情報分離手段52は、ユーザデータ[Du]を分離して、「時刻情報が埋め込まれている領域」の時刻部分の情報と、「秘密コードが埋め込まれている領域」の被認証部分の情報とを取得する。この「時刻部分の情報」が、暗号化手段43が時刻出力手段42から取得した「時刻情報」であり、「被認証部分の情報」が、暗号化手段43がユーザDB21から取得した「秘密コード」である。
【0118】
二段階認証手段53は、情報分離手段52から「時刻部分の情報」と「被認証部分の情報」とを取得し、まず、時間内判定を行う。
二段階認証手段53は、時刻出力手段42から現在時刻を取得して(ステップS305)、「時刻部分の情報」から「現在時刻」までの時間が所定の有効時間内であるか否かの第1判定を行う(ステップS306)。
ここで有効時間を超えていれば(ステップS306,No)、認証NGと判定される(ステップS307)。また、「時刻部分の情報」が時刻の情報でなくても、認証NGと判定される。
【0119】
一方、有効時間内であれば(ステップS306,Yes)、第1判定OKと判定し、次の認証判定を行う。
ここで、「時刻部分の情報」は、暗号化手段43が時刻出力手段42から取得した「時刻情報」である。二段階認証手段53は、第1判定にて、この「時刻部分の情報」(「時刻情報」)から「現在時刻」までの時間が所定の有効時間内であるか否かを判定する。
【0120】
次に、二段階認証手段53は、「被認証部分の情報」がユーザDB21に記憶されている「秘密コード」と一致するか否かの第2判定を行う(ステップS308)。
この処理にて、「被認証部分の情報」は、暗号化手段43がユーザDB21から取得した「秘密コード」である。
【0121】
一致する「秘密コード」がなければ(ステップS308,No)、認証NGと判定する(ステップS307)。
一方、一致する「秘密コード」があれば(ステップS308,Yes)、第2判定OKと判定し、そして認証OKと判定する(ステップS309)。
そして、二段階認証手段53は、認証結果を通信手段11を介して、二次元コード読取装置3に送信し(ステップS310)、すべての処理を終了する。
【0122】
(第2の実施形態)
第1の実施形態では、二次元コード配置指定手段45は、入力表示装置2の画面サイズを考慮して、n×m個の二次元コードシンボルすべてが1画面に収まるように、n(行)×m(列)のマトリクス状に配置させている。そのため、二次元コードシンボルの読取パターンはnm(nのm乗)通りとなる。この「読取パターン」の数はセキュリティ強度に影響し、悪意を持ったユーザ(攻撃者)が二次元コードシンボルをランダムに読み取る全数探索攻撃を行った場合、1/nmの確率で攻撃が成功してしまう。そのため、セキュリティ強度を高めるためには、入力表示装置2の解像度や表示スペース、ユーザビリティなどを考慮した上で、mおよびnの数値はできるだけ大きい値を設定することが望ましい。
【0123】
そこで、第2の実施形態に係る認証サーバ1は、第1の実施形態に係る認証サーバ1の二次元コード配置指定手段45の機能が異なるだけなので図示を省略し、図1を参照して説明する。以下では便宜的にこれを二次元コード配置指定手段45Aと表記する。
二次元コード配置指定手段45Aは、二次元コード[QR]を所定数のグループに分け、各グループの二次元コードシンボルをそれぞれ1つの画面に表示させる配置位置情報を生成する。このとき、分割後の先頭の二次元コード[QR]からの順番(シンボル列指示子の番号)が同じ二次元コード[QR]を同一グループとする。これにより、入力表示装置2の画面を遷移させると、各画面には1つのグループの二次元コードシンボルが、例えばマトリクス状に配置されて表示されることとなる。この場合、画面ごとに1つの二次元コードシンボルを読み取ることになり、秘密コードとしてユーザDB21に記録される読取パターンとしては、画面ごとに1つの相対的な位置関係を示す(マトリクス状に並べる例では、各画面において読み取るべき二次元コードシンボル(ユーザ二次元コード[QR*u])が第何列目の第何行に配置されているのかを示す)。ユーザによる入力表示装置2の操作により画面遷移が行われる。例えば、m個のユーザ二次元コード[QR*u]と、(n−1)×m個のダミー二次元コード[QR*d]とは、各画面にn個の二次元コードシンボルが並び、全m画面を遷移させて二次元コードシンボルを1つずつ読み取ることになる。このときのセキュリティ強度は第1の実施形態と同様(nm通りの読取パターン)である。
【0124】
このように、入力表示装置2に表示させることにより、二次元コードシンボルを入力表示装置2の1つの画面では画面サイズの関係で表示できる二次元コードシンボルの数に限りがあったが、画面遷移を行わせることにより、画面上に表示できる二次元コードシンボルの限界数を増やすことができるため、さらにセキュリティ強度を高めることができる。ここで、第1の実施形態では、n×m個の二次元コードシンボルを1画面上にマトリクス状に入力表示装置2に表示させていた。この第2の実施形態によれば、二次元コードシンボルを複数の画面に渡って表示させることで、1画面上に表示される二次元コードシンボルの数はn×m個からn個に減るためマトリクスの全体のサイズが小さくなり、それにより互いの二次元コードシンボル間にスペースが得られるため、1つ1つの二次元コードシンボルが読み取りやすくなる。また、マトリクスの全体のサイズが小さくなるため、1つ1つの二次元コードシンボルのサイズを大きくすることもできる。これは、入力表示装置2の画面で表示されるときのサイズを指定する指示を、認証サーバ1が配置位置情報とともに入力表示装置2に送信すればよい。これにより、表示スペースや表示スペースに起因するユーザビリティの制約から解放される。
【0125】
(第3の実施形態)
第1の実施形態および第2の実施形態の認証サーバ1によれば、分割数をmとすると、n×m個の二次元コードを生成するために、(n−1)組の乱数の列を用いた。この方法では、攻撃者がユーザID、二次元コードシンボル、二次元コードシンボルの配置位置情報および二次元コード読取装置3から認証サーバ1に送信される連結読取データ(連結情報)が盗聴などにより盗まれる場合がある。この場合、そのユーザIDに対応する『読取パターン』が一意に特定することができるため、セキュリティホールとなる可能性がある。
【0126】
そこで、第3の実施形態に係る認証サーバ1Aは、図10に示すように、第1の実施形態に係る認証サーバ1の二次元コード配置指定手段45の代わりに、二次元コード複製配置指定手段47を備える点が、認証サーバと異なっている。他の構成は同様なので、説明を便宜的に省略する。
二次元コード複製配置指定手段47は、二次元コードを複製して、入力表示装置2に複製した二次元コードを画像化した二次元コードシンボルを配置させて表示させる。このとき、二次元コード複製配置指定手段47が複製する二次元コードは、ユーザ二次元コードであってもよいし、ダミー二次元コードであってもよいし、これら双方であってもよい。これにより、二次元コード、二次元コードシンボルの配置位置情報および連結情報から『読取パターン』を特定不可能にする。具体的には、認証サーバ1は二次元コード[QR]を複製し、ユーザDB21から取得した「読取パターン」(配置位置)と重複しない任意の場所に配置するように指定する。これにより、入力表示装置2の画面上に表示される二次元コードシンボルの全部または一部が重複した状態となる。つまり、『読取パターン』以外の、配置位置の二次元コードシンボルを読み取ったときにも、同じパターンができることになる。
これにより、みかけ上、『読取パターン』が複数できることになるが、二次元コードシンボルを読み取る数(分割する数(m))を増やすことで、『読取パターン』と同一となる確率を減らすことができるため、セキュリティ強度を著しく下げることはない。むしろ、攻撃者により、ユーザID、二次元コードシンボル、二次元コードシンボルの配置位置情報、二次元コード読取装置3から認証サーバ1Aに送信される連結読取データ(連結情報)のうち、それらすべてが盗聴などにより盗まれたとしても、そのユーザIDに対応する『読取パターン』を一意に特定することができないため、セキュリティ強度をより高めることができる。
【0127】
以上、本発明の各実施形態について説明したが、本発明は、これらの実施形態には限定されない。例えば、連結情報入力手段14が受信した連結読取データにアドレス[URL]が含まれているが、二次元コード読取装置3が、連結読取データからアドレス[URL]を抽出した際に、連結読取データからアドレス[URL]を削除してもよい。
【0128】
また、各実施形態において、認証サーバ1(1A)は、二次元コード読取装置3がネットワーク4を介して認証サーバ1に接続可能となるアドレス[URL]を連結したデータ(図5(c)のアドレス付き暗号化ユーザデータ[URL*cDu])を二次元コード化し、ユーザ二次元コード[QR*u]を含む送信データを入力表示装置2に送信しているが、アドレス[URL]を連結しなくてもよい。この場合、二次元コード読取装置3がネットワーク4を介して認証サーバ1(1A)に接続可能となるアドレス[URL]を予め記憶しておけばよい。
これにより、入力表示装置2の画面に表示された複数の二次元コードシンボルを、二次元コード読取装置3が正しい読取パターンで読み取って生成した連結読取データには、アドレス[URL]が含まれていない。しかし、二次元コード読取装置3は、記憶されたアドレス[URL]を使って、連結読取データを認証サーバ1(1A)に送信すればよい。
また、アドレス[URL]は、メールアドレスであってもよいし、二次元コード読取装置3がネットワーク4を介して認証サーバ1に接続可能となり、連結読取データを送信できる情報であれば構わない。
【0129】
本実施形態では、4(n)×4(m)のマトリクス状に二次元コードシンボルを配置させるため、暗号化手段43が生成する乱数の列の数(=生成するダミー二次元コードの数)(n)を3にしたが、この数(n)は、4×4のマトリクス状に配置するときに生成する最大値であり、3未満であってもよい。
これは、特許文献1の乱数表と同様に、4分割されたユーザ二次元コード[QR*u]([QR1*u]、[QR2*u]、[QR3*u]、[QR4*u])が配置された後の、残りの12箇所の位置に、4分割されたユーザ二次元コード[QR*u]([QR1*u]、[QR2*u]、[QR3*u]、[QR4*u])を複製した複製二次元コードを配置しても構わないし、二次元コード複製配置指定手段47がダミー二次元コードを複製して、複製したダミー二次元コードを別の位置に配置しても構わないためである。
【符号の説明】
【0130】
1 認証サーバ
2 入力表示装置
3 二次元コード読取装置
4 ネットワーク
10 通信入出力手段
11 通信手段
12 ユーザID入力手段
13 二次元コード読取パターン入力手段
14 連結情報入力手段
20 記憶手段
21 ユーザDB
30 登録手段
31 秘密コード生成手段
32 ユーザ登録手段
40 二次元コード生成配置手段
41 乱数発生手段
42 時刻出力手段
43 暗号化手段
44 二次元コード生成手段
45 二次元コード配置指定手段
46 二次元コード出力手段
47 二次元コード複製配置指定手段
50 認証手段
51 連結情報復号手段
52 情報分離手段
53 二段階認証手段
100 認証システム

【特許請求の範囲】
【請求項1】
複数の二次元コードそれぞれを画像化して二次元コードシンボルそれぞれを配置指示通りに配置させて画面に表示する表示装置、および、前記画面に配置された複数の前記二次元コードシンボルを、ユーザに操作されて所定の数(m)だけ読み取り、前記所定の数(m)の読取データを連ねた連結情報を生成する二次元コード読取装置とネットワークを介して接続され、前記表示装置から受信したユーザIDに基づき前記ユーザに係る前記複数の二次元コードおよびそれらの配置位置を示す配置指示データを前記表示装置に送信し、前記二次元コード読取装置から受信した前記連結情報を用いてユーザ認証を行う認証サーバであって、
ユーザを識別するユーザIDと、前記二次元コードシンボルの配置位置を示す読取パターンと、前記ユーザIDごとに異なる秘密コードとを対応付けて予め記憶する記憶手段と、
乱数を発生させる乱数発生手段と、
前記表示装置から送信された前記ユーザIDと対応して前記記憶手段に記憶された前記秘密コードを、前記所定の数(m)に分割してそれぞれを二次元コード化し、前記所定の数(m)のユーザ二次元コードを生成するとともに、前記乱数発生手段から乱数を取得して少なくとも1つの乱数の列を生成し、前記乱数の列を前記乱数の列毎に前記所定の数(m)に分割してそれぞれを二次元コード化し、前記生成した乱数の列の列数に前記所定の数(m)を乗算した数のダミー二次元コードを生成する二次元コード生成手段と、
前記表示装置から送信された前記ユーザIDに基づく前記読取パターンを前記記憶手段から取得し、前記読取パターンで示される配置位置に沿って、前記ユーザ二次元コードそれぞれを配置させる指示と、前記ダミー二次元コードそれぞれを前記配置位置以外の位置に配置させる指示とを含む前記配置指示データを生成する二次元コード配置指定手段と、
前記所定の数(m)のユーザ二次元コードおよび前記生成した乱数の列の列数に前記所定の数(m)を乗算した数のダミー二次元コードからなる前記複数の二次元コードと、前記配置指示データとを、前記表示装置へ送信させる二次元コード出力手段と、
前記二次元コード読取装置から送信された連結情報と合致する前記記憶手段に記憶された秘密コードがあるか否かでユーザ認証に成功したか否かを判別する認証手段と
を備えることを特徴とする認証サーバ。
【請求項2】
前記二次元コード生成手段が前記秘密コードを前記所定の数(m)に分割する前に、前記秘密コードを所定の暗号化方式で暗号化し、前記乱数の列毎に前記所定の数(m)に分割する前に、前記乱数の列を前記所定の暗号化方式で暗号化する暗号化手段を備えるとともに、
前記認証手段は、前記二次元コード読取装置から送信された連結情報を前記所定の暗号化方式に対応した復号方式で復号する連結情報復号手段と
をさらに備えることを特徴とする請求項1に記載された認証サーバ。
【請求項3】
現在時刻を出力する時刻出力手段をさらに備え、
前記暗号化手段は、前記時刻出力手段から取得した時刻情報を含めて前記秘密コードを暗号化し、
前記認証手段は、
前記連結情報復号手段により復号後の前記連結情報から、時刻情報と秘密データとを分離する情報分離手段と、
前記時刻出力手段から現在時刻を取得し、前記分離した時刻情報の時刻から前記現在時刻までの時間が所定の時間内であるか否かの第1のユーザ認証を行い、さらに、前記分離した秘密データと合致する秘密コードが前記ユーザDBに記憶されているか否かの第2のユーザ認証を行う二段階認証手段と
を備えることを特徴とする請求項2に記載された認証サーバ。
【請求項4】
前記二次元コード配置指定手段は、前記ユーザ二次元コードおよび前記ダミー二次元コードを二次元マトリクス状に配置させる指示を、前記配置指示データに加えることを特徴とする請求項1ないし請求項3のいずれか1項に記載された認証サーバ。
【請求項5】
前記二次元コード配置指定手段は、前記ユーザ二次元コードまたは前記ダミー二次元コードを複製し、前記配置指示データの生成の際に、複製した複製ユーザ二次元コードまたは複製ダミー二次元コードを、前記配置位置以外の位置に配置させる指示を、前記配置指示データに加えることを特徴とする請求項1ないし請求項4のいずれか1項に記載された認証サーバ。
【請求項6】
前記二次元コード配置指定手段は、画面表示1回につき、1個の前記ユーザ二次元コードおよび少なくとも1個の前記ダミー二次元コードを配置させる指示と、前記所定の数(m)の画面遷移を行わせる指示とを、前記配置指示データに加えることを特徴とする請求項1ないし請求項5のいずれか1項に記載された認証サーバ。
【請求項7】
複数の二次元コードそれぞれを画像化して二次元コードシンボルそれぞれを配置指示通りに配置させて画面に表示する表示装置、および、前記画面に配置された複数の前記二次元コードシンボルを、ユーザに操作されて所定の数(m)だけ読み取り、前記所定の数(m)の読取データを連ねた連結情報を生成する二次元コード読取装置とネットワークを介して接続され、前記表示装置から受信したユーザIDに基づき前記ユーザに係る前記複数の二次元コードおよびそれらの配置位置を示す配置指示データを前記表示装置に送信し、前記二次元コード読取装置から受信した前記連結情報を用いてユーザ認証を行うために、データの送受信を行う通信手段と、ユーザを識別するユーザIDと、前記二次元コードシンボルの配置位置を示す読取パターンと、前記ユーザIDごとに異なる秘密コードとを対応付けて予め記憶する記憶手段を備える認証サーバのコンピュータを、
乱数を発生させる乱数発生手段、
前記表示装置から送信されたユーザIDと対応して前記記憶手段に記憶された前記秘密コードを前記記憶手段から取得し、当該秘密コードを所定の暗号化方式で暗号化して暗号化ユーザデータを生成するとともに、前記乱数発生手段から乱数を取得して少なくとも1つの乱数の列を生成し、前記乱数の列を前記乱数の列毎に前記所定の暗号化方式で暗号化して暗号化ダミーデータを生成する暗号化手段、
前記暗号化ユーザデータを前記所定の数(m)に分割してそれぞれを二次元コード化し、前記所定の数(m)のユーザ二次元コードを生成するとともに、前記暗号化ダミーデータを、前記所定の数(m)に分割してそれぞれを二次元コード化し、前記生成した乱数の列の列数に前記所定の数(m)を乗算した数のダミー二次元コードを生成する二次元コード生成手段、
前記表示装置から送信された前記ユーザIDに基づく前記読取パターンを前記記憶手段から取得し、前記読取パターンで示される配置位置に沿って、前記ユーザ二次元コードそれぞれを配置させる指示と、前記ダミー二次元コードそれぞれを前記配置位置以外の位置に配置させる指示とを含む前記配置指示データを生成する二次元コード配置指定手段、
前記所定の数(m)のユーザ二次元コードおよび前記生成した乱数の列の列数に前記所定の数(m)を乗算した数のダミー二次元コードからなる前記複数の二次元コードと、前記配置指示データとを、前記表示装置へ前記通信手段に送信させる二次元コード出力手段および、
前記二次元コード読取装置から送信された連結情報を前記所定の暗号化方式に対応した復号方式で復号して秘密データを取得し、その秘密データと合致する前記記憶手段に記憶された秘密コードがあるか否かでユーザ認証に成功したか否かを判別する認証手段、
として機能させるためのユーザ認証プログラム。
【請求項8】
ユーザ認証を行う認証サーバと、画像を画面に表示する入力表示装置と、二次元コード読取装置とからなる認証システムであって、
前記入力表示装置は、
ユーザからユーザIDが入力される入力手段と、
前記認証サーバとデータの送受信を行う通信手段と、
二次元コードを二次元コードシンボルに画像変換して、配置指示に沿って複数の当該二次元コードシンボルを画面に配置して表示させる表示手段とを備え、
前記二次元コード読取装置は、
前記ユーザからの操作を受け付ける操作手段と、
前記ユーザに操作されて、前記入力表示装置の画面に表示された二次元コードシンボルを読み取って所定の数(m)の読取データを取得する二次元コード読取手段と、
前記所定の数(m)の前記読取データを連結して連結情報を生成する連結情報生成手段と、
前記認証サーバにデータを送信する送信手段とを備え、
前記認証サーバは、
前記入力表示装置とデータの送受信を行うとともに、前記二次元コード読取装置からデータを受信する通信手段と、
前記ユーザを識別するユーザIDと、前記二次元コードシンボルの配置位置を示す読取パターンと、前記ユーザIDごとに異なる秘密コードとを対応付けて予め記憶する記憶手段と、
乱数を発生させる乱数発生手段と、
前記入力表示装置から送信されたユーザIDと対応して前記記憶手段に記憶された前記秘密コードを取得し、当該秘密コードを所定の暗号化方式で暗号化して、暗号化ユーザデータを生成するとともに、前記乱数発生手段から乱数を取得して少なくとも1つの乱数の列を生成し、前記乱数の列を前記乱数の列毎に前記所定の暗号化方式で暗号化して暗号化ダミーデータを生成する暗号化手段と、
前記暗号化ユーザデータを前記所定の数(m)に分割してそれぞれを二次元コード化し、前記所定の数(m)のユーザ二次元コードを生成するとともに、前記暗号化ダミーデータを前記暗号化ダミーデータ毎に前記所定の数(m)に分割してそれぞれを二次元コード化し、前記生成した乱数の列の列数に前記所定の数(m)を乗算した数のダミー二次元コードを生成する二次元コード生成手段と、
前記入力表示装置から送信された前記ユーザIDに基づく前記読取パターンを前記記憶手段から取得し、前記読取パターンで示される配置位置に沿って、前記ユーザ二次元コードそれぞれを配置させる指示と、前記ダミー二次元コードそれぞれを前記配置位置以外の位置に配置させる指示とを含む配置指示データを生成する二次元コード配置指定手段と、
前記所定の数(m)のユーザ二次元コードおよび前記生成した乱数の列の列数に前記所定の数(m)を乗算した数のダミー二次元コードからなる前記複数の二次元コードと、前記配置指示データとを、前記入力表示装置へ送信させる二次元コード出力手段と、
前記二次元コード読取装置から送信された連結情報を前記所定の暗号化方式に対応した復号方式で復号して秘密データを取得し、その秘密データと合致する前記記憶手段に記憶された秘密コードがあるか否かでユーザ認証に成功したか否かを判別する認証手段とを備える
ことを特徴とする認証システム。
【請求項9】
前記入力表示装置は、
前記表示手段が、複数の擬似二次元コードシンボルを配置して、選択可能に画面に表示させ、
前記ユーザにより前記入力手段を介して前記擬似二次元コードシンボルが選択されることで、前記擬似二次元コードシンボルの配置位置を読取パターンとして取得する読取パターン取得手段を備え、
前記認証サーバは、
前記入力表示装置から送信された前記ユーザIDおよび前記読取パターンを取得し、それらを含む秘密コードを生成する秘密コード生成手段と、
前記ユーザIDと、前記読取パターンと、前記秘密コードとを対応付けて前記記憶手段に記憶させるユーザ登録手段とをさらに備える
ことを特徴とする請求項8に記載された認証システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−181645(P2012−181645A)
【公開日】平成24年9月20日(2012.9.20)
【国際特許分類】
【出願番号】特願2011−43704(P2011−43704)
【出願日】平成23年3月1日(2011.3.1)
【出願人】(000004352)日本放送協会 (2,206)
【Fターム(参考)】