简述实时音视频聊天中端到端加密(E2EE)的工作原理

本文深入解析端到端加密(E2EE)原理,探讨其在互联网数据传输中的重要性,包括公钥和私钥的作用,以及WebRTC应用如何支持安全通信。强调了E2EE在企业应用中的关键作用,确保数据即使被截获也无法被破解。

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

前言

本文着重阐述端到端加密(E2EE),端到端加密是确保数据传输安全的可行方法之一。读完这篇文章,你可以了解这种加密方式的基本原理.

说到互联网的数据安全,一般用户可能认为,像端到端加密这类问题事不关己。确实,如果只是与亲朋好友聊聊家常,不涉及个人数据,那么确实不必担心消息的安全以及端到端加密问题。

但如今,通过互联网进行的数据交换包括网上银行和网上购物、发送个人文件/单据/证件的扫描版、机票信息等方方面面。因此,即使你没有在发送机密的商业数据,也仍有必要了解消息传送应用中的端到端加密原理。如果你希望避免可能存在的第三方攻击,丢失数据,那么在企业应用中支持此类功能至关重要。

什么是端到端加密?

信息安全领域的大多数专家都承认,端到端加密是确保数据交换安全的最可靠方法之一。按照这种方法,在端到端加密应用之间传送的消息只能由这些应用的用户读取,任何第三方都无法读取。通过使用唯一密钥进行数据加密和解密,可以实现此类功能。只有终端用户可以生成和存储这些密钥。

端到端加密系统旨在确保,即使不法分子得以访问传输的数据,其也无法破译数据内容。端到端加密的这项与众不同的特征还体现在所发送的消息可能存储到的服务器上。

由于服务器并不参与密钥生成过程,因此服务器所“看到”的只是在相互通信的用户间传送的加密消息。所以,即使在服务器端泄露了数据,也没有人能够读懂数据的具体内容。

我们来详细了解一下端到端加密的工作原理,以便更好地理解这种加密方式如何保证数据安全。(端到端加密技术详解请见《移动端安全通信的利器——端到端加密(E2EE)技术详解》)

端到端加密的工作原理

按照端到端加密方法,当聊天会话开始时,每个用户所使用的应用都会生成两个加密密钥。此类密钥可以使用PGP(Pretty Good Privacy,是一个基于RSA公钥加密体系的邮件加密软件)加密应用加以生成。自1991年PGP首次发布以来,至今尚无证据显示其被破解过。

1第一个密钥是公钥

端到端加密应用相互之间会交换这种密钥。

2第二个密钥是私钥

私钥并不会从设备中发送出去。利用公钥,用户只能对消息进行加密。要想解密这种经过加密的消息,按照端到端加密方法,应使用对应的私钥。

如果第三方可以获得公钥也无妨,因为公钥只能用于端到端数据加密。正因为此,你大可以通过开放的通信信道来传送公钥。

每一个端到端加密应用生成了一对密钥且应用间相互交换了公钥后,就可以开始进行安全的通信了。诸如消息、视频和音频文件等数据需要先在发送端经过端到端加密过程,然后才会发送到服务器。数据会先存储在服务器上,一直存储到接收方的应用可以接收数据为止。接收方通知服务器收到数据后,这些数据就可以从服务器中删除或者在服务器上保留一段时间。

下面我们用一个形象的比喻来帮助您理解端到端加密应用的工作原理。想象一下,有两个人在用某种外语交谈。第三个人由于不具备所需的语言能力(没有加密密钥),就无法从听到的消息中提取到任何有价值的信息。

这个概念十分简单,但却能够保证在两个或更多个终端之间能够安全地传输消息。对于现代设备来说,加密/解密过程并非难事。即使是移动应用,也能毫无困难地处理端到端加密。或许,唯一需要担心的情况是与多名用户聊天。

在这种情况下,如果您要发送一条消息,必须针对每个接收人都加密一次。参与对话的人数越多,端到端加密应用的工作量就越大。为了避免应用的处理工作可能出现延迟,开发人员需要付出一些额外的努力来确保端到端加密不会影响到用户体验。
WebRTC应用的安全标准

WebRTC是一项用来构建网上聊天应用的技术,目前正在快速流行起来。它之所以受到如此高的关注度,原因可能是:用户无需安装任何第三方插件即可使用WebRTC应用。另一个原因就是它支持端到端加密。

现代浏览器中添加了对WebRTC的支持后,它们就可以与Skype等通信软件进行竞争了。此类应用可以为用户提供他们需要的所有功能,包括消息加密。您直接从网络浏览器中就可以交换消息和进行视频通话了。

要利用对端到端加密的支持来开发基于WebRTC的软件,不需要使用任何框架。虽然这看起来很简单,但考虑到WebRTC应用所采用的安全标准,用户完全没有担心的必要。根据信道类型的不同,WebRTC应用采用DTLS(数据报传输层安全)协议或SRTP(安全实时传输协议)协议。

第一种协议用于数据流;第二种则是为媒体流而设计的。这两种安全协议可确保数据传输过程使用加密密钥进行保护。由于支持TLS/SSL标准,可以使用安全的HTTPS连接。通信双方之间采用端到端加密将可保证任何第三方都无法访问您的数据,对于企业应用来说这一点尤为重要。
本文小结

如果你关注聊天应用开发方面的趋势,就不难发现,对于用户和开发人员来说,安全问题都是让他们担心的方面。用户变得更加挑剔,而且日益关注自己所用的消息传送应用的安全程度。

开发人员为了满足用户的这些意愿,也在设法实现最为可靠、尖端的端到端加密技术来保障安全的数据传输。有了端到端加密应用,数据安全性可以达到所需的级别。E2EE最大的优势在于,即使第三方设法截获了你的消息,但没有存储在你自己设备上的密钥,他们也根本无法解密消息。

考虑到在企业中使用通信应用会涉及到与数据泄露有关的额外风险,选用端到端加密软件可能就显得至关重要。

[1.8.5] 修复了编译后的一个重大问题导致栈奔溃的问题。 [1.8.3] 优化了 E2EE 内存中同进程库的加载机制,更加可靠。 E2EE程序在内存中永远只保留一个版本,无论何种方式调用E2EE,只要是同进程都使用外层服务器所使用的E2EE版本,不会进行重复加载。 [网站服务器] 重构了 取配置文本() 。剔除了英文命名,加入了获取JSON形式的文本。可通过参数 是否为JSON 获取。 加入了 取验证器(验证器文件)。可通过验证器文件名载入验证器。 优化了 服务器日志处理。当打开日志文件失败(日志文件为只读等情况)时,可顺利启动服务器。 [其它] 创建文本() 修复了“``”时无法转换为双引号的问题。 重新处理了 E2EE通用服务模块。 把网站做成服务时,请不要调用 网站.初始化() 方法。资源或者依赖路径的初始化,请放在“网站.订阅初始化函数”对应的回调函数中。 [1.8.2] [数据库连接池] 加入了 输出执行SQL 和 执行时间 到日志的功能。对应的方法“是否输出SQL”和“置是否输出SQL”。可随时开启和关闭(线程安全)。 [网站服务器] 加入了 等待结束 方法。等待服务器运行直到停止或者结束。如果服务器在运行中,则此操作会一直等待并且会阻塞当前线程 加入了 清除页面缓存 方法。可通过请求相对路径,清除服务器上的 静态文件缓存 和 动态请求缓存 中的缓存数据。 修复了 大文件(2G以上) 获取尺寸无效的问题。这个是因为之前为网站打包工作做改造时,统一使用了32位数据长度的文件信息获取方法,32位有符号的数值无法描述2G以上的文件尺寸,会产生越界。 !!! 此功能影响到 网站打包 功能,所以可能需要新版的网站打包功能做支持。或者手动调用  网站打包  功能对网站进行打包。 [1.8.0] SSL部分加入了苹果ATS(强制HTTPS)支持。开发小程序对接微信等方面更加友好。E2EE服务器现已支持PFS完全前向保密机制。 [网站服务器] 加入了 动态缓存页 请求数据缓存的功能。 修复了 文件上传尺寸过大等情况下,还能获取上传成功的消息状态。 上传 在配置中 最大上传尺寸 单位改成了 KB 上传 文件类型加入了白名单模式。 如果只限定范围内的文件类型,上传文件类型只要填写后缀即可,例如:jpg;gif;png;webp(此时只允许这几种后缀的文件上传) 如果允许上传大部分类型,而只限定不允许某些类型,则可以使用 * 来代替所有,之外的后缀都不允许。例如:*;exe;com;bat;msi(此时除了exe...msi之外的所有类型都允许上传) 修复了 某些情况下,静态缓存文件无法准确响应 gzip 的问题。 [服务器请求] 加入了 验证参数() / 验证所有参数() 功能。自动匹配和验证 远程服务/视图函数 的参数。响应验证器设置。 [存取键值表/存取列表] 修复了 键值表/列表 在某些特定环境下可能解析JSON或创建小数类型对象崩溃的问题(D-OWL)。 [对象工厂] 加入了 创建时间戳() / 载入时间戳() 功能。能够生成和载入秒或毫秒级的时间戳。 修复了 创建文本从时间() / 创建时间从文本() 中的国际时间转换问题。 重写了 创建文本从时间() 和 创建时间从文本()。不会再因为格式不匹配阻塞或者崩溃。 优化了 Base64解码 函数,可兼容包含换行等号空格等情况。 [网站客户] !!! 重要更新:返回信息头如果有多个,将不会再转换为存取列表,而是会不停的追加多行文本,一行表示一条数据。 修复了 键值表 作为POST参数时可能引起的访问失败问题。 加入了 自动跳转时,获取每次服务器返回的信息头。 修复了 代理设置无效的问题。可正常使用代理服务器。 [网页内容解析器] 修复了标签和属性中出现“-”和“_”无法完整解析名称的问题。 [加解密对象] 修复了 RSA 加解密签名时,设置输出小写十六进制文本始终为大写的问题(番茄) [数据验证器] 字母中文等验证条件加入了扩展字符支持。允许在字母等验证时可包含自定义字符“空格”“中划线”等。 jimstone
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值