HTTPS演进
演进一: HTTP
HTTP明文传输不安全,任何人都可能从中截获请求、修改请求或伪造请求进行发送。
- 没有用户验证
- 不验证报文完整性
演进二:对称加密
对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥,作为私钥。
常见的对称加密算法:DES,AES,3DES等等。
演进三:非对称加密
非对称加密指的是:加密和解密使用不同的秘钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。
常见的非对称加密算法:RSA,ECC
演进四:非对称加密协商对称加密Key,利用Key进行对称加密
总结一下以上的缺点:
- HTTP明文传输,不安全!
- 对称加密,Key固定,所有人都能拿到Key进行数据解密,不安全!
- 非对称加密,Client向Server发送数据安全,Server向Client发送数据不安全!
综合以上:
- 利用非对称加密,Client向Server发送数据安全的方式,达成Key值的协商
- 利用Key,完成对称加密实现安全数据传输
演进五:对称加密 + 非对称加密 + CA
演进四问题:中间人问题!
CA又称为证书颁发机构,主要用于颁发数字证书,用一个无法篡改的数字证书来表明身份,防止数据在通讯过程中被篡改和窥探,数字证书通常分为以下几种:
- 个人身份证书。
- 企业或机构身份证书。
- 支付网关证书。
- 服务器证书。
- 企业或机构代码签名证书。
- 安全电子邮件证书。
- 个人代码签名证书。
最终版本:对称加密 + 非对称加密 + hash + CA
- C -> S:支持的SSL版本、非对称加密算法、随机数1
- S->C:用SSL1.0版本、对称加密算法、随机数2、证书
- C:证书认证成功!
- C -> S:随机数3,hash(1、2) = xx
- S:xx == hash(1、2) 随机数1、2、3算数运算 = k
- S->C:hash(1、2、4) = zz
- C:hash(1、2、4) == zz 随机数1、2、3算数运算 = k