SSL/TLS的简单介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chengqiuming/article/details/83065500

一 SSL/TLS的工作

我们想要实现的是通过本地的Web浏览器访问网络上的Web服务器,并进行安全的通信。

Alice希望通过Web浏览器向Bob书店发送信号卡号。在这里,有几个必须要解决的问题。

1 Alice的信用卡号和地址在发送到Bob书店的过程中不能被窃听。

2 Alice的信用卡号和地址在发送到Bob书店的过程中不能被篡改。

3 确认通信对方的Web服务器是真正的Bob书店。

在这里,1是机密性问题,2是完整性问题,3则是认证的问题。

要确保机密性,可以使用对称密码。由于对称密码的密钥不能被攻击者预测,因此我们使用伪随机数生成器来生成密钥。若要将对称密码的密钥发送给通信对象,可以使用公钥密码或DH密钥交换。

要识别篡改,对数据进行认证,可以使用消息认证码。消息认证码是使用单向散列函数来实现的。

要对通信对象进行认证,可以使用对公钥加上数字签名所生成的证书。

好,工具已经找齐了,下面只要用一个“框架”将这些工具组合起来就可以了。

SSL/TLS协议其实就扮演了这样一种框架的角色。

二 SSL/TLS也可以保护其他的协议

SSL/TLS可以承载HTTP通信,这是因为HTTP是一种很常用的协议。其实SSL/TLS上面不仅可以承载HTTP,还可以承载其他很多协议。例如:发送邮件时候使用的SMTP(简单邮件传输协议)和接收邮件时使用的POP3(邮件协议)都可以用SSL/TLS进行承载。在这种情况下,SSL/TLS就可以对收发的邮件进行保护。

用SSL/TLS承载HTTP、SMTP和POP3的结构如下图所示。一般的电子邮件软件都可以完成发送和接收邮件这两种操作,其实是同时扮演了SMTP客户端和POP3客户端这两种角色。

三 密码套件

SSL/TLS提供了一种密码通信框架,这意味着SSL/TLS中使用了对称密码、公钥密码、数字签名、单向散列函数等技术,都是可以像零件一样进行替换的。也就是说,如果发现现在所使用的某个密码技术存在弱点,那么只要将这一部分进行替换就可以了。

尽管如此,也并不是说所有的组件都可以自由选择。由于实际进行对话的客户端和服务器必须使用相同的密码技术才能进行通信,因此如果过于自由,就难以确保整体的兼容性。为此,SSL/TLS就像事先搭配好的饭盒一样,规定了一些密码技术的“推荐套餐”,这种推荐套餐称为密码套件。

四 SSL和TLS的区别

SSL(安全套接层)是1994年由网景公司设计的一种协议,并在该公司的Web浏览器中进行了实现。随后,很多Web浏览器都采用了这一协议,使其成为事实上的行业标准。SSL已经在1995年发布了3.0版本,但在2014年,SSL 3.0协议被发现存在可能导致POODLE攻击的安全漏洞,因此SSL3.0已经不安全了。

TLS(传输层协议)是IETF在SSL 3.0的基础上设计的协议。在1999年作为RFC2246发布的TLS1.0,实际上相对于SSL3.1。

2006年,TLS1.1以RFC4346的形式发布,这个版本增加了针对CBC攻击的对策,并加入了AES对称密码算法。TLS 1.2 新增了对GCM、CCM认证加密的支持,此外还增加了HMAC-SHA256,并删除了IDEA和DES,将伪随机函数改为基于SHA-256来实现。

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/83065500