# セキュリティと暗号化モデル

### 概要

Keeperシークレットマネージャーは、ゼロ知識プラットフォームです。 シークレットの暗号化と復号化は、`ksm` アプリケーション、CI/CDプラグイン、開発者用SDKを実行しているクライアントデバイスでローカルに実行されます。

### クライアントデバイスの構成ファイル

`ksm` アプリケーションのローカルの構成ファイル (keeper.iniなど) は、以下の形式をとります。

```
[_default]
clientkey = XXX
clientid = XXX
privatekey = XXX
appkey = XXX
hostname = US
serverpublickeyid = 10

[_config]
active_profile = _default
```

このファイルはローカルファイルシステムで保護されている必要があります。ファイルには、Keeper APIで認証し、アプリケーションとクライアントデバイスに明示的に関連付けられたシークレットを復号化できるキーが含まれています。

### 構成ファイルの保護

Keeperでは、構成ファイルを保護する方法をいくつか用意しています。

#### シークレットマネージャーCLIの使用

[シークレットマネージャーCLI](/keeperpam/jp/secrets-manager/secrets-manager-command-line-interface.md)を使用すると、認証情報はデフォルトでオペレーティングシステムのネイティブなセキュアストレージに安全に保存され、構成ファイルに保存する場合と比べてセキュリティが強化されます。

#### シークレットマネージャーSDK

Keeperの開発者向けSDKを利用する場合、サードパーティのシークレット保管ソリューションとの連携により構成ファイルを保護するさまざまな方法を提供しています。例は次のとおりです。

* [AWS KMS暗号化](/keeperpam/jp/secrets-manager/integrations/aws-kms.md)
* [Azure Key Vault暗号化](/keeperpam/jp/secrets-manager/integrations/azure-key-vault-ksm.md)
* [Entrust HSM暗号化](https://github.com/Keeper-Security/gitbook-jp-secrets-manager/blob/main/secrets-manager/integrations/hardware-security-modules/entrust-hsm.md)
* [Google Cloud Key Management暗号化](/keeperpam/jp/secrets-manager/integrations/google-cloud-key-management-encryption.md)
* [Oracle Key Vault暗号化](/keeperpam/jp/secrets-manager/integrations/aws-kms.md)

### 構成ファイルの各フィールド

| 設定名               | 説明                                                 |
| ----------------- | -------------------------------------------------- |
| clientkey         | ワンタイムアクセストークン (初回使用後に削除されます (32バイトのランダム値))         |
| clientid          | クライアントデバイスの一意の識別子 (ワンタイムアクセストークンのHMAC\_SHA512ハッシュ) |
| privatekey        | クライアントデバイスの秘密鍵 (ECC secp256r1)                     |
| appkey            | アプリケーションの秘密鍵 (AES-256)                             |
| hostname          | 宛先エンドポイント (US、EU、AU、JP、US\_GOV)                    |
| serverpublickeyid | 送信ラッパーのKeeper API公開鍵の識別子                           |

### 認証と暗号化

クライアントデバイスは、ハッシュが生成されたワンタイムアクセストークンで**1回だけ**認証されます。クライアントはペイロードに署名し、初回認証時にクライアントデバイスの公開鍵をサーバーに登録します。初回の認証以降のリクエストは、クライアントデバイスの秘密鍵で署名されます。

KeeperクラウドへのAPIリクエストは、クライアントデバイスの識別子およびクライアントデバイスの秘密鍵で署名されたリクエストのボディと一緒に送信されます。サーバーでは、クライアントデバイスの公開鍵を使用して、指定したクライアントデバイス識別子のリクエストのECDSA署名が照合されます。

クライアントデバイスでは、アプリケーションの秘密鍵を使用してサーバーから受信したレスポンスの暗号文を復号化します。これにより、レコードの鍵と共有フォルダの鍵が復号化されます。共有フォルダの鍵でレコードの鍵を復号化し、レコードの鍵で個々のレコードのシークレットを復号化します。

### IP制限によるアクセスの保護

以下のように、デフォルトではクライアントデバイスのプロファイルを作成するとIP制限が有効になります。

```
My Vault> secrets-manager client add --app MyApplication

Successfully generated Client Device
====================================

One-Time Access Token: PqwnPcUo2Wc3dv3zvu_zC3nHhNAbNWDfooECWMBTRJM
IP Lock: Enabled
Token Expires On: 2021-08-17 21:00:28
App Access Expires on: Never
```

このトークンを使用して初期化するクライアントは、IPが固定されます。 IP制限を無効にするには、以下のようなパラメータを追加指定する必要があります。

```
My Vault> secrets-manager client add --app MyApplication --unlock-ip
```

動的WAN IPを使用する環境にデプロイする場合を除き、IP制限を許可することをお勧めします。

### アクセスの失効

構成が漏洩した場合や直ちにアクセスを取り消す必要がある場合は、コマンダーCLIから次を実行します。

{% code overflow="wrap" %}

```
My Vault> secrets-manager client revoke --client [ClientID]
```

{% endcode %}

### その他の情報

Keeperはゼロ知識セキュリティアーキテクチャとゼロトラストフレームワークを活用した、業界最高水準のセキュリティを採用しています。Keeperのゼロ知識暗号化モデルに関する技術資料については、以下のリンクからご参照になれます。

[Keeperの暗号化モデル](/enterprise-guide/jp/keeper-encryption-model.md)

[シークレットマネージャー暗号化モデル](/enterprise-guide/jp/keeper-encryption-model.md#secrets-manager-encryption-model)

[セキュリティ情報開示ページ](https://keepersecurity.com/ja_JP/security)

Keeperは、SOC 2 Type 2およびISO 27001の認証を取得しており、FedRAMPおよびStateRAMPの認可も受けています。[Keeperトラストセンター](https://trust.keeper.io/)から、各種認証レポートや技術アーキテクチャに関するドキュメントへのアクセスを申請できます。

### 脆弱性情報開示プログラム

KeeperはBugcrowdと提携して、脆弱性情報開示プログラムを運営しています。[こちらのウェブサイト](https://bugcrowd.com/keepersecurity)からレポートを送信するか、<security@keepersecurity.com>にメールにてお問い合わせください。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/keeperpam/jp/secrets-manager/about/security-encryption-model.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
