目录
一、 HTTPS 简介
1.HTTPS 作用
2.HTTPS 攻击方法
3.SSL/TLS 也被用于其他场景的传输通道加密
4.SSL弱点
5.HTTPS加密过程
形象举例 A<---->B
二、openssl 用法
1.查看使用的安全协议信息
2.查看可破解的cipher suite
三、sslscan 用法
1.简介
2.TLS 支持的 cipher suite
3.分析证书详细信息
四、sslyze 用法
1.简介
2.常规扫描
五、在线扫描
①客户端发送报文进行SSL通信。报文中包含客户端支持的SSL的指定版本、加密组件列表(加密算法及密钥长度等)。
②服务器应答,并在应答报文中包含SSL版本以及加密组件。服务器的加密组件内容是从接受到的客户端加密组件内筛选出来的。
③服务器发送报文,报文中包含公开密钥证书。
④服务器发送报文通知客户端,最初阶段SSL握手协商部分结束。
⑤SSL第一次握手结束之后,客户端发送一个报文作为回应。报文中包含通信加密中使用的一种被称Pre-master secret的随机密码串。该密码串已经使用服务器的公钥加密。
⑥客户端发送报文,并提示服务器,此后的报文通信会采用Pre-master secret密钥加密。
⑦客户端发送Finished报文。该报文包含连接至今全部报文的整体校验值。这次握手协商是否能够完成成功,要以服务器是否能够正确解密该报文作为判定标准。
⑧服务器同样发送Change Cipher Spec报文。
⑨服务器同样发送Finished报文。
⑩服务器和客户端的Finished报文交换完毕之后,SSL连接就算建立完成。
⑪应用层协议通信,即发送HTTP响应。
⑫最后由客户端断开链接。断开链接时,发送close_nofify报文。
需要注意的是非对称加解密算法的效率要比对称加解密要低的多。所以SSL在握手过程中使用非对称密码算法来协商密钥,实际使用对称加解密的方法对http内容加密传输。下面是对这一过程的形象的比喻(摘自http://blog.chinaunix.net/u2/82806/showart_1341720.html):
假设A与B通信,A是SSL客户端,B是SSL服务器端,加密后的消息放在方括号[]里,以突出明文消息的区别。双方的处理动作的说明用圆括号()括起。
A:我想和你安全的通话,我这里的对称加密算法有DES,RC5,密钥交换算法有RSA和DH,摘要算法有MD5和SHA。
B:我们用DES-RSA-SHA这对组合好了。
这是我的证书,里面有我的名字和公钥,你拿去验证一下我的身份(把证书发给A)。
A:(查看证书上B的名字是否无误,并通过手头早已有的数字的证书验证了B的证书的真实性,如果其中一项有误,发出警告并断开连接,这一步保证了B的公钥的真实性)
(产生一份秘密消息,这份秘密消息处理后将用作对称加密密钥,加密初始化向量和hmac的密钥。将这份秘密消息-协议中称为per_master_secret-用B的公钥加密,封装成称作ClientKeyExchange的消息。由于用了B的公钥,保证了第三方无法窃听)
我生成了一份秘密消息,并用你的公钥加密了,给你(把ClientKeyExchange发给B)
注意,下面我就要用加密的办法给你发消息了!
(将秘密消息进行处理,生成加密密钥,加密初始化向量和hmac的密钥)
[我说完了]
B:(用自己的私钥将ClientKeyExchange中的秘密消息解密出来,然后将秘密消息进行处理,生成加密密钥,加密初始化向量和hmac的密钥,这时双方已经安全的协商出一套加密办法了)
注意,我也要开始用加密的办法给你发消息了!
[我说完了]
A: [我的秘密是...]
B: [其它人不会听到的...]
从上面的过程可以看到,SSL协议是如何用非对称密码算法来协商密钥,并使用密钥加密明文并传输的。还有以下几点补充:
1.B使用数字证书把自己的公钥和其他信息包装起来发送A,A验证B的身份,下面会谈到A是如何验证的。
2.A生成了了加密密钥、加密初始化向量和hmac密钥是双方用来将明文摘要和加密的。加密初始化向量和hmac密钥首先被用来对明文摘要(防止明文被篡改),然后这个摘要和明文放在一起用加密密钥加密后传输。
3.由于只有B有私钥,所以只有B可以解密ClientKeyExchange消息,并获得之后的通信密钥。
4.事实上,上述过程B没有验证A的身份,如果需要的话,SSL也是支持的,此时A也需要提供自己的证书,这里就不展开了。在设置IIS的SSL Require的时候,通常默认都是igore client certification的。
openssl s_client -connect www.baidu.com:443
openssl ciphers -v "NULL,EXPORT,LOW,DES"
sslscan –tlsall www.taobao.com:443
sslscan –show-certificate –no-ciphersuites www.taobao.com:443
sslyze --regular www.taobao.com:443
网址:https://www.ssllabs.com/ssltest/