昔はインターネットはセキュリティが甘く、実用性がないと言われるほどでした。
しかし、ある時偉い人がいろんな暗号方式を考え、今ではショッピングとかの個人情報を扱いものでも大丈夫といわれるほどです。
攻撃の種類
まずは暗号化が必要な理由の前に、攻撃手段について知る必要があります。
インターネットでの攻撃には大雑把に分けてPassive AttackとActive Attackがあります。それぞれ受動的攻撃と能動的攻撃です。
Passive Attack(受動的攻撃)とは
能動的攻撃とは、攻撃者が送信者や受信者に攻撃をしたことがバレないようにコソコソする攻撃です。
いわゆる盗聴がこの部類で、トラフィック解析もこれに相当します。
インターネットは比較的盗聴が簡単で、盗聴をしたところで盗聴がバレるようなことはありません。
Active Attack(能動的攻撃)とは
能動的攻撃とは、攻撃者が送信者や受信者にバレてもいい。言ってしまえばタチの悪い攻撃です。
妨害や改ざん、偽装がこれにあたり、受動的攻撃よりも強力です。
盗聴を防ぐことは不可能
インターネットでは盗聴を防ぐことは一般的に不可能だと言われています。しかし、盗聴されたデータを攻撃者にとってわけのわからない羅列にしてしまうことは可能なのです。
そのために暗号化が必要になります。
ただしここで注意しないといけない点は暗号化は「攻撃者にわからなくし、読めなくするもの」ではありません。暗号化とは「攻撃者が内容をわかりづらくする難読化」なのです。
そのためいつかはバレてしまうということを前提に考えてください。ただし、その難読化したデータを復元するのに数百年とかかるよう複雑化させることはできます。
言ってしまえば時間との勝負なのです。
暗号化の意味
暗号には様々な特性があると言われています。
機密性(Confidentiality)
機密性は悪意ある第三者から盗み見されないように保証することです。
暗号化する際に鍵を使い、復号するときにも鍵を使います。(暗号化の種類にもよりますが、同一の鍵である必要はありません)
完全性/正真性(Integrity)
書き換えが行われていないことを確かめるものです。改ざんに対する対策です。
一方向ハッシュ関数で確認するのが一般的にです。
認証
確かに本人からであることを確かめる機能です。
これはなりすましへの対策で、一方向ハッシュ関数やメッセージ認証コード、デジタル署名などで提供されます。
否認不可能性
これはちょっと難しいものですが、送信者が確実にその送信を行なったと確認する機能です。
これはなりすましの対策の一環もあり、受信者が「これはなりすまされて送られたメッセージなんだ!」と言えなくするものです。
ちょっと使い所が難しいですが、株取引とかの金融関係ではすごい大切な機能です。
これはデジタル署名で提供される機能です。
通信する際は暗号化だけでは不十分!
通信の際の暗号化って、ただ暗号化するだけだと思ってる方も多いのではないでしょうか。
実は他にも、データが改ざんされていないか確認したり、本人からの送信だと確認したりと、いろんな機能を組み合わせて実現されています。実は結構奥深いのです。
次の記事