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

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

▶ バスティオンゼロ,インコーポレイテッドの特許一覧

<>
  • 特表-ゼロ信頼認証 図1
  • 特表-ゼロ信頼認証 図2
  • 特表-ゼロ信頼認証 図3
  • 特表-ゼロ信頼認証 図4A
  • 特表-ゼロ信頼認証 図4B
  • 特表-ゼロ信頼認証 図5
  • 特表-ゼロ信頼認証 図6
  • 特表-ゼロ信頼認証 図7
  • 特表-ゼロ信頼認証 図8
  • 特表-ゼロ信頼認証 図9
  • 特表-ゼロ信頼認証 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-15
(54)【発明の名称】ゼロ信頼認証
(51)【国際特許分類】
   G06F 21/41 20130101AFI20240207BHJP
   G06F 21/60 20130101ALI20240207BHJP
   H04L 9/32 20060101ALI20240207BHJP
【FI】
G06F21/41
G06F21/60 360
H04L9/32 200F
H04L9/32 200B
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023548719
(86)(22)【出願日】2022-02-15
(85)【翻訳文提出日】2023-10-06
(86)【国際出願番号】 US2022016401
(87)【国際公開番号】W WO2022177876
(87)【国際公開日】2022-08-25
(31)【優先権主張番号】63/149,994
(32)【優先日】2021-02-16
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/590,657
(32)【優先日】2022-02-01
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523303747
【氏名又は名称】バスティオンゼロ,インコーポレイテッド
(74)【代理人】
【識別番号】110000659
【氏名又は名称】弁理士法人広江アソシエイツ特許事務所
(72)【発明者】
【氏名】ヘイルマン,イーサン
(72)【発明者】
【氏名】ミュニエ,リュシー
(72)【発明者】
【氏名】ゴールドバーグ,シャロン
(72)【発明者】
【氏名】マーカス,ユヴァル
(72)【発明者】
【氏名】リップマン,セバスチャン
(57)【要約】
ゼロ信頼認証のためのシステム及び方法が開示される。特定の実施形態において、方法は、クライアントコンピューティングシステムから、識別情報プロバイダ(IdP)当局に、クライアントコンピューティングシステムの公開鍵と共にハッシュされるランダム値をハッシュすることによって生成される認証ノンス値を与えるステップと、IdP当局の秘密鍵によって署名される認証ノンス値を含む認可トークンを、クライアントコンピューティングシステムにおいてIdP当局から受信するステップとを含むことができる。方法は、メッセージを認証するように構成される仲介連帯保証部(ICS)を介してクライアントコンピューティングシステムからターゲットコンピューティングシステムに認可トークンを含むメッセージを与えるステップを更に含むことができる。
【選択図】図1
【特許請求の範囲】
【請求項1】
クライアントコンピューティングシステムから、識別情報プロバイダ(IdP)当局に、前記クライアントコンピューティングシステムの公開鍵と共にランダム値を一緒にハッシュすることによって生成される認証ノンス値を与えるステップと、
前記クライアントコンピューティングシステムにおいて、前記IdP当局から、前記IdP当局の秘密鍵によって署名される前記認証ノンス値を含む認可トークンを受信するステップと、
前記クライアントコンピューティングシステムから、ターゲットコンピューティングシステムに、前記メッセージを認証するように構成される仲介連帯保証部(ICS)を介して、前記認可トークンを含むメッセージを与えるステップと、
を含む方法。
【請求項2】
前記ランダム値を生成するステップを更に含み、該ステップは、
乱数を生成するステップと、
前記ランダム値を生み出すために前記クライアントコンピューティングシステムの秘密鍵で前記乱数に署名するステップと、
を含む、請求項1に記載の方法。
【請求項3】
署名無し形式の乱数と、
前記クライアントコンピューティングシステムの前記秘密鍵で署名される前記乱数と、
をハッシュすることによって前記認証ノンス値を生成するステップ、
を更に含む、請求項2に記載の方法。
【請求項4】
認可証明書を生成するステップであって、前記認可証明書が、
前記IdP当局の前記秘密鍵によって署名される前記認可トークンと、
前記クライアントコンピューティングシステムの前記公開鍵のハッシュされないコピーと、
前記署名無し形式の前記乱数のハッシュされないコピーと、
前記クライアントコンピューティングシステムの前記秘密鍵で署名される前記乱数のハッシュされないコピーと、
を含む、ステップと、
前記認可証明書を前記ICSへのメッセージに含めるステップと、
を更に含む、請求項3に記載の方法。
【請求項5】
前記メッセージを同期メッセージとして与えて前記ターゲットコンピューティングシステムに対してシェルを開くステップであって、前記シェルが通信チャネルを備える、ステップと、
前記クライアントコンピューティングシステムにおいて、前記同期メッセージに応答して同期確認応答メッセージを受信するステップと、
前記同期確認応答メッセージのコピーを前記データメッセージに含めるためにハッシュすることを含め、前記クライアントコンピューティングシステムにおいて、前記ターゲットコンピューティングシステムへのデータメッセージを生成するステップと、
前記クライアントコンピューティングシステムから、前記ICSを介して前記ターゲットコンピューティングシステムに向けられる前記データメッセージを与えるステップと、
を更に含む、請求項4に記載の方法。
【請求項6】
同期確認応答メッセージが同期メッセージのハッシュされたコピーを含み、
前記クライアントコンピューティングシステムにおいて、前記同期メッセージのハッシュを、前記同期メッセージの前記ハッシュされたコピーと比較するステップと、
前記同期メッセージの前記ハッシュが前記同期メッセージの前記ハッシュされたコピーと一致する場合にのみ、前記データメッセージを生成するステップと、
を更に含む、請求項5に記載の方法。
【請求項7】
前記クライアントコンピューティングシステムにおいて、前記クライアントコンピューティングシステムの秘密鍵を使用して前記メッセージに署名するステップ、
を更に含む、請求項1に記載の方法。
【請求項8】
クライアントシステムから、該クライアントシステムとターゲットシステムとの間の通信を認証するように構成される仲介連帯保証部(ICS)においてメッセージを受信するステップと、
前記ICSで前記メッセージから認可トークンを抽出するステップであって、前記認可トークンが、識別情報プロバイダ(IdP)当局によって署名される認証ノンス値を含む、ステップと、
前記ICSにおいて前記IdPの署名を検証するステップと、
前記ICSにおいて、ランダム値と一緒にハッシュされた前記クライアントシステムの公開鍵とを含む前記認証ノンスに基づいて前記認証ノンスを検証するステップと、
前記検証の成功時に前記ICSからの前記メッセージを認証して前記ターゲットシステムに与えるステップと、
を含む方法。
【請求項9】
前記ICSによる前記メッセージの検証が失敗するときに、
検証されていない前記メッセージに関するエラーを発行するステップと、
前記メッセージを前記ターゲットシステムに与えないステップと、
を更に含む、請求項8に記載の方法。
【請求項10】
前記ICSがエントリを追加することはできるがエントリを修正又は削除することはできない、クライアントシステムとターゲットシステムとの間の送信のための不変ログを維持するステップと、
前記検証の結果に基づいて前記不変ログにログエントリを追加するステップと、
を更に含む、請求項8に記載の方法。
【請求項11】
前記認証ノンスを検証する前記ステップは、前記認証ノンスが、一緒にハッシュされた以下の要素、すなわち、
前記クライアントシステムの前記公開鍵と、
署名無し形式の乱数としてのランダム値aと、
前記クライアントコンピューティングシステムの秘密鍵で署名される前記乱数と、
を含むことを検証するステップを更に含む、請求項8に記載の方法。
【請求項12】
前記ICSによって前記メッセージを認証するステップを更に含み、該ステップは、前記ICSの秘密鍵を用いて前記メッセージに署名するステップを含む、請求項8に記載の方法。
【請求項13】
前記ICSと前記ターゲットシステムとの間の信頼できる通信リンクを確立するステップを更に含み、
前記ICSによって前記メッセージを認証する前記ステップは、前記信頼できる通信リンクを介して前記ICSから前記ターゲットシステムに前記メッセージを与えるステップを含む。請求項8に記載の方法。
【請求項14】
前記クライアントシステムから前記ICSにおいて、通信チャネルを開くように構成される同期メッセージを受信するステップと、
前記ICSにおいて、前記同期メッセージのハッシュされたコピーを含む同期確認応答メッセージを生成するステップと、
前記同期確認応答メッセージを前記クライアントシステムに送信するステップと、
前記ICSにおいて、前記ターゲットシステムに向けられた前記クライアントシステムからの前記メッセージを受信するステップと、
前記ICSにおいて、前記メッセージが前記ターゲットシステムに前記メッセージを与える条件として前記同期確認応答メッセージのハッシュされたコピーを含むことを検証するステップと、
を更に含む、請求項8に記載の方法。
【請求項15】
前記信頼できる通信リンクがトランスポート層セキュリティ(TLS)WebSocket接続を含むことを更に含む、請求項13に記載の方法。
【請求項16】
クライアントコンピューティングシステムから、識別情報プロバイダ(IdP)当局に、前記クライアントコンピューティングシステムの公開鍵と共にハッシュされたランダム値を含む認証ノンス値を与えるステップと、
前記クライアントコンピューティングシステムにおいて、前記IdP当局から、前記IdP当局の秘密鍵によって署名される前記認証ノンス値を含む認可トークンを受信するステップと、
前記クライアントコンピューティングシステムから、前記認可トークンを含むメッセージを与えるステップであって、前記メッセージが、前記メッセージを認証するように構成される仲介連帯保証部(ICS)を介してターゲットコンピューティングシステムに向けられる、ステップと、
前記クライアントコンピューティングシステムから前記メッセージを前記(ICS)において受信するステップと、
前記ICSで前記メッセージから前記認可トークンを抽出するステップと、
前記ICSで前記認可トークンから前記IdPの署名を検証するステップと、
前記ICSにおいて、前記クライアントコンピューティングシステムの前記公開鍵の前記ランダム値に基づいて前記認証ノンスを検証するステップと、
前記検証の成功時に前記ICSからの前記メッセージを認証して前記ターゲットコンピューティングシステムに与えるステップと、
を含む方法。
【請求項17】
前記クライアントコンピューティングシステムの前記公開鍵と、
署名無し形式で前記クライアントコンピューティングシステムによって生成される前記ランダム値と、
前記クライアントコンピューティングシステムの秘密鍵で署名される前記ランダム値と、
をハッシュすることによって前記クライアントコンピューティングシステムにおいて前記認証ノンス値を生成するステップを更に含む、請求項16に記載の方法。
【請求項18】
前記クライアントコンピューティングシステムにおいて、認可証明書を生成するステップであって、前記認可証明書が、
前記IdPの前記秘密鍵によって署名される認可トークンと、
前記クライアントコンピューティングシステムの前記公開鍵のハッシュされないコピーと、
前記署名無し形式の前記乱数のハッシュされないコピーと、
前記クライアントコンピューティングシステムの前記秘密鍵で署名される前記乱数のハッシュされないコピーと、
を含む、ステップと、
前記認可証明書を前記ICSへの前記メッセージに含めるステップと、
前記クライアントコンピューティングシステムにおいて、前記クライアントコンピューティングシステムの秘密鍵を使用して前記メッセージに署名するステップと、
を更に含む、請求項17に記載の方法。
【請求項19】
前記ICSにおいて、前記ICSがエントリを追加することができるがエントリを修正することはできない、前記クライアントコンピューティングシステムと前記ターゲットコンピューティングシステムとの間の送信の不変ログを維持するステップと、
前記ICSによって、前記検証の結果に基づいて前記ログにログエントリを追加するステップと、
を更に含む、請求項16に記載の方法。
【請求項20】
前記ICSによって前記メッセージを認証する前記ステップは、
前記ICSの秘密鍵を使用して前記メッセージに署名するステップ、及び
前記ICSと前記ターゲットコンピュータシステムとの間に確立された信頼できる通信リンクを介して前記ICSから前記ターゲットコンピュータシステムに前記メッセージを与えるステップ、
のうちの少なくとも一方を含むことを更に含む、請求項16に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
特定の実施形態において、方法は、クライアントコンピューティングシステムから、識別情報プロバイダ(IdP)当局に、クライアントコンピューティングシステムの公開鍵と共にハッシュされるランダム値をハッシュすることによって生成される認証ノンス値を与えるステップと、IdP当局の秘密鍵によって署名される認証ノンス値を含む認可トークンを、クライアントコンピューティングシステムにおいてIdP当局から受信するステップとを含むことができる。方法は、メッセージを認証するように構成される仲介連帯保証部(ICS)を介してクライアントコンピューティングシステムからターゲットコンピューティングシステムに認可トークンを含むメッセージを与えるステップを更に含むことができる。
【発明の概要】
【0002】
特定の実施形態において、方法は、クライアントシステムとターゲットシステムとの間の通信を認証するように構成される仲介連帯保証部(ICS)でクライアントシステムからメッセージを受信するステップと、ICSでメッセージから認可トークンを抽出するステップであって、認可トークンが、識別情報プロバイダ(IdP)当局によって署名される認証ノンス値を含む、ステップとを含むことができる。方法は、ICSでIdPの署名を検証するステップと、ICSで、クライアントシステムの公開鍵でハッシュされた認証ノンスのランダム値に基づいて認証ノンスを検証するステップと、検証の成功時にICSからのメッセージを認証してターゲットシステムに与えるステップとを更に含むことができる。
【0003】
特定の実施形態において、方法は、クライアントコンピューティングシステムから、識別情報プロバイダ(IdP)当局に、クライアントコンピューティングシステムの公開鍵でハッシュされるランダム値を認証ノンス値として与えるステップと、クライアントコンピューティングシステムにおいて、IdP当局から、IdP当局の秘密鍵によって署名される認証ノンス値を含む認可トークンを受信するステップと、クライアントコンピューティングシステムから、認可トークンを含むメッセージを与えるステップであって、メッセージが、メッセージを認証するように構成される仲介連帯保証部(ICS)を介してターゲットコンピューティングシステムに向けられる、ステップと、を含むことができる。方法は、(ICS)においてクライアントコンピューティングシステムからメッセージを受信するステップと、ICSでメッセージから認可トークンを抽出するステップと、ICSで認可トークンからのIdPの署名を検証するステップと、ICSにおいて、クライアントコンピューティングシステムの公開鍵のランダム値に基づいて認証ノンスを検証するステップと、検証の成功時にICSからのメッセージを認証してターゲットコンピューティングシステムに与えるステップとを更に含むことができる。
【図面の簡単な説明】
【0004】
図1】本開示の特定の実施形態に係る、ゼロ信頼認証のために構成されるシステムの図である。
【0005】
図2】本開示の特定の実施形態に係る、ゼロ信頼認証のために構成されるシステムにおける通信のタイミング図である。
【0006】
図3】本開示の特定の実施形態に係る、ゼロ信頼認証のために構成されるシステムの図である。
【0007】
図4A】本開示の特定の実施形態に係る、ゼロ信頼認証のためのメッセージのセットを示す。
図4B】本開示の特定の実施形態に係る、ゼロ信頼認証のためのメッセージのセットを示す。
【0008】
図5】本開示の特定の実施形態に係る、ゼロ信頼認証のためのメッセージのセットを示す。
【0009】
図6】本開示の特定の実施形態に係る、ゼロ信頼認証のために構成されるシステムのフロー図である。
【0010】
図7】本開示の特定の実施形態に係る、ゼロ信頼認証のための方法の一例のフローチャートを示す。
【0011】
図8】本開示の特定の実施形態に係る、ゼロ信頼認証のための方法の一例のフローチャートを示す。
【0012】
図9】本開示の特定の実施形態に係る、ゼロ信頼認証のための方法の一例のフローチャートを示す。
【0013】
図10】本開示の特定の実施形態に係る、ゼロ信頼認証のために構成されるシステムの図である。
【発明を実施するための形態】
【0014】
特定の実施形態の以下の詳細な説明では、本明細書の一部を形成し、例示的な実施形態の例示として示されている添付図面を参照する。本明細書の実施形態及び実施例の特徴を組み合わせ、交換し、又は除去することができ、他の実施形態を利用又は作成することができ、本開示の範囲から逸脱することなく構造的変更を行うことができることも理解すべきである。
【0015】
様々な実施形態によれば、本明細書に記載の方法及び機能は、コンピュータプロセッサ又はコントローラ上で実行される1つ以上のソフトウェアプログラムとして実装することができる。限定はしないが、特定用途向け集積回路、プログラマブル論理アレイ、及び他のハードウェアデバイスを含む専用のハードウェア実装も同様に、本明細書に記載の方法及び機能を実装するように構築することができる。方法及び機能は、特定のタスク又はジョブを実行するように構成されたコンピューティングデバイス(例えば、論理、回路、プロセッサなど)の1つ以上の物理的構成要素を含むことができるモジュール又はノードによって実行することができ、又は実行されると、プロセッサに特定のタスク又はジョブ、又はそれらの任意の組み合わせを実行させることができる命令を含むことができる。更に、本明細書に記載の方法は、実行されると、プロセッサに方法を実行させる命令を含むコンピュータ可読記憶媒体又はメモリデバイスとして実装されてもよい。
【0016】
図1は、本開示の特定の実施形態に係る、ゼロ信頼認証のために構成されたシステム100の図である。システム100は、クライアントデバイス又はシステム102、仲介連帯保証部(ICS)104、ターゲットデバイス又はシステム106、及びシングルサインオン(SSO)IdPなどの識別情報プロバイダ(IdP)108を含むことができる。システム100の構成要素は、通信チャネル110を介して通信することができる。
【0017】
クライアント102のユーザ118は、ターゲット106にリモートアクセスすることを望む場合がある。ターゲット106は、サーバ、コンテナ、又は他のコンピュータもしくはオペレーティングシステム環境を含むことができる。ターゲット106のリモートアクセスを可能にすることは、認可されていないユーザがターゲット106にアクセスするのを防ぐこと、又は制限された認可を伴うユーザ118がそれらのアクセス権を超えるのを防ぐことにおいて、セキュリティ上の課題を提示する可能性がある。
【0018】
安全なリモートアクセスを可能にするために様々な方法を使用することができ、その多くは重大な制限を有する可能性がある。例えば、ユーザ118は、仮想プライベートネットワーク(VPN)及びセキュアシェル(SSH)鍵を使用してターゲットシステム106にリモートアクセスすることができる。しかしながら、VPNは維持に費用がかかる場合があり、SSH鍵は動的環境で管理することが困難な場合があり、ユーザの権利を無効にすることが困難な場合があり、ユーザクライアント102を制御する悪意のある行為者は、他の問題の中でも、ターゲット106への完全なアクセスを取得する可能性がある。別の選択肢は、クライアント102とターゲット106との間のアクセスポイントとして拠点ホストを使用することであってもよい。拠点ホストは、ユーザアクセス権のより容易な管理及び改善されたアクセス記録セキュリティを可能にすることができる。しかしながら、拠点ホストが全てのターゲット106へのフルアクセス資格認証情報を有する場合、侵入された拠点ホストは、悪意のある行為者がターゲット106への無制限のアクセスを得る結果となり得る。
【0019】
改善された手法は、単一のユーザ又は構成要素が完全に信頼されておらず、無制限のアクセス権を有するゼロ信頼システムを提供することであり得る。ゼロ信頼は、組織がそのシステムの内部又は外部のいかなる当事者も自動的に信頼すべきではなく、そのシステムへの全てのアクセス試行を検証すべきであるセキュリティ概念を指すことができる。提案されたシステム100は、ユーザ118の身元を検証し、実行前に受信したコマンドの正当性を保証するために、異なる構成要素からの複数の署名に依存することができる。本明細書で説明するゼロトラストシステムは、暗号化に依存しない分散検証及び認証を用いて、クライアントがターゲットにアクセスすることを可能にすることができる。
【0020】
システム100では、クライアント102は、IdP108から取得した認可又は認可トークンに基づいて認可証明書114(ICS証明書又はICScertと呼ばれることもある)を生成することができる。IdP108は、例えば、クライアント102がシングルサインオン動作を使用して複数のシステムへのアクセスを取得することができるシングルサインオン(SSO)サービスプロバイダであってもよい。IdP108は、IdPの署名を有するトークンをクライアント102に提供することができ、それはクライアント102に関連するシステムに対するアクセス権を付与することができる。幾つかの例では、クライアント102は、認可トークンの一部として、チャネル110を介してIdP108に署名してクライアント102に返すことができるサインインプロセスの一部として、チャネル110を介してIdP108に一意に識別又は秘密の情報を提供することができる。
【0021】
加えて、ターゲット106への完全なアクセス資格認証情報を有する拠点ホストを使用するのではなく、仲介連帯保証部(ICS)104を使用して、認証及びアクセスポリシールール又は命令116のセットに従って、ログイン情報及びICS証明書114に基づいてクライアント102のアクセス要求を検証することができる。ポリシールール116は、ICS104によってクライアント102のアクセス要求に適用されるコンピュータ命令又はアクセス要件のセットを含むことができる。ICS104は、チャネル110を介して(例えば、HTTP又はAPIスタイルのアクセス要求を介して)IdP108に接触して、IdP108からクライアント102によって最初に取得された識別情報トークンを検証することによって、ICS証明書114を認証することができる。ICS104は、攻撃に耐え、ターゲット106へのアクセス動作を記録するように構成されているが、ターゲット106への完全なアクセス資格認証情報を有しない拠点ホストの形態であり得る。ICS104は、ターゲット106の制御ドメイン内に配置されてもよく、又はターゲット106から離れていてもよく、例えば、サービスとしてのソフトウェア(SaaS)資産として実装されてもよい。ICS104がクライアント102を検証する場合、ICS104は、例えばICS自身の秘密鍵でクライアント102のメッセージに署名することによって、クライアント102のものに自身のアクセス資格認証情報を追加することができる。
【0022】
ターゲット106に位置するエージェント112は、クライアントアクセス要求を受信し、全てのクライアントメッセージがIdP認定ユーザ118又はクライアント102の両方によって署名され、ICS104によって認証されていることを確認することができる。エージェント112は、ICS104と通信し、ターゲット106で受信されたメッセージを検証するように構成されたプログラムモジュール又は命令セットを含むことができる。エージェント112はまた、ICS104に関して前述したように、チャネル110を介してIdP108に接触することによってICS証明書114を認証することができる。例示的なエージェント112は、システムマネージャSSMエージェントを含むことができる。全ての資格認証情報がエージェント112によって検証される場合、クライアント102はターゲット106への要求されたアクセスを認可され得る。このようにして、ユーザ118は、IdP108とICS104の両方からの検証なしにターゲット106にアクセスすることはできない。同様に、ICS104は、最初に認可されたクライアント102から有効な要求を受信しなければ、ターゲット106にアクセスすることができない。したがって、システム100内の任意の所与の構成要素が危険にさらされても、ターゲット106は安全なままであり得る。クライアント102とICS104の両方の検証に依存するアクセスは、暗号化に依存せずに実施することができる。更に、ICS104は、平文通信を使用して中間者として動作することができ、システム100は暗号化なしで動作することができる。
【0023】
システム100で提案されたプロトコルは、信頼の必要性を排除することはできず、代わりに、システム内の任意の単一の当事者に必要な信頼の量を最小化する。いかなる当事者も、暗黙的に他のいかなる当事者によっても信頼されていない。したがって、クライアント102、ICS104、及びターゲット106の3つのアクターのそれぞれに何らかのルートオブトラストがあり得る。
【0024】
クライアント102のルートオブトラストは、署名された検証可能なトークン内のユーザ118又はクライアント102の識別情報及び公開鍵にアテステーションする、IdP108からの認可トークンであり得る。したがって、クライアント102が自己報告型であっても、トークンは、信頼できる第三者(例えば、IdP108又は関連する認証局)を介して容易に検証され得る。
【0025】
ICS104のルートオブトラストは、ターゲット106、クライアント102、又はその両方とのトランスポート層セキュリティ(TLS)WebSocket接続110の使用によるものであり得る。TLS Websocket110を確立するネゴシエーションにおいて、ICS104は、(証明書を発行する認証局に従って)その識別情報を証明するその証明書を提供することができる。そこから、TLS接続110は、パケットを正しくルーティングするために信頼することができ、したがって、パケットが「ICS104から」到着した場合、クライアント102及びターゲット106は、それが既知の送信元からのものであると信頼することができる。したがって、ICS104は、必要に応じて、メッセージがICSによって検証され、ICSから送信されたことを証明するためにメッセージに(例えば、その秘密鍵を用いて)署名する必要がない場合がある。
【0026】
ターゲット106のルートオブトラストは、ターゲット106が応答する任意の通信に署名する自己証明公開鍵であってもよい。これは、ターゲット106にかなりの量の信頼を必要とする可能性があるが、ターゲット106の公開鍵のハッシュに等しくなり得るICS104へのターゲット106の登録時に一意のターゲットIDを割り当てることができる。このターゲットIDは、ターゲット106が任意の鍵セットを使用することができないことを保証することができる。
【0027】
本明細書で提示されるゼロ信頼認証の態様は、注意を要するアクションのためにターゲット106がICS104に一方向の信頼を置く必要がなく、ICS104がターゲット106上で任意のコマンドを実行するのに十分に信頼されていない可能性があることである。しかしながら、ICS104が以下を行なうために信頼できる幾つかの動作があり得る。
1.ターゲット106の名前をターゲット106のIDにマッピングする;
2.ポリシールールを設定及び検証する116;及び
3.ターゲット106のシェル出力。
本明細書で使用される場合、シェルは、ターゲット106へのアクセスを可能にし、ICS104を介してクライアント102とターゲット106との間に確立され得るコンピュータプログラム又は通信チャネルを指すことができる。更に、ターゲット106に関してクライアント102又はICS104から実行することができる幾つかのアクションがあり、そのうちの幾つかは、ICS104によって一方的に実行することができる(例えば、ユーザ118の認可又はクライアント102の署名なしで)。例示的な構造は、<action>/<id>の形式でREST(RepresentationalState Transfer)と同様であってもよい。例示的なアクションは、以下を含むことができる。
【表1】
【0028】
提案されたシステム100は、様々な特徴及び特性を提供することができる。
【0029】
二重同意:エージェント112は、ICS104及びユーザ118の両方から承認されなければ、リモートコマンドを受け付けなくてもよい。ICS104は、ユーザ118の有効性及び認可に応じて拒否又は同意することができる。
【0030】
無信頼:エージェント112は、ICS104のリモートコマンドを一方的に実行せず、ユーザ118がその認可された認可内で実行することを完全に信頼しなくてもよい。信頼は分散化することができ、システムの任意の単一の構成要素に配置される信頼を最小限に抑えることができ、その結果、システムは任意の単一の危険にさらされた当事者から保護する。
【0031】
不可視:ユーザ118の観点から、システム100は、いかなる追加の責任、対話、又は鍵管理タスクも必要とすべきではない。ユーザ118は、この特徴を検出できない場合がある。
【0032】
不変:任意のメッセージ通信は、システム100内の任意の単一のアクターによる任意の以前のメッセージの除去、修正、又は挿入を可能にしない場合がある。例えば、ICS104は、クライアント102とターゲット106との間の通信の不変のログを維持することができる。
【0033】
仲介者によるログ可能:任意のメッセージ通信は、メッセージを修正、削除、又は挿入することができない可能性がある仲介者(又は中間者)による平文、可読、及びログ可能であり得る。例えば、ICS104は、通信をログするように構成され得るが、ログされたメッセージを修正することも、それ自体のメッセージを追加することもできない場合がある。
【0034】
マルチユーザシェル:新しいユーザ118、又は異なるクライアント102を介してログインしている同じユーザ118は、ログを破損することなく既存のシェルセッションに参加することができる。
【0035】
ポリシー保護:ICS104は、いかなるターゲット106上でも非管理ユーザ118に管理権を与えることができない。
【0036】
クライアント102、ICS104、ターゲット106、IdP108、及びエージェント112は、コンピュータシステム、回路、ソフトウェアもしくは他の実行可能命令、又はそれらの任意の組み合わせとして実装することができる。構成要素を実装するための例示的なコンピュータシステムを図10に示す。クライアント102は、単一のユーザが複数の関連付けられたクライアント102を有することができるように、単一のログインセッションとすることができる。通信チャネル110は、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を介した有線又は無線通信経路を含むことができ、多数のタイプの通信媒体及び中間デバイス、スイッチ、ルータなどを含むことができる。通信チャネル110は、HTTP及びAPIベースのプロトコルを含む様々な通信プロトコルを使用することができる。例えば、トランスポート層セキュリティ(TLS)Websocket通信プロトコルが、クライアント102とICS104との間、及びICS104とターゲット106との間の通信に使用され得る。通信チャネル110を介する送信は、セキュアであってもセキュアでなくてもよい。例示的なシステム100内の通信セッションが図2に関して説明される。
【0037】
図2は、本開示の特定の実施形態に係る、ゼロ信頼認証のために構成されたシステムにおける通信のタイミング図200である。クライアント202、ICS204、ターゲット206、及びIdP208は、システム100からの対応する要素の例であり得る。特に、図200は、クライアント202とターゲット206との間の接続、及びそれらの間のデータの交換を確立する例示的なプロセスを示す。プロセスは、複数の検証ステップを含むことができ、そのいずれかが失敗するとエラーインジケータ(例えば、クライアント202に送信されるか、ICS204にログされるか、ターゲット206にログされるか、又は他の様態で提示される)が生成され、失敗メッセージが実行されない。システム内のプロセスの説明を容易にするために、記号、変数、及び用語を定義するために以下の用語集が提示される。
【表2】
【0038】
ユーザ118がICS204又はアクセスターゲット206で認可されることを望むとき、ユーザはクライアントインスタンス202のログインセッション210を開始することができる。概して、ログインプロセス210は、クライアント202がIdP208に認可要求を(例えば、SSO操作を介したログインを介して)送信し、引き換えに認可トークンを受信することを含むことができる。認可トークンは、OIDCプロトコルを介して取得されたOAuthトークンであってもよい。認可要求は、クライアント202の秘密又は一意に識別される情報を含むことができ、認可トークンは、IdP208によって署名された一意に識別される情報を含むことができる。クライアント202は、署名された認可トークンをSYN(同期)メッセージでICS204に送信することができる。ICS204は、IdP署名を検証し、ユーザの識別情報を検証することにより、SYN/ACK(同期認可又は確認応答)メッセージでクライアント202を認可することができる。より詳細には、ログイン操作210は、例示的なユーザAlice118とそのクライアント202との間の以下のステップ、IdP208、及びICS204を含むことができる。Alice又はAliceのクライアント202に起因するステップは、Aliceによって操作されるコンピューティングシステムを介して手動又は自動で実行されてもよい。
【0039】
1.ユーザ118、Aliceは、クライアントc、202を介してログインプロセスを開始することができる。
【0040】
2.Aliceは、クライアント202のための鍵ペア(PK、SK)を生成し、乱数CERrandを選択する。鍵は、各ログイン操作210の間に一時的に選択されてもよい。
【0041】
3.クライアント202は、クライアント202の秘密鍵を用いてCERrandに署名することによって(CERrand)σを計算する。署名(SK,CERrand)
【0042】
4.クライアント202は、IdP208に送信するための認可要求を生成し、認可要求内のノンス値をAUTH_nonce=Hash(PK、CERrand、(CERrand)σ)=H(PK、CERanc)に設定する。AUTH_nonceは、ランダムに生成された値CERrandの2つのコピー、すなわち、クライアント202の秘密鍵によって署名されたものと、署名されていないものとを含む、クライアント202によって生成された一意に識別される値又は秘密の値とすることができる。
【0043】
5.IdP208は、Aliceの識別情報にアテステーションするSSO_comと呼ばれる認可トークンを計算してクライアント202に送信する。IdP208は、変更されていないAUTH_nonceをSSO_comに含めることができ、AUTH_nonce、SSO_com、又はその両方に署名することができる。このようにして、クライアント202は、信頼できるIdP208当局によって署名された一意に識別されるAUTH_nonce値のコピーを取得する。IdP208はまた、IdPによって署名され得るSSO_refreshと呼ばれるリフレッシュトークンを返してもよい。SSO_refreshトークンは、以前の認可トークン(例えばSSO_id)が期限切れになった場合に新しい認可トークン(例えばSSO_comとそれに続くSSO_id)を取得するためにクライアント202によって使われてよい。
【0044】
6.クライアント202は、認可トークンに基づいてICS証明書(ICScert)を生成する。ICScertは、図3に関して説明される。
【0045】
図3は、本開示の特定の実施形態に係る、ゼロ信頼認証のために構成されたシステム300の図である。特に、図3は、仲介連帯保証部(ICS)証明書(ICScert)302を示しており、これは、ターゲットシステム206にリモートアクセスするためのプロセスの一部としてクライアント202又はユーザ118を認証するためにクライアント202によって生成され得る。
【0046】
クライアント202は、最初にICS証明書302を以下のように計算することができる。
ICScert=(SSO_com304,SSO_id306=SSO_com,PK308,CERanc310)。
SSO_com304はIdP208を識別しAliceの識別情報を検証する様々な情報、例えば名前、電子メール、組織、クライアント202によって提供されるAUTH_nonceを含んでよい。AUTH_nonce、SSO_com304、又はその両方はIdP208によって署名されてもよい。したがって、クライアント202は、IdP208によって署名されたその一意に識別するAUTH_nonceを使用して、クライアント202を一意に検証することができる。SSO_com304は有効期限又は時間も含んでよい。
【0047】
SSO_com304が期限切れになると、クライアント202は長寿命SSO_refreshトークンを使って新しいSSO_id306を取得でき、ICScert302を更新できる。この新しい識別情報トークンSSO_id306は、AUTH_nonceを有していなくてもよく、クライアント202の公開鍵にコミットしなくてもよい。したがって、SSO_com304は、SSO_com304が期限切れになった後であっても署名付きAUTH_nonceを用いてクライアント202を検証できるので、SSO_com304が期限切れになった後であってもICScert302の一部として保持できる。図2に戻ると、ログインプロセス210は、クライアント202がICScert 302を生成した場所から継続することができる。
【0048】
7.クライアント202は、ICScertをSYN(同期)メッセージでICS204に送信することができる。これにより、クライアント202の公開鍵をICS204に登録することができ、クライアント202の公開鍵が正しく形成されていることを確認することができる。
【0049】
8.SYNメッセージを受信した後、ICS204は、以下を検証することができる。
a.SSO_com及びSSO_id有効期限(例えば、最新の認可トークンSSO_com又はSSO_idが依然として有効であること);
b.IdPの208署名。ICS204は、IdP208に(例えば、通信チャネル110を介して)連絡するか、そうでなければIdPの公開鍵PKIdPの信頼できるコピーを取得することができ、このコピーはIdPの208の秘密鍵又は秘密鍵SKIdPによって作成されたSSO_com又はAUTH_nonceに対する署名を検証するために使用することができる。
c.AUTH_nonce=H(PK,CERanc).ICScertは、AUTH_nonceが正しい値であるかどうかを検証するために使用することができる、PK、CERrand、及び(CERrand)σのハッシュされないバージョンを含む。クライアント202によって用いられるハッシュアルゴリズム、暗号スイートは、クライアント202とICS204との間のTLS接続の確立中などに、事前に確立又は検証することができる。
ICS204は、クライアント202からの初期ログイン又はSYNメッセージのみで、各SYNメッセージで、全てのメッセージで、定期的に、又はそれらの任意の組み合わせで上記の情報を検証することができる。
【0050】
9.上記の情報を検証すると、ICS204はクライアント202をログインさせることができ、SYN/ACKメッセージをクライアント202に返すことができる。
【0051】
ログイン後、クライアント202は、接続するターゲット206のアドレスを識別するために、ターゲット選択動作212を開始することができる。ターゲット選択動作212は、ドメインネームシステム(DNS)検索動作と同様に動作することができ、人間が記憶可能なターゲット206の名前を暗号化ターゲット206のIDにマッピングすることができる。ターゲット選択動作212のステップは以下を含むことができる。
【0052】
1.クライアント202は、ターゲット名要求をICS204に送信し、特定のターゲット206名に関連付けられたターゲット識別子IDを提供するようにICS204に要求することができる。
【0053】
2.ICS204は、ターゲット名を使用してルックアップテーブル(LUT)にアクセスし、1つ以上の関連するターゲットID(ID)を見つけ、それらをクライアント202に返すことができる。
【0054】
クライアント202がターゲット206IDを取得すると、クライアント202は、ターゲット206と通信又は対話するためのプロセス214を開始することができる。例えば、クライアント202は、ターゲット206上でシェルを開始又は開くことができる。シェルは、リモートでターゲット206のオペレーティングシステム又は他のリソースへのアクセスをクライアント202に与えることができる。ターゲット206に起因するステップ又は動作は、ターゲット206で実行されるエージェントプログラム又はシステム112によって実行されてもよい。エージェントは、ICS204に関連付けられ、通信及び検証動作のためにICS204と協働するように構成されたドライバ又はモジュールであってもよい。ターゲット上でシェルを開くための動作214のステップは以下を含むことができる。
【0055】
1.クライアント202は、ランダム値rを生成することができる。
【0056】
2.クライアント202は、SYNメッセージを生成してICS204に送信し、SYNメッセージのハッシュ(例えば、SYNメッセージへのハッシュポインタ)をクライアント202に格納する。SYNメッセージの例示的な実施形態が図4Aに示されている。図4Aは、本開示の特定の実施形態に係る、SYNメッセージ402及びSYN/ACKメッセージ404を含むメッセージのセット400Aを示す。SYNメッセージ402は、「タイプ」フィールド、「アクション」フィールド、「ターゲットID」フィールド、「ランダム値」フィールド、及びICScertのコピーを含み得る。タイプフィールドは、対応する「アクション」を実行するための「ハンドシェイク」動作の開始として、メッセージ402をSYNメッセージとして識別することができる。「アクション」フィールドは、クライアント202が「ターゲットID」フィールドによって識別されるターゲット206に対してシェルを開きたいことを指定することができる。「ランダム値」フィールドは、クライアント202によって生成された値を含むことができ、以前のメッセージを再送信することを含むリプレイ攻撃を防止するために使用され得る。その後、SYNメッセージ402は、秘密鍵SKを用いてクライアント202によって署名され得る。
【0057】
3.図2の「ターゲットを開く」動作214に戻ると、ICS204は、指定されたターゲットに対してSYNメッセージ402で要求されたアクションを行うことをクライアント202又はAliceが認可されているかどうかをチェックし、SYNメッセージ402を検証することができる。例えば、ICS204は、どのユーザがどのターゲット206に対してどのアクションを取ることを認可されているかに関するログもしくはデータベース又は認可を維持するか、又はそれらにアクセスすることができる。SYNメッセージ402の検証は、ログイン操作210中にICS204によって実行されるものと同様又は同じ動作を含むことができ、有効期限のチェック、ICScertのSSO_com上のIdP208署名の検証、又は他の動作を含むことができる。ICS204は、クライアント202が誰であると主張しているか(例えば、ICScertに基づいて)、及びクライアント202が要求されたターゲットにアクセスしてアクションを実行する権利を有することを検証することに焦点を合わせることができるが、メッセージ又は他のセキュリティ操作に対してクライアント202の署名の検証を実行することもできる。SYNメッセージ402が検証された場合、ICS204は、ICS204の秘密鍵SKICSを使用してSYNメッセージ402に署名し、署名されたメッセージをメッセージで識別されたターゲット206に転送することができる。幾つかの実施形態では、ICS204はメッセージに署名しなくてもよく、ICS204がメッセージをクリアしたことを検証するために他の資格認証情報が使用されてもよい。例えば、TLS接続を介してメッセージを転送することは、ICS204がメッセージをチェック及び認証したことを検証することができる。
【0058】
4.ターゲット206は、SYNメッセージ402を読み取って検証することができる。検証は、SYNメッセージ402上のICS204署名又は他の資格認証情報を検証すること(例えば、メッセージが信頼できるTLS接続を介して受信されたこと)と、クライアント202署名を検証することと、SSO_comの詳細を検証することとを含んでよい。ターゲット206は、全てのメッセージに対して、全てのSYNメッセージに対して、定期的に、又は他のトリガもしくは間隔に対して検証動作を実行することができる。ターゲット206が新しい認可トークン(例えば、SSO_com、SSO_id)に遭遇すると、ターゲットは幾つかの検証ステップを実行することができ、それは以下を含むことができる。
a.認可トークンの有効期限をチェックする。
b.IdP208署名が有効であることを確認する。これは、信頼できる送信元からIdP208公開鍵を取得することを含み得る。幾つかの実施形態では、ハッシュベースのメッセージ認証コード(HMAC)及び「なし」署名アルゴリズムは認可されない。
c.チェック発行者(IdP208)は信頼できる当局である。
d.ユーザ118の確認メールが検証される。電子メール検証は、認可された組織におけるメンバーシップの証明として、又は他の目的のために使用され得る。
e.ユーザ118の組織がターゲット206の組織と一致することを確認する。
【0059】
メッセージが有効かつ認可されている場合、ターゲット206は、図4Aに示すように、ランダム値rを計算し、それをSYN/ACK(同期認可)メッセージ404に組み込むことができる。ターゲット206はまた、SYN/ACKメッセージ404のハッシュ値を計算し、格納し得る。
【0060】
図4Aに示すように、SYN/ACKメッセージ404は、SYNメッセージ402の場合と同様に、「タイプ」、「アクション」、及び「ランダム値」フィールドを含むことができる。加えて、ターゲット206は、SYNメッセージ402のハッシュ値を計算し、それを「HPointer」フィールド内のSYN/ACKメッセージ404に含めることができる。ハッシュは、応答を対応するSYNメッセージと関連付けるため、及びSYNメッセージ402がターゲット206による受信前に修正されなかったことを検証するために使用され得る。SYN/ACKメッセージ404はまた、「ターゲット公開鍵」フィールドを含むことができ、これを使用して、ターゲット206の署名を検証するためのターゲット206の公開鍵をクライアント202に提供することができる。次いで、ターゲット206は、SYN/ACKメッセージ404に署名し、それをICS204に返すことができる。
【0061】
5.再び図2に戻ると、ICS204は、ターゲット206からSYN/ACKメッセージ404を受信し、それをクライアント202に転送することができる。
【0062】
6.クライアント202は、SYN/ACKメッセージ404を受信することができ、クライアント202によって以前に格納されたSYNメッセージ402のハッシュを、SYN/ACKメッセージ404のHPointerフィールドと比較することができる。次いで、クライアント202は、図4Bに示すように、DATAメッセージを生成し、ICS204に送信することができる。図4Bは、本開示の特定の実施形態に係る、DATAメッセージ406及びDATA/ACK(データアクノレッジ)メッセージ408を含むメッセージのセット400Bを示す。DATAメッセージ406は、SYNメッセージ402におけるように、「タイプ」、「アクション」、及び「ターゲットID」フィールド、並びにICScertのコピーを含むことができる。更に、DATAメッセージ406は、幾つかのDATAメッセージのデータペイロードを含み得る「ペイロード」フィールドを含み得るが、シェルを開くための図示のDATAメッセージ406については、「ペイロード」フィールドは空であるか、又は「ヌル」値に設定され得る。DATAメッセージ406はまた、SYN/ACKメッセージ404におけるように、「HPointer」フィールドを含むことができ、クライアント202は、SYN/ACKメッセージ404のハッシュを取り込むことができる。クライアント202は、ICS204に送信する前にDATAメッセージ406に署名することができる。
【0063】
7.図2では、ICS204は、前述したように、DATAメッセージを検証し、ターゲット206に転送することができる。ICS204は、ターゲット206に送信する前にDATAメッセージに署名するか、又は信頼できるチャネルに沿って送信することができる。
【0064】
8.ターゲット206は、前述したように、DATAメッセージ406を検証することができる。ターゲット206は、DATAメッセージ406のHPointerフィールド内のハッシュを、ターゲット206によって以前に格納されたSYN/ACKメッセージ404のハッシュと比較することができる。図4Bに示すように、DATAメッセージ406に基づいて、ターゲット206はシェルを開き、DATA/ACKメッセージ408を返すことができる。DATA/ACKメッセージは、他で説明されるように、「タイプ」、「アクション」、「ターゲット公開鍵」、及び「HPointer」フィールドを含むことができる。DATA/ACKメッセージ408は、ターゲット206によって署名され、図2に示すようにICS204に送信され得る。
【0065】
9.ICS204は、DATA/ACKメッセージ408をクライアント202に転送する。
【0066】
10.クライアント202は、DATA/ACKメッセージ408を受信し、ターゲット206上でシェルが開いているという状態を更新する。
【0067】
シェルを開くことは214に設けられた例であったが、クライアント202とターゲット206との間の他の通信チャネルを開くか又は確立することができる。例えば、シェル(例えば、シェル/入力)、sshトンネル(例えば、ssh/add-keys、ssh/input)、kubernetesクラスタとの通信(例えば、kube/exec、kube/restapi、kube/stream)、ファイルアップロード/ダウンロード(例えば、ファイル/アップロード、ファイル/ダウンロード)、ゲートウェイもしくはジャンプサーバの一種としてターゲット206を使用してクライアント202から他のマシンに接続することを含む、他のウェブサイト及びデータベースプロキシ、又は他の接続もしくは動作。
【0068】
OpenShellの例を続けると、シェルが開かれると、クライアント202は、以下に説明するように、シェル通信動作216を開始することができる。
【0069】
1.クライアント202は、新しいランダム値rを生成することができる。
【0070】
2.クライアント202は、SYNメッセージ402を生成し、ICS204に送信する。しかしながら、「アクション」フィールドに「OpenShell」が読み込まれるのではなく、現在のSYNメッセージ402は、「ShellInput」のアクションフィールドを有することができる。
【0071】
3.ICS204は、クライアント202が指定されたターゲット206に対して指定されたアクションを実行することを認可されているかどうかをチェックし、SYNメッセージ402を検証する。SYNメッセージ402は、ICS204によって署名又は他の方法で認証され、ターゲット206に送信され得る。
【0072】
4.ターゲット206は、SYNメッセージ402を読み取って検証することができる。メッセージ402が有効かつ認可されている場合、ターゲット206は、ランダム値rを計算し、その値をSYN/ACKメッセージ404に含めることができる。ターゲット206はまた、前述したように、SYN/ACKメッセージ404のハッシュを格納し得る。SYN/ACKメッセージは、ICS204に送信され、クライアント202に転送され得る。
【0073】
5.シェルを起動するプロセスを既に完了しているクライアント202は、シェルがターゲット206上で開いており、クライアント202が入力の送信を開始できることを知っている。クライアント202は、図5に示すように、DATAメッセージをICS204に送信する。図5は、本開示の特定の実施形態に係る、DATAメッセージ506及びDATA/ACKメッセージ508を含むメッセージ500のセットを示す。図5のDATAメッセージ506は、図4のDATAメッセージ406と同じフィールドを有し得る。しかしながら、DATAメッセージ506は、現在のアクションを「ShellInput」として指定する「アクション」フィールドを含むことができ、「ペイロード」フィールドは、クライアント202からターゲット206に送信するために「H」として指定されるデータコンテンツを有することができる。例えば、データコンテンツ「H」は、格納、クエリ、キーストローク、又は他のデータブロブ(バイナリラージオブジェクト)を含むことができる。
【0074】
6.図2のシェル通信216に戻ると、ICS204は、DATAメッセージ506を検証、署名又は認証し、ターゲット206に転送することができる。
【0075】
7.ターゲット206は、DATAメッセージ506を検証及び読み取り、ペイロードを正しいシェルに転送することができる。ターゲット206は、図5に示すように、DATA/ACKメッセージ508を生成及び返信することができる。DATA/ACKメッセージ508は、受信されたDATAメッセージ506のハッシュでポピュレートされたHPointerフィールドを有し得る。幾つかの例では、DATA/ACKメッセージ506は、「ペイロード」フィールド(図示せず)も含み得る。DATA/ACKメッセージ506は、ICS204によって受信され、クライアント202に転送され得る。
【0076】
8.クライアント202は、上記のステップ5から開始して、入力を送信し続けることができる。
【0077】
ここで図6を参照すると、本開示の特定の実施形態に係る、ゼロ信頼認証のために構成されたシステムの流れ図600が示されている。図600は、シェル開始操作214及びシェル入力操作216を含むことができ、これらはそれぞれ図2のターゲット操作214及びシェル通信操作216上の開いたシェルに対応することができる。シェル開始214及びシェル入力216の動作は、図4A図4B、及び図5に関連して図示及び説明したように、一連のSYNメッセージ402、SYN/ACKメッセージ404、DATAメッセージ406及び506、並びにDATA/ACKメッセージ408及び508を含むことができる。簡潔さ及び明瞭さのために、ICS204によって実行される検証及び転送、並びにメッセージに含まれる幾つかのフィールドは、図600では省略され得る。シェルとの全ての通信は、クライアントによって開始され得る。
【0078】
矢印602は、前のメッセージの全部又は一部のハッシュを示し、後続のメッセージ内のフィールドにハッシュを格納することができる。例えば、署名を除く以前のメッセージの全てをハッシュして応答メッセージに含めることができる。メッセージの一部の周りの太いアウトラインは、後続のメッセージにハッシュされ得るフィールドを示し得る。以前のメッセージのこのハッシュは、通信チェーンにおけるあるポイント612の後のリプレイ攻撃を防止することができる。
【0079】
シェル214を開始することは、通常のシェル入力216を送信することと比較して、4つのメッセージの別個のセットを必要とする場合がある。シェル214を起動することは、クライアント202の署名を必要とし得る特定のアクションの一例であってもよく、したがって、SSHトンネルを開くことと同様であり得る。これは、クライアント202の署名なしにICS204によって実行され得るシェルを閉じることとは類似しない場合がある。
【0080】
入力216をターゲット206に送信するクライアント202は、最初の2メッセージハンドシェイクを含むことができ、その後無期限に継続することができるが、単一のクライアント202は、ログアウト時又は所定の期間後に期限切れになる有効なICS証明書を有する必要があり得る。コマンド又はデータをシェルに送信することは、任意のユーザがそれと対話するための既存のシェルが存在する必要があり得るので、シェル/添付/<id>アクションの使用を含み得る。
【0081】
シェル添付ファイル604は、ユーザが第一のクライアント(c)でログインしてシェルを開き、第2のクライアント(c´)で同時にログインしてもなおターゲット206によって受け入れられるコマンドを有することができるプロセスであってもよい。シェル添付604は、以下の例示的なシーケンスによって実行することができる。
【0082】
1.Aliceは新しいクライアントc´にログインし、異なるクライアントcを介して開かれた同じシェルにアクセスしようとしている。c´のログインプロセスは、図2に関して説明したログインプロセス210と、c´のICS証明書(ICScertc´)を取得することとを含むことができる。クライアントc´はまた、ターゲット選択動作212を実行することができる。
【0083】
2.クライアントc´は、新しいランダム値rc´を生成することができる。
【0084】
3.クライアントc´は、SYNメッセージ606をICS204に送信する。
【0085】
4.ICS204は、Aliceが指定されたターゲット206に対してこのアクションを行うことを認可されているかどうかをチェックし、SYNメッセージ606を検証してターゲット206に転送する。
【0086】
5.ターゲット206は、SYNメッセージ606を読み取り、検証し、例えばユーザID又は他の情報に基づいて、新しいクライアントc´と以前のクライアントc及びその関連するシェル入力シーケンス216との間の関連付けを判定することができる。ターゲット206は、新しいクライアントc´のためのSYNメッセージ606に対するSYN/ACKメッセージ608を生成することができる。しかしながら、ターゲット206は、SYN/ACKメッセージのために通常生成する乱数(r)の代わりに、代わりに、チェーン内の前のDATA/ACKメッセージ508のハッシュを計算し得る(607)。このハッシュポインタ607は、初期SYN606、SYN/ACK608交換におけるランダム性に起因する再生不可能性を依然として保証しながら、(例えば、ICS204において)不変ログの継続を可能にし得る。SYN/ACKメッセージ608は、ICS204を通ってクライアントc´に返され得る。
【0087】
6.クライアントc´を介して接続されたAliceは、更なるDATA506及びDATA/ACK508メッセージを介して、上記の「シェル入力」セクションで指示されたコマンドを実行することができる。
【0088】
幾つかの実施形態では、新しいクライアントと接続すると、以前に接続したクライアントを切断することができる。図6の例では、ターゲット206がクライアントc´に対してSYNメッセージ606及び生成されたSYN/ACKメッセージ608を受信した後に、クライアントc202が新しいDATAメッセージ610を発行すると、ターゲット206はDATA/ACKメッセージ614内で「ERROR」応答を発行することができる。例えば、DATAメッセージ610に含まれるハッシュは、ターゲット206の最後に発行されたDATA/ACKメッセージ608に対応しない場合があり、その結果、DATAメッセージ610は認識されない。図1及び図2の作用部によって実行される方法は、以下の図に関してより詳細に説明される。
【0089】
図7は、本開示の特定の実施形態に係る、ゼロ信頼認証のための方法700の一例のフローチャートを示す。特に、方法700は、認証通信中にクライアントを認証するために仲介連帯保証部(ICS)証明書を生成及び使用するためのプロセスの一例を含み得る。方法700は、図1のクライアント102又は図2のクライアント202などのクライアントシステムによって実行することができる。
【0090】
702において、方法700は、クライアントcのためのログインプロセスを開始することを含むことができる。これは、図2のログインプロセス210に対応することができ、クライアント202は、識別情報プロバイダ(IdP)208から取得された認可トークンを使用して仲介連帯保証部204にログインすることを望む。
【0091】
方法700は、704において、秘密又は秘密鍵(SK)及び公開鍵(PK)を含む、クライアントのための鍵ペアを生成又は検索するステップを含むことができる。706において、方法700は、クライアントCERrandのための乱数を生成するステップを含むことができ、これは最終認可トークンにおいてクライアントを一意に識別するのに役立つ。方法700は、708において、署名付きランダム値(CERrand)σを生成するために、クライアントの秘密鍵SKCを用いて乱数CERrandに署名するステップを含むことができる。
【0092】
710において、方法700は、CERrand、(CERrand)σ、及びクライアントの公開鍵PKを一緒にハッシュすることによって、認可要求AUTH_nonceのためのノンス値を設定するステップを含むことができる。なお、付帯証明書情報に関して、CERrandと(CERrand)σとの組み合わせをまとめてCERancと称する場合がある。したがって、AUTH_nonceは、Hash(PK、CERanc)に設定することができる。暗号では、ノンスは、暗号通信で1回だけ使用できる任意の数であってもよい。幾つかのIdP認可動作では、クライアントはログイン要求中にノンスとしてランダムに生成された値を提供するだけでよく、IdPは認可トークンの一部として署名して返すことができる。しかしながら、クライアントの公開鍵と共にランダム値CERrandをハッシュすることによって、クライアントは、クライアントを依然として個人的に識別するランダム値を生成することができ、そのランダム値はIdP当局によって署名される。このようにして、クライアントは、認可要求に必要なランダム性を提供しながら、信頼できるIdPによって検証及び署名された個人識別値を取得することができる。
【0093】
AUTH_nonceを生成した後、クライアントは、712において、IdPが認可トークンを提供するために必要とし得る他の識別基準と共に、認可要求においてそれをIdPに送信することができる。714において、方法700は、IdPによって署名された変更されていないAUTH_nonceを含む認可トークン(例えば、SSO_com)を受信するステップを含むことができる。
【0094】
716において、方法700は、署名されたAUTH_nonceを有するSSO_com、クライアントの公開鍵のコピー、及びCERancのコピーを含むICS証明書を生成することを含み得る。718において、クライアントの公開鍵を登録し、署名されたAUTH_nonceを介してクライアントの識別を検証するために、ICS証明書をICSに提供することができる。クライアントの識別情報は、IdPの公開鍵のコピー、クライアントの公開鍵のコピー、及びCERancのハッシュされないコピーを使用して検証することができる。このようにして、クライアントはICSにログインすることができ、ICSを介して保護されたターゲットにアクセスすることができる。署名されたAUTH_nonceを有するクライアントのICS証明書は、720において、ICS又はターゲットに対してクライアントを認証するための将来の通信に含まれ得る。方法700はまた、クライアントの秘密鍵を用いて将来のメッセージに署名することを含むことができる。ICSの観点からクライアントを検証する方法が、図8に関して説明される。
【0095】
図8は、本開示の特定の実施形態に係る、ゼロ信頼認証のための方法800の一例のフローチャートを示す。特に、方法800は、認証通信中にクライアント通信の信頼性及び仲介連帯保証部(ICS)における対応するユーザの識別情報を検証するためのプロセスの一例を含み得る。方法800は、図1のICS104又は図2のICS204などのICSシステムによって実行することができる。
【0096】
方法800は、802において、ICSでクライアントメッセージを受信することを含むことができる。メッセージは、ICSにログインするか、指定されたターゲットに対してシェルを開くか、又は既に開いているシェル上でシェル入力又は通信を開始することを要求する、クライアントからのSYNメッセージを含むことができる。幾つかの実施形態では、メッセージは、DATAメッセージ、又はクライアントからICSへの他の任意の通信を含むことができる。
【0097】
方法800は、804において、メッセージからICS証明書(ICScert)を抽出することと、806において、ICScert内の最新の認可トークン(例えば、SSO_com又はSSO_id)の有効期限を検証することとを含むことができる。808において、方法800は、認可トークン上の識別情報プロバイダ(IdP)署名を検証するステップを含むことができ、その署名は、認可トークン全体、トークン内のAUTH_nonce、又はそれらの組み合わせに署名するために使用されている可能性がある。ICSは、署名を検証するために、信頼できる送信元からIdPの公開鍵のコピーを取得することができる。810において、方法800は、ICScertで提供された情報に基づいて、図7に関して説明したように、認可トークンからのAUTH_nonceがハッシュ(PK、CERanc)に設定されていることを検証することを含み得る。
【0098】
812において、全ての検証動作が成功したかどうかの判定を行うことができ、成功とは、クライアントメッセージが検証及び認証されたことを示す。成功しない場合、方法800は、814においてエラーを発行することと、820においてICSにおいて不変ログを更新することとを含むことができる。発行されたエラーは、ログにエラーを格納すること、メッセージを送信したクライアントにエラーメッセージを発行すること、メッセージで指定されたターゲットにエラーを発行すること、他の方法でエラーを発行すること、又はそれらの任意の組み合わせを含むことができる。
【0099】
812において、全ての検証が成功したと判定された場合、方法800は、816において、ICSの秘密鍵又は秘密鍵SKICSでメッセージに署名することを含むことができる。或いは、ICSはメッセージに署名しなくてもよく、代わりに、確立された信頼できるTLS接続を介してメッセージを転送することなどによって、他の方法でメッセージの認証を提供してもよい。メッセージは、818において、メッセージで指定されたターゲットに転送され得る。ICSがメッセージに署名する実施形態では、ICSは、メッセージと共に、又はメッセージとは別に、ICSの公開鍵PKICSのコピーをターゲットに提供することができる。クライアントとICSの両方からの署名を含むメッセージを提供することにより、ターゲットは暗号化を必要とせずに認証を実行することができる。メッセージを転送した後、方法800は、820において、不変ログを更新することを含むことができる。
【0100】
メッセージがログイン要求であった実施形態では、816及び818において、メッセージに署名してICSからターゲットに転送するのではなく、方法800は、クライアントにログインし、ログインが成功したことを示すSYN/ACKメッセージをクライアントに返送することを含むことができる。この方法は、820において、ログを更新することを更に含み得る。ターゲットシステムによって実行される認証の方法は、図9に関して説明される。
【0101】
図9は、本開示の特定の実施形態に係る、ゼロ信頼認証のための方法900の一例のフローチャートを示す。特に、方法900は、メッセージに含まれる任意のコマンドを実行する前に、ターゲットにおいて受信されたメッセージに対して認証を実行するためのプロセスの一例を含み得る。方法900は、図1のターゲット10又は図2の206などのターゲットシステムによって、又は図1のエージェント112などのターゲットにインストールされた、又はターゲットによって実行されるエージェントプログラム又はドライバによって実行することができる。
【0102】
方法900は、902において、ターゲットにおいて仲介連帯保証部(ICS)からメッセージを受信することを含み得る。メッセージは、メッセージを最初に送信したクライアントシステムによって署名されてもよく、必要に応じて、メッセージをターゲットに転送する前にメッセージの信頼性を検証したICSによって署名されてもよい。メッセージは、例えば、署名当事者の秘密鍵を使用して署名されてもよく、その署名は、対応する公開鍵を使用して検証されてもよい。幾つかの実施形態では、ICSは、TLS WebSocket接続を介してメッセージを転送することなどによって、他の方法でメッセージを認証することができる。
【0103】
方法900は、904において、メッセージに対するICS署名又は他の認証を検証することと、906において、メッセージからICS証明書(ICScert)を抽出することとを含むことができる。908において、ICScert内の認可トークン(例えば、SSO_com及びSSO_id)の有効期限又は日付を検証することができ、910において、識別情報プロバイダ(IdP)の識別情報及び署名も認可トークンから検証することができる。912において、方法900は、IdPによってそれ自体署名された認可トークンに含まれる、例えば署名されたランダム値(CERrand)σから、クライアント署名を検証するステップを含むことができる。方法900はまた、クライアントの電子メール、組織、及びクライアントがターゲットでアクションを実行する認可を有するかどうか、又はどの程度まで有するかを示すことができる他の基準を検証することを含むことができる。例えば、クライアントと関連付けられたユーザは、ターゲットにアクセスするための正しい組織のメンバであってもよいが、メッセージで要求された動作を実行するのに十分なクリアランスを有していなくてもよい。クライアント情報を検証することは、メッセージに含まれる詳細をターゲットにアクセス可能なルックアップテーブル又は同様のシステムと比較することを含むことができ、又はメッセージ自体が他の全ての検証を通過した場合、メッセージ内の詳細は信頼できるものとして受け入れられることができる(例えば、904におけるICS認証、908における有効期限検証、910におけるIdP署名、及び912におけるクライアント署名)。メッセージが検証されると、アクセス権テーブルでクライアントを検索することによって、アクセス権を判定及び検証することができる。
【0104】
916において、全ての検証が成功したかどうかの判定を行うことができ、成功とは、メッセージ内の全ての資格認証情報及び署名が検証され、クライアントがメッセージで指定された任意の動作を実行することを認可されたことを示す。成功しない場合、方法900は、918においてエラーを発行するステップと、922においてICSに応答を返すステップとを含むことができる。エラーを発行することは、ICSにメッセージを返すこと、クライアントに返されるメッセージを送信すること、ターゲットにログエントリを作成すること、又は任意の他のエラーインジケータを発行することを含むことができる。
【0105】
916において、全ての検証が成功したと判定された場合、方法900は、920において、メッセージを処理することと、922において、ICSに応答を返すこととを含むことができる。メッセージを処理することは、データベースへの情報の入力、データの検索及び返送、プロセスの開始、又は任意の他の動作など、メッセージからのデータに基づいて動作又は計算を実行することを含むことができる。図2図7図8、及び図9に示すような、ゼロ信頼認証のための動作を実行するために使用され得るコンピューティングシステムの一例が図10に示されている。
【0106】
図10は、本開示の特定の実施形態に係る、ゼロ信頼認証のために構成されたシステム1000の図である。特に、図10は、コンピュータシステム1002を示し、これは、クライアント102、仲介連帯保証部104、ターゲット106、又は識別情報プロバイダ108、並びに関連するプロセス及び方法の動作を実行するために使用され得る任意のコンピューティングシステムの一例であり得る。コンピューティングシステム1002は、処理システム1004、通信インタフェース1006、及びユーザインタフェース1008を含むことができる。コンピューティングシステム1002は、明確にするために示されていないバッテリ及びエンクロージャなどの他の構成要素を含むことができる。コンピューティングシステム1002は、1つ以上のサーバコンピューティングシステム、デスクトップコンピューティングシステム、ラップトップコンピューティングシステム、スマートフォンデバイス、又は任意の他のコンピューティングシステムを、それらの組み合わせを含めて、備えることができる。
【0107】
通信インタフェース1006は、ネットワークカード、ポート、無線周波数(RF)、処理回路及びソフトウェア、又は他の何らかの通信デバイスなどの通信リンクを介して通信する構成要素を備えることができる。通信インタフェース1006は、金属、無線、又は光リンクを介して通信するように構成することができる。通信インタフェース1006は、時分割多重(TDM)、インターネットプロトコル(IP)、イーサネット、光ネットワーキング、無線プロトコル、通信シグナリング、他の通信フォーマット、又はそれらの任意の組み合わせを使用するように構成されてもよい。特に、通信インタフェース1006は、ネットワークを介してクライアントシステム102、識別情報プロバイダ108、仲介連帯保証部104、及びターゲットシステム106と通信するように構成されてもよい。
【0108】
ユーザインタフェース1008は、ユーザ入力を受信し、メディア又は他の情報を提示するためにユーザと対話する構成要素を備えることができる。ユーザインタフェース1008は、ディスプレイスクリーン、タッチスクリーン、タッチパッド、キーボード、ボタン、スピーカ、マイクロフォン、ポインタデバイスもしくはインタフェース、通信ポート、他のユーザ入出力装置、又はそれらの任意の組み合わせを含むことができる。
【0109】
処理システム1004は、通信インタフェース1006及びユーザインタフェース1008にリンクされてもよい。処理システム1004は、処理回路1010及びメモリデバイス1012を含むことができる。メモリデバイス1012は、実行可能命令又は他のオペレーティングソフトウェア1016、及びログ、テーブル、データベース、又は他の記憶された情報1014を記憶することができる。
【0110】
処理回路1010は、メモリデバイス1012から命令1016を取り出して実行することができるマイクロプロセッサ及び他の回路を備えることができる。メモリ1012は、ディスクドライブもしくはソリッドステートドライブなどの不揮発性データ記憶媒体、又はランダムアクセスメモリ(RAM)及びダイナミックRAM(DRAM)などの揮発性メモリ、又は任意の他のメモリデバイスを含むことができる。処理回路1010は、メモリデバイス1012並びに通信インタフェース1006及びユーザインタフェース1008の一部も保持することができる回路基板上に実装することができる。
【0111】
実行可能命令1016は、コンピュータプログラム、ファームウェア、又は何らかの他の形態の機械可読処理命令を含むことができる。実行可能命令1016は、認可モジュール1018及び通信モジュール1020を含むことができるが、関連する動作は、複数の異なるモジュール又はプログラムによって処理されてもよく、追加のモジュールが実行可能命令1016に含まれてもよい。実行可能命令1016は、オペレーティングシステム、ユーティリティ、ドライバ、ネットワークインタフェース、アプリケーション、又は何らかの他のタイプのソフトウェアを更に含むことができる。処理回路1010によって実行されると、実行可能命令1016は、本明細書で説明するようにコンピューティングシステム1002を動作させるように処理システム1004に指示することができる。
【0112】
認可モジュール1018は、ターゲットにアクセスするための認可を取得するための、又はターゲットと通信するための要求の信頼性を検証するための命令のセットであり得る。例えば、コンピューティングシステム1002がクライアントシステム102に相当する場合、認証モジュール1018は、方法700を実行してICS証明書を生成し、ICSにログインするための命令、又は図2のクライアント202がターゲット206にアクセスして通信するために示されるプロセスを含むことができる。コンピューティングシステム1002がICS104に相当する場合、認可モジュール1018は、ポリシールール116を含むことができ、クライアントメッセージを認可するための方法800、又は図2のICS204に示されているプロセスを含むことができる。コンピューティングシステム1002がターゲット106に相当する場合、認可モジュール1018は、エージェント112のコードを含むことができ、ICS104から受信されたクライアントメッセージを認可するための方法900、又は図2のターゲット206について示されたプロセスを含むことができる。
【0113】
通信モジュール1020は、図2のメッセージの送受信に関与する通信プロトコルのための命令セットを含むことができる。命令は、送受信する一連のメッセージ、並びに図4A図4B図5、及び図6に示すようなメッセージのフォーマットを含むことができる。例えば、通信モジュール1020は、各フィールドにどのデータを取り込むか、及び通信インタフェース1006を介して指定されたICSにSYNメッセージを送信する命令を含む、SYNメッセージ402を作成する方法についてクライアントシステムの処理回路1010に指示することができる。
【0114】
ログ1014は、システム1002の記憶されたデータを表すことができる。クライアントシステム202の一例では、ログ1014は、クライアント公開鍵及び秘密鍵、ICS証明書のコピー、並びにクライアントシステム202によって送信される次のメッセージに挿入するために必要とされ得る最後に受信したACKメッセージのハッシュなどの情報を含むことができる。ICSの一例では、ログ1014は、クライアントシステムとターゲットとの間の送信又はトランザクション履歴の不変のログを含むことができ、ICSは、既存のエントリに追加するが、既存のエントリを修正又は削除することができないように構成することができる。ICSログ1014はまた、ICSの公開鍵及び秘密鍵、認識されたIdPの秘密鍵、サポートされているターゲットへの異なるユーザのアクセス認可、又は他の情報などの情報を含むことができる。ターゲットシステムの一例では、ログ1014は、ターゲットの公開鍵及び秘密鍵、信頼できるIdP及びICS公開鍵、メッセージ又はアクセスログ、ユーザアクセス認可、又は他のデータを含むことができる。
【0115】
本明細書に記載の実施形態の例示は、様々な実施形態の構造の一般的な理解を提供することを意図している。例示は、本明細書に記載の構造又は方法を利用する装置及びシステムの要素及び特徴の全ての完全な説明として役立つことを意図するものではない。多くの他の実施形態は、本開示を検討すれば当業者には明らかである。本開示の範囲から逸脱することなく構造的及び論理的な置換及び変更を行うことができるように、本開示から他の実施形態を利用及び導出することができる。更に、特定の実施形態を本明細書で図示及び説明したが、同じ又は同様の目的を達成するように設計された任意の後続の構成が、示された特定の実施形態の代わりに使用されてもよいことを理解すべきである。
【0116】
本開示は、様々な実施形態のありとあらゆるその後の適合又は変形を網羅することを意図している。上記の実施形態の組み合わせ、及び本明細書に具体的に記載されていない他の実施形態は、説明を検討すれば当業者には明らかである。フローチャートに示されたステップは、任意選択的に、除外され、追加され、異なる順序で実行され、又は示されたものとは異なる並行度で実行されてもよい(例えば、順次として示されるステップは、同時に実行されてもよい)。更に、図は単に代表的なものであり、縮尺通りに描かれていない場合がある。例示内の特定の割合は誇張されている場合があり、他の割合は低減されている場合がある。したがって、本開示及び図面は例示的なものであり、限定的なものではないとみなされるべきである。
図1
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10
【国際調査報告】