ssl

优点

流程

n1 n2 n3 是两端生成的随机数,用来生成 session key(会话密钥)
会话密钥 是后续 http报文的加密方式

加密方式
校验用什么摘要算法
会话密钥的生成,采用什么加密方式

加密方式确认
服务端从支持的算法列表筛选出符合客户端要求的加密方式

n3'
客户端生成的随机数,然后经过证书里公钥加密后的密文

编码改变通知
表示随后的信息都将用双方商定的加密方法和密钥发送
这个消息也经过证书公钥加密过的,只有服务器私钥才能解

结束通知
表示本次握手的所有数据已发送完毕
校验作用,对本次握手发出去的数据做一次摘要

session key
经过前面四次握手,两端都能算出来的一个密钥
是对称加密的密钥
后续的 http报文 通过此 密钥加密和解密

CA证书的目的

避免公钥被篡改,是公钥可信度保证

CA证书如何验证

CA证书构成:{公证人信息 + 公钥} → 经过 CA私钥 加密得到证书
CA证书验证:客户端CA公钥 解密证书 → 证书有效期,证书颁发者合法性

为什么需要 session key,而不用证书的公钥通讯

session key 是对称加密的密钥
不对称加密的速度远慢于对称加密

为什么 session key 是安全的

session key 的生成需要 n3 原文
n3 需要 服务器的私钥才能解密得到

结束通知为什么可以保证信息的完整性

结束通知对信息做了一次摘要,摘要算法可以保证信息的完整性

ssl 延迟测量

命令行工具curl有一个w参数,可以用来测量TCP握手和SSL握手的具体耗时

$ curl -w "TCP handshake: %{time_connect}, SSL handshake: %{time_appconnect}\n" -so /dev/null https://www.alipay.com

TCP handshake: 0.022, SSL handshake: 0.064

ref

http://seanlook.com/2015/01/07/tls-ssl/
https://www.jianshu.com/p/992bad24412e
http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

posted @ 2018-03-18 12:00  twlk28  阅读(190)  评论(0编辑  收藏  举报