JP7269486B2 - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP7269486B2
JP7269486B2 JP2019172736A JP2019172736A JP7269486B2 JP 7269486 B2 JP7269486 B2 JP 7269486B2 JP 2019172736 A JP2019172736 A JP 2019172736A JP 2019172736 A JP2019172736 A JP 2019172736A JP 7269486 B2 JP7269486 B2 JP 7269486B2
Authority
JP
Japan
Prior art keywords
information
browser
authenticator
unit
verification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019172736A
Other languages
English (en)
Other versions
JP2020095687A (ja
Inventor
淳二 高木
栄信 伊藤
孝一 矢崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to US16/703,159 priority Critical patent/US11245700B2/en
Priority to EP19213501.0A priority patent/EP3663946A1/en
Publication of JP2020095687A publication Critical patent/JP2020095687A/ja
Application granted granted Critical
Publication of JP7269486B2 publication Critical patent/JP7269486B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
従来、オンラインバンキングやネットショッピングなどインターネットを経由してサービスにログインするために本人確認が行われるケースがある。近年、FIDO Alliance(Fast IDentity Online Alliance)により、生体認証などを利用した新しいオンライン認証技術の標準化が進められており、オンラインバンキングサービスなどにおいて採用されている。FIDO Allianceにより標準化が進められている認証方式では、生体情報などを用いたローカル認証とネットワークを経由した公開鍵暗号による署名検証の組み合わせにより、インターネットに生体情報などの機密情報を流さずにセキュアな認証を実現している。なお、ローカル認証は、ユーザが利用している端末やスマートフォンなどの外部認証器(ローカル)に登録データを保持し、端末や外部認証器内で行う認証を意味する。
FIDO2.0に準拠した認証(非特許文献2)において生体認証を行うためにブラウザのJavaScript(登録商標)から認証器にアクセスする場合、CTAP(Client-to-Authenticator Protocol)プロトコルを用い、認証器に対してUSB(Universal Serial Bus)/BLE(Bluetooth(登録商標) Low Energy)/NFC(Near Field Communication)のようなブリッジインタフェースを経由して接続できる。
特開2009-118110号公報
"FIDO Alliance"、[Online]、[平成30年11月22日検索]、インターネット<https://fidoalliance.org/specifications/overview/> "FIDO Alliance"、[Online]、[平成30年11月22日検索]、インターネット<https://fidoalliance.org/fido2/>
しかしながら、上記のようにブラウザがブリッジインタフェースを経由して認証器に接続する場合、悪意のあるアプリが、CTAPプロトコルにより認証器にアクセスして攻撃するおそれがある。これを防止するために、CTAP接続する際にユーザにPIN入力を要求して接続元を認証することもできるが、手間が増えることでユーザの利便性が低下するおそれがある。
1つの側面では、本発明は、不正なプログラムからの認証器への接続を防止することが可能な情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
一つの態様では、情報処理装置は、ブラウザがブリッジインタフェースを経由して認証器に接続するときに、前記ブラウザの情報を取得して、取得した前記ブラウザの情報から一意の識別情報を生成して前記ブラウザに送信し、生成した前記一意の識別情報と前記ブラウザの情報とを関連付けて記憶部において管理する管理部と、前記ブラウザから前記一意の識別情報を取得し、前記記憶部を参照して、取得した前記一意の識別情報に対応する前記ブラウザの情報を取得する取得部と、前記取得部が取得した前記ブラウザの情報を前記認証器に送信して、前記ブラウザの情報に署名を付すように依頼する依頼部と、前記認証器から署名付きのブラウザの情報を取得し、取得した前記署名付きのブラウザの情報を認証サーバに送信する送信部と、前記認証サーバによる前記署名付きのブラウザの情報を用いた認証結果に基づいて、前記ブラウザと前記認証器の接続可否を制御する制御部と、を備えている。
不正なプログラムからの認証器への接続を防止することができる。
一実施形態に係る認証システムの構成を概略的に示す図である。 一実施形態に係る認証システムによるユーザ認証処理を示す図である。 認証システムが有する各装置の構成を示す図である。 端末装置の機能ブロック図である。 アクセス制御処理の手順(その1)を示す図である。 アクセス制御処理の手順(その2)を示す図である。 アクセス制御処理の手順(その3)を示す図である。 検証部により実行される検証処理(S52)を示すフローチャートである。 図9(a)は、Platformアプリ側(プロセス間通信のサーバ側)のポート番号とアドレス情報を示す図であり、図9(b)は、Polyfill側(プロセス間通信のクライアント側)のポート番号とアドレス情報を示す図であり、図9(c)はTCP接続一覧情報を示す図である。 図10(a)は、管理情報テーブルを示す図であり、図10(b)は、ホワイトリストを示す図である。 情報処理プログラムを実行するコンピュータの一例を示す図である。 図12(a)は、一実施形態の作用効果を説明するための図であり、図12(b)は、比較例を説明するための図である。 変形例1を示す図である。 変形例2に係る認証システムを示す図である。 変形例2に係るブラウザ及び測定アプリの機能ブロック図である。 図16(a)、図16(b)は、変形例2に係るホワイトリストの一例を示す図である。 変形例2に係る管理情報テーブルの一例を示す図である。 変形例2に係るアクセス制御処理の手順(その1)を示す図である。 変形例2に係るアクセス制御処理の手順(その2)を示す図である。 変形例2に係るログの一例を示す図である。
以下、一実施形態に係る認証システムついて、図1~図12(b)に基づいて詳細に説明する。図1は、一実施形態に係る認証システム10の構成の一例を示す図である。
図1に示すように、本実施形態の認証システム10は、情報処理装置としての端末装置100と、外部認証器400と、提供サーバ200と、認証サーバ300とを有する。なお、認証システム10では、端末装置100、外部認証器400、提供サーバ200および認証サーバ300の数は限定されず、任意の数の端末装置100、外部認証器400、提供サーバ200および認証サーバ300を有することとしてもよい。端末装置100と提供サーバ200との間、端末装置100と認証サーバ300との間、および、提供サーバ200と認証サーバ300との間は、ネットワークNを介して、相互に通信可能に接続される。かかるネットワークNには、有線または無線を問わず、インターネットを始め、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網を採用できる。また、ネットワークNを介する通信は、例えば、TLS(Transport Layer Security)/SSL(Secure Sockets Layer)等によって暗号化されるようにしてもよい。また、端末装置100と外部認証器400は、NFC(Near Field Communication)、BLE(Bluetooth(登録商標) Low Energy)、USB(Universal Serial Bus)などにより接続される。
認証システム10は、端末装置100において提供サーバ200が提供するサービスを利用するに、外部認証器400で生体情報を照合し、ユーザ認証処理を行い、その認証結果を端末装置100を介して認証サーバ300に送信することで端末装置100のユーザ認証を行うシステムの一例である。端末装置100は、提供サーバ200が提供するサービスをユーザが利用するための情報処理装置である。端末装置100は、例えば、生体センサ等が内蔵されていない据え置き型のパーソナルコンピュータなどであるものとし、外部認証器400は、例えば指紋センサなどを有するスマートフォンであるものとする。
図2は、認証システム10によるユーザ認証処理を示す図である。図2に示すように、認証システム10では、(1)オンラインサービスへの登録時に、外部認証器400が新しい鍵のペア(公開鍵、秘密鍵)を生成し、秘密鍵は外部認証器400が保持し、公開鍵は認証サーバ300に事前登録する。次いで、(2)端末装置100からログイン要求をすると、(3)認証サーバ300が端末装置100を介して外部認証器400にチャレンジコードを送信する。次いで、(4)端末装置100がユーザに対してログイン要求を行うと、(5)ユーザは、外部認証器400の指紋センサ等を用いて生体認証を行う。このとき、外部認証器400は、外部認証器400で保持する生体データを用いて認証(ローカル認証)を行い、認証に成功した場合には、(6)秘密鍵によりチャレンジコードに署名を行い、端末装置100経由で署名付きのチャレンジコードを認証サーバ300に送信する。そして、(7)認証サーバ300は、署名付きのチャレンジコードを公開鍵で検証することで認証を行い、認証に成功した場合に、ユーザのログインを許可する。本実施形態では、上記のようなユーザ認証処理を行っていることから、ネットワークNに生体情報などの機密情報を流さなくてもよく、セキュアな認証が可能となっている。
ここで、本実施形態の認証システム10では、上述したユーザ認証処理を行う機能とは別に、端末装置100にインストールされた不正なプログラム(アプリ)からの外部認証器400へのアクセスを防止する機能を備えている。以下においては、不正なプログラムからの外部認証器400へのアクセスを防止する機能を中心に説明する。
図3には、認証システム10が有する各装置の構成が示されている。図3に示すように、端末装置100では、例えばブラウザ20が提供サーバ200から取得したJavaScriptなどのクライアントアプリ(Relying Partyアプリ)22がブラウザ20上で実行される。Relying Partyアプリ22はJavaScriptなどによる認証ライブラリ(Polyfill)24を含み、Polyfill24はOS(Operating System)上で動作する測定アプリ(Platformアプリ)26との間でプロセス間通信を行う。また、Platformアプリ26はOSのAPI(Platform API)から取得した情報を用い、ブリッジインタフェース28を経由して外部認証器400への接続を制御する。
外部認証器400は、CTAP接続インタフェース40、鍵管理部42、署名部44、GUI(Graphical User Interface)制御部46、データ生成部48、生体認証ライブラリ50を有する。
CTAP接続インタフェース40は、ブリッジインタフェース28を介して、CTAPプロトコルを用いて端末装置100と接続する。なお、CTAPプロトコルは、FIDO2.0から採用される認証器にアクセスするためのプロトコルである。
鍵管理部42は、秘密鍵を管理する。なお、鍵管理部42は、秘密鍵として、前述した認証処理(図2)に用いる秘密鍵と、外部認証器400へのアクセスを防止するために用いる秘密鍵とを別々に管理していてもよいし、各処理に用いることが可能な共通の秘密鍵を管理してもよい。
署名部44は、ブリッジインタフェース28から署名要求とともに呼出元アプリ情報が送信されてきたときに、署名処理を実行する。署名部44は、この署名処理において、鍵管理部42が管理する秘密鍵を利用する。また、署名部44は、ユーザ認証処理(図2)において、後述するデータ生成部48が認証OKと判定した場合に、鍵管理部42で管理されている認証用の秘密鍵を用いてチャレンジコードに署名を付す。そして、署名部44は、署名付きのチャレンジコードを端末装置100を介して認証サーバ300に送信する。
GUI制御部46は、生体認証の入力用ダイアログを表示する。データ生成部48は、生体センサから取得した画像から照合用データを生成する。また、データ生成部48は、ユーザ認証処理(図2)において、生体認証ライブラリ50に格納されている生体データと、生成した照合用データとを比較して、認証OK/NGを判定する。
提供サーバ200は、各種サービスを提供するサーバである。提供サーバ200は、端末装置100からサービス要求を受信すると、Webアプリを端末装置100に送信し、認証サーバ300によるユーザ認証の後に各種サービスをユーザに提供する。
認証サーバ300は、端末装置100から受信する認証要求を処理するサーバである。また、認証サーバ300は、図3に示す検証部60を有している。検証部60は、外部認証器400から端末装置100を経由して署名付きの情報を取得すると、公開鍵を用いて検証を実行し、検証結果を端末装置100に送信する。端末装置100では、外部認証器400に接続しようとしているブラウザが適切であるという検証結果を得た場合に、ブラウザ20からの外部認証器400へのアクセスを許可する旨を端末装置100に通知する。これにより、不正なプログラムからの外部認証器400へのアクセスを制御している。なお、認証サーバ300では、公開鍵として、前述した認証処理(図2)に用いる公開鍵と、外部認証器400への不正なアクセスを防止するために用いる公開鍵とを別々に管理していてもよいし、各処理に用いることが可能な共通の公開鍵を管理してもよい。
図4には、端末装置100の機能ブロック図が示されている。図4に示すように、Polyfill24は、送信部としてのサーバ検証連携部242と、ID取得部244と、を有する。また、Platformアプリ26は、管理部としてのID発行部262と、アプリ情報取得部264と、取得部としてのID検証部266と、を有する。また、ブリッジインタフェース28は、依頼部としての署名依頼部282と、アプリ情報取得依頼部284と、を有する。
サーバ検証連携部242は、認証サーバ300の検証部60と連携して、情報のやり取りを行う。
ID取得部244は、ブラウザ20が外部認証器400に接続するときに、Platformアプリ26と情報のやり取りを行い、Platformアプリ26のID発行部262において発行された身元証明IDを取得する。また、ID取得部244は、取得した身元証明IDを用いて、ブリッジインタフェース28の署名依頼部282に対して署名依頼を送信する。
ID発行部262は、ブラウザ20のプロセスIDを取得し、プロセスIDをアプリ情報取得部264に送信する。また、ID発行部262は、アプリ情報取得部264から送信されてくる呼出元アプリの情報(プロセス名)に基づいて、身元証明IDを発行し、ID取得部244に通知する。ID発行部262では、身元証明IDと、プロセス名と、プロセスIDとを図10(a)に示す記憶部としての管理情報テーブル80にて管理する。
アプリ情報取得部264は、ID発行部262から受信したプロセスIDに基づいて、呼出元アプリ情報(プロセス名)を取得し、ID発行部262に通知する。
ID検証部266は、ブリッジインタフェース28のアプリ情報取得依頼部284から呼出元アプリ情報(プロセス名)の取得要求を受信すると、管理情報テーブル80を参照して、取得要求に含まれる身元証明IDを検証する。そして、ID検証部266は、管理情報テーブル80から身元証明IDに対応するプロセス名を取得するとともに、端末装置100の最前面で実行されているアプリ情報(前面表示アプリ情報)を取得し、アプリ情報取得依頼部284に通知する。
署名依頼部282は、ID取得部244から身元証明IDを用いた署名依頼を受信すると、アプリ情報取得依頼部284に対して、身元証明IDを送信し、呼出元アプリ情報(プロセス名)の取得要求を行う。また、署名依頼部282は、アプリ情報取得依頼部284から身元証明IDに対応するプロセス名と前面表示アプリ情報を取得した場合に、外部認証器400の署名部44に対して、プロセス名と前面表示アプリ情報を通知する。更に、署名依頼部282は、署名部44において署名された署名付きのプロセス名と署名付きの前面表示アプリ情報を受信すると、受信した情報をサーバ検証連携部242に対して送信する。
アプリ情報取得依頼部284は、署名依頼部282から、身元証明IDを伴う呼出元アプリ情報(プロセス名)の取得要求を受信した場合に、ID検証部266に対して身元証明IDを通知する。また、アプリ情報取得依頼部284は、通知した身元証明IDに対応するプロセス名と前面表示アプリ情報をID検証部266から取得すると、署名依頼部282に送信する。
(認証システム10における外部認証器400へのアクセス制御について)
以下、認証システム10における外部認証器400へのアクセス制御について、図5~図8に基づいて詳細に説明する。なお、図5~図8の処理は、端末装置100と外部認証器400が接続する前のタイミング(図2の(3)の前)において、実行される処理である。
図5には、アクセス制御処理の手順(その1)が示されている。
図5の処理では、まず、Polyfill24のID取得部244が、Platformアプリ26のID発行部262に対して、身元証明IDの発行要求を実行する(S10)。このとき、ID発行部262は、呼出元アプリ(ブラウザ20)のプロセスIDを取得する。ID発行部262は、プロセスIDを取得する場合、Platformアプリ26がWinSockを使ったソケット通信によりPolyfill24とプロセス間通信を確立したときに、図9(a)に示すPlatformアプリ26側(プロセス間通信のサーバ側)のポート番号とアドレス情報を取得する。また、ID発行部262は、図9(b)に示すPolyfill24側(プロセス間通信のクライアント側)のポート番号とアドレス情報を取得する。そして、図9(c)に示すTCP接続一覧情報を参照して、プロセスIDを取得する。
ここで、図9(c)のTCP接続一覧情報にはPlatformアプリ26のTCP接続数とプロセス間通信のサーバのポート番号及びアドレス情報、クライアントのポート番号及びアドレス情報、接続元アプリのプロセスIDが含まれる。なお、図9(c)の例では、図示が省略されているが、プロセス間通信のサーバのポート番号及びアドレス情報、クライアントのポート番号及びアドレス情報、接続元アプリのプロセスIDの組み合わせが69個格納されているものとする。
ID発行部262は、図9(a)、図9(b)で取得した情報を含むTCP接続のプロセスIDをTCP接続一覧情報の中から取得する。図9(a)~図9(c)の例では、ID発行部262は、接続元アプリ(ブラウザ20)のプロセスID=1332を取得することができる。
次いで、ID発行部262は、アプリ情報取得部264に対して、取得したプロセスIDとともに、呼出元アプリ情報の取得要求を送信する(S12)。
次いで、アプリ情報取得部264は、OS APIを用いて、受信したプロセスIDに対応する呼出元アプリ情報(プロセス名)を取得する(S14、S16)。この場合、アプリ情報取得部264は、例えばWindows(登録商標)のプロセス情報取得API(PSAPI)を用いて、プロセスIDに対応するプロセス名(例えば、chrome.exeとする)を取得する。
次いで、アプリ情報取得部264は、取得した呼出元アプリ情報(プロセス名)をID発行部262に返信する(S18)。そして、ID発行部262は、呼出元アプリ情報(プロセス名)から身元証明IDを生成する(S20)。具体的には、ID発行部262は、取得したプロセス名と、乱数生成関数と、を用いて一意な身元証明IDを生成する。そして、ID発行部262は、身元証明IDと、プロセスIDと、プロセス名とを紐づけて図10(a)の管理情報テーブル80において管理する。図10(a)の管理情報テーブル80においては、身元証明IDと、プロセスIDと、プロセス名と、を対応付けて管理している。図10(a)の例では、身元証明ID「12345」と、プロセスID「13332」と、プロセス名「chrome.exe」とが対応付けられている。
その後は、ID発行部262が、生成した身元証明IDをPolyfill24のID取得部244に返信する(S22)。図5の処理が行われた後は、図6の処理に移行する。
図6には、アクセス制御処理の手順(その2)が示されている。
前述のように、Polyfill24のID取得部244が、ID発行部262から身元証明IDを受信すると(図5のS22)、ID取得部244は、ブリッジインタフェース28の署名依頼部282に対して身元証明ID(=12345)を送信する。これにより、ID取得部244は、呼出元アプリの署名依頼を行う(S30)。
次いで、署名依頼部282は、アプリ情報取得依頼部284に対して身元証明ID(=12345)を送信することで、呼出元アプリ情報の取得要求を行う(S32)。また、アプリ情報取得依頼部284は、Platformアプリ26のID検証部266に対して身元証明ID(=12345)を送信することで、呼出元アプリ情報の取得要求を行う(S34)。
ID検証部266は、身元証明ID(=12345)を取得すると、呼出元アプリ情報を特定する(S36)。このとき、ID検証部266は、身元証明ID(=12345)について自身が発行したIDであるかを、図10(a)の管理情報テーブル80を用いて検証する。そして、ID検証部266は、受信した身元証明IDが管理情報テーブル80に存在していることを確認できた場合には、身元証明IDに対応するプロセス名(chrome.exe)とWindowsのデスクトップ環境において最前面に配置されているウィンドウ(アプリ)の情報を取得する。以下においては、最前面に配置されているアプリの情報を「前面表示アプリ情報」と呼ぶ。前面表示アプリ情報を取得する際には、ID検証部266は、Windowsのデスクトップ環境において、ウィンドウが切り替わるときの一意の識別子(ウィンドウハンドル)を取得し、ウィンドウハンドルに基づき最前面のアプリ名を取得する。なお、ここでは、前面表示アプリ情報として、「chrome.exe」が取得されたものとする。ID検証部266は、プロセス名と前面表示アプリ情報を取得すると、ブリッジインタフェース28のアプリ情報取得依頼部284にプロセス名と前面表示アプリ情報を返信する(S38)。
アプリ情報取得依頼部284は、プロセス名と前面表示アプリ情報を受信すると、署名依頼部282に対してプロセス名と前面表示アプリ情報を送信する(S40)。
次いで、署名依頼部282は、例えばBLEで接続された外部認証器400にFIDOのCTAP通信により接続し、外部認証器400の署名部44にプロセス名と前面表示アプリ情報を送信して、署名依頼を実行する(S42)。このとき、署名部44は、鍵管理部42で管理されている秘密鍵を用いてプロセス名(chrome.exe)と前面表示アプリ情報(chrome.exe)に署名を実行し、署名付きプロセス名と署名付き前面表示アプリ情報とを署名依頼部282に返信する(S44)。
署名依頼部282は、署名付きプロセス名と署名付き前面表示アプリ情報とを受信すると、受信した情報をPolyfill24のサーバ検証連携部242に送信する(S46)。以上のようにして図6の処理が終了すると、図7の処理に移行する。
図7には、アクセス制御処理の手順(その3)が示されている。
図7の処理においては、Polyfill24のサーバ検証連携部242が、署名依頼部282から受信した署名付きプロセス名と署名付き前面表示アプリ情報とを認証サーバ300の検証部60に送信する(S50)。
検証部60は、署名付きプロセス名と署名付き前面表示アプリ情報を受信すると、検証処理を実行する(S52)。検証部60は、検証処理において、図8のフローチャートに沿った処理を実行する。
図8の処理では、まず、ステップS60において、検証部60が、プロセス名(chrome.exe)の署名検証及び前面表示アプリ情報(chrome.exe)の署名検証を公開鍵を用いて実行する。
次いで、ステップS62では、検証部60が、検証に成功したか否かを判断する。このステップS62の判断が肯定されると、ステップS64に移行する。
ステップS64に移行すると、検証部60は、ホワイトリスト検証及びプロセス名と前面表示アプリ情報の一致検証を実行する。ホワイトリスト検証においては、検証部60は、ホワイトリスト82(図10(b))を参照して、プロセス名(chrome.exe)がホワイトリスト82に含まれているか否かを検証する。なお、ホワイトリスト82は、外部認証器400への接続が許可されているアプリ(ブラウザ)の名称(アプリ名)が予め登録されているリストである。また、一致検証においては、検証部60は、プロセス名(chrome.exe)と前面表示アプリ名(chrome.exe)とが同一であるか否かを検証する。なお、検証部60が検証において用いる情報は、プロセス名に限られるものではない。検証部60は、例えば、ブラウザのバージョンや、ブラウザのタブ名などをホワイトリストにおいて管理し、現在表示しているブラウザのバージョンやブラウザのタブ名がホワイトリストに含まれているかを検証してもよい。このようにすることで、検証精度をより高めることができる。
次いで、ステップS66では、検証部60が、検証に成功したか否かを判断する。このステップS66では、上記ホワイトリスト検証及び一致検証の両方に成功した場合に、判断が肯定される。ステップS66の判断が肯定されると、検証部60は、ステップS68に移行する。
ステップS68に移行すると、検証部60は、検証結果を、外部認証器400へのアクセス許可とする。
一方、ステップS62又はステップS66の判断が否定された場合には、ステップS70に移行する。ステップS70では、検証部60は、検証結果を、外部認証器400へのアクセス拒否とする。
ステップS68又はステップS70の処理が行われた後は、図8の全処理を終了する。
図7に戻り、上記のように検証処理(S52)が終了すると、検証部60は、サーバ検証連携部242に対して検証結果を送信する(S54)。例えば、サーバ検証連携部242が、検証結果(アクセス許可)を受信すると、ブリッジインタフェース28によって、ブラウザ20から外部認証器400へのアクセスが許可される。一方、サーバ検証連携部242が、検証結果(アクセス拒否)を受信すると、ブリッジインタフェース28によって、ブラウザ20から外部認証器400へのアクセスが拒否される。このように本実施形態では、ブリッジインタフェース28が、ブラウザ20と外部認証器400との接続可否を制御する制御部として機能している。
なお、本実施形態において図示した各部は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、サーバ検証連携部242とID取得部244とを統合してもよいし、ID発行部262とアプリ情報取得部264とID検証部266とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものでなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
さらに、各装置で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
ところで、本実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、本実施形態と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図11は、情報処理プログラムを実行するコンピュータ500の一例を示す図である。
図11に示すように、コンピュータ500は、各種演算処理を実行するCPU190と、データ入力を受け付ける入力装置195と、モニタ193とを有する。また、コンピュータ500は、可搬型記憶媒体からプログラム等を読み取る可搬型記憶媒体用ドライブ199と、他の情報処理装置等と有線または無線により接続するための通信装置197とを有する。また、コンピュータ500は、ROM192、RAM194、HDD196を有する。これら、コンピュータ500に含まれる各装置は、バス198に接続される。
ROM192には、図4に示した端末装置100の各部と同様の機能を有する情報処理プログラムが記憶される。また、ROM192には、管理情報テーブル80や、情報処理プログラムを実現するための各種データが記憶される。入力装置195は、例えば、コンピュータ500のユーザから操作情報等の各種情報の入力を受け付ける。モニタ193は、例えば、コンピュータ500のユーザに対して表示画面等の各種画面を表示する。通信装置197は、例えば、ネットワークNと接続され、提供サーバ200、認証サーバ300および他の情報処理装置と各種情報をやりとりする。また、通信装置197は、外部認証器400と接続される。
CPU190は、ROM192に記憶された各プログラムを読み出して、RAM194に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ500を図4に示した端末装置100の各部として機能させることができる。
なお、上記の情報処理プログラムは、必ずしもROM192に記憶されている必要はない。例えば、コンピュータ500が読み取り可能な可搬型記憶媒体191に記憶されたプログラムを、コンピュータ500が読み出して実行するようにしてもよい。可搬型記憶媒体としては、例えば、CD-ROMやDVD(Digital Versatile Disc)、USBメモリ等が挙げられる。また、公衆回線、インターネット、LAN等に接続された装置にこの情報処理プログラムを記憶させておき、コンピュータ500がこれらから情報処理プログラムを読み出して実行するようにしてもよい。
以上、詳細に説明したように、本実施形態によると、ブラウザ20がブリッジインタフェース経由により外部認証器400に接続するときに、ID発行部262は、ブラウザ20の情報(プロセスIDやプロセス名)を取得する。また、ID発行部262は、取得したプロセス名から身元証明IDを生成してID取得部244に送信するとともに、生成した身元証明IDとブラウザ20のプロセスID、プロセス名とを関連付けて管理情報テーブル80において管理する。また、ID検証部266は、ブリッジインタフェース28経由でブラウザ20から身元証明IDを取得すると、管理情報テーブル80を参照して、身元証明IDに対応するプロセス名や前面表示アプリ情報を取得する。また、署名依頼部282は、ID検証部266が取得したプロセスIDや前面表示アプリ情報を外部認証器400に送信して、署名依頼を行う。また、サーバ検証連携部242は、外部認証器400から署名付きのプロセス名や署名付きの前面表示アプリ情報をブリッジインタフェース28経由で取得して認証サーバ300に送信する。そして、ブリッジインタフェース28は、認証サーバ300による認証結果に基づいて、ブラウザ20と外部認証器400との接続可否を制御する。すなわち、本実施形態では、身元証明IDの発行を受けたブラウザ20から署名依頼があったときに、ブラウザのプロセス名と前面表示アプリ情報に対して外部認証器400により署名が行われる。そして、署名付きのプロセス名と署名付きの前面表示アプリ情報を認証サーバ300で検証した結果、接続が許可できると判断されれば、ブラウザ20から外部認証器400へのアクセスが許可される。したがって、本実施形態では、図12(a)において両矢印で示す箇所で信頼関係が結ばれ、ブラウザ20の認証ライブラリ(Polyfill)24と、外部認証器400との間の信頼関係が結ばれることで、認証サーバ300で認証されたブラウザ20のみが外部認証器400にアクセスできるようになる。このため、端末装置100にインストールされた不正アプリ(バックグラウンドで動作するマルウエアのようなアプリ)が外部認証器400にアクセスするのを防止することができる。この場合、ユーザにPIN入力を要求しなくてもよいため、ユーザの利便性低下を抑制することができる。
ここで、比較例として、図12(b)には、ASM(Authenticator Specific Module)がFIDOクライアントと認証器の間の接続を制御する例(FIDO UAF環境)が示されている。この例では、FIDOクライアントのブラウザプラグインがFacet IDを測定するとともに、ASMが経路情報を測定する。そして、認証器でFacet IDとプロセスIDに署名し、署名付きのデータを認証サーバの検証部で検証することとしている。しかしながら、本実施形態のように外部認証器400との接続にCTAP通信を用いると、ブラウザプラグインが利用できないため、図12(b)の方式を利用することはできない。これに対し、本実施形態のような方法を採用することで、端末装置100と外部認証器400とがCTAP通信を行う場合であっても、不正なアプリからのアクセスを制限することが可能となっている。
なお、上記実施形態では、ID検証部266が、ステップS36において、身元証明IDに対応するプロセス名を取得する際に、前面表示アプリ情報を取得する場合について説明したが、これに限られるものではない。すなわち、ID検証部266は、ステップS36において、プロセス名のみを取得することとしてもよい。この場合、外部認証器400の署名部44では、プロセス名に対して署名が実行され、認証サーバ300では、署名付きのプロセス名を用いたホワイトリスト検証が行われる。このホワイトリスト検証に成功すれば、ブラウザ20から外部認証器400へのアクセスが可能となる。このようにしても、上記実施形態と同様の作用効果を得ることができる。
なお、上記実施形態では、外部認証器400がスマートフォンである場合について説明したが、これに限らず、その他のBluetooth機器、NFC搭載デバイス、USBトークンなどを用いることもできる。
<変形例1>
図13には、認証システムの変形例1が示されている。Windows8.1以降ではWindows Biometric Framework(WBF)により内蔵認証器に接続できる。しかしながら、WBF非対応の認証器を内蔵しているコンピュータでは、ブリッジインタフェースにより内蔵認証器に接続する必要がある。図13には、このようなブリッジインタフェース(28)により接続する内蔵認証器800を有する端末装置600が示されている。このような端末装置600においても、Polyfill24や、Platformアプリ26、ブリッジインタフェース28、内蔵認証器800の署名部44が上記実施形態と同様の処理を実行することで、不正なアプリからの内蔵認証器800へのアクセスを防止することができる。なお、端末装置600の各部の処理は、上記実施形態と同様であるため、説明は省略する。
<変形例2>
図14には、認証システムの変形例2が示されている。本変形例2に係る認証システム10’では、呼出元アプリの検証を情報処理装置としての端末装置100’内の測定アプリ26’が実行する。ここで、本変形例2においては、図14と図3を比較するとわかるように、端末装置100’からはブリッジインタフェースが省略されている。また、本変形例2の認証サーバ300は、ホワイトリストを保持していない。更に、本変形例2の外部認証器400’は、図3の外部認証器400が有する機能に加えて、CBORパーサー部340、検証結果取得部342、及びアクセス制御部344の機能を有している。
また、本変形例2の端末装置100’の認証ライブラリ(Polyfill)24’は、図15に示すように、上記実施形態の認証ライブラリ24が有していたID取得部244を有していない。更に、本変形例2の端末装置100’の測定アプリ(Platformアプリ)26’は、図3のPlatformアプリ26とは機能が異なっている。具体的には、図15に示すように、Platformアプリ26’は、アプリ情報取得部360と、生成部としてのID発行部362と、検証部364と、ID検証部366と、を有する。また、Platformアプリ26’は、第1リストとしてのホワイトリスト382、第2リストとしてのホワイトリスト383、及び記憶部としての管理情報テーブル380、を有する。
ここで、ホワイトリスト382は、上記実施形態において認証サーバ300が有していたホワイトリスト82と同様のリストである。具体的には、ホワイトリスト382は、図16(a)に示すように、外部認証器400’への接続が許可されているアプリ(ブラウザ)の名称(アプリ名)が予め登録されているリストである。また、ホワイトリスト383は、図16(b)に示すように、ブラウザからの接続が許可されている提供サーバのアドレスが予め登録されているリストである。
管理情報テーブル380は、検証部364の検証結果を格納するテーブルであり、図17に示すようなデータ構造を有する。なお、管理情報テーブル380の詳細については後述する。
(認証システム10’における外部認証器400’へのアクセス制御について)
次に、認証システム10’における外部認証器400’へのアクセス制御について、図18~図20に基づいて詳細に説明する。
図18には、アクセス制御処理の手順(その1)が示されている。図18の処理では、まず、Polyfill24のサーバ検証連携部242が、Platformアプリ26’にアクセスするときに、アプリ情報取得部360に対して、身元証明IDの発行要求を実行する(S71)。この場合、サーバ検証連携部242は、呼出元アプリ情報として、challenge、origin、type、プロセス名の情報をアプリ情報取得部360に送信する。ここで、challenge、origin、typeの詳細については、非特許文献2に開示されているが、challengeは、認証サーバから取得するランダムな値である。また、originは、URLのスキーム、ホスト、ポートなどにより表される情報であり、例えば、「www.access-server1.co.jp:80」などである。typeは、登録か認証を表す文字列であり、例えば、「webauthn.create」や「webauthn.get」である。プロセス名は、呼出元アプリのプロセス名である。
次いで、ID発行部362が、アプリ情報取得部360から取得したchallenge、origin、typeからclientDataHashを生成し、身元証明IDとする(S72)。ここで、本変形例2では、上記実施形態の身元証明ID(プロセス名と乱数生成関数とを用いて生成される一意のID)の代わりに、非特許文献2に記載の「WebAuthn spec」に規定されているAPI(WebAuthn API)により取得可能なclientDataHashを身元証明IDとして用いることとする。clientDataHashはchallenge、origin、typeから生成することができる。
次いで、検証部364は、呼出元アプリ情報をID発行部362から取得する(S73)。そして、検証部364は、ホワイトリスト382、383を使って呼出元アプリ情報を検証し、身元証明ID(clientDataHash)を管理情報テーブル380において管理する。具体的には、検証部364は、ホワイトリスト382を参照して、サーバ検証連携部242から送られてきたプロセス名がホワイトリスト382に存在するか否かを確認する。また、検証部364は、Windowsのデスクトップ環境において最前面に配置されているウィンドウ(アプリ)の情報(前面表示アプリ情報)を上記実施形態と同様にして取得し、サーバ検証連携部242から送られてきたプロセス名と一致するかを確認する。更に、検証部364は、originから提供サーバ20のアドレス情報を取得し、当該アドレス情報がホワイトリスト383に存在するかを確認する。そして、検証部364は、検証結果(OK/NG)それぞれを、身元証明ID(clientDataHash)と紐づけて管理情報テーブル380に格納する。なお、検証部364は、提供サーバ20のアドレス情報をoriginから取得せずに、サーバ検証連携部242に提供サーバ20のアドレス情報を要求するようにしてもよい。
ここで、管理情報テーブル380は、図17に示すように、「clientDataHash(身元証明ID)」に対応付けて、「呼出元アプリ検証結果」、「プロセス名と前面表示アプリ情報一致検証結果」、「提供サーバ検証結果」が格納される。「呼出元アプリ検証結果」には、受信したプロセス名がホワイトリスト382に存在していれば「OK」、いなければ「NG」が格納される。「プロセス名と前面表示アプリ情報一致検証結果」には、受信したプロセス名と前面表示アプリ情報とが一致していれば「OK」、いなければ「NG」が格納される。「提供サーバ検証結果」には、提供サーバのアドレスがホワイトリスト383に存在していれば「OK」、いなければ「NG」が格納される。
以上のように、検証部364の検証結果が管理情報テーブル380に格納されると、検証部364は、検証処理完了をRelying Partyアプリ22のPolyfill24’に通知する(S75)。
図19には、アクセス制御処理の手順(その2)が示されている。図19の処理においては、前述のように、ステップS75の検証処理完了通知がRelying Partyアプリ22に通知されると、Relying Partyアプリ22は、非特許文献2記載の「WebAuthn spec」に規定のAPI(WebAuthn API)による接続方式に従い、外部認証器400’のCTAP接続インタフェース40に接続する。このとき、Relying Partyアプリ22はchallenge、origin、type情報を外部認証器に送信する(S76)。
外部認証器400’のCBORパーサー部340は、CTAP接続インタフェース40が受信したCBOR形式データからclientDataHash情報をパースして、取得する(S77)。そして、CBORパーサー部340は、検証結果取得部342経由でPlatformアプリ26’のID検証部366にclientDataHashを送信する(S78)。
次いで、Platformアプリ26’のID検証部366は、管理情報テーブル380を参照し、外部認証器400’の検証結果取得部342から受信したclientDataHashと一致するデータがあるかを検証する(S79)。この検証の結果、一致するclientDataHashが管理情報テーブル380に存在していた場合には、当該clientDataHashに紐付く検証結果を管理情報テーブル380から取得して、外部認証器400’の検証結果取得部342に返信する(S80)。
次いで、外部認証器400’のアクセス制御部344は、検証結果取得部342経由でclientDataHashに紐付く検証結果を取得すると、取得した全ての検証結果が「OK」のときに、外部認証器400’によるFIDOの署名処理を許可し、1つでも「NG」のときには、署名処理を許可しないようにアクセス制御する(S81)。そして、アクセス制御部344は、アクセス制御の結果をログ(図20)に記録する(S82)。なお、図20のログには、タイムスタンプに紐付けて、取得した3つの検証結果と、署名処理の許可/不許可が記録される。このログは、例えば、外部認証器400’をメンテナンスする作業者が参照することができる。
これまでの説明から明らかなように、本変形例2では、ID検証部366が、外部認証器400’が生成したclientDataHashを受信して、該clientDataHashに紐づく検証結果を管理情報テーブル380から取得する取得部、及び外部認証器400’に対して、取得結果を送信する送信部としての機能を有する。
以上説明したように、本変形例2によれば、ID発行部362は、ブラウザ20が外部認証器400’に接続するときに、アプリ情報取得部360がブラウザ20から取得した情報(challenge、origin、type)を用いて、一意の識別情報(clientDataHash)を生成する(S72)。また、検証部364は、ホワイトリスト382を参照して、clientDataHashがホワイトリスト382に格納されているかを検証し、検証結果をclientDataHashと紐づけて管理情報テーブル380に記憶する(S74)。また、検証部364は、検証完了通知をブラウザ20に送信する(S75)。更に、ID検証部366は、ブラウザ20から取得した情報(challenge、origin、type)を用いて外部認証器400’が生成したclientDataHashを受信して(S78)、受信したclientDataHashに紐づく検証結果を管理情報テーブル380から取得し、外部認証器400’に対して、clientDataHashに紐付く検証結果を送信する(S80)。この場合、外部認証器400’のアクセス制御部344は、受信した検証結果に基づいてブラウザ20との接続可否を制御する。これにより、本変形例2では、端末装置100’内において不正なアプリからの外部認証器400’へのアクセスを防止することができる。また、本変形例2では、身元証明IDとして、FIDO認証において利用されるclientDataHashを用いることとしているため、FIDO認証において利用されない身元証明IDを用いるような場合と比べて、システム開発の難易度を低減することができる。
また、本変形例2では、検証部364は、Windowsのデスクトップ環境において最前面に配置されているウィンドウ(アプリ)の情報(前面表示アプリ情報)を取得する。そして、検証部364は、取得した前面表示アプリ情報と、ブラウザ20のプロセス名とが一致するかを確認し、確認結果を管理情報テーブル380に格納する。この場合、外部認証器400’において、前面表示アプリ情報とブラウザ20のプロセス名が一致しない場合に、ブラウザ20の接続を許可しないようにすることで、端末装置100’にインストールされた不正アプリ(バックグラウンドで動作するマルウエアのようなアプリ)が外部認証器400’にアクセスするのを防止することができる。
また、本変形例2では、検証部364は、ホワイトリスト383を参照して、ブラウザ20が接続する提供サーバ200の情報がホワイトリスト383に格納されているかを検証し、検証結果を管理情報テーブル380に記憶する。この場合、外部認証器400’において、ブラウザ20が接続する提供サーバ200の情報がホワイトリスト383に無い場合に、ブラウザ20の接続を許可しないようにすることで、不正な提供サーバからの外部認証器400’へのアクセスを防止することができる。
なお、上記実施形態では、端末装置100側で生体情報を照合してユーザ認証処理を行い、その認証結果を認証サーバ300側に送信する手法としてFIDOを挙げたが、これに限定されない。例えば、端末装置100に接続された外部認証器400において生体認証(ローカル認証)を行うものであれば、各種の手法を用いてもよい。なお、ローカル認証は、ユーザが利用している外部認証器に生体データを保持(登録)しておき、保持している生体データを用いて外部認証器内で認証を行うことを意味する。
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
なお、以上の実施形態の説明に関して、更に以下の付記を開示する。
(付記1) ブラウザがブリッジインタフェース経由により認証器に接続するときに、前記ブラウザの情報を取得して、取得した前記ブラウザの情報から一意の識別情報を生成して前記ブラウザに送信し、生成した前記一意の識別情報と前記ブラウザの情報とを関連付けて記憶部において管理する管理部と、
前記ブラウザから前記一意の識別情報を取得し、前記記憶部を参照して、取得した前記一意の識別情報に対応する前記ブラウザの情報を取得する取得部と、
前記取得部が取得した前記ブラウザの情報を前記認証器に送信して、前記ブラウザの情報に署名を付すように依頼する依頼部と、
前記認証器から署名付きのブラウザの情報を取得し、取得した前記署名付きのブラウザの情報を認証サーバに送信する送信部と、
前記認証サーバによる前記署名付きのブラウザの情報を用いた認証結果に基づいて、前記ブラウザと前記認証器の接続可否を制御する制御部と、を備える情報処理装置。
(付記2) 前記取得部は、前記ブラウザの情報とともに、前記情報処理装置の表示部において最前面に表示されているアプリの情報を取得し、
前記依頼部は、前記取得部が取得した前記ブラウザの情報と前記アプリの情報とを前記認証器に送信して、前記ブラウザの情報と前記アプリの情報に署名を付すように依頼し、
前記送信部は、前記認証器から署名付きのブラウザの情報と署名付きのアプリの情報とを取得し、取得した情報を前記認証サーバに送信し、
前記制御部は、前記認証サーバによる前記署名付きのブラウザの情報と前記署名付きのアプリの情報とを用いた認証結果に基づいて、前記ブラウザと前記認証器の接続可否を制御する、
ことを特徴とする付記1に記載の情報処理装置。
(付記3) 前記制御部は、前記認証サーバの認証結果が、署名が付された前記ブラウザの情報が、前記認証器への接続が許可されているブラウザのリストに載っており、署名が付された前記ブラウザの情報と署名が付された前記アプリの情報とが一致していることを示す場合に、前記ブラウザと前記認証器の接続を許可する制御を実行する、ことを特徴とする付記2に記載の情報処理装置。
(付記4) 前記認証器を前記ブリッジインタフェースと共に内蔵することを特徴とする付記1~3のいずれかに記載の情報処理装置。
(付記5) ブラウザがブリッジインタフェース経由によりされた認証器に接続するときに、前記ブラウザの情報を取得して、取得した前記ブラウザの情報から一意の識別情報を生成して前記ブラウザに送信し、生成した前記一意の識別情報と前記ブラウザの情報とを関連付けて記憶部において管理し、
前記ブラウザから前記一意の識別情報を取得し、前記記憶部を参照して、取得した前記一意の識別情報に対応する前記ブラウザの情報を取得し、
取得した前記ブラウザの情報を前記認証器に送信して、前記ブラウザの情報に署名を付すように依頼し、
前記認証器から署名付きのブラウザの情報を取得し、取得した前記署名付きのブラウザの情報を認証サーバに送信し、
前記認証サーバによる前記署名付きのブラウザの情報を用いた認証結果に基づいて、前記ブラウザと前記認証器の接続可否を制御する、処理をコンピュータが実行することを特徴とする情報処理方法。
(付記6) 前記取得する処理では、前記ブラウザの情報とともに、前記情報処理装置の表示部において最前面に表示されているアプリの情報を取得し、
前記依頼する処理では、前記取得する処理において取得した前記ブラウザの情報と前記アプリの情報とを前記認証器に送信して、前記ブラウザの情報と前記アプリの情報に署名を付すように依頼し、
前記送信する処理では、前記認証器から署名付きのブラウザの情報と署名付きのアプリの情報とを取得し、取得した情報を前記認証サーバに送信し、
前記制御する処理では、前記認証サーバによる前記署名付きのブラウザの情報と前記署名付きのアプリの情報とを用いた認証結果に基づいて、前記ブラウザと前記認証器の接続可否を制御する、
ことを特徴とする付記4に記載の情報処理方法。
(付記7) 前記制御する処理では、前記認証サーバの認証結果が、署名が付された前記ブラウザの情報が、前記認証器への接続が許可されているブラウザのリストに載っており、署名が付された前記ブラウザの情報と署名が付された前記アプリの情報とが一致していることを示す場合に、前記ブラウザと前記認証器の接続を許可する制御を実行する、ことを特徴とする付記6に記載の情報処理方法。
(付記8)ブラウザがブリッジインタフェース経由により認証器に接続するときに、前記ブラウザの情報を取得して、取得した前記ブラウザの情報から一意の識別情報を生成して前記ブラウザに送信し、生成した前記一意の識別情報と前記ブラウザの情報とを関連付けて記憶部において管理し、
前記ブラウザから前記一意の識別情報を取得し、前記記憶部を参照して、取得した前記一意の識別情報に対応する前記ブラウザの情報を取得し、
取得した前記ブラウザの情報を前記認証器に送信して、前記ブラウザの情報に署名を付すように依頼し、
前記認証器から署名付きのブラウザの情報を取得し、取得した前記署名付きのブラウザの情報を認証サーバに送信し、
前記認証サーバによる前記署名付きのブラウザの情報を用いた認証結果に基づいて、前記ブラウザと前記認証器の接続可否を制御する、処理をコンピュータに実行させるための情報処理プログラム。
(付記9) ブラウザが認証器に接続するときに、前記ブラウザから取得した情報を用いて、一意の識別情報を生成する生成部と、
接続を許可するブラウザの識別情報を格納する第1リストを参照して、前記生成部が生成した前記識別情報が前記第1リストに格納されているかを検証し、検証結果を前記識別情報と紐づけて記憶部に記憶するとともに、検証完了通知を前記ブラウザに送信する検証部と、
ブラウザから取得した情報を用いて前記認証器が生成した一意の識別情報を受信して、該識別情報に紐づく検証結果を前記記憶部から取得する取得部と、
前記取得部の取得結果に基づいて前記ブラウザとの接続可否を制御する前記認証器に対して、前記取得結果を送信する送信部と、
を備える情報処理装置。
(付記10) 前記検証部は、前記情報処理装置の表示部において最前面に表示されているアプリの情報を取得し、取得したアプリ情報と、前記ブラウザから取得した情報との一致検証を行い、該一致検証の結果も前記識別情報と紐づけて前記記憶部に記憶する、ことを特徴とする付記9に記載の情報処理装置。
(付記11) 前記検証部は、前記ブラウザが接続する情報提供装置の情報を取得し、前記ブラウザが接続可能な情報提供装置の情報を格納する第2リストを参照して、取得した前記情報提供装置の情報が前記第2リストに格納されているかを検証し、該検証結果も前記識別情報と紐づけて前記記憶部に記憶する、ことを特徴とする付記9又は10に記載の情報処理装置。
(付記12) 前記一意の識別情報は、FIDO(Fast IDentity Online)認証において利用されるclientDataHashであることを特徴とする付記9~11のいずれかに記載の情報処理装置。
(付記13) ブラウザが認証器に接続するときに、前記ブラウザから取得した情報を用いて、一意の識別情報を生成し、
接続を許可するブラウザの識別情報を格納する第1リストを参照して、前記生成部が生成した前記識別情報が前記第1リストに格納されているかを検証し、検証結果を前記識別情報と紐づけて記憶部に記憶するとともに、検証完了通知を前記ブラウザに送信し、
ブラウザから取得した情報を用いて前記認証器が生成した一意の識別情報を受信して、該識別情報に紐づく検証結果を前記記憶部から取得し、
前記取得する処理の取得結果に基づいて前記ブラウザとの接続可否を制御する前記認証器に対して、前記取得結果を送信する、
処理をコンピュータが実行することを特徴とする情報処理方法。
(付記14) 前記検証において、前記情報処理装置の表示部において最前面に表示されているアプリの情報を取得し、取得したアプリ情報と、前記ブラウザから取得した情報との一致検証を行い、該一致検証の結果も前記識別情報と紐づけて前記記憶部に記憶する、ことを特徴とする付記13に記載の情報処理方法。
(付記15) 前記検証において、前記ブラウザが接続する情報提供装置の情報を取得し、前記ブラウザが接続可能な情報提供装置の情報を格納する第2リストを参照して、取得した前記情報提供装置の情報が前記第2リストに格納されているかを検証し、該検証結果も前記識別情報と紐づけて前記記憶部に記憶する、ことを特徴とする付記9又は10に記載の情報処理方法。
(付記16) 前記一意の識別情報は、FIDO(Fast IDentity Online)認証において利用されるclientDataHashであることを特徴とする付記9~11のいずれかに記載の情報処理方法。
(付記17) ブラウザが認証器に接続するときに、前記ブラウザから取得した情報を用いて、一意の識別情報を生成し、
接続を許可するブラウザの識別情報を格納する第1リストを参照して、前記生成部が生成した前記識別情報が前記第1リストに格納されているかを検証し、検証結果を前記識別情報と紐づけて記憶部に記憶するとともに、検証完了通知を前記ブラウザに送信し、
ブラウザから取得した情報を用いて前記認証器が生成した一意の識別情報を受信して、該識別情報に紐づく検証結果を前記記憶部から取得し、
前記取得する処理の取得結果に基づいて前記ブラウザとの接続可否を制御する前記認証器に対して、前記取得結果を送信する、
処理をコンピュータに実行させるための情報処理プログラム。
20 ブラウザ
28 ブリッジインタフェース(制御部)
80 記憶部(管理情報テーブル)
82 ホワイトリスト(ブラウザのリスト)
100 端末装置(情報処理装置)
242 サーバ検証連携部(送信部)
262 ID発行部(管理部)
266 ID検証部(取得部)
282 署名依頼部(依頼部)
362 ID発行部(生成部)
364 検証部
366 ID検証部(取得部、送信部)
380 管理情報テーブル(記憶部)
382 ホワイトリスト(第1リスト)
383 ホワイトリスト(第2リスト)
400 外部認証器(認証器)
400’ 外部認証器(認証器)

Claims (12)

  1. ブラウザがブリッジインタフェースを経由して認証器に接続するときに、前記ブラウザの情報を取得して、取得した前記ブラウザの情報から一意の識別情報を生成して前記ブラウザに送信し、生成した前記一意の識別情報と前記ブラウザの情報とを関連付けて記憶部において管理する管理部と、
    前記ブラウザから前記一意の識別情報を取得し、前記記憶部を参照して、取得した前記一意の識別情報に対応する前記ブラウザの情報を取得する取得部と、
    前記取得部が取得した前記ブラウザの情報を前記認証器に送信して、前記ブラウザの情報に署名を付すように依頼する依頼部と、
    前記認証器から署名付きのブラウザの情報を取得し、取得した前記署名付きのブラウザの情報を認証サーバに送信する送信部と、
    前記認証サーバによる前記署名付きのブラウザの情報を用いた認証結果に基づいて、前記ブラウザと前記認証器の接続可否を制御する制御部と、を備える情報処理装置。
  2. 前記取得部は、前記ブラウザの情報とともに、前記情報処理装置の表示部において最前面に表示されているアプリの情報を取得し、
    前記依頼部は、前記取得部が取得した前記ブラウザの情報と前記アプリの情報とを前記認証器に送信して、前記ブラウザの情報と前記アプリの情報に署名を付すように依頼し、
    前記送信部は、前記認証器から署名付きのブラウザの情報と署名付きのアプリの情報とを取得し、取得した情報を前記認証サーバに送信し、
    前記制御部は、前記認証サーバによる前記署名付きのブラウザの情報と前記署名付きのアプリの情報とを用いた認証結果に基づいて、前記ブラウザと前記認証器の接続可否を制御する、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記制御部は、前記認証サーバの認証結果が、署名が付された前記ブラウザの情報が、前記認証器への接続が許可されているブラウザのリストに載っており、署名が付された前記ブラウザの情報と署名が付された前記アプリの情報とが一致していることを示す場合に、前記ブラウザと前記認証器の接続を許可する制御を実行する、ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記認証器を前記ブリッジインタフェースと共に内蔵することを特徴とする請求項1~3のいずれか一項に記載の情報処理装置。
  5. ブラウザがブリッジインタフェースを経由して認証器に接続するときに、前記ブラウザの情報を取得して、取得した前記ブラウザの情報から一意の識別情報を生成して前記ブラウザに送信し、生成した前記一意の識別情報と前記ブラウザの情報とを関連付けて記憶部において管理し、
    前記ブラウザから前記一意の識別情報を取得し、前記記憶部を参照して、取得した前記一意の識別情報に対応する前記ブラウザの情報を取得し、
    取得した前記ブラウザの情報を前記認証器に送信して、前記ブラウザの情報に署名を付すように依頼し、
    前記認証器から署名付きのブラウザの情報を取得し、取得した前記署名付きのブラウザの情報を認証サーバに送信し、
    前記認証サーバによる前記署名付きのブラウザの情報を用いた認証結果に基づいて、前記ブラウザと前記認証器の接続可否を制御する、処理をコンピュータが実行することを特徴とする情報処理方法。
  6. ブラウザがブリッジインタフェースを経由して認証器に接続するときに、前記ブラウザの情報を取得して、取得した前記ブラウザの情報から一意の識別情報を生成して前記ブラウザに送信し、生成した前記一意の識別情報と前記ブラウザの情報とを関連付けて記憶部において管理し、
    前記ブラウザから前記一意の識別情報を取得し、前記記憶部を参照して、取得した前記一意の識別情報に対応する前記ブラウザの情報を取得し、
    取得した前記ブラウザの情報を前記認証器に送信して、前記ブラウザの情報に署名を付すように依頼し、
    前記認証器から署名付きのブラウザの情報を取得し、取得した前記署名付きのブラウザの情報を認証サーバに送信し、
    前記認証サーバによる前記署名付きのブラウザの情報を用いた認証結果に基づいて、前記ブラウザと前記認証器の接続可否を制御する、処理をコンピュータに実行させるための情報処理プログラム。
  7. ブラウザが認証器に接続するときに、前記ブラウザから取得した情報を用いて、一意の識別情報を生成する生成部と、
    接続を許可するブラウザの識別情報を格納する第1リストを参照して、前記生成部が生成した前記識別情報が前記第1リストに格納されているかを検証し、検証結果を前記識別情報と紐づけて記憶部に記憶するとともに、検証完了通知を前記ブラウザに送信する検証部と、
    ブラウザから取得した情報を用いて前記認証器が生成した一意の識別情報を受信して、該識別情報に紐づく検証結果を前記記憶部から取得する取得部と、
    前記取得部の取得結果に基づいて前記ブラウザとの接続可否を制御する前記認証器に対して、前記取得結果を送信する送信部と、
    を備える情報処理装置。
  8. 前記検証部は、前記情報処理装置の表示部において最前面に表示されているアプリの情報を取得し、取得したアプリ情報と、前記ブラウザから取得した情報との一致検証を行い、該一致検証の結果も前記識別情報と紐づけて前記記憶部に記憶する、ことを特徴とする請求項7に記載の情報処理装置。
  9. 前記検証部は、前記ブラウザが接続する情報提供装置の情報を取得し、前記ブラウザが接続可能な情報提供装置の情報を格納する第2リストを参照して、取得した前記情報提供装置の情報が前記第2リストに格納されているかを検証し、該検証結果も前記識別情報と紐づけて前記記憶部に記憶する、ことを特徴とする請求項7又は8に記載の情報処理装置。
  10. 前記一意の識別情報は、FIDO(Fast IDentity Online)認証において利用されるclientDataHashであることを特徴とする請求項7~9のいずれか一項に記載の情報処理装置。
  11. ブラウザが認証器に接続するときに、前記ブラウザから取得した情報を用いて、一意の識別情報を生成し、
    接続を許可するブラウザの識別情報を格納する第1リストを参照して、前記生成する処理により生成した前記識別情報が前記第1リストに格納されているかを検証し、検証結果を前記識別情報と紐づけて記憶部に記憶するとともに、検証完了通知を前記ブラウザに送信し、
    ブラウザから取得した情報を用いて前記認証器が生成した一意の識別情報を受信して、該識別情報に紐づく検証結果を前記記憶部から取得し、
    前記取得する処理の取得結果に基づいて前記ブラウザとの接続可否を制御する前記認証器に対して、前記取得結果を送信する、
    処理をコンピュータが実行することを特徴とする情報処理方法。
  12. ブラウザが認証器に接続するときに、前記ブラウザから取得した情報を用いて、一意の識別情報を生成し、
    接続を許可するブラウザの識別情報を格納する第1リストを参照して、前記生成する処理により生成した前記識別情報が前記第1リストに格納されているかを検証し、検証結果を前記識別情報と紐づけて記憶部に記憶するとともに、検証完了通知を前記ブラウザに送信し、
    ブラウザから取得した情報を用いて前記認証器が生成した一意の識別情報を受信して、該識別情報に紐づく検証結果を前記記憶部から取得し、
    前記取得する処理の取得結果に基づいて前記ブラウザとの接続可否を制御する前記認証器に対して、前記取得結果を送信する、
    処理をコンピュータに実行させるための情報処理プログラム。
JP2019172736A 2018-12-06 2019-09-24 情報処理装置、情報処理方法及び情報処理プログラム Active JP7269486B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/703,159 US11245700B2 (en) 2018-12-06 2019-12-04 Information processing apparatus, information processing method, and recording medium recording information processing program
EP19213501.0A EP3663946A1 (en) 2018-12-06 2019-12-04 Information processing apparatus, information processing method, and information processing program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018228785 2018-12-06
JP2018228785 2018-12-06

Publications (2)

Publication Number Publication Date
JP2020095687A JP2020095687A (ja) 2020-06-18
JP7269486B2 true JP7269486B2 (ja) 2023-05-09

Family

ID=71086279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019172736A Active JP7269486B2 (ja) 2018-12-06 2019-09-24 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (1)

Country Link
JP (1) JP7269486B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021043675A (ja) 2019-09-10 2021-03-18 富士通株式会社 制御方法、制御プログラム、情報処理装置及び情報処理システム
JP7476738B2 (ja) 2020-09-10 2024-05-01 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム
JP7326382B2 (ja) * 2021-05-20 2023-08-15 ヤフー株式会社 情報処理装置、情報処理方法及び情報処理プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070192608A1 (en) 2004-03-10 2007-08-16 Agostinho De Arruda Villela Access control system for information services based on a hardware and software signature of a requesting device
JP2008251021A (ja) 2001-11-26 2008-10-16 Matsushita Electric Ind Co Ltd アプリケーション認証システム
CN108092776A (zh) 2017-12-04 2018-05-29 南京南瑞信息通信科技有限公司 一种身份认证服务器和身份认证令牌

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008251021A (ja) 2001-11-26 2008-10-16 Matsushita Electric Ind Co Ltd アプリケーション認証システム
US20070192608A1 (en) 2004-03-10 2007-08-16 Agostinho De Arruda Villela Access control system for information services based on a hardware and software signature of a requesting device
CN108092776A (zh) 2017-12-04 2018-05-29 南京南瑞信息通信科技有限公司 一种身份认证服务器和身份认证令牌

Also Published As

Publication number Publication date
JP2020095687A (ja) 2020-06-18

Similar Documents

Publication Publication Date Title
US10554420B2 (en) Wireless connections to a wireless access point
US10299118B1 (en) Authenticating a person for a third party without requiring input of a password by the person
US9300653B1 (en) Delivery of authentication information to a RESTful service using token validation scheme
US9185096B2 (en) Identity verification
US9191394B2 (en) Protecting user credentials from a computing device
EP4027254A2 (en) Method for authenticated session using static or dynamic codes
US20170244676A1 (en) Method and system for authentication
US8353016B1 (en) Secure portable store for security skins and authentication information
US9032217B1 (en) Device-specific tokens for authentication
CN113474774A (zh) 用于认可新验证器的系统和方法
EP3663946A1 (en) Information processing apparatus, information processing method, and information processing program
KR20170056566A (ko) 네트워크 아키텍처 내에 인증 서비스를 통합하기 위한 시스템 및 방법
JP7269486B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
US10411894B1 (en) Authentication based on unique encoded codes
US11329824B2 (en) System and method for authenticating a transaction
US9137224B2 (en) System and method for secure remote access
US20230106348A1 (en) Method and system for authenticating a secure credential transfer to a device
KR20170041741A (ko) 호스팅된 인증 서비스를 구현하기 위한 시스템 및 방법
US11777942B2 (en) Transfer of trust between authentication devices
JP2013531834A (ja) IPsecとIKEバージョン1の認証を伴うワンタイム・パスワード
CN112565172B (zh) 控制方法、信息处理设备以及信息处理系统
KR20180034199A (ko) 싱글 사인 온 서비스 기반의 상호 인증 방법 및 시스템
US11716331B2 (en) Authentication method, an authentication device and a system comprising the authentication device
KR101595099B1 (ko) 보안코드 서비스 제공 방법
US20220337584A1 (en) Information processing device, information processing method, and non-transitory computer readable storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230309

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230404

R150 Certificate of patent or registration of utility model

Ref document number: 7269486

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150