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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7497944クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理
<>
  • 特許-クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理 図1
  • 特許-クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理 図2
  • 特許-クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理 図3
  • 特許-クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理 図4
  • 特許-クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理 図5
  • 特許-クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理 図6
  • 特許-クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-03
(45)【発行日】2024-06-11
(54)【発明の名称】クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理
(51)【国際特許分類】
   G06F 21/31 20130101AFI20240604BHJP
   G06F 21/45 20130101ALI20240604BHJP
【FI】
G06F21/31
G06F21/45
【請求項の数】 20
(21)【出願番号】P 2022512379
(86)(22)【出願日】2020-09-01
(65)【公表番号】
(43)【公表日】2022-11-15
(86)【国際出願番号】 IB2020058130
(87)【国際公開番号】W WO2021048686
(87)【国際公開日】2021-03-18
【審査請求日】2023-02-24
(31)【優先権主張番号】16/564,012
(32)【優先日】2019-09-09
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】グリーン,ソフィー
(72)【発明者】
【氏名】ナイス,デービット,ジェームス
(72)【発明者】
【氏名】ヒド-エヴァンス,レディナ
(72)【発明者】
【氏名】フランシス,スチュワート
(72)【発明者】
【氏名】フォイル,トーマス,ロバート
【審査官】小林 秀和
(56)【参考文献】
【文献】米国特許出願公開第2015/0278509(US,A1)
【文献】特開2013-069325(JP,A)
【文献】国際公開第2011/145098(WO,A1)
【文献】中国特許出願公開第110166250(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/31
G06F 21/45
(57)【特許請求の範囲】
【請求項1】
クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理のためのコンピュータ実装方法であって、
ユーザがクライアント・アプリケーションの認証のためにセキュリティ・クレデンシャルを入力していることを検出するステップと、
入力された前記クレデンシャルの少なくとも一部をハッシュ化し、現在のハッシュ化クレデンシャルを取得し、前記現在のハッシュ化クレデンシャルを格納するステップと、
前記現在のハッシュ化クレデンシャルを、前記クライアント・アプリケーションについて以前に格納されたハッシュ化クレデンシャルと比較するステップと、
前記現在のハッシュ化クレデンシャルと、前記以前に格納されたハッシュ化クレデンシャルとが一致した場合に、前記クライアント・アプリケーションのために要求される前記セキュリティ・クレデンシャルを自動補完するために、検出された前記セキュリティ・クレデンシャルを格納するステップと
を含む、コンピュータ実装方法。
【請求項2】
セキュリティ・クレデンシャルを入力するリズムに基づいて、前記ユーザが多要素認証方法を使用している閾値確率があることを判定し、ハッシュ化および比較を適用し、多要素認証方法が使用されることを確認するか、または、前記クライアント・アプリケーションのための前記クレデンシャルの自動補完のためのクレデンシャルを格納するかのいずれかを行うステップと
をさらに、含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
入力された前記セキュリティ・クレデンシャルの第1の部分および第2の部分の間の入力におけるリズムの休止または変化を識別するための入力された前記セキュリティ・クレデンシャルの解析に基づいて、入力された前記セキュリティ・クレデンシャルを前記第1の部分および前記第2の部分に分割するステップと
をさらに含み、入力された前記クレデンシャルのハッシュ化および比較は、前記第1の部分および前記第2の部分の一方または両方について別個に実行される、請求項1または2に記載のコンピュータ実装方法。
【請求項4】
前記クレデンシャルの前記入力を解析することによって前記第1の部分または前記第2の部分が想定される可変トークン部分であると判定し、前記第1の部分または前記第2の部分の他方が想定される固定パスワード部分であると判定する、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記想定される可変トークン部分の前記現在のハッシュ化クレデンシャルと前記以前に格納されたハッシュ化クレデンシャルとが一致する場合、前記クライアント・アプリケーションの前記セキュリティ・クレデンシャルの自動補完のため前記セキュリティ・クレデンシャルを格納するステップ
をさらに含む、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記想定される可変トークン部分の前記現在のハッシュ化クレデンシャルと前記以前に格納されたハッシュ化クレデンシャルとが一致せず、かつ、前記想定される固定パスワード部分の前記現在のハッシュ化クレデンシャルと前記以前に格納されたハッシュ化クレデンシャルとが一致する場合、前記クライアント・アプリケーションの部分的なクレデンシャルの自動補完のため前記想定される固定パスワード部分を格納するステップ
をさらに含む、請求項4に記載のコンピュータ実装方法。
【請求項7】
前記想定される固定パスワード部分の前記現在のハッシュ化クレデンシャルと、前記以前に格納されたハッシュ化クレデンシャルとが一致しない場合、前記クライアント・アプリケーションの前記クレデンシャルの自動補完のためにクレデンシャルを格納する前に、後続の入力クレデンシャルの方法を繰り返すステップ
をさらに含む、請求項4に記載のコンピュータ実装方法。
【請求項8】
前記コンピュータ実装方法は、クライアント・アプリケーションのためのクレデンシャルの自動補完のためにクレデンシャルをクライアント・コンピューティング・デバイスで格納するために前記クライアント・コンピューティング・デバイスで実行される、請求項1~7のいずれか1項に記載のコンピュータ実装方法。
【請求項9】
前記コンピュータ実装方法は、クライアント・アプリケーションのためのクレデンシャルの自動補完のためにクレデンシャルをクライアント・コンピューティング・デバイスで格納するために遠隔のサービスで前記クライアント・コンピューティング・デバイスのために実行される、請求項1~7のいずれか1項に記載のコンピュータ実装方法。
【請求項10】
クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理のためのコンピュータ・システムであって、
プロセッサと、プロセッサにコンピュータ・プログラム命令を提供し、コンポーネントの機能を実行するように構成されたメモリとを含み、前記コンポーネントは、
ユーザがクライアント・アプリケーションの認証のためにセキュリティ・クレデンシャルを入力していることを検出するためのクレデンシャル検出コンポーネントと、
入力された前記クレデンシャルの少なくとも一部をハッシュ化し、現在のハッシュ化クレデンシャルを取得するハッシュ化コンポーネントおよび前記現在のハッシュ化クレデンシャルを格納するハッシュ格納コンポーネントと、
前記現在のハッシュ化クレデンシャルを、前記クライアント・アプリケーションについて以前に格納されたハッシュ化クレデンシャルと比較するための比較コンポーネントと、
前記現在のハッシュ化クレデンシャルと、前記以前に格納されたハッシュ化クレデンシャルとが一致した場合に、前記クライアント・アプリケーションのために要求される前記セキュリティ・クレデンシャルを自動補完するために、検出された前記セキュリティ・クレデンシャルを格納するためのクレデンシャル格納コンポーネントのための自動クレデンシャル・コンポーネントと
を含む、コンピュータ・システム。
【請求項11】
セキュリティ・クレデンシャルを入力するリズムに基づいて、前記ユーザが多要素認証方法を使用している閾値確率があることを判定するための多要素認証認識コンポーネント
をさらに含む、請求項10に記載のコンピュータ・システム。
【請求項12】
入力された前記セキュリティ・クレデンシャルの第1の部分および第2の部分の間の入力におけるリズムの休止または変化を識別するための入力された前記セキュリティ・クレデンシャルの解析に基づいて、入力された前記セキュリティ・クレデンシャルを前記第1の部分および前記第2の部分に分割するクレデンシャル分割コンポーネント
をさらに含み、前記ハッシュ化コンポーネントおよび前記比較コンポーネントは、前記第1の部分および前記第2の部分の一方または両方について別個に動作する、請求項10または11に記載のコンピュータ・システム。
【請求項13】
前記クレデンシャルの前記入力を解析することによって前記第1の部分または前記第2の部分が想定される可変トークン部分であると判定し、前記第1の部分または前記第2の部分の他方が想定される固定パスワード部分であると判定する部分識別コンポーネント
をさらに含む、請求項12に記載のコンピュータ・システム。
【請求項14】
前記比較コンポーネントが、前記想定される可変トークン部分の前記現在のハッシュ化クレデンシャルと前記以前に格納されたハッシュ化クレデンシャルとが一致すると判定した場合、前記クレデンシャル格納コンポーネントは、前記クライアント・アプリケーションの前記セキュリティ・クレデンシャルの自動補完のため前記セキュリティ・クレデンシャルを格納する、請求項13に記載のコンピュータ・システム。
【請求項15】
前記比較コンポーネントが、前記想定される可変トークン部分の前記現在のハッシュ化クレデンシャルと前記以前に格納されたハッシュ化クレデンシャルとが一致せず、かつ、前記想定される固定パスワード部分の前記現在のハッシュ化クレデンシャルと、前記以前に格納されたハッシュ化クレデンシャルとが一致すると判定した場合、前記クレデンシャル格納コンポーネントは、前記クライアント・アプリケーションの部分的なクレデンシャルの自動補完のため前記想定される固定パスワード部分を格納する、請求項13に記載のコンピュータ・システム。
【請求項16】
前記比較コンポーネントが、前記想定される固定パスワード部分の前記現在のハッシュ化クレデンシャルと、前記以前に格納されたハッシュ化クレデンシャルとが一致しないと判定した場合、前記クレデンシャル格納コンポーネントは、前記クライアント・アプリケーションの前記クレデンシャルの自動補完のためにクレデンシャルを格納する前に、後続の入力クレデンシャルを待つ、請求項13に記載のコンピュータ・システム。
【請求項17】
前記コンピュータ・システムは、クライアント・アプリケーションのためのクレデンシャルの自動補完のためにクレデンシャルをクライアント・コンピューティング・デバイスで格納するために前記クライアント・コンピューティング・デバイスで実行される、請求項10~16のいずれか1項に記載のコンピュータ・システム。
【請求項18】
前記コンピュータ・システムは、クライアント・アプリケーションのためのクレデンシャルの自動補完のためにクレデンシャルをクライアント・コンピューティング・デバイスで格納するために遠隔のサービスで前記クライアント・コンピューティング・デバイスのために実行される、請求項10~16のいずれか1項に記載のコンピュータ・システム。
【請求項19】
クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理のためのコンピュータ・プログラムを格納したコンピュータ可読記録媒体であって、前記コンピュータ・プログラムは、コンピュータに、請求項1~9のいずれか1項に記載のコンピュータ実装方法の各ステップを実行させるためのコンピュータ・プログラムである、コンピュータ可読記録媒体。
【請求項20】
クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理のためのコンピュータ・プログラムであって、
コンピュータに、請求項1~9のいずれか1項に記載のコンピュータ実装方法の各ステップを実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュリティ・クレデンシャル管理に関し、より詳細には、クライアント・アプリケーションのための再利用可能なクレデンシャルを格納するためのセキュリティ・クレデンシャル管理に関する。
【背景技術】
【0002】
クライアント・アプリケーションは、ユーザのログイン識別子およびパスワードを格納するように構成される可能性がある。いくつかのクライアント・コンピューティング・デバイスは、異なるクライアント・アプリケーションのためのユーザのログインクレデンシャルを格納するためにパスワード管理サービスを使用することができる。
【0003】
ユーザ認証を開始するために、格納されたクレデンシャルが自動的にネットワークサーバに送信されてもよい。このプロセスは、既知のクライアント・コンピュータからクレデンシャルを再入力するのに必要な時間を除去することによってユーザの利便性を増大する。
【0004】
ネットワークセキュリティ対策を強化するために、多くの会社が多要素認証(MFA)プロトコルを採用し、この多要素認証では、ユーザは、アプリケーションまたはネットワークにアクセスするために2つの形態の識別子を入力する。多くのMFAシステムでは、識別子の第1の形態は、固定パスワードであり、識別子の第2の形態は、特定のインスタンスについて生成され、使用後または時間の経過後に満了する、ワンタイムパスワード(OTP)である。
【0005】
MFAは、異なるソースからのクレデンシャルを要求とすることによってセキュアな認証を提供する。言い換えれば、第1のクレデンシャルのソースは、第2のクレデンシャルのソースとは異なるべきである。
【0006】
ユーザは、一次識別子を入力してもよく、二次クレデンシャルは、セキュリティトークンによって生成されるワンタイムパスワード(OTP)であってもよい。OTPは、パスコードまたはピンコードの形態での数字、文字および記号の任意の組み合わせであってもよい。OTPは、OTP発生器を有するキーリング・デバイスまたはスマートカードのようなユーザが所有権を有するデバイスによって、または、スマートフォン、タブレット、パーソナル・コンピュータまたは他のコンピューティング・デバイスに埋め込まれたソフトウェア・トークンによって生成されてもよく、あるいは、携帯電話や電子メール・メッセージを経由して受信されてもよい。一度入力されると、第1のクレデンシャルおよび第2のクレデンシャルは、認証機構に送信され、クレデンシャルを検証し、アプリケーション、ネットワークまたはサーバへのユーザのアクセスを許可または制限する。
【0007】
セキュリティ・クレデンシャルは、固定パスワードとOTPとの連結形態であってもよい。これらの例では、クレデンシャルのセットのうちの満了したセットを再送信しても認証機器にユーザに対するアクセスを拒否させるだけなので、ソフトウェア・アプリケーションは、第1の形態の識別だけを格納すべきである。
【0008】
入力セキュリティ・クレデンシャルを分析して、それらがMFAクレデンシャルであるかどうかを判定して、それらが自動入力のために格納されるべきか否かを突き止める方法が知られている。既知の1つの方法は、セキュリティ・クレデンシャルのキー・ストークスのリズムを評価し、固定パスワードの入力とOTPの入力との間の休止を識別する。MFAが使用されていないと判定された場合、クライアントは、パスワードを記憶し、セッションが満了したときにそれを再利用するであろう。しかしながら、MFAが使用されていると判定された場合には、クライアントは、パスワードを記憶せず、ユーザのパスワードを無効にすることを回避するために、ユーザを毎回再プロンプトするであろう。
【0009】
よって、上記課題を解決すことが当該技術分野で必要とされている。
【発明の概要】
【0010】
第1の側面から見ると、本発明は、クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理のためのコンピュータ実装方法であって、ユーザがクライアント・アプリケーションの認証のためにセキュリティ・クレデンシャルを入力していることを検出するステップと、入力されたクレデンシャルの少なくとも一部をハッシュ化し、現在のハッシュ化クレデンシャルを取得し、現在のハッシュ化クレデンシャルを格納するステップと、現在のハッシュ化クレデンシャルを、クライアント・アプリケーションについて以前に格納されたハッシュ化クレデンシャルと比較するステップと、現在のハッシュ化クレデンシャルと、以前に格納されたハッシュ化クレデンシャルとが一致した場合に、クライアント・アプリケーションに求められるセキュリティ・クレデンシャルを自動補完するために、検出されたセキュリティ・クレデンシャルを格納するステップとを含む、コンピュータ実装方法を提供する。
【0011】
さらなる側面から見ると、本発明は、クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理のためのコンピュータ・システムであって、プロセッサと、プロセッサにコンピュータ・プログラム命令を提供し、コンポーネントの機能を実行するように構成されたメモリとを含み、コンポーネントが、ユーザがクライアント・アプリケーションの認証のためにセキュリティ・クレデンシャルを入力していることを検出するためのクレデンシャル検出コンポーネントと、入力されたクレデンシャルの少なくとも一部をハッシュ化し、現在のハッシュ化クレデンシャルを取得するハッシュ化コンポーネントおよび現在のハッシュ化クレデンシャルを格納するハッシュ格納コンポーネントと、現在のハッシュ化クレデンシャルを、クライアント・アプリケーションについて以前に格納されたハッシュ化クレデンシャルと比較するための比較コンポーネントと、現在のハッシュ化クレデンシャルと、以前に格納されたハッシュ化クレデンシャルとが一致した場合に、クライアント・アプリケーションに求められるセキュリティ・クレデンシャルを自動補完するために、検出されたセキュリティ・クレデンシャルを格納するためのクレデンシャル格納コンポーネントのための自動クレデンシャル・コンポーネントとを含む、コンピュータ・システムを提供する。
【0012】
さらなる側面から見ると、本発明は、クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理のためのコンピュータ・プログラム製品であって、コンピュータ・プログラム製品は、これとともに具体化されたプログラム命令を有するコンピュータ可読記憶媒体を含み、プログラム命令は、プロセッサに、ユーザがクライアント・アプリケーションの認証のためにセキュリティ・クレデンシャルを入力していることを検出させ、入力されたクレデンシャルの少なくとも一部をハッシュ化し、現在のハッシュ化クレデンシャルを取得させ、現在のハッシュ化クレデンシャルを格納させ、現在のハッシュ化クレデンシャルを、クライアント・アプリケーションについて以前に格納されたハッシュ化クレデンシャルと比較させ、現在のハッシュ化クレデンシャルと、以前に格納されたハッシュ化クレデンシャルとが一致した場合に、クライアント・アプリケーションに求められるセキュリティ・クレデンシャルを自動補完するために、検出されたセキュリティ・クレデンシャルを格納させるようにプロセッサが実行可能である、コンピュータ・プログラム製品を提供する。
【0013】
さらなる側面から見ると、本発明は、クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理のためのコンピュータ・プログラム製品であって、処理回路により読み取り可能であり、処理回路によって本発明のステップを実行する方法を実行するための命令を格納するためのコンピュータ可読記録媒体を含む、コンピュータ・プログラム製品を提供する。
【0014】
さらなる側面から見ると、本発明は、コンピュータ可読媒体に格納され、デジタル・コンピュータの内部メモリに読み込み可能なコンピュータ・プログラムであって、プログラムがコンピュータ上で実行されたとき、本発明のステップを実行するためのソフトウェア・コード部分を含む、コンピュータ・プログラムを提供する。
【0015】
本発明の一側面によれば、クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理のためのコンピュータ実装方法が提供され、コンピュータ実装方法は、ユーザがクライアント・アプリケーションの認証のためにセキュリティ・クレデンシャルを入力していることを検出するステップと、入力されたクレデンシャルの少なくとも一部をハッシュ化し、現在のハッシュ化クレデンシャルを取得し、現在のハッシュ化クレデンシャルを格納するステップと、現在のハッシュ化クレデンシャルを、クライアント・アプリケーションについて以前に格納されたハッシュ化クレデンシャルと比較するステップと、現在のハッシュ化クレデンシャルと、以前に格納されたハッシュ化クレデンシャルとが一致した場合に、クライアント・アプリケーションに求められるセキュリティ・クレデンシャルを自動補完するために、検出されたセキュリティ・クレデンシャルを格納するステップとを含む。
【0016】
本発明の別の側面によれば、クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理のためのシステムが提供され、システムは、プロセッサと、プロセッサにコンピュータ・プログラム命令を提供し、コンポーネントの機能を実行するように構成されたメモリとを含み、コンポーネントは、ユーザがクライアント・アプリケーションの認証のためにセキュリティ・クレデンシャルを入力していることを検出するためのクレデンシャル検出コンポーネントと、入力されたクレデンシャルの少なくとも一部をハッシュ化し、現在のハッシュ化クレデンシャルを取得するハッシュ化コンポーネントおよび現在のハッシュ化クレデンシャルを格納するハッシュ格納コンポーネントと、現在のハッシュ化クレデンシャルを、クライアント・アプリケーションについて以前に格納されたハッシュ化クレデンシャルと比較するための比較コンポーネントと、現在のハッシュ化クレデンシャルと、以前に格納されたハッシュ化クレデンシャルとが一致した場合に、クライアント・アプリケーションに求められるセキュリティ・クレデンシャルを自動補完するために、検出されたセキュリティ・クレデンシャルを格納するためのクレデンシャル格納コンポーネントのための自動クレデンシャル・コンポーネントとを含む。
【0017】
本発明のさらなる側面によれば、クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理のためのコンピュータ・プログラム製品が提供され、コンピュータ・プログラム製品は、これとともに具体化されたプログラム命令を有するコンピュータ可読記憶媒体を含み、プログラム命令は、プロセッサに、ユーザがクライアント・アプリケーションの認証のためにセキュリティ・クレデンシャルを入力していることを検出させ、入力されたクレデンシャルの少なくとも一部をハッシュ化し、現在のハッシュ化クレデンシャルを取得させ、現在のハッシュ化クレデンシャルを格納させ、現在のハッシュ化クレデンシャルを、クライアント・アプリケーションについて以前に格納されたハッシュ化クレデンシャルと比較させ、現在のハッシュ化クレデンシャルと以前に格納されたハッシュ化クレデンシャルとが一致した場合に、クライアント・アプリケーションに求められるセキュリティ・クレデンシャルを自動補完するために、検出されたセキュリティ・クレデンシャルを格納させるようにプロセッサが実行可能である。
【0018】
本発明とみなされる主題は、明細書の結論部分において、特に指摘され、明確に特許請求される。本発明は、これらの目的、特徴および利点とともに、動作の編成および方法の両方として、添付の図面を参照して以下の詳細な説明を参照することにより最もよく理解されるであろう。
【0019】
以下、本発明の好ましい実施形態について、例としてのみであるが、以下の図面を参照しながら説明する。
【図面の簡単な説明】
【0020】
図1】本発明を実装することができるシステムの例示的な実施形態のブロック図である。
図2】本発明による方法の第1の例示的な実施形態のフロー図である。
図3】本発明による方法の第2の例示的な実施形態のフロー図である。
図4】本発明によるシステムの例示的な実施形態のブロック図である。
図5】本発明を実装することができるコンピュータ・システムまたはクラウド・サーバの実施形態のブロック図である。
図6】本発明を実施することができるクラウド・コンピューティング環境の概略図である。
図7】本発明を実施することができるクラウド・コンピューティング環境の抽象化モデル層の図である。
【発明を実施するための形態】
【0021】
説明を簡単かつ明瞭にするために、図面に示された要素は必ずしも縮尺通りに描かれていないことが理解されよう。例えば、いくつかの要素の寸法は、明瞭のために他の要素に対して誇張されている可能性がある。さらに、適切であると考えられる場合には、対応するまたは類似の特徴を示すために図面の間で参照番号が繰り返されている可能性もある。
【0022】
クライアント・アプリケーションのためのセキュリティ・クレデンシャル管理のための方法およびシステムが説明される。セキュリティ・クレデンシャル管理は、クライアント・アプリケーションを使用する場合の自動提供のためクレデンシャルを格納する。しかしながら、管理は、固定されたセキュリティ・クレデンシャルとMFA法により変化するものとを区別する必要がある。特に、MFA方法は、OTPを固定パスワードと連結して、クレデンシャルを形成する可能性がある。
【0023】
本発明の実施形態は、現在のMFA分析および方法が、MFAクレデンシャルを識別する際に、結果として偽陽性をもたらす可能性があることを認識する。偽陽性は、ユーザのパスワードが記憶されていない結果となり、不十分なユーザ体験をもたらすであろう。ユーザが覚えるべき日付または数の組み合わせで終わる複雑なパスワードを入力し、したがって、よりゆっくりとしたキーストローク入力速度でのパスワードの後半半分をもたらすであろう場合に、偽陽性が発生する可能性がある。
【0024】
本発明の実施形態は、クレデンシャル全体またはクレデンシャルの1以上の部分のハッシュを比較することによって、クライアント・アプリケーションのための現在提供されているクレデンシャルおよび以前に入力されたクレデンシャルを比較するためのソリューションを提供する。
【0025】
一実施形態では、クレデンシャル全体が比較され、それらが一致する場合、クレデンシャルは、クライアント・アプリケーションのための自動補完のために格納されるのに適している。これは、分析が行われ、クレデンシャルが、格納されるべきでないMFAクレデンシャルであることを示唆する場合、バックアップのチェックとして有用である可能性がある。
【0026】
別の実施形態では、クレデンシャルは、固定パスワードであると想定される第1の部分と、OTPのような可変トークンであると仮定される第2の部分とに分割されてもよい。少なくとも第2の部分が、ハッシュ化され、第2の部分の以前のハッシュ化されたバージョンと比較され、その部分が可変トークンであるかどうかを見ることができる。他の変形例では、以下にさらに説明するように両方の部分が比較される。
【0027】
本方法は、それが入力される毎にパスワードおよびトークンを比較することによって、入力されたクレデンシャルがMFAトークンを含むかどうかを確認するための簡単なヒューリスティックを実行する、ひとつのクライアントソフトウェアをクライアント側で使用してユーザによるMFAの使用を検出する。
【0028】
図1を参照すると、本発明を実装することができるシステム100の例示的な実施形態が提供される。システム100は、関連する遠隔のサーバ110またはネットワークに接続するときに認証を必要するクライアント・アプリケーション134を有するクライアント・コンピューティング・デバイス130を含んでもよい。
【0029】
クライアント・コンピューティング・デバイス130は、説明されるコンポーネントの機能を実行するための少なくとも1つのプロセッサ131、ハードウェア・モジュールまたは回路を含んでもよく、ここで、コンポーネントは、少なくとも1つのプロセッサ上で実行するソフトウェアユニットである可能性がある。並列処理スレッドを実行する複数のプロセッサが提供され、コンポーネントの機能の一部または全部を並列処理することを可能してもよい。メモリ132は、少なくとも1つのプロセッサ131にコンピュータ命令133を提供するように構成されてもよい。
【0030】
コンピュータ命令133は、例えばアプリケーションの認証コンポーネント135を通して認証を要求するクライアント・アプリケーション134を含んでもよい。クライアント・コンピューティング・デバイス130は、また、認証コンポーネント135にクレデンシャルを入力するための入出力デバイス136を含んでもよく、入出力デバイス136は、キーボード、マウス、タッチスクリーン・ディスプレイなどであってもよい。
【0031】
認証コンポーネント135は、MFAを使用してもよく、MFAでは、I/Oデバイス136を通じて、クライアント・アプリケーション134の認証コンポーネント135に入力するため、OTP提供デバイス120などの他のソースからOTPが提供される。OTPは、クライアント・アプリケーション134のユーザの固定パスワードに連結される入力であってもよい。
【0032】
説明されるシステムは、クライアント・コンピューティング・デバイス130を介したクレデンシャル入力を管理するためのクレデンシャル・セキュリティ管理コンポーネント160を提供する。クレデンシャル・セキュリティ管理コンポーネント160は、クライアント・コンピューティング・デバイス130にローカルに提供されてもよいし、セキュアな遠隔サービスとして提供されてもよい。クレデンシャル・セキュリティ管理コンポーネント160は、クライアント・コンピューティング・デバイスにおいてまたはセキュアな通信チャネルを介して遠隔でのいずれかのストレージ・デバイス170にクレデンシャルを格納するためのクレデンシャル格納コンポーネント163と、認証コンポーネント135におけるクレデンシャルの自動補完のための自動補完コンポーネント164とを提供してもよい。
【0033】
クレデンシャル・セキュリティ管理コンポーネント160は、いずれのクレデンシャルが自動補完のために格納され得るかを評価するために、認証コンポーネント135がMFAを使用している場合を識別するためのMFA認識コンポーネント161を含んでもよい。説明されるシステムは、クレデンシャルが、格納されるべきではない可変のMFAクレデンシャルであるか、または格納され得る固定のクレデンシャルであるかを検証するためのクレデンシャル確認コンポーネント162を提供する。
【0034】
図2を参照すると、フロー図200が、クレデンシャル・セキュリティ管理コンポーネント160によって実行されるとして、説明される方法の第1の例示的な実施形態を示す。
【0035】
本方法は、クライアント・アプリケーションのためのユーザ・クレデンシャルの入力を受信することができる(201)。クレデンシャルがMFAの使用の可能性を含むかを決定することができる(202)。これは、種々の方法によって決定することができ、種々の方法には、OTPのような可変トークンの使用を示すクレデンシャルの一部の遅延またはより遅い入力があるかどうかを決定するためのクレデンシャルの入力キーストロークのリズムの分析が含まれる。一実施形態では、MFAの使用の可能性は、閾値確率によって測定される。
【0036】
クレデンシャルがMFAを使用する可能性がないと判定された場合、クレデンシャルは、将来の自動補完のために格納され得る(207)。
【0037】
しかしながら、クレデンシャルがMFAを使用する可能性があると判定された場合、これは、入力クレデンシャルのストリング全体のセキュアなハッシュを取得し、その結果を格納すること(203)によって、確認することができる。セキュアハッシュが、クレデンシャルのメッセージダイジェストを生成するために一方向暗号ハッシュ関数を適用することができる。メッセージダイジェストは、セキュアに格納されてもよく、同一の入力クレデンシャルから別のメッセージダイジェストが生成されたことを検証するために使用することができる。現在生成されたメッセージダイジェストを、以前に入力されたクレデンシャルの格納された以前に生成されたメッセージダイジェストと比較204することによって検証が実行される。
【0038】
メッセージダイジェストが一致するかどうかを決定することができる(205)。もしそうであれば、これは、クレデンシャルが、可変トークンを含んでおらず、認証の自動補完のために格納することができることを示す。メッセージダイジェストが一致しないと判定された場合(205)、これは、クレデンシャルが、MFAで使用されるように可変トークンを含むか、または、クレデンシャルが変更されたことを示しており、そのため、クレデンシャルは格納されない(206)。クレデンシャルが、パスワード更新により変更され、可変トークンを含まない場合、次にクレデンシャルが入力されたときに生成されるメッセージダイジェストは、この生成されたメッセージダイジェストと一致し、クレデンシャルが格納されるであろう。
【0039】
メッセージは、次いで、次のクレデンシャルの入力を待ち(210)、本方法は、繰り返されてもよい。
【0040】
図3を参照すると、フロー図300は、クレデンシャル・セキュリティ管理コンポーネント160によって実行されるとして、説明される方法の第2の例示的な実施形態を示す。
【0041】
第1の実施形態と同様に、本方法は、クライアント・アプリケーションのためのユーザ・クレデンシャルの入力を受信することができる(301)。クレデンシャルがMFAの使用の可能性を含むかを決定することができる(302)。これは、種々の方法によって決定することができ、種々の方法には、OTPのような可変トークンの使用を示すクレデンシャルの一部の遅延またはより遅い入力があるかどうかを決定するためのクレデンシャルの入力キーストロークのリズムの分析が含まれる。一実施形態では、MFAの使用の可能性は、閾値確率によって測定される。
【0042】
クレデンシャルがMFAを使用する可能性がないと判定された場合(303)、クレデンシャルは、将来の自動補完のために格納されてもよい(321)。
【0043】
しかしながら、クレデンシャルがMFAを使用する可能性があると判定された場合(303)、方法は、MFAが使用されているかどうかの解析に基づいて、クレデンシャルを分割し(304)、分割部分を解析し(305)、想定される固定パスワード部分および想定される可変トークン部分を決定することができる。例えば、入力キーストロークのリズムを使用する方法は、クレデンシャルの2つの部分の間の明確な区別を示す可能性があり、それらのうちの1つは、固定パスワードであると想定することができ、そのうちの1つは、OTPのような可変トークンであると想定することができる。
【0044】
例えば、キーストロークのリズムが入力中の休止を示す場合、休止は、2つの部分の間の分割を示す可能性があり、各部分におけるキーストロークの入力の相対的な速度は、新規に受信される可変トークンよりも速い入力によって既知の固定パスワードを示す可能性がある。部分が可変トークンであるか否かを判定する別の方法は、文字を解析し、ほとんど数字の部分は、可変トークンを示す可能性がある。
【0045】
本方法は、想定される固定パスワード部分のセキュアハッシュを取得し、結果として得られたメッセージダイジェストを格納してもよい(306)。現在生成されたメッセージダイジェストは、以前に格納されたメッセージダイジェストと比較される(307)。
【0046】
本方法は、また、想定される可変トークン部分のセキュアハッシュを取得し、結果として得られたメッセージダイジェストを格納してもよい(308)。現在生成されたメッセージダイジェストは、以前に格納されたメッセージダイジェストと比較される(309)。
【0047】
ハッシュ化比較は、MD5、SHAまたはSHA256のような非ソルト化ハッシュアルゴリズムを使用してもよい。これは、特定のストリングに対するハッシュが常に同一であり、直接比較できることを意味する。これらの非ソルト化ハッシュアルゴリズムは、新しいソルト化アルゴリズムほど安全ではないため、パスワードを有線で送信する際に使用されない可能性があるが、しかしながら、MFAが使用されているかどうかを判定する目的で、クライアントによってローカルに格納されるのには十分な安全性を有する。
【0048】
想定される可変トークン部分のメッセージダイジェストが一致するかどうかが判定される(310)。もしそうであれば、これは、想定される可変トークン部分が実際に固定されており、MFAが使用されていないことを示し、そのため、将来の自動補完のためクレデンシャルを格納することができる(321)。例えば、これは、想定される可変トークンが、実際にはパスワードの最後の日付であったり、よりゆっくりの入力リズムを有した別のパスワード部分であったりする場合に起こる可能性がある。
【0049】
想定される可変トークン部分のメッセージダイジェストが一致しないと判定された場合(310)、それらは、実際、可変であり、MFAがクレデンシャルで使用されていることを示す。本方法は、次いで、想定される固定パスワード部分のメッセージダイジェストが一致するかを判定してもよい(311)。もしそうであれば、クレデンシャルがMFAを使用しており、少なくともトークン部分は格納されてはならないと想定され得る。将来の自動補完のために、固定されたパスワード部分を格納してもよい。
【0050】
想定される固定パスワード部分のメッセージダイジェストが一致しないと判定された場合311、これは、パスワードがリセット323されたことを示す可能性があり、新たなパスワードが確認される次の反復まで、クレデンシャルが格納されるべきではないことを示す。
【0051】
全ての場合において、本方法は、次いで、検証のためのクレデンシャルの次の入力を待ってもよい(324)。MFAが使用されているという仮定の正確さは、いくつかの認証試みまたは各認証において検証されてもよい。
【0052】
本方法は、クライアント側のソフトウェアを用いて、固定パスワードおよび可変トークンの分割を検出し、両側をハッシュ化して格納し、クレデンシャルを求められるごとに、パスワード部分が同一のままであり、かつ、毎回トークン部分が変化していることを確認することによって、両側を比較する。
【0053】
既知の方法を用いて、クレデンシャルがMFAを使用している可能性が高いかどうかを検出することができる。MFAが使用されている可能性が高い場合には、パスワードをこの時点で格納せず、クレデンシャルが可変部分を含むかどうかを検証するための追加のステップが実行される。ユーザのパスワードが、日付で終了する可能性があり、これが、MFA分析システムによってトークンであると解釈される可能性があり、実際にはクレデンシャルが固定され、格納され得る場合でも、MFAの偽陽性が想定される可能性がある。
【0054】
本方法は、サーバにとってMFAが使用されているか否かが未知である場合、MFAトークンが使用されているかどうかを決定するために、2つの入力されたクレデンシャルの間の差分のより深い分析を提供するために使用されてもよい。
【0055】
図4を参照すると、ブロック図は、図1のクレデンシャル・セキュリティ管理コンポーネント160のクレデンシャル確認コンポーネント162の更なる詳細を示す。
【0056】
クレデンシャル確認コンポーネント162は、ユーザがクライアント・アプリケーションの認証のためにセキュリティ・クレデンシャルを入力していることを検出するためのクレデンシャル検出コンポーネント401を含んでもよい。クレデンシャル検出コンポーネント401は、MFA法を使用する閾値確率を有するものとしてMFA認識コンポーネント161によって判定されたクレデンシャルに限定されてもよい。
【0057】
クレデンシャル確認コンポーネント162は、第1の部分および第2の部分の間の入力におけるリズムの休止または変化を識別するための入力されたセキュリティ・クレデンシャルの解析に基づいて、入力されたセキュリティ・クレデンシャルを第1の部分と第2の部分とに分割ためのクレデンシャル分割コンポーネント402を含んでもよい。クレデンシャル確認コンポーネント162は、クレデンシャルの入力を解析することによって第1の部分または第2の部分が想定される可変トークン部分であると判定し、第1の部分または第2の部分の他方が想定される固定パスワード部分であると判定するための部分識別コンポーネント403を含んでもよい。
【0058】
クレデンシャル確認コンポーネント162は、入力されたクレデンシャルの少なくとも一部分をハッシュ化し、現在のハッシュ化クレデンシャルを取得するためのハッシュ化コンポーネント404と、現在のハッシュ化クレデンシャルを格納するハッシュ格納コンポーネント406と、現在のハッシュ化クレデンシャルを、クライアント・アプリケーションについて以前に格納されたハッシュ化クレデンシャルと比較するための比較コンポーネント405とを含んでもよい。
【0059】
ハッシュ化コンポーネント404および比較コンポーネント405は、クレデンシャル文字列全体で動作してもよく、または第1の部分および第2の部分の一方または両方で別個に動作してもよい。
【0060】
クレデンシャル・セキュリティ管理コンポーネント160は、自動クレデンシャル・コンポーネント164と、MFAが認証クレデンシャルに使用されない場合に、クライアント・アプリケーションについてクレデンシャルの自動補完のためのクレデンシャルを格納するためのクレデンシャル格納コンポーネント163とを含んでもよい。
【0061】
クレデンシャルが想定される固定パスワード部分と想定される可変トークン部分とに分割される実施形態では、次が発生する。
【0062】
比較コンポーネント405が、想定される可変トークン部分の現在のハッシュ化クレデンシャルと以前に格納されたハッシュ化クレデンシャルとが一致すると判定した場合、クレデンシャル格納コンポーネント163は、クライアント・アプリケーションのセキュリティ・クレデンシャルの自動補完のためクレデンシャルを格納してもよい。
【0063】
比較コンポーネント405が、想定される可変トークン部分の現在のハッシュ化クレデンシャルと以前に格納されたハッシュ化クレデンシャルとが一致せず、かつ、想定される固定パスワード部分の現在のハッシュ化クレデンシャルと以前に格納されたハッシュ化クレデンシャルとが一致すると判定した場合、クレデンシャル格納コンポーネント163は、クライアント・アプリケーションの部分的なクレデンシャルの自動補完のため想定される固定パスワード部分を格納する。
【0064】
比較コンポーネント405が、想定される固定パスワード部分の現在のハッシュ化クレデンシャルと、以前に格納されたハッシュ化クレデンシャルとが一致しないと判定した場合、クレデンシャル格納コンポーネント163は、クライアント・アプリケーションのクレデンシャルの自動補完のためクレデンシャルを格納する前に、後続の入力クレデンシャルを待ってもよい。
【0065】
図5は、本発明の実施形態例に従う、図1のシステム100のクライアント・コンピューティング・デバイス130のコンポーネントのブロック図を示す。図5は、単に1つの実装の例を提供しており、異なる実施形態を実装し得る環境に関して如何なる制限も暗に示すものではないことが理解されるべきである。図示された環境に対して多くの変更が可能である。
【0066】
クライアント・コンピューティング・デバイス130は、1以上のプロセッサ502、1以上のコンピュータ可読RAM504、1以上のコンピュータ可読ROM506、1以上のコンピュータ可読記憶媒体508、デバイス・ドライバ512、読出し/書き込みドライブまたはインタフェース514、ネットワーク・アダプタまたはインタフェース516を含み、すべては通信ファブリック518を介して相互接続される。通信ファブリック518は、プロセッサ(マイクロプロセッサ、通信プロセッサ、およびネットワーク・プロセッサなど)、システム・メモリ、周辺機器およびシステム内の任意のその他のハードウェア・コンポーネントの間で、データまたは制御情報あるいはその両方を渡すために設計された、任意のアーキテクチャで実装されてもよい。
【0067】
1以上のオペレーティング・システム510および1以上のアプリケーション・プログラム511、例えばクライアント・アプリケーション134およびクレデンシャル・セキュリティ管理コンポーネントが、それぞれのRAM504(典型的にキャッシュ・メモリを含む。)の1以上を介してプロセッサ502の1以上による実行のために、コンピュータ可読記憶媒体508の1以上に格納される。例示される実施形態において、コンピュータ可読記憶媒体508の各々は、本発明の実施形態に従った、内部ハード・ドライブの磁気ディスク・ストレージ・デバイス、CD-ROM、DVD、メモリースティック、磁気テープ、磁気ディスク、光ディスク、RAMやROM、EPROM、フラッシュ・メモリなどの半導体ストレージ・デバイス、またはコンピュータ・プログラムおよびデジタル情報を記憶することができる任意の他のコンピュータ可読記憶媒体であってもよい。
【0068】
クライアント・コンピューティング・デバイス130は、1以上のポータブル・コンピュータ可読記憶媒体526との間で読み書きするR/Wドライブまたはインタフェース514も含んでもよい。クライアント・コンピューティング・デバイス130上のアプリケーション・プログラム511は、ポータブル・コンピュータ可読記憶媒体526の1以上に格納され、それぞれのR/Wドライブまたはインタフェース514を介して読み出され、それぞれのコンピュータ可読記憶媒体508に読み込まれてもよい。
【0069】
クライアント・コンピューティング・デバイス130は、TCP/IPアダプタ・カードまたは無線通信アダプタといったネットワーク・アダプタまたはインタフェース516も含んでもよい。クライアント・コンピューティング・デバイス130上のアプリケーション・プログラム511は、ネットワーク(たとえば、インターネット、ローカル・エリア・ネットワークまたは他のワイド・エリア・ネットワークもしくは無線ネットワーク)およびネットワーク・アダプタまたはインタフェース516を介して、外部コンピュータまたは外部ストレージ・デバイスからコンピューティング・デバイスにダウンロードされてもよい。プログラムは、ネットワーク・アダプタまたはインタフェース516から、コンピュータ可読記憶媒体508上へ読み込まれてもよい。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータまたはエッジ・サーバ、あるいはそれらの組合せを含んでもよい。
【0070】
クライアント・コンピューティング・デバイス130は、また、ディスプレイ画面520、キーボードまたはキーパッド522、およびコンピュータ・マウスまたはタッチパッド524を含んでもよい。デバイス・ドライバ512は、画像化のためのディスプレイ画面520に、キーボードまたはキーパッド522に、コンピュータ・マウスまたはタッチパッド524に、もしくは英数字入力およびユーザ選択の圧力感知のためのディスプレイ画面520に、またはそれらの組み合せにインタフェース接続する。デバイス・ドライバ512、R/Wドライブまたはインタフェース514およびネットワーク・アダプタまたはインタフェース516は、ハードウェアと、コンピュータ可読記憶媒体508もしくはROM506またはこれらの両方に格納されるソフトウェアを含んでもよい。
【0071】
本発明は、任意の統合の可能な技術的な詳細のレベルでのシステム、方法もしくはコンピュータ・プログラム製品またはこれらの組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の側面を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読記憶媒体を含んでもよい。
【0072】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持し格納する有形のデバイスであってよい。コンピュータ可読記憶媒体は、例えば、これに限定されるものではないが、電子的ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは上記の任意の適切な組み合わせであってよい。コンピュータ可読記憶媒体のより具体的な例示の非網羅的リストとしては、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリースティック、フロッピーディスク(登録商標)、パンチカードまたは記録された命令を有する溝内の隆起構造のような機械的エンコードされたデバイス、および上記の任意の適切な組み合わせが含まれる。コンピュータ可読記憶媒体は、本明細書で使用されるように、電波、自由伝搬する電磁波、導波路または他の伝送媒体を伝搬する電磁波(たとえば、ファイバ光ケーブルを通過する光パルス)または、ワイヤを通して伝送される電気信号のような、それ自体が一時的な信号として解釈されるものではない。
【0073】
本明細書で説明されるコンピュータ可読プログラム命令は、それぞれのコンピュータ/処理デバイスに、コンピュータ可読記憶媒体から、または、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはこれらの組み合わせといったネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジ・サーバまたはこれらの組み合わせを含んでもよい。各コンピュータ/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【0074】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データ、または、1以上のプログラミング言語の任意の組み合わせで書かれたソース・コードあるいはオブジェクト・コードであってよく、1以上のプログラミング言語は、Smalltalk(登録商標)、C++またはこれらに類するもなどのオブジェクト指向言語、Cプログラミング言語または類似のプログラミング言語などの手続型言語を含む。コンピュータ可読プログラム命令は、スタンド・アローンのソフトウェア・パッケージとして、全体としてユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上かつ部分的に遠隔のコンピュータ上で、または、完全に遠隔のコンピュータまたはサーバ上で実行されてもよい。後者のシナリオでは、遠隔のコンピュータは、ユーザのコンピュータに、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じて接続されてもよく、あるいは接続は、(例えば、インターネット・サービス・プロバイダを用いてインターネットを通じて)外部コンピュータになされてもよい。いくつかの実施形態においては、電気的回路は、本発明の側面を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、電気的回路を個別化することによって、コンピュータ可読プログラム命令を実行してもよく、この電気的回路は、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む。
【0075】
本明細書において、本発明の実施形態に従った方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、本発明の側面が説明される。フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されてもよいことが理解されよう。
【0076】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、特定用途コンピュータのプロセッサまたは他のプログラマブル・データ処理装置に提供され、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置を介して実行される命令が、フローチャート図もしくはブロック図またはその両方のブロックまたは複数のブロックにおいて特定される機能/作用を実装するための手段を作成するように、マシンを生成する。
【0077】
これらのコンピュータ可読プログラム命令は、また、コンピュータ、プログラマブル・データ処理装置もしくは他のデバイスまたはこれらの組み合わせに特定のやり方で機能するよう指示できるコンピュータ可読記憶媒体に格納され、それに格納された命令を有するコンピュータ可読記憶媒体に、フローチャート図もしくはブロック図またはその両方のブロックまたは複数のブロックで特定される機能/作用の側面を実装する命令を含む製品が含まれるようにする。
【0078】
コンピュータ可読プログラム命令は、また、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに読み込まれ、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で一連の動作ステップを実行させて、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で実行される命令が、フローチャートもしくはブロックまたはその両方のブロックまたは複数のブロックで特定される機能/作用の側面を実装するように、コンピュータ実装処理を生成することもできる。
【0079】
図面におけるフローチャート図およびブロック図は、本発明の種々の実施形態に従ったシステム、方法およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能性および動作を示す。この点に関して、フローチャート図またはブロック図の各ブロックは、特定の論理機能(複数を含む)を実装するための1以上の実行可能な命令を含む、モジュール、セグメントまたは命令の部分を表す可能性がある。いくつかの代替の実装では、ブロックにおいて言及された機能は、図面に示された順序から外れて生じる可能性がある。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてもよく、あるいは、複数のブロックは、関与する機能性に応じて逆の順序で実行されてもよい。ブロック図もしくはフローチャート図またはその両方の各ブロックおよびブロック図もしくはフローチャート図またはその両方の複数のブロックの組み合わせが、特定の機能または作用を実行し、または、特別な目的のハードウェアおよびコンピュータ命令の組み合わせを実行する、特定目的ハードウェアベースのシステムによって実装されてもよいことに留意されたい。
【0080】
クラウド・コンピューティング
この開示は、クラウド・コンピューティングについての詳細な説明を含むが、本明細書で詳述される教示の実装は、クラウド・コンピューティング環境に限定されないことに理解されたい。むしろ、本発明の実施形態は、現時点で知られた、またはこれから開発される他の任意のタイプのコンピューティング環境と併せて実装可能である。
【0081】
クラウド・コンピューティングは、最小の管理労力またはサービス・プロバイダとの対話で迅速にプロビジョニングおよびリリースされ得る、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシンおよびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能とする、サービス配布のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデルおよび少なくとも4つのデプロイメント・モデルを含む可能性がある。
【0082】
特性は、以下の通りである。
オンデマンド・セルフ・サービス:クラウド・コンシューマは、サービス・プロバイダとの人的な対話を必要とせずに自動的に必要なだけ、サーバ時間およびネットワーク・ストレージなどのコンピュータ能力を一方的にプロビジョニングすることができる。
広帯域ネットワーク・アクセス:能力は、ネットワーク越しに利用可能であり、異種シン・クライアントまたはシック・クライアント・プラットフォーム(例えば、モバイルフォン、ラップトップ、PDA)による使用を促進する標準的なメカニズムを介して、アクセスされる。
リソース・プーリング:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて複数のコンシューマに提供するためにプールされ、種々の物理的および仮想的リソースが需要に従って動的に割り当てられ、また、再割り当てられる。コンシューマは、一般的に、提供されるリソースの正確な場所を管理したり、知識を有したりせず、しかし、より高度な抽象レベル(例えば国、州、またはデータセンタ)にて場所を指定することが可能であるという意味で、場所の独立感がある。
迅速な弾力性:能力は、迅速かつ柔軟に、いくつかの場合では自動的に、プロビジョニングされて素早くスケール・アウトすることができ、また、迅速にリリースされて素早くスケール・インすることができる。コンシューマにとって、プロビジョニング利用可能な能力は、しばしば外面的には無制限のように見え、任意の時間に任意の量を購入することができる。
測量されたサービス:クラウドシステムは、サービスのタイプにとって適切なある抽象レベル(例えば、ストレージ、処理、帯域幅、アクティブ・ユーザ)での計量能力を利用することによって、自動的にリソース使用を制御し、また最適化する。リソース使用量は、監視され、制御されおよび報告されて、利用サービスのプロバイダおよびコンシューマの双方に対する透明性を提供する。
【0083】
サービス・モデルは、以下の通りである。
ソフトウェア・アズ・ア・サービス(SaaS):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えばウェブベースの電子メール)などのシン・クライアント・インタフェースを介して種々のクライアント・デバイスからアクセス可能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または、限定されたユーザ固有のアプリケーション構成設定の潜在的な例外を除いて個々のアプリケーション能力すらも含む下層のインフラストラクチャを管理または制御しない。
プラットフォーム・アズ・ア・サービス(PaaS):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを用いて作成された、コンシューマ作成または獲得のアプリケーションをクラウド・インフラストラクチャ上にデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティング・システムまたはストレージを含む下層のクラウド・インフラストラクチャを管理または制御しないが、デプロイされたアプリケーションおよび場合によってはアプリケーション・ホスティング環境の構成への制御を有する。
インフラストラクチャ・アズ・ア・サービス(IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、および、コンシューマが、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアをデプロイし、稼働させることができる他の基本的なコンピューティング・リソースを提供することである。コンシューマは、下層のクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションに対する制御、および、場合によっては、選択したネットワーキング・コンポーネント(例えば、ホストファイアウォール)の限定された制御を有する。
【0084】
デプロイメント・モデルは、以下の通りである。
プライベート・クラウド:クラウド・インフラストラクチャは、1つの組織のためだけに使用される。これは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスが存在し得る。
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織により共有され、共通の懸念(例えば、ミッション、セキュリティ要件、ポリシーおよびコンプライアンスに関する考慮事項)を有する特定のコミュニティをサポートする。これは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスが存在し得る。
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆、または、大きな業界団体が利用可能であり、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2以上のクラウド(プライベート、コミュニティまたはパブリック)の混成であり、これらのクラウドは、固有のエンティティのままであるが、しかし、データおよびアプリケーションのポータビリティを可能とする標準化されたまたは独自の技術(例えばクラウド間の負荷分散のためのクラウド・バースティング)によって結合される。
【0085】
クラウド・コンピューティング環境は、ステートレス性、低結合、モジュール性および意味論的な相互運用性に重点を置いたサービス指向である。クラウド・コンピューティングの核心は、相互接続された複数のノードのネットワークを含むインフラストラクチャである。
【0086】
ここで、図6を参照すると、例示的なクラウド・コンピューティング環境50が示されている。図示するように、クラウド・コンピューティング環境50は、1以上のクラウド・コンピューティング・ノード10を含み、これと、例えば、パーソナル・デジタル・アシスタント(PDA)または携帯電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54Cもしくは自動車コンピュータ・システム54Nまたはこれらの組み合わせなどの、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信してもよい。ノード10は、互いに通信してもよい。これらは、プライベート、コミュニティ、パブリックもしくはハイブリッド・クラウドなど上述したような、またはこれらの組み合わせなどの1以上のネットワークにおいて、物理的にまたは仮想的にグループ化(図示しない)されてもよい。これは、クラウド・コンピューティング環境50が、インフラストラクチャ、プラットフォームもしくはソフトウェアまたはこれらの組み合わせをサービスとして提供することを可能とし、これらについては、クラウド・コンシューマは、リソースをローカル・コンピューティング・デバイス上で維持する必要がない。図6に示されるコンピューティング・デバイス54A~54Nのタイプは、説明する目的のみであり、コンピューティング・ノード10およびクラウド・コンピューティング環境50が、任意のタイプのネットワーク、ネットワークアドレス可能な接続(例えば、ウェブ・ブラウザを使用して)またはこれらの両方を介して、任意のタイプのコンピュータ化されたデバイスと通信することができることが理解される。
【0087】
ここで、図7を参照すると、クラウド・コンピューティング環境50(図6)によって提供される機能抽象レイヤのセットが示される。図7に示すコンポーネント、レイヤおよび機能が、説明する目的のみであり、本発明の実施形態は、これらに限定されないことが事前に理解されるであろう。示すように、以下の層および対応する機能が提供される。
【0088】
ハードウェアおよびソフトウェア・レイヤ60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム61、RISC(縮約命令セットコンピュータ)アーキテクチャに基づくサーバ62、サーバ63,ブレードサーバ64、ストレージ・デバイス65およびネットワークおよびネットワーキング・コンポーネント66を含む。いくつかの実施形態においては、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0089】
仮想化レイヤ70は、抽象化レイヤを提供し、そこから仮想化サーバ71、仮想化ストレージ72、バーチャル・プライベート・ネットワークを含む仮想化ネットワーク73、仮想化アプリケーションおよびオペレーティング・システム74、および仮想クライアント75などの仮想化エンティティの例が提供される。
【0090】
一例においては、管理レイヤ80は、以下に説明する機能を提供してもよい。リソース・プロビショニング81は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。メータリングおよびプライシング82は、リソースがクラウド・コンピューティング環境内で利用されるコストの追跡およびこれらのソースの消費に対する請求またはインボイスの送付を提供する。一例においては、これらのリソースは、アプリケーション・ソフトウェアのライセンスを含んでもよい。セキュリティは、クラウド・コンシューマおよびタスクについての本人確認、並びに、データおよび他のリソースに対する保護を提供する。ユーザポータル83は、コンシューマおよびシステム管理者に対しクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル・マネジメント84は、要求されるサービス・レベルを満たすようにクラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル合意(SLA)の計画と履行85は、SLAに従って、将来の要求が予期されるクラウド・コンピューティグ・リソースの事前配置および調達を提供する。
【0091】
ワークロード・レイヤ90は、クラウド・コンピューティング環境が利用される機能性の例を提供する。ワークロードおよびこのレイヤから提供される機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想クラスルーム教育配信93、データ・アナリティクス処理94、トランザクション処理95、セキュリティ・クレデンシャル管理処理96が含まれる。
【0092】
本開示の種々の実施形態の説明は、説明のために提示されたが、しかし、網羅的であること、または、開示される実施形態に限定されることを意図するものではない。説明される実施形態の範囲および精神を逸脱することなく、多くの変更および変形が当業者にとって明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の応用または市場で発見される技術に対する技術的改善を最もよく説明するために、あるいは、他の当業者が、本明細書で開示される実施形態を理解できるように選ばれたものである。
【0093】
本発明の範囲を逸脱することなく、上記のものに対して改良および変更を行うことが可能である。
図1
図2
図3
図4
図5
図6
図7