在 TLS 协议中,应用数据都是经过对称加密后传输的,传输中所使用的对称密钥,则是在握手阶段通过非对称密钥交换而来。常见的 AES-GCM、ChaCha20-Poly1305,都是对称加密算法。...内置 ECDSA 公钥的证书一般被称之为 ECC 证书,内置 RSA 公钥的证书就是 RSA 证书。...TLSv1.2 Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD 0xC0,0x2B - ECDHE-ECDSA-AES128-GCM-SHA256...Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA1 可以看到,使用 RSA 做为签名认证算法(Au=RSA)的加密套件排到了前面,导致 Nginx 作出了错误判断...SSLv3 Kx=ECDH Au=ECDSA Enc=AES(128) Mac=SHA1 0xC0,0x2F - ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2
waftest.testsite.cn/index.html' # 将这个URL替换为实际的HTML页面地址header = { 'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac...'title']}") print(f"内容: {news['content']}") print('-' * 40)if len(news_list) == 0: print("爬虫失败了...未加密时,页面渲染时间图:开启动态防护,页面渲染时间图:前端界面算法分析,断点调试,发现加密算法为 AES-GCM。...在前端代码中,定义了 encrypted(加密数据),以及 tag,raw_key 和 iv(与 AES-GCM 相关)。...参考资料长亭科技 T1K 文档AES-GCM 加密简介文章作者: 小谈谈文章链接: https://www.txisfine.cn/archives/ae22a391.html版权声明: 本博客所有文章除特别声明外
实际上加密过程和计算消息认证码的过程,到底应该如何组合,谁先谁后,在密码学发展的历史上先后出现了三种组合方式:(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 只需要一个就可以了。...砍掉了客户端认证相关的内容;直接内置签名公钥,避免证书交换环节,减少验证时网络交换次数。 安全性。
具体怎么使用上,产生了以下几种方案:Encrypt and MAC:先用对称密码将明文加密,再计算明文的 MAC 值,最后把二者拼接起来发给接收方。...MAC then Encrypt:先计算明文的 MAC 值,然后将明文和 MAC 值同时用对称密码加密,加密后的密文发送给接收方。...Encrypt then MAC:先用对称密码将明文加密,再后计算密文的 MAC 值,最后把二者拼接起来发给接收方。...,SHA384 表示消息认证码 MAC 算法。...大部分情况下常见 CA 机构的根 CA 证书和中间 CA 证书都已经内置在我们的操作系统中了,只有少数情况下需要自行添加信任的 CA 证书。
还有,当使用 aead 比如 aes-gcm 做加密的时候,aead标准严格要求,绝对不能用相同的 key+nonce 加密不同的明文,故如果TLS双方使用相同的key,又从相同的数字开始给nonce递增...GCM模式是AEAD的,所以不需要MAC算法。...,所以TLS协议规定使用 2.MAC-then-Encrypt,即先计算MAC,然后把 “明文+MAC” 再加密(块加密或者流加密)的方式,做流加密+MAC,和块加密+MAC。...TLSCompressed.fragment = AEAD-Decrypt(write_key, nonce, AEADEncrypted, additional_data) 如果解密/验证完整性失败...,就回复一条 fatal bad_record_mac alert 消息. aes-gcm的iv长度,nonce长度,nonce构成等,后续再深入探讨。
简单地把加密算法和认证算法组合,可以实现上述目的,并由此产生了几个方案: EtM (Encryption then MAC) EtM.png 先加密,然后对密文进行 MAC 运算(一般用各种 HMAC)...E&M (Encryption and MAC) E&M.PNG 同时对原始数据执行加密和 MAC 运算,把二者拼接起来,发给接收方。...接收方先进行解密,然后对解密结果执行 MAC 运算,比对发来的 MAC,验证正确性。...MtE (MAC then Encryption) mte.png 与 EtM 相反,先对原始数据执行 MAC 运算,与原始数据拼接后,执行加密算法,将密文发送给接收方。...aes-256-gcm 32 32 12 16 AEAD_AES_192_GCM aes-192-gcm 24 24 12 16 AEAD_AES_128_GCM aes-128-gcm 16 16
我们能做的其实也只有在加密信息中加一个消息鉴别码(MAC)了。MAC 跟数字签名很像,而不同在 MAC 只会用到一个密钥。...MAC 这一方法有很多种变体,而多数研究者都推荐一种叫 Encrypt-then-MAC 的模式,也就是在加密之后对密文计算 MAC 然后附带到密文上。...我们常常会用到带密钥的散列函数(HMAC)这种类型的 MAC。 现在这就变得复杂了。为了保证完整性 / 真实性,我们必须选用 MAC 算法,选用加密标签模式,然后计算 MAC 并附带上去。...有种非常流行的块模式就为这一模式提供了支持,那就是 Galois / Counter Mode,简称 GCM(GCM 在很多地方都有所支持,比如在 TLS v1.2 里面就以一个加密套件的形式为其提供了支持...比方说,若加密数据包含了用于检查重新应该重新加密一遍内容的创建日期这样的元属性,那么攻击者可以很轻松地修改这个创建日期。
中国加密标准 中国加密标准的SM1、SM2、SM3、SM4、SM7、SM9等。 借助国际加密标准,我们可以利用来自开源的加密库, 例如,最常用和最流行的加密库之一是 OpenSSL。...并检查 BabaSSL 和 SMx 加密,执行以下命令并验证是否安装 BabaSSL成功。...TLSv1.3 Kx=any Au=any Enc=SM4-GCM(128) Mac=AEAD TLS_SM4_CCM_SM3 TLSv1.3 Kx=any...Au=any Enc=SM4-CCM(128) Mac=AEAD 利用 yum 存储库安装 MySQL 8.0.30 在 SSH 终端上,执行以下命令来安装 mysql 社区版本 sudo...执行以下命令重新加载系统服务并启动mysqld sudo systemctl daemon-reload sudo systemctl restart mysqld 从 /var/log/mysqld.log 检查
中国加密标准的SM1、SM2、SM3、SM4、SM7、SM9等,借助国际加密标准,我们可以利用来自开源的加密库实现,例如,最常用和最流行的加密库之一是OpenSSL。...并检查BabaSSL和SMx加密,执行以下命令并验证是否安装BabaSSL成功, openssl version openssl -v ciphers|grep SM 结果显示如下, BabaSSL 8.3.2...-dev OpenSSL 1.1.1h 22 Sep 2020 TLS_SM4_GCM_SM3 TLSv1.3 Kx=any Au=any Enc=SM4-GCM(128)... Mac=AEAD TLS_SM4_CCM_SM3 TLSv1.3 Kx=any Au=any Enc=SM4-CCM(128) Mac=AEAD 利用yum存储库安装MySQL...执行以下命令重新加载系统服务并启动mysqld, sudo systemctl daemon-reload sudo systemctl restart mysqld 从/var/log/mysqld.log检查
完全握手1-RTT(对比TLS 1.2的2-RTT) lTLS 1.3(1-RTT):TLS1.3提前发送Key Share,需要支持该特性的算法,比如 AES-GCM-SHA256 和ECDHE P-...有三种组合方式:(1)Encrypt-and-MAC (2)MAC-then-Encrypt (3)Encrypt-then-MAC,根据最新密码学动态,目前学术界已经一致同意先加密后算消息认证码Encrypt-then-MAC...| {0x13,0x01} | | | | | TLS_AES_256_GCM_SHA384 | {0x13,0x02} | | | | | TLS_CHACHA20_POLY1305_SHA256...列出当前所有的cipher openssl ciphers 'ALL:eNULL' | sed -e 's/:/ /g' 检查服务端支持的cipher openssl s_client -ciphersuites...(Renegotiation)和禁止压缩 测试重协商: 重协商失败。
Encryption with Associated Data (AEAD) algorithms, 是用一个算法在内部同时实现cipher+MAC,是TLS1.2、TLS1.3上采用的现代加密算法,...客户端进行HTTP公钥固定验证失败后,将把此次错误详情以JSON格式回报个report-uri参数中指定的服务器。...温馨提示: 为了获得最佳效果,请提前获得证书,并在部署到生产业务环境之前至少一周,有助于避免在计算机上没有正确时间的一些用户的证书警告,以及避免与 CA 需要额外时间的 CA 失败的撤销检查,以向 OCSP...Enc=CHACHA20/POLY1305(256) Mac =AEAD 0x13,0x01 - TLS_AES_128_GCM_SHA256 TLSv1.3 Kx...=any Au=any Enc=AESGCM(128) Mac =AEAD 0xC0,0x2F - ECDHE-RSA-AES128-GCM-SHA256
file.txt openssl dgst -md5 file.txt 当在配置ssl_ciphers参数中的套件顺序不一样,浏览器在协商时会优先使用排位靠前的套件,我们可通过执行openssl ciphers命令检查加密套件配置支持的协议信息...any Enc=CHACHA20/POLY1305(256) Mac=AEAD 0x13,0x01 - TLS_AES_128_GCM_SHA256 TLSv1.3 Kx...=any Au=any Enc=AESGCM(128) Mac=AEAD 0xC0,0x2F - ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2...Kx=ECDH Au=RSA Enc=AESGCM(128) Mac=AEAD 0xC0,0x2C - ECDHE-ECDSA-AES256-GCM-SHA384...TLSv1.2 Kx=ECDH Au=ECDSA Enc=AESGCM(256) Mac=AEAD 0xC0,0x30 - ECDHE-RSA-AES256-GCM-SHA384
-GCM-SHA384 TLSv1.2 Kx=DH/DSS Au=DH Enc=AESGCM(256) Mac=AEAD 0x00,0xA1 - DH-RSA-AES256...ECDH做密钥交换, 使用ECDSA做认证, 使用AES-128做加密算法, 使用SHA256做MAC算法。...加密算法:主流趋势是使用 aes,128/256 bit都可以,加密模式的趋势是使用gcm,cbc由于被发现有 BEAST 攻击等,比较难以正确使用,至于ecb模式,请勿使用。...加密算法 还有RC4(不建议使用),3DES(不建议使用),Camellia(貌似日本人搞的) ,DES(已经被淘汰)等, message authentication code (消息认证码 简称MAC...(gcm是一种特殊的称为aead的加密模式,不需要配合MAC。)
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值。
之所以分为两个是因为对称加密在功能上不同完成非对称加密的密钥协商的功能,而非对称加密在性能上达不到对称加密的数据要求。...密码套件分为三大部分:密钥交换算法,数据加密算法,消息验证算法(MAC,message authentication code)。 密钥交换算法用于握手过程中建立信道,一般采用非对称加密算法。...数据加密算法用于信道建立之后的加密传输数据,一般采用对称加密算法。...MAC顾名思义是一种哈希,用于验证消息的完整性,包括整个握手流程的完整性(例如TLS握手的最后一步就是一个对已有的握手消息的全盘哈希计算的过程)。...WITH是一个分隔单次,WITH前面的表示的是握手过程所使用的非对称加密方法,WITH后面的表示的是加密信道的对称加密方法和用于数据完整性检查的哈希方法。
其中的(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
protocol-version sig 1. cipher 列出支持的加密算法(对称加密算法)。...这些算法用于加密 SSH 会话中的数据。...bash PS C:\Users\heish> ssh -Q cipher-auth aes128-gcm@openssh.com aes256-gcm@openssh.com chacha20-poly1305...@openssh.com 常见的算法包括: aes128-gcm@openssh.com aes256-gcm@openssh.com 3. kex 列出支持的密钥交换算法。...列出支持的消息认证码(MAC)算法。
VPP的crypto框架是VPP原生的一套数据加解密框架,其目的是为VPP框架中所有Graph node提供数据加密服务。...和aesni_gcm的PMD驱动打开,执行make install-ext-deps重新编译外部开发依赖库。...2、在vpp的启动配置文件startup.conf文件设置虚拟crypto加密设备“crypto_openssl”和“crypto_aesni_mb0,socket_id=0”。...接下来可以通过show crypto handlers 查询加解密算法与加密引擎的关系。...地址52:54:00:52:38:8b与映射到内核接口eth0 mac地址7a:a1:93:35:a0:93不一致导致发送arp回应报文因mac地址与物理口mac地址不匹配而丢弃,ping不通。
查看证书未到期,通过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。每个共享缓存都应该有一个任意名称。
按维基百科的说法,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算法了。
领取专属 10元无门槛券
手把手带您无忧上云