【计算机网络】http和https的区别

http

  • 超文本传输协议,是互联网上应用最为广泛的一种网络协议。

  • 是一个客户端和服务器请求和应答的标准(TCP)。

  • 用于从www服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。

存在的问题

  • 请求信息明文传输,容易被窃听截取利用。(重要密码泄露)。因此HTTP协议不适合传输一些敏感信息,比如:各种账号、密码等信息,使用http协议传输隐私信息非常不安全。

  • 数据的完整性未校验,容易被篡改没有验证对方身份,存在冒充危险(跨站点请求伪造)

  • 无法证明报文的完整性,有可能已遭篡改(运营商劫持)

在这里插入图片描述


TLS/SSL

  • 安全套接层,介于TCP和HTTP之间的一层安全协议,由网景公司设计,不影响原有的TCP协议和HTTP协议。

  • SSL协议课分为两层

    • SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。
    • SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
  • 功能实现依赖于三类基本算法散列函数、对称加密、非对称加密

散列函数

对称加密(私匙加密)

  • 信息的发送方和接收方用同一个密钥去加密和解密数据。
  • 最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难。

非对称加密(公匙加密)

  • 需要使用一对密钥来分别完成加密和解密操作,一个公开发布,即公开密钥。另一个由用户自己秘密保存,即私用密钥。
  • 信息发送者用公开密钥去加密,而信息接收者则用私用密钥去解密。
  • 从功能角度而言非对称加密比对称加密功能强大,但加密和解密速度却比对称密钥加密慢得多。

在这里插入图片描述

基本原理

  • SSL/TLS协议的基本思路是采用公钥加密法,即客户端先向服务器索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。

  • 如何保证公钥不被篡改? 解决方法–将公钥放在数字证书中,只要证书是可信的,公钥就是可信的。

  • 公钥加密计算量太大,如何减少耗用的时间? 解决方法–每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。

  • 我理解的基本原理是:先使用非对称加密验证身份,防止信息篡改。之后使用对称加密,加密会话过程防止信息窃取。

  • 基本过程:

    • 客户端向服务器索要并验证公钥

    • 双方协商生成“对话密匙”。

    • 双方采用“对话密匙”进行加密通信。

    • eg:假定客户端叫做爱丽丝,服务器叫做鲍勃。

      第一步,爱丽丝给出协议版本号、一个客户端生成的随机数(Client random),以及客户端支持的加密方法
      第二步,鲍勃确认双方使用的加密方法,并给出数字证书、以及一个服务器生成的随机数(Server random)。
      第三步,爱丽丝确认数字证书有效,然后生成一个新的随机数(Premaster secret),并使用数字证书中的公钥,加密这个随机数,发给鲍勃。
      第四步,鲍勃使用自己的私钥,获取爱丽丝发来的随机数(即Premaster secret)。
      第五步,爱丽丝和鲍勃根据约定的加密方法,使用前面的三个随机数,生成"对话密钥"(session key),用来加密接下来的整个对话过程。


https

  • 安全超文本传输协议,是以安全为目标的HTTP通道(HTTP的安全版)。

  • HTTP下加入SSL层,HTTPS的安全基础是SSL,加密的内容需要SSL。

  • 简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

  • https并非应用层的一种新协议,只是http通信接口部分用ssl/tls协议代替而已。通常http直接和tcp通信,当使用ssl时则演变成先和ssl通信,再由ssl和tcp通信。

优点

  • 使用https协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。
  • 比http安全,防止数据在传输过程中不被窃取、改变,确保数据的完整性。
  • 虽然不是绝对安全,但大幅度增加了中间人共计的成本。

缺点

  • https握手阶段比较费时,会使页面加载时间延长50%,增加了10%~20%的耗电。
  • https缓存不如http高效,增加数据开销。
  • ssl证书需要收费,功能越强大的证书费用越高。
  • ssl证书需要绑定IP,不能在同一个IP上绑定多个域名,IPV4资源支持不了消耗。
  • HTTPS协议的加密范围也比较有限,在黑客攻击、拒绝服务攻击、服务器劫持等方面几乎起不到什么作用。最关键的,SSL证书的信用链体系并不安全,特别是在某些国家可以控制CA根证书的情况下,中间人攻击一样可行。

主要作用

  • 建立一个信息安全通道,来保证数据传输的安全
  • 确认网站的真实性。

工作原理

  1. 客户端发起HTTPS请求:
    • 用户在浏览器里输入https网址,连接到服务器server的443端口,要求与Web服务器建立SSL连接。
  2. 服务端的配置:
    • 采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。
  3. Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
    • 这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构、证书版本、序列号、签名算法标识符、签发⼈姓名、有效期、公钥信息等并附有CA的签名
  4. 客户端解析证书
    • (1)首先浏览器读取证书中的证书所有者、有效期等信息进行一一校验
      (2)浏览器开始查找操作系统中已内置的受信任的证书发布机构CA,与服务器发来的证书中的颁发者CA比对,用于校验证书是否为合法机构颁发
      (3)如果找不到,浏览器就会报错,说明服务器发来的证书是不可信任的。
      (4)如果找到,那么浏览器就会从操作系统中取出颁发者CA 的公钥(多数浏览器开发商发布
      版本时,会事先在内部植入常用认证机关的公开密钥),然后对服务器发来的证书里面的签名进行解密
      (5)浏览器使用相同的hash算法计算出服务器发来的证书的hash值,将这个计算的hash值与证书中签名做对比
      (6)对比结果一致,则证明服务器发来的证书合法,没有被冒充
      (7)此时浏览器就可以读取证书中的公钥,用于后续加密了
  5. 客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
  6. 客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
  7. Web服务器利用自己的私钥解密出会话密钥。
    • 服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密
  8. Web服务器利用会话密钥加密与客户端之间的通信。

在这里插入图片描述


http和https的区别

httphttps
不需要支付费用需要到ca申请证书,一般免费证书较少,因而需要一定费用
超文本传输协议,信息是明文传输具有安全性的ssl加密传输协议
80端口443端口
连接很简单,是无状态的由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南栀~zmt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值