Rabbitmq加密套件详解

本文详细介绍了TLS协议的作用,包括验证、防篡改和加密,并深入探讨了密码学套件的概念,包含密钥交换算法、数据加密算法和消息验证算法。接着,文章讲解了Rabbitmq的加密套件支持情况,如何配置加密套件,以及如何调整加密套件顺序以增强安全性。最后,提到了评估TLS设置的重要性以及推荐的测试工具testssl.sh。
摘要由CSDN通过智能技术生成

TLS协议

TLS协议有三个作用:验证,防篡改,加密。这三个作用也基本上是密码学相关的三个应用。

验证是可以同时支持客户端验证服务端和服务端验证客户端两个需求的,只是在大部分的cs应用场景下,都是客户端验证服务端即可,主要目的是为了防止网站伪造,防钓鱼网站的目的。

防篡改的主要密码学方法是哈希算法,各个版本的SSL/TLS握手应用了大量的不同的哈希算法。

加密在TLS中有两个主要的体现,一个是握手的过程中的非对称加密用以建立信道,一个信道建立之后的对称加密用于实际的通信。之所以分为两个是因为对称加密在功能上不同完成非对称加密的密钥协商的功能,而非对称加密在性能上达不到对称加密的数据要求。通常一个加密信道建立之后,这个信道都有一个存活的时间,如果存活的时间太长,理论上就会有被破解的风险,因为对称加密的信道相关的参数在协商确定后是基本不变的。所以即使是长连接也需要隔一段时间重新进行TLS握手,这个过程叫做重协商。通常一个TLS握手之后的连接工程上可以持续的时间远比理论值要长很多,因为不是所有的流量都有必要要防止攻击成本非常高的攻击的。可能只有支付等极其敏感的业务需要高严格的安全性参数考虑。所以重协商功能在工程上通常是不启用的,nginx就默认关闭了这个功能(还有其他安全上的考虑)。即使我们需要重协商,在客户端编程的时候,也可以直接的采用重写发起一个连接来完成,业务简单清爽,带来的性能开销也并不会多太多。因为信道过期并不是一个非常频繁的操作,更多的是信道持续不到信道过期的时间。TLS1.3已经取消了重协商的机制。

密码学套件

密码学套件是TLS发展了一段时间积累了很多密码学使用的经验之后提出的一整套的解决方案。一个套件中包含了应用于整个握手和传输使用到的所有非对称加密,对称加密和哈希算法,甚至包括证书的类型。最早期的SSL虽然也许要一系列的加密算法,但是这些算法并不是像现在的称为密码学套件(Cipher Suite),而是被称作密码选择(Cipher Choice)。密码学套件是SSLv3开始提出的概念。后续的版本在升级的时候会产生新的安全强度更高的密码学套件,同时抛弃比较弱的密码学套件。

一个密码学套件是完成整个TLS握手的关键。在TLS握手的时候ClientHello里面携带了客户端支持的密码学套件列表,ServerHello中携带了Server根据Client提供的密码学套件列表中选择的本地也支持的密码学套件。也就是说选择使用什么密码学套件的选择权在Server的手里(在使用nginx的时候把ssl_prefer_server_ciphers配置项打开),而Server通常可以通过配置文件指定Server要支持的密码学套件的列表和顺序。为此需求,OpenSSL专门定义了一套比较难懂的定义方法,Nginx的密码学套件的配置方法也只是对OpenSSL定义的定义形式的透传。也就是说使用Nginx定义的ssl_prefer_server_ciphers配置项是原封不动的传输给OpenSSL的。使用OpenSSL的工具程序就可以验证分析一个密码学套件字符串:openssl -v cipher 'RC4:HIGH:!aNULL:!MD5' ,就可以看到RC4:HIGH:!aNULL:!MD5 这个密码学套件配置的详细内容。这个命令是专门用于解析OpenSSL的密码学套件的配置的工具,由于字符串格式的配置比较难学习,使用这个命令可以起到有效的帮助。

密码套件分为三大部分:密钥交换算法,数据加密算法,消息验证算法(MAC,message authentication code)。

  • 密钥交换算法用于握手过程中建立信道,一般采用非对称加密算法。

  • 数据加密算法用于信道建立之后的加密传输数据,一般采用对称加密算法。

  • MAC顾名思义是一种哈希,用于验证消息的完整性,包括整个握手流程的完整性(例如TLS握手的最后一步就是一个对已有的握手消息的全盘哈希计算的过程)。

TLS_DHE_RSA_WITH_AES_256_CBC_SHA是一个密码学套件的标准名字。

  • 这里的TLS代表的是TLS协议,如果未来TLS改名,这个名字可能会变,否则会一直是这个名字。

  • WITH是一个分隔单次,WITH前面的表示的是握手过程所使用的非对称加密方法,WITH后面的表示的是加密信道的对称加

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值