首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

基于 TLS 1.3的微信安全通信协议 mmtls 介绍(下)

实际上加密过程和计算消息认证码的过程,到底应该如何组合,谁先谁后,在密码学发展的历史上先后出现了三种组合方式:(1) Encrypt-and-MAC (2) MAC-then-Encrypt (3) Encrypt-then-MAC...,根据最新密码学动态,目前学术界已经一致同意 Encrypt-then-MAC 是最安全的,也就是先加密后算消息认证码的方式。...mmtls 经过综合考虑,选择了使用 AES-GCM 这种 AEAD 类算法,作为协议的认证加密组件,而且 AES-GCM 也是 TLS1.3 要求必须实现的算法。...作为对称加密组件,MAC Key 和 Encryption Key 只需要一个就可以了。...砍掉了客户端认证相关的内容;直接内置签名公钥,避免证书交换环节,减少验证时网络交换次数。  安全性。

8.6K10

最佳安全实战:在 Java 和 Android 里用 AES 进行对称加密

我们能做的其实也只有在加密信息中加一个消息鉴别码(MAC)了。MAC 跟数字签名很像,而不同在 MAC 只会用到一个密钥。...MAC 这一方法有很多种变体,而多数研究者都推荐一种叫 Encrypt-then-MAC 的模式,也就是在加密之后对密文计算 MAC 然后附带到密文上。...我们常常会用到带密钥的散列函数(HMAC)这种类型的 MAC。 现在这就变得复杂了。为了保证完整性 / 真实性,我们必须选用 MAC 算法,选用加密标签模式,然后计算 MAC 并附带上去。...有种非常流行的块模式就为这一模式提供了支持,那就是 Galois / Counter Mode,简称 GCMGCM 在很多地方都有所支持,比如在 TLS v1.2 里面就以一个加密套件的形式为其提供了支持...比方说,若加密数据包含了用于检查重新应该重新加密一遍内容的创建日期这样的元属性,那么攻击者可以很轻松地修改这个创建日期。

5.3K40

PHP AES加密

CBC) #计算器模式(Counter, CTR) #密码反馈模式(Cipher Feedback, CFB) #输出反馈模式(Output Feedback, OFB)和XTS 加密...#CCM (counter with CBC-MAC)定义在分组长度为128位的加密算法中,如,AES 的分组长度为128。...#GCM基于并行化设计,因此可以提供高效的吞吐率和低成本、低时延。本质是消息在变形的CTR模式下加密,密文结果与密钥以及消息长度在GF(2^128)域上相乘。其输入输出和CCM基本一致。...#GCM中的G就是指GMAC,C就是指CTR。GCM可以提供对消息的加密和完整性校验,另外,它还可以提供附加消息的完整性校验。...因此,我们可以将这一部分作为附加消息加入到MAC值的计算当中。最后,密文接收者会收到密文、IV(计数器CTR的初始值)、MAC值。

1.4K30

Rabbitmq加密套件详解

之所以分为两个是因为对称加密在功能上不同完成非对称加密的密钥协商的功能,而非对称加密在性能上达不到对称加密的数据要求。...密码套件分为三大部分:密钥交换算法,数据加密算法,消息验证算法(MAC,message authentication code)。 密钥交换算法用于握手过程中建立信道,一般采用非对称加密算法。...数据加密算法用于信道建立之后的加密传输数据,一般采用对称加密算法。...MAC顾名思义是一种哈希,用于验证消息的完整性,包括整个握手流程的完整性(例如TLS握手的最后一步就是一个对已有的握手消息的全盘哈希计算的过程)。...WITH是一个分隔单次,WITH前面的表示的是握手过程所使用的非对称加密方法,WITH后面的表示的是加密信道的对称加密方法和用于数据完整性检查的哈希方法。

1.6K20

现代密码学实践指南

其中的(2)和(3)在结构上类似:一个流加密模式的算法,配合一个多项式结构的MAC。...(2)是一个流加密算法,配合一个为通用cpu优化的MAC算法, 对密码学库的实现者来说,Poly1305也比GCM更容易安全地实现。...AES-GCM是工业标准(TLS目前主要用的就是AES-GCM),现代CPU通常都有专门为AES-GCM设计的硬件指令,但是在没有硬件指令支持的CPU上(比如32位的arm),(3)性能低于(2)。...AES-GCM AES-GCM是一种AEAD,是目前TLS的主力算法,互联网上https流量的大部分依赖使用AES-GCM。 6....AES-CBC 关于AES-CBC,在AES-GCM流行之前,TLS主要依赖AES-CBC,而由于历史原因,TLS在设计之初固定选择了MAC-then-Encrypt结构,AES-CBC和MAC-then-encrypt

96820

Nginx常见异常整理,帮你快速定位

查看证书未到期,通过myssl.com查询证书详情,没有问题 怀疑加密套件配置文件,添加兼容性更高的加密套件后尝试,依然无果 附兼容性加密套件 "ECDHE-RSA-AES256-GCM-SHA384:...ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384...而在这两个系统上curl默认是禁用ECC加密的,虽然服务端加密套件支持ECC,但是客户端不支持,所以请求失败,需要客户端curl通过指定加密套件来请求 curl --ciphers ecdhe_rsa_aes..._128_gcm_sha_256 ......使用内置高速缓存可能导致内存碎片 shared 所有工作进程之间共享缓存。缓存大小以字节为单位指定;一兆字节可以存储大约4000个session。每个共享缓存都应该有一个任意名称。

1.1K20

理解和适配AEAD加密套件

按维基百科的说法,AEAD也分为 Encrypt-then-MAC (EtM,先加密,再对密文做hash) 、Encrypt-and-MAC (E&M,先对原文做hash,然后分别加密原文和hash值)...和 MAC-then-Encrypt (MtE,先对原文hash,再把hash值附加到原文后,最后一起加密) 三种。...其中XXTEA是内置提供的加密算法代码,而其他的来自于加密库的cipher模块。既然扩充了,就顺便增加一下openssl和mbedtls都支持的其他cipher。...同时这两个API在调用的时候也会检查用户是否使用了正确的接口,防止误用。 这里最重要的是保证数据和流程上标准化,也就是无论是用openssl还是mbedtls又或是其他库加密和解密的结果要一致。...我没有实测过,但是看到一些文章说,在支持硬件加速的设备上,AES-128-GCM性能是ChaCha20-Poly1305的好几倍。而现代化的设备里已经越来越多的设备支持硬件加速AES算法了。

5.2K20
领券