暗号

情報処理

SSL(HTTPS)の仕組みを図解で分かりやすく説明

「SSL」って知っているかな?
安全に通信を行うための仕組みですよね。
そうだね。では、実際にどのように「SSL」が安全に通信されているかの「仕組み」を知っているかな?
それは...わからないです...
本記事では、SSL(HTTPS)の仕組みを図解で分かりやすく説明しています。

スポンサーリンク

SSLってなに?

SSL(Secure Sockets Layer)とは、インターネット上での通信を安全に行うためのプロトコルです。

SSLで通信内容を暗号化することで、個人情報やクレジットカード情報などの重要なデータを暗号化して、通信を安全に行なうことができます。

プロトコルって何ですか?
英語と日本語だと会話が成立しないのと同じで、通信もルールを決めてやり取りしています。そのルールのことをプロトコルといいます。

 

SSLは、HTTPなどの アプリケーション層 のプロトコルと組み合わせることで使用されています。

元プロトコル ポート番号 SSLと組み合わせたプロトコル ポート番号
HTTP 80 HTTPS 443
SMTP 25 SMTPS 465
FTP 20、21 FTPS 989、990
IMAP 143 IMAPS 993
POP3 110 POP3S 995

SSLは古いプロトコルである

SSLという用語は未だに広く普及していますが、実は古いプロトコルです。現在では、SSLを元として作られた TLS(Transport Layer Security) を使うことが望ましいとされています。

その理由は、2014年10月に「SSL 3.0」の仕様上の脆弱性(セキュリティ上の欠陥)が発見されており、またSSLは対応も打ち切られているため、「TLS(Transport Layer Security)」への移行が望まれています。

※「SSL 3.0」の廃止を求めるRFC 7568が2015年6月にリリースされている。

TLS は未だに SSL と呼ばれることの方が多いため「TLS/SSL」と表記されることも多いです。

SSLはどうして必要なの?

SSLはどうして必要なんですか?
SSLが必要な理由は「盗聴」「改ざん」「なりすまし」といった攻撃から利用者の安全を守るためです。

データの盗聴(個人情報の漏洩)

データの盗聴

インターネット上での通信は簡単に盗聴することができます。そのため、通信内容を暗号化していないと個人情報が漏洩してしまう危険性があります。

盗聴ってどうやってするんですか?
ネットワークの問題を解決のために使用する専用機器などを悪用することで、通信内容を盗聴することができます。

SSLを利用することで、通信内容を暗号化することができ、仮に通信内容を盗聴されても解読することが困難です。その結果、個人情報などの情報漏洩を防ぐことができます。

データの改ざん

データの改ざん

インターネット上の通信を暗号化していないと、データを「改ざん」される危険性もあります。その結果、利用者の意図していない操作を「悪意のある攻撃者」によって行われてしまいます。

SSLを利用することで、SSLサーバ証明書の存在や通信内容を暗号化することができ、データの「改ざん」を防ぐ効果があります。

「なりすまし」による詐欺行為

なりすまし

「なりすまし」とは本家のサイトになりすまして、偽のサイトに誘導し個人情報などを盗み取ったり、盗んだ情報を悪用するなどの行為ことをいいます。

SSLでは、第三者の機関である認証局(CA:Certification Authority)がWebサーバに対してSSLサーバ証明書を発行します。

利用者はSSLサーバ証明書を確認することで、認証局がサーバ証明書を発行した安全なWebサイトであると判断することができるため「なりすまし」による攻撃を防ぐ効果があります。

ただし、近年では「SSL証明書」を導入している詐欺サイトが増えてきています。「SSL = 安心」とは考えず、個人情報を入力する際は「正規のURLなのか」「証明書の内容は正しいのか」などを確認することが大切です。

スポンサーリンク

SSL通信で使われる2つの暗号方式

SSL通信では「ハイブリッド暗号方式」と呼ばれる暗号方式を採用しています。「ハイブリッド暗号方式」とは「共通鍵暗号方式」と「公開鍵暗号方式」の2つの暗号方式を組み合わせた暗号方式です。

共通鍵暗号方式

共通鍵暗号方式(AES)とは

共通鍵暗号方式は「暗号化」と「復号化」で使用する鍵が同じなのが特徴です。

そのため、第三者に鍵が知られてしまうと簡単に解読される危険性がある為、鍵を秘密にしておく必要があります。

共通鍵暗号方式は、暗号化や復号化の処理が比較的簡単な為、処理時間が早いというメリットがあります。しかし、処理が簡単な分 解読されやすいというデメリットもあります。

また、共通鍵暗号方式を使う相手の数に応じて鍵を作る必要がある為、鍵の数が多数必要です。

公開鍵暗号方式

公開鍵暗号方式(RSA)とは

公開鍵暗号方式は「暗号化」と「復号化」で使用する鍵が別なのが特徴です。

公開鍵暗号方式では、まず「暗号化の鍵」を公開します。

「暗号化の鍵」を公開することにより自分宛の暗号化には、公開した鍵を使用してもらいます。そのため、鍵の受け渡しが容易であり秘密に管理する必要があるのは、自分の復号鍵だけです。

 

また、公開鍵暗号方式では相手の数に応じで鍵を作る必要がありますが、共通鍵暗号方式では相手の数に関係なく公開鍵は1つでよいので鍵の管理が容易で安全性が高くなります。

公開鍵暗号方式のメリットは安全性の高いという点ですが、処理時間が遅いというデメリットもあります。

SSLサーバ証明書の何のために必要なの?

SSLを利用するには、認証局(CA:Certification Authority)と呼ばれる第三者の機関からSSLサーバ証明書を発行してもらう必要があります。

サーバ証明書には「サーバ所有者の情報」や「暗号化通信に必要な鍵」「発行者の署名データ」などが含まれます。

サーバ証明書

Webサイトの所有者は、認証局が管理している「SSLサーバ証明書」を購入し、認証局はサイト所有者の実在性を確認し「SSLサーバ証明書」と「公開鍵」を発行します。

 

認証局に証明してもらったWebサイトは、URLの左側に鍵マークが付与され、さらに鍵マークをクリックすると「SSLサーバ証明書」の内容が確認できます。

証明書の確認

利用者は「SSLサーバ証明書」を確認することで、認証局が「SSLサーバ証明書」を発行した安全なWebサイトであると判断することができるため、「なりすまし」による攻撃を防ぐ効果があります。

しかし、なかには身元の不確かな機関(自分含む)が発行した証明書を使っているWebサイトも存在します。このような証明書のことを「オレオレ証明書」と呼びます。

SSL通信の仕組み

それでは、SSL通信の仕組みをWebサイトを安全に表示するプロトコルである「HTTPS」を例として説明していきます。

【SSL流れ①】SSL通信の接続要求

TLSの接続要求

まずはクライアント(利用者のコンピュータ)から対象のサーバへとSSL通信の接続要求を送信します。

【SSL通信の流れ②】公開鍵付きサーバ証明書の送付

公開鍵付きサーバ証明書の送付

Webサーバは認証局から発行してもらった「サーバ証明書」と「公開鍵」をクライアントに送付します。

クライアント(利用者のコンピュータ)側では以下の2つの操作を行います。

  • ブラウザに事前に搭載されているルート証明書(認証局が発行したSSLサーバ証明書であることを確認するための証明書)でSSLサーバ証明書を検証する。
  • 「秘密鍵」を生成する。

【SSL通信の流れ③】公開鍵暗号方式でクライアントの秘密鍵をWebサーバに送る

クライアントの秘密鍵を送る

クライアント側で生成した「秘密鍵」は、Webサーバから送られてきた「公開鍵」で暗号化し、Webサーバに送信します。

Webサーバに送信されたクライアントの「秘密鍵」は、サーバ側で保持しているWebサーバの「秘密鍵」で復号化され、クライアントの「秘密鍵」がサーバ側で取り出されます。

「公開鍵暗号方式」を使ってクライアントとWebサーバ間で共通な鍵となる「秘密鍵」を送信します。

【SSL通信の流れ④】共通鍵暗号方式で暗号化通信を行う

共通鍵暗号方式で暗号化通信を行う

クライアントが生成した「秘密鍵」をサーバに渡すことができたので事前準備は終了です。

あとは共通鍵暗号方式で暗号化通信を行いデータの送受信を行います。

 

なるほど。安全性の高い「公開鍵暗号方式」で秘密鍵を共通し、処理速度が速い「共通鍵暗号方式」でデータの送受信を行う流れですね。
その通りです。これで「SSL通信の仕組み」についての説明は終了です。お疲れ様でした。

\ 参考になりましたか? /

© 2020 ITを分かりやすく解説