ネットワーク基礎の締めくくりとしてSSL/TLSでの通信の仕組みについて解説します。
現代のインターネット通信ではSSL/TLSを用いた暗号化通信を用いるのがもはや常識となりました。httpsにおけるWEBアプリケーションを表示する仕組みとしてSSL/TLS通信の仕組みについて見ていきましょう。
この記事は「ネットワーク基礎 – WEBページが表示されるまで」の「6.SSL/TLSとは」の解説記事となります。
SSL/TLSとは
SSL(Secure Sockets Layer)とTLS(Transport Layer Security)はどちらも暗号化を行ったり、第三者からの盗聴や改ざんを防ぐ仕組みです。
またSSLサーバー証明書を信頼の置ける認証局に発行してもらうことで、サービスを提供する身元を担保する効果も持ちます。
共通鍵暗号方式
SSL/TLS通信を理解する前に、2つの暗号化方式について理解します。
まず1つ目は共通鍵暗号方式です。
共通鍵暗号方式では、クライアントとサーバーが同じ鍵をつかって通信を暗号化及び復号します。
後で出てくる公開鍵暗号方式と比べて、アルゴリズムが単純で済むので大きなデータであっても、通信速度が早いというメリットがありますが、公開鍵暗号方式と違って、クライアントとサーバー間で事前に鍵を共有しておかなければなりません。
公開鍵暗号方式
公開鍵暗号方式では、鍵を2つ用います。
できた2つの鍵を公開鍵と秘密鍵と言います。公開鍵は文字通り公に公開しておき、公開鍵で暗号化した文を送って秘密鍵を用いて復号します。
サーバー側が南京錠を渡して、それで鍵をかけて送りつけて、サーバー側は持っている鍵で南京錠を開くイメージです。
共通鍵を公開鍵暗号方式で送る
一般的に公開鍵暗号方式は共通鍵暗号方式と比べて暗号化と復号の処理が遅いという特徴があります。
なので、速度を早めるために、この2つの方式を合わせて用います。
この2つが組み合わさった暗号化方式のことをハイブリッド暗号方式と呼んだりもします。
ハイブリッド暗号方式では、公開鍵暗号方式を使って、共通鍵をクライアントとサーバーで共有し、その後は共通鍵暗号方式を用いて通信します。
これによって、共通鍵暗号方式の鍵の共有が難しい問題と、公開鍵暗号方式の通信が遅い問題を解決しています。
現在のHTTPS通信ではこのハイブリッド暗号方式が用いられています。
認証局(CA)
一見非の打ち所がないように感じる、共通鍵暗号方式と公開鍵暗号方式を組み合わせたハイブリッド暗号方式ですが、公開鍵は一般に公開されているものなので、本当にそのサーバーのものなのか?を確かめるすべがありません。(なりすまし)
このなりすましを防ぐために、SSL/TLSでは、認証局によって発行されたSSLサーバー証明書というものを用います。
HTTPSで通信を行いたいサーバーは予め、認証局(CA=Certification Authority)に証明書を発行してもらいます。
その際に公開鍵と紐付けておきます。
サーバーはクライアントから要求がくると、公開鍵と一緒にサーバー証明書をクライアントに返送します。
クライアントは予め、PCやブラウザに内蔵されているルート証明書を使って、サーバーから送られてきた証明書を検証します。
この仕組を用いることで、盗聴やなりすまし、改ざんからデータを守ることができます。
まとめ
SSL/TLSの通信の仕組みについて解説しました。
ポイントは
です。
それぞれの暗号方式の実際のアルゴリズムや、証明書の記載内容などを調べると、より知識を深めることができます。
WEBページが表示されるまでのネットワークの基礎知識についてはこちらの記事でまとめています。
コメント