HTTPS原理

一、什么是SSL和TLS?

SSL(Secure Sockets Layer,安全套接字层)和TLS(Transport Layer Security,传输层安全)是用于建立加密连接的技术和协议,对互联网安全至关重要。

  • SSL数字证书是互联网安全的基石,用于验证网站身份并保护敏感数据传输。
  • SSL连接通过加密敏感数据传输,防止非授权方窃取信息。
  • TLS是SSL的升级版,提供更高级的加密和安全性。

总结:SSL和TLS是用于建立加密连接的技术和协议,在保护互联网安全方面起着重要作用。

二、HTTPS与HTTP请求的区别及流程

  1. HTTPS与HTTP的区别
  • 端口号:HTTPS请求使用443端口,HTTP请求使用80端口。
  • 安全性:HTTPS通过加密传输数据,提供更高的安全性,而HTTP是明文传输的。
  • 安全套接字协议:HTTPS使用安全套接字协议(SSL/TLS)进行加密通信。
  • 用途区分:HTTP适用于一般网站访问,而HTTPS适用于安全登录、支付等敏感操作的网站。
  1. HTTPS请求流程
  • 客户端发起HTTPS请求,连接到服务器的443端口。
  • 服务器发送数字证书给客户端,包含公钥和证书信息。
  • 客户端验证证书的合法性和有效性。
  • 客户端生成随机数,使用服务器公钥加密并发送给服务器。
  • 服务器使用私钥解密客户端发送的随机数。
  • 客户端和服务器使用随机数生成的对称密钥进行加密通信。
  • 完成通信后,客户端和服务器关闭连接。

总结:HTTPS与HTTP的区别在于端口号、安全性和安全套接字协议。HTTPS请求的流程包括证书验证、随机数交换和对称密钥加密通信。

三、有了443端口80端口还有用吗?

443端口主要承载了加密和安全传输功能,80端口仍然具有必要性,为网络传输提供重要支持。

  • 明文数据获取:在浏览器完成通过443端口的安全校验后,仍需返回80端口获取明文数据,如网页内容、图片、脚本等。
  • 默认端口:80端口是网站的默认端口,可直接通过域名访问,提供便捷的用户体验。

四、为什么要使用HTTPS

对于上面的概念可能还是有些模糊,接下来就讲的实际情况。

1.我们使用http就是明文在网络传输数据传输。网络传输的过程中经过很多网络节点。
   会出现的问题:

  • 获取你的数据内容,对用户数据进行监听
  • 伪造请求,修改数据
  • 让浏览器无感,每次访问都是中间人的服务器

在这里插入图片描述
因此就出现了加密算法

  • 1.对称加密(DES、3DES、AES)

    • 主要特性:密钥加密数据,必须要有密钥解密才能获得数据的明文
  • 2.非对称加密(RSA、DSA、ECC)

    • 主要特性:私钥加密数据,可以拿公钥解密。公钥加密,只能用私钥解密。
  • 3.hash算法,摘要算法

    • 主要特性:Hash算法用于数据完整性验证,可以验证数据是否被篡改,如果哈希值不匹配,表明数据被篡改了。(主要用于签名校验)

2.这个时候我们数据传输就采用加密传输。
①如果使用对称加密
服务器第一次交换数据要告浏览器自己的密钥。以后数据采用密钥加密传输。

  • 会出现的问题:在网络中传输,交换密钥可能会被中间人窃取

②如果使用非对称加密
Server维护一个私钥,公钥在网络中传输给浏览器,以后每次使用私钥加密数据传输。

  • 会出现的问题:第一次在传输公钥的时候会被中间人截取。然后中间人可以自己做一个假的私钥和公钥,然后把假的公钥交给浏览器。而且中间人一样可以使用公钥加密,发送伪请求。

③如果使用非对称加密+hash算法
情况和②是差不多的

以上主要问题就是传输密钥时候会被中间人获取

在这里插入图片描述
所以引入第三方认证机构CA
首先CA的证书是内嵌入操作系统,不需要在公网上获取。
也就是说每台电脑内置了CA的公钥

3.这个时候我们就采用上面的方式配合CA机构
第一步:浏览器请求Server获取公钥
第二步:Server接受到请求,把公钥+签名发给CA机构(hash(Server的公钥)=签名)
第三步:CA使用自己的私钥加密Server的公钥,然后使用签名算法保证不可能篡改。发送给浏览器
第四步:浏览器使用CA的公钥先校验证书,判断是否被篡改,判断Server公钥是否被篡改,然后获取Server的公钥加上随机数(加盐)
第五步:浏览器使用Server的公钥带上随机数(盐)加密传输给Server
第六步:Server使用私钥解密密文,获取到随机数,后面就采用随机数(对称加密算法)正常请求,不用再走CA机构了,也就是使用http请求就可以了。
来看看每一步会有会有什么问题吗?
第一步:第一次请求中间人就拦截了,做不了什么事情
第二步:这个时候Server发给CA前获取Server公钥。这个时候虽然知道了Server的公钥,但是浏览器会用本地的CA公钥校验证书,所以并没有办法伪造假的公钥给浏览器。
第三步:CA发布证书时获取证书,CA的公钥中间人也可以有。一样可以获取Server的公钥,但是和第二步一样没什么用。
第四步:做不了什么
第五步:这个时候浏览器传输的数据,中间人没有Server的私钥无法得知数据内容。
第六步:Server已经和浏览器协商好了指定的密钥了,中间人做不了什么

在这里插入图片描述

这里还有一个问题就是,当中间人做一个假的网站,让用户直接在直接使用http去请求正规网站(http://taobao.com)
所以正规的网站,都会做一个重定向,如果是http访问的网站直接跳转至https
就像我们如果第一次访问网址就http,也就会变成302请求,请求完之后会跳转到https界面。
在这里插入图片描述

五、https四次握手流程

在这里插入图片描述

301,302,307跳转陷阱?

  1. 301 Moved Permanently(永久重定向):
  • 含义:服务器指示所请求的页面已永久移动到另一个位置。
    跳转陷阱:如果网页A重定向到网页B,而网页B又重定向到网页A,形成了循环重定向的情况,导致浏览器陷入无限重定向的循环。
  1. 302 Found(临时重定向):
  • 含义:服务器指示所请求的页面暂时移动到另一个位置。
    跳转陷阱:与301类似,如果发生循环重定向,浏览器可能陷入无限循环。
  1. 307 Temporary Redirect(临时重定向):
  • 含义:与302类似,服务器指示所请求的页面暂时移动到另一个位置。
    跳转陷阱:同样,循环重定向会导致浏览器无限循环。

跳转陷阱可能会导致网页无法正确加载或无限循环跳转,给用户体验和SEO造成负面影响。为避免跳转陷阱,需要确保重定向链中没有循环重定向,并且在设计网页结构时要合理使用重定向状态码,遵循最佳实践。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值