3

Android 用の root 化とカスタム MOD がすべて出回っているため、Google のものであると主張している一部の APK が実際には悪意のあるものであることに不安を覚えます。

したがって、それらを検証しようとして、ANDROID.RSA公開鍵を抽出し、オンラインで検証しようとしました..しかし、すべてのGoogle検索では、実際のGoogle APKを検証する方法ではなく、Androidで公開鍵暗号化を行う方法が表示されます

だから私の基本的な質問は次のとおりです。

Google apk が実際に Google apk であることを確認するにはどうすればよいですか?

私が見つけた 1 つの特定の RSA 公開鍵:

Owner: CN=Google NFC, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US
Issuer: CN=Google NFC, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US
Serial number: a8cd17c93da5d990
Valid from: Wed Mar 23 21:06:53 EDT 2011 until: Sun Aug 08 21:06:53 EDT 2038
Certificate fingerprints:
     MD5:  C9:E9:71:21:25:5D:E0:15:6F:3F:5B:24:B1:A8:47:6A
     SHA1: 82:75:9E:2D:B4:3F:9C:CB:AF:CE:31:3B:C6:74:F3:57:48:FA:BD:7A
     Signature algorithm name: SHA1withRSA
     Version: 3

Extensions: 

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 1C CE CE 0E EA 4D C1 12   1F C7 51 5F 0D 0A 0C 72  .....M....Q_...r
0010: E0 8C C9 6D                                        ...m
]
]

#2: ObjectId: 2.5.29.19 Criticality=false
BasicConstraints:[
  CA:true
  PathLen:2147483647
]

#3: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 1C CE CE 0E EA 4D C1 12   1F C7 51 5F 0D 0A 0C 72  .....M....Q_...r
0010: E0 8C C9 6D                                        ...m
]

[CN=Google NFC, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US]
SerialNumber: [    a8cd17c9 3da5d990]
]
4

1 に答える 1

4

Verizon Galaxy Nexus 用の Google ウォレット APK のダウンロードを検証しようとしているときに、このソリューションをまとめました。

アプリケーションの署名を検証するには、あるバージョンの apk を含む信頼できるソースが必要です。Android では、同じパッケージ名のアプリケーション アップデートは同じ証明書で署名されるように強制されるため、Google ウォレットは、新しいパッケージ名を作成してすべてのユーザーにアプリの再インストールを要求しない限り、証明書を変更できません。

  1. 信頼できるソースから Google ウォレットを含むファクトリー イメージをダウンロードする

    https://developers.google.com/android/nexus/images#takju

  2. システム イメージ エクストラクタのダウンロード

    http://andwise.net/?attachment_id=406

  3. 工場イメージの抽出

    tar xzvf takju-jro03c-factory-bf087655.tgz  
    mv takju-jro03c/image-takju-jro03c.zip .
    
  4. 埋め込み画像の抽出 (zip ファイル)

    unzip image-takju-jro03c.zip
    
  5. システム イメージ エクストラクタを抽出します (パート 2 でダウンロードしたファイル)。

    tar xzvf ext4_utils.tar.gz  
    chmod +x simg2img
    
  6. システム イメージから ext4 マウント可能なイメージを抽出する

    ./simg2img system.img system.image.ext4
    
  7. mkdir sys

  8. 新しく作成された sys/ フォルダーをマウント ポイントとして、抽出された ext4 イメージをマウントします。

    sudo mount -t ext4 -o loop system.image.ext4 sys/
    
  9. Wallet.apk 証明書を表示する

    unzip -p sys/app/Wallet.apk META-INF/CERT.RSA | keytool -printcert
    
  10. 指紋とシリアル番号を比較します (それらを Python 文字列にコピーし、その方法で比較しました)。SHA-1 プレイメージ攻撃を見つけるには、およそ 2^160 の推測が必要なので、フィンガープリントが一致する場合、ダウンロードされた APK が不正である可能性はわずかです。

工場出荷時のイメージで抽出された Wallet.apk を携帯電話adb install sys/app/Wallet.apkにサイドロードし、携帯電話に新しい apk をダウンロードし、ファイル マネージャーから起動してアップグレードを実行することもできます。Android が証明書の検証を行います。

于 2012-10-04T08:16:22.143 に答える