一键搞定内网穿透 联行号查询|开户行查询 在线工具箱 藏经阁
当前位置:首页 / 杂记 / 正文
HTTPS 非对称加密
  • 对称加密算法
    1. 指加密和解密使用相同密钥的加密算法。
  • 非对称加密算法
    1. 指加密和解密使用不同密钥的加密算法,也称为公私钥加密。
    假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密(只能使用自己的私钥解密)。

非对称加密特点

  1. 使用公钥加密,使用私钥解密(使用A的公钥加密后,只能使用A的私钥解密)。
  2. 使用私钥签名,使用公钥验签(使用A的私钥名签,只能使用A公钥的验签)。

上面是两个典型应用场景,注意使用私钥加密不能使用公钥解密。
支付宝给所有商户的公钥是一样的,说明对所有商户支付宝使用的是一个私钥,因为是根据私钥生成的公钥。

非对称加密具有双向性
这个双向性网上有的说是 “即公钥和私钥中的任一个均可用作加密,此时另一个则用作解密”,是不对的,只能公钥加密私钥解密,反之不行。这里的双向性是指A、B相互分享公钥,A用B有公钥加密,B用自己的私钥解密;B用A的公钥加密,A用自己的私钥解密。

HTTPS通信过程
HTTPS = SSL(安全套接字层 Secure Socket Layer) + HTTP

通过过程如下:
client -> https:// -> server 浏览器向服务器发起HTTPS://请求。

server -> cert,publickey -> client 服务器将证书公钥返回给浏览器。

client检查cert,浏览器检查证书颁发机构是否合法,证书是否过期,证书是否是该网站的等(每如电脑里都保存了所有的合法的证书颁发机构名单,不多)。

client -> 公钥加密(对称密钥) -> server,浏览器生成一个对称密钥,使用服务器给的公钥加密后发给服务器,服务器使用私钥解密,同时双方协商确认使用一种对称加密方式(比如DES)。

使用对称加密方式相互传输内容(这里使用还是http协议,只是用的是443端口)
client -> 对称加密(传输内容) -> server -> 相同密钥对称解密
server -> 对称加密(响应内容) -> client -> 相同密钥对称解密

HTTPS实际示上是在HTTP外面包了一层SSL层,HTTPS访问时先进行一系列认证,最后还是使用对称加密方式将内容加密,然后通过HTTP协议传输内容,只是端口换成443,这里如果不考虑http自动跳转https,完全可以关闭80端口。

整个过程中浏览器都没有产生自己的公钥和私钥,浏览器只有服务器返回的公钥,网上有的说浏览器产生对称密钥后能过自己的私钥加密,然后服务器通过浏览器给的公钥解密明显是不对的。