TLSとDTLSの比較
1. 序章
最新のコンピューターは、さまざまなレイヤーを使用して通信し、操作している情報が効率的かつ堅牢な方法で送信されるようにします。 これらのさまざまな層を説明するために使用される最も一般的なモデルは、インターネットプロトコルスイートであり、一般にTCP/IPと呼ばれます。
この記事では、このアーキテクチャのトランスポート層に焦点を当て、2つの異なる通信プロトコル(トランスポート層セキュリティ(TLS)とデータグラムトランスポート層セキュリティ(DTLS))の違いについて説明します。
2. トランスポート層
インターネットプロトコルスイートのトランスポート層の最も一般的なコンポーネントは、伝送制御プロトコル(TCP)とユーザーデータグラムプロトコル(UDP)です。 TCPは、接続指向の伝送に使用されます。最も一般的には、HTTPSセキュリティ証明書です。だけでなく、SMTP、POP、FTP。 これらは、Webサイトの整合性を保証し、そのユーザーのプライバシーを保護し、ユーザーのジオロケーションへのアクセスなどの他の興味深い機能を有効にすることができます。
TCPは、情報が正しく配信されたことを確認する方法と、エラーチェックの方法も提供します。 一方、UDPはコネクションレス型であり、遅延を優先するアプリケーションに使用されます。 ビデオストリーミング、ゲーム、放送など。 これにより、片道トリップでパケットをより高速に送信でき、エラーチェックは単純なチェックサムに制限されます。
3. トランスポート層セキュリティ(TLS)
TLSの前には、Secure Sockets Layer(SSL)がありました。これは、主にWebサイトのIDを暗号化キーにバインドするために使用されるプロトコルです。このプロセスはSSL証明書の作成で終了し、HTTPで使用されます。ブラウザとWebページまたは他のドキュメント間の接続を確立するためのプロトコル。
SSL認証には通常、ドメイン名や所有権情報など、Webサイトに関連するデータが含まれていることにも言及できます。 そうは言っても、トランスポート層セキュリティは非推奨のSecure Sockets Layerからのアップグレードです(
3.1. TLSハンドシェイク
通信を開始するために、クライアント/サーバーシステムは最初に3ウェイTCPハンドシェイク(緑色)に依存します。 TLS部分の最初の完全な「ラウンドトリップ」では、TLSプロトコルバージョンやその他のオプションなど、いくつかの情報がプレーンテキストで転送されました。 その後、暗号化トンネルのクライアント/サーバーネゴシエーションが開始されます。
このマシンペアは、TLSプロトコルのバージョンに同意し、暗号スイート(ネットワーク接続を保護するために使用されるアルゴリズム)を選択し、必要に応じて証明書を検証する必要があります。 必要な「ラウンドトリップ」のために、仮想の30ミリ秒の遅延を追加すると問題が発生する可能性があることがわかります(下の画像を参照)。 次に、サーバーはTLSバージョンと暗号スイートを選択して通信を続行し、その証明書をクライアントに提示します。
クライアントが証明書を承認すると、クライアントはDiffie-Hellman鍵交換またはRSA を開始して、対称鍵に同意することができます。 サーバーは、暗号化された「Finished」メッセージをクライアントに返します。 クライアントは対称鍵を使用してそれを復号化し、MACを検証します。 これで、アプリケーションデータを送信できます。
4. データグラムトランスポート層セキュリティ(DTLS)
Datagram Transport Layer Security(DTLS)はTLSとは別の暗号化された通信プロトコルですが、TLSに基づいており、ストリーミングデータと同じ機能の多くに同様のセキュリティ保証を提供することを目的としています。 2つのプロトコルの主な違いは、DTLSがTLSの長い通信時間を回避することです。 ただし、このプロトコルはUDPに加えて使用されることが多いため、パケットを並べ替えたり再送信したりすることはなく、パケットの非再生可能性を保証するものでもありません。 DTLSは、暗号化を維持しながらVPNアプリケーションのパフォーマンスを向上させることもできます。
5. 特定の違い
以下は、2つのプロトコル間の明確な顕著な違いです。
5.1. 明示的なレコード
5.2. 許容される変更
UDPの場合と同様に、データグラムは失われたり、並べ替えられたり、変更されたりする可能性があります。したがって、クライアントマシンとサーバーマシンの両方で非正規通信が許可されます。 たとえば、レコードの順序は、さまざまな理由で変更される可能性があります(つまり、 レイテンシー)。 ただし、特に重複すると、警告が発生する場合があります。 野生の異常のあるレコードは、単に削除される可能性があります。
5.3. 確認済みの終了はありません
UDPと同様に、DTLSの送信には終了信号の概念はありません。DTLSは単に送信を停止します。 これは、サーバーからデータを受信するクライアントは、データ全体が配信されたかどうか、または通信でエラーが発生したかどうかを認識しないことを意味します。 TLSは、アラートメッセージでこれを通知します。
5.4. Protection Against Ip Spoofing
DTLSはCookieを使用してIPスプーフィングを防止します。これにより、実際のIPアドレスを表示せずにサーバーと通信できます。一方、TLSはTCPハンドシェイクを確立した後にのみ通信を実行するため、スプーフィングが困難です。私たちのIP。
6. 例
以下は、両方のプロトコルの実装例です。
6.1. TLS
- 電子メール暗号化(今日の90 % o fの電子メールに近いものがこれを使用しています)
- ネットワークアクセス(EAP-TLSを使用)
- シングルサインオンサービス(Amazon AWSなど)
- ドキュメントの署名と暗号化(およびコード)
6.2. DTLS
- Cisco AnyConnect VPN クライアントはTLSを使用してユーザーの認証を実行し、DTLSベースのVPNを発明しました
- Citrix SystemsNetScalerはDTLSを使用してUDPを保護します
- WebRTC は、DTLS-SRTP通信にGoogle Chrome、Opera、Firefoxなどの互換性のあるWebブラウザを使用します
7. 結論
これは、TLSとDTLSの通信プロトコルの違いに関する記事でした