Software-Defined どさにっき 〜2015年2月中旬〜

by やまや
<< = >>

2015年2月20日(金)

Superfish

_ オレオレ CA 証明書をつっこんで HTTPS なサイトに MITM で広告つっこむよ、と。

_ うーん。セキュリティゲートウェイやアンチウイルスソフト、あるいは Web アプリケーションの開発補助ツールでも同じような動作をするものが多いので、このやりかたを批判するとしたらこういう製品もすべて批判することになっちゃうんだよなぁ。かるくぐぐってみただけで 見つかった。ほかにもまだまだいっぱいある。Superfish は広告追加というユーザにはとくに益のない目的でやってるので叩き放題だけど、こういう製品の場合はセキュリティ向上やら開発やらという大義名分があって、実際わりと広く受け入れられてるんだよね。自分としてはそういう目的であってもひじょーに気持ち悪くて勘弁願いたいんだけど。

_ アンチウイルスの場合、通信経路に割り込むのではなく、ブラウザの内部で動くプラグインとして実装して、ブラウザに復号してもらった後で検知させるような作りのものも存在する。AdBlock が HTTPS なサイトの広告を消せるのも、ブラウザの内部で動くから。ただ、プラグインをブラウザごとに(場合によっては同じブラウザでもバージョンごとに)開発する必要があって工数がバカにならないし、そもそもプラグインの仕組みが存在しなかったりすると実現できないという問題がある。プラグイン方式だったならばこういう問題は起きなかっただろうと思うんだけど、広告屋としてはそんな手間をかけるよりもお手軽な MITM の方に流れるわなぁ。…って、 ブラウザ拡張版もあるのかよ!

_ Superfish が何より致命的だったのはオレオレ CA の秘密鍵をぶっこ抜かれてしまったということと、その鍵がすべて共通だったということ。せめて端末ごとに異なる鍵、異なる CA 証明書を生成していたのであれば、攻撃者がそれを悪用した何かをおこなうためにはその PC に侵入して鍵を盗む必要があった。実際はぜんぶ共通なので、攻撃者はわざわざ手間をかけて盗まなくても、手元でぶっこ抜いた鍵でなんでもできちゃう。

_ ところで、実はほかにもオレオレ CA 証明書を勝手に追加して出荷してた製品がある。お手元の RHEL5/CentOS5 をご覧ください。/etc/pki/tls/cert.pem にオレオレ CA が入ってんだよクソが。Superfish の件と違って秘密鍵は漏れてないけど、WebTrust for CA の正規の認証を取得してない怪しい CA 証明書がしれっとルート証明書の束に追加されてるのはまぎれもない事実。なお、RHEL6/CentOS6 には含まれていない。また RHEL5 に含まれていたものについても、現在はすべて期限が切れて無効になっている。

_ 以下、RHEL5 に入ってるオレオレ CA 証明書3枚のうち1枚の実物。

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 0 (0x0)
        Signature Algorithm: md5WithRSAEncryption
        Issuer: C=US, ST=North Carolina, L=Raleigh, O=Red Hat, Inc., OU=Red Hat Network, CN=RHN Certificate Authority/emailAddress=rhn-noc@redhat.com
        Validity
            Not Before: Aug 29 02:10:55 2003 GMT
            Not After : Aug 26 02:10:55 2013 GMT
        Subject: C=US, ST=North Carolina, L=Raleigh, O=Red Hat, Inc., OU=Red Hat Network, CN=RHN Certificate Authority/emailAddress=rhn-noc@redhat.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:bf:61:63:eb:3d:8b:2b:45:48:e6:c2:fb:7c:d2:
                    21:21:b8:ec:90:93:41:30:7c:2c:8d:79:d5:14:e9:
                    0e:7e:3f:ef:d6:0a:9b:0a:a6:02:52:01:2d:26:96:
                    a4:ed:bd:a9:9e:aa:08:03:c1:61:0a:41:80:ea:ae:
                    74:cc:61:26:d0:05:91:55:3e:66:14:a2:20:b3:d6:
                    9d:71:0c:ab:77:cc:f4:f0:11:b5:25:33:8a:4e:22:
                    9a:10:36:67:fa:11:6d:48:76:3a:1f:d2:e3:44:7b:
                    89:66:be:b4:85:fb:2f:a6:aa:13:fa:9a:6d:c9:bb:
                    18:c4:04:af:4f:15:69:89:9b
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Subject Key Identifier:
            69:44:27:05:DC:2E:ED:A5:F4:81:C4:D7:78:45:E7:44:5D:F8:87:47
            X509v3 Authority Key Identifier:
            keyid:69:44:27:05:DC:2E:ED:A5:F4:81:C4:D7:78:45:E7:44:5D:F8:87:47
            DirName:/C=US/ST=North Carolina/L=Raleigh/O=Red Hat, Inc./OU=Red Hat Network/CN=RHN Certificate Authority/emailAddress=rhn-noc@redhat.com
            serial:00
 
            X509v3 Basic Constraints:
            CA:TRUE
    Signature Algorithm: md5WithRSAEncryption
        23:c9:ca:07:9f:5e:96:39:83:e0:4e:da:dd:47:84:30:ca:d4:
        d5:38:86:f9:de:88:83:ca:2c:47:26:36:ab:f4:14:1e:28:29:
        de:7d:10:4a:5e:91:3e:5a:99:07:0c:a9:2e:e3:fb:78:44:49:
        c5:32:d6:e8:7a:97:ff:29:d0:33:ae:26:ba:76:06:7e:79:97:
        17:0c:4f:2d:2a:8b:8a:ac:41:59:ae:e9:c4:55:2d:b9:88:df:
        9b:7b:41:f8:32:2e:ee:c9:c0:59:e2:30:57:5e:37:47:29:c0:
        2d:78:33:d3:ce:a3:2b:dc:84:da:bf:3b:2e:4b:b6:b3:b6:4e:
        9e:80
-----BEGIN CERTIFICATE-----
MIID7jCCA1egAwIBAgIBADANBgkqhkiG9w0BAQQFADCBsTELMAkGA1UEBhMCVVMx
FzAVBgNVBAgTDk5vcnRoIENhcm9saW5hMRAwDgYDVQQHEwdSYWxlaWdoMRYwFAYD
VQQKEw1SZWQgSGF0LCBJbmMuMRgwFgYDVQQLEw9SZWQgSGF0IE5ldHdvcmsxIjAg
BgNVBAMTGVJITiBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEW
EnJobi1ub2NAcmVkaGF0LmNvbTAeFw0wMzA4MjkwMjEwNTVaFw0xMzA4MjYwMjEw
NTVaMIGxMQswCQYDVQQGEwJVUzEXMBUGA1UECBMOTm9ydGggQ2Fyb2xpbmExEDAO
BgNVBAcTB1JhbGVpZ2gxFjAUBgNVBAoTDVJlZCBIYXQsIEluYy4xGDAWBgNVBAsT
D1JlZCBIYXQgTmV0d29yazEiMCAGA1UEAxMZUkhOIENlcnRpZmljYXRlIEF1dGhv
cml0eTEhMB8GCSqGSIb3DQEJARYScmhuLW5vY0ByZWRoYXQuY29tMIGfMA0GCSqG
SIb3DQEBAQUAA4GNADCBiQKBgQC/YWPrPYsrRUjmwvt80iEhuOyQk0EwfCyNedUU
6Q5+P+/WCpsKpgJSAS0mlqTtvameqggDwWEKQYDqrnTMYSbQBZFVPmYUoiCz1p1x
DKt3zPTwEbUlM4pOIpoQNmf6EW1Idjof0uNEe4lmvrSF+y+mqhP6mm3JuxjEBK9P
FWmJmwIDAQABo4IBEjCCAQ4wHQYDVR0OBBYEFGlEJwXcLu2l9IHE13hF50Rd+IdH
MIHeBgNVHSMEgdYwgdOAFGlEJwXcLu2l9IHE13hF50Rd+IdHoYG3pIG0MIGxMQsw
CQYDVQQGEwJVUzEXMBUGA1UECBMOTm9ydGggQ2Fyb2xpbmExEDAOBgNVBAcTB1Jh
bGVpZ2gxFjAUBgNVBAoTDVJlZCBIYXQsIEluYy4xGDAWBgNVBAsTD1JlZCBIYXQg
TmV0d29yazEiMCAGA1UEAxMZUkhOIENlcnRpZmljYXRlIEF1dGhvcml0eTEhMB8G
CSqGSIb3DQEJARYScmhuLW5vY0ByZWRoYXQuY29tggEAMAwGA1UdEwQFMAMBAf8w
DQYJKoZIhvcNAQEEBQADgYEAI8nKB59eljmD4E7a3UeEMMrU1TiG+d6Ig8osRyY2
q/QUHigp3n0QSl6RPlqZBwypLuP7eERJxTLW6HqX/ynQM64munYGfnmXFwxPLSqL
iqxBWa7pxFUtuYjfm3tB+DIu7snAWeIwV143RynALXgz086jK9yE2r87Lku2s7ZO
noA=
-----END CERTIFICATE-----


<< = >>
やまや