笔记七HTTPS

HTTP与HTTPS

HTTP

  • 基于请求与响应,无状态(同一个客户第二次访问服务器上同一个页面时,服务器的响应与第一次相同),应用层协议

  • 基于TCP传输

  • 使用明文

HTTPS

  • HTTP协议 + SSL/TLS协议,SSL/TLS将数据加密,HTTP传输
  • SSL: Secure Sockets Layer安全套接层协议
  • TLS: Transport Layer Security传输层安全协议

密钥

  • 密钥是一种参数,在明文转换为密文或密文转换为明文的算法中输入的参数。可以分为对称密钥非对称密钥

对称加密(私钥加密)

  • 信息的接收方与发送方使用同一个密钥进行加密或解密
  • 特点:算法公开加密解密快,适合大量数据加密
  • 对称加密过程中的密钥叫做私钥,表示该密钥不能泄漏
  • 问题:私钥泄漏,密文容易破解,所以密钥安全管理困难

非对称加密(公钥加密)

  • 使用一对密钥,公钥与私钥
  • 私钥被自己保存,不能泄漏,公钥任何人都可以获得
  • 用公钥或私钥中的一个加密,用另一个解密
  • 加密解密时间花费长,速度慢

HTTPS通信过程

  • DNS->建立TCP连接->HTTPS握手->传输加密数据

  • HTTPS同时使用对称与非对称加密。

  • 数据对称加密传输

  • 数据的对称加密需要客户端的一个密钥,为了确保该密钥安全传输到服务器,采用非对称加密对该密钥进行加密传输

  • 过程:

    1. 客户端向服务:器发起HTTPS请求,连接到服务器443端口
    2. 浏览器将自己支持的一套加密规则发送给服务器端
    3. 服务器端有两个密钥,公钥私钥,用来非对称加密,私钥不能泄漏,公钥可以发送给任何人
    4. 服务器从客户端发来的加密规则中选出一组加密规则与HASH算法,并将自己的身份信息以证书的形式发回浏览器。证书中包含网络地址,公开密钥算法,hash算法,公钥,证书颁发机构等信息
    5. 客户端验证服务器端证书的合法性(证书颁发机构是否合法,验证证书中的地址与访问地址是否一致等),合法浏览器生成一串随机密码并用证书中的公钥加密,使用约定好的hash算法计算握手消息,并用生成的随机数对消息加密,最后将之前的所有消息发送给网站
    6. 浏览器接收后:使用私钥将信息解密取出密钥,解密浏览器发来的握手消息,并验证hash是否一致,然后使用密钥加密之前所发送的所有握手消息的hash值,发送给客户端校验
    7. 真正的数据传输(对称加密)
  • 浏览器与网站相互发送加密的握手消息并验证,保证双方都获得了一致的密码,并且可以正常加解密数据,为后续的真正数据传输做一次测试

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值