ダウンロードしたAPKファイルの信頼性を確認するにはどうすればよいですか?


62

Googleマップの最新のアップデートは私の国では利用できないため、「Google Maps 5.4.0 apk」のグーグルでバージョンをダウンロードしました。私は実際にそれを見つけましたが、今、これが実際に市場のものと同じバージョンであるかどうかをどのように見分けることができるのでしょうか。

改ざんされていないことをどのようにして確認できますか?アプリは何らかの方法で署名されていますか?署名を確認する方法はありますか?


携帯からページ:m.google.com/mapsにアクセスすると、ダウンロードリンクなどが提供されますか?
ニコラス

@Nicolás:市場にリンクしているので、そこからダウンロードできません。
ネイサンフェルマン

グーグルから来るのは驚くことではない。ところで、私はあなたの元の質問には答えていませんが、MapDroydをテストしましたか?
ニコラス

@Nicolás:私は持っていません。実際、日々のナビゲーションにWazeを使用しています。Googleマップはほんの一例です。Googleブックスはもう1つの例です。GoogleStreetviewはさらに別の例です(実際、Googleアプリだけがこの問題を解決しているようです...)
ネイサンフェルマン

1
「本物の」同じベンダーの2番目のアプリがある場合、両方のアプリが同じキー/ IDを使用して署名されているかどうかを比較できます。android.stackexchange.com
Robert

回答:


71

そのアプリを携帯電話にインストールすることの正当性についての議論を避けて、検証の質問は私がしばらく理解することを意味していたものであり、あなたは誰が署名したかを検証する可能な方法を見つけようとするよう促しましたapk。

Androidアプリは.jarファイルの通常の方法で署名されます(.apkは実際には特別な.jarであり、特別な.zipです)が、証明書の信頼性を追跡するのは簡単なことではありません。と比較します。それは基本的に電話自体が行うことです-すでに電話にあるものと同じパーティーからのものであると主張するものが実際にあることを確認します-電話は未知の署名者のものをインストールすることを拒否せず、新しいデータが主張する古いものと一致しない場合の明らかな偽造のデータ。

jarsignerとkeytoolが必要です。これらは、SDK自体ではなく、Android SDKの前提条件であるJDKから来ていると思います。

最初に、.apkに含まれている公開キーを確認してください。通常、これはMETA-INF / CERTS.RSAにありますが、別のファイルに入れることもできます-unzip -lで通知されます。あなたはあなたがそれについて知ることができるものを見たいです:

unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert

それは、署名者が誰であるかについての多くの情報をダンプするでしょう。一部の証明書は既知の関係者によって署名されているようですが、それを追跡する方法を考えずに、次のようなことができると思われます。

unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
unzip -p knowngood.apk META-INF/CERT.RSA | keytool -printcert | grep MD5

同じ証明書を使用した同じ著者の既知の信頼できるapkがある場合。同じMD5合計を持つ証明書で十分であると想定しています。

証明書を信頼すると決めたと仮定すると、.apk内の各ファイルの署名に使用されているかどうかを確認できます。

jarsigner -verbose -verify suspect.apk

(アーカイブに複数の.RSAファイルがある場合、-certsフラグを追加して、各ファイルの署名に使用された証明書を通知する必要があります。これにより、確認した証明書を確認できます)


9
特定のapkがGoogle Playストアの公式のapkと同じであることを確認する方法はありますか?
ブライス

@ブライス私も同じ質問をしています。答えを見つけましたか?
カイザーソザイ

@Chris Stratton Googleマップのapkをデバイスからコピーすることは可能ですか?その後、あなたが言ったように証明書を確認することができます。
カイザーソザイ

さらに、次のアプリケーションでデバイスからAPKを抽出できます:play.google.com/store/apps/details?id=com.ext.ui&hl=en Best、Paul [モデレーターファイヤーロード編集]
-Spipau

4

(今)あなたが望むことをするapksignerツールがありbuild-toolsます。ドキュメントから:

APKがサポートするすべてのAndroidプラットフォームで、APKの署名が有効であると確認されると予想されるかどうかを確認します。

apksigner verify [options] app-name.apk

1

APKを無料のVirusTotal.comウイルスチェッカーにアップロードしてみることもできます。APKの一意のハッシュが生成され、他の人が既にそれをテストするためにアップロードしている場合(可能性が高い)、APKが有効であるという考えが得られます。

また、このサービスは60を超えるウイルススキャナーでAPKをスキャンし、既に見つかったウイルスと同様の署名があると信じているかどうかを通知します。


0

疑わしいapkファイルの証明書を比較するには、携帯電話の公式Playストアにそのバージョンをダウンロードし、コンピューターでバックアップを行い、バックアップディレクトリに移動して、関係するapkファイルを選択し、同じチェックを行うことが考えられます。デバイスのデフォルトアプリケーション(com.google.android。* apkなど)でチェックを行うことで、Google証明書を表示することもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.