APK 署名スキーム v3 にはキー ローテーションのサポートが含まれます

click fraud protection

APK Signature Scheme v3 が Android オープンソース プロジェクトで発見され、キー ローテーションのサポートをもたらすようです。

あなたが開発者であるか、または変更された APK ファイルの逆コンパイル、変更、インストールに何らかの形で精通している場合は、おそらくアプリケーションの署名についてよく知っているでしょう。 簡単に言うと、Android ではアプリに次のことを義務付けています。 しなければならない システムが問題のアプリを更新できるようにするには、同じキーで署名する必要があります。 Android は、APK 署名をチェックすることでこれを検証します。

APKの署名 これは Android の非常に基本的なセキュリティ対策であり、以前にも説明しました。 基本的に、すべての署名は特定の開発者または開発者グループに固有であるため、APK 内の署名/証明書が有効でない場合、または 元のアプリのものと一致しない場合、インストールは失敗するため、Android に改ざんまたは偽の APK ファイルがインストールされるのを防ぐことができます。 デバイス。 署名キーは、検証し、最終的にはアプリの更新をプッシュするために不可欠であるため、開発者も安全に保管する必要があります。 幸いなことに、APK に署名するための署名スキームは別のリビジョン (v3) を取得しており、高いセキュリティ基準を維持しながら便利な機能が追加されているようです。


APK 署名スキーム v1 および v2

現在の APK 署名スキームのバージョン v2 がリリースされてからそれほど時間が経っていません。 開発者向けにリリースされました. 結局のところ、それは 2016 年末の Android 7.0 Nougat のリリースによってやっと私たちに紹介されました。 Android 7.0 以降のアプリで v2 署名スキームを使用することは、一連の重要なパッチと、 セキュリティの向上: v1 は JAR に署名するだけでしたが、v2 では JAR 全体の整合性を保護するための追加の手順が実行されます。 ファイル。 ただし、署名スキームには下位互換性がなく、Android Marshmallow 以前ではアプリに v1 署名が必要です。

APKの検証プロセス。 出典: Google。

特に Nougat 以降のユーザーに対応している場合を除き、理想的なシナリオは、最初に v1 で署名し、次に v2 で再署名することで、両方の署名スキームを並べて使用することです。 このようにすると、Nougat 以降は v2 署名を認識し、Marshmallow 以降は v1 署名を認識します。

ただし、v1 のみを使用することは、一連の脆弱性やその他のセキュリティ上の問題があるため、強くお勧めできません。そのうちの最も顕著なものは次のとおりです。 ヤヌスの脆弱性これにより、攻撃者は署名に影響を与えることなく APK を直接攻撃し、変更することができます。 Instagram や Snapchat など、更新頻度が低い人気のアプリは v1 署名でのみ署名されているため、これらの問題に対して脆弱です。

人気のソーシャル メディア/支払いアプリの APK 署名バージョンを確認します。

APK 署名スキーム v3

v2 のリビジョンである v3 の最大の目玉機能は、次のとおりです。 キーローテーションのサポート. の v3 署名スキーム APK Signer Lineage が導入されました。 コミットの 1 つ、「子孫の正当性を証明する各祖先による証明書への署名の履歴が含まれています。 追加の子孫はそれぞれ、APK の署名に使用できる新しい ID を表します。 このようにして、リネージには、それを含む APK が他のユーザーに証明できるローテーションの証明が含まれます。 関係者、あたかも古い署名証明書のいずれかによって署名されたかのように、現在の署名証明書で信頼される能力 もの。」

キーのローテーションは、いくつかの点で開発者にとって優れた機能です。 まず、これは、単一のアプリに取り組んでいるチームの開発者にとって便利です。そのため、開発者は署名キーをチームと共有する必要がありません。 アプリの更新にはまったく同じ署名が必要であるため、現在、すべてのアプリは同じ開発者または開発者のグループによってコンパイルされる必要があります。 開発者が同じキーを使用して作業するため、安全性が低下し (キーが盗まれる可能性が高くなります)、開発が遅くなります。

さらに、開発者が署名キーを盗難または紛失した場合にも役立ちます。 これは通常、アプリを別のパッケージで Play ストアに再アップロードする必要があることを意味します 名前。 これは決して珍しいケースではなく、かなり前に Google でさえ Google Authenticator アプリの署名キーを紛失したため、別のパッケージ名でアプリを再公開したようです。 それ以来、Google は署名鍵をクラウドに安全に保存する手段を提供してきました。 Google Play アプリ署名ただし、キーのローテーションを使用すると、仮に問題が発生した場合でもアプリの更新を続行できます。

いつ展開されますか?

さらなる利便性を求めて試してみたいと思うかもしれませんが、v3 署名スキームが AOSP の周りで浮遊しているのが発見されました。 Gerrit コード レビュー サイト、およびコミット自体は現時点ではメイン ブランチにマージされていないため、まだ準備ができていません。 まだ。 Android Nougat を使用した以前の v2 リリースで何かがわかるのであれば、Android P の今後のリリースで v3 署名スキームが開発者の手に渡ることを期待する必要があります。

また、v2 との違いはキーのローテーションだけではない可能性が高いことにも注意してください。 APK 署名スキーム v3 はまだ開発中であるため、将来、v3 署名スキームの完全なドキュメントが公開されたときに、v3 署名スキームの実際の改善が確認されることになります。