检测到弱密码:并非所有密码套件均支持完全前向保密(弱密码套件 - ROBOT 攻击:服务器支持易受攻击的密码套件)图片背景介绍HTTP 协议自身没有加密机制,但可以通过和 TLS (Transport 图片漏洞分析漏洞前提:此问题在HTTPS环境下出现弱密码套件 - ROBOT 攻击:服务器支持易受攻击的密码套件原因:使用了过期的TLS/SSL协议,部分TLS/SSL协议由于过于老旧,已经被各类操作系统及浏览器弃用 (SSL所有版本、TLSv1.0、TLSv1.1)图片并非所有密码套件均支持完全前向保密原因:使用了不支持前向加密的密码套件'ssl_ciphers',目前支持前向加密的密码套件第二部分必须为DHE、ECDHE 位,分组模式是 GCM; 摘要算法使用 SHA384;图片 所谓前向加密是指:每一次通信过程的私钥都是临时的,即使某一次通信过程的私钥被破解或者泄露、 其他通信过程的私钥仍然是安全的,因为每个通信过程的私钥都是没有任何关系的 ,都是独立的,这样 就保证了「前向安全」。
在配置TLSv1.2和TLSv1.3时,选择最安全的加密套件需综合考虑现代加密标准、国密算法(如SM2/SM3/SM4)以及前向保密(PFS)特性,同时兼容HTTP/2和HTTP/3(QUIC)。 以下是推荐的配置方案及关键要点:一、加密套件配置原则优先支持TLS1.3TLS1.3默认移除不安全的算法(如RSA密钥交换、CBC模式),强制使用前向保密,且握手效率更高。 国密TLS握手优化在Nginx中启用国密套件:ssl_ciphers'ECDHE-SM2-SM4-GCM-SM3:ECDHE-ECDSA-AES256-GCM-SHA384';三、PQC(后量子密码)算法支持目前 四、HTTP/2与HTTP/3(QUIC)配置HTTP/2需启用TLS1.2+,并确保加密套件支持前向保密:listen443sslhttp2;HTTP/3(QUIC)依赖TLS1.3和QUIC协议,需编译 ;add_headerStrict-Transport-Security"max-age=63072000;includeSubDomains";}注意事项国密兼容性:需确保客户端和服务端均支持国密算法
您应该主要依靠提供强身份验证和密钥交换,前向保密和至少 128 位加密的 AEAD 套件。还有一些其他较弱的套房可能仍然得到支持,只要它们只能与不支持任何更好的老客户进行协商。 2.5 使用 FS 前向保密(有时也称为完全前向保密)是一种协议功能,可实现不依赖服务器私钥的安全对话。 对于不提前向保密的密码套件,可以恢复服务器的私钥的人就可以解密所有较早记录的加密对话(也就是可以先大量记录密文,再解密,比如您的证书到期后没有正确销毁,它的私钥就能用来解密非PFS的密文)。 您需要支持并喜欢 ECDHE 套件,以便通过现代网络浏览器实现前向保密。为了支持更广泛的客户,您还应该使用 DHE 套件作为 ECDHE 后备。避免 RSA 密钥交换,除非绝对必要。 我在2.3节中提出的默认配置只包含提供前向保密的套件。
(3) 【支持的密码套件】支持的加密方法,比如RSA公钥加密。 (4) 支持的压缩方法。 SSL/TLS 密码套件 浏览器和服务器在使用 TLS 建立连接时需要选择一组恰当的加密算法来实现安全通信,这些算法的组合被称为“密码套件”(cipher suite,也叫加密套件)。 5、完全前向加密PFS,保护用户数据,预防私钥泄漏 非对称加密算法 RSA,包含了公钥、私钥,其中私钥是保密不对外公开的,由于此算法既可以用于加密也可以用于签名,所以用途甚广,但是还是会遇到一些问题 那就需要PFS(perfect forward secrecy)完全前向保密功能,此功能用于客户端与服务器交换对称密钥,起到前向保密的作用,也即就算私钥被泄漏,黑客也无法破解先前已加密的数据。 ID,下次连接客户端发ID过来就可以直接用之前的私钥交流了 4、OSCP Stapling:服务器将带有 CA 机构签名的 OCSP 响应在握手时发给客户端,省的客户端再去CA查询 5、完全前向加密PFS
第二次握手 1 Say Hello 当服务端收到客户端的「Client Hello」消息后,会确认 TLS 版本号是否支持,和从密码套件列表中选择一个密码套件,以及生成随机数(Server Random RSA密钥交互的缺陷 使用 RSA 密钥协商算法的最大问题是不支持前向保密。因为客户端传递随机数(用于生成对称加密密钥的条件之一)给服务端时使用的是公钥加密的,服务端收到到后,会用私钥解密得到随机数。 图3.2.1 ECDHE流程图 DH 密钥交换过程中,即使第三方截获了 TLS 握手阶段传递的公钥,在不知道的私钥的情况下,也是无法计算出密钥的,而且每一次对称加密密钥都是实时生成的,实现前向保密。 四、RSA协议和ECDHE协议对比分析 4.1RSA 和 ECDHE 握手过程的区别 RSA 密钥协商算法「不支持」前向保密,ECDHE 密钥协商算法「支持」前向保密; 使用了 RSA 密钥协商算法,TLS 因此也称此为不具有前向安全性,只要服务端不换证书,那么所有证书范围内的会话都可以进行解密。对于旁路监听流量,拥有全量数据包的情况下,是可以全部解密的 4.3为什么ECDHE模式不可以解密流量包?
SSL是Netscape于1994年开发的,后来成为了世界上最著名的web安全机制,所有主要的浏览器都支持SSL协议 目前有三个版本:2、3、3.1,最常用的是第3版,是1995年发布的。 (4)一个客户端可以支持的密码套件列表。 密码套件格式:每个套件都以“SSL”开头,紧跟着的是密钥交换算法。 (客户端一个、服务端一个) (3)会话ID (4)从客户端的密码套件列表中选择的一个密码套件 (5)从客户端的压缩方法的列表中选择的压缩方法 这个阶段之后,客户端服务端知道了下列内容: (1)SSL版本 可以参考Behrouz A.Forouzan著的《密码学与网络安全》。 1.3 客户机鉴别与密钥交换: 客户机启动SSL握手第3阶段,是本阶段所有消息的唯一发送方,服务器是所有消息的唯一接收方。 生成过程如下: 2、记录协议 记录协议在客户机和服务器握手成功后使用,即客户机和服务器鉴别对方和确定安全信息交换使用的算法后,进入SSL记录协议,记录协议向SSL连接提供两个服务: (1)保密性
启用完美前向保密(PFS)") print("4. # 传统DH密码套件 "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384", # 临时DH(完美前向保密) "TLS_DHE_RSA_WITH_AES 椭圆曲线DH密码套件 "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", # 临时ECDHE(完美前向保密) "TLS_ECDHE_RSA_WITH_AES 优先使用ECDHE密码套件,它们提供更好的性能和安全性") print("2. 确保启用完美前向保密(PFS)") print("3. (): """演示完美前向保密(PFS)""" print("\n完美前向保密(PFS)演示") # 解释PFS概念 print("完美前向保密定义:即使长期私钥泄露
l 使用支持域名的证书。 l 在证书中使用完全限定名称,注意不要用localhost或类似192.168.1.1私有地址的证书 l 不要使用通配符证书:比如“*”。 临时密码交换是基于Diffie-Hellman(DH)的算法,在初始化SSL/TLS握手期间完成,保证了前项保密性(PFS) l 仅支持密码学强加密。关于密码学强加密如下。 Ø 使用最新安全建议。 Ø 服务器端激活并设置密码算法顺序,比如SSLHonorCipherOrderOn。 Ø 前项保密密码的密码为最高优先级,如DHE、ECDHE。 Ø 禁用不提供加密的密码套件。 Ø 禁用不提供认证的密码套件,包括匿名密码套件。 Ø 禁用DES。 Ø 禁用密钥长度小于128的密钥。 Ø 禁用MD5、SHA-1散列算法。 l 通过手机重置密码,是否每次向手机发送验证码或激活连接前都验证手机是否为当前用户注册信息? l 通过电子邮件重置密码,是否每次向电子邮件发送验证码或激活连接前都验证电子邮件是否为当前用户注册信息?
其中,RSA 是比较传统的密钥交换算法,它不具备前向安全的性质,因此现在很少服务器使用的。而 ECDHE 算法具有前向安全,所以被广泛使用。 TLS 第一次握手 客户端首先会发一个「Client Hello」消息,消息里面有客户端使用的 TLS 版本号、支持的密码套件列表,以及生成的随机数(Client Random)。 ? 第二次握手 服务端收到客户端的「打招呼」,同样也要回礼,会返回「Server Hello」消息,消息面有服务器确认的 TLS 版本号,也给出了一个随机数(Server Random),然后从客户端的密码套件列表选择了一个合适的密码套件 image.png 不过,这次选择的密码套件就和 RSA 不一样了,我们来分析一下这次的密码套件的意思。 ---- 总结 RSA 和 ECDHE 握手过程的区别: RSA 密钥协商算法「不支持」前向保密,ECDHE 密钥协商算法「支持」前向保密; 使用了 RSA 密钥协商算法,TLS 完成四次握手后,才能进行应用数据传输
(4)一个客户端可以支持的密码套件列表。 (5)一个客户端可以支持的压缩算法列表。 补充 密码套件格式:每个套件都以“SSL”开头,紧跟着的是密钥交换算法。 (客户端一个、服务端一个) (3)会话ID (4)从客户端的密码套件列表中选择的一个密码套件 (5)从客户端的压缩方法的列表中选择的压缩方法 这个阶段之后,客户端服务端知道了下列内容: (1)SSL版本 该阶段分为4步,前2个消息来自客户机,后2个消息来自服务器。 密钥生成的过程 这样握手协议完成,下面看下什么是预备主密钥,主密钥是怎么生成的。 生成过程如下: 记录协议 记录协议在客户机和服务器握手成功后使用,即客户机和服务器鉴别对方和确定安全信息交换使用的算法后,进入SSL记录协议,记录协议向SSL连接提供两个服务: (1)保密性 session ID是目前所有浏览器都支持的方法,但是它的缺点在于session ID往往只保留在一台服务器上。所以,如果客户端的请求发到另一台服务器,就无法恢复对话。
比如,就拿前两篇文章讲的代理服务。 如果通信时另外一方是一个假冒网站,那么数据再保密再完整也没用,黑客完全可以使用冒充的身份套出各种信息,加密不加密,完整不完整,没啥意义,因为你最终的接收人就是不可靠的。 浏览器和服务器在使用 TLS 建立连接时需要选择一组恰当的加密算法来实现安全通信,这些算法的组合被称为“密码套件”(cipher suite,也叫加密套件)。 其实 TLS 的密码套件命名非常规范,格式很固定。 四、还要说一下OpenSSL 聊完了TLS,我们就不得不谈一下OpenSSL,它是一个著名的开源密码学程序库和工具包,几乎支持所有公开的加密算法和协议,已经成为了事实上的标准,许多应用软件都会使用它作为底层库来实现
线上 TLS 握手耗时过高、证书校验失败、弱加密套件漏洞等问题,都需要深入协议底层才能根治。 其中 ECDHE 具备前向保密性——每次握手生成临时密钥,即使服务器私钥泄露,历史流量也无法解密,是生产环境首选。 TLS 1.3:完整握手压缩至 1RTT,会话复用支持 0-RTT;移除所有弱加密算法与 RSA 密钥交换,默认强制前向保密,握手消息全程加密,安全与性能同步提升。 certs/fullchain.pem; ssl_certificate_key /etc/ssl/private/server.key; # 安全基线:仅启用TLS 1.2/1.3,优先前向保密套件 总结HTTPS 不是简单的证书配置,而是密码学、网络协议与工程实践的结合体。理解握手原理能快速定位线上异常,掌握证书校验逻辑可根治内网自签证书问题,而性能优化是高并发场景的必备能力。
与之相对,在一些DH密钥交换方式中,某些参数是静态的,并被嵌入到服务器和客户端的证书中,这样的话密钥交换的结果是一直不变的共享密钥,就无法具备前向保密的能力。 临时椭圆曲线Diffie-Hellman密钥交换,和DHE类似,使用临时的参数,具有前向保密的能力。 RC4 : 是一种流加密算法,对称加密,密钥长度可变。 这种攻击会影响支持 DHE_EXPORT 密码的所有服务器。 2.5) 建议使用FS前向保密, FS有时也称为完全前向保密是一种协议功能,可实现不依赖服务器私钥的安全对话, 对于不提前向保密的密码套件,如果有可以恢复服务器的私钥的人就可以解密所有较早记录的加密对话 2.6) 建议使用强的密钥交换算法,前面我们说不建议选择经典的短暂的 Diffie-Hellman密钥交换(DHE)以及RSA 密钥交换(不提供FS前向保密),通常推荐其椭圆曲线变体 ECDHE 密钥交换
事实与理由: 其原系寻梦公司员工,未违反双方的竞业限制约定,故请求法院支持其诉讼请求。 郑某某为证明其陈述的事实,向法院提供了如下证据材料: 1、裁决书,证明本案经过仲裁前置程序。 7、拼多多-监控中心经理岗位职责、安识-高级安全解决方案专家,证明郑某某在寻梦公司的岗位为内部系统故障应急管理岗;在安识期间的岗位为产品对外售前技术支持岗,主要针对企业的产品协同支持销售队伍;因此两个岗位工作内容完全不同 10、阿里云官网,证明任何人和企业都可以注册阿里云成为用户,阿里云仅为一个产品工具,并非能体现商业合作关系。 寻梦公司对证据1三性认可;对证据2-10真实性认可,证明目的不认可。 寻梦公司为证明其陈述的事实,向法院提供了如下证据材料: 1、劳动合同、《保密、不竞争和知识产权归属协议》、邮件及招聘网站截图,证明原、寻梦公司之间的劳动关系以及双方对于竞业限制的约定等内容。 2021年6月28日,该委作出裁决: 一、被申请人于裁决生效之日起七日内支付申请人竞业限制违约金712,000元; 二、对申请人其他请求不予支持。 郑某某不服决定,于法定期限内诉至法院。
与之相对,在一些DH密钥交换方式中,某些参数是静态的,并被嵌入到服务器和客户端的证书中,这样的话密钥交换的结果是一直不变的共享密钥,就无法具备前向保密的能力。 临时椭圆曲线Diffie-Hellman密钥交换,和DHE类似,使用临时的参数,具有前向保密的能力。 PFS PFS(perfect forward secrecy)正向保密 ,在密码学中也可以被称为FS(forward secrecy),是安全通信协议的特性,要求一个密钥只能访问由它所保护的数据,用来产生密钥的元素一次一换 这种攻击会影响支持 DHE_EXPORT 密码的所有服务器。 SRP TLS-SRP( Secure Remote Password)密码套件有两类:第一类密码套件仅使用SRP认证。第二类使用SRP认证和公共密钥证书来增加安全性。
其次,该工具必须支持加密套件、扩展和流行实现中存在的特性,例如,如果一个工具模仿Chrome发送但实际上不支持CHACHA20密码套件,服务器可能会为连接选择该密码套件,导致该工具终止连接,这不仅会导致兼容性问题 其次,如果服务器由工具维护者控制,这个问题可以得到部分缓解,因为服务端可以只选择工具所支持的密码套件和扩展,但是无法控制两个端点的工具中并非如此,例如域前置、折射网络和生成到其他服务器流量的工具。 一方面,由于Server Hello消息的内容较少,它只指定了一个密码套件和压缩方法,而不是服务器支持的完整列表。 然而,分析服务端选择的唯一密码套件,发现只选择了70个密码套件,前10个占所有连接的93%以上,有趣的是,在所有Client Hello中最流行的密码套件(TLS_ECDHE_RSA_WITH_AES_ 支持非标准特性的共性表明,检测人员可能很难完全了解或使用白名单覆盖所有常用的指纹。
RSA 不支持前向保密 下图是 Diffie-Hellman 密钥交换示意图: 证书 证书是包含公钥、订阅人信息、证书颁发者数字签名的数字文件,是存储、传递、使用公钥的容器。 客户端需要提供自己 TLS 版本、随机数、加密套件、压缩方法、扩展信息给服务端,让服务端进行选择。 因为客户端发送的密码套件、服务器最终选择的密码套件未必需要身份认证,同时不是所有身份认证都需要证书,所以,这个消息是可选的。 6)ClientKeyExchange 这个消息是为了 Sever 提供密钥交换的数据。 如果是 RSA 密钥交换算法,Client 用 46 字节的随机数作为预主密钥发送给 Server 即可。 这个消息中很重要的一个字段是 verify_data, 其值是用协商得到的主密钥结合协商确定的 MAC 算法对所有按序排列的握手消息进行计算得到的散列值。
该套件通过实时代理技术,能够在受害者完成MFA验证的瞬间劫持会话Cookie,从而完全绕过双因素认证机制。 2 Mamba 2FA套件架构与攻击链路解析Mamba 2FA并非单一脚本,而是一个包含前端诱饵、后端代理、控制面板及基础设施管理模块的完整生态系统。 这种“实时镜像”技术确保了钓鱼页面与真实页面在视觉和功能上完全一致,包括所有的安全标识、多语言支持甚至动态加载的验证码。 当用户在页面上进行操作时,所有请求均先发送至攻击者的代理服务器,再由代理服务器转发至Microsoft官方服务器。响应数据则沿原路返回。 同时,建立快速响应机制,确保用户在怀疑受损时能迅速获得支持,缩短攻击者的驻留时间。6 结论Mamba 2FA钓鱼套件的出现,标志着网络攻击已进入高度自动化与服务化的新阶段。
在此背景下,“RaccoonO365”作为一个典型代表,自2024年末起迅速扩张,其核心目标并非单纯获取用户名密码,而是通过伪造Microsoft 365登录界面,诱导用户完成完整身份验证流程,进而窃取包含多因素认证 因此,亟需从攻击链视角重构防御体系,将焦点前移至身份验证环节本身。 攻击者可直接使用这些Cookie在浏览器中维持登录会话,或利用刷新令牌在后台静默获取新的访问令牌(Access Token),从而绕过所有基于密码的二次验证。 由于所有操作均来自合法会话,传统EDR或SIEM系统难以将其标记为异常。 (四)用户安全意识培训技术防护无法完全替代人的判断。
其实在商用密码中,密码算法分为加密算法和哈希算法两大类,其中哈希算法常见是MD5和SHA系列,哈希算法也属于密码算法,所以通过密码技术完全可以实现完整性校验, 2传输过程中的完整性,传输过程中的完整性主要通过协议来实现 而在Linux中,口令保存shadow文件中,口令也是采用SHA哈希算法进行加密,主要有三类:$1表示MD5 ; $6 表示SHA-512 ; $5 SHA-256。 其实在开发过程中,技术方面进行哈希校验并不难,因为常见开发语言均内置哈希函数,比如php的hash()、java的hashcode()等,但是问题重点在主流开发语言目前少于内置SM3等国密哈希算法,随着商密应用的测评 四、数据的保密性测评 a)应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等; 传输过程中的保密性测评中,这个比较简单,主要核查是否采用TLS、SSH等加密协议 不对从服务器向客户端发送的数据进行加密。 兼容 这是默认设置,此级别以客户端支持的最大密钥强度对在客户端与服务器之间发送的数据进行加密。