Routerのセキュリティ

Keeper Routerのセキュリティおよび暗号化モデル

概要

Keeper Router (Router) は、KeeperのAmazon AWS環境でホストされるクラウドサービスで、KeeperバックエンドAPI、エンドユーザーアプリケーション (ウェブボルトやKeeper Desktopなど) と、ユーザー環境にインストールされたKeeper Gateway間の通信を実現します。Routerは、リソース検出、パスワードローテーション、時間指定アクセス、特権接続管理を実行する通信を担います。

Keeper Routerの仕組み

従来の古い特権アクセス製品では、オンプレミスソフトウェアのインストールはお客様の責任で、クラウド環境での管理や設定は困難でした。Keeperのモデルでは、小規模なサービス (Gatewayと呼ばれる) がお客様の環境にインストールされ、Keeper Routerへのセキュアなアウトバウンド接続が確立されます。これにより、ネットワーク設定なしでKeeperクラウドへの双方向通信が可能になります。Keeper Routerは、受信リクエストにWebSocketを利用することで、オンプレミスインフラストラクチャへのクラウドからのアクセスを簡単かつ安全にします。

Keeperを使用すると、ユーザーの現在のセッショントークンを使用して、エンドユーザーデバイス (ウェブボルトなど) とKeeper Routerの間でWebSocketが確立されます。このセッショントークンは、セッションを認証するためにKeeper Routerによって検証されます。Keeper Routerに送信される暗号化ペイロードはすべて、MITM攻撃から保護するために、TLSに加えて256ビットAES送信キーでラップされます。送信キーはエンドユーザーデバイスで生成され、RouterのEC公開鍵でECIES暗号化を使用してサーバーに転送されます。

Webボルトまたはデスクトップアプリのユーザーがパスワードローテーション、検出ジョブ、またはリモート接続を実行した場合のメッセージの流れは以下のようになります。

  • Gatewayをインストールすると、ハッシュ化されたワンタイムアクセストークンを使用してKeeperクラウドで1回認証されます。クライアントはペイロードに署名し、初回認証時にクライアントデバイスの公開鍵をサーバーに登録します。初回の認証以降のリクエストは、Keeper Routerに送信され、クライアントデバイスの秘密鍵で署名されます。

  • Gatewayは、クライアントデバイスの秘密鍵とECDSA署名を使用して、認証されたWebSocket接続を確立します。

  • ボルトは、実行するコマンド (ローテーション、検出、接続) を含むメッセージをKeeper Routerに送信し、ユーザーの有効なセッショントークンを使用してこのコマンドを認証します。

  • ボルトは、コマンドおよびコントロールメッセージのみを送信します。たとえば、Rotate UID XXX。ボルトとRouter間で機密情報は交換されません。Routerは、記録のローテーション設定のセッショントークンを使用してコマンドを認証し、ユーザーのリクエストを検証します。

  • Routerは、既存のWebSocket接続を使用して、コマンドを宛先ゲートウェイに中継します。

  • Gatewayは、Keeper Secrets Manager APIを使用して、シークレット、管理者のクレデンシャル、記録の詳細などの秘密データを取得します。KeeperクラウドへのAPIリクエストは、クライアントデバイスの識別子およびクライアントデバイスの秘密鍵で署名されたリクエストのボディと一緒に送信されます。サーバーは、クライアントデバイスの公開鍵を使用して、指定したクライアントデバイス識別子のリクエストのECDSA署名を照合します。クライアントデバイスは、アプリケーションの秘密鍵を使用してサーバーから受信したレスポンスの暗号文を復号化します。これにより、記録の鍵と共有フォルダの鍵が復号化されます。共有フォルダの鍵で記録の鍵を復号化し、記録の鍵で個々の記録のシークレットを復号化します。

  • Gatewayは、パスワードまたは検出ジョブが更新されると必ず、Keeper Secrets Managerの「update」コマンドを使用して、ユーザーのボルトを更新します。

  • ローテーションまたは検出ジョブが完了すると、Gatewayはジョブが完了したことをRouterに通知します。ARAMイベントログはRouterによって呼び出されます。

Keeper Routerのアーキテクチャはゼロ知識であり、Keeperのインフラストラクチャには、お客様の保管するボルトデータにアクセスしたり復号化したりする機能は一切ありません。

Keeper Routerのアーキテクチャ

Routerは、互いに連携するヘッドとワーカーという2つの論理デプロイメントで構成されています。

Routerは、KeeperのAWSクラウド環境でホストされ、各グローバルリージョン (US、EU、CA、AUS、JP、US Gov) に分離されています。

ヘッドはインターネットに公開されず、以下の機能を実行します。

  • ワーカー間のグローバル状態の同期化

  • ワーカー間の通信

  • イベントのスケジューリング (ローテーション、検出、接続要求など)

ワーカーはWebSocketでヘッドに接続し、REST APIコールも使用して情報を取得します。ワーカーは以下の機能を実行します。

  • ゲートウェイとの通信

  • Keeperエンドユーザーアプリケーションとの通信

  • KeeperバックエンドAPIとの通信

  • ヘッドとの通信

ワーカーは、Keeperの環境ごとに規模の調整と負荷分散が行われます。Keeper Routerへのアクセスは、各リージョンに共通のURLパターンを使用して確立されます。

US: https://connect.keepersecurity.com

EU: https://connect.keepersecurity.eu

AU: https://connect.keepersecurity.com.au

CA: https://connect.keepersecurity.ca

JP: https://connect.keepersecurity.jp

US GOV: https://connect.keepersecurity.us

エンドユーザーデバイスは、常に同じRouterインスタンスを使用して通信します。エンドユーザーボルトがRouterシステムに接続すると、ボルトが目的のゲートウェイと通信していることを確認するために、情報交換が実行されます。Gatewayとの通信が確立されると、7日間で自動的に失効するCookieがユーザーのブラウザにローカルに保存されます。このCookieは、ターゲットのRouterインスタンスとのスティッキーセッションを確立するためにのみ使用され、機密情報は一切含まれません。

各Gatewayは、一意のUIDに関連付けられます。GatewayのUIDは、ユーザーのボルトの暗号化された「PAM設定」記録内に格納されます。こうして、Keeperボルトの記録は、要求されたローテーション、検出、または接続機能を実行するためにどのGatewayを使用すべきかを把握します。\

最終更新