LoginSignup
3
3

More than 5 years have passed since last update.

Google Play App Signing

Last updated at Posted at 2017-12-12
1 / 20

内容

  • 準備:APK 署名の仕組み
  • いままでとこれから
    • いままで:app signing key の自己管理
    • これから:Google Play App Signing で管理
  • 作業手順
  • やってみる

APK の署名

  • 端末に APK をインストールするためにはデジタル署名が必要です。
  • Android システムが署名を検証します

仕組み

  • 開発者は pub/priv key-pair を保持
    • apk を priv key で署名
    • apk に pub key を添付(公開鍵証明書)
  • Andorid は apk に添付された公開鍵証明書で署名を検証
  • 署名が valid ならアプリを上書き更新

詳細

  • META-INF/CERT.SF
    • 各リソースパスとその SHA1 が含まれたファイル
  • META-INF/CERT.RSA
    • CERT.SF を署名したファイル(公開鍵も含む)
    • これを使って署名検証

openssl pkcs7 -inform DER -in scene/META-INF/CERT.DSA -noout -print_certs -text


用語

  • app signing key: アプリの署名に使う priv key のこと
  • keystore: priv key のバイナリ形式

何を防ぎたいか

  • APK の改竄
  • 開発者としての証明
    • ⇒ 他者アプリの上書きインストールの禁止

防いでないこと

  • app signing key 保持者の信頼性
    • 証明書は自己発行
  • 新規インストール時のアプリの信頼性

いままで


app signing key の自己管理

  • keystore (priv key) は自己管理
  • 紛失すると apk が二度とアップデートできない

図解

ref: https://developer.android.com/studio/publish/app-signing.html


これから:


Google Play App Signing

  • Google に app signing key を預ける
  • メリット
    • Google の最高セキュリティレベルで管理される
    • 鍵を紛失する心配をしなくていい
    • Google が署名できるので配布時に最適化可能

図解


ref: https://developer.android.com/studio/publish/app-signing.html


注意点など

  • 取り消せない

Step1: 利用規約に同意

  • Play Console を開く
  • Google Play App Signing の利用規約に同意する

Step2: App Signing Key のアップロード

  • Google の提供ツールで app signing key 自体を暗号化
  • Play Console からアップロード

Step3: アップロード鍵の登録

  • アップロード用の鍵(keystore)をローカルで生成
  • 公開鍵証明書を Play にアップロード
  • APK アップロード時にはこのアップロード鍵(keystore)を使う

アップロード鍵について

  • revoke 可能
  • 再発行可能(ただし手続きはかなり厳重)

やってみる

  • 実際にやってみる
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3