3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

EFSを使ったらどれだけパフォーマンスに影響するのか調査してみた

新しいHDDをかったので重要なドキュメント類は暗号化して保存しようと考えています。

最初パフォーマンスの影響も余り少なく強度な暗号化が期待できる BitLocker を使おうと思っていたんですが、これVista以降じゃないとだめなんですよね。(パフォーマンスについてはASCII.jp:Vistaの暗号化機能 BitLockerを本気で試してみた |ここが変わったWindows Vista 100連発!参照)

現在メインPCはWindows7とXPのデュアルぶーとで両方から重要ファイルにアクセスしたいので、BitLockerは断念しました。

次に思いついたのがNTFSファイルシステムで以前のOSから使える EFS です。

EFSだとBitLockerのようにドライブ単位ではなく、ファイルフォルダ単位で暗号ができるのも特徴ですね。

さて、このEFSですが、以前にパフォーマンスがよろしくないという記事を読んだことがあります。

それで、実際自身のPCで測定してみました。

測定環境は下記のとおりです。

CPU:Pentium4 530J(3.0GHz)

Memory:1.5GB

HDD:Hitachi HDT725032VLA360

以前の記事でも書きましたが、3流PGのPCはWindows7で動かすとかなり重いです。

それを踏まえ WindowsXPWindows7 の両方でテストしてみました。

測定方法ですが、小サイズのファイル1000個(合計24MB)と、700MBのファイルにおいてそれぞれ、通常のノーマルコピー、非EFS領域からEFS領域へのコピー、非EFSファイルをプロパティから暗号化、EFSファイルのコピー、EFSファイルから非EFSファイルへの暗号化解除のテストを行います。なお、コピーについてはWindowsエクスプローラフリーソフトのFireFileCopyの両方で測定してみました。

結果はこんな感じとなりました。

FireFileCopyをのぞいた結果をグラフにしたものが下記です。

やはりEFS化するとかなりパフォーマンスが悪くなるようです。

プロパティから暗号化や暗号化解除のパフォーマンスが悪いのは、この時いったん一時ファイル(efs0.tmp)を作りながら処理してるからのようですね。この一時ファイルですが、削除済みの平文データが復元される場合があるによると、一時ファイルから暗号からされたファイルの平分データが読み取れてしまうようです。

パフォーマンスやセキュリティを考えると、EFS化するときは、プロパティからするのではなく、EFS有効のフォルダにコピーするという運用がよさそうですね。

また、3流PGのPCではやっぱりWindows7のほうがほとんどで遅い結果になっていますね。

小さいファイルで数が多い場合の暗号化操作はかなりパフォーマンスの影響度も高いこともわかります。

さて、予想以上にパフォーマンスへの影響が高いEFSですが、暗号化するべきか否か悩みどころですね。。。。