0%

https通信流程

  1. 浏览器将自己的一套加密规则发送给网站

  2. 网站选取其中一组加密算法和Hash算法,并将自己的信息已证书的形式发送给浏览器。证书中包含网站地址、加密公钥、证书颁发机构等信息。

  3. 浏览器获得网站证书后浏览器要做一下工作:

    a. 验证证书的合法性
    b. 如果证书受信任,或者用户接受了不受信任的证书,浏览器会生成一串随机数的密码,并用证书提供的公钥加密。
    c. 使用密码加密一段握手消息,发送给浏览器

  4. 网站接收到浏览器发来的数据之后要做一下的操作:

    a. 使用自己的私钥信息解密出用于通信的加密密码,使用密码解密浏览器发送来的握手消息,并验证Hash是否与浏览器发来的一致。
    b. 使用获取的加密密码发送一段握手消息给浏览器

  5. 浏览器解密并计算握手消息,并通过Hash判断数据的完整性,正确性。

  6. 至此结束,以后通过加密密码进行数据加密通信

##用到的算法
非对称加密:网站提供,发送公钥,保存私钥。用于获取浏览器生成的随机密码

对称加密:浏览器随机生成的密钥。用于数据通信时进行加密,解密。

Hash算法:浏览器提供,网站选择使用哪一个。用于验证数据包的完整性。

##Fiddler中间人攻击,截取https通信
浏览器->Fiddler->网站

  • 浏览器和fiddler进行https通信
  • fiddler获取浏览器请求,并通过https转发请求到真正的网站服务器

##加密方法
非对称加密算法:RSA,DSA/DSS

对称加密算法:AES,RC4,3DES

HASH算法:MD5,SHA1,SHA256