ikepyonのだめ人間日記

セキュリティに関することを書いていく予定。

暗号化

お客さんのとこで暗号化の話がでてきたのでちょっと考えてみる。
情報を暗号化することで、うれしいのはあくまで暗号化する鍵を持っている人以外に情報がわかりづらくなるだけである。暗号化された情報が漏洩した場合、不正に情報を入手したやつの所から情報がなくなるわけではない。ここに注意しないと偉い目にあってしまう。
で、情報にはそれ自体に価値がある有効期限という物が決まっているのが普通である。その有効期限内に情報が漏れても大丈夫なようにするために暗号化という作業を行う。だから、情報の有効期限が10秒ぐらいしかないのであれば、別にシーザー暗号でやりとりをしても問題がない(たぶん)。だけど、それが数年にわたって有効なのであればシーザー暗号では意味がない(シーザー暗号ではたぶん1日と持たないだろう)。
だいたい今使用されている暗号アルゴリズムはほとんど鍵を知らないと解読にアホみたいに時間がかかることを利用しているのである。アホみたいに時間がかかると言うが、アホみたいに高速なコンピューターやアホみたいに大量のコンピューターを使えば、暗号化された情報から許容範囲内で情報を得ることができる。最も、このアホみたいに高速なコンピューターやアホみたいな台数のコンピューターというのは普通は集められないので暗号を解読するのは無理だといっているだけである。こんなの用意するぐらいならもっと別の方法で情報を得ようとする方が賢いやり方だ。というわけで、暗号化されている情報が漏れても安心というのはちょっと違うというのを忘れてはいけない。

さて、そういうことを踏まえてシステムで情報を管理する際に、暗号化することを考える。あくまで情報を守るのはシステムをセキュアにして、許可されていない人間から情報にアクセスできないようにすることである。暗号化して情報を格納することは万が一許可されていない人間がシステムのセキュリティホールを使って情報にアクセスしたとしても、その情報を利用しにくくする事にすぎない。つまり、暗号化することで保険をかけているのである。そこを間違って理解すると偉いことになる。
情報漏洩対策として暗号化があげられることがあるが、場合によってはこれは誤りのことがある。つまり、許可されている人間が暗号化されている情報の中身を漏らすことを防ぐことは暗号化では絶対にできないということである。もし本当に情報漏洩を防ごうとしたら、システムではなくその情報を扱う人に対する心理的な対策をとる必要がある。

で、どのようにすればよいかと考える。
情報を意図的に漏洩しようとする場合、漏洩する人に何らかのメリットがあったり、組織に対する不信があると思われる。
まあ、メリットの最たる物は金銭的な物だろう。これに対するにはこういった情報を買う者がいるからであるので、これを減らしたり、売ることに対する大きなデメリットを与えればよいのではと思う。これははっきり言って一組織だけではいかんともしがたいことなので社会全体で何とかしないといけないんだけど。
一方、組織に対する不信は、情報を扱う者に対して何らかの優遇を与える等、不信感を与えないようにするしかないのではないだろうか?これがこのご時世難しいところだったりするけど。
情報の意図のない漏洩の場合は情報を取り扱う者のミスであることがほとんどであるので、ミスが怒りにくい仕組みを作ったり、教育を行うしかないと思われる。これってISMSで言っていることだけどね。でも、これがまた非常に難しかったりするのがなんだなぁと思う今日この頃。

RSAセキュリティ、NDSに暗号化ツールキットの「RSA BSAFE Crypto-C」をライセンス

http://www.watch.impress.co.jp/game/docs/20041202/rsa.htm
ほほう。変なところで使われとるなぁ。RSAもがんばるなぁ。でもCrypto-C使ったコードを読んだことがあるけど、「なんでCやねん。C++せいや。C++やったらクラス化して隠蔽いっぱいできて、うれしいのに」という記憶しかないんですが。記憶違いかなぁ?