web-dev-qa-db-ja.com

GoogleがApp Signingサービスを介して署名することからGoogleを停止するのは何ですか?

フォローアップまで この質問 は、Googleが署名して配布するアプリケーションを変更するのを停止するのを把握しようとしています。 APKまたはAPPバンドルを配布するかどうかにかかわらず、アプリの署名サービスは私たちが持っている署名を取り除き、グーグルはそれが配布するAPKに署名します。アプリバンドルの場合、これはいくつかのAPK、bundletoolが生成されたものに似ています。

しかし、APKはコンパイルされたコードとリソースを備えたZIPアーカイブだけなので、コードの追加や交換など、署名の前に適合するものが表示されるように、Googleが変更できるようです。

Googleは述べました

あなたの知識と承認なしにあなたのアプリケーションコードを変更して配布しません

と:

前述のように、Playはあなたの知識と承認なしにあなたのアプリケーションの機能を変更しません。

特に、Googleは「しない」と「じゃない」とは対照的に、「できません」と「できません」を使用しました。実際、同じ投稿では、次のことがわかります。

アプリのバンドルとしてアップロードされたアプリの場合、私たちは呼び出し元のスタンプを導入することによってこのセキュリティを改善します。このソースメタデータは、bundletoolでアプリのマニフェストに挿入されます。

そのため、メタデータにはあるが、少なくとも1つの修正を知っています。

Plus、 Amazon AppStore for Android]を再署名する前に変更されます

Amazon DRMを適用するかどうかにかかわらず、AmazonはAmazon AppStoreクライアントとの通信を可能にするコードをアプリで折り返して、Analyticsを収集し、プログラムポリシーを評価し、強制し、集約された情報を共有します。あなたがDRMを適用しないことを選択したとしても、あなたのアプリは常に起動時にAmazon AppStoreクライアントと通信します。

Amazonはあなたの署名を削除し、あなたに固有のAmazon Signatureを使ってあなたのアプリを再署名し、変更しない、そしてあなたのアカウントのすべてのアプリで同じです。

Amazonはこの種のものをしています 10年間

GoogleがAmazonと同じ技術的能力を持っている必要があるようです。

そのため、Googleが再署名して配布するAPKにコードを追加または変更するのを防ぐことが行方不明になっていることはありますか?

22
CommonsWare

ある時点で、プロセッサはあなたのアプリの指示を読むことができなければならない必要があります。オペレーティングシステム自体があなたのアプリで何をすべきかを知る必要があります。

前述の理由でアプリが瞬間的にどのようにパッケージ化されるかを無視して、それはあなたのアプリがGoogleによって修正されないこと、またはそれをするための知識とリソースを持っている技術エンティティの技術的な理由はありません。さらに説明しましょう。

アプリがどのようにパッケージ化されているかは関係ありません - オペレーティングシステムがアプリをロードした瞬間、アプリが何をしているのか知っています。オペレーティングシステムがアプリの処理方法がわからなかった場合、アプリは無用になります。あなたはそれを難読化しようとすることができます、いくつかの人気のあるワームは彼らの目的を隠そうとした方法で、それは本当に避けられないだけを遅らせるだけです。人々は最初からソフトウェアを分解し、ソフトウェアを分解していますが、それが多くのライセンスが明示的に分解を禁止するために使用されている理由です。これを知って、「Google」がアプリが難読化されていたとしても、アプリが最終的に実行されている場合でも、それを実行しているのか、それを文書化してからアプリを変更することができます。要求に応じ。彼らはまた、それをするためのすべての技術的スキルとリソースを持っています。

一瞬一瞬戻ってみましょう。

署名で何か署名する目的は、受信したアプリのコピーが本物であるかどうかを判断できるように、この場合、エンドユーザーが受信したアプリがプレイストア上にあるものを一致させる場合です。目的は、あなたが持っているコピーが他のユーザーに配布されていることを確認することです。 Googleがアプリを修正できない技術的な理由があるかどうかを尋ねています - いいえはありません。 APKがZIPファイルであることをお勧めします。あなたのアプリが自分で署名されていて、同じ署名がエンドユーザーが受信したアプリのコピーに含まれていた場合、エンドユーザーはあなたのアプリを改ざんしたかどうかを確認できます。しかし、あなたの署名が削除された場合、ユーザーはGoogleを信頼しなければならないままになります。

あなたの質問は興味深いです、それは私が他の何かについて考えるようにしました:あなたがあなたの質問をしたという文脈が「グーグルが配布前にアプリを変更することができるだろう」という文脈を推測します。現代のデバイスがますます強力になり、オペレーティングシステムを停止するのは(製造元が自分のバージョンのAndroidをカスタマイズすることができるため)、配布後のアプリの変更、または将来、実行中にその場でのフライ?

私はこの論文を下に残しています:

https://www.cs.cmu.edu/~rdriley/487/papers/thompson_1984_reflectionsontrustingtrust.pdf

それは、私たちが今日使用するシステムの種類の各ソフトウェアを片手に片手に検証することが不可能であるので、これは常に多年質の質問であるようです。

私はまた、人々がアプリのために利用可能であるという理由だけで、それは彼らが実際にアプリを調べるトラブルを実行しない限り、人々が彼らが実際に彼らのデバイス上で実行されているアプリを信頼できるということを意味するのは少し面白いです。彼らのデバイスでは、それは彼らのデバイス上で実行されているアプリがソースコードを表すものと同じではないことが技術的に可能です。

しかし、信頼はどこかに始まっていなければなりませんか????。将来的には、量子コンピューティングでは、物事をやる方法が変わるでしょう。しかし、再び、システムのすべての部分がどのように機能するかを実際に理解している人は、まだどこかに私たちの信頼を置く必要があります。たとえ私たちが何かを理解していても、それを検証するためのリソースを持っています。

だからGoogleがそれを変更するのを止めるのは何ですか?

  • 彼らは本当に必要ですか?アプリを作成して送信することで、Google Playの値を作成する開発者です。
  • あなたの許可なしにあなたのアプリを修正したらGoogleを信頼しますか?プライバシーがすでに大きな問題であるため、それは会社としてのあなたの認識にどのように影響しますか。
  • 彼らの修正があなたのアプリを誤って行動し、顧客、自分または一部の第三者の企業に誤って行動することを責任を負うことができるというイベントである。

上記は、Googleがアプリを変更するかどうかを検討するときに考える理由の一部です。それはワームの缶です。最後に、それは費用便益とリスク報酬分析まで沸騰します。彼らはあなたのアプリを何のために修正しますか、そしてそれは影響の危険性の価値がありますか?

合計では、彼らができない理由の技術的な理由はありません。なぜ彼らが彼らのビジネスやモデルやモデルに沸騰しないのか。なぜ彼らがなぜそうであるか、将来的にはないと言うことは何もありません。しかし、アプリを任意に変更する理由はありません - 何らかの利得をもたらす有効なビジネス理由がある必要があります。

1
Rahul Iyer

簡単な答え:彼らがしたいのなら、Googleはできます。デジタル署名方式では、署名者は署名の前に文書を修正する完全な機能を持っています。

なぜそうではないのか:開発者はそれを簡単に検出することができ、そして最も重要なペイロード - 実際にコードを含むペイロードは、興味のある第三者(またはアプリクリエーター)によって簡単に分解することができます。追加のコード(JNIライブラリにコードを追加することはさらに低いです)。明確にするために、開発者による検出はAPKを解凍し、その内容を開発者が提出したものと比較するのと同じくらい簡単です。

開発者に通知せずにコードを追加することの影響は、発見された場合にかなりのバックラッシュを引き起こす可能性があります。もちろん、それ以外の日にGoogleは、使用条件を変更し、DEXからLLVMのビットコードに移行すること、または他のものを実行することを決定することができます。

明確化:理論的には特定のターゲットにのみ変更されたアプリケーションを発送することができますが、そのようなインシデントの1つが検出されたことがわかります(たぶん開発者にapkを郵送することができるかもしれません)。 Googleには遠くに達することへの影響。

これは、BTWであり、AppleもすべてのApp-Storeアプリの署名者であることも当てはまります。 Appleケースでは、アプリケーションがApple(Bitcodeから基礎となるARMV8バリアントへ)で再コンパイルされる可能性があるため、AppsがFairplayによって暗号化されている可能性があるため、脱獄装置の外のアプリを復号化します。

Anecdoteとして、アプリがインストールされてデバイス自体にコンパイルされたときに、悪意のあるデバイスベンダーがDEX2OA(On-Device Compiler)を変更できなかったか疑問に思う可能性があります。非公開のデバイスでは、アプリのコンパイルされたart/oatファイルにアクセスする簡単な方法がないため、これははるかに困難になります。しかし、その後、悪意のあるベンダーもAndroidフレームワークも直接変更できます。

0
Technologeeks