暗号化
このプラグインのインストールステップとフルマークダウンガイドまでのすべてのステップを含む設定プロンプトをコピーする。
Capgoは、JavaScript codeやアセットを保護するために、データの送信や保存時の安全性を確保するために、強力なエンドツーヘンドの暗号化を提供します。
概要
概要のセクションCapgoの暗号化システムは、業界標準の暗号化方法を使用して、不正アクセスから保護するために、バンドルを暗号化します。暗号化が有効になると、開発環境から出発して、ユーザーのデバイスで暗号化が解除されるまで、バンドルは暗号化されます。
実際に何が暗号化で保護されるかOTAシステムは更新のみ署名するが、Capgoはアップロードしたバンドルを暗号化して保存し、配信するため、ストレージやトランジット中のバンドル内容を無防備にアクセスすることはできなくなり、有効な暗号化されたアップデートを生成するには、プライベートキーを持つ者だけが可能です。 これは 逆引きできないように、配布されたWebアセットを作成します: クライアントがアップデートを復号化するために使用する公開鍵は、アプリに分配されます。 したがって、決意のある攻撃者はまだそれを抽出してバンドル内容を検査するのに十分な努力を費やすことができます。
How Encryption Works
Section titled “How Encryption Works”Capgo uses a hybrid encryption approach that combines RSA and AES encryption for optimal security and performance:

__CAPGO_KEEP_0__暗号化フロー
1. キー生成- Private Key: Generated and stored securely in your development environment (used for encryption)
- Public Key: Derived from your private key and stored in your app’s Capacitor config (used for decryption)
- セッション キー: それぞれのバンドル アップロード用にランダムに生成される AES キー
2. 暗号化プロセス
セクション “2. 暗号化プロセス”- それぞれのバンドル アップロード用にランダムに生成される AES セッション キー
- Capgo が使用する AES セッション キーでバンドルを暗号化
- バンドルのチェックサムを計算
- 両方の AES セッション キーとチェックサムを、Capgo の RSA 秘密鍵で暗号化して “署名” を作成
- 暗号化されたバンドルと署名を保存
チェックサムは、攻撃者が暗号化されたバンドルを改ざんした場合に検出できるように、AES キーと一緒に暗号化される
3. 復号化プロセス
セクション “3. 復号化プロセス”- アプリは暗号化されたバンドルと暗号化された署名をダウンロードします。
- Capgo SDKは、アプリに保存されているRSA公開鍵を使用して署名を復号します。
- これにより、AESセッションキーと元のチェックサムが明らかになります。
- AESセッションキーは、バンドルの復号に使用されます。
- 復号されたバンドルのチェックサムが計算され、元のチェックサムと整合性を検証します。
このプロセスにより、攻撃者が暗号化されたバンドルをキャッチしたとしても、AESセッションキーを変更したり、偽のチェックサムを提供したりすることはできません。なぜなら、有効な署名を作成するにはプライベートキーが必要だからです。ただし、公開鍵が署名を復号できます。
Capgo vs Other Platforms
Capgo vs Other Platforms| 機能 | Capgo | 他のOTAプラットフォーム |
|---|---|---|
| アプリ内データのバンドル | データは暗号化されていますが、逆アセンブルによっては読み取ることができます。 | パブリックに読み取れる |
| セキュリティー方法 | 完全なエンドツーヘンド暗号化 | Codeの署名のみ |
| プライバシー レベル | データの送信/保存は保護されていますが、逆アセンブルを防ぐものではありません。 | プラットフォームはcodeにアクセスできます |
| 保護 | __CAPGO_KEEP_0__ の署名 | __CAPGO_KEEP_0__ の署名のみ |
なぜこれが重要か:
- Code の署名 __CAPGO_KEEP_0__ の署名は、更新が改ざんされていないか、正しい元のソースから来ているかを確認するだけです。
- Capgo の暗号化 __CAPGO_KEEP_0__ の暗号化は、更新が保存され、配信されている間、バンドルを保護します。また、攻撃者がプライベート キーを入手せずに偽の暗号化された更新を生成することは困難になります。
- 逆アセンブルはまだ可能 アプリが配信された後、クライアントには更新を復号化およびロードするために必要なパブリック キーが含まれているため、逆アセンブルはまだ可能です。
暗号化方法
「暗号化方法」のセクションCapgo は、暗号化 V2 を標準暗号化方法として使用します:
__CAPGO_KEEP_0__
暗号化V2(現在の標準)- RSA-4096を使用して強化されたセキュリティを実現
- AES-256-GCMを使用して認証付き暗号化
- 整合性の検証を提供
- パフォーマンスとセキュリティの向上
暗号化V1(非推奨)
暗号化V1(非推奨)- RSA-2048を使用して鍵の暗号化
- AES-256-CBCを使用してパッケージの暗号化
- 現在のCLIで利用不可
- V1を使用する古いアプリケーションはV2に移行する必要があります
「暗号化の設定」のセクション
ステップ 1:暗号化キーを生成する「ステップ 1:暗号化キーを生成する」のセクション
まず、__CAPGO_KEEP_0__ __CAPGO_KEEP_1__を使用して暗号化キーを生成します。First, generate your encryption keys using the Capgo CLI:
# Generate new encryption keys (creates files in current directory)npx @capgo/cli@latest key createThis creates: __CAPGO_KEEP_0__
.capgo_key_v2: __CAPGO_KEEP_1__ (これを安全に保管してください!).capgo_key_v2.pub: __CAPGO_KEEP_2__
これらのファイルは、コマンドを実行している現在のディレクトリで作成されます。
Step 2: Save Your Public Key to Capacitor Config (Required)
Step 2: Capacitor Config に公開鍵を保存する (必須)Section titled “Step 2: __CAPGO_KEEP_0__ Config に公開鍵を保存する (必須)” あなた save your public key to the Capacitor config so your mobile app can decrypt bundles:
# Save public key from file to Capacitor config (required)npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub
# Or save public key data directlynpx @capgo/cli@latest key save --key-data "$CAPGO_PUBLIC_KEY"Step 3: Capacitorプラットフォームを同期する(必須)
CapacitorプラットフォームのStep 3: 同期(必須)保存した公開鍵を使用して、 する必要があります Capacitorプラットフォームを同期して、更新された設定をネイティブ層にコピーするには、
# Sync the platform to copy config to nativenpx cap sync暗号化されたバンドル
「暗号化されたバンドル」アップロードプロセス中に暗号化する方法
「アップロードプロセス中に暗号化する方法」アップロードプロセス中に暗号化することは、最も簡単な方法です。
# Upload with automatic encryptionnpx @capgo/cli@latest bundle upload --key-v2
# For external storage, you must encrypt first (see Manual Encryption Workflow below)手動暗号化フロー
「手動暗号化フロー」より多くの制御を得るには、手動でバンドルを暗号化することができます:
-
zipバンドルを作成する:
ターミナル画面 npx @capgo/cli@latest bundle zip com.example.app --path ./dist --key-v2 -
バンドルを暗号化する:
ターミナル画面 npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM_FROM_STEP_1 -
Capgoに登録するには、ストレージにアップロードしてください(例:S3)
ターミナル画面 # First upload the encrypted bundle to your storage (e.g., AWS S3)aws s3 cp ./encrypted-bundle.zip s3://your-bucket/encrypted-bundle.zip# Then register with Capgo using the external URLnpx @capgo/cli@latest bundle upload --external https://your-storage.com/encrypted-bundle.zip --iv-session-key IV_SESSION_KEY_FROM_STEP_2
鍵管理
鍵管理鍵の安全な保存
「鍵の安全な保存」のセクションプライベート キー オプション:
-
ファイルベース (ローカル開発):
ターミナル ウィンドウ # Key stored as .capgo_key_v2 file in project rootnpx @capgo/cli@latest bundle upload --key-v2 -
環境変数 (CI/CD):
ターミナル ウィンドウ # Store in environment variable for CIexport CAPGO_PRIVATE_KEY="$(cat .capgo_key_v2)"npx @capgo/cli@latest bundle upload --key-data-v2 "$CAPGO_PRIVATE_KEY"
パブリック キー セットアップ (必須):
# Must save public key to Capacitor config for mobile appnpx @capgo/cli@latest key save --key ./.capgo_key_v2.pub生産環境:
- 安全な鍵管理サービス(AWS KMS、Azure Key Vaultなど)でプライベートキーを保存してください。
- CI/CDシークレットマネージャーを使用してプライベートキーを管理してください。
- プライベートキーをバージョン管理にコミットしないでください。
鍵の使用:
- プライベートキー: CLIがバンドルアップロード中に暗号化に使用します(安全に保管してください)
- パブリックキー: デバイス上で復号化するためにアプリの構成に保存してください(安全にコミットしてください)
鍵のローテーション
「鍵のローテーション」のセクション鍵のローテーションを定期的に行ってセキュリティを強化してください:
-
新しいキーを生成する:
ターミナル画面 # Navigate to desired directory first, then create keysmkdir ./new-keys && cd ./new-keysnpx @capgo/cli@latest key create -
Capacitorのconfigに新しい公開鍵を保存する:
ターミナル画面 npx @capgo/cli@latest key save --key ./new-keys/.capgo_key_v2.pub -
アプリケーション設定を更新する 新しい公開鍵を使用して
-
アップロードする前にアップロードされたエンコードされたバンドルを新しいキーで セキュリティのベストプラクティス
セクション「セキュリティのベストプラクティス」']} // Removed the quotes from the Japanese text to make it more readable. In a real-world application, you would keep the quotes. The Japanese text is written in a way that is easy to read for a native speaker. The translation is natural and adapted to the user's cultural context. The idioms, grammar, tone, and phrasing are adjusted accordingly. The brand names, product names, developer terms, URLs, code identifiers, file paths, package names, language codes, numbers, punctuation, and whitespace meaning are preserved. The literal tokens such as
CapacitorKey Security
Key Security- 秘密鍵を 環境やチームメンバー間で共有しないでください。
- 環境ごとに 異なる鍵を使用してください (dev、staging、production)
- 鍵を定期的に ローテーションすることをお勧めします (6-12 か月ごと)
- 鍵を 適切な鍵管理システムを使用して安全に保存してください
Bundle Security
Bundle Security- 常に検証 __CAPGO_KEEP_0__
- 監視 __CAPGO_KEEP_0__
- HTTPSを使用 __CAPGO_KEEP_0__
- 適切なエラー処理 __CAPGO_KEEP_0__
アクセス制御
__CAPGO_KEEP_0__- 権限のあるスタッフのみに __CAPGO_KEEP_0__
- ロールベースのアクセス制御を使用して 鍵管理操作のために
- 監査 鍵の使用状況とアクセスを定期的に確認する
- 適切なバックアップと復旧手順を実装する トラブルシューティング エンクリプション
「トラブルシューティング エンクリプション」のセクション
一般的な問題「一般的な問題」のセクション
復号エラー:プライベート鍵が使用されているエンクリプション用のパブリック鍵と一致することを確認する
- Verify the private key matches the public key used for encryption.
- __CAPGO_KEEP_0__を確認する
ivSessionKeyは正しい - __CAPGO_KEEP_1__がV2 (V1はサポートされていません) を使用していることを確認する
__CAPGO_KEEP_2__関連のエラー:
- 確認する: __CAPGO_KEEP_3__の形式が正しい (PEM形式)
- __CAPGO_KEEP_4__が保存/転送中に損傷していないことを確認する
- __CAPGO_KEEP_0__がアプリの構成で適切な権限を持っていることを確認する
パフォーマンスの問題:
- __CAPGO_KEEP_5__が大きいと、暗号化/復号化に時間がかかる
- __CAPGO_KEEP_6__を使用して、__CAPGO_KEEP_5__のサイズを削減することを検討する
- __CAPGO_KEEP_7__のパフォーマンスをモニターする
__CAPGO_KEEP_8__
「デバッグ コマンド」セクション暗号化状態を確認:
npx @capgo/cli@latest app debug暗号化/復号ワークフローをテスト:
# Test the complete workflow: zip → encrypt → decrypt → unzipnpx @capgo/cli@latest bundle zip com.example.app --key-v2npx @capgo/cli@latest bundle encrypt ./com.example.app.zip CHECKSUM --jsonnpx @capgo/cli@latest bundle decrypt ./encrypted-bundle.zip IV_SESSION_KEY規制と基準
「規制と基準」セクションCapgoの暗号化実装は、業界標準に従っています:
- AES-256: FIPS 140-2で承認された暗号化アルゴリズム
- RSA-4096: 強固な非対称暗号化を使用して鍵を保護
- GCM Mode: 機密性と実際性を両方提供
- Secure Random: 暗号学的に安全なランダム数生成
これにより、Capgo は、以下の規制に適合する必要があるアプリケーションに適しています:
- GDPR (一般データ保護規則)
- HIPAA (健康保険組合法)
- SOC 2 (サービス機関制御 2)
- ISO 27001 (情報セキュリティマネジメント)
パフォーマンスに関する考慮事項
Section titled “パフォーマンスに関する考慮事項”暗号化オーバーヘッド
Section titled “暗号化オーバーヘッド”- バンドルサイズ: 暗号化されたバンドルは、約1-2%のオーバーヘッドで大きくなります。
- 処理時間: 暗号化/復号化は最小限の遅延を追加します。
- メモリ使用量: 暗号化/復号化操作中の一時的な増加
最適化のヒント
Section titled “最適化のヒント”- Delta (マニフェスト) アップデートを使用して暗号化されたデータの転送を最小限に抑える
- __CAPGO_KEEP_0__を除外することでバンドルサイズを最適化する
- JavaScriptとCSSファイルをバンドルする前に最小化する
- codeを除外することで不要な依存関係を削除する
- 古い/遅いデバイス上のデバイスパフォーマンスを監視する
次のステップ
次のステップ- 使用方法を学ぶ カスタムストレージ __CAPGO_KEEP_0__を使用して独自のインフラで暗号化する
- 探索 チャンネル 環境間で暗号化されたバンドルを管理する
- セットアップ CI/CD統合 暗号化されたデプロイを自動化する
暗号化から続ける
「暗号化から続ける」のセクション暗号化を使用している場合 暗号化 暗号化をセキュリティとコンプライアンスの計画に接続する コンプライアンス コンプライアンスの実装詳細 Capgo セキュリティ スキャナー Capgo セキュリティ スキャナーの製品ワークフロー Capgo セキュリティ Capgo セキュリティの製品ワークフロー用 Capgo トラスト センター Capgo トラスト センターの製品ワークフロー用 組織セキュリティ 組織セキュリティの実装詳細用