この質問の前に、実際の質問がどこにあるかを絞り込むことができるように、次の 2 点を挙げたいと思います。
a)私は以前にソフトウェア開発を行ったことがありますが、Android用は一度もありません
b) 私は PKI と暗号化とハッシングとデジタル署名に精通しています。
そうは言っても、Android がどこでどのようにアプリの作成者を検証しているかについて、詳しい情報を追跡するのに苦労しています。さまざまな情報をたくさん聞いたので、ワークフローのより良いアイデアを得るために統合しようとしています.
すべてのアプリ開発者は独自の秘密鍵と公開鍵のペアを取得し、APK をハッシュしてアプリに署名することを知っています (私が間違っていなければ、ほとんどの場合 SHA-1 を使用します)。あなたはそれをアップロードし、(私は信じています)公開鍵はAPK内のMETA INFに入ります。これくらいは分かります。
私の質問は、ユーザーがアプリ自体をダウンロードするときにこれがどのように関係するかです。アプリが有効に署名されていること、および署名に作成者などの情報が含まれていることを確認するために電話がチェックすることは知っています。しかし、アプリは自己署名されており、Google Play (または現在市場と呼ばれているもの) は CA を実装しておらず、身元認証がないことも読んだことがありますか? しかし、私の質問は、人々が別の開発者の名前でアプリをアップロードするのを止めるものは何ですか (クラウドソーシングはさておき)?
電話が有効な署名のみをチェックする場合、アプリがアップロードされたときに認証の唯一の手段が行われることを意味しますか? もしそうなら、アプリ市場はどのようにそれをチェックしますか? ファイルの秘密鍵を使用して署名を検証するのは通常のことですか? それとも、開発者は認証のために秘密鍵を市場に提供する必要がありますか?