zoukankan      html  css  js  c++  java
  • https是如何保证传输安全的

    使用非对称加密密钥对对称加密密钥进行传输。首先服务器使用非对称加密算法生成公私钥a、b,将公钥a传输给浏览器(客户端),客户端会使用对称加密算法生成一个密钥c,客户端使用a加密c生成d,然后将加密后的信息d传输给服务器,服务器使用私钥b对传输来的d进行解密,得到对称加密的公钥,双方就可以开始通信了。
    但是此过程不是绝对安全的。因为传输的公钥b是明文,可以在传输的过程中被窃取,同时中间人攻击得到b之后可以冒充浏览器(客户端)与服务器进行通信,同时冒充服务器与客户端进行通信。也就是还需要对通信双方的身份进行验证。
    通过CA证书进行通信双方身份的验证。
    服务器首先花钱从CA证书认证机构购买一个数字证书,证书通常包含服务器的公钥证书文件。然后服务器将公钥证书发送给客户端,客户端通过数字签名验证收到的证书是否可信。如果可信,就随机生成一个对称加密密钥,然后使用收到的公钥对密钥进行加密,然后将加密信息发送到服务器,服务器通过私钥进行解密,得到对称加密密钥,接下来就可以进行通信。

    摘要算法:
    使用单项hash算法将明文摘要成一段固定长度(128位)的密文。可以防止数据遭到篡改,保证数据完整性。

    数字签名:
    使用非对称密钥加解密和数字摘要两项技术,服务器将原文摘要使用私钥进行加密,然后与原文一起传送给接收者,接收者使用公钥对摘要信息进行解密得到摘要信息,然后通过hash函数对原文进行数字摘要得到另外一段摘要信息,比较这两个摘要信息,就可以验证信息完整性。

  • 相关阅读:
    Spring Boot第四弹,一文教你如何无感知切换日志框架?
    Spring Boot 第三弹,一文带你了解日志如何配置?
    UVa 1625
    UVa 11584
    UVa 11400
    UVa 12563
    UVa 116
    UVa 1347
    UVa 437
    UVa 1025
  • 原文地址:https://www.cnblogs.com/sunshine-free/p/13992627.html
Copyright © 2011-2022 走看看