JP2019129385A - Information processing unit, authentication server, authentication control method and authentication control program - Google Patents

Information processing unit, authentication server, authentication control method and authentication control program Download PDF

Info

Publication number
JP2019129385A
JP2019129385A JP2018009130A JP2018009130A JP2019129385A JP 2019129385 A JP2019129385 A JP 2019129385A JP 2018009130 A JP2018009130 A JP 2018009130A JP 2018009130 A JP2018009130 A JP 2018009130A JP 2019129385 A JP2019129385 A JP 2019129385A
Authority
JP
Japan
Prior art keywords
application
user
service
authentication
signature
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.)
Granted
Application number
JP2018009130A
Other languages
Japanese (ja)
Other versions
JP6939595B2 (en
Inventor
矢崎 孝一
Koichi Yazaki
孝一 矢崎
伊藤 栄信
Yoshinobu Ito
栄信 伊藤
和明 二村
Kazuaki Futamura
和明 二村
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 JP2018009130A priority Critical patent/JP6939595B2/en
Publication of JP2019129385A publication Critical patent/JP2019129385A/en
Application granted granted Critical
Publication of JP6939595B2 publication Critical patent/JP6939595B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

To provide an information processing unit capable of detecting illegal call.SOLUTION: An information processing unit has an execution part, a measurement part and a signature part. The execution part acquires an application for providing a service to a user from a provision server providing service and executes on browser, and authenticates the acquisition source of the application. The execution part executes signature request by receiving the data, according to the authentication request of the user transmitted by the application for the authentication server authenticating the user. When executing signature request, the measurement part measures parental relation of the program calling API corresponding to the signature request. The signature part generates signature data by using a secret key or a public key, on the basis of the data, the acquisition source of the application, and measurement results. Furthermore, the execution part transmits the generated signature data to the authentication server, and provides a service to the user upon receiving collation results matching the measurement results registered by the provision server, from the authentication server.SELECTED DRAWING: Figure 1

Description

本発明は、情報処理装置、認証サーバ、認証制御方法および認証制御プログラムに関する。   The present invention relates to an information processing apparatus, an authentication server, an authentication control method, and an authentication control program.

従来、生体認証サービスでは、例えば、サーバに生体情報を登録し、銀行のATM(Automatic Teller Machine)に設置された生体認証装置で取得した生体情報をサーバに送信して照合することが行われている。この場合、生体情報の管理やサイバー攻撃からの防御等の運用コストが大きく、サービス提供者の負担となっている。これに対し、近年、端末側で生体情報を照合して照合結果をサーバ側に送信することが提案されている。この様な仕様としては、例えばFIDO(Fast IDentity Online)が挙げられる。   Conventionally, in a biometric authentication service, for example, biometric information is registered in a server, and biometric information acquired by a biometric authentication device installed in a bank ATM (Automatic Teller Machine) is transmitted to the server for verification. There is. In this case, operation costs such as management of biometric information and protection from cyber attacks are large, which is a burden on the service provider. On the other hand, in recent years, it has been proposed to collate biometric information on the terminal side and transmit the collation result to the server side. An example of such a specification is FIDO (Fast IDentity Online).

端末で生体情報を照合する場合、FIDOのAPI(Application Programming Interface)についてセキュア実装が不可欠となる。もし、端末上の任意のアプリに自由にAPIの呼び出しを許可すると、ユーザの成り済ましを行うような悪意あるアプリに対してもFIDOのAPIの利用を許してしまい、ユーザに対してアカウントの乗っ取り等の被害が発生することになる。このため、APIにアクセスできるアプリを限定することで、悪意あるアプリから保護することになる。この様な保護策としては、例えば、大きく分けて、以下の手法1〜3に示すような方法がある。手法1は、APIをSDK(Software Development Kit)として提供しアプリ内に内蔵する手法である。手法2は、パスワードを持つアプリだけにAPIアクセスを許可する手法である。手法3は、特定のコード署名を持つアプリだけにAPIアクセスを許可する手法である。   In the case of collating biometric information in a terminal, secure implementation is essential for the FIDO API (Application Programming Interface). If an arbitrary application on the terminal is allowed to call an API freely, a malicious application that impersonates the user is allowed to use the FIDO API, and the account is hijacked by the user. Will cause damage. For this reason, by limiting the applications that can access the API, protection from malicious applications is achieved. As such protective measures, for example, there are methods roughly shown in the following methods 1 to 3. Method 1 is a method of providing an API as an SDK (Software Development Kit) and incorporating it in an application. Method 2 is a method of permitting API access only to an application having a password. Method 3 is a method of permitting API access only to an application having a specific code signature.

特開2016−139910号公報JP-A-2006-139910

“FIDO Alliance”、[Online],[平成30年1月11日検索]、インターネット<https://fidoalliance.org/specifications/overview/>“FIDO Alliance”, [Online], [searched on January 11, 2018], Internet <https://fidoalliance.org/specifications/overview/>

しかしながら、近年では、アプリが端末のOS(Operating System)上で動作するネイティブアプリから、ブラウザ上で動作するWebアプリにシフトしてきており、上述の保護策が使えない場合が増加している。Webアプリに上述の手法1〜3を適用しようとすると、例えば、手法1では、Webアプリはサーバからダウンロードされる一方、FIDOのAPIは端末に実装されるので、WebアプリにFIDOのAPIを内蔵することが困難である。手法2では、Webアプリのコードが解析されやすく、パスワードが丸見えになる危険性がある。手法3では、ブラウザがWebアプリに代わって代理アクセスするので、API側からWebアプリのチェックをすることが難しい。従って、Webアプリでは、不正なAPI呼び出しを検出することが困難である。   However, in recent years, applications have shifted from native applications that operate on the OS (Operating System) of the terminal to Web applications that operate on the browser, and the number of cases where the above-described protection measures cannot be used is increasing. When trying to apply the above-described methods 1 to 3 to a web application, for example, in method 1, the web application is downloaded from the server, while the FIDO API is mounted on the terminal, so the web application incorporates the FIDO API. It is difficult to do. In Method 2, there is a risk that the code of the Web application is easily analyzed and the password becomes completely visible. In Method 3, since the browser performs proxy access instead of the Web application, it is difficult to check the Web application from the API side. Therefore, it is difficult for Web applications to detect illegal API calls.

一つの側面では、不正なAPI呼び出しを検出できる情報処理装置、認証サーバ、認証制御方法および認証制御プログラムを提供することにある。   An aspect of the present invention is to provide an information processing apparatus capable of detecting an unauthorized API call, an authentication server, an authentication control method, and an authentication control program.

一つの態様では、情報処理装置は、実行部と、測定部と、署名部とを有する。実行部は、サービスを提供する提供サーバから、該サービスをユーザに提供するアプリを取得してブラウザ上で実行するとともに前記アプリの取得元を検証する。また、実行部は、前記ユーザを認証する認証サーバに対して前記アプリが送信する前記ユーザの認証要求に応じたデータを前記認証サーバから受信し、受信した前記データへの署名要求を実行する。測定部は、前記署名要求を実行する際に、前記署名要求に対応するAPIを呼び出したプログラムの親子関係を測定する。署名部は、前記データと、検証された前記アプリの取得元と、測定された前記親子関係を示す測定結果とに基づいて、秘密鍵または公開鍵を用いて署名データを生成する。また、実行部は、生成された前記署名データを前記認証サーバに送信し、前記提供サーバが登録済みの測定結果と一致する照合結果を前記認証サーバから受信した場合に、前記サービスを前記ユーザに提供する。   In one aspect, the information processing apparatus includes an execution unit, a measurement unit, and a signature unit. The execution unit acquires an application that provides the service to the user from a providing server that provides the service, executes the application on the browser, and verifies the acquisition source of the application. The execution unit receives data corresponding to the user authentication request transmitted from the application to the authentication server for authenticating the user from the authentication server, and executes a request for signing the received data. The measurement unit measures a parent-child relationship of a program that calls an API corresponding to the signature request when executing the signature request. The signature unit generates signature data using a secret key or a public key based on the data, the verified acquisition source of the application, and the measurement result indicating the measured parent-child relationship. The execution unit transmits the generated signature data to the authentication server, and when the providing server receives a matching result that matches a registered measurement result from the authentication server, the execution unit sends the service to the user. provide.

不正なAPI呼び出しを検出できる。   An illegal API call can be detected.

図1は、実施例の認証システムの構成の一例を示す図である。FIG. 1 is a diagram showing an example of the configuration of the authentication system of the embodiment. 図2は、FIDOAPIの実装の一例を示す図である。FIG. 2 is a diagram showing an example of implementation of FIDO API. 図3は、成り済まし攻撃の一例を示す図である。FIG. 3 is a diagram showing an example of the impersonation attack. 図4は、手法1〜3の一例を示す図である。FIG. 4 is a diagram illustrating an example of the methods 1 to 3. 図5は、ネイティブアプリとWebアプリの一例を示す図である。FIG. 5 is a diagram showing an example of a native application and a web application. 図6は、Webアプリに手法2,3を適用した場合の一例を示す図である。FIG. 6 is a diagram illustrating an example when the methods 2 and 3 are applied to a Web application. 図7は、ブラウザがWebアプリをチェックする場合の一例を示す図である。FIG. 7 is a diagram showing an example of the case where the browser checks the web application. 図8は、情報の改変の一例を示す図である。FIG. 8 is a diagram illustrating an example of modification of information. 図9は、古いブラウザでWebアプリを実行する場合の一例を示す図である。FIG. 9 is a diagram illustrating an example when a web application is executed by an old browser. 図10は、実施例の端末装置の構成の一例を示すブロック図である。FIG. 10 is a block diagram showing an example of the configuration of the terminal device of the embodiment. 図11は、測定結果記憶部の一例を示す図である。FIG. 11 is a diagram illustrating an example of a measurement result storage unit. 図12は、照合DBの一例を示す図である。FIG. 12 is a diagram illustrating an example of the collation DB. 図13は、署名データの構成の一例を示す図である。FIG. 13 is a diagram showing an example of the configuration of signature data. 図14は、署名データの構成の他の一例を示す図である。FIG. 14 is a diagram showing another example of the configuration of signature data. 図15は、提供サーバ側でブロックする場合の一例を示す図である。FIG. 15 is a diagram showing an example in the case of blocking on the providing server side. 図16は、測定結果の照合の一例を示す図である。FIG. 16 is a diagram illustrating an example of collation of measurement results. 図17は、端末装置側でブロックする場合の一例を示す図である。FIG. 17 is a diagram showing an example in the case of blocking on the terminal device side. 図18は、オブジェクトの取得元に基づいてブロックする場合の一例を示す図である。FIG. 18 is a diagram illustrating an example of blocking based on an object acquisition source. 図19は、実施例の登録処理の一例を示すシーケンス図である。FIG. 19 is a sequence diagram showing an example of registration processing of the embodiment. 図20は、実施例の測定処理の一例を示すフローチャートである。FIG. 20 is a flowchart illustrating an example of measurement processing according to the embodiment. 図21は、実施例の認証処理の一例を示すシーケンス図である。FIG. 21 is a sequence diagram showing an example of the authentication process of the embodiment. 図22は、認証制御プログラムを実行するコンピュータの一例を示す図である。FIG. 22 is a diagram of an example of a computer that executes an authentication control program.

以下、図面に基づいて、本願の開示する情報処理装置、認証サーバ、認証制御方法および認証制御プログラムの実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。   Hereinafter, embodiments of an information processing apparatus, an authentication server, an authentication control method, and an authentication control program disclosed in the present application will be described in detail based on the drawings. The disclosed technology is not limited by the present embodiment. Further, the following embodiments may be appropriately combined within a consistent range.

図1は、実施例の認証システムの構成の一例を示す図である。図1に示す認証システム10は、端末装置100と、提供サーバ200と、認証サーバ300とを有する。なお、認証システム10では、端末装置100、提供サーバ200および認証サーバ300の数は限定されず、任意の数の端末装置100、提供サーバ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)等によって暗号化されるようにしてもよい。   FIG. 1 is a diagram showing an example of the configuration of the authentication system of the embodiment. The authentication system 10 illustrated in FIG. 1 includes a terminal device 100, a providing server 200, and an authentication server 300. In the authentication system 10, the numbers of the terminal device 100, the providing server 200, and the authentication server 300 are not limited, and any number of the terminal device 100, the providing server 200, and the authentication server 300 may be included. The terminal device 100 and the providing server 200, the terminal device 100 and the authentication server 300, and the providing server 200 and the authentication server 300 are connected to each other via the network N so as to communicate with each other. . As such a network N, any type of communication network such as the Internet, a LAN (Local Area Network), and a VPN (Virtual Private Network) can be adopted regardless of wired or wireless. Communication via the network N may be encrypted by, for example, TLS (Transport Layer Security) / SSL (Secure Sockets Layer).

認証システム10は、端末装置100において提供サーバ200が提供するサービスを利用する際に、端末装置100で生体情報を照合して照合結果を認証サーバ300に送信することで端末装置100のユーザ認証を行うシステムの一例である。端末装置100は、提供サーバ200が提供するサービスをユーザが利用するための情報処理装置である。端末装置100は、例えば、スマートフォン等の移動体通信端末等や可搬型のパーソナルコンピュータ等の各種端末を用いることができる。また、端末装置100は、例えば、据置型のパーソナルコンピュータ等の端末を用いてもよい。   When the authentication system 10 uses a service provided by the providing server 200 in the terminal device 100, the terminal device 100 collates the biometric information and transmits the collation result to the authentication server 300, thereby authenticating the user of the terminal device 100. It is an example of the system to perform. The terminal device 100 is an information processing device for a user to use a service provided by the providing server 200. The terminal device 100 can use, for example, various terminals such as a mobile communication terminal such as a smart phone or a portable personal computer. The terminal device 100 may use, for example, a terminal such as a stationary personal computer.

端末装置100では、例えば、ブラウザ20上で提供サーバ200から取得したアプリ21が実行される。アプリ21は、端末装置100のAPIを呼び出す中継プログラム22を介して、セキュリティで保護された実行空間23内の署名エンジン24に対してユーザ認証のための署名要求を行う。署名エンジン24内では、署名要求に対応するAPIを呼び出したプログラムの親子関係を測定する測定機構25によって、当該親子関係が測定される。署名エンジン24は、秘密鍵26を用いて測定機構25の測定結果を含む署名データを生成し、中継プログラム22を介してアプリ21に出力する。アプリ21は、署名データを認証サーバ300に送信することで署名データに含まれる測定結果の照合を依頼する。   In the terminal device 100, for example, the application 21 acquired from the providing server 200 on the browser 20 is executed. The application 21 makes a signature request for user authentication to the signature engine 24 in the execution space 23 protected by the security via the relay program 22 that calls the API of the terminal device 100. In the signature engine 24, the parent-child relationship is measured by the measuring mechanism 25 that measures the parent-child relationship of the program that has called the API corresponding to the signature request. The signature engine 24 generates signature data including the measurement result of the measurement mechanism 25 using the secret key 26, and outputs the signature data to the application 21 through the relay program 22. The application 21 sends signature data to the authentication server 300 to request verification of the measurement results included in the signature data.

提供サーバ200は、各種サービスを提供するサーバである。提供サーバ200は、端末装置100からサービス要求を受信すると、Webアプリを端末装置100に送信し、ユーザ認証および測定結果の照合の後に各種サービスをユーザに提供する。   The providing server 200 is a server that provides various services. When receiving the service request from the terminal device 100, the providing server 200 transmits a Web application to the terminal device 100, and provides various services to the user after user authentication and verification of the measurement result.

認証サーバ300は、端末装置100から受信する認証要求を処理するサーバである。また、認証サーバ300は、端末装置100から受信するユーザの署名データを登録したり、認証時の署名データを登録時の署名データと照合したりするサーバである。署名データには、例えば、上述の測定結果等が含まれる。認証サーバ300は、例えば、認証部301と照合データベース(以下、DBともいう。)302とを有する。認証部301は、端末装置100から受信した署名データの検証や、照合DB302に記憶された測定結果と署名データ内の測定結果との照合を行う。認証サーバ300は、照合によってユーザの確認が取れた場合には、提供サーバ200に対して、その旨の確認情報を送信する。つまり、認証部301は、送信部および許可部の一例である。   The authentication server 300 is a server that processes an authentication request received from the terminal device 100. The authentication server 300 is a server for registering user signature data received from the terminal device 100 and for verifying the signature data at the time of authentication with the signature data at the time of registration. The signature data includes, for example, the above measurement results. The authentication server 300 includes, for example, an authentication unit 301 and a collation database (hereinafter also referred to as a DB) 302. The authentication unit 301 verifies the signature data received from the terminal device 100 and compares the measurement result stored in the verification DB 302 with the measurement result in the signature data. The authentication server 300 transmits confirmation information to that effect to the providing server 200 when the user's confirmation is obtained by the collation. That is, the authentication unit 301 is an example of a transmission unit and a permission unit.

すなわち、端末装置100は、サービスを提供する提供サーバ200から、サービスをユーザに提供するアプリを取得してブラウザ上で実行するとともにアプリの取得元を検証する。端末装置100は、ユーザを認証する認証サーバ300に対してアプリが送信するユーザの認証要求に応じたチャレンジ(データ)を認証サーバ300から受信し、受信したチャレンジへの署名要求を実行する。端末装置100は、署名要求を実行する際に、署名要求に対応するAPIを呼び出したプログラムの親子関係を測定する。端末装置100は、チャレンジと、検証されたアプリの取得元と、測定された親子関係を示す測定結果とに基づいて、秘密鍵または公開鍵を用いて署名データを生成する。端末装置100は、生成された署名データを認証サーバ300に送信し、提供サーバ200が登録済みの測定結果と一致する照合結果を認証サーバ300から受信した場合に、サービスをユーザに提供する。これにより、端末装置100は、不正なAPI呼び出しを検出できる。   That is, the terminal device 100 acquires an application that provides the service to the user from the providing server 200 that provides the service, executes the application on the browser, and verifies the acquisition source of the application. The terminal device 100 receives a challenge (data) corresponding to the user authentication request transmitted from the application to the authentication server 300 that authenticates the user from the authentication server 300, and executes a signature request for the received challenge. When executing the signature request, the terminal device 100 measures the parent-child relationship of the program that has called the API corresponding to the signature request. The terminal device 100 generates signature data using the secret key or the public key based on the challenge, the verified app acquisition source, and the measurement result indicating the measured parent-child relationship. The terminal device 100 transmits the generated signature data to the authentication server 300, and provides the service to the user when the providing server 200 receives a collation result that matches the registered measurement result from the authentication server 300. Thereby, the terminal device 100 can detect an illegal API call.

また、認証サーバ300は、サービスを提供する提供サーバ200からサービスをユーザに提供するアプリを取得してブラウザ上で実行する端末装置100から、ユーザの認証要求を受信すると、ユーザの認証要求に応じたデータを端末装置100に送信する。また、認証サーバ300は、端末装置100においてアプリを実行してユーザの登録を行う場合にアプリからの認証要求に対応するAPIを呼び出したプログラムの親子関係を測定した測定結果を、登録済み測定結果として記憶する記憶部を有する。また、認証サーバ300は、記憶部を参照して、端末装置100から受信した署名データに含まれる測定結果と、記憶部に記憶された登録済み測定結果とを照合し、照合結果が一致する場合に、提供サーバ200にサービスの提供を許可する。これにより、認証サーバ300は、不正なAPI呼び出しを検出できる。   Further, when the authentication server 300 receives the user authentication request from the terminal device 100 that acquires the application that provides the service to the user from the providing server 200 that provides the service and executes it on the browser, the authentication server 300 responds to the user authentication request. The received data is transmitted to the terminal device 100. In addition, when the authentication server 300 executes an application in the terminal device 100 and performs user registration, the authentication server 300 displays a measurement result obtained by measuring a parent-child relationship of a program that calls an API corresponding to an authentication request from the application, Storage unit for storing data as Further, the authentication server 300 refers to the storage unit and collates the measurement result included in the signature data received from the terminal device 100 with the registered measurement result stored in the storage unit, and the collation result matches. , Permit the provision server 200 to provide the service. Thereby, the authentication server 300 can detect an unauthorized API call.

ここで、図2から図9を用いて、端末側で生体認証を行う場合の課題の詳細について説明する。図2は、FIDOAPIの実装の一例を示す図である。図2に示すように、例えば、FIDOのAPI(以下、FIDOAPIともいう。)は、端末のアプリがサービスにログインする場合に、Lさんの生体情報を照合し、Lさんの確認結果をアプリに返す。サービス側では、Lさんの確認結果が真である場合に、Lさん向けのサービスを端末に提供する。この場合、FIDOAPIは、セキュア実装が不可欠となる。例えば、セキュア実装を行わない場合、つまり、端末上の任意のアプリに自由にAPIの呼び出しを許可した場合、悪意あるアプリによって攻撃を受けてしまう。この様な攻撃の一例を図3に示す。   Here, details of the problem in the case of performing biometric authentication on the terminal side will be described using FIGS. 2 to 9. FIG. 2 is a diagram showing an example of implementation of FIDO API. As shown in FIG. 2, for example, the FIDO API (hereinafter also referred to as “FIDO API”) verifies Mr. L's biometric information when the terminal application logs in to the service, and uses Mr. L's confirmation result as the application. return. On the service side, when the confirmation result of Mr. L is true, the service for Mr. L is provided to the terminal. In this case, FIDO API requires secure implementation. For example, if a secure implementation is not performed, that is, if any application on the terminal is allowed to freely call the API, a malicious application may be attacked. An example of such an attack is shown in FIG.

図3は、成り済まし攻撃の一例を示す図である。図3に示すように、端末に悪意あるアプリがインストールされてしまった場合、悪意あるアプリは、ユーザを悪意あるサービスに誘導する(ステップS1)。悪意あるサービスは、悪意あるアプリを介して、ユーザであるLさんにサービスAへのログインと勘違いさせて生体認証を行い(ステップS2)、悪意あるサービスに認証情報を送信する(ステップS3)。悪意あるサービスは、詐取した認証情報を用いてLさんに成り済ましてサービスAにログインし、Lさん向けサービスを利用する(ステップS4)。従って、Lさんは、勝手にサービスAを利用されてしまい、被害が発生することになる。このため、図4に示す手法1〜3の様な保護策を用いて、FIDOAPIにアクセスできるアプリを限定することで、悪意あるアプリから保護する。   FIG. 3 is a diagram showing an example of the impersonation attack. As shown in FIG. 3, when a malicious application has been installed in the terminal, the malicious application guides the user to a malicious service (step S1). The malicious service makes the user L mistake the login to the service A via the malicious application, performs biometric authentication (step S2), and transmits authentication information to the malicious service (step S3). The malicious service uses the fraudulent authentication information to impersonate Mr. L, logs in to service A, and uses the service for Mr. L (step S4). Therefore, Mr. L uses the service A without permission and causes damage. Therefore, protection is provided from malicious applications by limiting applications that can access the FIDO API using protection measures such as methods 1 to 3 shown in FIG. 4.

図4は、手法1〜3の一例を示す図である。なお、図4に示す手法1〜3は、上述の手法1〜3に対応する。図4に示すように、手法1は、APIをSDKとして提供しアプリ内に内蔵する手法である。手法2は、パスワードを持つアプリだけにAPIアクセスを許可する手法である。手法3は、特定のコード署名を持つアプリだけにAPIアクセスを許可する手法である。一方、近年では、アプリが端末のOS上で動作するネイティブアプリから、ブラウザ上で動作するWebアプリにシフトしてきており、上述の手法1〜3が使えない場合が増加している。   FIG. 4 is a diagram illustrating an example of the methods 1 to 3. The methods 1 to 3 shown in FIG. 4 correspond to the methods 1 to 3 described above. As shown in FIG. 4, Method 1 is a method of providing an API as an SDK and incorporating it in an application. Method 2 is a method of permitting API access only to an application having a password. Method 3 is a method of permitting API access only to an application having a specific code signature. On the other hand, in recent years, applications have shifted from native apps that run on the OS of the terminal to Web apps that run on the browser, and there are increasing cases in which the above-described methods 1 to 3 cannot be used.

図5は、ネイティブアプリとWebアプリの一例を示す図である。図5に示すように、ネイティブアプリは、端末にユーザが事前にインストールしたアプリを実行することで、サービスを提供する。これに対し、Webアプリは、サービス実行時にサービスを提供するサーバからアプリをダウンロードしてブラウザ上で実行することで、サービスを提供する。このため、手法1では、Webアプリはサーバからダウンロードされる一方、FIDOAPIは端末に実装されるので、WebアプリにFIDOAPIを内蔵することが困難である。   FIG. 5 is a diagram showing an example of a native application and a web application. As illustrated in FIG. 5, the native application provides a service by executing an application installed in advance on the terminal by the user. On the other hand, the Web application provides a service by downloading the application from a server providing the service at the time of service execution and executing the application on a browser. For this reason, in Method 1, since the Web application is downloaded from the server, the FIDO API is mounted on the terminal, so that it is difficult to incorporate the FIDO API in the Web application.

図6は、Webアプリに手法2,3を適用した場合の一例を示す図である。図6に示すように、手法2では、Webアプリのコードが解析されやすく、パスワードが丸見えになる危険性がある。手法3では、ブラウザがWebアプリに代わって代理アクセスするので、FIDOAPI側からWebアプリのチェックをすることが困難である。このため、Webアプリでは、上述の手法1〜3の保護策を用いることが出来ず、不正なAPI呼び出しを検出することが困難である。これに対し、ブラウザにアプリがアクセスするAPIをチェックする機構を組み込むことがW3C(World Wide Web Consortium)で検討されている。なお、以下の説明では、ネイティブアプリとWebアプリとを区別する場合を除いて、Webアプリのことを単にアプリともいう。   FIG. 6 is a diagram illustrating an example when the methods 2 and 3 are applied to a Web application. As shown in FIG. 6, in the method 2, there is a risk that the code of the web application is easily analyzed, and the password becomes completely visible. In Method 3, since the browser performs proxy access instead of the Web application, it is difficult to check the Web application from the FIDO API side. For this reason, the Web application cannot use the protection measures of the above methods 1 to 3, and it is difficult to detect unauthorized API calls. On the other hand, W3C (World Wide Web Consortium) is considering incorporating a mechanism for checking the API accessed by the application in the browser. In the following description, the web application is also simply referred to as an application, except in the case where the native application and the web application are distinguished.

図7は、ブラウザがWebアプリをチェックする場合の一例を示す図である。図7に示すように、ブラウザに組み込まれたAPIアクセスチェック機構は、アプリがサービスAのトークン(認証情報)を要求すると、アプリをチェックしてサービスAに対応するアプリからのアクセスであることをFIDOAPIに出力する。このため、例えば、悪意あるアプリが悪意あるサービスBに対応するアプリであった場合、APIアクセスチェック機構は、アプリがサービスAのトークンを要求すると、アプリをチェックしてサービスBに対応するアプリからのアクセスであることをFIDOAPIに出力する。すると、FIDOAPIは、アプリが要求するサービスAのトークンと、チェック結果のサービスBとが異なるため、APIの使用をブロックする。従って、端末は、悪意あるサービスBを提供するサイトに接続したとしても、FIDOAPIの不正利用を防止することができる。   FIG. 7 is a diagram showing an example of the case where the browser checks the web application. As shown in FIG. 7, the API access check mechanism incorporated in the browser checks that when an application requests a token (authentication information) of service A, the application checks that the access is from an application corresponding to service A. Output to FIDOAPI. For this reason, for example, when the malicious application is an application corresponding to the malicious service B, the API access check mechanism checks the application from the application corresponding to the service B when the application requests the token of the service A. Output to the FIDO API. Then, the FIDO API blocks use of the API because the token of the service A requested by the application is different from the service B of the check result. Therefore, even if the terminal is connected to a site that provides the malicious service B, it is possible to prevent unauthorized use of the FIDO API.

ところが、図7に示す様なAPIアクセスチェック機構を組み込んだブラウザを用いても、例えば、Windows(登録商標)の様に、OS側でコード署名がないアプリの実行が許されていれば、チェックを回避することができる場合がある。チェックの回避方法としては、例えば、APIアクセスチェック機構から出力される情報自体が改変されてしまうことが考えられる。   However, even if a browser incorporating an API access check mechanism as shown in FIG. 7 is used, for example, if the OS is allowed to execute an application without a code signature, such as Windows (registered trademark), it is checked. Can be avoided. As a method of avoiding the check, for example, it is conceivable that the information itself output from the API access check mechanism is altered.

図8は、情報の改変の一例を示す図である。図8に示すように、ブラウザとFIDOAPIとの間に悪意あるDLL(Dynamic Link Library)が存在する場合がある。この場合、APIアクセスチェック機構がサービスBからのアクセスであると出力しても、悪意あるDLLがサービスAからのアクセスであると改変することが可能である。従って、この端末のユーザは、成り済ましの被害を受けることになる。   FIG. 8 is a diagram illustrating an example of modification of information. As shown in FIG. 8, there is a case where a malicious DLL (Dynamic Link Library) exists between the browser and the FIDO API. In this case, even if the API access check mechanism outputs that the access is from service B, it can be modified that the malicious DLL is the access from service A. Therefore, the user of this terminal will suffer immorality.

図9は、古いブラウザでWebアプリを実行する場合の一例を示す図である。図9に示すように、Windowsでは、レガシーシステムとの互換性の観点から、古いブラウザ、例えばIE(Internet Explorer(登録商標))等が利用され続けている。このため、この様な古いブラウザをアプリが騙してFIDOAPIにアクセスするリスクも存在する。この場合、古いブラウザは、悪意あるアプリに騙されてサービスAからのアクセスであるとFIDOAPIに出力する。従って、この端末のユーザは、悪意あるDLL等によって改変が行われなくても、成り済ましの被害を受けることになる。   FIG. 9 is a diagram illustrating an example when a web application is executed by an old browser. As shown in FIG. 9, in Windows, an old browser such as IE (Internet Explorer (registered trademark)) or the like continues to be used from the viewpoint of compatibility with legacy systems. For this reason, there is a risk that an app tricks such an old browser and accesses the FIDOAPI. In this case, the old browser is tricked by the malicious application and outputs to the FIDO API that the access is from the service A. Therefore, the user of this terminal suffers immoral damage even if it is not altered by a malicious DLL or the like.

次に、端末装置100の構成について説明する。図10は、実施例の端末装置の構成の一例を示すブロック図である。図10に示すように、端末装置100は、通信部110と、表示操作部111と、生体認証部112と、記憶部120と、制御部130とを有する。なお、端末装置100は、図10に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。   Next, the configuration of the terminal device 100 will be described. FIG. 10 is a block diagram showing an example of the configuration of the terminal device of the embodiment. As illustrated in FIG. 10, the terminal device 100 includes a communication unit 110, a display operation unit 111, a biometric authentication unit 112, a storage unit 120, and a control unit 130. Note that the terminal device 100 may include various functional units included in a known computer other than the functional units illustrated in FIG. 10, for example, functional units such as various input devices and audio output devices.

通信部110は、例えば、LTE(Long Term Evolution)等の移動体通信および無線LAN等の通信モジュールやNIC(Network Interface Card)等によって実現される。通信部110は、ネットワークNを介して提供サーバ200および認証サーバ300と有線または無線で接続され、提供サーバ200および認証サーバ300との間で情報の通信を司る通信インタフェースである。通信部110は、制御部130から入力されたサービス要求およびサービスの提供に関する各種情報を提供サーバ200に送信する。また、通信部110は、制御部130から入力されたレガシー認証情報、登録要求および認証要求を認証サーバ300に送信する。また、通信部110は、提供サーバ200から受信したアプリ、レガシー認証情報およびサービスの提供に関する各種情報を制御部130に出力する。また、通信部110は、認証サーバ300から受信したチャレンジおよび保存成功情報を制御部130に出力する。   The communication unit 110 is realized by, for example, mobile communication such as Long Term Evolution (LTE), a communication module such as a wireless LAN, a Network Interface Card (NIC), or the like. The communication unit 110 is a communication interface that is wired or wirelessly connected to the providing server 200 and the authentication server 300 via the network N, and manages information communication between the providing server 200 and the authentication server 300. The communication unit 110 transmits a service request and various information related to service provision input from the control unit 130 to the providing server 200. Further, the communication unit 110 transmits the legacy authentication information, the registration request, and the authentication request input from the control unit 130 to the authentication server 300. In addition, the communication unit 110 outputs, to the control unit 130, the application received from the provision server 200, the legacy authentication information, and various information related to the provision of the service. In addition, the communication unit 110 outputs the challenge and storage success information received from the authentication server 300 to the control unit 130.

表示操作部111は、各種情報を表示するための表示デバイス、および、ユーザから各種操作を受け付ける入力デバイスである。例えば、表示操作部111は、表示デバイスとして液晶ディスプレイ等によって実現される。また、例えば、表示操作部111は、入力デバイスとして、タッチパネル等によって実現される。つまり、表示操作部111は、表示デバイスと入力デバイスとが一体化される。表示操作部111は、ユーザによって入力された操作を操作情報として制御部130に出力する。   The display operation unit 111 is a display device for displaying various types of information and an input device that receives various types of operations from the user. For example, the display operation unit 111 is realized by a liquid crystal display or the like as a display device. For example, the display operation unit 111 is realized by a touch panel or the like as an input device. That is, in the display operation unit 111, the display device and the input device are integrated. The display operation unit 111 outputs an operation input by the user to the control unit 130 as operation information.

生体認証部112は、指紋、虹彩、静脈等の生体情報を取得するセンサである。生体認証部112は、例えば指紋センサである場合、取得した指紋の情報を生体情報として制御部130に出力する。   The biometric authentication unit 112 is a sensor that acquires biometric information such as a fingerprint, an iris, and a vein. In the case of, for example, a fingerprint sensor, the biometric authentication unit 112 outputs information of the acquired fingerprint as biological information to the control unit 130.

記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部120は、生体情報記憶部121と、秘密鍵記憶部122と、測定結果記憶部123とを有する。また、記憶部120は、制御部130での処理に用いる情報を記憶する。   The storage unit 120 is realized by, for example, a semiconductor memory device such as a random access memory (RAM) or a flash memory, or a storage device such as a hard disk or an optical disk. The storage unit 120 includes a biometric information storage unit 121, a secret key storage unit 122, and a measurement result storage unit 123. Further, the storage unit 120 stores information used for processing in the control unit 130.

生体情報記憶部121は、端末装置100のユーザによって予め登録される生体情報を記憶する。生体情報記憶部121には、例えば、指紋を登録するアプリによって生体認証部112で取得された指紋の情報が、ユーザの生体情報として記憶される。   The biometric information storage unit 121 stores biometric information registered in advance by the user of the terminal device 100. In the biometric information storage unit 121, for example, fingerprint information acquired by the biometric authentication unit 112 by an application for registering a fingerprint is stored as the biometric information of the user.

秘密鍵記憶部122は、例えば、サービスへのユーザ登録時において、生体情報に基づいて検証されたユーザに対応するようにサービス毎に生成された秘密鍵と公開鍵とのペアのうち、秘密鍵を記憶する。なお、秘密鍵記憶部122は、公開鍵を秘密鍵と合わせて記憶するようにしてもよい。また、生成された秘密鍵は、署名データの生成に用いる。なお、秘密鍵記憶部122は、端末装置100の製造時に、FIDOAPIを構成するソフトウェア部品・ハードウェア部品が正常に動作しているときだけ機能する秘密鍵を予め記憶するようにしてもよい。また、秘密鍵記憶部122は、図1に示す秘密鍵26に対応する。   The secret key storage unit 122 is, for example, a secret key among a pair of a secret key and a public key generated for each service so as to correspond to a user verified based on biometric information at the time of user registration with the service. Remember. Note that the secret key storage unit 122 may store the public key together with the secret key. Also, the generated secret key is used to generate signature data. Note that the secret key storage unit 122 may store in advance a secret key that functions only when software components / hardware components constituting the FIDO API are operating normally when the terminal device 100 is manufactured. The secret key storage unit 122 corresponds to the secret key 26 shown in FIG.

測定結果記憶部123は、署名要求に対応するAPIを呼び出したプログラムの親子関係の測定結果を、サービス名、ユーザ名および公開鍵等と対応付けて記憶する。図11は、測定結果記憶部の一例を示す図である。図11に示すように、測定結果記憶部123は、「サービス名」、「ユーザ名」、「公開鍵」、「測定1」、「測定2」といった項目を有する。   The measurement result storage unit 123 stores the measurement result of the parent-child relationship of the program that has called the API corresponding to the signature request in association with the service name, the user name, the public key, and the like. FIG. 11 is a diagram illustrating an example of a measurement result storage unit. As shown in FIG. 11, the measurement result storage unit 123 has items such as “service name”, “user name”, “public key”, “measurement 1”, and “measurement 2”.

「サービス名」は、例えば、提供サーバ200から提供されるサービスのURL(Uniform Resource Locator)を示す情報である。「サービス名」は、URLの他にも、提供サーバ200が提供するサービスを特定できる情報であれば、他の情報であっても構わない。「ユーザ名」は、端末装置100のユーザであって、提供サーバ200から提供されるサービスに登録したユーザ名を示す情報である。「公開鍵」は、提供サーバ200から提供されるサービスへのユーザ登録時に生成された公開鍵を示す情報である。「測定1」は、署名要求に対応するAPIを呼び出したプログラムの親子関係の測定結果を示す情報である。なお、cmd.exeは、APIアクセスチェック機構の一例である。「測定2」は、アプリの取得元を検証出来ないブラウザ上でアプリが実行された場合における、ブラウザに表示されているオブジェクトの情報である。オブジェクトの情報は、例えば、アプリのサイズおよびハッシュ値に基づいて算出したアプリID(Identifier)を用いることができる。   The “service name” is information indicating a URL (Uniform Resource Locator) of a service provided from the providing server 200, for example. The “service name” may be information other than the URL, as long as the information can specify the service provided by the providing server 200. The “user name” is information indicating the user of the terminal device 100 and the user name registered in the service provided by the providing server 200. The “public key” is information indicating the public key generated at the time of user registration for the service provided by the providing server 200. “Measurement 1” is information indicating the measurement result of the parent-child relationship of the program that has called the API corresponding to the signature request. Note that cmd. exe is an example of an API access check mechanism. “Measurement 2” is information of an object displayed on the browser when the application is executed on the browser that can not verify the acquisition source of the application. As the object information, for example, an application ID (Identifier) calculated based on the application size and the hash value can be used.

ここで、認証サーバ300側において、測定結果記憶部123と同様の測定結果を記憶する照合DB302について説明する。照合DB302は、端末装置100で測定された、署名要求に対応するAPIを呼び出したプログラムの親子関係の測定結果を、サービス名、ユーザ名および公開鍵等と対応付けて記憶する。図12は、照合DBの一例を示す図である。図12に示すように、照合DB302は、「サービス名」、「ユーザ名」、「公開鍵」、「登録時の署名検証鍵」、「測定1」、「測定2」といった項目を有する。   Here, on the authentication server 300 side, the collation DB 302 that stores the same measurement result as that of the measurement result storage unit 123 will be described. The verification DB 302 stores the measurement result of the parent-child relationship of the program that called the API corresponding to the signature request, measured by the terminal device 100, in association with the service name, user name, public key, and the like. FIG. 12 is a diagram illustrating an example of the collation DB. As shown in FIG. 12, the collation DB 302 has items such as “service name”, “user name”, “public key”, “signature verification key at registration”, “measurement 1”, and “measurement 2”.

照合DB302の「サービス名」、「ユーザ名」、「公開鍵」、「測定1」の各項目は、測定結果記憶部123と同様の情報を記憶するので、その説明を省略する。「登録時の署名検証鍵」は、端末装置100の製造時にベンダが提供するプリセットされたFIDOAPIが正常に動作しているときだけに機能する秘密鍵とペアとなる公開鍵を示す情報である。なお、「登録時の署名検証鍵」は、オプション扱いとし、照合DB302に設けなくてもよい。「測定2」は、測定結果記憶部123と同様の情報を記憶するが、提供サーバ200から取得したオブジェクトの情報であるアプリIDを用いることができる。   Since the items of “service name”, “user name”, “public key”, and “measurement 1” in the verification DB 302 store the same information as the measurement result storage unit 123, description thereof is omitted. The “signature verification key at the time of registration” is information indicating a public key that is paired with a secret key that functions only when a preset FIDO API provided by the vendor at the time of manufacturing the terminal device 100 is operating normally. The “signature verification key at the time of registration” is treated as an option and may not be provided in the verification DB 302. “Measurement 2” stores the same information as the measurement result storage unit 123, but an application ID that is object information acquired from the providing server 200 can be used.

図10の説明に戻って、制御部130は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部130は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。   Returning to the description of FIG. 10, the control unit 130 executes, for example, a program stored in an internal storage device using a RAM as a work area by a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or the like. Is realized by Further, the control unit 130 may be realized by an integrated circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA).

制御部130は、実行部131と、中継部135と、測定部136と、署名部137とを有し、以下に説明する情報処理の機能や作用を実現または実行する。また、実行部131では、ブラウザ132が実行され、ブラウザ132上でアプリ133が実行される。さらに、ブラウザ132には、上述のAPIアクセスチェック機構に対応する検証部134が組み込まれている。また、制御部130の内部構成は、図10に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。なお、ブラウザ132およびアプリ133は、図1に示すブラウザ20およびアプリ21に対応する。また、検証部134および中継部135は、図1に示す中継プログラム22に対応する。さらに、測定部136および署名部137は、図1に示す測定機構25および署名エンジン24に対応する。   The control unit 130 includes an execution unit 131, a relay unit 135, a measurement unit 136, and a signature unit 137, and realizes or executes functions and operations of information processing described below. In the execution unit 131, the browser 132 is executed, and the application 133 is executed on the browser 132. Furthermore, the browser 132 incorporates a verification unit 134 corresponding to the above-described API access check mechanism. Further, the internal configuration of the control unit 130 is not limited to the configuration illustrated in FIG. 10, and may be another configuration as long as the information processing described later is performed. The browser 132 and the application 133 correspond to the browser 20 and the application 21 illustrated in FIG. The verification unit 134 and the relay unit 135 correspond to the relay program 22 illustrated in FIG. Further, the measurement unit 136 and the signature unit 137 correspond to the measurement mechanism 25 and the signature engine 24 illustrated in FIG.

ブラウザ132は、例えばユーザの操作に基づくサービス要求を、通信部110およびネットワークNを介して、提供サーバ200に送信する。ブラウザ132は、サービス要求に対応するアプリを、ネットワークNおよび通信部110を介して、提供サーバ200から受信して取得する。ブラウザ132は、取得したアプリを実行するとともに、検証部134に対してアプリの取得元の検証を指示する。   The browser 132 transmits, for example, a service request based on the user's operation to the providing server 200 via the communication unit 110 and the network N. The browser 132 receives and acquires the application corresponding to the service request from the providing server 200 via the network N and the communication unit 110. The browser 132 executes the acquired application and instructs the verification unit 134 to verify the acquisition source of the application.

アプリ133は、ブラウザ132で取得して実行されたアプリである。まず、アプリ133におけるユーザ登録時について説明する。アプリ133は、ユーザに対してレガシー認証の操作を求める。なお、レガシー認証は、例えば、メールアドレスおよびパスワードの入力による認証や、SNS(Social Networking Service)による認証を用いることができる。アプリ133は、ユーザの操作に基づいて、提供サーバ200との間でレガシー認証情報を送受信してレガシー認証を行う。   The application 133 is an application acquired and executed by the browser 132. First, the time of user registration in the application 133 will be described. The application 133 requests the user for legacy authentication. Note that legacy authentication can use, for example, authentication by inputting a mail address and password, or authentication by SNS (Social Networking Service). The application 133 transmits / receives legacy authentication information to / from the providing server 200 based on the user's operation to perform legacy authentication.

アプリ133は、レガシー認証が完了すると、通信部110およびネットワークNを介して、登録要求を認証サーバ300に送信する。アプリ133は、ネットワークNおよび通信部110を介して、認証サーバ300から登録要求に対応するチャレンジを受信する。アプリ133は、受信したチャレンジへの署名要求を中継部135に出力する。つまり、アプリ133は、中継部135を介してFIDOAPIを呼び出す。   When the legacy authentication is completed, the application 133 transmits a registration request to the authentication server 300 via the communication unit 110 and the network N. The application 133 receives a challenge corresponding to the registration request from the authentication server 300 via the network N and the communication unit 110. The application 133 outputs a signature request for the received challenge to the relay unit 135. That is, the application 133 calls the FIDO API via the relay unit 135.

アプリ133は、署名部137からユーザ登録用の署名データが入力されると、通信部110およびネットワークNを介して、入力された署名データを認証サーバ300に送信する。アプリ133は、提供サーバ200が認証サーバ300から保存成功情報を受信した場合に、提供サーバ200の指示に基づいて、ユーザにサービスを提供する。   When the signature data for user registration is input from the signature unit 137, the application 133 transmits the input signature data to the authentication server 300 via the communication unit 110 and the network N. When the providing server 200 receives the storage success information from the authentication server 300, the application 133 provides a service to the user based on an instruction of the providing server 200.

次に、アプリ133におけるユーザ認証時について説明する。アプリ133は、実行されると、通信部110およびネットワークNを介して、認証要求を認証サーバ300に送信する。アプリ133は、ネットワークNおよび通信部110を介して、認証サーバ300から認証要求に対応するチャレンジを受信する。アプリ133は、受信したチャレンジへの署名要求を中継部135に出力する。つまり、アプリ133は、中継部135を介してFIDOAPIを呼び出す。   Next, the time of user authentication in the application 133 will be described. When executed, the application 133 transmits an authentication request to the authentication server 300 via the communication unit 110 and the network N. The application 133 receives a challenge corresponding to the authentication request from the authentication server 300 via the network N and the communication unit 110. The application 133 outputs a signature request for the received challenge to the relay unit 135. That is, the application 133 calls the FIDO API via the relay unit 135.

アプリ133は、署名部137からユーザ認証用の署名データが入力されると、通信部110およびネットワークNを介して、入力された署名データを認証サーバ300に送信する。アプリ133は、提供サーバ200が認証サーバ300から確認情報を受信した場合に、提供サーバ200の指示に基づいて、ユーザにサービスを提供する。   When the signature data for user authentication is input from the signature unit 137, the application 133 transmits the input signature data to the authentication server 300 via the communication unit 110 and the network N. When the providing server 200 receives the confirmation information from the authentication server 300, the application 133 provides a service to the user based on an instruction of the providing server 200.

検証部134は、ブラウザ132からアプリの取得元の検証が指示されると、実行中のアプリ133がFIDOAPIを呼び出す際に、アプリ133の取得元を検証する。検証部134は、例えば、サービスAに対応するアプリ133が署名要求を中継部135に出力する際に、つまりFIDOAPIを呼び出す際に、アプリ133が対応するサービスAの情報を取得する。検証部134は、取得したサービスAの情報を検証情報として中継部135に出力する。なお、検証部134は、ブラウザ132が古い場合等、アプリ133の取得元を検証出来ない場合には、検証出来ない旨の検証情報を中継部135に出力する。また、検証部134は、ブラウザ132が古い場合には、ブラウザ132とは別に設けるようにしてもよい。   When the verification of the acquisition source of the application is instructed from the browser 132, the verification unit 134 verifies the acquisition source of the application 133 when the running application 133 calls the FIFO API. For example, when the application 133 corresponding to the service A outputs a signature request to the relay unit 135, that is, when calling the FIFO API, the verification unit 134 acquires the information of the service A corresponding to the application 133. The verification unit 134 outputs the acquired service A information to the relay unit 135 as verification information. If the acquisition source of the application 133 cannot be verified, such as when the browser 132 is old, the verification unit 134 outputs verification information indicating that verification cannot be performed to the relay unit 135. Further, the verification unit 134 may be provided separately from the browser 132 when the browser 132 is old.

中継部135は、ブラウザ132上で動作するアプリ133から、端末装置100に実装されたAPIを呼び出す機能部である。中継部135は、アプリ133から署名要求が入力され、検証部134から検証情報が入力されると、FIDOAPIを呼び出して、署名要求を署名部137に出力する。また、中継部135は、検証情報を測定部136に出力する。   The relay unit 135 is a functional unit that calls an API implemented in the terminal device 100 from the application 133 operating on the browser 132. When the signature request is input from the application 133 and the verification information is input from the verification unit 134, the relay unit 135 calls the FIFO API and outputs the signature request to the signature unit 137. Also, the relay unit 135 outputs the verification information to the measurement unit 136.

測定部136は、中継部135から検証情報が入力されると、つまり中継部135がFIDOAPIを呼び出すと、FIDOAPIを呼び出したプログラムの親子関係を測定する。測定部136は、カレントプログラムの呼び出し元のプログラムIDを取得し、プログラムIDに対応するプログラム名をOSから取得して測定結果記憶部123の「測定1」欄に測定結果として記憶する。すなわち、測定部136は、測定したプログラムの親子関係を測定結果として測定結果記憶部123の「測定1」欄に記憶する。プログラムIDは、例えば、アプリ133を「1」、ブラウザ132を「2」、中継部135に対応する中継プログラムを「3」とすることができる。この場合、中継プログラムの親IDは、ブラウザ132の「2」となる。ブラウザ132の親IDは、アプリ133の「1」となる。アプリ133の親IDは、例えばOSの「0」となる。この場合の測定結果は、{アプリ→ブラウザ→中継プログラム→API}となる。   When the verification information is input from the relay unit 135, that is, when the relay unit 135 calls FIDOAPI, the measurement unit 136 measures the parent-child relationship of the program that called the FIDOAPI. The measurement unit 136 acquires the program ID of the caller of the current program, acquires the program name corresponding to the program ID from the OS, and stores it as a measurement result in the “Measurement 1” column of the measurement result storage unit 123. That is, the measurement unit 136 stores the measured parent-child relationship of the program in the “Measurement 1” column of the measurement result storage unit 123 as a measurement result. For example, the program ID may be “1” for the application 133, “2” for the browser 132, and “3” for the relay program corresponding to the relay unit 135. In this case, the parent ID of the relay program is "2" of the browser 132. The parent ID of the browser 132 is “1” of the application 133. The parent ID of the application 133 is, for example, “0” of the OS. The measurement result in this case is {application → browser → relay program → API}.

測定部136は、親IDが「0」であるか否かを判定する。測定部136は、親IDが「0」でないと判定した場合には、カレントプログラムに親IDを代入し、カレントプログラムの呼び出し元のプログラムIDの取得、プログラム名の取得および記憶を繰り返す。測定部136は、親IDが「0」であると判定した場合には、ユーザ登録時であるか否か、つまり、登録フェーズであるか否かを判定する。   The measuring unit 136 determines whether the parent ID is “0”. When determining that the parent ID is not “0”, the measuring unit 136 substitutes the parent ID for the current program, and repeats the acquisition of the program ID of the caller of the current program, the acquisition and storage of the program name. If the measuring unit 136 determines that the parent ID is “0”, the measuring unit 136 determines whether or not it is at the time of user registration, that is, whether or not it is in the registration phase.

測定部136は、登録フェーズでないと判定した場合には、測定結果に基づいて、API呼び出しに不正があるか否かを判定する。測定部136は、API呼び出しに不正があると判定した場合には、エラー情報を生成して測定結果に付加する。なお、エラー情報は、例えば、API呼び出しに不正なプログラムが介在する場合と、ブラウザ132が登録時と異なる種類のブラウザである場合とが挙げられる。測定部136は、API呼び出しに不正がないと判定した場合には、測定結果にエラー情報を付加しない。   If it is determined that the registration phase is not performed, the measurement unit 136 determines whether the API call is incorrect based on the measurement result. If the measurement unit 136 determines that the API call is invalid, it generates error information and adds it to the measurement result. The error information includes, for example, a case where an illegal program is present in the API call and a case where the browser 132 is a browser of a different type from that at the time of registration. The measuring unit 136 does not add error information to the measurement result when it is determined that the API call is not incorrect.

なお、エラー情報は、認証サーバ300における測定結果の照合時に用いる。エラー情報は、例えば、ブラウザ132が登録時と異なる場合には、ユーザの確認と、異なるブラウザによるAPI呼び出しの親子関係の妥当性と、アプリの取得元とサービス提供元の一致とが取れればサービスの提供を許可し、不正なプログラムが介在する場合には、サービスの提供を許可しないといった制御に用いることができる。また、測定部136は、端末装置100側で不正なAPI呼び出しをブロックする場合、測定結果記憶部123を参照し、測定された親子関係を示す測定結果と、登録済みの親子関係を示す測定結果とを照合し、照合結果が一致する場合に、認証要求を受け付けるようにしてもよい。つまり、測定部136は、認証部の一例である。   The error information is used when collating the measurement result in the authentication server 300. For example, if the browser 132 is different from the time of registration, the error information may be a service if the user's confirmation, the validity of the parent-child relationship of API calls by different browsers, and the agreement between the application acquisition source and the service provider Can be used for control such that service provision is not permitted when an unauthorized program intervenes. When the measuring unit 136 blocks an illegal API call on the terminal device 100 side, the measuring unit 136 refers to the measurement result storage unit 123, and displays the measured result indicating the measured parent-child relationship and the measured result indicating the registered parent-child relationship. And the authentication request may be accepted when the matching results match. That is, the measurement unit 136 is an example of the authentication unit.

測定部136は、検証情報に基づいて、アプリ133の検証が可能であるか否かを判定する。すなわち、測定部136は、中継部135から入力された検証情報が、検証出来ない旨の検証情報であるか否かを判定する。測定部136は、アプリ133の検証が可能であると判定した場合には、測定結果記憶部123を参照し、測定結果を署名部137に出力する。この場合、測定結果には、測定結果記憶部123の「測定1」欄の測定結果が含まれる。   The measuring unit 136 determines whether verification of the application 133 is possible based on the verification information. That is, the measurement unit 136 determines whether the verification information input from the relay unit 135 is verification information indicating that verification cannot be performed. When it is determined that the verification of the application 133 is possible, the measurement unit 136 refers to the measurement result storage unit 123 and outputs the measurement result to the signature unit 137. In this case, the measurement result includes the measurement result of the “measurement 1” column of the measurement result storage unit 123.

測定部136は、アプリ133の検証が可能でないと判定した場合には、ブラウザ132で表示されているオブジェクトを取得する。測定部136は、取得したオブジェクトの送信元、つまりオブジェクトの取得元が、アプリ133が申告する取得元と一致するか否かを判定する。測定部136は、取得元が一致しないと判定した場合には、全てのオブジェクトの取得元がチェック済みであるか否かを判定する。   If the measurement unit 136 determines that the application 133 cannot be verified, the measurement unit 136 acquires the object displayed on the browser 132. The measuring unit 136 determines whether the transmission source of the acquired object, that is, the acquisition source of the object matches the acquisition source reported by the application 133. If the measurement unit 136 determines that the acquisition sources do not match, the measurement unit 136 determines whether the acquisition sources of all objects have been checked.

測定部136は、全てのオブジェクトの取得元がチェック済みでない場合には、残りのオブジェクトの取得元について、アプリ133が申告する取得元と一致するか否かの判定を繰り返す。測定部136は、全てのオブジェクトの取得元がチェック済みである場合には、アプリ133に対して不正なAPI呼び出しである旨のエラーを返す。   If the acquisition sources of all objects have not been checked, the measurement unit 136 repeats the determination of whether or not the acquisition sources of the remaining objects match the acquisition sources reported by the application 133. When the acquisition source of all objects has been checked, the measurement unit 136 returns an error indicating that the API call is invalid to the application 133.

測定部136は、取得元が一致すると判定した場合には、当該オブジェクトを測定し、測定結果を測定結果記憶部123の「測定2」欄に記憶する。つまり、測定部136は、オブジェクトに対応するアプリ133のサイズおよびハッシュ値に基づいて算出したアプリIDを測定結果として、測定結果記憶部123の「測定2」欄に記憶する。また、測定部136は、測定結果記憶部123を参照し、測定結果を署名部137に出力する。この場合、測定結果には、測定結果記憶部123の「測定1」および「測定2」欄の測定結果が含まれる。   When it is determined that the acquisition sources match, the measurement unit 136 measures the object, and stores the measurement result in the “measurement 2” column of the measurement result storage unit 123. That is, the measurement unit 136 stores the application ID calculated based on the size and hash value of the application 133 corresponding to the object in the “Measurement 2” column of the measurement result storage unit 123 as the measurement result. Further, the measurement unit 136 refers to the measurement result storage unit 123 and outputs the measurement result to the signature unit 137. In this case, the measurement results include the measurement results in the “measurement 1” and “measurement 2” fields of the measurement result storage unit 123.

署名部137には、中継部135から署名要求が入力され、測定部136から測定結果が入力される。署名部137は、署名要求に応じて生体認証部112から生体情報を入力するようにユーザに促す。署名部137は、生体認証部112から生体情報が入力されると、生体情報記憶部121を参照し、予め登録されたユーザの生体情報と照合する。署名部137は、照合結果が真である場合には、測定結果に基づいて、署名データを生成する。署名部137は、照合結果が偽である場合には、アプリ133に照合結果が偽である旨のエラーを返す。   The signature request is input from the relay unit 135 to the signature unit 137, and the measurement result is input from the measurement unit 136. The signature unit 137 prompts the user to input biometric information from the biometric authentication unit 112 in response to the signature request. When the biometric information is input from the biometric authentication unit 112, the signature unit 137 refers to the biometric information storage unit 121 and collates the biometric information with the user registered in advance. When the collation result is true, the signature unit 137 generates signature data based on the measurement result. When the collation result is false, the signature unit 137 returns an error indicating that the collation result is false to the application 133.

すなわち、署名部137は、ユーザ登録時には、ユーザの秘密鍵および公開鍵のペアを生成し、署名要求に含まれるチャレンジと、測定結果と、生成した公開鍵とを含むデータを秘密鍵で署名した署名データを生成する。また、署名部137は、ユーザ登録後のユーザ認証時には、署名要求に含まれるチャレンジと、測定結果とを含むデータを秘密鍵で署名した署名データを生成する。なお、署名部137は、登録時においては、生成した秘密鍵による署名に代えて、例えば、端末装置100の製造時に設定した署名部137の秘密鍵で署名して署名データを生成してもよい。署名部137は、生成した署名データをアプリ133に出力する。   That is, at the time of user registration, the signature unit 137 generates a pair of the user's private key and public key, and signs the data including the challenge included in the signature request, the measurement result, and the generated public key with the private key. Generate signature data. In addition, the signature unit 137 generates signature data obtained by signing data including a challenge included in the signature request and a measurement result with a secret key at the time of user authentication after user registration. At the time of registration, the signature unit 137 may generate signature data by signing with the secret key of the signature unit 137 set at the time of manufacturing the terminal device 100, for example, instead of the signature with the generated secret key. . The signature unit 137 outputs the generated signature data to the application 133.

署名部137は、ユーザ登録時であるか否か、つまり、登録フェーズであるか否かを判定する。署名部137は、登録フェーズでないと判定した場合には、署名に関する処理を終了する。署名部137は、登録フェーズであると判定した場合には、認証サーバ300から送信される保存成功情報の受信を所定時間待機する。署名部137は、所定時間内に認証サーバ300から保存成功情報が返ってきたか否かを判定する。署名部137は、保存成功情報が返ってきたと判定した場合には、測定結果を測定結果記憶部123に記憶し、署名に関する処理を終了する。署名部137は、保存成功情報が返ってきていないと判定した場合には、そのまま署名に関する処理を終了する。   The signature unit 137 determines whether it is during user registration, that is, whether it is in the registration phase. If the signature unit 137 determines that it is not in the registration phase, it ends the process related to the signature. If the signature unit 137 determines that it is in the registration phase, the signature unit 137 waits for a predetermined time to receive the successful storage information transmitted from the authentication server 300. The signature unit 137 determines whether or not storage success information has been returned from the authentication server 300 within a predetermined time. If the signature unit 137 determines that the storage success information has been returned, the signature unit 137 stores the measurement result in the measurement result storage unit 123, and ends the processing related to the signature. If the signature unit 137 determines that the storage success information has not been returned, the processing related to the signature ends.

ここで、図13および図14を用いて署名データの構成について説明する。図13は、署名データの構成の一例を示す図である。認証サーバ300でも構成チェックを行う場合、図13に示すように、署名部137は、署名要求に含まれるチャレンジ51に対して、当該チャレンジ51と、測定結果(”path”の部分)とを含む署名データ52を生成する。   Here, the configuration of signature data will be described using FIGS. 13 and 14. FIG. 13 is a diagram showing an example of the configuration of signature data. When the configuration check is also performed in the authentication server 300, as illustrated in FIG. 13, the signature unit 137 includes the challenge 51 and the measurement result (the “path” portion) for the challenge 51 included in the signature request. Signature data 52 is generated.

図14は、署名データの構成の他の一例を示す図である。認証サーバ300が既に正解のプログラム構成IDリストを有する場合、図14に示すように、署名部137は、署名要求に含まれるチャレンジ53に対して、当該チャレンジ53と、プログラム構成を一意に表すIDとを含む署名データ54を生成する。なお、正解のプログラム構成IDリストとは、登録された測定結果のリストの一例である。また、プログラム構成を一意に表すIDは、例えば、測定結果(図13の”path”の部分に相当)に対してハッシュ関数を用いて算出することができる。   FIG. 14 is a diagram showing another example of the configuration of signature data. When the authentication server 300 already has a correct program configuration ID list, as illustrated in FIG. 14, the signature unit 137 uniquely identifies the challenge 53 and the program configuration for the challenge 53 included in the signature request. And generating signature data 54 including The correct program configuration ID list is an example of a list of registered measurement results. Also, an ID uniquely representing the program configuration can be calculated, for example, using a hash function on the measurement result (corresponding to the "path" portion in FIG. 13).

続いて、図15から図18を用いて、不正なAPI呼び出しのブロックのバリエーションを説明する。図15は、提供サーバ側でブロックする場合の一例を示す図である。図15の例では、端末装置100は、APIを呼び出したプログラムの親子関係を測定し、測定結果として{アプリ→ブラウザ名→APIアクセスチェック機構→DLL→FIDOAPI}を得る。端末装置100は、チャレンジと測定結果とを含む署名データを認証サーバ300に送信する。なお、図15では、提供サーバ200と認証サーバ300とをまとめてサービスAとして記載している。   Then, the variation of the block of incorrect API call is demonstrated using FIGS. 15-18. FIG. 15 is a diagram showing an example in the case of blocking on the providing server side. In the example of FIG. 15, the terminal device 100 measures the parent-child relationship of the program that called the API, and obtains {application → browser name → API access check mechanism → DLL → FIDOAPI} as the measurement result. The terminal device 100 transmits signature data including the challenge and the measurement result to the authentication server 300. In FIG. 15, the providing server 200 and the authentication server 300 are collectively described as a service A.

図16は、測定結果の照合の一例を示す図である。図16に示すように、認証サーバ300は、照合DB302の登録された測定結果(トークン登録時)と、受信した署名データの測定結果(トークン呼び出し時)とを照合する。図15および図16の例では、認証サーバ300は、悪意あるDLLが測定結果に含まれるので、矛盾を検知してブロックする。つまり、認証サーバ300は、提供サーバ200に対してサービスの提供を許可しない。提供サーバ200は、認証サーバ300の許可が得られないので、サービス提供をブロックする。   FIG. 16 is a diagram illustrating an example of collation of measurement results. As illustrated in FIG. 16, the authentication server 300 collates the measurement result registered at the collation DB 302 (at the time of token registration) with the measurement result of the received signature data (at the time of token call). In the example of FIGS. 15 and 16, the authentication server 300 detects and blocks the contradiction because the malicious DLL is included in the measurement result. That is, the authentication server 300 does not permit the providing server 200 to provide the service. The providing server 200 blocks the service provision because the authorization of the authentication server 300 can not be obtained.

図17は、端末装置側でブロックする場合の一例を示す図である。図17の例では、認証サーバ300への署名データの送信は行わず、端末装置100の測定部136は、API呼び出しに不正があると判定した場合には、アプリ133にエラーを返してサービス提供をブロックする。なお、例えば、ユーザ登録時と異なるブラウザを用いた場合には、そのブラウザでユーザ登録を再度行うことで、以後サービスの提供を受けることができる。   FIG. 17 is a diagram showing an example in the case of blocking on the terminal device side. In the example of FIG. 17, signature data is not transmitted to the authentication server 300, and if the measurement unit 136 of the terminal device 100 determines that the API call is invalid, the service is provided by returning an error to the application 133. Block Note that, for example, when a browser different from that used for user registration is used, the service can be provided thereafter by performing user registration again using that browser.

図18は、オブジェクトの取得元に基づいてブロックする場合の一例を示す図である。図18の例では、端末装置100の測定部136は、アプリ133の検証が可能でないと判定した場合、ブラウザ132で表示されているオブジェクトを取得する。測定部136は、オブジェクトの取得元が、アプリ133が申告する取得元と一致しない場合、アプリ133にエラーを返してサービス提供をブロックする。すなわち、アプリからの申告では、サービスAへのアクセスであるのに対し、測定・照合結果は、サービスBへのアクセスであることから、端末装置100側で矛盾を検知してサービス提供をブロックする。または、端末装置100は、測定・照合結果をサービスA側に送信し、サービスA側でサービス提供をブロックする。   FIG. 18 is a diagram illustrating an example of blocking based on an object acquisition source. In the example of FIG. 18, when the measurement unit 136 of the terminal device 100 determines that the application 133 cannot be verified, the measurement unit 136 acquires the object displayed on the browser 132. When the acquisition source of the object does not match the acquisition source reported by the application 133, the measurement unit 136 returns an error to the application 133 and blocks the service provision. That is, in the report from the application, access is made to the service A, whereas the measurement / collation result is access to the service B. Therefore, the terminal device 100 detects a contradiction and blocks the service provision. . Alternatively, the terminal device 100 transmits the measurement / collation result to the service A side and blocks service provision on the service A side.

次に、実施例の認証システム10の動作について説明する。まず、ユーザ登録時の登録処理について説明する。図19は、実施例の登録処理の一例を示すシーケンス図である。   Next, the operation of the authentication system 10 of the embodiment will be described. First, registration processing at the time of user registration will be described. FIG. 19 is a sequence diagram showing an example of registration processing of the embodiment.

端末装置100のブラウザ132は、例えばユーザの操作に基づくサービス要求を提供サーバ200に送信する(ステップS11)。提供サーバ200は、端末装置100からサービス要求を受信すると、アプリを端末装置100に送信する(ステップS12)。ブラウザ132は、サービス要求に対応するアプリを、提供サーバ200から受信して取得する。ブラウザ132は、取得したアプリをアプリ133として実行するとともに(ステップS13)、検証部134に対してアプリ133の取得元の検証を指示する。   The browser 132 of the terminal device 100 transmits a service request based on, for example, a user operation to the providing server 200 (step S11). When receiving the service request from the terminal device 100, the providing server 200 transmits the application to the terminal device 100 (step S12). The browser 132 receives and acquires an application corresponding to the service request from the providing server 200. The browser 132 executes the acquired application as the application 133 (step S13), and instructs the verification unit 134 to verify the acquisition source of the application 133.

アプリ133は、実行が開始されると、ユーザに対してレガシー認証の操作を求める。アプリ133は、ユーザの操作に基づいて、提供サーバ200との間でレガシー認証情報を送受信してレガシー認証を行う(ステップS14)。アプリ133は、レガシー認証が完了すると、登録要求を認証サーバ300に送信する(ステップS15)。認証サーバ300は、端末装置100から登録要求を受信すると、当該端末装置100に対してチャレンジを送信する(ステップS16)。   When the application 133 starts execution, the application 133 requests the user to perform an operation of legacy authentication. The application 133 transmits / receives legacy authentication information to / from the providing server 200 based on the user's operation to perform legacy authentication (step S14). When the legacy authentication is completed, the application 133 transmits a registration request to the authentication server 300 (step S15). Upon receiving the registration request from the terminal device 100, the authentication server 300 transmits a challenge to the terminal device 100 (Step S16).

端末装置100のアプリ133は、認証サーバ300から登録要求に対応するチャレンジを受信する。アプリ133は、受信したチャレンジへの署名要求を中継部135に出力する(ステップS17)。   The application 133 of the terminal device 100 receives a challenge corresponding to the registration request from the authentication server 300. The application 133 outputs the received signature request for the challenge to the relay unit 135 (step S17).

検証部134は、ブラウザ132からアプリの取得元の検証が指示されると、アプリ133が署名要求を中継部135に出力する際に、アプリ133が対応するサービスの情報を取得する。つまり、検証部134は、アプリ133の取得元を測定する(ステップS18)。検証部134は、測定したアプリ133の取得元、つまり取得したサービスの情報を検証情報として中継部135に出力する。   When the verification of the acquisition source of the application is instructed from the browser 132, the verification unit 134 acquires service information corresponding to the application 133 when the application 133 outputs a signature request to the relay unit 135. That is, the verification unit 134 measures the acquisition source of the application 133 (step S18). The verification unit 134 outputs the information on the acquired source of the measured application 133, that is, the acquired service information to the relay unit 135 as verification information.

中継部135は、アプリ133から署名要求が入力され、検証部134から検証情報が入力されると、FIDOAPIを呼び出して、署名要求を署名部137に出力する。また、中継部135は、検証情報を測定部136に出力する。   When the signature request is input from the application 133 and the verification information is input from the verification unit 134, the relay unit 135 calls the FIFO API and outputs the signature request to the signature unit 137. Further, the relay unit 135 outputs the verification information to the measurement unit 136.

署名部137は、署名要求が入力されると、署名要求に応じて生体認証部112から生体情報を入力するようにユーザMに促す。署名部137は、生体認証部112から生体情報が入力されると、生体情報記憶部121を参照し、予め登録されたユーザMの生体情報と照合する(ステップS19)。   When the signature request is input, the signature unit 137 prompts the user M to input the biometric information from the biometric authentication unit 112 in response to the signature request. When the biometric information is input from the biometric authentication unit 112, the signature unit 137 refers to the biometric information storage unit 121 and compares the biometric information of the user M registered in advance (step S19).

測定部136は、中継部135から検証情報が入力されると、つまり中継部135がFIDOAPIを呼び出すと、FIDOAPIを呼び出したプログラムの親子関係を測定する測定処理を実行する(ステップS20)。ここで、図20を用いて測定処理について説明する。図20は、実施例の測定処理の一例を示すフローチャートである。   When the verification information is input from the relay unit 135, that is, when the relay unit 135 calls FIDOAPI, the measurement unit 136 executes a measurement process that measures the parent-child relationship of the program that called the FIDOAPI (step S20). Here, the measurement processing will be described using FIG. FIG. 20 is a flowchart illustrating an example of measurement processing according to the embodiment.

測定部136は、カレントプログラムの呼び出し元の親IDを取得して親IDのプログラム名を取得して記憶する(ステップS201)。測定部136は、親IDが「0」であるか否かを判定する(ステップS202)。測定部136は、親IDが「0」でないと判定した場合には(ステップS202:否定)、カレントプログラムに親IDを代入し(ステップS203)、ステップS201に戻る。   The measuring unit 136 acquires the parent ID of the caller of the current program, acquires the program name of the parent ID, and stores it (step S201). The measuring unit 136 determines whether or not the parent ID is “0” (step S202). When determining that the parent ID is not “0” (No at Step S202), the measuring unit 136 substitutes the parent ID for the current program (Step S203), and returns to Step S201.

測定部136は、親IDが「0」であると判定した場合には(ステップS202:肯定)、登録フェーズであるか否かを判定する(ステップS204)。測定部136は、登録フェーズであると判定した場合には(ステップS204:肯定)、ステップS207に進む。   If the measurement unit 136 determines that the parent ID is “0” (step S202: Yes), the measurement unit 136 determines whether the registration phase is in effect (step S204). If the measuring unit 136 determines that it is in the registration phase (Yes at Step S204), the process proceeds to Step S207.

測定部136は、登録フェーズでないと判定した場合には(ステップS204:否定)、測定結果に基づいて、API呼び出しに不正があるか否かを判定する(ステップS205)。測定部136は、API呼び出しに不正がないと判定した場合には(ステップS205:否定)、測定結果にエラー情報を付加せずに、ステップS207に進む。測定部136は、API呼び出しに不正があると判定した場合には(ステップS205:肯定)、エラー情報を生成して測定結果に付加し(ステップS206)、ステップS207に進む。   If the measurement unit 136 determines that it is not the registration phase (No at Step S204), the measurement unit 136 determines whether the API call is invalid based on the measurement result (Step S205). If the measurement unit 136 determines that there is no fraud in the API call (No at Step S205), the measurement unit 136 proceeds to Step S207 without adding error information to the measurement result. If the measurement unit 136 determines that the API call is invalid (step S205: Yes), it generates error information and adds it to the measurement result (step S206), and the process proceeds to step S207.

測定部136は、検証情報に基づいて、アプリ133の検証が可能であるか否かを判定する(ステップS207)。測定部136は、アプリ133の検証が可能であると判定した場合には(ステップS207:肯定)、測定結果記憶部123を参照し、測定結果を署名部137に出力し、ステップS213に進む。   The measuring unit 136 determines whether verification of the application 133 is possible based on the verification information (step S207). If the measurement unit 136 determines that the application 133 can be verified (step S207: Yes), the measurement unit 136 refers to the measurement result storage unit 123, outputs the measurement result to the signature unit 137, and proceeds to step S213.

測定部136は、アプリ133の検証が可能でないと判定した場合には(ステップS207:否定)、ブラウザ132で表示されているオブジェクトを取得する(ステップS208)。測定部136は、取得したオブジェクトの取得元が、アプリ133が申告する取得元と一致するか否かを判定する(ステップS209)。測定部136は、取得元が一致しないと判定した場合には(ステップS209:否定)、全てのオブジェクトの取得元がチェック済みであるか否かを判定する(ステップS210)。   If the measurement unit 136 determines that the application 133 cannot be verified (No at Step S207), the measurement unit 136 acquires an object displayed on the browser 132 (Step S208). The measurement unit 136 determines whether the acquired source of the acquired object matches the acquired source reported by the application 133 (step S209). When the measurement unit 136 determines that the acquisition sources do not match (No at Step S209), the measurement unit 136 determines whether the acquisition sources of all objects have been checked (Step S210).

測定部136は、全てのオブジェクトの取得元がチェック済みでない場合には(ステップS210:否定)、ステップS208に戻る。測定部136は、全てのオブジェクトの取得元がチェック済みである場合には(ステップS210:肯定)、アプリ133に対して不正なAPI呼び出しである旨のエラーを返し(ステップS211)、測定処理を終了する。   If the acquisition source of all objects has not been checked (step S210: negative), the measurement unit 136 returns to step S208. If the acquisition source of all objects has been checked (step S210: affirmative), the measurement unit 136 returns an error indicating that the API call is illegal to the application 133 (step S211), and performs measurement processing. finish.

一方、ステップS209において、測定部136は、取得元が一致すると判定した場合には(ステップS209:肯定)、当該オブジェクトを測定し(ステップS212)、測定結果を記憶してステップS213に進む。また、測定部136は、測定結果記憶部123を参照し、測定結果を署名部137に出力する。   On the other hand, if it is determined in step S209 that the acquisition sources match (step S209: affirmative), the measurement unit 136 measures the object (step S212), stores the measurement result, and proceeds to step S213. Further, the measurement unit 136 refers to the measurement result storage unit 123 and outputs the measurement result to the signature unit 137.

署名部137は、ステップS19の照合結果が真である場合には、測定結果に基づいて、チャレンジと、測定結果(API呼び出しにおける親子関係や、アプリの取得元、アプリID等)と、公開鍵とを含む署名データを生成する(ステップS213)。署名部137は、生成した署名データをアプリ133に出力する。   When the collation result in step S19 is true, the signature unit 137 determines the challenge, the measurement result (parent-child relationship in API call, app acquisition source, app ID, etc.), public key, based on the measurement result. The signature data including is generated (step S213). The signature unit 137 outputs the generated signature data to the application 133.

署名部137は、登録フェーズであるか否かを判定する(ステップS214)。署名部137は、登録フェーズでないと判定した場合には(ステップS214:否定)、測定処理を終了し、元の処理に戻る。署名部137は、登録フェーズであると判定した場合には(ステップS214:肯定)、認証サーバ300から送信される保存成功情報の受信を所定時間待機する。   The signature unit 137 determines whether the registration phase is in effect (step S214). If the signature unit 137 determines that it is not the registration phase (No at Step S214), it ends the measurement process and returns to the original process. If the signature unit 137 determines that it is in the registration phase (step S214: affirmative), the signature unit 137 waits for a predetermined time to receive the storage success information transmitted from the authentication server 300.

署名部137は、所定時間内に認証サーバ300から保存成功情報が返ってきたか否かを判定する(ステップS215)。署名部137は、保存成功情報が返ってきたと判定した場合には(ステップS215:肯定)、測定結果を測定結果記憶部123に記憶し(ステップS216)、測定処理を終了して元の処理に戻る。署名部137は、保存成功情報が返ってきていないと判定した場合には(ステップS215:否定)、測定処理を終了して元の処理に戻る。   The signature unit 137 determines whether or not successful storage information is returned from the authentication server 300 within a predetermined time (step S215). If it is determined that the storage success information has been returned (step S215: Yes), the signature unit 137 stores the measurement result in the measurement result storage unit 123 (step S216), ends the measurement process, and returns to the original process. Return. If the signature unit 137 determines that the storage success information has not been returned (No at Step S215), the signature unit 137 ends the measurement process and returns to the original process.

図19の説明に戻って、アプリ133は、署名部137からユーザ登録用の署名データが入力されると、入力された署名データを認証サーバ300に送信する(ステップS21)。   Returning to the description of FIG. 19, when the signature data for user registration is input from the signature unit 137, the application 133 transmits the input signature data to the authentication server 300 (step S21).

認証サーバ300は、端末装置100から署名データを受信すると(ステップS22)、署名データに含まれる測定結果および公開鍵を照合DB302に記憶する(ステップS23)。認証サーバ300は、測定結果および公開鍵を照合DB302に記憶すると、端末装置100および提供サーバ200に対して保存成功情報を送信する(ステップS24)。   Upon receiving the signature data from the terminal device 100 (step S22), the authentication server 300 stores the measurement result and public key included in the signature data in the verification DB 302 (step S23). After storing the measurement result and the public key in the verification DB 302, the authentication server 300 transmits storage success information to the terminal device 100 and the providing server 200 (step S24).

提供サーバ200は、認証サーバ300から保存成功情報を受信すると(ステップS25)、端末装置100に対してユーザM向けサービスを提供するように指示する。端末装置100は、提供サーバ200の指示に従ってユーザM向けサービスを提供する(ステップS26)。これにより、端末装置100は、ユーザMの測定結果および公開鍵を認証サーバ300に登録できるとともに、提供サーバ200からサービスの提供を受けることができる。   When the providing server 200 receives the storage success information from the authentication server 300 (step S25), the providing server 200 instructs the terminal device 100 to provide a service for the user M. The terminal device 100 provides the service for the user M according to the instruction of the providing server 200 (step S26). Accordingly, the terminal device 100 can register the measurement result of the user M and the public key in the authentication server 300 and can receive the provision of the service from the provision server 200.

続いて、ユーザ認証時の認証処理について説明する。図21は、実施例の認証処理の一例を示すシーケンス図である。なお、端末装置100でアプリを実行するまでのステップS11〜S13までの処理は、登録処理と同様であるので、その説明を省略する。   Subsequently, an authentication process at the time of user authentication will be described. FIG. 21 is a sequence diagram showing an example of the authentication process of the embodiment. In addition, since the process from step S11 to S13 until an application is executed by the terminal device 100 is the same as the registration process, the description thereof is omitted.

アプリ133は、実行が開始されると、認証要求を認証サーバ300に送信する(ステップS31)。認証サーバ300は、端末装置100から認証要求を受信すると、当該端末装置100に対してチャレンジを送信する(ステップS32)。   When the application 133 starts execution, the application 133 transmits an authentication request to the authentication server 300 (step S31). When receiving the authentication request from the terminal device 100, the authentication server 300 transmits a challenge to the terminal device 100 (step S32).

端末装置100のアプリ133は、認証サーバ300から認証要求に対応するチャレンジを受信する。アプリ133は、受信したチャレンジへの署名要求を中継部135に出力する(ステップS33)。   The application 133 of the terminal device 100 receives a challenge corresponding to the authentication request from the authentication server 300. The application 133 outputs the received signature request for the challenge to the relay unit 135 (step S33).

検証部134は、ブラウザ132からアプリの取得元の検証が指示されると、アプリ133が署名要求を中継部135に出力する際に、アプリ133が対応するサービスの情報を取得する。つまり、検証部134は、アプリ133の取得元を測定する(ステップS34)。検証部134は、測定したアプリ133の取得元、つまり取得したサービスの情報を検証情報として中継部135に出力する。   When the verification of the acquisition source of the application is instructed from the browser 132, the verification unit 134 acquires service information corresponding to the application 133 when the application 133 outputs a signature request to the relay unit 135. That is, the verification unit 134 measures the acquisition source of the application 133 (step S34). The verification unit 134 outputs the acquisition source of the measured application 133, that is, the acquired service information, to the relay unit 135 as verification information.

中継部135は、アプリ133から署名要求が入力され、検証部134から検証情報が入力されると、FIDOAPIを呼び出して、署名要求を署名部137に出力する。また、中継部135は、検証情報を測定部136に出力する。   When the signature request is input from the application 133 and the verification information is input from the verification unit 134, the relay unit 135 calls the FIFO API and outputs the signature request to the signature unit 137. Also, the relay unit 135 outputs the verification information to the measurement unit 136.

署名部137は、署名要求が入力されると、署名要求に応じて生体認証部112から生体情報を入力するようにユーザMに促す。署名部137は、生体認証部112から生体情報が入力されると、生体情報記憶部121を参照し、予め登録されたユーザMの生体情報と照合する(ステップS35)。   When the signature request is input, the signature unit 137 prompts the user M to input the biometric information from the biometric authentication unit 112 in response to the signature request. When the biometric information is input from the biometric authentication unit 112, the signature unit 137 refers to the biometric information storage unit 121 and compares the biometric information of the user M registered in advance (step S35).

測定部136は、中継部135から検証情報が入力されると、つまり中継部135がFIDOAPIを呼び出すと、FIDOAPIを呼び出したプログラムの親子関係を測定する測定処理を実行する(ステップS20)。   When the verification information is input from the relay unit 135, that is, when the relay unit 135 calls FIDOAPI, the measurement unit 136 executes a measurement process that measures the parent-child relationship of the program that called the FIDOAPI (step S20).

アプリ133は、署名部137からユーザ認証用の署名データが入力されると、入力された署名データを認証サーバ300に送信する(ステップS36)。   When the signature data for user authentication is input from the signature unit 137, the application 133 transmits the input signature data to the authentication server 300 (step S36).

認証サーバ300は、端末装置100から署名データを受信すると(ステップS37)、照合DB302を参照し、公開鍵で署名を検証して改竄がないことを確認する(ステップS38)。その後、認証サーバ300は、署名データに含まれる測定結果と、照合DB302の登録済みの測定結果とを照合する(ステップS39)。認証サーバ300は、照合結果が一致したらユーザMの確認情報を提供サーバ200に送信する(ステップS40)。なお、認証サーバ300は、照合結果が一致しない場合には、提供サーバ200にサービスの提供を許可しない。   Upon receiving the signature data from the terminal device 100 (step S37), the authentication server 300 refers to the verification DB 302 and verifies the signature with the public key to confirm that there is no falsification (step S38). Thereafter, the authentication server 300 collates the measurement result included in the signature data with the measurement result registered in the collation DB 302 (step S39). The authentication server 300 transmits the confirmation information of the user M to the providing server 200 when the collation results match (step S40). Note that the authentication server 300 does not permit the providing server 200 to provide a service when the collation results do not match.

提供サーバ200は、認証サーバ300から確認情報を受信すると(ステップS41)、端末装置100に対してユーザM向けサービスを提供するように指示する。端末装置100は、提供サーバ200の指示に従ってユーザM向けサービスを提供する(ステップS42)。これにより、端末装置100は、不正なAPI呼び出しを検出できるとともに、提供サーバ200からサービスの提供を受けることができる。すなわち、端末装置100は、API呼び出しが自由に行えるWindowsにおいても、Webアプリからの不正なAPI呼び出しを検出し、ユーザの成り済ましを防止できる。従って、端末装置100としてWindows端末を用いても、端末で生体情報を照合するFIDOを適用することができる。   When receiving the confirmation information from the authentication server 300 (step S41), the providing server 200 instructs the terminal device 100 to provide the service for the user M. The terminal device 100 provides the service for the user M according to the instruction of the providing server 200 (step S42). Thus, the terminal device 100 can detect an unauthorized API call and can receive the provision of a service from the provision server 200. That is, the terminal device 100 can detect an unauthorized API call from a web application even in Windows where API calls can be freely made, and prevent the impersonation of the user. Therefore, even if a Windows terminal is used as the terminal device 100, it is possible to apply FIDO that collates biological information at the terminal.

このように、端末装置100は、サービスを提供する提供サーバ200から、サービスをユーザに提供するアプリを取得してブラウザ上で実行するとともにアプリの取得元を検証する。また、端末装置100は、ユーザを認証する認証サーバ300に対してアプリが送信するユーザの認証要求に応じたデータを認証サーバ300から受信し、受信したデータへの署名要求を実行する。また、端末装置100は、署名要求を実行する際に、署名要求に対応するAPIを呼び出したプログラムの親子関係を測定する。また、端末装置100は、データと、検証されたアプリの取得元と、測定された親子関係を示す測定結果とに基づいて、秘密鍵または公開鍵を用いて署名データを生成する。また、端末装置100は、生成された署名データを認証サーバ300に送信し、提供サーバ200が登録済みの測定結果と一致する照合結果を認証サーバ300から受信した場合に、サービスをユーザに提供する。その結果、端末装置100は、不正なAPI呼び出しを検出できる。   As described above, the terminal device 100 acquires an application for providing the service to the user from the provision server 200 for providing the service, executes the application on the browser, and verifies the application acquisition source. Further, the terminal device 100 receives data corresponding to the user authentication request transmitted from the application to the authentication server 300 that authenticates the user from the authentication server 300, and executes a signature request for the received data. Further, when executing the signature request, the terminal device 100 measures the parent-child relationship of the program that called the API corresponding to the signature request. Also, the terminal device 100 generates signature data using a secret key or a public key, based on the data, the acquisition source of the verified application, and the measurement result indicating the measured parent-child relationship. Further, the terminal device 100 transmits the generated signature data to the authentication server 300, and provides the service to the user when the providing server 200 receives a matching result that matches the registered measurement result from the authentication server 300. . As a result, the terminal device 100 can detect an illegal API call.

また、端末装置100は、アプリの取得元を検証出来ないブラウザ上でアプリが実行されている場合、ブラウザに表示されているオブジェクトの取得元が、アプリが申告する取得元と一致するオブジェクトの情報を親子関係に含める。その結果、端末装置100は、古いブラウザにおいても、不正なAPI呼び出しを検出できる。   Furthermore, when the terminal device 100 is executing the application on a browser that can not verify the acquisition source of the application, information on an object whose acquisition source of the object displayed on the browser matches the acquisition source reported by the application Is included in the parent-child relationship. As a result, the terminal device 100 can detect an invalid API call even in an old browser.

また、端末装置100は、署名要求時に取得したユーザの生体情報と、登録済みのユーザの生体情報とを照合し、照合結果が一致する場合に署名データを生成する。その結果、端末装置100は、提供されるサービスのセキュリティを向上させることができる。   Further, the terminal device 100 collates the biometric information of the user acquired at the time of requesting the signature with the biometric information of the registered user, and generates signature data when the collation results match. As a result, the terminal device 100 can improve the security of the provided service.

また、端末装置100は、サービスを提供する提供サーバ200から、サービスをユーザに提供するアプリを取得してブラウザ上で実行するとともにアプリの取得元を検証する。また、端末装置100は、アプリを実行する際に、アプリからの認証要求に対応するAPIを呼び出したプログラムの親子関係を測定する。また、端末装置100は、測定された親子関係を示す測定結果と、登録済みの親子関係を示す測定結果とを照合し、照合結果が一致する場合に、認証要求を受け付ける。その結果、端末装置100は、端末装置100側で不正なAPI呼び出しを検出できる。   Further, the terminal device 100 acquires an application for providing the service to the user from the provision server 200 for providing the service, executes the application on the browser, and verifies the acquisition source of the application. In addition, when the terminal device 100 executes an application, the terminal device 100 measures a parent-child relationship of a program that has called an API corresponding to an authentication request from the application. Further, the terminal device 100 collates the measurement result indicating the measured parent-child relationship with the measurement result indicating the registered parent-child relationship, and accepts an authentication request when the collation results match. As a result, the terminal device 100 can detect an unauthorized API call on the terminal device 100 side.

また、認証サーバ300は、サービスを提供する提供サーバ200からサービスをユーザに提供するアプリを取得してブラウザ上で実行する端末装置100から、ユーザの認証要求を受信すると、ユーザの認証要求に応じたデータを端末装置100に送信する。また、認証サーバ300は、端末装置100においてアプリを実行してユーザの登録を行う場合にアプリからの認証要求に対応するAPIを呼び出したプログラムの親子関係を測定した測定結果を、登録済み測定結果として記憶する記憶部を有する。また、認証サーバ300は、記憶部を参照して、端末装置100から受信した署名データに含まれる測定結果と、記憶部に記憶された登録済み測定結果とを照合し、照合結果が一致する場合に、提供サーバ200にサービスの提供を許可する。その結果、認証サーバ300は、認証サーバ300側で不正なAPI呼び出しを検出できる。   Further, when authentication server 300 receives an authentication request for a user from terminal device 100 that acquires an application for providing a service to a user from provision server 200 for providing a service and executes the application on the browser, authentication server 300 responds to the user's authentication request. The received data is transmitted to the terminal device 100. In addition, when the authentication server 300 executes an application in the terminal device 100 to register a user, a measurement result obtained by measuring a parent-child relationship of a program that calls an API corresponding to an authentication request from the application is registered measurement result As a storage unit. Further, the authentication server 300 refers to the storage unit to collate the measurement result included in the signature data received from the terminal device 100 with the registered measurement result stored in the storage unit, and when the collation results match. , Permit the provision server 200 to provide the service. As a result, the authentication server 300 can detect an unauthorized API call on the authentication server 300 side.

なお、上記実施例では、端末装置100側で生体情報を照合して照合結果を認証サーバ300側に送信する手法としてFIDOを挙げたが、これに限定されない。例えば、端末装置100側で生体認証を行うものであれば、各種の手法を用いてもよい。   In the above-described embodiment, FIDO is cited as a technique for collating biometric information on the terminal device 100 side and transmitting the collation result to the authentication server 300 side, but is not limited thereto. For example, various methods may be used as long as biometric authentication is performed on the terminal device 100 side.

また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、検証部134と中継部135とを統合してもよいし、測定部136と署名部137とを統合してもよい。また、図示した各処理は、上記の順番に限定されるものでなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。   Further, each component of each unit shown in the drawings does not necessarily have to be physically configured as shown in the drawings. That is, the specific form of the dispersion and integration of each part is not limited to the illustrated one, and all or a part thereof is functionally or physically dispersed or integrated in any unit according to various loads, usage conditions, etc. Can be configured. For example, the verification unit 134 and the relay unit 135 may be integrated, or the measurement unit 136 and the signature unit 137 may be integrated. Further, the illustrated processes are not limited to the above-described order, and may be performed at the same time as long as the processing contents do not contradict each other, or may be performed by changing the order.

さらに、各装置で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。   Furthermore, all or any part of various processing functions performed by each device may be executed on a CPU (or a microcomputer such as an MPU or an MCU (Micro Controller Unit)). In addition, various processing functions may be executed in whole or any part on a program analyzed and executed by a CPU (or a microcomputer such as an MPU or MCU) or on hardware by wired logic. It goes without saying that it is good.

ところで、上記の各実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の各実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図22は、認証制御プログラムを実行するコンピュータの一例を示す図である。   By the way, the various processes described in the above embodiments can be realized by executing a prepared program on a computer. Therefore, in the following, an example of a computer that executes a program having the same function as each of the above embodiments will be described. FIG. 22 is a diagram of an example of a computer that executes an authentication control program.

図22に示すように、コンピュータ400は、各種演算処理を実行するCPU401と、データ入力を受け付ける入力装置402と、モニタ403とを有する。また、コンピュータ400は、記憶媒体からプログラム等を読み取る媒体読取装置404と、各種装置と接続するためのインタフェース装置405と、他の情報処理装置等と有線または無線により接続するための通信装置406とを有する。また、コンピュータ400は、各種情報を一時記憶するRAM407と、フラッシュメモリ408とを有する。また、各装置401〜408は、バス409に接続される。   As shown in FIG. 22, the computer 400 has a CPU 401 that executes various types of arithmetic processing, an input device 402 that receives data input, and a monitor 403. The computer 400 also includes a medium reading device 404 that reads a program and the like from a storage medium, an interface device 405 for connecting to various devices, and a communication device 406 for connecting to other information processing devices and the like by wire or wirelessly. Have The computer 400 also has a RAM 407 for temporarily storing various information, and a flash memory 408. Each of the devices 401 to 408 is connected to the bus 409.

フラッシュメモリ408には、図10に示した実行部131、ブラウザ132、アプリ133、検証部134、中継部135、測定部136および署名部137の各処理部と同様の機能を有する認証制御プログラムが記憶される。また、フラッシュメモリ408には、生体情報記憶部121、秘密鍵記憶部122、測定結果記憶部123、および、認証制御プログラムを実現するための各種データが記憶される。入力装置202は、例えば、コンピュータ400のユーザから操作情報等の各種情報の入力を受け付ける。モニタ403は、例えば、コンピュータ400のユーザに対して表示画面等の各種画面を表示する。インタフェース装置405は、例えば指紋認証を行う生体認証装置410等が接続される。通信装置406は、例えば、図10に示した通信部110と同様の機能を有しネットワークNと接続され、提供サーバ200、認証サーバ300および他の情報処理装置と各種情報をやりとりする。   In the flash memory 408, an authentication control program having the same functions as the processing units of the execution unit 131, browser 132, application 133, verification unit 134, relay unit 135, measurement unit 136, and signature unit 137 shown in FIG. It is memorized. The flash memory 408 stores a biometric information storage unit 121, a secret key storage unit 122, a measurement result storage unit 123, and various types of data for realizing an authentication control program. The input device 202 receives an input of various information such as operation information from the user of the computer 400, for example. The monitor 403 displays various screens such as a display screen for the user of the computer 400, for example. The interface device 405 is connected to, for example, a biometric authentication device 410 that performs fingerprint authentication. The communication device 406 has, for example, the same function as the communication unit 110 illustrated in FIG. 10 and is connected to the network N, and exchanges various types of information with the providing server 200, the authentication server 300, and other information processing devices.

CPU401は、フラッシュメモリ408に記憶された各プログラムを読み出して、RAM407に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ400を図10に示した実行部131、ブラウザ132、アプリ133、検証部134、中継部135、測定部136および署名部137として機能させることができる。   The CPU 401 reads out each program stored in the flash memory 408, develops it in the RAM 407, and executes it to perform various processes. In addition, these programs can cause the computer 400 to function as the execution unit 131, the browser 132, the application 133, the verification unit 134, the relay unit 135, the measurement unit 136, and the signature unit 137 illustrated in FIG.

なお、上記の認証制御プログラムは、必ずしもフラッシュメモリ408に記憶されている必要はない。例えば、コンピュータ400が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ400が読み出して実行するようにしてもよい。コンピュータ400が読み取り可能な記憶媒体は、例えば、CD−ROMやDVD(Digital Versatile Disc)、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN等に接続された装置にこの認証制御プログラムを記憶させておき、コンピュータ400がこれらから認証制御プログラムを読み出して実行するようにしてもよい。   The above authentication control program does not necessarily have to be stored in the flash memory 408. For example, the computer 400 may read and execute a program stored in a storage medium readable by the computer 400. The storage medium readable by the computer 400 is, for example, a portable recording medium such as a CD-ROM, a DVD (Digital Versatile Disc) or a USB (Universal Serial Bus) memory, a semiconductor memory such as a flash memory, a hard disk drive, or the like. . Alternatively, the authentication control program may be stored in a device connected to a public line, the Internet, a LAN, or the like, and the computer 400 may read and execute the authentication control program from these.

10 認証システム
100 端末装置
110 通信部
111 表示操作部
112 生体認証部
120 記憶部
121 生体情報記憶部
122 秘密鍵記憶部
123 測定結果記憶部
130 制御部
131 実行部
132 ブラウザ
133 アプリ
134 検証部
135 中継部
136 測定部
137 署名部
200 提供サーバ
300 認証サーバ
301 認証部
302 照合DB
N ネットワーク
DESCRIPTION OF SYMBOLS 10 Authentication system 100 Terminal device 110 Communication part 111 Display operation part 112 Biometric authentication part 120 Storage part 121 Biometric information storage part 122 Private key storage part 123 Measurement result storage part 130 Control part 131 Execution part 132 Browser 133 Application 134 Verification part 135 Relay Unit 136 Measuring unit 137 Signature unit 200 Providing server 300 Authentication server 301 Authentication unit 302 Verification DB
N network

Claims (11)

サービスを提供する提供サーバから、該サービスをユーザに提供するアプリを取得してブラウザ上で実行するとともに前記アプリの取得元を検証し、前記ユーザを認証する認証サーバに対して前記アプリが送信する前記ユーザの認証要求に応じたデータを前記認証サーバから受信し、受信した前記データへの署名要求を実行する実行部と、
前記署名要求を実行する際に、前記署名要求に対応するAPIを呼び出したプログラムの親子関係を測定する測定部と、
前記データと、検証された前記アプリの取得元と、測定された前記親子関係を示す測定結果とに基づいて、秘密鍵または公開鍵を用いて署名データを生成する署名部と、を有し、
前記実行部は、生成された前記署名データを前記認証サーバに送信し、前記提供サーバが登録済みの測定結果と一致する照合結果を前記認証サーバから受信した場合に、前記サービスを前記ユーザに提供する、
ことを特徴とする情報処理装置。
The application that provides the service to the user is acquired from the providing server that provides the service, is executed on the browser, the acquisition source of the application is verified, and the application transmits the authentication server that authenticates the user An execution unit that receives data corresponding to the authentication request of the user from the authentication server, and executes a signature request for the received data;
A measurement unit that measures a parent-child relationship of a program that called an API corresponding to the signature request when executing the signature request;
A signature unit that generates signature data using a secret key or a public key based on the data, the verified acquisition source of the application, and a measurement result indicating the measured parent-child relationship;
The execution unit transmits the generated signature data to the authentication server, and provides the service to the user when the providing server receives a matching result that matches a registered measurement result from the authentication server. To
An information processing apparatus characterized by
前記測定部は、前記アプリの取得元を検証出来ない前記ブラウザ上で前記アプリが実行されている場合、該ブラウザに表示されているオブジェクトの取得元が、前記アプリが申告する取得元と一致する該オブジェクトの情報を前記親子関係に含める、
ことを特徴とする請求項1に記載の情報処理装置。
When the app is being executed on the browser where the acquisition source of the application cannot be verified, the acquisition unit of the object displayed on the browser matches the acquisition source reported by the application. Include the information of the object in the parent-child relationship,
An information processing apparatus according to claim 1, characterized in that.
前記署名部は、前記署名要求時に取得した前記ユーザの生体情報と、登録済みの前記ユーザの生体情報とを照合し、照合結果が一致する場合に前記署名データを生成する、
ことを特徴とする請求項1または2に記載の情報処理装置。
The signature unit collates the biometric information of the user acquired at the time of requesting the signature with the biometric information of the registered user, and generates the signature data when the collation result matches.
The information processing apparatus according to claim 1, wherein the information processing apparatus is an information processing apparatus.
サービスを提供する提供サーバから、該サービスをユーザに提供するアプリを取得してブラウザ上で実行するとともに前記アプリの取得元を検証する実行部と、
前記アプリを実行する際に、前記アプリからの認証要求に対応するAPIを呼び出したプログラムの親子関係を測定する測定部と、
測定された前記親子関係を示す測定結果と、登録済みの前記親子関係を示す測定結果とを照合し、照合結果が一致する場合に、前記認証要求を受け付ける認証部と、
を有することを特徴とする情報処理装置。
An execution unit that acquires an application that provides the service to the user from a providing server that provides the service, executes the application on a browser, and verifies an acquisition source of the application;
A measurement unit that measures a parent-child relationship of a program that calls an API corresponding to an authentication request from the application when the application is executed;
The measured result indicating the measured parent-child relationship is compared with the registered measured result indicating the parent-child relationship.
An information processing apparatus comprising:
サービスを提供する提供サーバから該サービスをユーザに提供するアプリを取得してブラウザ上で実行する端末装置から、前記ユーザの認証要求を受信すると、該ユーザの認証要求に応じたデータを前記端末装置に送信する送信部と、
前記端末装置において前記アプリを実行して前記ユーザの登録を行う場合に前記アプリからの認証要求に対応するAPIを呼び出したプログラムの親子関係を測定した測定結果を、登録済み測定結果として記憶する記憶部を参照して、前記端末装置から受信した署名データに含まれる前記測定結果と、前記記憶部に記憶された前記登録済み測定結果とを照合し、照合結果が一致する場合に、前記提供サーバに前記サービスの提供を許可する許可部と、
を有することを特徴とする認証サーバ。
When the user authentication request is received from a terminal device that obtains an application that provides the service to the user from a providing server that provides the service and executes the application on a browser, A transmission unit for transmitting to
A storage for storing a measurement result obtained by measuring a parent-child relationship of a program that calls an API corresponding to an authentication request from the application when the application is executed in the terminal device and the user is registered When the comparison result matches the measurement result included in the signature data received from the terminal device and the registered measurement result stored in the storage unit, the providing server A permission unit that permits the provision of the service;
An authentication server characterized by comprising:
サービスを提供する提供サーバから、該サービスをユーザに提供するアプリを取得してブラウザ上で実行するとともに前記アプリの取得元を検証し、前記ユーザを認証する認証サーバに対して前記アプリが送信する前記ユーザの認証要求に応じたデータを前記認証サーバから受信し、受信した前記データへの署名要求を実行し、
前記署名要求を実行する際に、前記署名要求に対応するAPIを呼び出したプログラムの親子関係を測定し、
前記データと、検証した前記アプリの取得元と、測定した前記親子関係を示す測定結果とに基づいて、秘密鍵または公開鍵を用いて署名データを生成し、
生成した前記署名データを前記認証サーバに送信し、前記提供サーバが登録済みの測定結果と一致する照合結果を前記認証サーバから受信した場合に、前記サービスを前記ユーザに提供する、
処理をコンピュータが実行することを特徴とする認証制御方法。
The application that provides the service to the user is acquired from the providing server that provides the service, is executed on the browser, the acquisition source of the application is verified, and the application transmits to the authentication server that authenticates the user. Receiving data corresponding to the authentication request of the user from the authentication server, executing a request to sign the received data;
When executing the signature request, measure the parent-child relationship of the program that called the API corresponding to the signature request;
Based on the data, the acquisition source of the verified app, and the measurement result indicating the measured parent-child relationship, signature data is generated using a secret key or a public key,
Transmitting the generated signature data to the authentication server, and providing the service to the user when the providing server receives a matching result that matches a registered measurement result from the authentication server;
An authentication control method characterized in that a computer executes a process.
サービスを提供する提供サーバから、該サービスをユーザに提供するアプリを取得してブラウザ上で実行するとともに前記アプリの取得元を検証し、
前記アプリを実行する際に、前記アプリからの認証要求に対応するAPIを呼び出したプログラムの親子関係を測定し、
測定した前記親子関係を示す測定結果と、登録済みの前記親子関係を示す測定結果とを照合し、照合結果が一致する場合に、前記認証要求を受け付ける、
処理をコンピュータが実行することを特徴とする認証制御方法。
An application that provides the service to the user is acquired from a provision server that provides the service, executed on a browser, and an acquisition source of the application is verified.
When executing the app, measure the parent-child relationship of the program that called the API corresponding to the authentication request from the app,
The measurement result indicating the measured parent-child relationship is compared with the measurement result indicating the registered parent-child relationship, and when the verification result matches, the authentication request is accepted.
An authentication control method characterized in that a computer executes a process.
サービスを提供する提供サーバから該サービスをユーザに提供するアプリを取得してブラウザ上で実行する端末装置から、前記ユーザの認証要求を受信すると、該ユーザの認証要求に応じたデータを前記端末装置に送信し、
前記端末装置において前記アプリを実行して前記ユーザの登録を行う場合に前記アプリからの認証要求に対応するAPIを呼び出したプログラムの親子関係を測定した測定結果を、登録済み測定結果として記憶する記憶部を参照して、前記端末装置から受信した署名データに含まれる前記測定結果と、前記記憶部に記憶された前記登録済み測定結果とを照合し、照合結果が一致する場合に、前記提供サーバに前記サービスの提供を許可する、
処理をコンピュータが実行することを特徴とする認証制御方法。
When the user authentication request is received from a terminal device that acquires an application that provides the service to the user from a providing server that provides the service and executes the application on a browser, data corresponding to the user authentication request is received from the terminal device. To
Storage that stores, as a registered measurement result, a measurement result obtained by measuring a parent-child relationship of a program that calls an API corresponding to an authentication request from the application when the application is executed in the terminal device and the user is registered. When the comparison result matches the measurement result included in the signature data received from the terminal device and the registered measurement result stored in the storage unit, the providing server Allow the service to be provided,
An authentication control method characterized in that a computer executes a process.
サービスを提供する提供サーバから、該サービスをユーザに提供するアプリを取得してブラウザ上で実行するとともに前記アプリの取得元を検証し、前記ユーザを認証する認証サーバに対して前記アプリが送信する前記ユーザの認証要求に応じたデータを前記認証サーバから受信し、受信した前記データへの署名要求を実行し、
前記署名要求を実行する際に、前記署名要求に対応するAPIを呼び出したプログラムの親子関係を測定し、
前記データと、検証した前記アプリの取得元と、測定した前記親子関係を示す測定結果とに基づいて、秘密鍵または公開鍵を用いて署名データを生成し、
生成した前記署名データを前記認証サーバに送信し、前記提供サーバが登録済みの測定結果と一致する照合結果を前記認証サーバから受信した場合に、前記サービスを前記ユーザに提供する、
処理をコンピュータに実行させることを特徴とする認証制御プログラム。
The application that provides the service to the user is acquired from the providing server that provides the service, is executed on the browser, the acquisition source of the application is verified, and the application transmits to the authentication server that authenticates the user. Receiving data corresponding to the authentication request of the user from the authentication server, executing a request to sign the received data;
When executing the signature request, measure the parent-child relationship of the program that called the API corresponding to the signature request;
Based on the data, the acquisition source of the verified app, and the measurement result indicating the measured parent-child relationship, signature data is generated using a secret key or a public key,
Transmitting the generated signature data to the authentication server, and providing the service to the user when the providing server receives a matching result that matches a registered measurement result from the authentication server;
An authentication control program that causes a computer to execute a process.
サービスを提供する提供サーバから、該サービスをユーザに提供するアプリを取得してブラウザ上で実行するとともに前記アプリの取得元を検証し、
前記アプリを実行する際に、前記アプリからの認証要求に対応するAPIを呼び出したプログラムの親子関係を測定し、
測定した前記親子関係を示す測定結果と、登録済みの前記親子関係を示す測定結果とを照合し、照合結果が一致する場合に、前記認証要求を受け付ける、
処理をコンピュータに実行させることを特徴とする認証制御プログラム。
An application that provides the service to the user is acquired from a provision server that provides the service, executed on a browser, and an acquisition source of the application is verified.
When executing the app, measure the parent-child relationship of the program that called the API corresponding to the authentication request from the app,
The measurement result indicating the measured parent-child relationship is compared with the measurement result indicating the registered parent-child relationship, and when the verification result matches, the authentication request is accepted.
An authentication control program that causes a computer to execute a process.
サービスを提供する提供サーバから該サービスをユーザに提供するアプリを取得してブラウザ上で実行する端末装置から、前記ユーザの認証要求を受信すると、該ユーザの認証要求に応じたデータを前記端末装置に送信し、
前記端末装置において前記アプリを実行して前記ユーザの登録を行う場合に前記アプリからの認証要求に対応するAPIを呼び出したプログラムの親子関係を測定した測定結果を、登録済み測定結果として記憶する記憶部を参照して、前記端末装置から受信した署名データに含まれる前記測定結果と、前記記憶部に記憶された前記登録済み測定結果とを照合し、照合結果が一致する場合に、前記提供サーバに前記サービスの提供を許可する、
処理をコンピュータに実行させることを特徴とする認証制御プログラム。
When the user authentication request is received from a terminal device that acquires an application that provides the service to the user from a providing server that provides the service and executes the application on a browser, data corresponding to the user authentication request is received from the terminal device. To
Storage that stores, as a registered measurement result, a measurement result obtained by measuring a parent-child relationship of a program that calls an API corresponding to an authentication request from the application when the application is executed in the terminal device and the user is registered. Referring to a part, the measurement result included in the signature data received from the terminal apparatus is compared with the registered measurement result stored in the storage unit, and the Allow the service to be provided,
An authentication control program that causes a computer to execute a process.
JP2018009130A 2018-01-23 2018-01-23 Information processing device, authentication server, authentication control method and authentication control program Active JP6939595B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018009130A JP6939595B2 (en) 2018-01-23 2018-01-23 Information processing device, authentication server, authentication control method and authentication control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018009130A JP6939595B2 (en) 2018-01-23 2018-01-23 Information processing device, authentication server, authentication control method and authentication control program

Publications (2)

Publication Number Publication Date
JP2019129385A true JP2019129385A (en) 2019-08-01
JP6939595B2 JP6939595B2 (en) 2021-09-22

Family

ID=67471377

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018009130A Active JP6939595B2 (en) 2018-01-23 2018-01-23 Information processing device, authentication server, authentication control method and authentication control program

Country Status (1)

Country Link
JP (1) JP6939595B2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012046406A1 (en) * 2010-10-04 2012-04-12 パナソニック株式会社 Information processing device and method for preventing unauthorized application cooperation
JP2016224506A (en) * 2015-05-27 2016-12-28 西日本電信電話株式会社 Information leak detection device, information leak detection system, and information leak detection program
US20170289261A1 (en) * 2013-07-05 2017-10-05 Sonus Networks, Inc. Communications methods and apparatus related to web initiated sessions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012046406A1 (en) * 2010-10-04 2012-04-12 パナソニック株式会社 Information processing device and method for preventing unauthorized application cooperation
US20170289261A1 (en) * 2013-07-05 2017-10-05 Sonus Networks, Inc. Communications methods and apparatus related to web initiated sessions
JP2016224506A (en) * 2015-05-27 2016-12-28 西日本電信電話株式会社 Information leak detection device, information leak detection system, and information leak detection program

Also Published As

Publication number Publication date
JP6939595B2 (en) 2021-09-22

Similar Documents

Publication Publication Date Title
US8713705B2 (en) Application authentication system and method
US9577999B1 (en) Enhanced security for registration of authentication devices
US9628282B2 (en) Universal anonymous cross-site authentication
CN114128212B (en) Method and system for authenticating secure credential transmission to a device
US9124571B1 (en) Network authentication method for secure user identity verification
JP2014528129A (en) How to control access to Internet-based applications
CN108335105B (en) Data processing method and related equipment
KR101818601B1 (en) Method for providing identity verification using card base on near field communication, card, verification terminal, verification support server and identity verification server using the same
JP7269486B2 (en) Information processing device, information processing method and information processing program
Lee et al. A user-friendly authentication solution using NFC card emulation on android
KR101879843B1 (en) Authentication mehtod and system using ip address and short message service
TW202207667A (en) Authentication and validation procedure for improved security in communications systems
CN112565172A (en) Control method, information processing apparatus, and information processing system
KR20160146146A (en) Method of integrity verification and apparatus thereof
CN106533685B (en) Identity authentication method, device and system
JP6939595B2 (en) Information processing device, authentication server, authentication control method and authentication control program
Li et al. Authenticator rebinding attack of the UAF protocol on mobile devices
CN113591053A (en) Method and system for identifying general mobile equipment based on biological information
JP6634737B2 (en) Mobile communication terminal, application determination system, and control method for mobile communication terminal
US20240020376A1 (en) System and method for safely autofilling login fields in computing sources
JP7403430B2 (en) Authentication device, authentication method and authentication program
Hrašna Support for U2F FIDO tokens in mobile applications
Li et al. Research Article Authenticator Rebinding Attack of the UAF Protocol on Mobile Devices
WO2024010738A1 (en) Validate digital ownerships in immutable databases via physical devices
KR20240075374A (en) System and method for financial transaction service based on authentication using portable device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210719

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: 20210803

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210816

R150 Certificate of patent or registration of utility model

Ref document number: 6939595

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150