インターネットイニシアティブ(IIJ)は6月28日、エンジニア向けの勉強会イベント「IIJ Technical NIGHT vol5」を開催した。5回目となる今回は、広く使われている暗号化技術「SSL/TLS」の正しい設定についての内容だが、「オフレコで」という発言が多発したディープな発表となった。

IIJ Technical NIGHTは、IIJが不定期に開催しているエンジニア向けの勉強会だ。定期的なイベントとしては毎年11月に3日間連続で開催している「IIJ Technical WEEK」があるが、これを約1時間、1テーマという枠に絞り込み、もっとカジュアルでコンパクトにした内容となる。ちなみに、前回は3月14日に開催。今後は概ね四半期に1回程度のスパンで開催していきたいとのことだ。

今回のテーマは、ウェブサーバーなどで使用される暗号化技術「SSL/TLS」。最近はセキュリティのために通常のウェブサイトでもHTTPではなくHTTPS接続が使用されるようになったが、この時に使われているのがSSL(Security Socket Layer)とTLS(Transport Layer Security)だ。SSLがバージョン3.0になった後、TLSと改名したもので、どちらも基本的には同じものだと考えていい(実際には今はTLSがメインで使われている)。

ウェブサーバーの接続を暗号化する理由としては、ウェブサーバーとの間で個人情報などを安全にやり取りするためというものがあるが、もう一つ、SSL/TLSでは暗号化のためにサーバーが身元を証明する「電子証明書」を使用する。この証明書の持ち主が正しいことを確認できれば、表示されているサイトがフィッシングサイトではない、正規のサイトであることを確認できるというわけだ。

  • ブラウザのアドレス欄の横に鍵マークが表示されれば暗号化されているのがわかる

ただし、SSL/TLSにはバージョンが複数あり、バージョンによっては致命的なバグを抱えていて、事実上使用を禁止されている場合(SSL 3.0)などもある。このため、サーバーがどのSSL/TLSを使用するかを正しく設定されているかは、セキュリティ上重要なポイントとなる。また、電子証明書も期限が切れていたり、稀にだが正しく作成されておらず、ブラウザによっては正規の証明書と認定しないこともある。逆に、機器によってはサポートする規格が古いままのケースもあり、何を対象にサービスを提供するかも考えて設定しなければならない。

  • ブラウザが証明書を正しく認識できないケースでは、このようなアラートが表示される場合がある

このため、いかにSSL/TLSを正しく設定できるか、正しく運用できるかが、ウェブ系エンジニアの腕の見せ所ともいえるが、これだけ広く使われている技術にも関わらず、案外SSL/TLSについては、正しく理解されていないというのも実情だ。こんな背景を元に展開されたのが今回の勉強会というわけだ。