数据在网络中进行传输,很容易通过抓包工具抓取并分析数据包的数据内容,若一些比较敏感的账号,密码,政治策略,政治言乱,商业机密等信息被有心人随意获取加一利用那么社会必将被网络影响的混乱不堪。因此加快了密码学研究与应用,现如今已成熟的应用于当今的网络通信中。
此处主要以 WebRTC 的数据加密流程举例:
从宏观角度分析网络数据的加密可分为两部分,建立加密通道传输数据、数据加密。此处将以 WebRTC 中的数据安全传输为例加以说明;
建立加密通道传输数据
加密通道建立与数据传输涉及到的协议有 UDP、RTP/SRTP, RTCP/SRTCP,接下来逐一说明;
加密信道建立
加密信道的建立依赖于 DTLS(Datagram Transport Layer Security) 数据报传输层安全协议,DTLS 是在TSL(Transport Layer Security传输层安全协议)协议的基础上衍生的,TSL 又是在 SSL(Secure Sockets Layer,安全套接字层)基础上衍生的。DTLS 与 SSL/DTLS 的主要区别在于,DTLS 是基于 UDP 的安全传输协议,SSL/TLS 是基于 TCP 的安全传输协议。
DTLS,SSL/TLS 主要是为了解决传输的安全风险:
- 窃听风险:第三方获取通信信息(所有信息加密传输)
- 篡改风险:第三方修改通信信息(具有校验机制,“数字签名”即加密校验码,利用非对称加密技术,若通信信息被修改,则数字签名校验将会失败)
-
冒充风险:第三方冒充他人参与通信(通信双方具有身份证书,防止被冒充,证书一般是由专业机构签发,webrtc 使用的是自签名证书)
“DTLS 可以防止 DOS 攻击:
1. 攻击者通过传输一系列握手初始化请求,导致服务器维护大量状态和处理能力不断消耗,从而耗尽可用服务资源
2. 攻击者使用大量跳板机器发送连接初始化信息。服务器然后发送下一条信息(在DTLS中是证书消息,可能非常巨大)给各个跳板机器,然后资源耗尽。”
image.png
数据传输
在 WebRTC 中对传输实时性要求比较高,因此采用 RTP(Realtime Transport Protocol)实时传输协议来传输音视频数据,RTP 的数据包是通过 UDP 发送的,UDP 协议存在它固有的缺陷。因此 RTCP(RTP Trasport Control Protocol)RTP 传输控制协议,主要用来监控数据传输的质量,并将通信信息反馈给发送方。
SRTP、SRTCP 是在固有的 RTP,RTCP 协议的基础上加了 S(Secure)表示安全传输,具体流程如下:
- 通信双方通过 DTLS 握手协商生成密钥对
- 数据发送方将音视频数据封装成 RTP 包,将控制数据封装成 RTCP 包
- 数据发送方利用加密密钥,对 RTP,RTCP 包进行加密生成 SRTP,SRTCP 包
- 将 UDP 传输 SRTP,SRTCP
数据加解密
以上描述的安全通道的建立实际上涉及了,两种加解密的方式对称加密与非对称加密;
对称加密
使用相同的算法对数据进行加密和解密,并且使用了相同的加密和解密密钥。
优点:加解密速度快,适合处理较大的数据;
加密算法基本上是确定的,加密密钥与解密密钥相同,若被第三方获取到密钥则被加密的数据和明文没啥区别,密钥的安全性很重要;
常用的对称加密算法有:DES、3DES、TDEA、RC2、RC4、RC5、IDEA等
非对称加密
相对对称加密而言,无需拥有同一组密钥,非对称加密是一种“信息公开的密钥交换协议”。
非对称加密需要公开密钥和私有密钥两组密钥,公开密钥和私有密钥是配对起来的,也就是说使用公开密钥进行数据加密,只有对应的私有密钥才能解密。这两个密钥是数学相关,使用某用户密钥加密后的密文,只能使用该用户的加密密钥才能解密。如果知道了其中一个,并不能计算出另外一个。因此如果公开了一对密钥中的一个,并不会危害到另外一个密钥性质。这里把公开的密钥为公钥,不公开的密钥为私钥。
非对成加密加密算法常用的有:RSA,Elgamal,DSA 等;
国密算法介绍
参考链接(此篇只是概括描述,详细内容可参考如下文章)
- (WebRTC:数据传输相关协议)[https://www.cnblogs.com/chyingp/p/11198874.html]
- (SSL,TLS 的区别介绍)[https://zhuanlan.zhihu.com/p/158714109]
- (读懂DTLS 协议)[https://blog.51cto.com/u_15087084/2598254]
- (RTCP 介绍)[https://www.cnblogs.com/sea-star/p/rtcp.html]
- (数据加密知识盘点)[https://zhuanlan.zhihu.com/p/345978115]
- (非对称加密算法的实现和应用)[https://www.zhihu.com/topic/20025123/hot]
- (国密算法介绍)[https://zhuanlan.zhihu.com/p/132352160]