面试官问你了解https吗?
一、对称和非对称加密算法
1.1 对称加密
对称加密:用来加密和解密的**是一样的,常见的算法:AES(常用),DES,3DES
1.1.1 加密过程
- 得到**letmekang。
- 把**穿个客户端。
- 通过**加密得到密文。
- 通过原有的**解密。
1.1.2 对称加密的不适应性
对称加密前提条件:服务器和客户端都有**。把**传给客户端的做法那只能是通过网络传,盗窃**就成为可能,那拿到**以后第三者也是可以进行解密的,所以对称加密并不适合网上传递**。
1.2 非对称加密
不对称加密:用来加密和解密的**是不一样的。公钥加密只能用私钥解密,私钥加密只能用公钥解密。
1.2.1 加密过程
- 得到公钥和私钥。
- 把公钥传给客户端。
- 客户端通过公钥加密得到明文。
- 密文传给服务器端,服务器端通过私钥解密得到用户名和密码。
1.2.2 不对称加密的不适应性
不对称加密要消耗更多的cpu资源去进行解密运算,耗时。
二、 https的原理
既然对称加密之前要进行**的传递,那把**当做是明文利用非对称加密把**传给客户端,往后都用对称加密传递的信息,既保证了信息的安全性也保证了往后内容加密解密速度的提升。
对称加密结合非对称加密:
https请求就是多了验证公钥是否过期,传递公钥的时候多加了安全证书。
2.1 https流程:
- 得到公钥:letmekang和私钥:buxukang。
- 服务器端把公钥letmekang和安全证书一起携带到客户端。
- 校验安全证书是否过期,过期则返回错误响应,否则下一步。
- 生成随机的**gugu,用公钥加密gugu得到9cnwh%ee
- 把9cnwh%ee传给服务器端。
- 用私钥buxukang解密得到gugu
- 利用gugu作为共同的**加密下文信息。
2.2 抓包分析https
追踪TCP流Client Hello
可以看见随机生成的字符串和session ID以及是一些加密套装以及服务器的信息。
以上是我个人的拙见,有什么意见