DocBit Notes チュートリアル

Binance 公式 APK の署名フィンガープリントとは? 偽装を防ぐための照合方法

ハッシュ検証は「このパッケージが改ざんされていないこと」を保証し、署名検証は「このパッケージが Binance 自身によって署名されたこと」を保証します。両者はそれぞれ異なる段階を管理しています。本ノートでは、Binance APK の署名メカニズムと照合方法を明確に解説し、「ハッシュを自ら変更して再配布された偽造パッケージ」を見破る手助けをします。インストーラをダウンロードするには Binance公式サイト へ行くか、直接 Binance公式アプリ の入口をご利用ください。iPhone 端末の方は iOSインストールチュートリアル をご覧ください。

APK 署名とは

すべての Android APK は、パッケージ化の際に秘密鍵で署名される必要があり、Android システムはインストール時にこの署名を確認します:

  • 新規インストール:署名の形式が合法であればインストール可能。
  • アップグレードインストール:新しいパッケージは、インストール済みバージョンと同じ秘密鍵で署名されている必要があり、そうでない場合は「署名が一致しません」というエラーになります。

秘密鍵は Binance の開発チームによって保管されており、外部の人間が取得することはできません。そのため、偽造者が作成した APK は、画面がいくら似ていても、署名フィンガープリントは本物のパッケージとは必ず異なります。

署名バージョン:V1、V2、V3

Android の署名メカニズムには 3 つの主要なバージョンがあります:

バージョン 導入時期 特徴
V1 (JAR Signing) Android 1.0 から 古い形式。ファイルごとの検証
V2 (APK Signature Scheme) Android 7.0 から パッケージ全体の署名。より高速で安全
V3 Android 9.0 から キーローテーションに対応
V4 Android 11.0 から インクリメンタルインストール用

Binance APK は V1 + V2 + V3 を同時に有効にしているため、Android 7 から最新バージョンまでのすべてのデバイスと互換性があります。

APK の署名フィンガープリントの確認方法

方法1 · コマンドライン(apksigner) Google 公式が提供する apksigner ツールを使用すると、署名フィンガープリントを直接確認できます。事前に Android SDK コマンドラインツールをインストールしておく必要があります。コマンドは概ね apksigner verify --print-certs に APK のパスを追加したものです。出力には SHA-1 と SHA-256 の 2 種類のフィンガープリントが表示されます。

方法2 · GUI ツール Windows では APK Studio や ApkTool GUI が推奨されます。APK をドラッグ&ドロップするだけで証明書情報を確認できます。

方法3 · Android 端末での自己確認 APK 情報ビューア(APK Analyzer など)をインストールし、APK を開いて「証明書 (Certificate)」タブに切り替えます。

方法4 · インストール済みバージョンの確認 Binance がすでにインストールされている場合、アプリ内 → 設定 → アプリについて → セキュリティ情報(一部のバージョン)で現在の署名の概要を確認できます。

本物の公式署名フィンガープリントの特徴

Binance 公式署名証明書の特徴は以下の通りです:

フィールド 期待される値
発行者 (Issuer CN) Binance または記名のエンジニア
発行対象 (Subject) 同上(自己署名証明書)
アルゴリズム SHA256withRSA
公開鍵の長さ 2048 ビット または 3072 ビット
有効期限 通常は 25 年以上

具体的なフィンガープリントの文字列については、Binance は(照合用に精密な偽造が作られるのを防ぐため)積極的には公開していません。しかし、「自己照合」を用いることができます:2 台のクリーンなデバイスでそれぞれ公式サイトから APK をダウンロードし、署名フィンガープリントが一致するかを確認します。一致すれば信頼できます。

偽造パッケージの一般的な署名の特徴

詐欺師が偽造パッケージを作成する際、通常は再署名を行います。その特徴は以下の通りです:

  • 発行者に「Android」「Test」「Debug」などの汎用的な文字が記載されている
  • 公開鍵の長さが 1024 ビット(安全ではなく、新しいバージョンの Android では警告されます)
  • 有効期限が短い(1 年または数年)
  • アルゴリズムが MD5withRSA(非推奨)

これらはすべて低コストの署名の痕跡です。いずれか 1 つでも該当する場合は、その APK を即座に破棄してください。

インストール時の署名検証フロー

APK のインストールをタップすると、Android システムはバックグラウンドで自動的に以下の検証を行います:

  1. APK を展開し、META-INF ディレクトリ内の署名ファイルを見つける
  2. 署名ブロック内の公開鍵を使用して APK 全体のハッシュを検証する
  3. 検証に合格し、かつ V2/V3 検証にも合格した場合、次のステップへ進む
  4. デバイス上にすでに同じパッケージ名のアプリが存在するかを確認する
  5. 存在する場合、新旧両方のパッケージの署名公開鍵が同じであるかを比較する
  6. 異なる場合 →「署名が一致しません、インストールできません」とポップアップ表示してブロックする
  7. 同じ場合 → アップグレードフローへ進む

プロセス全体はユーザーに対して透過的ですが、原理を理解しておくとエラーのトラブルシューティングに役立ちます。

「署名が一致しません」エラーの対処法

最も一般的なシナリオは、「以前サードパーティのストアからダウンロードした海賊版 Binance をインストールしていたが、公式パッケージに乗り換えようとしたところインストールできない」というものです。対処法は 1 つだけです:まず旧バージョンをアンインストールし、その後新バージョンをインストールします。アンインストールするとローカルキャッシュは消去されますが、アカウントはクラウド上にあるため失われることはなく、再ログインすれば問題ありません。

公式の V1 から V2 へのアップグレードで署名不一致が発生した場合(極めて稀です)、以下の原因が考えられます:

  • 一方が V1 の単独署名で、もう一方が V1+V2 の二重署名だが、V1 の証明書が入れ替えられている
  • ユーザーが「Binance ベータ版」をインストールしてしまった(開発・テスト環境では異なる秘密鍵が使用されます)

通常のユーザーがこのような特殊な状況に遭遇することはありません。

複数の Binance 亜種の区別方法

一部のメディアは「Binance 軽量版」「Binance プロ版」といったものをリリースすることがあります。パッケージ名は異なりますが、いずれも Binance の名を冠しています。どれが公式かを判断するには:

パッケージ名 公式か
com.binance.dev はい
com.binance.us はい(米国独立サイト)
com.binance.lite いいえ(偽造)
com.binance.pro いいえ(偽造)
com.binancecn.app いいえ(偽造)

com.binance.dev という 1 つのパッケージ名のみを認識してください。

長期的なアドバイス

ダウンロード後すぐに署名を確認する習慣を身につけましょう:

  1. APK をダウンロードしたら、まず SHA-256 ハッシュを確認する
  2. インストール前にツールを使用して署名フィンガープリントを確認する
  3. 前回インストールしたバージョンのフィンガープリントと比較する
  4. 一致した場合のみインストールする

この一連の作業は 5〜10 分で完了し、APK レベルでのほぼすべての偽造攻撃を防ぐことができます。

FAQ

Q:署名は偽造できますか? A:理論上不可能です。秘密鍵は Binance のみが所持しています。Binance の秘密鍵が流出しない限り偽造されることはなく、現在のところそのような事件はありません。

Q:署名フィンガープリントと SHA-256 ファイルハッシュは同じですか? A:異なります。ファイルハッシュは APK ファイル全体を対象としますが、署名フィンガープリントは署名ブロック内の証明書を対象とします。

Q:アップグレードする際、スマートフォンに署名検証ツールをインストールする必要がありますか? A:必要ありません。システムが自動的に検証し、一致しない場合はインストールをブロックします。

Q:MIUI は APK を変更して再署名することがありますか? A:ありません。MIUI の「アプリ保護」はスキャンを行うことはあっても、再署名することはありません。もし署名が変わっていた場合は、間違いなく中間者によって改ざんされています。

関連記事