暗号化
プロンプトを設定してください
Capgoは、codeとアセットを保護するために、エンドツーエンドの暗号化を提供します。アプリのバンドルが送信され、保存される際に、JavaScript codeとアセットが保護されます。この暗号化システムは、ライブアップデートの便利さを維持しながら、アプリのセキュリティを完全に制御するように設計されています。
Capgoの暗号化システムは、業界標準の暗号化方法を使用して、不正アクセスからバンドルを保護します。暗号化が有効になると、開発環境から出発して、ユーザーのデバイスでデコードされるまで、バンドルは暗号化されます。
実際に保護されるもの: OTAシステムがアップデートを署名するのみの場合と異なり、Capgoはアップロードされたバンドルを暗号化して保存し、配信します。この方法により、保存または転送中のバンドル内容が一般的なアクセスから保護され、有効な暗号化されたアップデートを生成するには、プライベートキーが必要になります。 暗号化は必要な場合 暗号化が必要な場合
暗号化のしくみ
暗号化のしくみCapgoは、RSAとAESの暗号化を組み合わせたハイブリッド暗号化アプローチを使用し、最適なセキュリティとパフォーマンスを実現します。

1. キー生成
1. キー生成- プライベートキー:開発環境で生成され、安全に保存される (暗号化に使用)
- パブリック キー: 私有鍵から派生し、デコードに使用されるアプリの Capacitor 設定に保存されます。
- セッションキー: ご提出されたバンドルのそれぞれにランダムに生成されたAES鍵
2.暗号化プロセス
2. 保存処理- 各バンドルのアップロードごとにランダムなAESセッションキーが生成されます。
- バンドルはAESセッションキーで暗号化されます。
- バンドルのチェックサムが計算されます。
- AESセッションキーとチェックサムは両方ともRSAの秘密鍵で暗号化されます (「署名」を生成します)。
- 暗号化されたバンドルと署名が保存されます。
チェックサムはAESキーとともに暗号化され、改ざんを防止します。RSAの秘密鍵でしか署名を作成できず、対応する公開鍵でしか署名を復号化できるため、AESセッションキーと予期されるチェックサムが改ざんされていないことを保証します。
3. 復号化処理
3. 復号化処理- アプリは暗号化されたバンドルと署名をダウンロードします。
- Capgo SDKはアプリ内に保存されているRSAの公開鍵を使用して署名を復号化します。
- これによりAESセッションキーと元のチェックサムが明らかになります。
- __CAPGO_KEEP_0__
- 暗号化されたバンドルのAESセッションキー
暗号化されたバンドルのチェックサムを計算し、元のチェックサムと比較して整合性を検証します
Capgo vs Other Platforms
Capgo vs Other Platforms| __CAPGO_KEEP_0__ vs Other Platforms | Capgo | __CAPGO_KEEP_0__ |
|---|---|---|
| 他のOTAプラットフォームとは異なる__CAPGO_KEEP_0__の特徴はありますか? | ストレージ/トランジットで暗号化; しかし、特定のリバースエンジニアがアプリバイナリを使用して検査できる | パブリックに読み取れる |
| セキュリティーメソッド | 完全にエンドツーエンドの暗号化 | Code署名のみ |
| プライバシー レベル | 強い配信/ストレージ保護; 反逆エンジニアリングに抗うものではない | プラットフォームがcodeをアクセスできる |
| 保護 | 内容 + 完全性 + 認証性 | 完全性 + 認証性のみ |
なぜこれが重要なのか:
- Code署名 アップデートが改ざんされていないか、正しいソースから来たかだけを確認する
- Capgo暗号化 アップデートが保存され、配信されている間、パッケージを保護し、偽造された暗号化されたアップデートを作成するのは難しくなります。攻撃者はあなたの秘密鍵が必要になります
- アプリが配信された後、クライアントにはアップデートを復号化してロードするために必要な公開鍵が含まれているため、逆エンジニアリングはまだ可能です アップデートの暗号化方法
「アップデートの暗号化方法」のセクション
__CAPGO_KEEP_0__は、標準的な暗号化方法としてEncryption V2を使用しています:Capgo uses Encryption V2 as the standard encryption method:
「Encryption V2 (現在の標準)」のセクション
RSA-4096を使用してセキュリティを強化しています- Encryption Methods
- AES-256-GCMによる認証付き暗号化
- 整合性検証を提供します
- パフォーマンスとセキュリティの向上
暗号化V1 (廃止)
「暗号化V1 (廃止)」のセクション- RSA-2048を使用してキー暗号化
- AES-256-CBCを使用してバンドル暗号化
- 現在のCLIで利用できなくなりました
- V1を使用している古いアプリはV2に移行する必要があります
暗号化の設定
「暗号化の設定」ステップ 1:暗号化キーを生成する
「ステップ 1:暗号化キーを生成する」最初に、Capgo CLI を使用して暗号化キーを生成します。
# Generate new encryption keys (creates files in current directory)npx @capgo/cli@latest key create次のようになります。
.capgo_key_v2: 秘密鍵 (この鍵を安全に保管してください!).capgo_key_v2.pub: 公開鍵 (アプリケーションで使用します)
このファイルは、コマンドを実行しているディレクトリで作成されます。
ステップ 2: Capacitor 設定にパブリック キーを保存する (必須)
ステップ 2: Capacitor 設定にパブリック キーを保存する (必須) セクションあなたは 必ず あなたのパブリック キーを Capacitor 設定に保存する必要があります。そうしないと、モバイル アプリはパッケージを復号できません。
# 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"ステップ 3: Capacitor プラットフォームを同期する (必須)
ステップ 3: Capacitor プラットフォームを同期する (必須) セクション公開鍵を保存した後、 では Capacitorプラットフォームを同期する必要があります。更新された設定をネイティブ層にコピーするためです。
# Sync the platform to copy config to nativenpx cap sync暗号化パッケージ
「暗号化パッケージ」方法 1: アップロード中の暗号化
「方法 1: アップロード中の暗号化」アップロードプロセス中に暗号化するのが最も簡単な方法です。
# Upload with automatic encryptionnpx @capgo/cli@latest bundle upload --key-v2
# For external storage, you must encrypt first (see Manual Encryption Workflow below)方法 2: 手動暗号化フロー
「方法 2: 手動暗号化フロー」より制御が可能な場合は、パッケージを手動で暗号化できます。
-
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 シークレット管理でプライベート鍵を使用
- プライベート キーをバージョン管理にコミットしない
Key Usage:
- プライベート キー: CLI によってバンドル アップロード中に暗号化に使用されます (安全に保管してください)
- パブリック キー: デバイス上で復号化に使用するためにアプリの構成に保存されます (コミットすることが安全です)
プライベート キーが不正確または確実に侵害された場合にローテートする
プライベート キーが不正確または確実に侵害されたと疑われる場合にキーペアをローテートする。定期的なカレンダー ローテーションは必要ありません。このことはネイティブ キー マイグレーションであり、OTA のみの変更ではありません。置き換えのキーペアを生成する:
-
ターミナル ウィンドウ
クリップボードにコピーする npx @capgo/cli@latest key create -
Capacitorの設定に置き換えられた公開鍵を保存してください:
ターミナルウィンドウ npx @capgo/cli@latest key save --key ./.capgo_key_v2.pub -
ネイティブリリースをSyncし、配信する: 実行
npx cap sync, すると、置き換えられた公開鍵を含む新しいネイティブアプリバージョンを配信します。 -
新しいネイティブバージョンをターゲットします: 古いネイティブバイナリを実行中のデバイスは、置き換え鍵で暗号化されたアップデートを復号できません。代わりに バージョン対象 コンテキスト: Capgoのソリューションマーケティングページ。役割: セクションまたはページヘッダー。見られる場所: page solutions/version-targeting.astro。メッセージキー `solutions_version_targeting_title` (ソリューション バージョン対象タイトル)。 | コンテキスト: Capgoのソリューションマーケティングページ。役割: 短いUIラベルまたはナビゲーションアイテム。見られる場所: page solutions/version-targeting.astro。メッセージキー `solutions_version_targeting` (ソリューション バージョン対象)。
-
置き換え鍵のバンドルを新しいネイティブバージョンに制限し、残りの艦隊はストアまたはMDMを通じてアップデートするのを待つことができます。 アップロードシークレットを切り替えます:
セキュリティのベストプラクティス
セキュリティのベストプラクティス鍵のセキュリティ
鍵のセキュリティ- 秘密鍵を 環境やチームメンバー間で共有しない
- 環境ごとに 開発、ステージング、生産環境用に異なる鍵を使用する
- 漏洩の場合に鍵を交換する: 私鍵が疑われるか確認された場合、キー ペアを置き換えましょう; 予定表の定期的なローテーションは必要ありません
- 鍵を安全に保存する 適切な鍵管理システムを使用する
Bundle Security
「Bundle Security」セクション- 常に 暗号化後にダウンロードの整合性を検証する
- 異常なダウンロードパターンやエラーを監視する すべての Bundle URL に HTTPS を使用する (モバイル アプリ用必須)
- Implement Bundle Security
- Store keys securely 暗号化失敗時の適切なエラー処理
アクセス制御
セクション「アクセス制御」- アクセスを制限 暗号化キーへのアクセスを承認された従業員のみに制限する
- ロールベースのアクセス 暗号化キーの管理操作に使用する
- 監査 暗号化キーの使用とアクセスを定期的に確認する
- 適切なバックアップと復元手順を実装する 暗号化のトラブルシューティング
トラブルシューティング
トラブルシューティング用エラー一般的な問題
一般的な問題復号エラー:
- 暗号化に使用した公開鍵と一致する秘密鍵を確認してください
- 暗号化に使用した
ivSessionKeyが正しいことを確認してください - エラーを解決するには、Encryption V2 (V1 はサポートされていないため) を使用していることを確認してください
鍵関連のエラー:
- 秘密鍵のフォーマットが正しいことを確認してください (PEM フォーマット)
- 鍵が保存/転送中に損傷していないことを確認してください
- アプリケーション設定で鍵が適切な権限を持っていることを確認してください
パフォーマンスの問題:
- 大きなバンドルは暗号化/復号に長い時間かかる
- Delta (マニフェスト) アップデートを使用してバンドルサイズを削減することを検討する
- デバイスのパフォーマンスを復号中に監視する
デバッグ コマンド
「デバッグ コマンド」のセクション暗号化の状態を確認:
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モード: 確認性と正当性を両方とも提供
- Secure Random: 暗号化に安全なランダムな数字の生成
Capgoは、次の規制に適合するアプリケーションに適しています:
- GDPR (一般データ保護規制)
- HIPAA (健康保険法)
- SOC 2 (サービス機関制御 2)
- ISO 27001 (情報セキュリティマネジメント)
パフォーマンスの考慮事項
パフォーマンスの考慮事項暗号化オーバーヘッド
暗号化オーバーヘッド- バンドルサイズ暗号化されたバンドルは、約1-2%のオーバーヘッドで大きくなります。
- 処理時間暗号化/復号化は、最小限の遅延を追加します。
- メモリ使用量: 暫定的な増加は暗号化/復号操作中
最適化のヒント
最適化のヒントのセクション- Delta (マニフェスト) アップデートを使用して暗号化されたデータの転送を最小限に抑える
- 画像をWebP形式に変換してバンドルサイズを最適化する
- JavaScriptとCSSファイルを最小化してバンドルする
- 使用されていない依存関係を削除してcode
- 古い/遅いデバイスのパフォーマンスを監視する
次のステップ
次のステップのセクション- について学ぶ カスタムストレージ 独自のインフラを使用して暗号化するには
- 詳細を確認 チャンネル コンテキスト: Capgo リリースチャンネルの機能名。ページ/エリア: Capgo のソリューション マーケティング ページ。ロール: 短い UI ラベルまたはナビゲーション アイテム。見られる場所: ソリューション/ホワイト ラベル.astro。メッセージ キー `solutions_white_label_visual_cell2_value` (ソリューション ホワイト ラベル ビジュアル セル2 値)。
- 環境間で暗号化されたバンドルを管理するには 設定 CI/CD統合
コンテキスト: ページ/エリア: Capgo ビルダー / ネイティブ クラウド ビルド製品ページ。ロール: 短い UI ラベルまたはナビゲーション アイテム。メッセージ キー `native_build_feature_ci_cd` (ネイティブ ビルド機能 Ci Cd)。
暗号化されたデプロイを自動化するには暗号化から続けて セクションのタイトル「暗号化から続けて」 セキュリティとコンプライアンスの計画を行うには、{0}に接続してください。 コンプライアンス コンプライアンスの実装詳細については、{0}を参照してください。 Capgo Security Scanner for the product workflow in Capgo Security Scanner, Capgo Security for the product workflow in Capgo Security, Capgo Trust Center for the product workflow in Capgo Trust Center, and 組織セキュリティ 組織セキュリティの実装詳細については、組織セキュリティを参照してください。