最后更新:2022-04-23 16:10:15 手机定位技术交流文章
在WebRTC中引入了DTLS和SRTP来加密通信程序,以确保媒体传输的安全,DTLS的作用和推理与SSL/TLS相似,其目的都是使通信程序更加安全。
加密技术
1. 对称加密
对称加密,根据创用CC授权使用又称私钥加密,这是最简单、最直接的加密方法加密和解密使用相同的密钥 。
有几种对称加密技术。由于它效率很高,因此,它被广泛用于各种加密方案。对称加密通常使用很小的钥匙。在大多数情况下,不到256比特。密钥越大,加密越强,然而,加密和解密程序越慢钥匙的大小必须从安全角度加以考虑。也要照顾到效率。
2. 非对称加密
非对称加密,又称公用钥匙加密,使用一对钥匙、公用钥匙和私人钥匙,以非常安全的方式加密和解密数据。
只有其中一方可以稳妥地保留私人钥匙。不能外泄,另一方面,公用钥匙可以提供给任何要求公用钥匙的人。用于加密密钥之一的对称加密 。解密需要另一个关键。比如,你向银行请求公钥,银行将公钥发给你,你用公用钥匙加密通讯只有拥有私人钥匙的银行才能解码你的数据与对称加密相反,银行不必通过因特网传送私人钥匙。安全性大大提高。
对称加密和对称加密之间的区别可描述如下:
对称加密和解密使用相同的密钥,速度很快,但由于需要将密钥传送到网络,因此不安全。
非对称加密是安全的,因为它使用一对钥匙,一对公钥匙和一对私人钥匙,但加密和解密缓慢。
方法是使用公用密钥加密对称加密的密钥,然后将其发送出去,接收器用对称加密的私人密钥对密钥进行解密,然后当事人可以使用对称加密进行通信。
数字签名
数字签名是一种特定的加密检查代码,或核对和,与使用非对称加密密钥加密方法发出的信息相连。
数字签字的主要目的是防止电文被篡改,一旦攻击者篡改电文,将电文与校验总和相匹配,接收者即可发现电文被篡改。
数字签名的过程
发件人A使用私人密钥加密生成签名(通过提供报告摘要(报告文本使用HAshi方法如SHA-1形成)。在提交正式报告的同时,还将其送交了接受方B。通过计算所获得的信息,收受人B收到两份报告摘要。对两份报纸摘要的比较表明,该报是否被篡改。即:
明确声明使用与发送者相同的 " 桥 " 技术来编写摘要;1
要创建摘要 2, 签名将使用公用密钥解码 。

数字签名的过程
数字证书由若干公认和可靠的签发证书组织颁发,不易伪造。
证书序列号
证书签名算法
证书颁发者
有效期
公开密钥
证书签发人的数字签字
接受者可以利用数字证书认证对方的身份。当收件人(例如,当浏览器(例如)从另一端(例如,网络服务器)获得证书时),签发当局的数字签字将生效。一般来说,接收人预先安装了几个经常使用的(有公用钥匙的)签字签发机构的证书。可用于验证签字的公用前钥匙。
私信我,领取 2022 最新最全 (a) 学习促进项目,例如: C/C++ , Linux , FFmpeg , webRTC , rtmp , hls , rtsp , ffplay , srs )


DTLS(Datagram Transport Level Security,数据报安全协议),由于可能发生数据包丢失或在联合民主党背景下重新确定优先次序,联合民主党的成套数据目前无法获取。可定制和改进 UDP 的 TLS 协议 。就联合民主党的通信而言,DTLS提供了一个安全的选择。除其他外,它可以防止信息被窃听、篡改或身份被冒充。WebRTC中DTLS的应用分为两部分:[SRTP](钥匙)的协商和管理以及提供[数据通道]的加密渠道()。
DTLS协议可以采取以下行动:
(b) 所有信息均经过加密,第三方不得窃听;
(b) 存在数据签字和核查机制,如果被篡改,可以由通信双方确定;
拥有身份证件,以防止冒名顶替者假冒身份。
在WebRTC中引入DTLS加密 RTP可保证媒体通信。 在使用DTLS谈判加密密钥后,RTP还需要更新到SRTP,以便通过密钥加密进行通信。

(《DTLS议定书》)
以下是DTLS握手协议程序(根据RFC 6347)。


(《DTLS握手议定书》的处理)
TLS 和 DTLS 之间的握手方法通常不变,有以下修改和具体描述:
为防止多斯攻击,在HelloVerify Request中使用DTLS的做法越来越普遍。
TLS 没有提交证书请求, 证书请求也是不必要的; 这是反向认证, 即服务器验证客户的身份 。
DTLS的记录室现在包括Epoch和序列号;客户你好现在包括Cookie;手握现在包括零散信息(以防止MTUs超过UDP)。为了适应民进联的空投袋和脆弱的强化措施,所有事情都要适应。(参考RFC 6347)
DTLS发送的最后一条警报信息 是客户端加密的警报信息如果您需要解密, 您可以直接对客户端作出反应 。事实上,服务器应该对加密通信作出反应。我们的服务器反应 明确设计 解密什么客户 加密在警报包。
DTLS通信与记录室协议有关。联合民主党被称为 " 录音馆 " 。握手、更改密码或应用程序数据都是录音室的例子。
RFC 4347在记录室协议描述中提及,有三个录音室软件包:
DTLS 明确录音室,DTLSPlainext。
DTLS 压缩压缩数据,很少使用。
在 ChangeCipherSpec、 DTLSCphertext、 加密数据之后
没有明确的实地说明是何种类型的信息。然而,它可以依据背景和实质加以确定。例如, ChangeCifferSpeec 可用于类型。这显然是一纸空文。除了完结的握手之外最经常使用的是普通文字。
在DTLS协议中,通信双方分为客户和服务器,WebRTC中的DTLS咨询身份在SDP中界定。
参照SDP-解剖DTLS参数,观察以下说明
RFFC4145 属性配置
配置: 活动, 以客户端开始协商
设置:与往常一样,被动,在谈判开始之前。
设置: actpass 作为客户端开始协商。 作为服务器, 您必须等待协商开始 。
使用WebRTC, 对话的参与者通常无法获得由众所周知的根证书签发人签发的身份证明书,而后者通常是唯一的选择。
在实际应用情况下,通过安全信使频道(https)交换SDP,并可能实现SDP的安全完整。
证书指纹在 SDP 中的参照SDP-解剖DTLS参数,观察以下说明
需要证明指纹才能完成双方通信方的身份。
Clieen Hello和Server Hello 查查版本、 CipherSits、 Random 和 DTLS 扩展。

(欢迎来电 克莱尔)

(ServerHello发来的信件)
版本:客户指定了他可以支持或希望使用的最新版本。和DTLS1.2一样当服务器得到这个信息时,回答,基于您可以支持或希望使用的版本。类似DTLS1. 照片来自Flickr用户pic.最后,商定的版本为DTLS1.0,但须遵守。
CephellSits:客户提供了他能够支持的加密软件包。服务器选择了一个答案, 拿到后他可以支持这个答案 。例如,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc014) 。证书类型、 关键生成方法、 简易算法等等 都由加密软件包决定 。
随机 : 包含在 Master Secret 的生成中, 是来自双方的随机数字 。 Master Secret 将被用于生成主密钥并SRTP 键导出 。 (详情请参见 [Export SRTP 密钥] 。)
扩展名:客户指定要使用的扩展程序 。服务器可以响应自己的帮助 。例如,Clit在配置会话 Ticket TLS 扩展时,但服务器没有回复 。因此,这一延长将不再使用。

(Cipher Suites)
在欢迎信中,使用加密软件包的 IANA 注册名称。
IANNA 根据协议/关键交换算法/机构算法指定名称
加密/ Hash 算法的算法
例如:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 的含义如下:
Protocol: Transport Layer Security (TLS)
Key Exchange: Elliptic Curve Diffie-Hellman Ephemeral (ECDHE)
Authentication: Rivest Shamir Adleman algorithm (RSA)
Encryption: Advanced Encryption Standard with 128bit key in Galois/Counter mode (AES 128 GCM)
Hash: Secure Hash Algorithm 256 (SHA256)
DTLS扩展协议在客户 Hello 和 Server Hello 扩展文件中提供,所有TLS扩展都与TLS扩展有关。
以下是WebRTC使用的扩展名:

(WebRTC附加)
使用_strtp: DTLS 握手完成( 完成) 后, 使用 SRTP 传输数据; DTLS 生成 SRTP 键 。
一、二. SRTP保护项目和Srtp_mki项目
需要证明指纹才能完成双方通信方的身份。详见【自签证名证书】部分。

(身份验证)
服务器密钥交换用于将服务器端的公用密钥传送到客户端。 有两种设想:
如果服务端使用RSA技术,则无法发送此电文,因为证书方法官使用RSA技术时说明了RSA算法中使用的公用钥匙,因此无法发送该电文,因为证书中说明了RSA算法中使用的公用钥匙。
因为客户和服务器只知道自己的私人密钥, 他们的私人密钥是不同的, 他们可以根据各自的数学属性计算相同的共享密钥, DH 算法根据对方的公用密钥和自己的私人密钥生成共享密钥。
(Server Key Exchange)
Cliet Key Exchange 用于向服务器端交付 Cliet 的公用密钥 。

(Client Key Exchange)
上文详述了DTLS方法,并结合上述实例中显示的实际数据简要说明了出口SRTP关键字的过程。
TLS_EDCHE_RSA_WITH_AES_128_GCM_SHA256 用于咨询的加密包 :
ECDH 服务器参数:关键交换关键键
命名为 Spk;
ECDH Client Paramter
记为 Cpk;
使用ECDHE技术S(预设总机)计算共享密钥。
鉴于服务器的椭圆私人密钥是Ds,客户的Dc计算共享密钥的计算方法如下:使用ECC电子加密技术(ECDH、ECDHE、ECDHE、ECDSA)计算共享密钥。
这个共享的钥匙S 就是我们在预订的 RFC 制版论文上看到的
一套总制计算法计算法 过程如下,可参考 Computing the Master Secret。
估计主控集长度为48字节。这是在客户欢迎函中由Hello. Random和服务器Hello. Random所发的。PRF代表假冒功能。包含在咨询的加密包中 。
RFC57054用于利用总务秘书输出SRTP加密数字部门序列。
在DTLS-SRTP版本4. 2 中,关键出处说明预期字节序列长度。
用户_rtp 配置文件中定义了 master_key_len 和 master_salt_len 的值。
我们使用 SRTP_AES128_CM_HMAC_SHA1_80 配置文件,配置文件设置如下:
这就是我们需要的(128/8+112/8) *2 = 60 字节。
SRTP加密数字段序列在 DTLS- SRTP 4. 2. 2. Key 出处指定字节序列 :
因此,我们获得了客户和服务器使用的SRTP加密参数:主控和主标。
在导出密钥后, 使用关键初始化 SRTPSsession 键以确保数据安全和完整性。 Cliet 用Clitkey 加密数据, 将其传送到服务器, 并解密使用 Serverkeys 接收的数据 。
WebRTC 包含通信所涉双方分别是签字证书(指印:a=指印)和DTLS(设置)的作用(a=设置),它们已分别添加到Sdp中。使用安全信使渠道(https)。与 sdp 交流参与者协商。在DTLS握手期间,这是首次签署和核实数据。如果攻击者篡改了数据校验失败,双方可立即进入该交换所。
加密部件由传输双方商定。交换双方的公钥,这是一种不对称加密。SRTP 密钥已加密 。用对称加密, 收件人使用私人密钥解密 SRTP 密钥 。因此,对称钥匙以这种方式安全转移。为了解密音频和视频数据,双方使用了对称键。这样效率高,它还保护音频和视频数据的完整性和安全性。
本文由 在线网速测试 整理编辑,转载请注明出处。