昨年(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ソリューションについて、広く薄く知りたい場合にはとても適していると思います。
2012年1月24日火曜日
2011年11月10日木曜日
今更ながらWindows 7のReadyBoostを使う
Pentium 4, メモリー1GBの遅いPCでWindows 7を使うことになったので、ReadyBoostで高速化できるかどうか試してみました。結果的に体感速度は良くなったのですが、原理が良くわからなかったのでちょっと調べてみました。
ReadyBoostは簡単に言うと、USBメモリーにHDDのキャッシュを作成することによって、アプリケーションの起動を高速に行う技術です。MicrosoftではReadyBoostに使用できるUSBメモリーの要件として、以下の項目を挙げています。
一般的なHDDと比較すると、ずいぶん低い要求に感じます。何故、遅いUSBメモリーにキャッシュを作ると、体感速度が向上するのでしょうか。で、色々ググってみると。ここら辺の話は、Mark Russinovich氏著のInside the Windows Vista kernel: Part 2に記述されていました。以下に引用します。
せっかくなので、対象となったマシンの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へのアクセスが続きます。毎日電源を落とす運用をしている場合は要注意です。
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へのアクセスが続きます。毎日電源を落とす運用をしている場合は要注意です。
2009年12月6日日曜日
WindowsでL2TP/IPSecで証明書ベースの認証を行うときの注意点
WindowsでL2TP/IPSecを使ったVPNを構築していて証明書関連でハマったのでメモ。
機器構成はVPNルーター1台とWindows XP/7の2台のクライアントだけ。VPNルーターで簡易なCA(認証局)が稼働していて、そのCAが発行した個人証明書を各Windows機にインストールしてL2TP/IPSecの認証に使用する。今回はCAは自己署名をしているので、CA証明書も併せてインストールした。
現象
VPN接続を開始するとすると以下のエラーが出る。
Windows XPの場合:
対策
このエラーが出た場合は認証に使用するVPNクライアント用の証明書のインストール先が間違っている場合がある。通常はコンピューターの証明書ストアにVPNクライアント用の証明書をインストールする。これはマイクロソフトのKB314831でも書かれている。
上記のKBの通りにしても解決しない場合は(今回はそうだったわけだが)、VPNクライアント用の証明書を、現在のログイン中のユーザーの「個人」の証明書ストアと、ローカルコンピュータの「個人」の証明書ストアの両方にインストールしてみてほしい。また、ルート証明書も同様に両方の「信頼されたルート証明機関」にインストールする。これで認証がクリアできる場合がある。
つーか「コンピューター証明書」ってローカルコンピューターの「個人」の証明書ストアにインストールされたVPN認証に使う証明書の事だったのか。始めはローカルユーザーの証明書ストアにVPN用の証明書をインストールしてたから迷った迷った。エラーメッセージに惑わされてハマっている人もいるんじゃないかと。
設定は簡単だが、その設定にたどり着くまでが長い。知っていれば3分。知らなければ3時間。それがWindowsクオリティ。豆知識、プライスレス。
機器構成はVPNルーター1台とWindows XP/7の2台のクライアントだけ。VPNルーターで簡易なCA(認証局)が稼働していて、そのCAが発行した個人証明書を各Windows機にインストールしてL2TP/IPSecの認証に使用する。今回はCAは自己署名をしているので、CA証明書も併せてインストールした。
現象
VPN接続を開始するとすると以下のエラーが出る。
Windows XPの場合:
エラー 786: このコンピュータには、セキュリティの認証に必要な、有効なコンピュータ証明書がないため、L2TP 接続に失敗しました。Windows 7の場合:
エラー 766: 証明書が見つかりませんでした。IPSec 上で L2TP プロトコルを使う接続では、コンピューター証明書をインストールする必要があります。Vistaは確認していないけど、たぶん7と同じだろう。エラーメッセージを素直に解釈すると、どうやらコンピューター証明書と言うのをインストールしなければならないようだ。なんだそれ?どの証明書だ?
対策
このエラーが出た場合は認証に使用するVPNクライアント用の証明書のインストール先が間違っている場合がある。通常はコンピューターの証明書ストアにVPNクライアント用の証明書をインストールする。これはマイクロソフトのKB314831でも書かれている。
上記のKBの通りにしても解決しない場合は(今回はそうだったわけだが)、VPNクライアント用の証明書を、現在のログイン中のユーザーの「個人」の証明書ストアと、ローカルコンピュータの「個人」の証明書ストアの両方にインストールしてみてほしい。また、ルート証明書も同様に両方の「信頼されたルート証明機関」にインストールする。これで認証がクリアできる場合がある。
つーか「コンピューター証明書」ってローカルコンピューターの「個人」の証明書ストアにインストールされたVPN認証に使う証明書の事だったのか。始めはローカルユーザーの証明書ストアにVPN用の証明書をインストールしてたから迷った迷った。エラーメッセージに惑わされてハマっている人もいるんじゃないかと。
設定は簡単だが、その設定にたどり着くまでが長い。知っていれば3分。知らなければ3時間。それがWindowsクオリティ。豆知識、プライスレス。
2009年4月23日木曜日
Windows 7/2008 R2でのPKI関連の記事@Technet Magazine
MicrosoftのTechnetマガジン2009年5月号(英語版)で「PKI Enhancements in Windows 7 and Windows Server 2008 R2」という記事があった。なるほど、とりあえずVistaの時のような大きな変更は無さそうだね。Server CoreでADCSが使えるようになるのはうれしいかも。
登録:
コメント (Atom)


