HTTPS要点总结
1.HTTPS的特点
HTTPS的本质还是HTTP 在TCP层加上了SSL或TLS
端口:
- HTTP:80
- HTTPS:443
2.HTTPS安全性
- 1)提供验证服务,验证本次会话身份的合法性
- 2)提供加密服务,强加密机制能保证通信中的消息不被破译
- 3)提供防篡改服务,利用Hash算法对消息进行签名,通过验证签名保证通信内容不被篡改
3.图解
|----------------------------------------|
| |
| HTTP |
| |
| |-------------|
| | SSL/TLS |
|--------------------------|-------------|
| TCP |
|----------------------------------------|
| IP |
|----------------------------------------|
| 链路协议 |
|----------------------------------------|
4.Hash算法
- 1)对称加密,密钥只有一个,加密、解密都是这个密码,加解密速度快
- 2)典型的对称加密算法有:DES、AES、RC4
- 3)非对称Jamie。密钥成对出现,分别为公钥和私钥,从公钥无法推知私钥,反之从私钥也不能推知公钥。加解密使用不同的密钥,公钥加密需要私钥解密,反之,私钥解密需要公钥加密。非对称加密速度慢
- 4)典型非对称加密算法:RSA、DSA、DSS
- 5)Hash算法,这是一种不可逆的算法,常用于验证数据的完整性
5.HTTPS通信过程
- 1)客户端浏览器发送SSL/TLS协议的版本号、机密算法的种类、生产的随机数,以及其他需要的各种信息
- 2)服务器从客户端支持的加密算法中选择一组加密算法与Hash算法,并且把自己的证书(包含网站网址、加密公钥、证书颁发机构等)也发送给服务端
- 3)浏览器获取服务器证书后验证其合法性,颁发机构是否合法,颁发证书中的网址是否与正在访问的地址一致,通过验证的浏览器会显示一个小锁头🔐,否则,提示证书不受信任。
- 4)客户端浏览器生成一串随机数并用服务器传来的公钥加密,在使用约定好的Hash算法计算握手消息,发送到服务器端。
- 5)服务器端接收到握手消息后用自己的私钥解密,并用散列算法验证,这样双方都有了此次通信的密钥。
- 6)服务器再使用密钥加密一段握手消息,返回给客户端浏览器
- 7)浏览器用密钥解密,并用散列算法验证,确定算法与密钥