HTTPS原理

HTTPS: 非对称加密+对称加密+Hash散列算法+CA

对称加密,同一个key加密和解密。如果只有一个key,加密效果不好

非对称加密,公钥加密,私钥解密,私钥加密或者公钥解密。

非对称加密的问题在于,客户端向服务端发送公钥加密后的数据,服务端可以用私钥解密获取明文数据,这很安全;但是当服务端给客户端发送数据的时候,由于客户端没有私钥,如果服务端不能用公钥加密,如果客户端用私钥进行加密,黑客就可以用公钥解密数据,无法保证安全。

解决方法:对称非对称混合加密

  1. 客户端向服务端索要CA证书(被CA私钥加密过的服务端公钥),客户端返回CA证书
  2. 客户端随机生成字符串k,用公钥加密数据,发送给服务端
  3. 服务端用私钥解密获得k,发送回应给客户端(Hash)
  4. 之后数据用k作为秘钥对传输数据进行对称加密

 

威胁:中间人攻击

黑客在第1步中假装服务端,在第2,3,4中冒充客户端,因此k和公钥都是黑客提供,安全性不再。

解决方法:

引入CA作为一个权威机构,用来认证公钥。被认证的公钥会被CA用CSK(CA秘钥)进行非对称加密,被加密的公钥被称为证书。因此用户在第1步中向客户端索要的将不再是直接的公钥而是被加密后的公钥,客户端需要用CA提供的公钥CPK【CPK是被写在操作系统中的,不用从外界获取】对其进行解密获得服务端的公钥。

posted @ 2020-11-27 13:22  SvenWayne  阅读(72)  评论(0)    收藏  举报