web-dev-qa-db-ja.com

Androidキーストアファイルとは何ですか?

これは一般的な質問ですが、特にAndroidでの使用に興味があります。キーストアファイルとは何ですか?

複数のAndroidアプリケーションが同じキーストアを使用してアプリケーションに署名できますか(.apkに「署名する」とはどういう意味ですか?)、これの影響(ある場合)は何ですか

120

私が提供する答えは、キーストアファイルは、求めている人に対して自分自身を認証することです。 .apkファイルに署名するだけでなく、個人証明書を保存したり、送信するデータに署名したり、さまざまな認証に使用したりできます。

Androidで何をするか、おそらくapkの署名に言及してから探しているものに関しては、それがあなたの証明書です。資格情報を使用してアプリケーションをブランド化しています。同じキーで複数のアプリケーションをブランド化できます。実際、1つの証明書を使用して、作成する複数のアプリケーションをブランド化することをお勧めします。どのアプリケーションが自分のものであるかを簡単に追跡できます。

意味するところがわかりません。証明書の所有者以外は誰もあなたのアプリケーションを更新できないことを意味すると思います。つまり、それを公開した場合、アプリケーションへの署名に使用した証明書を失い、更新をリリースできないため、必要に応じてその証明書を安全にバックアップしてください。

ただし、apkに署名して野生にリリースすることは別として、必要に応じて(他の機能でもAndroid関連)、それを使用してデバイスをSSL経由でサーバーに対して認証できます。

125
Otra

Androidマーケットでは、公開キー/秘密キーメカニズムを使用して、証明書で公開するすべてのアプリに署名する必要があります(証明書は秘密キーで署名されます)。これにより、リモート攻撃者が悪意のある更新をアプリケーションにプッシュして市場に出すのを防ぐセキュリティのレイヤーが提供されます(すべての更新には同じキーで署名する必要があります)。

App-Signing Guide のAndroid開発者サイトから:

一般に、すべての開発者に推奨される戦略は、アプリケーションの予想される寿命を通して、同じ証明書ですべてのアプリケーションに署名することです。そうする理由はいくつかあります...

同じキーを使用することにはいくつかの利点があります。1つは、同じキーで署名されたアプリケーション間でデータを共有する方が簡単なことです。もう1つは、同じキーで署名された複数のアプリを同じプロセスで実行できるため、開発者はより「モジュラー」なアプリケーションを構築できることです。

18
Alexander Lucas

公式のAndroidドキュメントで署名プロセスの詳細を確認できます: http://developer.Android.com/guide/publishing/app-signing.html

はい、同じキーストアで複数のアプリケーションに署名できます。ただし、重要なことを1つ覚えておく必要があります。Playストアでアプリを公開する場合は、デバッグ以外の証明書で署名する必要があります。そして、いつかこのアプリの更新を公開したい場合、apkの署名に使用されるキーストアは同じでなければなりません。そうしないと、更新を投稿できません。

10
Raphaël Titol

キーツールの全体的なアイデアは、そのapkのソースを示す一意の識別子でapkに署名することです。デバッグにはキーストアファイル(私が理解しているものから)が使用されるため、apkは本番用にapkに署名することなくkeytoolの機能を備えています。そのため、デバッグのために、単一のキーストアで複数のapkに署名できる必要があります。しかし、本番環境にプッシュする際には、作成する各apkの識別子として一意のキーツールが必要になることを理解してください。

0
Adam Storm