【新規性喪失の例外の表示】特許法第30条第2項適用 平成30年9月25日、https://www.rakuten−bank.co.jp/、https://www.rakuten−bank.co.jp/guide/login/camera_qr.html、https://fes.rakuten−bank.co.jp/、https://fes.rakuten−bank.co.jp/MS/main/RbS?CurrentPageID=START&&COMMAND=LOGIN、https://fes.rakuten−bank.co.jp/MS/main/fcs/rb/fes/jsp/mainservice/Security/LoginAuthentication/Login/Login.jsp、https://itunes.apple.com/、https://itunes.apple.com/jp/app/id391048295、https://play.google.com/、https://play.google.com/store/apps/details?id=jp.co.rakuten_bank.rakutenbank
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
[1.認証システムの全体構成]
以下、本発明に係る実施形態の例について図面に基づき詳細に説明する。
図1は、実施形態に係る認証システムの一例を示す図である。
図1に示すように、例えば、認証システム1は、サーバ10、第1端末20、及び第2端末30を含み、これらは、インターネットなどのネットワークNに接続可能である。なお、
図1では、サーバ10、第1端末20、及び第2端末30の各々を1台ずつ示しているが、これらは複数台あってもよい。
【0011】
サーバ10は、サービスの提供者が管理するサーバコンピュータであり、例えば、制御部11、記憶部12、及び通信部13を含む。提供者は、金融機関や会社等であり、任意の種類のサービスを提供可能である。例えば、提供者が提供するサービスは、金融サービス、電子商取引サービス、旅行予約サービス、又は保険サービスであってもよい。なお、本実施形態では、説明の簡略化のために、サーバ10がログイン時の認証やサービスの提供を行う場合を説明するが、認証用のサーバやサービス提供用のサーバが分けられていてもよい。
【0012】
制御部11は、例えば、少なくとも1つのマイクロプロセッサを含む。記憶部12は、例えば、RAM等の主記憶部やハードディスク等の補助記憶部を含む。制御部11は、記憶部12に記憶されたプログラムやデータに従って処理を実行する。通信部13は、有線通信又は無線通信用の通信インタフェースを含む。通信部13は、インターネットやLANなどのネットワークNを介して外部機器とのデータ送受信が可能である。
【0013】
第1端末20は、ユーザが操作するコンピュータであり、例えば、パーソナルコンピュータ、携帯電話(スマートフォンを含む)、又は携帯情報端末(タブレット型端末を含む)である。第1端末20は、ユーザの所有物であってもよいし、ユーザの所有物ではなくてもよい。本実施形態では、第1端末20がユーザの所有物ではなく、カフェや公共施設等に設置されており、不特定多数の者が利用可能なパーソナルコンピュータである場合を説明する。
【0014】
第1端末20は、制御部21、記憶部22、通信部23、操作部24、及び表示部25を含む。制御部21、記憶部22、及び通信部23のハードウェア構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。操作部24は、入力デバイスであり、例えば、タッチパネルやマウスなどのポインティングデバイス又はキーボードである。表示部25は、例えば、液晶ディスプレイ又は有機ELディスプレイである。
【0015】
第2端末30は、ユーザが操作するコンピュータであり、例えば、パーソナルコンピュータ、携帯電話(スマートフォンを含む)、又は携帯情報端末(タブレット型端末を含む)である。第2端末30は、第1端末20と同様、ユーザの所有物であってもよいし、ユーザの所有物ではなくてもよいが、第1端末20よりはセキュリティレベルが高いものとする。本実施形態では、第2端末30がユーザの所有物であり、生体認証やパスコード等によってセキュリティが確保されたスマートフォンである場合を説明する。
【0016】
第2端末30は、制御部31、記憶部32、通信部33、操作部34、表示部35、及び撮影部36を含む。制御部31、記憶部32、通信部33、操作部34、及び表示部35のハードウェア構成は、それぞれ制御部11、記憶部12、通信部13、操作部24、及び表示部25と同様であってよい。撮影部36は、少なくとも1つのカメラを含み、CCDセンサ又はCMOSセンサ等の撮像素子によって画像を生成する。撮影部36は、所定のフレームレートに基づいて連続的に撮影をしてもよいし、ユーザの操作に基づいて撮影をしてもよい。
【0017】
なお、記憶部12,22,32に記憶されるものとして説明するプログラムやデータは、コンピュータ読み取り可能な情報記憶媒体(例えば、USBメモリ又はSDカード)に記憶されたものが各コンピュータに供給されるようにしてもよいし、ネットワークを介して各コンピュータに供給されるようにしてもよい。また、上記説明した各コンピュータのハードウェア構成は、上記の例に限られず、例えば、情報記憶媒体を読み取る読取部(例えば、SDカードスロット)、又は、外部機器と直接的に通信するための入出力部(例えば、USB端子)が備えられていてもよいし、コード情報を読み取り可能なコードリーダが備えられていてもよい。
【0018】
[2.認証システムの概要]
本実施形態では、サーバ10を銀行が管理し、ユーザに金融サービスが提供される場合を説明する。ユーザは、銀行に口座を開設済みであり、インターネットバンキングの利用登録も済ませているものとする。このため、ユーザは、インターネットバンキングを利用するためのユーザID及びパスワードを保有している。なお、ユーザは、個人であってもよいし、法人であってもよい。
【0019】
第2端末30には、銀行が提供するアプリケーション(以降、銀行アプリという)がインストールされている。第2端末30において銀行アプリが起動すると、ユーザは、ユーザID及びパスワードを入力してログインし、インターネットバンキングを利用する。銀行アプリが起動するたびにユーザID及びパスワードの入力が求められてもよいが、本実施形態では、入力の手間を省くために、クイックログインという認証方法が用意されている。
【0020】
例えば、ユーザID及びパスワードを入力して認証が成功すると、サーバ10は、クイックログイン情報を発行し、その後はクイックログイン情報を利用して認証が行われる。クイックログイン情報は、認証済みのユーザであることを示す情報であり、例えば、サーバ10が生成したランダムな記号列である。サーバ10は、発行したクイックログイン情報を記憶し、第2端末30にクイックログイン情報を送信する。第2端末30は、クイックログイン情報を記憶し、認証が必要なタイミング(例えば、銀行アプリ起動時、サーバ10とのセッションの確立時、入出金処理の実行時、又は振込実行時等)が訪れると、クイックログイン情報を利用することで、認証時の入力の手間を省くようにしている。
【0021】
例えば、クイックログインでは、ユーザがユーザIDを入力しなくても、パスワードを入力するだけで、ログインが完了する。この場合、ユーザが入力したパスワードと、第2端末30に記憶されたクイックログイン情報と、がサーバ10に送信され、サーバ10において認証が実行される。また例えば、クイックログインでは、生体認証(例えば、指紋認証又は顔認証)が利用されてもよく、第2端末30で生体認証が行われた場合には、ユーザID及びパスワードの何れも入力することなく、ログインが完了する。この場合、生体認証が完了したことを示す情報と、第2端末30に記憶されたクイックログイン情報と、がサーバ10に送信され、サーバ10において認証が実行される。
【0022】
一方、本実施形態では、第1端末20は、銀行アプリがインストールされておらず、クイックログイン情報は記憶されていない。第1端末20は、ウェブブラウザ上で任意のウェブサイトを表示させることができる。例えば、第1端末20において、銀行のウェブサイトのURLが入力されると、第1端末20はサーバ10にアクセス要求を送信し、第1端末20とサーバ10との間でセッションが確立される。セッションの確立は、HTTP等の任意の通信プロトコルで定められた手順に沿って行われる。サーバ10は、セッション情報を生成して記憶し、第1端末20にセッション情報を送信する。
【0023】
セッション情報は、セッションID又はセッションキーとも呼ばれる情報であり、セッションを一意に識別する情報である。セッション情報は、通信プロトコルで定められた方法で生成され、例えば、ランダムな文字列により構成される。セッション情報は、セッションが切断されるまで利用可能であり、第1端末20は、セッション情報を利用してサーバ10との通信を行う。セッションが確立されると、銀行のウェブサイトのログイン画面が第1端末20に表示される。
【0024】
図2は、第1端末20に表示されるログイン画面の一例を示す図である。
図2に示すように、ログイン画面G1は、ユーザIDを入力するための入力フォームF10と、パスワードを入力するための入力フォームF11と、が表示される。ユーザがボタンB12を選択すると、入力フォームF10に入力されたユーザIDと、入力フォームF11に入力されたパスワードと、がHTTPS等により暗号化されてサーバ10に送信される。その後、サーバ10による認証が成功すると、ユーザがログインした状態となり、第1端末20のウェブブラウザ上でインターネットバンキングを利用することができる。
【0025】
例えば、ユーザが普段は銀行アプリのクイックログインを利用していると、ユーザIDやパスワードを入力しないので、これらを忘れることがある。この場合、ユーザは、第1端末20でログインすることができないので、いちいちコールセンター等に問い合わせなければならない。ユーザがユーザID及びパスワードを覚えていたとしても、第1端末20に対してユーザID及びパスワードを入力するのは手間がかかる。また、本実施形態のように、第1端末20が不特定多数の者が利用可能な端末であり、セキュリティレベルが低い場合には、キーストロークロギング等によって、ユーザが入力したユーザID及びパスワードが盗まれる可能性もある。また、このような端末は、セキュリティが保障されていない無料の無線LAN等に接続されていることがあり、通信上でユーザID及びパスワードが盗まれる可能性もある。
【0026】
そこで、認証システム1は、第1端末20にユーザID及びパスワードを入力させることなく、第1端末20でユーザがログインできる仕組みを提供する。本実施形態では、この仕組みの一例として、二次元コードを利用した二次元コードログインという認証方法について説明する。二次元コードには、二次元コードログインに必要な情報が含まれており、例えば、サーバ10のURLや第1端末20に関する識別情報が含まれている。詳細は後述するが、二次元コードが生成される時点では、どのユーザが利用するか分からないので、ユーザIDや口座情報といったユーザ固有の情報については、二次元コードに含まれていない。
【0027】
第1端末20に関する識別情報は、第1端末20を識別可能な情報、又は、第1端末20に割り当てられる情報であればよく、例えば、ランダムに生成された記号列である。本実施形態では、識別情報は、回線番号やアドレス情報のように長期的に変わらない情報ではなく、一時的に割り当てられるワンタイム的な情報である。識別情報は、第1端末20とサーバ10とのセッションが確立された後に、第1端末20がサーバ10に所定の発行要求を送信すると発行される。発行要求は、任意のタイミングでサーバ10に送信されるようにすればよく、ログイン画面G1が表示される場合に発行要求が送信されてもよいが、本実施形態では、ボタンB13が選択されたことに応じて発行要求が送信されるものとする。
【0028】
なお、識別情報は、ランダムではなく、所定のルールに基づいて生成された記号列であってもよい。また、1台の第1端末20に対し、識別情報が1つだけ発行されてもよいし、複数の識別情報が発行されてもよい。1台の第1端末20に対して複数の識別情報が発行される場合には、ウェブブラウザのタブやウィンドウごとに異なる識別情報が発行されてもよい。即ち、ユーザが、複数のタブを開いたり複数のウィンドウを開いたりして、複数のログイン画面G1を表示させた場合には、ログイン画面G1ごとに識別情報が発行されてもよい。
【0029】
本実施形態では、識別情報は、セッション情報とは異なる情報である。識別情報とセッション情報の互いの記号列は異なり、識別情報は、セッションの維持には使用されない。即ち、識別情報を保有していたからといって、セッションを維持することはできない。セッションが維持されている間は、原則としてセッション情報は変更されないが、識別情報は、発行要求のたびに発行される。サーバ10は、識別情報をセッション情報に関連付けて記憶するが、第1端末20に表示される二次元コードには、セッション情報は含まれない。例えば、ユーザがログイン画面G1のボタンB13を選択すると、ログイン画面G1に、識別情報を含む二次元コードが表示される。
【0030】
図3は、ログイン画面G1に二次元コードが表示される様子を示す図である。
図3に示すように、ユーザがボタンB13を選択すると、ボタンB13が消去されて二次元コードC14が表示される。本実施形態では、ログイン画面G1の表示データ(例えば、HTMLデータ)にスクリプトが埋め込まれており、二次元コードC14が表示されると、第1端末20は、サーバ10に対し、第1端末20のステータスを問い合わせる。
【0031】
ステータスは、二次元コードログインにおける認証前の状態であるか、認証後の状態であるか、を示す。別の言い方をすれば、ステータスは、二次元コードログインによるログインが許可された状態であるか、許可されていない状態であるか、を示す。二次元コードログインでは、クイックログイン済みの第2端末30が二次元コードC14を読み取ると、当該二次元コードC14が表示された第1端末20がログイン可能になる。それまでのステータスは、「認証前」となり、その後のステータスは「認証済み」となる。
【0032】
二次元コードC14は、特に有効期間が設定されていなくてもよいが、本実施形態では、有効期間が設定されているものとする。有効期間の長さは、任意であってよく、本実施形態では固定値(例えば、10秒〜5分程度)とするが、後述する変形例のように可変値であってもよい。第1端末20は、有効期間中にステータスの問い合わせを行い、有効期間後はステータスの問い合わせを停止する。
【0033】
図4は、有効期間後のログイン画面G1の一例を示す図である。
図4に示すように、有効期間が経過すると、二次元コードC14がログイン画面G1から消去され、ログイン画面G1には、二次元コードC14を再取得するためのボタンB15が表示される。この状態になると、先述した問い合わせが停止される。ユーザがボタンB15を選択すると二次元コードC14が再取得され、ログイン画面G1は
図3の状態に戻る。
【0034】
ログイン画面G1に二次元コードC14が表示されると、ユーザは、第2端末30の撮影部36を利用して二次元コードC14を読み取る。本実施形態では、銀行アプリがコードリーダ機能を有しており、ユーザは、第2端末30の銀行アプリを起動し、銀行アプリのコードリーダ機能を利用して二次元コードC14を読み取る。
【0035】
図5は、二次元コードC14が読み取られる様子を示す図である。
図5に示すように、第2端末30において銀行アプリが起動すると、メニュー画面G2が表示部35に表示される。メニュー画面G2には、ユーザの口座の残高等の情報が表示され、例えば、入出金明細表示、口座情報表示、入出金手続き、振込手続き、取扱サービス表示、又はATM情報表示といった種々のサービスが提供される。
【0036】
メニュー画面G2には、二次元コードログインをするためのボタンB20が表示される。ユーザがボタンB20を選択すると、二次元コードログインの手順を示す確認画面G3が表示される。確認画面G3には、第2端末30の撮影部36を起動するためのボタンB30が表示される。銀行アプリは、予め撮影部36へのアクセスが許可されており、ユーザがボタンB30を選択すると、撮影部36が起動する。
【0037】
撮影部36が起動すると、撮影中の画像を示す撮影画面G4が表示部35に表示される。例えば、撮影画面G4には、二次元コードC14の撮影位置を案内するための枠F40が中央付近に表示され、ユーザは、枠F40に収まるように、ログイン画面G1の二次元コードC14を撮影する。二次元コードC14が撮影されると、銀行アプリは、公知のコード解析アルゴリズムに基づいて、二次元コードC14に含まれるサーバ10のURL及び識別情報を取得してサーバ10に送信する。なお、ここでは、第2端末30に記憶されたクイックログイン情報も送信されるものとするが、第2端末30は、メニュー画面G2を表示させる時点でクイックログイン等によって認証を済ませているので、特にこのタイミングでクイックログイン情報が送信されなくてもよい。
【0038】
サーバ10は、第2端末30のクイックログイン情報の正当性を確認すると、第2端末30から受信した識別情報に関連付けられたステータスを「認証済み」に変更する。その後、第2端末30では、二次元コードログインが完了したことを示す完了画面G5が表示され、第1端末20の表示部25を確認するように促される。なお、完了画面G5のボタンB50が選択されると、メニュー画面G2に戻る。
【0039】
第1端末20は、ログイン画面G1に二次元コードC14が表示されている間は(二次元コードC14の有効期間中は)、サーバ10に問い合わせをしているので、サーバ10は、ステータスが「認証済み」になった後に問い合わせを受信すると、第1端末20に対するユーザのログイン(即ち、第2端末30で認証済みのユーザのアカウントを利用したログイン)を許可し、インターネットバンキングを利用するための利用画面を表示部35に表示させる。
【0040】
図6は、第1端末20に表示される利用画面の一例を示す図である。
図6に示すように、利用画面G6には、ユーザの口座の残高等の情報が表示され、入出金明細表示、口座情報表示、入出金手続き、振込手続き、取扱サービス表示、又はATM情報表示といった種々のサービスを利用可能になる。即ち、ユーザがユーザID及びパスワードを入力しなくても、第1端末20はログイン済みの状態になる。その後は、ユーザがユーザID及びパスワードを入力してログインした場合と同様のサービスが提供される。
【0041】
以上のように、本実施形態の認証システム1は、ログイン画面G1の表示データにスクリプトが埋め込まれており、第1端末20は、スクリプトに基づいて繰り返し問い合わせを送信し、サーバ10は、二次元コードログインの認証が成功した場合に、第1端末20からの問い合わせに応じて利用画面G6を表示させる。このため、二次元コードログインの認証が成功したときに、一時的に通信障害が発生したとしても、サーバ10が第1端末20に繰り返し指示を送信する必要がないため(サーバ10は第1端末20からの問い合わせを待てばよいため)、サーバ10の負荷を軽減させるようにしている。以降、認証システム1の構成の詳細について説明する。
【0042】
[3.本実施形態において実現される機能]
図7は、本実施形態において実現される機能を示す機能ブロック図である。ここでは、サーバ10、第1端末20、及び第2端末30の各々で実現される機能を説明する。
【0043】
[3−1.サーバにおいて実現される機能]
図7に示すように、サーバ10では、データ記憶部100、第2端末認証部101、識別情報取得部102、送信部103、第1受信部104、第2受信部105、及び状態制御部106が実現される。データ記憶部100は記憶部12を主として実現され、他の各機能は制御部11を主として実現される。
【0044】
[データ記憶部]
データ記憶部100は、二次元コードログインやクイックログイン等を実現するために必要なデータを記憶する。ここでは、データ記憶部100が記憶するデータの一例として、ユーザデータベースDB1と、二次元コードデータベースDB2と、について説明する。
【0045】
図8は、ユーザデータベースDB1のデータ格納例を示す図である。
図8に示すように、ユーザデータベースDB1は、ユーザに関する情報が格納されるデータベースである。例えば、ユーザデータベースDB1には、ユーザID、パスワード、クイックログイン情報、及びユーザの口座情報が格納される。
【0046】
本実施形態では、ユーザを一意に識別する情報として、ユーザIDを説明するが、この情報は、ユーザアカウントと呼ばれる情報であってもよいし、メールアドレスや電話番号等が用いられてもよい。パスワードは、ユーザが指定した任意の記号列であればよい。クイックログイン情報は、任意の記号列であればよく、本実施形態では、ランダムに生成された記号列である場合を説明するが、ランダムではなく所定のルールに基づいて生成された記号列であってもよい。口座情報は、銀行口座を識別するための情報であればよく、例えば、支店名、口座番号、口座名義人、残高情報、暗証番号、及び入出金明細情報等である。
【0047】
図9は、二次元コードデータベースDB2のデータ格納例を示す図である。
図9に示すように、二次元コードデータベースDB2は、二次元コードログインに関する情報が格納されるデータベースである。二次元コードデータベースDB2には、セッション情報、識別情報、有効期間情報、ユーザの口座の支店名・口座番号、及びステータスが格納される。
【0048】
識別情報が発行されると、二次元コードデータベースDB2に新たなレコードが生成され、当該第1端末20とサーバ10とのセッションを示すセッション情報に関連付けて、識別情報及び有効期間情報が格納される。なお、二次元コードC14が読み取られる前は、どのユーザが利用するか分からないので支店名・口座番号は格納されず、ステータスは初期値の「認証前」の何れかの値となる。
【0049】
有効期間情報は、有効期間を特定可能な情報であればよく、例えば、有効期間の開始時点及び終了時点の少なくとも一方を示す。開始時点は、識別情報が発行された時点又は当該時点から一定時間以内の時点である。終了時点は、有効期限ということもでき、開始時点の所定時間後である。
【0050】
ユーザの口座の支店名・口座番号は、銀行アプリで二次元コードC14を読み取ったユーザの口座情報に格納された支店名・口座番号である。本実施形態では、二次元コードC14が読み取られると、クイックログイン情報とともに、二次元コードC14に含まれる識別情報が送信されるので、ユーザデータベースDB1において、当該クイックログイン情報に関連付けられた口座情報が示す支店名・口座番号が二次元コードデータベースDB2に格納される。これにより、当該クイックログイン情報を有するユーザのユーザIDを利用したログインが第1端末20において可能な状態となる。
【0051】
なお、本実施形態では、二次元コードデータベースDB2にステータスが格納される場合を説明するが、二次元コードデータベースDB2に支店名・口座番号が格納された場合に、第1端末20が認証済みの状態となるようにしてもよい。即ち、支店名・口座番号の有無によって、二次元コードログインのステータスが確認されるようにしてもよい。
【0052】
[第2端末認証部]
第2端末認証部101は、第2端末30において入力されたユーザID及びパスワードに基づいて、第2端末30を認証する。第2端末認証部101は、第2端末30において入力されたユーザID及びパスワードの組み合わせがユーザデータベースDB1に存在した場合に、認証成功と判定する。
【0053】
なお、本実施形態では、ユーザID及びパスワードが認証情報として用いられる場合を説明するが、認証情報は、ユーザを認証可能な情報であればよく、例えば、口座の暗証番号、合言葉、生体認証情報、又はICカードの情報等であってもよい。認証情報の入力方法は任意であってよく、例えば、通信部33、操作部34、又は撮影部36から入力される。
【0054】
第2端末認証部101は、第2端末30が認証された場合に、認証済みであることを示すクイックログイン情報を発行して第2端末30に送信する。本実施形態では、クイックログイン情報が認証済み情報として用いられる場合を説明するが、認証済み情報は、認証済みのユーザに対して発行される情報であればよく、例えば、電子証明書のような情報であってもよい。
【0055】
[識別情報取得部]
識別情報取得部102は、第1端末20に関する識別情報を取得する。本実施形態では、識別情報は、第1端末20のシリアル番号等の固有の情報ではなく、動的に付与される情報なので、識別情報取得部102は、識別情報を発行する。先述したように、識別情報は、所定の発行ルールに基づいて発行されるようにすればよく、識別情報取得部102は、他の識別情報と重複しないように、識別情報を発行する。
【0056】
本実施形態では、識別情報取得部102は、第1端末20とのセッションが確立された場合に、識別情報を、セッション情報に関連付けてデータ記憶部100に記録する。なお、識別情報取得部102は、第1端末20とのセッションが確立された後に、新たに識別情報を作成してもよいし、予め識別情報を作成しておいてリストに格納しておき、リストに格納された識別情報を取得して第1端末20に割り当てることで、第1端末20に対して識別情報を発行してもよい。なお、第1端末20とサーバ10との間で特にセッションを確立しない場合には、識別情報取得部102は、第1端末20からのアクセスを受け付けた場合に、識別情報を発行すればよい。
【0057】
本実施形態では、識別情報には、有効期間が設定されるので、識別情報取得部102は、発行した識別情報に有効期間を設定する。例えば、識別情報取得部102は、識別情報に関連付けて有効期間情報を二次元コードデータベースDB2に格納することによって、識別情報に有効期間を設定する。本実施形態では、有効期限情報は、第2端末30に送信される。
【0058】
識別情報取得部102は、有効期間後に、第1端末20において識別情報の再取得操作が行われた場合に、識別情報を再取得する。再取得操作は、第1端末20に対して行われる任意の操作であってよく、本実施形態では、ボタンB15を選択する操作である。識別情報を再取得する方法は、1回目と同じ方法が用いられるようにすればよいが、再取得された識別情報は、1回目とは内容(記号列)が異なるものとする。再取得された識別情報の有効期間と、1回目の識別情報の有効期間と、は同じであってもよいし、異なっていてもよい。
【0059】
[送信部]
送信部103は、第1端末20に、識別情報を送信する。本実施形態では、第1端末20においてスクリプトが実行されるので、送信部103は、識別情報と、繰り返し所定の問い合わせをさせるためのスクリプトと、を送信する。問い合わせは、所定形式の情報が送信されることによって行われるようにすればよい。問い合わせには、識別情報が含まれていてもよいが、セッション情報から識別情報を特定可能なので、識別情報は問い合わせに含まれていなくてもよい。
【0060】
スクリプトは、任意の種類のスクリプトを適用可能であり、例えば、Javaスクリプト(登録商標)であってもよい。スクリプトには、サーバ10に対する問い合わせの送信コマンドを繰り返し実行する旨の命令が記述されている。本実施形態では、問い合わせが定期的に行われ、スクリプトには問い合わせの周期(時間間隔)が指定されているものとするが、問い合わせは、不定期的に行われてもよい。
【0061】
本実施形態では、有効期間が経過すると第1端末20が問い合わせを停止するので、スクリプトは、有効期間中は繰り返し問い合わせをさせ、有効期間後は問い合わせを停止させるためのスクリプトである。スクリプトには、有効期間が経過したか否かを判定する命令が記述されている。また、スクリプトには、有効期間中は問い合わせの送信コマンドが実行され、有効期間後は問い合わせの送信コマンドを実行しないように、if文等を利用した分岐が記述されている。
【0062】
本実施形態では、第1端末20とサーバ10は、セッション情報によってセッションが維持されているので、送信部103は、セッション情報に基づいて、第1端末20に識別情報を送信する。本実施形態では、識別情報は二次元コードC14として表示されるので、送信部103は、第1端末20に、識別情報を含む二次元コードC14の画像データを送信することになる。
【0063】
本実施形態では、識別情報が二次元コードC14に含まれているので、スクリプトは、第1端末20に、有効期間中は識別情報を含む二次元コードC14を表示させ、有効期間後は二次元コードC14の表示を停止させるためのスクリプトである。有効期限が経過したか否かを判定する命令については、先述した通りである。スクリプトには、有効期限内は二次元コードC14を表示させる命令が実行され、有効期限後は、当該命令を実行しない又は表示を停止する命令が実行されるように、if文等を利用した分岐が記述されている。
【0064】
なお、本実施形態では、二次元コードC14が、識別情報を含む画像に相当する場合を説明するが、当該画像は、二次元コードに限られず、バーコードであってもよいし、コード以外の情報であってもよい。例えば、第2端末30が光学文字認識を利用可能な場合には、識別情報の記号列を示す画像が第1端末20にそのまま表示されてもよい。
【0065】
本実施形態では、有効期限後において識別情報が再取得されるので、送信部103は、再取得された識別情報を送信する。再取得された識別情報の送信方法は、1回目の識別情報の送信方法と同様であり、再取得された識別情報の有効期限情報も第1端末20に送信される。
【0066】
[第1受信部]
第1受信部104は、第1端末20により繰り返し送信される所定の問い合わせを受信する。本実施形態では、スクリプトを利用して問い合わせが行われるので、第1受信部104は、第1端末20によりスクリプトが実行された場合に、第1端末20から問い合わせを受信する。第1端末20は、スクリプトに基づいて繰り返し問い合わせを送信するので、第1受信部104は、第1端末20からの問い合わせを繰り返し受信することになる。第1端末20が問い合わせを停止すると、第1受信部104は、第1端末20からの問い合わせを受信しない状態になる。
【0067】
[第2受信部]
第2受信部105は、認証済みの第2端末30により第1端末20に関する識別情報が読み取られた場合に、第2端末30から識別情報を受信する。本実施形態では、二次元コードC14が利用されるので、第2受信部105は、第1端末20に表示された二次元コードC14が第2端末30により読み取られた場合に、第2端末30から、二次元コードC14に含まれる識別情報を受信する。本実施形態では、第2端末30が二次元コードC14を読み取った後に、ユーザの操作を要することなく識別情報がサーバ10に送信される場合を説明するが、画面に表示された確認メッセージをタップする等の操作に基づいて、識別情報がサーバ10に送信されてもよい。
【0068】
[状態制御部]
状態制御部106は、第1端末20から受信した問い合わせと、第2端末30から受信した識別情報と、に基づいて、第1端末20を認証済みの状態にする。認証済みの状態とは、第2端末30のユーザのユーザIDを利用したログインを許可することであり、ユーザに対するサービスを利用可能な状態にすることである。本実施形態では、二次元コードデータベースDB2に第1端末20のステータスが格納されるので、ステータスを「認証済み」に変更し、識別情報に関連付けられたセッション情報を有する第1端末20にログインさせることが、第1端末20を認証済みの状態にすることに相当する。
【0069】
状態制御部106は、第1端末20のステータスが「認証済み」になった後に第1端末20から問い合わせを受信した場合に、第1端末20を認証済みの状態にする。即ち、状態制御部106は、第1端末20からの問い合わせを受信した後に第1端末20のステータスが「認証済み」になったとしても、その後に第1端末20からの問い合わせを受信しなければ、第1端末20を認証済みの状態にはしない。状態制御部106は、自発的に第1端末20を認証済みの状態にするのではなく、あくまで、第1端末20からの問い合わせを受信したことを条件として(即ち、受け身の状態で)、第1端末20を認証済みの状態にする。
【0070】
本実施形態では、第1端末20とサーバ10は、セッション情報によってセッションが維持されているので、状態制御部106は、第2端末30から受信した識別情報に関連付けられたセッション情報に基づいて、第1端末を認証済みの状態にする。第1端末20は、セッション情報とともに問い合わせを行うので、状態制御部106は、正当なセッション情報を有する第1端末20からの問い合わせを受け付けた場合に、当該第1端末20のステータスが「認証済み」であれば、第1端末20をログイン済みの状態にする。
【0071】
なお、他の端末により第1端末20の識別情報が盗まれたとしても、当該他の端末は、第1端末20のセッション情報を保有していないので、当該他の端末が識別情報とともに問い合わせをしたとしても、ログインすることはできない。このため、状態制御部106は、識別情報に関連付けられたセッション情報に基づいて、認証済みの状態にする第1端末20を特定するということができる。別の言い方をすれば、状態制御部106は、状態制御部106は、第1端末20からの問い合わせを受けた場合に、当該第1端末20から受信したセッション情報と、「認証済み」のステータスに関連付けられたセッション情報
と、に基づいて、第1端末20を認証済みの状態にするか否かを決定する。
【0072】
[3−2.第1端末において実現される機能]
図7に示すように、第1端末20では、データ記憶部200、判定部201、問い合わせ部202、及び表示制御部203が実現される。データ記憶部200は記憶部22を主として実現され、他の各機能は制御部21を主として実現される。
【0073】
[データ記憶部]
データ記憶部200は、二次元コードログイン等を実現するために必要なデータを記憶する。例えば、データ記憶部200は、サーバ10から受信した識別情報を含む二次元コードC13の画像データ、セッション情報、及びスクリプト等を記憶する。また例えば、データ記憶部200は、ログイン画面G1や利用画面G6の表示データを記憶する。
【0074】
[判定部]
判定部201は、識別情報の有効期間が経過したか否かを判定する。判定部201は、リアルタイムクロック又はGPS情報等を利用して現在日時を取得し、有効期間が経過したか否かを判定する。本実施形態では、判定部201は、スクリプトに基づいて、判定処理を実行する。
【0075】
[問い合わせ部]
問い合わせ部202は、認証システム1に問い合わせを繰り返し行う。例えば、スクリプトに送信コマンド及び問い合わせの周期が示されている場合に、第1端末20は、当該周期が訪れるたびに送信コマンドを実行し、問い合わせを送信する。なお、先述したように、問い合わせ部202は、定期的に問い合わせをしてもよいし、不定期的に問い合わせをしてもよい。本実施形態では、問い合わせ部202は、スクリプトに基づいて、問い合わせを行う。
【0076】
本実施形態では、問い合わせ部202は、有効期間中は繰り返し問い合わせを繰り返し行い、有効期間後は問い合わせを停止する。問い合わせ部202は、判定部201により有効期間中であると判定された場合に、問い合わせを継続し、判定部201により有効期間後であると判定された場合に、その後は問い合わせをしないように問い合わせを停止する。
【0077】
[表示制御部]
表示制御部203は、各種画面の表示制御を実行する。例えば、表示制御部203は、ログイン画面G1や利用画面G6を表示部25に表示させる。また例えば、表示制御部203は、有効期間中は二次元コードC14を表示させ、有効期間後は二次元コードC14の表示を停止させる。表示制御部203は、判定部201により有効期間中であると判定された場合に、二次元コードC14を表示させ、判定部201により有効期限後であると判定された場合に、二次元コードC14を消去してその後は表示させない。本実施形態では、表示制御部203は、スクリプトに基づいて、表示制御を実行する。
【0078】
[3−3.第2端末において実現される機能]
図7に示すように、第2端末30では、データ記憶部300、読取部301、及び送信部302が実現される。データ記憶部300は記憶部32を主として実現され、他の各機能は制御部31を主として実現される。
【0079】
[データ記憶部]
データ記憶部300は、二次元コードログインやクイックログイン等を実現するために必要なデータを記憶する。例えば、データ記憶部300は、クイックログイン情報を記憶する。また例えば、本実施形態では、データ記憶部300はユーザIDとパスワードを記憶しないものとするが、データ記憶部300は、ユーザIDとパスワードを記憶してもよい。他にも例えば、データ記憶部300は、ユーザの指紋や顔等の生体認証情報等を記憶してもよい。
【0080】
[読取部]
読取部301は、第1端末20の識別情報を読み取る。本実施形態では、読取部301は、撮影部36により撮影された撮影画像に基づいて、二次元コードC13に含まれる識別情報を読み取る。読取部301は、公知のコード解析アルゴリズムに基づいて、撮影画像に含まれる二次元コードC13を解析し、識別情報やサーバ10のURL等を読み取る。
【0081】
なお、識別情報の読取方法は、画像を利用した方法に限られない。第2端末30が第1端末20の近くにいて識別情報が読み取られたことを識別できればよく、例えば、通信部23及び通信部33による近距離無線通信を利用して識別情報が読み取られてもよいし、第1端末20がスピーカを有し第2端末がマイクを有する場合には音波を利用して識別情報が読み取られてもよい。
【0082】
また、本実施形態では、識別情報が読み取られる際には、第2端末30がクイックログインによって認証済みである場合を説明するが、第2端末30の認証方法は、クイックログインに限られず、任意の認証方法を適用可能である。例えば、通常のユーザID及びパスワードを用いた認証によって認証済みの第2端末30によって識別情報が読み取られてもよいし、生体認証や合言葉等の他の認証方法によって認証済みの第2端末30によって識別情報が読み取られてもよい。
【0083】
[送信部]
送信部302は、サーバ10に、読取部301により読み取られた第1端末20の識別情報を送信する。本実施形態では、データ記憶部300にクイックログイン情報が記憶されるので、送信部302は、識別情報を読み取った場合に、ユーザID及びパスワードの入力を要することなく、クイックログイン情報に基づいて、認証システム1に識別情報を送信する。
【0084】
入力を要することなくとは、ユーザID及びパスワードの入力を促す画面を表示しないことである。
図5を参照して説明したように、撮影画面G4で二次元コードC14が読み取られた後は、ユーザID及びパスワードをユーザに入力させることなく、二次元コードログインが完了する。なお、ここでは、ユーザID及びパスワードの両方が入力されない場合を説明するが、これらの何れか一方の入力のみが省略されてもよい。
【0085】
なお、送信部302は、サーバ10に、識別情報以外の情報を送信してもよい。例えば、送信部302は、ユーザにより入力されたユーザID及びパスワードを送信してもよい。また例えば、送信部302は、クイックログイン時において、データ記憶部300に記憶されたクイックログイン情報を送信してもよい。
【0086】
[4.本実施形態において実行される処理]
図10及び
図11は、本実施形態において実行される処理のフロー図である。
図10及び
図11に示す処理は、制御部11,21,31の各々が記憶部12,22,32に記憶されたプログラムに従って動作することによって実行される。これらの処理は、各機能ブロックが実行する処理の一例である。なお、
図10及び
図11の処理が実行されるにあたり、第2端末30は、クイックログイン済みであるものとする。
【0087】
図10に示すように、まず、第1端末20において、ユーザが銀行のウェブサイトのURLを指定すると、第1端末20がサーバ10にアクセスし、第1端末20とサーバ10との間でセッションが確立される(S1)。S1においては、通信プロトコルで定義された手順に沿って、第1端末20とサーバ10との間でセッションが確立される。サーバ10においては、制御部11は、セッション情報を生成して記憶部12に記録し、第1端末20に対し、セッション情報を送信する。第1端末20においては、制御部21は、セッション情報を受信すると記憶部22に記録する。以降、第1端末20が何らかの情報をサーバ10に送信する場合、セッション情報も送信される。サーバ10は、セッション情報によってのセッションを維持する。
【0088】
第1端末20とサーバ10とのセッションが確立されると、サーバ10においては、制御部21は、第1端末20に対し、ログイン画面G1の表示データを送信し(S2)、第1端末20においては、表示データを受信すると、制御部21は、ログイン画面G1を表示部25に表示させる(S3)。なお、表示データは、任意の形式であってよく、例えば、HTML形式やXML形式である。S3においては、まだボタンB13が選択されていないので、ログイン画面G1に、二次元コードC14は表示されず、
図2の状態となる。この状態で入力フォームF10,F11にユーザID及びパスワードが入力されてボタンB12が選択されると、通常のログイン処理が実行される。以降では、ボタンB13が選択された場合の処理を説明する。
【0089】
制御部21は、ログイン画面G1のボタンB13が選択されると、サーバ10に対し、二次元コードC14の発行要求を送信する(S4)。発行要求は、所定形式の情報が送信されることで行われるようにすればよい。
【0090】
サーバ10においては、発行要求を受信すると、制御部11は、識別情報を発行する(S5)。S5においては、制御部11は、ランダムな記号列を生成し、識別情報として取得する。
【0091】
制御部11は、第1端末20のセッション情報に関連付けて、識別情報を二次元コードデータベースDB2に格納する(S6)。S6においては、制御部11は、二次元コードデータベースDB2に新たなレコードを生成し、S1で発行したセッション情報とS5で発行した識別情報を当該レコードに格納する。また、制御部11は、現在日時を有効期間情報として当該レコードに格納し、ステータスは初期値の「認証前」とする。
【0092】
制御部11は、第1端末20に対し、二次元コードC14を含むログイン画面G1の表示データを送信する(S7)。S7においては、制御部11は、サーバ10のURLと、S5で発行した識別情報と、を含む二次元コードC14を生成する。このURLは、第2端末30をサーバ10にアクセスさせるためのものなので、ログイン画面G1のURLではなく、サーバ10に割り当てられた任意のURLであればよい。このURLは、記憶部12に予め記憶されているものとする。
【0093】
なお、有効期間中は繰り返し問い合わせをさせ、有効期間後は問い合わせを停止させるためのスクリプトと、有効期間中は二次元コードC14を表示させ、有効期間後は表示を停止するためのスクリプトと、は記憶部12に予め記憶されているものとする。これらのスクリプトは、一体となっていてもよいし、別々であってもよい。制御部11は、スクリプト、二次元コードC14の画像データ、及び二次元コードC14の有効期間情報を含む表示データを生成して送信することになる。
【0094】
第1端末20においては、表示データを受信すると、制御部21は、二次元コードC14を含むログイン画面G1を表示させる(S8)。S8においては、ログイン画面G1に、二次元コードC14は表示され、
図3の状態となる。以降、制御部21は、表示データに含まれるスクリプトを実行し、以降説明するS9〜S12の処理を実行する。なお、スクリプトは、表示データとは別体であり、外部呼出しによって実行されてもよい。
【0095】
制御部21は、有効期間が経過したか否かを判定する(S9)。S9においては、制御部21は、リアルタイムクロックやGPS情報等に基づいて現在日時を取得し、有効期間情報が示す有効期間が経過したか否かを判定する。ここでは、有効期間情報が有効期間の開始時点を示すので、制御部21は、有効期間の開始時点から所定時間後の時点が訪れたか否かを判定する。
【0096】
有効期間が経過したと判定されない場合(S9;N)、有効期間中なので、制御部21は、サーバ10に対し、ステータスの問い合わせを送信し(S10)、S9の処理に戻り、有効期間が経過するまでの間は問い合わせの送信が繰り返される。
【0097】
一方、S9において、有効期間が経過したと判定された場合(S9;Y)、制御部21は、二次元コードC14をログイン画面G1から消去し(S11)、ステータスの問い合わせを停止する(S12)。S12においては、ログイン画面G1にボタンB15が表示され、
図4の状態となる。この状態で入力フォームF10,F11にユーザID及びパスワードが入力されてボタンB12が選択されると、通常のログイン処理が実行される。ボタンB15が選択されると、S4の処理に戻り、二次元コードC14が再取得される。
【0098】
図11に移り、第2端末30において、銀行アプリが起動すると、メニュー画面G2及び確認画面G3が表示される。制御部31は、ボタンB30が選択されると、撮影部36を起動し、撮影画面G4を表示させる(S13)。S13においては、制御部31は、撮影部36の撮影画像を解析し、二次元コードC14を検出したか否かを判定する。
【0099】
制御部31は、二次元コードC14を検出すると、二次元コードC14に含まれるサーバ10のURLを参照し、サーバ10に対し、記憶部12に記憶されたクイックログイン情報と、二次元コードC14に含まれる識別情報と、を送信する(S14)。
【0100】
サーバ10においては、クイックログイン情報と識別情報を受信すると、制御部11は、ユーザデータベースDB1に基づいて、受信したクイックログイン情報の正当性を確認する(S15)。S15においては、制御部11は、第1端末20から受信したクイックログイン情報がユーザデータベースDB1に存在するか否かを判定する。制御部11は、クイックログイン情報がユーザデータベースDB1に存在すれば正当と判定し、クイックログイン情報がユーザデータベースDB1に存在しなければ正当と判定しない。
【0101】
クイックログイン情報の正当性が確認された場合(S15;Y)、制御部11は、二次元コードデータベースDB2に基づいて、S15で受信した識別情報に関連付けられたステータスを「認証済み」に変更する(S16)。S16においては、制御部11は、二次元コードデータベースDB2のうち、S15で受信した識別情報が格納されたレコードのステータスを「認証前」から「認証済み」に変更し、ユーザの口座情報も格納する。なお、ユーザの口座情報は、ユーザデータベースDB1から取得されてもよいし、第2端末30に口座情報を記憶させておき第2端末30から取得されてもよい。以降、第1端末20からの問い合わせを受けると、第1端末20に利用画面G6を表示可能な状態となる。
【0102】
制御部11は、第1端末20からの問い合わせを受信したか否かを判定する(S17)。第1端末20は、S10の処理により、有効期間において問い合わせを送信し続けているが、ステータスが「認証済み」になるまでは、サーバ10は、当該問い合わせを受信しても無視し、第1端末20のログインを許可しないことになる。
【0103】
問い合わせを受信した場合(S17;Y)、制御部11は、ユーザデータベースDB1に基づいて、利用画面G6の表示データを生成し、第1端末20に送信する(S18)。S18においては、制御部11は、S15で受信したクイックログイン情報を有するユーザの第1端末20でのログインを許可し、当該ユーザの口座情報に基づいて、利用画面G6の表示データを生成する。
【0104】
第1端末20においては、表示データを受信すると、制御部21は、利用画面G6を表示部25に表示させ(S19)、本処理は終了する。以降、ユーザは、第1端末20を操作することでオンラインバンキングを利用できる。
【0105】
認証システム1によれば、二次元コードログインの認証が成功した場合にサーバ10が自発的に第1端末20を認証済みの状態にするのではなく、第1端末20からの問い合わせに応じて認証済みの状態にするので、サーバ10の負荷を軽減することができる。例えば、ネットワークNに一時的な通信障害が発生したとしても、サーバ10が繰り返し第1端末20に利用画面G6の表示データを送信するといった必要がなく、第1端末20からの問い合わせに応じて(即ち、ネットワークNが復旧したことが問い合わせによって確認された場合に)、利用画面G6の表示データを送信するので、サーバ10の負荷を軽減することができる。
【0106】
また、第1端末20の接続台数が多くなると、サーバ10が問い合わせを受け続けた場合にサーバ10の負荷が高くなる可能性があるが、識別情報の有効期間内は第1端末20に繰り返し問い合わせをさせ、有効期間後は問い合わせを停止させることで、サーバ10の負荷を軽減することができる。また、悪意のある第三者が二次元コードC14を迷惑メール等に添付してユーザに送信し、ユーザが騙されて銀行アプリで読み取ってしまうと、第三者の端末でログインされてしまう可能性があるが、識別情報に有効期間を設定することで、このような不正を行う時間を与えないので、セキュリティを効果的に高めることができる。また、有効期間を判定する処理を第1端末20に実行させることで、サーバ10が接続中の全ての第1端末20について有効期間を判定する必要がなくなり、サーバ10の負荷を軽減することができる。
【0107】
また、識別情報としてセッション情報を用いないので、ネットワークN上でセッション情報が送信される機会を減らし、セキュリティを高めることができる。また、第三者が識別情報だけを盗難したとしても、セッション情報を保有していなければ、ログインが許可されないので、セキュリティを高めることができる。また、識別情報は、動的に生成される情報であり、第1端末20に割り当てられた固定の回線番号等ではないので、どの端末であってもサービスを利用でき、ユーザの自由度を高めることもできる。
【0108】
また、第2端末30に記憶されたクイックログイン情報を利用して、二次元コードC14が読み取られた後に、パスワード等の認証情報の入力を要することなく、二次元コードC14に含まれる識別情報がサーバ10に送信されることで、ユーザの手間を軽減することができる。また、識別情報に有効期間が設定されている場合には、ユーザにパスワード等を入力させている間に有効期間が経過してしまい、二次元コードC14を再取得する場合に再びパスワード等を入力させなければならないが、パスワード等の入力を省いて迅速に識別情報を送信することで、このような手間を発生させないようにすることができる。
【0109】
また、有効期間が経過した場合にログイン画面G1から二次元コードC14を消去することで、有効期間が経過したことにユーザが気付きやすくなる。また、有効期間が経過したことに気付かずに二次元コードC14を撮影してしまうと、無駄な手間となってしまうが、このような手間を発生させないようにすることができる。
【0110】
また、有効期間が経過するとログイン画面G1にボタンB15が表示され、二次元コードC14の再取得が可能になるので、有効期間が経過してしまった場合のユーザの手間を軽減することができる。更に、従来技術のようにセッション情報を識別情報として使用する場合には、有効期間が経過するたびに、新たな識別情報を発行するためにセッションを再接続しなければならないが、認証システム1では、セッションを維持したまま識別情報を再取得することができ、ユーザの手間を軽減することができる。
【0111】
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【0112】
(1)例えば、多数の第1端末20がサーバ10に接続している場合には、各第1端末20が問い合わせを行うので、サーバ10の負荷が増大することがある。このため、第1端末20の接続台数等によって有効期間の長さを調整し、サーバ10の負荷を軽減するようにしてもよい。
【0113】
図12は、変形例の機能ブロック図である。
図12に示すように、変形例では、負荷情報取得部107と決定部108が実現される。これらは制御部11を主として実現される。負荷情報取得部107は、認証システム1の負荷に関する負荷情報を取得する。負荷情報は、認証システム1の負荷に関する情報であればよく、例えば、第1端末20の接続台数、サーバ10のCPU使用率、又はサーバ10の通信量(ネットワーク使用率)であってもよい。例えば、負荷情報取得部107は、セッションの数を第1端末20の接続台数として取得する。また例えば、負荷情報取得部107は、所定のコマンドを実行してCPU使用率や通信量を取得する。負荷情報取得部107は、取得した情報を負荷情報として取得する。
【0114】
決定部108は、負荷情報に基づいて、有効期間の長さを決定する。決定部108は、負荷情報が示す負荷が高いほど有効期間を短く設定し、負荷情報が示す負荷が低いほど有効期間を長く設定する。負荷と有効期間の長さとの関係は、予めデータ記憶部100に記憶させておけばよい。識別情報取得部102は、発行した識別情報に対し、決定部108が決定した長さの有効期間を設定すればよい。
【0115】
例えば、決定部108は、第1端末20の接続台数が多いほど有効期間を短く設定し、第1端末20の接続台数が少ないほど有効期間を長く設定する。また例えば、決定部108は、サーバ10のCPU使用率が高いほど有効期間を短く設定し、サーバ10のCPU使用率が低いほど有効期間を長く設定する。また例えば、決定部108は、サーバ10の通信量が多いほど有効期間を短く設定し、サーバ10の通信量が少ないほど有効期間を長く設定する。
【0116】
変形例(1)によれば、負荷に応じた長さの有効期間を設定することで、サーバ10の負荷を効果的に軽減することができる。
【0117】
(2)また例えば、第1端末20の接続台数等は、時間帯によって異なることがある。このため、決定部108は、時間帯に基づいて、有効期間の長さを決定する。時間帯は、現在の時間帯であり、例えば、有効期間の長さを決定するときの時間帯、識別情報を発行するときの時間帯、又は二次元コードログインを利用するときの時間帯である。時間帯と有効期間の長さとの関係は、予めデータ記憶部100に記憶させておけばよい。例えば、深夜から早朝にかけては(例えば、0時〜6時)は、第1端末20の接続台数が少ないため、他の時間帯に比べて有効期間を長く設定してもよい。また例えば、夕方から夜にかけては、第1端末20の接続台数が多いため、他の時間帯に比べて有効期間を短く設定してもよい。
【0118】
変形例(2)によれば、ユーザが利用する時間帯に応じた長さの有効期間を設定することで、サーバ10の負荷を効果的に軽減することができる。
【0119】
(3)また例えば、実施形態では、ユーザが銀行アプリを利用して二次元コードC14を読み取る場合を説明したが、第2端末30は、銀行アプリをインストールしていなくても、二次元コードC14を読み取ることができる。この場合、銀行アプリが起動しておらずクイックログインを利用できないので、第1端末20は認証済みの状態にはならない。このため、第2端末30は、所定のウェブサイトにリダイレクトし、銀行アプリの利用を促すようにしてもよい。
【0120】
実施形態で説明したように、第2端末30は、銀行アプリを記憶する。銀行アプリは、所定のサービスを利用するためのアプリケーションの一例であり、第2端末30は、提供されるサービスに応じたアプリケーションを記憶すればよい。例えば、電子商取引サービスにおいて商品を購入するためのアプリケーション、旅行予約サービスにおいてホテルや航空券を予約するためのアプリケーション、又は保険サービスにおいて各種保険手続きをするためのアプリケーションが第2端末30に記憶されていてもよい。
【0121】
状態制御部106は、第2端末30の銀行アプリを利用して第1端末20に関する識別情報が読み取られた場合に、第1端末20を認証済みの状態にする。即ち、状態制御部106は、第2端末30が銀行アプリを起動して識別情報を読み取ったことを条件として、第1端末20を認証済みの状態にする。例えば、状態制御部106は、クイックログイン情報を受信した場合に銀行アプリを利用したと判定し、クイックログイン情報を受信しなかった場合に銀行アプリを利用したと判定しない。
【0122】
なお、銀行アプリを利用したか否かは、クイックログイン情報以外の任意の情報によって判定されてよく、例えば、第2端末30にユーザIDや口座情報を記憶させておく場合には、状態制御部106は、ユーザIDや口座情報を受信したか否かを判定してもよい。他にも例えば、銀行アプリ固有の情報を第2端末30に記憶させておき、状態制御部106は、当該情報を受信したか否かを判定してもよい。
【0123】
状態制御部106は、第2端末30のアプリケーションを利用して第1端末20の識別情報が読み取られなかった場合には、第1端末20を認証済みの状態にせず、第2端末30を所定のウェブサイトに接続させる。このウェブサイトは、任意のウェブサイトであってよく、例えば、銀行アプリの使用やダウンロードを促すウェブサイトであってもよいし、口座の開設を促すウェブサイトであってもよい。ウェブサイトのURLは、データ記憶部100に予め記憶されており、状態制御部106は、公知のリダイレクト処理によって、当該URLに第2端末30をリダイレクトさせる。第2端末30のウェブブラウザには、リダイレクトされたウェブサイトが表示されることになる。
【0124】
変形例(3)によれば、第2端末30を所定のウェブサイトに接続させることで、第1端末20が認証済みの状態にならなかったことをユーザに把握させやすくなる。
【0125】
(4)また例えば、上記変形例を組み合わせてもよい。
【0126】
また例えば、実施形態では、サーバ10から第1端末20にスクリプトが送信され、第1端末20がスクリプトを実行することで、問い合わせの送信等が実行される場合を説明したが、第1端末20は、ネイティブアプリを記憶し、第1端末20がネイティブアプリを実行することによって、問い合わせの送信等が実行されてもよい。即ち、ウェブブラウザ上で二次元コードC13の表示や問い合わせの送信等が行われるのではなく、ネイティブアプリ上で二次元コードC13の表示や問い合わせの送信等が行われてもよい。ネイティブアプリは、第2端末30の銀行アプリと同じであってもよいし、第1端末20用に作成されたものであってもよい。
【0127】
例えば、第1端末20の判定部201は、ネイティブアプリに基づいて、識別情報の有効期間が経過したか否かを判定してもよい。また例えば、第1端末20の問い合わせ部202は、ネイティブアプリに基づいて、問い合わせを行ってもよい。また例えば、第1端末20の表示制御部203は、ネイティブアプリに基づいて、二次元コードC13の表示制御等を実行してもよい。これらの処理は、スクリプトによって実行されるかネイティブアプリによって実行されるかが異なるだけであり、処理内容の詳細は、実施形態で説明した通りである。他にも例えば、識別情報がサーバ10において発行される場合を説明したが、識別情報は、第1端末20のネイティブアプリによって発行されてもよい。この場合、ネイティブアプリは、第1端末20のシリアル番号やIPアドレスといった固有の情報に対し、ランダムに生成した記号列を付与する等して、他の端末と識別情報が重複しないようにする。ネイティブアプリが識別情報を発行する場合には、第1端末20は、サーバ10に識別情報を送信し、第1端末20とサーバ10とで識別情報が共有される。
【0128】
また例えば、実施形態では、識別情報がセッション情報とは異なる情報である場合を説明したが、セッション情報が識別情報として用いられてもよい。他にも例えば、識別情報は、第1端末20にその場で付与される情報ではなく、予め第1端末20に備わるシリアル番号やIPアドレスといった情報であってもよい。この場合、サーバ10の識別情報取得部102は、第1端末20から識別情報を取得する。また例えば、実施形態では、第1端末20とサーバ10との間でセッションが確立されるものとして説明したが、特にセッションを確立せずに、第1端末20とサーバ10との間で通信が行われるようにしてもよい。また例えば、有効期間が経過したか否かを判定する処理が第1端末20側で実行される場合を説明したが、この処理は、サーバ10側で実行されてもよい。また例えば、識別情報の有効期間は、特に設定されなくてもよい。また例えば、第1端末20では、複数のタグやウィンドウの各々でログイン画面G1が表示されてもよく、ログイン画面G1ごとに識別情報が発行されてもよい。また例えば、第1端末20がサーバ10にステータスの問い合わせをするのではなく、第1端末20のステータスが「認証済み」になった時点でサーバ10から自発的に第1端末20に利用画面G6を表示させるようにしてもよい。
【0129】
また例えば、実施形態では、第1端末20が問い合わせを実行する第1の特徴、識別情報がセッション情報とは異なる第2の特徴、クイックログイン情報を利用して二次元コードC14の読み取り後の入力の手間を省く第3の特徴、第1端末20が二次元コードC14の表示停止を制御する第4の特徴、及び有効期間後の再取得操作に応じて二次元コードC14を再取得する第5の特徴を説明した。認証システム1は、第1の特徴〜第5の特徴の少なくとも1つを有するようにすればよく、これら全ての特徴を有する必要はない。例えば、実施形態では、認証システム1が第1の特徴を有する前提で説明したが、認証システム1は、第1の特徴を有さず、第2の特徴〜第5の特徴の少なくとも1つを有するようにしてもよい。この場合には、サーバ10は、二次元コードログインの認証が成功した場合に、自発的に第1端末20を認証済みの状態にする。
【0130】
また例えば、サーバ10において
図7に示す各機能が実現される場合を説明したが、他のコンピュータによって各機能が実現されてもよい。例えば、データ記憶部100は、サーバ10とは別のデータベースサーバで実現されてもよい。他にも例えば、各機能は、複数のコンピュータで分担されてもよい。例えば、各機能は、サーバ10、第1端末20のネイティブアプリ、及び第2端末30の銀行アプリの各々で分担されてもよい。