随着移动互联网的普及,即时通讯类应用(微信、QQ等)几乎替代了传统运营商的电话、短信等功能。得益于即时通讯技术的实时性,让人们的沟通更加方便,也让信息的传递变的无处不在。但用户的隐私和通信安全问题也随之而来,那么如何提高这些应用的安全性就显得尤为重要。于是乎,端到端加密技术就成为给几乎所有通讯类应用的首选。

端到端加密技术

什么是端到端加密技术?

端到端加密技术是指数据在发送时被发送方加密,在接收方接收时被解密的技术。端到端加密只发生在发送方与接收方,而在整个传输过程中数据均已密文的形式存在,且无法进行解密操作,极大的加强了数据的安全性。因而端到端加密技术可以有效地防范数据被窃取利用的风险,成为通信应用安全的首选。

端到端加密技术

端到端加密的优势

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

端到端加密的逻辑流程

  1. 在客户端 APP 首次安装时,基于服务器公开的两个全局的参数,生成自己的 DH 公钥和私钥;
  2. 将自己的公钥上传证书服务器,证书服务器上保存用户标识与其公钥的关系。私钥则保存在客户端上;
  3. 首次给对方发送消息或首次接收到对方消息时,便到证书服务器查询对方的公钥;
  4. 根据对方公钥和自己的私钥计算出共享密钥;
  5. 后续与对方所有的消息都基于这个密钥和相同的对称加解密算法进行加密解密操作。

端到端加密技术

端到端加密的升级

  • 使用HMAC作为消息完整性认证算法

在消息传输过程中,双方需要确认彼此消息的完整性,简单的做法就是将消息进行 Hash,得到的 Hash 值附加到消息后,随消息一起发送;对端接收后,同样进行 Hash,来验证消息是否被篡改。

关键点在于不同数据得到的 Hash 值一定不同,其中带密钥的 Hash 值就是 HMAC算法。

  • 使用ECDH算法替换DH算法

DH 算法是以离散对数的数学难题为基础的,随着计算机计算能力逐步增强,我们要不停地使用更大的数以增加破解难度,目前业界普遍认为至少需要使用 2048 位 DH 算法才具备更好的安全性。

所有,可以使用ECDH 算法替换 DH 算法。ECDH 密钥协商算法是 ECC 算法和 DH 密钥交换原理结合使用。ECC 是建立在基于椭圆曲线的离散对数问题上的密码体制。在相同破解难度下,ECC 具有更小长度的密钥和更快的正向计算速度优势。

免责声明:素材源于网络,如有侵权,请联系删稿。