前言

本文着重阐述端到端加密(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最大的优势在于,即使第三方设法截获了你的消息,但没有存储在你自己设备上的密钥,他们也根本无法解密消息。

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

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

  1. 实时音视频聊天中超低延迟架构的思考与技术实践

    1.前言 从直播在线上抓娃娃,不断变化的是玩法的创新,始终不变的是对超低延迟的苛求.实时架构是超低延迟的基石,如何在信源编码.信道编码和实时传输整个链条来构建实时架构?在实时架构的基础之上,如果通过优 ...

  2. 实时音视频聊天中的延时问题一篇就够

    1.前言 音视频实时通讯的应用场景已经随处可见,从"吃鸡"的语音对讲.直播连麦.直播答题组队开黑,再到银行视频开户等.对于开发者来讲,除了关注如何能快速实现不同应用场景重点额音视频 ...

  3. 理解实时音视频聊天中的延时问题一篇就够

    音视频实时通讯的应用场景已经随处可见,从"吃鸡"的语音对讲.直播连麦.直播答题组队开黑,再到银行视频开户等.对于开发者来讲,除了关注如何能快速实现不同应用场景重点额音视频通讯,另一 ...

  4. 实时音视频聊天中的延时问题一篇就够,低延时场景及优化

    1.前言 音视频实时通讯的应用场景已经随处可见,从"吃鸡"的语音对讲.直播连麦.直播答题组队开黑,再到银行视频开户等.对于开发者来讲,除了关注如何能快速实现不同应用场景重点额音视频 ...

  5. 微信团队分享:微信每日亿次实时音视频聊天背后的技术解密

    本文内容整理自腾讯专家研究员 & 微信视频技术负责人谷沉沉在 2017 ArchSummit 全球架构师峰会上的技术分享. 1.前言 2012 年 7 月,微信 4.2 版本首次加入了实时音视 ...

  6. 如何实现实时音视频聊天功能

    众所周之,实时音视频聊天技术门槛很高,一般的公司要想在短时间内从零补齐这方面的技术短板相当困难,而开源音视频工程WebRTC提供了这样一个捷径(包括笔者公司的产品在内,同样是基于WebRTC技术才得以 ...

  7. 多人实时音视频聊天架构探讨

    前言 移动互联网发展迅猛,目前实时音视频技术已被广泛地应用在了实时在线教育.智能家居.在线直播.安防监控等领域.这之中,诸如多人视频会议.在线实时视频教育等场景,跟传统的一对一实时音视频聊天,在技术架 ...

  8. 在多人音视频聊天中插入现场直播

    如何在聊天中插入现场直播呢? 今天我就教给大家怎样在我们的聊天中插入现场直播.(本文聊天以多人音视频为例) 首先,我们要知道现场直播是什么呢? 它是通过流媒体技术来实现实时在线播放 什么是流媒体呢? ...

  9. 浅析即时通讯音视频开发多人实时音视频聊天架构

    移动互联网发展迅猛,目前实时音视频技术已被广泛地应用在了实时在线教育.智能家居.在线直播.安防监控等领域.这之中,诸如多人视频会议.在线实时视频教育等场景,跟传统的一对一实时音视频聊天,在技术架构的实 ...

最新文章

  1. MVC ---- EF的延迟加载
  2. LOJ #2542 [PKUWC2018]随机游走 (概率期望、组合数学、子集和变换、Min-Max容斥)
  3. 机器学习之决策树的原理及sklearn实现
  4. pytorch 画loss曲线_Pytorch使用tensorboardX可视化。超详细!!!
  5. php开发微信图灵机器人
  6. 1803无法升级到2004_汽车排放国标是什么意思:1/2/3/4/5/6的升级是为了什么?
  7. java虚拟机内存监控_java虚拟机内存监控工具jps,jinfo,Jstack,jstat,jmap,jhat使用...
  8. TFS首次安装与配置,极其注意事项个人备用
  9. [转载] Python中的string模块的学习
  10. Unity V3 初步使用 —— 为我的.NET项目从简单三层架构转到IOC做准备
  11. 【技术教程】如何调用宇视SDK实现摄像机的云台控制?
  12. 详解 Java 内部类
  13. Roman to Integer:转换罗马数字到阿拉伯数字
  14. ibator mysql 分页,ZUI分页器的使用案例(ECLIPSE SMS项目)
  15. OpenHarmony轻量系统开发【8】其它驱动开发示例
  16. golang企业微信留痕文件下载,多线程
  17. 广州大学数据结构实验一
  18. C++中编写自己的头文件
  19. 华为主题 主题兑换券活动高端操作
  20. java网络编程基础(知识+代码示例)

热门文章

  1. mysql显示的6b_mysql六
  2. UltraISO软碟通制作U盘启动盘
  3. python--千库网素材爬取
  4. 数据挖掘教程:什么是数据挖掘?技术,工艺
  5. SOLIDWORKS软件如何导出带有缩略图的BOM
  6. 黄河全貌,太震撼了!
  7. swapidc鸟云模板源码开源
  8. 使用TUTK的sdk實現移动端和设备P2P連接
  9. [Samba] Linux(Centos)samba服务安装,Samba文件共享及Samba配置详解
  10. 传统蒙文字体_论传统蒙古文字体的设计方法