什么是HTTPS
- HTTP:浏览网页时的协议,数据未加密,明文传输。
- HTTPS:为了对HTTP的数据加密传输,网景公司设计了SSL(Secure Sockets Layer)协议。
工作原理
- 浏览器将自己支持的加密规则发送给网站。
- 网站选出一组加密算法、HASH算法,并将自己的身份信息以证书的形式发送给浏览器。证书里包括:网站地址、加密公钥、证书颁发机构。
- 浏览器获取证书后:
- 验证证书合法性
- 浏览器生成一串随机数的密码,用证书提供的公钥加密
- 使用约定好的HASH计算握手消息,使用随机数对消息加密,发送给网站
- 网站接收到消息后:
- 使用私钥解密信息,获得密码,使用密码解密握手消息,并验证HASH是否与浏览器发送的一致
- 使用密码加密一段握手消息,发送给浏览器
- 浏览器解密握手消息的HASH,如果和服务端发来的HASH一致,握手结束。
- 所有通信数据,根据浏览器生成的随机密码,使用对称加密算法进行加密。
使用的算法
- 非对称加密算法:RSA,DSA/DSS。在握手过程中加密生成的密码。
- 对称加密算法:AES,RC4,3DES。对真正传输的数据加密。
- HASH算法:MD5,SHA1,SHA256。验证数据完整性。