MENU
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
カテゴリー
  • IT関連 (623)
    • Bootstrap (2)
    • クラウド (4)
    • サーバー技術 (185)
    • ストレージ (7)
      • NetApp (7)
    • ネットワーク技術 (91)
      • Cisco (36)
      • Juniper (18)
      • 負荷分散装置 (17)
    • パソコン関連 (92)
      • MAC (25)
      • Windows (54)
    • プログラミング (154)
      • Ansible (11)
      • C言語 (23)
      • Python (111)
        • Django (20)
    • 仮想化 (88)
      • Docker (63)
      • VMware (23)
  • VPS (200)
    • ABLENET VPS (16)
    • Amazon Lightsail(VPS) (2)
    • ConoHaVPS (37)
    • mixhostVPS (4)
    • WebARENAIndigo (16)
    • XServerVPS (34)
    • お名前.com VPS (12)
    • さくらのVPS (24)
    • カゴヤクラウドVPS (13)
    • シンVPS (7)
  • レンタルサーバー (56)
    • エックスサーバー (38)
  • 光回線 (8)
  • 技術スキルアップ開発・学習 (7)
    • Envader (2)
    • RareTECH (2)
    • Udemy (3)
もう現役20年超えましたー。経験値ならだれにも負けないエンジニア技術ブログ
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
インフラエンジニアの技術LOG
  • VPS(レンタルサーバ)比較
  • ITエンジニアの転職
  • IT技術入門(Engineers.LOG)
  1. ホーム
  2. IT関連
  3. ネットワーク技術
  4. SSL接続処理の動作を大きく3つに分けてまとめてみた

SSL接続処理の動作を大きく3つに分けてまとめてみた

2019 10/14
ネットワーク技術
2015年1月14日2019年10月14日

このサイトもSSLを導入しておりますので、SSLについての知識があまりないため、ちょいと簡単にまとめてみました。
SSLは安全でセキュアな通信ができ、今後はサイトに導入するとアクセスも上がっちゃうということでメリットがいっぱいのプロトコルです。

目次
安くて高速!高性能VPSで快適開発!
最速5分でサーバー構築
>>>こちらをチェック

エンジニア必見! 技術力を伸ばすVPS徹底比較
>>>VPS比較

SSLとは

SSL(Secure Socket Layer)はインターネット上の通信を暗号化/復号するプロトコルです。
SSLでクライアント~サーバ間の通信を暗号化することにより、個人情報の盗聴を防ぐことができます。

SSLを使用する目的

SSLを利用することによるメリットは大きく以下の3つとなります。

  • 盗聴
    通信を暗号化し、個人情報を盗まれないようにする
  • 改ざん
    情報が書き換えられるのを防ぐためMD値を添付する
    MD値を添付して情報を送信することにより、途中で情報が改ざんされてもMD値が変わるので改ざんされたことがわかる
  • なりすまし
    SSLは個人情報を送信する前に、宛先サーバからの情報をもらい、サーバから送られてくる証明書が正しいものかどうか確認することで、なりすましを防止する

※SSLはHTTPだけではなく、L4~L5の間、L4.5以上のプロトコルを暗号化することができます。
 例えば:
 ・FTP over SSL
 ・SMTP over SSL などなど。。。

サーバ証明書の準備

SSLを使用するためには証明書が必要です。
証明書が発行されるまでの流れが以下となります。

1.鍵の生成

SSLサーバで秘密鍵の公開鍵のペアを作成

  • 秘密鍵 → 公開鍵で暗号化されたデータを復号化する(※保管必須)
  • 公開鍵 → 暗号化する鍵。インターネット上でやり取りしても問題はない。

※秘密鍵と公開鍵は逆の動作もする

2.サーバ証明書の要求

  • 公開鍵やサイトの情報をCSRというランダムな文字列にして認証局に証明書の発行を要求
  • 公開鍵の長さは1024ビットが主流。近年は安全面から2048ビットに移行しつつある
    ※認証局によっては2048ビットの公開鍵しか受け付けなくなっている

3.認証局の審査

CSRを受け取った認証局は要求元(サイト)を審査し、審査にパスしたら、認証局の署名を付加してサーバ証明書を発行する
※証明書もランダムな文字列

4.送られてきたサーバ証明書をサーバにインストールする

送られてきたサーバ証明書をサーバにインストールする。
使用する認証局によっては中間証明書も一緒にインストールする必要がある

SSLの接続処理(SSL)

TCPの3ウェイハンドシェイクが行われた後に、SSLハンドシェイクを実施し、暗号化や鍵、ハッシュ関数などの暗号化の為に費用な情報を決めて、その情報を使ってデータを暗号化し、転送します。
SSLの接続処理の流れは以下のようになります。

1.アルゴリズムの決定

SSLハンドシェイクではまず、どのような方式(アルゴリズム)を使ってやり取りするのかを決める

  • 「Client Hello」でクライアントが使用できる組み合わせのリストを提示
  • 「Server Hello」でサーバがそのリストのなかから使用できる暗号化アルゴリズムとハッシュ関数アルゴリズムの組み合わせを選び、通信で使用するアルゴリズムを決める

2.通信相手の証明

本当に正しいサーバと通信をしているのかを、サーバ証明書を使って確認

  • 「Server Certificate」でサーバは自分が正しいサーバであることをサーバ証明書を使ってアピール
  • 「Server Hello Done」でサーバがすべての情報をクライアントにすべて送る
  • クライアントは受け取ったサーバ署名所をルート証明書を使って検証し、正しいサーバであることを確認する

3.鍵の交換

次にデータ転送に使用する共通鍵を交換する

  • クライアントは正しいサーバであることを確認すると「プレマスターシークレット」という共通鍵を作成し、それを公開鍵で暗号化し、サーバに送る
  • 受け取ったサーバーは秘密鍵で開けて「プレマスターシークレット」を取り出し共通鍵を作成します。

4.暗号化通信の開始

実際に使用する暗号化アルゴリズムの確認作業

  • クライアントとサーバ間でお互いに「Cange Cipher Spec」をやり取りし、暗号化アルゴリズムを宣言する
    このやり取りが終了すると、これから暗号化したデータの転送に移行する

5.クライアント認証

盗聴や、なりすましを防ぐために、クライアントにインストールされたクライアント証明書をもとに、正しいユーザーであるかを判断し、認証する

  • クライアントは自分自身を証明する証明書をサーバへ送信
  • サーバはその証明書をもとにクライアントを認証し、接続を許可する

6.クライアント認証接続処理

  1. サーバはサーバ証明書を送った後に「Certificate Request」でクライアント証明書を要求
  2. それに対してクライアントは「Client Certificate」で自分にインストールされているクライアント証明書を送る
     ※もし、クライアントがサーバの要求に適したクライアント証明書を持っていなかった場合「no_certificate」を返し、サーバはコネクションを切断する
  3. 次に「Client Key Exchange」でプレマスターシークレットを送り、その後「Certificate Verify」でこれまでのデータのハッシュ値をとり秘密鍵で暗号化しサーバへ送信する
  4. サーバは受け取った「Certificate Verify」を「Client Certificate」で受け取ったクライアント証明書に含まれる公開鍵で復号し、サーバ自身のハッシュ値と比較し改ざんされていないか確認する
  5. その後の処理は通常の処理としてデータ転送をする

こんな感じでSSLをまとめてみました。
実際に動きを見ていかないとピンとこないですが、自分の役に立てばよろしいということで。

それでは!

あわせて読みたい
ネットワークエンジニアへの技術手順書 ネットワークエンジニアとして、ネットワーク機器の設定、構築って初めのころは大変です。 初めのころなんて聞いたころもない横文字だらけで何がなんやらわからないこと...
エンジニアスキルをアップする勉強法

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。

あわせて読みたい
現役エンジニアがおすすめするVPSレンタルサーバ比較(高速SSD限定) 格安VPS比較(2025年最新版)

ネットワーク技術
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする コメントをキャンセル

email confirm*

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)



検索
カテゴリー
新着記事
  • XServerVPS アニメ風 男の子 プログラミングをしている VPSを利用している 楽しそうにしている
    XServerVPSで証明書(SSL)を取得する方法
    2025年3月24日
    XServerVPS
  • レンタルサーバ アニメ風 女の子 楽しんでパソコンをしている 目がキラキラ
    WordPressがレンタルサーバよりVPSで利用する方がおすすめの理由
    2025年3月19日
    VPS
  • VPS レンタルサーバー アニメ風 女の子 プログラミングをしている VPSを利用している 楽しそうにしている
    VPSとクラウドの違いとは?初心者向けにわかりやすく解説
    2025年3月5日
    VPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSはWindows serverを利用できない。その理由と利用できるOSは?
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSでゲームを利用する環境はあるのか
    2025年3月4日
    シンVPS
  • シンVPS アニメ風 女の子 パソコン プログラミングをしている VPSを利用している 楽しそうにしている
    シンVPSのサイトの表示速度は他社に比べて早いのか?
    2025年3月4日
    シンVPS
目次
目次