SSL/TLS

来源:互联网 发布:北京和上海知乎 编辑:程序博客网 时间:2024/05/16 15:12

SSL/TLS

1.      概念

SSL是由Netscape发明,V3版本是结合了公众和厂商的意见而设计的,它开始被作为一种互联网草案而发布,现在已经成了互联网上的标准。IETF在Openssl3.0的基础上做了一些细微的修改,编写了TLS1.0版本,也即SSL3.1。

 

SSL用来提供端到端的可信TCP链接,SSL涉及到2层协议,如下图

 

HTTP

SSL握手协议

SSL密码修改协议

SSL告警协议

SSL记录协议

TCP

IP

 

SSL记录协议为各种高层协议提供了基础的安全服务,SSL包含3个高层协议:握手协议、密码修改协议、告警协议

 

SSL包含2个重要概念:

SSL连接:连接是端到端的,连接是短暂的,每个连接都与一个会话相关

SSL会话:SSL会话是一个C和S之间的联合,SSL会话是由握手协议创建的,会话定义了一系列的安全参数,这些参数能在多个连接间共享,SSL会话避免了为每个连接再重新耗费资源协商一次安全参数。

 

 

SSL思维MM图

证书颁发与验证

        权威CA给服务器颁发证书,用自己的私钥签名,这样浏览器就能用权威CA的公钥验证服务器证书。

        服务器用自签名根证书的私钥给客户端颁发证书,用自己的私钥签名,这样服务器就能用自己的公钥验证客户端证书。

所以我们可以得出:

        证书颁发用私钥,证书验证用公钥

 

SSL握手

SSL通信(双向证书认证)有以下流程:

a.      双方sayhello,确定密钥交换/加密/压缩/MAC算法,和随机数

b.      服务器端发送自己的证书给客户端(含公钥),客户端用权威CA的公钥验证服务器证书。

c.      客户端发送自己的证书和密钥交换信息(用自己的私钥签名,用服务器的公钥加密)发给服务器,服务器用自己的私钥解密,用自签名证书的公钥验证客户端证书,用客户端证书的公钥验证客户端身份。

d.      双方确定通信密钥(包括加密算法和压缩算法的密钥)

所以我们可以得出:

SSL通信双方都需要私钥

 

 

2.      SSL可能遭受的攻击

SSL最可能遭受中间人攻击,导致身份盗取。

 

3.      SSL库

目前最流行的SSL库是openssl,历史上爆发过很多漏洞,比如注明的HeartBleed漏洞,SSLCCS注入漏洞。Openssl官方网站上公布了自己的很多漏洞,

https://www.openssl.org/news/vulnerabilities.html

比如MSF上针对Openssl的exploit

 

4.      Referers:

1.      《密码编码学与网络安全》

2.      https://www.openssl.org/

3.      H3C的SSL技术白皮书:

http://www.h3c.com.cn/Products___Technology/Technology/Security_Encrypt/Other_technology/Technology_book/200812/622834_30003_0.htm#_Toc212542727


0 0