如上图所示此种方式属于对称加密双方拥有相同的密钥信息得到安全传输但此种方式的缺点是
1不同的客户端、服务器数量庞大所以双方都需要维护大量的密钥维护成本很高
2因每个客户端、服务器的安全级别不同密钥极易泄露
第二步既然使用对称加密时密钥维护这么繁琐那我们就用非对称加密试试
如上图所示客户端用公钥对请求内容加密服务器使用私钥对内容解密反之亦然但上述过程也存在缺点
1公钥是公开的也就是黑客也会有公钥所以第 ④ 步私钥加密的信息如果被黑客截获其可以使用公钥进行解密获取其中的内容
第三步非对称加密既然也有缺陷那我们就将对称加密非对称加密两者结合起来取其精华、去其糟粕发挥两者的各自的优势
如上图所示
1第 ③ 步时客户端说咱们后续回话采用对称加密吧这是对称加密的算法和对称密钥这段话用公钥进行加密然后传给服务器
2服务器收到信息后用私钥解密提取出对称加密算法和对称密钥后服务器说好的对称密钥加密
3后续两者之间信息的传输就可以使用对称加密的方式了
遇到的问题
1客户端如何获得公钥
2如何确认服务器是真实的而不是黑客
第四步获取公钥与确认服务器身份
1、获取公钥
1提供一个下载公钥的地址回话前让客户端去下载。缺点下载地址有可能是假的客户端每次在回话前都先去下载公钥也很麻烦2回话开始时服务器把公钥发给客户端缺点黑客冒充服务器发送给客户端假的公钥
2、那有木有一种方式既可以安全的获取公钥又能防止黑客冒充呢 那就需要用到终极武器了SSL 证书申购
如上图所示在第 ② 步时服务器发送了一个SSL证书给客户端SSL 证书中包含的具体内容有
1证书的发布机构CA
2证书的有效期
3公钥
4证书所有者
5签名
………
3、客户端在接受到服务端发来的SSL证书时会对证书的真伪进行校验以浏览器为例说明如下
1首先浏览器读取证书中的证书所有者、有效期等信息进行一一校验
2浏览器开始查找操作系统中已内置的受信任的证书发布机构CA与服务器发来的证书中的颁发者CA比对用于校验证书是否为合法机构颁发
3如果找不到浏览器就会报错说明服务器发来的证书是不可信任的。
4如果找到那么浏览器就会从操作系统中取出 颁发者CA 的公钥然后对服务器发来的证书里面的签名进行解密
5浏览器使用相同的hash算法计算出服务器发来的证书的hash值将这个计算的hash值与证书中签名做对比
6对比结果一致则证明服务器发来的证书合法没有被冒充
7此时浏览器就可以读取证书中的公钥用于后续加密了
4、所以通过发送SSL证书的形式既解决了公钥获取问题又解决了黑客冒充问题一箭双雕HTTPS加密过程也就此形成
所以相比HTTPHTTPS 传输更加安全
1 所有信息都是加密传播黑客无法窃听。
2 具有校验机制一旦被篡改通信双方会立刻发现。
3 配备身份证书防止身份被冒充。
总结综上所述相比 HTTP 协议HTTPS 协议增加了很多握手、加密解密等流程虽然过程很复杂但其可以保证数据传输的安全。所以在这个互联网膨胀的时代其中隐藏着各种看不见的危机为了保证数据的安全维护网络稳定建议大家多多推广HTTPS。
转:https://www.cnblogs.com/YunCalc/p/7011263.html