HTTP和HTTPS的区别

1. HTTPS简介

在这里插入图片描述
在HTTPS下增加了一个SLL层或者TLS层,具有了保护交换数据隐私以及完整性。还提供对网上服务器身份认证的功能,是安全版的HTTP。

2. SSL(Security Sockets Layer,安全套接层)
  1. 为网络通信提供安全及数据完整性的一种安全协议。
  2. SSL位于TCP和各应用层之间,是操作系统对外提供的API,SSL3.0后更名为TLS。
  3. 采用身份验证和数据加密保护网络通信的安全和数据的完整性。

加密的方式:

  1. 对称加密:加密和解密都使用同一个密钥。
  2. 非对称加密:加密使用的密钥和解密使用的密钥是不相同的。
  3. 哈希算法:将任意长度的信息转换为固定长度的值,算法不可逆。
  4. 数字签名:证明某个消息或者文件是某人发出/认同的

HTTPS数据传输流程:
HTTPS在进行数据传输之前,会与网站浏览器与web服务器进行一次握手,在握手时确定双方的加密密码信息。具体过程如下:

  1. 浏览器将支持的加密算法信息发送给服务器。
  2. 服务器依据浏览器提供的 这些支持加密的方式,在自己所支持的加密方式里面,选出一套加密算法和Hash算法,将验证身份的信息以证书的形式回发给浏览器。
  3. 浏览器验证证书合法性,如果证书收到浏览器信任,则会在浏览器地址栏有标志显示。否则就会显示不受信任的标识。当证书授信之后,web浏览器会随机生成一串密码,并使用证书中的公钥加密,之后就是使用约定好的hash算法握手消息,并生成随机数,对消息进行加密,在将之前生成的信息回发给哦服务器。
  4. 当网站浏览器接收到服务器发送过来的消息后,会使用本身的私钥,将信息解密,确定密码。然后通过解密web浏览器发送过来的握手信息,并验证hash是否与web浏览器一致,然后服务器会使用密码加密新的握手信息,发送给浏览器。
  5. 客户端浏览器解密响应信息,并计算经过hash算法加密的握手消息,如果与服务器发送过来的hash值一致,则此握手过程服务结束后,服务器与浏览器会使用之前浏览器生成的随机密码和对称加密算法进行加密,然后交换数据。
HTTP与HTTPS的区别:
  1. HTTPS协议需要到CA申请证书,一般需要一定的费用;HTTP不需要
  2. HTTP是超文本传输协议,信息是明文传输的;HTTPS是具有安全性的SSL加密传输协议,因此它是密文传输的。
  3. 连接方式不同。 HTTP使用的是80端口,HTTPS默认使用的是443端口
  4. HTTPS=HTTP + 加密 + 认证 + 完整性保护,较HTTP安全。
HTTP真的很安全吗?

那倒未必

  1. 浏览器默认填充http://,请求需要进行跳转,有被劫持的风险。
  2. 可以使用HSTS(HTTP Strict Transport Security)优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值