Google Play の APK の置き換えが一部のセキュリティ専門家を怖がらせる理由

Google Play はまもなく開発者に APK の代わりに App Bundle をアップロードすることを強制する予定で、その要件に関して不快なセキュリティ上の疑問が生じます。

昨年の11月、 グーグルが発表 開発者は、APK の代わりに Android App Bundle (AAB) 形式を使用して、Play ストアで新しいアプリを公開する必要があります。 つい先日、Google は開発者にこの今後の要件を思い出させ、激しい論争を巻き起こしました。 Google が APK を削除し、サイドローディングを排除し、サードパーティのアプリ ストアを妨害していると信じているユーザーからの意見です。 何でも。

確かに、Android App Bundle は、ユーザーとしても開発者としても、慣れ親しんだ従来の APK 形式とは大きく異なります。 App Bundle を使用することには多くの利点がありますが、App Bundle を作成するには、一部の開発者やセキュリティ専門家が当然のことながら懸念している重要な側面が 1 つあります。

この記事では、Android App Bundle への切り替えに関して見られた批判といくつかの提案された解決策を取り上げ、これらの問題に対する Google の提案された解決策についても説明します。

背景

ただし、その前に、一般的に Android でのアプリ配布がどのように機能するかについて少し説明する必要があります。 アプリ署名と App Bundle がどのように機能するかをすでに知っている場合は、この部分をスキップできます。

APK

ほとんどの場合、Android 上のアプリは APK ファイル内で配布されます。 APK には、アプリのすべてのコードとリソースに加えて、署名マニフェストなどのいくつかのセキュリティ機能が含まれています。 APK がインストールされると、基本的には特定のフォルダーにコピーされ、インストールされているアプリの内部データベースに追加されるだけです。

APK ファイルの内容は、.zip などのアーカイブ ファイル形式と同様に探索できます。

署名

インストール中に、アプリの署名も検証され、有効であることが確認されます。 アプリがすでにインストールされている場合、Android は新しいアプリの署名をすでにインストールされているものと照合してチェックします。 署名が有効でない場合、または一致しない場合、Android はアプリのインストールを拒否します。

この署名チェックは Android のセキュリティの重要な部分です。 インストールしているアプリが有効であり、少なくともすでにインストールしたアプリと同じソースからのものであることを確認します。 たとえば、次のようにインストールするとします。 Play ストアからのロック画面ウィジェット アプリ、署名したのは私であり、本物であることは十分に確信できます。 その後、怪しいサードパーティのサイトからロックスクリーン ウィジェットのアップデートをインストールしようとして失敗した場合、誰かがその APK を改ざんして、おそらくマルウェアを追加したことがわかります。

アプリの署名に使用されるキーは(理想的には) 一度もない 公開されました。 これは秘密キーとして知られています。 次に、秘密キーを使用して、アプリの署名に示される公開キーと呼ばれるキーを生成します。 これは、Android とアプリ ストアがアプリの有効性を確認するために使用するものです。 秘密鍵を公開せずに公開鍵を生成する方法については、多くの暗号化計算が必要になるため、詳しくは説明しません。 さらに詳しく知りたい場合は、チェックしてください APK の署名に関する Google のドキュメント または、一方向の数学関数について調べてください。

独自のアプリ署名キーを管理する場合のアプリへの署名。 ソース: グーグル.

アプリ署名のもう 1 つの機能は、一致する署名を持つアプリのみにアクセス許可を制限できることです。 Android は多くの機能に対してこれを内部で実行し、フレームワークと同じキーで署名されたアプリのみが特定の機能にアクセスできます。

アプリバンドル

APK と署名の概要を説明したので、次に App Bundle について話しましょう。 ここで APK リソースが登場します。 リソースとは、レイアウト、画像、オーディオなどです。 基本的に、それらはコード以外のものです。 さまざまな表示構成やさまざまな言語をより適切にサポートするために、開発者は、デバイスや言語に応じて使用される同じリソースの複数のバージョンを作成できます。

ただし、APK では、どれを使用するかに関係なく、これらのリソースがすべて存在します。 そして、それらはスペースを占めます。 アプリの複雑さによっては、多くのデバイスで未使用のリソースが大量に存在する可能性があります。 これを解決するために App Bundle が作られました。 開発者は APK と同じように App Bundle を生成でき、その App Bundle は APK と同様に Play ストアにアップロードできます。

1 つの基本モジュール、2 つの動的機能モジュール、および 2 つのアセット パックを示すサンプル Android アプリ バンドルのコンテンツ。 出典: Google。

次に、Google はその App Bundle を使用して、さまざまなデバイス構成に合わせてさまざまな APK を大量に生成します。 各 App Bundle には、その構成に必要なリソースのみが含まれています。 ユーザーがそのアプリをダウンロードしようとすると、設定に一致する生成された APK が提供されます。 これにより、アプリのダウンロードとインストールの両方のサイズが削減され、帯域幅とストレージ容量が節約されます。

動的配信により、デバイスにインストールされるリソースがどのように減少するかを示す図。 出典: Google。

もちろん、デバイスに固有の APK をインストールするということは、それを別のデバイスにコピーして問題なくインストールすることが困難になることを意味します。 あなたの視点によっては、これは良いことにも悪いことにもなります。 一方で、ユーザーはアプリ全体を持っていないため、著作権侵害がより困難になります。 一方で、同じ理由で、アプリを合法的にアーカイブすることがより困難になります。

アプリの署名

Android App Bundle は APK ではないため、AAB ファイルを開いてデバイスに直接インストールすることはできません。 Play ストアにアップロードすると、Google はバンドルを使用して別の (署名されていない) APK ファイルを生成します。 これらの APK は、インストールする前に署名する必要があります。

生成された APK に署名して再アップロードするよう開発者に依頼するのではなく、Google が署名自体を管理します。 Play ストアは、作成した新しいキーを使用するか、署名に使用するキーを開発者に要求します。 APK。 どちらのオプションを選択しても、Google は開発者の公開署名を処理し、アップロードを提供します。 鍵。 Google は内部検証にアップロード キーを使用し、開発者がアップロードしている App Bundle (場合によっては APK) が正しいものであることを確認します。

Play アプリ署名を使用してアプリに署名します。 ソース: グーグル

アップロード キーが漏洩または紛失した場合、開発者は新しいキーをリクエストできますが、アプリの配布に使用される署名キーは変更されません。

アプリ署名には他にもたくさんの機能がありますが、これがこの記事に関連する内容です。 必要に応じて、App Bundle と App Signing について詳しく読むことができます。 Wojtek Kaliciński によるこの Medium 記事.

批判

理論的にも実際にも、App Bundle は非常に優れています。 ユーザーが何もすることなく、データ使用量とインストール サイズが削減されます。 しかし、その実装方法のため、過去数カ月間に一部の開発者やセキュリティ研究者が懸念を表明していた。 これらの懸念を要約する前に、以下に書かれていることのほとんどが直接的なものであることを言っておきたいと思います。 一連の記事に基づいて 開発者Mark Murphy氏による コモンズウェア。 彼の記事は開発者の視点からの詳細と批評を提供しているため、ぜひチェックしてください。

安全

従来の配布モデルでは、開発者は APK の署名に使用するキーを非公開に保ちます。 一般公開されることはなく、許可されたユーザーのみがアクセスできるようにする必要があります。 これにより、それらのユーザーだけが有効な APK を生成できるようになります。

ただし、Play ストアで App Bundle を使用する場合、ユーザーが受け取る APK に署名するキーを管理するのは Google です。 の デフォルト Google Play にアップロードされた新しいアプリの動作 2021年8月より Google が独自の配布キーを作成し、開発者には非公開にすることです。

2021 年 8 月から Google Play デベロッパー向けに変更される内容の概要。 出典: Google

開発者が提出しています 新しいアプリ デフォルトでは Google が秘密鍵を管理しますが、開発者は更新を 既存のアプリ APK を引き続き使用できます または Google が新規ユーザーに使用する新しいキーを生成することで、AAB 配布に切り替えることができます。 既存のアプリ 必要ありません APK 配布から Android App Bundle に切り替えることもできますが、そのオプションは必要に応じて利用できます。 いくつかの反発の後、Google それも可能にしてくれるだろう 新規アプリと既存アプリの両方で、Google が署名するための独自の秘密鍵をアップロードします。 これらの状況はいずれも理想的ではありません。何があっても、ユーザーが望む場合、Google は秘密キーにアクセスできるようになります。 Android アプリ バンドルを使用します (8 月以降に新しいアプリを提出したい場合、開発者には選択の余地がありません) 2021!)

Google はセキュリティを非常に重視していると確信していますが、データ侵害を免れる企業は地球上にありません。 Google が配布用アプリの署名に使用するキーがこれらの侵害のいずれかにある場合、誰でもアプリのバージョンに署名し、あなたが署名したように見せることができます。 そして、一部の開発者やセキュリティ専門家はこの可能性を快く思っていません。 確かに、その可能性は非常にわずかですが、情報セキュリティコミュニティの一部の人は、その可能性がまったくあるという事実を恐れています。

開発者が Android APK に署名するということは、誰でも Google Play から APK を検証できることを意味し、盲目的な信頼は必要ありません。 検証可能なセキュリティを提供するエレガントなデザインです。 App Bundle はこれを覆し、ベンダー ロックインを促進するように構造化されているように見えます。 開発者によって署名された小さな APK を提供する代替の技術的アプローチは数多くありますが、これらは Play を優先しません。 たとえば、すべての APK バリアントは開発者によって生成および署名され、任意のアプリ ストアにアップロードされます。

秘密鍵の安全な保管場所を Google と個々の開発者の手に委ねた方が良いかどうかについては、確かに議論が必要です。 しかし、それらの開発者は(おそらく)通常、キーに中央リポジトリを使用していません。 開発者に Play アプリ署名の使用を強制することで、悪意のある攻撃者は Google のセキュリティを 1 回突破するだけで、数千または数百万のキーを取得できます。

価値があるものとして、Google が自社のインフラストラクチャ上で署名キーをどのように保護しているかについて次のように述べています。

[blockquote author="Wojtek Kaliciński、Google の Android 開発者擁護者"]Play アプリ署名を使用すると、Google が独自のキーを保存するために使用するのと同じインフラストラクチャにキーが保存されます。

キーへのアクセスは、すべての操作に対する厳格な ACL と改ざん明示的な監査証跡によって管理されます。

開発者のキーで生成および署名されたすべてのアーティファクトは、検査/証明のために Google Play Console で利用できるようになります。

さらに、キーの紛失を防ぐために、プライマリ ストレージのバックアップを非常に頻繁に作成します。 これらのバックアップは強力に暗号化されており、これらのバックアップからの復元を定期的にテストしています。

Google の技術インフラストラクチャについて知りたい場合は、次の記事をお読みください。 Google Cloud セキュリティ ホワイトペーパー.[/blockquote]

それは素晴らしいことのように思えますが、紛失や盗難の可能性は依然としてあります。 そして、監査証跡は将来の攻撃を防ぐのにのみ役立ちます。 侵害されたキーは返されません。

不正な変更の可能性

Google の App Bundle の設定方法に関する大きな問題の 1 つは、アプリに不正な変更が追加される可能性があることです。 Google は各 APK を手動で構築する必要があるため、App Bundle から APK を抽出するプロセスには本質的に変更が伴います。 その間 Googleは、コードの挿入や変更は行わず、今後も行わないと約束している、App Bundle プロセスの問題は、それを行う権限があることです。

Google と同じ立場にある企業が実行できる権限の例をいくつか示します。

人々が政府の監視のリスクなしに通信するために使用する安全なメッセージング アプリがあるとします。 これは、権威主義的な政府に抗議する人々や、単にプライバシーを維持したいだけの人にとっても、非常に便利なツールとなる可能性があります。 政府は、アプリのユーザーが何を言っているかを確認する能力を必要としており、アプリのコードに監視用のバックドアを追加するようGoogleに強制しようとする可能性がある。

この例はもう少し無害ですが、一部の人にとっては懸念されるものでもあります。 1 日に数百万回ダウンロードされるアプリがあるとします。しかし、そのアプリには広告や分析機能がまったく含まれていないとします。 これは巨大なデータ ソースであり、そのデータにアクセスする方法はありません。 Google は広告会社なので、そのデータにアクセスしたいと考えるかもしれません。

アプリ配布の従来の APK モデルでは、Google は署名を変更せずにアプリを変更することはできません。 Google が署名を変更すると、特に人気のあるアプリで、アップデートがインストールされなくなるため、人々はそれに気づくでしょう。 しかし、App Bundle と App Signing を使用すると、Google はアプリを配布する前に、サイレントに独自のコードをアプリに挿入できるようになります。 Google が署名キーを所有するため、署名は変更されません。

従来の APK 配布スキームでは、更新された APK ファイルは、元の APK の署名に使用されたのと同じキーで署名される必要があります。 このキーは、理想的には個々の開発者のみが保持します。 出典: ザカリー・ワンダー。

明確に言うと、 これらの例は信じられないほど起こりません. Google は単純に 問題のある市場から完全に撤退する、適応するのではなく。 しかし、可能性は低いとはいえ、まだ可能性はあります。 企業が何かが起こらないと約束したからといって、それを保証するものではありません。

コードの透明性

こうした懸念を聞いた Google は今週、 と呼ばれる新機能を導入しました。 アプリバンドルのコードの透明性. コードの透明性により、開発者は基本的に、アプリに同梱されてユーザーに提供される 2 番目の署名を作成できます。 この追加の署名は、開発者のみがアクセスできる別の秘密キーから作成する必要があります。 ただし、この方法にはいくつかの制限があります。

Android App Bundle のコード透過性の仕組み。 出典: Google

コードの透明性はコードのみを対象とします。 これは名前を考えると明白に思えるかもしれませんが、ユーザーがリソース、マニフェスト、または DEX ファイルやネイティブ ライブラリ以外のものを検証できないことも意味します。 通常、コード以外のファイルに対する悪意のある変更の影響ははるかに小さいですが、それでもアプリのセキュリティには穴があります。

コードの透明性に関するもう 1 つの問題は、固有の検証がないことです。 一つには、 それはオプション機能ですそのため、開発者はアップロードする新しい APK ごとに忘れずにこれを含める必要があります。 現時点では、コマンドラインから、次のバージョンを使用して実行する必要があります。 bundletool これは Android Studio には付属していません。 開発者がそれを含めた場合でも、Android には、コードの透明性マニフェストがアプリ内のコードと一致することを確認するための検証機能が組み込まれていません。

マニフェストと開発者が提供できる公開キーを比較するか、検証のために APK を開発者に送信して、エンド ユーザーが自分で確認する必要があります。

コードの透明性では、アプリ内のコードが変更されていないことを確認できますが、アプリの他の部分についてはいかなる種類の検証も含まれません。 また、プロセスには本質的な信頼もありません。 Google を信頼していないのであれば、おそらく独自に検証する義務があると主張することもできますが、なぜそうしなければならないのでしょうか?

コードの透明性機能には他にも次のような問題があります。 指摘した マーク・マーフィー著 コモンズウェア. この機能のより詳細な分析については、彼の記事を読むことをお勧めします。

開発者の利便性と選択肢

一部の開発者が App Bundle を問題視する 3 つ目の (この記事の最後の) 理由は、利便性と選択肢が減少することです。

Google が App Bundle の要求を開始した後、開発者が Play ストアで新しいアプリを作成し、選択した場合 Google に署名キーの管理を許可するデフォルトのオプションでは、Google はその署名にアクセスできなくなります 鍵。 同じ開発者がそのアプリを別のアプリ ストアで配布したい場合は、Google のものとは一致しない独自のキーを使用する必要があります。

つまり、ユーザーは Google Play またはサードパーティのソースからインストールして更新する必要があります。 ソースを変更したい場合は、アプリを完全にアンインストールし、データが失われる可能性がありますので、再インストールする必要があります。 APKアグリゲータのようなもの APKミラー その場合、同じアプリに対する複数の公式署名も処理する必要があります。 (技術的には、アプリ署名を使用すると新しいユーザー向けに、より安全な新しいキーを作成できるため、これを行う必要がありますが、全員がアクセスできるようになると、そのユーザーと他のサイトにとってはさらに悪いことになります) もっている それをするために。)

この問題に対する Google の対応は、Play Console の App Bundle エクスプローラーまたはアーティファクト エクスプローラーを使用して、アップロードされたバンドルから結果として得られる APK をダウンロードすることです。 コードの透明性と同様に、これも完全な解決策ではありません。 Play Console からダウンロードされた APK は、さまざまなデバイス プロファイルに分割されます。 Play Console は 1 つのアプリの 1 つのバージョンに対して複数の APK のアップロードをサポートしていますが、他の多くの配信チャネルではサポートされていません。

したがって、開発者が複数のストアを管理している場合、App Bundle を使用する利点の多くが失われ、配布がより困難になります。 というニュースで Windows 11Android アプリのサポートを取得する Amazon Appstore のおかげで、App Bundle の要件により、開発者が Amazon で配布する意欲がなくなるのではないかと考える人もいます。 もちろん、Google の主な関心事は自社のアプリ ストアですが、まさにそれが重要です 競合他社との争いに巻き込まれた 彼らを導いて作る 小さな、友好的な変化 サードパーティのアプリ ストアが Android でどのように動作するかについて。

複数のストアに関連するいくつかの問題は、アプリの相互接続性と迅速なテストです。

アプリの相互接続から始めましょう。 ペイウォールの背後で機能をロックするアプリをダウンロードしたことがありますか? ほぼ間違いなく。 一部の開発者はその機能をアプリ内購入の背後に置いていますが、別の有料アプリを作成することを選択する開発者もいます。 そのアドオン アプリがインストールされると、メイン アプリの機能のロックが解除されます。

しかし、誰かが海賊版ソースからアドオンをインストールすることを妨げるものは何でしょうか? 開発者には多くのオプションがありますが、少なくとも 1 つは署名で保護されたアクセス許可の使用を必要とします。 メインアプリが署名で保護されたアクセス許可を宣言するとします。 次に、アドオン アプリは、そのアクセス許可を使用することを宣言します。 理想的には、アドオン アプリには、インターネットに接続してユーザーが正当であることを確認する、ある種のライセンス検証機能も組み込まれていることが望ましいです。

両方のアプリの署名が同じ場合、Android はアドオン アプリにアクセス許可を付与し、著作権侵害保護チェックに合格します。 アドオン アプリに正しい署名がない場合、権限は付与されず、検証は失敗します。

従来の APK 配布モデルでは、ユーザーは正規のソースからいずれかのアプリを入手すれば、それで終わりです。 現在のデフォルトの App Bundle モデルでは、メイン アプリとアドオン アプリの署名は一致しません。 Google はアプリごとに一意のキーを作成する予定です。 開発者はいつでも署名で保護されたアクセス許可を取り除き、直接署名ハッシュ検証を使用することもできますが、安全性は大幅に低下します。

そして、連射テストがあります。 ユーザーはアプリの問題について常に開発者にメールを送信します。 これらの問題は、問題を再現し、問題を見つけて修正し、新しいバージョンをアップロードするという簡単な修正で済む場合があります。 しかし、そうでない場合もあります。 開発者が問題を再現できない場合があります。 問題だと思われるものを修正することはできますが、その後はユーザーがテストする必要があります。 ここで、ユーザーが Google Play を通じてアプリをインストールしたと仮定します。

APK モデルを使用すると、開発者は一部のコードを変更し、新しい APK を構築して署名し、それをテストのためにユーザーに送信できます。 テスト APK の署名はユーザーがインストールしたものと一致するため、更新、テスト、レポートのプロセスは簡単です。 App Bundle の場合、これは崩れます。 Google はユーザーが最初にインストールした APK に署名するため、開発者が送信した APK の署名とは一致しません。 このアプリが App Bundle の期限後に公開された場合、開発者は Google が使用するキーにアクセスすることさえできなくなります。 テストするには、ユーザーはテスト バージョンをインストールする前に現在のアプリをアンインストールする必要があります。

ここにはたくさんの問題があります。 まず、開発者側とユーザー側の両方に不便があります。 修正をテストするためだけにアプリをアンインストールしなければならないのは面白くありません。 そして、問題が解決したらどうなるでしょうか? 開発者が行った変更によるものでしょうか、それともユーザーがアプリのデータを効果的に消去したためでしょうか? Play ストアには内部テストがあり、開発者が迅速なビルドと配布を行えるようにすることになっていますが、ユーザーは最初にリリース バージョンをアンインストールする必要があります。 それは実際には何も解決しません。

これがすべてナンセンスな仮説に聞こえるかもしれないので、ここで、Google に秘密鍵を生成させた場合にこれらの問題が発生する実際の開発者の例を紹介します。João Dias です。 彼は、Tasker と、AutoApps スイートを含む多数のプラグイン アプリの開発者です。 新しい App Bundle 要件により、少なくとも新しいアプリの場合、João 氏の開発サイクルはさらに困難になる可能性があります。 テスト バージョンを直接送信するのはあまり便利ではありません。 ライセンスの検証は効果が低くなります。

João Dias は、共有ライセンスに依存する多くのアプリを管理しています。 2 つの署名キーが関係している場合、彼にとって事態は非常に複雑になる可能性があります。

これは少し特殊なケースのように聞こえるかもしれませんが、ジョアン氏が小規模な開発者であるわけではなく、おそらく彼は一人ではありません。 Play ストアには、署名検証に依存して不正ユーザーを検出するアプリが多数あります。

もちろん、開発者が独自の署名鍵を Google にアップロードする新しいオプションにより、これらの問題は少なくともある程度は軽減されます。 ただし、開発者は各アプリのオプションを有効にするにはオプトインする必要があります。 そうしないと、相互接続が失敗し、迅速なサポートを行うには、バンドルを Google にアップロードし、APK が生成されるのを待ってから、正しいものをユーザーに送信する必要があります。 さらに、それは依然として秘密鍵を共有する必要があることを意味し、これは私たちが以前に議論した懸念に戻ります。

ソリューション

App Bundle の要件が数か月前に公表されたことを考えると、これは古い問題であるため、その間にかなりの数の解決策が提案されてきました。

解決策の 1 つは、Play アプリ署名の必要性を回避することです。 App Bundle を生成し、Google がそれを APK に処理して署名する代わりに、その処理を Android Studio で行うこともできます。 その後、開発者は、Google が生成した構成ごとに、ローカルで署名された APK が含まれた ZIP をアップロードするだけで済みます。

このソリューションがあれば、Google は開発者のキーにアクセスする必要がまったくなくなります。 このプロセスは従来の APK 配布モデルと非常に似ていますが、1 つだけではなく複数のより小さい APK が必要になります。

独自のアップロード キーを使用して Android Studio でアプリに署名します。 ソース: グーグル

もう 1 つの解決策は、App Bundle の使用を必要とせず、開発者がローカルで署名された APK をアップロードできるようにすることです。 App Bundle は 多くの場合、ユーザーのエクスペリエンスは向上しますが、一部のアプリは、最小サイズで構成ごとに分割しても実際にはメリットがありません 削減。

Google がこれらのソリューションの両方を実装した場合、App Bundle を使用したい開発者は、これらのソリューションを実装する必要がなくなります。 Google に署名する必要がなくなり、この形式からあまり恩恵を受けないアプリの開発者は、この形式を使用する必要がなくなります。 全て。

Googleの対応

自己署名

App Bundle の署名を開発者に許可することについて最初に質問されたとき、Google の返答は非常に控えめなものでした。

[blockquote author=""]それで、来年の新しいアプリがアプリ バンドルを使用するための要件について簡単に説明しましたが、これに伴う 1 つのことは、拡張で Play アプリ署名が必要になるということです。 したがって、開発者は Play でアプリ署名キーを生成するか、独自のキーを Play にアップロードする必要があります。これがアプリ バンドルの前提条件であるためです。 開発者からは、それをやりたくない人もいると聞いています。 彼らは、Play によってキーが管理されることを望んでいません。 また、アプリバンドルを使用したい場合、現時点ではそれは不可能です。

しかし、私たちはそのフィードバックを聞いており、今は何も話すことができません。発表できることは何もありませんが、これらの懸念の一部を軽減する方法を検討しています。 バンドルをアップロードする際に、必ずしも独自のキーを保持できるようにする必要はありません。 私たちはさまざまなオプションを検討しています。 現時点では発表できる解決策がありません。 しかし、要件が満たされるまではまだ約 1 年あるので、開発者に対してこの問題に対する答えが得られることを非常に期待しています。[/blockquote]

それは昨年の11月下旬のことでしたが、何も起こらなかったようです。 開催まであと数か月しかないのに、 App Bundle 要件が発効、開発者が独自のアプリの署名を処理する方法はまだありません。 Google は現在、次のことを可能にしていますが、 アップロード 新しいアプリと既存のアプリの両方に独自のキーを使用しても、署名部分は開発者の手から解放されます。

コードの変更

Google は、Play ストアがアプリのコードを変更しないことを明確に約束していますが、約束は保証ではありません。 App Bundle と App Signing を使用すると、Google がアップロードされたアプリを配布前に変更することを妨げる技術的な制限は確認されていません。

Googleが導入した コードの透明性 これはオプションの機能であり、多少は役立ちますが、前に説明したように、かなりの問題があります。

自作バンドル

開発者が独自のアプリの「バンドル」(分割された APK を含む ZIP)を作成できるようにすることについて Google が尋ねられたとき、基本的には「そんなつもりはない」という答えでした。

おそらく質問に記載されているとおりではありません。これにより、開発者にとって公開プロセスがさらに困難になるため、実際には公開プロセスをよりシンプルかつ安全にしたいと考えています。 ただし、繰り返しになりますが、このフィードバックを聞いたので、これを可能にする方法を検討する予定ですが、ここで説明した方法ではない可能性があります。

興味深いのは、Google の正当化は、出版がより複雑になるということのようです。 ただし、Google は Android Studio の APK 生成ダイアログの一部としてプロセスを自動化する可能性があります。 さらに、問題のアプリが複数のストアで配布されている場合、実際には 開発者が複数の署名キーや苦情を管理する必要がなくなるため、公開プロセスが簡素化されます。 ユーザー。

そして、コードの透明性の導入により、結局のところ、複雑さはまったく問題ではなくなったようです。 コードの透明性では、少なくとも現時点では、開発者はコマンドライン ツールを使用し、ユーザーは提供されるアプリの正当性を明示的に検証する必要があります。 これはバンドルを自分で作成するプロセスよりも複雑ですが、なぜこれが Google が好むソリューションなのかは不明です。

今後

App Bundle は、8 月 1 日以降、Google Play に提出される新しいアプリに必要な配布形式になります。 Google は、開発者やセキュリティ専門家によって提起された問題のほとんどに少なくともある程度対処しましたが、その対応にはまだ多くの点が残されています。 次世代の配布形式としての App Bundle には明らかな利点が数多くありますが、アプリ署名の部分的または全体的な制御を Google に与えることには常に懸念が残ります。

Googleの対応と努力は確かに評価されているが、マーク・マーフィーのように、まだ十分ではないと感じている人もいる。 自作バンドルなどのソリューションは実装されておらず、Android アプリ バンドルの期限が迫っているため 近づいているが、Google Play の開発者がアプリを完全にコントロールできる期間は長くはないようだ より長いです。


今日の午後遅くに Twitter スペースで Android App Bundle 要件の影響についてお話しますので、ぜひご参加ください。