【文献】
柴田 陽一,メカニズムベースPKI,コンピュータセキュリティシンポジウム2003,日本,社団法人情報処理学会,2003年10月29日,第2003巻,第15号,p.181−186
【文献】
前田 卓志,瞬時に正確な本人認証を実現 バイオメトリクス複合認証システム,月刊バーコード,日本,日本工業出版株式会社,2001年 8月 2日,第14巻、第9号,p.64−66
【文献】
ARI JUELS, et al.,A Fuzzy Vault Scheme,Designs, Codes and Cryptography,Springer Science+Bisiness Media, Inc.,2006年 2月,Volume 38, Issue 2,pp.237-257
(58)【調査した分野】(Int.Cl.,DB名)
前記収集された実際の値との前記特定のデバイスの前記組合せを有効化するステップが、前記デバイスの認証、前記デバイスに若しくは前記デバイスから送信されたデータのためのデータ保護、又はメッセージダイジェストのデジタル署名のうちの1つ又は複数を可能にする請求項1に記載の方法。
前記特定のデバイスのカスタマイズが、前記特定のデバイスを第2のデバイスと差別化し、マニューシャの実際の値の第2の組を有する前記第2のデバイスがマニューシャの前記収集された実際の値を有する前記特定のデバイスとして確認され得ない場合に前記特定のデバイスが前記第2のデバイスと区別される請求項1に記載の方法。
前記収集された実際の値との前記特定のデバイスの前記組合せを有効化するステップが、前記実際の応答が現在のデバイスのイメージについてのいかなる情報も運ぶことなく、使用されるべきマニューシャの知られているか又は計画された更新の追跡を使用して前記特定のデバイスに関するデバイスのイメージを更新することを可能にし、
前記デバイスのイメージの変化のパターンが、前記収集された実際の値との前記特定のデバイスの前記組合せを有効化するステップのために使用のヒューリスティックス、一貫性検査、又は変則性モデリングで使用される請求項1に記載の方法。
前記収集された実際の値との前記特定のデバイスの前記組合せを有効化するステップが、前記暗号鍵が通信チャネルを介してまったく送信されたことなしに、前記暗号鍵を使用して前記応答を復号することを可能にする請求項1に記載の方法。
前記1組のマニューシャの種類が、ハードウェアマニューシャ、ファームウェアマニューシャ、ソフトウェアマニューシャ、ジオロケーションデータ、呼び出しアプリデータ、ユーザの秘密、又はバイオメトリック情報のうちの1つ又は複数を含む請求項1に記載の方法。
マニューシャの種類の前記選択されたサブセットに対応するマニューシャの値の対応が前記特定のデバイスに関して導出されるマニューシャの値と前記1組のマニューシャの種類との間の対応がデバイス毎に変わる請求項1に記載の方法。
前記サブセットが、コンピュータマニューシャの種類と、ユーザの秘密マニューシャの種類及びバイオメトリックマニューシャの種類のうちの少なくとも1つとを含むように選択され、
デジタル署名が、前記暗号鍵が通信チャネルを介してまったく送信されたことなしに前記暗号鍵を用いて行われる請求項1に記載の方法。
マニューシャの組が、ハードウェアマニューシャH、ファームウェアマニューシャF、及びソフトウェアマニューシャSを含む3つ組である請求項24に記載のシステム。
前記サーバが、前記実際の応答から現在のデバイスのイメージについてのいかなる情報も復号せずに、前記実際の応答を用いて前記現在のデバイスのイメージの知識を更新する請求項24に記載のシステム。
前記サーバが、前記複数の予め処理された応答を計算するために、前記デバイスから前記実際の応答を受信することと無関係に前記デバイスからのすべてのあり得る応答を予め処理する請求項24に記載のシステム。
【発明を実施するための形態】
【0016】
本発明の実施形態によれば、動的に変化する鍵素材から構成されるか又は導出された動的に変化する鍵を使用する動的な鍵暗号の方法及びシステムが、(1)コンピュータ上で見出される非常に幅広いハードウェア、ファームウェア、及びソフトウェアマニューシャを使用する電子デバイス自体、例えば、モバイル電話又はパーソナルコンピューティングデバイスと、(2)コンピュータのユーザが知っている秘密と、(3)コンピュータがユーザから収集する可能性があるバイオメトリック情報とに基づいてユーザのコンピュータ又はその他の電子デバイスを一意に特定することによって認証、データの保護、及びデジタル署名などの暗号サービスを提供する。1つ又は複数の実施形態による動的な鍵暗号は、電子的なコンピュータのユーザに関する安全なアクションを可能にし、より詳細には、クライアントの電子的なコンピュータとサービスプロバイダとの間の認証、電子的に記憶されるか又は通信チャネルで送信されるデータの暗号化、及び電子コンピュータでユーザによって実行されるアクションの電子的なダイジェストのためのデジタル署名を提供する。
【0017】
一実施形態による動的な鍵暗号システムは、コンピュータの更新及び自然な使用によって引き起こされるマニューシャに対する変更を予想し、有効なユーザをネットワークサービスから遮断する偽陰性を実質的になくす。動的な鍵暗号は、ユーザとネットワークサービスとの両方を保護し、データの完全性及びプライバシーを保護し、電子的なコンピュータでユーザによって実行されるアクションのダイジェストにデジタル署名する、ネットワークサービスに対してユーザを認証するための安全で信頼できる方法をネットワークサービスのユーザに提供することができる。
【0018】
1つ又は複数の実施形態は、1)簡単なユーザエクスペリエンス−覚える又は打ち込むのが難しいパスワードが不要であり、ユーザデバイス又はコンピュータは、目に見えないようにして認証され、ユーザは、サービスによって必要とされる場合にのみ秘密のPIN又はバイオメトリック(例えば、声紋)などの第2の識別要素をコンピュータに入力するように求められる可能性があり、保護されたサービスは、新しいデバイス又はコンピュータがユーザによって登録されるときに新しいデバイス又はユーザに自動的に再接続される可能性がある、2)従来にないセキュリティ−特に、幅広いハードウェア、ファームウェア、ソフトウェア、秘密、及びバイオメトリックマニューシャを使用して、一部のコンピュータ識別子の値が静的でなく、変化すると予想されるので偽装がより難しい非常に正確なデバイス又はコンピュータ及びユーザの特定を実現する、3)信頼性−ユーザデバイス又はコンピュータに対する変更を予想することが、ユーザを怒らせ、顧客サポートサービスを滞らせる偽陰性がより少ない寛容だが安全な認証を実現する、4)サービスとデータとの分離−モバイルアプリケーション(アプリ)の統合された一部として実現されるので、「基礎構造(foundation)」(例えば、動的な鍵暗号サービス)が、アプリを保護し、ユーザデバイス又はコンピュータに記憶されるサービスデータを暗号化し、アクションをデジタル署名するのに役立ち、サービスがその他のサービスに影響を与えることなく反応することを可能にし、例えば、万一、データが消去される必要がある場合に、当該アプリのデータのみが影響を受け、ユーザの写真又はメッセージなどのユーザのその他の情報は影響を受けないなどの特徴を提供し得る。
【0019】
1つ又は複数の実施形態は、ユーザとサービスとを接続するためのより便利な方法を与えることができる。例えば、加入者が煩雑なパスワードを打ち込む(又はさらに悪いことに、コンピュータに暗号化されていないパスワードを記憶する)代わりに、動的な鍵暗号(動的な鍵クリプト(crypto))サービス及び関連するクライアントソフトウェアが、ユーザデバイス又はコンピュータの一意の特性を計算し、管理することができる。結果として得られる特定されたコンピュータが、顧客の接続体験を簡単にするためにパスワードの代わりに使用され得る。コンピュータ自体が一意に特定されるので、そのことは、顧客(例えば、ユーザ又は加入者)を特定するより安全な方法を表す。コンピュータ上で見出されるマニューシャを使用する暗号鍵を形成することによって、コンピュータにだけ記憶されるか又は記憶されるように意図される静的な鍵ではなく、(コンピュータのマニューシャによって定義される)コンピュータ自体が確認される。単一の値(秘密の鍵)を発見及びコピーすることは、非常に広範囲のコンピュータマニューシャ値を発見及びコピーすることよりも著しく容易である。加えて、コンピュータのメモリに単一の鍵を書き込むことは、単一の静的な記憶された値によって特定されるコンピュータの一意性を実質的に装う。動的な鍵暗号で特定されるコンピュータを装うためには、コンピュータのマニューシャ値を知るためにさまざまなメソッドを傍受する必要がある。特定のコンピュータマニューシャの値を知るためのいくつかの直接的なメソッド及び関連するメソッドが存在する可能性があり、コンピュータを実質的に装うためには、すべてのコンピュータマニューシャ値にアクセスするためのすべてのメソッドが傍受される必要があり、不正な応答が返される可能性がある。さらに、動的な鍵暗号システムは特定のコンピュータマニューシャ値が変化することを予測するので、なりすましに成功したコンピュータも、不正なコンピュータマニューシャ値が予想されるように変化することを保証する必要がある。万一、ユーザのオンラインの活動がさらに高いレベルの信頼性を必要とするならば、プラットフォーム(例えば、動的な鍵暗号サービス及び関連するクライアントソフトウェア)は、有効なユーザがコンピュータを使用している人であることを保証するためにコンピュータにユーザの標準PINを入力するようにユーザに強制することができる。
【0020】
静的な値を使用してセキュリティ及び確実性の主張(assurance claim)を処理するためのいくつかのテクノロジーが存在する。これらは、ワンタイムパスワード及びチャレンジ−応答セキュリティ機構のような機能のためのパスワード自体及び静的な「シード鍵(seed key)」を含む。公開鍵暗号でさえも、静的な鍵のペア(公開及び秘密)に基づく。動的な鍵暗号システムの1つ又は複数の実施形態は、コンピュータ及びユーザマニューシャ(例えば、ユーザ又はコンピューティングデバイスが持っているもの、ユーザが知っていること、及びユーザの特徴の大まかなカテゴリからの情報を含む、コンピュータ及びコンピュータのユーザに決定的に関連する可能性がある任意の情報)の非常に大きな数値表現(例えば、数10万ビット)を使用して、検証可能な方法でさまざまなセキュリティ機能をサポートする暗号鍵(セキュリティの礎)を形成する可能性がある。1つ又は複数の実施形態においては、マニューシャの予測可能な動的な性質に基づく方法が、マニューシャの検証を(まるでそれらのマニューシャが単一の静的な値であるかのように)可能にすることができるが、必ずしもマニューシャのすべてが静的であることが必要とされる訳ではなく、マニューシャのほとんどの値は、経時的に変化し、発展する可能性があり(そのように予測され)、マニューシャ値自体の変化は、結果として得られる動的な暗号鍵の認識されるランダム性を大きくする。変化するマニューシャに基づく動的な鍵暗号の確認は、変化したマニューシャを分離し、評価する複雑な確実性の採点(confidence scoring)を使用し、そのような変化の予測精度に対する確実性の重み付け(confidence weighting)を使用する。変化するマニューシャは、動的な鍵暗号のための動的な鍵素材として使用されるとき、マニューシャ値が変化すると予測されるのでマニューシャ値又は結果として得られる鍵のワンタイムコピーが後で失敗する可能性が高いのでセキュリティを向上させることができる暗号システムに対する複雑性を加える。
【0021】
階層的な静的マニューシャ(例えば、ハードウェアマニューシャ、ユーザの秘密、いくつかのユーザバイオメトリクス)、ゆっくり変化するマニューシャ(例えば、ファームウェアマニューシャ、いくつかのユーザバイオメトリクス)、予想通りに変化するマニューシャ(例えば、ソフトウェアマニューシャ)は、マニューシャのサブセットとして処理され得る鍵素材の非常に大きな組(又は鍵空間)を生成する可能性がある。マニューシャのこれらのサブセットは、特定の時間間隔、静的な鍵として機能し、正常で自然な変則性に耐障害性を持ちながら向上されたセキュリティを提供する。マニューシャのカテゴリの例は、さまざまなハードウェア、ファームウェア、ソフトウェア、ユーザの秘密、及びユーザバイオメトリック値を含む。例えば、ハードウェアマニューシャは、コンピューティングデバイス(例えば、スマートフォン若しくはパッド)の型及びモデル、コンピューティングデバイスの国際移動体装置識別(IMEI)番号、又はコンピューティングデバイスの回路チップ要素から読み取ることができる可能性がある回路製造業者のID番号を含み得る。同様に、ファームウェア及びソフトウェアマニューシャの例は、どのファームウェア及びソフトウェアコードがコンピューティングデバイスにインストールされているか、並びにどの特定のバージョン又はリリース日のファームウェア又はソフトウェアがコンピューティングデバイスにインストールされているかなどの特徴を含む可能性がある。その他のマニューシャは、コンピューティングデバイスのGPS(全地球測位システム)能力からのジオロケーションなどの情報を含む可能性がある。一部の実施形態において、マニューシャは、コンピューティングデバイスのユーザが知っている秘密(例えば、PIN番号若しくはパスワード)、又はコンピューティングデバイスがユーザから収集する可能性があるバイオメトリック情報(例えば、指紋、声紋、若しくは網膜スキャン)も含む可能性がある。このようにして、動的な鍵暗号は、3つの識別要素(「持っているもの」、「知っていること」、及び「特徴」)からのマニューシャ値を利用して、認証、データの保護、及びデジタル署名などの動的な鍵暗号の目的が3つの識別要素から同時に恩恵を受けることができるように動的な鍵を形成し得る。
【0022】
動的な鍵暗号の鍵要素は、(ほとんどすべての従来技術の暗号が使用する)単純な乱数の静的な暗号鍵よりもはるかに優れている。動的な鍵暗号の鍵は、マニューシャ値の非常に大きな集合の順列(permutation)であり、マニューシャ値の多くは経時的に変化し、結果は、独立して意味のあるマニューシャ値からなる見かけ上ランダムな数である。
【0023】
変化する可能性がある1組のマニューシャに対する耐障害性を実現するために、マニューシャ、及び任意の単一のサブセットをバックアップするマニューシャの複数のサブセットに対する予想される変更が使用され得る。大量のマニューシャとマニューシャの予想可能な発展経路(evolution path)との両方を含む大量生産された電子デバイス(例えば、モバイルユニット及びコンピュータ)を使用することによって、発展するマニューシャに基づく方法の動的な暗号化システムは、ほとんどすべてのセキュリティ機能の恩恵に関して維持され得る。加えて、マニューシャの範囲が非常に広いので、特定の暗号機能が、マニューシャの異なるサブセットを用いて数度実行され得る。このように、万一、マニューシャの1つのサブセットが変わるとすると、その他のマニューシャのサブセット及びマニューシャに対する予想される変更を使用する暗号の検査が、耐障害性と、偽装されたマニューシャ値の検出とを改善することができる。
【0024】
コンピュータの一意性に関する断定、コンピュータの一意性の確実性、及びサービス指向の指令(例えば、プロビジョニング、ロック−ホールド(lock−hold)、削除、移動、ブラックリスト(blacklist))が、動的な鍵暗号サービスによって定式化され、制御され、指示される。例えば、(さまざまなユーザデバイスにインストールされた)コンピュータの動的な鍵暗号ライブラリが、動的な鍵暗号サービスの指令に応答して(例えば、さまざまなユーザデバイスから)コンピュータマニューシャ値を集め、コンピュータ(さまざまなユーザデバイスのうちの選択された1つ)に作用する。予測の絶えず変化するマニューシャ値に関するヒューリスティックスが、産業界のソースから少しずつ収集されたデータに加えて、(さまざまなユーザデバイスから)動的な鍵暗号ライブラリによって転送されたデータを使用して動的な鍵暗号サービスで実行される。産業界のデータは、あり得るコンピュータの範囲にわたる(オペレーティングシステム(OS)、ファームウェア、及びアプリケーションを含む−無線による更新、並びにネットワークの更新などの)カタログに載る公に利用可能なデータを含む。(より広い探索空間を介してセキュリティを提供する)単一のコンピュータに対して行われる可能性がある変更よりもほとんど際限なく大きいが、産業界のデータは、やはり有限であり、したがって、使用中のコンピュータに関する予測のヒューリスティックスに有用である。
【0025】
さまざまな実施形態が、以下を含む安全で動的な鍵暗号サービスのためのシステム及び方法を提供する可能性がある。
【0026】
1)オンラインサービスプロバイダ(OSP)を動的な鍵暗号サービスに登録して、セキュリティ機能を実施するが、その他のサービスによる成功した攻撃に耐性があり、協力するオンラインサービスプロバイダがユーザをプロファイリングすることを防止する(各OSPのための)カスタムのコンピュータの動的な鍵暗号ライブラリを生成すること。
【0027】
2)マニューシャ値を収集し、動的な鍵暗号システムに登録し、マニューシャをオンラインサービスプロバイダのアカウント識別子に結びつけること。
【0028】
3)コンピュータハードウェア、ファームウェア、及びソフトウェアに対する更新に関する産業界の情報を集めて、登録されたコンピュータ上に現れる可能性があり得る産業界のマニューシャ値のカタログを、それらの産業界のマニューシャ値が更新されるときに生成すること。カタログ化された産業界のマニューシャ値は、インデックス付けされ、あり得るマニューシャと現在のマニューシャとは組み合わされ、将来のマニューシャの可能性を予想するためにインテリジェントに記憶された順列である。
【0029】
4)ハードウェア、ファームウェア、ソフトウェア、ユーザの秘密、及びユーザバイオメトリクスを含むコンピュータによって見出されるか又は収集された非常に広範なマニューシャから取得されたマニューシャのサブセットからのハッシュに基づく特定。認証は、マニューシャをインデックス付けし、予想されるマニューシャからのあり得る応答と比較されるときに、コンピュータと動的な鍵暗号サービスとの間でマニューシャを実際に交換する必要なしにマニューシャの変化を確かめることができるインテリジェントなチャレンジ及び応答として実行され得る。
【0030】
5)使用されるマニューシャ、ユーザのPIN入力、ジオロケーション、及びバイオメトリクスなどのコンピュータ以外の要素を含む使用されるマニューシャに対する、予想され、予測される変更に基づいて有効な応答の確実性を採点すること。異なるマニューシャが、より高い確実性のスコア、高められたコンピュータの一意性、複数の識別要素、及び特定のマニューシャの分離をもたらす応答を実現するためにチャレンジに対してインテリジェントに選択される可能性がある。
【0031】
6)暗号化されたメモリ、ローカルの特定、及びアプリケーションの自動消滅を防止するためのハートビートなどの暗号機能でマニューシャを使用することによって、コンピュータ上で実行されるアプリケーション及びデータを保護すること。一部の暗号機能は、万一、暗号機能で使用されるマニューシャが変化する場合にバックアップ機能を可能にするためにマニューシャの2つ以上のサブセットを使用して計算される。意味のあるマニューシャの数が多いことは、コンピュータのユーザと識別子を計算するソフトウェアとの間のより複雑なインタラクションを可能にする。増加した「チャター(chatter)」、マニューシャの意味のある読取り値とおとりの読取り値(decoy read)との混合が、どのマニューシャが意味があるのかを曖昧にし、それによって、マニューシャ値の偽装と、元のコンピュータを装うように意図された呼び出しの傍受とをさらに難しくする。
【0032】
7)3つの識別要素(「持っているもの」、「知っていること」、及び「特徴」、例えば、それぞれ、コンピュータ又はデバイス、ユーザの秘密、ユーザバイオメトリック情報)を含み得るマニューシャ値によって形成された鍵を用いてメッセージダイジェストを暗号化することによって、コンピュータでユーザによって実行されるアクションのダイジェストをデジタル署名すること。
【0033】
8)万一、コンピュータの状態が変化する場合には、広範なオンラインサービスプロバイダに知らせること。これは、セキュリティ及びサービスの連続性が維持されるように広範な登録されたオンラインサービスプロバイダからの応答を単一のイベントがトリガすることを可能にする。
【0034】
9)動的な鍵暗号機能にユーザマニューシャを含め、有効なユーザが特定されたコンピュータを制御していることを保証するために、登録されたコンピュータでサービスPIN、コンピュータPIN、又はバイオメトリックを入力することをユーザに強いること。
【0035】
システム及び方法の一部の実施形態は、1つ又は複数のマニューシャ値のサブセットの計算が、ハードウェア、ファームウェア、ソフトウェア、ユーザの秘密、及びユーザバイオメトリックスを含むさまざまなカテゴリからの、非常に広い、あり得る範囲のマニューシャに基づくことを可能にする。1つの実施形態は、必然的にコンピュータ又はデバイスの使用中に発生する予測の予想される変化をモデル化する。コンピュータ上で見出されるか又はコンピュータによって収集される、より広い、考慮される範囲のマニューシャと、いくつかのマニューシャのモデル化された動的な性質とが、偽装により遭いにくく、より堅牢で安全な認証システムを可能にする。
【0036】
一実施形態は、コンピュータ識別プロバイダサービスを使用して、産業界からコンピュータマニューシャ情報を収集し、このデータを使用して、登録されたコンピュータのマニューシャに対するあり得る変更及び順列を予想する。コンピュータのハードウェア、ファームウェア、及びソフトウェア要素で見出されるマニューシャの変化を予想することによって、実施形態は、コンピュータの必然的な変化に対して、より高い耐障害性を持つ。このようにして、実施形態は、マニューシャに対する変更を予想し、コンピュータと動的な鍵暗号サービスとの間のチャレンジ及び応答の交換によって、コンピュータと動的な鍵暗号サービスとの間で実際にマニューシャを交換することなしにマニューシャに対する変更を同期することができる。
【0037】
認証、暗号化、及びデジタル署名などのほとんどすべてのセキュリティ機能が静的な鍵及び識別子に基づくので、本システム及び方法の実施形態は、一部の暗号機能のシステム内バックアップ、並びにコンピュータと動的な鍵暗号サービスとの間の動的に変化するマニューシャの安全な送信、同期、及び更新をやはり可能にする。動的な鍵暗号サービス及びコンピュータは、動的に変化するマニューシャが、認証、暗号化、デジタル著作権管理、及びデータの保護を含む従来から静的なセキュリティ機能で使用されるか、又はそのようなセキュリティ機能の代わりに使用されることを可能にする。
【0038】
図1は、サービスユーザ20がコンピュータ18(例えば、モバイル電話、コンピュータシステム、スマートフォン、ラップトップ、タブレット、センサ、支払い端末、及びメータ、又は任意のその他の通信可能な電子的なコンピュータ)を使用してネットワーク16(例えば、インターネット、ローカルエリアネットワーク(有線及び無線)、並びにパーソナルネットワーク(例えば、P2P、Bluetooth(登録商標)、近距離通信(NFC)))を通じて通信することができるシステム100を示す。(「電子デバイス」、「ユーザデバイス」、又は単に「デバイス」とも呼ばれる)コンピュータ18は、動的な鍵暗号ライブラリ56及びサービスプロバイダアプリ44のコンピュータ18上での実行を可能にすることができるオペレーティングシステム(OS)を実行することにより動作し得る。サービスプロバイダアプリ44は、いくつかのさまざまなOSPのうちの1つ又は複数によって提供される可能性があり、サービスユーザ20及びユーザコンピュータ18にサービスプロバイダアプリ44を提供する特定のサービスプロバイダ14に固有の特徴を提供する可能性がある。
図1に示されるように、サービスプロバイダアプリ44は、動的な鍵暗号ライブラリ56とインターフェースをとることができ、サービスプロバイダアプリ44と動的な鍵暗号ライブラリ56との両方は、コンピュータ18及びコンピュータ18のオペレーティングシステムとインターフェースをとることができる。サービスユーザ20は、例えば、サービスプロバイダアプリ44を使用して、コンピュータ18を使用してネットワーク16を介してサービスプロバイダ14と通信することができる。サービスユーザ20は、いくつかの異なる種類のコンピュータ18を所有し得る人である可能性があり、任意の数のサービスプロバイダシステム14のユーザである可能性がある。同様に、コンピュータ18は、2人以上のサービスユーザ20、例えば、スマートフォン又はパッドを共有する家族によって使用される可能性がある。
【0039】
動的な鍵暗号プロバイダ10は、コンピュータ18上で見出されるマニューシャ又はサービスユーザ20からコンピュータ18によって収集されるマニューシャに関連するさまざまなサービス及び機能を提供することができる。動的な鍵暗号プロバイダ10は、計算、データモデリング、順列処理、補間、インターネット検索、及び複雑なデータベース機能を実行するなど、大量のデータを安全に操作し、分析することができるウェブサービスである可能性がある。動的な鍵暗号プロバイダ10は、クラウドに基づく可能性があり、したがって、リソースが制限されることがあるコンピュータ18から膨大な計算の労力をオフロードするために十分な計算速度及び能力を有する可能性がある。動的な鍵暗号プロバイダ10は、一部の実施形態においては、複雑なデータパターンマッチング、モデリング、及び複雑で多数の順列の処理のための膨大なデータが集中する問い合わせエンジンを管理することを含む処理のための安全な処理環境を提供することができる。
図1に示されるように、動的な鍵暗号ライブラリ56は、動的な鍵暗号プロバイダ10と通信することができ、ネットワーク16を通じてサービスプロバイダ14と通信することもできる。動的な鍵暗号プロバイダ10は、ネットワーク16を介してオンラインサービスプロバイダと通信することもでき、サービスユーザ20及びユーザコンピュータ18にサービスプロバイダアプリ44を提供する特定のサービスプロバイダ14と通信することができる。サービスプロバイダ14は、例えば、サービスプロバイダ14が動的な鍵暗号プロバイダ10からサービスを受ける顧客である、動的な鍵暗号プロバイダ10との顧客−ベンダ関係を有する可能性がある。動的な鍵暗号プロバイダ10に接続される任意の数のサービスプロバイダシステム14が、存在する可能性がある。サービスプロバイダ14は、通常、ユーザ名及びパスワードを必要とする産業界の典型的なウェブサイトである可能性がある。サービスプロバイダ14の例は、ソーシャルネットワークウェブサイト、企業のITサービス、並びにオンラインバンキング、健康管理、及び旅行サービスを含むが、これらに限定されない。
【0040】
図2は、有効なサービスユーザ20が
図2に示されたシステム200などのシステムで認証されたコンピュータ18を使用していることを保証するために動的な鍵暗号を提供し、使用するための例示的な例を示す。以下でより詳細に示されるように、システム200は、コンピュータマニューシャ64並びに秘密及びバイオメトリックマニューシャ26がありとあらゆる異なるコンピュータ18及びサービスユーザ20に一意の動的な鍵を形成するために動的な鍵暗号プロバイダ10によって使用され得るという意味で、コンピュータ18及びサービスユーザ20を特定するために有用である可能性があるコンピュータ18及びサービスユーザ20のいくつかのマニューシャ値を収集し、カタログ化することができる。言い換えれば、それぞれの異なるコンピュータ18は、その異なるコンピュータ18及びサービスユーザ20に対応するシステム200の一意のコンピュータマニューシャ64並びに秘密及びバイオメトリックマニューシャ26を使用するための方法を有する可能性があり、それぞれの一意に特定されたコンピュータ18は、唯1つの異なるコンピュータ18に対応し、それぞれの一意に特定されたサービスユーザ20は、唯1つの異なるサービスユーザ20に対応する可能性がある。コンピュータ18の一意の特定は、システム100、例えば、サービスプロバイダ14又は動的な鍵暗号プロバイダ10によって処理される可能性があり、コンピュータ18に記憶されたいかなる意味のある単一の識別子又は識別鍵自体も存在しない。
図2に示されたシステム200は、動的な鍵暗号プロバイダ10によって実行されるチャレンジ、応答、及び確認シーケンスによって特定のコンピュータ18及びサービスユーザ20を特定し、認証する例を示す。それぞれの異なるコンピュータ18及びサービスユーザ20は、例えば、動的な鍵暗号プロバイダ10によってカタログ化される、特定のコンピュータマニューシャ64、特定の秘密及びバイオメトリックマニューシャ26、コンピュータマニューシャ64の組合せ、特定の秘密及びバイオメトリックマニューシャ26の組合せ、又は特定のコンピュータマニューシャ64と、コンピュータ18上で見出されるか、若しくはサービスユーザ20からコンピュータ18によって収集される特定の秘密及びバイオメトリックマニューシャ26の組合せとの両方の組合せによって認識される可能性がある。
【0041】
マニューシャの集合は、サービスユーザ20の匿名性が維持されるように、マニューシャ値がコンピュータ18から動的な鍵暗号プロバイダ10に送信される前に、個人の特定可能な情報を示すマニューシャの実際の値を分かりにくくする、曖昧にすること(fuzzing)及びハッシュすることなどの方法を含む可能性がある。例えば、電話番号が、実際の電話番号が知られないようにハッシュされる可能性がある。別の例においては、サービスユーザ20のジオロケーションの家が、動的な鍵暗号ライブラリ56によって処理される値が、例えば、数フィートではなく数マイル半径を表すようにGPS座標を切り捨てることによって曖昧にされる可能性がある。このように、手を加えられ得る、コンピュータ18がほとんど毎晩存在する厳密な住所をサービスユーザ20の家と判定することは難しい。曖昧なジオロケーションは、動的な鍵暗号プロバイダに対してサービスユーザ20が匿名であることが可能であり、コンピュータ18の位置がサービスユーザ20のプライバシーを侵害することなく追跡され得ないので有益である可能性がある。もしもサービスユーザ20の本当の身元を知っているサービスプロバイダがデバイスのジオロケーションも知るとすれば、サービスユーザ20のプライバシーが侵害される可能性がある。したがって、デバイス及びユーザの知識の分離が存在する可能性があり、その結果、匿名のユーザ20のデバイス(すなわち、コンピュータ18)が追跡される可能性があり、(サービスユーザ20の身元を確かに知っている)サービスプロバイダが、サービスユーザ20のプライバシーを侵害することなくジオロケーションの恩恵を受けるためにジオロケーション情報を必要とするときにのみ動的な鍵暗号プロバイダ10からのジオロケーション情報を要求する可能性がある。
【0042】
図2に示されるように、ステップ2001で、一例において、コンピュータマニューシャ64は、コンピュータ18から収集し、カタログ化するために選択され得る390個の異なるマニューシャ値の組を表す可能性がある。特定の例においては、ハードウェアマニューシャである40のカテゴリ又は種類のマニューシャと、ファームウェアマニューシャである70のカテゴリ又は種類のマニューシャと、ソフトウェアマニューシャである280のカテゴリ又は種類のマニューシャとが存在する。ハードウェアマニューシャは、例えば、デバイスの製造業者、モデル番号、シリアル番号、及び国際移動体装置識別(IMEI)番号などの項目を含む可能性がある。ファームウェアマニューシャは、例えば、ファームウェアのベンダの名前、バージョン番号、リビジョン番号、リビジョンの日付、通信及び電話サービス、位置及びGPSデータ、並びにオペレーティングシステムを含む可能性がある。ソフトウェアマニューシャは、例えば、同様に、アプリケーション名、供給業者の識別情報、ソフトウェアリリース番号、メモリの読取り値、ソフトウェアカタログ化(software cataloguing)、クロック及びその他のカウンタ、並びに日付を含む可能性がある。概して、ハードウェアマニューシャ値は、コンピュータ18の物理的な構成要素を変更することなく変わり得ない。ファームウェアマニューシャは、更新され得るが、通常、ファームウェアマニューシャの更新は、サービスユーザ20以外の者によって制御される。ソフトウェアマニューシャは、サービスユーザ20のさまざまな個々のインスタンス化によって動的に変わり、正常な状況で予測可能な絶え間のない変化を必要とする可能性がある要素(すなわち、頻繁にかけられる連絡先電話番号)を含む。
【0043】
ソフトウェアマニューシャ値はサービスユーザ20によって行われたカスタマイズを反映することが多い可能性があることに留意することが重要である。このように、ソフトウェアマニューシャ値は、その他の点ではハードウェア及びファームウェアが極めて似ているコンピュータ18のデバイスを正確に特定することができる。コンピュータ18が製造されるとき、デバイスは非常に似ており、したがって、シリアル番号が必要とされるが、セキュリティを考慮すると、これらのハードウェアマニューシャ識別子は数が少なく、容易に偽装される可能性がある。概して、ソフトウェアマニューシャ値に影響を与える大きなカスタマイズは、サービスユーザ20によってコンピュータ18が所有されてから数日、さらには数時間以内に行われる。したがって、ソフトウェアマニューシャ値は、デバイスのパーソナライズで著しく多様化し、アドレス指定可能な空間は、サービスユーザ20によるコンピュータ18の使用の間中ずっと拡大し続ける。したがって、コンピュータ18の一意性は、製造後、時間とともに高まり、このことは、エントロピー、又は無秩序になっていく必然的な傾向と呼ばれることが多く、したがって、ソフトウェアマニューシャは、動的な鍵暗号機能のセキュリティに役立つ。マニューシャの値によって表される潜在的な範囲を示すために、例えば、それぞれ長さが平均で4バイトの300個のマニューシャ値が存在するとすれば、マニューシャ値をインターリーブし、混合して動的な暗号鍵を形成することによって、鍵は、2の9600乗として定義される空間を表し得る(2の1024乗の暗号鍵は、産業界で安全と考えられている)。
【0044】
ほぼすべてのデータは、マニューシャのクラスの定義及び追加によってシステム200に導入され得る。例えば、PIN、パスワード、サービス履歴、及びその他のサービスユーザ20の秘密が、マニューシャのクラスであるかのように入力され、処理される可能性がある。例えば、マニューシャインデックスが、マニューシャ値が読まれ、処理され得るメモリ位置を指す可能性がある。PINに関するマニューシャインデックスがデバイスに送信される場合、例えば、メモリ位置を読む代わりに、PIN画面が、コンピュータ18に表示される可能性があり、サービスユーザ20が、PIN(又はその他の秘密の値)を入力する可能性があり、入力された情報が、本明細書でシステム200によって示される方法においてマニューシャ値として処理される可能性がある。同様のプロセスが、バイオメトリック値、例えば、顔の形状、声のパターン、指紋に対して実行され得る。別の例においては、サービスプロバイダアプリ44が、分析される可能性があり、ソフトウェアの構造自体が、呼び出しアプリケーションサービスプロバイダアプリ44のランタイムの完全性を保証するためにチャレンジされ、確認され得るマニューシャ値を提供する。したがって、マニューシャのクラスを追加することによって、任意の情報が、システム200の恩恵(例えば、暗号鍵素材に関する安全な入力、曖昧な確認のマッチング、推測されるマニューシャ値の学習、確実性のランク付け)を得るために処理され得る。
【0045】
ステップ2003は、特定のコンピュータ18に関するマニューシャ70のデータベースの特定の値の例を示す。マニューシャは、動的な鍵暗号ライブラリ56を介して取得され得る。動的な鍵暗号ライブラリのさまざまなインスタンスが、単一のコンピュータ18に存在する可能性があり、サービスプロバイダアプリ44の1つ又は複数のインスタンス及びプロバイダに関連する可能性がある。この例において、第1のハードウェアマニューシャ(H1)は、コンピュータ18のIMEI番号である可能性があり、この例の特定のコンピュータ18に関して、IMEI番号は、「1234」と符号化される可能性がある。コンピュータ18は、特定のコンピュータ18及びコンピュータ18の関連するサービスユーザ20を正確に一意に特定することができる可能性がある40個の異なるハードウェアマニューシャH1〜H40の特定の値、70個の異なるファームウェアマニューシャF1〜F70の特定の値、異なるソフトウェアマニューシャの280個の特定の値S1〜S280、サービスユーザ20の秘密の2つの特定の値?1及び?2、及びサービスユーザ20のバイオメトリックマニューシャの5つの特定の値B1〜B5を有する可能性がある。使用される実際のマニューシャと、H1〜H40、F1〜F70、S1〜S280、?1〜?2、及びB1〜B5のようなそれらのマニューシャのインデックス順序付けとは、
図2に示された特定の例に関する特定のカタログ化方式又はマニューシャDB70のカタログ化を与える。特定の時間に又は何らかの予め定義された時間の枠内でコンピュータ18上で見出され、又サービスユーザ20から収集される特定のハードウェア、ファームウェア、ソフトウェア、秘密、及びバイオメトリック値の組合せは、ステップ2003で示されたように「現在のデバイスのイメージ」と呼ばれる可能性がある。
【0046】
特定のコンピュータ18及び特定の方式(例えば、
図2のH1〜H40、F1〜F70、S1〜S280、?1〜?2、及びB1〜B5)に関して、マニューシャの特定の値のいくつかの可能性が、コンピュータ18で実際に起こり、サービスユーザ20によって知られるか、又はサービスユーザ20のバイオメトリクスを示す可能性がある。例えば、ステップ2005で示されるように、インデックスF1の特定のマニューシャ値は、予想されるマニューシャDB98と呼ばれるF1A、F1B、又は場合によってはそれ以外のいずれかである可能性がある。例えば、すべてのその他のコンピュータマニューシャ値が同じままである、インデックスF1の値F1AからF1Bへの変化は、特定の種類のコンピュータ18に関する(例えば、Android(登録商標)オペレーティングシステムを実行するコンピュータに関する)あり得るコンピュータマニューシャの1つの順列を表す。5つの異なる値がインデックスF1であり得るとすれば、F1のみを変更する5つの順列が、残りのコンピュータマニューシャのそれぞれの異なる組合せに対してあり得る可能性があることが分かる。F1の5つの値すべてがあらゆる組合せに対してあり得るわけではない可能性があるが、概して、順列の数は、すべてのインデックスH1〜H40、F1〜F70、S1〜S280、?1〜?2、及びB1〜B5に関して各インデックスのあり得る値の数を掛け合わせることによってあり得る順列の数の推定が行われ得るように乗法的である。
図2に示された例に関して、各インデックスに関してあり得る値が2つ又は3つだけであったとしても、すべての種類のコンピュータ18に関して、マニューシャの順列又は異なるあり得る組合せの数は、容易に実質的に無限になり得る。したがって、その他の点では同一であるように見える多数のコンピュータ18に対してさえも、マニューシャDB70と予想されるマニューシャDB98の関連する実質的に無限の範囲のマニューシャ値との数百万の異なるあり得る組合せの中で、それぞれの単一のコンピュータ18が、コンピュータ18の一意のコンピュータマニューシャ64並びにコンピュータ18によって収集された秘密及びバイオメトリックマニューシャ26をマッチングすることによって一意に特定され得る。例として、サービスユーザ20が新しく製造されたモバイルデバイス(すなわち、コンピュータ18)を受け取るときに、概して、新品の初期化ルーチンの一部は、コンピュータ18を、例えば、連絡先、電子メール、及びネットワーク接続などのサービスユーザ20の特定の情報でカスタマイズすることである。これらの追加が表すカスタマイズ(すなわち、マニューシャ)は、次々と製造されたコンピュータ18の2つの例を即座に区別することができる。サービスユーザ20がそれらのサービスユーザ20のコンピュータ18を使用するとき、使用は、コンピュータ18から収集される可能性があるマニューシャ(例えば、頻繁にかけられる電話番号)に影響を与え、差別化し続ける。コンピュータ18のインスタンスの集合的な産業界に関連するすべての産業界の更新のデータベースを保有することによって−例えば、ハードウェア、ファームウェア、及びソフトウェアマニューシャに対するすべての産業界の更新を収集し、カタログ化することによって−例えば、動的な鍵暗号プロバイダ10は、現在のマニューシャDB70によって反映されていないか又は知られていない変更にもかかわらずコンピュータ18を方法2000が認識することができる可能性があるように所与のコンピュータ18のコンピュータマニューシャ64に関するすべての可能性がどのようなものか知ることができる可能性がある。実際、方法2000は、現在のデバイスのイメージ(すなわち、マニューシャDB78)に対する変更の知識(すなわち、予想されるマニューシャDB98)を利用することによってデバイス(すなわち、コンピュータ18、コンピュータマニューシャ64、サービスユーザ20、並びに秘密及びバイオメトリックマニューシャ26)の方法2000による認識の精度及び耐障害性を改善することができる。
【0047】
特定のコンピュータ18を特定するためにコンピュータマニューシャ64の組合せを使用するとき、方法2000は、インテリジェントなマニューシャの選択114を用いてマニューシャの全体の組(すなわち、コンピュータマニューシャ64並びに秘密及びバイオメトリックマニューシャ26)からマニューシャの組合せを選択することができる。
図2に示された特定の方法2010の例において、選択されたマニューシャの組合せは、1つのハードウェアマニューシャHx、1つのファームウェアマニューシャFy、及び1つのソフトウェアマニューシャSzである。そのような組合せは、「3つ組」と呼ばれる可能性がある。3つ組Hx−Fy−Szは
図2に示された例のように1つのハードウェア、1つのファームウェア、及び1つのソフトウェアマニューシャを含む可能性があるが、3つ組は、例えば、2つのハードウェアマニューシャ及び1つのソフトウェアマニューシャ、例えば、Hx−Hy−Szを含む可能性もある。また、例えば、4つ以上又は2つ以下のマニューシャ、例えば、Hx−Fy−Sz−Bbなどの「4つ組」が、一度に使用される可能性がある。マニューシャDB70の全体の組からのマニューシャの任意の組合せが、使用され得る。マニューシャ値のより比較的小さなサブセットは、結果が迅速に確認され得るようにマニューシャ値内の変化の範囲を制約する。マニューシャ値のより比較的長いサブセットは、潜在的な変化(及びしたがってセキュリティ)を大きくし、デジタル署名のような頻繁ではないが高いセキュリティの暗号アクションに役立つ可能性がある。
【0048】
x、y、及びzの特定の値はこの例に関しては指定されず、したがって、Hxはステップ2003に示された40個のハードウェアマニューシャH1〜H40のうちの任意の1つ、例えば、IMEI番号である可能性がある。同様に、Fyは、70個のファームウェアマニューシャのうちの任意の1つである可能性があり、Szは、例えば、ステップ2003で示された280個のソフトウェアマニューシャのうちの任意の1つである可能性がある。概して、特定のコンピュータ18のハードウェアマニューシャは、コンピュータ18全体(及び識別情報)自体を変更することなしに変わらず、したがって、どのようなハードウェアマニューシャHxが使用されようと、ステップ2005のH1〜H40の脇の「(変更なし)」によって示されるように、チャレンジされている特定のコンピュータ18に関して変わると予測されない可能性があり、その結果、それぞれの個々のHxに関する可能性の数は1つに限られる。
図2の方法2030に示された特定の例において、ファームウェアマニューシャFyは、例示のために9つの異なる認められる値を有すると仮定され、ソフトウェアマニューシャSzは、例示のために20個の異なる認められる値を有する可能性がある。方法2030は、それぞれのマニューシャ値に関して、認められるマニューシャ値の許容範囲をあり得るマニューシャ値の範囲に対して変えることによって本発明の耐障害性を変えることができる。
【0049】
ハードウェア、ファームウェア、及びソフトウェア値の特定の組合せが矛盾し得る(例えば、特定のソフトウェアの更新が特定のファームウェアの更新を必要とし得る)可能性があるが、
図2の例は、すべての更新が独立しており、したがって、チャレンジされている特定のコンピュータ18に関する認められるデバイスの特徴の値の順列の総数が、ステップ2007で示されるように、3つ組Hx−Fy−Szの各成分Hx、Fy、Szに関する認められる可能性の数の積、すなわち、1*9*20=180であると仮定する。そのとき、マニューシャの選択される組合せに関する認められる順列の数は、同じ3つ組に関するあり得る順列の数よりも少なく、この例に示されるように、すべてのマニューシャに関する順列の総数よりもはるかに少なく、例えば、潜在的に数百万のあり得るマニューシャ値のうちの180個、及びステップ2005に示された潜在的に無限の数の順列のうちの180個である可能性がある。
【0050】
特定のデバイスにチャレンジするために使用されるべきマニューシャの特定の組合せの選択(例えば、
図2の例に関してはHx、Fy、Sz)は、コンピュータ18毎及びサービスプロバイダ14毎に変わり得るだけでなく、例えば、同じコンピュータ18が同じサービスプロバイダ14のためにチャレンジされるたびに変わり得る。インテリジェントなマニューシャの選択114は、特定のコンピュータ18及びサービスユーザ20の特定のチャレンジのために使用されるようにマニューシャの組合せを選択する際にいくつかの考慮すべき事柄を使用する可能性がある。示されたステップ2010として、マニューシャの組合せのインテリジェントな選択(例えば、Hx、Fy、Sz)は、一意性の必要性、予測精度、及びあり得る変化の範囲に基づく可能性がある。例えば、マニューシャの選択は、現在のコンピュータマニューシャ64の知識、現在の秘密及びバイオメトリックマニューシャ26、並びに起こり得るすべてのマニューシャ値の更新の知識(つまり、予想されるマニューシャDB)に基づいて現在のマニューシャDB70のデータベースに対する変更の予測を使用する可能性がある。起こり得るすべてのマニューシャ値の更新の知識は、更新が実際に起こったか否かに関わらず、すべてのコンピュータマニューシャの更新と、特定のサービスユーザ20によるコンピュータ18の使用により引き起こされるヒューリスティックスにより決定される傾向との産業界全体にわたる上述の収集及びカタログ化から得られる可能性がある。また、例えば、一意性及び予測精度が問題である場合、値が知られており、変化すると予測されないマニューシャが選択される可能性がある。あり得る変化の範囲が問題である場合、変化の可能性が小さくされるか又は認められる変化の許容範囲がより狭められたマニューシャが選択され得る。特定のマニューシャを静的なマニューシャと組み合わせることによって、特定のマニューシャを分離するためのマニューシャの組合せが選択される可能性がある。同様に、静的なマニューシャが、静的なマニューシャの構成要素を保護するために、何らかの形で変化する組を形成するために、急速に変化するマニューシャとグループ化される可能性がある。マニューシャの組は、ジオロケーション又はユーザの秘密などの特定の目的に合わせて選択される可能性がある。マニューシャの組は、本人が持っているもの、本人が知っていること、及び本人の特徴のさまざまな識別要素からのマニューシャを組み合わせる可能性がある。マニューシャ値は、特定のマニューシャの確認を周期的に「リフレッシュ(refresh)」するために選択される可能性がある。
【0051】
インテリジェントなマニューシャの選択114プロセスは、ハードウェア、ファームウェア、ソフトウェア、ユーザの秘密、及びユーザのバイオメトリクスの異なるマニューシャのソースからマニューシャを選択することができる。インテリジェントなマニューシャの選択114プロセスは、マニューシャのサンプリングのパターンを推定することが推測しにくいようにさまざまなコンピュータマニューシャ64並びに秘密及びバイオメトリックマニューシャ26を広く推測できないようにサンプリングするためにマニューシャをほぼランダムに選択する。しかしながら、コンピュータマニューシャ64に対する変更を容易に示し、決定する特定のマニューシャのペア及びグループが存在する可能性がある。そのような場合、マニューシャの(「ランダム」ではなく)「選択された」サブセットが、インテリジェントなマニューシャの選択114プロセスによって選択される可能性がある。
【0052】
インテリジェントなマニューシャの選択114プロセスが使用されるべきマニューシャを決定した後、チャレンジ定式化116プロセスが、SP情報及びID32データベースからマニューシャのマニューシャインデックスを探し、これにより、1つのサービスプロバイダ14のマニューシャインデックスが別のサービスプロバイダ14と異なることを可能にする。次いで、インデックスは、やはりサービスプロバイダ14のインスタンス間の区別及びセキュリティを提供するために、(
図3、特に、SP情報及びID32データベースで示されるように)各サービスプロバイダに対して定義されたアルゴリズムを使用して乱数と組み合わされる。そのとき、チャレンジ定式化116プロセスからのチャレンジの結果は、プロセス及びステップ2020であり、チャレンジ送信及び応答待ち118プロセスに与えられる可能性がある。チャレンジは実際のチャレンジ値として働くほぼランダムな情報を含むので、チャレンジの送信は、暗号化されたトンネルを介して行われる必要がなく、必要に応じてチャレンジ送信及び応答待ち118によって安全に送信され得る。
【0053】
ステップ2020に示されるように、チャレンジ定式化116プロセスは、マニューシャの選択された組合せ(例えば、示された例に関してはHx−Fy−Sz)に基づいて暗号鍵を計算することができる。例えば、x、y、及びzのそれぞれが、特定のサービスプロバイダ14のデータベース内の対応するハードウェア(H)、ファームウェア(F)、及びソフトウェア(S)情報に対するテーブルインデックス値(例えば、整数)である可能性がある。特定のサービスプロバイダ14に関する特定のx、y、及びzテーブル順序付け及び属性は、特にサービスプロバイダ14に関して生成された動的な鍵暗号ライブラリ56と、動的な鍵暗号プロバイダ10によって維持されるサービスプロバイダ14に固有の情報のデータベースとの両方で見出される。鍵は、例えば、数学的又は暗号関数「Fn」をマニューシャ値の組合せHx+Fy+Szに適用することによって、ステップ2020で示されたように計算され得る。したがって、暗号鍵は、マニューシャの選択された組合せ、例えば、3つ組Hx−Fy−Szからの情報を暗号的に符号化する可能性がある。同じマニューシャの参照、例えば、x、y、及びzテーブルインデックスは、前に使用されたのと同じ又は異なる関数である可能性がある数学的又は暗号関数「Fn」を適用して、例で使用されるように、インデックスを乱数などのその他の情報と組み合わせるチャレンジ値を形成することによって計算され得る。したがって、チャレンジは、チャレンジの実際の応答を計算する際にどのマニューシャが使用されるべきかを決定するための、チャレンジされているコンピュータ18に関する十分な情報を暗号的に符号化する。しかしながら、コンピュータ18がコンピュータ18の応答を計算する際にマニューシャHx−Fy−Sz及びそれらのマニューシャのコンピュータ18自体の実際の値を使用する可能性があるとしても、マニューシャの実際の値が何であるかについての情報はチャレンジ又は応答に含まれず、応答から直接集めることもできないことに留意することが重要である。
【0054】
ステップ2030において、動的な鍵暗号プロバイダ10が、コンピュータ10が生成することを認められるすべての応答を計算する。認められる応答の計算は、チャレンジのために選択されたマニューシャの定義されたサブセットに対するあり得る変更の許容範囲に基づく可能性がある。これらの計算は、(例えば、コンピュータ18から実際の応答を受信することと独立して−それよりも前であろうと、それと同時であろうと、又はそれよりも後であろうと)前もって行われる可能性があり、コンピュータ18からの実際の応答と比較するために有効な応答DB130に記憶される可能性がある。チャレンジは、動的な鍵暗号プロバイダ10又はサービスプロバイダ14によって、チャレンジされている特定のコンピュータ18に送信される可能性がある。特定のデバイスにチャレンジするために使用されるべきマニューシャの特定の組合せ(例えば、
図2の例に関してはHx、Fy、Sz)が選択されるマニューシャの全体の組に関する産業界の更新を絶えず継続的に収集し、カタログ化しているので、あり得る変化の範囲が処理され得る。したがって、チャレンジがコンピュータ18に送信される前にチャレンジに対するあらゆる許容される応答が分かる(例えば、ステップ2030で計算される)ので、チャレンジに対してコンピュータ18から受信される実際の応答は、コンピュータ18にチャレンジしている動的な鍵暗号プロバイダ10によって計算された予め処理された認められる応答の範囲の間(及びしたがって認められる変化の間)にある可能性がある。ステップ2030で示されたように、ハードウェアに関してあり得る変更がなく(例えば、1つのあり得る値)、ファームウェアに関して9つのあり得る変更又は値があり、ソフトウェアに関して20のあり得る変更があるこの特定の例においては、コンピュータ18がチャレンジに対して返す180個の許容される応答が存在する。180個の許容される応答のそれぞれは、ステップ2040に示されるように、コンピュータ18が応答プロセス112でコンピュータ18の実際の応答を計算するのと同様にして動的な鍵暗号プロバイダ10によって計算され得る。
【0055】
ステップ2040において、チャレンジされている特定のコンピュータ18が、チャレンジを受信し、特定のコンピュータ18がチャレンジに対する特定のコンピュータ18の応答を形成するためにどのマニューシャの値を収集し、使用すべきかを決定するためにチャレンジを展開する。動的な鍵暗号ライブラリ56に記憶された情報及びアルゴリズムを使用してチャレンジを展開した後、応答プロセス112が、コンピュータ18を使用して、選択されたコンピュータマニューシャ64の値を取り出すか、又は選択されたサービス及びバイオメトリックスマニューシャ26の値を収集し、ステップ2020で動的な鍵暗号プロバイダ10によって計算された鍵と同一である可能性がある鍵を構築することができる。チャレンジされている特定のコンピュータ18は、
図2に示されるように、ステップ2020又はステップ2030で使用された数学的又は暗号関数と同じであるべき数学的又は暗号関数「Fn」を鍵+チャレンジに適用することによってチャレンジに対する応答を形成することができる。次いで、チャレンジされているコンピュータ18は、動的な鍵暗号プロバイダ10に直接的に、又はサービスプロバイダ14を介して間接的に応答を返すために応答を伝達することができる。やはり、チャレンジ及び応答の交換は、乱数要素を含み得るので、同じマニューシャが選択されたとしても毎回変化する可能性がある。したがって、応答は、ネットワーク16を介してコンピュータ18と動的な鍵暗号プロバイダ10との間で安全に送信される必要がないが、必要に応じてそのように送信され得る。動的な鍵暗号プロバイダ10は、ステップ2050の処理のためにコンピュータからの応答確認120プロセスにコンピュータ18の応答を送信する。
【0056】
ステップ2050に示されるように、コンピュータからの応答確認120プロセスは、したがって、単純に、コンピュータ18から受信された実際の応答を動的な鍵暗号プロバイダ10によって予め処理される許容される応答と比較して一致するか否かを判定することによって決定され得る。応答の暗号解除又は復号は不要であり、したがって、確認は非常に迅速に行われ得る。実際の応答と予め処理された応答のうちの1つとが一致すると、コンピュータからの応答確認120プロセスは、いずれの応答も実際のマニューシャ値についてのいかなる直接的な又は復号可能な情報も含まないとしても、どのあり得る応答が実際の応答と一致したかを知ることによって、選択された組合せ(例えば、3つ組Hx−Fy−Sz)に関してコンピュータ18からの特定の実際のマニューシャ値が何であるかを知ることができる。一致が見出される場合、チャレンジで使用されたマニューシャのサブセットは、知られているか又は認証されていると考えられ得る。例えば、ステップ2007に見られるように、実際の応答が第172のあり得る応答「Resp172」又は順列と一致する場合、実際のデバイスの値は、「Resp172」自体がチャレンジされている実際のマニューシャ値に関するいかなる直接的な情報も含まないとしても、Hx、Fyに関する第1の可能性(例えば、Fy0)、及びSzに関する第20の可能性(例えば、Sz19)の値と一致するはずである。
【0057】
コンピュータからの応答確認120プロセスは、一致する応答の確実性を高めるためにマニューシャ値の論理的なグループ化を使用する可能性がある。関連するマニューシャのグループ化は、例えば、予想されるマニューシャDB98から集められるか、又はヒューリスティックスにより発見される可能性がある。例えば、1組のマニューシャが産業界の更新によってのみ変更され、その組のすべてのマニューシャが特定の更新によって一斉に一意の値に変わる場合、万一、更新に関連するマニューシャの組の1つの特定のマニューシャ値又は複数の特定のマニューシャ値が単一の更新の組に関してその他のマニューシャの予測される値を共有しないならば、コンピュータからの応答確認120は、更新の論理的なグループ化の中のマニューシャ値に関連する応答が誤っているか又は不正である可能性があると推定し得る。例として、万一、マニューシャ値がコンピュータ18のオペレーティングシステムを介して応答プロセス112によって収集されるときに、不正なエンティティが、偽造された情報を返すようにコンピュータ18を変更したとすると、実際のマニューシャ値が返されない。このようにして、不正なエンティティは、コンピュータ18を別のコンピュータ18のように見せるか、又はあるサービスユーザ20を別のサービスユーザ20のように見せる可能性がある。コンピュータからの応答確認120は、マニューシャの論理的なグループ化を使用し、例えば、同じ値であるべきことを収集するために複数のメソッドを使用する可能性がある(つまり、スマートフォンの電話番号が、いくつかのメソッドを通じて知られる可能性がある)。(1)多くの場合、電話番号などの特定の値を読むための複数のメソッドが存在する。さまざまなメソッドが使用される可能性があり、返されたマニューシャ値が一貫性に関して比較される可能性がある。(2)多くの場合、マニューシャ値のグループは、1つのグループにおける変化が別の所の変化を引き起こすはずであるように関連付けられる(例えば、時間及び時間帯)。コンピュータからの応答確認120プロセスにおいては、互いに関連するマニューシャ値が、変化がマニューシャ値の関連する「グループ」全体で一貫していることが分かることを保証するために検証され得る。
【0058】
厳密な一致が見つからないとしても、1組のあり得るマニューシャからの許容される範囲が拡大される可能性があり、又はその他の関連する可能性があるマニューシャを使用するさらなるチャレンジが、デバイスを有効化するためにデバイスに送信される可能性がある。必要ならば、コンピュータ18のコンピュータマニューシャ64の変化が、
図4に示される登録サブシステム400を使用してコンピュータ18から動的な鍵暗号プロバイダ10に送信され得る。
【0059】
応答が予測された応答でない場合、
図6Bに示される確認失敗プロセスが、確認が失敗したことをサービスプロバイダ14に警告することができる。
【0060】
ステップ2060において、実際の応答と予め処理された応答のうちの1つとが一致すると、コンピュータマニューシャ更新128プロセスが、いずれの応答も実際のマニューシャ値についてのいかなる直接的又は復号可能な情報も含まないとしても、どのあり得る応答が実際の応答と一致したかを知ることによって、選択された組合せ(例えば、3つ組Hx−Fy−Sz)に関してコンピュータ18からの特定の実際のマニューシャ値が何であるかを知ることができる。次いで、応答の計算で使用された有効な応答DB130からの値が、マニューシャDB70データベースに記憶された値を更新するために使用される可能性がある。
【0061】
図3は、一実施形態によるサービスプロバイダアプリケーション(アプリ)配信システム300を示す。
図3は、サービスプロバイダアプリ44が、サービスプロバイダ14に対して一意である動的な鍵暗号ライブラリ56をそのサービスプロバイダアプリ44に含め、コンピュータ18でコンピュータセキュリティ機能を実行するようにコンピュータ18にサービスプロバイダアプリ44を配信するためのシステムを示す。
【0062】
サービスプロバイダアプリ44は、サービスプロバイダアプリ44の最終的な実行可能な形式を形成するために、アプリケーションソースコード42で、ライブラリとしてコンパイルされた動的な鍵暗号ライブラリ56に対するアプリケーションプログラマインターフェース(application programmer interface/API)呼び出しを行うことを除いて、典型的な産業界のアプリケーションと同様である可能性がある。サービスプロバイダアプリ44は、サービスプロバイダアプリ44がコンピュータ18で実行されているときにサービスプロバイダアプリ44の完全性を確認することができるマニューシャ値を生成するための分析のために動的な鍵暗号プロバイダ10によって共有される可能性がある。サービスプロバイダアプリ44は、安全にし、内密にするためにサービスプロバイダ14が必要とするデータを含むか又は記憶することを望む可能性がある。
【0063】
動的な鍵暗号プロバイダ10の中に、システム300を使用するためにサービスプロバイダシステム14を登録するためのサービスプロバイダ登録30プロセスが存在する可能性がある。サービスプロバイダ登録30プロセスは、サービスプロバイダ14に固有のデータを記録し、生成し、そのデータをSP情報及びID32データベースに記憶する。そのようなデータは、PINの利用などのプリファレンス(つまり、システムPINを強制する、サービスPINを使用するなど)と、接続を許可するための最小スコアとを含む可能性がある。SP情報及びID32データベースは、例えば、カスタムの動的な鍵暗号ライブラリ56が生成された顧客及びパートナーのリストである可能性がある。SP情報及びIDデータベース32は、システム300全体を通してサービスプロバイダ14のデータを特定し、暗号化するために使用される鍵素材と、マニューシャをインデックス付けするためのテーブルとを含む可能性がある。そのようなSP情報及びID32データベースは、サービスプロバイダ14を一意に特定し、サービスプロバイダ14によって使用されるシステム300の特徴及び要素が安全であり、システム300を使用し得るその他のサービスプロバイダシステム14と別であることを保証することができる。これは、複数の独立したサービスプロバイダシステム14が結びつき、データを比較し、サービスユーザ20の非公開データ又は傾向と考えられ得ることを推測することができないようにデータ及び識別子のサービスの分離を行う。
【0064】
サービスプロバイダ14に対して一意のSP情報及びID32のデータが、SP情報及びID32データベースのデータ要素を含む動的な鍵暗号ライブラリ56を作成するためにカスタムライブラリ生成34プロセスで使用され得る。サービスプロバイダ14に対して一意のデータに加えて、カスタムライブラリ生成34プロセスは、特定のサービスプロバイダ14にコードのカスタムを生み出す可能性がある。そのようなカスタムコードは、異なる暗号化アルゴリズム(例えば、AES、RSA、楕円曲線)、異なるハッシュアルゴリズム(例えば、セキュアハッシュアルゴリズム(SHA−1)、メッセージダイジェスト(MDM))、一意のシステム暗号化鍵、一意のルックアップテーブルルーチン及び順序付け、マニューシャ値を動的な暗号鍵へと組み合わせるための異なるハッシュメソッド(例えば、インターリーブされたビット変換、逆順序付け、ビット反転、ビットシフト)、並びに特定のサービスプロバイダ14に一意に利用可能なマニューシャの定義及びクラスを含む可能性がある。1つのサービスプロバイダ14のための動的な鍵暗号ライブラリ56の侵害が別のサービスプロバイダ14の動的な鍵暗号ライブラリ56に影響を与え得ないように、カスタマイズのすべては、コンパイルされるときに、サービスプロバイダ14に一意の動的な鍵暗号ライブラリ56を形成する。加えて、まったく同じマニューシャ値がまったく同じコンピュータ18で動的な暗号鍵を形成するために使用されるとしても、1つのサービスプロバイダ14のための結果として得られる動的な暗号鍵は、別のサービスプロバイダ14のための結果として得られる動的な暗号鍵と異なる可能性があり、したがって、サービスプロバイダ14の異なるインスタンスに関する応答は、まったく同じチャレンジが送信されたとしても異なる。
【0065】
動的な鍵暗号ライブラリ56の情報で使用される異なるSP情報及びID32データベースのおかげで、例えば、サービスプロバイダ14の2つのインスタンス(例えば、2つの異なるオンラインサービスプロバイダ)が、コンピュータ18からの集められた情報を比較し、それらのインスタンスの個々のサービスプロバイダアプリ44が同じコンピュータ18に存在していると結論づけることが防止され得る。これは、サービスユーザ20のコンピュータ18に接続されたサービスプロバイダ14の複数のインスタンスに基づくサービスユーザ20のプロファイリングを防ぐ。
【0066】
同様に、動的な鍵暗号ライブラリ56を形成したカスタムライブラリ生成34で導入された一意の計算の可能性のおかげで、特定の動的な鍵暗号ライブラリ56に含まれるプライバシー及びセキュリティに対する成功した攻撃が、別のサービスプロバイダ14に関連する動的な鍵暗号ライブラリ56に対して成功しない可能性がある。
【0067】
動的な鍵暗号ライブラリ56は、とりわけ、
1)コンピュータ18上で見出されたコンピュータマニューシャ64を読み、適切なサービスユーザ20が特定されたコンピュータ18を使用していることを確認することができる秘密及びバイオメトリックマニューシャ26のサービスユーザ20によるコンピュータ18への入力を容易にすることと、
2)ネットワーク16を介してコンピュータマニューシャ情報を伝達することと、
3)コンピュータ18上で見出されたコンピュータマニューシャ64並びにサービスユーザ20によってコンピュータ18に入力された秘密及びバイオメトリックマニューシャ26を使用してコンピュータを一意に特定し、データを保護し、デジタル署名を行うために動的な鍵暗号プロバイダ10のチャレンジに応答することと、
4)動的な鍵暗号プロバイダ10からの、おそらくは、サービスプロバイダアプリ44及びそれ自体(動的な鍵暗号ライブラリ56)を保持、移動、又は削除する要求を処理することと、
5)扱いに注意を要するアクションを傍受することを難しくするさまざまな機構によって動的な鍵暗号ライブラリ56の活動をランダム化するか又は分かりにくくすることとを担う。
【0068】
サービスプロバイダ14に対して一意に生成された動的な鍵暗号ライブラリ56は、いくつかの方法のいずれかを使用してサービスへのカスタムライブラリ送信38プロセスでネットワーク16を介して安全にサービスプロバイダ14に送信され得る。動的な鍵暗号ライブラリ56は、コンピュータ18とインタラクションすることによってサービスプロバイダアプリ44によって且つサービスプロバイダアプリ44の代わりに指示されるセキュリティ機能を実行するように設計されたプログラム論理を含む可能性がある。コンピュータ18の比較的新しい形態(例えば、スマートフォン及びタブレット)では、サービスプロバイダアプリ44の一部として機能する動的な鍵暗号ライブラリ56は、実行されているとき、コンピュータ18のための必要とされるサービスにアクセスするためにアプリケーションをそのときに独立して実行する、より信頼できる方法である。さらに、動的な鍵暗号ライブラリ56及びサービスプロバイダアプリ44のより大きな組み合わされたコードのサイズは、セキュリティを破ろうとしてセキュリティ機能を分離するために、より時間がかかり難しい労力を課する可能性がある。
【0069】
サービスプロバイダ14は、動的な鍵暗号ライブラリ56をサービスプロバイダ14のアプリケーションソースコード42と組み合わせてサービスプロバイダアプリ44を生成することによって、産業界の典型的なアプリケーション構築40プロセスを実行することができる。サービスプロバイダアプリ44は、ネットワーク16を介して直接配布する方法、及びアプリケーション配布46プロセスを介してコンピュータ18にロードするためにネットワーク16を介するか又はサービスユーザ20に直接かのいずれかでサードパーティソフトウェアディストリビュータ22を通じて配布する方法を含む任意の数の方法で配布され得る。サードパーティソフトウェア配布システム22は、サービスプロバイダ14からコンピュータ18にソフトウェアを配布するための任意的な1つのシステム又は複数のシステムである可能性がある。AppleのAppStore(登録商標)は、そのようなソフトウェア配布システムの例である。
【0070】
図4は、一実施形態によるコンピュータ及びユーザマニューシャの登録のためのシステム400を示す。
図4は、コンピュータ18をネットワーク16を介して動的な鍵暗号プロバイダ10及びサービスプロバイダ14に登録するためのシステムを示す。
【0071】
コンピュータ18は、そのコンピュータ18にサービスプロバイダアプリ44を有する可能性がある。サービスプロバイダアプリ44がインストールされるとき、サービスプロバイダアプリ44内の動的な鍵暗号ライブラリ56は、インストールを検査76するためにテストを行うことができる。インストール検査76は、動的な鍵暗号ライブラリ56の一部である可能性があり、ユーザ認証50プロセスによってサービスプロバイダ14により与えられる共有される秘密を使用する可能性がある。この場合、サービスユーザ20は、予め定義された質問に答え、履歴的なサービスの使用を認識し、サービスユーザ20又はその他の本人確認メソッドによって使用されたコンピュータ18の過去のインスタンスを認識する可能性がある。
【0072】
加えて、インストール検査76プロセスは、その他のサービスプロバイダシステム14からのサービスプロバイダアプリ44のその他のインスタンスを探し、コンピュータ18の履歴をさらに保証するために動的な鍵暗号プロバイダ10にすべての見出されたインスタンスの報告を返す可能性がある。
【0073】
ユーザ認証50が実行された後、サービスプロバイダ14が、サービスプロバイダ14がサービスユーザ20を特定するために使用するアカウント識別子を動的な鍵暗号プロバイダ10に送信する可能性がある。コンピュータ登録68プロセスが、サービスユーザ20を特定のコンピュータ18にリンクするためにアカウント識別子をコンピュータマニューシャデータベース(DB)70に結びつける。
【0074】
動的な鍵暗号ライブラリ56は、コンピュータ18からのマニューシャ(ハードウェア、ファームウェア、及びソフトウェア)並びにサービスユーザ20からのマニューシャ(秘密及びバイオメトリクス)を含む幅広いコンピュータマニューシャ64並びに秘密及びバイオメトリックマニューシャ26を鍵マニューシャ取り出し58プロセスを使用してサンプリングすることができる。秘密及びバイオメトリックマニューシャ26は、コンピュータ18によって、又はその他の伝達方法を介してサービスユーザ20から収集され得る。すべてのあり得るマニューシャ値が、インストールで読まれる必要があるとは限らず、一部は後で読まれる可能性がある。
【0075】
サービス鍵のためのマニューシャを選択するためのプロセス60は、コンピュータ18のローカルに記憶された暗号化されたサービスデータ196などのもののために動的な鍵暗号ライブラリ56並びにシステム100、200、300、400、500、600、700、800、及び900のその他の部分によって使用され得る暗号化及び識別子鍵を生成するためにコンピュータマニューシャ64の一部又はすべてを使用する。これらの選択は、動的な鍵暗号ライブラリ56で事前に定義されるか、又は動的な鍵暗号ライブラリ56によって管理され、守られるサービス鍵マニューシャ選択66データベースに記憶される可能性がある。サービス鍵マニューシャ選択66データベースは、コンピュータ18のセキュアエレメント内に存在する可能性があり、オフライン処理のために使用される可能性がある。サービス鍵のためのマニューシャ選択60プロセスによって選択されたマニューシャは、動的な鍵暗号ライブラリ56によって必要とされるサービス鍵を動的に構築するために動的な鍵暗号ライブラリ56によって使用される可能性があり、コンピュータマニューシャ64を読んだ結果として得られる鍵は、動的な鍵暗号ライブラリ56又はシステム400に記憶されず、サービス鍵マニューシャ選択66データベースを調べ、鍵マニューシャ取り出し58プロセスを用いて結果として得られるコンピュータマニューシャ64又は秘密及びバイオメトリックマニューシャ26を取得することによって、必要とされるときに計算され得る。したがって、サービスプロバイダアプリ44が1つのコンピュータ18から別のコンピュータ18にコピーされた場合、サービス鍵がコンピュータマニューシャ64から構築されたときに、結果として得られるサービス鍵は、例えば、コンピュータ18のローカルに記憶されたデータを適切に復号することができない。
【0076】
コンピュータマニューシャ64並びに秘密及びバイオメトリックマニューシャ26の一部は、動的な鍵暗号プロバイダ(DKCP)へのマニューシャ送信62プロセスを介して動的な鍵暗号プロバイダ10に送信される。動的な鍵暗号プロバイダ10が動的な鍵暗号プロバイダ10のマニューシャDB70データベースのコンピュータマニューシャ64との存在する一致を探すことができるように、比較的少ない量のコンピュータマニューシャ64並びに秘密及びバイオメトリックマニューシャ26が、動的な鍵暗号プロバイダ10に送信され得る。動的な鍵暗号プロバイダ10は、一致するマニューシャ64を発見する場合、コンピュータマニューシャ64のより広い組を検証するために、
図2に示されたチャレンジ、応答、及び確認の交換を送信することができる。コンピュータマニューシャ64のより広いサンプリングが動的な鍵暗号プロバイダ10によって適切に検証される場合、動的な鍵暗号プロバイダ10は、おそらく、これがコンピュータ18に追加されている別のサービスプロバイダアプリ44であると推定し得る。動的な鍵暗号プロバイダ10が動的な鍵暗号プロバイダ10のマニューシャDB70データベースで一致するコンピュータマニューシャ64を発見しない場合、コンピュータマニューシャ64並びに秘密及びバイオメトリックマニューシャ26のサブセットが、コンピュータ18が適切に一意に特定される可能性があり、コンピュータマニューシャ64並びに秘密及びバイオメトリックマニューシャ26の残りが
図2に示されたコンピュータマニューシャ更新128プロセスを用いて動的な鍵暗号プロバイダ10によって知られる可能性があるように、プロセス「DKCPへのマニューシャ送信62」を使用することができる。このように、
図2に示されたように、チャレンジ、応答、及び確認によってマニューシャの一部を移動することができる可能性があり、マニューシャの必ずしもすべてが、動的な鍵暗号ライブラリ56のカスタマイズを通じてサービスプロバイダ14により変わり得るいくつかの安全な送信方法を使用する可能性があるDKCPへのマニューシャ送信62プロセスを介して移動される必要があるわけではない可能性がある。
【0077】
DKCPへのマニューシャ送信62プロセスを実行することによって、コンピュータマニューシャ64並びに秘密及びバイオメトリックマニューシャ26のさまざまな値が、コンピュータ登録68プロセスを実行することができる動的な鍵暗号プロバイダ10にそれらの値のマニューシャ記述子(minutia descriptor)とともに送信され得る。コンピュータ登録68プロセスは、コンピュータマニューシャ64並びに秘密及びバイオメトリックマニューシャ26を、サービスユーザ20に関するサービスプロバイダ14アカウント識別子の参照とともにマニューシャDB70に記録することができる。マニューシャDB70は、マニューシャの種類(又はカテゴリ)、マニューシャの値、及びサービス識別子をその後の処理のために記憶することができる。
【0078】
動的な鍵暗号プロバイダ10は、一意の動的な鍵暗号ライブラリ56によってランダム化されたコンピュータマニューシャ64並びに秘密及びバイオメトリックマニューシャ26を記憶することができる。動的な鍵暗号プロバイダ10は、実際のコンピュータマニューシャ64を知るためにSP情報及びID32のデータを使用してサービスプロバイダ(SP)マニューシャを復号74することもできる。これらの実際のマニューシャ値の多くは、動的な鍵暗号プロバイダ10によってのみ知られており、複数のサービスプロバイダシステム14へのサービスのために後で使用され得る。
【0079】
実際のコンピュータマニューシャ64並びに秘密及びバイオメトリックマニューシャ26の一部は、SPへのコンピュータプロファイル送信72プロセスを介してサービスプロバイダ14に送信され得る。結びつき、マニューシャ値に手を加える可能性があるサービスプロバイダ14のさまざまなインスタンスによってサービスユーザ20がプロファイリングされることを防ぐためにマニューシャ値の記述名が、それらの記述名の実際の意味が分からないように抽象化される可能性がある(例えば、カウンタ−1、カウンタ−2、エンターテインメント−1)。加えて、可能な場合、マニューシャの値は、実際のマニューシャ値を隠すためにハッシュされる可能性がある。サービスプロバイダ14は、SPコンピュータ情報DB54にコンピュータ情報を記憶52するか、又はサービス及びユーザデータ24データベースにデータを記憶する(又はこれら両方を行う)可能性がある。SPコンピュータ情報DB54の情報は、サービスプロバイダ14のサービスプロバイダアプリ44のソフトウェアを実行するコンピュータシステム18の種類及びマニューシャを理解するためにサービスプロバイダ14に役立つ可能性がある。そのような情報は、例えば、OSの種類及びバージョン、コンピュータの型及びモデルを含み得る。サービス及びユーザデータ24データベースは、サービスプロバイダ14にとって意味があるPIN及びパスワードなどの秘密を含む可能性がある。
【0080】
図5は、一実施形態による予想されるマニューシャデータベースを生成し、更新するために産業界のマニューシャをカタログ化及びモデル化するために使用され得るシステム500を示す。
図5は、幅広い産業界のソースから産業界の更新カタログDB96を生成し、その情報を使用して予想されるマニューシャDB98を形成するためのシステム500を示す。
【0081】
動的な鍵暗号プロバイダ10は、最終的に産業界の更新カタログDB96を蓄える産業界のマニューシャカタログ化86プロセスを定期的に実行する。このデータベースは、産業界のマニューシャの大きいが有限の集合を管理するためのものである。大規模な検索、補間、多アップグレード順列モデリング(multi−upgrade permutation modeling)、及び確率計算が、産業界の更新カタログDB96内に見出されたデータに対して実行される。
【0082】
産業界のマニューシャカタログ化86プロセスは、コンピュータ産業界調査90を使用して、マニューシャ更新収集88プロセスをヒューリスティックスにより経験的に実行する。マニューシャ更新収集88プロセスは、ソフトウェア製造業者80、コンピュータハードウェア製造業者82、及びファームウェア製造業者84から情報を探し出すためにネットワーク16(例えば、インターネット)を探し回る。ソフトウェア製造業者80は、とりわけ、ソフトウェア製造業者、オンラインソフトウェア販売店、ソフトウェアのサポートサービス、及び一部のオペレーティングシステムを含む可能性がある。コンピュータハードウェア製造業者82は、とりわけ、PC、ラップトップ、タブレット、スマートフォン、特定用途向けコンピュータ、及びネットワーク16に接続できることが多いその他のハードウェアの製造業者を含む可能性がある。ファームウェア製造業者84は、とりわけ、(通常、ドライバと呼ばれる)ハードウェアに関連するソフトウェア、一部のオペレーティングシステムソフトウェア、モバイル事業者ネットワーク又は公衆及び私設クラウドネットワークなどのネットワーク16へのアクセスを構成し、制御するためのソフトウェアを含む可能性がある。
【0083】
マニューシャ更新収集88プロセスは、コンピュータ産業界調査90プロセスがシステム500にとって有益と考え得るような情報を収集する。次いで、収集されたデータは、例えば、コンピュータ又はユーザデバイスの特定に関する分析のためにデータモデリング・ヒューリスティックス・順列92プロセスに与えられる。データモデリング・ヒューリスティックス・順列92プロセスは、履歴的なマニューシャの傾向及びデータマイニング94、並びに現在のマニューシャDB70と、現在の予想されるマニューシャDB98と、その後の監査及びヒューリスティック分析のために、動的な鍵暗号プロバイダ10によって実行されたアクション及び交換をログに残すことができるイベントログ12とを考慮する。産業界の更新自体が、産業界の更新カタログDB96の1つのマニューシャの更新がその他の関連するマニューシャ値の予測される変化をトリガするようにグループ化され、関連付けられる可能性がある。例えば、オペレーティングシステムの産業界の更新が15個のマニューシャ値を変更するように示され、(例えば、ビルド番号、ビルド名、サブシステムのバージョン、システムのサイズを含む)マニューシャ値がサービスユーザ20の使用によって影響を受けない場合、これらのマニューシャ値は、データモデリング・ヒューリスティックス・順列92プロセスで集合的にグループ化され、推測されるか、又は確認され得る。
【0084】
その他の関連するマニューシャ値は、サービスユーザ20の使用の結果として変わる可能性がある。これは、サービスユーザ20の挙動のパターンと関連するが異なり、(コンピュータ18に関連するマニューシャ値などの)マニューシャDB70のマニューシャ値は、(コンピュータ18などの)マニューシャの挙動を定め、したがって、挙動のアルゴリズムが、マニューシャDB70の値に適用され得る。例えば、業務時間中にコンピュータ18が「職場(work)」環境にあるときに、コンピュータ18が(雇用主によって提供される無線LANなどの)安全な無線LANに繰り返し接続する場合、このことは、安全な無線LANによる(例えば、MACアドレスの確認、WEP鍵認証による)コンピュータ18の第三者の信頼を示唆する可能性があり、「正常な」動作条件のもとで接続に失敗することは、失われたデバイス又は新しい仕事などの変化を示す可能性がある。別の例として、マニューシャDB70の値が、アドレス帳が時間の経過とともに着実にアドレスを追加して、数百名に達し、突然、アドレスの名前の数が80になる場合、そのことは、新しいサービスユーザ20による所有を示す可能性がある。
【0085】
収集され、モデル化されたデータから、データモデリング・ヒューリスティックス・順列92プロセスは、予想されるマニューシャDB98にあり得るマニューシャ値を記録する。予想されるマニューシャDB98に記憶されるデータは、迅速な派生の比較が検証され、確実性の尺度に対して採点され得るようにデータベース内の確率にしたがって管理され、順序付けられる産業界の更新カタログDB96及びマニューシャDB70の予め計算された組合せである。
【0086】
例えば、コンピュータ産業界調査90が保留中のオペレーティングシステムのリリースを発見するとき、マニューシャ更新収集88プロセスが、例えば、やはり、適切なファームウェア製造業者84から新しくリリースされたオペレーティングシステムのコピーを集める可能性がある。新しいオペレーティングシステムは、データモデリング・ヒューリスティックス・順列92機能によって処理され、結果として得られるマニューシャが、システム500による後の使用のために予想されるマニューシャDB98に記憶される。
【0087】
予想されるマニューシャの別の例として、システムカウンタを表すマニューシャに関して、マニューシャDB70から収集されたカウンタ情報が、データモデリング・ヒューリスティックス・順列92プロセスによって決定された許容される範囲内で増やされる可能性がある。次いで、許容される範囲内のすべてのカウンタ値が、予想されるマニューシャDB98に記憶される。
【0088】
ほとんどの場合、データモデリング・ヒューリスティックス・順列92プロセス及び履歴的なマニューシャの傾向及びデータマイニング94プロセスが、予想されるマニューシャDB98に記憶された値に関連する確率及び確実性の採点を計算する。これらの確率及び確実性の採点値は、コンピュータの認証のための確実性の採点システムにおける決定要因である。
【0089】
図6は、一実施形態による採点、確実性のランク付け、及びステップアップ処理のためのシステム600を示す。
図6は、マニューシャ確認の採点140を計算し、採点をサービスプロバイダ14によって定義された閾値と比較し、所望の閾値を超えて採点を高くしようとしてSPステップアップ要求を処理150する追加のアクションを行うためのシステム600を示す。
【0090】
動的な鍵暗号プロバイダ10は、マニューシャ確認の採点140のためのサブシステムを含む。マニューシャ確認の採点140サブシステムは、
図2で定義されたサブシステム200を使用して確認された応答を受信する。スコア計算144プロセスは、有効な応答DB130、SP情報及びID32のデータ、イベントログ12、並びに予想されるマニューシャDB98からのデータを使用して確認された応答で使用されるマニューシャ及びマニューシャ値のヒューリスティック及び確率的採点を計算する。有効な応答130データベースの情報は、コンピュータ18のコンピュータマニューシャの現在の状態を表す情報と、産業界のソース及びサービスユーザ20の基準(norm)からの予想されるマニューシャとの両方を含み、それらの両方が、前の図面、及びサービスプロバイダアプリ44のサブシステム900に関する
図9に示される。
【0091】
例えば、ハードウェアマニューシャの採点は、概して、ソフトウェアマニューシャの採点よりも高い可能性がある。また、予測されるように変化するファームウェアマニューシャ値は、より高い確実性の採点を有する可能性がある。同様に、予測されるように変化する(日付などの)ソフトウェアマニューシャは、応答の採点全体に肯定的な影響を与える可能性がある。
【0092】
一部のマニューシャ値の変化は、おそらくは予想されていながら、応答の採点全体に否定的な影響を与える可能性がある。例えば、カウンタ値が異常に大きく飛ぶ場合、そのことは、採点に否定的な影響を与える。また、ファームウェアマニューシャ値が産業界の基準にしたがってルーチンの更新を反映しない場合、採点は否定的な影響を受ける可能性がある。加えて、広範なマニューシャを知られている出荷時設定値にリセットして戻すコンピュータのリセットが検出される場合、結果として得られるスコアがより低くなる可能性がある。
【0093】
一部のマニューシャ自体は、異なるように採点される。例えば、特定のソフトウェアマニューシャは、その他のソフトウェアマニューシャよりもより予測精度が高く、有用である可能性がある。したがって、より好ましい1つのマニューシャ又は複数のマニューシャが使用されるとき、結果として得られる採点は、より望ましくないマニューシャを用いてなされた検証と比較されるとき、より高い可能性がある。
【0094】
確認されるべきマニューシャの非常に多い数が原因で、別の採点の入力は、特定のマニューシャ値がコンピュータ18とのチャレンジ及び応答の交換で最後に確認されてからの時間である可能性がある。
【0095】
単一のコンピュータ18の範囲外の情報が、採点に影響を与える可能性もある。コンピュータ18のいくつかのインスタンスがマニューシャDB70で示されるように特定のサービスプロバイダ14の単一のサービスユーザ20に登録される場合、登録されたコンピュータ18の大きな数は、特に、いくつかのコンピュータ18のコンピュータが同等(例えば、1つのスマートフォン、1つのタブレット、及び1つのラップトップではなく3つのスマートフォン)であると考えられる場合、採点に否定的な影響を与える可能性がある。
【0096】
スコア計算144が実行された後、結果として得られるスコアは、サービスプロバイダ14によって定義された初期閾値と比較され、通常、サービスプロバイダ14への初期接続中に送られる。計算されたスコア>=閾値142である場合、SPへのスコア送信148プロセスが、さらに考慮するためにサービスプロバイダ14にスコアを返すために使用される。
【0097】
スコア>=閾値142が真でない場合、SPステップアップ要求処理150が実行される。同様のSPセットアップ要求処理150が、サービスプロバイダ14によって定義されたように、初期閾値又はそれよりも後の閾値が満たされない場合に実行される可能性があることに留意されたい。
【0098】
SPセットアップ要求処理150は、有効な応答及び閾値比較152を実行して、あり得る応答及び対応するスコアが閾値以上であるか否かを有効な応答130データベースからの情報を用いて判定する。プロセスは、最良の応答と、スコアを上げるステップアップ方法とを決定するユーザ影響ヒューリスティックス154プロセスによって管理される可能性がある。
【0099】
いずれかのスコア>=閾値156が真である場合、選択されたマニューシャ要素使用168で定義された特定のマニューシャが、チャレンジを定式化116するために使用される可能性があり、システム600は、
図2に示されたシステム200を使用し続ける。このように、サービスユーザ20は、アクションを行う必要があることによって不便を被らない可能性がある。
【0100】
現在のスコア+2番目(2nd)>=閾値158が真である場合、3つの識別要素使用170プロセスは、コンピュータ18を使用してサービスユーザ20の秘密又はバイオメトリックマニューシャを収集するように動的な鍵暗号ライブラリ56に指示するように動的な鍵暗号プロバイダ10に要求する可能性がある。
【0101】
新しいスコア+2番目>=閾値160である場合、新しい選択されたマニューシャのチャレンジのプロセスと3つの識別要素使用170プロセスとの両方がトリガされる可能性がある。
【0102】
新しい選択されたマニューシャのチャレンジがサービスプロバイダ14によって要求された閾値以上のスコアを達成することができない場合、SPへの確認失敗送信162プロセスが実行される。
【0103】
サービスプロバイダ14は、動的な鍵暗号プロバイダ10からマニューシャ確認の採点140からの採点を受信するとき、ステップ失敗172が発生したか否かを最初に判定する。その場合、動的な鍵暗号プロバイダ10は、サービスプロバイダ14によって望まれた閾値に適合することができない。そのとき、サービスプロバイダ14は、例えば、サービス要求を拒否すること、又は
図4に示されるように新しいコンピュータ18の登録をトリガする可能性があるサービスユーザ20のアウトオブバンド(out−of−band)の本人確認を行うことを含み得る確認失敗プロセス180でどのように応答すべきかを決定しなければならない。
【0104】
動的な鍵暗号プロバイダ10からのスコアがステップ失敗172で決定されるステップアップ失敗ではない場合、SPリスクプロセス174が、スコアを、サービスユーザ20によって要求されたサービスアクションに関する独自のリスクテーブルと比較する。スコア>=閾値142である場合、ユーザアクション許可182が実行される可能性があり、コンピュータ18及び任意的なサービスユーザ20の確実性が、サービスプロバイダ14が要求されたアクションを許可するのに十分である可能性がある。
【0105】
スコア>=閾値142が満たされない場合、動的な鍵暗号からのステップアップ認証要求178プロセスが、所望の閾値を超える採点を得るためにSPステップアップ要求処理150を実行するように動的な鍵暗号プロバイダ10に要求する。
【0106】
図7は、一実施形態による認証システム700を示す。
図7は、コンピュータ18上で見出されるか又はサービスユーザ20から収集される3つの識別要素(持っているもの、知っていること、及び特徴)からのマニューシャをおそらく使用する動的な鍵暗号認証のためのシステム700を示す。
【0107】
例えば、コンピュータ18の特定に対する第2の識別要素としてPIN又はパスワードの入力が必要とされるとき、動的な鍵暗号プロバイダ10は、コンピュータ18にネイティブなサービスPINが使用されるのか、又はサービスプロバイダ14に固有のPINが使用されるのかをSP情報及びID32データベースに記憶されたデータにしたがって判定するサービスPIN使用250の決定を行う可能性がある。サービスプロバイダ14は、サービスPINの使用を命じるか、又はネイティブのコンピュータ18のPIN(又はパスワード)が使用されることを命じるか若しくは許可することができる。
【0108】
動的な鍵暗号プロバイダ10は、
図2に示されたチャレンジプロセスによるサービスユーザ10のPIN入力を要求する可能性がある。そのような場合、チャレンジ展開108プロセスが、鍵マニューシャ取り出し58プロセスが、チャレンジのPINマニューシャ要求を決定し、真偽を判定するためにサービスPIN使用250を問い合わせることを可能にし得る。
【0109】
動的な鍵暗号プロバイダ10は、コンピュータ18(そのような機能が存在する場合)がシステムPIN256を表示すること、又はコンピュータ18で実行される動的な鍵暗号ライブラリ56がサービスPIN表示254入力プロセスを実行することのいずれかを要求することができる。
【0110】
サービスプロバイダ14がコンピュータ18にネイティブなPINを許し、コンピュータ18がシステムPINを表示するプロセス256を実行することができる場合、システムPIN表示256プロセスと同様の(又は場合によっては同じ)コンピュータ18のプロセスが、コンピュータ18によって呼び出される。
【0111】
サービスPIN使用250がはいであるか、又はコンピュータ18がシステムPIN表示256を遠隔で指示され得ない場合、動的な鍵暗号ライブラリ56は、サービスPIN表示254入力プロセスを実行する。
【0112】
サービスPIN使用250が必要とされない場合、動的な鍵暗号ライブラリ56は、システムPIN使用中252がはいであるか否かを判定する。システムPIN使用中252がはいである場合、コンピュータ18ネイティブPIN(又はパスワード)画面が、例えば、コンピュータ18が「タイムアウトした」かのようにシステムPIN表示256プロセスによって表示され、サービスユーザ20が、サービスユーザ20のPINを再入力するように促される。
【0113】
サービスPIN使用250がはいであるか、又はシステムPIN使用中252がいいえである場合、動的な鍵暗号ライブラリ56は、サービスPIN表示254プロセスを実行し、カスタムPIN入力画面が示される。有効なPINは、サービスプロバイダ14とサービスユーザ20との間の事前に決定された数である可能性があり、又はインストール検査76プロセス又は何らかのその他の登録プロセスの一部として
図4のコンピュータシステム登録システムの間に設定される可能性がある。
【0114】
表示されるPIN画面にかかわらず、サービスユーザ20は、サービスユーザ20が保持する秘密及びバイオメトリックマニューシャ26の情報を使用してコンピュータ18にPINを入力する。システムPIN使用中252が真であるとき、PINの確認がコンピュータ18自体によって実行される。正しいPINが入力されるとき、動的な鍵暗号ライブラリ56が、最後の成功したPINイベントからの時間取得260プロセスを実行し、動的な鍵暗号プロバイダ10に対する有効な最後のPIN入力からの新しい時間を返す可能性がある。このように、サービスユーザ20は、サービスユーザ20がデバイスを所有していることを示すために複数のPINを入力するか又は同じPINを複数回入力する必要がない可能性があり、システムPINが、コンピュータ18で実行されるすべての保護されるサービスプロバイダアプリ44のための共通のPINとして働く。サービスPIN使用250が真であるとき、動的な鍵暗号ライブラリ56は、サービスユーザ20によってコンピュータ18に入力されたPIN値を使用して実際の応答を計算106し、次いで、実際の応答が、
図2に示された確認のために動的な鍵暗号プロバイダ10に返される。
【0115】
有効なPIN入力が行われない場合、動的な鍵暗号ライブラリ56はタイムアウトし、動的な鍵暗号プロバイダ10に失敗を返す可能性がある。
【0116】
別の例において、鍵マニューシャ取り出し58プロセスは、バイオメトリック要求処理262を引き起こす可能性がある。そのような場合、バイオメトリックマニューシャ取得264プロセスは、コンピュータ18とインタラクションして、コンピュータ18への入力によってサービスユーザ20から秘密及びバイオメトリックマニューシャ26データを収集する。次いで、バイオメトリックマニューシャ値が、実際の応答を計算106するために使用される可能性があり、実際の応答は、それから、
図2に示された確認のために動的な鍵暗号プロバイダに返される。
【0117】
さらに別の例において、鍵マニューシャ取り出し58プロセスは、デジタル署名258が要求されると判定し、乱数に関するメッセージハッシュ置き換え242プロセスによってデジタル署名を実行する。このように、(取引のレシート(transaction receipt)又はその他のサマリなどの)アクションのハッシュ又はダイジェストが、実際の応答計算106プロセスを使用して鍵マニューシャ取り出し58プロセスによって返されたマニューシャによって署名される可能性がある。鍵マニューシャ取り出し58プロセスは、3つの識別の要素(「持っているもの」、「知っていること」、及び「特徴」、例えば、それぞれ、コンピュータ18、サービスユーザ20が知っているか若しくは示す秘密、又は(秘密及びバイオメトリックマニューシャ26)からの)バイオメトリックマニューシャのいずれか又はすべてを包含する任意の数のマニューシャ値を取り出すことができる。
【0118】
例示的な例として、デジタル署名を形成するために、メッセージの内容が、メッセージの内容に対する変更が異なるハッシュを形成し、メッセージに対するあらゆる変更が明らかになるようにハッシュされ得る。次いで、ハッシュは、署名が実行され、複数のマニューシャ値が署名がいつ行われたかを集合的に確認し得る、署名が実行されたコンピュータ18を定める比較的安定したマニューシャ(例えば、ハードウェアマニューシャ)、ジオロケーションマニューシャ、及び速く変化するマニューシャ(例えば、データ、カウンタ)を含む、署名が行われたコンピュータ18を表すマニューシャを含む動的な暗号鍵を用いて「署名される」(暗号化される)可能性がある。加えて、署名する動的な暗号鍵を形成するために使用されるマニューシャは、誰がダイジェストをデジタル署名したかを定めるために、サービスユーザ20のみが知っているべき秘密(例えば、PIN)、及びサービスユーザ20のみが生成し得るバイオメトリックマニューシャ(例えば、顔の形状)を含む可能性がある。このように、動的な暗号鍵は、機器、場所、時間、及び人を特定のメッセージに結びつけることができる。したがって、非常に広範なマニューシャ(単一の3つ組ではなく、潜在的に数十又はさらには数百のマニューシャ値)が、動的な署名鍵で使用され得る。さらに、コンピュータ18の挙動の軌跡が、実行されたデジタル署名に信頼性を与えるために署名の前後で考慮される可能性がある。
【0119】
図8は、一実施形態によるデータ保護セキュリティ機能に関するアプリケーションの処理のためのシステム800を示す。
図8は、サービスプロバイダアプリ44と動的な鍵暗号ライブラリ56との間のインタラクションを処理して、コンピュータ18で実行される間に両方のセキュリティを改善するためのシステム800を示す。
【0120】
コンピュータ18に、サービスプロバイダ14に対して一意である可能性がある動的な鍵暗号ライブラリ56を含むサービスプロバイダアプリ44がインストールされた可能性がある。動的な鍵暗号ライブラリ56は、動的な鍵暗号プロバイダ10からの応答を処理してハートビート及びチャター194を確立し、場合によっては、ハートビートがない210ときにコンピュータからサービス削除236の自動消滅をトリガし、ハートビート及びチャター194システム呼び出しを通じて動的な鍵暗号ライブラリ56の活動をランダム化するか又は分かりにくくして扱いに注意を要するアクションを傍受することを難しくすることができる。
【0121】
動的な鍵暗号ライブラリ56は、サービスプロバイダアプリ44による呼び出し、又は動的な鍵暗号プロバイダ10による呼び出しのいずれかに直接応答して動的な鍵暗号ライブラリ56の活動の一部を実行する。コンピュータマニューシャ64をランダム化し、分かりにくくし、サンプリングするために、動的な鍵暗号ライブラリ56は、サービスプロバイダアプリ44がアイドルし、サービスユーザ20又はその他の外部ドライバのいずれかからの応答を待つ間にタスクを実行することができ、これは、イベントループでの待機と呼ばれることが多い。
【0122】
サービスプロバイダアプリ44は、暗号化されたサービスデータ196でコンピュータ18にサービスプロバイダ14及びサービスユーザ20のデータを安全に非公開で記憶するためにデータを暗号化及び復号190することができる。データ暗号化及び復号190プロセスが、サービス鍵マニューシャ選択66データベースを使用して、コンピュータ18上で見出されたコンピュータマニューシャ64から鍵マニューシャ取り出し58プロセスがどのマニューシャを取り出すべきかを決定する可能性があり、又は鍵マニューシャ取り出し58が、動的な鍵暗号プロバイダ10から命令を受信する可能性がある。
【0123】
このように、データ暗号化及び復号190プロセスは、データの暗号化及び復号に使用される鍵を実際には記憶しない可能性があり、鍵は、コンピュータマニューシャ64から必要に応じて計算される。したがって、暗号化されたサービスプロバイダ14のデータ及びサービスユーザ20のデータは、暗号化されたサービスデータ196データベースに記憶されるとき、同じコンピュータマニューシャ64がコンピュータ18に存在しない限り復号され得ない。サービスプロバイダアプリ44又は暗号化されたサービスデータ196(又はそれら両方)をコピーすることは、暗号化されたサービスデータ196の復号を可能にしない。
【0124】
データ暗号化及び復号190によって処理されるべき暗号化されたデータは、ネットワーク16を介してサービスプロバイダ14からコンピュータ18に安全に送信されるか、サービスユーザ20によってコンピュータ18に入力されるか、又はサービスプロバイダアプリ44若しくは動的な鍵暗号ライブラリ56によってコンピュータ18のローカルで生成される可能性がある。暗号化されたサービスデータ196がサービスプロバイダアプリ44又は動的な鍵暗号ライブラリ56によって追加又は変更される場合、サービスプロバイダ14は、ネットワーク16を用いたコンピュータ18とサービスプロバイダ14との間の安全な通信を介して暗号化されたサービスデータ196によって更新される可能性がある。データ暗号化及び復号190プロセスは、概してネットワーク16上を通過中のデータではなく、コンピュータ18に留まっているデータに対して機能するように意図される。しかしながら、コンピュータ18上で見出されるコンピュータマニューシャ64に基づく同じ鍵生成プロセスが、多くの種類のデータ保護のために使用される可能性がある。
【0125】
動的な鍵暗号ライブラリ56は、データ暗号化及び復号190を用いるローカルコンピュータ検査192がコンピュータマニューシャ64をランダムに確認することを可能にする可能性もある。このように、ランダムなデータが暗号化され、コンピュータマニューシャ64がまだ有効であり、したがって、サービスプロバイダアプリ44が意図されるコンピュータ18で実行されていることを検証するために後で復号される可能性がある。同様の検証が、
図2に示されたチャレンジ、応答、及び確認システム200を用いて動的な鍵暗号プロバイダ10によって行われ得る。
【0126】
コンピュータマニューシャ64は、正常な使用によって時間とともに変わるマニューシャを含む可能性があるので、データ暗号化及び復号190は、それらの変化の後、失敗する可能性がある。システムの耐障害性のために、データ暗号化及び復号190は、広い範囲のあり得るコンピュータマニューシャ64からの複数のサブセットを使用してデータを処理する可能性がある。このように、データ暗号化及び復号190は、非常に広範囲のコンピュータマニューシャ64に基づいて暗号化されたデータのいくつかの異なるコピーを計算する可能性がある。単一の平文のソースに基づく暗号化の異なるインスタンスの数は、各サービスプロバイダ14のためにカスタマイズ可能である動的な鍵暗号ライブラリ56によって制御され得る。
【0127】
平文データを暗号化するとき、データ暗号化及び復号190プロセスは、動的な鍵暗号ライブラリ56によって制御されるように、鍵マニューシャ取り出し58プロセスを必要とされる回数使用する。鍵マニューシャ取り出し58が実行されるたびに、対応するマニューシャインデックスがサービス鍵マニューシャ選択66から読まれ、結果として得られるコンピュータマニューシャ64が読まれる。サービス鍵マニューシャ選択66は、例えば、コンピュータ18のローカルに記憶されるか、コンピュータ18のセキュアエレメントに記憶されるか、又は動的な鍵暗号プロバイダ10のデータに記憶され、
図2に示されたチャレンジ、応答、及び確認システム200を使用して指示される可能性がある。鍵マニューシャ取り出し58のそれぞれの応答は、平文データを暗号化するためにデータ暗号化及び復号190プロセスによってハッシュされ、使用される1組のマニューシャ値を含み、暗号化された結果を暗号化されたサービスデータ196に記憶する。したがって、同じ平文の複数の暗号化が、暗号化されたサービスデータ196データベースに記憶され得る。
【0128】
データ暗号化及び復号190プロセスでデータを復号しようとするとき、鍵マニューシャ取り出し58プロセスは、サービス鍵マニューシャ選択66を決定し、次いで、コンピュータマニューシャ64から関連するマニューシャを取り出す際に同じ論理に従う。鍵マニューシャ取り出し58がデータ暗号化及び復号190にマニューシャ値を返すとき、データ暗号化及び復号190は、暗号化されたサービスデータ196から暗号化された値を取得し、マニューシャ値のハッシュを使用して情報を復号する。
【0129】
データ暗号化及び復号190によって実行された復号が平文を適切に復号しない場合−有効な復号202の判定においてチェックサムの何らかの手段、知られている平文のテスト、又はその他の手段によって判定される−、費やされた再試行206の回数が比較される。平文のさらなる暗号化されたインスタンスが存在する場合、サービス鍵マニューシャ選択66を使用して、そのときコンピュータマニューシャ64の情報から取得されるマニューシャ値の別のサブセットをインデックス付けする鍵マニューシャ取り出し58の次の組が実行される。
【0130】
鍵マニューシャ取り出し58、有効な復号202、及び費やされた再試行206のこのループは、データの有効な復号が行われるか、又は再試行がもはや残っていなくなるまで実行される。費やされた再試行206がデータの有効な復号が行われる前に真を返す場合、システムが失敗し、
図4に示されるようにコンピュータ18の再登録をトリガするか、又は暗号化が行われたときに使用された元のマニューシャ値が動的な鍵暗号プロバイダ10から動的な鍵暗号ライブラリ56に返される可能性がある。
【0131】
有効な復号202が見出された場合、データ暗号化及び復号190は、平文を適切に復号することに失敗したあらゆるマニューシャに対してDKCPとのマニューシャの同期201を実行することができる。DKCPとのマニューシャの同期201が実行されるとき、変更されたマニューシャの選択がサービス鍵マニューシャ選択66からインデックス付けされ、変更されたマニューシャがコンピュータマニューシャ64から読まれ、更新されたマニューシャ値をマニューシャDB70に記憶する動的な鍵暗号プロバイダ10にネットワーク16を介して安全に送信するために動的な鍵暗号ライブラリ56に与えられる。
【0132】
DKCPとのマニューシャの同期201プロセスは、コンピュータマニューシャ64内に見出される新しいマニューシャを用いて失敗した復号を再建算するためにデータ暗号化及び復号190プロセスを要求するライブラリストレージ更新208機能を実行する可能性もある。
【0133】
動的な鍵暗号ライブラリ56がコンピュータ18のコンピュータマニューシャを更新するために動的な鍵暗号プロバイダ10に接続するとき、動的な鍵暗号プロバイダ10は、あたかもコンピュータ18がサービスプロバイダ14に接続しているかのように認証を実行する。
【0134】
動的な鍵暗号ライブラリ56は、例えば、1)コンピュータ18でランダムな活動を実行し、2)動的な鍵暗号ライブラリ56と動的な鍵暗号プロバイダ10との間のハートビートとして機能し、3)意味のあるアクションを不明瞭にし、分かりにくくすることができるハートビート及びチャター194プロセスも有する可能性がある。
【0135】
ハートビート及びチャター194プロセスは、動的な鍵暗号プロバイダ10によって送信されたチャレンジを使用して応答プロセス112を周期的に実行することができる。動的な鍵暗号プロバイダ10は、後の処理のために動的な鍵暗号ライブラリ56にいくつかのチャレンジを送信し得ることを思い出されたい。(
図2に示された)このような具合に、マニューシャ値が、コンピュータ18と動的な鍵暗号プロバイダ10との間で推測され、更新され得る。
【0136】
この又は同様のプロセスは、コンピュータ18と動的な鍵暗号プロバイダ10との間のハートビートとして働く可能性もある。ハートビート及びチャター194プロセスは、サービスプロバイダ14によって定義され、動的な鍵暗号ライブラリ56のサービスプロバイダ14のカスタマイズされたバージョンに記憶された時間枠内で有効なチャレンジ及び応答サイクルを実行しない場合、ハートビートなし210の決定に示されるように、
図8に示されたコンピュータからサービス削除236プロセスを呼び出す可能性がある。
【0137】
ハートビート及びチャター194プロセスは、コンピュータマニューシャ64のランダムなマニューシャの読取り値を周期的に取り出して204、コンピュータ18でなされるシステム呼び出しをリッスンするあらゆる悪意のある者に対して広い検索空間を利用することもできる。ハートビート及びチャター194は、ローカルコンピュータ検査192プロセスをランダムに呼び出すこともできる。
【0138】
ハートビート及びチャター194は、セキュリティを向上させ、極めて重要なアクションを分かりにくくするためにこれらの機能のすべてを実行することができる。ハートビート及びチャター194は、性能に影響を与えないようにサービスプロバイダアプリ44のイベントループの間に最も多く呼び出される可能性がある。ハートビート及びチャター194は、バッテリー電力、ネットワーク帯域幅、又はその他のシステムリソースを過剰に使用しないようにインテリジェントである可能性もある。
【0139】
図9は、一実施形態によるサービスプロバイダに対するコンピュータ識別プロバイダライフサイクル機能及びサービスを示す。
図9は、サービスを削除し、1つのコンピュータ18から新しいコンピュータ220にサービスを移すことと、サービスプロバイダシステム14に新しいコンピュータ220を知らせることとを含む、サービスプロバイダ14及びコンピュータ18のライフサイクルの管理のためのシステム900を示す。
【0140】
サービス移動226プロセスは、1)新しいコンピュータ220がコンピュータ18に対するあり得る置き換えとして検出される、2)サービスユーザ20がサービスプロバイダ14にサービスの移動を要求する、3)トリガ1又はトリガ2のいずれかへの反応がその他のサービスプロバイダ230にそれらのその他のサービスプロバイダ230のサービスプロバイダアプリ44を先回りして移動させるなどのいくつかのイベントによってトリガされる可能性がある。
【0141】
新しいコンピュータ220が
図4に示された登録システム400を実行するとき、動的な鍵暗号プロバイダ10がサービスプロバイダ14によって与えられたアカウント識別子が同様のコンピュータ18(例えば、第2のスマートフォン)によって既に使用中であることを発見する場合、サービス移動238メッセージが、登録プロセスの一部として追加される可能性がある。必要とされる場合、サービスユーザ20が、サービスユーザ20の古いコンピュータ18からサービスを移動することに同意し、次いで、動的な鍵暗号プロバイダ10が、サービス移動226プロセスを実行することができる。
【0142】
サービスユーザ20がサービスプロバイダ14にサービスユーザ20のコンピュータ18が紛失、盗難、交換、又は何らかのその他のイベントのためにもはや有効でないことを知らせるとき、サービスプロバイダ14は、動的な鍵暗号プロバイダ10にサービスの保留・削除・移動を行うように要求232することができる。
【0143】
サービス移動226プロセスが実行されるとき、動的な鍵暗号プロバイダ10は、その特定のコンピュータ18に登録されたアカウント識別子を有するその他のサービスプロバイダ230に通知するその他のサービスプロバイダへの通知228プロセスを実行する可能性がある。通知すると、動的な鍵暗号プロバイダ10は、アクションの有効性を測るために、開始サービスプロバイダ14のSP情報及びID32データベースの情報に基づくSP確実性の採点240を共有する可能性がある。その他のサービスプロバイダ230は、それらのその他のサービスプロバイダ230の判断で、サービス保留222、サービス移動226、サービス削除224を実行するように、又はアクションを何も行わないようにさえも動的な鍵暗号プロバイダ10に指示する可能性がある。
【0144】
その他のサービスプロバイダへの通知228プロセスは、コンピュータ18をサービスプロバイダ14にリンクするための最小限の量のサービスプロバイダ14の情報のみ−サービスプロバイダ14へのポインタ及びサービスユーザ20のアカウント識別子など−を記憶し、サービスユーザ20の個人の特定可能な情報は、動的な鍵暗号プロバイダ10によって記憶又はログに記録されない可能性がある。
【0145】
サービス保留222に関して、動的な鍵暗号プロバイダ10は、確認失敗プロセス180が行われるようにし、最終的に、サービスプロバイダ14のカスタマーサービス活動によるサービスユーザ20への連絡を促す可能性がある、保留されるコンピュータ18に関するSPへの確認失敗送信162を送信することができるようにマニューシャDB70を更新する可能性がある。
【0146】
サービス削除224に関して、動的な鍵暗号プロバイダ10は、目標のコンピュータ18で実行される動的な鍵暗号ライブラリ56に、暗号化されたサービスデータ196と、存在するならばサービス鍵マニューシャ選択66とを完全に消去するように命令し、データストアが消去されるときに確認消去受信及び暗号化データ送信(send receipt and encrypted data)234を送信する可能性がある。受信及び暗号化データ送信234が送信された後、動的な鍵暗号ライブラリ56は、必要に応じてサービスプロバイダアプリ44を削除することによって自動消滅する可能性がある。
【0147】
サービス移動226に関して、サービス削除224が、古いコンピュータ18に影響を与えるために呼び出される。次いで、
図3に示されたサービスプロバイダアプリ配信システム300が、実行される。その後、
図4のコンピュータシステム登録システムが、次いで、古いコンピュータ18から新しいコンピュータ220にサービスを完全に移すために実行され得る。サービス及びユーザデータ24の再ロードが、
図8に示されるようにやはり実行される可能性があり、新しいコンピュータ220上で見出されるコンピュータマニューシャ64に対してデータが暗号化される。
【0148】
サービス削除224とサービス移動226との両方が、マニューシャDB70に古いコンピュータ18の廃止を反映させる。古いコンピュータ18のマニューシャデータは、そのマニューシャデータがその他のサービスプロバイダ230のために認識され得るように、又はコンピュータ18が悪意を持ってか、又はコンピュータ18を別のサービスユーザ20に与えるか若しくは売るなどのその他のイベントを通じてかのいずれかで新しい登録を実行する場合、マニューシャDB70から削除されない。
【0149】
さまざまな代替的な実施形態があり得る。例えば、1つの代替的な実施形態において、動的な鍵暗号プロバイダ10は、サービスプロバイダシステム14の階層的なエコシステム(ecosystem)をサポートする多層分散モデルである可能性がある。このように、エコシステムを統括する動的な鍵暗号プロバイダ10が、マニューシャDB70内のマニューシャを解決して、サービスプロバイダ14の別々のインスタンスが同じコンピュータ18を参照していると判定する。これは、動的な鍵暗号プロバイダ10が独自のエコシステムで
図9に示されたコンピュータ識別プロバイダライフサイクル機能を実行することを可能にする。最上位層の動的な鍵暗号プロバイダ10のみが、コンピュータ18からの絶対的なマニューシャ値を解決することができる。特定のデータが、
図9に示されたライフサイクル機能を容易にするために下位層の動的な鍵暗号プロバイダ10からマスタの動的な鍵暗号プロバイダ10にエクスポートされる必要がある。
【0150】
さまざまな実施形態において、動的な鍵暗号プロバイダ10の一部は、特定のサービスプロバイダ14のためにデータ所有を可能にするようにオンサイト(onsite)で実行されるように設計され得る。特定のデータが、
図9に示されたライフサイクル機能を容易にするためにオンサイトの動的な鍵暗号プロバイダ10からマスタの動的な鍵暗号プロバイダ10にエクスポートされる必要がある。
【0151】
また、例えば、動的な鍵暗号ライブラリ56は、いかなる場合もサービスプロバイダアプリ44に含まれる必要がない。サービスプロバイダ14の一部のインスタンスは、コンピュータ18で追加のアプリケーションコードを必要としない可能性があり、又はそれらのインスタンスのサービスポータルとしてウェブブラウザを使用する可能性がある。この場合、動的な鍵暗号ライブラリ56は、依然としてコンピュータ18に存在するが、コンピュータ18のためのスタンドアロンの呼び出し可能なルーチン又は共有リソースである可能性がある。動的な鍵暗号ライブラリ56が共有リソースである場合、
図8に示された特定のアプリケーション処理機能は、例えば、同じサービスプロバイダ14及び暗号化されたサービスデータ196の分離を実現するために動的な鍵暗号ライブラリ56内で区分される可能性がある。
【0152】
別の例において、サービスプロバイダ14は、サービスプロバイダアプリ44のインターフェースを介さずに動的な鍵暗号ライブラリ56に直接システム呼び出しを行う能力を有する可能性もある。
【0153】
別の例において、サービスプロバイダアプリ44は、動的な鍵暗号ライブラリ56と直接通信しない可能性がありサービスプロバイダアプリ44及び動的な鍵暗号ライブラリ56とそれぞれ独立して通信するサービスプロバイダ14と動的な鍵暗号プロバイダ10との間の交換によって通信が実行される可能性がある。
【0154】
別の例においては、チャレンジが、サービスプロバイダアプリ44のより速い起動及びオフライン処理を容易にするためにコンピュータ18に記憶される可能性がある。
【0155】
別の例においては、コンピュータ18のマニューシャの変則性が、コンピュータマルウェア又はその他の異常な処理の考慮事項を検出するために使用される可能性もある。
【0156】
別の例においては、システム200で示されたチャレンジ、応答、及び確認が、コンピュータ18から生じ、サービスプロバイダ14の認証及び保護されたデータ交換のために有用である可能性があり、このことは、相互認証を可能にし、システムに有益である。
【0157】
別の例において、動的な鍵暗号システムは、コンテンツのデジタル著作権管理を容易にすることができ、コンテンツが、特にコンピュータ18からのコンピュータマニューシャ64を使用することによって特定のコンピュータ18でのみ復号される可能性があり、コンテンツが、特定のユーザが秘密及びバイオメトリックマニューシャ26を入力するときに特定のユーザによる視聴のためにのみ復号される可能性がある。
【0158】
別の例において、予想されるマニューシャDB98は、例えば、音声及び顔認識などのバイオメトリックマニューシャに関してサービスユーザ20の成熟及び加齢に対応するために秘密及びバイオメトリックマニューシャ26からのバイオメトリックマニューシャをモデル化するために拡張される可能性がある。
【0159】
別の例においては、ネットワーク16に接続することができるコンピュータ18のいくつかの形態、例えば、マシンツーマシンシステムは、サービスユーザ20のインタラクションのために設計されない可能性がある。実施形態は、−コンピュータ18以外の特定すべきもの存在するので−この場合もやはり極めて有用である可能性があるが、秘密及びバイオメトリックマニューシャの機能は適用されない可能性がある。
【0160】
さまざまな実施形態において、データ暗号化及び復号190プロセスは、概して、コンピュータ18のローカルの暗号化されたサービスデータ196データベースに記憶されたサービス及びユーザデータ198に対して機能する。しかしながら、別の代替的な実施形態においては、同じ暗号化鍵の処理が、サービス及びユーザデータ198がネットワーク16を介して移動されるときにサービス及びユーザデータ198を守るために使用される可能性がある。同様に、動的な鍵暗号プロバイダ10によって維持されるマニューシャDB70が、コンピュータ18から受信されるときにサービス及びユーザデータ198を復号するために使用され得る。
【0161】
さまざまな実施形態の実装は、従来型のPC、非従来型のPC(すなわち、スマートフォン、スマートタブレット)、特定用途向けネットワークコンピュータ(すなわち、スマートメータ、ネットワーク機器、家電製品)、及びユーザインターフェースを持たないコンピュータ(すなわち、マシンツーマシン機能)を含むがこれらに限定されないインターネット又はその他のネットワークに接続するコンピュータ及びネットワークに接続するコンピュータを含み得る。さまざまな実施形態は、ネットワークに接続するコンピュータを特定することと、広域ネットワークに同時に接続するか又は接続しない互いに接続するコンピュータを特定することと、オンラインサービスへのコンピュータの接続を認証することと、オンラインサービスに対してユーザを認証することと、コンピュータに記憶された情報を暗号化することとを含む可能性がある。
【0162】
さまざまな実施形態の実装において、本発明の実施形態は、パーソナルコンピュータ、ラップトップ、PDA、セルラ電話、又はその他のパーソナルコンピューティング若しくは通信デバイスなどのパーソナルコンピューティングデバイスを含み得る。決済プロバイダシステムは、決済プロバイダシステムによって提供される決済サービスを提供するためのコンピュータシステム又はネットワークを定義するために組み合わされる1つのサーバ若しくは複数のサーバ、コンピュータ、又はプロセッサなどのネットワークコンピューティングコンピュータを備える可能性がある。
【0163】
これに関連して、コンピュータシステムは、処理構成要素(例えば、プロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)など)、システムメモリ構成要素(例えば、RAM)、静的なストレージ構成要素(例えば、ROM)、ディスクドライブ構成要素(例えば、磁気式若しくは光学式)、ネットワークインターフェース構成要素(例えば、モデム若しくはイーサネット(登録商標)カード)、表示構成要素(例えば、CRT若しくはLCD)、入力構成要素(例えば、キーボード若しくはキーパッド)、及び/又はカーソル制御構成要素(例えば、マウス若しくはトラックボール)などのサブシステム及び構成要素を相互接続するバス又は情報を伝達するためのその他の通信機構を含む可能性がある。一実施形態において、ディスクドライブ構成要素は、1つ又は複数のディスクドライブ構成要素を有するデータベースを含む可能性がある。
【0164】
コンピュータシステムは、システムメモリ構成要素に含まれる1つ又は複数の命令の1つ又は複数のシーケンスを実行する、プロセッサによる特定の動作を実行する可能性がある。そのような命令は、静的なストレージ構成要素又はディスクドライブ構成要素などの別のコンピュータ可読媒体からシステムメモリ構成要素に読み込まれる可能性がある。その他の実施形態においては、配線された回路が、実施形態を実装するためにソフトウェア命令の代わりに又はソフトウェア命令と組み合わせて使用される可能性がある。
【0165】
論理が、実行するためにプロセッサに命令を与えることに関与する任意の媒体を指す可能性があるコンピュータ可読及び実行可能媒体で符号化される可能性がある。そのような媒体は、不揮発性媒体、揮発性媒体、及び送信媒体を含むがそれらに限定されない多くの形態をとる可能性がある。一実施形態において、コンピュータ可読媒体は非一時的である。さまざまな実装において、不揮発性媒体は、ディスクドライブ構成要素などの光又は磁気ディスクを含み、揮発性媒体は、システムメモリ構成要素などの動的なメモリを含み、送信メディアは、同軸ケーブル、銅線、及び光ファイバを含み、バスを含む配線を含む。一例において、送信媒体は、電波及び赤外線データ通信中に生成される音波又は光波の形態をとる可能性がある。
【0166】
コンピュータ可読及び実行可能媒体の一部のよくある形態は、例えば、フロッピーディスク(登録商標)、フレキシブルディスク、ハードディスク、磁気テープ、任意のその他の磁気式媒体、CD−ROM、任意のその他の光学式媒体、パンチカード、紙テープ、穴のパターンを用いる任意のその他の物理的媒体、RAM、ROM、E2PROM、FLASH−EPROM、任意のその他のメモリチップ若しくはカートリッジ、搬送波、又はコンピュータが適合される任意のその他の媒体を含む。
【0167】
さまざまな実施形態において、本発明を実施するための命令シーケンスの実行は、コンピュータシステムによって行われ得る。さまざまなその他の実施形態においては、通信リンク(例えば、LAN、WLAN、PTSN、又はさまざまなその他の有線若しくは無線ネットワーク)によって結合された複数のコンピュータシステムが、互いに協調して本発明を実施する命令シーケンスを実行する可能性がある。
【0168】
コンピュータシステムは、通信リンク及び通信インターフェースを通じて1つ又は複数のプログラム(すなわち、アプリケーションコード)を含むメッセージ、データ、情報、及び命令を送受信する可能性がある。受信されたプログラムコードは、実行のために受信され及び/又はディスクドライブ構成要素若しくは何らかのその他の不揮発性ストレージ構成要素に記憶されるとき、プロセッサによって実行され得る。
【0169】
適用可能な場合、本開示によって提供されるさまざまな実施形態は、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組合せを用いて実装される可能性がある。また、適用可能な場合、本明細書において説明されたさまざまなハードウェア構成要素及び/又はソフトウェア構成要素は、本開示の精神を逸脱することなくソフトウェア、ハードウェア、及び/又はそれら両方を含む複合的な構成要素へ組み合わされ得る。適用可能な場合、本明細書において説明されたさまざまなハードウェア構成要素及び/又はソフトウェア構成要素は、本開示の範囲を逸脱することなくソフトウェア、ハードウェア、又はそれら両方を含む下位構成要素へ分けられ得る。加えて、適用可能な場合、ソフトウェア構成要素はハードウェア構成要素として実装される可能性があり、その逆の可能性もある−例えば、仮想的な実装又は論理ハードウェア実装−と考えられる。
【0170】
プログラムコード及び/又はデータなどの、本開示によるソフトウェアは、1つ又は複数のコンピュータ可読及び実行可能媒体に記憶され得る。本明細書において特定されたソフトウェアは、ネットワーク接続された及び/又はそれ以外の1つ又は複数の多目的又は専用コンピュータ及び/又はコンピュータシステムを用いて実装され得るとも考えられる。適用可能な場合、本明細書において説明されたさまざまなステップの順序づけは、本明細書において説明された特徴を提供するために変更され、複合的なステップへ組み合わされる、及び/又は下位ステップへ分けられる可能性がある。
【0171】
以上の開示は、開示された厳密な形態又は特定の使用分野に本発明を限定しようとするものではない。さまざまな代替的な実施形態又は本発明に対する修正が、本明細書において明示的に説明されたか又は暗に示されたかに関わらず本開示に照らしてあり得ると考えられる。このように本開示のさまざまな例示的な実施形態について説明したが、当業者は、本発明の範囲を逸脱することなく形式上の詳細の変更がなされ得ることを認めるであろう。したがって、本発明は、特許請求の範囲によってのみ限定される。