HTTPS是什么?
HTTPS与HTTP一样都是应用层协议,与HTTP不同的是:HTTP的协议内容都是按照文本方式进行明文传输的,这导致在传输过程第三方者能够轻易获取传输的内容,而HTTPS在HTTP协议基础上引入一个加密以防止传输内容泄露或被篡改。
加密解密又是什么?
加密就是指将明文(要传输的信息)按照指定的方式进行变换,生成密文。
解密就是指将密文按照指定的方式进行变换,还原成为明文。
在加密和解密的过程中,一般需要一种或者多个中间转换的数据,来辅助这过程的正常进行,这种数据被叫做密钥。
其作用就是为了防止他人获取其中的明文,造成隐患。
分类:
1)、对称加密
对称加密:指的是加密和解密使用同一个密钥,也叫做共享密钥加密,共享密钥加密的方式效率会比较高。客户端和服务端要约定共享密钥是什么,共享密钥就得明文在互联网中传输,一旦攻击者拿到了共享密钥,那么后续所有使用共享密钥加密过的消息内容安全性也就不存在了
2)、非对称加密
非对称加密:一般使用两个密钥,一个是称为‘公钥’,另一个叫做‘私钥’。
公钥和私钥是配对的,其最大的缺点就是运算速度慢,比对称加密慢许多。
私钥就可以对密文解密也可以对明文进行加密,公钥也一样。一般情况来说客户端可以获得公钥,而服务器一般使用私钥
https加密过程
- https是基于tcp协议的,客户端先会和服务端发起链接建立
- 接着服务端会把它的证书返回给客户端,证书里面包括公钥S.pub、颁发机构和有效期等信息
- 拿到的证书可以通过浏览器内置的根证书(内含C.pub)验证其合法性
- 客户端生成随机的对称加密秘钥Z,通过服务端的公钥S.pub加密发给服务端
- 客户端和服务端通过对称秘钥Z加密数据来进行http通信
CA证书
CA证书是为了确保服务端的公钥是准确无误,没被修改过的
包含内容:
(1) 服务端的公钥;
(2) 证书发行者(CA)对证书的数字签名;
(3) 证书所用的签名算法;
(4) 证书发布机构、有效期、所有者的信息等其他信息