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

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

2023-543148向上したセキュリティのワンタイム・パスワードを使用する、複数の認証モードを備えた認証システム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-13
(54)【発明の名称】向上したセキュリティのワンタイム・パスワードを使用する、複数の認証モードを備えた認証システム
(51)【国際特許分類】
   H04L 9/32 20060101AFI20231005BHJP
   G06F 21/45 20130101ALI20231005BHJP
   H04L 9/14 20060101ALI20231005BHJP
【FI】
H04L9/32 100C
G06F21/45
H04L9/14
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023515644
(86)(22)【出願日】2021-08-23
(85)【翻訳文提出日】2023-03-08
(86)【国際出願番号】 CN2021114000
(87)【国際公開番号】W WO2022073394
(87)【国際公開日】2022-04-14
(31)【優先権主張番号】17/063,765
(32)【優先日】2020-10-06
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.SMALLTALK
(71)【出願人】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【弁理士】
【氏名又は名称】片岡 忠彦
(74)【復代理人】
【識別番号】110000420
【氏名又は名称】弁理士法人MIP
(72)【発明者】
【氏名】クーパー、ロス デイヴィッド
(72)【発明者】
【氏名】オンゲーナ、マイケル
(57)【要約】
逆変換を有する所定の変換を使用して、時間依存入力に応じた認証パラメータを生成することを含む、認証処理が提供される。複数の認証モードがサポートされ、1つの認証モードの時間依存入力のビット長は、別の認証モードの時間依存入力のビット長と異なる。認証パラメータの生成は、時間依存入力が当該1つの認証モードのものであるかそれとも当該別の認証モードのものであるかに部分的に依存する。別の逆変換を有する別の所定の変換を使用して、認証パラメータから、文字列を含む時間依存パスワードが生成される。時間依存パスワードは、認証者による認証のために認証システム内で転送される。
【特許請求の範囲】
【請求項1】
認証システム内での認証処理のためのコンピュータ・プログラム製品であって、
処理回路によって可読であり、方法を行うための命令を記憶しているコンピュータ可読記憶媒体、を備え、前記方法が、
逆変換を有する所定の変換を使用して、時間依存入力に応じた認証パラメータを生成することであって、前記時間依存入力が、前記逆変換を使用して前記認証パラメータから復元可能であり、前記認証システムは複数の認証モードをサポートし、前記複数の認証モードのうちの1つの認証モードの前記時間依存入力のビット長は、前記複数の認証モードのうちの別の認証モードの前記時間依存入力のビット長と異なり、前記生成は、前記時間依存入力が前記1つの認証モードのものであるかそれとも前記別の認証モードのものであるかに部分的に依存する、前記認証パラメータを生成することと、
別の逆変換を有する別の所定の変換を使用して、前記認証パラメータから文字列を含む時間依存パスワードを生成することであって、前記認証パラメータは、前記別の逆変換を使用して前記時間依存パスワードから復元可能である、前記時間依存パスワードを生成することと、
前記時間依存パスワードを、認証のために前記認証システムの認証者に転送することと
を含む、コンピュータ・プログラム製品。
【請求項2】
前記時間依存入力が前記1つの認証モードのものである場合、前記時間依存入力は、奇数ビット数の2値入力である、請求項1に記載のコンピュータ・プログラム製品。
【請求項3】
前記時間依存入力が前記別の認証モードのものである場合、前記時間依存入力は、偶数ビット数の2値入力である、請求項2に記載のコンピュータ・プログラム製品。
【請求項4】
前記1つの認証モードの前記時間依存入力は41ビットを含み、前記別の認証モードの前記時間依存入力は48ビットを含む、請求項3に記載のコンピュータ・プログラム製品。
【請求項5】
前記生成することが、
前記時間依存入力を、1つのセグメント(part_a)と別のセグメント(part_b)とに分割することと、
前記1つのセグメント(part_a)および前記別のセグメント(part_b)を使用して、前記時間依存入力の複数ラウンドの変換を行って、最終的なpart_aおよび最終的なpart_bを得ることであって、前記複数ラウンドの変換のうち1ラウンドの変換は、サインオン鍵、ラウンドに固有の値、および変換プロセスを少なくとも部分的に使用して、現在のpart_aおよび現在のpart_bを変換することを含み、前記ラウンド固有の値は、前記複数ラウンドの変換の各ラウンドの変換ごとに変化する、前記複数ラウンドの変換を行うことと、
前記複数ラウンドの変換を行うことに基づいて、前記最終的なpart_aと前記最終的なpart_bとを組み合わせて前記認証パラメータを形成することと
を含む、請求項1に記載のコンピュータ・プログラム製品。
【請求項6】
前記1つの認証モードは、前記サインオン鍵が大文字の文字および数字のみを使用するUPPER認証モードであり、前記別の認証モードは、前記サインオン鍵が大文字および小文字の文字、数字、ならびに1つまたは複数の特殊文字のいずれかを使用するMIXED認証モードである、請求項5に記載のコンピュータ・プログラム製品。
【請求項7】
前記複数ラウンドの変換のうちの1または複数ラウンドの変換は、前記認証システムが現在前記1つの認証モードを使用しているかそれとも前記別の認証モードを使用しているかに部分的に依存するプロセスを含む、請求項5に記載のコンピュータ・プログラム製品。
【請求項8】
part_aおよびpart_bの前記複数ラウンドの変換を行う間、少なくとも1ラウンドの変換が、前記現在のpart_bを使用して前記現在のpart_aを変換することによって新しいpart_aを生成し、前記新しいpart_aを使用して前記現在のpart_bを変換することによって新しいpart_bを生成することを含む、請求項5に記載のコンピュータ・プログラム製品。
【請求項9】
前記ラウンド固有の値は、ラウンド・カウンタの現在の値を含み、前記ラウンド・カウンタの前記現在の値は、前記複数ラウンドの変換の各ラウンドの変換ごとに変化し、前記変換プロセスは、メッセージ認証コード(MAC)プロセスである、請求項5に記載のコンピュータ・プログラム製品。
【請求項10】
前記認証者に提示された前記時間依存パスワードから、前記別の逆変換を使用して前記認証パラメータを再生成することと、
前記認証パラメータから、前記逆変換を使用して前記時間依存入力を再生成することと、
前記再生成された時間依存値が、参照時間依存値から所定の許容差内にある場合、リソースへのアクセスを承認し、そうでない場合、前記リソースへのアクセスを拒否することと
をさらに含む、請求項1に記載のコンピュータ・プログラム製品。
【請求項11】
認証システム内での認証処理のためのコンピュータ・システムであって、
メモリと、
前記メモリと通信している1つまたは複数のプロセッサと、
方法を行うために前記メモリを介して前記1つまたは複数のプロセッサによって実行可能なプログラム・コードと、を備え、前記方法が、
逆変換を有する所定の変換を使用して、時間依存入力に応じた認証パラメータを生成することであって、前記時間依存入力が、前記逆変換を使用して前記認証パラメータから復元可能であり、前記認証システムは複数の認証モードをサポートし、前記複数の認証モードのうちの1つの認証モードの前記時間依存入力のビット長は、前記複数の認証モードのうちの別の認証モードの前記時間依存入力のビット長と異なり、前記生成は、前記時間依存入力が前記1つの認証モードのものであるかそれとも前記別の認証モードのものであるかに部分的に依存する、前記認証パラメータを生成することと、
別の逆変換を有する別の所定の変換を使用して、前記認証パラメータから文字列を含む時間依存パスワードを生成することであって、前記認証パラメータは、前記別の逆変換を使用して前記時間依存パスワードから復元可能である、前記時間依存パスワードを生成することと、
前記時間依存パスワードを、認証のために前記認証システムの認証者に転送することと
を含む、コンピュータ・システム。
【請求項12】
前記時間依存入力が前記1つの認証モードのものである場合、前記時間依存入力は、奇数ビット数の2値入力である、請求項11に記載のコンピュータ・システム。
【請求項13】
前記時間依存入力が前記別の認証モードのものである場合、前記時間依存入力は、偶数ビット数の2値入力である、請求項12に記載のコンピュータ・システム。
【請求項14】
前記生成することが、
前記時間依存入力を、1つのセグメント(part_a)と別のセグメント(part_b)とに分割することと、
前記1つのセグメント(part_a)および前記別のセグメント(part_b)を使用して、前記時間依存入力の複数ラウンドの変換を行って、最終的なpart_aおよび最終的なpart_bを得ることであって、前記複数ラウンドの変換のうち1ラウンドの変換は、サインオン鍵、ラウンドに固有の値、および変換プロセスを少なくとも部分的に使用して、現在のpart_aおよび現在のpart_bを変換することを含み、前記ラウンド固有の値は、前記複数ラウンドの変換の各ラウンドの変換ごとに変化する、前記複数ラウンドの変換を行うことと、
前記複数ラウンドの変換を行うことに基づいて、前記最終的なpart_aと前記最終的なpart_bとを組み合わせて前記認証パラメータを形成することと
を含む、請求項11に記載のコンピュータ・システム。
【請求項15】
前記1つの認証モードは、前記サインオン鍵が大文字の文字および数字のみを使用するUPPER認証モードであり、前記別の認証モードは、前記サインオン鍵が大文字および小文字の文字、数字、ならびに1つまたは複数の特殊文字のいずれかを使用するMIXED認証モードである、請求項14に記載のコンピュータ・システム。
【請求項16】
前記複数ラウンドの変換のうちの1または複数ラウンドの変換は、前記認証システムが現在前記1つの認証モードを使用しているかそれとも前記別の認証モードを使用しているかに部分的に依存するプロセスを含む、請求項14に記載のコンピュータ・システム。
【請求項17】
前記ラウンドに固有の値は、ラウンド・カウンタの現在の値を含み、前記ラウンド・カウンタの前記現在の値は、前記複数ラウンドの変換の各ラウンドの変換ごとに変化し、前記変換プロセスがメッセージ認証コード(MAC)プロセスである、請求項14に記載のコンピュータ・システム。
【請求項18】
認証システム内での認証処理の方法であって、
逆変換を有する所定の変換を使用して、時間依存入力に応じた認証パラメータを生成することであって、前記時間依存入力が、前記逆変換を使用して前記認証パラメータから復元可能であり、前記認証システムは複数の認証モードをサポートし、前記複数の認証モードのうちの1つの認証モードの前記時間依存入力のビット長は、前記複数の認証モードのうちの別の認証モードの前記時間依存入力のビット長と異なり、前記生成は、前記時間依存入力が前記1つの認証モードのものであるかそれとも前記別の認証モードのものであるかに部分的に依存する、前記認証パラメータを生成することと、
別の逆変換を有する別の所定の変換を使用して、前記認証パラメータから文字列を含む時間依存パスワードを生成することであって、前記認証パラメータは、前記別の逆変換を使用して前記時間依存パスワードから復元可能である、前記時間依存パスワードを生成することと、
前記時間依存パスワードを、認証のために前記認証システムの認証者に転送することと
を含む方法。
【請求項19】
前記時間依存入力が前記1つの認証モードのものである場合、前記時間依存入力は、奇数ビット数の2値入力であり、前記時間依存入力が前記別の認証モードのものである場合、前記時間依存入力は、偶数ビット数の2値入力である、請求項18に記載の方法。
【請求項20】
前記生成することが、
前記時間依存入力を、1つのセグメント(part_a)と別のセグメント(part_b)とに分割することと、
前記1つのセグメント(part_a)および前記別のセグメント(part_b)を使用して、前記時間依存入力の複数ラウンドの変換を行って、最終的なpart_aおよび最終的なpart_bを得ることであって、前記複数ラウンドの変換のうち1ラウンドの変換は、サインオン鍵、ラウンドに固有の値、および変換プロセスを少なくとも部分的に使用して、現在のpart_aおよび現在のpart_bを変換することを含み、前記ラウンド固有の値は、前記複数ラウンドの変換の各ラウンドの変換ごとに変化する、前記複数ラウンドの変換を行うことと、
前記複数ラウンドの変換を行うことに基づいて、前記最終的なpart_aと前記最終的なpart_bとを組み合わせて前記認証パラメータを形成することと
を含む、請求項18に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認証システム内での認証処理のためのコンピュータ・プログラム製品に関する。
【背景技術】
【0002】
ユーザ・アプリケーションなどのシステム・リソースに対してユーザを認証するための認証システムはよく知られている。多くの認証システムは、一般にはユーザおよび発行者または認証者だけに知られているパスワードを使用することによって動作する。そのようなパスワードをリソースの要求元ノードから通信チャネル上で送信するシステムは、無許可のエンティティによる送信されたパスワードの傍受を受けやすい。そのようなエンティティは、その後、傍受したパスワードを、これも傍受されたものであり得るユーザIDなどの非秘密情報と共に使用することによって、システム・リソースへのアクセスを得ることを試み得る。
【0003】
不正アクセスを得ようとする試みを阻止するために、パスワードはしばしば、暗号化された形態で通信チャネル上を送信され、そのため、通信チャネルへのアクセスで平文形態のパスワード自体は得られない。しかし、送信前にパスワードを暗号化するシステムでも、暗号化されたパスワードが記録され、その後通信チャネルに直接(端末や暗号化デバイスを通じてではなく)注入されて、望むアクセスを確保し得る事態の対象になりやすい。
【0004】
この問題に対抗するために、「ワンタイム」または「動的」パスワードが従来使用されており、これは短い時間間隔(例えば1分以下)の間のみ有効であり、そのため、ある間隔中のワンタイム・パスワードの傍受では、後の間隔中にシステムへのアクセスを得るための有用な情報を得られない。
【0005】
このタイプのシステムは、通例、秘密情報(ユーザ・パスワードや暗号化鍵など)、時間に依存する情報(時刻(TOD:time of day)値または日時値)、および任意選択的に非秘密情報(ユーザIDやアプリケーションIDなど)に応じて、ワンタイム・パスワードを生成する。ワンタイム・パスワードは認証ノードに送信され、そこで、一実施形態では、パスワードが比較パスワードと比較され、比較パスワードは、同じ秘密情報および存在する場合には非秘密情報を認証ノードで入手可能な時間値と共に使用して、同様の方法で生成される。送信されたパスワードが比較パスワードと一致すれば、ユーザが認証され、システム・リソースへのアクセスが承認される。別の実装では、認証ノードで利用可能な日時値と直接比較するために、受信されたワンタイム・パスワードから元の日時値を復元することにより、認証者で比較パスワードを生成する必要性を回避することができる。
【発明の概要】
【0006】
1つまたは複数の態様において、認証システム内での認証処理のためのコンピュータ・プログラム製品の提供を通じて、従来技術の特定の欠点が克服され、さらなる利点がもたらされる。コンピュータ・プログラム製品は、処理回路によって可読であり方法を行うための命令を記憶しているコンピュータ可読記憶媒体を含む。方法は、逆変換を有する所定の変換を使用して、時間依存入力に応じた認証パラメータを生成することを含む。時間依存入力は、逆変換を使用して認証パラメータから復元可能であり、認証システムは複数の認証モードをサポートする。複数の認証モードのうちの1つの認証モードの時間依存入力のビット長は、複数の認証モードのうちの別の認証モードの時間依存入力のビット長と異なる。さらに、認証パラメータの生成は、時間依存入力が上記1つの認証モードのものであるかそれとも上記別の認証モードのものであるかに部分的に依存する。また、方法は、別の逆変換を有する別の所定の変換を使用して、認証パラメータから文字列を含む時間依存パスワードを生成することであって、認証パラメータは、上記別の逆変換を使用して時間依存パスワードから復元可能である、時間依存パスワードを生成することと、時間依存パスワードを、認証のために認証システムの認証者に転送することと、を含む。
【0007】
1つまたは複数の態様に関係するコンピュータ・システムおよび方法も、本明細書に記載され、請求される。さらに、1つまたは複数の態様に関係するサービスも本明細書に記載され、請求され得る。
【0008】
追加的な特徴および利点が、本明細書に記載される技術を通じて実現される。本発明の他の実施形態および態様は、本明細書に詳細に記載され、請求される態様の一部とみなされる。
【0009】
本発明の1つまたは複数の態様が、本明細書の最後にある特許請求の範囲において例として詳細に述べられ、明確に請求される。本発明の前述および他の目的、特徴、および利点は、添付図面と併せて読まれる以下の詳細な説明から明らかである。
【図面の簡単な説明】
【0010】
図1】本発明の1つまたは複数の態様による認証処理を使用するための認証システムの一実施形態のブロック図である。
図2】本発明の1つまたは複数の態様による、図1の認証システムの一実施形態のさらなる詳細を示す、より詳細なブロック図である。
図3】認証システムの別の実施形態のブロック図であり、ここでは、本発明の1つまたは複数の態様による認証処理を使用して、セキュリティ・サーバによって認証パスワードが生成される。
図4】本発明の1つまたは複数の態様による、任意のビット長の時間依存入力を暗号変換して、認証システムの認証者に転送するための時間依存する認証パスワードを得るための1つのプロセス実施形態を示す図である。
図5】本発明の1つまたは複数の態様による、時間依存する認証パスワードを評価するための1つのプロセス実施形態を示す図であり、ここでは、図4の暗号変換プロセスに入力された元の時間値が、参照時間値との比較のために復元される。
図6A】本発明の1つまたは複数の態様による、認証者に転送するための時間依存認証パスワードを生成するための暗号変換プロセスのより詳細な実施形態を示す図である。
図6B】本発明の1つまたは複数の態様による、認証者に転送するための時間依存認証パスワードを生成するための暗号変換プロセスのより詳細な実施形態を示す図である。
図6C】本発明の1つまたは複数の態様による、認証者に転送するための時間依存認証パスワードを生成するための暗号変換プロセスのより詳細な実施形態を示す図である。
図6D】本発明の1つまたは複数の態様による、認証者に転送するための時間依存認証パスワードを生成するための暗号変換プロセスのより詳細な実施形態を示す図である。
図7A】本発明の1つまたは複数の態様による、図6A図6Dの暗号変換プロセスを介して生成された時間依存する認証パスワードを評価するための評価プロセスのより詳細な実施形態を示す図である。
図7B】本発明の1つまたは複数の態様による、図6A図6Dの暗号変換プロセスを介して生成された時間依存する認証パスワードを評価するための評価プロセスのより詳細な実施形態を示す図である。
図8A】本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境またはリソースの一例を示す図である。
図8B】本発明の一態様による、図8Aのプロセッサのさらなる詳細を示す図である。
図9A】本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境またはリソースの別の例を示す図である。
図9B】本発明の一態様による、図9Aのメモリのさらなる詳細を示す図である。
図10】本発明の実施形態の特定の態様を実装することができる、またはそれとの関連で使用され得る、クラウド・コンピューティング環境の実施形態を示す図である。
図11】本発明の一実施形態による抽象化モデル層の図である。
【発明を実施するための形態】
【0011】
同様の参照符号が別々の図を通じて同一のまたは機能的に同様の要素を指し、本明細書に組み込まれてその一部をなす添付図面は、本発明をさらに図解し、詳細な説明と併せて、本発明の態様を説明する役割を果たす。これに関して、よく知られているシステム、デバイス、処理技術等の説明は、本発明の詳細を曖昧にしないように省略されていることに留意されたい。ただし、詳細な説明およびこの具体例は、本発明の態様を示しつつ、例示のみとして与えられ、制限ではないことが理解されるべきである。基礎となる発明概念の思想または範囲内にある、様々な置換、変更、追加、もしくは他の構成、またはそれらの組合せが、本開示から当業者に明らかになるであろう。さらに、多数の発明の態様および特徴が本明細書に開示され、矛盾しない限り、各開示される態様または特徴は、本明細書に開示される概念の1つまたは複数の特定の応用のための必要に応じて、他の開示される態様または特徴と両立性があることに留意されたい。
【0012】
また、例示的な実施形態は以下で、具体的なコード、設計、アーキテクチャ、プロトコル、レイアウト、回路図、またはツールを、限定ではなく単に例として使用して説明されることに留意されたい。さらに、例示的な実施形態は、特定のソフトウェア、ツール、またはデータ処理環境を、説明の明瞭性のために単に例として使用する特定の事例で説明される。例示的な実施形態は、他の両立性のあるまたは同様に企図される構造、システム、アプリケーション、アーキテクチャと共に使用され得る。例示的な実施形態の1つまたは複数の態様は、ハードウェア、ソフトウェア、またはそれらの組合せで実装され得る。
【0013】
当業者によって理解されるように、本願で称するところのプログラム・コードは、ソフトウェアとハードウェアの両方を含むことができる。例えば、本発明のある実施形態におけるプログラム・コードは、固定された機能のハードウェアを含むことができるが、他の実施形態では、記載される機能のソフトウェアに基づく実装を利用することができる。ある実施形態は、両タイプのプログラム・コードを組み合わせる。1つまたは複数のプログラムまたはプログラム命令とも呼ぶプログラム・コードの一例が、図8Aに、コンピュータ・システム802のメモリ806に記憶されているアプリケーション・プログラム830もしくはコンピュータ可読プログラム命令834またはその両方、ならびに、コンピュータ・システム802によってアクセスされるデータ記憶装置844に記憶されているプログラム846およびコンピュータ可読プログラム命令848として示されている。
【0014】
上記で簡単に述べたように、認証トークンに基づく検証システムは、要求元ノードなどのエンティティが認証者(または認証ノード)に対して身元の主張を確認するための手段を提供することができる。身元の主張を確認することは、確立された認証プロトコルの使用を通じて秘密サインオン鍵の所有を証明することによる。認証パラメータまたはトークンを生成・評価するためにいくつかの異なるプロトコルが存在する。多くの場合、認証パラメータ生成プロトコルは、2つの主要な段階で動作する。初めに、秘密鍵、他の既知の認証の詳細、および1つまたは複数の暗号プロセスを使用して、トークン2進値、または認証パラメータを生成する。次いで、トークン2進値が、文字列トークン値、または認証パスワードとして符号化される。
【0015】
多くのタイプの認証システムでは、認証資格情報は特定の長さおよび文字セットに制約されているが、同時に、より多くの可能な有効トークン値を有することがより多くの可変性を生じさせ、したがって攻撃側エンティティにとって正しいトークン値を特定または推測することをより難しくするという点で、二項対立が存在する。
【0016】
1つまたは複数の態様では、複数の認証モードを備える認証システムが本明細書に開示され、そこでは、所定の(第1の)変換を使用して、時刻(TOD)情報などの時間依存情報に応じて、認証パラメータ(AP)が生成される。この所定の変換は逆変換を有し、その逆変換を使用して認証パラメータから時間依存情報を再生成できるようになっている。英数文字列などの文字列を含む時間依存パスワードが、所定の(第2の)変換を使用して認証パラメータから生成され、この所定の変換は逆変換を有し、その逆変換を使用してパスワードから認証パラメータを再生成できるようになっている。
【0017】
特に断らない限り、この文脈における逆変換の言及は、その逆変換が存在することだけでなく、それを生成することが計算的に実現可能であることも意味することに留意されたい。そのような計算的で実現可能な逆変換を有する変換は「可逆」であると言われ、そうでないものは「不可逆」または「一方向の」変換または関数と言われる。
【0018】
パスワードは、例えば要求元ノードからパスワードが送信される認証ノードに位置し得る認証者に提示される。認証者は、認証者に提示されたパスワードから第2の変換の逆を使用して認証パラメータを再生成し、次いでその認証パラメータから第1の変換の逆を使用して時間依存情報を再生成することにより、パスワードから時間依存情報を再生成する。
【0019】
認証者は、再生成された時間依存情報を参照時間依存情報と比較し、参照時間依存情報との再生成された時間依存情報の比較に従って、リソースへのアクセスを承認する。例えば、再生成された時間値が参照時間値から所定の許容差内にあれば、認証要求が承認されるが、そうでない場合は拒否される。1つまたは複数の実施形態では、所定の許容差はシステムによって設定可能である。
【0020】
1つまたは複数の実装では、第1の変換は、認証者との間で共有される暗号化鍵を使用する暗号的変換である。この暗号的変換は、時間依存情報は認証パラメータおよび鍵から再生成することができるが、鍵は認証パラメータおよび時間依存情報から再生成することができないようなものである。そのような場合、認証者は、元の暗号化鍵に対応する解読鍵を使用して、再生成された認証パラメータを解読することにより、元の時間依存情報を再生成する。1つまたは複数の実施形態では、開示される暗号化手順を使用すると、暗号化鍵は対応する解読鍵と同一であるが、他の暗号化手順では、暗号化鍵と解読鍵は相互に関係付けられるものの、暗号化鍵は対応する解読鍵と異なる場合がある。
【0021】
1つまたは複数の実施形態では、認証パラメータは、時間依存情報を非時間依存情報と組み合わせて合成情報を生成し、その合成情報を暗号化して認証パラメータを生成することによって生成される。例えば、一実施形態では、非時間依存情報は、認証の要求を識別することを必要とするイベントについて、非秘密情報(例えば、ユーザIDまたはアプリケーション名もしくはID、またはその両方)を暗号化することによって生成することができる。
【0022】
可逆変換を使用して認証パラメータをパスワードにコンバートすることにより、元の時間依存情報を再生成することができ、再生成された時間依存情報と、認証ノードで利用可能な参照時間依存情報との間の1回の比較のみに基づいて、パスワードを検証することができる。
【0023】
有利な点として、1つまたは複数の実施形態で、認証システムは、異なる認証モードに対応可能である。本明細書においてUPPERと称する1つのモードでは、mビットの認証パラメータが得られ、本明細書においてMIXEDと称する別の手法では、nビットの認証パラメータが得られる。1つの特定の実施形態では、mは41ビットであり、Nは48ビットである。さらに、一実施形態では、UPPERモードにおいて、秘密サインオン鍵は、大文字の文字と数字のみを使用して例えば241個の可能なトークンまたはパラメータを生成するのに対し、MIXEDモードでは、例えば、大文字および小文字の文字、数字、および「_」や「-」などの1つまたは複数の特殊文字を使用して、248個のパラメータまたはトークンが可能である。一実施形態では、したがって、認証パラメータは、第1の複数の可能な値(例えば、mビットのAPでは2、またはnビットのAPでは2)を有するのに対し、パスワードまたは他の認証コードは、第1の複数の値よりも多い第2の複数の可能な値(例えば、8個の大文字の英数文字からなるパスワードの場合、36個)を有する。この文脈における言及は、APまたはパスワードを生成するために使用される特定のシステムによって課され得る文字間制約を無視していることに留意されたい。mビットの入力および出力またはnビットの入力および出力を有する、本明細書に記載される強化されたブロック暗号化手順は、認証システムによって使用されているモードに応じて、望まれる認証パラメータを生成するために使用される。
【0024】
本発明の他の態様は、xビットを含んでいる入力データ・ブロックを、xビットを含んでいる出力データ・ブロックに変換する(例えば、暗号化または解読する)ためのシステムを包含し、xは偶数または奇数の整数である。変換中、入力データ・ブロックは、初めに第1および第2の(例えば、左右の)ビット・セグメント(または部分)に分割され、一方のビット・セグメントは、他方のビット・セグメントとは異なる長さを有することができる。入力データ・ブロックの2つのビット・セグメントまたは部分は、複数ラウンドの変換にかけられ、そこでセグメント(または部分)は第1および第2の出力セグメントに変換されて、その後のラウンドのための対応するセグメントとなる。複数のラウンドが完了すると、最終的な変換されたセグメント(または部分)が再度組み合わされて、出力データ・ブロックを生成する。
【0025】
本明細書に記載される1つまたは複数の態様に従い、逆変換による復元のために入力ブロック中のすべての情報を保持しながら、奇数ビット数であれ、偶数ビット数であれ、任意のサイズのデータ・ブロックを、同じような大きさの出力データ・ブロックに変換することができる。これは、標準的な暗号化手順では大き過ぎるブロック・サイズが必要とされる、本明細書に記載されるものなどの多くの状況において有益である。各ラウンドでラウンド固有の値を使用することにより、各パスで同じ鍵をxビットの暗号化のために使用することができ、それにより、ラウンドごとに異なる暗号化を設定しなければならない計算負荷を回避する。
【0026】
1つまたは複数の態様において、複数の認証モードに対応可能であり、向上したセキュリティのワンタイム・パスワードを提供する、認証システムのための新しい認証プロセスが本明細書に開示される。
【0027】
本発明の実施形態は、コンピュータ・プログラム製品、コンピュータ・システム、および方法を含み、1つまたは複数のプロセッサで実行されるプログラム・コードは、逆変換を有する所定の変換を使用して時間依存入力に応じた認証パラメータを生成することにより、認証システムのための認証処理を提供する。時間依存入力は、逆変換を使用して認証パラメータから復元可能である。認証システムは複数の認証モードをサポートし、複数の認証モードのうちの1つの認証モードの時間依存入力のビット長は、複数の認証モードのうちの別の認証モードの時間依存入力のビット長と異なる。さらに、認証パラメータの生成は、時間依存入力が当該1つの認証モードのものであるかそれとも当該別の認証モードのものであるかに部分的に依存する。加えて、本発明の実施形態は、別の逆変換を有する別の所定の変換を使用して、認証パラメータから文字列を含む時間依存パスワードを生成するためのプログラム・コードを含み、認証パラメータは、当該別の変換を使用して時間依存パスワードから復元可能である。さらに、本発明の実施形態は、例えば保護されているアプリケーションにアクセスするためなどの要求イベントとの関連で認証するために、時間依存パスワードを認証システムの認証者に転送するプログラム・コードを含む。
【0028】
特定の実施形態では、時間依存入力が上記1つの認証モードのものである場合、この時間依存入力は、奇数または偶数ビット数の2値入力であり、時間依存入力が別の認証モードのものである場合、この時間依存入力は、異なる奇数または偶数ビット数の2値入力である。例えば、一実施形態では、上記1つの認証モードの時間依存入力は、41ビットなどの奇数ビット数に対応し、上記別の認証モードの時間依存入力は、48ビットなどの偶数ビット数に対応し、両モードとも、従来の手法と比べて高められた数の認証パラメータまたはトークンを提供する。
【0029】
1つまたは複数の実施形態では、1つまたは複数のプロセッサで実行されるプログラム・コードは、時間依存入力を1つのセグメント(part_a)および別のセグメント(part_b)に分割し、1つのセグメント(part_a)および他方のセグメント(part_b)の複数ラウンドの変換を行って最終的なpart_aおよび最終的なpart_bを得ることにより、認証パラメータを生成する。複数ラウンドの変換のうち1ラウンドの変換は、サインオン鍵、ラウンド固有の値、および変換プロセスを少なくとも部分的に使用して、現在のpart_aおよび現在のpart_bを変換することを含み、ラウンド固有の値は、複数ラウンドの変換の各ラウンドの変換ごとに変化する。複数ラウンドの変換を行うことに基づいて、最終的なpart_aと最終的なpart_bとを組み合わせて認証パラメータを形成する。
【0030】
1つまたは複数の実施形態では、上記1つの認証モードはUPPER認証モードであり、そこでは、サインオン鍵は大文字の文字および数字のみを使用し、上記別の認証モードはMIXED認証モードであり、そこでは、サインオン鍵は大文字および小文字の文字、数字、ならびに1つまたは複数の特殊文字のいずれかを使用する。
【0031】
1つまたは複数の実装では、複数ラウンドの変換のうちの1または複数のラウンドの変換は、認証システムが現在上記1つの認証モードを使用しているかそれとも上記別の認証モードを使用しているかに部分的に依存するプロセスを含む。
【0032】
ある実装では、part_aおよびpart_bの複数ラウンドの変換を行う間、少なくとも1ラウンドの変換が、現在のpart_bを使用して現在のpart_aを変換することによって新しいpart_aを生成し、その新しいpart_aを使用して現在のpart_bを変換することによって新しいpart_bを生成することを含む。
【0033】
ある実施形態では、ラウンド固有の値は、ラウンド・カウンタの現在の値を含み、ラウンド・カウンタの現在の値は、複数ラウンドの変換の各ラウンドの変換ごとに変化する。さらに、1つまたは複数の実施形態では、変換プロセスは、ハッシュベース・メッセージ認証コード(HMAC)プロセスなどのメッセージ認証コード(MAC)プロセスである。
【0034】
ある実施形態では、1つまたは複数のプロセッサで実行されるプログラム・コードは、認証者に提示された時間依存パスワードから、別の逆変換を使用して認証パラメータを再生成し、その認証パラメータから、逆変換を使用して時間依存入力を再生成する。さらに、1つまたは複数のプロセッサで実行されるプログラム・コードは、再生成された時間依存値が、参照時間依存値から所定の許容差内にある場合、リソースへのアクセスを承認し、そうでない場合は、リソースへのアクセスを拒否する。一実施形態では、所定の許容差は、特定の認証システムに合わせて設定可能であり得る。
【0035】
本発明の実施形態は、不可避的にコンピューティングと関係し、既存の認証手法よりもはるかに多くのものを提供する。例えば、本発明の実施形態は、逆変換を有する所定の変換を使用して時間依存入力に応じた認証パラメータを生成するために、様々なシステムの相互接続性を活用すると共に、様々なコンピューティング中心のデータ分析および処理技術を利用するための1つまたは複数のプロセッサで実行されるプログラム・コードを提供し、ここで、時間依存入力は、逆変換を使用して認証パラメータから復元可能であり、認証システムは、複数の認証モードをサポートする。複数の認証モードのうち1つの認証モードの時間依存入力のビット長は、複数の認証モードのうち別の認証モードの時間依存入力のビット長と異なり、認証パラメータの生成は、時間依存入力が上記1つの認証モードのものであるかそれとも上記別の認証モードのものであるかに部分的に依存する。1つまたは複数のプロセッサで実行されるプログラム・コードはさらに、別の逆変換を有する別の所定の変換を使用して、認証パラメータから文字列を含む時間依存パスワードを生成し、認証パラメータは、当該別の逆変換を使用して時間依存パスワードから復元可能であり、プログラム・コードは、時間依存パスワードを、認証のために認証システムの認証者に転送する。
【0036】
利用されるコンピューティング・システムまたはノードの相互接続性と、プログラム・コードによって利用されるコンピュータ専用データ処理技術の両方が、本発明の様々な態様を可能にする。さらに、本発明の実施形態は、複数の認証モードおよび高められた数の認証パラメータを用いる認証処理を提供することにより、ならびに任意の長さ、すなわち、偶数と奇数の長さを含む任意のビット長、の値に適用することが可能な暗号変換および暗号解読プロセスを提供して、認証システムが特定のシステムの制約的な文字列セットに対応するために2進トークン値の可変性の量を最大にする能力を与えることにより、既存の認証手法よりもはるかに多くのものを提供し、それにより、起こり得るシステム侵害の試みに対する向上したセキュリティを提供する。さらに、本明細書に開示される認証処理は、安全であるためにノンス値を必要としない。開示される処理は、暗号変換対象値を複数の部分に分割し、それらの部分を再度組み合わせて最終的な認証パラメータまたは暗号変換された値にする前に各部分に対して複数ラウンドの強化された変換処理を用いることにより、エントロピーを増大させる。
【0037】
本発明の実施形態では、プログラム・コードは、はるかにより多くの機能性を提供し、そのようなものとしては、以下が挙げられるがこれらに限定されない。1)逆変換を有する所定の変換を使用して時間依存入力に応じた認証パラメータを生成するプログラム・コードであって、時間依存入力は、逆変換を使用して認証パラメータから復元可能であり、認証システムは、複数の認証モードをサポートし、複数の認証モードのうちの1つの認証モードの時間依存入力のビット長は、複数の認証モードのうちの別の認証モードの時間依存入力のビット長と異なり、生成は、時間依存入力が1つの認証モードのものであるかそれとも別の認証モードのものであるかに部分的に依存する、プログラム・コード、2)別の逆変換を有する別の所定の変換を使用して、認証パラメータから文字列を含む時間依存パスワードを生成するプログラム・コードであって、認証パラメータは、当該別の変換を使用して時間依存パスワードから復元可能である、プログラム・コード、および、3)時間依存パスワードを、認証のために認証システムの認証者に転送するプログラム・コード。
【0038】
例として、本発明の1つまたは複数の態様を用いるシステム100の一実施形態が図1に描かれている。示されるように、システム100は、要求元ノード102などの1つのエンティティと、認証ノード104などの別のエンティティとを含み、それらは、例えば要求元ノード102および認証ノード104がそれを通じて通信する1つまたは複数のネットワークを介して確立される通信チャネル106を通じて通信している。要求元ノード102は、認証ノード104と通信するために、またはそこから要求したデータを受信するために認証を受ける、各種のコンピューティング・リソース、環境、またはデバイス上のいずれかで実行されるか、またはそれとすることができる。例えば、要求元ノード102は、モバイル・デバイス、スマートフォン、タブレット・コンピュータ、ラップトップ・コンピュータ、携帯情報端末(PDA)、ワイヤレス・コンピュータ、デスクトップ・コンピュータ、サーバ、ワークステーション、または他のコンピューティング・リソース等であり得る。さらに、認証ノード104は、本明細書に記載されるものなどの各種のコンピューティング環境のいずれかで実行されるか、またはそれであり得る。1つまたは複数の実施形態では、認証ノード104は、1つまたは複数の実施形態ではクラウドベースのコンピューティング・リソースを含む、各種のコンピューティング・リソースの1つまたは複数で実行されるか、またはそれらであり得る。述べたように、要求元ノード102は、1つまたは複数のネットワークを通じて提供される通信チャネル106を介して、認証ノード104に通信的に結合され得る。単なる例として、1つまたは複数のネットワークは、遠隔通信ネットワーク、ローカル・エリア・ネットワーク(LAN)、インターネットなどのワイド・エリア・ネットワーク(WAN)、またはそれらの組合せを含むことができ、有線、無線、光ファイバ接続等を含み得る。ネットワークは、本明細書に記載されるような認証に関係するデータを含むデータの受信および送信が可能な1つまたは複数の有線もしくは無線またはその両方のネットワークを含み得る。
【0039】
簡単に説明すると、1つまたは複数の実施形態では、要求元ノード102もしくは認証ノード104またはその両方のコンピューティング・リソースは、1つまたは複数のプロセッサ、例えば中央演算処理装置(CPU)、を含むことができる。また、プロセッサは、キャッシュまたは主メモリなどのメモリ内の場所からプログラム・コードを取り出し、プログラム・コードを復号し、プログラム・コードを実行し、命令実行のためにメモリにアクセスし、実行された命令またはコードの結果を書き込むための機能構成要素など、プログラム・コードの統合で使用される機能構成要素を含むことができる。プロセッサは、機能構成要素の1つまたは複数によって使用されるレジスタを含むことができる。1つまたは複数の実施形態では、コンピューティング・リソースは、メモリ、入力/出力、ネットワーク・インターフェース、およびストレージを含むことができ、それらは、本明細書に記載される処理を実装するために必要に応じて、1つまたは複数の他のコンピューティング・リソースもしくはデータベースまたはその両方を含む、もしくはそれらにアクセスする、またはその両方を行うことができる。それぞれのコンピューティング・リソースの構成要素は、1つまたは複数のバスもしくは他の接続またはその両方を介して互いと結合されるものとできる。バス接続は、各種のバス・アーキテクチャのいずれかを使用した、メモリ・バスまたはメモリ・コントローラ、ペリフェラル・バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサ・バスまたはローカル・バスを含む、数種のバス構造のいずれか1つまたは複数であり得る。例として、ただし限定ではなく、そのようなアーキテクチャには、インダストリ・スタンダード・アーキテクチャ(ISA)、マイクロ・チャネル・アーキテクチャ(MCA)、拡張ISA(EISA)、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)、ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)が含まれ得る。本明細書に開示される1つまたは複数の態様を実装することができるコンピューティング・リソースまたはコンピュータ・システムの例は、下記で図8A図11を参照してさらに説明される。
【0040】
図2は、本発明の1つまたは複数の態様による、認証システムのより詳細な実装を示す。この実装では、要求元ノード102は、ワンタイム・パスワード・ジェネレータ200を含んでいるものとして示され、これは、要求元ノードを構成するコンピューティング・リソースまたは機械上で実行されるプログラム・コードとして実装することができる。代替として、パスワード・ジェネレータ200の1つまたは複数の態様は、特殊目的ハードウェアを使用して実装され得る。要求元ノード102は、例えばユーザを識別するユーザID(UID)202、アクセスされているホスト・アプリケーションを識別するアプリケーションID(AID)204、本明細書に記載される暗号化のための秘密鍵として使用されるサインオン鍵(K)206、および日時値(T)208を記憶するための記憶場所も含んでいる。図2に示されるように、値202~208は、パスワード・ジェネレータ200への入力を提供する。
【0041】
一実施形態では、パスワード・ジェネレータ200は、要求元ノード102の1つまたは複数のコンピューティング・リソース上で実行されるプログラム・コードを含み、これは、ユーザがホスト・アプリケーションにアクセスしたいときに呼び出される。さらに、1つまたは複数の実施形態では、呼び出されたとき、パスワード・ジェネレータ200は、例えば、ユーザID202、アプリケーションID204、サインオン鍵206、および日時208に応じて、ワンタイム・パスワード210を生成する。一実施形態では、パスワード210は、サインオン要求220の一部として、ユーザID202およびアプリケーションID204と共に認証ノード104に送信される。
【0042】
認証ノード104は、パスワード・エバリュエータ212を含んでおり、これはパスワード・ジェネレータ200と同様に、認証ノード104を構成する機械の1つまたは複数のコンピューティング・リソース上で実行されるプログラム・コードとして実装され得る。認証ノード104は、例えば、1つまたは複数のホスト・アプリケーション218も含んでおり、これは、有効なパスワード210を提示したときに要求元ノード102のユーザによってアクセスされ得る。パスワード・エバリュエータ212は、例えば、別個のプログラム・コード、またはIBMリソース・アクセス・コントロール・ファシリティ(RACF(登録商標))ソフトウェア製品などのセキュリティ・ソフトウェア・プログラムの一部であり得る。(RACF(登録商標)は、(アメリカ合衆国)ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である)。認証ノード104は、通信チャネル106に明かされることのないサインオン鍵(K)214のコピーと、参照日時(Tref)216とを記憶している。パスワード・エバリュエータ212は、要求元ノード102からローカル・サインオン鍵214およびサインオン要求220を入力として受け取り、要求はワンタイム認証パスワード210およびユーザID202を含んでいる。1つまたは複数の実装では、ホスト・アプリケーション218を識別するアプリケーションID204は、パスワード・エバリュエータ212によってホスト・アプリケーションから直接取得することができる。一実施形態では、パスワード・ジェネレータ200は、これらの数量を使用して、元の日時入力208を再生成し、それが参照日時216と比較されて、両者の間の差が所定の許容差内(例えば、10分以下)であるかどうかを判定する。所定の許容差内である場合、パスワード・エバリュエータ212は、ユーザを認証して、アプリケーションへのアクセスを承認し、そうでない場合、エバリュエータはアクセスを拒否する。いずれの場合も、パスワード・エバリュエータ212は、要求元ノード102に応答222を送って、サインオン要求220の処置に関して助言する。
【0043】
図3は、本明細書に開示されるようなワンタイム・アクセス認証パラメータまたはトークンを実装するシステム300の別の実施形態を示す。図3の実施形態では、システムはクライアント・サーバ環境として実装され、リソース要求機能は、クライアント・ワークステーション302とセキュリティ・サーバ・ワークステーション308との間で分割されている。図示されるように、システム300は、1つまたは複数の実施形態では、通信チャネル306を介して認証ノード304に結合されたクライアント・ワークステーション302と、ローカル・エリア・ネットワーク(LAN)310を介したセキュリティ・サーバ308とを含む。クライアント・ワークステーション302、セキュリティ・サーバ308、およびLAN310は、認証ノード304の視点からは、まとめて単一の要求元ノードとして見ることができる。システム300の認証ノード304および通信チャネル306は、システム100の対応する要素104および106と同様であり得る。システム100の要求元ノード102と同様に、クライアント・ワークステーション302およびセキュリティ・サーバ308は、例えばモバイル・デバイス、スマートフォン、タブレット・コンピュータ、ラップトップ・コンピュータ、携帯情報端末(PDA)、ワイヤレス・コンピュータ、デスクトップ・コンピュータ、サーバ、ワークステーションなどの各種コンピューティング・リソースまたはデバイスのいずれかであるか、またはそれを含むか、またはその上で実行され得る。さらに、LAN310は、トークンリングLAN等の任意の好適な種類のローカル・エリア・ネットワークであり得る。
【0044】
システム300の1つの認証シーケンス実施形態では、クライアント・ワークステーション302にいるユーザが、例えばLANセキュリティ・サーバ認証パスワードを入力することにより、LAN310に対して認証し、LAN310にユーザを認証するための方法は、当技術分野で知られる各種手法のいずれか1つであり、また望まれる場合は、本明細書に開示されるものなどの認証手法である。LAN310およびセキュリティ・サーバ308に対して認証した後、ユーザは、例えばワークステーションまたはクライアント機能を通じて、ホスト・アプリケーションにアクセスすることができる。ユーザおよびアクセスされているホスト・アプリケーションを識別する情報を含んでいる要求(REQ1)312が、クライアント・ワークステーション302からLAN310を介してセキュリティ・サーバ308に送られる。セキュリティ・サーバ308は、この情報を、日時情報およびサインオン鍵と共に使用して、ホスト・アプリケーションにアクセスするための、本明細書に開示されるようなワンタイム・パスワード(PW)314を生成する。ワンタイム・パスワード314は、LAN310を通じてクライアント・ワークステーション302に返され、クライアント・ワークステーション302は、ユーザおよびアプリケーション情報と共にパスワードを含んでいるサインオン要求(REQ2)316を認証ノード304に送信する。認証ノード304は、1つまたは複数の実施形態では、図1および図2の認証ノード104と同様の方法で要求316を処理する。
【0045】
述べたように、本発明の実施形態は、認証システム内での強化された認証処理のためのコンピュータ・プログラム製品、コンピュータ・システムおよび方法を含む。本明細書に記載される態様は、偶数および奇数のビット長を含む、任意のビット長の値を暗号変換および暗号解読するための強化されたプロセスを提供する。この機能は、結果として得られる、または暗号変換された、合計の2進値(例えば、認証パラメータ)を最大にするために認証トークン・システムにおいて有用であり、その値が、特定のシステムの認証資格情報のための制約された長さおよび制約された文字セットを用いて、認証パスワード内に符号化され得る。偶数・奇数両方の時間依存する長さ値を(複数の認証モードを介して)サポートすることにより、本明細書に開示される強化された認証処理は、認証システムの制約された文字列セット要件のサイズにちょうど一致する2進値範囲を提供する。さらに、本明細書に開示されるプロセスは、安全であるためにノンス値を必要としない。そうではなく、暗号変換対象値が複数の部分に分割され、それらの部分を再度組み合わせて暗号変換された値または認証パラメータにする前にそれら異なる部分に対して複数ラウンドの変換を用いることにより、増大したエントロピーが提供される。
【0046】
1つまたは複数の実施形態では、本明細書に開示される認証プロセスは、サインオン鍵、イベントに固有の値(例えば、ユーザ識別値およびアプリケーション名識別子などの認証の詳細)、ラウンド・カウントに固有の詳細(ラウンド・カウンタ値、もしくは他のラウンドに固有の変換データ、またはその両方など)、変換プロセス(メッセージ認証コード(MAC)プロセス、例えばハッシュベース・メッセージ認証コード(HMAC)など)、および現在の日時に基づく時間依存入力などの暗号変換対象値を含む、いくつかの入力値を利用する。ラウンド・カウンタのカウント値などのラウンド固有の値を使用して、それぞれのラウンド固有の変換が、すべての他の入力が同じであってもすべての他のラウンドと異なる結果を生じることを確実にすることに留意されたい。
【0047】
図4は、本発明の1つまたは複数の態様による、時間依存パスワードを生成して、認証のために認証システムの認証者に転送するための1つのプログラム・コード実施形態を示す。プログラム・コードの生成または暗号変換は、任意選択的に、秘密サインオン鍵、1つまたは複数のイベント固有の値、および本明細書に記載されるような変換プロセスを使用して、暗号変換対象時間値を変換することにより、認証システムによってサポートされる複数の認証モードのうちの特定の認証モードのための時間依存入力を生成することを含むことができる(400)。本明細書に記載されるように、時間依存入力が上記1つの認証モードのものである場合、時間依存入力は、第1の奇数または偶数ビット数の2進数であり、時間依存入力が別の認証モードのものである場合、時間依存入力は、異なるビット数の2値入力である(単なる例として)。例えば、一実施形態では、1つの認証モードの時間依存入力は、奇数ビット数であり、別の認証モードの時間依存入力は、偶数ビット数である。よって、時間依存入力は、認証システムによって現在使用されている認証モードに応じて、奇数または偶数ビット数の2進数であり得る。本明細書に記載される1つの特定の例では、1つの認証モードの時間依存入力は41ビットであり、別の認証モードの時間依存入力は48ビットである。しかし、当業者は、これらのビット数は単なる例として提供されるものであることに気づかれよう。
【0048】
示されるように、時間依存入力または初期2値パッケージは、(一実施形態では)本明細書でpart_aおよびpart_bと称される2つのセグメントに分割される(402)。有利な点として、本明細書に開示されるように、時間依存入力は、等しいかまたは等しくない長さのセグメント(または部分)に分割することができる。
【0049】
認証モードに基づいて、part_aおよびpart_bを使用して、時間依存入力の複数ラウンドの変換を行って、最終的なpart_aおよび最終的なpart_bを得る(404)。複数ラウンドの変換は、ラウンドごとに、(i)秘密サインオン鍵、1つまたは複数のイベント固有の値、1つまたは複数のラウンド固有のパラメータ(例えば、ラウンド・カウントもしくは現在のpart_bまたはその両方)、および変換プロセスを使用して現在のpart_aを変換することにより、新しいpart_aを生成すること(406)、(ii)秘密サインオン鍵、1つまたは複数のイベント固有の値、1つまたは複数のラウンド固有のパラメータ(例えば、ラウンド・カウントもしくは新しいpart_aまたはその両方)、および変換プロセスを使用して現在のpart_bを変換することにより、新しいpart_bを生成すること(408)、を含むことができる。生成(i)および生成(ii)は、Nラウンドにわたって繰り返され、各ラウンドの開始時に、現在のpart_aを新しいpart_aに置き換え、現在のpart_bを新しいpart_bに置き換える(410)。変換のラウンド数は、特定の認証システムに合わせて設定可能であり得ることに留意されたい。
【0050】
最終的なpart_aおよび最終的なpart_bは、共に組み合わされて、時間依存入力と同じビット数の認証パラメータ、または暗号変換された2進値、を形成する(412)。認証パラメータは、目的のシステム(例えば、認証ノード)の許容可能な長さおよび文字セットの文字列トークン値に符号化される(414)。詳細には、逆変換を有する別の所定の変換を使用して、認証パラメータから、文字列を含む時間依存パスワードが生成され、認証パラメータは、当該逆変換を使用して時間依存パスワードから復元可能である。時間依存パスワードは次いで、認証のために認証システムの認証者に転送される(416)。
【0051】
図4の処理は、本明細書に開示される概念に従って、例えば任意のビット長の平文値を暗号変換するためだけの一実施形態を示していることに留意されたい。
【0052】
図5は、図4の処理を使用して生成されたものなどの認証パスワードを評価するための1つのプロセス実施形態を示す。この評価プロセスは、認証パスワードを暗号解読することを含み、これは、述べたように、本明細書に記載されるものなどの生成処理を使用して得られた任意のビット長の暗号変換された値に基づくことができる。
【0053】
図5の評価プロセスは、認証パラメータへの認証パスワードの逆変換がすでに行われて、認証パラメータを暗号解読対象値として残していると仮定する。例えば、1つまたは複数の実施形態では、認証パスワード、または文字列トークン値は、最初に復号または逆変換されて、認証パラメータ(または暗号解読対象値である暗号変換された2進値)にされる。示されるように、暗号解読対象値、すなわち認証パラメータは、暗号変換プロセス中に時間依存入力が最初に分割された2つのセグメント(初期part_a、初期part_b)と同じビット数の2つのセグメント(part_a、part_b)に分割され(500)、セグメントは、述べたように、等しいかまたは等しくない長さであり得る。
【0054】
part_aおよびpart_bの複数ラウンドの逆方向変換を行って、暗号変換プロセスの初期part_aおよび初期part_bを得る(502)。複数ラウンドの逆方向変換は、(i)秘密サインオン鍵、1つまたは複数のイベント固有の値、1つまたは複数のラウンド固有の値(例えば、ラウンド・カウント(暗号変換とは逆の順にカウントする)、および現在のpart_a)、ならびに変換プロセスを使用して現在のpart_bを変換することにより、新しいpart_bを生成すること(504)、(ii)秘密サインオン鍵、1つまたは複数のイベント固有の値、1つまたは複数のラウンド固有の値(例えば、ラウンド・カウント(暗号変換とは逆の順にカウントする)、および新しいpart_b)、ならびに変換プロセスを使用して現在のpart_aを変換することにより、新しいpart_aを生成すること(506)、を含む。生成(i)および生成(ii)は、Nラウンドにわたって繰り返され、各ラウンドの開始時に、現在のpart_aを新しいpart_aに置き換え、現在のpart_bを新しいpart_bに置き換える(508)。複数ラウンドの逆方向変換を行うことに基づいて、初期part_aおよび初期part_bが得られ、それらが共に組み合わされて時間依存入力を形成する(510)。次いで、秘密サインオン鍵、1つまたは複数のイベント固有の値、および変換プロセスを使用して、時間依存入力を逆方向変換することにより、元の暗号変換対象時間値を復元することができる(512)。得られたら、復元された時間値を認証者で参照時間値と比較して、復元された時間値が所定の許容差内(例えば、所定の分または秒数以内)であるかどうかを判定する(514)。
【0055】
図6A図7Bは、本発明の1つまたは複数の実装による、パスワード生成およびパスワード評価のためのより詳細なプログラム・コード実施形態を示す。
【0056】
一実施形態では、プロセスは複数の入力を使用し、これは、一実施形態では、RACF(登録商標)ホスト・ユーザIDなどのホスト・ユーザID、モードおよびアプリケーションに依存し得る秘密サインオン鍵、アプリケーション名、時刻および日付情報、ならびに符号化または変換プロセス・タイプを含む。例えば、ユーザIDは、目的のアプリケーションが実行または動作する認証システム上でユーザを識別する。ユーザIDは、一実装では、拡張2進符号化10進互換コード(EBCDIC)で表すことができ、左揃えし、右側でブランクを埋め込むことにより、8バイトの長さに拡張することができる(一実施形態において)。サインオン鍵は、認証システムに対して現在設定されている認証モードに適する秘密のアプリケーション鍵値である。1つまたは複数の実施形態では、秘密鍵はHMAC秘密鍵であり、これは可変のビット数であり得る。一実装では、256ビットから2048ビットのHMAC鍵と併せて、HMAC with SHA-512が使用される。しかし、他のプラットフォームまたは実装は、HMACについて他のサポートまたは制約を有することがある。一実施形態では、HMAC秘密鍵が、UPPER認証モードとMIXED認証モードの両方で使用される。
【0057】
アプリケーション名は、特定のアプリケーションに対して定義され、秘密サインオン鍵を特定のホスト・アプリケーションに関連付けるために使用され得る。例として、アプリケーション名の決定に関するさらなる詳細が、(アメリカ合衆国)ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって公開された、z/OSセキュリティ・サーバRACF(登録商標)セキュリティ・アドミニストレータズ・ガイドに記載されている。一実装では、アプリケーション名(またはID)は、EBCDICで表され、左揃えし、右側でブランクを埋め込んで8バイトの長さにされる(単なる例として)。ユーザIDとアプリケーションIDは、パスワード・ジェネレータによって使用される際にはテキスト形態(実装に応じて通例はASCIIまたはEBCDIC)であることに留意されたい。一実施形態では、別々の一致するサインオン鍵が、アクセスされているホスト・アプリケーションごとに使用される。これを容易にするために、サインオン鍵は、テーブル(図示せず)に記憶することができ、そこで、例えばアプリケーションIDを使用してアクセスされる。
【0058】
日時情報は(認証ノードによって生成された参照日時と共に)、規定された開始時間から経過した指定継続時間の時間間隔数を示す。一実施形態では、時刻/データ情報は、1970年1月1日の00:00GMT以降経過した秒数を表す。(用語「日時」が使用される理由は、値が全体として時刻(TOD)と日付の両方を示すからであり、これら2つの数量のための別々のフィールドはない。)1つの認証モードの日時入力は、時間マクロまたは同等のプログラミング機能を使用して、当該ノードに位置する機械上のクロックから時刻を取得することによって導出される41ビットの2進整数(UPPERモードの場合)である。別の認証モードの場合、日時情報は、48ビットの2進整数(MIXEDモードの場合)である。様々なプログラミング言語が、時刻をこのようにして表現するための機能をサポートしている。例えば、C言語では、要求される形式の時刻を以下のコードによって得ることができる。変数「ts」が「long」として宣言されるとすると、関数time(&ts)を呼び出すと、符号なしの長整数として表された1970年1月1日の00:00GMT以来経過した秒数が、変数「ts」で返される。
【0059】
時間依存パスワードを認証するコンピュータまたは認証ノードは、パスワードを生成したコンピュータまたは要求元ノードではない可能性が高いことに留意されたい。内部クロック間の差を生じさせるために、本明細書に開示される処理は、生成される時刻が、時間依存パスワードを評価している認証者または認証ノードのTODクロックと異なることを許容する。許容される変動または時間ずれの量は、認証システム内で設定可能であり得る。一実施形態では、時間依存パスワードの評価のために、TODクロックはローカル時間ではなく、GTMに設定されなければならない。
【0060】
さらなる例として、図6A図6Dは、1つまたは複数の実装による、認証パスワードを生成するための1つのプログラム・コード実施形態をより詳細に示す。図6Aは、認証パスワード・プロセス600の概要を示し、これは任意選択的に、時間依存入力を生成すること(602)を含み、その一実施形態が図6Bを参照して下記で説明される。時間依存入力は、一実施形態が図6Cに示され下記で説明されるタイムコーダ生成プロセスを介して、認証パラメータに変換される(604)。得られたら、認証パラメータは、一実施形態が図6Dに示され下記で説明される符号化プロセスにより、認証パスワードにコンバートされる(606)。認証パスワードは、1つまたは複数の実装では、ユーザIDおよびアプリケーションIDなどの関連する非秘密データと共に、認証ノードの認証者に転送され(608)、その後処理は戻る(610)。
【0061】
述べたように、図6Bは、本明細書に記載されるように認証パラメータに変換される時間依存入力を生成する(602)ための1つのプログラム・コード実施形態を示している。図示された実施形態では、ユーザIDとアプリケーションIDが共に付加されて、合成情報(結果1)を生成する(620)。合成情報は、例えばHMACなどの変換プロセスを使用して変換される。一実施形態では、秘密サインオン鍵を使用するHMAC処理が合成情報に行われて、変換された合成情報(結果2)を生成する。一実装では、用いられる暗号動作はHMAC with SHA-512を使用することができ、これは64バイトの出力を生成することに留意されたい。図6Bの実施形態では、変換された情報の左側6バイトが選択され、残りは破棄される(624)。選択されたバイトは、日時情報との排他的OR演算を適用することによって変換されて、特定のモードのための要求されるビット数の時間依存入力を生成する(626)。その後、プログラム・コードは戻って、例えばタイムコーダ生成処理604(図6A)に進む。
【0062】
例として、図6Cは、複数回の反復または「ラウンド」を伴うプログラム・コード暗号変換プロセスまたはルーチンの一実施形態を示す。この処理は、一般にタイムコーダ生成処理と称され、結果として認証パラメータの出力を生じる。図示されるように、一実施形態では、6バイトの時間依存入力は、この実施形態では、L3B(すなわち、左側の3バイト)と称するpart_aと、R3B(すなわち、右側の3バイト)と称するpart_bとの2つのセグメントに分離される(630)。17バイトがpart_b(R3B)と連結されて、結果として得られる20バイトの列(R20B)を生成し、R3Bの3バイトが最も左側の3バイト位置を占める。一実装では、埋め込みは、例えば、1バイトのラウンド・カウンタ(ラウンド・カウンタは1回目の反復には値1で開始し、各ラウンド後に1ずつ増分される)と、8バイトのユーザIDと、8バイトのアプリケーション名またはIDとを含む別個のフィールドを含んでいる17バイトの列である。ステップ632は、N回(本明細書では「ラウンド」と称される)行われるステップS632~644を含むループにおける最初のステップであることに留意されたい。一例では、N=6であり、各ラウンドで、part_a(L3B)およびpart_b(R3B)が様々な動作を受け、その後、得られた部分が再度組み合わされて認証パラメータ出力にされる。
【0063】
図示されるように、得られたR20Bから、一実施形態ではHMACおよび秘密サインオン鍵をHMAC鍵として使用して、擬似ランダム・ビットが生成されて(634)、擬似ランダム生成物を生成する。生成物の最も左側の3バイトがD3Bとして切り離され(636)、値の残りは破棄される。
【0064】
ステップ636の得られたD3Bが次いで、排他的OR(XOR)または2を法とする加算演算を使用してpart_a(L3B)と組み合わされて638、暗号化プロセスを完了する。
【0065】
認証モードがUPPERであり、かつラウンド・カウンタが例えば1、3、または5である場合、マスキング動作が行われる。詳細には、ステップ638のXOR結果の最も左側の7ビットがマスクされて、それらの値を0に変える。そうでなく、認証モードがUPPERであり、かつラウンド・カウンタが2、4、もしくは6である場合、または認証モードがMIXEDである場合、XORの結果は変更されずに渡される(640)。次に、現在のpart_a(L3B)が、現在のpart_b(R3B)に等しく設定されて、新しいpart_aを生成し、新しいpart_bが、XOR演算の結果に等しく設定される(642)。完了したラウンド数の検査が行われる(644)。例えば、Nが6に等しい場合、カウント値が6未満であれば、処理はもう1ラウンドのためにステップ632に戻る。Nラウンドが完了している場合は、処理は、最終的なpart_aと最終的なpart_bとを組み合わせてタイムコーダ出力、すなわち認証パラメータ、を得る(646)ことによりステップ646に進み、その後、処理は、認証パラメータを認証パスワードに転換するために、例えば図6Aの処理に戻る(648)。
【0066】
述べたように、得られると、認証パラメータは認証パスワードにコンバートされる。1つまたは複数の実装では、プロセスは、64個のスロットからなる変換テーブルを使用する。最初の10個のスロットは、数0~9によって占められ、次の26個のスロットは、アルファベットの大文字(A~Z)によって占められる。次の26個のスロットは、アルファベットの小文字(a~z)によって占められる。一実施形態では、最後の2つのスロットは、2つの特殊文字(「-」および「_」など)によって占められ得る。これの実施形態が、下記の表1に示される。
【0067】
【表1】
【0068】
UPPER認証モードの認証パラメータは、変換テーブルの最初の36個のスロット(0~35)のみを使用し、MIXEDモードの認証パラメータは、64個のスロットすべてを使用することができることに留意されたい。
【0069】
図6Dに示されるように、認証パスワードへの認証パラメータのコンバート606は、まず6バイトのタイムコーダ出力を64ビットの2進値にコンバートする650ことによってタイムコーダ生成出力をEBCDIC列値にコンバートする、プログラム・コードを伴い得る。
【0070】
次いで、ステップS652~662を含むループに入り、ここで、暗号化される8文字の各文字を生成するために処理が繰り返される。図示されるように、UPPER認証モードの場合、64ビットの2進値に対してモジュロ36が決定される(UPPERモードの暗号変換の場合)か、またはMIXEDモードの暗号変換の場合は、64ビットの2進値に対してモジュロ64が決定される(652)。次のステップで、その結果が、変換テーブル1などの変換テーブルを使用して2進値からEBCDIC値(例として)に転換される(654)。例えば、2進値33は、EBCDIC値「X」に転換される。
【0071】
転換された結果は、EBCDIC値の個々の文字として設定される(656)。それらの文字は一度に1つずつ共に連結され、一番右側の文字から開始して、コンバート・ラウンドのたびに左へと進んでいく。
【0072】
64ビットの2進値が調節され(UPPER暗号変換の場合は36で割り、またはMIXED暗号変換の場合は64で割る)(658)、調整後の64ビットの2進値が、64ビットの2進値の代わりに使用される(660)。ステップ662は、図6Dの例では8である、要求される数の文字が符号化されたかどうかを判定する。符号化された文字が8個未満の場合、コンバート・プロセスは、もう1ラウンドのためにステップ652に戻る。8個の文字が符号化されると、認証パスワード値がアセンブルされており(664)、処理は、例えば図6Aの概要コード・プロセスに戻る(666)。
【0073】
図7A図7Bは、図6A図6Dの暗号変換プロセスを介して生成された時間依存認証パスワードを評価するためのプログラム・コード評価プロセスのより詳細な実施形態を示す。
【0074】
図7Aは、例えば、要求元ノードから受信された、ワンタイム・パスワード、ユーザID、およびアプリケーションIDを含んでいる認証要求を評価するために、認証ノードのパスワード・エバリュエータによって実装されるコード処理の一実施形態を示す。
【0075】
ワンタイム・パスワードを含んでいるサインオン要求を受信すると、パスワード・エバリュエータは、まずパスワードを逆転換することを試みることができる(702)。この試みの結果、受信されたパスワードが、正当なパスワード、すなわちパスワード転換ルーチンに入力された認証パラメータの値から生成された可能性のあるパスワードに対応している場合は、認証パラメータが再生成される。逆転換手順が、受信されたパスワードが正当なパスワードに対応しないと判定する場合(704)、受信されたパスワードはシステムに侵入しようとする試みまたはデータの破損のいずれかを表すので、パスワード・エバリュエータは、それ以上の処理を行わずにアクセスを拒否する(706)。
【0076】
受信されたパスワードが正当なパスワードに対応することに基づいて、パスワード・エバリュエータは、受信されたパスワードが、規定の時間間隔にわたって最近受信された有効なパスワードと同一であるかどうかを判定する(708)。受信されたパスワードが、規定の時間間隔内の、以前に処理されたパスワードの繰り返しまたはリプレイである場合、受信されたばかりのパスワードは、以前に受信されたパスワードの「リプレイ」であるとして拒否される(706)。ある特定のユーザIDおよびアプリケーションIDに対して有効なパスワードは時間と共に変わるため、同一のパスワードを生成することができる唯一の現実的な方法は、以前に送信されたパスワードを傍受し(例えば、通信チャネルを横断する間に)、そのパスワードを認証システム内に再び注入することで「リプレイ」することによる。
【0077】
受信されたパスワードが、以前に生成されたパスワードのリプレイでない場合、パスワード・エバリュエータは続いて、使用される鍵が、認証ノードに記憶されているサインオン鍵ならびに受信されたユーザIDおよびアプリケーションIDであることを除いて、パスワード・ジェネレータによる対応する生成物の生成と同様の方法で、暗号化生成物を生成する710。
【0078】
再生成された認証パラメータは、パラメータの逆転換のために、その一実施形態が図7Bに示される暗号解読ルーチンに渡される(712)。認証パラメータの逆転換は、パラメータを、時間依存入力に対応する解読後のmビットまたはnビットの数量にコンバートする。暗号解読結果は、次いで、XOR演算を使用して暗号化生成物(HMAC生成物)と組み合わされて、日時値Tを生成する(714)。
【0079】
再生成された時間Tは、認証ノードによってローカルに生成された参照日時値Trefと、適切な比較ルーチンを使用して比較される(716)。再生成された値TがTrefから所定の許容差(例えば、+/-x分)の外側にある場合(720)、パスワードは有効な期間に対応していないので、パスワード・エバリュエータはアクセスを拒否する(706)。
【0080】
再生成された値Tが所定の許容差以内にある場合、エバリュエータは、要求元が有効であると検証し、ホスト・アプリケーションへのアクセスについて要求を承認する(722)。また、検証後のパスワードは、リプレイ検出用の比較パスワードの待ち行列に加えられる(724)。検証後のパスワードは、ホスト時間Trefによって示される各自の到着時間(Tとは異なり得る)ではなく、各自の生成時間Tの順(特定の要求元ノードによって維持されている)で、待ち行列に加えられる。それらは、その生成時間Tが、現在のホスト時間Trefよりも現在の分(ふん)数を超えて遅くなると、待ち行列からパージされる。これは、その時間までに、それらは古くなり、うまくシステム内にリプレイすることができないためである。このパージは、パスワードの検証後(ステップ720の後)、ならびに再使用されているパスワードがないか待ち行列を調べる(ステップ708で)直前に行われ得る。
【0081】
図7Bは、逆転換のためのプログラム暗号解読ルーチン712の一実施形態を示す。ルーチンに入ると、入力は、1つのセグメントであるpart_a(L3B)と、別のセグメントであるpart_b(R3B)とに分割される730。処理は、次いで、ステップS732~742を含むループのN回の反復(「ラウンド」)を行い、ここで、part_aおよびpart_bが様々な動作にかけられた後、それらの部分を再度組み合わせ、暗号解読ルーチンを終了する。
【0082】
各ラウンドで、part_a(L3B)が、暗号変換プロセスと同じように、ラウンド・カウンタ、ユーザIDおよびアプリケーションIDからなる17バイトの埋め込みビットと連結される(732)。その結果得られたL20B出力の中で、L3Bの3バイトが、最も左側の3バイト位置を占める。HMAC with SHA-512を、安全なサインオン鍵の認証コピーをHMAC鍵としてL20Bの結果に対して行って(734)、擬似ランダム生成物を生成する。擬似ランダム生成物の最も左側の3バイトがD3Bとして分離され(736)、D3Bの外側の最も右側のバイトが破棄される。その結果得られたD3Bが、XOR(2を法とする加算)演算を使用してR3Bと組み合わせられる(738)。現在のpart_bは次いで現在のpart_a(L3B)に等しく設定され、その後、現在のpart_aが、XOR演算の結果に等しく設定される(740)。
【0083】
ステップ742では、完了したラウンド数の検査が行われる。値がまだ1に達していない場合、暗号解読プロセスは、ループを繰り返す前に現在のラウンド数から1を引くことにより(744)、もう1ラウンド継続する。6ラウンドが完了している場合、すなわち、ラウンド数が1までカウントダウンしている場合は、結果得られたpart_a(L3B)とpart_b(R3B)が組み合わされて、認証モードのための対応するビット列にされ、プロセスを完了し(746)、その後処理は戻る(748)。
【0084】
本発明の1つまたは複数の態様を組み込んで使用するためのコンピューティング環境の一実施形態について、図8Aを参照して説明する。一例では、コンピューティング環境は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって提供されるz/Architectureのハードウェア・アーキテクチャに基づく。z/Architectureハードウェア・アーキテクチャの1つの実施形態は、「z/Architecture Principles of Operation」(IBM Publication No.SA22-7832-12、第13版、2019年9月)に記載されており、同文献は全体が参照により本明細書に組み込まれる。IBMおよびZ/ARCHITECTUREは、少なくとも1つの管轄においてインターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である。
【0085】
別の例では、コンピューティング環境は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって提供されるPower Architectureに基づく。Power Architectureの一実施形態は、「Power ISA(商標)Version 2.07B」(インターナショナル・ビジネス・マシーンズ・コーポレーション、2015年4月9日)に記載されており、同文献は全体が参照により本明細書に組み込まれる。POWER ARCHITECTUREは、アメリカ合衆国ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である。
【0086】
コンピューティング環境は、Intel x86アーキテクチャを含む他のアーキテクチャに基づいてもよいが、これらに限定されない。他の例も存在する。
【0087】
図8Aに示されるように、コンピューティング環境800は、例として、例えば汎用コンピューティング・デバイスの形態で示される、コンピュータ・システム802を含む。コンピュータ・システム802は、以下に限定されないが、1つまたは複数のバスもしくは他の接続810またはその両方を介して互いと結合された、1つまたは複数のプロセッサまたは処理ユニット804(例えば中央演算処理装置(CPU))、メモリ806(例として、主メモリまたはストレージと称される)、および1つまたは複数の入力/出力(I/O)インターフェース808を含み得る。
【0088】
バス810は、各種のバス・アーキテクチャのいずれかを使用する、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサ・バスまたはローカル・バスを含む、数種のバス構造のいずれかの1つまたは複数を表す。限定ではなく例として、そのようなアーキテクチャには、インダストリ・スタンダード・アーキテクチャ(ISA)、マイクロ・チャネル・アーキテクチャ(MCA)、拡張型ISA(EISA)、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(VESA)ローカル・バス、およびぺりフェラル・コンポーネント・インタコネクト(PCI)が含まれる。
【0089】
メモリ806は、例えば、共有キャッシュなどのキャッシュ820を含むことができ、それは、プロセッサ804のローカル・キャッシュ822に結合され得る。さらに、メモリ806は、1つまたは複数のプログラムまたはアプリケーション830、オペレーティング・システム832、および1つまたは複数のコンピュータ可読プログラム命令834を含むことができる。コンピュータ可読プログラム命令834は、本発明の態様の実施形態の機能を実行するように構成され得る。
【0090】
コンピュータ・システム802は、例えばI/Oインターフェース808を介して、1つもしくは複数の外部デバイス840、1つもしくは複数のネットワーク・インターフェース842、または1つもしくは複数のデータ記憶装置844、またはそれらの組合せと通信し得る。例示的な外部デバイスには、ユーザ端末、テープ・ドライブ、ポインティング・デバイス、ディスプレイ等が含まれる。ネットワーク・インターフェース842は、コンピュータ・システム802が、ローカル・エリア・ネットワーク(LAN)、一般のワイド・エリア・ネットワーク(WAN)、もしくは公衆ネットワーク(例えばインターネット)、またはそれらの組合せなどの1つまたは複数のネットワークと通信することを可能にして、他のコンピューティング・デバイスまたはシステムとの通信を提供する。
【0091】
データ記憶装置844は、1つもしくは複数のプログラム846、1つもしくは複数のコンピュータ可読プログラム命令848、もしくはデータ、またはそれらの組合せ等を記憶し得る。コンピュータ可読プログラム命令は、本発明の態様の実施形態の機能を実行するように構成され得る。
【0092】
コンピュータ・システム802は、取り外し可能/取り外し不能、揮発性/不揮発性のコンピュータ・システム記憶媒体を含むか、もしくはそれに結合されるか、またはその両方であり得る。例えば、それは、取り外し不能で不揮発性の磁気媒体(通例「ハード・ドライブ」と呼ばれる)、取り外し可能で不揮発性の磁気ディスク(例えば「フロッピー・ディスク」)の読み書きを行うための磁気ディスク・ドライブ、またはCD-ROM、DVD-ROMもしくは他の光学媒体などの取り外し可能で不揮発性の光ディスクの読み書きを行うための光ディスク・ドライブ、またはそれらの組合せを含むか、もしくはそれに結合されるか、またはその両方であり得る。他のハードウェアもしくはソフトウェア・コンポーネントまたはその両方がコンピュータ・システム802と併せて使用され得ることが理解されるべきである。例としては、以下に限定されないが、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ保存記憶システム等が含まれる。
【0093】
コンピュータ・システム802は、多数の他の汎用または特殊目的のコンピューティング・システム環境または構成と共に動作し得る。コンピュータ・システム802と共に使用するのに適し得る、よく知られているコンピューティング・システム、環境、もしくは構成、またはそれらの組合せの例には、以下に限定されないが、パーソナル・コンピュータ(PC)システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、手持ち型またはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、セット・トップ・ボックス、プログラム可能消費者家電、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上述のシステムまたはデバイスの任意のものを含む分散クラウド・コンピューティング環境等が含まれる。
【0094】
プロセッサ804の一例に関するさらなる詳細について、図8Bを参照して説明する。プロセッサ804は、命令を実行するために使用される複数の機能構成要素を含む。それらの機能構成要素には、例えば、実行される命令をフェッチする命令フェッチ・コンポーネント850、フェッチされた命令を復号し、復号された命令のオペランドを取得する命令復号ユニット852、復号された命令を実行する命令実行コンポーネント854、必要な場合、命令実行のためにメモリにアクセスするメモリ・アクセス・コンポーネント856、および実行された命令の結果を提供する書き戻しコンポーネント860が含まれる。プロセッサ804は、一実施形態では、機能構成要素の1つまたは複数によって使用される1つまたは複数のレジスタ870も含む。
【0095】
1つまたは複数の態様を組み込んで使用するためのコンピューティング環境の別の実施形態について、図9Aを参照して説明する。この例では、コンピューティング環境900は、例として、例えば1つまたは複数のバス908もしくは他の接続またはその両方を介して互いと結合された、ネイティブな中央演算処理装置(CPU)902、メモリ904、ならびに1つまたは複数の入力/出力装置もしくはインターフェース90またはそれらの組合せを含む。例として、コンピューティング環境900は、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシーンズ・コーポレーションによって提供されるPowerPCプロセッサまたはpSeriesサーバ、またはインターナショナル・ビジネス・マシーンズ・コーポレーション、Intel、もしくは他の企業によって提供されるアーキテクチャ、またはそれらの組合せに基づく他の機械を含んでよい。
【0096】
ネイティブ中央演算処理装置902は、環境内で処理中に使用される、1つもしくは複数の汎用レジスタ、または1つもしくは複数の特殊目的レジスタ、またはその両方などの、1つまたは複数のネイティブ・レジスタ910を含む。これらのレジスタは、任意の特定の時点における環境の状態を表す情報を含んでいる。
【0097】
さらに、ネイティブ中央演算処理装置902は、メモリ904に記憶されている命令およびコードを実行する。具体的な一例では、中央演算処理装置は、メモリ904に記憶されているエミュレータ・コード912を実行する。このコードは、あるアーキテクチャで構成されたコンピューティング環境が別のアーキテクチャをエミュレートすることを可能にする。例えば、エミュレータ・コード912は、PowerPCプロセッサ、pSeriesサーバまたは他のサーバもしくはプロセッサなどの、z/Architecture以外のアーキテクチャに基づく機械が、z/Architectureをエミュレートし、z/Architectureに基づいて開発されたソフトウェアおよび命令を実行することを可能にする。
【0098】
エミュレータ・コード912に関するさらなる詳細が、図9Bを参照して説明される。メモリ904に記憶されたゲスト命令950は、ネイティブCPU902のアーキテクチャ以外のアーキテクチャ内で実行するために開発されたソフトウェア命令(例えば機械命令と相関する)を含む。例えば、ゲスト命令950は、z/Architectureプロセッサで実行するように設計されている可能性があるが、代わりに、例えばIntelプロセッサであり得る、ネイティブCPU902上でエミュレートされている。一例では、エミュレータ・コード912は、メモリ904から1つまたは複数のゲスト命令950を取得し、任意選択的に、取得した命令のローカルなバッファリングを提供するための命令フェッチ・ルーチン952を含む。それは、取得されたゲスト命令の種類を判定し、そのゲスト命令を1つまたは複数の対応するネイティブ命令956に変換するための命令変換ルーチン954も含む。この変換は、例えば、ゲスト命令によって行われる機能を識別し、その機能を行うためのネイティブ命令を選択することを含む。
【0099】
さらに、エミュレータ・コード912は、ネイティブ命令を実行させるエミュレーション制御ルーチン960を含む。エミュレーション制御ルーチン960は、ネイティブCPU902にネイティブ命令のルーチンを実行させ得、それが、1つまたは複数の事前に取得されたゲスト命令をエミュレートし、その実行の終結時に、制御を命令フェッチ・ルーチンに戻して次のゲスト命令またはゲスト命令の群の取得をエミュレートする。ネイティブ命令956の実行は、変換ルーチンの決定に応じて、メモリ904からレジスタにデータをロードすること、レジスタからメモリにデータを戻して記憶すること、または、何らかの種類の算術もしくは論理演算を行うことを含み得る。
【0100】
各ルーチンは、例えば、ソフトウェアとして実装され、それがメモリに記憶され、ネイティブ中央演算処理装置902によって実行される。他の例では、ルーチンまたは動作の1つまたは複数が、ファームウェア、ハードウェア、ソフトウェア、またはそれらの何らかの組合せとして実装される。エミュレートされるプロセッサのレジスタは、ネイティブCPUのレジスタ910を使用して、またはメモリ904内の場所を使用することによって、エミュレートされ得る。実施形態において、ゲスト命令950、ネイティブ命令956、およびエミュレータ・コード912は、同じメモリに存在していても、または異なるメモリ・デバイス間に分散されてもよい。
【0101】
本明細書において使用される場合、ファームウェアは、例えばプロセッサのマイクロコードまたはミリコードを含む。それは、例えば、高水準の機械コードの実装で使用されるハードウェアレベル命令もしくはデータ構造またはその両方を含む。一実施形態では、それは、例えば、独自仕様コードを含み、この独自仕様コードは、基礎となるハードウェアに固有である信頼できるソフトウェアまたはマイクロコードを含み、システム・ハードウェアへのオペレーティング・システム・アクセスを制御する、マイクロコードとして提供されるのが一般的である。
【0102】
取得され、転換され、実行されるゲスト命令950は、例えば、監視されている記憶設備の命令であり、そのいくつかが本明細書に記載されている。あるアーキテクチャ(例えば、z/Architecture)の命令は、メモリからフェッチされ、転換されて、別のアーキテクチャ(例えば、PowerPC、pSeries、Intel等)のネイティブ命令956のシーケンスとして表される。これらのネイティブ命令は次いで実行される。
【0103】
1つまたは複数の態様は、クラウド・コンピューティングに関係するかまたはそれを使用してよい。
【0104】
本開示はクラウド・コンピューティングに関する詳細な説明を含むが、本明細書に述べられる特定の教示の実施はクラウド・コンピューティング環境に限定されないことがあらかじめ理解されるべきである。むしろ、本発明の実施形態は、現在知られているかまたは後に開発される任意の他の種類のコンピューティング環境と併せて実施されることが可能である。
【0105】
クラウド・コンピューティングは、最小限の管理労力で、またはサービスの提供者との最小限の対話で、速やかにプロビジョニングおよび公開することが可能な、構成可能なコンピューティング・リソース(例えばネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス)の共有プールへの利便でオンデマンドのネットワーク・アクセスを可能にするためのサービス提供のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデル、および少なくとも4つの展開モデルを含み得る。
【0106】
特性は以下の通りである。
【0107】
オンデマンド・セルフサービス:クラウド消費者が、サービスの提供者との人的な対話を必要とすることなく、必要に応じて、自動的に、サーバ時間やネットワーク・ストレージなどのコンピューティング能力を一方向にプロビジョニングすることができる。
【0108】
ブロード・ネットワーク・アクセス:諸能力が、ネットワークを通じて利用可能であり、異種混合のシンまたはシック・クライアント・プラットフォーム(例えば携帯電話、ラップトップ、およびPDA)による使用を促進する標準的な機構を通じてアクセスされる。
【0109】
リソース・プーリング:提供者のコンピューティング・リソースが、マルチテナント・モデルを使用して複数の消費者に対応するためにプールされ、種々の物理リソースおよび仮想リソースが、必要に従って動的に割り当てられ、再割り当てされる。消費者は、一般に、提供されるリソースの正確な所在地に関して制御も知識も有さないが、高い抽象化レベルで場所を指定することができる(例えば、国、州、またはデータセンター)という点で、場所の非依存感がある。
【0110】
速やかな順応性:迅速に拡張し、速やかに解放されて迅速に縮小するように、能力を、速やかかつ柔軟に、場合によっては自動的にプロビジョニングすることができる。消費者にとって、プロビジョニングするために利用可能な能力は、多くの場合無限に見え、任意の時に任意の数量で購入することができる。
【0111】
計測されるサービス:クラウド・システムが、サービスの種類(例えば、ストレージ、処理、帯域幅、および有効なユーザ・アカウント)に適する何らかの抽象化レベルで、計測能力を活用することにより、リソース使用を自動的に制御および最適化する。リソース使用を監視、制御、および報告して、利用されるサービスの提供者と消費者の両方に透明性を提供することができる。
【0112】
サービス・モデルは以下の通りである。
【0113】
サービスとしてのソフトウェア(SaaS):消費者に提供される能力は、クラウド・インフラストラクチャ上で動作する提供者のアプリケーションを使用する能力である。アプリケーションは、ウェブ・ブラウザ(例えばウェブベースの電子メール)などのシン・クライアント・インターフェースを通じて、様々なクライアント・デバイスからアクセスすることができる。消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージを含む、基礎となるクラウド・インフラストラクチャ、またはさらには、可能性としては限られたユーザ固有のアプリケーション構成設定を除く個々のアプリケーション能力すら、管理も制御もしない。
【0114】
サービスとしてのプラットフォーム(PaaS):消費者に提供される能力は、提供者によってサポートされるプログラミング言語およびツールを使用して作成された、消費者によって作成または取得されたアプリケーションを、クラウド・インフラストラクチャ上に展開する能力である。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む、基礎となるクラウド・インフラストラクチャを管理も制御もしないが、展開されたアプリケーション、および可能性としてはアプリケーション・ホスト環境構成に対する制御を有する。
【0115】
サービスとしてのインフラストラクチャ(IaaS):消費者に提供される能力は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングする能力であり、消費者は、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを展開して実行することができる。消費者は、基礎となるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、展開されたアプリケーションに対する制御、および場合によっては選択されたネットワーキング・コンポーネント(例えばホスト・ファイアウォール)の制限された制御を有する。
【0116】
展開モデルは以下の通りである。
【0117】
プライベート・クラウド:クラウド・インフラストラクチャが、1つの組織のためだけに運用される。それは、その組織または第三者によって管理され得、構内または構外に存在し得る。
【0118】
コミュニティ・クラウド:クラウド・インフラストラクチャがいくつかの組織によって共有され、共有される関心事項(例えば、使命、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティを支援する。それは、それら組織または第三者によって管理され得、構内または構外に存在し得る。
【0119】
パブリック・クラウド:クラウド・インフラストラクチャが、一般公衆または大きな産業グループに利用可能とされ、クラウド・サービスを販売する組織によって所有される。
【0120】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成であり、それらのクラウドは、固有のエンティティのままであるが、データおよびアプリケーションの移植性を可能にする、標準化されたまたは独自仕様の技術(例えばクラウド間の負荷分散のためのクラウド・バースティング)によって互いに結合される。
【0121】
クラウド・コンピューティング環境は、ステートレス性、低い結合度、モジュール性、および意味的な相互運用性を重視したサービスである。クラウド・コンピューティングの中核にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0122】
クラウド・コンピューティング・ノードは、図10に示されるものなどのコンピュータ・システム/サーバを含むことができる。図8Aのコンピュータ・システム/サーバ802または図9Aの902は、通信ネットワークによって接続された遠隔の処理デバイスによってタスクが行われる分散クラウド・コンピューティング環境で実施され得る。分散クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ記憶装置を含む、ローカルおよびリモート両方のコンピュータ・システム記憶媒体に置かれてよい。コンピュータ・システム/サーバ802、902は、実装されることが可能であるか、もしくは上記に述べられた機能の任意のものを行うことが可能であるか、またはその両方が可能である。
【0123】
次いで図10を参照すると、例示的なクラウド・コンピューティング環境50が描かれている。示されるように、クラウド・コンピューティング環境50は、1つまたは複数のクラウド・コンピューティング・ノード10を含むことができ、クラウド消費者によって使用されるローカル・コンピューティング・デバイス、例えば、携帯情報端末(PDA)もしくはセルラー電話54A、デスクトップ・コンピュータ54B、ラップトップ・コンピュータ54C、または自動車コンピュータ・システム54N、またはそれらの組合せが、上記クラウド・コンピューティング・ノードと通信し得る。ノード10は、互いと通信し得る。それらは、本明細書の上記に記載されるようにプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウドなどの1つまたは複数のネットワークとして、またはそれらの組合せとして、物理的または仮想的にグループ化されてよい(図示せず)。これにより、クラウド・コンピューティング環境50が、インフラストラクチャ、プラットフォーム、もしくはソフトウェアまたはそれらの組合せを、サービスとして提供することが可能となり、それに対してクラウド消費者は、ローカル・コンピューティング・デバイス上にリソースを維持しておく必要がない。図6に示されるコンピューティング・デバイス54A~Nの種類は単に例示的なものであることが意図され、またコンピューティング・ノード10およびクラウド・コンピューティング環境50は、任意の種類のネットワークもしくはネットワーク・アドレス指定可能接続(例えばウェブ・ブラウザを使用する)、またはそれらの組合せを通じて、任意の種類のコンピュータ化されたデバイスと通信できることが理解される。
【0124】
図11を参照すると、クラウド・コンピューティング環境50(図10)によって提供される機能抽象化層のセットが示されている。図10に示される構成要素、層、および機能は単に例示的なものであることが意図され、本発明の実施形態はそれに限定されないことがあらかじめ理解されるべきである。描かれるように、以下の層および対応する機能が提供される。
【0125】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、記憶装置65、ならびにネットワークおよびネットワーキング・コンポーネント66を含む。一部の実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
【0126】
仮想化層70は抽象化層を提供し、そこから以下の仮想エンティティの例が提供され得る:仮想サーバ71、仮想ストレージ72、仮想プライベート・ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75。
【0127】
一例では、管理層80は、下記の機能を提供し得る。リソース・プロビジョニング81は、クラウド・コンピューティング環境内でタスクを行うために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計測および価格決定82は、クラウド・コンピューティング環境内でリソースが利用されるのに伴う費用追跡、およびそれらリソースの消費に対する請求書送付またはインボイス送付を提供する。一例では、これらリソースは、アプリケーション・ソフトウェアのライセンスを含み得る。セキュリティは、クラウド消費者およびタスクに関する身元検証、ならびにデータおよび他のリソースに関する保護を提供する。ユーザ・ポータル83は、クラウド・コンピューティング環境へのアクセスを消費者およびシステム管理者に提供する。サービス・レベル管理84は、必要とされるサービス・レベルが満たされるように、クラウド・コンピューティング・リソースの割り振りおよび管理を提供する。サービス・レベル合意(SLA)の計画および遂行85は、将来の必要性が見込まれるクラウド・コンピューティング・リソースの事前の構成および調達をSLAに従って提供する。
【0128】
作業負荷層90は、クラウド・コンピューティング環境が利用され得る機能の例を提供する。この層から提供され得る作業負荷および機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、ならびに認証システム処理96が含まれる。
【0129】
様々な本発明の実施形態の説明は、例示および説明の目的で提示されたものであり、網羅的であるかまたは開示される形態であることに制限されることが意図されない。記載された実施形態の範囲および思想から逸脱することなく、多くの変更および変形が当業者に明らかとなろう。本明細書で使用された用語は、実施形態の原理、実際的な応用、もしくは市場に見られる技術に対する技術的向上を最も良く説明するために、または当業者が本明細書に記載される実施形態を理解できるようにするために選択されたものである。
【0130】
本発明は、任意の可能な技術的詳細レベルのインテグレーションにおけるシステム、方法、もしくはコンピュータ・プログラム製品、またはそれらの組合せであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を有している(1つまたは複数の)コンピュータ可読記憶媒体を含むことができる。
【0131】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶することが可能な有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、以下に限定されないが、電子記憶装置、磁気記憶装置、光学記憶装置、電磁気記憶装置、半導体記憶装置、または上述の任意の好適な組合せであってよい。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストには、携帯型コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラム可能リード・オンリ・メモリ(EPROMまたはフラッシュ・メモリ)、静的ランダム・アクセス・メモリ(SRAM)、携帯型コンパクト・ディスクリード・オンリ・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチ・カードや命令が記録されている溝内の隆起構造などの機械的に符号化されたデバイス、および上述の任意の好適な組合せが含まれる。本発明において使用されるコンピュータ可読記憶媒体は、電波または他の自由伝搬する電磁波、導波管もしくは他の伝送媒体を通って伝搬する電磁波(例えば光ファイバ・ケーブルを通る光パルス)、または電線を通じて伝送される電気信号などの一過性の信号自体であるとは解釈されるべきでない。
【0132】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、もしくは、ネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくはワイヤレス・ネットワーク、またはそれらの組合せを介して、外部コンピュータもしくは外部記憶装置にダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、またはそれらの組合せを含んでよい。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースが、ネットワークからコンピュータ可読プログラム命令を受け取り、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内部のコンピュータ可読記憶媒体内に記憶するために転送する。
【0133】
本発明の動作を実施するためのコンピュータ可読プログラム命令は、Smalltalk、C++等のオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書かれた、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、または、ソース・コードもしくはオブジェクト・コードのいずれかであってよい。コンピュータ可読プログラム命令は、スタンドアロンのソフトウェア・パッケージとして、全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上で一部がリモート・コンピュータ上で、または全体がリモート・コンピュータもしくはサーバ上で実行されてよい。後者のシナリオでは、リモート・コンピュータが、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意の種類のネットワークを通じてユーザのコンピュータに接続されてもよいし、または接続が外部コンピュータになされてもよい(例えばインターネット・サービス・プロバイダを使用してインターネットを通じて)。一部の実施形態では、例えば、プログラム可能論理回路、フィールド・プログラム可能ゲートアレイ(FPGA)、またはプログラム可能論理アレイ(PLA)を含む電子回路が、本発明の態様を実施するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個別設定することによって、コンピュータ可読プログラム命令を実行してよい。
【0134】
本発明の態様は、本明細書において、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照して記載される。フローチャート図もしくはブロック図またはその両方の各ブロック、ならびにフローチャート図もしくはブロック図またはそれらの組合せの中のブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
【0135】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行される命令が、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックに指定される機能/動作を実施するための手段を作り出すように機械を制作すべく、汎用コンピュータ、特殊目的コンピュータ、または他のプログラム可能データ処理装置のプロセッサに提供されてよい。それらのコンピュータ可読プログラム命令は、命令が記憶されているコンピュータ可読記憶媒体が、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックに指定される機能/行為の態様を実施する命令を含む製造品を構成するように、コンピュータ、プログラム可能データ処理装置、もしくは他のデバイス、またはそれらの組合せに特定の方式で機能するように指示することができるコンピュータ可読記憶媒体に記憶されてもよい。
【0136】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラム可能装置、または他のデバイスで実行される命令が、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックに指定される機能/行為を実施するように、コンピュータ、他のプログラム可能データ処理装置、もしくは他のデバイスにロードされて、コンピュータ、他のプログラム可能装置、または他のデバイス上で一連の動作ステップを行わせて、コンピュータによって実施されるプロセスを発生させてもよい。
【0137】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能、および動作を説明している。これに関して、フローチャートまたはブロック図中の各ブロックは、モジュール、セグメント、または命令の一部を表し得、それは、指定される論理機能を実施するための1つまたは複数の実行可能命令を含む。一部の代替的な実装形態では、ブロックに記される機能は、図に記される順序から外れて行われてよい。例えば、連続して示される2つのブロックが、実際には、実質的に同時に実行されてもよいし、またはそれらブロックが、時に、関与する機能に応じて逆の順序で実行されてもよい。また、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方の中のブロックの組合せは、指定される機能もしくは行為を行うか、または特殊目的ハードウェアとコンピュータ命令との組合せを実施する、特殊目的のハードウェア・ベース・システムによって実施され得ることに留意されたい。
【0138】
上記に加えて、1つまたは複数の態様が、顧客環境の管理を提供するサービス提供者によって、提供、供給、展開、管理、サービス等され得る。例えば、サービス提供者は、1人または複数の顧客のために1つまたは複数の態様を行うコンピュータ・コードもしくはコンピュータ・インフラストラクチャまたはその両方を作成、保持、支援等することができる。その見返りとして、サービス提供者は、例としてサブスクリプションもしくは料金またはその両方の契約の下に顧客から支払いを受け取り得る。追加または代替として、サービス提供者は、1つまたは複数の第三者への広告コンテンツの販売から支払いを受け取ってもよい。
【0139】
一態様では、1つまたは複数の実施形態を行うためのアプリケーションが展開され得る。一例として、アプリケーションの展開は、1つまたは複数の実施形態を行うように動作可能なコンピュータ・インフラストラクチャを提供することを含む。
【0140】
さらなる態様として、コンピュータ可読コードをコンピューティング・システムに統合することを含むコンピューティング・インフラストラクチャが展開され得、コードは、コンピューティング・システムとの組合せで、1つまたは複数の実施形態を行うことができる。
【0141】
またさらなる態様として、コンピュータ可読コードをコンピュータ・システムに統合することを含む、コンピューティング・インフラストラクチャを統合するためのプロセスが提供され得る。コンピュータ・システムは、コンピュータ可読媒体を備え、コンピュータ媒体は1つまたは複数の実施形態を備える。コードは、コンピュータ・システムとの組合せで、1つまたは複数の実施形態を行うことができる。
【0142】
様々な実施形態が上記で説明されたが、それらは例に過ぎない。例えば、1つまたは複数の実施形態を組み込んで使用するために、他のアーキテクチャのコンピューティング環境が使用され得る。さらに、異なる命令、命令形式、命令フィールド、もしくは命令値、またはそれらの組合せが使用されてよい。多くの変形例が可能である。
【0143】
さらに、他の種類のコンピューティング環境が利益を得、使用されることができる。一例として、システム・バスを通じて直接または間接的にメモリ要素に結合された少なくとも2つのプロセッサを含む、プログラム・コードを記憶もしくは実行するか、またはその両方を行うのに適したデータ処理システムが使用可能である。メモリ要素は、例えば、プログラム・コードの実際の実行中に用いられるローカル・メモリ、大容量ストレージ、および、実行中に大容量ストレージからコードが取り出されなければならない回数を減らすために少なくともいくらかのプログラム・コードの一時的な記憶を提供するキャッシュ・メモリを含む。
【0144】
入力/出力またはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイス、DASD、テープ、CD、DVD、サム・ドライブおよび他のメモリ媒体等が上げられるがこれらに限定されない)が、直接、または仲介するI/Oコントローラを通じて、システムに結合され得る。ネットワーク・アダプタもシステムに結合されて、データ処理システムが、仲介するプライベート・ネットワークまたは公衆ネットワークを通じて、他のデータ処理システムまたはリモート・プリンタまたは記憶装置に結合されることを可能にし得る。モデム、ケーブル・モデム、およびEthernetカードは、ネットワーク・アダプタの利用可能な種類のほんの数例である。
【0145】
本明細書で使用された用語は、特定の実施形態を説明することのみを目的とし、本発明を制限することは意図されない。本明細書で使用される場合、単数形の「a」、「an」および「the」は、文脈が別段に明らかに示さない限り、複数形も包含することが意図される。さらに、語「comprise(備える)」(および「comprises」や「comprising」などの「comprise」の任意の形態)、「have(有する)」(および「has」や「having」などの「have」の任意の形態)、「include(含む)」(および「includes」や「including」などの「include」の任意の形態)、ならびに「contain(含んでいる)」(および「contains」や「containing」などの「contain」の任意の形態)は、オープンエンドの連結動詞であることが理解されるであろう。その結果、1つまたは複数のステップまたは要素を「備える」、「有する」、「含む」、または「含んでいる」方法またはデバイスは、それら1つまたは複数のステップまたは要素を所有しているが、それら1つまたは複数のステップまたは要素のみを所有することに制限されない。同様に、1つまたは複数の特徴を「備える」、「有する」、「含む」、または「含んでいる」方法のステップまたはデバイスの要素は、それら1つまたは複数の特徴を所有しているが、それら1つまたは複数の特徴のみを所有することに制限されない。さらに、ある方式で構成されているデバイスまたは構造は、少なくともその方式で構成されているが、列挙されない方式で構成されてもよい。
【0146】
下記の特許請求の範囲における、すべての手段またはステップに機能を加えた要素の、対応する構造、材料、動作、および相当物は、存在する場合、明確に特許請求される他の特許請求される要素との組合せで機能を行うための任意の構造、材料、または動作を包含することが意図される。本発明の説明は、例示および説明の目的で提示されたものであり、網羅的であるかまたは開示される形態の本発明に制限されることは意図されない。記載された実施形態の範囲および思想から逸脱することなく、多くの変更および変形が当業者に明らかとなろう。実施形態は、本発明の1つまたは複数の態様の原理および実際的応用を最も良く説明するために、および、当業者が、様々な実施形態に関して、企図される特定の用途に適する様々な変更と共に、様々な実施形態に関して本発明の1つまたは複数の態様を理解することを可能にするために選択および記載された。
図1
図2
図3
図4
図5
図6A
図6B
図6C
図6D
図7A
図7B
図8A
図8B
【図
図9A
図9B
図10
図11
【手続補正書】
【提出日】2023-04-12
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
認証システム内での認証処理のためのコンピュータ・システムであって、
前記コンピュータ・システムが、
逆変換を有する所定の変換を使用して、時間依存入力に応じた認証パラメータを生成することであって、前記時間依存入力が、前記逆変換を使用して前記認証パラメータから復元可能であり、前記認証システムは複数の認証モードをサポートし、前記複数の認証モードのうちの1つの認証モードの前記時間依存入力のビット長は、前記複数の認証モードのうちの別の認証モードの前記時間依存入力のビット長と異なり、前記生成は、前記時間依存入力が前記1つの認証モードのものであるかそれとも前記別の認証モードのものであるかに部分的に依存する、前記認証パラメータを生成することと、
別の逆変換を有する別の所定の変換を使用して、前記認証パラメータから文字列を含む時間依存パスワードを生成することであって、前記認証パラメータは、前記別の逆変換を使用して前記時間依存パスワードから復元可能である、前記時間依存パスワードを生成することと、
前記時間依存パスワードを、認証のために前記認証システムの認証者に転送することと
を含む動作を実行する、コンピュータ・システム。
【請求項2】
前記時間依存入力が前記1つの認証モードのものである場合、前記時間依存入力は、奇数ビット数の2値入力である、請求項1に記載のコンピュータ・システム。
【請求項3】
前記時間依存入力が前記別の認証モードのものである場合、前記時間依存入力は、偶数ビット数の2値入力である、請求項1または2に記載のコンピュータ・システム。
【請求項4】
前記1つの認証モードの前記時間依存入力は41ビットを含み、前記別の認証モードの前記時間依存入力は48ビットを含む、請求項3に記載のコンピュータ・システム。
【請求項5】
前記生成することが、
前記時間依存入力を、1つのセグメント(part_a)と別のセグメント(part_b)とに分割することと、
前記1つのセグメント(part_a)および前記別のセグメント(part_b)を使用して、前記時間依存入力の複数ラウンドの変換を行って、最終的なpart_aおよび最終的なpart_bを得ることであって、前記複数ラウンドの変換のうち1ラウンドの変換は、サインオン鍵、ラウンドに固有の値、および変換プロセスを少なくとも部分的に使用して、現在のpart_aおよび現在のpart_bを変換することを含み、前記ラウンド固有の値は、前記複数ラウンドの変換の各ラウンドの変換ごとに変化する、前記複数ラウンドの変換を行うことと、
前記複数ラウンドの変換を行うことに基づいて、前記最終的なpart_aと前記最終的なpart_bとを組み合わせて前記認証パラメータを形成することと
を含む、請求項1~4のいずれか1項に記載のコンピュータ・システム。
【請求項6】
前記1つの認証モードは、前記サインオン鍵が大文字の文字および数字のみを使用するUPPER認証モードであり、前記別の認証モードは、前記サインオン鍵が大文字および小文字の文字、数字、ならびに1つまたは複数の特殊文字のいずれかを使用するMIXED認証モードである、請求項5に記載のコンピュータ・システム。
【請求項7】
前記複数ラウンドの変換のうちの1または複数ラウンドの変換は、前記認証システムが現在前記1つの認証モードを使用しているかそれとも前記別の認証モードを使用しているかに部分的に依存するプロセスを含む、請求項5または6に記載のコンピュータ・システム。
【請求項8】
前記ラウンドに固有の値は、ラウンド・カウンタの現在の値を含み、前記ラウンド・カウンタの前記現在の値は、前記複数ラウンドの変換の各ラウンドの変換ごとに変化し、前記変換プロセスがメッセージ認証コード(MAC)プロセスである、請求項5~7のいずれか1項に記載のコンピュータ・システム。
【請求項9】
認証システム内での認証処理の方法であって、前記方法はコンピュータに対して、
逆変換を有する所定の変換を使用して、時間依存入力に応じた認証パラメータを生成することであって、前記時間依存入力が、前記逆変換を使用して前記認証パラメータから復元可能であり、前記認証システムは複数の認証モードをサポートし、前記複数の認証モードのうちの1つの認証モードの前記時間依存入力のビット長は、前記複数の認証モードのうちの別の認証モードの前記時間依存入力のビット長と異なり、前記生成は、前記時間依存入力が前記1つの認証モードのものであるかそれとも前記別の認証モードのものであるかに部分的に依存する、前記認証パラメータを生成することと、
別の逆変換を有する別の所定の変換を使用して、前記認証パラメータから文字列を含む時間依存パスワードを生成することであって、前記認証パラメータは、前記別の逆変換を使用して前記時間依存パスワードから復元可能である、前記時間依存パスワードを生成することと、
前記時間依存パスワードを、認証のために前記認証システムの認証者に転送することと
を含む動作を実行させる方法。
【請求項10】
前記時間依存入力が前記1つの認証モードのものである場合、前記時間依存入力は、奇数ビット数の2値入力であり、前記時間依存入力が前記別の認証モードのものである場合、前記時間依存入力は、偶数ビット数の2値入力である、請求項に記載の方法。
【請求項11】
前記生成することが、
前記時間依存入力を、1つのセグメント(part_a)と別のセグメント(part_b)とに分割することと、
前記1つのセグメント(part_a)および前記別のセグメント(part_b)を使用して、前記時間依存入力の複数ラウンドの変換を行って、最終的なpart_aおよび最終的なpart_bを得ることであって、前記複数ラウンドの変換のうち1ラウンドの変換は、サインオン鍵、ラウンドに固有の値、および変換プロセスを少なくとも部分的に使用して、現在のpart_aおよび現在のpart_bを変換することを含み、前記ラウンド固有の値は、前記複数ラウンドの変換の各ラウンドの変換ごとに変化する、前記複数ラウンドの変換を行うことと、
前記複数ラウンドの変換を行うことに基づいて、前記最終的なpart_aと前記最終的なpart_bとを組み合わせて前記認証パラメータを形成することと
を含む、請求項9または10に記載の方法。
【請求項12】
請求項9~11のいずれか1項に記載された方法を、コンピュータに対して実行させるためのコンピュータ・プログラム。
【請求項13】
請求項12に記載のコンピュータ・プログラムを記録した、コンピュータ可読記憶媒体。
【国際調査報告】