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

2023-11-04

前言


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

端到端加密系统与链路加密和节点加密相比更可靠,更容易设计、实现和维护。端到端加密还避免了其它加密系统所固有的同步问题,因为每个报文包均是独立被加密的,所以一个报文包所发生的传输错误不会影响后续的报文包。此外,从用户对安全需求的直觉上讲,端到端加密更自然些。单个用户可能会选用这种加密方法,以便不影响网络上的其他用户,此方法只需要源和目的节点是保密的即可。

端到端加密系统通常不允许对消息的目的地址进行加密,这是因为每一个消息所经过的节点都要用此地址来确定如何传输消息。由于这种加密方法不能掩盖被传输消息的源点与终点,因此它对于防止攻击者分析通信业务是脆弱的。

基于以上特性,对于当今如此繁荣的移动端应用来说,由于无线通信技术安全问题的特殊性,研究和应用端到端(E2EE)技术还是非常有价值的。

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

什么是端到端加密?


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

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

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

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

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

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


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

E2EE技术优势主要体现在以下几个方面:
 
  • 在用户需要对敏感数据加密的情况下,“有选择性地加密”将会大幅提升加密的灵活性,用户可以根据自己的情况来选择需要进行加密的数据;
  • 用户可以对端到端加密的实现过程进行自定义配置,这将有助于实现功能的高度模块化,并提升加密模块的内聚性;
  • 在整个加密过程中所涉及到的文件量是非常小的,所以加密过程所占用的资源量并不大,而且加密时间也不会太久。

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

高级加密标准(AES)


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

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

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

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

问题一: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)算法)可以使用这份密钥材料来对后续消息进行加密。

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

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

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

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

WhatsApp是怎么做的?


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

 

我的总结:

在数据发送的时候先进行加密,等接受方收到数据后再进行解密。可以在常用的压缩算法的基础上进行自己的修改。比如lz4、gz等。总之就是让别人无法对这些数据直接进行分析。


(原文链接:http://www.freebuf.com/articles/database/113855.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

移动端安全通信的利器——端到端加密(E2EE)技术详解 的相关文章

  • 基于QT的TCP通信实现(TCPServer和TCPClient)

    文章目录 一 软件介绍 1 1 TCPServer服务端界面 1 2 TCPClient客户端界面 1 3 服务端和客户端建立连接并通信演示 二 QT实现TCPServer和TCPClient 2 1 TCPClient客户端 2 1 TC
  • AUTOSAR-自旋锁(spinlock)与互斥锁

    AUTOSAR多核OS为实现核间资源互斥 保证数据一致性 设计了自旋锁机制 该机制适用于核间资源互斥 对于多核概念 需要一种新的机制来支持不同内核上任务的互斥 这种新机制不应在同一内核上的 TASK 之间使用 因为它没有意义 在这种情况下
  • 卫星通信的资源调度 vs 地面无线通信的资源调度

    以OFDM系统为例 考虑多个用户共用多个子载波的场景 一 两类资源 调整时频资源 即基站或卫星决定给各个用户在哪些时隙分配多少子载波 调整发射功率 即基站或卫星决定给每个用户在每个子信道上的功率是多大 用字母 P n k P n k Pn
  • Raspberry Pi 与Arduino SPI通信

    本教程介绍了使用SPI 串行外围设备接口总线 进行Raspberry Pi与Arduino通讯和控制的基本框架 SPI代表了一种非常完善的芯片间通信方法 该方法在两种设备的硬件中均实现 在这里 我们将详细探讨SPI 讨论硬件和软件注意事项
  • STM32 IIC通信简介+PCF8563时钟芯片示例

    IIC总线是嵌入式设备最常用的接口之一 包括51单片机在内的MCU一般都可以进行IIC通信 IIC通信有3种类型的信号 开始信号 结束信号 和应答信号 开始信号 SCL为高电平 SDA由高电平向低电平跳变 表示可以开始传输信号 进行通信了
  • 【Socket】Java Socket编程基础及深入讲解

    转自 https www cnblogs com yiwangzhibujian p 7107785 html Socket是Java网络编程的基础 了解还是有好处的 这篇文章主要讲解Socket的基础编程 Socket用在哪呢 主要用在进
  • 【AUTOSAR】CCP协议的代码分析与解读(四)----CCP协议数据下载和上传

    数据下载 DNLOAD DNLOAD指令负责将CRO中的数据下载到ECU中 起始地址为先前设定的MTA0 下载完毕后MTA0指针自增 自增的字数为下载的字节数 DNLOAD命令的CRO数据场结构 如下所示 位 置 类 型 描 述 0 字节
  • unix域套接字

    UNIX域套接字被用来和同一机器上运行的进程通信 尽管因特网域套接字可以用作同样的目的 然而UNIX域套接字更高效 UNIX域套接字只拷贝 数据 它们没有要执行的协议处理 没有要增加或删除的网络头 没有要计算的校验和 没有要产生的序列号 没
  • 移动通信中的信源编码和调制调节技术

    通信原理 移动通信中的信源编码和调制调节技术的思维导图 一个上课老师留的作业 这个不带图片 带图片的在我发的另一个 移动通信中的信源编码和调制调节技术 3 1 概述 调制就是对消息源信息进行编码的过程 其目的就是使携带信息的信号与信道特性相
  • 平稳过程的各态历经性

    平稳过程的各态历经性 1 各态历经的定义 2 例题 2 1 例1 2 2例2 3 各态历经性的判定 1 各态历经的定义 如果一个随机过程是平稳的 而且是均值和相关函数都具有各态历经性 那么我们称这个平稳过程具有各态历经性 均值各态历经的定义
  • 优化理论

    版权声明 原创作品 整理不易 转载请标明出处 本篇推送更详细的内容介绍 可参见本人微信公众号 优化与博弈的数学原理 公众号二维码参见文末 或参见以下网址 优化理论 Time Sharing Condition 编者按 OFDM系统中的功率分
  • Linux进程通信:命名管道FIFO小结

    Linux下进程之间通信可以用命名管道FIFO完成 命名管道是一种特殊类型的文件 因为Linux中所有事物都是文件 它在文件系统中以文件名的形式存在 在程序中 我们可以使用两个不同的函数调用来建立管道 include
  • QTcpSocket 发送数据心得

    遇到不会用的函数前 最好还是看看手册QAQ 今天居然吃了这个大亏 先交代一下背景 在做TCP客户端的发送数据功能 要和服务器程序进行TCP IP通信 且根据通信协议要发送数组或者结构体 并且数组的每一个位都是有效数据位 因此不能像大多数人一
  • RS485、MODBUS通信协议浅显易懂篇

    前言 MODBUS协议是Modicon公司发表的一种串行通信协议 属于OSI模型中应用层的协议 现广泛应用于工业控制领域 它的主要特点是免费开放 支持多种电气接口 如RS 232 RS 485 传输介质可以是双绞线 光纤 无线等 RS485
  • 蓝牙协议栈实现模式分析

    蓝牙协议栈实现模式分析 广州大学信息与机电工程学院 510405 邹艳碧 广州大学理学院 510405 吴智量 广州大学信息与机电工程学院 510405 李朝晖 摘要 蓝牙技术是未耒无线通信的一个重要的研究方向 本文主要介绍了蓝牙 技术的体
  • linux笔记之初次接触信号

    一 关于信号概念 1 信号是Linux所使用的进程间通信的最古老的方式 它是在软件层次上对中断机制的一种模拟 是一种异步通信的方式 一个完整的信号周期包括三个部分 信号的产生 信号在进程中的注册 信号在进程中的注销 执行信号处理函数 如下图
  • 通信原理(一) 通信原理概述

    文章目录 0 通信系统 1 通信方式 单工 双工与半双工 并行传输与串行传输 2 性能指标 2 1 有效性指标 2 2 可靠性指标 3 码 3 1 码字 码元 码长 3 2 码的分类 4 抽样与抽样定理 4 1 理想抽样和实际抽样 4 2
  • MODBUS CRC校验原理及C语言实现

    MODBUS通信协议的CRC校验原理多项式为8005的逆序A001 列01的CRC校验原理 1111111111111111 初始化CRC寄存机 0000000000000001 1111111111111110 异或 0111111111
  • 【科普】CRC校验(一)什么是CRC校验?

    目录 CRC 循环冗余校验 CRC 校验码的生成 CRC 的发送方与接收方 发送方 接收方 除法异或运算示意图 CRC 循环冗余校验 CRC Cyclic Redundancy Check 循环冗余检验 是一种用于检测数字数据错误的技术 作
  • 图片详解TCP连接的三次握手,四次断开基本原理

    图片详解TCP连接的三次握手 四次断开 作者 林子 Blog http blog csdn net u013011841 时间 2014年8月 出处 http blog csdn net u013011841 article details

随机推荐

  • Firefox OS

    参考1 http www firefoxos cc thread 348 1 1 html 1月7日 Mozilla中国去的工程师在深圳腾讯大厦举办了Firefox新版本体验活动 其中一个话题是关于Mozilla Boot to Gecko
  • error LNK1104: 无法打开文件“****.lib”解决

    做Opencv项目时 在vs2010中导入opencv 出现了很多类似 error LNK1104 无法打开文件 lib 这样的错误 在网上找了一些方法说需要添加链接库 添加相应的lib库后还是不行 最后发现导入opencv的lib库是没有
  • python中使用gdal,osgeo

    目的 实现from osgeo import gdal 工具 win10 vc2015 gdal 2 2 2 download osgeo org gdal 2 2 2 用的13M的那个 我估计是64位的 就按64位操作了 py3 5 an
  • java cdn加速_webpack 引入 CDN 加速

    webpack 引入 cdn 加速 用比较流行的 vue webpack 来说明好了 1 在SPA模版入口页面 项目根目录下的 index html 中引入 CDNvue webpack cdn 2 在配置文件 build webpack
  • java.lang.NoclassDefFoundError:com/google/common/base/MoreObjects

    1 一次项目中编译出现错误 出现这种错误一般是因为我们的项目中集成了swagger 应为swagger是需要依赖于guava 所以会出现这种错误 2 在项目的pom 文件中添加guava依赖即可
  • hbase总结:如何监控region的性能

    转载 http ju outofmemory cn entry 50064 随着大数据表格应用的驱动 我们的HBase集群越来越大 然而由于机器 网络以及HBase内部的一些不确定性的bug 使得系统面临着一些不确定性的故障 因此 HBas
  • 腾讯笔试题:猜字游戏---猜1-100之间一个数字,最少多少次?第一次猜的数是几?

    题目 A B两人玩猜字游戏 游戏规则如下 A选定一个 1 100 之间的数字背对B写在纸上 然后让B开始猜 如果B猜的偏小 A会提示B这次猜的偏小 一旦B某次猜的偏大 A就不再提示 此次之后B猜的偏小A也不会再提示 只回答猜对与否 请问 B
  • 虚拟机vmare16使用u盘装安装ghost系统

    对于想要用vmware16U盘装系统的朋友来说 vmware16U盘装系统教程图解是非常重要的 但是如果手上没有vmware16U盘装系统操作步骤 怎么办好呢 注意以下文章为转载来的 所以vmware的版本是10为例的 本人亲测vm16也是
  • c++智能指针介绍之weak_ptr (&enable_shared_from_this)

    c 智能指针介绍之weak ptr c 11引入 头文件在
  • 使用navicat模型功能 快速理清表间关系

    模型 是一个用于创建和操作数据库模型的强大工具 在主窗口中 点击 模型 来打开模型的对象列表 注意 仅适用于 MySQL Oracle PostgreSQL SQLite SQL Server 和 MariaDB 一些主要的功能如下 创建和
  • CSS —— line-height详解

    本文导读 行高 指一行文子的高度 具体来说是指两行文子间基线间的距离 在CSS line height被用来控制行与行之间的垂直距离 line height 属性会影响行框的布局 在应用到一个块级元素时 它定义了该元素中基线之间的最小距离而
  • c语言蜂鸣声音音乐代码

    include include
  • 单例(Singleton)设计模式

    单例 Singleton 设计模式 1 概念 某个类只能存在一个对象实例 并且该类只提供一个取得该对象实例的方法 2 实现方式 懒汉式 这种写法线程不安全 package com lmwei p20 import com sun org a
  • SQL 高级查询

    select from score select from Student 统计函数 count总数 max最大 min最小 avg平均 sum求和 count select count from Student max select ma
  • 公有链VS联盟链

    相信有人也听说过区块链分为公有链 私有链和联盟链 那么 它们三者有何区别 业内外人士对于该采用哪种类型的区块链看法不一 并引发了诸多围绕公有链 联盟链与私有链的争论 但是业内普遍认为联盟链与私有链实属一类 目前金融机构多偏向私有链 但也有人
  • 详解vue中diff算法

    详解vue中diff算法 vue中diff算法 作用 1 真实DOM和虚拟DOM 2 diff的比较方式 diff涉及到的函数 总结 vue中diff算法 本质 找出两个对象之间的差异 核心 子节点数组进行比较 首尾两端对比 作用 渲染真实
  • halcon——缺陷检测常用方法总结(模板匹配(定位)+差分)

    引言 机器视觉中缺陷检测分为一下几种 blob分析 特征 模板匹配 定位 差分 光度立体 halcon 缺陷检测常用方法总结 光度立体 唯有自己强大 博客园 cnblogs com 特征训练 测量拟合 频域 空间域结合 halcon 缺陷检
  • 射极跟随器实验报告数据处理_射极跟随器实验报告

    射极跟随器实验报告 由会员分享 可在线阅读 更多相关 射极跟随器实验报告 3页珍藏版 请在人人文库网上搜索 1 实验六 射极跟随器一 实验目的l 掌握射极跟随器的特性及测量方法 2 进一步学习放大器各项参数的测量方法 二 实验原理下图为射极
  • 自定义异常 raise 关键字

    目录 自定义抛出异常关键字 raise 使用raise主动引发异常 raise 关键字的用法 触发异常 自定义异常类 python从小白到总裁完整教程目录 https blog csdn net weixin 67859959 articl
  • 移动端安全通信的利器——端到端加密(E2EE)技术详解

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