浏览器将自己的一套加密规则发送给网站
网站选取其中一组加密算法和Hash算法,并将自己的信息已证书的形式发送给浏览器。证书中包含网站地址、加密公钥、证书颁发机构等信息。
浏览器获得网站证书后浏览器要做一下工作:
a. 验证证书的合法性
b. 如果证书受信任,或者用户接受了不受信任的证书,浏览器会生成一串随机数的密码,并用证书提供的公钥加密。
c. 使用密码加密一段握手消息,发送给浏览器网站接收到浏览器发来的数据之后要做一下的操作:
a. 使用自己的私钥信息解密出用于通信的加密密码,使用密码解密浏览器发送来的握手消息,并验证Hash是否与浏览器发来的一致。
b. 使用获取的加密密码发送一段握手消息给浏览器浏览器解密并计算握手消息,并通过Hash判断数据的完整性,正确性。
至此结束,以后通过加密密码进行数据加密通信
##用到的算法
非对称加密:网站提供,发送公钥,保存私钥。用于获取浏览器生成的随机密码
对称加密:浏览器随机生成的密钥。用于数据通信时进行加密,解密。
Hash算法:浏览器提供,网站选择使用哪一个。用于验证数据包的完整性。
##Fiddler中间人攻击,截取https通信
浏览器->Fiddler->网站
- 浏览器和fiddler进行https通信
- fiddler获取浏览器请求,并通过https转发请求到真正的网站服务器
##加密方法
非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
HASH算法:MD5,SHA1,SHA256