ビットコイン・インスティテュート

SSLの​挑戦、​破られる!

-----BEGIN PGP SIGNED MESSAGE-----

SSLの挑戦、破られる

1995年7月17日にハル・フィニーが投稿したSSLの挑戦(メッセージID:<3u6kmg$pm4@jobe.shell.portal.com>)の答えを知らせる。これは <URL:http://www.portal.com/~hfinney/sslchal.html> にもある。

鍵の秘密の40ビットの部分は7e f0 96 1f a6だ。INRIA、エコール・ポリテクニーク、ENSにある、約120台のワークステーションと何台かの並列計算機のネットワークで、総当たりで探して見つけた。鍵は、鍵の空間の半分を少し超えたところまで調べた時点で、8日で見つかった。

暗号化されたデータの平文は、次のとおりだ。

SERVER-VERIFYのメッセージは:

9C B1 C7 83 D9 BB B7 75 01 6F 19 19 03 58 EC 05     MAC-DATA
05                                                  MSG-SERVER-VERIFY
AF 84 A7 79 F8 13 69 20 25 9B 53 A0 60 AE 75 51     CHALLENGE

CHALLENGEの部分は、クライアントが最初のメッセージで送ったチャレンジの写しだ。

その答えが、CLIENT-FINISHEDのメッセージだ:

22 BB 23 39 55 B0 7F B6 1A B0 35 85 F7 DB C1 E5     MAC-DATA
03                                                  MSG-CLIENT-FINISHED
BF EB 90 F8 2C 0C E1 EA 18 AC 11 4C 83 14 21 B6     CONNECTION-ID

次のメッセージはSERVER-FINISHEDだ:

D4 CD F3 4E 38 F1 2B 1E DC FD 72 C8 34 02 CD FF     MAC-DATA
06                                                  SERVER-FINISHED-BYTE
23 1C 05 40 60 72 49 6E 83 BA D1 28 CC 9B 5F 63     SESSION-ID-DATA

そのあとに、クライアントが送ったデータのメッセージが来る。おいしいのはこれだ。中身をフィールドごとに分けておいた(本文は1行の長い行だった)。

72 23 B5 98 0D D0 07 1A DA F1 C7 A4 40 41 5A 10     MAC-DATA
POST /order2.cgi HTTP/1.0
Referer: https://order.netscape.com/order2.cgi
User-Agent: Mozilla/1.1N (Macintosh; I; PPC)
Accept: */*
Accept: image/gif
Accept: image/x-xbitmap
Accept: image/jpeg
Content-type: application/x-www-form-urlencoded
Content-length: 472

source-form=order2-cust.html&
order_number=31770&
prod_80-01020-00_Mac=1&
carrier_code=UM&
ship_first=Cosmic&
ship_last=Kumquat&
ship_org=SSL+Trusters+Inc.&
ship_addr1=1234+Squeamish+Ossifrage+Road&
ship_addr2=&
ship_city=Anywhere&
ship_state=NY&
ship_zip=12345&
ship_country=USA&
ship_phone=&
ship_fax=&
ship_email=&
bill_first=&
bill_last=&
bill_org=&
bill_addr1=&
bill_addr2=&
bill_city=&
bill_state=&
bill_zip=&
bill_country=USA&
bill_phone=&
bill_fax=&
bill_email=&
submit=+Submit+Customer+Data+

この注文は、ミスター・コズミック・カムクワット、SSL Trusters Inc.、1234 Squeamish Ossifrage Road、Anywhere、NY 12345(米国)からのものだ。

あいにく、カムクワット氏は電話番号を書き忘れていて、サーバーの返事(パケット二つ)はこうだ:

09 12 AD FE A5 A9 BF D1 8C 8C E2 6A A3 48 B9 75    MAC-DATA
HTTP/1.0 200 OK
Server: Netscape-Commerce/1.1
Date: Wednesday, 12-Jul-95 05:40:30 GMT
Content-type: text/html

1C CD C4 3D 80 F1 7B 94 11 AC E8 72 B1 99 BC FA    MAC-DATA
<TITLE>Error</TITLE><H1>Error</H1>
The shipping address you supplied is not complete.  The street address,
city, state, zip code, country and phone number are mandatory fields.
Please go back and specify the full shipping address.  Thank you.

この結果は、急ごしらえの分散探索のプログラムで見つけた。サイファーパンクの共同の取り組みが数週間遅れそうだと分かって、書いたものだ。プログラムを走らせてから鍵が見つかるまで、1週間を少し超えるくらいかかった(鍵の空間をすべて調べるには、約15日かかっただろう)。私が使える計算機のほとんどで走らせた。まとめると次の表のとおりだ:

種類                  速さ(鍵/秒)     台数       注
- --------------------------------------------------------
DEC (alpha)           18000-33000        34
DEC (MIPS)            2500-7500          11
SPARC                 2000-13000         57
HP (HPPA/snake)       15000              3
Sony (R3000)          1100-4000          3
Sun 3                 600                2
Sequent B8000         100 x 10           1         (1)
Multimax (NS532)      600 x 14           1         (1)
KSR                   3200 x 64          1         (1) (2)

注:

  1. これらはマルチプロセッサーの計算機
  2. KSRがこの計算に使ったのは約2日だけ。

探索の平均の速さは全体で毎秒約85万鍵、最大で毎秒135万鍵(KSRを除けば115万鍵)だった。

結論:

  • 私が使った程度の計算力なら、多くの人が手にしている。輸出用のSSLのプロトコルは、政府には簡単に破れるほど弱く、それでいて素人の試みには耐えるほど強い、ということになっている。後のほうで失格だ。このプロトコルにクレジットカードの番号を預けてはいけない。

  • サイファーパンクはたしかにコードを書く。だが、走らせるのを忘れてはいけない。

計算機の時間を提供してくれた、INRIA、エコール・ポリテクニーク、エコール・ノルマル・シュペリウールの人たちに感謝したい。(どうせ、ほとんどの人は休暇中だったけれど……)

この文の写しは <URL:http://pauillac.inria.fr/~doligez/ssl/announce.txt> にある。

-----BEGIN PGP SIGNATURE-----
Version: 2.6.2

iQCSAwUBMDG4dVNZwSQVabihAQGeFAPnUZil4WlauoMke9HaULDNOVf1hLXS0i9U
VJWZsPHcihDbn6nBN9T6f3sW/S08N5YJFSCmuZzqO59c0nOAKILb6a3TsXjFEcu8
W8UfwFsZa6gx7iuYqandhoHBEkkc5NSwMe1f+lPiV2MdclzQ4/VtZ7Oa1VB+RftD
Am4+w/Y=
=Fju1
-----END PGP SIGNATURE-----

**** 上のメッセージのタイムスタンプ:

-----BEGIN PGP MESSAGE-----
Version: 2.6.2

iQBVAwUAMDGsOeWrvYiumrHZAQF0QwIAnDWdVVTiVmUTY5lp08yPeLRoFetczb+U
E0WVgTUJ4a16tinOPaJl/6jOpPUUPWMjkDaD2N1xw8lGqm0UgZJiGIkAkgMFATAx
uKJTWcEkFWm4oQEBAQ8D5ixvYrpEAQYfeNXmbB46BTTnBwBPS/JjfVFEEnC0Zsoj
cyh/WELUsZf785b23vEq9JFvZB+bq1UsJTpttl335TrW344ZYof3kl6fdEF2Jf5q
LxQjkuP9s/OQX5iJZpHz4LUxbb+/hOwSdZ2O3LV7ETiHs9AK1+bnKfOGDyei
=qO7V
-----END PGP MESSAGE-----