(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】サーバ、方法、および、プログラム
(51)【国際特許分類】
G06F 21/31 20130101AFI20241022BHJP
【FI】
G06F21/31
(21)【出願番号】P 2023200662
(22)【出願日】2023-11-28
【審査請求日】2023-11-28
(73)【特許権者】
【識別番号】397077955
【氏名又は名称】株式会社三井住友銀行
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】山田 崇仁
(72)【発明者】
【氏名】小林 美貴
【審査官】▲柳▼谷 侑
(56)【参考文献】
【文献】特開2008-171087(JP,A)
【文献】特開2023-073844(JP,A)
【文献】特開2019-040319(JP,A)
【文献】特開2019-075089(JP,A)
【文献】特開2019-036221(JP,A)
【文献】中国特許出願公開第107071026(CN,A)
【文献】韓国登録特許第10-2353189(KR,B1)
【文献】特開2011-238036(JP,A)
【文献】特開2023-127338(JP,A)
【文献】株式会社ノジマ,LINE(ライン)はPC版がある?パソコンでログインする方法,[online],2022年09月03日,https://www.nojima.co.jp/support/koneta/38221/
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/00
G06F 21/30 - 21/46
(57)【特許請求の範囲】
【請求項1】
ウェブサービスの利用に関するリクエストに対して動的に関連付いた動的パラメータに基づいて、前記リクエストについての承認操作を促す承認画面への動的なリンク情報を生成する生成部と、
前記リンク情報を前記リクエストの送信元へ送信する送信部と、
前記リクエストに含まれる情報に基づいて、前記送信元が前記ウェブサービスを利用するためのアカウント登録に使用された第1端末であるかを判別する判別部と、を備え、
前記生成部は、前記第1端末と前記第1端末とは異なる第2端末とで異なる表示形態の表示データに前記リンク情報を組み込み、
前記送信部は、前記リンク情報が組み込まれた前記表示データを前記送信元へ送信する
サーバ。
【請求項2】
前記リンク情報を基に表示された前記承認画面において前記承認操作が行われたことを示す承認メッセージを受信する受信部と、
前記受信部において前記承認メッセージが受信されたことに応答して、前記リクエストに応じた前記ウェブサービスを実行するサービス実行部と、
をさらに備える、請求項1に記載のサーバ
。
【請求項3】
前記生成部は、
前記送信元が前記第1端末であるとの判別結果に応答して、タップまたは押下されることによって前記承認画面を前記第1端末において表示させるボタンの第1表示データに前記リンク情報を組み込み、
前記送信元が前記第1端末ではないとの判別結果に応答して、前記第1端末によって読み取られることによって前記承認画面を前記第1端末において表示させる二次元コードの第2表示データに前記リンク情報を組み込む、請求項
1に記載のサーバ。
【請求項4】
前記ウェブサービスを利用するためのアカウント登録に使用された前記送信元が前記承認メッセージに付与する検証用情報を管理する鍵情報管理部と、
前記承認メッセージの前記検証用情報に基づいて前記送信元の真正性を検証する検証処理部と、をさらに備え、
前記サービス実行部は、
前記検証処理部による検証の成功に応答して、前記ウェブサービスを実行する、請求項2に記載のサーバ。
【請求項5】
前記動的パラメータは、前記リクエストに関する通信のセッションを識別するセッション識別子を含む、請求項1または2に記載のサーバ。
【請求項6】
前記リンク情報は、前記承認画面の表示に使用するアプリケーションを起動させるスキームを含む、請求項1または2に記載のサーバ。
【請求項7】
前記リンク情報は、前記送信元からの前記リクエストにおいて示される、前記送信元の動作環境と、前記ウェブサービスにおける取引内容との一方または双方に関する情報を含み、前記承認画面において前記動作環境および前記取引内容の一方または双方に関する前記情報が表示される、請求項1または2に記載のサーバ。
【請求項8】
前記動作環境に関する情報は、オペレーティングシステムおよびユーザエージェントの一方または双方に関する情報を含む、請求項
7に記載のサーバ。
【請求項9】
前記リクエストは、前記ウェブサービスを利用するためのアカウントに対するログインリクエスト、または前記ウェブサービスにおける取引内容に応じたリクエストである、請求項1または2に記載のサーバ
。
【請求項10】
サーバにおいて、
ウェブサービスの利用に関するリクエストを受信することと、
前記リクエストに含まれる情報に基づいて、前記リクエストの送信元が前記ウェブサービスを利用するためのアカウント登録に使用された第1端末であるかを判別することと、
前記リクエストに対して動的に関連付いた動的パラメータに基づいて、前記リクエストについての承認操作を促す承認画面への動的なリンク情報を生成することと、
前記第1端末と前記第1端末とは異なる第2端末とで異なる表示形態の表示データに前記リンク情報を組み込むことと、
前記リンク情報
が組み込まれた前記表示データを前記リクエストの送信元へ送信することと、
を含む処理を実行し、かつ、
前記送信元において、
前記リンク情報
が組み込まれた前記表示データを受信することと、
前記リンク情報
が組み込まれた前記表示データを基に前記承認画面を表示することと、
を含む処理を実行する、方法。
【請求項11】
サーバに、
ウェブサービスの利用に関するリクエストに対して動的に関連付いた動的パラメータに基づいて、前記リクエストについての承認操作を促す承認画面への動的なリンク情報を生成することと、
前記リクエストに含まれる情報に基づいて、前記リクエストの送信元が前記ウェブサービスを利用するためのアカウント登録に使用された第1端末であるかを判別することと、
前記第1端末と前記第1端末とは異なる第2端末とで異なる表示形態の表示データに前記リンク情報を組み込むことと、
前記リンク情報
が組み込まれた前記表示データを前記リクエストの送信元へ送信することと、
を含む処理を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、サーバ、方法、および、プログラムに関する。
【背景技術】
【0002】
昨今、例えば、会員のログインを伴うインターネットサービスにおいて、正規のウェブサイトを精巧に模した、いわゆるフィッシングサイトが多発している。フィッシングサイトとは、正規のウェブサイトを模した偽のウェブサイトである。
【0003】
例えば、サービス提供元を騙って会員をフィッシングサイトに誘導し、当該サイトにおいて会員ID(Identification)やパスワード(いわゆるワンタイムパスワードが含まれてよい)等を入力させることで、入力情報を盗み取るようなことが行われる。
【0004】
フィッシングサイトにおいて入力された情報の盗取者または転得者は、当該盗取情報を正規のウェブサイトに入力することで、正規の会員本人に成りすまして不法にインターネットサービスを利用できるようになる。
【0005】
フィッシングサイト対策の技術の一例として、非特許文献1および非特許文献2のような技術が知られている。非特許文献1では、例えば、会員がウェブブラウザ等によって正規ウェブサイトにログインする際に、その会員の携帯端末(例えば、スマートフォン)へプッシュ通知により承認を依頼する。併せて、ウェブブラウザ画面と携帯端末画面の両方に同じ乱数を表示し、両者の一致確認を会員に促すことで、ウェブブラウザにてアクセスしているサイトが正規のウェブサイトであることを保証する。
【0006】
また、非特許文献2では、例えば、生体認証に非対応の端末からウェブブラウザ等によってログインする際に二次元コードを端末に表示し、その二次元コードを端末のカメラ機能によって読み取ることを経て、ログインを承認する。
【先行技術文献】
【非特許文献】
【0007】
【文献】住信SBIネット銀行、「スマート認証NEO」、[online]、[2023年11月7日検索]、インターネット、<URL:https://www.netbk.co.jp/contents/lineup/smartauth-neo/approval/>
【文献】楽天市場、公式ヘルプ「かんたんログインに関するよくあるご質問」、[online]、[2023年11月7日検索]、<URL:https://ichiba.faq.rakuten.net/detail/000034810>
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、既存の技術では、フィッシング対策として不十分な場合がある。例えば、非特許文献1に記載のような乱数の一致確認を用いる技術では、ウェブブラウザ等によって表示されるフィッシングサイトに、偽装した乱数を併せて表示するような実装が行われる可能性がある。そのような場合、会員が乱数の一致確認を怠ったり誤認したりする可能性があることから、フィッシングサイトを介した情報の盗取を防ぎきれない可能性がある。
【0009】
本開示の例示的な目的の1つは、フィッシングに対するセキュリティ強度を高めることにある。
【課題を解決するための手段】
【0010】
本開示の例示的な一態様に係るサーバは、ウェブサービスの利用に関するリクエストに対して動的に関連付いた動的パラメータに基づいて、前記リクエストについての承認操作を促す承認画面への動的なリンク情報を生成する生成部と、前記リンク情報を前記リクエストの送信元へ送信する送信部と、を備える。
【発明の効果】
【0011】
本開示の例示的な一態様によれば、フィッシングに対するセキュリティ強度を高めることができる。
【図面の簡単な説明】
【0012】
【
図1】一実施形態に係るウェブサービスシステムの構成例を示す図である。
【
図2】
図1に例示したウェブサービスシステムの動作概要を説明するための模式図である。
【
図3】
図1に例示したウェブサービスシステムにおける会員登録処理を説明するための模式図である。
【
図4】
図1に例示したサーバの構成例を示す機能ブロック図である。
【
図5】一実施形態に係るアカウント情報の非限定的な一例を示す図である。
【
図6】
図4に例示したサーバにおける動的URLの生成イメージを模式的に示す図である。
【
図7】
図1に例示した携帯端末の構成例を示す機能ブロック図である。
【
図8】
図1に例示したPCの構成例を示す機能ブロック図である。
【
図9】
図1に例示したウェブサービスシステムの動作例を示すシーケンス図である。
【
図10】
図1に例示したサーバ、携帯端末、または、PCとして機能するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0013】
以下、図面を参照しながら実施形態について詳細に説明する。ただし、添付図面および以下の説明は、当業者が本開示を十分に理解するために、提供されるのであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。また、必要以上に詳細な説明は省略する場合がある。
【0014】
例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。さらに、同一または類似の符号は同一または類似の要素を示し、繰り返しの説明を省略する場合がある。以下の説明において数値を記載した場合、その数値はあくまでも例示であり、他の数値が追加的または代替的に用いられてもよい。
【0015】
<システム構成例>
図1は、一実施形態に係るウェブサービスシステム1の構成例を示す図である。
図1に例示するウェブサービスシステム1(以下「システム1」と略記することがある)は、例えば、サーバ10、スマートフォンのような携帯端末20、および、パーソナルコンピュータ30を備える。
【0016】
サーバ10、携帯端末20、および、パーソナルコンピュータ(PC)30は、例えば、インターネット等のネットワーク40を介して相互に通信可能に接続される。通信は、有線通信でもよいし無線通信でもよく、通信路において両者が混在する形態であってもよい。なお、サーバ10、携帯端末20、および、PC30の一部または全部は、複数台がシステム1に含まれてもよい。
【0017】
サーバ10は、例えば、ネットワーク40を介して、携帯端末20(以下「端末20」と略記することがある)またはPC30に対して、あらゆる種類のウェブサービスを提供し得る。ウェブサービスは、例示的に、サーバ10に対して端末20またはPC30からウェブサービスを受けるための登録処理(例えば、会員登録)を行ったユーザ(別言すると、会員)について利用(例えば、ログイン)が許容または承認されるようなサービスであってよい。
【0018】
ウェブサービス(以下「サービス」と略記することがある)の非限定的な一例としては、インターネットバンキングのような金融関連のサービス、SNS(social networking service)のようなコミュニケーションサービス、ニュースや天気等の情報提供サービス、ショッピングサービス、決済サービス、マッチングサービス、相談サービス、オンライン会議サービス、ストレージサービス等が挙げられる。
【0019】
端末20およびPC30は、通信機能を有するあらゆる種類のデバイスであってよい。非限定的な一例として、端末20は、携帯電話、スマートフォン、タブレットPC、スマートウオッチのようなウェアラブルデバイス、および、それらのあらゆる組み合わせであってよく、PC30は、ラップトップタイプおよびデスクトップタイプの何れであってもよい。
【0020】
端末20およびPC30は、例示的に、ネットワーク40を介してサーバ10によるサービスの提供を受ける同一ユーザによって所有される端末であり、当該ユーザは、端末20およびPC30の何れにおいてもサーバ10が提供するサービスを利用可能である。なお、PC30は、端末20と同様に携帯端末であってもよい。
【0021】
ネットワーク40は、有線および無線の何れのネットワークであってもよく、また、有線と無線とが混在するネットワークであってもよい。無線ネットワークは、3G、LTE(Long Term Evolution)、4G、5G、6Gといった3GPP(3rd Generation Partnership Project)(登録商標)が策定する規格に準拠したネットワークでもよいし、IEEE802.11シリーズ規格に準拠したWi-Fiネットワークであってもよい。ネットワーク40の非限定的な一例は、インターネットを含み得る。
【0022】
<システム動作の概要>
次に、
図2を参照して、システム1の動作概要について説明する。システム1では、端末20またはPC30によるサーバ10に対するログインリクエスト(S201)毎にサーバ10において「承認画面」への動的なリンク情報を生成する(S202)。リンク情報の非限定的な一例は、URL(uniform resource locator)であり、その詳細な一例については後述する。
【0023】
なお、動的なリンク情報の一例であるURLを便宜的に「動的URL」と略称することがある。また、「承認画面」は、ログインリクエストを行ったユーザに対してログインリクエストについての所定の承認操作を促す表示画面の一例である。承認操作の非限定的な一例は、「承認画面」に表示される「承認ボタン」のタップ(または押下)である。「承認」という用語は、「確認」または「了承」といった他の用語に相互に読み替えられてもよい。
【0024】
ここで、ログインリクエストの送信元が会員登録に使用された端末(例えば、端末20)である場合、サーバ10は、動的URLを組み込んだ(または関連付けた)「遷移ボタン」を登録端末20において表示させる(S203a)。なお、以下において、会員登録に使用された端末を便宜的に「登録端末」と略称することがある。
【0025】
一方、ログインリクエストの送信元が登録端末とは異なる端末(例えば、PC30)である場合、サーバ10は、動的URLを組み込んだ(または関連付けた)「二次元コード」をPC30において表示させる(S203b)。
【0026】
なお、登録端末(例えば、端末20)は、第1端末の一例であり、登録端末とは異なる端末(例えば、PC30)は、第2端末の一例である。ログインリクエストの送信元が登録端末であるか否かは、例示的に、ログインリクエストに含まれる、送信元が登録端末であるかを判別可能な情報(例えば、後述する会員ID、ログイン環境情報など)に基づいて、暫定的または簡易的に判別し得る。
【0027】
登録端末20において表示された「遷移ボタン」に対する会員による選択操作(例えば、タップまたは押下等)が行われた場合(S204)、登録端末20において「遷移ボタン」の動的URLのリンク先である「承認画面」が表示される(S205)。なお、「遷移ボタン」は、例示的に、会員による選択操作が行われることによって登録端末20における画面表示が「承認画面」に遷移する(または、切り替わる)ボタンを意味し、既述の「承認ボタン」との区別を容易にするための便宜的な呼称である。
【0028】
一方、ログインリクエストの送信元であるPC30において二次元コードが表示された場合、会員は、例えば、登録端末20のカメラによってPC30に表示された二次元コードを読み取る(S204)。二次元コードの読み取りに応答して登録端末20において二次元コードに組み込まれた動的URLのリンク先である「承認画面」が登録端末20において表示される(S205)。
【0029】
このように、「承認画面」は、登録端末20における「遷移ボタン」に対する選択操作によって、またはPC30に表示された二次元コードの登録端末20による読み取りによって、登録端末20において表示される。なお、「承認画面」には、後述するように、例えば、ログインリクエストを実施した端末20またはPC30の動作環境(別言すると、ログイン環境)を示す情報が、ユーザによる確認のために表示されてよい。ログイン環境を示す情報は、例示的に、オペレーティングシステム(OS)およびユーザエージェント(UA)の一方または双方に関する情報であり得る。
【0030】
そして、登録端末20に表示された「承認画面」において会員による承認操作(例えば、「承認ボタン」のタップまたは押下等)が行われた場合、登録端末20は、その旨をサーバ10へ通知する(S206)。この通知は、例示的に、承認操作が行われたことを示す承認メッセージの送信によって行われてよい。
【0031】
サーバ10は、登録端末20から承認メッセージを受信することにより、登録端末20またはPC30からのログインリクエストを承認(または許可)し、ログイン処理を実行する(S207)。
【0032】
以上のように、サーバ10においてログインリクエスト毎に動的に生成された動的URLの「承認画面」に対する所定の承認操作によって初めてログイン処理が実行される。そのため、フィッシングサイトを構築するには、ログインリクエスト毎に動的に変化するURLをフィッシングサイトにリアルタイムに組み込む必要がある。したがって、フィッシングサイト構築の困難性が格段に増加し、これにより、フィッシングに対する耐性(または、セキュリティ強度)が向上する。
【0033】
なお、サーバ10は、後述するように、登録端末20から受信した承認メッセージについて文字列(例えば、署名鍵および検証鍵のような鍵情報)を用いた検証処理(S207)を実施する。検証処理が成功した場合に、ログイン処理が実行される。
【0034】
文字列を用いた「検証処理」は、例示的に、サーバ10に対する会員登録処理において端末20が乱数を用いてランダムに生成してサーバ10へ通知した文字列のサーバ10での一致(別言すると、突合)確認によって実施されてもよいし、署名鍵および検証鍵のような文字列のペアを用いた暗号化および復号を通じた確認によって実施されてもよい。
【0035】
なお、「署名鍵」および「検証鍵」は、それぞれ、「秘密鍵」および「公開鍵」に読み替えられてもよい。別言すると、文字列を用いた検証処理は、公開鍵暗号方式に基づいて実施されてよい。検証用情報の一例である文字列には、文字に限らず、数字または記号が一部に含まれてもよい。
【0036】
検証用の文字列は、例えば
図3に模式的に示すように、会員登録処理(S301)においてサーバ10と登録端末20との間において(例えば会員IDと共に)共有されてよい(S302およびS303)。
【0037】
文字列の共有は、例示的に、会員登録処理において登録端末20が所定の規則に従って(または、乱数を用いてランダムに)生成した文字列(または署名鍵のペアを成す検証鍵)を登録端末20からサーバ10へ通知することで実現され得る。ただし、文字列の共有は、例えば、会員登録処理において、サーバ10が生成した文字列を端末20に割り当てる(別言すると、通知する)ことによって実現されてもよい。
【0038】
検証処理の実施によって、動的URLのリンク先である「承認画面」を表示した端末20が会員登録に使用された端末に相違ないこと(別言すると、真正性)が保証される。したがって、フィッシングに対する耐性(または、セキュリティ強度)がさらに向上し得る。
【0039】
以下、上述したフィッシング対策を実現可能なシステム1を構成するサーバ10、端末20、および、PC30の機能的な構成例を個別に説明する。
【0040】
<サーバ構成例>
図4は、
図1に例示したサーバ10の構成例を示す機能ブロック図である。
図4に示すように、サーバ10は、例示的に、受信部101、送信部102、記憶部103、表示部104、および、処理部105を備える。処理部105は、例示的に、アカウント管理部151、通信制御部152、表示制御部153、判別部154、生成部155、検証処理部156、および、サービス実行部157を備える。
【0041】
また、アカウント管理部151は、例えば、文字列管理部1511を備え、通信制御部152は、例えば、セッション管理部1521を備える。生成部155は、例えば、動的リンク生成部1551、ボタン生成部1552、および、二次元コード生成部1553を備える。
【0042】
受信部101は、例えば、端末20またはPC30が送信した信号(例えば、既述のログインリクエストまたは承認メッセージを含む情報またはメッセージ)を受信する。
【0043】
送信部102は、例えば、端末20またはPC30へ信号(例えば、既述の動的URLを含む情報またはメッセージ)を送信する。
【0044】
記憶部103は、例えば、処理部105が処理に用いるプログラムおよびデータを記憶する。記憶部103に記憶されるデータには、後述する会員情報(または、「アカウント情報」と称されてもよい)が含まれてよく、また、処理部105によって処理されたデータが含まれてもよい。プログラムには、サーバ10のプラットフォーム(例えば、OS)およびOS上で動作する各種のアプリケーションプログラム(以下「アプリケーション」と略称し得る)が含まれてよい。「アプリケーション」は、「ソフトウェア」に読み替えられてもよい。
【0045】
表示部(またはディスプレイ)104は、例えば、処理部105において処理されたデータを、表示制御部153の制御下において、表示する。
【0046】
処理部105は、例えば、サーバ10としての既述の動作を具現する各種の処理を実行する。例えば、処理部105において、アカウント管理部151は、サーバ10が提供するウェブサービスを利用するユーザ(会員)のアカウント情報(または会員情報)を記憶部103と協働して管理する。アカウント情報を管理することには、アカウント情報を作成または更新することが含まれ得る。
【0047】
図5に、アカウント情報50の非限定的な一例を示す。
図5に示すアカウント情報50は、例示的に、会員IDの別に、ログインID、ログインパスワード(PW)、および、文字列(例えば、検証鍵)が登録(またはエントリ)されたテーブル形式の情報である。会員IDは、ログインIDと同一でもよいし異なっていてもよい。会員IDは、例示的に、アカウント管理部151において所定の規則に従って生成されて会員に割り当てられてよい。
【0048】
ログインID(または会員ID)およびログインパスワードは、例えば、端末20またはPC30において表示されるログイン画面に対して入力されるログイン情報の一例である。ログイン情報は、例えば、ログイン画面におけるログイン実行操作に応答して、サーバ10宛に送信されるログインリクエストに含められる。なお、会員IDとログインIDとが同一(または兼用)である場合、会員IDおよびログインIDの一方は、アカウント情報50において省略されてよい。
【0049】
検証処理に用いられる文字列は、例示的に、サーバ10と通信する端末20またはPC30が会員登録処理においてサーバ10宛に送信するメッセージに含まれ、当該通信を制御する通信制御部152において取得され得る。したがって、アカウント管理部151は、例えば、会員登録のためにサーバ10にアクセスして会員登録に関する通信を実施した端末(例えば、登録端末)20から通知された文字列を通信制御部152から取得して文字列管理部1511において管理し得る。
【0050】
検証処理に公開鍵暗号方式を用いる場合、アカウント管理部151において管理する文字列の一例としての検証鍵は、例えば、サーバ10に対する会員登録処理を実施した端末20において署名鍵と共に生成される。署名鍵は、端末20において保存され、当該署名鍵のペアを成す検証鍵は、例えば会員登録処理において端末20からサーバ10に通知される。サーバ10は、通知された検証鍵を例えば文字列管理部1511によって記憶部103に記憶して管理する。
【0051】
端末20は、署名鍵を用いてサーバ10宛のメッセージ(例えば、承認メッセージ)に電子署名を施し、当該メッセージを受信したサーバ10は、署名鍵のペアを成す検証鍵を用いて、当該メッセージが署名鍵を保有する端末20からの真正なメッセージであることを検証し得る。このような検証が、例えば、検証処理部156において実施され得る。
【0052】
なお、アカウント情報50は、
図5に例示したようなテーブル形式の情報でなくてもよく、その他の形式の情報であってもよい。また、会員ID別のログインID、ログインパスワード、および、文字列の一部または全部は、1つのテーブル形式の情報において登録されなくてもよく、例えば、会員IDに対して個別的に関連付けられる形式によって登録されてもよい。別言すると、アカウント情報50は、会員IDをキーにしてログインID、ログインパスワード、および、文字列の一部または全部を特定または識別可能な形式であれば足りる。
【0053】
図4において、通信制御部152は、例えば、受信部101による受信処理と送信部102による送信処理とを制御して、サーバ10と端末20またはPC30との間の通信を制御する。受信部101による受信処理には、例示的に、端末20またはPC30からのログインリクエストの受信と、端末20からの承認メッセージの受信とが含まれ得る。送信部102による送信処理には、例示的に、動的URLが組み込まれた「遷移ボタン」または「二次元コード」の送信が含まれ得る。
【0054】
また、通信制御部152は、例えば、セッション管理部1521によって、サーバ10と端末20またはPC30との間の通信においてセッションを確立し、確立したセッションを管理する。セッションは、例えば、通信の開始から終了(または切断)までの時間において確立される。セッションには、例示的に、個々の通信を一意に識別、管理するための時限的で動的な識別子(例えば、セッションIDと称される)が割り当てられる。
【0055】
したがって、本実施形態において、セッション管理部1521は、例えば、ログインリクエストのようなウェブサービスの利用をリクエストする通信毎にセッションIDを割り当て、割り当てたセッションIDを記憶部103に記憶し管理する。なお、セッションの終了に応じて、セッション管理部1521は、セッションIDの割り当ておよび管理を解放してよい。
【0056】
表示制御部153は、例えば、処理部105による処理結果または記憶部103に記憶されたデータを適宜に表示部104へ出力し得、また、その表示態様を制御し得る。例えば、表示制御部153は、アカウント情報50の一部または全部を表示部104に適宜に表示させ得、また、セッションIDを含むセッション管理情報等の一部または全部を表示部104に適宜に表示させ得る。
【0057】
また、表示制御部153は、判別部154、生成部155、検証処理部156、および、サービス実行部157の一部または全部による処理の過程または結果等を適宜に表示部104に表示させ得る。表示制御部153による表示制御によって、例えば、サーバ10のユーザ(例えば、システム1のオペレータ)は、サーバ10の動作状況または処理過程を適宜に視認することが可能である。
【0058】
判別部154は、例えば、ログインリクエストが受信部101において受信された場合に、当該リクエストに含まれる情報に基づいて、当該ログインリクエストの送信元が会員登録時に使用された端末(例えば、登録端末20)であるか否かを判別する。
【0059】
この判別は、暫定的な判別(別言すると、簡易的な、または、仮の判別)であってよく、確定的な判別は既述の検証処理によって実施されてよい。例えば、ログインリクエストの送信元が登録端末20に相違ないこと(別言すると、真正性)は、既述のように事前に登録された文字列を用いた検証処理において確認、確定されてよい。
【0060】
例示的に、判別部154は、ログインリクエストに含まれる会員IDおよびログイン環境情報(例えば、OSまたはUAに関する情報)の一方または双方に基づいて、ログインリクエストの送信元がスマートフォンのような携帯端末20であるか否かを判別し得る。
【0061】
例えば、OSに関する情報(例えば、iOSまたはアンドロイドOSであるか、ウィンドウズOSであるかといったプラットフォームの種類など)を基に、送信元が携帯端末20であるか否かを判別(「推定」と言い換えられてもよい)し得る。なお、「アンドロイド」および「ウィンドウズ」は登録商標である。
【0062】
また、UAに関する情報には、例示的に、送信元が画面表示に使用しているアプリケーション(例えば、ウェブブラウザの種類)に関する情報、または、画面表示サイズに関する情報などが含まれ得る。なお、ウェブブラウザの種類が特定のOS向けに提供されるようなブラウザであれば、ウェブブラウザの種類を基にOSを特定でき、また、その逆の特定も可能である。
【0063】
そのため、UAに関する情報を基に、例えば、送信元がスマートフォンのような携帯端末20であるか否かを判別し得る。OSおよびUAの関する情報の組み合わせに基づけば、判別(または推定)の精度を高めることも可能である。なお、会員ID(またはログインID)またはログイン環境情報またはそれらの組み合わせは、ログインメッセージの送信元を判別し得る情報の非限定的な一例である。
【0064】
生成部155は、例えば、ウェブサービスの利用に関するリクエストの一例であるログインリクエスト毎に、そのリクエストについての承認操作を促す承認画面への動的なリンク情報(例えば、既述の動的URL)を生成する。例示的に、生成部155は、動的リンク生成部1551において、個々のログインリクエストに対して動的に関連付いた(または、割り当てられた)動的な情報要素に基づいて、ログインリクエスト毎に異なる承認画面への動的URLを生成し得る。
【0065】
動的な情報要素は、便宜的に、動的パラメータと称されてよい。動的パラメータには、セッションIDに、追加してまたは代替して、ログインリクエストの受信タイムスタンプのような時刻情報が用いられてもよい。動的パラメータのさらなる他の例については、後述する変形例において説明する。
【0066】
なお、動的パラメータとは、例示的に、サーバ10に対するアクセスの度に変化する情報要素を意味し得る。ログインリクエストに割り当てられる動的パラメータの一例である「セッションID」は、本実施形態において、個々のログインに関する通信を識別する「ログイン識別子」に相当すると理解されてもよい。
【0067】
図6に、動的リンク生成部1551による動的URLの生成イメージを模式的に示す。
図6に例示するように、動的リンク生成部1551は、例えば、登録端末20のアプリケーション(APP)を起動するURLスキームを記述したURLに、以下のパラメータ(1)~(3)を加えたパラメータ付きURLを動的URLの非限定的な一例として生成し得る。
【0068】
(1)会員ID(user id)(またはログインID)
(2)セッションID(session id)
(3)ログイン環境を示す情報
【0069】
なお、
図6において、生成された動的URLは、非限定的な一例として、「https://***(APP起動スキーム)***?user_id&session_id&os&useragent&...」のような形式を有する。ログイン環境を示す情報(以下「ログイン環境情報」と略称することがある)の非限定的な一例としては、オペレーティングシステム(OS)およびUAの一方または双方に関する情報が挙げられる。UAは、一般的には理解しにくい文字列であるため、サーバ10(例えば、生成部155)において、理解し易い形式の情報またはパラメータに加工または変換されてよい。会員IDおよびログイン環境情報は、例示的に、ログインリクエストに含まれており、セッションIDは、既述のとおり、セッション管理部1521において管理されている。
【0070】
また、生成部155は、例えば、判別部154による判別結果を基に、第1端末20と第2端末30とで異なる表示形態の表示データ(例えば、既述の「遷移ボタン」または「二次元コード」)に動的URLを組み込む。
【0071】
例えば、ボタン生成部1552において、動的URLを組み込んだ「遷移ボタン」が生成され、二次元コード生成部1553において、動的URLを組み込んだ「二次元コード」が生成される。なお、動的URLが組み込まれた「遷移ボタン」または「二次元コード」の表示データは、送信部102からログインリクエストの送信元である端末20またはPC30へ送信される。
【0072】
図4において、検証処理部156は、例えば、動的URLの送信後に、登録端末20から承認メッセージが受信部101において受信された場合に、会員登録処理において登録された文字列(例えば、検証鍵)を用いて、当該承認メッセージが登録端末20から送信された真正なメッセージであるかを検証する。
【0073】
この検証によって、ログインメッセージの送信元が登録端末20に相違ないことが確認される。そのため、検証処理に用いられる文字列は、登録端末20をサーバ10において一意に識別可能な端末IDに相当すると理解されてもよい。
【0074】
サービス実行部157は、例えば、検証処理部156による検証が成功した場合に、ログインリクエストの送信元である端末20またはPC30によるログイン処理を実行し、ログインリクエストに応じたウェブサービスの提供を開始する。検証処理部156による検証が失敗した場合、サービス実行部157は、例えば、ログイン失敗処理を実施し得る。
【0075】
例えば、サービス実行部157は、ログインに失敗したことを示すメッセージを生成し、通信制御部152による制御下において、送信部102から当該メッセージをログインリクエストの送信元(端末20またはPC30)宛に送信してよい。
【0076】
なお、サーバ10の処理部105に含まれる各部151~157の機能の一部または全部は、複数のサーバ10に分散配置されて、各部151~157による処理が分散的に実行されてもよい。複数のサーバ10は、例えば、仮想化技術によって仮想化されたクラウドサーバ群であってもよい。
【0077】
<端末20の構成例>
次に、
図7を参照して、端末20の機能的な構成例について説明する。なお、本実施形態において、端末20は、サーバ10に対して会員登録を行う登録端末であることを想定する。
図7に示すように、端末20は、例示的に、受信部201、送信部202、記憶部203、表示部204、カメラ205、および、処理部206を備える。
【0078】
処理部206は、例示的に、アカウント管理部261、通信制御部262、表示制御部263、サービスリクエスト生成部264、リンク選択操作検出部265、アプリケーション起動部266、および、アプリケーション267を備える。アプリケーション267は、例示的に、承認操作検出部2671、および、承認メッセージ生成部2672を備える。
【0079】
なお、アプリケーション267は、記憶部203に記憶されているが、アプリケーション起動部266によって起動されることによって処理部206において具現される機能を視覚的に示すために、
図7において処理部206の内部に便宜的に示されている。
【0080】
受信部201は、例えば、端末20とサーバ10との通信(例えば、会員登録処理またはログインリクエストに関する通信)おいてサーバ10が送信した信号(例えば、既述の動的URLが含まれ得る)を受信する。
【0081】
送信部202は、例えば、端末20とサーバ10との通信においてサーバ10宛の信号(例えば、既述のログインリクエストまたは承認メッセージが含まれ得る)を送信する。
【0082】
記憶部203は、例えば、処理部206が処理に用いるプログラムおよびデータを記憶する。記憶部203に記憶されるデータには、アカウント情報が含まれてよく、また、処理部206によって処理されたデータが含まれてもよい。プログラムには、OSおよびOS上で動作する各種のアプリケーション(またはソフトウェア)が含まれてよい。
【0083】
表示部(または、ディスプレイ)204は、例えば、処理部206において処理されたデータを、表示制御部263の制御下において、表示する。例えば、表示部204は、動的URLが組み込まれた「遷移ボタン」、または「承認ボタン」を含む「承認画面」等を表示部204に表示し得る。
【0084】
カメラ205は、例えば、端末20のユーザによる操作に応じた処理部206からの制御に従って、端末20の周辺に位置する被写体を撮像する。本実施形態においては、例示的に、PC30の表示部304(
図8において後述)に表示された画像(例えば、既述の二次元コード)の読み取りにカメラ205が用いられ得る。
【0085】
処理部206は、例えば、登録端末20としての既述の動作を具現する各種の処理を実行する。例えば、処理部206において、アカウント管理部261は、サーバ10に対する会員登録済みの情報(例えば、会員IDまたはログインID、および、ログインパスワード等)を記憶部203と協働して管理する。
【0086】
文字列管理部2611は、例えば、既述のような承認メッセージの検証に用いられる文字列(例えば、署名鍵)を記憶部203において記憶して管理する。文字列は、例示的に、既述の「承認画面」を表示部204に表示する際に用いられるアプリケーション267に対して一意に生成されてよい。また、署名鍵は、例えば、文字列管理部2611によって生成されてもよいし、アプリケーション267において生成されてもよい。
【0087】
なお、アプリケーション267は、非限定的な一例として、ウェブブラウザのようなウェブサイトの表示(または閲覧)に用いられる汎用のアプリケーションでもよいし、ウェブサービスの利用のために開発および提供された、ウェブサイトの表示機能を有する専用のアプリケーションであってもよい。
【0088】
通信制御部262は、例えば、受信部201による受信処理と送信部202による送信処理とを制御して、端末20とサーバ10との間の通信を制御する。受信部201による受信処理には、例示的に、サーバ10において生成された動的URL(例えば、「遷移ボタン」)をサーバ10から受信する処理が含まれ得る。送信部202による送信処理には、例示的に、サーバ10宛にログインリクエストを送信する処理が含まれ得る。
【0089】
なお、通信制御部262は、例えば、サーバ10によって割り当てられるセッションIDに基づいて、端末20とサーバ10との間において確立したセッションの期間において会員登録またはログインといった処理に関する通信を制御する。
【0090】
表示制御部263は、例えば、処理部206による処理結果または記憶部203に記憶されたデータを適宜に表示部204へ出力し得、また、その表示態様を制御し得る。表示制御部263は、各部261~267の一部または全部による処理の過程または結果等を適宜に表示部204に表示させ得る。表示制御部263による表示制御によって、例えば、端末20のユーザは、端末20の動作状況または処理過程を適宜に視認することが可能である。
【0091】
サービスリクエスト生成部264は、例えば、サーバ10に対して会員登録済みのウェブサービスの利用をリクエストするメッセージ(例えば、ログインリクエスト)を生成する。例示的に、サービスリクエスト生成部264は、会員ID(またはログインID。以下において同様)、ログインパスワード、および、ログイン環境情報を含むログインリクエストを生成する。生成されたログインリクエストは、例えば、送信部202からサーバ10宛に送信される。
【0092】
リンク選択操作検出部265は、例えば、表示部204に表示された「遷移ボタン」(別言すると、「遷移ボタン」に組み込まれた動的URL)に対するユーザによる選択操作(例えば、タップまたは押下等)を検出する。ここで、動的URLには、アプリケーション267を起動するURLスキームが記述されているため、選択操作の検出に応答して例えばアプリケーション起動部266によってアプリケーション267が起動される。
【0093】
また、リンク選択操作検出部265は、例えば、PC30において表示された「二次元コード」のカメラ205による読み取りを検出する。この検出に応答して、動的URLに記述されたURLスキームに従ってアプリケーション起動部266がアプリケーション267を起動する。別言すると、「二次元コード」のカメラ205による読み取りは、動的URLに対する選択操作の他の一例である。
【0094】
アプリケーション起動部266は、上述のごとくURLスキームに従ってアプリケーション267を起動すると共に、例えば、動的URLに含まれる会員ID、セッションID、ログイン環境情報といった各種パラメータを記憶部203に保存する。
【0095】
アプリケーション267の起動に応答して、例えば、動的URLのリンク先である「承認画面」に対するアクセスが通信制御部262によって実行され、受信部201および表示制御部263を介して「承認画面」が表示部204に表示される。
【0096】
アプリケーション267において、承認操作検出部2671は、例えば、表示部204に表示された「承認画面」に対する承認操作(例えば、「承認ボタン」のタップまたは押下等)を検出する。
【0097】
承認メッセージ生成部2672は、例えば、承認操作検出部2671による承認操作の検出に応答して、サーバ10宛の承認メッセージを生成する。
【0098】
<PC30の構成例>
次に、
図8を参照して、PC30の機能的な構成例について説明する。
図8に示すように、PC30は、受信部301、送信部302、記憶部303、表示部304、および、処理部305を備える。
【0099】
受信部301は、例えば、PC30とサーバ10との通信(例えば、ログインリクエストに関する通信)おいてサーバ10が送信した信号(例えば、既述の動的URLを組み込まれた「二次元コード」が含まれ得る)を受信する。
【0100】
送信部302は、例えば、PC30とサーバ10との通信においてサーバ10宛の信号(例えば、既述のログインリクエストが含まれ得る)を送信する。
【0101】
記憶部303は、例えば、処理部305が処理に用いるプログラムおよびデータを記憶する。記憶部303に記憶されるデータには、アカウント情報が含まれてよく、また、処理部306によって処理されたデータが含まれてもよい。プログラムには、OSおよびOS上で動作する各種のアプリケーション(またはソフトウェア)が含まれてよい。
【0102】
表示部(または、ディスプレイ)304は、例えば、処理部305において処理されたデータを、表示制御部352の制御下において、表示する。例えば、表示部304は、受信部301においてサーバ10から受信した、動的URLが組み込まれた「二次元コード」等を表示部304に表示し得る。
【0103】
処理部305は、例えば、PC30としての既述の動作を具現する各種の処理を実行する。そのため、処理部305は、例示的に、通信制御部351、表示制御部352、サービスリクエスト生成部353、および、二次元コード検出部354を備える。
【0104】
通信制御部351は、例えば、受信部301による受信処理と送信部302による送信処理とを制御して、PC30とサーバ10との間の通信を制御する。受信部301による受信処理には、例示的に、サーバ10において生成された動的URL(例えば、「二次元コード」)をサーバ10から受信する処理が含まれ得る。送信部302による送信処理には、例示的に、サーバ10宛にログインリクエストを送信する処理が含まれ得る。
【0105】
なお、通信制御部351は、例えば、サーバ10によって割り当てられるセッションIDに基づいて、PC30とサーバ10との間において確立したセッションの期間においてログイン処理またはログイン処理後のサービス実行に関する通信を制御する。
【0106】
表示制御部352は、例えば、処理部305による処理結果または記憶部303に記憶されたデータを適宜に表示部304へ出力し得、また、その表示態様を制御し得る。表示制御部352は、各部351~354の一部または全部による処理の過程または結果等を適宜に表示部304に表示させ得る。表示制御部352による表示制御によって、例えば、PC30のユーザ(本実施形態では登録端末20のユーザでもある)は、PC30の動作状況または処理過程を適宜に視認することが可能である。
【0107】
サービスリクエスト生成部353は、例えば、サーバ10に対して会員登録済みのウェブサービスの利用をリクエストするメッセージ(例えば、ログインリクエスト)を生成する。例示的に、サービスリクエスト生成部353は、会員ID、ログインパスワード、および、ログイン環境情報を含むログインリクエストを生成する。生成されたログインリクエストは、例えば、送信部302からサーバ10宛に送信される。
【0108】
二次元コード検出部354は、例えば、受信部301を通じて受信された、動的URLが組み込まれた「二次元コード」を検出する。二次元コードの検出に応答して、例えば、表示制御部352によって当該二次元コードが表示部304に表示される。
【0109】
なお、サーバ10、端末20、および、PC30のそれぞれについて上述した機能的な構成例において、「~部」という用語は、「~回路」、「~ブロック」、「~モジュール」、「~手段」といった他の用語に相互に置換可能である。また、サーバ10、端末20、および、PC30のそれぞれについて例示した機能的な構成要素の一部または全部は、単一の構成要素に統合されてもよい。
【0110】
<動作例>
次に、
図9のシーケンス図を参照して、上述した例示的な構成を有するサーバ10、端末20、および、PC30を含むシステム1の動作例について説明する。
【0111】
ユーザは、例えば、端末20によりサーバ10にアクセスして、サーバ10が提供するサービスを利用するための会員登録処理を行う(S901)。会員登録処理において、サーバ10および端末20は、例えば、検証用情報の一例として、署名鍵および検証鍵のような文字列を共有する。
【0112】
非限定的な一例として、文字列は、端末20において、サーバ10が提供するサービスを利用する際に端末20が利用するアプリケーション(以下「端末アプリケーション」と称することがある)に対して一意に生成される。生成された文字列は、端末20において保存されると共に、サーバ10へ通知される。検証用の文字列として署名鍵を用いる場合には、署名鍵が、端末20において保存され、当該署名鍵のペアを成す検証鍵が、端末20からサーバ10に通知される。サーバ10は、通知された文字列または検証鍵を例えば
図5に例示したようにアカウント情報50において登録する。
【0113】
その後、会員登録済みのユーザが、端末20(または、PC30)においてサーバ10にログインをリクエストする操作を行った場合、例えば、サービスリクエスト生成部264(または353)においてログインリクエストが生成される。このログインリクエストには、例えば、会員IDおよびログイン環境情報の一方または双方が含まれ得る。ログインリクエストは、例えば、通信制御部262(または351)による制御下において、送信部202(または302)からサーバ10宛に送信される(S902aまたはS902b)。
【0114】
サーバ10は、例えば、受信部101においてログインリクエストを受信した場合、通信制御部152のセッション管理部1521によってログインリクエストにセッションIDを割り当てて管理する。また、サーバ10は、例えば、ログインリクエストに含まれる情報とセッションIDとを基に、動的リンク生成部1551において動的URLを生成する(S903)。
【0115】
例えば
図6に示したように、サーバ10は、端末アプリケーションを起動するURLスキームを記述したURLに会員ID、セッションID、および、ログイン環境情報といった各種のパラメータを加えた動的URLを生成する。
【0116】
また、サーバ10は、例えば、受信したログインリクエストに含まれる例えば会員IDおよびログイン環境情報の一方または双方に基づいて、ログインリクエストの送信元が登録端末20であるか否かを判別部154において(暫定的または簡易的に)判別する(S904)。なお、この判別は、動的URLの生成よりも先に実施されてもよいし、動的URLの生成と並行して実施されてもよい。
【0117】
判別の結果、ログインリクエストの送信元が登録端末20である場合(S904においてYES)、サーバ10は、例えば、ボタン生成部1552において、動的URLを組み込んだ「遷移ボタン」を生成する(S905a)。
【0118】
生成された「遷移ボタン」は、例えば、通信制御部152による制御下において、送信部102からログインリクエストの送信元端末20へ送信され(S906a)、登録端末20の表示部204において表示される(S907a)。
【0119】
一方、ログインリクエストの送信元が登録端末ではない場合、例えば、PC30である場合(S904においてNO)、サーバ10は、例えば、二次元コード生成部1553において、動的URLを組み込んだ「二次元コード」を生成する(S905b)。生成された「二次元コード」は、例えば、通信制御部152による制御下において、送信部102からログインリクエストの送信元PC30へ送信され(S906b)、PC30の表示部304において表示される(S907b)。
【0120】
ユーザが、端末20の表示部204に表示された「遷移ボタン」に対する選択操作(例えば、タップまたは押下)を行った場合、当該選択操作がリンク選択操作検出部265において検出される。選択操作の検出に応答して、端末20では、例えば動的URLに記述されたURLスキームに従ってアプリケーション267がアプリケーション起動部266によって起動される(S909)。
【0121】
一方、PC30の表示部304に表示された「二次元コード」が登録端末20のカメラ205によって読み取られた場合、例えば、その読み取りが動的URLに対する選択操作としてリンク選択操作検出部265において検出される。この検出に応答して、「遷移ボタン」に対する選択操作が検出された場合と同様に、端末20において、動的URLに記述されたURLスキームに従ってアプリケーション267がアプリケーション起動部266によって起動される(S909)
【0122】
なお、アプリケーション起動部266は、例えば、動的URLに含まれる会員ID、セッションID、ログイン環境情報といった各種のパラメータを記憶部203に保存する。したがって、アプリケーション267は、動的URLから取得された各種のパラメータにアクセス可能な状態(「パラメータを保有した状態」と言い換えられてもよい)で起動される。
【0123】
アプリケーション267は、例えば、リンク選択操作検出部265による動的URLに対する選択操作の検出に応答して、例えば表示制御部263と協働し、動的URLのリンク先である「承認画面」を表示部204に表示する(S910)。その際、アプリケーション267は、例えば、動的URLから取得されたパラメータ(例えば、ログイン環境情報)を併せて「承認画面」において表示する。
【0124】
端末20のユーザは、例えば、「承認画面」においてログイン環境情報を確認することにより、ログインリクエストの送信元が確かに当該ユーザの登録端末20またはPC30であることを確認できる。なお、「承認画面」においてユーザに送信元の確認を促すために表示するログイン環境情報のような情報の提示形態は任意の形態であってよい。
【0125】
例えば、文字情報に限らず、画像情報(静止画像か動画像かは問わない)またはオーディオ情報といった非文字情報が、「承認画面」において追加的または代替的に適用されもよいし、あらゆる種類の強調提示形態が少なくとも部分的に適用されてもよい。ユーザによる送信元の確認が視覚的、聴覚的、または知覚的に容易な提示形態が「承認画面」の提示において適用されてよい。
【0126】
上述した送信元の確認を経て、ユーザは、ログイン処理の実行を承認する場合、「承認画面」において承認操作を行う。承認操作の一例は、「承認画面」に表示された「承認ボタン」のタップまたは押下であり得る。
【0127】
「承認画面」における承認操作が例えば承認操作検出部2671において検出された場合(S911においてYES)、端末20のアプリケーション267は、例えば、承認メッセージ生成部2672によって承認メッセージを生成する。また、承認メッセージ生成部2672は、例えば、動的URLから取得された会員IDに対応する文字列(例えば、署名鍵)を文字列管理部2611から取得し、当該署名鍵による電子署名を承認メッセージに付す。
【0128】
電子署名付きの承認メッセージは、例えば、アプリケーション267から通信制御部262および送信部202を経由して、サーバ10宛に送信される(S912)。サーバ10は、例えば、承認メッセージを受信部101において受信し、例えば、通信制御部152による制御下において、受信した承認メッセージを検証処理部156によって検証する(S913)。
【0129】
例えば、検証処理部156は、セッション管理部1521において管理されているセッションIDに対応する会員IDを基に文字列管理部1511(例えば、アカウント情報50)から検証鍵を取得し、承認メッセージの電子署名を検証鍵によって正常に復号できるかを検証する。検証に成功した場合、S904において暫定的な判別の対象であった端末20がS901において会員登録処理を行った登録端末20に相違ないこと(真正性)が確認される。別言すると、不確定性を有する仮判別による不確定性が除去される。
【0130】
検証の成功に応答して(S915においてYES)、サーバ10は、例えば、サービス実行部157において、端末20またはPC30からリクエストされたログイン処理を実行する(S916aまたはS916b)。
【0131】
一方、承認メッセージの検証が成功しなかった場合(S915においてNO)、サーバ10は、例えばサービス実行部157において、ログイン処理を実行せず、ログインリクエストの送信元(端末20またはPC30)に対してログイン失敗処理を行う(S917)。
【0132】
ログイン失敗処理の非限定的な一例としては、ログインに失敗したことを示すメッセージをログインリクエストの送信元(端末20またはPC30)に送信して表示させることが挙げられる(S918aまたはS918b)。なお、S911において承認操作が登録端末20において検出されなかった場合(S911においてNO)についても、S915においてサーバ10は検証が失敗したと判断してログイン失敗処理を実行してよい。
【0133】
承認操作が検出されないことは、例えば、登録端末20から明示的なメッセージによってサーバ10に通知されてよい(S914)。追加的または代替的に、サーバ10において登録端末20から何らのメッセージも所定の期間内に受信されない(別言すると、タイムアウトした)ことをもって、承認操作が検出されないとサーバ10において判断されてもよい。
【0134】
なお、上述した検証処理において、登録端末20は、S910において表示した「承認画面」の表示内容に関連したパラメータ(例えば、URL、または、S907bにおいて読み取った二次元コードなど)を承認メッセージと共にまたは別にサーバ10へ通知してもよい。
【0135】
サーバ10は、登録端末20から通知されたパラメータが、サーバ10において生成して端末20またはPC30へ送信したパラメータと一致するかを確認することによって、「承認画面」の表示内容の完全性を確認してよい。
【0136】
このような完全性の確認によって、例えば、「承認画面」の表示内容が改竄されていないかをサーバ10において検証することが可能であり、セキュリティ強度がさらに高められる。なお、「承認画面」の表示内容が第三者に改竄された場合のように不完全性が検知された場合、サーバ10は、例えば、上述したログイン失敗処理を実施してよい。
【0137】
以上のように、上述した動作例では、サーバ10においてログインリクエスト毎に動的に生成された動的URLのリンク先である「承認画面」に対する所定の承認操作によって初めてログイン処理が実行される。動的URLは、例えば、登録端末20の表示画面を「承認画面」に遷移させるURLに対し、フィッシングサイトにリアルタイムに投影することが困難な動的な情報要素(例えば、ログインリクエスト毎に割り当てられるセッションID)を加えることで生成される。
【0138】
そのため、フィッシングサイトを構築するには、ログインリクエスト毎に動的に変化するURLをフィッシングサイトにリアルタイムに組み込む必要がある。したがって、フィッシングサイト構築の困難性が格段に増加し、これにより、フィッシングに対するセキュリティ強度が向上する。
【0139】
また、上述した動作例においては、動的URLに、登録端末20のアプリケーション267を起動するURLスキームが記述されるため、例えば、アプリケーション267内に「二次元コード」の読み取り機能を個別的に構築する必要がない。例えば、登録端末20は、動的URLに記述されたパラメータ(例えば、会員ID、セッションID、ログイン環境情報等)のアプリケーション267に対する受け渡しによって「承認画面」の表示処理を完結できる。
【0140】
なお、「二次元コード」を用いてログイン承認を行う一般的な機能は、「二次元コード」の読み取り機能を独自開発したアプリケーション内に構築することで成立する。そのため、アプリケーション267内に「二次元コード」の読み取り機能を個別的に構築する必要がないことは、実現容易性、汎用性といった観点において有利である。
【0141】
また、プッシュ通知等によってアプリケーションを起動する方法に比べて、「二次元コード」の読み取り、または「遷移ボタン」に対するタップ(または押下)といった選択操作は、登録端末20において実施される。
【0142】
別言すると、「承認画面」に対する承認操作は、ログインリクエストの送信元が登録端末20であるか、登録端末20とは異なるPC30であるか、に関わらず、登録端末20によって一元的に実施される。
【0143】
ログインリクエストの送信元がPC30の場合、登録端末20は、「二次元コード」を読み取るため、PC30に物理的に近い場所に位置する。ログインリクエストを行ったPC30に対して物理的に近い場所に位置する登録端末20に限って「承認画面」に対する承認操作が許容されるので、フィッシングに対するセキュリティ強度がさらに向上する。
【0144】
さらに、上述した動作例では、登録端末20での承認操作に対し、会員登録処理において登録端末20およびサーバ10において事前に共有した文字列を用いて検証処理がサーバ10において実施される。したがって、動的URLのリンク先である「承認画面」を表示した端末20が会員登録に使用された端末20に相違ないこと(真正性)を保証できる。
【0145】
別言すると、検証処理の前の段階では、「遷移ボタン」および「二次元コード」の何れを生成して送信するかの暫定的で不確定性を有する仮判別がサーバ10において許容される。そのため、ログインリクエストの送信元が登録端末20に制限されない。したがって、登録端末20以外の端末(例えば、PC30)を使用したサーバ10に対するログインも許容されるので、ユーザの利便性向上にも資する。
【0146】
なお、上述した実施形態では、PC30において表示された「二次元コード」を登録端末20によって読み取る例について説明したが、逆に、端末20において表示された「二次元コード」をPC30によって読み取るようにしてもよい。例えば、カメラを備えたPC30が登録端末である場合に、携帯端末20において表示された「二次元コード」をPC30のカメラに近付けて読み取らせるようにしてもよい。
【0147】
また、上述した実施形態では、ウェブサービスの利用に関するリクエスト(または、要求)の一例として「ログイン」についてのリクエストを例に挙げた。本開示はこれに限られず、ログインとは異なるサービス利用(ログイン後のサービス利用が含まれ得る)の場面におけるリクエストに対して上述した実施形態が適用されてもよい。
【0148】
<変形例>
例えば、ログイン以外のサービスを承認する用途の場合、上述した実施形態において、動的パラメータには、サービスの内容に関する情報が含まれてもよい。例えば、インターネットバンキングにおける取引内容(例えば、振込内容)に関する情報が、ログイン環境情報に追加してまたは代替して動的パラメータに用いられてもよい。別言すると、本実施形態において、サービスの利用に関するリクエストには、ログインリクエストに限らず、サービスの取引内容に応じたリクエストが含まれてよい。動的パラメータに取引内容に関する情報を用いる場合、「承認画面」において取引内容に関する情報がログイン環境情報に追加してまたは代替して表示されてもよい。
【0149】
また、動的URLの生成において用いられるパラメータまたは情報の一部または全部は、例えば、UAを改竄した二次元コードを偽装するといった不正を防止することを目的に、サーバ10において所定の規則に従って暗号化、変換または加工されてよい。
【0150】
例えば、パラメータまたは情報の一部または全部は、端末20において正規のアプリケーションに限って復号が可能な形式に暗号化されてよい。追加的または代替的に、例えば、ログインIDは、1対1に紐付いた代替番号に置換されてもよい(例えば、ログインID=abc@smbc.co.jpを、システムID=xyz123に変換するなど)。
【0151】
追加的または代替的に、予めサーバ10と端末アプリケーションとの間において共有された規則に従って、ダミーの文字(または文字列)、数字および/または記号を、サーバ10において動的URLの生成に用いるパラメータまたは情報に混ぜることとしてもよい。例えば、「Safari」の文字列にダミーの文字「x」を1文字おきに混ぜることとして「Sxaxfxaxrxi」に変換するなどしてもよい。
【0152】
追加的または代替的に、予めサーバ10と端末アプリケーションとの間において共有された規則に従って、パラメータまたは情報の構成要素(例えば、文字列)の順番を入れ替える(別言すると、スクランブルする)こととしてもよい。例えば、前掲の「Sxaxfxaxrxi」を「axSxrxaxixf」にスクランブルしてもよい。
【0153】
上述のようなパラメータまたは情報の暗号化、変換または加工がサーバ10において実施される場合、端末20においては、例えば、処理部206(例えば、アプリケーション起動部266)において、パラメータまたは情報の規則に従った復号、逆変換、復元といった解読処理が実施されてよい。
【0154】
<ハードウェア構成例>
図10は、上述したサーバ10、端末20、または、PC30として機能するコンピュータ500のハードウェア構成例を示すブロック図である。
図10に例示するように、コンピュータ500は、中央演算処理装置(CPU)5001、メモリ5002、記憶装置5003、入力装置5004、出力装置5005、および、通信装置5006を備え得る。これらの構成要素は、例えば、バス5007によって相互通信可能に接続される。
【0155】
なお、
図10において、「装置」という用語は、回路、デバイス、ユニットといった他の用語に相互に読み替えられてもよい。コンピュータ500のハードウェア構成は、
図10に例示した各装置を1つまたは複数含むように構成されてもよいし、一部の装置を含まずに構成されてもよい。
【0156】
コンピュータ500における各機能は、例えば、CPU5001が、メモリ5002または記憶装置5003からプログラム(またはアプリケーション。以下において同様)やプログラムの実行に伴って用いられるデータを読み込んで実行することによって実現される。CPU5001は、シングルコアCPUでもよいし、マルチコアCPUでもよい。
【0157】
プログラムは、例えば、CPU5001が読み込んで実行することによって上述した実施形態において説明したサーバ10、端末20、または、PC30としての機能または動作の少なくとも一部をコンピュータ500に実行させる命令を含み得る。
【0158】
例えば、
図4、
図7または
図8に例示した機能的な各部は、CPU5001が、
図2、
図3、および、
図9を用いて説明した動作例を具現する命令を含んだプログラムを実行することによって実現されると理解されてよい。
【0159】
なお、プログラムは、例えば、記憶装置5003に予め記憶されていてもよいし、コンピュータ読み取り可能な記憶媒体、またはネットワーク40(別言すると、電気通信回線)を通じてコンピュータ500において受信されてもよい。また、プログラムは、コンピュータ500のOSの一部として組み込まれてもよい。
【0160】
メモリ5002および記憶装置5003は、何れもコンピュータ読み取り可能な記憶媒体の一例である。メモリ5002は、例えば、ROM(Read Only Memory)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically Erasable Programmable ROM)、RAM(Random Access Memory)といった記憶媒体の少なくとも1つによって構成されてよい。
【0161】
記憶装置5003は、例えば、CD-ROM(Compact Disc ROM)のような光ディスク、ハードディスクドライブ、フレキシブルディスク、光磁気ディスク(例えば、コンパクトディスク、Blu-ray(登録商標)ディスク)、フラッシュメモリといった記憶媒体の少なくとも1つによって構成されてよい。
【0162】
入力装置5004は、外部機器からの入力を受け付ける入力デバイス(例えば、キーボード、マウス、マイクロフォン、スイッチ、ボタン、センサ、カメラ205等)に相当し得る。出力装置5005は、外部機器への出力を実施する出力デバイス(例えば、ディスプレイ104、204または304、スピーカ等)に相当し得る。なお、入力装置5004および出力装置5005は、例えば、タッチパネルのように一体化された構成であってもよい。
【0163】
通信装置5006は、有線および無線のネットワークの一方または双方を介して外部機器(例えば、通信相手としてのサーバ10、端末20、または、PC30)と通信するためのハードウェアデバイスの一例である。通信装置5006は、例えば、ネットワークデバイス、ネットワークコントローラ、ネットワークカード、または、通信モジュール等と称されてもよい。
【0164】
上述した包括的または具体的な態様は、システム、装置、方法、集積回路、コンピュータプログラム、または、記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラム、および、記憶媒体等のあらゆる組み合わせにおいて実現されてもよい。
【0165】
以上、例示的な実施形態を参照しながら本開示を説明したが、本開示の要旨を逸脱することなく、構成および細部において変更する様々な実施形態が実現可能である。
【符号の説明】
【0166】
10 サーバ
101 受信部
102 送信部
103 記憶部
104 表示部
105 処理部
151 アカウント管理部
1511 文字列管理部
152 通信制御部
1521 セッション管理部
153 表示制御部
154 判別部
155 生成部
1551 動的リンク生成部
1552 ボタン生成部
1553 二次元コード生成部
156 検証処理部
157 サービス実行部
20 携帯端末
201 受信部
202 送信部
203 記憶部
204 表示部
205 カメラ
206 処理部
261 アカウント管理部
2611 文字列管理部
262 通信制御部
263 表示制御部
264 サービスリクエスト生成部
265 リンク選択操作検出部
266 アプリケーション起動部
267 アプリケーション
2671 承認操作検出部
2672 承認メッセージ生成部
30 PC
301 受信部
302 送信部
303 記憶部
304 表示部
305 処理部
351 通信制御部
352 表示制御部
353 サービスリクエスト生成部
354 二次元コード検出部
40 ネットワーク
50 アカウント情報
5001 中央演算処理装置(CPU)
5002 メモリ
5003 記憶装置
5004 入力装置
5005 出力装置
5006 通信装置
5007 バス
【要約】
【課題】フィッシングに対するセキュリティ強度を高める。
【解決手段】サーバ10は、ウェブサービスの利用に関するリクエストに対して動的に関連付いた動的パラメータに基づいて、リクエストについての承認操作を促す承認画面への動的なリンク情報を生成し、リンク情報をリクエストの送信元へ送信する。
【選択図】
図2