LoginSignup
0
2

More than 1 year has passed since last update.

SSL/TLSについて

Last updated at Posted at 2021-06-05

はじめに

開発環境構築する上で、XAMPPのSSLを有効化する機会がありました。
参考:XAMPP for WindowsでSSLを有効にする

その際、SSLってなんだっけ?となったので復習を兼ねて自分用にまとめます。
注意:間違えている可能性があります。

ネットワーク通信に潜む危険

ネットワークの通信経路上に潜む危険として、代表的なものが以下の3つである。

盗聴

データのやり取り途中で、内容を第三者に盗み読まれる危険性

改ざん

データのやり取りは正常に行えているように見えるが、途中で第三者によって内容を書き換えられてしまっている危険性

なりすまし

第三者がなりすまし、データを送受信できてしまう危険性

とはいえ、通信経路を見られないようにすることは難しい。
そこで、通信経路を見られるのはしょうがないから、見られても大丈夫なように暗号化することが重要である。

参考
キタミ式イラストIT塾 基本情報技術者 平成31年/01年

SSL/TLSとは?

SSLは「Secure Sockets Layer」の略で、送受信しているデータを暗号化する通信手順。
WebサイトのURLアドレスが、httpsから始まっている(URLに鍵マークがついている)ものはSSL化されている。

TLSは「Transport Layer Security」の略。SSLの脆弱性が発見され、それに対処するために設計されたのがTLS(そのため、厳密にはSSLとTLSは同じものではない)。現在SSLは実はTLSである場合がほとんどだが、なじみ深いSSLという言葉が使用されている。

SSL/TLSは、共通鍵暗号方式と公開鍵暗号方式を用いて、通信を暗号化する仕組み

SSL通信を行うことで、ネットワーク通信に潜む「盗聴」「改ざん」「なりすまし」の防止をしている。

  • 盗聴防止
    通信を暗号化することで、第三者の盗聴を防ぐ。

  • 改ざん防止
    通信途中でデータが改ざんされた場合、改ざんされていることがわかる。かつ、信用できないデータを破棄し、再度データを送るよう依頼することができる。

  • なりすまし防止
    サイトをコピーしたとしても、SSL通信の際に用いる秘密鍵のコピーはできない。秘密鍵がない状態でSSL通信を行うことはできないため、なりすましであることに気づくことが出来る。

SSL/TLSの流れ

  1. クライアント側からサーバー側に、SSL通信のリクエストを送る
  2. サーバー側から「公開鍵」付きのSSLサーバ証明書が送付される
  3. ルート証明書を用いて、SSLサーバ証明書の署名検証を行う
  4. クライアント側で生成した「共通鍵」「公開鍵」で暗号化してサーバー側に送付
  5. サーバー側は、ペアとなる「秘密鍵」で複合し、「共通鍵」を取得
  6. 共通鍵を使って、SSL/TLS暗号化通信を行う

SSLサーバ証明書とは?

SSLサーバ証明書とは、ウェブサイトの実在性を確認し、通信データの暗号化を行うための電子証明書。SSLサーバ証明書には、ウェブサイトの所有者の情報や、暗号化通信に必要な鍵(公開鍵)、発行者の署名データが含まれている。

ルート証明書とは?

公開鍵を用いたやり取りを行うにあたり、そもそも公開鍵を作ったものがなりすましを行っていたら、なりすましを防ぐことが出来ない。そこで、信用できる第三者が「この公開鍵は本物である」と証明する機構(認証局)が考えられた。

ただ、「信用できる第三者の信頼性」はどのように保証されているのか?
→ルート認証局に関しては、PC出荷時に組み込まれているため信頼性が保証されている。
※Windows Update等で更新される

ルート証明書とは、つまり最上位にある認証局を保証するものという認識かなと(多分)

SSL通信を行う上で共通鍵って必要??

SSL通信をするうえで、公開鍵暗号方式でデータの暗号化を行えばいいのではないのか?とふと思った。ここで共通鍵暗号方式と公開鍵暗号方式のおさらいをする。

共通鍵暗号方式

送り手(暗号化する側)と受け手側(復号する側)が同じ鍵を用いる暗号方式。
この鍵が第三者に知られてはいけない。そのため、共通鍵を安全に受け渡しする必要がある。

強み:暗号化・復号化速度が速い 弱み:安全に鍵を渡す必要がある

公開鍵暗号方式

公開鍵暗号方式は、受信側が公開鍵と秘密鍵を用意する。
そして、公開鍵を配布する。データ送信者は、この配布された公開鍵を用いて暗号化する。
公開鍵で暗号化されたデータは、セットとなる秘密鍵でしか復号することができない。
そのため、公開鍵をばらまいても問題ない。

強み:安全性が高い 弱み:暗号化・復号化速度が遅い

2つの暗号方式を組み合わせる

上記の強み・弱みを踏まえて、公開鍵暗号方式で共通鍵を安全に受け渡し、その共通鍵を用いて通信を行うことで安全性・処理速度面においての問題点を解消している。
こういった背景から、SSL通信を行う際は2つの暗号方式を用いている!

参考

【図解】SSL/TLSとは何か?その違いや仕組み・導入方法についてわかりやすく解説します
SSLって何?意味や仕組みをわかりやすく解説!
SSLサーバ証明書とは
キタミ式イラストIT塾 基本情報技術者 平成31年/01年
いまさら聞けない、SSLサーバ証明書とルート証明書の関係
SSLサーバ証明書の仕組みに関すること
エンジニアなら知っておきたい、絵で見てわかるセキュア通信の基本
サーバー証明書/中間CA証明書/ルート証明書の違いとは?

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2