推奨されます, 2019

エディターズチョイス

SSLとTLSの違い

Secure Socket Layer(SSL)およびTransport Layer Security(TLS)は、WebサーバとWebブラウザ間のセキュリティを提供するように設計されたプロトコルです。

ただし、SSLとTLSには多少の違いがあります。SSLはこの目的を達成するための最も重要なアプローチであり、すべてのブラウザでサポートされています。

比較表

比較基準
SSLTLS
バージョン3.01.0
暗号スイートFortezza(アルゴリズム)をサポートFortezzaをサポートしていません
暗号の秘密マスターシークレットを作成するためにプレマスターシークレットのメッセージダイジェストを使用します。疑似乱数関数を使用してマスターシークレットを作成します。
記録プロトコルMAC(メッセージ認証コード)を使用HMAC(ハッシュMAC)を使用
警告プロトコル「証明書なし」の警告メッセージが含まれています。警告の説明(証明書なし)を排除し、その他にも多数の値を追加します。
メッセージ認証このために標準
キーマテリアル認証このために擬似ランダム関数
証明書の確認複雑な単純な
終了しましたこのために擬似ランダム関数

SSLの定義

Secure Socket Layer(SSL)プロトコルは、WebブラウザとWebサーバ間の安全な情報交換を保証するインターネットプロトコルです。 認証機密保持という 2つの基本的なセキュリティサービスを提供します。 論理的には、WebブラウザとWebサーバ間の安全な接続を提供します。 Netscape Corporationは1994年にSSLを開発しました。それ以来、SSLは世界で最も人気のあるWebセキュリティメカニズムになりました。 重要なWebブラウザはすべてSSLをサポートしています。 現在、SSLは3つのバージョンで利用可能です:2、3と3.1。

SSL層は、 TCP / IPプロトコルスイートの補足として概念的に考えることができます。 SSL層は、 アプリケーション層トランスポート層の間に配置されています 。 ここでは、最初にアプリケーション層のデータがSSL層に渡されます。 そして、SSL層は、アプリケーション層から受信したデータを暗号化するとともに、暗号化データにSSLヘッダ(SH)と呼ばれる自身の暗号化情報ヘッダを付加する。

その後、SSL層データがトランスポート層の入力になります。 独自のヘッダを追加してインターネットレイヤなどに渡します。 このプロセスは、通常のTCP / IPデータ転送の場合とまったく同じ方法で行われます。 最後に、データが物理層に到着すると、データは伝送媒体に沿って電圧パルスの形で伝送されます。

受信側では、この手順は、通常のTCP / IP接続の場合に新しいSSL層に到達するまでの手順と非常によく似ています。 受信側のSSLレイヤはSSLヘッダ(SH)を削除し、暗号化されたデータを復号化してプレーンテキストを受信側コンピュータのアプリケーションレイヤに返します。

SSLの仕組み

SSLプロトコルの全体的な機能を形成する3つのサブプロトコルは、

  1. ハンドシェイクプロトコル :実際には4つのフェーズで構成されています。
    • セキュリティ機能を確立する
    • サーバー認証と鍵交換
    • クライアント認証と鍵交換
    • 終了
  2. レコードプロトコル :SSLのレコードプロトコルは、クライアントとサーバー間のハンドシェイクが正常に完了した後にのみ表示されます。 このプロトコルは、SSL接続に対して次の2つの定義済みサービスを提供します。
    • 機密性 - これは、ハンドシェイクプロトコルで定義されている秘密鍵を使用して実現されます。
    • 完全性 - 共有秘密鍵(MAC)は、メッセージの完全性を保証するために使用されるハンドシェイクプロトコルによって指定されます。
  3. 警告プロトコル :エラーがクライアントまたはサーバによって識別された場合、識別者は警告メッセージを他の者に送信する。 エラーが致命的である場合には、双方は急速にSSL接続を閉じます。

TLSの定義

TLS(Transport Layer Security)はIETF(インターネット技術特別調査委員会)標準化の始まりであり、これはインターネット標準バージョンのSSLで完成することを目的としています。 NetscapeはSSLを標準化することを望んでいたため、IETFを介してプロトコルを通過させました。 SSLとTLSには大きな違いがあります。 ただし、主なアイデアと実装は非常に似ています。

SSLとTLSの主な違い

  1. TLSプロトコルはFortezza / DMS暗号スイートをサポートしませんが、SSLはFortezzaをサポートします。 また、TLSの標準化プロセスにより、新しい暗号スイートの定義がはるかに簡単になります。
  2. マスターシークレットを作成するためのSSLでは、プリマスターシークレットのメッセージダイジェストが使用されます。 対照的に、TLSは、マスターシークレットを生成するために擬似ランダム関数を使用します。
  3. SSLレコードプロトコルは、各ブロックを圧縮した後にMAC(メッセージ認証コード)を追加して暗号化します。 それに対して、TLSレコードプロトコルはHMAC(ハッシュベースのメッセージ認証コード)を使用します。
  4. 「証明書なし」という警告メッセージはSSLに含まれています。 一方、TLSはアラートの説明(証明書なし)を削除し、その他にも12個の値を追加します。
  5. SSLメッセージ認証は、SSLプロトコル専用に作成された鍵情報とアプリケーションデータをアドホックに統合します。 一方、TLSプロトコルはHMACと呼ばれる標準のメッセージ認証コードにのみ依存しています。
  6. TLS証明書でメッセージを検証し、MD5およびSHA-1ハッシュはハンドシェイクメッセージを介してのみ計算されます。 それとは反対に、SSLでは、ハッシュ計算にマスターシークレットとパッドも含まれます。
  7. TLSの終了メッセージと同様に、PRFをマスターキーとハンドシェイクメッセージに適用することによって作成されます。 SSLでは、マスターキーとハンドシェイクメッセージにメッセージダイジェストを適用することによって構築されます。

結論

SSLとTLSはどちらも同じ目的を果たすプロトコルで、TCPとアプリケーション間の接続にセキュリティと暗号化を提供します。 SSLバージョン3.0が最初に設計され、次にTLSバージョン1.0が設計されました。これは、すべてのSSL機能で構成されていますが、セキュリティー機能も強化されたSSLの前身または最新バージョンです。

Top