什么是端到端加密?

实际上,我们可以将端到端加密(E2EE)视作一种目前比较安全的通信系统。在这个系统中,只有参与通信的双方用户可以读取通信数据。不仅网络犯罪分子无法窃听到这种通信信息,甚至连互联网服务提供商、通信服务提供商、以及电信服务提供商都无法获取到这类通信数据。

除此之外,端到端加密还可以防止攻击者轻易地获取到用于解密通信会话的加密密钥。这种通信系统可以有效地防止攻击者对用户的通信数据进行拦截或窃听,而且如果攻击者想要篡改通信内容的话,几乎也是一件不太可能完成的任务。这也就意味着,那些在文字聊天服务中采用了端到端加密的公司无法将客户的聊天内容转交给某些特殊的情报机构。

当我们需要将某些数据从一个源地址发送到目的地址时,我们就可以使用端到端加密技术来保证加密数据的安全传输。端到端加密的主要优势是在Web层就可以对数据进行加密处理,然后在数据接收端的数据库或者应用服务器层解密出明文数据。如果在实现端到端加密的过程中,我们使用的是安全级别较高的加密算法,那么这样就可以确保传输数据能够得到最高级别的安全保护。

在实现端到端机密的过程中,发起加密操作的永远是源设备的用户,这样可以最大程度地体现出这项技术的灵活性,因为用户可以自主选择需要对哪部分数据进行加密。但是,在端到端加密的过程中,类似IP地址和路由信息这样的细节数据是无法进行加密处理的。

端到端加密的优势在哪里?

1.在用户需要对敏感数据加密的情况下,“有选择性地加密”将会大幅提升加密的灵活性,用户可以根据自己的情况来选择需要进行加密的数据。

2.用户可以对端到端加密的实现过程进行自定义配置,这将有助于实现功能的高度模块化,并提升加密模块的内聚性。

3.在整个加密过程中所涉及到的文件量是非常小的,所以加密过程所占用的资源量并不大,而且加密时间也不会太久。

接下来,让我们来了解一下什么是高级加密标准(AES)。

高级加密标准(AES)

高级加密标准(AES)在密码学中又称Rijndael加密算法,AES是美国联邦政府采用的一种区块加密标准。这个标准的设计目标是为了替代原先的DES,目前该标准已经经过了大量安全研究专家的分析,并且在全世界范围内得到了广泛使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPSPUB 197,并在2002年5月26日成为有效的加密标准。2006年,高级加密标准(AES)已然成为对称密钥加密中最流行的算法之一。

下图所示的是一个简单的AES加密流程:

接下来,我们将通过下面的问答环节来向大家介绍有关高级加密标准的内容。

问题一:AES加密到底是什么?

AES加密算法是一种对称加密算法,该算法由比利时密码学家JoanDaemen和VincentRijmen共同设计,结合两位作者的名字,所以得名“Rijndael”加密算法。

AES加密专门用于对电子数据进行加密。毫无疑问,在需要采用信息加密技术的各种聊天应用程序中,AES加密算法肯定是它们的首选。除此之外,AES加密算法可以使用128位、192位、或者256位长度的密钥来对文字数据进行加密和解密。

问题二:AES加密算法的强大之处到底在哪?

当你需要发送敏感信息和凭证数据时,AES加密和解密算法可以保证传输数据的安全。它可以将机密数据加密成一种可被解密的形式,但是只有当你手握正确的解密密码时,你才能够对其进行解密。

问题三:AES加密算法到底有多安全?

AES加密算法是一种非常安全的加密方式,美国政府一直都在使用这种加密算法来加密敏感数据。

Diffie-Hellman密钥交换算法

简而言之,Diffie-Hellman是一种确保共享密钥安全通过不安全网络的一种方法。包括AES加密算法在内的对称加密算法可以使用这种方式来交换加密密钥。需要安全通信的双方可以用这个方法确定对称密钥,然后可以用这个密钥来进行数据的加密和解密。但是请注意,这个密钥交换算法只能用于密钥的交换,而不能进行消息的加密和解密。当通信双方确定了需要使用的密钥后,要使用其他对称加密算法来进行实际的加密和解密操作。

还有一种匿名密钥交换协议,即椭圆曲线Diffie-Hellman(ECDH)。通过椭圆曲线Diffie-Hellman (ECDH) 密钥协商协议,两个用户可以创建共享的机密协议。他们可以在不安全的公共媒体上完成此操作,而不必事先交换任何私有信息。该共享机密协议通常用于派生密钥材料。对称算法(例如高级加密标准(AES)算法)可以使用这份密钥材料来对后续消息进行加密。

为什么需要ECDH密钥交换算法?

即便是没有ECDH,我们的AES加密算法依然可以正常工作。但问题就是,我们还需要自己去处理通信双方的私钥问题。因此,我们需要将密钥硬编码至.apk文件当中,但此时的密钥是可以通过对apk文件进行反编译来获取到的。因此,为了避免这种情况的发生,我们需要使用ECDH密钥交换算法来帮助我们进行密钥的交换操作。

其实这也很好解释,假如现在A需要与B进行通信,那么此时就要生成一个只有他们双方自己知道的密钥。当A要与C(新的通信对象)进行通信时,又要单独生成另外一个密钥。这就是端到端加密的实现方式,你可以将其想象成一种通信专线的形式。也就是说,假如你要和一百个不同的人聊天,那么此时就会存在一百条私人通信信道。

WhatsApp是怎么做的?

WhatsApp也采用了相同的处理机制。这个目前世界上使用人数最多的即时通信服务已经在他们的通信服务中引入了端到端加密技术,而且几乎所有的移动设备都可以使用这项服务,包括Android、iPhone、黑莓、诺基亚、以及WindowsPhone在内。WhatsApp不仅会对每一条信息、每一张照片、每一个视频、以及每一份文件进行加密处理,而且还会对用户的语音通话信息进行加密。端到端加密可以确保只有通信双方(即信息的发送方和接收方)能够对数据进行解密,即使是WhatsApp的开发人员也无法解密这些数据。

如果你在开发中遇到了关于“端到端加密”的问题,请赶紧通过电子邮件来与我们联系(sales@algoworks.com)。

本文转自d1net(转载)

端到端加密(E2EE)技术分析:在移动应用中实现安全通信的利器相关推荐

  1. unity重定向_动画重定向技术分析及其在Unity中的应用

    前言 笔者新的手游项目使用Unity引擎,动画部分要使用重定向技术来实现动画复用.笔者之前在大公司工作的时候对这块了解比较深入,读过Havok引擎在这部分的实现源码,并基于自己的理解,在公司自研的手游 ...

  2. 天龙八部技术分析报告

    刘洋 通过一段时间对天龙八部这款游戏进行分析研究,主要从客户端入手,从技术 角度学习天龙八部游戏中各种实现机制.最终写成此文,献给搜狐游戏,以表敬 意. 本文主要分为三个部分,分别是1 天龙八部基本技 ...

  3. 移动端安全通信的利器——端到端加密(E2EE)技术详解

    前言 端到端加密允许数据在从源点到终点的传输过程中始终以密文形式存在.采用端到端加密(又称脱线加密或包加密)时消息在被传输时到达终点之前不进行解密,因为消息在整个传输过程中均受到保护,所以即使有节点被 ...

  4. 即时通讯安全篇(十一):IM聊天系统安全手段之传输内容端到端加密技术

    本文由融云技术团队分享,原题"互联网通信安全之端到端加密技术",内容有较多修订和改动. 1.引言 在上篇<IM聊天系统安全手段之通信连接层加密技术>中,分享了关于通信连 ...

  5. IM聊天传输内容端到端加密技术

    本文由融云技术团队分享,原题"互联网通信安全之端到端加密技术",内容有较多修订和改动.本文来自转载,如有侵权,请联系删除. 转载自http://www.blogjava.net/j ...

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

    前言 本文着重阐述端到端加密(E2EE),端到端加密是确保数据传输安全的可行方法之一.读完这篇文章,你可以了解这种加密方式的基本原理. 说到互联网的数据安全,一般用户可能认为,像端到端加密这类问题事不 ...

  7. 什么是端到端加密?企业E2EE的优势正在显现

    多年来,端到端加密 (E2EE) 一直是 WhatsApp.微信 和 QQ 等社交软件消息是传递不可或缺的一部分.在过去一年中,Zoom等视频会议 已将安全措施添加到其视频会议平台中,随后微软将其添加 ...

  8. 端到端加密优缺点_网络通信中常见的数据加密技术探析

    前言 目前在各行各业中都广泛使用计算机网络通信技术,计算机网络已成为人们生活中不可或缺的重要内容,人们对计算机网络的依赖性不断提高,计算机网络通信的安全性受到越来越多的关注.数据加密技术是保障计算机网 ...

  9. 【webrtc视频会议的搭建】端到端(E2EE)的加密

    created by 杨金彪 https://xbsoftware.com/blog/video-messaging-apps-with-end-to-end-encryption-and-all-a ...

最新文章

  1. HomeZZ注册推介码
  2. DC-5 vulnhub靶机实战
  3. python没有运行_Python没有执行__init__
  4. JavaWeb课程复习资料(六)——DAO与DAOImpl层封装
  5. java hipster!_通过Java Hipster升级Spring Security OAuth和JUnit测试
  6. dos虚拟机如何全屏显示_实用工具 | 虚拟机软件VirtualBox详细使用介绍
  7. java 计算器类图_多态计算器(封装、继承、多态、简单工厂)
  8. 解决selenium连接driver报错Message: Can not connect to the Service chromedrive
  9. oracle优化查询前几条,一个查询优化的分析调整全过程!很值得一看
  10. 一步步教你开发鸿蒙系统应用,So Easy
  11. 【韦东山嵌入式Linux】Linux命令进阶笔记
  12. 计算机显卡驱动不匹配,显卡驱动与系统不兼容?尤其是老电脑
  13. 【LOG】函数使用技巧
  14. 游戏智能中的AI——从多角色博弈到平行博弈
  15. html 链接长宽,CSS实现长宽比的几种方案【转载】
  16. Maven delopy源码
  17. linux下编译和安装log4cxx,Linux下log4cxx的安装使用
  18. 【JS】常用js方法
  19. OmniPlan工具使用手册
  20. [读书笔记]增长黑客:创业公司的用户与收入增长秘籍

热门文章

  1. Iterator(迭代器)接口 --对象循环遍历
  2. 【分享】博客美化(6)为你的博文自动添加目录
  3. 单词转换(map对象)
  4. java 提取内容并排序
  5. ai皮肤检测分数_智能AI皮肤检测仪三步走话术
  6. 如何自学Python?这本技术大咖推荐Python书籍,就是你的第一选择
  7. Python是如何一步步成为热门编程语言的?
  8. python编程面向对象很简单,只需要掌握这几点
  9. java异常return笔试题_Java笔试面试总结—try、catch、finally语句中有return 的各类情况...
  10. lxml安装_Beautiful Soup的安装和使用