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

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

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

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

  • 相关阅读:
    MySQL中文显示乱码
    mysql 存储引擎 InnoDB 与 MyISAM 的区别和选择
    mysql 分表的3种方法
    mysql 清空或删除表数据后,控制表自增列值的方法
    MySQL 下优化SQL语句的一些经验
    mysql 常用命令
    MySQL获得指定数据表中auto_increment自增id值的方法及实例
    SQL Server Alwayson创建代理作业注意事项
    LinkedList子类与Queue接口
    List接口
  • 原文地址:https://www.cnblogs.com/sunshine-free/p/13992627.html
Copyright © 2011-2022 走看看