浅析即时通讯开发聊天中端到端加密的工作原理

本文着重阐述端到端加密(E2EE),端到端加密是确保数据传输安全的可行方法之一。读完这篇文章,你可以了解这种加密方式的基本原理.。说到互联网的数据安全,一般用户可能认为,像端到端加密这类问题事不关己。确实,如果只是与亲朋好友聊聊家常,不涉及个人数据,那么确实不必担心消息的安全以及端到端加密问题。

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

什么是端到端加密?

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

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

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

端到端加密的工作原理

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

第一个密钥是公钥

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

第二个密钥是私钥

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

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

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

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

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

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

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

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

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

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

猜你喜欢

转载自blog.csdn.net/weikeyuncn/article/details/128186352