2011年11月18日金曜日

データベース暗号化ガイドライン by DBSC

ここ数年はデータベースの暗号化に関する話題が(少しだけ)盛り上がりを見せているようです。某HSM屋さんの話によると、近年はDB暗号化の割合は着実に増えて来ているそうです。数年前と比べると、セキュリティに対する意識は変わってきたのでしょうね。

さて、11/1にデータベース・セキュリティ・コンソーシアム(DBSC)から「データベース暗号化ガイドライン 第1.0版」(PDFです)が公開されていました。35ページほどの文書ですが、データベース暗号化を行う際に考慮すべき事項がよく纏められています。暗号関連のお仕事をしている人は、ざっと目を通しておくとよいと思います。

読んでみた感想ですが、対象は何にせよ暗号を行う際に一番の問題となるのが、やっぱり暗号鍵の運用だなと思いました。暗号に詳しくない人は、一度データを暗号化すれば情報漏洩を防げると考えてしまいがちですが、実際は暗号鍵の危殆化や暗号アルゴリズムの脆弱性に対応しなければなりません。

それ以外にも、暗号鍵の安全な保管や、可監査性の担保と定期的な監査の実施などの暗号システムに特有なオペレーションが多く、意外と運用面での負担が大きかったりします。また、こういった暗号システム特有の運用に関する観点は、暗号分野が専門性の高い分野であることもあり、エンドユーザさんも正確に理解できていないことが多いと思います。

最近はPKI絡みのインシデントも多いですし、今後は暗号に対する基本知識が、構築側/運用側を問わずに必須になってくるのかもしれませんね。

2011年11月11日金曜日

今度はDigiCert Sdn社が不正な証明書を発行してしまった件

MicrosoftからSecurity Advisory 2641690が提供されています。先日のDiginotar社の騒動に続き、今度はDigiCert Sdn社の中間認証局が不正な証明書を発行してしまったそうです。どうやら弱い鍵アルゴリズムを使った証明書が発行されてしまったらしく、2つの中間認証局の証明書が失効されたそうです。

Micorosoftから提供されたパッチを適用する前と後でのWindows証明書ストアの変化を見てみましょう。パッチ適用前の証明書管理コンソール(certmgr.msc)の状態は以下のようになります。
パッチ適用後の証明書管理コンソールの状態は以下のようになります。2つの中間認証局が信頼されていない認証局に追加されているのが分かります。発行元はEntrustとCyber Trustですね。
しかし、最近は証明書関連のインシデントが多いですね。これが氷山の一角ではなければいいのですが。

2011年11月10日木曜日

今更ながらWindows 7のReadyBoostを使う

Pentium 4, メモリー1GBの遅いPCでWindows 7を使うことになったので、ReadyBoostで高速化できるかどうか試してみました。結果的に体感速度は良くなったのですが、原理が良くわからなかったのでちょっと調べてみました。

ReadyBoostは簡単に言うと、USBメモリーにHDDのキャッシュを作成することによって、アプリケーションの起動を高速に行う技術です。MicrosoftではReadyBoostに使用できるUSBメモリーの要件として、以下の項目を挙げています。

  • 4KByteランダム読み込みが、2.5MB/sec
  • 512KByteランダム書き込みが、1.75MB/sec

一般的なHDDと比較すると、ずいぶん低い要求に感じます。何故、遅いUSBメモリーにキャッシュを作ると、体感速度が向上するのでしょうか。で、色々ググってみると。ここら辺の話は、Mark Russinovich氏著のInside the Windows Vista kernel: Part 2に記述されていました。以下に引用します。
The speed of CPUs and memory are fast outpacing that of hard disks, so disks are a common system performance bottleneck. Random disk I/O is especially expensive because disk head seek times are on the order of 10 milliseconds-an eternity for today's 3GHz processors. While RAM is ideal for caching disk data, it is relatively expensive. Flash memory, however, is generally cheaper and can service random reads up to 10 times faster than a typical hard disk. 
つまり、 HDDの苦手なランダムアクセスを、ランダムアクセス(の読み込み)が得意なUSBメモリーに肩代わりしてもらうということですね。しかも10倍も違うそうです。

せっかくなので、対象となったマシンのHDDと手元にあるUSBメモリー(3本)の速度を計測してみました。ベンチマークはCrystal Mark 3.01を使用しています。USBメモリーのフォーマットはNTFSです。

たしかに、HDDは4KByteのランダムアクセスが極端に遅くなっています(水色の線です)。そして、USBメモリーの方は3本とも、そこそこの速度が出ています。このアクセス特性の差を使って、HDDの弱点を補完するんですね。

ちなみに、4GBのUSBメモリーを使ってReadyBoostの効き具合をパフォーマンスメーターで確認してみたところ、以下のようになりました。USBメモリーはBAFFALOのRFU3-K4Gです。
Bytes cachedとCache space usedを見ると、4.3GByteのデータが2.5GBに圧縮されてUSBメモリーに記憶されていることが分かります。

USBメモリーに保存されているデータはAESによって暗号化されています。データの圧縮と暗号化のオーバーヘッドを考慮しても、HDDからデータを読むよりかUSBメモリーから読み込んだほうが早くなるということなんですね。これほどまでにHDDのランダムアクセスが遅いのは意外でした。

1点だけ注意点。ReadyBoostはシステム起動時にキャッシュデータをHDDからUSBメモリーに転送します。このため、起動直後はしばらくはHDDへのアクセスが続きます。毎日電源を落とす運用をしている場合は要注意です。