インターネットで買い物をするときに,クレジットカード番号や住所・氏名といった個人情報を送信することは多いだろう。こうした大事な情報を安心して送れるのは,SSL(secure sockets layer)というプロトコルのおかげだ。今回は,インターネットで暗号通信を実現するSSLを取り上げる。

ブラウザに錠前マークが出る

 SSLで通信をしていることは,Webブラウザを注意深く見ればすぐわかる。Webブラウザのアドレス入力欄やステータス・バーに錠前マークが出ているとSSL通信をしているのだ。また,アドレス欄に「https://~」というURLを見たことがある人もいるかもしれない。この表示もSSL通信をしている証拠である。

 SSL通信をするために何か特別な操作をする必要はない。Webを使っていると,いつの間にか錠前マークが表示される。そのため,普段はしくみを意識しないで使っている人がほとんどかもしれない。でも,ちょっと考えてみると,「普段のWebアクセスと何が違うのか?」,「本当に相手のサーバーとの通信は安全と言えるのか?」といった疑問も浮かぶ。今回は,こうしたSSLの疑問をスッキリさせよう。

 ただSSLは,理解しにくいプロトコルとも言える。しくみを理解するためには,暗号や認証の知識が必要になってくるからだ。こうした暗号や認証の基礎知識も押さえながら進めていこう。

要点をつかんでから全貌を見よう

 Lesson1では,SSLの機能と位置付けを見ていく。そもそもSSLを使うと何ができるのかを最初に確認する。そして,通信の流れのどの部分でSSLが使われているのかを押さえよう。TCPやHTTPといった他のプロトコルとの関係を見れば,通信におけるSSLの位置付けが見えてくるはずだ。

 Lesson2では,SSLの概要をつかもう。SSLのやりとりは複雑である。そのため,実際のやりとりをいきなり理解しようとすると,SSLの本来の役割や機能を見失いがちだ。本題に入る前に,「何のためにどんなやりとりをするのか」といった“本質”を押さえてしまおう。ここがわかると実際のSSLのやりとりが理解しやすくなる。

 その次のLesson3で,実際のSSLのやりとりの様子とメッセージの内容を確認する。ここで紹介する内容が,SSLの全貌である。ここまで理解できたら,SSLはマスターできたと言ってもいい。また,Lesson2で押さえた内容が,実際のSSLのやりとりの中のどの部分で実行されているかをここで確認してほしい。

 Lesson4では,通信相手のサーバーが信頼できるかどうかを検証するしくみを見てみよう。SSL通信では,パソコンがサーバーから「証明書」と呼ばれるデータを受け取って検証することで通信相手を確認している。証明書とはどういうものかを押さえ,証明書を検証する流れを見てみよう。