2012年1月26日木曜日

Ivy BridgeではCPUに物理乱数生成器が乗るらしい

4年間使った自宅のMacbookを買い替えようと思い立ちCPUについて調査していたら、今年に予定されているIntelの新しいCPUシリーズ(Ivy Bridge)の興味深い新機能を発見しました。

Ivy Bridgeには、AVX命令の拡張としてRdRANDと言う命令が追加されます。この命令はCPU上に搭載された物理乱数生成器を使って、高精度の乱数を高速に入手できるようにするものです。

今まで高精度な物理エントロピー源を用いた乱数を使おうとすると、HSM (Hardware Security Module) やTPMを使ったりしなければなりませんでした。こういった特殊なハードウェアを用いなくても精度の高い乱数が入手できるようになるのは革新的だと思います。

また、CPU内部で乱数を生成するため、乱数の生成に関するコストはとても少なくなります。今まではデバイスへのアクセスが必要になったりして、速度はあまり早いとは言えませんでした。

技術的に詳しい話はここに記述されています。3章までは特に難しいことは書かれていないので、興味がある人はご参照あれ。乱数の基本についても簡単に書かれているので、勉強になると思います。

2012年1月24日火曜日

MSのPKIのホワイトペーパーがアップデートしていた

昨年(2011年)の11月にMicrosoftのPKIのWhitepaperがアップデートされていました。こちらから見る事ができ、DOCX版もダウンロード可能です。

MicrosoftはWindows 2000の頃からPKIの実装に力を入れていて、今ではTLS、EFS、Kerberos、スマートカードログオン、IPSec、802.1x (EAP-TLS)、SMIME、NAP(検疫ネットワーク)など、OS内部のさまざまな場所で使用されています。

にもかかわらず、PKIって相変わらずマイナー感が漂っていたりします。個人的には、このようなマイナー感はPKIの導入の敷居が高いのに原因があると思います。認証局の構築・運用はPKIに関するそれなりの知識を求められ、まじめにやろうとすると構築・運用側には結構な負担が生じてしまうのです。

このホワイトペーパーは、Microsoft社内の公開鍵認証局(CA)構成について具体的に紹介されています。実際にPKIアプリケーションを使いたいんだけど、認証局はどのような構成にすればいいか悩んでいる人には参考になると思います。

また、構成方法に加えて、運用についての記述も豊富なので、「EFSを導入したいんだけど、キーアーカイブとリカバリー業務はどうやって構成すればいいの?」のようなポイントにも記述されています。

MicrosoftのPKIソリューションについて、広く薄く知りたい場合にはとても適していると思います。

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へのアクセスが続きます。毎日電源を落とす運用をしている場合は要注意です。