新卒勉強会2025

SSLとは?

投稿日: 2025年5月1日

SSLという言葉は以前から知っていたものの、全く勉強せず社会人になってしまった悲しき村髙です。

さて、エンジニアとしてSSLを知らないのは流石にまずいのでここで勉強・アウトプットをしたいと思った次第でございます

SSL

SSL(Secure Sockets Layer)とは、インターネット上でデータを暗号化して安全に送受信するための通信プロトコルです。現在は、より安全な改良版である TLS(Transport Layer Security) が主流ですが、今でも「SSL」と呼ばれることが多いです。

SSLの主な目的

  1. 通信内容の暗号化
    第三者に内容を盗み見されないようにします(例:ログイン情報、クレジットカード番号など)。
  2. データの改ざん防止
    通信中にデータが改ざんされていないことを保証します。
  3. サーバーの正当性の証明
    Webサイトの正当性を証明する「SSL証明書」により、なりすましを防ぎます。

SSLが使われている例

  • Webサイト(URLが https:// で始まる)
  • オンラインショッピングサイト
  • インターネットバンキング
  • メールサーバーとの通信(SMTP, IMAPなど)

SSL/TLSの仕組み(ざっくりステップ解説)

① クライアントが「Hello」

  • ユーザーのブラウザ(クライアント)が、Webサーバーに接続を開始します。
  • 「どんな暗号方式が使えるか」などの情報をサーバーに送ります(Client Hello)。

② サーバーが「証明書」を返す

  • サーバーは、クライアントの要求に応えて、
    • 暗号方式の選択
    • 自分の公開鍵(後述)
    • SSL証明書(サーバーの身元を証明)を返します(Server Hello)。

③ 証明書を検証

  • クライアントは、そのSSL証明書が信頼できるかをチェックします。
    • 発行元(認証局:CA)の署名が正しいか
    • 有効期限が切れていないか
    • ドメインが一致しているか など。

④ 鍵交換(共通鍵の生成)

  • SSLでは、通信内容を暗号化するために「共通鍵(対称鍵)」を使います。
  • その共通鍵を安全にやり取りするために「公開鍵暗号」を使います。

例(RSAの場合):

  1. クライアントが共通鍵をランダムに生成。
  2. サーバーの公開鍵で共通鍵を暗号化して送る。
  3. サーバーは秘密鍵で復号して、共通鍵を入手。

これで両者は同じ共通鍵を持つことになり、安全な通信が可能に。


⑤ 通信開始

  • 共通鍵を使って、データを暗号化してやり取りします。
  • 以降の通信はこの共通鍵で暗号化されているため、盗聴・改ざんが困難になります。

戻る
Document