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

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

▶ ヤフー株式会社の特許一覧

特許7197630端末装置、認証サーバ、認証方法及び認証プログラム
<>
  • 特許-端末装置、認証サーバ、認証方法及び認証プログラム 図1
  • 特許-端末装置、認証サーバ、認証方法及び認証プログラム 図2
  • 特許-端末装置、認証サーバ、認証方法及び認証プログラム 図3
  • 特許-端末装置、認証サーバ、認証方法及び認証プログラム 図4
  • 特許-端末装置、認証サーバ、認証方法及び認証プログラム 図5
  • 特許-端末装置、認証サーバ、認証方法及び認証プログラム 図6
  • 特許-端末装置、認証サーバ、認証方法及び認証プログラム 図7
  • 特許-端末装置、認証サーバ、認証方法及び認証プログラム 図8
  • 特許-端末装置、認証サーバ、認証方法及び認証プログラム 図9
  • 特許-端末装置、認証サーバ、認証方法及び認証プログラム 図10
  • 特許-端末装置、認証サーバ、認証方法及び認証プログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-19
(45)【発行日】2022-12-27
(54)【発明の名称】端末装置、認証サーバ、認証方法及び認証プログラム
(51)【国際特許分類】
   G06F 21/33 20130101AFI20221220BHJP
   G06F 21/31 20130101ALI20221220BHJP
【FI】
G06F21/33
G06F21/31
【請求項の数】 17
(21)【出願番号】P 2021084967
(22)【出願日】2021-05-19
(65)【公開番号】P2022178276
(43)【公開日】2022-12-02
【審査請求日】2021-11-18
【早期審査対象出願】
【前置審査】
(73)【特許権者】
【識別番号】319013263
【氏名又は名称】ヤフー株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】五味 秀仁
【審査官】青木 重徳
(56)【参考文献】
【文献】特開2017-167875(JP,A)
【文献】特開2019-046044(JP,A)
【文献】特開2011-145906(JP,A)
【文献】特表2011-514032(JP,A)
【文献】米国特許出願公開第2017/0279789(US,A1)
【文献】米国特許出願公開第2020/0045046(US,A1)
【文献】韓国登録特許第10-2236000(KR,B1)
【文献】鶴蒔 聡 ほか,デジタルバンキング時代に向けた認証サービス基盤,FUJITSU,日本,富士通株式会社,2019年07月01日,Vol.70 No.3 ,p.54-61
【文献】西村 豪生 ほか,モバイル端末ベースの公開鍵認証方式における端末変更に伴う認証鍵の再登録に関する一検討,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2018年02月22日,第117巻,第460号,p.69-74
【文献】「みずほダイレクトアプリ」で生体認証機能を導入 ~生体認証によるパスワードレス認証で利便性強化とセキュリティ向上を実現~,MIZUHO FinTech,日本,株式会社みずほ銀行,2017年10月11日,<URL:https://www.mizuhobank.co.jp/release/pdf/20171011_2release_jp.pdf>,(検索日:令和4年1月20日)、インターネット
【文献】FIDO認証の進化とさらなる応用展開(第3回FIDOアライアンス東京セミナー講演),Yahoo! JAPAN Tech Blog,[オンライン],2016年12月16日,<URL:https://techblog.yahoo.co.jp/advent-calendar-2016/2016-fido/>,(検索日:令和4年1月20日)、インターネット
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/33
G06F 21/31
(57)【特許請求の範囲】
【請求項1】
認証器にチャレンジを送付する送付部と、
前記認証器から署名付きチャレンジと公開鍵とを受け取る受付部と、
前記公開鍵を用いて署名検証を行う検証部と、
署名の検証結果を認証サーバに提供する提供部と
を備え、
前記送付部は、利用者のID及びパスワードを入力するためのパスワード画面に表示された検証要求ボタンが押された場合に、前記認証器にチャレンジを送付し、
前記提供部は、前記検証要求ボタンが押された場合には、前記利用者のID及びパスワードとともに、前記署名の検証結果を前記認証サーバに提供し、前記検証要求ボタンが押されなかった場合には、前記利用者のID及びパスワードのみ前記認証サーバに提供する
ことを特徴とする端末装置。
【請求項2】
前記受付部は、前記認証サーバから送付されたチャレンジを受け取り、
前記送付部は、前記認証サーバから送付されたチャレンジを前記認証器に送付し、
前記提供部は、前記署名の検証結果とともに、前記署名付きチャレンジをレスポンスとして前記認証サーバに返送する
ことを特徴とする請求項1に記載の端末装置。
【請求項3】
前記受付部は、前記認証サーバから送付された第2チャレンジを受け取り、
前記送付部は、前記第2チャレンジとは異なるチャレンジを前記認証器に送付し、
前記受付部は、前記認証器から署名付きチャレンジと公開鍵とを受け取り、
前記検証部は、前記公開鍵を用いて署名検証を行った結果、認証に成功した場合、前記第2チャレンジへの署名を生成し、
前記提供部は、前記第2チャレンジへの署名をレスポンスとして前記認証サーバに返送する
ことを特徴とする請求項1又は2に記載の端末装置。
【請求項4】
認証器にチャレンジを送付する送付部と、
前記認証器から署名付きチャレンジと公開鍵とを受け取る受付部と、
前記公開鍵を用いて署名検証を行う検証部と、
署名の検証結果を認証サーバに提供する提供部と
を備え、
前記受付部は、前記認証サーバから送付された第2チャレンジを受け取り、
前記送付部は、前記第2チャレンジとは異なるチャレンジを前記認証器に送付し、
前記受付部は、前記認証器から署名付きチャレンジと公開鍵とを受け取り、
前記検証部は、前記公開鍵を用いて署名検証を行った結果、認証に成功した場合、前記第2チャレンジへの署名を生成し、
前記提供部は、前記第2チャレンジへの署名をレスポンスとして前記認証サーバに返送する
ことを特徴とする端末装置。
【請求項5】
前記提供部は、前記第2チャレンジへの署名によって、該端末装置の完全性を示す
ことを特徴とする請求項3又は4に記載の端末装置。
【請求項6】
前記提供部は、前記署名の検証結果を、FIDO認証機能とパスワード認証機能との両機能を併せ持つ認証サーバに提供する
ことを特徴とする請求項1~5のうちいずれか1つに記載の端末装置。
【請求項7】
前記提供部は、前記署名の検証結果の提供をもって、FIDO認証が完了したことを表明する
ことを特徴とする請求項1~6のうちいずれか1つに記載の端末装置。
【請求項8】
FIDO認証とパスワード認証とが共存する認証サーバにおいて、パスワード認証用のインターフェースを改変することなくFIDO認証機能を実現するため、請求項1~7のうちいずれか1つに記載の端末装置に認証要求を行うとともに、利用者のID及びパスワードを入力するためのパスワード画面を提供する送付部と、
前記端末装置から、利用者のID及びパスワードとともに、認証器で生成された署名の検証結果を受け取る取得部と、
前記署名の検証結果をもってFIDO認証が完了したと判断し、前記利用者のID及びパスワードを検証する検証部と
を備え
前記取得部は、前記端末装置において前記利用者のID及びパスワードを入力するためのパスワード画面に表示された検証要求ボタンが押された場合に、前記利用者のID及びパスワードとともに、前記署名の検証結果を前記端末装置から受け付け、前記検証要求ボタンが押されなかった場合には、前記利用者のID及びパスワードのみ前記端末装置から受け付ける
ことを特徴とする認証サーバ。
【請求項9】
前記送付部は、前記端末装置にチャレンジを送付し、
前記取得部は、前記端末装置から、前記署名の検証結果とともに、前記認証器で署名が生成されたチャレンジをレスポンスとして受け取り、
前記検証部は、前記端末装置からレスポンスとして送付されたチャレンジを検証する
ことを特徴とする請求項8に記載の認証サーバ。
【請求項10】
前記送付部は、前記端末装置に第2チャレンジを送付し、
前記取得部は、FIDO認証を実施した前記端末装置から、前記端末装置で生成された前記第2チャレンジへの署名をレスポンスとして受け取り、
前記検証部は、前記端末装置からレスポンスとして送付された前記第2チャレンジへの署名を検証する
ことを特徴とする請求項8又は9に記載の認証サーバ。
【請求項11】
前記検証部は、FIDO認証機能とパスワード認証機能との両機能を併せ持つ
ことを特徴とする請求項8~10のうちいずれか1つに記載の認証サーバ。
【請求項12】
端末装置が実行する認証方法であって、
認証器にチャレンジを送付する送付工程と、
前記認証器から署名付きチャレンジと公開鍵とを受け取る受付工程と、
前記公開鍵を用いて署名検証を行う検証工程と、
署名の検証結果を認証サーバに提供する提供工程と
を含み、
前記送付工程では、利用者のID及びパスワードを入力するためのパスワード画面に表示された検証要求ボタンが押された場合に、前記認証器にチャレンジを送付し、
前記提供工程では、前記検証要求ボタンが押された場合には、前記利用者のID及びパスワードとともに、前記署名の検証結果を前記認証サーバに提供し、前記検証要求ボタンが押されなかった場合には、前記利用者のID及びパスワードのみ前記認証サーバに提供する
ことを特徴とする認証方法。
【請求項13】
端末装置が実行する認証方法であって、
認証器にチャレンジを送付する送付工程と、
前記認証器から署名付きチャレンジと公開鍵とを受け取る受付工程と、
前記公開鍵を用いて署名検証を行う検証工程と、
署名の検証結果を認証サーバに提供する提供工程と
を含み、
前記受付工程では、前記認証サーバから送付された第2チャレンジを受け取り、
前記送付工程では、前記第2チャレンジとは異なるチャレンジを前記認証器に送付し、
前記受付工程では、前記認証器から署名付きチャレンジと公開鍵とを受け取り、
前記検証工程では、前記公開鍵を用いて署名検証を行った結果、認証に成功した場合、前記第2チャレンジへの署名を生成し、
前記提供工程では、前記第2チャレンジへの署名をレスポンスとして前記認証サーバに返送する
ことを特徴とする認証方法。
【請求項14】
認証サーバが実行する認証方法であって、
FIDO認証とパスワード認証とが共存する認証サーバにおいて、パスワード認証用のインターフェースを改変することなくFIDO認証機能を実現するため、請求項12又は13に記載の認証方法を実行する端末装置に認証要求を行うとともに、利用者のID及びパスワードを入力するためのパスワード画面を提供する送付工程と、
前記端末装置から、利用者のID及びパスワードとともに、認証器で生成された署名の検証結果を受け取る取得工程と、
前記署名の検証結果をもってFIDO認証が完了したと判断し、前記利用者のID及びパスワードを検証する検証工程と
を含み、
前記取得工程では、前記端末装置において前記利用者のID及びパスワードを入力するためのパスワード画面に表示された検証要求ボタンが押された場合に、前記利用者のID及びパスワードとともに、前記署名の検証結果を前記端末装置から受け付け、前記検証要求ボタンが押されなかった場合には、前記利用者のID及びパスワードのみ前記端末装置から受け付ける
ことを特徴とする認証方法。
【請求項15】
認証器にチャレンジを送付する送付手順と、
前記認証器から署名付きチャレンジと公開鍵とを受け取る受付手順と、
前記公開鍵を用いて署名検証を行う検証手順と、
署名の検証結果を認証サーバに提供する提供手順と
を端末装置として機能するコンピュータに実行させ、
前記送付手順では、利用者のID及びパスワードを入力するためのパスワード画面に表示された検証要求ボタンが押された場合に、前記認証器にチャレンジを送付し、
前記提供手順では、前記検証要求ボタンが押された場合には、前記利用者のID及びパスワードとともに、前記署名の検証結果を前記認証サーバに提供し、前記検証要求ボタンが押されなかった場合には、前記利用者のID及びパスワードのみ前記認証サーバに提供する
ことを特徴とする認証プログラム。
【請求項16】
認証器にチャレンジを送付する送付手順と、
前記認証器から署名付きチャレンジと公開鍵とを受け取る受付手順と、
前記公開鍵を用いて署名検証を行う検証手順と、
署名の検証結果を認証サーバに提供する提供手順と
を端末装置として機能するコンピュータに実行させ、
前記受付手順では、前記認証サーバから送付された第2チャレンジを受け取り、
前記送付手順では、前記第2チャレンジとは異なるチャレンジを前記認証器に送付し、
前記受付手順では、前記認証器から署名付きチャレンジと公開鍵とを受け取り、
前記検証手順では、前記公開鍵を用いて署名検証を行った結果、認証に成功した場合、前記第2チャレンジへの署名を生成し、
前記提供手順では、前記第2チャレンジへの署名をレスポンスとして前記認証サーバに返送する
ことを特徴とする認証プログラム。
【請求項17】
FIDO認証とパスワード認証とが共存する認証サーバにおいて、パスワード認証用のインターフェースを改変することなくFIDO認証機能を実現するため、請求項15又は16に記載の認証プログラムを実行する端末装置に認証要求を行うとともに、利用者のID及びパスワードを入力するためのパスワード画面を提供する送付手順と、
前記端末装置から、利用者のID及びパスワードとともに、認証器で生成された署名の検証結果を受け取る取得手順と、
前記署名の検証結果をもってFIDO認証が完了したと判断し、前記利用者のID及びパスワードを検証する検証手順と
を認証サーバとして機能するコンピュータに実行させ
前記取得手順では、前記端末装置において前記利用者のID及びパスワードを入力するためのパスワード画面に表示された検証要求ボタンが押された場合に、前記利用者のID及びパスワードとともに、前記署名の検証結果を前記端末装置から受け付け、前記検証要求ボタンが押されなかった場合には、前記利用者のID及びパスワードのみ前記端末装置から受け付ける
ことを特徴とする認証プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、端末装置、認証サーバ、認証方法及び認証プログラムに関する。
【背景技術】
【0002】
FIDO(Fast Identity Online)に関する技術であって、認証器を用いる技術が開示されている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2020-141331号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記の従来技術では、既存のパスワード認証用のインターフェースを改変することなく、外部のWebサイトを利用するためのFIDO認証とパスワード認証とが共存する認証方式については考慮されていない。
【0005】
本願は、上記に鑑みてなされたものであって、外部サーバにアクセスするためのFIDO認証とパスワード認証とが共存する認証方式を実現することを目的とする。
【課題を解決するための手段】
【0006】
本願に係る端末装置は、認証器にチャレンジを送付する送付部と、前記認証器から署名付きチャレンジと公開鍵とを受け取る受付部と、前記公開鍵を用いて署名検証を行う検証部と、前記署名の検証結果を認証サーバに提供する提供部とを備え、前記送付部は、利用者のID及びパスワードを入力するためのパスワード画面に表示された検証要求ボタンが押された場合に、前記認証器にチャレンジを送付し、前記提供部は、前記検証要求ボタンが押された場合には、前記利用者のID及びパスワードとともに、前記署名の検証結果を前記認証サーバに提供し、前記検証要求ボタンが押されなかった場合には、前記利用者のID及びパスワードのみ前記認証サーバに提供することを特徴とする。
【発明の効果】
【0007】
実施形態の一態様によれば、外部サーバにアクセスするためのFIDO認証とパスワード認証とが共存する認証方式を実現することができる。
【図面の簡単な説明】
【0008】
図1図1は、実施形態に係る認証方法の概要及び実施例1を示す説明図である。
図2図2は、実施形態に係る認証方法の実施例2を示す説明図である。
図3図3は、実施形態に係る認証方法の実施例3を示す説明図である。
図4図4は、実施形態に係る認証システムの構成例を示す図である。
図5図5は、実施形態に係る端末装置の構成例を示す図である。
図6図6は、実施形態に係る認証サーバの構成例を示す図である。
図7図7は、利用者情報データベースの一例を示す図である。
図8図8は、履歴情報データベースの一例を示す図である。
図9図9は、認証情報データベースの一例を示す図である。
図10図10は、実施形態に係る処理手順を示すフローチャートである。
図11図11は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0009】
以下に、本願に係る端末装置、認証サーバ、認証方法及び認証プログラムを実施するための形態(以下、「実施形態」と記載する)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る端末装置、認証サーバ、認証方法及び認証プログラムが限定されるものではない。また、以下の実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0010】
〔1.認証方法の概要〕
まず、図1を参照し、実施形態に係る認証方法の概要について説明する。図1は、実施形態に係る認証方法の概要及び実施例1を示す説明図である。なお、図1では、外部サーバにアクセスするためのFIDO(Fast Identity Online)認証とパスワード認証とが共存する認証サーバにおいて、パスワード認証用のインターフェースを改変することなくFIDO認証機能を提供する場合を例に挙げて説明する。
【0011】
図1に示すように、認証システム1は、端末装置10とFIDO認証器50と認証サーバ100とを含む。端末装置10と認証サーバ100とは、それぞれネットワークN(図4参照)を介して有線又は無線で互いに通信可能に接続される。本実施形態では、端末装置10は、FIDO認証器50と連携する。なお、図1では、FIDO認証器50が端末装置10と物理的に異なるものとして描かれているが、実際にはFIDO認証器50が端末装置10に組み込まれていてもよい。
【0012】
端末装置10は、利用者U(ユーザ)により使用されるクライアントデバイスである。例えば、端末装置10は、スマートフォンやタブレット等のスマートデバイスであり、4G(Generation)やLTE(Long Term Evolution)等の無線通信網を介して任意のサーバ装置と通信を行うことができる携帯端末装置である。また、端末装置10は、液晶ディスプレイ等の画面であって、タッチパネルの機能を有する画面を有し、利用者Uから指やスタイラス等によりタップ操作、スライド操作、スクロール操作等、コンテンツ等の表示データに対する各種の操作を受付ける。なお、画面のうち、コンテンツが表示されている領域上で行われた操作を、コンテンツに対する操作としてもよい。また、端末装置10は、スマートデバイスのみならず、デスクトップPC(Personal Computer)やノートPC等の情報処理装置であってもよい。
【0013】
本実施形態に係る端末装置10は、FIDO対応のパスワードマネージャー(FIDO-enabled Password Manager)が実装され、認証サーバ100の代わりに、FIDO認証サーバとして機能する。FIDO認証では、ユーザの本人性が、スマートフォン等のクライアントデバイスに内蔵または外付けされた認証器(Authenticator)によって検証される。本実施形態では、利用者Uの本人性が、利用者Uの端末装置10に内蔵または外付けされた認証器によって検証される。
【0014】
既存のパスワードマネージャーの中には、パスワードマネージャーの利用を開始するための認証手段として、画面ロックを使ったFIDO認証を適用しているものがある。しかし、これは端末装置におけるローカルでの認証(画面ロック解除)であって、他のWebサイトを利用するためのFIDO認証を行うものではない。本実施形態に係るFIDO対応のパスワードマネージャーは、外部サーバにアクセスするためのFIDO認証とパスワード認証とが共存する認証方式を実現する。なお、FIDOは一例に過ぎない。実際には、FIDOに限らず、ローカルでユーザ検証した検証結果の情報をリモートのサーバに通知し、その検証結果の情報を当該サーバで検証することによってユーザを認証するタイプの認証方式であればよい。
【0015】
FIDO認証器50は、利用者Uの端末装置10に内蔵または外付けされた認証器であり、利用者Uの本人性を検証する。例えば、FIDO認証器50は、スマートフォンの生体認証機能であってもよいし、USB(Universal Serial Bus)キー等の外部認証器であってもよい。また、FIDO認証器50は、アプリ(アプリケーション)あるいはブラウザ等のソフトウェアや特定ハードウェア領域を含む形式で、利用者Uの端末装置10の内部に実装されていてもよい。すなわち、FIDO認証器50は、利用者Uの端末装置10であってもよい。また、FIDO認証器50は、有線通信又は近距離無線通信により利用者Uの端末装置10と通信可能な端末装置10と物理的に異なる認証器であってもよい。
【0016】
認証サーバ100は、FIDO認証機能とパスワード認証機能の両機能を併せ持つ認証サーバとして機能する情報処理装置であり、サーバ装置やクラウドシステム等により実現される。すなわち、認証サーバ100は、FIDO認証機能とパスワード認証機能の両機能を兼ね備える。例えば、多岐にわたる大規模なサービスを提供する企業等の認証サーバは、既にFIDO認証機能とパスワード認証機能の両機能に対応していることがある。
【0017】
例えば、認証サーバ100は、端末装置10の既存のパスワードのUI画面を通じてFIDO認証を発動し、端末装置10から認証結果の情報を受信する。これにより、認証サーバ100は、端末装置10の既存のパスワード認証等のインターフェースを改変することなく、端末装置10にFIDO認証機能を導入する。
【0018】
本実施形態では、認証サーバ100が既にFIDO認証機能とパスワード認証機能の両機能を併せ持つ場合において、端末装置10に新たにFIDO対応のパスワードマネージャーを導入する際に、認証サーバ100と端末装置10との間でFIDO認証の整合性を取りつつ、既存のパスワードによるインターフェースを改変することのないFIDO認証機能を提供する。
【0019】
また、認証サーバ100は、各利用者Uの端末装置10と連携し、各利用者Uの端末装置10に対して、各種アプリ等に対するAPI(Application Programming Interface)サービス等と、各種データを提供してもよい。このとき、認証サーバ100は、各利用者Uの端末装置10と連携し、端末装置10にFIDO対応のパスワードマネージャーとしての機能を提供してもよい。
【0020】
また、認証サーバ100は、各利用者Uの端末装置10に対して、オンラインで何らかのWebサービスを提供する情報処理装置であってもよい。例えば、認証サーバ100は、Webサービスとして、インターネット接続、検索サービス、SNS(Social Networking Service)、電子商取引、電子決済、オンラインゲーム、オンラインバンキング、オンライントレーディング、宿泊・チケット予約、動画・音楽配信等のサービスを提供してもよい。実際には、認証サーバ100は、上記のようなWebサービスを提供する各種サーバと連携し、Webサービスを仲介してもよいし、Webサービスの処理を担当してもよい。
【0021】
また、認証サーバ100は、利用者Uに関する利用者情報を取得可能である。例えば、認証サーバ100は、利用者Uの性別、年代、居住地域といった利用者Uの属性に関する情報を取得する。そして、認証サーバ100は、利用者Uを示す識別情報(利用者ID等)とともに利用者Uの属性に関する情報を記憶して管理する。
【0022】
また、認証サーバ100は、利用者Uの端末装置10から、あるいは利用者ID等に基づいて各種サーバ等から、利用者Uの行動を示す各種の履歴情報(ログデータ)を取得する。例えば、認証サーバ100は、利用者Uの位置や日時の履歴である位置履歴を端末装置10から取得する。また、認証サーバ100は、利用者Uが入力した検索クエリの履歴である検索履歴を検索サーバ(検索エンジン)から取得する。また、認証サーバ100は、利用者Uが閲覧したコンテンツの履歴である閲覧履歴をコンテンツサーバから取得する。また、認証サーバ100は、利用者Uの商品購入や決済処理の履歴である購入履歴(決済履歴)を電子商取引サーバや決済処理サーバから取得する。また、認証サーバ100は、利用者Uのマーケットプレイスへの出品の履歴である出品履歴や販売履歴を電子商取引サーバや決済サーバから取得してもよい。また、認証サーバ100は、利用者Uの投稿の履歴である投稿履歴を口コミの投稿サービスを提供する投稿サーバやSNSサーバから取得する。
【0023】
〔1-1.実施例1〕
ここで、図1を参照して、実施形態に係る認証方法の実施例1について説明する。実施例1は、元のパスワードインターフェースの場合であり、認証サーバ100から端末装置10へはチャレンジを送付しない。認証サーバ100は端末装置10を信頼しているものとする。また、FIDO認証器50は既に登録されているものとする。また、秘密鍵(Private Key)と公開鍵(Public Key)との鍵ペアが端末装置10とFIDO認証器50とにそれぞれあらかじめ登録されていてもよい。
【0024】
例えば、図1に示すように、利用者Uの端末装置10は、事前に、認証サーバ100にパスワードを設定する(ステップS1)。このとき、端末装置10は、パスワード送付機能34Aにより、パスワードを認証サーバ100に送付するとともに、パスワード管理機能34Bにより、利用者UのID(Identifier)とパスワードを紐付けて端末装置10の内部のメモリ領域40Aに登録する。メモリ領域40Aは、セキュア領域であってもよい。セキュア領域は、セキュリティが確保されたメモリ領域である。端末装置10は、利用者UのIDとパスワードとの組を、認証サーバごとに登録する。また、認証サーバ100は、パスワード管理機能132Aにより、利用者UのIDとパスワードを紐付けて認証サーバ100の内部の認証情報データベース123に登録する。なお、利用者UのIDは、利用者Uの電話番号やメールアドレス等であってもよいし、認証サーバ100が発行する任意のアカウント(ID番号等)であってもよい。また、端末装置10は、パスワードとして、一般的な利用者が覚えられないような文字数(例えば、16文字や32文字、又はそれ以上の文字数)のパスワードを認証サーバ100に設定すると好ましい。
【0025】
続いて、認証サーバ100は、利用者Uの端末装置10に認証要求を行うとともに、サーバ情報を送付する(ステップS2)。このとき、認証サーバ100は、端末装置10にID及びパスワードの認証用のUI(ユーザインターフェース)を提供する。なお、認証サーバ100は、アプリ等の形式で、予め端末装置10にID及びパスワードの認証用のUIを提供していてもよい。この場合、認証サーバ100は、端末装置10にID及びパスワードの認証用のUIの表示を要求する。また、認証サーバ100は、端末装置100のブラウザからのアクセスに応じて返信するJavaScript(登録商標)プログラムによって当該ブラウザ上に自動生成することによってID及びパスワードの認証用のUIを提供してもよい。サーバ情報は、認証要求をしている認証サーバ100に関する情報である。なお、サーバ情報は、認証要求に含まれていてもよい。例えば、ID及びパスワードの認証用のUIの情報に、サーバ情報が含まれていてもよい。
【0026】
続いて、利用者Uの端末装置10は、利用者UのID及びパスワードを入力するためのパスワード画面を表示する(ステップS3)。このとき、端末装置10は、認証サーバ100から提供されたID及びパスワードの認証用のUIを表示する。
【0027】
図示しないが、利用者Uの端末装置10は、パスワード画面とともに、端末側でのFIDO認証を実行するためのFIDOボタンを表示する。利用者Uは、端末側でのFIDO認証を希望する場合には、このFIDOボタンを押す。例えば、端末装置10は、ブラウザ拡張機能(browser extension)で、利用者UによりFIDOボタンが押されたか判定する。端末装置10は、利用者UによりFIDOボタンが押されない場合、あるいはFIDO対応のパスワードマネージャーを実装していない場合には、普通に利用者UからID及びパスワードの入力を受け付けて、パスワード送付機能34Aにより、認証サーバ100に利用者UのID及びパスワードを送付する。そして、認証サーバ100は、従来通りの認証を実施する。反対に、端末装置10は、利用者UによりFIDOボタンが押された場合には、以下に示す処理を行う。
【0028】
続いて、利用者Uの端末装置10は、パスワード送付機能34Aにより、FIDO認証器50にチャレンジ及びサーバ情報を送付する(ステップS4)。実施例1では、端末装置10は、FIDO認証器50に送付されるチャレンジを生成する。チャレンジは、一度だけ有効なランダムな文字列であり、乱数を元に決めた毎回異なるデータ列である。
【0029】
続いて、FIDO認証器50は、利用者Uから取得した生体情報に基づいて、ユーザ検証を行う(ステップS5)。すなわち、FIDO認証器50は、FIDOの規定に従い、利用者Uの本人性を検証する。例えば、FIDO認証器50は、利用者Uにより提示された生体情報と、予めFIDO認証器50の内部のセキュア領域50Aに登録されている生体情報とを照合し、照合の結果、合致しているか判定することで、利用者Uの本人性を検証する。このとき、FIDO認証器50は、照合の結果、合致していれば、検証の対象者が利用者本人であると判定する。反対に、FIDO認証器50は、照合の結果、合致していなければ、検証の対象者が利用者本人ではないと判定する。
【0030】
なお、生体情報は、指紋、静脈、顔、虹彩及び声紋等のいずれか又はこれらの組合せ等であってもよい。本実施形態では、生体情報の一例として、指紋データを使用する。なお、本実施形態では、FIDO認証器50は、生体情報に基づく生体認証により本人性を確認しているが、実際には、本人性を確認するための手段は生体認証に限定されるものではない。例えば、FIDO認証器50は、ワンタイムパスワードを生成するトークンを用いた認証により本人性を確認してもよい。
【0031】
続いて、FIDO認証器50は、利用者Uの本人性を検証できた場合、秘密鍵の登録又は抽出を行う(ステップS6)。なお、秘密鍵(Private Key)と公開鍵(Public Key)との鍵ペアがFIDO認証器50と端末装置10とにあらかじめ登録されている場合には、秘密鍵の登録を行う必要はない。
【0032】
例えば、FIDO認証器50は、秘密鍵と公開鍵との鍵ペアがFIDO認証器50と端末装置10とにあらかじめ登録されていない場合、初回に、サーバ情報に基づいて認証サーバごとに秘密鍵と公開鍵との鍵ペアを生成し、サーバ情報に紐づけて秘密鍵を登録する。ここでは、FIDO認証器50は、認証サーバ100に対応する鍵ペアを生成する。秘密鍵は、サーバ情報に紐づけられてFIDO認証器50の内部のセキュア領域50Aに記憶される。このとき、FIDO認証器50は、秘密鍵と生体情報とを紐づけてFIDO認証器50の内部のセキュア領域50Aに登録してもよい。
【0033】
また、FIDO認証器50は、鍵ペアが登録済み(例えば2回目以降)である場合、登録済みの秘密鍵を抽出(検出)する。本実施形態では、FIDO認証器50は、利用者Uの本人性を検証できた場合、サーバ情報に基づいてFIDO認証器50の内部のセキュア領域50Aに登録されている秘密鍵を検索し、アクセスする。なお、FIDO認証器50は、秘密鍵を抽出できなかった場合(鍵ペアが登録されていなかった場合)には、上記の手順で、鍵ペアの生成・登録を実施してもよい。
【0034】
続いて、FIDO認証器50は、利用者Uの本人性を検証できた場合、チャレンジに対して上述の秘密鍵で署名(電子署名)を生成する(ステップS7)。例えば、FIDO認証器50は、上述の秘密鍵を使用してチャレンジやサーバ情報を含む情報に署名する。また、FIDO認証器50は、登録の場合には、サーバ情報および署名を生成した認証器に関する認証器情報や認証器の証明情報(アテステーション)を、あらかじめ保管されているアテステーション用秘密鍵で署名する。
【0035】
続いて、FIDO認証器50は、利用者Uの端末装置10に署名を送付する(ステップS8)。なお、FIDO認証器50は、秘密鍵と公開鍵との鍵ペアがFIDO認証器50と端末装置10とにあらかじめ登録されていない場合、初回のみ、公開鍵を送付する。このとき、FIDO認証器50は、利用者Uの端末装置10に、公開鍵とともに、署名付きチャレンジをレスポンスとして返送する。
【0036】
続いて、利用者Uの端末装置10は、FIDOサーバ機能34Cにより、署名検証(チャレンジの検証を含む)を行うとともに、パスワード管理機能34Bにより、メモリ領域40Aから利用者UのID及びパスワードを抽出する(ステップS9)。また、端末装置10は、初回(公開鍵の未登録時)、すなわちFIDO認証器50から公開鍵を受け取った場合には、パスワード管理機能34Bにより、端末装置10の内部のメモリ領域40Aに公開鍵を登録する。そして、端末装置10は、2回目以降(公開鍵の登録後)には、メモリ領域40Aに登録されている公開鍵を抽出する。このとき、端末装置10は、FIDOサーバ機能34Cにより、秘密鍵に対応した公開鍵を用いて署名検証を行い、適切な署名である場合のみ認証を成功とする。例えば、端末装置10は、公開鍵を用いて適正な署名であることを検証できれば、その公開鍵とペアの秘密鍵を確かにFIDO認証器50が所持しているということを暗号学的に確かめられるので、FIDO認証器50からのレスポンスを信頼できると判断する。また、端末装置10は、署名検証の結果、FIDO認証器50からのレスポンスを信頼できると判断した場合(適正な署名であることを検証した場合)、パスワード管理機能34Bにより、端末装置10の内部のメモリ領域40Aから利用者UのID及びパスワードを抽出して(読み出して)、パスワード画面の入力欄に自動入力する。
【0037】
続いて、利用者Uの端末装置10は、パスワード送付機能34Aにより、ID及びパスワードと、署名の検証結果とを認証サーバ100に送付する(ステップS10)。このとき、端末装置10は、パスワードと署名の検証結果との送付をもって、認証サーバ100にFIDO認証が完了したことを表明する。認証サーバ100は、端末装置10から受信した情報の内容に応じて、端末側でFIDO認証が実施されているかどうかを判断する。
【0038】
続いて、認証サーバ100は、パスワード管理機能132Aにより、利用者Uの端末装置10から送付されたID及びパスワードを検証する(ステップS11)。すなわち、認証サーバ100は、利用者UのID及びパスワードを使用して、パスワード認証を行う。
【0039】
〔1-2.実施例2〕
次に、図2を参照して、実施形態に係る認証方法の実施例2について説明する。図2は、実施形態に係る認証方法の実施例2を示す説明図である。実施例2は、通常のFIDO認証結果が返る場合であり、認証サーバ100から端末装置10へチャレンジを送付する。なお、実施例2のうち、以下に示すステップS1、ステップS3~S8については、基本的に実施例1と同様である。
【0040】
例えば、図2に示すように、利用者Uの端末装置10は、事前に、認証サーバ100にパスワードを設定する(ステップS1)。このとき、端末装置10は、パスワード送付機能34Aにより、パスワードを認証サーバ100に送付するとともに、パスワード管理機能34Bにより、利用者UのIDとパスワードを紐付けて端末装置10の内部のメモリ領域40Aに登録する。また、認証サーバ100は、パスワード管理機能132Aにより、利用者UのIDとパスワードを紐付けて認証サーバ100の内部の認証情報データベース123に登録する。
【0041】
続いて、認証サーバ100は、利用者Uの端末装置10に認証要求を行うとともに、チャレンジ及びサーバ情報を送付する(ステップS2A)。このとき、認証サーバ100は、チャレンジ管理機能132Bによりチャレンジを生成してサーバ情報とともに端末装置10に送付する。
【0042】
続いて、利用者Uの端末装置10は、パスワード画面を表示する(ステップS3)。続いて、利用者Uの端末装置10は、パスワード送付機能34Aにより、FIDO認証器50にチャレンジ及びサーバ情報を送付する(ステップS4)。実施例2では、端末装置10は、認証サーバ100から送付されたチャレンジ及びサーバ情報を、FIDO認証器50に転送する。
【0043】
続いて、FIDO認証器50は、利用者Uから取得した生体情報に基づいて、ユーザ検証を行う(ステップS5)。続いて、FIDO認証器50は、利用者Uの本人性を検証できた場合、秘密鍵の登録又は抽出を行う(ステップS6)。例えば、FIDO認証器50は、初回(秘密鍵の未登録時)には、サーバ情報に基づいて認証サーバごとに秘密鍵と公開鍵との鍵ペアを生成し、サーバ情報に紐づけて秘密鍵を登録する。そして、FIDO認証器50は、2回目以降(秘密鍵の登録後)には、サーバ情報に基づいて、登録されている秘密鍵を検索し、該当する秘密鍵を抽出する。続いて、FIDO認証器50は、利用者Uの本人性を検証できた場合、チャレンジに対して当該秘密鍵で署名を生成する(ステップS7)。続いて、FIDO認証器50は、利用者Uの端末装置10に署名を含むレスポンスを送付する(ステップS8)。このとき、FIDO認証器50は、利用者Uの端末装置10に、署名付きチャレンジをレスポンスとして返送する。なお、FIDO認証器50は、初回(公開鍵の未登録時)には、公開鍵も送付する。
【0044】
続いて、利用者Uの端末装置10は、FIDOサーバ機能34Cにより、署名検証を行うとともに、パスワード管理機能34Bにより、メモリ領域40Aから利用者UのID及びパスワードを抽出する(ステップS9A)。また、端末装置10は、初回(公開鍵の未登録時)には、パスワード管理機能34Bにより、端末装置10の内部のメモリ領域40Aに公開鍵を登録し、2回目以降(公開鍵の登録後)には、メモリ領域40Aに登録されている公開鍵を抽出する。このとき、端末装置10は、FIDOサーバ機能34Cにより、秘密鍵に対応した公開鍵を用いて署名検証を行い、適切な署名である場合のみ認証を成功とする。
【0045】
続いて、利用者Uの端末装置10は、パスワード送付機能34Aにより、ID及びパスワードと、署名の検証結果(チャレンジへの署名を含む)とを認証サーバ100に送付する(ステップS10A)。このとき、認証サーバ100は、端末装置10から署名の検証結果(チャレンジへの署名を含む)を受信することで、端末側でFIDO認証が実施されていると判断する。
【0046】
続いて、認証サーバ100は、チャレンジ管理機能132Bにより、利用者Uの端末装置10から送付されたチャレンジを検証する(ステップS11)。例えば、認証サーバ100は、チャレンジ管理機能132Bにより生成して端末装置10に送付したチャレンジと、端末装置10から送付されたチャレンジとを照合し、合致しているか検証する。
【0047】
〔1-3.実施例3〕
次に、図3を参照して、実施形態に係る認証方法の実施例3について説明する。図3は、実施形態に係る認証方法の実施例3を示す説明図である。実施例3は、クライアントから認証器へ送付するチャレンジとは別に、クライアントがサーバからの第2チャレンジに署名する場合であり、認証サーバ100から端末装置10へ第2チャレンジを送付する。すなわち、実施例3では、チャレンジが2種類存在する。なお、実施例3のうち、以下に示すステップS1、ステップS3~S8については、基本的に実施例1と同様である。
【0048】
例えば、図3に示すように、利用者Uの端末装置10は、事前に、認証サーバ100にパスワードを設定する(ステップS1)。このとき、端末装置10は、パスワード送付機能34Aにより、パスワードを認証サーバ100に送付するとともに、パスワード管理機能34Bにより、利用者UのIDとパスワードを紐付けて端末装置10の内部のメモリ領域40Aに登録する。また、認証サーバ100は、パスワード管理機能132Aにより、利用者UのIDとパスワードを紐付けて認証サーバ100の内部の認証情報データベース123に登録する。
【0049】
続いて、認証サーバ100は、利用者Uの端末装置10に認証要求を行うとともに、第2チャレンジ及びサーバ情報を送付する(ステップS2B)。このとき、認証サーバ100は、端末装置10にID及びパスワードの認証用のUIを提供する。
【0050】
続いて、利用者Uの端末装置10は、パスワード画面を表示する(ステップS3)。続いて、利用者Uの端末装置10は、パスワード送付機能34Aにより、FIDO認証器50にチャレンジ及びサーバ情報を送付する(ステップS4)。実施例3では、端末装置10は、FIDO認証器50に送付されるチャレンジを生成する。このFIDO認証器50に送付されるチャレンジと、認証サーバ100から送付された第2チャレンジとは、互いに異なるデータであり、同一ではない。なお、実際には、チャレンジと第2チャレンジとを同一のデータとすることは可能である。この場合、同一のデータをチャレンジ又は第2チャレンジとして使い分けることになる。
【0051】
続いて、FIDO認証器50は、利用者Uから取得した生体情報に基づいて、ユーザ検証を行う(ステップS5)。続いて、FIDO認証器50は、利用者Uの本人性を検証できた場合、秘密鍵の登録又は抽出を行う(ステップS6)。例えば、初回(秘密鍵の未登録時)は、サーバ情報に基づいて認証サーバごとに秘密鍵と公開鍵との鍵ペアを生成し、サーバ情報に紐づけて秘密鍵を登録する。2回目以降(秘密鍵の登録後)は、サーバ情報に基づいて、登録されている秘密鍵を検索し、該当する秘密鍵を抽出する。続いて、FIDO認証器50は、利用者Uの本人性を検証できた場合、チャレンジに対して当該秘密鍵で署名を生成する(ステップS7)。続いて、FIDO認証器50は、利用者Uの端末装置10に署名を含むレスポンスを送付する(ステップS8)。このとき、FIDO認証器50は、利用者Uの端末装置10に、署名付きチャレンジをレスポンスとして返送する。なお、FIDO認証器50は、初回(公開鍵の未登録時)には、公開鍵も送付する。
【0052】
続いて、利用者Uの端末装置10は、FIDOサーバ機能34Cにより、署名検証を行うとともに、パスワード管理機能34Bにより、メモリ領域40Aから利用者UのIDを抽出した上で、第2チャレンジに署名する(ステップS9B)。また、端末装置10は、初回(公開鍵の未登録時)には、パスワード管理機能34Bにより、端末装置10の内部のメモリ領域40Aに公開鍵を登録し、2回目以降(公開鍵の登録後)には、メモリ領域40Aに登録されている公開鍵を抽出する。このとき、端末装置10は、FIDOサーバ機能34Cにより、秘密鍵に対応した公開鍵を用いて署名検証を行い、適切な署名である場合のみ認証を成功とする。そして、端末装置10は、認証に成功した場合、第2チャレンジに対して秘密鍵で署名を生成する。秘密鍵は、端末装置10の内部のセキュア領域に記憶される。なお、端末装置10は、第2チャレンジへの署名に用いられる秘密鍵と公開鍵との鍵ペアが端末装置10と認証サーバ100とにあらかじめ登録されていない場合、初回のみ、秘密鍵と公開鍵との鍵ペアを生成し、端末装置10の内部のセキュア領域に秘密鍵を記憶する。
【0053】
続いて、利用者Uの端末装置10は、パスワード送付機能34Aにより、ID及びパスワードと、第2チャレンジへの署名(署名付き第2チャレンジ)とを認証サーバ100に送付する(ステップS10B)。なお、端末装置10は、第2チャレンジへの署名に用いられる秘密鍵と公開鍵との鍵ペアが端末装置10と認証サーバ100とにあらかじめ登録されていない場合、初回のみ、端末装置10は、第2チャレンジへの署名とともに、当該署名に使用した秘密鍵に対応する公開鍵も認証サーバ100に送付する。すなわち、利用者Uの端末装置10は、認証サーバ100に、署名付き第2チャレンジをレスポンスとして返送する。このとき、利用者Uの端末装置10は、パスワード送付機能34Aにより、ID及びパスワードと、第2チャレンジへの署名とともに、FIDO認証器50で生成された署名(チャレンジへの署名)の検証結果を認証サーバ100に送付してもよい。あるいは、端末装置10は、第2チャレンジへの署名の送付をもって、認証サーバ100にFIDO認証が完了したことを表明してもよい。すなわち、第2チャレンジへの署名の送付をもって、FIDO認証器50で生成された署名(チャレンジへの署名)の検証結果の送付としてもよい。
【0054】
続いて、認証サーバ100は、パスワード管理機能132Aにより、利用者Uの端末装置10から送付されたID及びパスワードを検証するとともに、第2チャレンジへの署名検証を行う(ステップS11)。すなわち、認証サーバ100は、利用者UのID及びパスワードを使用して、パスワード認証を行う。また、認証サーバ100は、秘密鍵に対応した公開鍵を用いて第2チャレンジへの署名検証を行い、適切な署名である場合のみ認証を成功とする。さらに、認証サーバ100は、チャレンジ管理機能132Bにより、利用者Uの端末装置10から送付された第2チャレンジを検証する。
【0055】
なお、上記の実施例1、2及び3は、選択的に実施されてもよいし、適宜組み合わせて実施されてもよい。例えば、認証サーバ100は、信頼している端末装置10に対しては実施例1又は2の認証方法を適用し、まだ信頼していない端末装置10に対しては実施例3の認証方法を適用するようにしてもよい。この場合、認証サーバ100は、1回目(初回)の認証時には実施例3の認証方法を適用し、2回目以降の認証時には実施例1又は2の認証方法を適用してもよい。あるいは、認証サーバ100は、実施例1、2及び3の認証方法を併用してもよい。すなわち、実施例1、2及び3の認証方法を同時に実施してもよい。
【0056】
〔1-4.本実施形態の特徴〕
本願に係る端末装置10は、FIDO認証器50にチャレンジを送付し、FIDO認証器50から署名付きチャレンジと公開鍵とを受け取ると、公開鍵を用いて署名検証を行い、署名の検証結果を認証サーバ100に提供する。
【0057】
例えば、端末装置10は、認証サーバ100から利用者UのID及びパスワードの認証要求を受け付けると、FIDO認証器50にチャレンジを送付し、FIDO認証器50から署名付きチャレンジと公開鍵とを受け取ると、公開鍵を用いて署名検証を行い、利用者UのID及びパスワードとともに、署名の検証結果を認証サーバ100に提供する。
【0058】
また、端末装置10は、利用者UのID及びパスワードを入力するためのパスワード画面に表示された検証要求ボタンが押された場合に、FIDO認証器50にチャレンジを送付する。そして、端末装置10は、検証要求ボタンが押された場合には、利用者UのID及びパスワードとともに、署名の検証結果を認証サーバ100に提供する。反対に、検証要求ボタンが押されなかった場合には、利用者UのID及びパスワードのみ認証サーバ100に提供する。
【0059】
また、端末装置10は、認証サーバ100から送付されたチャレンジを受け取ると、認証サーバ100から送付されたチャレンジをFIDO認証器50に送付(転送)する。そして、端末装置10は、FIDO認証器50から署名付きチャレンジと公開鍵とを受け取ると、公開鍵を用いて署名検証を行い、署名の検証結果とともに、署名付きチャレンジをレスポンスとして認証サーバ100に返送する。
【0060】
また、端末装置10は、認証サーバ100から送付された第2チャレンジを受け取り、第2チャレンジとは異なるチャレンジをFIDO認証器50に送付する。次に、端末装置10は、FIDO認証器50から署名付きチャレンジと公開鍵とを受け取ると、公開鍵を用いて署名検証を行う。端末装置10は、署名検証を行った結果、認証に成功した場合、第2チャレンジへの署名を生成する。そして、端末装置10は、第2チャレンジへの署名をレスポンスとして認証サーバ100に返送する。なお、端末装置10は、第2チャレンジへの署名によって、該端末装置10の完全性を示す。
【0061】
ここで、端末装置10は、署名の検証結果を、FIDO認証機能とパスワード認証機能との両機能を併せ持つ認証サーバ100に提供する。また、端末装置10は、署名の検証結果の提供をもって、FIDO認証が完了したことを表明する。
【0062】
また、本願に係る認証サーバ100は、端末装置10に認証要求を行い、端末装置10から、利用者UのID及びパスワードとともに、FIDO認証器50で生成された署名の検証結果を受け取ると、署名の検証結果をもってFIDO認証が完了したと判断し、利用者UのID及びパスワードを検証する。なお、認証サーバ100は、FIDO認証機能とパスワード認証機能との両機能を併せ持つ。
【0063】
また、認証サーバ100は、端末装置10にチャレンジを送付する。次に、認証サーバ100は、端末装置10から、署名の検証結果とともに、FIDO認証器50で署名が生成されたチャレンジをレスポンスとして受け取る。そして、認証サーバ100は、端末装置10からレスポンスとして送付されたチャレンジを検証する。
【0064】
また、認証サーバ100は、端末装置10に第2チャレンジを送付する。次に、認証サーバ100は、FIDO認証を実施した端末装置10から、端末装置10で生成された第2チャレンジへの署名をレスポンスとして受け取る。そして、認証サーバ100は、端末装置10からレスポンスとして送付された第2チャレンジへの署名を検証する。
【0065】
以上のように、本実施形態では、サーバ側がパスワード認証機能及びFIDO認証機能を両方備えている場合に、端末装置が、サーバ側から認証要求やチャレンジを受信した時に、自装置にFIDOの機能があるかどうか判断して、自装置にFIDO機能がある場合は、自装置でFIDO認証を実施する。端末装置は、このような機能を有するパスワードマネージャーのアプリをインストールしている。また、パスワード画面上に、FIDO認証を実施するかの問い合わせのためのFIDOボタンがある。端末装置は、ブラウザ拡張機能でFIDOボタンの押下を判別して、FIDOボタンが押された場合、FIDO認証を実施する。サーバ側は、端末装置から受信した情報の内容に応じて、FIDO認証を実施しているかどうかを判断する。例えば、サーバ側は、端末装置からFIDO認証結果やチャレンジの結果を送信した場合は、FIDO認証を実施しない。
【0066】
〔2.認証システムの構成例〕
次に、図4を用いて、実施形態に係る認証サーバ100が含まれる認証システム1の構成について説明する。図4は、実施形態に係る認証システム1の構成例を示す図である。図4に示すように、実施形態に係る認証システム1は、端末装置10とFIDO認証器50と認証サーバ100とを含む。端末装置10と認証サーバ100とは、ネットワークNを介して、有線又は無線により通信可能に接続される。ネットワークNは、例えば、LAN(Local Area Network)や、インターネット等のWAN(Wide Area Network)である。
【0067】
また、図4に示す認証システム1に含まれる各装置の数は図示したものに限られない。例えば、図4では、図示の簡略化のため、端末装置10及び認証サーバ100をそれぞれ1台のみ示したが、これはあくまでも例示であって限定されるものではなく、それぞれ2台以上であってもよい。
【0068】
端末装置10は、利用者Uによって使用される情報処理装置である。例えば、端末装置10は、スマートフォンやタブレット端末等のスマートデバイス、PC(Personal Computer)、フィーチャーフォン、PDA(Personal Digital Assistant)、通信機能を備えたゲーム機、カーナビゲーションシステム、スマートウォッチやヘッドマウントディスプレイ等のウェアラブルデバイス(Wearable Device)、スマートグラス等である。
【0069】
また、かかる端末装置10は、LTE(Long Term Evolution)、4G(4th Generation)、5G(5th Generation:第5世代移動通信システム)等の無線通信網や、Bluetooth(登録商標)、無線LAN(Local Area Network)等の近距離無線通信を介してネットワークNに接続し、認証サーバ100と通信することができる。
【0070】
認証サーバ100は、例えばPCやサーバ装置、あるいはメインフレーム又はワークステーション等である。なお、認証サーバ100は、クラウドコンピューティングにより実現されてもよい。
【0071】
〔3.端末装置の構成例〕
次に、図5を用いて、端末装置10の構成について説明する。図5は、端末装置10の構成例を示す図である。図5に示すように、端末装置10は、通信部11と、表示部12と、入力部13と、測位部14と、センサ部20と、制御部30(コントローラ)と、記憶部40とを備える。
【0072】
(通信部11)
通信部11は、ネットワークN(図4参照)と有線又は無線で接続され、ネットワークNを介して、認証サーバ100との間で情報の送受信を行う。例えば、通信部11は、NIC(Network Interface Card)やアンテナ等によって実現される。
【0073】
(表示部12)
表示部12は、位置情報等の各種情報を表示する表示デバイスである。例えば、表示部12は、液晶ディスプレイ(LCD:Liquid Crystal Display)や有機ELディスプレイ(Organic Electro-Luminescent Display)である。また、表示部12は、タッチパネル式のディスプレイであるが、これに限定されるものではない。
【0074】
(入力部13)
入力部13は、利用者Uから各種操作を受け付ける入力デバイスである。例えば、入力部13は、文字や数字等を入力するためのボタン等を有する。なお、入力部13は、入出力ポート(I/O port)やUSB(Universal Serial Bus)ポート等であってもよい。また、表示部12がタッチパネル式のディスプレイである場合、表示部12の一部が入力部13として機能する。また、入力部13は、利用者Uから音声入力を受け付けるマイク等であってもよい。マイクはワイヤレスであってもよい。
【0075】
(測位部14)
測位部14は、GPS(Global Positioning System)の衛星から送出される信号(電波)を受信し、受信した信号に基づいて、自装置である端末装置10の現在位置を示す位置情報(例えば、緯度及び経度)を取得する。すなわち、測位部14は、端末装置10の位置を測位する。なお、GPSは、GNSS(Global Navigation Satellite System)の一例に過ぎない。
【0076】
また、測位部14は、GPS以外にも、種々の手法により位置を測位することができる。例えば、測位部14は、位置補正等のための補助的な測位手段として、下記のように、端末装置10の様々な通信機能を利用して位置を測位してもよい。
【0077】
(Wi-Fi測位)
例えば、測位部14は、端末装置10のWi-Fi(登録商標)通信機能や、各通信会社が備える通信網を利用して、端末装置10の位置を測位する。具体的には、測位部14は、Wi-Fi通信等を行い、付近の基地局やアクセスポイントとの距離を測位することにより、端末装置10の位置を測位する。
【0078】
(ビーコン測位)
また、測位部14は、端末装置10のBluetooth(登録商標)機能を利用して位置を測位してもよい。例えば、測位部14は、Bluetooth(登録商標)機能によって接続されるビーコン(beacon)発信機と接続することにより、端末装置10の位置を測位する。
【0079】
(地磁気測位)
また、測位部14は、予め測定された構造物の地磁気のパターンと、端末装置10が備える地磁気センサとに基づいて、端末装置10の位置を測位する。
【0080】
(RFID測位)
また、例えば、端末装置10が駅改札や店舗等で使用される非接触型ICカードと同等のRFID(Radio Frequency Identification)タグの機能を備えている場合、もしくはRFIDタグを読み取る機能を備えている場合、端末装置10によって決済等が行われた情報とともに、使用された位置が記録される。測位部14は、かかる情報を取得することで、端末装置10の位置を測位してもよい。また、位置は、端末装置10が備える光学式センサや、赤外線センサ等によって測位されてもよい。
【0081】
測位部14は、必要に応じて、上述した測位手段の一つ又は組合せを用いて、端末装置10の位置を測位してもよい。
【0082】
(センサ部20)
センサ部20は、端末装置10に搭載又は接続される各種のセンサを含む。なお、接続は、有線接続、無線接続を問わない。例えば、センサ類は、ウェアラブルデバイスやワイヤレスデバイス等、端末装置10以外の検知装置であってもよい。図5に示す例では、センサ部20は、加速度センサ21と、ジャイロセンサ22と、気圧センサ23と、気温センサ24と、音センサ25と、光センサ26と、磁気センサ27と、画像センサ(カメラ)28とを備える。
【0083】
なお、上記した各センサ21~28は、あくまでも例示であって限定されるものではない。すなわち、センサ部20は、各センサ21~28のうちの一部を備える構成であってもよいし、各センサ21~28に加えてあるいは代えて、湿度センサ等その他のセンサを備えてもよい。
【0084】
加速度センサ21は、例えば、3軸加速度センサであり、端末装置10の移動方向、速度、及び、加速度等の端末装置10の物理的な動きを検知する。ジャイロセンサ22は、端末装置10の角速度等に基づいて3軸方向の傾き等の端末装置10の物理的な動きを検知する。気圧センサ23は、例えば端末装置10の周囲の気圧を検知する。
【0085】
端末装置10は、上記した加速度センサ21やジャイロセンサ22、気圧センサ23等を備えることから、これらの各センサ21~23等を利用した歩行者自律航法(PDR:Pedestrian Dead-Reckoning)等の技術を用いて端末装置10の位置を測位することが可能になる。これにより、GPS等の測位システムでは取得することが困難な屋内での位置情報を取得することが可能になる。
【0086】
例えば、加速度センサ21を利用した歩数計により、歩数や歩くスピード、歩いた距離を算出することができる。また、ジャイロセンサ22を利用して、利用者Uの進行方向や視線の方向、体の傾きを知ることができる。また、気圧センサ23で検知した気圧から、利用者Uの端末装置10が存在する高度やフロアの階数を知ることもできる。
【0087】
気温センサ24は、例えば端末装置10の周囲の気温を検知する。音センサ25は、例えば端末装置10の周囲の音を検知する。光センサ26は、端末装置10の周囲の照度を検知する。磁気センサ27は、例えば端末装置10の周囲の地磁気を検知する。画像センサ28は、端末装置10の周囲の画像を撮像する。
【0088】
上記した気圧センサ23、気温センサ24、音センサ25、光センサ26及び画像センサ28は、それぞれ気圧、気温、音、照度を検知したり、周囲の画像を撮像したりすることで、端末装置10の周囲の環境や状況等を検知することができる。また、端末装置10の周囲の環境や状況等から、端末装置10の位置情報の精度を向上させることが可能になる。
【0089】
(制御部30)
制御部30は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM、入出力ポート等を有するマイクロコンピュータや各種の回路を含む。また、制御部30は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路等のハードウェアで構成されてもよい。制御部30は、送信部31と、受信部32と、処理部33と、認証処理部34とを備える。
【0090】
(送信部31)
送信部31は、例えば入力部13を用いて利用者Uにより入力された各種情報や、端末装置10に搭載又は接続された各センサ21~28によって検知された各種情報、測位部14によって測位された端末装置10の位置情報等を、通信部11を介して認証サーバ100へ送信することができる。
【0091】
(受信部32)
受信部32は、通信部11を介して、認証サーバ100から提供される各種情報や、認証サーバ100からの各種情報の要求を受信することができる。
【0092】
(処理部33)
処理部33は、表示部12等を含め、端末装置10全体を制御する。例えば、処理部33は、送信部31によって送信される各種情報や、受信部32によって受信された認証サーバ100からの各種情報を表示部12へ出力して表示させることができる。
【0093】
(認証処理部34)
認証処理部34は、FIDO対応のパスワードマネージャーにより実現され、FIDO認証器50との間でFIDO認証を実施する。なお、認証処理部34は、上記の処理部33により実現されてもよい。認証処理部34は、パスワード送付機能34Aと、パスワード管理機能34Bと、FIDOサーバ機能34Cとを有する。
【0094】
(パスワード送付機能34A)
パスワード送付機能34Aは、認証サーバ100に利用者UのIDとパスワードを送付する。また、パスワード送付機能34Aは、認証サーバ100からサーバ情報とともに認証情報やチャレンジを受信する。また、パスワード送付機能34Aは、FIDO認証器50にチャレンジとサーバ情報とをFIDO認証器50に送付する。さらに、パスワード送付機能34Aは、ID及びパスワードと、FIDO認証器50から送付された署名の検証結果とを認証サーバ100に送付する。このとき、パスワード送付機能34Aは、FIDO認証器50から送付された署名の検証結果の代わりに/とともに、認証サーバ100から送付された第2チャレンジに署名して、第2チャレンジへの署名を認証サーバ100に送付してもよい。なお、パスワード送付機能34Aは、上記の送信部31と受信部32とにより実現されてもよい。
【0095】
(パスワード管理機能34B)
パスワード管理機能34Bは、利用者UのID(Identifier)とパスワードを紐付けて端末装置10の内部のメモリ領域40Aに登録して管理する。また、パスワード管理機能34Bは、端末装置10の内部のメモリ領域40Aから利用者UのID及びパスワードを抽出する。また、パスワード管理機能34Bは、FIDO認証器50から送付された公開鍵を、利用者UのID及びパスワードと紐付けて端末装置10の内部のメモリ領域40Aに登録して管理する。
【0096】
(FIDOサーバ機能34C)
FIDOサーバ機能34Cは、FIDO認証器50から、秘密鍵で生成された署名と、秘密鍵に対応する公開鍵とを受け取り、FIDO認証器50から送付された公開鍵を用いて署名検証を行う。例えば、FIDOサーバ機能34Cは、FIDO認証器50から、署名付きチャレンジと公開鍵とを受け取り、公開鍵を用いて署名検証を行う。
【0097】
このように、制御部30は、FIDO認証器50にチャレンジを送付する送付部と、FIDO認証器50から署名付きチャレンジと公開鍵とを受け取る受付部と、公開鍵を用いて署名検証を行う検証部と、署名の検証結果を認証サーバに提供する提供部とを備える。このとき、上記の送信部31、受信部32、処理部33及び認証処理部34は、送付部、受付部、検証部及び提供部として機能する。
【0098】
また、受付部は、認証サーバ100から利用者UのID及びパスワードの認証要求を受け付ける。そして、提供部は、利用者UのID及びパスワードとともに、署名の検証結果を認証サーバ100に提供する。
【0099】
また、送付部は、利用者UのID及びパスワードを入力するためのパスワード画面に表示された検証要求ボタンが押された場合に、FIDO認証器50にチャレンジを送付する。そして、提供部は、検証要求ボタンが押された場合には、利用者UのID及びパスワードとともに、署名の検証結果を認証サーバ100に提供し、検証要求ボタンが押されなかった場合には、利用者UのID及びパスワードのみ認証サーバ100に提供する。
【0100】
また、受付部は、認証サーバ100から送付されたチャレンジを受け取る。次に、送付部は、認証サーバ100から送付されたチャレンジをFIDO認証器50に送付する。そして、提供部は、署名の検証結果とともに、署名付きチャレンジをレスポンスとして認証サーバ100に返送する。
【0101】
また、受付部は、認証サーバ100から送付された第2チャレンジを受け取る。次に、送付部は、第2チャレンジとは異なるチャレンジをFIDO認証器50に送付する。次に、受付部は、FIDO認証器50から署名付きチャレンジと公開鍵とを受け取る。次に、検証部は、公開鍵を用いて署名検証を行った結果、認証に成功した場合、第2チャレンジへの署名を生成する。そして、提供部は、第2チャレンジへの署名をレスポンスとして認証サーバ100に返送する。なお、提供部は、第2チャレンジへの署名によって、該端末装置10の完全性を示す。
【0102】
また、提供部は、署名の検証結果を、FIDO認証機能とパスワード認証機能との両機能を併せ持つ認証サーバ100に提供する。また、提供部は、署名の検証結果の提供をもって、FIDO認証が完了したことを表明する。
【0103】
(記憶部40)
記憶部40は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク等の記憶装置によって実現される。かかる記憶部40には、各種プログラムや各種データ等が記憶される。本実施形態では、記憶部40のうち、端末装置10の内部のメモリ領域40Aに、利用者UのIDとパスワードと公開鍵とを記憶する。
【0104】
〔4.認証サーバの構成例〕
次に、図6を用いて、実施形態に係る認証サーバ100の構成について説明する。図6は、実施形態に係る認証サーバ100の構成例を示す図である。図6に示すように、認証サーバ100は、通信部110と、記憶部120と、制御部130とを有する。
【0105】
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。また、通信部110は、ネットワークN(図4参照)と有線又は無線で接続される。
【0106】
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現される。図6に示すように、記憶部120は、利用者情報データベース121と、履歴情報データベース122と、認証情報データベース123とを有する。
【0107】
(利用者情報データベース121)
利用者情報データベース121は、利用者Uに関する利用者情報を記憶する。例えば、利用者情報データベース121は、利用者Uの属性等の種々の情報を記憶する。図7は、利用者情報データベース121の一例を示す図である。図7に示した例では、利用者情報データベース121は、「利用者ID(Identifier)」、「年齢」、「性別」、「自宅」、「勤務地」、「興味」といった項目を有する。
【0108】
「利用者ID」は、利用者Uを識別するための識別情報を示す。なお、「利用者ID」は、利用者Uの連絡先(電話番号、メールアドレス等)であってもよいし、利用者Uの端末装置10を識別するための識別情報であってもよい。
【0109】
また、「年齢」は、利用者IDにより識別される利用者Uの年齢を示す。なお、「年齢」は、利用者Uの具体的な年齢(例えば35歳など)を示す情報であってもよいし、利用者Uの年代(例えば30代など)を示す情報であってもよい。あるいは、「年齢」は、利用者Uの生年月日を示す情報であってもよいし、利用者Uの世代(例えば80年代生まれなど)を示す情報であってもよい。また、「性別」は、利用者IDにより識別される利用者Uの性別を示す。
【0110】
また、「自宅」は、利用者IDにより識別される利用者Uの自宅の位置情報を示す。なお、図7に示す例では、「自宅」は、「LC11」といった抽象的な符号を図示するが、緯度経度情報等であってもよい。また、例えば、「自宅」は、地域名や住所であってもよい。
【0111】
また、「勤務地」は、利用者IDにより識別される利用者Uの勤務地(学生の場合は学校)の位置情報を示す。なお、図7に示す例では、「勤務地」は、「LC12」といった抽象的な符号を図示するが、緯度経度情報等であってもよい。また、例えば、「勤務地」は、地域名や住所であってもよい。
【0112】
また、「興味」は、利用者IDにより識別される利用者Uの興味を示す。すなわち、「興味」は、利用者IDにより識別される利用者Uが関心の高い対象を示す。例えば、「興味」は、利用者Uが検索エンジンに入力して検索した検索クエリ(キーワード)等であってもよい。なお、図7に示す例では、「興味」は、各利用者Uに1つずつ図示するが、複数であってもよい。
【0113】
例えば、図7に示す例において、利用者ID「U1」により識別される利用者Uの年齢は、「20代」であり、性別は、「男性」であることを示す。また、例えば、利用者ID「U1」により識別される利用者Uは、自宅が「LC11」であることを示す。また、例えば、利用者ID「U1」により識別される利用者Uは、勤務地が「LC12」であることを示す。また、例えば、利用者ID「U1」により識別される利用者Uは、「スポーツ」に興味があることを示す。
【0114】
ここで、図7に示す例では、「U1」、「LC11」及び「LC12」といった抽象的な値を用いて図示するが、「U1」、「LC11」及び「LC12」には、具体的な文字列や数値等の情報が記憶されるものとする。以下、他の情報に関する図においても、抽象的な値を図示する場合がある。
【0115】
なお、利用者情報データベース121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、利用者情報データベース121は、利用者Uの端末装置10に関する各種情報を記憶してもよい。また、利用者情報データベース121は、利用者Uのデモグラフィック(人口統計学的属性)、サイコグラフィック(心理学的属性)、ジオグラフィック(地理学的属性)、ベヘイビオラル(行動学的属性)等の属性に関する情報を記憶してもよい。例えば、利用者情報データベース121は、氏名、家族構成、出身地(地元)、職業、職位、収入、資格、居住形態(戸建、マンション等)、車の有無、通学・通勤時間、通学・通勤経路、定期券区間(駅、路線等)、利用頻度の高い駅(自宅・勤務地の最寄駅以外)、習い事(場所、時間帯等)、趣味、興味、ライフスタイル等の情報を記憶してもよい。
【0116】
(履歴情報データベース122)
履歴情報データベース122は、利用者Uの行動を示す履歴情報(ログデータ)に関する各種情報を記憶する。図8は、履歴情報データベース122の一例を示す図である。図8に示した例では、履歴情報データベース122は、「利用者ID」、「位置履歴」、「検索履歴」、「閲覧履歴」、「購買履歴」、「投稿履歴」といった項目を有する。
【0117】
「利用者ID」は、利用者Uを識別するための識別情報を示す。また、「位置履歴」は、利用者Uの位置や移動の履歴である位置履歴を示す。また、「検索履歴」は、利用者Uが入力した検索クエリの履歴である検索履歴を示す。また、「閲覧履歴」は、利用者Uが閲覧したコンテンツの履歴である閲覧履歴を示す。また、「購買履歴」は、利用者Uによる購買の履歴である購買履歴を示す。また、「投稿履歴」は、利用者Uによる投稿の履歴である投稿履歴を示す。なお、「投稿履歴」は、利用者Uの所有物に関する質問を含んでいてもよい。
【0118】
例えば、図8に示す例において、利用者ID「U1」により識別される利用者Uは、「位置履歴#1」の通りに移動し、「検索履歴#1」の通りに検索し、「閲覧履歴#1」の通りにコンテンツを閲覧し、「購買履歴#1」の通りに所定の店舗等で所定の商品等を購入し、「投稿履歴」の通りに投稿したことを示す。
【0119】
ここで、図8に示す例では、「U1」、「位置履歴#1」、「検索履歴#1」、「閲覧履歴#1」、「購買履歴#1」及び「投稿履歴#1」といった抽象的な値を用いて図示するが、「U1」、「位置履歴#1」、「検索履歴#1」、「閲覧履歴#1」、「購買履歴#1」及び「投稿履歴#1」には、具体的な文字列や数値等の情報が記憶されるものとする。
【0120】
なお、履歴情報データベース122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、履歴情報データベース122は、利用者Uの所定のサービスの利用履歴等を記憶してもよい。また、履歴情報データベース122は、利用者Uの実店舗の来店履歴又は施設の訪問履歴等を記憶してもよい。また、履歴情報データベース122は、利用者Uの端末装置10を用いた決済(電子決済)での決済履歴等を記憶してもよい。
【0121】
(認証情報データベース123)
認証情報データベース123は、利用者Uの認証情報に関する各種情報を記憶する。図9は、認証情報データベース123の一例を示す図である。図9に示した例では、認証情報データベース123は、「利用者ID」、「パスワード」といった項目を有する。
【0122】
「利用者ID」は、利用者Uを識別するための識別情報を示す。また、「パスワード」は、利用者Uの認証に用いられるパスワードを示す。パスワードは、利用者IDに紐付けられている。すなわち、認証情報データベース123は、利用者IDとパスワードとの組を保管する。
【0123】
例えば、図9に示す例において、利用者ID「U1」には、「パスワード#1」が紐付けられている。利用者ID「U1」により識別される利用者Uは、「パスワード#1」を用いてパスワード認証を行った場合、パスワード認証に成功することを示す。
【0124】
ここで、図8に示す例では、「U1」及び「パスワード#1」といった抽象的な値を用いて図示するが、「U1」及び「パスワード#1」には、具体的な文字列や数値等の情報が記憶されるものとする。
【0125】
なお、認証情報データベース123は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、認証情報データベース123は、利用者Uの端末装置10が生成した秘密鍵と公開鍵との鍵ペアのうち公開鍵を記憶してもよい。このとき、認証情報データベース123は、利用者Uの端末装置10から送付された公開鍵を、利用者ID及びパスワードと紐付けて記憶してもよい。また、認証情報データベース123は、利用者Uの端末装置10に送付される認証要求やチャレンジ、及び/又は第2チャレンジに関する情報を記憶してもよい。このとき、認証情報データベース123は、ID及びパスワードの認証用のUIに関する情報を記憶してもよい。
【0126】
(制御部130)
図6に戻り、説明を続ける。制御部130は、コントローラ(Controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等によって、認証サーバ100の内部の記憶装置に記憶されている各種プログラム(認証プログラムの一例に相当)がRAM等の記憶領域を作業領域として実行されることにより実現される。図6に示す例では、制御部130は、取得部131と、管理部132と、検証部133と、送信部134とを有する。
【0127】
(取得部131)
取得部131は、通信部110を介して、利用者Uの端末装置10から利用者UのID及びパスワードを取得する。例えば、取得部131は、利用者Uのユーザ登録時やユーザ認証に、通信部110を介して、利用者Uの端末装置10から利用者UのID及びパスワードを取得する。
【0128】
また、取得部131は、通信部110を介して、利用者Uの端末装置10から署名の検証結果を取得する。なお、署名の検証結果には、認証サーバ100から端末装置10に送付したチャレンジへの署名が含まれていてもよい。
【0129】
また、取得部131は、通信部110を介して、利用者Uに関する利用者情報を取得する。例えば、取得部131は、利用者Uの端末装置10から、利用者Uを示す識別情報(利用者ID等)や、利用者Uの位置情報、利用者Uの属性情報等を取得する。また、取得部131は、利用者Uの利用者U登録時に、利用者Uを示す識別情報や、利用者Uの属性情報等を取得してもよい。そして、取得部131は、利用者情報を、記憶部120の利用者情報データベース121に登録する。
【0130】
また、取得部131は、通信部110を介して、利用者Uの行動を示す各種の履歴情報(ログデータ)を取得する。例えば、取得部131は、利用者Uの端末装置10から、あるいは利用者ID等に基づいて各種サーバ等から、利用者Uの行動を示す各種の履歴情報を取得する。そして、取得部131は、各種の履歴情報を、記憶部120の履歴情報データベース122に登録する。
【0131】
(管理部132)
管理部132は、利用者Uの認証情報を管理する。管理部132は、パスワード管理機能132Aと、チャレンジ管理機能132Bとを有する。
【0132】
(パスワード管理機能132A)
パスワード管理機能132Aは、各利用者UのIDとパスワードとを紐づけて管理する。例えば、パスワード管理機能132Aは、各利用者UのIDとパスワードとの組を記憶部120の認証情報データベース123に登録する。また、パスワード管理機能132Aは、利用者Uの端末装置10から送付されたID及びパスワードと、認証情報データベース123に登録されているID及びパスワードとを照合する。
【0133】
(チャレンジ管理機能132B)
チャレンジ管理機能132Bは、チャレンジを生成して管理する。また、チャレンジ管理機能132Bは、利用者Uの端末装置10から送付(返送)されたチャレンジを検証する。例えば、チャレンジ管理機能132Bは、利用者Uの端末装置10に送付したチャレンジと、利用者Uの端末装置10から送付(返送)されたチャレンジとを照合する。
【0134】
(検証部133)
検証部133は、第2チャレンジを生成して管理する。また、検証部133は、第2チャレンジへの署名に対して、署名検証を行う。例えば、検証部133は、利用者Uの端末装置10側で秘密鍵を用いて署名された第2チャレンジ(署名付き第2チャレンジ)と、当該秘密鍵に対応する公開鍵とを端末装置10から受け取った際に、公開鍵を用いて署名検証を行う。また、検証部133は、FIDO認証を行う機能(FIDOサーバ機能)を有する。なお、検証部133は、上記の管理部132と連携していてもよいし、一体化していてもよい。すなわち、検証部133は、FIDO認証機能とパスワード認証機能との両機能を併せ持つものであってもよい。
【0135】
(送信部134)
送信部134は、通信部110を介して、利用者Uの端末装置10に認証要求(パスワード画面)を送信する。例えば、送信部134は、通信部110を介して、利用者Uの端末装置10にID及びパスワードの認証用のUIを提供する。
【0136】
また、送信部134は、通信部110を介して、利用者Uの端末装置10にチャレンジや第2チャレンジを送信する。また、送信部134は、通信部110を介して、利用者Uの端末装置10にサーバ情報を送信する。
【0137】
このように、制御部130は、端末装置10に認証要求を行う送付部と、端末装置10から、利用者UのID及びパスワードとともに、FIDO認証器50で生成された署名の検証結果を受け取る取得部と、署名の検証結果をもってFIDO認証が完了したと判断し、利用者UのID及びパスワードを検証する検証部とを備える。このとき、上記の取得部131、管理部132、検証部133及び送信部134は、送付部、取得部及び検証部として機能する。
【0138】
また、送付部は、端末装置10にチャレンジを送付する。次に、取得部は、端末装置10から、署名の検証結果とともに、FIDO認証器50で署名が生成されたチャレンジをレスポンスとして受け取る。そして、検証部は、端末装置10からレスポンスとして送付されたチャレンジを検証する。
【0139】
また、送付部は、端末装置10に第2チャレンジを送付する。次に、取得部は、FIDO認証を実施した端末装置10から、端末装置10で生成された第2チャレンジへの署名をレスポンスとして受け取る。そして、検証部は、端末装置10からレスポンスとして送付された第2チャレンジへの署名を検証する。なお、検証部は、FIDO認証機能とパスワード認証機能との両機能を併せ持つ。
【0140】
〔5.処理手順〕
次に、図10を用いて実施形態に係る端末装置10、FIDO認証器50及び認証サーバ100による処理手順について説明する。図10は、実施形態に係る処理手順を示すフローチャートである。なお、以下に示す処理手順は、端末装置10の制御部30、FIDO認証器50及び認証サーバ100の制御部130によって繰り返し実行される。
【0141】
図10に示すように、端末装置10の受信部32は、通信部11を介して、認証サーバ100から認証要求を受信する(ステップS101)。このとき、受信部32は、認証サーバ100から、認証要求とともに、チャレンジ又は第2チャレンジとサーバ情報とを受信してもよい。
【0142】
続いて、端末装置10の認証処理部34は、利用者UのID及びパスワードを入力するためのパスワード画面とともに、ブラウザ拡張機能により、端末側でのFIDO認証を実行するためのFIDOボタンを表示し、FIDOボタンが押されたか判定する(ステップS102)。
【0143】
ここで、端末装置10の認証処理部34(又は送信部31)は、FIDOボタンが押されずに、パスワード画面に利用者UのID及びパスワードが入力された場合(ステップS102:No)、認証サーバ100に利用者UのID及びパスワードのみを送付し、認証サーバ100側で従来通りの認証を実施する(ステップS103)。なお、端末装置10にFIDO対応のパスワードマネージャーが実装されていない場合にも、FIDOボタンが表示されないため、認証サーバ100側で従来通りの認証を実施する。このとき、パスワードとして、一般的な利用者が覚えられないような文字数(例えば、16文字や32文字、又はそれ以上の文字数)のパスワードが設定されていると好ましい。
【0144】
反対に、端末装置10の認証処理部34(又は送信部31)は、FIDOボタンが押された場合(ステップS102:Yes)、チャレンジ及びサーバ情報をFIDO認証器50に送付する(ステップS104)。このとき、端末装置10の認証処理部34は、チャレンジを生成してもよい。あるいは、端末装置10の認証処理部34(又は送信部31)は、認証サーバ100から送付されたチャレンジをFIDO認証器50に送付(転送)してもよい。
【0145】
続いて、FIDO認証器50は、利用者Uから取得した生体情報に基づいて、利用者Uの本人性を検証し、利用者Uが本人であるか判定する(ステップS105)。このとき、FIDO認証器50は、利用者Uが本人ではないと判定した場合(ステップS105:No)、端末装置10に認証の失敗を通知して、一連の処理を終了する。この場合、端末装置10の認証処理部34は、普通に利用者UからID及びパスワードの入力を受け付けて、パスワード送付機能34Aにより、認証サーバ100に利用者UのID及びパスワードを送付し、認証サーバ100側で従来通りの認証を実施するようにしてもよい。
【0146】
続いて、FIDO認証器50は、利用者Uが本人であると判定した場合(ステップS105:Yes)、チャレンジに対して秘密鍵で署名(電子署名)を生成し、チャレンジへの署名と公開鍵とを端末装置10に送付する(ステップS106)。このとき、FIDO認証器50は、秘密鍵と公開鍵との鍵ペアがFIDO認証器50と端末装置10とにあらかじめ登録されていない場合、初回に、サーバ情報に基づいて認証サーバごとに秘密鍵と公開鍵との鍵ペアを生成し、サーバ情報に紐づけて秘密鍵を登録する。また、FIDO認証器50は、鍵ペアが登録済み(例えば2回目以降)であれば、登録済みの秘密鍵を抽出(検出)する。
【0147】
続いて、端末装置10の認証処理部34は、FIDOサーバ機能34Cにより、署名検証(チャレンジの検証を含む)を行うとともに、メモリ領域40Aから利用者UのID及びパスワードを抽出する(ステップS107)。このとき、端末装置10の認証処理部34は、パスワード管理機能34Bにより、認証サーバごとに利用者UのID及びパスワードを管理しておき、サーバ情報に基づいて、端末装置10の内部のメモリ領域40Aから利用者UのID及びパスワードを抽出して、パスワード画面の入力欄に自動入力してもよい。なお、認証処理部34は、FIDO認証器50から公開鍵が送付された場合、パスワード管理機能34Bにより、端末装置10の内部のメモリ領域40Aに公開鍵を登録する。
【0148】
続いて、端末装置10の送信部31は、通信部11を介して、利用者UのID及びパスワードと署名の認証結果とを認証サーバ100に送付する(ステップS108)。このとき、署名の認証結果には、認証サーバ100から送付されたチャレンジに対応する署名付きチャレンジが含まれていてもよい。あるいは、認証サーバ100から送付された第2チャレンジに対応する署名付き第2チャレンジが含まれていてもよい。このとき、端末装置10の認証処理部34は、第2チャレンジへの署名に用いられる秘密鍵と公開鍵との鍵ペアが端末装置10と認証サーバ100とにあらかじめ登録されていない場合、初回に、FIDOサーバ機能34Cにより、秘密鍵と公開鍵との鍵ペアを生成し、認証サーバ100から送付された第2チャレンジに対して秘密鍵で署名を生成してもよい。そして、端末装置10の送信部31は、署名付き第2チャレンジと公開鍵とを認証サーバ100に送付してもよい。
【0149】
続いて、認証サーバ100の検証部133は、利用者UのID及びパスワードを検証する(ステップS109)。このとき、認証サーバ100の検証部133は、端末装置10からレスポンスとして返送された署名付きチャレンジ又は署名付き第2チャレンジを検証してもよい。
【0150】
〔6.変形例〕
上述した端末装置10及び認証サーバ100は、上記実施形態以外にも種々の異なる形態にて実施されてよい。そこで、以下では、実施形態の変形例について説明する。
【0151】
上記の実施形態において、認証サーバ100が実行している処理の一部又は全部は、実際には、端末装置10が実行してもよい。例えば、スタンドアローン(Stand-alone)で(端末装置10単体で)処理が完結してもよい。この場合、端末装置10に、上記の実施形態における認証サーバ100の機能が備わっているものとする。また、上記の実施形態では、端末装置10は認証サーバ100と連携しているため、利用者Uから見れば、認証サーバ100の処理も端末装置10が実行しているように見える。すなわち、他の観点では、端末装置10は、認証サーバ100を備えているともいえる。
【0152】
また、上記の実施形態において、FIDO認証器50として、端末装置10のセンサ部20(各センサ21~28)を用いてもよい。この場合、端末装置10がFIDO認証器50としても機能する。例えば、端末装置10は、センサ部20の検出結果を示すセンサ情報に基づいて、利用者Uのコンテキスト(状況)を推定する。そして、端末装置10は、利用者Uの生体情報の代わりに/又は生体情報に加えて、利用者Uのコンテキスト情報を用いてユーザ検証を行う。利用者Uのコンテキスト情報は、加速度や角速度等の挙動、周囲の生活音、所在地の温度/湿度/照度、位置情報等のいずれか又はこれらの組合せ等であってもよい。
【0153】
〔7.効果〕
上述してきたように、本願に係る端末装置10は、認証器にチャレンジを送付する送付部と、認証器から署名付きチャレンジと公開鍵とを受け取る受付部と、公開鍵を用いて署名検証を行う検証部と、署名の検証結果を認証サーバ100に提供する提供部とを備える。
【0154】
また、受付部は、認証サーバ100から利用者UのID及びパスワードの認証要求を受け付ける。そして、提供部は、利用者UのID及びパスワードとともに、署名の検証結果を認証サーバ100に提供する。
【0155】
また、送付部は、利用者UのID及びパスワードを入力するためのパスワード画面に表示された検証要求ボタンが押された場合に、認証器にチャレンジを送付する。そして、提供部は、検証要求ボタンが押された場合には、利用者UのID及びパスワードとともに、署名の検証結果を認証サーバ100に提供し、検証要求ボタンが押されなかった場合には、利用者UのID及びパスワードのみ認証サーバ100に提供する。
【0156】
また、受付部は、認証サーバ100から送付されたチャレンジを受け取る。次に、送付部は、認証サーバ100から送付されたチャレンジを認証器に送付する。そして、提供部は、署名の検証結果とともに、署名付きチャレンジをレスポンスとして認証サーバ100に返送する。
【0157】
また、受付部は、認証サーバ100から送付された第2チャレンジを受け取る。次に、送付部は、第2チャレンジとは異なるチャレンジを認証器に送付する。次に、受付部は、認証器から署名付きチャレンジと公開鍵とを受け取る。次に、検証部は、公開鍵を用いて署名検証を行った結果、認証に成功した場合、第2チャレンジへの署名を生成する。そして、提供部は、第2チャレンジへの署名をレスポンスとして認証サーバ100に返送する。
【0158】
また、提供部は、第2チャレンジへの署名によって、該端末装置10の完全性を示す。
【0159】
また、提供部は、署名の検証結果を、FIDO認証機能とパスワード認証機能との両機能を併せ持つ認証サーバ100に提供する。
【0160】
また、提供部は、署名の検証結果の提供をもって、FIDO認証が完了したことを表明する。
【0161】
また、本願に係る認証サーバ100は、端末装置10に認証要求を行う送付部と、端末装置10から、利用者UのID及びパスワードとともに、認証器で生成された署名の検証結果を受け取る取得部と、署名の検証結果をもってFIDO認証が完了したと判断し、利用者UのID及びパスワードを検証する検証部とを備える。
【0162】
また、送付部は、端末装置10にチャレンジを送付する。次に、取得部は、端末装置10から、署名の検証結果とともに、認証器で署名が生成されたチャレンジをレスポンスとして受け取る。そして、検証部は、端末装置10からレスポンスとして送付されたチャレンジを検証する。
【0163】
また、送付部は、端末装置10に第2チャレンジを送付する。次に、取得部は、FIDO認証を実施した端末装置10から、端末装置10で生成された第2チャレンジへの署名をレスポンスとして受け取る。そして、検証部は、端末装置10からレスポンスとして送付された第2チャレンジへの署名を検証する。
【0164】
また、検証部は、FIDO認証機能とパスワード認証機能との両機能を併せ持つ。
【0165】
上述した各処理のいずれかもしくは組合せにより、本願に係る情報処理装置(端末装置10及び認証サーバ100)は、外部サーバにアクセスするためのFIDO認証とパスワード認証とが共存する認証方式を実現することができる。また、FIDO認証機能とパスワード認証機能の両機能を合わせ持つ認証サーバで、パスワードによるインターフェースを改変することのない認証を提供することができる。例えば、既存のパスワードのUI画面を通じてFIDO認証を発動し、認証結果の情報を送受信し、認証インターフェースを改変することなく、パスワード認証に加えてFIDO認証を導入することができる。
【0166】
〔8.ハードウェア構成〕
また、上述した実施形態に係る端末装置10や認証サーバ100は、例えば図11に示すような構成のコンピュータ1000によって実現される。以下、認証サーバ100を例に挙げて説明する。図11は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力I/F(Interface)1060、入力I/F1070、ネットワークI/F1080がバス1090により接続された形態を有する。
【0167】
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。演算装置1030は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等により実現される。
【0168】
一次記憶装置1040は、RAM(Random Access Memory)等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等により実現される。二次記憶装置1050は、内蔵ストレージであってもよいし、外付けストレージであってもよい。また、二次記憶装置1050は、USB(Universal Serial Bus)メモリやSD(Secure Digital)メモリカード等の取り外し可能な記憶媒体であってもよい。また、二次記憶装置1050は、クラウドストレージ(オンラインストレージ)やNAS(Network Attached Storage)、ファイルサーバ等であってもよい。
【0169】
出力I/F1060は、ディスプレイ、プロジェクタ、及びプリンタ等といった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインターフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力I/F1070は、マウス、キーボード、キーパッド、ボタン、及びスキャナ等といった各種の入力装置1020から情報を受信するためのインターフェースであり、例えば、USB等により実現される。
【0170】
また、出力I/F1060及び入力I/F1070はそれぞれ出力装置1010及び入力装置1020と無線で接続してもよい。すなわち、出力装置1010及び入力装置1020は、ワイヤレス機器であってもよい。
【0171】
また、出力装置1010及び入力装置1020は、タッチパネルのように一体化していてもよい。この場合、出力I/F1060及び入力I/F1070も、入出力I/Fとして一体化していてもよい。
【0172】
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、又は半導体メモリ等から情報を読み出す装置であってもよい。
【0173】
ネットワークI/F1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
【0174】
演算装置1030は、出力I/F1060や入力I/F1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
【0175】
例えば、コンピュータ1000が認証サーバ100として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部130の機能を実現する。また、コンピュータ1000の演算装置1030は、ネットワークI/F1080を介して他の機器から取得したプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行してもよい。また、コンピュータ1000の演算装置1030は、ネットワークI/F1080を介して他の機器と連携し、プログラムの機能やデータ等を他の機器の他のプログラムから呼び出して利用してもよい。
【0176】
〔9.その他〕
以上、本願の実施形態を説明したが、これら実施形態の内容により本発明が限定されるものではない。また、前述した構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。さらに、前述した構成要素は適宜組み合わせることが可能である。さらに、前述した実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換又は変更を行うことができる。
【0177】
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部又は一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0178】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【0179】
例えば、上述した認証サーバ100は、複数のサーバコンピュータで実現してもよく、また、機能によっては外部のプラットフォーム等をAPI(Application Programming Interface)やネットワークコンピューティング等で呼び出して実現するなど、構成は柔軟に変更できる。
【0180】
また、上述してきた実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0181】
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
【符号の説明】
【0182】
1 認証システム
10 端末装置
34 認証処理部
34A パスワード送付機能
34B パスワード管理機能
34C FIDOサーバ機能
40A メモリ領域
50 FIDO認証器
50A セキュア領域
100 認証サーバ
110 通信部
120 記憶部
121 利用者情報データベース
122 履歴情報データベース
123 認証情報データベース
130 制御部
131 取得部
132 管理部
132A パスワード管理機能
132B チャレンジ管理機能
133 検証部
134 送信部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11