赞
踩
目录
14.2 什么是SSL/TLS
SSL/TLS综合运用了前面提到的对称密码、消息认证码、公钥密码、数字签名、伪随机数生成器等密码技术。严格来说SSL(Secure Socket Layer)与TLS(Transport Layer Security)是不同的,TLS相当于是SSL的后续版本。这里介绍的大多是SSL/TLS两者兼具备的,因此,除具体介绍通信协议外,都统一写作SSL/TLS。
之间的通信,如果直接发送请求的话,信用卡号就可能被窃听。
可以使用SSL或TLS作为对通信进行加密的协议,然后在此基础上承载HTTP。通过将两种协议进行叠加,我们就可以对HTTP的通信协议进行加密,从而防止窃听。通过SSL/TLS进行通信加密时,URL不是http://开头的,而是以https://开头。
大致了解SSL/TLS之后,我们想要实现的是通过本地的Web浏览器访问网络上的Web服务器,并进行安全的通信。
我们提到用SSL/TLS承载HTTP通信,这是因为HTTP是一种常用的协议,其实SSL/TLS不仅仅可以承载HTTP,还可以承载其他很多协议。例如,发送邮件时所使用的SMTP协议和接收邮件时使用的POP3协议,都可以用SSL/TLS进行承载。这样就可以对收发邮件进行保护。
SSL/TLS承载HTTP、SMTP、POP3的结构如图所示。
SSL/TLS提供了一种密码通信的框架,这意味着SSL/TLS中使用的对称密码、公钥密码、数字签名、单向散列函数等技术,都是可以像零件一样进行替换的,也就是说,如果发现现在所使用的某个密码技术存在弱点,那么只要将这一部分今天替换就可以了。
尽管如此,也不是说所有的组件都可以自由的选择。由于实际进行对话的客户端和服务器端必须使用相同的密码技术才能进行通信,因此如果选择过于自由,就能以保证整体的兼容性。为此,SSL/TLS就像事先搭配好了饭盒一样,规定了一些密码技术的“推荐套餐”,这种推荐套餐成密码套件。
SSL(Secure Socket Layer,安全套接字)是1994年由网景(Netscape)公司设计的一种协议,并在该公司的Web浏览器Netscape Navigator中进行了事先。随后,很多Web浏览器都采用了这一协议,使其成为了事实上行业标准。SSL已经于1995年发布了3.0版本,但是在2014年,SSL3.0协议就被发现可能导致POODLEDE安全漏洞(CVE-2014-3566),因此SSL3.0已经不安全了。
TLS(Transport Layer Security,传输层安全)是IETF在3.0基础上设计的协议。在1999年作为RFC2246
发布的TLS,实际上相当于SSL3.1。
2006年,TLS1.1以RFC4346的形式发布,这个版本中增加了针对CBC攻击的策略,并加入了AES对称密码算法。TLS1.2中新增了对GCM、CCM认证加密的支持,此外,还新增了HMAC-SHA256,并删除了IDEA和DES,将伪随机数函数改为基于SHA-256来实现。
TLS协议是由TLS记录协议(TLS record protocol)和TLS握手协议(TLS handshake protocol)这两层协议叠加而成的。位于底层的TLS记录协议负责进行加密,而位于上层的TLS握手协议则负责除了加密以外的其他各种操作。上层的TLS握手协议又可以分为4个子协议。TLS协议层次结构如图。
TLS协议结构
-TLS记录协议是负责消息的压缩、加密以及数据的认证。
2.1 握手协议
握手协议是TLS握手协议的一部分,负责在客户端和服务器端之间协商决定密码算法和共享密钥。基于证书的认证操作也在这个协议中完成。是最复杂的一个。
握手协议通信过程
ClientHello(客户端 -> 服务器)
ServerHello(服务器 -> 客户端)
Certificate(服务器 -> 客户端)
ServerKeyExchange(服务器 -> 客户端)
CertificateRquest(服务器 -> 客户端)
ServerHelloDone(服务器 -> 客户端)
Certificate(客户端 -> 服务器)
ClientKeyExchange(客户端 -> 服务器)
CertificateVerify(客户端 -> 服务器)
ChangeCipherSpec(客户端 -> 服务器)
Finished(客户端 -> 服务器)
ChangeCipherSpec(服务器 -> 客户端)
Finished(服务器 -> 客户端)
切换至应用数据协议
密码规格变更协议是TLS握手协议的一部分,负责向同学对象传达变更密码方式的信号。
警告协议是TLS握手协议的一部分。警告协议负责在发生错误时将错误传达给对方。
应用数据协议是TLS握手协议的一部分。应用数据协议是将TLS上面承载的应用数据传达给通信对象的协议。
- 对各个密码技术的攻击
OpenSSL的心脏出血漏洞
SSL3.0的漏洞与POODLE攻击
FREAK攻击与密码产品出口管制
- 对伪随机数生成器的攻击
- 利用证书的时间差进行攻击
- 不要误解证书的含义:就是通过证书认证并不就代表服务器是正确的。很好理解,就是拥有合法身份证的人,不一定是你要转移钱的对象。
- 密码通信之前的数据是不受保护的
- 密码通信之后的数据是不受保护的
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。