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

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

▶ 楽天株式会社の特許一覧

特許7408882認証システム、認証装置、認証方法、及びプログラム
<>
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図1
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図2
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図3
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図4
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図5
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図6
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図7
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図8
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図9
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図10
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図11
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図12
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図13
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図14
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図15
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図16
  • 特許-認証システム、認証装置、認証方法、及びプログラム 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-22
(45)【発行日】2024-01-05
(54)【発明の名称】認証システム、認証装置、認証方法、及びプログラム
(51)【国際特許分類】
   G06F 21/31 20130101AFI20231225BHJP
   G06F 21/32 20130101ALI20231225BHJP
   H04L 9/16 20060101ALI20231225BHJP
【FI】
G06F21/31
G06F21/32
H04L9/16
【請求項の数】 9
(21)【出願番号】P 2023540796
(86)(22)【出願日】2021-12-29
(86)【国際出願番号】 JP2021049015
(87)【国際公開番号】W WO2023127160
(87)【国際公開日】2023-07-06
【審査請求日】2023-07-03
【早期審査対象出願】
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】蔡 永男
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2004-318691(JP,A)
【文献】特開2002-259343(JP,A)
【文献】特開2003-338814(JP,A)
【文献】特開2007-156785(JP,A)
【文献】特開平05-102961(JP,A)
【文献】特開平09-083506(JP,A)
【文献】特許第2689383(JP,B2)
【文献】特開2006-340296(JP,A)
【文献】特表2001-524771(JP,A)
【文献】特開2006-238273(JP,A)
【文献】特開2002-290397(JP,A)
【文献】DAVIES, D. W. and PRICE, W. L.,ネットワーク・セキュリティ,pp.136-138,日経マグロウヒル社,1985年12月05日
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/31
G06F 21/32
H04L 9/16
(57)【特許請求の範囲】
【請求項1】
ユーザのユーザ装置と、前記ユーザが所定のサービスにログインするための多要素認証を実行する認証装置と、を含む認証システムであって、
前記ユーザ装置は、
生体情報とは異なる認証情報であって、前記ユーザが前記サービスにログインするたびに更新される前記認証情報を変換するための変換情報として、前記変換情報が取得される第1取得時点が属する第1取得期間の日及び時間帯に応じた前記変換情報を取得する変換情報取得部と、
前記変換情報に基づいて、前記認証情報を変換する変換部と、
前記認証装置に対し、変換後の前記認証情報と、前記生体情報と、前記第1取得期間の分及び秒に関する第1取得期間情報と、を送信する情報送信部と、
を含み、
前記認証装置は、
前記ユーザ装置から、前記変換後の認証情報と、前記生体情報と、前記第1取得期間情報と、を受信する情報受信部と、
前記第1取得期間情報に基づいて、前記変換後の認証情報を逆変換するための逆変換情報であって、前記第1取得期間の日及び時間帯に応じた前記逆変換情報を取得する逆変換情報取得部と、
前記逆変換情報に基づいて、前記変換後の認証情報を逆変換する逆変換部と、
前記逆変換部により逆変換された前記認証情報と、前記生体情報と、に基づいて、前記多要素認証を実行する多要素認証部と、
を含む認証システム。
【請求項2】
ユーザのユーザ装置と、前記ユーザが所定のサービスにログインするための多要素認証を実行する認証装置と、を含む認証システムであって、
前記ユーザ装置は、
生体情報とは異なる認証情報であって、前記ユーザが前記サービスにログインするたびに更新される前記認証情報を変換するための変換情報として、前記変換情報が取得される第1取得時点が属する第1取得期間の時間帯に応じた前記変換情報を取得する変換情報取得部と、
前記変換情報に基づいて、前記認証情報を変換する変換部と、
前記認証装置に対し、変換後の前記認証情報と、前記生体情報と、を送信し、前記第1取得期間の前記時間帯の終了間際になった場合には、前記認証装置に対し、前記第1取得期間に関する第1取得期間情報を更に送信する情報送信部と、
を含み、
前記認証装置は、
前記ユーザ装置から、前記変換後の認証情報と、前記生体情報と、を受信し、前記終了間際になった場合には、前記ユーザ装置から、前記第1取得期間情報を更に受信する情報受信部と、
前記変換後の認証情報を逆変換するための逆変換情報を取得し、前記終了間際になった場合には、前記第1取得期間情報に基づいて、前記逆変換情報を取得する逆変換情報取得部と、
前記逆変換情報に基づいて、前記変換後の認証情報を逆変換する逆変換部と、
前記逆変換部により逆変換された前記認証情報と、前記生体情報と、に基づいて、前記多要素認証を実行する多要素認証部と、
を含む認証システム。
【請求項3】
ユーザのユーザ装置と、前記ユーザが所定のサービスにログインするための多要素認証を実行する認証装置と、を含む認証システムであって、
前記ユーザ装置は、
生体情報とは異なる認証情報であって、前記ユーザが前記サービスにログインするたびに更新される前記認証情報を変換するための変換情報として、前記変換情報が取得される第1取得時点が属する第1取得期間に応じた前記変換情報を取得する変換情報取得部と、
前記変換情報に基づいて、前記認証情報を変換する変換部と、
前記認証装置に対し、変換後の前記認証情報と、前記生体情報と、前記第1取得期間に関する第1取得期間情報と、を送信する情報送信部と、
を含み、
前記認証システムは、複数の期間の各々と、前記変換後の認証情報を逆変換するための逆変換情報と、を関連付けて管理する管理装置を更に含み、
前記認証装置は、
前記ユーザ装置から、前記変換後の認証情報と、前記生体情報と、前記第1取得期間情報と、を受信する情報受信部と、
前記管理装置に対し、前記逆変換情報を要求する逆変換情報要求部と、
を含み、
前記管理装置は、前記認証装置からの要求を受け付けた場合の時点が属する期間に応じた前記逆変換情報を送信し、
前記管理装置は、前記認証装置からの要求を受け付けた場合の時点が前記第1取得期間よりも後の第2取得期間である場合に、前記認証装置に対し、前記第1取得期間に応じた前記逆変換情報と、前記第2取得期間に応じた前記逆変換情報と、を含む複数の前記逆変換情報を送信し、
前記認証装置は、
前記第1取得期間情報に基づいて、前記複数の逆変換情報の中から、前記第1取得期間に応じた前記逆変換情報を取得する逆変換情報取得部と、
前記第1取得期間に応じた前記逆変換情報に基づいて、前記変換後の認証情報を逆変換する逆変換部と、
前記逆変換部により逆変換された前記認証情報と、前記生体情報と、に基づいて、前記多要素認証を実行する多要素認証部と、
を更に含む認証システム。
【請求項4】
ユーザのユーザ装置と、前記ユーザが所定のサービスにログインするための多要素認証を実行する認証装置と、を含む認証システムであって、
前記ユーザ装置は、
生体情報とは異なる認証情報であって、前記ユーザが前記サービスにログインするたびに更新される前記認証情報を変換するための変換情報を取得する変換情報取得部と、
複数の変換方法の中から、前記認証情報が変換される第1変換時点が属する第1変換期間に応じた前記変換方法を選択する変換方法選択部と、
前記変換情報に基づいて、前記変換方法選択部により選択された前記変換方法で前記認証情報を変換する変換部と、
前記認証装置に対し、変換後の前記認証情報と、前記生体情報と、を送信する情報送信部と、
を含み、
前記認証装置は、
前記ユーザ装置から、前記変換後の認証情報と、前記生体情報と、を受信する情報受信部と、
前記変換後の認証情報を逆変換するための逆変換情報を取得する逆変換情報取得部と、
複数の逆変換方法の中から、前記第1変換期間に応じた前記逆変換方法を選択する逆変換方法選択部と、
前記逆変換情報に基づいて、前記逆変換方法選択部により選択された逆変換方法で前記変換後の認証情報を逆変換する逆変換部と、
前記逆変換部により逆変換された前記認証情報と、前記生体情報と、に基づいて、前記多要素認証を実行する多要素認証部と、
を含み、
前記情報送信部は、前記第1変換期間の時間帯の終了間際になった場合には、前記認証装置に対し、前記第1変換期間に関する第1期間情報を更に送信し、
前記情報受信部は、前記終了間際になった場合には、前記ユーザ装置から、前記第1期間情報を更に受信し、
前記逆変換方法選択部は、前記終了間際になった場合には、前記第1期間情報に基づいて、前記第1変換期間に応じた前記逆変換方法を選択する、
認証システム。
【請求項5】
ユーザのユーザ装置と、前記ユーザが所定のサービスにログインするための多要素認証を実行する認証装置と、を含む認証システムであって、
前記認証システムは、
選択装置と、前記ユーザ装置から所定の生成要求が受け付けられた場合に、所定の識別情報と、変換情報及び逆変換情報と、を生成して互いに関連付ける関連付け部と、
を更に含み、
前記ユーザ装置は、
生体情報とは異なる認証情報であって、前記ユーザが前記サービスにログインするたびに更新される前記認証情報を変換するための前記変換情報を取得する変換情報取得部と、
前記識別情報を取得する識別情報取得部と、
前記識別情報に基づいて、前記選択装置に対し、前記認証情報の変換方法の選択を要求する変換方法要求部と、
を含み、
前記選択装置は、前記ユーザ装置からの要求が受け付けられた場合に、前記ユーザ装置に対し、複数の前記変換方法のうちの何れかの選択結果を送信する第1送信部を含み、
前記ユーザ装置は、
前記選択装置による選択結果に基づいて、複数の変換方法のうちの何れかを選択する変換方法選択部と、
前記変換情報に基づいて、前記変換方法選択部により選択された前記変換方法で前記認証情報を変換する変換部と、
前記認証装置に対し、変換後の前記認証情報と、前記生体情報と、前記識別情報と、を送信する情報送信部と、
を含み、
前記認証装置は、
前記ユーザ装置から、前記変換後の認証情報と、前記生体情報と、前記識別情報と、を受信する情報受信部と、
前記選択装置に対し、前記識別情報に基づいて、前記逆変換方法の選択を要求する逆変換方法要求部と、
を含み、
前記選択装置は、前記認証装置からの要求が受け付けられた場合に、前記認証装置に対し、複数の前記逆変換方法のうちの何れかの選択結果を送信する第2送信部を更に含み、
前記認証装置は、
前記選択装置による選択結果に基づいて、複数の前記逆変換方法の中から、前記変換方法選択部により選択された前記変換方法に対応する前記逆変換方法を選択する逆変換方法選択部と、
前記変換後の認証情報を逆変換するための前記逆変換情報を取得する逆変換情報取得部と、
前記逆変換情報に基づいて、前記変換方法選択部により選択された前記変換方法で前記変換後の認証情報を変換する逆変換部と、
前記逆変換部により逆変換された前記認証情報と、前記生体情報と、に基づいて、前記多要素認証を実行する多要素認証部と、
を更に含む認証システム。
【請求項6】
ユーザのユーザ装置と、前記ユーザが所定のサービスにログインするための多要素認証を実行する認証装置であって、
前記ユーザ装置から、生体情報とは異なる認証情報であって、前記ユーザが前記サービスにログインするたびに更新される前記認証情報を変換するための変換情報として、前記変換情報が取得される第1取得時点が属する第1取得期間の日及び時間帯に応じた前記変換情報による変換後の前記認証情報と、前記生体情報と、前記第1取得期間の分及び秒に関する第1取得期間情報と、を受信する情報受信部と、
前記第1取得期間情報に基づいて、前記変換後の認証情報を逆変換するための逆変換情報であって、前記第1取得期間の日及び時間帯に応じた前記逆変換情報を取得する逆変換情報取得部と、
前記逆変換情報に基づいて、前記変換後の認証情報を逆変換する逆変換部と、
前記逆変換部により逆変換された前記認証情報と、前記生体情報と、に基づいて、前記多要素認証を実行する多要素認証部と、
を含む認証装置。
【請求項7】
ユーザのユーザ装置と、前記ユーザが所定のサービスにログインするための多要素認証を実行する認証装置と、を利用した認証方法であって、
前記ユーザ装置は、
生体情報とは異なる認証情報であって、前記ユーザが前記サービスにログインするたびに更新される前記認証情報を変換するための変換情報として、前記変換情報が取得される第1取得時点が属する第1取得期間の日及び時間帯に応じた前記変換情報を取得する変換情報取得ステップと、
前記変換情報に基づいて、前記認証情報を変換する変換ステップと、
前記認証装置に対し、変換後の前記認証情報と、前記生体情報と、前記第1取得期間の分及び秒に関する第1取得期間情報と、を送信する情報送信ステップと、
を実行し、
前記認証装置は、
前記ユーザ装置から、前記変換後の認証情報と、前記生体情報と、前記第1取得期間情報と、を受信する情報受信部ステップ、
前記第1取得期間情報に基づいて、前記変換後の認証情報を逆変換するための逆変換情報であって、前記第1取得期間の日及び時間帯に応じた前記逆変換情報を取得する逆変換情報取得ステップと、
前記逆変換情報に基づいて、前記変換後の認証情報を逆変換する逆変換ステップと、
前記逆変換部により逆変換された前記認証情報と、前記生体情報と、に基づいて、前記多要素認証を実行する多要素認証ステップと、
を実行する認証方法。
【請求項8】
ユーザが所定のサービスにログインするための多要素認証を実行する認証装置と通信可能なユーザ装置を、
生体情報とは異なる認証情報であって、前記ユーザが前記サービスにログインするたびに更新される前記認証情報を変換するための変換情報として、前記変換情報が取得される第1取得時点が属する第1取得期間の日及び時間帯に応じた前記変換情報を取得する変換情報取得部、
前記変換情報に基づいて、前記認証情報を変換する変換部、
前記認証装置に対し、変換後の前記認証情報と、前記生体情報と、前記第1取得期間の分及び秒に関する第1取得期間情報と、を送信する情報送信部、
として機能させるためのプログラム。
【請求項9】
ユーザのユーザ装置と通信可能であり、前記ユーザが所定のサービスにログインするための多要素認証を実行する認証装置を、
前記ユーザ装置から、生体情報とは異なる認証情報であって、前記ユーザが前記サービスにログインするたびに更新される前記認証情報を変換するための変換情報であって、前記変換情報が取得される第1取得時点が属する第1取得期間の日及び時間帯に応じた前記変換情報による変換後の認証情報と、前記生体情報と、前記第1取得期間の分及び秒に関する第1取得期間情報と、を受信する情報受信部、
前記第1取得期間情報に基づいて、前記変換後の認証情報を逆変換するための逆変換情報であって、前記第1取得期間の日及び時間帯に応じた前記逆変換情報を取得する逆変換情報取得部、
前記逆変換情報に基づいて、前記変換後の認証情報を逆変換する逆変換部、
前記逆変換部により逆変換された前記認証情報と、前記生体情報と、に基づいて、前記多要素認証を実行する多要素認証部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、認証システム、認証方法、及びプログラムに関する。
【背景技術】
【0002】
従来、複数の要素を組み合わせた認証方式である多要素認証が知られている。例えば、特許文献1には、ユーザが入力したユーザIDと、ユーザIDに基づいて生成されたユーザパラメータで変換した生体情報と、を利用した多要素認証が記載されている。特許文献2には、多要素認証ではないが、ランダムに生成されたソルトに基づいて、生体情報を変換して生体認証を実行することが記載されている。特許文献3には、生体認証が成功した場合に、ユーザを識別可能なネットワークアカウントと、公開鍵及び秘密鍵と、を利用したチャレンジアンドレスポンスを実行する多要素認証が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第4966765号公報
【文献】特許第6866803号公報
【文献】再公表2020-85141号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1では、ユーザパラメータを生成するために、ユーザIDがネットワーク上に送信され、悪意のある第三者にユーザIDが盗まれる可能性があるので、多要素認証におけるセキュリティを十分に高めることができない。特許文献2の技術は、そもそも多要素認証を想定していない。特許文献3の技術は、生体認証が成功した後に、ネットワークアカウントがネットワーク上に送信され、悪意のある第三者にネットワークアカウントが盗まれる可能性があるので、多要素認証におけるセキュリティを十分に高めることができない。
【0005】
本開示の目的の1つは、多要素認証におけるセキュリティを高めることである。
【課題を解決するための手段】
【0006】
本開示の一態様に係る認証システムは、ユーザ装置及び認証装置を含む認証システムであって、前記ユーザ装置は、生体情報とは異なる認証情報を変換するための変換情報を取得する変換情報取得部と、前記変換情報に基づいて、前記認証情報を変換する変換部と、前記認証装置に対し、変換後の前記認証情報と、前記生体情報と、を送信する情報送信部と、を含み、前記認証装置は、前記ユーザ装置から、前記変換後の認証情報と、前記生体情報と、を受信する情報受信部と、前記変換後の認証情報を逆変換するための逆変換情報を取得する逆変換情報取得部と、前記逆変換情報に基づいて、前記変換後の認証情報を逆変換する逆変換部と、前記逆変換部により逆変換された前記認証情報と、前記生体情報と、に基づいて、多要素認証を実行する多要素認証部と、を含む。
【発明の効果】
【0007】
本開示によれば、多要素認証におけるセキュリティが高まる。
【図面の簡単な説明】
【0008】
図1】認証システムの全体構成の一例を示す図である。
図2】第1実施形態における多要素認証の流れの一例を示す図である。
図3】第1実施形態の認証システムで実現される機能の一例を示す機能ブロック図である。
図4】ソルトデータベースの一例を示す図である。
図5】ユーザデータベースの一例を示す図である。
図6】第1実施形態の認証システムで実行される処理の一例を示す図である。
図7】第1実施形態の認証システムで実行される処理の一例を示す図である。
図8】第2実施形態における多要素認証の流れの一例を示す図である。
図9】第3実施形態における多要素認証の流れの一例を示す図である。
図10】第3実施形態の認証システムで実現される機能ブロックの一例を示す図である。
図11】第4実施形態における多要素認証の流れの一例を示す図である。
図12】第4実施形態の認証システムで実現される機能ブロックの一例を示す図である。
図13】第5実施形態における多要素認証の流れの一例を示す図である。
図14】第6実施形態における認証システムの全体構成の一例を示す図である。
図15】第6実施形態における多要素認証の流れの一例を示す図である。
図16】第6実施形態の認証システムで実現される機能ブロックの一例を示す図である。
図17】変形例1における多要素認証の流れの一例を示す図である。
【発明を実施するための形態】
【0009】
[1.第1実施形態]
本開示に係る認証システムの実施形態の例である第1実施形態を説明する。
【0010】
[1-1.認証システムの全体構成]
図1は、認証システムの全体構成の一例を示す図である。図1に示すように、認証システムSは、ソルトサーバ10、認証サーバ20、及びユーザPC30を含む。ソルトサーバ10、認証サーバ20、及びユーザPC30は、インターネット又はLAN等のネットワークNに接続可能である。認証システムSは、少なくとも1台のコンピュータを含めばよく、図1の例に限られない。
【0011】
ソルトサーバ10は、サーバコンピュータである。制御部11は、少なくとも1つのプロセッサを含む。記憶部12は、RAM等の揮発性メモリと、ハードディスク等の不揮発性メモリと、を含む。通信部13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。ソルトサーバ10は、管理装置の一例である。このため、ソルトサーバ10と記載した箇所は、管理装置と読み替えることができる。
【0012】
管理装置は、暗号理論におけるソルトを管理する装置である。ソルトは、変換対象となる情報を変換するための情報である。ソルトは、変換対象となる情報とともに、変換関数に入力される情報である。変換は、暗号化又はハッシュ化と呼ばれることもある。変換は、可逆性がある。変換後の情報は、逆変換することによって、変換前の情報に戻すことができる。ソルトを管理するとは、ソルトを記憶することである。
【0013】
ソルト自体は、公知のソルトを利用可能である。例えば、ソルトは、ランダムな値である。ソルトは、任意の形式であってよく、例えば、数字、文字、その他の記号、又はこれらの組み合わせである。管理装置は、ソルトを生成してもよいし、ソルトの生成自体は、管理装置以外の他の装置で行われてもよい。管理装置は、任意の装置であってよく、ソルトサーバ10のようなサーバコンピュータに限られない。例えば、管理装置は、パーソナルコンピュータ、タブレット端末、又はスマートフォンであってもよい。
【0014】
認証サーバ20は、サーバコンピュータである。制御部21、記憶部22、及び通信部23の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。認証サーバ20は、認証装置の一例である。このため、認証サーバ20と記載した箇所は、認証装置と読み替えることができる。
【0015】
認証装置は、認証を実行する装置である。認証は、ユーザの正当性を確認する処理である。認証装置は、種々のタイプの認証を実行可能である。例えば、認証装置は、生体認証、所持認証、知識認証、又はこれらの組み合わせを実行可能である。認証装置は、任意の装置であってよく、認証サーバ20のようなサーバコンピュータに限られない。例えば、認証装置は、パーソナルコンピュータ、タブレット端末、又はスマートフォンであってもよい。他にも例えば、認証装置は、ゲーム機、自動販売機、POS端末、又はATMといった他の装置であってもよい。
【0016】
ユーザPC30は、ユーザのパーソナルコンピュータである。制御部31、記憶部32、及び通信部33の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。操作部34は、マウス、キーボード、又はタッチパネル等の入力デバイスである。表示部35は、液晶ディスプレイ又は有機ELディスプレイである。撮影部36は、少なくとも1台のカメラを含む。ユーザPC30は、ユーザ装置の一例である。このため、ユーザPC30と記載した箇所は、ユーザ装置と読み替えることができる。
【0017】
ユーザ装置は、認証時における認証情報を取得する装置である。ユーザ装置は、ユーザが操作可能な装置である。ユーザ装置は、ユーザの所有物であってもよいし、特にユーザの所有物ではなくてもよい。ユーザ装置は、任意の装置であってよく、ユーザPC30のようなパーソナルコンピュータに限られない。例えば、ユーザ装置は、タブレット端末、スマートフォン、又はウェアラブル端末であってもよい。他にも例えば、ユーザ装置は、ゲーム機、自動販売機、POS端末、又はATMといった他の装置であってもよい。
【0018】
なお、記憶部12,22,32に記憶されるプログラムは、ネットワークNを介して供給されるようにしてもよい。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)と、外部機器とデータの入出力をするための入出力部(例えば、USBポート)と、の少なくとも一方を介して、情報記憶媒体に記憶されたプログラムが供給されてもよい。
【0019】
[1-2.第1実施形態における認証システムの概要]
認証システムSでは、ユーザの正当性を確認するために、多要素認証が実行される。多要素認証とは、複数の要素を組み合わせた認証である。第1実施形態では、2つの要素を組み合わせた2要素認証を例に挙げるが、3つ以上の要素を組み合わせた多要素認証であってもよい。要素自体は、種々の種類を利用可能であり、例えば、生体要素、所持要素、又は知識要素であってもよい。
【0020】
多要素認証では、要素に応じた認証情報が利用される。認証情報自体は、種々の種類を利用可能である。例えば、生体認証では、顔写真、顔の特徴量、指紋の写真、指紋の特徴量、静脈のスキャン画像、又は静脈の特徴量といった生体情報が認証情報に相当する。所持認証では、ワンタイムパスワード、ICカードに記録された情報、又はトークンに記録された情報といった所持情報が認証情報に相当する。知識認証では、ユーザID、パスワード、PIN、又は秘密の質問といった知識情報が認証情報に相当する。
【0021】
第1実施形態では、オンラインサービスにログインするために多要素認証が実行される場合を例に挙げるが、多要素認証は、任意の場面に適用可能である。例えば、オンラインサービスに対する申込時、電子決済の実行時、又は、オンライン上で行政手続が行われる時といった他の場面にも、多要素認証を適用可能である。オンラインサービス自体は、種々のサービスを適用可能である。例えば、金融サービス、通信サービス、決済サービス、電子商取引サービス、又はSNSがオンラインサービスに相当してもよい。
【0022】
例えば、ユーザが、オンラインサービスの利用登録をすると、オンラインサービスにログインするためのユーザID及びパスワードが発行される。ユーザは、ユーザPC30でオンラインサービスのウェブサイトにアクセスし、ユーザID及びパスワードを入力する。認証サーバ20は、ユーザが入力したユーザID及びパスワードに基づいて、ユーザの正当性を確認する。ユーザの正当性が確認されると、ユーザは、オンラインサービスにログインできる。
【0023】
ログインのたびにユーザID及びパスワードの入力が要求されると、非常に手間がかかる。このため、顔認証及びパスワード認証を組み合わせた多要素認証により、ユーザIDの入力の手間を軽減することが考えられる。しかしながら、この場合にもパスワードを入力する手間が発生する。操作部34に対する入力を発生させずに顔認証だけでユーザをログインさせると、顔が似た他のユーザとの誤認証が発生する可能性がある。3Dセンサを含む撮影部36であれば、ある程度の精度で顔認証を実行できるが、それでも誤認証が発生することがある。撮影部36が3Dセンサを含まない場合には、誤認証の確率が高まる。ユーザの顔写真を何らかの形で手に入れた第三者がユーザになりすます可能性もある。
【0024】
そこで、第1実施形態では、操作部34からの入力を発生させず、かつ、セキュリティを担保するために、ユーザがオンラインサービスにログインすると、認証サーバ20は、一時的なユーザIDを発行する。以降、この一時的なユーザIDを、TUID(Temporary User ID)という。TUIDは、ユーザを識別可能な情報である。TUIDは、所定の無効条件が満たされると無効になる。第1実施形態では、ユーザがオンラインサービスにログインすることが無効条件に相当する場合を例に挙げるが、無効条件は、任意の条件であってよい。例えば、無効条件は、所定の有効期限が経過すること、一定回数のログインが発生すること、又はユーザが所定の操作をすることであってもよい。
【0025】
認証サーバ20が発行したTUIDは、ユーザPC30に記録される。第1実施形態では、TUIDがブラウザのcookieとして記録される場合を説明するが、cookie以外の情報としてTUIDが記録されてもよい。TUIDは、表示部35に表示されてもよいが、原則としてユーザの目に触れないものとする。2回目以降のログインでは、顔認証とともに、TUIDを利用したTUID認証が実行される。TUIDが記録されたユーザPC30でなければTUID認証が成功しないので、TUID認証は、所持認証の一種である。顔認証及びTUID認証を組み合わせた多要素認証であれば、操作部34からの入力を発生させず、かつ、ある程度のセキュリティを担保できると考えられる。
【0026】
しかしながら、同じTUIDを長期間使いまわすと、悪意のある第三者に、有効なTUIDが盗まれる可能性がある。例えば、リプレイアタックによって第三者にcookieが盗まれてしまい、cookieに含まれるTUIDも盗まれる可能性がある。第三者が、TUIDだけではなく、ユーザの顔写真も何らかの形で入手したとすると、なりすましが可能になってしまう。このため、ある一定期間でTUIDを無効にすることも考えられる。
【0027】
しかしながら、TUIDがすぐに無効になると、あまり頻繁にはログインしないユーザは、ユーザID及びパスワードを毎回入力する必要があるので、ユーザの利便性が低下する。そこで、第1実施形態では、ユーザの利便性を高めつつ、第三者にTUIDを盗まれないようにするために、ソルトを利用してTUIDを変換するようにしている。ただし、同じソルトを長期間使いまわすと、第三者にソルト自体を盗まれる可能性があるので、ユーザがログインする日及び時間帯に応じたソルトが利用されるようになっている。
【0028】
図2は、第1実施形態における多要素認証の流れの一例を示す図である。図2のように、ユーザがオンラインサービスにログインする場合、ユーザPC30は、ソルトサーバ10に対し、ソルトを取得するためのソルト要求を送信する。図2の例では、getSalt()といったコマンドがソルト要求に含まれる。このコマンドは、ソルトに関する条件が含まれていないので、悪意のある第三者がソルト要求を盗み見たとしても、どのような条件でソルトが生成されているかを特定することはできない。
【0029】
ソルトサーバ10は、ソルト要求を受信すると、ソルトデータベースDB1を参照し、現在の日及び時間帯に応じたソルトを取得する。図2のように、ソルトデータベースDB1には、日及び時間帯の組み合わせごとに、ソルトが格納されている。例えば、1ヶ月を31日間として、1日の24時間を1時間ごとの時間帯で区切ったとすると、図2の例では、31×24=744通りのソルトがソルトデータベースDB1に格納されている。ソルトサーバ10が、ソルトデータベースDB1からソルトを取得する時点が「2021年12月2日01時25分34秒」だったとすると、ソルトサーバ10は、「2日」及び「01時」に応じたソルト「8414」を取得してユーザPC30に送信する。
【0030】
ユーザPC30は、ソルトサーバ10からソルト「8414」を受信すると、ソルト「8414」と、所定の変換関数fと、に基づいて、TUID「312456」を変換する。図2の例では、変換関数fは、TUID「312456」にソルト「8414」を加算する関数である。変換後のTUIDは、これらの和の「320870」になる。ユーザPC30は、撮影部36が生成したユーザの顔写真と、変換後のTUID「320870」と、を含む認証要求を、認証サーバ20に送信する。
【0031】
認証サーバ20は、認証要求を受信すると、ソルトサーバ10に対し、ソルト要求を送信する。図2の例では、ユーザPC30からソルトサーバ10に対するソルト要求と、認証サーバ20からソルトサーバ10に対するソルト要求と、は同じ形式である。このため、認証サーバ20からソルトサーバ10に対するソルト要求も、getSalt()といったように、ソルトの条件が分からないようになっている。ソルト要求の形式を共通にすることによって、ソルトサーバ10のAPIも共通化できる。
【0032】
ソルトサーバ10は、認証サーバ20からソルト要求を受信すると、ソルトデータベースDB1を参照し、現在の日及び時間帯に応じたソルトを取得する。ソルトサーバ10が、ソルトデータベースDB1からソルトを取得する時点が「2021年12月2日01時25分35秒」だったとすると、ソルトサーバ10は、「2日」及び「01時」に応じたソルト「8414」を、認証サーバ20に送信する。このソルト「8414」は、ユーザPC30に送信されたものと同じである。
【0033】
認証サーバ20は、ソルトサーバ10からソルト「8414」を受信すると、ソルト「8414」と、逆変換関数f-1と、に基づいて、ユーザPCから受信した変換後のTUID「320870」を逆変換する。図2の例では、逆変換関数f-1は、変換後のTUID「320870」からソルト「8414」を減算する関数である。認証サーバ20は、逆変換により、TUID「312456」を取得する。
【0034】
認証サーバ20は、TUID「312456」を取得すると、ユーザデータベースDB2にTUID「312456」が存在するか否かを確認する。ユーザデータベースDB2には、多要素認証における正解となる認証情報が格納されている。TUID「312456」の存在有無を確認する処理は、TUID認証に相当する。ユーザデータベースDB2にTUID「312456」が格納されていなければ、その時点でエラーとなり、ユーザはログインできない。
【0035】
認証サーバ20は、TUID「312456」がユーザデータベースDB2に存在することを確認すると、TUID「312456」に関連付けられてユーザデータベースDB2に格納された顔の特徴量を取得する。認証サーバ20は、当該取得された顔の特徴量と、ユーザPC30から受信した顔写真から計算した顔の特徴量と、に基づいて、顔認証を実行する。認証サーバ20は、顔認証が成功すると、ユーザPC30に対し、多要素認証が成功したことを示す認証結果を送信する。ユーザPC30は、この認証結果を受信すると、オンラインサービスにログインした状態になる。
【0036】
なお、認証サーバ20は、ユーザがログインした場合に、新たなTUIDを発行し、ユーザデータベースDB2に格納してもよい。即ち、認証サーバ20は、ユーザがログインするたびに、TUIDを更新してもよい。新たなTUIDが「417632」だったとすると、認証サーバ20は、ユーザPC30に対し、新たなTUID「417632」を含む認証結果を送信すればよい。新たなTUID「417632」は、ソルトサーバ10から受信済みのソルト「8414」で変換されてもよい。この場合、認証サーバ20は、新たなTUIDを変換するための変換関数を記憶し、ユーザPC30は、変換後の新たなTUIDを逆変換するための逆変換関数f-1を記憶しているものとする。この逆変換でも、ソルトサーバ10から受信済みのソルト「8414」が利用されてもよい。
【0037】
以上のように、第1実施形態の認証システムSは、ユーザがログインする時の日及び時間帯の組み合わせに応じたソルトに基づいて、TUIDを変換したり、変換後のTUIDを逆変換したりする。これにより、TUIDがそのままネットワークN上に送信されないので、第三者は、TUIDを簡単に入手できないようになる。このため、多要素認証におけるセキュリティが高まるようになっている。以降、第1実施形態の認証システムSの詳細を説明する。
【0038】
[1-3.第1実施形態の認証システムで実現される機能]
図3は、第1実施形態の認証システムSで実現される機能の一例を示す機能ブロック図である。
【0039】
[1-3-1.ソルトサーバにおいて実現される機能]
データ記憶部100は、記憶部12を主として実現される。ソルト生成部101、ソルト要求受信部102、及びソルト送信部103は、制御部11を主として実現される。
【0040】
[データ記憶部]
データ記憶部100は、ソルトを管理するために必要なデータを記憶する。例えば、データ記憶部100は、ソルトデータベースDB1を記憶する。
【0041】
図4は、ソルトデータベースDB1の一例を示す図である。ソルトデータベースDB1は、ソルトが格納されたデータベースである。例えば、ソルトデータベースDB1には、日及び時間帯の組み合わせごとに、ソルトが格納される。即ち、ソルトデータベースDB1には、日及び時間帯の組み合わせと、ソルトと、が関連付けられている。ソルトデータベースDB1に格納されるソルトは、予め定められたタイミングで更新されてもよい。
【0042】
図4の例では、過去の日及び時間で利用されたソルトと、未来の日及び時間で利用される予定のソルトと、も格納される場合を説明するが、現在の日及び時間で利用されるソルトだけがソルトデータベースDB1に格納されてもよい。例えば、現時点が「2021年12月2日01:25:34」だったとすると、「2日」及び「01時」のソルトだけがソルトデータベースDB1に格納されてもよい。この場合、「2021年12月2日02:00:00」になると、「2日」及び「02時」のソルトだけがソルトデータベースDB1に格納される。
【0043】
なお、データ記憶部100は、ソルトデータベースDB1以外の他の任意のデータを記憶可能である。例えば、データ記憶部100は、ソルトを生成するためのアルゴリズムを記憶してもよい。データ記憶部100は、認証サーバ20及びユーザPC30とソルトのやりとりをするためのAPIに関するデータを記憶してもよい。第1実施形態では、認証サーバ20及びユーザPC30から同じ形式のソルト要求を受け付けることができるように、認証サーバ20及びユーザPC30で共通のAPIとするが、認証サーバ20用のAPIと、ユーザPC30用のAPIと、が異なってもよい。
【0044】
[ソルト生成部]
ソルト生成部101は、所定のアルゴリズムに基づいて、ソルトを生成する。例えば、ソルト生成部101は、ランダムな値になるように、ソルトを生成する。ランダムな値を生成する方法自体は、公知の種々の方法を利用可能である。例えば、ソルト生成時のタイムスタンプを利用する方法であってもよいし、タイムスタンプ以外の他のデータを利用する方法であってもよい。ソルト生成部101は、ソルトデータベースDB1に、生成したソルトを格納する。
【0045】
第1実施形態では、ソルト生成部101は、将来の日及び時間帯の組み合わせごとに、ソルトを生成する。ソルト生成部101は、この組み合わせと、生成したソルトと、を関連付けてソルトデータベースDB1に格納する。ソルト生成部101は、所定のタイミングで、ソルトデータベースDB1に格納されたソルトを更新してもよい。このタイミングは、任意のタイミングであってよく、例えば、ある月の初日、ある週の初日、又は1日の始まりといったタイミングであってもよい。
【0046】
第1実施形態では、TUIDの変換と、変換後のTUIDの逆変換と、で同じソルトが利用される場合を例に挙げる。このため、ソルトは、変換情報の一例であり、逆変換情報の一例でもある。ソルトと記載した箇所は、変換情報と読み替えることができる。ソルトと記載した箇所は、逆変換情報と読み替えることもできる。変換情報は、暗号理論における暗号鍵である。逆変換情報は、暗号理論における復号鍵である。第1実施形態では、変換情報及び逆変換情報が互いに同じなので、変換情報及び逆変換情報は、暗号理論における共通鍵に相当する。
【0047】
変換情報及び逆変換情報は、互いに異なってもよい。例えば、変換情報は、暗号理論における公開鍵であり、逆変換情報は、暗号理論における秘密鍵であってもよい。逆に、変換情報は、暗号理論における秘密鍵であり、逆変換情報は、暗号理論における公開鍵であってもよい。変換情報及び逆変換情報が互いに異なる場合、ソルトデータベースDB1には、変換情報及び逆変換情報の両方が格納される。これら両方のうちの変換情報がユーザPC30に送信され、逆変換情報が認証サーバ20に送信される。第1実施形態のように、日及び時間帯の組み合わせに応じた変換情報及び逆変換情報にするのであれば、ソルトデータベースDB1には、日及び時間帯の組み合わせごとに、変換情報及び逆変換情報の組み合わせが格納される。
【0048】
[ソルト要求受信部]
ソルト要求受信部102は、認証サーバ20及びユーザPC30の各々からソルト要求を受信する。ソルト要求は、ソルトを要求するために送信される所定形式の情報である。図2では、getSalt()といったコマンドを含むソルト要求を例に挙げたが、ソルト要求は、ソルトが要求されたことを示す情報であればよい。第1実施形態では、認証サーバ20からのソルト要求と、ユーザPC30からのソルト要求と、が同じ形式である場合を説明するが、これらの形式は、互いに異なってもよい。
【0049】
[ソルト送信部]
ソルト送信部103は、認証サーバ20及びユーザPC30の各々に対し、ソルトを送信する。第1実施形態では、ソルト送信部103は、認証サーバ20及びユーザPC30の各々に対し、ソルトが取得される時点であるソルト取得時点が属する日及び時間帯に応じたソルトを送信する。ソルト取得時点は、ソルト要求が受信されてからソルトが送信されるまでの間の時点であればよい。ソルト送信部103は、ソルトデータベースDB1を参照し、ソルト取得時点が属する日及び時間帯の組み合わせを特定する。ソルト送信部103は、認証サーバ20及びユーザPC30の各々に対し、当該特定した組み合わせに関連付けられたソルトを送信する。
【0050】
なお、図3では、1つのソルト送信部103だけを示しているが、ユーザPC30に対するソルトの送信と、認証サーバ20に対するソルトの送信と、を別々の機能として捉えることもできる。このため、ソルト送信部103が、ユーザPC30からのソルト要求が受け付けられた場合に、ユーザPC30に対し、ソルトを送信する第1ソルト送信部103Aと、認証サーバ20からのソルト要求が受け付けられた場合に、認証サーバ20に対し、ソルトを送信する第2ソルト送信部103Bと、を含むと捉えることもできる。ユーザPC30に対するソルトの送信手順と、認証サーバ20に対するソルトの送信手順と、が異なる場合には、第1ソルト送信部103Aは、ユーザPC30に対するソルトの送信手順に沿って、ユーザPC30に対し、ソルトを送信すればよい。第2ソルト送信部103Bは、認証サーバ20に対するソルトの送信手順に沿って、認証サーバ20に対し、ソルトを送信すればよい。
【0051】
[1-3-2.認証サーバにおいて実現される機能]
データ記憶部200は、記憶部22を主として実現される。情報受信部201、ソルト要求部202、ソルト取得部203、逆変換部204、多要素認証部205、TUID生成部206、及び認証結果送信部207が実現される。
【0052】
[データ記憶部]
データ記憶部200は、多要素認証に必要なデータを記憶する。例えば、データ記憶部200は、ユーザデータベースDB2を記憶する。
【0053】
図5は、ユーザデータベースDB2の一例を示す図である。ユーザデータベースDB2は、ユーザに関する情報が格納されたデータベースである。例えば、ユーザデータベースDB2には、ユーザID、パスワード、氏名、TUID、顔写真、及び顔の特徴量が格納される。ユーザデータベースDB2に格納される情報は、任意の種類であってよく、図5の例に限られない。例えば、ユーザPC30とのセッションを維持するためのセッションID、ユーザによる過去のログイン履歴、又はユーザによるオンラインサービスの利用履歴がユーザデータベースDB2に格納されてもよい。
【0054】
顔写真は、生体情報の一例である。TUIDは、生体情報とは異なる認証情報の一例である。このため、顔写真について説明している箇所は、生体情報と読み替えることができる。TUIDについて説明している箇所は、生体情報とは異なる認証情報と読み替えることができる。生体情報と、生体情報とは異なる認証情報と、の組み合わせは、任意の組み合わせであってよい。この組み合わせは、多要素認証における要素の組み合わせである。
【0055】
生体情報は、生体認証で利用される情報である。生体情報自体は、種々の情報であってよく、例えば、顔の特徴量が生体情報に相当してもよい。顔の特徴量が変換されたテンプレートと呼ばれる情報が生体情報に相当してもよい。顔認証以外の生体認証が利用される場合には、生体認証に応じた生体情報が利用されるようにすればよい。他の生体情報の例は、先述した通りである。生体情報とは異なる認証情報は、生体情報とともに多要素認証で利用される情報である。この認証情報は、所持情報又は知識情報である。3要素以上の多要素認証であれば、生体情報とは異なる認証情報は、複数存在してもよい。
【0056】
なお、データ記憶部200は、ユーザデータベースDB2以外の他の任意のデータを記憶可能である。例えば、データ記憶部200は、逆変換関数f-1を記憶してもよい。例えば、データ記憶部200は、TUIDを生成するアルゴリズムを記憶してもよい。
【0057】
[情報受信部]
情報受信部201は、ユーザPC30から、変換後のTUIDと、顔写真と、を受信する。顔写真を受信するとは、顔が撮影された画像の画像データを受信することである。顔写真は、静止画であってもよいし、動画に含まれる個々のフレームであってもよい。第1実施形態では、変換後のTUIDと、顔写真と、が認証要求に含まれる場合を例に挙げる。このため、情報受信部201は、ユーザPC30から認証要求を受信することによって、変換後のTUIDと、顔写真と、を受信する。認証要求は、多要素認証を実行するための要求である。認証要求は、所定の形式の情報が送信されることにより行われるようにすればよい。認証要求は、他の情報が含まれてもよい。例えば、認証要求には、ユーザPC30のIPアドレスといったように、ユーザPC30を識別可能な情報が含まれてもよい。
【0058】
[ソルト要求部]
ソルト要求部202は、ソルトサーバ10に対し、ソルトを要求する。ソルトを要求するためのソルト要求については、先述した通りである。第1実施形態では、ソルト要求部202は、ソルトサーバ10に対し、ソルトの取得ルールに関する情報を含まないソルト要求を送信する。例えば、日及び時間帯の組み合わせに応じたソルトが取得される場合、取得ルールは、日及び時間帯の組み合わせとなる。ソルト要求には、日及び時間帯の情報は含まれないので、取得ルールに関する情報が含まれない。
【0059】
取得ルールに関する情報がソルト要求に含まれない点は、他の取得ルールを採用する場合も同様である。例えば、時間帯を考慮せずに日ごとに異なるソルトにする場合には、取得ルールは、日のみとなる。ソルト要求には、日に関する情報は含まれないので、取得ルールに関する情報が含まれない。例えば、日を考慮せずに時間帯ごとに異なるソルトにする場合には、取得ルールは、時間帯のみとなる。ソルト要求には、時間帯に関する情報は含まれないので、取得ルールに関する情報が含まれない。
【0060】
なお、ソルト要求には、ソルトの取得ルールが含まれてもよい。例えば、ソルトを生成するための種となる情報がソルト要求に含まれてもよい。この場合、種が同じでなければ同じソルトにはならないので、認証サーバ20及びユーザPC30の間で、ソルトを生成した種が共有されるものとする。例えば、後述の第2実施形態のように、ソルトの取得ルールの一部(第2実施形態では、TUIDの下2桁)がソルト要求に含まれてもよい。
【0061】
[ソルト取得部]
ソルト取得部203は、変換後のTUIDを逆変換するためのソルトを取得する。このソルトは、逆変換情報の一例である。ソルト取得部203は、逆変換情報取得部の一例である。このため、ソルト取得部203について説明している箇所は、逆変換情報取得部と読み替えることができる。逆変換情報取得部は、ソルトを一例とする逆変換情報を取得する。逆変換情報がソルト以外の名前で呼ばれる場合には、逆変換情報取得部は、この名前に応じた名前で呼ばれてよい。例えば、逆変換情報が鍵と呼ばれる場合には、逆変換情報取得部は、鍵を取得する。
【0062】
第1実施形態では、ソルトサーバ10がソルトを管理するので、ソルト取得部203は、ソルトサーバ10からソルトを取得する。ソルトは、認証サーバ20自身が管理してもよい。即ち、認証サーバ20が管理装置に相当してもよい。この場合、データ記憶部200は、ソルトデータベースDB1を記憶する。更に、この場合、ソルトサーバ10で実現されるものとして説明したソルト生成部101、ソルト要求受信部102、及びソルト送信部103は、認証サーバ20により実現される。
【0063】
第1実施形態では、ソルト取得部203は、日及び時間帯の組み合わせに応じたソルトを取得する。日及び時間帯の組み合わせは、第1取得期間の一例である。このため、日及び時間帯の組み合わせについて説明している箇所は、第1取得期間と読み替えることができる。第1取得期間は、ソルトが取得される第1取得時点が属する期間である。第1実施形態では、第1取得期間が日及び時間帯の組み合わせで示される場合を例に挙げるが、第1取得期間は、日だけを意味してもよいし、時間帯だけを意味してもよい。
【0064】
第1取得期間の区切り方は、第1実施形態のような1時間単位に限られない。個々の期間の長さは、1時間よりも長くてもよいし短くてもよい。ある期間と他の期間の長さが異なってもよい。第1取得期間が日及び時間帯の組み合わせ以外の他の意味だったとしても、ソルト取得部203は、第1取得期間に応じたソルトを取得すればよい。個々の期間と、ソルトと、の関係は、ソルトデータベースDB1に格納されているものとする。ソルト取得部203は、第1取得期間に応じたソルトを取得すればよい。
【0065】
[逆変換部]
逆変換部204は、ソルト取得部203により取得されたソルトに基づいて、変換後のTUIDを逆変換する。逆変換は、暗号理論における復号化である。逆変換のための逆変換関数f-1は、データ記憶部200に記憶されているものとする。逆変換部204は、逆変換情報の一例であるソルトに基づいて、変換後のTUIDを逆変換関数f-1で逆変換する。図2の例であれば、逆変換部204は、変換後のTUIDからソルトを減算することによって、変換後のTUIDを逆変換してTUIDを取得する。
【0066】
なお、逆変換自体は、種々の逆変換関数f-1を利用可能であり、図2のような減算に限られない。例えば、加算、乗算、除算、行列変換、その他の計算、又はこれらの組み合わせにより、逆変換が行われてもよい。図2の例では、説明の簡略化のために、変換関数f及び逆変換関数f-1がそれぞれ単純な加算及び減算である場合を示しているが、実際には、ある程度複雑な計算式であるものとする。
【0067】
[多要素認証部]
多要素認証部205は、逆変換部204により逆変換されたTUIDと、情報受信部201が受信した顔写真と、に基づいて、多要素認証を実行する。先述したように、多要素認証自体は、種々の種類を利用可能である。第1実施形態では、多要素認証部205は、ユーザデータベースDB2を参照し、逆変換部204により逆変換されたTUIDに関連付けられた顔の特徴量を取得する。この顔の特徴量は、多要素認証における正解となる認証情報である。ユーザデータベースDB2に格納された顔の特徴量のうち、逆変換部204により逆変換されたTUIDに関連付けられた顔の特徴量だけが比較対象となる。他の顔の特徴量は、比較対象にならない。
【0068】
多要素認証部205は、情報受信部201が受信した顔写真に基づいて、顔の特徴量を計算する。顔の特徴量の計算方法自体は、種々の計算方法を利用可能である。例えば、コントラストフィルタ又は主成分分析を利用した計算方法により、顔の特徴量が計算されてもよい。顔の特徴量は、多次元ベクトル、配列、又は単一の数値といった任意の形式で表現可能である。顔認証は、顔の特徴量同士を比較するものではなく、2枚の顔写真を機械学習モデルに入力して類否を判定するタイプのものであってもよい。
【0069】
多要素認証部205は、ユーザデータベースDB2から取得した顔の特徴量と、情報受信部201が受信した顔写真から計算した顔の特徴量と、の類否を判定する。例えば、顔の特徴量が多次元ベクトルで表現される場合、ベクトル空間上における顔の特徴量の距離が閾値未満であることは、特徴量が類似することに相当する。多要素認証部205は、顔の特徴量が互いに類似する場合、多要素認証が成功したと判定する。多要素認証部205は、顔の特徴量が互いに類似しない場合、多要素認証が失敗したと判定する。
【0070】
[TUID生成部]
TUID生成部206は、所定のアルゴリズムに基づいて、TUIDを生成する。TUID生成部206は、ユーザPC30にTUIDが存在しない場合に、ユーザPC30に新たに記録するTUIDを生成する。TUID生成部206は、ユーザPC30にTUIDが存在する状態で、このTUIDに代えてユーザPC30に書き込むTUID(更新後のTUID)を生成する。
【0071】
例えば、TUID生成部206は、ランダムな値になるように、TUIDを生成する。ランダムな値を生成する方法自体は、公知の種々の方法を利用可能である。例えば、TUID生成時のタイムスタンプを利用する方法であってもよいし、タイムスタンプ以外の他のデータを利用する方法であってもよい。TUID生成部206は、ユーザデータベースDB2に、生成したTUIDを格納する。
【0072】
TUID生成部206は、他のユーザのTUIDと重複しないように、TUIDを生成してもよい。TUID生成部206は、顔が似ていない他のユーザのTUIDとの重複は許可するが、顔が似た他のユーザのTUIDと重複しないように、TUIDを生成してもよい。TUID生成部206は、多要素認証が成功した場合に、TUIDを生成してもよい。即ち、TUID生成部206は、ユーザがオンラインサービスにログインするたびに、TUIDを生成してもよい。1回目のログインであれば、TUID生成部206は、ユーザID及びパスワードの認証が成功した場合に、TUIDを生成する。
【0073】
なお、TUIDが生成されるタイミングは、任意のタイミングであってよく、第1実施形態の例に限られない。例えば、1回のログインだけでTUIDが無効になるのではなくい、2回以上の所定回数だけ同じTUIDを有効にする場合には、TUID生成部206は、当該所定回数のログインが発生するたびに、TUIDを生成してもよい。例えば、TUIDに有効期限を設ける場合には、TUID生成部206は、有効期限が近づいた時にユーザがログインした場合に、TUIDを生成してもよい。
【0074】
[認証結果送信部]
認証結果送信部207は、ユーザPC30に対し、多要素認証の認証結果を送信する。認証結果は、多要素認証が成功したか否かを示す所定の形式の情報である。例えば、認証結果は、ログインが許可されたか否かが示される。第1実施形態では、ログインのタイミングで新たなTUIDが生成されるので、認証結果には、TUIDが生成したTUIDが含まれる。
【0075】
なお、多要素認証が成功すると、所定の処理の実行が許可される。第1実施形態では、この処理の一例として、オンラインサービスへのログインを説明するが、この処理は、多要素認証が成功したことを条件として許可される処理であればよい。この処理は、認証システムSを適用する場面に応じて定めればよい。例えば、金融サービスに認証システムSを適用する場合には、振込の実行が所定の処理に相当してもよい。例えば、決済サービスに認証システムSを適用する場合には、決済の実行が所定の処理に相当してもよい。例えば、電子商取引サービスに認証システムSを適用する場合には、商品の購入が所定の処理に相当してもよい。所定の処理は、他の任意の処理であってよい。
【0076】
[1-3-3.ユーザPCにおいて実現される機能]
データ記憶部300は、記憶部32を主として実現される。ソルト要求部301、ソルト取得部302、変換部303、情報送信部304、及び認証結果受信部305は、制御部31を主として実現される。
【0077】
[データ記憶部]
データ記憶部300は、多要素認証に必要なデータを記憶する。例えば、データ記憶部300は、TUID及び変換関数fを記憶する。ユーザの顔写真を生成するために撮影部36を利用しない場合には、データ記憶部300は、ユーザの顔写真の画像データを記憶してもよい。例えば、オンラインサービス用のアプリケーションが用意されている場合には、データ記憶部300は、このアプリケーションを記憶してもよい。
【0078】
[ソルト要求部]
ソルト要求部301は、ソルトサーバ10に対し、ソルトを要求する。ソルトを要求するためのソルト要求については、先述した通りである。第1実施形態では、ソルト要求部301は、ソルトサーバ10に対し、ソルトの取得ルールに関する情報を含まないソルト要求を送信する。この点は、認証サーバ20のソルト要求部202と同様である。ソルト要求に関する他の点についても、ソルト要求部202の処理で説明した通りである。
【0079】
第1実施形態では、ソルト要求部301は、撮影部36により顔写真が生成された場合に、ソルトサーバ10に対し、ソルトを要求する。ソルト要求部301は、任意のタイミングでソルトを要求すればよく、顔写真が生成されたタイミングに限られない。例えば、ソルト要求部301は、オンラインサービス用のアプリケーションが起動したタイミング、ユーザがログインをするための操作をしたタイミング、又はオンラインサービスのウェブサイトへのアクセスが発生したタイミングで、ソルトを要求してもよい。
【0080】
[ソルト取得部]
ソルト取得部302は、顔写真とは異なるTUIDを変換するためのソルトを取得する。第1実施形態では、ソルトサーバ10からユーザPC30へのソルトの取得と、ソルトサーバ10から認証サーバ20へのソルトの取得と、が同じ手順で行われるので、ソルト要求部301の処理は、認証サーバ20のソルト要求部202の処理と同様である。このため、ソルトサーバ10からソルトを取得する点、ソルトが取得される第1取得時点が属する第1取得期間に応じたソルトを取得する点、日及び時間帯の組み合わせに応じたソルトを取得する点についても同様である。
【0081】
[変換部]
変換部303は、ソルトに基づいて、TUIDを変換する。変換は、暗号理論における暗号化である。変換は、TUIDに対して何らかの変更がなされるものであればよい。例えば、TUIDを何らかの関数に入力すること、TUIDの一部を変更すること、TUIDの全部を変更すること、TUIDに対して何らかの情報を付加すること、又はTUIDの一部を削除することが変換に相当する。逆変換は、これらの逆方向の処理(TUIDを元に戻す処理)であればよい。
【0082】
変換のための変換関数fは、データ記憶部300に記憶されているものとする。変換部303は、変換情報の一例であるソルトに基づいて、変換前のTUIDを変換関数fで変換する。図2の例であれば、変換部303は、変換前のTUIDにソルトを加算することによって、変換前のTUIDを変換し、変換後のTUIDを取得する。変換自体は、種々の変換関数を利用可能であり、図2のような加算に限られない。例えば、減算、乗算、除算、行列変換、その他の計算、又はこれらの組み合わせにより、変換が行われてもよい。
【0083】
[情報送信部]
情報送信部304は、認証サーバ20に対し、変換後のTUIDと、顔写真と、を送信する。第1実施形態では、変換後のTUIDと、顔写真と、が認証要求に含まれる場合を例に挙げる。このため、情報送信部304は、認証サーバ20に対し、変換後のTUIDと、顔写真と、を含む認証要求を送信することによって、変換後のTUIDと、顔写真と、を送信する。情報送信部304は、変換後のTUIDと、顔写真と、を1つのデータにまとめて送信しなくてもよい。情報送信部304は、変換後のTUIDと、顔写真と、を別々に送信してもよい。なお、顔写真もそのまま送信されるのではなく、ソルト又は他の暗号鍵に基づいて変換されてもよい。ユーザPC30側で顔の特徴量が計算されて、当該計算された顔の特徴量が生体情報として送信されてもよい。
【0084】
[認証結果受信部]
認証結果受信部305は、認証サーバ20から、認証結果を受信する。この認証結果が成功を示す場合、ユーザがオンラインサービスにログインする。即ち、先述した所定の処理の実行が許可される。新たなTUIDが認証結果に含まれている場合、認証結果受信部305は、認証結果に含まれるTUIDをデータ記憶部300に記録する。それまでに記録されていた古いTUIDは、データ記憶部300から破棄される。
【0085】
[1-4.第1実施形態の認証システムで実行される処理]
図6及び図7は、第1実施形態の認証システムSで実行される処理の一例を示す図である。制御部11,21,31がそれぞれ記憶部12,22,32に記憶されたプログラムを実行することによって、図6及び図7の処理が実行される。図6及び図7の処理が実行されるにあたり、ユーザのユーザID及びパスワードが発行済みであるものとする。また、ソルトデータベースDB1にソルトが格納済みであるものとする。
【0086】
図6のように、ユーザPC30は、オンラインサービスのアプリケーションを起動させ、記憶部32にTUIDがあるか否かを判定する(S1)。TUIDがないと判定された場合(S1;N)、ユーザPC30は、操作部34の検出信号に基づいて、ユーザによるユーザID及びパスワードの入力を受け付ける(S2)。認証サーバ20及びユーザPC30の間で、オンラインサービスにログインするためのログイン処理が実行される(S3)。S3では、ユーザデータベースDB2に基づいて、ユーザID及びパスワードの正当性が確認される。ログインが成功すると、認証サーバ20は、新たなTUIDを発行し(S4)、ユーザPC30に対し、新たなTUIDを含む認証結果を送信する(S5)。
【0087】
ユーザPC30は、認証結果を受信すると(S6)、認証結果に含まれるTUIDを記憶部32に記録し(S7)、本処理は終了する。S7において、TUIDは、cookieの一部として記録されてもよい。その後、ユーザPC30は、ユーザにオンラインサービスを利用させるための処理を実行する。ユーザがオンラインサービスからログアウトするための操作をすると、認証サーバ20及びユーザPC30の間で、オンラインサービスからログアウトするためのログアウト処理が実行される。
【0088】
S1において、TUIDがあると判定された場合(S1;Y)、ユーザPC30は、撮影部36に基づいて、ユーザの顔を撮影して顔写真を生成する(S8)。ユーザPC30は、ソルトサーバ10に対し、ソルト要求を送信する(S9)。ソルトサーバ10は、ソルト要求を受信すると(S10)、ソルトデータベースDB1に基づいて、ユーザPC30に対し、現在の日及び時間帯に応じたソルトを送信する(S11)。ユーザPC30は、ソルトサーバ10からソルトを受信すると(S12)、このソルトに基づいて、記憶部32に記憶されたTUIDを変換する(S13)。
【0089】
図7に移り、ユーザPC30は、認証サーバ20に対し、S13における変換後のTUIDと、S8で生成した顔写真と、を含む認証要求を送信する(S14)。認証サーバ20は、認証要求を受信すると(S15)、ソルトサーバ10に対し、ソルト要求を送信する(S16)。ソルトサーバ10は、ソルト要求を受信すると(S17)、ソルトデータベースDB1に基づいて、認証サーバ20に対し、現在の日及び時間帯に応じたソルトを送信する(S18)。
【0090】
認証サーバ20は、ソルトサーバ10からソルトを受信すると(S19)、このソルトに基づいて、S15で受信した認証要求に含まれる変換後のTUIDを逆変換する(S20)。認証サーバ20は、S20で逆変換されたTUIDと、S15で受信した認証要求に含まれる顔写真と、に基づいて、多要素認証を実行する(S21)。S21では、認証サーバ20は、ユーザデータベースDB2に基づいて、S20で逆変換されたTUIDに関連付けられた顔の特徴量を取得する。認証サーバ20は、S15で受信した顔写真に基づいて、顔の特徴量を計算する。認証サーバ20は、当該取得された顔の特徴量の類似度が閾値以上であるか否かを判定する。TUIDがユーザデータベースDB2に存在し、顔の特徴量の類似度が閾値以上である場合に、多要素認証が成功する。
【0091】
認証サーバ20は、多要素認証が成功したか否かを判定する(S22)。多要素認証が失敗した場合(S22;N)、本処理は終了する。この場合、ユーザID及びパスワードの入力が要求されてもよい。多要素認証が成功した場合(S22;Y)、オンラインサービスへのユーザのログインが許可され、S4の処理に移行する。S4以降の処理により、ユーザPC30のTUIDが更新される。
【0092】
第1実施形態の認証システムSによれば、ユーザPC30は、顔写真とは異なるTUIDを変換するためのソルトに基づいて、TUIDを変換し、認証サーバ20に対し、変換後のTUIDと、顔写真と、を送信する。認証サーバ20は、変換後のTUIDを逆変換するためのソルトに基づいて、変換後のTUIDを逆変換し、当該逆変換されたTUIDと、顔写真と、に基づいて、多要素認証を実行する。これにより、変換後のTUIDがネットワーク上に送信され、第三者にTUIDが取得されないので、多要素認証におけるセキュリティが高まる。
【0093】
また、認証システムSは、ソルトが取得される第1取得時点が属する第1取得期間に応じたソルトを取得する。これにより、ソルトが有効な期間に制限を設けることができる。第三者がソルトを取得したとしても、このソルトを利用できる期間が制限されているので、多要素認証におけるセキュリティが高まる。
【0094】
また、認証システムSは、日及び時間帯の組み合わせに応じたソルトを取得する。これにより、ソルトが有効な期間を時間帯単位で設定することができるので、ソルトが有効な期間を比較的短くすることができる。第三者がソルトを取得したとしても、このソルトを利用できる期間が短いので、多要素認証におけるセキュリティが効果的に高まる。
【0095】
また、認証システムSは、ソルトを管理するソルトサーバ10を含み、ソルトサーバ10は、認証サーバ20及びユーザPC30に対し、ソルトを送信する。これにより、認証サーバ20がソルトを管理しなくてすむので、多要素認証における処理負荷を分散させることができる。即ち、ソルトサーバ10及び認証サーバ20で多要素認証に必要な処理を分散することができる。このため、認証サーバ20の処理負荷を軽減できる。
【0096】
また、認証システムSは、ソルトサーバ10に対し、ソルトの取得ルールに関する情報を含まない要求を送信する。これにより、悪意のある第三者がソルト要求を盗んだとしても、TUIDの変換の仕組みを解読されにくくなる。例えば、日及び時間帯に応じたソルトが取得されていたとしても、ソルト要求だけでは、この取得ルールを把握することができないので、多要素認証におけるセキュリティがより高まる。
【0097】
[2.第2実施形態]
第1実施形態では、日及び時間帯に応じたソルトが利用される場合を説明した。ソルトの取得方法は、第1実施形態の例に限られない。第2実施形態では、ソルトが取得される日と、TUIDの一部と、の組み合わせに応じたソルトが利用される場合を説明する。以降の第2実施形態~第6実施形態では、第1実施形態と同様の点については説明を省略する。
【0098】
図8は、第2実施形態における多要素認証の流れの一例を示す図である。図8のように、大まかな流れは、第1実施形態と同様であるが、ソルトの取得方法が第1実施形態とは異なる。例えば、ソルトデータベースDB1には、日及びTUIDの下2桁の組み合わせごとに、ソルトが格納されている。ユーザPC30は、ソルトサーバ10に対し、TUID「312400」の下2桁「00」を含むソルト要求を送信する。悪意のある第三者は、TUIDの下2桁を盗んだとしても、TUID自体を盗むことはできないし、「00」の数値だけではソルトの取得ルールを把握することもできない。
【0099】
ソルトサーバ10は、ソルト要求を受信すると、ソルトデータベースDB1を参照し、現在の日と、ソルト要求に含まれるTUIDの下2桁と、の組み合わせに応じたソルトを取得する。図8の例では、ソルトサーバ10がユーザPC30からソルト要求を受信した日である「2日」と、TUIDの下2桁である「00」と、に応じたソルト「6435」を、ユーザPC30に送信する。
【0100】
ユーザPC30は、ソルトサーバ10からソルト「6435」を受信すると、このソルト「6435」に基づいて、TUID「312400」を変換する。図8の例では、TUIDの上4桁「3124」にソルト「6435」を加算した「9559」の後に、TUIDの下2桁「00」を付加する変換関数fが利用されるので、変換後のTUIDは、「955900」になる。ユーザPC30は、撮影部36が生成したユーザの顔写真と、変換後のTUID「955900」と、を含む認証要求を、認証サーバ20に送信する。
【0101】
認証サーバ20は、認証要求を受信すると、ソルトサーバ10に対し、変換後のTUID「955900」のうちの下2桁「00」を含むソルト要求を送信する。ソルトサーバ10は、ソルト要求を受信すると、ソルトデータベースDB1を参照し、現在の日である「2日」と、ソルト要求に含まれるTUIDの下2桁である「00」と、の組み合わせに応じたソルト「6435」を、認証サーバ20に送信する。
【0102】
認証サーバ20は、ソルトサーバ10からソルト「6435」を受信すると、このソルト「6435」に基づいて、ユーザPCから受信した変換後のTUID「955900」を逆変換する。図8の例では、変換後のTUID「955900」のうちの上4桁「9559」からソルト「6435」を減算した値の後に、変換後のTUIDの下2桁「00」を付加する変換関数f-1が利用される。認証サーバ20は、逆変換により、TUIDの上4桁「3124」を取得する。認証サーバ20は、TUIDの上4桁「3124」に対し、TUIDの下2桁「00」を付加し、TUID「312400」を取得する。以降の多要素認証の流れは、第1実施形態と同様である。
【0103】
第2実施形態の機能ブロックは、第1実施形態と同様である。ソルト取得部203,302は、TUIDの下2桁に応じたソルトを取得する。TUIDの下2桁は、TUIDの一部分の一例である。このため、TUIDの下2桁について説明している箇所は、TUIDの一部分と読み替えることができる。TUIDの一部分は、任意の部分であってよく、TUIDの下2桁に限られない。例えば、TUIDの上1桁であってもよいし、TUIDの2桁目~4桁目であってもよい。TUIDの一部分は、TUIDの上1桁と下1桁といったように、連続した桁でなくてもよい。TUIDの一部分の長さも任意の長さであってよい。
【0104】
第2実施形態では、ソルト取得部203,302は、ソルトが取得される日と、TUIDの下2桁と、の組み合わせに応じたソルトを取得する場合を説明するが、ソルト取得部203,302は、日は関係なく、TUIDの下2桁に応じたソルトを取得してもよい。この場合、ソルトデータベースDB1には、TUIDの下2桁の候補ごとに、ソルトが定義されているものとする。他にも例えば、ソルト取得部203,302は、日は関係なく、ソルトが取得される時間帯と、TUIDの下2桁との組み合わせに応じたソルトを取得してもよい。この場合、ソルトデータベースDB1には、この組み合わせごとに、ソルトが定義されているものとする。第1実施形態及び第2実施形態を組み合わせて、ソルト取得部203,302は、日、時間帯、及びTUIDの下2桁といった3つの組み合わせに応じたソルトを取得してもよい。この場合、ソルトデータベースDB1には、これら3つの組み合わせごとに、ソルトが定義されているものとする。
【0105】
情報送信部304は、認証サーバ20に対し、変換部303により変換されていないTUIDの下2桁を更に送信する。この下2桁は、暗号理論における平文に相当する。第2実施形態では、この下2桁が、変換済みのTUIDの下2桁として含まれる場合を説明するが、この下2桁は、変換済みのTUIDとは別の情報として送信されてもよい。この下2桁を変換済みのTUIDに含めて送信する場合であったとしても、元の位置(下2桁)とは異なる位置(例えば、上2桁)に付加してもよい。この下2桁は、未変換の一部分の一例である。このため、この下2桁について説明している箇所は、未変換の一部分と読み替えることができる。この一部分は、下2桁に限られない点は、先述した通りである。
【0106】
情報受信部201は、ユーザPC30から、未変換のTUIDの下2桁を更に受信する。第2実施形態では、未変換のTUIDの下2桁が変換済みのTUIDの一部として含まれているため、情報受信部201は、変換済みのTUIDを受信することによって、未変換のTUIDの下2桁を受信する。未変換のTUIDの下2桁が変換済みのTUIDとは異なる情報として送信される場合には、情報受信部201は、当該異なる情報として送信された未変換のTUIDの下2桁を受信すればよい。ソルト取得部203は、未変換のTUIDの下2桁に応じたソルトを取得する。ソルト取得部203によるソルトの取得方法は、ソルト取得部302によるソルトの取得方法と同様である。
【0107】
第2実施形態の認証システムSによれば、ユーザPC30は、TUIDの下2桁に応じたソルトを取得し、未変換のTUIDの下2桁を送信する。認証サーバ20は、ユーザPC30から、未変換のTUIDの下2桁を受信し、未変換のTUIDの下2桁に対応するソルトを取得する。これにより、変換後のTUIDがネットワーク上に送信され、第三者がTUIDを取得しにくくなるので、多要素認証におけるセキュリティが高まる。悪意のある第三者がソルト要求を盗んだとしても、TUIDの下2桁だけでは、変換の仕組みを把握するのが難しいので、多要素認証におけるセキュリティがより高まる。
【0108】
[3.第3実施形態]
ソルトの取得方法は、第1実施形態及び第2実施形態の例に限られない。第3実施形態では、ソルトを取得するために、日又は時間帯といった時間的な条件が利用されない場合を説明する。第3実施形態では、ソルトサーバ10がソルトのペアを生成し、当該生成されたペアを利用して、TUIDの変換及び逆変換が実行される。ソルトサーバ10は、3つ以上のソルトのセットを生成してもよい。
【0109】
図9は、第3実施形態における多要素認証の流れの一例を示す図である。図9のように、大まかな流れは、第1実施形態及び第2実施形態と同様であるが、ソルトの取得方法が第1実施形態とは異なる。例えば、ユーザPC30は、第1実施形態と同様にして、ソルトサーバ10に対し、ソルト要求を送信する。ソルトサーバ10は、ソルト要求を受信すると、ソルトのペア「6437」「8414」を生成してソルトデータベースDB1に格納する。
【0110】
第3実施形態では、ソルトサーバ10は、ソルトデータベースDB1に予めソルトを格納するのではなく、ソルト要求を受信したその場で動的にソルトのペアを生成する場合を説明する。ソルトのペアは、その場で動的に生成されるのではなく、ソルトデータベースDB1に多数のソルトを予め格納しておき、ソルトサーバ10が、ソルトデータベースDB1の中からソルトのペアを取得してもよい。ソルトのペアは、一定時間で自動的に削除されてもよい。
【0111】
図9の例では、ソルトサーバ10は、ソルトのペア「6437」「8414」を、ユーザPC30に送信する。ユーザPC30は、ソルトサーバ10からソルトのペア「6435」「8414」を受信すると、2つ目のソルト「8414」に基づいて、TUID「312456」を変換する。図9の例では、TUID「312456」に2つ目のソルト「8414」が加算され、変換後のTUIDは、「320870」になる。ユーザPC30は、撮影部36が生成したユーザの顔写真、1つ目のソルト「6437」、及び変換後のTUID「320870」を含む認証要求を、認証サーバ20に送信する。
【0112】
認証サーバ20は、認証要求を受信すると、ソルトサーバ10に対し、1つ目のソルト「6437」を含むソルト要求を送信する。このソルト要求は、ユーザPC30が送信するソルト要求とは異なる。このソルト要求は、ユーザPC30に送信されたソルトのペアを削除する旨のコマンドが含まれる。ソルトサーバ10は、ソルト要求を受信すると、ソルトデータベースDB1を参照し、ソルト要求に含まれる1つ目のソルト「6437」に関連付けられた2つ目のソルト「8414」を取得し、認証サーバ20に送信する。ソルトサーバ10は、ソルトデータベースDB1からソルトのペア「6437」「8414」を削除する。1つ目のソルト「6437」は、2つ目のソルト「8414」を検索するためのクエリ及びインデックスとして利用される。
【0113】
認証サーバ20は、ソルトサーバ10から2つ目のソルト「8414」を受信すると、このソルト「8414」に基づいて、ユーザPCから受信した変換後のTUID「320870」を逆変換する。図9の例では、TUID「320870」からソルト「8414」を減算する変換関数f-1が利用される。認証サーバ20は、逆変換により、TUID「312456」を取得する。以降の多要素認証の流れは、第1実施形態と同様である。
【0114】
図10は、第3実施形態の認証システムSで実現される機能ブロックの一例を示す図である。図10のように、第3実施形態では、関連付け部104及び識別情報取得部306が実現される。関連付け部104は、制御部11を主として実現される。識別情報取得部306は、制御部31を主として実現される。
【0115】
関連付け部104は、1つ目のソルトと、2つ目のソルトと、を関連付ける。ここでの関連付けるとは、一方から他方を検索可能にすることである。例えば、ソルトデータベースDB1で同じレコードに格納することは、関連付けることに相当する。1つ目のソルトは、所定の識別情報の一例である。2つ目のソルトは、変換情報及び逆変換情報の一例である。このため、1つ目のソルトについて説明している箇所は、識別情報と読み替えることができる。2つ目のソルトについて説明している箇所は、変換情報又は逆変換情報と読み替えることができる。
【0116】
識別情報は、変換情報及び逆変換情報の少なくとも一方を識別可能な情報である。識別情報は、任意の情報であってよく、1つ目のソルトに限られない。例えば、識別情報は、2つ目のソルトを生成するたびに増加又は減少する番号であってもよいし、ソルトとは異なる方法で生成したIDであってもよい。例えば、識別情報は、ユーザPC30のIPアドレス又はMACアドレスであってもよい。例えば、2つ目のソルトが識別情報に相当し、1つ目のソルトが変換情報及び逆変換情報に相当してもよい。変換情報及び逆変換情報が別々のソルトであり、識別情報は、これら別々のソルトに関連付けられた更に別のソルトであってもよい。この場合、計3つのソルトが取得される。
【0117】
例えば、関連付け部104は、ユーザPC30からソルト要求が受け付けられた場合に、1つ目のソルト及び2つ目のソルトを生成して互いに関連付ける。ソルトの生成方法自体は、第1実施形態及び第2実施形態と同様であってよい。関連付け部104は、ソルト生成部101の処理として実行されてもよい。関連付け部104は、ソルトのペアを生成し、このペアのうちの一方を1つ目のソルトとし、他方を2つ目のソルトとして、ソルトデータベースDB1に格納する。第3実施形態では、ソルト要求が生成要求の一例である。このため、ソルト要求について説明している箇所は、生成要求と読み替えることができる。生成要求は、ソルトを生成するための要求であればよく、ソルト要求に限られない。生成要求は、ソルト要求とは別の要求であってもよい。
【0118】
識別情報取得部306は、1つ目のソルトを取得する。例えば、ソルト要求に応じて1つ目のソルトが生成される場合、識別情報取得部306は、ソルト要求に応じて生成された1つ目のソルトを取得する。ソルト取得部302は、ソルト要求に応じて生成された2つ目のソルトを取得する。情報送信部304は、認証サーバ20に対し、1つ目のソルトを更に送信する。情報受信部201は、ユーザPC30から、1つ目のソルトを更に受信する。ソルト取得部302は、1つ目のソルトに関連付けられた2つ目のソルトを取得する。これらの流れは、図9で説明した通りである。
【0119】
第3実施形態の認証システムSによれば、1つ目のソルトと、2つ目のソルトと、を関連付けておき、2つ目のソルトでTUIDを変換する。1つ目のソルトは、変換後のTUIDとともに認証サーバ20に送信される。認証サーバ20は、1つ目のソルトに関連付けられた2つ目のソルトを取得し、変換後のTUIDを逆変換する。これにより、変換後のTUIDがネットワーク上に送信され、第三者がTUIDを取得しにくくなるので、多要素認証におけるセキュリティが高まる。悪意のある第三者がソルト要求を盗んだとしても、1つ目のソルトでは、変換の仕組みを把握するのが難しいので、多要素認証におけるセキュリティがより高まる。
【0120】
また、認証システムSは、ユーザPC30からソルト要求が受け付けられた場合に、1つ目のソルト及び2つ目のソルトを生成して互いに関連付ける。これにより、ソルト要求が受け付けられるたびに動的にソルトを生成できるので、同じソルトを一定期間使いまわすことがなくなり、多要素認証におけるセキュリティがより高まる。更に、ソルトサーバ10がソルトのペアをすぐに削除するようにすれば、第三者がソルトのペアを入手しにくくなるので、セキュリティがより高まる。
【0121】
[4.第4実施形態]
第1実施形態~第3実施形態では、ソルトの取得方法を工夫することによって、多要素認証におけるセキュリティを高める場合について説明した。多要素認証におけるセキュリティを高める方法は、第1実施形態~第3実施形態の例に限られない。第4実施形態では、ユーザPCは、TUIDを変換する時間帯に応じて変換関数fを使い分けることによって、多要素認証におけるセキュリティを高めるようにしている。ユーザPC30は、複数の変換関数fを予め記憶しており、何れかの変換関数fでTUIDを変換可能する。
【0122】
図11は、第4実施形態における多要素認証の流れの一例を示す図である。第4実施形態では、大まかな流れは、第1実施形態~第3実施形態と同様であってよい。図11の例では、第1実施形態と同様のソルトの取得方法を例に挙げる。ユーザPC30がソルトを取得するまでの流れは、第1実施形態と同様である。ユーザPC30は、ソルトサーバ10から、現在の日「2日」及び時間帯「01時」に応じたソルト「8414」を取得する。
【0123】
第4実施形態では、ユーザPC30は、TUIDを変換する時間帯に基づいて、変換関数fを使い分ける。例えば、ユーザPC30は、時間帯「00時」~「23時」にそれぞれ対応する変換関数f0~f23を記憶する。以降、変換関数f0~f23を区別しない時は、単に変換関数fと記載する。個々の変換関数fが示す計算方法は、互いに異なるものとする。このため、同じソルトだったとしても変換関数fが異なれば、変換後のTUIDの値も異なる。
【0124】
図11の例では、ユーザPC30は、TUIDを変換する時間帯が「01時」なので、変換関数f0~f23のうち、変換関数f1を選択する。変換関数f1は、第1実施形態の図2で説明した変換関数fと同様であるものとする。このため、ユーザPC30は、第1実施形態と同様にしてTUIDを変換し、認証サーバ20に対し、変換済みのTUIDを送信する。認証サーバ20は、変換済みのTUIDを受信すると、第1実施形態と同様にして、ソルトサーバ10からソルトを取得する。
【0125】
第4実施形態では、認証サーバ20は、TUIDを変換する時間帯に基づいて、逆変換関数f-1を使い分ける。例えば、認証サーバ20は、時間帯「00時」~「23時」にそれぞれ対応する逆変換関数f-10~f-123を記憶する。以降、逆変換関数f-10~f-123を区別しない時は、単に逆変換関数f-1と記載する。個々の逆変換関数f-1が示す計算方法は、互いに異なる。このため、同じソルトだったとしても逆変換関数f-1が異なれば、逆変換後のTUIDの値も異なる。
【0126】
個々の逆変換関数f-1が示す計算方法は、時間帯を同じとする変換関数fに対応したものになる。正確なTUIDを取得するためには、ユーザPC30が利用した変換関数fに対応した逆変換関数f-1で逆変換をする必要がある。図11の例では、TUIDを逆変換する時間帯が「01時」なので、逆変換関数f-10~f-123のうち、逆変換関数-1f1を選択する。逆変換関数f-11は、ユーザPC30が利用した変換関数f1に対応する。このため、認証サーバ20は、第1実施形態と同様にしてTUIDを変換し、正確なTUIDを取得できる。以降の多要素認証の流れは、第1実施形態と同様である。
【0127】
図12は、第4実施形態の認証システムSで実現される機能ブロックの一例を示す図である。図12のように、第4実施形態では、逆変換関数選択部208及び変換関数選択部307が実現される。逆変換関数選択部208は、制御部21を主として実現される。変換関数選択部307は、制御部31を主として実現される。
【0128】
変換関数選択部307は、複数の変換関数fのうちの何れかを選択する。変換関数fは、変換方法の一例である。このため、変換関数fについて説明している箇所は、変換方法と読み替えることができる。変換方法は、TUIDを変換する方法である。変換方法は、TUIDをどのように変換するかを定義したものであればよく、変換関数fに限られない。例えば、変換方法は、関数とは呼ばれない計算式、又は、暗号化アルゴリズムであってもよい。
【0129】
変換関数選択部307は、所定の選択方法に基づいて、複数の変換関数fのうちの何れかを選択すればよい。第4実施形態では、選択方法の一例として時間帯を利用する場合を説明する。変換関数選択部307は、時間帯に応じた変換関数fを選択する。時間帯及び変換関数fの関係は、予めデータ記憶部300に定義されているものとする。変換関数選択部307は、現在の時間帯に対応する変換関数fを選択する。第4実施形態では、時間帯が示す数値「00」~「23」と、変換関数「f0」~「f23」に含まれる数値と、が互いに対応している。
【0130】
時間帯は、第1変換期間の一例である。このため、時間帯について説明している箇所は、第1変換期間と読み替えることができる。第1変換期間は、TUIDが変換される第1変換時点が属する期間である。第1実施形態では、第1変換期間が時間帯で示される場合を説明するが、第1変換期間は、日及び時間帯の組み合わせで示されてもよいし、日だけで示されてもよい。第1変換期間が他の意味だったとしても、変換関数選択部307は、TUIDが変換される第1変換時点が属する第1変換期間に応じた変換関数fを選択する。個々の期間と、変換関数fと、の関係は、予めデータ記憶部300に定義されているものとする。第1変換期間は、第1取得期間と同様に、1時間単位に限られず、任意の長さであってよい。
【0131】
変換部303は、ソルトに基づいて、変換関数選択部307により選択された変換関数fでTUIDを変換する。変換関数選択部307により選択された変換関数fが利用される点で、第1実施形態~第3実施形態とは異なるが、他の点については同様である。
【0132】
逆変換関数選択部208は、複数の逆変換関数f-1の中から、変換関数選択部307により選択された変換関数fに対応する逆変換関数f-1を選択する。逆変換関数f-1は、逆変換方法の一例である。このため、逆変換関数f-1について説明している箇所は、逆変換方法と読み替えることができる。逆変換方法は、変換後のTUIDを逆変換する方法である。逆変換方法は、変換後のTUIDをどのように逆変換するかを定義したものであればよく、逆変換関数f-1に限られない。例えば、逆変換方法は、関数とは呼ばれない計算式、又は、復号化アルゴリズムであってもよい。
【0133】
逆変換関数選択部208は、所定の選択方法に基づいて、複数の逆変換関数f-1のうちの何れかを選択すればよい。第4実施形態では、選択方法の一例として時間帯を利用する場合を説明する。逆変換関数選択部208は、時間帯に応じた逆変換関数f-1を選択する。時間帯及び逆変換関数f-1の関係は、予めデータ記憶部200に定義されているものとする。逆変換関数選択部208は、現在の時間帯に対応する逆変換関数f-1を選択する。例えば、逆変換関数選択部208は、変換関数選択部307により選択された変換関数fに対応する逆変換関数f-1として、第1変換期間に応じた逆変換関数f-1を選択する。
【0134】
逆変換部204は、ソルトに基づいて、逆変換関数選択部208により選択された逆変換関数f-1で変換後のTUIDを逆変換する。逆変換関数選択部208により選択された逆変換関数f-1が利用される点で、第1実施形態~第3実施形態とは異なるが、他の点については同様である。
【0135】
第4実施形態の認証システムSによれば、ソルトに基づいて、複数の変換関数fの中から選択された変換関数fでTUIDを変換する。認証システムSは、ソルトに基づいて、複数の逆変換関数f-1の中から選択された逆変換関数f-1で変換後のTUIDを逆変換する。これにより、変換後のTUIDがネットワーク上に送信され、第三者がTUIDを取得しにくくなるので、多要素認証におけるセキュリティが高まる。また、変換関数fが動的に変わるので、第三者が変換の仕組みを把握しにくくなり、多要素認証におけるセキュリティがより高まる。
【0136】
また、認証システムSは、TUIDが変換される第1変換時点が属する第1変換期間に応じた変換関数fに対応する逆変換関数f-1として、第1変換期間に応じた逆変換関数f-1を選択する。これにより、変換関数fが期間に応じて変わるので、同じ変換関数fを使いまわす頻度が下がり、第三者が変換の仕組みを把握しにくくなる。
【0137】
また、認証システムSは、第1変換期間は、時間帯で示され、変換関数選択部307は、時間帯に応じた変換関数fを選択し、逆変換関数選択部208は、時間帯に応じた逆変換関数f-1を選択する。これにより、変換関数fがより短い期間に応じて変わるので、同じ変換関数fを使いまわす頻度が更に下がり、第三者が変換の仕組みを把握しにくくなる。
【0138】
[5.第5実施形態]
変換関数f及び逆変換関数f-1は、他の任意の選択方法によって選択可能であり、第4実施形態の例に限られない。第5実施形態では、時間帯といった時間的な条件ではなく、ソルトサーバ10が生成したソルトのペアを利用する場合を例に挙げる。第5実施形態におけるソルトのペアの生成方法は、第3実施形態と同様であるものとする。第5実施形態では、ソルトサーバ10がソルトのペアを生成し、当該生成されたペアを利用して、変換関数f及び逆変換関数f-1が選択される。
【0139】
図13は、第5実施形態における多要素認証の流れの一例を示す図である。図13のように、大まかな流れは、第3実施形態と同様であるが、複数の変換関数f0~f9と、複数の逆変換関数f-1と、が用意されている点で第3実施形態とは異なる。例えば、ユーザPC30は、第3実施形態と同様にして、ソルトサーバ10からソルトのペア「6437」「8414」を取得する。
【0140】
ユーザPC30は、1つ目のソルトの下1桁に基づいて、変換関数fを使い分ける。例えば、ユーザPC30は、下1桁「0」~「9」にそれぞれ対応する変換関数f1~f9を記憶する。図13の例では、1つ目のソルト「6437」の下1桁「7」に対応する変換関数f7が選択される。この変換関数f7は、第3実施形態の図9で説明した変換関数fと同様であるものとする。変換関数f7が選択された後のユーザPC30の処理は、第3実施形態と同様である。認証サーバ20は、変換済みのTUIDを受信すると、第3実施形態と同様にして、ソルトサーバ10からソルトのペア「6437」「8414」を取得する。
【0141】
第5実施形態では、認証サーバ20は、1つ目のソルトの下1桁に基づいて、逆変換関数f-1を使い分ける。例えば、ユーザPC30は、下1桁「0」~「9」にそれぞれ対応する逆変換関数f-11~f-19を記憶する。図13の例では、1つ目のソルト「6437」の下1桁「7」に対応する逆変換関数f-17が選択される。この逆変換関数f-17は、第3実施形態の図9で説明した逆変換関数f-1と同様であるものとする。逆変換関数f-17が選択された後の認証サーバ20の処理を含む多要素認証の流れは、第3実施形態と同様である。
【0142】
第5実施形態の認証システムSは、第3実施形態と同様の関連付け部104及び識別情報取得部306を含む。情報受信部201、ソルト取得部203,302、及び情報送信部304の処理も、概ね第3実施形態で説明した通りである。第5実施形態の逆変換関数選択部208は、1つ目のソルトに基づいて、逆変換関数f-1を選択する。1つ目のソルトと、逆変換関数f-1と、の関係は、予めデータ記憶部200に定義されているものとする。逆変換関数選択部208は、1つ目のソルトに対応する逆変換関数f-1を選択する。第5実施形態では、1つ目のソルトの下1桁が利用される場合を説明するが、逆変換関数選択部208は、1つ目のソルトの他の部分に基づいて、逆変換関数f-1を選択してもよい。
【0143】
第5実施形態の認証システムSによれば、1つ目のソルトと、2つ目のソルトと、を関連付けておき、2つ目のソルトでTUIDを変換する。1つ目のソルトは、変換後のTUIDとともに認証サーバ20に送信される。認証サーバ20は、1つ目のソルトに関連付けられた2つ目のソルトを取得し、1つ目のソルトに基づいて選択した逆変換関数f-1に基づいて、変換後のTUIDを逆変換する。これにより、変換関数fが動的に変わるので、第三者が変換の仕組みを把握しにくくなり、多要素認証におけるセキュリティがより高まる。悪意のある第三者がソルト要求を盗んだとしても、1つ目のソルトでは、変換の仕組みを把握するのが難しいので、多要素認証におけるセキュリティがより高まる。
【0144】
また、認証システムSは、ユーザPC30からソルト要求が受け付けられた場合に、1つ目のソルト及び2つ目のソルトを生成して互いに関連付ける。これにより、ソルト要求が受け付けられるたびに動的にソルトを生成できるので、同じソルトを一定期間使いまわすことがなくなり、多要素認証におけるセキュリティがより高まる。更に、ソルトサーバ10がソルトのペアをすぐに削除するようにすれば、第三者がソルトのペアを入手しにくくなるので、セキュリティがより高まる。
【0145】
[6.第6実施形態]
第4実施形態及び第5実施形態では、認証サーバ20及びユーザPC30がそれぞれ逆変換関数f-1及び変換関数fを選択する場合を説明したが、逆変換関数f-1及び変換関数fは、第三者サーバにより選択されてもよい。
【0146】
図14は、第6実施形態における認証システムSの全体構成の一例を示す図である。図14のように、第6実施形態の認証システムSは、選択サーバ40を含む。選択サーバ40は、サーバコンピュータである。制御部41、記憶部42、及び通信部43の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であってよい。選択サーバ40は、選択装置の一例である。このため、選択サーバ40と記載した箇所は、選択装置と読み替えることができる。
【0147】
選択装置は、変換関数f及び逆変換関数f-1を選択する装置である。選択装置は、任意の装置であってよく、選択サーバ40のようなサーバコンピュータに限られない。例えば、選択装置は、パーソナルコンピュータ、タブレット端末、又はスマートフォンであってもよい。他にも例えば、選択装置は、ゲーム機、自動販売機、POS端末、又はATMといった他の装置であってもよい。
【0148】
図15は、第6実施形態における多要素認証の流れの一例を示す図である。第6実施形態では、大まかな流れは、第4実施形態又は第5実施形態と同様であってよい。図15の例では、第5実施形態と同様の選択方法を例に挙げる。ユーザPC30がソルトのペアを取得するまでの流れは、第5実施形態と同様である。図15では、1つ目のソルトを「6430」とする。
【0149】
第6実施形態では、ユーザPC30は、選択サーバ40に対し、1つ目のソルト「6430」を送信する。選択サーバ40は、関数データベースDB3を記憶する。関数データベースDB3には、1つ目のソルトの下1桁、変換関数f、及び逆変換関数f-1が関連付けられている。図15の例では、fの後の数値が同じ逆変換関数f-1が対応しているので、関数データベースDB3に変換関数fのみを示しているが、関数データベースには、
変換関数f及び逆変換関数f-1の両方が格納されていてもよい。関数データベースDB3における関連付けは、所定のタイミングで更新されるものとする。例えば、選択サーバ40は、定期的に、関数データベースDB3における関連付けをランダムに更新する。
【0150】
選択サーバ40は、ユーザPC30から受信した1つ目のソルトの下1桁「0」に基づいて、変換関数fを選択する。変換関数fを選択する主体が選択サーバ40になるが、変換関数fの選択自体は、第4実施形態及び第5実施形態と同様であってよい。選択サーバ40は、ユーザPC30に対し、変換関数fの選択結果「f7」を送信する。ユーザPC30は、変換関数fの選択結果「f7」を受信すると、TUIDを変換する。この変換自体は、第4実施形態及び第5実施形態と同様であってよい。以降の流れは、認証サーバ20がソルトサーバ10からソルトのペアを取得するまでは、第5実施形態と同様である。
【0151】
認証サーバ20は、選択サーバ40に対し、1つ目のソルト「6430」を送信する。選択サーバ40は、認証サーバ20から受信した1つ目のソルトの下1桁に基づいて、逆変換関数f-17を選択する。逆変換関数f-17を選択する主体が選択サーバ40になるが、逆変換関数f-1の選択自体は、第4実施形態及び第5実施形態と同様であってよい。選択サーバ40は、認証サーバ20に対し、逆変換関数f-1の選択結果「f-17」を送信する。認証サーバ20は、逆変換関数f-1の選択結果を受信すると、変換済みのTUIDを逆変換する。この逆変換自体は、第4実施形態及び第5実施形態と同様であってよい。以降の多要素認証の流れは、第4実施形態及び第5実施形態と同様である。
【0152】
図16は、第6実施形態の認証システムSで実現される機能ブロックの一例を示す図である。図16のように、第6実施形態では、変換関数要求部308、逆変換関数要求部209、データ記憶部400、第1送信部401、及び第2送信部402が実現される。逆変換関数要求部209は、制御部21を主として実現される。変換関数要求部308は、制御部31を主として実現される。データ記憶部400は、記憶部42を主として実現される。第1送信部401及び第2送信部402は、制御部41を主として実現される。
【0153】
変換関数要求部308は、選択サーバ40に対し、変換関数fの選択を要求する。以降、この要求を変換関数選択要求という。変換関数選択要求は、所定の形式により行われるようにすればよい。変換関数選択要求は、選択サーバ40が変換関数fを選択するための基準となる情報を含んでもよいし、変換関数fを選択する旨のコマンドのみを含んでもよい。第6実施形態では、変換関数選択要求は、1つ目のソルトを含む場合を説明する。
【0154】
逆変換関数要求部209は、選択サーバ40に対し、逆変換関数f-1の選択を要求する。以降、この要求を逆変換関数選択要求という。逆変換関数選択要求は、所定の形式により行われるようにすればよい。逆変換関数選択要求は、選択サーバ40が逆変換関数f-1を選択するための基準となる情報を含んでもよいし、逆変換関数f-1を選択する旨のコマンドのみを含んでもよい。第6実施形態では、逆変換関数選択要求は、1つ目のソルトを含む場合を説明する。
【0155】
第1送信部401は、ユーザPC30からの変換関数選択要求が受け付けられた場合に、ユーザPC30に対し、複数の変換関数fのうちの何れかの選択結果を送信する。選択サーバ40は、変換関数選択要求が受け付けられた場合に、所定の選択方法に基づいて、複数の変換関数fのうちの何れかを選択する。第6実施形態では、第5実施形態と同様に、この選択方法が1つ目のソルトの下1桁の値である場合を説明するが、選択方法は、他の任意の方法であってよい。例えば、1つ目のソルトの上1桁の値であってもよいし、2つ目のソルトの値であってもよい。他にも例えば、第4実施形態と同様に、変換関数選択要求が受け付けられた時間帯であってもよい。第1送信部401は、選択サーバ40が選択した変換関数fを識別可能な情報を、選択結果として送信する。
【0156】
第2送信部402は、認証サーバ20からの逆変換関数選択要求が受け付けられた場合に、認証サーバ20に対し、複数の逆変換関数f-1のうちの何れかの選択結果を送信する。選択サーバ40は、逆変換関数選択要求が受け付けられた場合に、所定の選択方法に基づいて、複数の逆変換関数f-1のうちの何れかを選択する。第6実施形態では、第5実施形態と同様に、この選択方法が1つ目のソルトの下1桁の値である場合を説明するが、選択方法は、他の任意の方法であってよい。例えば、1つ目のソルトの上1桁の値であってもよいし、2つ目のソルトの値であってもよい。他にも例えば、第4実施形態と同様に、逆変換関数選択要求が受け付けられた時間帯であってもよい。第2送信部402は、選択サーバ40が選択した逆変換関数f-1を識別可能な情報を、選択結果として送信する。
【0157】
変換関数選択部307は、選択サーバ40による選択結果に基づいて、変換関数fを選択する。選択サーバ40により選択された変換関数fが利用される点で、第4実施形態及び第5実施形態とは異なるが、他の点については同様である。
【0158】
逆変換関数選択部208は、選択サーバ40による選択結果に基づいて、逆変換関数f-1を選択する。選択サーバ40により選択された逆変換関数f-1が利用される点で、第4実施形態及び第5実施形態とは異なるが、他の点については同様である。
【0159】
第6実施形態の認証システムSによれば、選択サーバ40が、認証サーバ20及びユーザPC30からの要求に基づいて、逆変換関数f-1及び変換関数fを選択する。これにより、逆変換関数f-1及び変換関数fを選択するアルゴリズムを認証サーバ20及びユーザPC30で持つ必要がなくなるので、多要素認証の仕組みを簡略化できる。更に、関数データベースDB3に定義された逆変換関数f-1及び変換関数fを定期的に変更しやすくなるので、第三者が変換の仕組みを推測しにくくなり、セキュリティが高まる。
【0160】
[7.変形例]
なお、本開示は、以上に説明した第1実施形態~第6実施形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
【0161】
[7-1.変形例1]
例えば、第1実施形態の図2の例において、ユーザPC30からのソルト要求が受け付けられた時点が「2021年12月2日01:59:59」であり、認証サーバ20からのソルト要求が受け付けられた時点が「2021年12月2日02:00:00」だったとする。この場合、ユーザPC30が取得するソルトは「8414」になり、認証サーバ20が取得するソルトは「9436」になる。この場合、TUIDの変換で利用されるソルトと、変換後のTUIDの逆変換で利用されるソルトと、が異なるので、認証サーバ20は、正確なTUIDを取得できない。そこで、変形例1では、ユーザPC30から認証サーバ20に対し、TUIDの変換で利用したソルトがどの時間帯のものなのかを識別可能な情報が送信される場合を説明する。
【0162】
図17は、変形例1における多要素認証の流れの一例を示す図である。変形例1では、ソルトサーバ10がユーザPC30からソルト要求を受信するまでの流れは、第1実施形態と同様である。ソルトサーバ10は、ユーザPC30からソルト要求を受信すると、現時点が属する日及び時間帯に応じた1つ目のソルトと、次の時間帯に応じた2つ目のソルトと、をユーザPC30に送信する。
【0163】
図17の例では、ユーザPC30からのソルト要求が受け付けられた時点を、「2021年12月2日01:59:59」とする。ソルトサーバ10は、「2日」及び「01時」に応じた1つ目のソルト「8414」と、次の時間帯である「2日」及び「02時」に応じた2つ目のソルト「9436」と、のペアを、ユーザPC30に送信する。ユーザPC30は、ソルトサーバ10から、ソルトのペア「8414」「9436」を受信する。
【0164】
ユーザPC30は、ソルトのペア「8414」「9436」のうちの何れかを選択する。ユーザPC30は、所定の選択方法に基づいて、ソルトを選択すればよい。変形例1では、1つ目のソルトを選択することが決められている場合を例に挙げるが、他の選択方法に基づいてソルトが選択されてもよい。例えば、ユーザPC30は、ソルト要求を送信した時点、ソルトのペアを受信した時点、又はソルトを選択する時点に基づいて、ソルトを選択してもよい。
【0165】
図17の例では、ユーザPC30は、1つ目のソルト「8414」に基づいて、TUID「312456」を変換する。変換後のTUIDは、「320870」になる。ユーザPC30は、認証サーバ20に対し、変換後のTUID「320870」と、1つ目のソルト「8414」に対応する時間帯を識別可能なタイムスタンプ「59:59」と、を送信する。このタイムスタンプは、現在の時点「2021年12月2日01:59:59」であってもよいが、第三者に入手される情報を少なくするために、「59:59」のみが送信されるものとする。タイムスタンプは、ソルト要求を送信した時点、ソルトを受信した時点、TUIDを変換した時点、又は変換後のTUIDが送信される時点の何れが利用されてもよい。
【0166】
認証サーバ20は、変換後のTUID「320870」と、タイムスタンプ「59:59」と、を受信すると、ソルトサーバ10に対し、ソルト要求を送信する。ソルトサーバ10は、認証サーバ20からソルト要求を受信すると、現時点が属する日及び時間帯に応じたソルトと、次又は前の時間帯に応じたソルトと、のペアを、認証サーバ20に送信する。
【0167】
図17の例では、認証サーバ20からのソルト要求が受け付けられた時点を、「2021年12月2日01:59:59」とする。この場合、ソルトサーバ10は、「2日」及び「01時」に応じた1つ目のソルト「8414」と、次の時間帯である「2日」及び「02時」に応じた2つ目のソルト「9436」と、のペアを、認証サーバ20に送信する。認証サーバ20は、ソルトサーバ10から、ソルトのペア「8414」「9436」を受信する。
【0168】
一方、認証サーバ20からのソルト要求が受け付けられた時点が「2021年12月2日02:00:00」だったとする。この場合、ソルトサーバ10は、前の時間帯である「2日」及び「01時」に応じた1つ目のソルト「8414」と、現時点が属する時間帯である「2日」及び「02時」に応じた2つ目のソルト「9436」と、のペアを、認証サーバ20に送信する。認証サーバ20は、ソルトサーバ10から、ソルトのペア「8414」「9436」を受信する。このように、ソルトサーバ10は、時間帯の区切りの直前であるか直後であるかに応じて、1つ前の時間帯のソルトを送信するか、1つ後の時間帯のソルトを送信するか、を制御してもよい。
【0169】
認証サーバ20は、ユーザPC30から受信したタイムスタンプ「59:59」により、時間帯が相対的に前のソルトが変換で利用されたことを特定できる。即ち、認証サーバ20から受信したソルトのペアのうち、1つ目のソルトが利用されたことを特定できる。認証サーバ20は、1つ目のソルト「8414」に基づいて、変換後のTUID「320870」の逆変換を実行する。以降の流れは、第1実施形態と同様である。
【0170】
一方、ユーザPC30から受信したタイムスタンプが「00:00」だったとする。この場合、ユーザPC30は、ソルト「8414」ではなく、ソルト「9436」を利用してTUID「312456」を変換している。この場合、認証サーバ20は、このタイムスタンプに基づいて、時間帯が相対的に後のソルトが変換で利用されたことを特定できる。即ち、認証サーバ20は、2つ目のソルト「9436」に基づいて、逆変換を実行する。
【0171】
なお、図17の例において、ソルトサーバ10がユーザPC30からのソルト要求を受け付けた時点が「2021年12月1日23:59:59」だったとする。ソルトサーバ10は、「1日」及び「23時」に応じた1つ目のソルト「8201」と、翌日の「2日」及び「00時」に応じた2つ目のソルト「6435」と、をユーザPC30に送信すればよい。
【0172】
情報送信部304は、認証サーバ20に対し、第1取得期間に関する第1取得期間情報を更に送信する。第1実施形態で説明したように、第1取得期間は、ソルトが取得される第1取得時点が属する期間である。図17の例では、「2日」の「01時」が第1取得期間に相当する。第1取得期間情報は、どの期間のソルトを利用すべきかを識別可能な情報である。図17の例では、タイムスタンプ「59:59」が第1取得期間情報に相当する。このため、タイムスタンプ「59:59」について説明している箇所は、第1取得期間情報と読み替えることができる。
【0173】
情報受信部201は、ユーザPC30から、第1取得期間情報を更に受信する。図17の例では、情報受信部201は、ユーザPC30から、第1取得期間情報として、タイムスタンプ「59:59」を受信する。情報受信部201が第1取得期間情報を受信すると、ソルト要求部202は、ソルトサーバ10に対し、ソルトを要求する。ソルト要求については、第1実施形態~第6実施形態で説明した通りである。
【0174】
ソルトサーバ10は、認証サーバ20からの要求を受け付けた場合に、認証サーバ20に対し、ソルトが取得される第2取得時点が属する第2取得期間に応じたソルトと、第2取得期間の前又は後の第3期間に応じたソルトと、を含む複数のソルトを送信する。日及び時間帯の組み合わせは、第2取得期間の一例である。このため、日及び時間帯の組み合わせについて説明している箇所は、第2取得期間と読み替えることができる。第2取得期間は、ソルトが取得される第2取得時点が属する期間である。第2取得期間は、逆変換情報に相当するソルトが取得される期間という点で第1取得期間とは異なるが、他の点については、第1取得期間と同様である。
【0175】
例えば、ソルトサーバ10は、第2取得時点が第2取得期間の終了間際であれば、第2取得期間に応じたソルトと、第2取得期間の後の期間である第3期間に応じたソルトと、を含む複数のソルトを送信する。終了間際とは、第2取得期間の終了時点から所定時間以内(例えば、数秒~1分以内)のことである。図17の例であれば、第2取得期間は、「2日」の「01時」である。この第2取得期間の終了時点は、「2日」の「02:00:00」の直前の時点(例えば、「2日」の「01:59:59」)である。図17の例では、第2取得時点である「2021年12月2日01:59:59」がこの終了時点と同じ又は間際なので、ソルトサーバ10は、第2取得期間である「2日」の「01時」のソルト「8414」と、第2取得期間の次の期間である「2日」の「02時」のソルト「9436」と、を送信する。
【0176】
例えば、ソルトサーバ10は、第2取得時点が第2取得期間の開始直後であれば、第2取得期間に応じたソルトと、第2取得期間の後の期間である第3期間に応じたソルトと、を含む複数のソルトを送信する。開始直後とは、第2取得期間の開始時点から所定時間以内(例えば、数秒~1分以内)のことである。例えば、図17の例において、第2取得時点が「2021年12月2日01:59:59」ではなく「2021年12月2日02:00:00」だったとする。この場合、第2取得期間は、「2日」の「02時」である。この第2取得期間の開始時点は、「2日」の「02:00:00」である。第2取得時点である「2021年12月2日02:00:00」がこの開始時点と同じ又は直後なので、ソルトサーバ10は、第2取得期間の前の期間である「2日」の「01時」のソルト「8414」と、第2取得期間である「2日」の「02時」のソルト「9436」と、を送信する。
【0177】
ソルト取得部203は、第1取得期間情報に基づいて、第1取得期間に応じたソルトを取得する。ソルト取得部203は、第1取得期間情報に基づいて、ソルトサーバ10から受信した複数のソルトの中から、第1取得期間に応じたソルトを取得する。図17の例では、ソルト取得部203は、第1取得期間情報に基づいて、ソルトサーバ10から受信したソルトのペアのうちの何れかを選択する。図17の例であれば、ソルト取得部203は、タイムスタンプ「59:59」により、時間的に前のソルトを選択すればよいことを特定できる。このため、ソルト取得部203は、1つめのソルト「8414」を選択する。ソルト「8414」が選択された後の逆変換の処理は、第1実施形態~第6実施形態と同様である。
【0178】
一方、図17の例において、タイムスタンプが「59:59」ではなく「00:00」だったとする。この場合、ソルト取得部203は、タイムスタンプ「00:00」により、時間的に後のソルトを選択すればよいことを特定できる。このため、ソルト取得部203は、2つめのソルト「9436」を選択する。ソルト「9436」が選択された後の逆変換の処理は、第1実施形態~第6実施形態と同様である。
【0179】
変形例1の認証システムSによれば、ユーザPC30は、認証サーバ20に対し、TUIDの変換時点に対応するタイムスタンプを更に送信する。認証サーバ20は、ユーザPC30から受信したタイムスタンプに基づいて、ソルトを取得する。これにより、ある時間帯の終了間際にソルトが取得されたとしても、多要素認証を正確に実行することができる。このため、多要素認証が失敗してやり直すといった手間を省くことができるので、ユーザの利便性が高まる。ソルトサーバ10、認証サーバ20、及びユーザPC30も不要な処理を実行しないので、これらの処理負荷を軽減できる。
【0180】
また、ソルトサーバ10は、認証サーバ20からの要求を受け付けた場合に、認証サーバ20に対し、第2取得期間に応じたソルトと、第2取得期間の前又は後の第3期間に応じたソルトと、を含む複数のソルトを送信する。認証サーバ20は、ユーザPC30から受信したタイムスタンプに基づいて、複数のソルトの中から、逆変換に適したソルトを取得する。これにより、逆変換を正確に実行することができるので、多要素認証が失敗してやり直すといった手間を省くことができる。
【0181】
[7-2.変形例2]
例えば、第4実施形態(図11)のように変換関数f及び逆変換関数f-1を選択した場合にも、変形例1と同様の課題が発生する可能性がある。例えば、ユーザPC30が変換を行う時点が「2021年12月2日01:59:59」であり、認証サーバ20が逆変換を行う時点が「2021年12月2日02:00:00」だったとする。この場合、TUIDの変換関数fと、変換後のTUIDの逆変換関数f-1と、が対応しないので、認証サーバ20が正確なTUIDを取得できない可能性がある。
【0182】
そこで、変形例2では、変形例1と同様に、ユーザPC30が認証サーバ20に対し、タイムスタンプ「59:59」を送信するものとする。このタイムスタンプにより、認証サーバ20は、逆変換を行う時点が「2021年12月2日02:00:00」だったとしても、1つ前の時間帯に対応する逆変換関数f-1を利用すればよいことを特定できる。
【0183】
情報送信部304は、認証サーバ20に対し、第1変換期間に関する変換期間情報を更に送信する。第4実施形態で説明したように、第1変換期間は、ソルトが変換される第1変換時点が属する期間である。上記の例では、「2日」の「01時」が第1変換期間に相当する。変換期間情報は、どの期間の逆変換関数f-1を利用すべきかを識別可能な情報である。上記の例では、タイムスタンプ「59:59」が変換期間情報に相当する。このため、タイムスタンプ「59:59」について説明している箇所は、変換期間情報と読み替えることができる。情報受信部201は、ユーザPC30から、変換期間情報を更に受信する。
【0184】
逆変換関数選択部208は、変換期間情報に基づいて、第1変換期間に応じた逆変換関数f-1を選択する。逆変換関数f-1を選択する時点ではなく、変換期間情報に基づいて逆変換関数f-1が選択される点で第4実施形態とは異なるが、他の点は、第4実施形態と同様である。逆変換関数選択部208は、変換期間情報に基づいて、複数の逆変換関数f-1の中から、第1変換期間に応じた逆変換関数f-1を選択すればよい。
【0185】
なお、第4実施形態及び第6実施形態を組み合わせた構成に対し、変形例2を適用してもよい。この場合、選択サーバ40は、認証サーバ20からの要求を受け付けた場合に、認証サーバ20に対し、逆変換関数f-1が選択される第2変換時点が属する第2変換期間に応じた逆変換関数f-1と、第2変換期間の前又は後の第3期間に応じた逆変換関数f-1と、を含む複数の逆変換関数f-1を送信する。
【0186】
変形例2の認証システムSによれば、ユーザPC30は、認証サーバ20に対し、第1変換期間に関する変換期間情報を送信する。認証サーバ20は、ユーザPC30から受信した変換期間情報に基づいて、第1変換期間に応じた逆変換関数f-1を選択する。これにより、多要素認証におけるセキュリティが高まる。ある時間帯の終了間際にTUIDの変換が実行されたとしても、多要素認証を正確に実行することができる。このため、多要素認証が失敗してやり直すといった手間を省くことができるので、ユーザの利便性が高まる。ソルトサーバ10、認証サーバ20、及びユーザPC30も不要な処理を実行しないので、これらの処理負荷を軽減できる。
【0187】
[7-3.変形例3]
例えば、認証システムSは、ランダムに生成されたソルトを取得するソルト取得部302、ソルトに基づいて、ユーザの生体情報とは異なり、かつ、ユーザを識別可能なユーザ識別情報を変換する変換部303と、変換部303により変換されたユーザ識別情報と、生体情報と、に基づいて、多要素認証を実行する多要素認証部205と、を含んでもよい。個々の処理の詳細は、第1実施形態~第6実施形態で説明した通りである。TUIDは、ユーザ識別情報に相当する。ユーザ識別情報は、ユーザを何らか識別可能な情報であればよく、TUIDに限られない。例えば、ユーザ識別情報は、ユーザID、メールアドレス、又は電話番号であってもよい。ユーザ識別情報は、認証情報の一例である。ユーザデータベースDB2には、正解となるユーザ識別情報及び生体情報のペアが格納されているものとする。
【0188】
変形例3のソルト取得部302、変換部303、及び多要素認証部205は、1台のコンピュータにより実現されてもよい。これらが複数台のコンピュータで実現される場合には、ユーザPC30以外の第1のコンピュータによりソルト取得部302及び変換部303が実現され、認証サーバ20以外の第2のコンピュータにより多要素認証部205が実現されてもよい。第1のコンピュータは、変換済みのユーザ識別情報と、生体情報と、を第2のコンピュータに送信する。第2のコンピュータは、第1のコンピュータから受信したこれらの情報に基づいて、多要素認証を実行すればよい。
【0189】
変形例3の認証システムSによれば、第1実施形態~第6実施形態と同様の理由で、セキュリティが高まる。
【0190】
[7-4.その他変形例]
例えば、第1実施形態~第6実施形態を組み合わせてもよい。上記変形例を組み合わせてもよい。
【0191】
例えば、変形例1又は変形例2の処理は、ある時間帯の終了間際にのみ実行されるようにしてもよい。例えば、ソルトサーバ10で実現されるものとして説明した機能は、認証サーバ20又はユーザPC30で実現されてもよい。この場合、認証システムSは、ソルトサーバ10を含まなくてもよい。例えば、認証システムSが複数のサーバコンピュータを含む場合には、複数のサーバコンピュータで機能が分担されてもよい。また例えば、データ記憶部100,200で記憶されるものとして説明したデータは、ソルトサーバ10又は認証サーバ20以外のコンピュータによって記憶されてもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17