https证书被中间人截获,信息会被监听吗?

VSole2021-09-17 16:01:53

假设A和B通信,B把证书传给A。此时被中间人O拦截到证书,中间人备份一份后发给A。A验证证书也无误。那中间人不可以拿证书进行中间人攻击了吗?

相当于O变成了A和B沟通的代理。O虽然改不了A的信息,但是感觉O可以伪造是A的信息。

我应该是理解错了,但是不知道那个步骤没理解。请各位大佬指出一下,谢谢。

 

这个小case太低估了https设计者的集体的智慧了。这些点他们早已想到并防范,还有咱们没有想到的攻击点,他们也想到了。当然基于TLS的https实现并不是100%安全,这种不安全性主要来自于TLS的Code不完美实现,而不是来自于TLS协议本身。

咱们以访问知乎的主页为例,当客户端与知乎服务器建立TLS安全连接时,知乎的服务器会将自己的证书链推送给客户端,通常是三张证书:

  • CA证书(根证书,一级证书),用CA自己的私钥给RA签名并背书,自己给自己签名(私钥签名)(1)
  • RA证书(二级证书),包含RA明文公钥,用RA自己的私钥给知乎证书签名并背书 (2)
  • 知乎证书(叶子证书,三级证书),包含知乎的公钥,知乎的公钥由RA(私钥)签名并担保 (3)

客户端需要验证这个证书链是否和本地操作系统信任证书有任何关联,通常是这么验证的:

  • 客户端根据2的RA公钥,验证3的签名是否通过。说的直白一点就是,能否将签名解密?如果可以,进入下一步,否则失败。
  • 客户端根据1的CA公钥,验证2的签名是否通过。如果可以,进入下一步,否则失败。
  • 客户端使用1的CA公钥,查询本地信任CA证书数据库,如果查询到,则验证通过,否则失败。

终于来到题主的问题了,以上验证过程只是验证这个证书链是合法的,但是这个证书链是从知乎服务器发出的,还是第三方发出的,无法验证,不是吗?

如何确保这个证书链来自于知乎的服务器,而不是第三方呢?

很简单,因为只有知乎服务器才拥有证书链里3的私钥,第三方却没有,是吗?

那只要在安全建立的过程,知乎服务器使用证书3的对应的私钥,对某个关键信息签名不就Okay了吗?

客户端收到这个有签名的关键信息,只要用证书3的公钥尝试解密,成功则意味着签名是知乎私钥签署的,消息报文来自于知乎服务器。否则就是伪造的,失败。

对什么关键信息进行签名呢?

当然对DH公钥进行签名最合理,因为DH算法的公钥没有签名保护,很容易就被中间人攻击了。此举真是一举两得,既证明消息报文来自于知乎服务器,又间接保护了DH公钥,来自于知乎服务器的DH公钥。

双方交换了DH公钥、Nonce,双方就可以推导用于加密http的对称密钥了,整个安全连接建立完成,https加密流量走起。

最后留给读者一个问题,在TLS安全连接建立过程,客户端并没有证书(公钥)也没有自己的私钥,会产生以下几个潜在的问题:

  • 客户端的DH公钥如何防范中间人攻击?
  • 客户端发出的消息报文由于没有签名保护,如何防范中间人攻击?比如中间人将加密算法修改成最容易破解的算法?

写到这里突然想到本文的问题,如果第三方将知乎服务器的DH公钥(知乎服务器私钥签名)保存下来,下一次直接replay是否可行?

同样不可行,Replay是可以成功欺骗客户端,但是第三方没有知乎的DH私钥啊,因为知乎服务器的DH私钥不在网络上传输,只保存在知乎服务器的内存里,而且一旦会话推出,这个DH私钥就随着内存释放而消失了。

证书链公钥加密
本作品采用《CC 协议》,转载必须注明作者和本文链接
信息技术飞速发展,在不断改变人们生产生活方式的同时,也带来了日益严峻的网络安全问题。如何在网络实体间建立信任关系,是信息安全领域需要解决的重点问题。作为网络安全的基石,网络信任体系衍生出基础设施、标识密码等多种技术。当前,区块技术以不可篡改、不可伪造、可追溯等特点备受各界关注,在金融、政务、司法等领域广泛应用,也为网络信任体系的构建提供了新的思路。
一、前言 在上次《拨开俄乌网络战迷雾-域名证书测绘篇》里,对俄乌双方网站域名证书的存活情况和颁发机构分布情况变动研究中,发现难以从部分证书解析得到的颁发者名称及机构中,正确识别其证书颁发机构(Certificate Authority, CA)。针对此类问题进行调研,发现一篇发表在USENIX 2021的论文工作[1],如图1所示。其作者提出基于CA对证书的操作行为特征进行聚类的Fides系统,
为了防止车主隐私泄露,本系统设计了每周为车主颁发20张假名证书,假名证书每5分钟随意变换使用。国汽智联的基于商用密码的V2X通信安全认证防护体系SCMS也验证了CCSA标准YD/T 3957
通过考虑 TLS 协议中的证书,利用证书内容对恶意流量进行识别,但是此方法对无证书传递的加密会话恶意性检测无效。图 2 展示了恶意会话和正常会话的服务器对 TLS 加密套件的选择对比和客户端支持的曲线对比。
下一代加密技术接口是微软在 Windows 下实现的取代上一代加密应用程序接口的密码服务接口。其目的是提供一种可扩展的方式以支持各种应用程序和未知的密码算法,以便不同的算法、协议向操作系统注册,并对应用程序提供统一的调用接口,应用程序无需改造即可支持对新算法的使用。研究了基于下一代加密技术接口在操作系统中注册国密SM2、SM3 算法,完成解析和验证国密 SM2 证书,实现了国密算法在系统中的注册及
区块技术具有去中心化、可追溯性和去信任化等特性,已被广泛应用于诸多领域。然而,人们往往忽略区块自身的安全问题,较少有相关问题研究及解决方案的成果。文章着重剖析区块所受安全威胁问题并提出其安全保护措施,从技术风险、内容风险等不同视角阐释区块所受的安全攻击,在多个层面给出了区块的安全保护机制,尤其对日蚀攻击防御中IP地址信用评价模型进行了思索。
云计算凭借灵活、高效的特性为现代社会发展提供重要支持,但同时伴随出现较多安全性问题,因此研究云环境下虚拟机的安全技术是十分必要的。首先对云计算技术层面进行分析,其次介绍虚拟化存在的自身安全威胁与虚拟机安全威胁,最后提出基于角色的云环境下虚拟机安全访问控制策略。
在 Kerberos 身份验证中,客户端必须在 KDC为其提供票证授予票证 之前执行“预验证”,该票证随后可用于获取服务票证。使用时间戳而不是静态值有助于防止重放攻击。客户端有一个公私对,并用他们的私钥对预认证数据进行加密,KDC 用客户端的对其进行解密。该属性的值是 Key Credentials这种信任模型消除了使用无密码身份验证为每个人颁发客户端证书的需要。PKINIT 允许 WHfB 用户或传统的智能卡用户执行 Kerberos 身份验证并获得 TGT。
在BlackHat21中,Specterops发布了Active Directory Certificate Services利用白皮书。尽管ADCS并不是默认安装,但在大型企业域中通常被广泛部署。 本文分为上下两篇,结合实战,讲述如何在域环境中利用ADCS手法拿下域控,哪些对象ACL可用于更好的权限维持,并涉及ADCS的基础架构、攻击面、后利用等。
VSole
网络安全专家