DARK MATTER

CDI Engineer's Technical Blog

スマホへのBurpの証明書のインストール

弊社ではPC上のブラウザで表示するWebアプリケーションの診断だけでなく、iOSやAndroid端末上のネイティブアプリケーションが使用するWeb APIもよく診断しています。
診断に使用するProxyツールはPCと同様にBurp(Burp Suite)を使用しています。
対象のネイティブアプリケーションがHTTPSを使用している場合、端末にBurpの証明書をインストールする必要があります。
本稿ではインストールの仕方を簡単に紹介します。

iOSの場合

端末のProxy設定でBurpの待ち受けているIPとポートを指定した状態で、Safariから http://burp/cert にアクセスします。
上記URLを指定すると、Burpから証明書が返されます。
iOSの場合はこの段階で証明書のインストール画面に遷移するので、そのままインストールすることが可能です。

インストールされた証明書は
設定 > 一般 > プロファイル で確認や削除が実施できます。

http://burp/cert というURLに対してBurpが特殊な対応をすることは、Burpの
Proxy > Options > Import / export CA certificate
を選択して表示される画面の上部に記載されています。

Androidの場合

http://burp/cert でBurpから返される証明書のファイル名はcacert.derです。

証明書を管理する - Nexus ヘルプには以下のように記載されています。

Android では、DER エンコードの X.509 証明書のうち、拡張子 .crt または .cer の付いたファイルに保存されたものをサポートしています。証明書ファイルの拡張子が .der などの場合は、.crt または .cer に変更しないとインストールできません。

拡張子がderのままではインストールすることができず、拡張子を変更する必要があります。
そこで一旦PCに証明書をダウンロードして、adb経由でAndroidに送ってインストールするというのが方法の1つになります。

PCでcacert.derをダウンロードした後、

$ adb push cacert.der /sdcard/cacert.cer

としてadb経由でAndroidの/sdcard直下にcacert.cerという名前で証明書を配置し、Android側で

メニュー > 設定 > セキュリティ > ストレージからのインストール

と操作することでインストールすることが可能です。

株式会社サイバーディフェンス研究所 / Cyber Defense Institute Inc.