メインコンテンツにジャンプ
解決策

Capacitorのアップデート用のCode署名によるE2E暗号化

__CAPGO_KEEP_1__署名とRSA + AES暗号化を使用したアップデートの暗号化、エンタープライズ向けと高セキュリティアプリ向けに設計

記事のクレジット

マーティン・ドナディュー

執筆者

バレリア

レビュアー

ジョーダン

編集者

E2E暗号化によるCapacitorのアップデート用のCode署名

Capacitor-updater now supports end-to-end code encryption. Code signing makes sure the updates run by end users’ devices have not been tampered with and provides an extra level of protection above Capacitor-updater’s standard web-grade security.

Capacitorの署名により、エンドユーザーのデバイスで実行される更新が改ざんされていないことを確認し、__CAPGO_KEEP_2__-updaterの標準的なWeb向けセキュリティの上位レベルの保護を提供

By default, Capgo’s security model is similar to that of web hosting providers. Capgo stores updates __CAPGO_KEEP_0__のセキュリティモデルは、Webホスティングプロバイダーのものと似ています。 __CAPGO_KEEP_1__は更新を

Capgo scores an A+ on SSL Labs’ HTTPS test

Capgo’s default security scores an A+ on SSL Labs’ HTTPS test (また、開発者のコンピューターから更新を公開する場合も、HTTPSを使用します。__CAPGO_KEEP_0__はSSL LabsのHTTPSテストでA+を獲得

Like best-in-class web hosts, Capgo uses HTTPS to protect the privacy and integrity of network connections between the server and end users’ devices. This is an excellent level of security that works well both for the web and Ionic apps that use Capgo.

https://www.ssllabs.com、2022年11月

Capgoの Capgo と多くのウェブホスト共通のもう一つの事項は、AWS、GCP、または他の人気のクラウドプロバイダーから低レベルのクラウドインフラを実行していることです。クラウドプロバイダーと Capgo または他のウェブホストが運営するハードウェアとソフトウェアはクラウドサプライチェーンの一部です。

クラウドサプライチェーンとそのセキュリティモデルは、多くのウェブサイトやアプリケーションで機能しています。クラウドプロバイダーを使用するウェブ開発者は、そのプロバイダーに信頼を置き、アップロードしたファイルが実行または提供される前に改ざんされていないファイルであることを期待しています。クラウドプロバイダーは、インフラストラクチャをセキュアに保つために頑張っています。

しかし、明らかにハードウェアとソフトウェアの脆弱性が発見されます。クラウドプロバイダーは、時期の良いスケジュールで脆弱性を修正し、悪意のあるソフトウェア(例えば、GoogleのSLSA)を予防し、防御の層を構築し、実際にはクラウドインフラは、多くのウェブサイトやアプリケーションのセキュリティニーズを満たしています。しかし、イオニックアプリには、ウェブ上の最高セキュリティニーズを持つ __CAPGO_KEEP_0__ JSアプリケーションが含まれます。このようなアプリケーションには、 __CAPGO_KEEP_1__ のエンドツーヘンド __CAPGO_KEEP_2__ を使用して、 __CAPGO_KEEP_0__ アップデートの標準プロトコルを実装しました。 __CAPGO_KEEP_0__ のエンドツーヘンド __CAPGO_KEEP_1__ は、 __CAPGO_KEEP_0__ の __CAPGO_KEEP_1__ を使用して、 __CAPGO_KEEP_0__ のエンドツーヘンド __CAPGO_KEEP_1__ を実装しました。この __CAPGO_KEEP_0__ のエンドツーヘンド __CAPGO_KEEP_1__ は、公開鍵暗号学を使用して、 __CAPGO_KEEP_2__ アプリケーション開発者の __CAPGO_KEEP_0__ のオリジナルのアップデートのみを実行するように、エンドユーザーのデバイスを確実に実行します。), and build layers of defense in depth, and in practice, cloud infrastructure has shown to meet most websites and apps’ security needs. However, some Ionic apps include compromised cloud infrastructure in their threat models. For these Capacitor JS apps with the highest security requirements above the web, we built end-to-end code signing in to Capgo and the Capgo’s end-to-end __CAPGO_KEEP_1__ signing uses public-key cryptography to ensure end users’ devices run only unmodified, original updates from the __CAPGO_KEEP_2__ app developer..

code’s end-to-end Capgo signing uses public-key cryptography to ensure end users’ devices run only unmodified, original updates from the __CAPGO_KEEP_2__ app developer.

Capgo’s end-to-end code signing uses public-key cryptography to ensure end users’ devices run only unmodified, original updates from the Capacitor app developer.

「エンドツーエンド」セキュリティは、開発者がアップデートを公開した時点から、エンドユーザーのデバイスがアップデートを受信して実行するまでの流れをカバーすることを意味します。「Code 署名」は、暗号化と秘密のプライベートキーを使用して「code」を「署名」し、後で信頼されたパブリックキーを使用して署名を検証することを意味します。

ここでは、簡単な*スキーマを使用して、どのように機能するかを説明します。

Capgo 暗号化スキーマ

  • 実用上は複雑ですが、暗号化は難しい

定義:

  • AES: Advanced Encryption Standard、シームトリック暗号化アルゴリズム、1つのキーで暗号化と復号が可能
  • RSA: Rivest–Shamir–Adleman、非対称暗号化アルゴリズム、2つのキーが使用される: パブリックキーとプライベートキー
  • シフラー: 暗号化されたデータ
  • セッションキー: AESキーでデータを暗号化および復号するために使用される
  • チェックサム: ファイルのハッシュ
  • 署名: チェックサムがプライベートのRSAキーで暗号化されたもの。パブリックのRSAキーを使用して検証できる

アップデートをAESアルゴリズムで暗号化します。アップロードごとにランダムなAESキーが生成され、AESキーとチェックサム(署名)が開発者のプライベートRSAキーで暗号化されます。開発者のパブリックRSAキーを使用して、アプリでAESキーと署名(チェックサムに戻す)を復号します。後で、復号されたAESキーを使用してアップデートを復号し、復号されたアップデートのチェックサムを計算し、復号された署名と比較します。

RSAを使用して大量のデータを暗号化することはできないため、2つの異なる暗号化アルゴリズムを使用しています。 AESはアップデートを暗号化し、RSAはAESキーやチェックサムを暗号化します。

Capgoがバンドルの内容を読むことができなくなるため、Capgoはこの強力なセキュリティモデルを使用する多くの企業顧客と同じです。

アップデート暗号化V2 2024-08-27:

  • アプリ内に保存されているキータイプを変更しました。これは、暗号化に使用されていた公開鍵を暗号化に使用されていた秘密鍵から推測するのを防ぐために行われました。現在、アプリは暗号化に使用される公開鍵を保存しています。
  • チェックサムをCRC32アルゴリズムからSHA256アルゴリズムに変更しました。また、バンドルを署名しました。 暗号化V2が有効になっている場合、更新には有効な署名が必要です。これはプラグインによって厳格に強制されます。暗号化V2が有効になっている場合、有効な署名を強制します。 これらの3つの変更は、コミュニティのメンバーから行われたセキュリティ分析の結果です。これらはアップデート中の暗号攻撃を防ぐために行われました。
  • 暗号化V1を使用している場合は、V2にマイグレーションして新しいセキュリティ機能を利用することをお勧めします。マイグレーション指示に従ってください。

エンドツーヨー__CAPGO_KEEP_0__署名により、__CAPGO_KEEP_1__は「信頼できない」クラウドインフラストラクチャになります。__CAPGO_KEEP_2__のクラウドプロバイダーまたは__CAPGO_KEEP_3__自身が__CAPGO_KEEP_4__署名のアップデートを変更した場合、エンドユーザーのデバイスはアップデートを拒否し、既存の信頼できるアップデートを実行します。 アップデート暗号化V2 2024-08-27:.

With end-to-end code signing, Capgo becomes a “trustless” cloud infrastructure. If one of Capgo’s cloud providers or even Capgo itself were to modify a code-signed update, end users’ devices would reject that update and run the previous, trusted update that’s already on the device.

HTTPS のレベルでは多くのアプリケーションにとって十分ですが、ある程度の企業では、エンドツーエンドの code 署名の追加レベルのセキュリティが魅力的なものです。 これらの企業のいくつかは、永久的な高額の取引を発行する金融アプリケーションを開発しています。 また、CISO には、脅威モデルに含まれるコンプロミットされたクラウドインフラストラクチャがあります。 これらのケースを対象として、 code 署名を Capgo に組み込んで作成しました。 さらに、より高度なセキュリティニーズを持つ企業から、より多くの情報を聞くことを期待しています。

エンタープライズ用のスタートガイド

セキュリティに深く関心を持つ大企業やプロジェクトにとって、 code 署名を簡単に設定および維持できるようにしたいと考えています。 そのため、以下の機能を提供しています。

  • クイックな証明書の設定および構成
  • code 署名の開発サーバーへのサポート、 Capgo と開発ビルドの両方
  • 更新ごとに code 署名の生産

Capgo code 署名はすべての顧客に利用可能です。 ご利用を開始するには、以下の手順に従ってください。 セットアップの手順.

クレジット

__CAPGO_KEEP_0__ に多大な感謝を表します。 Ionicこの記事は、 この記事 Chat-GPT-3で書き直し、適応

Keep going from E2E Encryption for Capacitor Updater via Code Signing

__CAPGO_KEEP_1__署名 E2E Encryption for Capacitor Updater via Code Signing E2E暗号化の継続 __CAPGO_KEEP_0__ アップデーターへの E2E暗号化の継続 __CAPGO_KEEP_1__署名 セキュリティとコンプライアンスの計画に E2E暗号化の継続を使用 E2E暗号化の継続 Capgo Security Scanner for the product workflow in Capgo Security Scanner, Capgo セキュリティ Capgo セキュリティの製品ワークフローについて Capgo 信頼の中心 Capgo 信頼の中心の製品ワークフローについて

Capacitorアプリのライブアップデート

When a web-layer bug is live, ship the fix through Capgo instead of waiting days for app store approval. Users get the update in the background while native changes stay in the normal review path.

ウェブ層のバグが生じたときは、__CAPGO_KEEP_0__を通して修正を配信し、App Storeの承認待ちの日数を待たずしてください。ユーザーはバックグラウンドでアップデートを受け取り、ネイティブの変更は通常のレビュー経路を通じます。

コンテキスト: ホームページマーケティングコピー。役割: ウェブサイトコピー文。見つかった場所: コンポーネント HumanSupport.astro、コンポーネント pricing/Plans.astro。メッセージキー `home_hero_human_support` (ホームヒーローワンマンサポート)。

Get Started Now

Capgo gives you the best insights you need to create a truly professional mobile app.