Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7702404B2 - 悪意のあるプログラムコード注入に対する保護のためのシステム及び方法 - Google Patents
[go: Go Back, main page]

JP7702404B2 - 悪意のあるプログラムコード注入に対する保護のためのシステム及び方法 - Google Patents

悪意のあるプログラムコード注入に対する保護のためのシステム及び方法 Download PDF

Info

Publication number
JP7702404B2
JP7702404B2 JP2022537492A JP2022537492A JP7702404B2 JP 7702404 B2 JP7702404 B2 JP 7702404B2 JP 2022537492 A JP2022537492 A JP 2022537492A JP 2022537492 A JP2022537492 A JP 2022537492A JP 7702404 B2 JP7702404 B2 JP 7702404B2
Authority
JP
Japan
Prior art keywords
descriptors
code
authentication
transaction
resource
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022537492A
Other languages
English (en)
Other versions
JP2023507568A (ja
Inventor
ロルフ リンデマン
マシュー ラウリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nok Nok Labs Inc
Original Assignee
Nok Nok Labs Inc
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 Nok Nok Labs Inc filed Critical Nok Nok Labs Inc
Publication of JP2023507568A publication Critical patent/JP2023507568A/ja
Application granted granted Critical
Publication of JP7702404B2 publication Critical patent/JP7702404B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

本発明は、概して、データ処理システムの分野に関する。より具体的には、本発明は、JavaScriptインジェクションなどの悪意のあるプログラムコードインジェクションから保護するためのシステム及び方法に関するものである。
図1は、生体認証デバイス100を有する例示的なクライアント120を示している。正常動作時において、生体認証センサ102は、ユーザからの生の生体認証データを読み取り(例えば、ユーザの指紋を捕捉する、ユーザの音声を録音する、ユーザのスナップ写真を撮るなど)、特徴抽出モジュール103は、生の生体認証データの指定された特性を抽出する(例えば、指紋の特定領域、特定の顔特徴などに焦点を当てるなど)。照合部モジュール104は、抽出した特徴133を、クライアント120のセキュアストレージに格納された生体認証基準データ110と比較し、抽出した特徴と生体認証基準データ110との間の類似度に基づいてスコアを生成する。生体認証基準データ110は、一般的に、ユーザが、指紋、音声サンプル、画像、又は他の生体認証データをデバイス100に登録する登録プロセスの結果である。次に、アプリケーション105は、スコアを使用して、認証が成功したかどうか(例えば、スコアが特定の指定閾値を上回っているか)を判定してもよい。
図1に示されるシステムは生体認証を指向しているが、様々な他の又は追加の認証技術が例示的なクライアント120上で採用されてもよい。例えば、クライアント側認証部は、ユーザによって入力されたPIN又は他の秘密コード(例えば、パスワード)に基づいてもよく、かつ/又はユーザの存在(例えば、ユーザが存在を検証するために押すボタン)に基づいて始動されてもよい。
システムは、生体認証センサを使用してネットワーク上でセキュアなユーザ認証を提供するために設計されている。かかるシステムでは、アプリケーションによって生成されたスコア及び/又は他の認証データは、リモートサーバによってユーザを認証するため、ネットワークを通じて送られてもよい。例えば、米国特許出願公開第2011/0082801号(「‘801出願」)は、強力な認証(例えば、個人情報の盗難及びフィッシングに対する保護)を提供する、ネットワーク上でのユーザ登録及び認証のためのフレームワーク、セキュアトランザクション(例えば、「マルウェア・イン・ザ・ブラウザ」及びトランザクションについての「マン・イン・ザ・ミドル」攻撃に対する保護)、及び、クライアント認証トークン(例えば、指紋リーダー、顔認識デバイス、スマートカード、トラステッドプラットフォームモジュールなど)の登録/管理について記載している。
本特許出願の譲受人は、‘801出願に記載された認証フレームワークに対する様々な改善を開発している。これらの改善のうちいくつかは、1012年12月29日に本件の譲受人に譲渡され、参照として本明細書に組み込まれる以下の一群の米国特許出願(「同時係属出願」)に記載されている:第13/730,761号、Query System and Method to Determine Authentication Capabilities;第13/730,776号、System and Method for Efficiently Enrolling,Registering,and Authenticating With Multiple Authentication Devices;第13/730,780号、System and Method for Processing Random Challenges Within an Authentication Framework;第13/730,791号、System and Method for Implementing Privacy Classes Within an Authentication Framework;第13/730,795号、System and Method for Implementing Transaction Signaling Within an Authentication Framework。
簡潔に述べると、同時係属出願は、ユーザがクライアント装置上の生体認証デバイス(例えば、指紋センサ)などの認証装置(又は認証部)に登録する認証技術を記載している。ユーザが生体認証デバイスによって登録されるとき、生体認証参考データが(例えば、指をスワイプすること、写真をスナップすること、音声を録音することなどにより)捕捉される。ユーザは、その後、ネットワーク上で1つ以上のサーバ(例えば、同時係属中の出願で説明されているようにセキュアなトランザクションサービスが装備されたウェブサイト又は他の依拠当事者)に認証デバイスを登録して、その後、登録プロセス中に交換されるデータ(例えば、認証デバイスにプロビジョニングされる暗号鍵)を使用してそれらのサーバで認証することができる。認証されると、ユーザは、ウェブサイト又は他の依拠当事者と1つ以上のオンライントランザクションを実行することが許可される。同時係属出願に記載されたフレームワークでは、機密情報、例えば、ユーザを一意的に識別するために使用することができる指紋データ及び他のデータは、ユーザのプライバシーを保護するためにユーザの認証デバイスにローカルに保持されてもよい。
本発明のより良好な理解は、以下の図面と併せた以下の詳細な説明から得ることができる。
生体認証能力を有する例示のクライアントデバイスを示す図である。
セキュア認証システムアーキテクチャの2つの異なる実施形態を示す図である。 セキュア認証システムアーキテクチャの2つの異なる実施形態を示す図である。
鍵を認証デバイスに登録することができる方法を示すトランザクション図である。
セキュアディスプレイを使用するセキュアトランザクション確認の実施形態を示す図である。 セキュアディスプレイを使用するセキュアトランザクション確認の実施形態を示す図である。
関係が確立されていないデバイスとのトランザクションのための認証を行う本発明の一実施形態を示す図である。
トランザクションのための認証を行う2つの異なる実施形態を示すトランザクション図である。 トランザクションのための認証を行う2つの異なる実施形態を示すトランザクション図である。
本発明の一実施形態で用いられる追加のアーキテクチャ上の特徴を示す図である。
本発明の異なる実施形態で用いられるベアラートークンの異なる実施形態を示す図である。 本発明の異なる実施形態で用いられるベアラートークンの異なる実施形態を示す図である。
例示の「オフライン」及び「セミオフライン」認証シナリオを示す図である。
クライアント及び/又はサーバのための例示のシステムアーキテクチャを示す図である。
クライアント及び/又はサーバのための別の例示のシステムアーキテクチャを示す図である。
クライアントとサーバとの間の中間者(MITM)配列を示す図である。
クライアントがウェブページを訪問したときの例示的な相互作用のセットを示す図である。
ウェブページ及びその後のJavaScriptリンクに関連するMITM捕捉通信を示す図である。
認証段階中にクライアントとサーバとの間に介在するMITMを示す図である。
リソース記述子及びコード記述子を使用したクライアントサーバ認証の一実施形態を示す図である。
以下に説明するものは、高度な認証技術及び関連するアプリケーションを実行するための装置、方法及び機械可読媒体の実施形態である。説明を通して、説明の目的のために、多数の具体的な詳細が本発明の完全な理解を提供するために記載されている。しかしながら、本発明が、これらの具体的な詳細の一部がなくても実施され得ることは当業者にとって明らかであろう。他の例において、周知の構造及びデバイスは示されていないか、又は、本発明の基本原理を曖昧にすることを避けるためにブロック図の形態で示されている。
以下に考察する本発明の実施形態は、生体認証デバイス又はPIN入力などの認証能力を備えたクライアントデバイスを伴う。これらのデバイスは、本明細書において、「トークン」、「認証デバイス」、又は「認証部」と呼ばれることがある。特定の実施形態は、顔認識ハードウェア/ソフトウェア(例えば、ユーザの顔を認識してユーザの眼の動きを追跡するためのカメラ及び関連するソフトウェア)にフォーカスしており、いくつかの実施形態は、例えば、指紋センサ、音声認識ハードウェア/ソフトウェア(例えば、マイクロフォン及びユーザの音声を認識するための関連するソフトウェア)、及び、光学的認識機能(例えば、ユーザの網膜をスキャンするための光学スキャナ及び関連するソフトウェア)を含む追加の生体認証デバイスを利用することができる。認証能力はまた、トラステッドプラットフォームモジュール(trusted platform module、TPM)及びスマートカードなどの非生体認証デバイスを含むことができる。
モバイル生体認証の実装において、生体認証デバイスは、依拠当事者からリモートにあってもよい。本明細書で用いるとき、「リモート」という用語は、生体認証デバイスが通信可能に結合されているコンピュータのセキュリティ境界の一部ではない(例えば、依拠当事者コンピュータと同じ物理的筐体内に埋め込まれていない)ことを意味する。一例として、生体認証デバイスは、ネットワーク(例えば、インターネット、無線ネットワークリンクなど)を介して又はUSBポートなどの周辺入力を介して依拠当事者に結合することができる。これらの条件下では、そのデバイスが依拠当事者(例えば、認証及び完全性保護の許容レベルを提供するもの)によって認証され、及び/又はハッカーが生体認証デバイスを侵害したかを、依拠当事者が知る方法がないことがある。生体認証デバイスにおける信頼度は、デバイスの特定の実装形態に依存する。
しかしながら、以下に説明するように、ユーザを認証するために用いられる認証技術は、リモートサーバ及び/又は他のデータ処理デバイスとのネットワークを介した通信などの非位置的構成要素(non-location component)を含むことができる。更に、具体的な実施形態(ATM及び小売店など)が本明細書において記載されるが、本発明の基本原理は、トランザクションがエンドユーザによってローカル又は遠隔で開始される、任意のシステムのコンテキスト内で実装されてもよいことに留意すべきである。
「依拠当事者」という用語は、本明細書では、ユーザトランザクションを実行しようとしているエンティティ(例えば、ユーザトランザクションを実行するウェブサイト又はオンラインサービス)だけでなく、本明細書に記載する基本認証技術を実行してもよいそのエンティティの代理として実装されるセキュアトランザクションサーバも指すのに使用される場合がある。遠隔認証能力を提供したセキュアトランザクションサーバは、所有され、及び/又は依拠当事者の制御下にあってもよく、あるいは事業構成の一部として依拠当事者に対してセキュアトランザクションサービスを提供する第三者の制御下にあってもよい。
「サーバ」という用語は、クライアントからネットワークを介してリクエストを受信し、応答として1つ以上の操作を実行し、クライアントに通常は操作の結果を含む応答を送信するハードウェアプラットフォーム上で(又は複数のハードウェアプラットフォームにわたって)実行されるソフトウェアを指すために本明細書において使用される。サーバは、クライアントに対してネットワーク「サービス」を提供する又は提供するのに役立つように、クライアントのリクエストに応答する。重要なことは、サーバが単一のコンピュータ(例えば、サーバソフトウェアを実行する単一のハードウェアデバイス)に限定されるものではなく、実際には、潜在的に複数の地理的位置にある複数のハードウェアプラットフォームにまたがってもよいということである。
本明細書に記載する本発明の実施形態は、セキュアトランザクションデバイスを通してトランザクションを開始するために、ユーザを認証する技術を含む。一例として、トランザクションは、払い戻し、振替、又は他のユーザ起動型動作であってもよく、トランザクションデバイスは、自動預金支払い機(automatic teller machine、ATM)、売場専用(point-of-sale、PoS)トランザクションデバイス、又はユーザの代理としてトランザクションを実行することができる他のデバイスであってもよい。トランザクションは、例えば、デバイスを装備した小売店若しくは他の小売場所における物品又はサービスの購入に対する支払いの完了、デバイスを介したファンドの払い戻し、デバイスに対するメンテナンスの実行、あるいはユーザ認証を要する他の任意のトランザクションを伴ってもよい。
本発明の一実施形態は、デバイスがオフライン(すなわち、バックエンド認証サーバに接続されていない)又はセミオフライン(すなわち、周期的にのみバックエンド認証サーバに接続される)の状況であっても、ユーザをローカルで認証する(すなわち、ユーザを検証する)ための技術を提供する。一実施形態では、ユーザのクライアントデバイスは、(例えば、依拠当事者の代理として動作する)バックエンド認証サーバによって生成される認証要求をキャッシュに入れる能力を備え、デバイスは、ユーザのクライアントデバイスからデバイスに送信された認証応答を検証するのに必要なデータを含む。
これらの実施形態の詳細を考察する前に、遠隔ユーザ認証技術の概要を提供する。これら及び他の遠隔ユーザ認証技術は、本出願の譲受人に譲渡されており、参照により本明細書に組み込まれる、同時係属出願に記載されている。
遠隔ユーザ認証技術
図2A及び図2Bは、ユーザを遠隔で認証する、クライアント側及びサーバ側の構成要素を備えるシステムアーキテクチャの2つの実施形態を示している。図2Aに示される実施形態は、ウェブサイトと通信するため、ブラウザプラグインベースのアーキテクチャを使用するが、図2Bに示される実施形態はブラウザを要しない。本明細書に記載する様々な認証技術及び関連アプリケーションは、これらのシステムアーキテクチャのいずれかに実装されてもよい。例えば、本明細書に記載するクライアントデバイス内の認証エンジンは、インターフェース202を含むセキュアトランザクションサービス201の一部として実装されてもよい。しかしながら、上述した実施形態は、図2A~Bに示されるもの以外のハードウェア及びソフトウェアの論理構成を使用して実現されてもよいことに留意すべきである。
図2Aを参照すると、図示される実施形態は、エンドユーザを登録し認証するための1つ以上の認証デバイス210~212を装備したクライアント200を含む。上述したように、認証デバイス210~212は、指紋センサ、音声認識ハードウェア/ソフトウェア(例えば、ユーザの音声を認識するためのマイクロフォン及び関連ソフトウェア)、顔認識ハードウェア/ソフトウェア(例えば、ユーザの顔を認識するためのカメラ及び関連ソフトウェア)、及び光学認識能力(ユーザの網膜をスキャンするための光スキャナ及び関連ソフトウェア)などの生体認証デバイス、並びにトラステッドプラットフォームモジュール(TPM)及びスマートカードなどの非生体認証デバイスを含んでもよい。ユーザは、セキュアトランザクションサービス201が(インターフェース202を介して)セキュアストレージ220に生体認証テンプレートデータとして格納することができる生体認証データを提供する(例えば、指紋認証デバイス上で指をスワイプする)ことによって、生体認証デバイスに登録することができる。
セキュアストレージ220は、認証デバイス210~212のセキュア周辺デバイスの外側に示されているが、一実施形態では、各認証デバイス210~212は独自の統合セキュアストレージを有してもよい。それに加えて、各認証デバイス210~212は、生体認証基準データレコードを暗号的に保護(例えば、ストレージ220をセキュアにするため、データレコードをラッピング)してもよい。
認証デバイス210~212は、セキュアトランザクションサービス201によって露出されたインターフェース202(例えば、アプリケーションプログラミングインターフェース、すなわちAPI(application programming interface))を通して、クライアントに通信可能に結合される。セキュアトランザクションサービス201は、ネットワーク上で1つ以上のセキュアトランザクションサーバ232~233と通信し、ウェブブラウザ204のコンテキスト内で実行されるセキュアトランザクションプラグイン205とインターフェース接続するためのセキュアアプリケーションである。図示されるように、インターフェース202はまた、デバイス識別コード(認証部証明ID(authenticator attestation ID、AAID))、ユーザ識別コード、ユーザ登録データ(例えば、スキャンされた指紋又は他の生体認証データ)、及び本明細書に記載するセキュア認証技術を実行するのに使用される鍵など、認証デバイス210~212それぞれに関する情報を格納する、クライアント200のセキュアストレージデバイス220に対するセキュアアクセスを提供してもよい。例えば、詳細に後述するように、固有の鍵が認証デバイスそれぞれに格納され、その後、インターネットなどのネットワーク上でサーバ230と通信するときに使用されてもよい。
後述するように、特定の種類のネットワークトランザクションは、ウェブサイト231又は他のサーバとのHTTP又はHTTPSトランザクションなどのセキュアトランザクションプラグイン205によってサポートされる。一実施形態では、セキュアトランザクションプラグインは、セキュアエンタープライズ又はウェブデスティネーション230の内部のウェブサーバ231(時として、単に「サーバ230」と呼ばれることがある)によってウェブページのHTMLコードの中に挿入された特定のHTMLタグに応答して開始される。そのようなタグを検出することに応答して、セキュアトランザクションプラグイン205は、処理のために、セキュアトランザクションサービス201に、トランザクションを転送することができる。更に、特定の種類のトランザクション(例えば、セキュア鍵交換などの)について、セキュアトランザクションサービス201は、内部設置トランザクションサーバ232(すなわち、ウェブサイトと同じ位置に配置された)又は外部設置トランザクションサーバ233との直接の通信チャネルを開くことができる。
セキュアトランザクションサーバ232~233は、ユーザデータ、認証デバイスデータ、鍵、及び後述するセキュア認証トランザクションをサポートするのに必要な他のセキュア情報を格納する、セキュアトランザクションデータベース240に結合される。しかしながら、本発明の基本原理は、図2Aに示されるセキュアエンタープライズ又はウェブデスティネーション230内の論理的構成要素の分離を要しないことに留意すべきである。例えば、ウェブサイト231及びセキュアトランザクションサーバ232~233は、単一の物理的サーバ又は別個の物理的サーバ内に実装されてもよい。更に、ウェブサイト231及びトランザクションサーバ232~233は、後述する機能を行うために1つ以上のサーバ上で実行される統合されたソフトウェアモジュール内に実装されてもよい。
上述したように、本発明の基本原理は、図2Aに示されるブラウザベースのアーキテクチャに限定されない。図2Bは、スタンドアロンアプリケーション254が、セキュアトランザクションサービス201によって提供される機能を利用してネットワーク上でユーザを認証する、代替の実装形態を示している。一実施形態では、アプリケーション254は、詳細に後述するユーザ/クライアント認証技術を実行するための、セキュアトランザクションサーバ232~233に依存する1つ以上のネットワークサービス251との通信セッションを確立するように設計される。
図2A~2Bに示される実施形態のどちらにおいても、セキュアトランザクションサーバ232~233は、次にセキュアトランザクションサービス201に対してセキュアに送信され、セキュアストレージ220内の認証デバイスに格納される、鍵を生成してもよい。それに加えて、セキュアトランザクションサーバ232~233は、サーバ側のセキュアトランザクションデータベース240を管理する。
図2Cは、認証デバイスを登録するための一連のトランザクションを示している。上述したように、登録の間、鍵は認証デバイスとセキュアトランザクションサーバ232~233のうち1つとの間で共有される。鍵は、クライアント200のセキュアストレージ220、及びセキュアトランザクションサーバ232~233によって使用されるセキュアトランザクションデータベース220内に格納される。一実施形態では、鍵は、セキュアトランザクションサーバ232~233のうち1つによって生成される対称鍵である。しかしながら、後述する別の実施形態では、非対称鍵が使用されてもよい。この実施形態では、公開鍵は、セキュアトランザクションサーバ232~233によって格納されてもよく、第2の関連する秘密鍵は、クライアントのセキュアストレージ220に格納されてもよい。更に、別の実施形態では、鍵は、(例えば、セキュアトランザクションサーバ232~233よりもむしろ認証デバイス又は認証デバイスインターフェースによって)クライアント200上で生成されてもよい。本発明の基本原理は、任意の特定の種類の鍵又は鍵の生成方法に限定されるものではない。
動的対称鍵プロビジョニングプロトコル(DSKPP)などのセキュア鍵プロビジョニングプロトコルは、セキュア通信チャネルを通じてクライアントと鍵を共有するのに使用されてもよい(例えば、コメント要請(RFC)6063を参照)。しかしながら、本発明の基本原理は、いかなる特定の鍵プロビジョニングプロトコルにも限定されるものではない。
図2Cに示される具体的な詳細を参照すると、ユーザ登録又はユーザ検証が完了すると、サーバ230は、デバイス登録の間にクライアントによって提示されなければならないランダム生成チャレンジ(例えば、暗号化ナンス)を生成する。ランダムチャレンジは、限られた期間について有効であり得る。セキュアトランザクションプラグインは、ランダムチャレンジを検出し、それをセキュアトランザクションサービス201に転送する。それに応答して、セキュアトランザクションサービスは、サーバ230とのアウトオブバンドセッション(例えば、アウトオブバンドトランザクション)を開始し、鍵プロビジョニングプロトコルを使用してサーバ230と通信する。サーバ230は、ユーザ名を用いてユーザの位置を確認し、ランダムチャレンジを有効化し、デバイスの認証コードが送られた場合にその認証コード(例えば、AAID)を有効化し、セキュアトランザクションデータベース220にユーザのための新たなエントリを作成する。また、鍵又は公開/秘密鍵の対を生成し、鍵をデータベース220に書き込み、鍵プロビジョニングプロトコルを使用して鍵をセキュアトランザクションサービス201に返送してもよい。完了すると、認証デバイス及びサーバ230は、対称鍵が使用された場合には同じ鍵を共有し、非対称鍵が使用された場合には異なる鍵を共有する。
図3Aは、ブラウザベースの実装形態のためのセキュアトランザクションの確認を示している。ブラウザベースの実装形態が示されているが、同じ基本原理が、スタンドアロンアプリケーション又はモバイルデバイスアプリケーションを使用して実現されてもよい。
セキュアトランザクション確認は、特定の種類のトランザクション(例えば、金融トランザクション)に対するより強力なセキュリティを提供するように設計される。図示される実施形態では、ユーザは、トランザクションを委任する前に各トランザクションを確認する。図示される技術を使用して、ユーザは、自身が完遂したいものを正確に確認し、グラフィカルユーザインターフェース(GUI)のウィンドウ301に表示されているものを自身が見ることを正確に完遂する。換言すれば、この実施形態は、ユーザが確認しなかったトランザクションを完遂するため、トランザクションテキストが「中間者」(MITM)又は「マンインザブラウザ」(MITB)によって修正されることがないことを保証する。
1つの実施形態では、セキュアトランザクションプラグイン205は、ブラウザコンテキスト内にウィンドウ301を表示して、トランザクションの詳細を示す。セキュアトランザクションサーバ201は、ウィンドウに示されるテキストが、誰かによって(例えば、表示されたテキストの上にハッシュ/署名を生成することによって)改竄されていないことを周期的に(例えば、ランダムな間隔で)検証する。異なる実施形態では、認証デバイスは、トラステッドユーザインターフェース(例えば、GlobalPlatformのTrustedUIに適合するAPIを提供する)を有する。
以下の例は、この実施形態の動作を強調する助けとなる。ユーザは、マーチャントサイトから購入する品目を選び、「チェックアウト」を選択する。マーチャントサイトは、本明細書に記載する発明の実施形態のうち1つ以上を実装するセキュアトランザクションサーバ232~233を有する、サービスプロバイダ(例えば、PayPal)にトランザクションを送る。マーチャントサイトは、ユーザを認証し、トランザクションを完了する。
セキュアトランザクションサーバ232~233は、トランザクション詳細(TD)を受信し、「セキュアトランザクション」要求をHTMLページに入れ、クライアント200に送る。セキュアトランザクション要求は、トランザクション詳細及びランダムチャレンジを含む。セキュアトランザクションプラグイン205は、トランザクション確認メッセージの要求を検出し、全てのデータをセキュアトランザクションサービス201に転送する。ブラウザ又はプラグインを使用しない実施形態では、情報は、セキュアトランザクションサーバからクライアント200上のセキュアトランザクションサービスに直接送られてもよい。
ブラウザベースの実装形態について、セキュアトランザクションプラグイン205は、(例えば、ブラウザコンテキスト内で)トランザクション詳細を有するウィンドウ301をユーザに対して表示し、トランザクションを確認する認証を提供するようにユーザに求める。ブラウザ又はプラグインを使用しない実施形態では、セキュアトランザクションサービス201、アプリケーション254(図2B)、又は認証デバイス210は、ウィンドウ301を表示してもよい。セキュアトランザクションサービス201は、タイマを起動し、ユーザに対して表示されているウィンドウ301の内容を検証する。検証期間はランダムに選ばれてもよい。セキュアトランザクションサービス201は、ユーザが有効なトランザクション詳細をウィンドウ301内で見ていること(例えば、詳細に対するハッシュを生成し、正確な内容のハッシュと比較することによって内容が正確であると検証すること)を保証する。内容が改竄されていることを検出した場合、確認トークン/署名が生成されることを防止する。
ユーザが(例えば、指紋センサ上で指をスワイプすることによって)有効な検証データを提供した後、認証デバイスは、ユーザを検証し、トランザクション詳細及びランダムチャレンジによって暗号化署名(「トークン」と称される場合がある)を生成する(すなわち、署名は、トランザクション詳細及びナンスにわたって計算される)。これにより、トランザクション詳細がサーバとクライアントとの間で修正されていないことを、セキュアトランザクションサーバ232~233が保証するのが可能になる。セキュアトランザクションサービス201は、生成された署名及びユーザ名をセキュアトランザクションプラグイン205に送り、プラグインは、署名をセキュアトランザクションサーバ232~233に転送する。セキュアトランザクションサーバ232~233は、ユーザ名によってユーザを識別し、署名を検証する。検証が成功すると、確認メッセージがクライアントに送られ、トランザクションが処理される。
本発明の一実施形態は、セキュアトランザクションサーバが、サーバによって許容される認証能力を示すサーバポリシーをクライアントに送信するクエリポリシーを実装する。次に、クライアントは、サーバポリシーを分析して、サーバポリシーがサポートし、かつ/又はユーザが使用したいという要望を示している、認証能力のサブセットを識別する。次に、クライアントは、提供されたポリシーに一致する認証トークンのサブセットを使用してユーザを登録及び/又は認証する。したがって、クライアントは、認証能力に関する網羅的な情報(例えば、その認証デバイスの全て)、又はクライアントを固有に識別するのに使用されるかもしれない他の情報を送信することを求められないので、クライアントのプライバシーに対する影響は少ない。
限定ではなく一例として、クライアントは、例を挙げると、指紋センサ、音声認識能力、顔認識能力、眼/光学的認識能力、PIN検証など、多くのユーザ検証能力を含んでもよい。しかしながら、プライバシー上の理由から、ユーザは、その能力の全てに関する詳細を要求サーバに対して明かすことを望まないことがある。このため、本明細書に記載する技術を使用して、セキュアトランザクションサーバは、例えば、指紋、光学的、又はスマートカード認証をサポートすることを示すサーバポリシーを、クライアントに送信してもよい。次に、クライアントは、サーバポリシーを独自の認証能力に対して比較し、利用可能な認証オプションのうち1つ以上を選んでもよい。
本発明の一実施形態は、クライアントとのセッションを維持するのに、いかなるトランザクション状態もサーバ上で維持する必要がないように、セキュアトランザクションサーバにおいてトランザクション署名を用いる。特に、ウィンドウ301内に表示されるトランザクションテキストなどのトランザクション詳細は、サーバによって署名されたクライアントに送られてもよい。次に、サーバは、クライアントが受信した署名付きトランザクション応答が有効であることを、署名を検証することによって検証してもよい。サーバは、トランザクションの内容を持続的に格納する必要はなく、それにより、多数のクライアントのために相当量の格納スペースが消費され、サーバに対するサービス種類攻撃の拒否の可能性が開かれる。
本発明の一実施形態が、クライアント200とのトランザクションを開始するウェブサイト又は他のネットワークサービス311を示す図3Bに示されている。例えば、ユーザは、ウェブサイト上で購入する品目を選択していてもよく、チェックアウトし支払う準備ができていてもよい。図示される例では、ウェブサイト又はサービス311は、(本明細書に記載するように)署名を生成して検証するための署名処理論理313と、(例えば、上述した認証技術を使用して)クライアント認証314を実行するための認証論理とを含むセキュアトランザクションサーバ312に、トランザクションをハンドオフする。
1つの実施形態では、セキュアトランザクションサーバ312からクライアント200に送られる認証要求は、(上述したような)暗号化ナンスなどのランダムチャレンジと、トランザクション詳細(例えば、トランザクションを完了するために提示される特定のテキスト)と、(セキュアトランザクションサーバによってのみ知られている)秘密鍵を使用して、ランダムチャレンジ及びトランザクション詳細を通じて署名処理論理313によって生成される署名とを含む。
上述の情報がクライアントによって受信されると、ユーザは、トランザクションを完了するのにユーザ検証が求められているという指標を受信してもよい。これに応答して、ユーザは、例えば、指紋スキャナにわたって指をスワイプするか、画像をスナップするか、マイクロフォンに向かって発話するか、又は所与のトランザクションに対して許可された他の任意の種類の認証を行ってもよい。一実施形態では、ユーザが認証デバイス210によって成功裡に検証されると、クライアントは:(1)ランダムチャレンジ及びトランザクションテキスト(両方とも、サーバによってクライアントに以前提供されたもの)、(2)ユーザが成功裡に認証を完了したことを証明する認証データ、並びに(3)署名を、サーバに返送する。
次に、セキュアトランザクションサーバ312上の認証モジュール314は、ユーザが適正に認証されていることを確認してもよく、署名処理論理313は、秘密鍵を使用して、ランダムチャレンジ及びトランザクションテキストを通じて署名を再生成する。署名がクライアントによって送られたものと一致した場合、サーバは、トランザクションのテキストがウェブサイト又はサービス311から最初に受信したときのものと同じであると検証することができる。セキュアトランザクションサーバ312は、セキュアトランザクションデータベース120内にトランザクションのテキスト(又は他のトランザクションデータ)を持続的に格納するのに必要でないため、記憶及び処理リソースは格納される。
オフラインデバイス又は接続性が制限されたデバイスに対してクライアントを認証するためのシステム及び方法
上述したように、本発明の一実施形態は、ユーザデバイス及びデバイスがオフライン(すなわち、依拠当事者のバックエンド認証サーバに接続されていない)又はセミオフライン(すなわち、ユーザデバイスは依拠当事者に接続されていないが、デバイスは接続されている)の状況であっても、ユーザをローカルで認証する(すなわち、ユーザを検証する)ための技術を含む。図4は、認証デバイスに依拠当事者451が以前に登録されているクライアント400が、トランザクションデバイス450とセキュアなチャネルを確立してトランザクションを完了する、1つのかかる構成を示している。限定ではなく一例として、トランザクションデバイスは、ATM、小売場所における売場専用(PoS)トランザクションデバイス、物のインターネット(IoT)デバイス、又はクライアント400とチャネルを確立し、ユーザがトランザクションを実行することを可能にすることができる、他の任意のデバイスであってもよい。チャネルは、限定ではなく一例として、近距離無線通信(near field communication、NFC)及びBluetooth(例えば、Bluetooth Core Specification Version 4.0に記載されているようなBluetooth Low Energy(Bluetooth Low Energy、BTLE))を含む、任意の無線通信プロトコルを使用して実装されてもよい。当然ながら、本発明の基本原理は、いかなる特定の通信標準にも限定されない。
点線の矢印によって示されるように、クライアント400と依拠当事者451との間の接続、及び/又はトランザクションデバイス450と依拠当事者451との間の接続は、散発的であるか又は存在しなくてもよい。支払いの分野における実世界の適用は、かかる「オフライン」使用例に依存している場合が多い。例えば、クライアント400(例えば、スマートフォン)を用いるユーザは、トランザクションの時点で依拠当事者451への接続可能性を有しないことがあるが、トランザクションデバイス450を認証することによってトランザクション(例えば、支払い)を認証したいことがある。しかしながら、本発明のいくつかの実施形態では、クライアント400及び/又はトランザクションデバイス450は、一部の情報を依拠当事者451と交換する(但し、本明細書に記載する認証又はトランザクション確認プロセスの間は必須ではない)。
従来、ユーザ検証は、デバイス(例えば、PoSトランザクションデバイス又はATM)によって捕捉される個人識別番号(PIN)などの秘密を使用して実現されてきた。次に、デバイスは、秘密を検証するために、依拠当事者に対するオンライン接続を作成するか、又はPINを検証するためにユーザの認証部(例えば、EMV銀行カード)を求める。かかる実装形態はいくつかの不利な点を有する。利用可能なときがあるが常に利用可能ではない、オンライン接続を要することがある。また、長期間有効な秘密を信頼できない可能性があるデバイスにユーザが入力する必要があり、そのことによってショルダーサーフィン及び他の攻撃に晒される。それに加えて、本質的に、特定のユーザ検証方法(例えば、この場合はPIN)に縛られる。最後に、PINなどの秘密をユーザが覚えておく必要があり、それがユーザにとって不便なことがある。
本明細書に記載する認証技術は、ユーザが自身のクライアントの認証能力に依存することができるので、ユーザ検証方法及びセキュリティの点で大幅な柔軟性を提供する。特に、一実施形態では、クライアントが依拠当事者に接続されている時間の間、ユーザのクライアント上のモバイルアプリケーションは、依拠当事者によって提供される認証要求をキャッシュに入れる。認証要求は、上述の認証要求と同じ(又は類似の)情報(例えば、認証部と関連付けられたナンス及び公開鍵)、並びに依拠当事者によって生成される認証要求(少なくともその一部)に対する署名、検証鍵、及び潜在的に、認証要求が有効であり続ける期間(又は逆に、認証要求の期限が切れた後の時間)を示すタイミングデータを含む追加情報を含んでもよい。一実施形態では、モバイルアプリケーションは、複数のかかる接続要求(例えば、各トランザクションデバイス又はトランザクションデバイスの種類に対して1つずつ)をキャッシュに入れてもよい。
一実施形態では、キャッシュに入れた認証要求は、次に、クライアント/モバイルアプリケーションが依拠当事者と接続できない状況で、トランザクションデバイスとのトランザクションに使用されてもよい。一実施形態では、モバイルアプリケーションは、serverData及びトランザクションデバイスから受信した追加データを含む、キャッシュに入れた認証要求に基づいて、認証応答の作成を始動させる。認証応答は、次に、トランザクションデバイスに送信され、それが次に、(例えば、トランザクションデバイスが依拠当事者と接続されている時間の間に)依拠当事者からの検証鍵を使用して認証応答を検証する。特に、トランザクションデバイスは、依拠当事者によって提供される鍵を使用して、認証応答に含まれるserverDataに対する署名を検証してもよい。一実施形態では、署名は、秘密の依拠当事者検証鍵を使用して依拠当事者によって生成され、トランザクションデバイスは、対応する公開依拠当事者検証鍵(依拠当事者によってトランザクションデバイスに提供される)を使用して、署名を検証する。
トランザクションデバイスが、認証応答から抽出したserverDataを検証すると、認証要求から抽出した公開鍵(例えば、Uauth.pub)を使用して、(例えば、クライアントが依拠当事者を直接認証しているときの、上述の依拠当事者による検証と同じ又は類似の方法で)クライアント/モバイルアプリケーションによって生成された認証応答を検証してもよい。
後述する代替実施形態では、依拠当事者は、認証要求を(クライアントデバイス上のモバイルアプリケーションを通してではなく)直接トランザクションデバイスに提供する。この実施形態では、トランザクションデバイスは、クライアント上のモバイルアプリケーションからトランザクションを完了する要求を受信すると、依拠当事者からの認証要求を求めてもよい。認証要求を有すると、上述したように(例えば、署名を生成し、それを既存の署名と比較することによって)要求及び認証応答を有効化してもよい。
図5Aは、クライアント400が認証要求をキャッシュに入れる実施形態における、クライアント400、トランザクションデバイス450、及び依拠当事者の間での相互作用を示すトランザクション図である。この実施形態は、トランザクションデバイス450が依拠当事者との既存の接続を有することを要しないので、場合によっては「完全オフライン」実施形態と称される。
501において、クライアントは、依拠当事者からのキャッシュ可能な認証要求を要求する。502において、依拠当事者は、キャッシュ可能な認証要求を生成し、503において、認証要求がクライアントに送られ、504において、クライアントは、認証要求をキャッシュに入れる。一実施形態では、認証要求は、認証に使用される認証部と関連付けられた公開鍵(Uauth.pub)と、公開鍵及びランダムナンスに対して依拠当事者検証鍵(RPVerifyKey)を使用して生成された署名とを含む。非対称鍵が使用される場合、依拠当事者によって署名を生成するのに使用されるRPVerifyKeyは、(潜在的に、ユーザ認証要求を処理するはるか前に)依拠当事者がトランザクションデバイスに提供した、対応する公開RPVerifyKeyを有する秘密鍵である。
一実施形態では、認証要求はまた、認証要求が有効である時間長(例えば、MaxCacheTime)を示すタイミング情報を含む。この実施形態では、キャッシュ可能な認証要求に対する署名は、公開認証鍵、ナンス、及びMaxCacheTimeの組み合わせに対して生成されてもよい(例えば、ServerData=Uauth.pub|MaxCacheTime|serverNonce|Sign(RPVerifyKey,Uauth.pub|MaxCacheTime|serverNonce))。一実施形態では、認証応答は、1つを超える認証鍵(例えば、ユーザを認証することができる各認証部に対して1つずつ)を含み、署名は、(例えば、ナンス及びMaxCacheTimeと共に)これらの鍵全てに対して生成されてもよい。
上述したように、公開RPVerifyKeyを、トランザクションデバイス450、又は認証要求/応答のオフライン検証を実行するように意図された任意のデバイスが知る必要がある。トランザクションデバイスは、依拠当事者において登録された認証鍵に関する知識を何ら有しない(すなわち、ユーザデバイスとトランザクションデバイスとの間に確立された関係が存在しない)ので、この拡張が求められる。結果として、依拠当事者は、鍵が認証応答検証に使用されるセキュアな方法で、トランザクションデバイス(又は他のデバイス)と通信しなければならない。トランザクションデバイスは、MaxCacheTimeを検証して、(キャッシュに入れた認証要求をいつまで使用できるかに関する依拠当事者のポリシーに準拠するために)キャッシュに入れた認証要求がまだ有効であるかどうかを判定する。
505において、クライアントは、トランザクションデバイスに対するセキュアな接続を確立し、トランザクションを開始する。例えば、トランザクションデバイスがPoSトランザクションデバイスである場合、トランザクションは、デビット又はクレジットトランザクションを伴うことがある。トランザクションデバイスがATMである場合、トランザクションは、現金払い戻し又はメンテナンス作業を伴うことがある。本発明の基本原理は、任意の特定の種類の鍵又は鍵の生成方法に限定されるものではない。加えて、505において、クライアントは、キャッシュに入れた認証要求をトランザクションデバイスに送信してもよい。
それに応答して、506において、トランザクションデバイスは、トランザクションを完了するため、デバイス識別情報(例えば、トランザクションデバイス識別コード)、ランダムチャレンジ(ナンス)、及び任意選択的に定義された構文のトランザクションテキストを送信してもよい。ランダムチャレンジ/ナンスは、次に、認証応答に対して暗号的に結合される。このメカニズムによって、ユーザ検証が新しいものであってキャッシュ/再使用されていないことを、デバイスが検証することが可能になる。
上述したもの(例えば、図3A~B及び関連する文章を参照)などのトランザクション確認をサポートするために、トランザクションデバイスは、標準化された人間が読み取り可能なトランザクションの表現を作成することが求められることがある。「標準化」は、本明細書で使用するとき、依拠当事者(例えば、以下の動作511に示されるような最終検証のため)及び/又はトランザクションデバイスが解析することができる形式を意味する。トランザクション確認には、認証部をクライアント400のセキュアなディスプレイ上に表示する必要があるので、人間が読み取り可能である必要がある。かかる符号化の一例はXMLであることができ、その場合、XSLTは可視化のために使用される。
507において、認証応答を生成するため、特定の認証部を使用してクライアントに対して認証を実行する(例えば、指紋センサを指スワイプする、PINコードを入力する、マイクロフォンに向かって発話するなど)ようにユーザに指示する、認証ユーザインターフェースが表示される。ユーザが認証を提供すると、クライアントの認証エンジンは、ユーザの個人情報を検証し(例えば、ユーザから収集した認証データを、認証部のセキュアストレージに格納されたユーザ検証基準データと比較する)、認証デバイスと関連付けられた秘密鍵を使用して、ランダムチャレンジに対して署名(また潜在的に、トランザクションデバイスID及び/又はトランザクションテキスト)を暗号化及び/又は生成する。次に、認証応答は、508でトランザクションデバイスに送信される。
509において、トランザクションデバイスは、公開RPVerifyKeyを使用して、(505で受信した)serverDataに対する署名の検証がまだ行われていなければ、検証を行う。serverDataが検証されると、認証を行うのに使用される認証部と関連付けられた公開鍵(Uauth.pub)が分かる。この鍵を使用して、認証応答を検証する。例えば、公開認証鍵を使用して、ナンス及び他の任意の関連情報(例えば、トランザクションテキスト、トランザクションデバイスIDなど)に対して生成された署名を復号又は検証してもよい。トランザクション確認がトランザクションデバイスによって実行される場合、508において、トランザクションテキストに対して生成され認証応答に含まれた署名を有効化することによって、クライアントに表示されたトランザクションテキストを検証してもよい。暗号的にセキュアなserverData構造を有する代わりに、トランザクションデバイスはまた、依拠当事者に対するオンライン接続が利用可能な場合(セミオフラインの場合)、その接続を使用して、無署名のserverDataを検証することができる。
510において、認証が成功したかしなかったかに応じて、成功又は失敗の指標がクライアントに送られる。成功した場合、トランザクションデバイスは、トランザクション(例えば、購入を完了するための口座の借方記入/貸方記入、現金の自動支払い、会計作業の実行など)を許可する。成功しなかった場合、トランザクションを却下する、かつ/又は追加の認証を要求する。
依拠当事者に対する接続が存在する場合、511において、トランザクションデバイスは、依拠当事者に対する認証応答、及び/又はトランザクションテキスト(依拠当事者がトランザクションテキストの検証の責任を負うエンティティであると仮定)を送信してもよい。トランザクションの記録は依拠当事者において記録されてもよく、かつ/又は依拠当事者はトランザクションテキストを検証し、トランザクション(図示なし)を確認してもよい。
図5Bは、トランザクションデバイスが依拠当事者との接続を有し、そこからの認証要求を受信する実施形態における、クライアント400、トランザクションデバイス450、及び依拠当事者の間での相互作用を示すトランザクション図である。この実施形態は、クライアントは依拠当事者に対する接続を有しないが、トランザクションデバイス450は有するので、場合によっては「セミオフライン」実施形態と称される。
521において、クライアントは、トランザクションを開始して、トランザクションデバイス(例えば、NFC、Bluetoothなど)とのセキュアな接続を確立する。522において、トランザクションデバイスは、応答として依拠当事者に対する認証要求を求める。523において、依拠当事者は認証要求を生成し、524において、認証要求がトランザクションデバイスに送られる。図5Aに示される実施形態のように、認証要求は、認証に使用されるクライアントの認証部と関連付けられた公開鍵(Uauth.pub)と、公開鍵及びランダムナンスに対して依拠当事者認証鍵(RPVerifyKey)を使用して生成される署名とを含んでもよい。非対称鍵が使用される場合、依拠当事者によって署名を生成するのに使用されるRPVerifyKeyは、(潜在的に、ユーザ認証要求を処理するはるか前に)依拠当事者がトランザクションデバイスに提供する、対応する公開RPVerifyKeyを有する秘密鍵である。暗号的にセキュアなserverData構造を有する代わりに、トランザクションデバイスはまた、依拠当事者に対するオンライン接続が利用可能な場合(セミオフラインの場合)、その接続を使用して、無署名のserverDataを検証してもよい。
一実施形態では、serverDataはまた、認証要求が有効である時間長(例えば、MaxCacheTime)を示すタイミング情報を含む。この実施形態では、serverDataに対する署名は、公開認証鍵、ナンス、及びMaxCacheTimeの組み合わせに対して生成されてもよい(例えば、ServerData=Uauth.pub|MaxCacheTime|serverNonce|Sign(RPVerifyKey,Uauth.pub|MaxCacheTime|serverNonce))。一実施形態では、認証応答は、1つ以上の認証鍵(例えば、各認証部に対して1つずつ)を含み、署名は、(例えば、ナンス及びMaxCacheTimeと共に)これらの鍵全てに対して生成されてもよい。
一実施形態では、図5Bのトランザクション図の残りは、実質的に図5Aに示されるように動作する。525において、トランザクションデバイスは、トランザクションを完了するため、識別情報(例えば、トランザクションデバイス識別コード)、ランダムチャレンジ(ナンス)、及び任意選択的に定義された構文のトランザクションテキストを送信してもよい。ランダムチャレンジ/ナンスは、次に、認証応答に対して暗号的に結合される。このメカニズムによって、ユーザ検証が新しいものであってキャッシュ/再使用されていないことを、デバイスが検証することが可能になる。
上述したもの(例えば、図3A~B及び関連する文章を参照)などのトランザクション確認をサポートするために、トランザクションデバイスは、標準化された人間が読み取り可能なトランザクションの表現を作成することが求められることがある。「標準化」は、本明細書で使用するとき、依拠当事者(例えば、以下の動作511に示されるような最終検証のため)及び/又はトランザクションデバイスが解析することができる形式を意味する。トランザクション確認には、認証部をクライアント400のセキュアなディスプレイ上に表示する必要があるので、人間が読み取り可能である必要がある。かかる符号化の一例はXMLであることができ、その場合、XSLTは可視化のために使用される。
526において、認証応答を生成するため、特定の認証部を使用してクライアントに対して認証を実行する(例えば、指紋センサを指スワイプする、PINコードを入力する、マイクロフォンに向かって発話するなど)ようにユーザに指示する、認証ユーザインターフェースが表示される。ユーザが認証を提供すると、クライアントの認証エンジンは、ユーザの個人情報を検証し(例えば、ユーザから収集した認証データを、認証部のセキュアストレージに格納されたユーザ検証基準データと比較する)、認証デバイスと関連付けられた秘密鍵を使用して、ランダムチャレンジに対して署名(また潜在的に、トランザクションデバイスID及び/又はトランザクションテキスト)を暗号化及び/又は生成する。次に、認証応答は、527でトランザクションデバイスに送信される。
528において、トランザクションデバイスは、公開RPVerifyKeyを使用して、(524で受信した)serverDataに対する署名の検証がまだ行われていなければ、検証を行う。serverDataが検証されると、認証を行うのに使用される認証部と関連付けられた公開鍵(Uauth.pub)が分かる。この鍵を使用して、認証応答を検証する。例えば、公開認証鍵を使用して、ナンス及び他の任意の関連情報(例えば、トランザクションテキスト、トランザクションデバイスIDなど)に対して生成された署名を復号又は検証してもよい。トランザクション確認がトランザクションデバイスによって実行される場合、528において、トランザクションテキストに対して生成され認証応答に含まれた署名を有効化することによって、クライアントに表示されたトランザクションテキストを検証してもよい。暗号的にセキュアなserverData構造を有する代わりに、トランザクションデバイスはまた、依拠当事者に対するオンライン接続が利用可能な場合(セミオフラインの場合)、その接続を使用して、無署名のserverDataを検証することができる。
529において、認証が成功したかしなかったかに応じて、成功又は失敗の指標がクライアントに送られる。成功した場合、トランザクションデバイスは、トランザクション(例えば、購入を完了するための口座の借方記入/貸方記入、現金の自動支払い、会計作業の実行など)を許可する。成功しなかった場合、トランザクションを却下する、かつ/又は追加の認証を要求する。
530において、トランザクションデバイスは、依拠当事者に対する認証応答、及び/又はトランザクションテキスト(依拠当事者がトランザクションテキストの検証の責任を負うエンティティであると仮定)を送信してもよい。トランザクションの記録は依拠当事者において記録されてもよく、かつ/又は依拠当事者はトランザクションテキストを検証し、トランザクション(図示なし)を確認してもよい。
図6に示されるように、一実施形態では、モバイルアプリケーション601は、認証クライアント602(図2Bに示されるセキュアトランザクションサービス201及びインターフェース202であってもよい)と組み合わせて、本明細書に記載する動作を実行するため、クライアントで実行される。特に、モバイルアプリケーション601は、トランスポート層セキュリティ(TLS)又は他のセキュア通信プロトコルを使用して、トランザクションデバイス450で実行されるウェブアプリケーション611に対してセキュアチャネルを開いてもよい。トランザクションデバイスのウェブサーバ612も、(例えば、上述したように、認証要求を取得するため、及び/又は依拠当事者451に更新を提供するため)依拠当事者451と通信するセキュアチャネルを開いてもよい。認証クライアント602は、例えば、(詳細に上述したような)キャッシュ可能な認証要求を取得するため、依拠当事者451と直接通信してもよい。
一実施形態では、認証クライアント602は、依拠当事者によって利用可能にされた各アプリケーションと関連付けられた固有のコードである「AppID」を用いて、依拠当事者及び任意の認証済みモバイルアプリケーション601を識別してもよい。依拠当事者が複数のオンラインサービスを提供する幾つかの実施形態において、ユーザは、単一の依拠当事者との間で複数のAppIDを有し得る(依拠当事者によって提供される各サービスに対して1つずつ)。
一実施形態では、AppIDによって識別されるいずれのアプリケーションも、依拠当事者と接続するための許容メカニズム及び/又はアプリケーションタイプを識別する、複数の「ファセット」を有してもよい。例えば、特定の依拠当事者は、ウェブサービスを介した、また異なるプラットフォーム専用のモバイルアプリケーション(例えば、アンドロイドアプリケーション、iOSアプリケーションなど)を介したアクセスを可能にしてもよい。これらはそれぞれ、依拠当事者によって図示されるような認証エンジンに提供されてもよい、異なる「FacetID」を使用して識別されてもよい。
一実施形態では、呼出しモバイルアプリケーション601はそのAppIDを、認証クライアント602によって公表されたAPIに渡す。各プラットフォーム上で、認証クライアント602は、呼出しアプリケーション601を識別し、そのFacetIDを判定する。次に、AppIDを分解し、FacetIDが、依拠当事者451によって提供されるTrustedAppsリストに含まれるかどうかをチェックする。
一実施形態では、上述のキャッシュ可能な認証要求は、図7及び8に示されるようなベアラートークンを使用して実現されてもよい。本明細書に記載する本発明の実施形態では、トークン受領者(トランザクションデバイス450)は、トークン発行者(依拠当事者)に対する別の「オンライン」接続を要することなく、トークン、認証応答、及び認証応答に対するトークンの結合を検証可能である必要がある。
ベアラートークンの2つの分類を区別すべきである。
1. トークン発行とトークン検証との間は存在していなければならない、発行者(例えば、依拠当事者451)に対する異なるチャネルを使用して、受領者(例えば、トランザクションデバイス450)によってのみ検証可能なトークン。このトークンの分類は、本明細書では「無署名トークン」と称される。
2. 暗号的構造により、例えば、潜在的には特定のトークンが発行されるよりも大分前に、トークン発行者から受信したデータを使用して検証することができるデジタル署名を含むことにより、受領者によって検証可能なトークン。このトークンの分類は、本明細書では「署名トークン」と称される。
「署名付きトークン構造」という用語は、本明細書では、Uauth.pub鍵を含む署名付きトークン、及びトークンを含む署名付き構造の両方を指すのに使用される。
認証鍵に対する署名付きトークンの結合
図7に示されるように、一実施形態では、署名付きトークンを認証鍵に結合するために、トークン発行者(例えば、依拠当事者451)は:(a)認証公開鍵(Uauth.pub)702を署名(待ち)トークンの署名待ち部分701に追加し;(b)その署名付きトークンを認証応答の署名待ち部分に含める。これを行うことによって、トークン受領者(例えば、トランザクションデバイス450)は、署名703(例えば、上述の公開RPVerifyKey)を有効化することによって、トークンを検証することができる。検証が成功した場合、上述したように、公開鍵(Uauth.pub)を抽出し、それを使用して認証応答を検証することができる。
認証鍵に対する無署名トークンの結合
図8に示されるように、無署名トークン802を認証鍵に結合するために、一実施形態では、トークン発行者(例えば、依拠当事者451)は、(少なくとも)元のトークン802と認証公開鍵(Uauth.pub)を含む署名待ちデータ801とを網羅する、署名付き構造を作成する。署名付き構造は、秘密署名鍵(例えば、上述のRPVerifyKey対)に関連する公開鍵を使用して、署名803を有効化することによって、検証することができる。この公開署名鍵は、トークン受領者(例えば、トランザクションデバイス450)と共有する必要がある。共有は、署名鍵対を生成した後に、潜在的には第1の署名付き構造がよりも生成される大分前に行うことができる。
本明細書に記載する技術は、「完全オフライン」実装形態(すなわち、トランザクションの時点でトランザクションデバイス450が依拠当事者451に対する接続を有しない)、並びに「セミオフライン」実装形態(すなわち、トランザクションの時点でトランザクションデバイスは依拠当事者451に対する接続を有するが、クライアントは有しない)の両方をサポートする。
完全オフラインの場合であっても、トランザクションデバイス450は依然として、依拠当事者451に対してホストを介して時々接続されることが予想される。例えば、ホストは、トランザクションデバイス450に格納された全ての応答を、依拠当事者に送るために収集してもよく、また、取り消されたUauth鍵(例えば、最後の接続以降は取り消されている公開認証鍵)のリストを更新(必要であれば)してもよい。
いくつかの実施形態は、純粋な(セッション)認証並びにトランザクション確認もサポートする。トランザクション確認の場合であっても、依拠当事者451は、トランザクションデバイス450がトランザクションテキストを認証応答と共に依拠当事者451に提出する場合、トランザクションを検証することができる。
本明細書に記載する技術に対して、いくつかの異なる使用事例/アプリケーションがある。例:
1. 支払い。ユーザは、自身の認証部(例えば、スマートフォン)に支払いサービス提供者(PSP)を登録している。ユーザは、PSPによって認証された売場専用デバイス(PoS)を使用して、あるマーチャントでの支払いを認証したいが、PoSは、(例えば、バスに配置された)PSPに対する信頼できる恒久的なオンライン接続を有しない。この例では、信頼できる恒久的な接続がないにも関わらずトランザクションを可能にするため、上述したように、PoSはトランザクションデバイス450として実装されてもよく、PSPは依拠当事者451として実装されてもよい。
2. 物のインターネット。企業は、(例えば、工場、ビルなどに)いくつかの埋め込みデバイスをインストールしている。かかるデバイスのメンテナンスは、契約当事者が雇用した技術者によって実行される。メンテナンスを実行するため、技術者は、その作業に対する自身の適格性を証明するために、デバイスに対して認証しなければならない。以下の仮定が(現実の構成条件に基づいて)行われる。
a. 技術者は、かかるデバイスそれぞれの登録を実行することはできない(デバイスが多すぎるため)。
b. デバイスそれぞれにおいて適格技術者のリストを細心に保つためには、技術者の人数が多すぎ、かかる技術者のばらつきが大きすぎる。
c. デバイスも技術者のコンピュータも、メンテナンスの時点で信頼できるネットワーク接続を有しない。
上述の技術を使用して、企業は、トラストアンカー(例えば、公開RPVerifyKey)を全てのデバイスに一度に(例えば、インストール時に)注入することができる。各技術者は、次に、契約当事者(例えば、技術者の雇用主であってもよい依拠当事者451を登録する。上述の技術を使用して、技術者は、各デバイスを認証することができる。
上述した本発明の実施形態は、認証能力を有するクライアントが依拠当事者を登録するいずれかのシステムで実現されてもよく、認証動作は、このクライアントと、(a)依拠当事者の代理を果たす、(b)トランザクションの時点でオフラインである(すなわち、クライアントが登録している依拠当事者の元のサーバに対して信頼できるネットワーク接続を有していない)、デバイスとの間で実行される。かかる例では、クライアントは、キャッシュ可能な認証要求を元のサーバから受信し、それをキャッシュに入れる。要求されると、クライアントは認証応答を計算し、それをデバイスに送る。
別の実施形態では、クライアントは、暗号的にセキュアな方法で、チャネル結合データ(認証要求で受信される)を応答に追加する。これを行うことによって、依拠当事者の元のサーバは、要求が(何らかの中間者ではなく)合法的なクライアントによって受信されたことを検証することができる。
一実施形態では、依拠当事者は、許可されたUauth.pub鍵を取得するために依拠当事者サーバにコンタクトする必要なしに、デバイスが認証又はトランザクション確認応答を検証することを可能にするUauth.pub鍵など、追加の認証済みデータを応答に追加する。別の実施形態では、依拠当事者は、(サービス攻撃の拒否を防止するために)「キャッシュ可能な」認証要求を発行する前に、クライアントのユーザが成功する認証を実行することを要求する。一実施形態では、依拠当事者は、要求がキャッシュ可能であるか否かをクライアントが示すことを要求する。キャッシュ可能である場合、依拠当事者は、応答において追加の認証データを要求してもよい(例えば、上述のMaxCacheTime)。
一実施形態では、トランザクションデバイス450などのデバイスは、依拠当事者に対する直接ネットワーク接続を有さず、別個のコンピュータ(本明細書では、「ホスト」と称されることがある)を使用して、依拠当事者に「同期」される。このホストは、全ての収集された認証応答をデバイスから取得し、それらを依拠当事者に転送する。それに加えて、ホストはまた、取り消されたUauth鍵のリストをデバイスにコピーして、取り消された鍵の1つが認証応答で使用されていないことを保証してもよい。
一実施形態では、トランザクションデバイス450などのデバイスは、ランダム値(例えば、ナンス)をクライアントに送り、クライアントは、このランダム値を、署名前の認証応答に対する拡張として、暗号的に追加する。この署名付きランダム値は、デバイスに対する鮮度の証明として役立つ。
一実施形態では、クライアントの認証部は、署名前の認証応答に対する拡張として、現在時間Taを追加する。デバイス/トランザクションデバイスは、その時間を現在時間Tdと比較し、TaとTdとの差が許容可能である場合(例えば、差が2分未満(abs(Td-Ta)<2分)である場合)にのみ、応答を許容してもよい。
一実施形態では、依拠当事者は、認証済み(すなわち、署名付き)の有効期限をキャッシュ可能な要求に追加する。上述したように、デバイス/トランザクションデバイスは、有効期限前に受信された場合にのみ、応答を有効であるとして許容する。
一実施形態では、依拠当事者は、公開鍵、有効期限、最大トランザクション値(例えば、セキュリティアサーションマークアップランゲージ(SAML)アサーション、OAuthトークン、JSONウェブ署名(JWS)オブジェクトなど)などの(但しそれらに限定されない)、キャッシュ可能な要求に対する追加情報を含む、認証済み(即ち、署名付き)のデータブロック(例えば、上述の「署名付きトークン構造」)を追加する。デバイス/トランザクションデバイスは、署名付きデータブロックを肯定的に検証でき、内容が許容可能である場合にのみ、応答を有効として許容してもよい。
一実施形態では、依拠当事者は、署名トークンのみをキャッシュ可能な認証要求に追加するが、トランザクションデバイスは、トランザクションの時点で依拠当事者に対するオンライン接続を有する。トランザクションデバイスは、トランザクションの時点で依拠当事者に対するオンライン接続を使用して、無署名トークンの信頼性を検証する。
図9は、本発明の一実施形態による、例示の「オフライン」及び「セミオフライン」認証シナリオを示す。この実施形態では、コンピュータデバイス910を有するユーザは、依拠当事者930に対する確立された関係を有し、依拠当事者を認証することができる。しかしながら、いくつかの状況では、ユーザは、依拠当事者930に対する確立された関係を有するが、ユーザのコンピュータデバイス910に対しては必ずしも有しないデバイス970を用いて、トランザクション(例えば、トランザクション確認の認証)を実行することを望む。この実施形態に関して、トランザクションは、接続920及び接続921が存在しないか、関連がある時点(例えば、ユーザのコンピュータデバイス910をデバイス970に対して認証する時点、又はユーザのコンピュータデバイス910とデバイス970との間のトランザクションの時点)で安定しない場合、「完全オフライン」と称される。この実施形態に関して、トランザクションは、ユーザのコンピュータデバイス910と依拠当事者930との間の接続920は安定しないが、デバイス970と依拠当事者930との間の接続921は安定している場合に、「セミオフライン」である。この実施形態では、ユーザのコンピュータデバイス910とデバイス970との間の接続922は、関連がある時点で安定している必要があることに留意されたい。認証部がユーザのコンピュータデバイス910に接続されることもまた、予想される。接続922は、ブルートゥース、ブルートゥースローエナジー(BTLE)、近距離無線通信(NFC)、Wifi、汎欧州デジタル移動電話方式(GSM)、ユニバーサル移動体通信システム(UTMS)、ロングタームエボリューション(LTE)(例えば、4G LTE)、及びTCP/IPを含むがそれらに限定されない、あらゆる種類の通信チャネル/プロトコルを使用して実現することができる。
例示的なデータ処理デバイス
図10は、本発明のいくつかの実施形態において使用することができる例示的なクライアント及びサーバを図示するブロック図である。図10は、コンピュータシステムの様々な構成要素を図示しているが、そのような詳細は本発明に適切でないため、構成要素を相互接続する任意の特定のアーキテクチャ又は方法を表すことを意図するものではないことを理解すべきである。より少ない構成要素又は複数の構成要素を有する他のコンピュータシステムもまた、本発明によって使用可能であることが理解されるであろう。
図10に示されるように、データ処理システムの形態であるコンピュータシステム1000は、処理システム1020に結合されているバス(複数可)1050と、電源1025と、メモリ1030と、不揮発性メモリ1040(例えば、ハードドライブ、フラッシュメモリ、相変化メモリ(PCM)など)とを含む。バス(複数可)1050は、当該技術分野において周知であるように、様々なブリッジ、コントローラ及び/又はアダプタを介して互いに接続され得る。処理システム1020は、メモリ1030及び/又は不揮発性メモリ1040から命令(複数可)を取得することができ、上述したように動作を実行するための命令を実行することができる。バス1050は、上記構成要素を一体に相互接続し、また、任意選択的なドック1060、ディスプレイコントローラ及びディスプレイデバイス1070、入力/出力デバイス1080(例えば、NIC(ネットワークインターフェースカード)、カーソル制御(例えば、マウス、タッチスクリーン、タッチパッドなど)、キーボードなど)及び任意選択的な無線送受信機(複数可)1090(例えば、Bluetooth、WiFi、赤外線など)にそれらの構成要素を相互接続する。
図11は、本発明のいくつかの実施形態において使用され得る例示的なデータ処理システムを図示するブロック図である。例えば、データ処理システム190は、ハンドヘルドコンピュータ、パーソナルデジタルアシスタント(PDA)、携帯電話、ポータブルゲームシステム、ポータブルメディアプレーヤ、タブレット、又は、携帯電話、メディアプレーヤ及び/又はゲームシステムを含むことができるハンドヘルドコンピューティングデバイスとすることができる。別の例として、データ処理システム1100は、ネットワークコンピュータ又は別のデバイス内の埋め込み処理デバイスとすることができる。
本発明の1つの実施形態によれば、データ処理システム1100の例示的なアーキテクチャは、上述した携帯デバイスのために使用することができる。データ処理システム1100は、集積回路上の1つ以上のマイクロプロセッサ及び/又はシステムを含むことができる処理システム1120を含む。処理システム1120は、メモリ1110、(1つ以上のバッテリを含む)電源1125、オーディオ入力/出力1140、ディスプレイコントローラ及びディスプレイデバイス1160、任意選択的な入力/出力1150、入力デバイス(複数可)1170及び無線送受信機(複数可)1130に結合されている。図11には図示されない追加の構成要素も、本発明の特定の実施形態におけるデータ処理システム1100の一部であってもよく、本発明の特定の実施形態では、図11に示されているのよりも少数の構成要素が使用されてもよいことが理解されるであろう。更に、図11には示されていない1つ以上のバスは、当該技術分野において周知であるように様々な構成要素を相互接続するために使用することができることが理解されるであろう。
メモリ1110は、データ処理システム1100による実行のためのデータ及び/又はプログラムを格納することができる。音声入力/出力1140は、例えば、音楽を再生するためのマイクロフォン及び/又はスピーカを含むことができ、並びに/又はスピーカ及びマイクロフォンを介して電話機能を提供することができる。ディスプレイコントローラ及びディスプレイデバイス1160は、グラフィカルユーザインターフェース(GUI)を含むことができる。無線(例えば、RF)送受信機1130(例えば、WiFi送受信機、赤外線送受信機、Bluetooth送受信機、無線携帯電話送受信機など)は、他のデータ処理システムと通信するために使用することができる。1つ以上の入力デバイス1170は、ユーザがシステムに入力を提供することを可能にする。これらの入力デバイスは、キーパッド、キーボード、タッチパネル、マルチタッチパネルなどとすることができる。任意選択的な他の入力/出力1150は、ドック用コネクタとすることができる。
プログラムコードインジェクションを防止するための装置及び方法
コンテンツセキュリティポリシー(CSP)及びサブリソース完全性(SRI)などの既存のウェブ完全性保護方法は、メインのハイパーテキストマークアップ言語(HTML)ページによって参照される外部要素の完全性を保護することができる。しかしながら、それらはクライアントによってサポートされている場合にのみ作用し、メインHTMLページは、ローディング中に中間者(MITM)攻撃を受けることはなかった。公開鍵のピン留め(Public Key Pinning)、証明書の透明性、及び更にトークンバインドなどの既存の保護技術は、そのような攻撃に対する完全な保護を提供しない。
FIDO/ウェブ認証応答を提出する場合、トークンバインドなどの技術が必要であり、これによりサーバは、結果として生じる認証セッションが、認証部に接続されたクライアントによって所有され、MITM攻撃者などのなんらかの第三者が所有していないであろうことを検証することができる。
悪意のあるJavaScriptは、中間者攻撃の結果としてしばしば注入されるが、これは、ブラウザが特定のURLからリソースをフェッチしようとした場合に、代わりに悪意のあるサーバから修正されたリソースをフェッチする羽目になってしまうことである。図12は、MITM1211がクライアント/ブラウザ1210とサーバ1212との間の通信をインターセプトする例を示す。
ブラウザは、ドメインネームサービス(DNS)を使用して、サーバ名をIPアドレスに分解し、トランスポート層セキュリティ(TLS)を使用してサーバを認証し、クライアントとサーバとの間で交換されたトラフィックを暗号化する。サーバは、クライアントから信頼されているTLS認証局(CA)から発行されたTLSサーバ証明書を使用して認証される。残念ながら、TLS CAは、証明書を攻撃者に悪意を持って発行し、時には攻撃者が依拠当事者のTLS証明書私有鍵を取得することができる場合がある。例えば、図12のようにMITM1211は、server.comに対して悪意を持って発行された証明書、又はserver.comから盗まれた証明書と秘密鍵とを使用する可能性がある。
公開鍵のピン留めは、悪意を持って発行されたTLSサーバ証明書から保護するように設計されているが、いくつかの欠点があり、大規模に採用されるまでには至っていない。これらの欠点を解決するために、証明書の透明性が提案されているが、まだ広くサポートされておらず、いくつかの弱点を有する。
公開鍵のピン留め(PKP)と証明書の透明性(CT)とは対照的に、トークンバインドアプローチは、サーバが、クライアントが正しいエンティティに通信しているか否かを学習することを可能にする。PKP及びCTの場合、サーバは、そのアプローチのためのサポートを実装するクライアントを信頼する必要がある。残念ながら、トークンバインドのみだけでは、MITM保護を効果的に提供するのに十分ではない。例えば、典型的なウェブページには、潜在的に複数のソースから(例えば、GoogleのIMA SDK、Google Analyticsなど)のJavaScriptコードが含まれ、トークンバインドデータは、認証応答を受信するときにのみチェックされる。サインインページへのアクセスは、ユーザ認証なしで常に可能である。
FIDO及びウェブ認証は、ウェブ環境(及び他の環境)でユーザを認証するための簡単かつ安全な方法を提供する。ウェブ認証仕様は、中間者(MITM)攻撃者によるセキュリティ/セッショントークンのエクスポートと再生に対するロバストな保護を追加するために、トークンバインディング(RFC8471)のサポートを含む。
図13は、典型的なウェブサイトロードプロセスのシーケンスを示す図である。クライアントは、サーバ1311へのリンクを選択すると、メインHTMLファイルをロードする。その後、メインJavaScriptファイルがロードされる。次いで、クライアントは、認証応答を送信し、サーバは保護された(例えば、認証に成功した場合にのみアクセス可能なデータ)コンテンツを返す。
実際には、典型的なウェブページは、クライアント1310によってロードされる2つ以上の要素から構成される。ウェブ認証アサーションに含まれるトークンバインドデータは1つだけで、認証応答を送信するときに接続に関連するものである。
図14に示すように、これは、メインHTMLファイルをロードするとき、又はメインJSファイルをロードするときに(両方とも未認証クライアントが利用可能である)MITM1412攻撃が、Web認証応答でトークンバインドデータを検証するときにサーバ1311によって検出されないことを意味する。結果として、攻撃者は、悪意のあるJavaScriptコードを注入することができ、及び/又は潜在的な完全性保護ポリシーを改竄することができる。
改竄された外部オブジェクトをロードするリスクが、ウェブアプリケーションセキュリティコミュニティによって識別され、これらのタイプの攻撃に対して、主に2つのアプローチが開発されている。
アプローチの1つに、サブリソースの完全性(SRI)があり、「完全性」属性を使用してHTMLコード内の外部リソースに対する予想されるハッシュ値の仕様を可能にする。メインウェブページが改竄されることなくロードされたという仮定の下で、SRIは、このウェブページが必要とするサブリソースが改竄されてロードされた場合、ブラウザがそれを拒否し、サーバに通知する可能性を持たせている。目下、多くのブラウザがSRIをサポートしている。残念ながら、クライアント1310が、実装されたSRIのサポートについてサーバ1311に通知する安全な方法はなく、また、クライアント1310が、メインHTMLページをロードする際に、受け取ったSRI「完全性」属性についてサーバ1311に通知する方法も存在しない。その理由は、悪意のあるJavaScriptが常に同じ通知呼出しをトリガできるからである。結果として、MITM攻撃者1412は、メインHTMLページをロードするときにSRI「完全性」属性を修正することができる。
別のアプローチは、HTTPヘッダで指定され、依拠当事者がJavascriptコードなどの外部オブジェクトのトラステッドソースのリストを指定することを可能にする、コンテンツセキュリティポリシー(CSP)である。また、そのようなコードのハッシュ値も指定することができる。残念ながら、ポリシー自体に対するMITM攻撃から保護する方法は提供されていない。メインHTMLファイルのローディングがすでにMITM攻撃の対象となっている場合、コンテンツセキュリティポリシーが悪意を持って弱体化される可能性がある。CSPの付加的な弱点も明らかにされている。
CSP、SRI、及び同様のアプローチの一般的に不利な点は、サーバ1311が、(1)クライアント1310が実際にこれらの概念をサポートし、コンテンツを検証したかどうか、(2)フェッチングされたメインウェブページ(MITM1412を介して潜在的にフェッチされた)が正しい完全性保護ポリシーを含んでいたかどうかを学習することができないことである。
クライアントが完全なCSP及びSRIサポートを有するメインHTMLページをロードした場合であっても、ロバストなMITM保護を提供するために、トークンバインドサポートが依然としてウェブ認証で必要とされていることに留意されたい。図15を参照すると、MITM1512がクライアント1310からの認証応答の伝送を標的とする場合、MITM1512はその後、認証されたセッションを所有するであろう。そのような攻撃は、修正されたHTMLコード、修正されたCSP若しくはSRIポリシー、又は修正されたJSコードに依存することにはならない。DNSポイズニング及び盗まれたTLSサーバ証明書の秘密鍵へのアクセス(証明書の透明性サポートがある場合)又はサーバのドメインに対してMITM1412に悪意を持って発行されたTLSサーバ証明書へのアクセス(証明書の透明性サポートがない場合)で十分である。残念ながら、ウェブブラウザにおけるトークンバインドサポートはまれである。その結果、ウェブアプリケーションでAAL3(NIST800-63)のような認証保証レベルに達することは、現状、現実的ではない。
高いセキュリティを必要とするエンティティにとっての更なる課題は、それらが通常、コンピューティング環境を可能な限り制御できなくてはならないことである。これはまた、(破損していない)クライアント1310がセキュリティ対策を実施するかどうかを認識する必要があり、それらは通常、全ての依拠当事者に契約関係を要求することを意味する。許容可能なTLS認証局のリストを定義する各TLS認証局又はブラウザベンダと二国間契約を締結することは、むしろ非現実的であると思われる。
図16を参照すると、これらの制限に対処するために、サーバ1611の1つの実施形態は、クライアント1610で実行される動的にロードされたコードのセキュリティ特性を評価するためのクライアント評価器1650を含む。一実施形態は、上記の制限に対処するために以下の対策を実施する。まず、クライアント評価器1650は、クライアント1610がサポートする完全性保護手段を判定する。加えて、ウェブページ評価器1652は、ウェブページによって課された完全性保護方ポリシー(例えば、CSP又はSRI)を判定し、また、ウェブページが改竄されたかどうかを判定するために、ウェブページを評価する。加えて、ウェブページ評価器は、ウェブページに関連する全ての外部オブジェクトのハッシュ値へのアクセスを提供され、及び/又は判定することができ、これは、CSP及びSRIサポートがない場合に関連するものである。
一実施形態は、認証応答が認証部1630を含むクライアント1610から直接受信されたのか、それともなんらかのMITMを介して間接的に受信されたのかをサーバ1611が検証することを可能にするトークンバインドサポートを実施する。ここで、クライアント1610及びサーバ1611の詳細を、本発明の実施形態に従って提供する。
I. クライアント1610
クライアント1610の認証エンジン1613の一実施形態は、ウェブ認証データ(WAD)ディクショナリ1620(例えば、既存のウェブ認証仕様内のCollectedClientDataディクショナリ)又はサポート付き完全性保護機能1620Aのリスト及び関連付けられたバージョン番号(例えば、CSP、SRI、証明書の透明性、トークンバインドなど)を含むトークンバインド拡張部への拡張を含む。加えて、WADディクショナリ1620の一実施形態は、ウェブページのローディングと関連付けられたリソース記述子1620Bのリストを含み、この場合、各リソース記述子は、以下の要素のうちの1つ以上を含む。
a. 対応するリソースの処理順序に関連するシーケンス番号。例えば、主HTMLページは、シーケンス番号1を有することができ、最初に処理される外部リソースは、シーケンス番号2を有することになる。
b. リソースがロードされたURL(例えば、https://www.rp.com/index.html”、https://panopticum.com/tracker.js”など)。
c. (例えば、CSPポリシーの)HTTPヘッダに含まれる潜在的な完全性ポリシー命令のハッシュ値。
d. リソースに関連付けられた要素のタイプ(例えば、Javascript、HTML、画像、ウェブアセンブリなど)。
e. 最初のバイトから最後のバイトまでを含む、クライアントによって計算された要素/ファイル全体の実際のハッシュ。
f. 要素の予想されるハッシュ(例えば、SRI「完全性」属性を使用して指定されたもの)。
g. コード記述子1620Cのリストは、また各リソース記述子1620Bに対して、潜在的に、このオブジェクト内のJavaScript/WebAssemblyコードフラグメントごとに1つのエントリを含み、それぞれが以下の要素のうちの1つ以上を含むことができる。
1. クライアントが計算した要素の実際のハッシュ(例:<script>タグと</script>タグとの間の実際のコードのハッシュ、又は属性に割り当てられた場合はコード全体の文字列)。
2. タグは各コードフラグメントに関連付けられる。(例えば、scriptタグにコードが含まれる場合は「script」、「body」、「frame」、「img」、「input」などの、このようなタグの属性にはそのコードが含まれる)。
3. タグが指定された場合のタグに関連する「ID」。
4. そのような属性(例えば、「オンロード」属性、「オンクリック」属性など)でコードが指定された場合、関連する属性。
一実施形態では、そのウェブページのコンテキストにロードされる全てのコードは、認証エンジン1613及びサーバ側認証エンジン1650による評価のために含まれる。例えば、「get」/「create」呼び出しの時点で処理された(必ずしも実行されたわけではないが)全てのHTML要素及びコードフラグメントが含まれ得る。時には、ユーザが要素をクリックするときなど、コードが動的にロードされることもある。一実施態様では、そのようなコードフラグメントは、「get」/「create」呼び出しの時点でロードされた場合にのみ含まれる。
場合によっては、既存のJavaScriptコードは、新しいJavaScriptコード要素を動的に追加し、これらの動的に追加された要素もまた、コード記述子1620Cのリスト内のエントリとして含まれる。クライアント側で動的に生成されたコードに対するこれらのコード記述子は、空のURLを有する専用リソース記述子に(そのリソースが動的に生成され、リモートソースから直接ロードされなかったため)関連する。
II. サーバ1611
図16に示すように、サーバ1611上の認証エンジン1650は、完全性保護能力1620A、リソース記述子1620B、及び/又はコード記述子1620Cを含む拡張WADディクショナリ1620の任意の部分を使用してクライアントを認証することができる。完全性保護能力1620Aは、認証エンジン1650のクライアントエンジン評価器構成要素1651によって評価され得、リソース記述子1620B及びコード記述子1620Cは、ウェブページ評価器構成要素1652によって評価され得る。例えば、一実施形態では、ウェブページ評価器1652は、予想されるリソース記述子1652B及び予想されるコード記述子1652Cに関連するデータのセットを維持する。次いで、サーバ1611上の認証エンジン1650は、クライアント1610から受信した認証データ(例えば、リソース記述子1620B及び/又はコード記述子1620Cに基づく、署名、ハッシュ値など)を、予想されるリソース記述子1652B及びコード記述子1652Cに関連付けられたそれ自体のデータと比較することができる。この追加のセキュリティ層に関心がある依拠当事者は、ロードされた(JavaScript)コードの正確さを検証するために異なるアプローチを実装し得る。
サーバ1611上の認証エンジン1650が「厳密な」アプローチを実装する場合、全てのリソース記述子1620B及びコード記述子1620Cの予想されるエントリは判定及び比較され得る。Javascriptコードは、所与のハッシュ値を有する十分に定義された数の外部ファイルに制限され得る。このアプローチは、高いセキュリティ要件を有するエンティティによって、及びストレートフォワード法で仕様を実装するサーバによって実装され得る。
機械学習アプローチは、認証エンジン1650の一実施形態で使用される。例えば、機械学習ベースの認証エンジン1650は、完全性保護測定値1620Aのサポートをチェックし、それらの測定値に関連付けられた完全性保護ポリシー命令の完全性をチェックし、及び/又はコード記述子1620Cのリストにおけるファイル名及び関連するハッシュ値のペアが初めて又は非常にまれに出現する(例えば、これはスピアフィッシング攻撃を示し得る)かをチェックし得る。これらの状況は、現状のアンチウイルススキャナによるウイルスパターンの分析と同様の様式で処理される可能性がある。つまり、トランザクションは「高リスク」としてフラグを立てられ、認証エンジンが追加の保護措置を実施するトリガとなる。
上記の1つの利点は、このアプローチが、そのようなレベルのセキュリティに関心がない依拠当事者を罰したり/傷つけたりしないことである。これらの依拠当事者は、単に追加のデータ要素を無視するであろう。これらの実施形態はまた、他のURLから第三者のJavascriptコードをロードするような現状のウェブ慣行とも互換性がある。これらの第三者は、コード署名を追加したり、又はそれらのコードを変更したりする必要がない。高いセキュリティレベルを必要とする依拠当事者は、上記の実施形態を使用し、このような保護レベルを必要とするアプリケーション/ウェブページに限定して厳密なチェックを実施することができる。
機械学習ベースのアプローチに関心がある依拠当事者は、そのようなエコシステムのパートナーに追加のセキュリティレベルの実装を予想することなく、依然として既存の第三者のJavascriptモジュールを利用することができる。そのようなモジュールの予想されるハッシュ値は、ファイルに直接含まれる必要はない(したがって、動的生成を必要とする)。代わりに、検証は、認証応答を検証するときに、FIDOサーバによって行われ得る。
このアプローチはまた、(潜在的に動的に生成された)HTMLオブジェクトの全体を検証する必要がないため、動的に生成されたHTMLと互換性がある。未修正のJavascriptが実行される場合、結果として得られた文書オブジェクトモデル(DOM)ツリーのセキュリティ関連部分は、Javascriptによって動的に検証することができる。
上記のアプローチはまた、クライアント1610の認証部1613の暗号化署名機能を活用する。これは、(クライアント自体は、サーバに提供するために返された任意の情報を認証するために使用され得る暗号秘密を有しないので)クライアント1610によってどのようなウェブページがロードされレンダリングされたかという証明をサーバ1611に提供する方法である。
このアプローチは、プライバシーにも配慮している。追加のデータ要素は、ユーザの個人情報又は個人識別情報を含まない。ロードされたウェブページの内容に関連するデータのみを含む。ユーザ認証を必要としないそれらのウェブページには追加のデータ要素が表示されず、ユーザ認証を必要とするそれらのウェブページは、ロードされたウェブページの完全性を検証するための追加のデータ要素を使用することができる。
本発明の一実施形態は、サインインURLのセットが与えられたウェブページを定期的に分析し、予想されるコードフラグメントとそのハッシュ値のリストを作成し、提案された完全性保護ポリシー(CSP)を作成するツールを含む。
一実施態様では、既知の正常なJavaScriptURL及びハッシュ値のリポジトリは、最初にリポジトリ内で提供される。インターネット上に現れるコードフラグメント及び値は、「既知の正常な」状態を維持するためにこのリポジトリと同期され得る。一実施形態は、定期的に分析されるウェブページに基づいて、文書オブジェクトモデルのセキュリティ関連部分を検証するJavascriptコードを含む。
一実施形態では、JavaScriptのSecureLoad関数は、ソフトウェア開発キット(SDK)の形態で提供される。このSecureLoad関数は、パラメータとして提供される予想ハッシュ値に対してロードされたオブジェクトを検証する。このような関数は、Javascript関数を使用して外部リソース(例えば、画像、テキスト、JS、...)を動的にロードするためのセキュアアプローチを簡素化する。
本発明のこれらの実施形態はまた、クライアントデバイスが安全であると想定され、認証を直接サポートしない他の領域に拡張され得る。クライアントデバイスはまた、暗号化アサーションを生成できるモジュール/デバイス(FIDO認証部又はTPMなど)にアクセスし、潜在的に感染/修正される可能性がある様々なソースからロードされた任意のコードの実行を可能にすると仮定される。一例は、カスタムコードの実行をサポートするIoTデバイスである。
本発明の一実施形態は、ウェブサーバ又は他の外部エンティティからコンテンツ及びプログラムコードをロードする、ウェブブラウザ又は他のソフトウェアを有するクライアントを含む。クライアント/ブラウザは、暗号計算において1つ以上のリソース記述子1620B及び/又はコード記述子1620Cオブジェクトを含む暗号化アサーション(例えば、FIDO認証部)に署名することができるトラステッドエンティティとインターフェース接続する。例えば、一実施形態は、署名対象オブジェクト内のそのようなリソース記述子(複数可)/コード記述子(複数可)の暗号化ハッシュ値を含む。
加えて、一実施形態は、暗号化アサーションを検証し、暗号化アサーションが予想されるリソース記述子として指定されたそれらのリソース記述子1620B及び/又はコード記述子1620Cのみを含むことを検証する、FIDOサーバなどのサーバ側構成要素を含む。認証エンジンは、悪意のあるリソース記述子及び/又はコード記述子が見つかった可能性を示すリスクスコアを返し得る。
一実施形態は、認証エンジン1650(例えば、FIDOサーバ)などのサーバ側ソフトウェア構成要素が、暗号化アサーションを検証し、暗号化アサーションが、サーバが以前にトラステッドロケーションからすでに複数回見たことがあるリソース記述子(複数可)/コード記述子(複数可)のみを含むことを検証すること(例えば、機械学習を使用して「複数回」とは何か、「トラステッドロケーション」とは何かを判定すること)を含む。ソフトウェア構成要素は、悪意のあるリソース記述子/コード記述子が見つかった可能性を示すリスクスコアを返し得る。
本発明の一実施形態は、MITM攻撃(例えば、サインインに使用されるもの)から保護された内部チャネルを介して関連するウェブページをロードし、どのようなリソース及びコードフラグメントが通常使用されるかを学習するソフトウェアツールを含む。このソフトウェアツールは、サーバ側認証エンジンが使用できるWebサイトについて、予想リソース記述子/予想コード記述子に加えて関連するソースコードを明確にしたデータベースを自動的に供給する。
JavaScript関数は、DOMツリーのセキュリティ関連部分が攻撃者によって修正されていないことを検証する(例えば、「今すぐ購入(Buy Now)」ボタンが依然として存在し、所与のIDを持つ唯一の要素であるかどうか、トランザクションの内容を示す要素がDOMツリーに存在し、ユーザから見えるかどうか、動的に生成されたJavascriptコードが特定のパターンに従っているか、など)ために、クライアントによって実行されるウェブサイトに含まれ得る。上記の技術のいずれも、Javascriptコードを検証するために使用され得る。
一実施形態では、フィードバック関数がサーバ側認証エンジンで実装されており、これは、悪意のあるリソース記述子/コード記述子のリストを維持する中央サーバに対して、ウェブ上で悪意のあるものとして見つかったJavascriptコードのリソース記述子/コード記述子を更新する。
一実施態様では、(例えば、上述のように収集された)悪意のあるリソース記述子/コード記述子のリストを分析して、同様の(すなわち、全く同じではない)コードフラグメント(例えば、レンダリングされた内部変数の一部、内部順序又は構造のわずかな修正など)を識別するのに役立ち得る「パターン」を作成するソフトウェアツールを含む。ソフトウェアツールは、リソース記述子/コード記述子のリストを分析し、それらのリソース記述子/コード記述子に所与のURLから関連するソースコードをロードし、そのようなコードが1つ以上のパターンに一致するかどうかを検証することができる。
一実施形態はまた、画像、テキスト、又はコード(例えば、Javascript、WebAssembly、...など)のような外部リソースを安全にロードすることを可能にするソフトウェアSDKを含む。このSDKは、URL及びそのリソースの予想されるハッシュ値を受信する。代替的に又は加えて、SDKは、ロードされる外部リソースのコード署名を検証するために、URL及びトラストアンカー(例えば、署名証明書、CA証明書のコード、又はルート証明書)を受信する。
上述したように、本発明の実施形態は、様々な工程を含んでもよい。工程は、汎用又は特殊目的のプロセッサに特定の工程を実行させる機械実行可能な命令で具現化され得る。代替的に、これらの工程は、工程を実行するためのハードワイヤードロジックを含む特定のハードウェア構成要素によって、又はプログラミングされたコンピュータ構成要素及びカスタムハードウェア構成要素の任意の組み合わせによって、実行することができる。
本発明の要素はまた、機械実行可能なプログラムコードを記憶する機械可読媒体として提供することができる。機械可読媒体としては、フロッピーディスク、光ディスク、CD-ROM及び光磁気ディスク、ROM、RAM、EPROM、EEPROM、磁気若しくは光カード、又は、電子プログラムコードを記憶するのに適した他の種類の媒体/機械可読媒体を挙げることができるが、これらに限定されるものではない。
上記の説明全体を通じて、説明の目的のために、多数の具体的な詳細が本発明の完全な理解を提供するために記載された。しかしながら、本発明は、これらの具体的な詳細の一部がなくても実施され得ることは、当業者にとって明らかであろう。例えば、本明細書に記載された機能モジュール及び方法は、ソフトウェア、ハードウェア又はそれらの任意の組み合わせとして実装されてもよいことは、当業者にとって容易に明らかであろう。更に、本発明のいくつかの実施形態は、モバイルコンピューティング環境のコンテキストで本明細書において記載されているが、本発明の基本原理は、モバイルコンピューティングの実装形態に限定されるものではない。実質的に任意の種類のクライアント又はピアデータ処理デバイスは、例えば、デスクトップ又はワークステーションコンピュータを含むいくつかの実施形態で使用することができる。したがって、本発明の範囲及び趣旨は、以下の特許請求の範囲の観点から判断されるべきである。
上述したように、本発明の実施形態は、様々な工程を含んでもよい。工程は、汎用又は特殊目的のプロセッサに特定の工程を実行させる機械実行可能な命令で具現化され得る。代替的に、これらの工程は、工程を実行するためのハードワイヤードロジックを含む特定のハードウェア構成要素によって、又はプログラミングされたコンピュータ構成要素及びカスタムハードウェア構成要素の任意の組み合わせによって、実行することができる。

Claims (15)

  1. 装置であって、
    ユーザ入力に応答して、インターネット上のウェブページにアクセスするためにアプリケーションを実行するプロセッサであって、前記ウェブページが、1つ以上のリソース記述子及び/又は前記1つ以上のリソース記述子と関連付けられたコード記述子を有する、プロセッサと、
    トラステッドエンティティに接続することによって、前記1つ以上のリソース記述子及び/又はコード記述子に少なくとも部分的に基づいて、前記ウェブページを検証する認証エンジンと、を備え、
    前記トラステッドエンティティが、前記トラステッドエンティティの第1の鍵を使用して、暗号化アサーションに署名を生成するように構成され、前記暗号化アサーションは、前記ウェブページに基づいて前記認証エンジンにより生成され、前記暗号化アサーションは、前記1つ以上のリソース記述子と関連付けられた1つ以上のリソース記述子オブジェクト及び/又は前記1つ以上のコード記述子に関連付けられた1つ以上のコード記述子オブジェクトを含み、
    前記第1の鍵に対応する前記トラステッドエンティティの第2の鍵を使用し、前記暗号化アサーション内のデータを前記ウェブページの1つ以上の予想リソース記述子及び/又は1つ以上の予想コード記述子と関連付けられたデータと比較し、前記署名を検証することによって、少なくとも部分的に前記ウェブページが検証され、
    前記暗号化アサーションが、判定されたトラステッドロケーションのセットから、判定された以前の回数、以前に観察されたリソース記述子及び/又はコード記述子のみを含むことを検証する機械学習を用いることで前記ウェブページは検証され、前記機械学習が、前記判定された以前の回数と前記トラステッドロケーションのセットとを継続的に更新するために実行されるべきものである、装置。
  2. 前記署名が、前記1つ以上のリソース記述子及び/又はコード記述子の暗号化ハッシュ値を含む、請求項1に記載の装置。
  3. サーバ側認証エンジンは、前記暗号化アサーションが予想リソース記述子及び/又はコード記述子として指定された1つ以上のリソース記述子及び/又はコード記述子のみを含むことの検証を含む、前記暗号化アサーションの検証を行う、請求項1に記載の装置。
  4. 前記サーバ側認証エンジンは、悪意のあるリソース記述子及び/又はコード記述子が識別された可能性を示すリスクスコアを応答として生成する、請求項3に記載の装置。
  5. 前記プロセッサが、前記ウェブページに含まれる関数を含むプログラムコードを実行して、文書オブジェクトモデル(DOM)ツリーの1つ以上のセキュリティ関連部分が修正されていないことを検証し、前記プログラムコードが、前記署名を使用して検証される、請求項に記載の装置。
  6. サーバ装置であって、
    ウェブページを受信したクライアントから認証要求を受信するためのインターフェースと、
    前記認証要求は、第1の鍵を使用している暗号化アサーションを超えて生成された署名と、前記ウェブページの1つ以上のリソース記述子と関連付けられた1以上のリソース記述子オブジェクト及び/又は前記ウェブページの1つ以上のコード記述子と関連付けられた1つ以上のコード記述子オブジェクトを含んでいる前記暗号化アサーションを含み、
    前記ウェブページと関連付けられた1つ以上の予想リソース記述子及び/又は1つ以上の予想コード記述子を蓄積するストレージデバイスと、
    前記第1の鍵に対応する第2の鍵を使用し、前記暗号化アサーションにおけるデータを、前記ウェブページ及び関連付けられた前記1つ以上の予想リソース記述子及び/又は1つ以上の予想コード記述子に関連付けられたデータと比較し、前記署名を検証することで、少なくとも部分的に前記ウェブページを検証する認証エンジンと、を含
    前記暗号化アサーションが、判定されたトラステッドロケーションのセットから、判定された以前の回数、以前に観察されたリソース記述子及び/又はコード記述子のみを含むことを検証する機械学習を用いることで前記ウェブページは検証され、前記機械学習が、前記判定された以前の回数と前記トラステッドロケーションのセットとを継続的に更新するために実行されるべきものである、サーバ装置。
  7. 前記署名が、前記1つ以上のリソース記述子及び/又はコード記述子の暗号化ハッシュ値を含む、請求項に記載のサーバ装置。
  8. 前記認証エンジンは、前記暗号化アサーションが予想リソース記述子及び/又はコード記述子として指定された1つ以上のリソース記述子及び/又はコード記述子のみを含むことの検証を含む、前記暗号化アサーションの検証を行うように構成されている、請求項に記載のサーバ装置。
  9. 前記認証エンジンは、悪意のあるリソース記述子及び/又はコード記述子が識別された可能性を示すリスクスコアを応答として生成する、請求項に記載のサーバ装置。
  10. 前記クライアントが、前記ウェブページに含まれる関数を含むプログラムコードを実行して、文書オブジェクトモデル(DOM)ツリーの1つ以上のセキュリティ関連部分が修正されていないことを検証するプロセッサを備え、前記プログラムコードが、前記署名を使用して検証される、請求項に記載のサーバ装置。
  11. 方法であって、
    ウェブページを受信したクライアントから認証要求を受信することと、
    第1の鍵を使用して暗号化アサーションに上に生成された署名を識別することであって、前記暗号化アサーションは、前記ウェブページに基づいて前記クライアントにより生成され、前記暗号化アサーションは、前記ウェブページの1つ以上のリソース記述子と関連付けられた1つ以上のリソース記述子オブジェクト及び/又は前記ウェブページの前記1つ以上のコード記述子と関連付けられた1つ以上のコード記述子オブジェクトを含むことと、
    少なくとも部分的に前記ウェブページに関連付けられた1つ以上の予想リソース記述子及び/又は1つ以上の予想コード記述子を識別し、蓄積することと、
    前記第1の鍵に対応する第2の鍵を使用し、前記暗号化アサーション内のデータを、前記ウェブページと関連付けられた1つ以上の予想リソース記述子及び/又は1つ以上の予想コード記述子と関連付けられたデータと比較して、前記署名を検証することにより前記ウェブページを検証することと、を含
    前記暗号化アサーションが、判定されたトラステッドロケーションのセットから、判定された以前の回数、以前に観察されたリソース記述子及び/又はコード記述子のみを含むことを検証する機械学習を用いることで前記ウェブページは検証され、前記機械学習が、前記判定された以前の回数と前記トラステッドロケーションのセットとを継続的に更新するために実行されるべきものである、方法。
  12. 前記署名が、前記1つ以上のリソース記述子及び/又はコード記述子の暗号化ハッシュ値を含む、請求項11に記載の方法。
  13. さらに、前記暗号化アサーションが予想リソース記述子及び/又はコード記述子として指定された1つ以上のリソース記述子及び/又はコード記述子のみを含むことの検証することを含む、請求項11に記載の方法。
  14. さらに、悪意のあるリソース記述子及び/又はコード記述子が識別された可能性を示すリスクスコアを生成することを含む、請求項13に記載の方法。
  15. 前記クライアントが、前記ウェブページに含まれる関数を含むプログラムコードを実行して、文書オブジェクトモデル(DOM)ツリーの1つ以上のセキュリティ関連部分が修正されていないことを検証するプロセッサを備え、前記プログラムコードが、前記署名を使用して検証される、請求項11に記載の方法。
JP2022537492A 2019-12-18 2020-12-04 悪意のあるプログラムコード注入に対する保護のためのシステム及び方法 Active JP7702404B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/719,599 2019-12-18
US16/719,599 US12126647B2 (en) 2019-12-18 2019-12-18 System and method for protection against malicious program code injection
PCT/US2020/063485 WO2021126568A1 (en) 2019-12-18 2020-12-04 System and method for protection against malicious program code injection

Publications (2)

Publication Number Publication Date
JP2023507568A JP2023507568A (ja) 2023-02-24
JP7702404B2 true JP7702404B2 (ja) 2025-07-03

Family

ID=76438972

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022537492A Active JP7702404B2 (ja) 2019-12-18 2020-12-04 悪意のあるプログラムコード注入に対する保護のためのシステム及び方法

Country Status (6)

Country Link
US (1) US12126647B2 (ja)
EP (1) EP4078373A4 (ja)
JP (1) JP7702404B2 (ja)
KR (1) KR102905264B1 (ja)
CN (1) CN114830092A (ja)
WO (1) WO2021126568A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7517165B2 (ja) * 2021-01-20 2024-07-17 富士フイルムビジネスイノベーション株式会社 情報処理装置、情報処理システム及び情報処理プログラム
EP4080390A1 (en) * 2021-04-19 2022-10-26 Thales DIS France SA A method for granting a user access through a user access device hosting a client application to a service coming from a set of services of a server application hosted by a distant server
US12244561B2 (en) * 2022-06-14 2025-03-04 Bank Of America Corporation Preventing data loss using enhanced analysis of the URLs and URIs in webpage requests
WO2024010738A1 (en) * 2022-07-05 2024-01-11 Playstudios Us, Llc Validate digital ownerships in immutable databases via physical devices
US12323434B2 (en) * 2022-07-26 2025-06-03 Paypal, Inc. Page integrity assurance
CN115795473A (zh) * 2022-11-10 2023-03-14 浙江网商银行股份有限公司 数据处理方法以及装置
US12477013B2 (en) 2023-07-21 2025-11-18 Ebay Inc. Dynamic source values for content security policies

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003248737A (ja) 2002-02-22 2003-09-05 Ntt Comware Corp メタ情報への信頼性付与システム、及び信頼性付与方法
JP2012524950A (ja) 2009-04-27 2012-10-18 クアルコム,インコーポレイテッド 特権署名を用いてセキュアなウェブブラウジング環境を作成するための方法および装置
JP2017519412A (ja) 2014-05-02 2017-07-13 ノック ノック ラブズ, インコーポレイテッド 認証装置の登録のための強化されたセキュリティ
JP2017528055A (ja) 2014-07-31 2017-09-21 ノック ノック ラブズ, インコーポレイテッド データ分析手法を用いた認証を実行するためのシステム及び方法

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7958363B2 (en) * 2007-10-26 2011-06-07 Yahoo! Inc. Toolbar signature
US8931084B1 (en) * 2008-09-11 2015-01-06 Google Inc. Methods and systems for scripting defense
US8677481B1 (en) 2008-09-30 2014-03-18 Trend Micro Incorporated Verification of web page integrity
US8799666B2 (en) 2009-10-06 2014-08-05 Synaptics Incorporated Secure user authentication using biometric information
US8311973B1 (en) * 2011-09-24 2012-11-13 Zadeh Lotfi A Methods and systems for applications for Z-numbers
US9300644B1 (en) * 2013-02-22 2016-03-29 Symantec Corporation Knowledge-based authentication based on tracked credential usage
US9210155B2 (en) * 2013-03-08 2015-12-08 Stocktree Inc. System and method of extending a host website
WO2014142941A1 (en) * 2013-03-15 2014-09-18 Intel Corporation Technologies for secure storage and use of biometric authentication information
US9621566B2 (en) * 2013-05-31 2017-04-11 Adi Labs Incorporated System and method for detecting phishing webpages
CN104767652B (zh) * 2014-01-08 2020-01-17 杜比实验室特许公司 监视数字传输环境性能的方法
US9432383B2 (en) * 2014-07-25 2016-08-30 Sap Se Web page integrity validation
US9935995B2 (en) * 2014-12-23 2018-04-03 Mcafee, Llc Embedded script security using script signature validation
US10147065B1 (en) * 2015-03-30 2018-12-04 EMC IP Holding Company LLC Dynamic generation of risk score thresholds for optimized configuration of policy rules in an adaptive authentication service
WO2016164036A1 (en) 2015-04-10 2016-10-13 Hewlett Packard Enterprise Development Lp Modifying web page code to include code to protect output
WO2017049045A1 (en) * 2015-09-16 2017-03-23 RiskIQ, Inc. Using hash signatures of dom objects to identify website similarity
US10104113B1 (en) * 2016-05-26 2018-10-16 Area 1 Security, Inc. Using machine learning for classification of benign and malicious webpages
WO2018085732A1 (en) * 2016-11-03 2018-05-11 RiskIQ, Inc. Techniques for detecting malicious behavior using an accomplice model
US11050769B2 (en) * 2018-02-05 2021-06-29 Bank Of America Corporation Controlling dynamic user interface functionality using a machine learning control engine
US11196746B2 (en) * 2018-07-04 2021-12-07 Microsoft Technology Licensing, Llc Whitelisting of trusted accessors to restricted web pages
US11036855B2 (en) * 2018-09-28 2021-06-15 EMC IP Holding Company LLC Detecting frame injection through web page analysis
US11153093B2 (en) * 2019-05-30 2021-10-19 Oracle International Corporation Protection of online applications and webpages using a blockchain
US11321400B2 (en) * 2019-07-16 2022-05-03 Innoplexus Ag System and method for crawling web-content
US11030087B2 (en) * 2019-08-02 2021-06-08 Jpmorgan Chase Bank, N.A. Systems and methods for automated invocation of accessibility validations in accessibility scripts

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003248737A (ja) 2002-02-22 2003-09-05 Ntt Comware Corp メタ情報への信頼性付与システム、及び信頼性付与方法
JP2012524950A (ja) 2009-04-27 2012-10-18 クアルコム,インコーポレイテッド 特権署名を用いてセキュアなウェブブラウジング環境を作成するための方法および装置
JP2017519412A (ja) 2014-05-02 2017-07-13 ノック ノック ラブズ, インコーポレイテッド 認証装置の登録のための強化されたセキュリティ
JP2017528055A (ja) 2014-07-31 2017-09-21 ノック ノック ラブズ, インコーポレイテッド データ分析手法を用いた認証を実行するためのシステム及び方法

Also Published As

Publication number Publication date
KR20220116483A (ko) 2022-08-23
CN114830092A (zh) 2022-07-29
EP4078373A1 (en) 2022-10-26
EP4078373A4 (en) 2024-01-03
US12126647B2 (en) 2024-10-22
WO2021126568A1 (en) 2021-06-24
US20210194919A1 (en) 2021-06-24
KR102905264B1 (ko) 2025-12-26
JP2023507568A (ja) 2023-02-24

Similar Documents

Publication Publication Date Title
JP7702404B2 (ja) 悪意のあるプログラムコード注入に対する保護のためのシステム及び方法
JP7798572B2 (ja) 効率的なチャレンジ応答認証のためのシステム及び方法
JP6648110B2 (ja) クライアントをデバイスに対して認証するシステム及び方法
US9577999B1 (en) Enhanced security for registration of authentication devices
KR20110081104A (ko) 보안 트랜잭션 시스템 및 방법
CN106575281A (zh) 用于实施托管的验证服务的系统和方法
HK40081382A (en) System and method for protection against malicious program code injection
HK40064425A (en) System and method for efficient challenge-response authentication
HK1236268A1 (en) System and method for authenticating a client to a device
HK1236268B (zh) 用於向装置验证客户端的系统和方法
HK1234909A1 (en) Enhanced security for registration of authentication devices
HK1234909B (zh) 用於验证装置注册的增强的安全性
HK1236637A1 (en) System and method for implementing a hosted authentication service
HK1231647A1 (zh) 用於在不同信道上携载强验证事件的系统和方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250221

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250623

R150 Certificate of patent or registration of utility model

Ref document number: 7702404

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150