SSLの仕組みとHTTPS通信

NO IMAGE

SSL/TLSとHTTPS通信について

SSL/TLSとは

SSL (Secure Sockets Layer) とは、インターネットなどのコンピュータネットワークにおいてセキュリティを要求される通信を行うためのプロトコルのことです。
TLS (Transport Layer Security) の元になった技術がSSLですが、SSLの名称が広く普及しているため、SSLが名称としてよく使われます。

SSL/TLSを利用することで、インターネット上で通信するデータの暗号化を行うことができます。
例えばWebサイト上で個人情報のやり取りを行う場合(クレジットカード情報の送信等)、間違いなくHTTPS通信が利用されています。
HTTPS通信はHTTP通信をSSL化したプロトコルです。

HTTPS通信とは

Webサイト上でHTTPS通信が利用されているかどうかは、ブラウザのURL欄を見ればすぐにわかります。
URLがHTTPSから始まっていればよいです。錠のマークをクリックすればサーバの詳細が確認できます。

httpsのURL

暗号化の仕組み

ではSSL通信では具体的にどのようにサーバ間との通信を暗号化しているのでしょうか。
これを理解するには共通鍵暗号公開鍵暗号について知る必要があります。

暗号化したデータはそのままでは使えないので、復号化する必要があります。この暗号化・復号化する際に使用するのが鍵です。
公開鍵方式が発明されるまでは一般に暗号といえば、共通鍵暗号を意味しました。

共通鍵暗号方式

共通鍵暗号方式の考え方は単純です。物理的な鍵と同じようなイメージで問題ありません。

  1. 送信者がデータに共通鍵を使って鍵(暗号化)をかけます。
  2. 受信者は受信したデータを送信者が使った共通鍵と同じ鍵で解錠(復号化)します。

この場合は送信者と受信者が同じ鍵を持っている前提ですが、データを盗もうとする悪者が同じ鍵を手に入れてしまえば、データが盗まれてしまいます。
つまりこの鍵をどのように安全に受け渡しするかが問題となります。
Webサイトは不特定多数のアクセスがあるので予め鍵を共有しておくことは不可能です。

公開鍵暗号方式

公開鍵暗号方式は共通鍵暗号方式と違い、暗号化と復号化で異なる鍵を用います。
処理の流れは次のとおりです。

  1. 受信者(サーバ側)は公開鍵P(暗号化用)をあらかじめ公開しておき、なおかつPに対応する復号化用の秘密鍵を用意しておきます。
  2. 送信者はPで、送信データを暗号化します。
  3. 受信者は予め用意しておいた復号化用の鍵でデータを復号化します。

この方式だと万が一データが流出しても、復号化用の秘密鍵は受信者しか知らない情報なので問題ありません。

一般的な鍵だと施錠と解錠は同じ鍵を用いることができます。
ですが、公開鍵による暗号化は簡単にできるが、復号化ができないという鍵はイメージがしにくいものです。
公開鍵暗号方式の一種としてRSA暗号がります。

RSA暗号

RSA暗号は、桁数が大きい合成数の素因数分解問題が困難であることを安全性の根拠とした公開鍵暗号の一つです。

16637の素因数分解は難しいですが、127*131はすぐに求められます。これが巨大な素因数になればより困難になります。
つまりこの積と素因数分解が暗号・複合の際に利用されるイメージです。

公開鍵暗号方式の実際の使われ方

一般的に公開鍵暗号方式は秘密鍵暗号方式に比べ、復号化に処理時間がかかってしまいます。
なので実際の使われ方としては、共通鍵暗号方式と秘密鍵暗号方式を組み合わせて使われます。

  1. 送信者がその場限りで使われる秘密鍵Sを生成します。
  2. 公開鍵暗号方式でSを受信者に送信します。
  3. 以降の通信ではSを使って暗号化通信を行います。

つまり通信の最初に一時的な秘密鍵を公開鍵暗号方式で共有しておき、それを使う方式です。
共通有鍵の安全な受け渡しという問題を公開鍵暗号方式で解決しているわけです。

SSL対応のメリット・デメリット

WebサイトにSSL通信の対応を行う場合の最大のメリットは、通信内容の盗聴や改竄を防ぐことです。
つまりセキュリティの強化、信頼性の向上が挙げられます。
Googleも多くのWebサイトでHTTPSが利用されることを期待しているそうです。

HTTPS をランキング シグナルに使用します

HTTPS ページが優先的にインデックスに登録されるようになります

逆にデメリットはSSLサーバ証明書に費用がかかるため、運用コストがかかってしまう点が大きいでしょうか。

最後に

このページではSSL(HTTPS)通信の仕組みについて解説しました。本サイトのSSL化させるにあたっての勉強内容です。
近いうちにSSL対応を実施する予定です。

お勉強カテゴリの最新記事