https相对于http解决三个问题:
1、防止通信内容被监听
2、防止通信内容被篡改
3、防止通信双方被冒充(中间人攻击)
https主要用了下面三个技术
一、对称加密(比如AES、DES)
由于http时明文传输,中途可能会被窃听到通信内容,https对通信内容进行对称加密
二、非对称加密(比如RSA)
使用非对称加密对上面的对称加密的密钥进行加密,一方面可以防止对称加密的密钥被窃听到,另一方面是由于非对称机密的的效率没有对称加密高。
三、数字证书
数字证书由原始信息和数字签名组成,数字签名是非对称密钥加密技术与数字摘要技术的应用,个人信息以及公钥通过hash算法生成消息摘要,然后CA私钥加密摘要得到数字签名。数字证书校验时就是通过验证原始信息hash算法生成的摘要和CA公钥解密数字签名生成的摘要是否一致。
四、验证过程
数字证书由CA版本机构发布,服务器访问客户端时会带上数字证书,客户端用内置的CA列表校验证书的有效性,如果有问题则提示风险,由用户决定是否继续访问;如果证书正常则客户端随机生成对称密钥并用证书中的公钥加密,服务端用私钥解密得到对称加密的对称密钥,后面客户端和服务器用这个对称密钥进行通信。