TLS (Transport Layer Security)协议支持多种身份验证模式、密钥交换方法和协议扩展。令人困惑的是,每个组合可能在客户机和服务器之间规定不同的消息序列,因此TLS实现的一个关键挑战是定义正确处理这些组合的组合状态机。如果状态机的限制太大,则实现可能无法与其他实现进行互操作;如果它太自由,它可能允许意外的消息序列,从而破坏协议的安全性。我们系统地测试了流行的TLS实现,并在许多状态机中发现了隐藏多年的意外转换。我们将展示其中一些缺陷如何导致关键的安全漏洞,例如FREAK。虽然测试可以帮助发现这些错误,但正式的验证可以完全防止它们。为此,我们为OpenSSL(一个流行的TLS库)实现并正式验证了一个新的复合状态机。
传输层安全(TLS),13以前被称为安全套接字层(SSL),是一种广泛用于web (HTTPS)、电子邮件和无线网络安全通信的标准加密协议。图1描述了TLS的常用用法及其威胁模型。根据该协议,客户端和服务器交换消息,在不安全的网络上建立安全通道。同时,网络攻击者可以拦截这些消息,篡改它们,并注入新的消息来混淆两者。此外,攻击者可能控制一些恶意客户端和服务器,可以自由地偏离协议。TLS的目标是确保诚实的客户机和服务器之间交换的数据的完整性和机密性,尽管攻击者尽了最大的努力。
TLS提供了大量的密码算法和协议特性选择,以适应不同应用程序的需求。每个TLS连接由一个通道建立协议组成,称为握手,然后是传输协议记录。在握手期间,客户端和服务器协商希望使用哪些算法和特性。例如,客户端和服务器可以使用证书或预共享密钥进行身份验证,也可以保持匿名;密钥交换可以使用临时Diffie-Hellman或RSA加密;记录协议可使用AES-GCM或RC4加密敏感应用数据。
没有发现记录