浅谈HTTPS

本文深入探讨了HTTP协议的三大缺陷:明文传输易被窃听、未验证通信方可能导致伪装、无法验证报文完整性,以及HTTPS如何通过加密、认证和完整性保护解决这些问题。介绍了SSL/TLS的作用和公开密钥加密技术,以及HTTPS的安全通信机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

HTTP的缺点

1.通信使用明文可能会被窃听

2.不验证通信方的身份就可能遭遇伪装

3.无法证明报文完整性,可能已遭篡改

HTTPS的引入

1. HTTP+加密+认证+完整性保护 = HTTPS

2. 相互交换秘钥的公开秘钥加密技术

HTTPS的使用


HTTP的缺点

HTTP用户客户端和服务器进行通信,可以说是相当优秀。不过还存在着一定的问题

  • 通信使用明文(不加密),内容可能会被窃听
  • 不验证通信方的身份,因此有可能遭遇伪装
  • 无法验证报文的完整性,所有有可能已遭篡改

1.通信使用明文可能会被窃听

HTTP报文使用明文方式进行传输。为了防止被窃听,主要可以通过加密技术进行解决。从两个方面进行考虑:

1. 通信的加密

一种方式就是将通信加密,HTTP协议中没有加密机制,但可以通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)的组合使用,加密HTTP的通信内容,用SSL建立安全通信线路之后,就可以在这条线路上进行HTTP通信了,与SSL组合使用的HTTP被称为HTTPS(HTTP Secure,超文本传输安全协议)

2. 内容的加密

还有一种将参与通信的内容本身进行加密的方式,由于HTTP协议中没有加密机制,那么就对HTTP协议传输的内容本身加密,把HTTP报文中所含的内容进行加密处理,这就要求客户端和服务器,同时具备加密和解密的机制,但是内容仍有被篡改的风险

2.不验证通信方的身份就可能遭遇伪装

HTTP协议中的请求和响应不会对通信方进行确认,也就是不论是谁发送过来的请求都会返回响应。会存在以下隐患:

1.通信过程中,WEB服务器和客户端都有可能是伪装的
2.无法确定,正在通信的对方是否具有访问权限
3.无法判定请求是来自何方,出自谁手
4.即使是无意义的请求,也会照单全收,无法阻止海量请求下的DOS攻击(拒绝服务攻击)

关于这个问题,可以使用SSL进行解决。

虽然使用HTTP协议无法确定通信方,使用SSL,不仅提供加密处理,而且还使用一种被称为证书的手段,可用于确定方。
证书有值得信赖的第三方机构颁发用于证明服务器和客户端是实际存在的,另外,伪装证书从技术角度来说是一场困难的一件事,所以你只要能够确定通信方持有的证书,即可判断通信方的真实意图。

通过使用证书证明通信方就是意料中的服务器,这对使用者个人来讲,也减少了个人信息泄露的危险性,另外,客户端持有证书即可完成个人身份的认证,也可用于对WEB网站的认证环节。

3.无法证明报文完整性,可能已遭篡改

由于HTTP协议无法证明通信报文的完整性,因此在请求或响应发出之后,直到对方结束之前,这段时间内及时请求或响应的内容遭到篡改,也没有办法获悉。

虽然有使用HTTP协议确定报文完整性的方法,但事实上并不便捷,可靠,其中常用的是MD5和SHA-1等散列值校验的方法,以及用来确定文件的数字签名方法。

HTTPS的引入

1. HTTP+加密+认证+完整性保护 = HTTPS

HTTPS并非是应用层的一种新协议,只是HTTP通信接口部分用SSL和TLS协议代替而已,通常HTTP直接和TCP通信,当使用,SSL时演变成先和SSL通信,再由SSL和TCP通信。

在采用SSL后HTTP就拥有了HTTPS的加密、证书和完整性保护这些功能,SSL是当今世界上应用最为广泛的网络安全技术。

2. 相互交换秘钥的公开秘钥加密技术

SSL采用的是公开秘钥加密的加密处理方式。

1. 共享秘钥加密的弊端

加密和解密同用一个密钥的方式成为共享密钥加密,也被叫做对称密钥加密。以共享密钥方式加密是必须将密钥也发送给对方,可究竟怎么才能安全的转交?在互联网上转发秘钥时,如果通信被监听,那么秘钥可能落入攻击者之手,同时也就失去了加密的意义,另外还得设法安全的保管接受到的密钥

2. 使用两把秘钥的公开秘钥加密

公开密钥加密方式很好的,解决了共享密钥加密的困难,公开密钥加密使用一对非对称的密钥,一把叫做私有密钥,另一把叫做公开秘钥。使用公开密钥加密方式发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密,利用这种方式,不需要发送用来解密的私有密钥,也不必担心秘钥被攻击者窃听而盗走

3.HTTP采用混合加密机制

HTTPS采用共享密钥加密和公开密钥加密两者并用的混合密机制。若秘钥能够实现安全交换,那么有可能会考虑仅使用公开密钥加密来通信,但是公开密钥加密与共享密钥加密相比,其处速度要慢,所以应充分利用两者各自的优势,将多种方法组合起来通信。在交换密钥环节使用公开密钥加密方式,之后的建立通信交换报文阶段,则使用共享密钥加密方式。

4. 关于证书

公开密钥加密方式还是存在一些问题的,那就是无法证明公开密钥本身就是货真价实的公开密钥。这时候就可以使用由数字证书认定机构和其相关机关颁发的公开密钥证书进行证明

HTTPS的使用

通过以上的说明,说明HTTPS是一个安全可靠的协议,那么,为何所有的WEB网站不一直使用HTTPS?

其中一个原因是因为与纯文本通信相比,加密通信会消耗更多的CPU以及内存资源,如果每次通信都加密,会消耗相当多的资源,平摊到一台计算机上时,能够处理的请求数量必定也会随之减少。因此,如果是非敏感信息,则使用HTTP通信?只有在包含个人信息等敏感数据时,才利用https加密通信
第二个方面是可以节约购买证书的开销,要进行HTTPS通信证书是必不可少的,而使用证书必须向认证机构购买,对于那些购买证书并不合算的服务,以及一些个人网站,只可能只会采用http的通信方式

以上就是我理解的HTTP->HTTPS,望指正。
 

MySQL的存储引擎是插件式的,其中最常用的两个存储引擎是MyISAMInnoDB。MyISAM是MySQL中默认的存储引擎,它没有太多人关注的原因可能是因为它在一些方面的性能功能上相对较弱。然而,决定使用哪个存储引擎是一个复杂的问题,而我们可以聚焦于MyISAMInnoDB这两个最常见的存储引擎。 在这两个存储引擎中,InnoDB要求表必须有主键,因为它的数据文件本身按照主键聚集。而MyISAM可以没有主键。这是InnoDB与MyISAM之间的一个重要区别。 因此,当选择MySQL的存储引擎时,我们需要考虑不同存储引擎的特性适用场景,以便根据需求选择最合适的存储引擎。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [浅谈MySQL存储引擎](https://blog.youkuaiyun.com/hanfeng529264/article/details/123352215)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [浅谈MySQL存储引擎选择 InnoDB与MyISAM的优缺点分析](https://download.youkuaiyun.com/download/weixin_38655484/12834006)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值