RPOWについての質問に、手短にいくつか答える。今週はCryptoに来ているので。
Taralは証明について尋ねた。これは、IBMの「IBM 4758 PCI Cryptographic Coprocessor Custom Software Interface Reference」の付録Cに公開されているルート鍵に基づいている。この資料はhttp://www.ibm.com/security/cryptocards/html/library.shtmlから手に入る。IBMのウェブページhttp://www.ibm.com/security/cryptocards/html/faqcopvalidity.shtmlにも公開されている。これで、その証明が本物のIBM 4758を指していることが分かる。
さらに、証明には、RPOWプログラムのハッシュと、そのプログラムが生成した一組の鍵の両方が含まれている。rpow.netのサイトに書いた方法を使えば、RPOWのソースコードから、証明に記されたハッシュと一致するハッシュを作れる。これで、RPOWサーバーで実際に動いているソースコードを手にしていることが分かる。そのソースを調べれば、プログラムが秘密鍵を決して外に出さず、ボードから持ち出させないことを確かめられる。これで、RPOWの通信用の鍵で暗号化したメッセージを送って意味のある応答が返ってくれば(メッセージはHMACで守られている)、証明に記されたプログラムと話していることが分かる。
リン・ウィーラーは、マイク・ボンドとリチャード・クレイトンによるIBM 4758の破り方に触れている。http://www.cl.cam.ac.uk/~rnc1/descrack/ に説明がある。これは実際には4758を破ったのではなく、ボード上で動いていたアプリケーション、つまりIBMのCCAの支援ソフトウェアの暗号の弱点を突いたものだ。RPOWはCCAを使っておらず、その攻撃には弱くない。IBMもその後CCAを直している。
もちろん、RPOWは私自身の仕事で、完璧からはほど遠いので、それ自体の脆弱性や誤りがあるかもしれない。オープンソースで、rpow.netから手に入るRPOWのソースコードへの検討と意見を歓迎する。
ハル・フィニー