19

Eclipse を使用して署名済みの Android アプリケーションをエクスポートする場合、複数のエイリアスを使用する目的はありますか?

署名に関する公式ガイドによると、すべてのアプリケーションに同じ証明書で署名して、アプリケーションがデータ、コードを共有し、モジュール方式で更新できるようにすることをお勧めします。

「エイリアス」、「キー」、および「証明書」がこのコンテキストで本質的に交換可能であると仮定すると、すべてのアプリケーションに異なるエイリアスを使用したい理由はありますか? 考えられる唯一の理由は、セキュリティが強化されたということです。つまり、キーやパスワードが侵害されても、すべてが侵害されるわけではありません。他の理由はありますか?

また、生成されたキーはエイリアスの名前に依存していますか? つまり、エイリアスの名前を変更してパスワードを変更しない場合、生成される証明書は異なるものになりますか?

4

3 に答える 3

15

私が間違っている場合は訂正してください。ただし、同様の質問に対するこの回答が表示される場合は、証明書が、署名することを選択した特定の「エイリアス」(キーストア内)に実際に依存していることがわかります。

答えを注意深く読むと、「キーストア」に「エイリアス」(実際には秘密鍵と公開鍵のペア)が含まれていることがわかります。あなたがapkに署名するとき、それは埋め込まれている実際の証明書である「公開鍵」です。

したがって、アプリを更新するときは、同じ「キーストア」だけでなく、常に同じ「エイリアス」を使用する必要があります。開発者がキーストアに複数の「エイリアス」を持っている理由については、あなたや他の人が述べたこと以外の利点はわかりません。

また、別のエイリアスで署名できる唯一の方法は、答えが示唆しているように、前のエイリアスを複製することです。

また、(同じキーストアからの)異なるエイリアスでAPKに署名すると、異なる「エイリアス」=異なる証明書であることを証明する異なるAPK署名署名が生成されることも確認しました。署名署名を取得する方法(<-注:彼らが参照しているTrace.iメソッドが何であるかわかりません。代わりにLog.iを使用しました)

于 2011-10-12T09:35:39.040 に答える
9

異なるキーでアプリに署名すると、アプリ間の「署名ベースのアクセス許可」の相互運用性が犠牲になることに注意してください。

Androidからの抜粋- アプリケーションへの署名 - 署名戦略

Android システムでは、署名ベースのアクセス許可が適用されるため、アプリケーションは、指定された証明書で署名された別のアプリケーションに機能を公開できます。同じ証明書で複数のアプリケーションに署名し、署名ベースのアクセス許可チェックを使用することで、アプリケーションは安全な方法でコードとデータを共有できます。

于 2013-03-12T18:46:31.050 に答える
3

私はいくつかのテストを行っていましたが、キーストアでどのキーを使用するかは重要であるように見えますが、キーのエイリアスとキーストア ファイルの名前を変更しても、実際にはハンドセットには問題がないようです。興味があれば、ここから取得した keytool-iui でエイリアスを変更しました: http://code.google.com/p/keytool-iui/

OPに答えるために、複数の部門が独自のアプリを作成している大企業で働いている場合に役立つと思います. したがって、ウィルソンのウィジェットは wilsonwidgets.keystore のキーストアを持つことができ、「widgetmakers」キーを持つ内部部門、「widgetdelivery」キーを持つ部門、および「hrdepartment」キーを持つ別の部門が存在する可能性があります。各部門は、他の部門がアプリを更新するのを防ぐことができますが、会社自体は、1 つの場所にバックアップできる 1 つのキーストアにすべてのキーを格納しています。

個人的には、各アプリに異なるキーを使用して署名し、それらをすべて同じキーストアに保存しています。そうすることで、Google が私のアプリの 1 つを購入することを決定した場合に、その 1 つのキーを切り離して Google に渡すことができます。それらをすべて売却したり、他のアプリのキーを再生成したりする必要はありません。現実的に...私は時間と労力を無駄にしています...ため息

于 2012-06-12T18:54:11.267 に答える