音视频开发系列(19)玩转 WebRTC 安全通信:一文读懂 DTLS 协议

本文介绍了 WebRTC 中 DTLS 协议的重要作用,详细阐述了 DTLS 与 SSL/TLS 的相似性和区别,包括对称与非对称加密、数字签名、数字证书等基本概念,以及 SSL/TLS 的握手过程。DTLS 旨在为 UDP 通信提供安全保障,其协议栈、握手流程和重放防护机制针对 UDP 的特性进行了优化,以防止窃听、篡改和冒充风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 WebRTC 中,为了保证媒体传输的安全性,引入了 DTLS 来对通信过程进行加密。DTLS 的作用、原理与 SSL/TLS 类似,都是为了使得原本不安全的通信过程变得安全。它们的区别点是 DTLS 适用于加密 UDP 通信过程,SSL/TLS 适用于加密 TCP 通信过程,正是由于使用的传输层协议不同,造成了它们实现上面的一些差异。

基本概念

对称密钥加密技术

对称密钥加密的含义是加密过程和解密过程使用的是同一个密钥。常见的对称加密算法有 DES、3DES、AES、Blowfish、IDEA、RC5、RC6。

非对称加密密钥加密技术

非对称密钥加密的含义是加密过程和解密过程使用了不同的密钥,分别称为公开密钥和私有密钥。公钥是众所周知的,但是密钥只能为报文的目标主机所持有。相比对称加密技术,它的优点是不用担心密钥在通信过程中被他人窃取;缺点是解密速度慢,消耗更多的 CPU 资源。常见的非对称加密算法有 RSA、DSA、DH 等。

数字签名

数字签名是附加在报文上的特殊加密校验码,即所谓的校验和,其中利用了非对称加密密钥加密技术。数字签名的主要作用是防止报文被篡改,一旦报文被攻击者篡改,通过将其与校验和进行匹配,可以立刻被接收者发现。数字签名的过程如下图所示:

发送者 A 将报文摘要(报文通过 SHA-1 等哈希算法生成摘要)通过私有密钥加密生成签名,与明文报文一起发给接收者 B,接收者 B 可以通过对收到的信息进行计算后得到两份报文摘要,比较这两份报文摘要是否相等可以验证报文是否被篡改:

  1. 明文报文通过使用与发送端相同的哈希算法生成摘要 1;
  2. 签名通过公开密钥解密后生成摘要 2。

数字证书

数字证书是由一些公认可信的证书颁发机构签发的,不易伪造。包括如下内容:

  • 证书序列号
  • 证书签名算法
  • 证书颁发者
  • 有效期
  • 公开密钥
  • 证书签发机构的数字签名

数字证书可以用于接收者验证对端的身份。接收者(例如浏览器)收到某个对端(例如 Web 服务器)的证书时,会对签名颁发机构的数字签名进行检查,一般来说,接收者事先就会预先安装很多常用的签名颁发机构的证书(含有公开密钥),利用预先的公开密钥可以对签名进行验证。以 Google 为例,在浏览器中访问 Google 首页,点击左上角的感叹号就可以看到 Google 证书的完整信息,包括以上提到的所有内容:

SSL/TLS 协议

简介

要了解 DTLS,首先从我们比较熟悉的 SSL/TLS 开始讲起。SSL(Secure Socket Layer) 和 TLS(Transport Layer Security) 简单理解就是同一件东西的两个演进阶段,同样都是在应用层和传输层之间加入的安全层,最早的时候这个安全层叫做 SSL,由 Netscape 公司推出,后来被 IETF 组织标准化并称之为 TLS。SSL/TLS 的作用是为了解决互联网通信中存在的三种风险:

  1. 窃听风险:第三方可以获知通信内容;
  2. 篡改风险:第三方可以修改通信内容;
  3. 冒充风险:第三方可以冒充他人身份参与通信。

SSL/TLS 协议能够做到以下这几点,从而解决上述的三种风险:

  1. 所有信息通过加密传播,第三方无法窃听;
  2. 具有数据签名及校验机制,一旦被篡改,通信双方立刻可以发现;
  3. 具有身份证书,防止其他人冒充。

音视频开发 2022最新学习资料、教学视频有需要的可以自行添加学习交流群或者资料领取

协议栈

SSL/TLS 建立在 TCP 传输层上,最常使用 SSL/TLS 的场景是在 HTTPS 中,通过在 HTTP 和 TCP 中加了一层 SSL/TLS,使得不安全的 HTTP 成为了安全的 HTTPS。协议栈如下图所示:

SSL/TLS 加密是通过动态密钥对数据进行对称加密实现的,而动态密钥通过握手流程协商制定。在 SSL/TLS 握手过程中需要协商的信息包括:

  1. 协议版本号;
  2. 加密算法,包括非对称加密算法、动态密钥算法;
  3. 数字证书,传输双方通过交换证书及签名校验来验证对方身份;
  4. 动态密钥,由于非对称加密对性能消耗较大,因此主要的通信过程都是使用动态密钥进行对称加密的;对称加密使用的动态密钥则在握手过程中通过非对称加密来传输。

握手过程

以 TLS 1.2 为例:

握手过程如上图所示,大体来说分成三个过程:明文通信过程、非对称加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值