SSLによる暗号化の仕組み

今回から、Webシステムにおけるコンテンツ配布で非常に重要な仕組みであるSSLについて、数回に分けて書いていこうと思う。

SSLって?

さて、SSL(Secure Socket Layer)とは一言で言うとWebアクセスなどのTCP通信を暗号化する技術。ブラウザを使ったインターネットバンキングやショッピングでは、必ずSSLを使って通信の内容を暗号化するようになっている。これによりクレジットカードの番号や個人情報などがインターネット上で盗聴されるのを防いでいる。

SSLの重要な役割「認証」

SSLの重要な役割は暗号化だが、実はそれ以外にもう1つ重要な役割がある。それは、「通信相手が真正な者であるということを証明する」という認証機能である。SSLでは、通信を開始する際にX.509デジタル証明書というものを利用し、接続しようとしているサーバがべリサイン社などの公的認証機関に登録された素性の確かなサーバであることを確認する。

続いて、そのデジタル証明書に格納されている「非対称鍵」という鍵を使いサーバとの間に暗号化通信を確立する。非対称鍵を使った暗号化通信は非常に強固であり、実用の範囲においては暗号が解読される可能性はほぼないと言える。ただし、非対称鍵暗号は非常に複雑な計算処理が必要なためコンピュータに大きな負荷をかけるというデメリットがある。SSLでは、通信開始時に非対称鍵を使い共通鍵の交換を行い、接続確立以降の通信自体は負荷の軽い共通鍵暗号を使って行う。

鍵長にはいくつかの種類があり、当然ながらサイズが大きな方が暗号強度が高くなる。実用的には40bitで十分だが、ビジネス向けの場合には128bitの強度の鍵を使用する場合が多い。

次回(デジタル証明書の中身について)に続く。