7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ざっくりまとめたSSL/TLS

Last updated at Posted at 2017-12-01

"SSL"とは

多くの場合はSSL3.0/TLSの2つの事を指す
下位互換はないものの、ほぼ同じ機能を提供する為に呼ばれている。

"https"とは

ご存知、
Web通信で使用されるHTTPプロトコルをSSL/TLSプロトコルで保証するプロトコル

https通信をする上で重要な登場人物

種類 説明
証明書 WEBサイトが安全であるという事を外部に示す電子証明書
公開鍵・秘密鍵 WEBサーバで使用する暗号化・復号化の鍵
暗号化アルゴリズム データ転送時に用いる暗号化・復号化のルール
SSLライブラリ SSLプロトコルを実装する暗号化・復号化モジュール

"SSH"とは

ご存知の通り、リモートでコンピュータにログイン・操作プロトコル。
いつも使うコマンド。
アプリケーション層で実装される暗号化方式
SFTPやポート制御でも利用される

"TLS" とは

SSLとの違いは、暗号アルゴリズムをサポートしたという点。
「SSL通信でxxする。」という会話も実際にはTLSだったりする事が多い。

DH,DSS,3DESなど。
3DES(トリプルデス)はDESで3回暗号化する方式。

SSLハンドシェイク

方法

公開鍵暗号方式で共通鍵を交換などを行う

ステップ

スクリーンショット 2017-11-30 18.46.07.png
(※かなり簡略化しています)

  1. 使用するアルゴリズムの合意
    クライアントが対応しているアルゴリズムのリストを送付
    クライアントに実際に使用するアルゴリズムを返す
     
    伝える情報
  • SSL version
  • サーバ認証アルゴリズム
  • 鍵交換アルゴリズム
  • データ転送で使用するデータ保護用の鍵共通方式アルゴリズム
  • データ転送で使用するデータの完全性を確認するためのMACアルゴリズム
  • MACアルゴリズム チェック
  • 圧縮アルゴリズム
         
  1. アルゴリズムの確定
     通信で使うアルゴリズムを確定し、
    自身の公開鍵を含む証明書を送付
       

  2. ランダムな文字列をserverの公開鍵で暗号化
    ランダムな文字列はクライアントで生成される
    serverの公開鍵で暗号化して送付する

  3. ランダムな文字列をserverの秘密鍵で復号化
    クライアントとサーバそれぞれで作成した2つの乱数を

  4. 暗号化鍵とMAC鍵を作成
    鍵生成関数の入力に追加し、暗号化鍵とMAC鍵を生成
     

SSLで暗号化される範囲

全てのパケットを暗号化する訳ではない
SSL プロトコルはOSI参照モデルのセッション層に位置する為、
OSI参照モデルの上位3層
(セッション層、プレゼンテーション層、アプリケーション層)を暗号化する。
それ以下の層(レイヤ1-4)については暗号化しない。

スクリーンショット 2017-11-30 17.38.35.png

つまり、SSLを導入したからと言っても、誰宛かのパケットかは隠せない。
「AさんからBさんへ連絡した」という事を隠すことはできない。
当然会話の内容は暗号化される。
イメージ的には大勢の前で、暗号化された言葉で話しているような感じ。

SSLで保証されるもの

  • 転送中のデータ
    盗聴されても、解読する事はできない。
    仮に改ざんされても、MACという技術により検知することができる
     

  • 通信相手が正しいマシンであること
    サーバの公開鍵の証明書を確認することで
    「なりすまし」されても偽物だと気付ける

7
8
2

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
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?