https—即加密的http协议,使用了SSL加密。
hhtp服务端口:80
https服务端口:443
https协议格式:
具体信息可以参考:http协议格式 上面请求的资源在请求首行的查询字符串里,请求无正文;然后服务器的响应有正文。
https加密流程(SSL加密流程)
http协议使用了SSL加密,SSL加密流程为: 1.身份验证:使用CA认证–CA证书(权威机构信息,机构信息,有效期…),一般为找一个通信双发都信任的第三方机构,给通信双方颁发证书,通信前把自己的证书发送给对方。 这里顺便瞄一眼访问csdn时的CA证书信息。
通信前对方拿到身份证书进行解析得到相关信息(颁发者,颁发给谁…)
1. 确认当前通信机构是否为自己想要通信的机构。
2. 确认颁发者机构是否为自己信任的机构。
3. 在信任的这个权威机构进行再次确认。
身份验证成功了,仍然可能存在通信泄密情况,所以还需要考虑数据加密的问题。 2.传输加密:对通信数据进行加密处理防止网络监听。
-
对称加密:加密和解密使用的密钥(算法)相同。 缺陷:对称密钥容易被劫持。 优点:加解密效率高。 -
非对称加密:加密和解密使用的密钥不同。 原理:根据特定算法生(RSA算法等)成一对密钥(公钥+密钥),通信前将公钥交给对方,对方使用公钥进行加密,发送过来自己使用私钥进行解密。RSA非对称加密算法详解 优点:安全。公钥不怕被劫持,因为公钥无法进行解密。 缺陷:加解密效率低。
SSL采用混合加密,融合了上量两种加密方式的优点。 混合加密:先使用非对称加密保护一个对称密钥的协商过程,然后对称密钥协商完成之后,使用对称加密传输。
https加密流程总结:
实际SSL加密是将身份验证和加密传输两步骤合在一起,总流程为:
- 需要被验证身份的一方生成一对密钥
- 去权威机构生成一个CA证书(并且将公钥交给权威机构)
- 通信前将CA证书发给对端(证书会包含机构信息和公钥信息)
- 对端对证书进行解析,对当前通信方身份进行验证。
- 身份验证通过之后,使用混合加密方式传输数据:即先使用非对称加密方式协商对称密钥,对称密钥协商完成之后,使用对称加密传输。其中使用非对称加密方式协商对称密钥的过程为:1.使用公钥加密数据(一个随机数+对称密钥算法列表)发送给验证方;2.验证方回复数据(一个随机数+对称密钥算法列表);3.双方使用两个随机送以及对称密钥算法列表计算出一对密钥。
|