スマホにインストールしたBurpの証明書の確認方法

以前の記事スマホへのBurpの証明書のインストール - DARK MATTERでスマホ端末にBurpの証明書をインストールする方法を紹介しました。

インストールされる証明書は(共通のKeystoreをインポートしていない限り)そのBurp固有の証明書であるため、他のPCのBurpの証明書とは異なります。
スマホ端末にBurpの証明書をインストールしているはずなのにHTTPS通信でエラーが出る場合、実はその証明書は他のPCのBurpの証明書だったということがよくある原因の一つとして挙げられます。
一見すると適切にBurpの証明書が端末にインストールされているため、問題に気付かず解決に時間が取られることもあります。

本稿では端末にインストールされているBurpの証明書が、自身のPC上のBurpの証明書と異なっているかどうかを判定する方法を紹介します。

*Burpから情報を取得

まずは自身のPC上のBurpからcacert.derを取得し、opensslコマンドを使って情報を取得します。

$ openssl x509 -in cacert.der -inform DER -text -noout -fingerprint

実行すると以下のような出力が得られます。

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1471231273 (0x57b13529)
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=PortSwigger, ST=PortSwigger, L=PortSwigger, O=PortSwigger, OU=PortSwigger CA, CN=PortSwigger CA
        Validity
            Not Before: Aug 15 03:21:13 2016 GMT
            Not After : Aug 10 03:21:13 2036 GMT
        Subject: C=PortSwigger, ST=PortSwigger, L=PortSwigger, O=PortSwigger, OU=PortSwigger CA, CN=PortSwigger CA
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:c2:c5:73:ac:da:38:57:bf:5b:e1:88:3b:64:56:
                    36:40:9d:d4:1e:b0:51:f3:6d:d1:af:c5:1a:e4:82:
                    7a:ae:63:3d:95:dd:e5:c2:93:f6:ca:bf:ae:92:e4:
                    a4:70:b2:1f:98:22:76:5e:41:16:3e:73:3f:fb:b4:
                    01:47:36:86:16:4b:91:61:fe:e9:c2:30:62:fd:79:
                    69:89:26:8f:39:8f:5e:05:57:c7:45:db:8e:35:bf:
                    61:4e:bd:a3:c4:72:cd:c5:df:ad:3e:84:37:1e:12:
                    64:f7:21:ce:12:0e:33:26:f6:8d:09:ee:78:9d:6a:
                    40:cd:6e:ac:db:f2:d0:87:d1:ad:28:8c:c3:32:3c:
                    a0:88:a5:02:ea:4f:73:91:13:b5:1b:63:6a:94:91:
                    b5:19:94:5a:e7:e2:ec:4a:0d:df:8c:16:59:82:56:
                    c2:f8:16:2c:bf:7f:61:3c:4f:43:e9:0a:cc:a7:15:
                    44:88:10:aa:da:ee:4d:01:11:a3:ee:60:4f:8e:8b:
                    eb:4e:e9:ba:76:3e:84:e2:63:b0:57:df:34:80:60:
                    4c:7f:25:0e:c3:55:dc:6c:5c:0b:d8:a9:6a:81:94:
                    ee:c4:3b:84:01:d5:a0:0c:fb:98:a3:1c:d4:b6:25:
                    be:c8:aa:3a:d0:9b:6a:60:59:fd:17:6d:ae:3d:a6:
                    87:0f
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints: critical
                CA:TRUE, pathlen:0
            X509v3 Subject Key Identifier: 
                1C:C9:FC:E8:08:04:AC:0E:3D:C9:08:8A:FF:DA:38:BD:E1:A9:7D:6A
    Signature Algorithm: sha256WithRSAEncryption
         9a:e7:94:c1:38:0f:16:d0:27:27:98:d0:fd:1a:72:61:71:ac:
         75:19:34:b5:e9:f5:9b:1a:e4:10:10:eb:93:2e:15:31:a1:ff:
         eb:f9:46:24:ca:7a:62:43:8e:91:84:3c:bd:a4:4b:3b:13:e4:
         58:23:7e:55:0b:de:76:7f:74:02:04:63:8d:55:1c:ae:79:5b:
         43:76:50:c5:4c:b8:15:09:cb:a7:a0:09:5c:2c:5c:d3:24:05:
         02:03:a7:70:43:c6:fe:7c:37:66:31:c1:66:33:65:0b:4d:6c:
         0a:df:a7:27:ca:fd:8f:2a:72:4c:18:9e:f3:ea:b8:3e:b0:f6:
         46:af:89:7a:89:7c:83:2f:c8:b0:2b:6e:0f:5a:54:d3:83:95:
         59:ff:1b:8a:ec:ca:0e:c9:1b:68:8b:b4:8b:72:34:9b:4c:14:
         2a:69:5f:d5:35:8e:b5:c5:05:b9:f4:8a:a3:91:fc:08:2e:be:
         ed:3a:8b:ab:87:cb:e1:c0:85:c4:7c:8f:ca:d7:39:f4:14:38:
         72:af:5a:28:e2:fd:94:39:ac:f7:78:ee:39:b5:28:ed:27:01:
         b1:d7:70:25:d2:ec:21:62:d0:c3:ba:6c:bb:9b:40:fc:d0:c4:
         cf:d9:7f:35:c4:a9:2b:c1:15:3e:44:a0:9d:86:fa:54:37:97:
         73:ab:61:3b
SHA1 Fingerprint=33:C0:60:90:27:F3:25:B0:7D:FF:48:A9:FA:F5:EF:29:7B:29:82:C8

この出力結果と比較することで異なっているかどうかを確認することが可能です。

*iOSの場合

設定 > 一般 > プロファイル > 該当のプロファイルをタップ > 詳細 > 該当項目をタップ

と操作し、「署名」の値がopensslコマンドの出力下部の「Signature Algorithm」の値と異なっているかを確認します。

*Androidの場合

設定 > セキュリティ > 信頼できる認証情報 > ユーザー > 該当の証明書をタップ

と操作し、表示される情報の末尾の「SHA-1指紋」の値がopensslコマンドの出力の「SHA1 Fingerprint」の値と異なっているかを確認します。

上記が異なっていたら、改めて自身のPC上のBurpの証明書をインストールし直してください。

© 2016 - 2024 DARK MATTER / Built with Hugo / Theme Stack designed by Jimmy