今後のOSに必要な機能 PART.1

名付けてセーフファイルキャッシュ
いきなり名前からかよ! というのは置いといて・・・
そう、http://d.hatena.ne.jp/studiokingyo/20060928#p1にてセキュリティをガシガシにしなくてはならない訳だが、そんなプログラム組んでられないのだ。
よってセキュリティチェック無しのデコードルーチンにファイルを渡す場合はそのファイルが安全かどうかを事前にチェックできるようなシステムがあればよいのかと思った。
しかし、デコードする度になんらかのチェック*1を行っていたのでは遅いのだ。
なのでそれらのファイルは安全になるように一度チェックしたら安全DBに登録するとか、書込み禁止にしてファイルが書き換わらないようにすれば良いかなと。
正に安全なファイルを貯めるのだからセーフファイルキャッシュ?みたいな命名でよい?


具体的な仕様は未定だがそのような感じのシステムがあればナと。
例えば、未知のアーカイブファイルがあるとする。
SHA512をチェックしつつ、アーカイブの状態遷移が異常でないかチェックする。
チェックに失敗したらそのアーカイブファイルのSHA512値を危険ファイルSHA512データベースサーバーに送信。

危険ファイルSHA512データベースサーバーとは
http://hashes.castlecops.com/hash21922108-KERNEL_DLL.html*2
のような感じに登録するようにして誰もがそのリソースを使えるようにする。
だが、これだと一極集中なのでミラー用意するなりakamai的にするなりP2Pでどうにかしてがんばるなりをしてやっと実現できるシステムなのは言わないまでも無い。


実はP2Pでその手の安全性チェックの相互やり取りは前々から温めていた企画だったりする。
でも、これって結局はウイルス対策ソフトと一緒なのかもしれない・・・と感じてみたり・・・
アーカイブもウイルス扱いするって事なのかな?
あー!!考えがまとまらない!!!


とにかく、安全だと保障されたファイルに対してはチェック処理が入っていないデコードルーチンで処理できるので高速化が望めるというわけだ!!!
VistaのSuperFetchのセキュリティチェック版みたいなものだと考えて欲しい!!!(いや、もっと分からない例えになってしまったぞ!)
が、どこかのウイルスがそのチェックしたファイルリストみたいなデータを書き換えちゃったら元も子もないのでこれをどうにかして頑張るしかないのだが・・・

*1:例えば、事前に状態遷移をチェックするとかCRCやFNVやMD5やSHA256等の一方向ハッシュを取ってチェックどこかのDBと照合してチェック

*2:注意:これは危険ファイルのデータベースではありません。