最后更新:2022-06-20 05:17:20 手机定位技术交流文章
HTTP协议可能存在安全问题,例如信息盗窃或身份伪造。 HTTPS通信机制的使用可以有效地防止这些问题。
虽然HTTP有一个相当好的和方便的一面,它不仅仅是一个好一面,事情是双向的,它也有它的缺点。
例如HTTP主要有以下缺陷。
这些问题不仅发生在HTTP中,也发生在其他未加密的协议中。
除此之外,HTTP本身有许多缺点。而且,实际应用中还有一些缺陷,例如某些特定的网页服务器和特定的网页浏览器(也称为漏洞或安全漏洞),另外,在Java和PHP等编程语言中开发的Web应用程序可能也有安全漏洞。
由于HTTP本身没有加密功能,无法加密整个通信(使用HTTP协议通信的请求和响应内容)。
如果你问为什么通信没有加密,这是因为,根据TCP协议家族的工作机制,通信内容可以在所有通信线路上加密。
所谓互联网是由可以连接到世界的网络组成的。 当世界任何角落的服务器与客户端通信时,在这个通信线上的某些网络设备、电缆、计算机等可能不是个人财产,所以不要排除某些链接上的恶意间谍。
即使已经加密的通信也会被监视,这与未加密的通信一样。 只是,如果通信被加密,人们可能无法解密消息的含义,但加密的消息本身仍会被看到。
不难从同一段窃取通信。 你只需要收集在互联网上流入的数据包(帧)。 为了分析收集的数据包,它们可以被分配到数据包捕捉或嗅觉工具中。
为了防止盗窃和保护信息,目前正在研究的几种对策中,最常见的是加密技术。
通信的加密
一种方法是加密通信。HTTP协议中没有加密机制,但是它可以用SSL(Secure Socket Layer,运输层安全(TLS)综合使用安全层传输协议,加密HTTP通信。
在建立安全通讯线后,您可以在此线上通信HTTP。与SSL结合的HTTP被称为HTTPS(HTTP Secure,HTTP在SSL上。
内容的加密
还有一种将参与通信的内容本身加密的方式。由于 HTTP协议中没有加密机制,那么就对 HTTP 协议传输的内容本身加密。即把 HTTP 报文里所含的内容进行加密处理。
在这种情况下,客户端需要加密HTTP消息并再次发送请求。
为了有效地加密内容,前提是要求客户端和服务器同时具有加密和解密机制。它主要用于网络服务。有一点需要注意,因为此方法与SSL或TLS不同,以加密整个通信线,因此,内容仍面临着被操纵的风险。
HTTP协议中的请求和响应不能识别通信器,换句话说,存在类似的问题,例如服务器是否是URI在发送请求中实际指定的主机,以及返回的响应是否真的返回提交请求的客户端。
在HTTP协议通信中,由于 没有 处理 步骤 来 识别 通讯者,任何人都可以发起请求。另外,服务器只是收到请求,不管对方是谁返回响应(但只有在发送人的IP地址和端口号码不被限制到由Web服务器设置的访问)。
HTTP协议本身的实现非常简单,无论谁发送请求,它都会返回响应。
虽然不能使用HTTP协议确定通信器,但可以通过SSL来确定。 SSL不仅提供加密处理,而且使用一种叫做证书的手段,可以用来识别当事人。
证书由可靠的第三方机构发给,以证明服务器和客户存在。 此外,伪造证书从技术上来说是非常困难的,所以只要能够验证通信者(服务器或客户)持有的证书,就可以判断通信者的真实意图。
通过使用证书来证明通信器是指定的服务器,也减少了个人资料泄露的风险。 此外,客户持有证书来完成个人身份的认证,也可以用于向网站的认证链接。
完整性是指信息的准确性。 不能证明信息的完整性通常意味着不能判断信息的准确性。
因为HTTP协议不能证明通信消息的完整性,因此,在请求或答复到另一方收到之前,即使请求或答复内容被更改,也没有办法获悉。换句话说,没有任何办法确认,发送的请求/答复和收到的请求/答复是前后相同的。
比如,从网站下载内容,无法确定客户端下载的文件是否与服务器存储的文件相同。文件的内容可能在传输过程中被更改为其他内容。即使内容真的发生了变化,客户作为接收者也是看不见的。像这样,在传送过程中的请求或答复,攻击者截获和修改内容的攻击称为中间人攻击。
虽然使用HTTP协议可以确定消息的完整性,但实际上并不方便和可靠。 这些方法经常用于检查 MD5和SHA-1等分散值,以及识别文件的数字签名。
提供文件下载服务的网站也将提供相应的PGP(Pretty Good Privacy,完全隐私) MD5算法创建的数字签名和阵列值。PGP是一个用于证明文件的创建的数字签名。MD5是一个由单向函数生成的散射值。无论采用何种方法,需要控制客户端的用户会亲自检查,以确定下载的文件是服务器上的原始文件。浏览器不能自动帮助用户检查.可惜的是,这些方法仍未得到100%的保证,以正确确认结果。因为PGP和MD5本身都是重写的,用户没有意识的途径。
为了有效地防止这些不利因素,HTTPS是必需的。SSL提供认证和加密处理和总结功能。单靠HTTP就很难保证完整性,这个目标通过使用其他协议组合来实现。以下部分介绍HTTPS的内容。
如果HTTP协议通信中使用不加密的陈述,例如在网页上输入的信用卡号码,如果通信被偷窃,则信用卡号码会暴露出来。
此外,对于HTTP,服务器和客户端都无法识别通信器,因为很有可能你实际上没有与指定的通信器进行通信。
为了统一上述问题,必须将加密处理和认证等机制添加到HTTP中,我们称之为HTTPS,它增加了加密和认证机制。
HTTPS通信经常在网页登录页面和购物清理接口上使用。 当使用HTTPS通信时,不再使用http://,而是改用https://此外,当浏览器访问HTTPS启用网站时,在浏览器地址栏中会出现一个锁定标签。
HTTPS不是应用程序层的新协议,只有HTTP通信接口被SSL和TLS协议所取代。
通常,HTTP是直接和TCP通信。 当使用SSL时,它首先成为SSL通信,然后是SSL和TCP通信。
在SSL之后,HTTP具有HTTPS加密、证书和完整性保护。
由于SSL独立于HTTP,在应用程序层中运行的SMTP和Telnet等其他协议也兼容SSL,可以说SSL是当今世界最广泛使用的网络安全技术。
在解释SSL之前,让我们首先了解加密方法。SSL使用一种叫做开放密钥加密的加密过程。
加密和解密都用于密码。 没有密码,密码不能解密;相反,任何人都可以通过持有密码解密。
加密和解密通常被称为共享密钥加密和对称密钥加密。
通过共享密钥进行加密时,必须将密钥交给另一方。 但是,如何安全地转移密钥? 当在互联网上转移密钥时,如果通信被监控时,密钥会落在攻击者手中,并且失去加密的意义。
公开密钥加密方法解决了共享密钥加密的难题.
开放密钥加密使用一对不对称密钥。一把叫做私有密钥,另一个叫做开关。顾名思义,私人钥匙不会让别人知道,公众钥匙可以随意释放,任何人都可以获得。使用开放密钥加密方法,发送消息的一方使用对方的公开密码进行加密处理,当另一方收到加密信息时,然后使用自己的私钥去解密.利用这种方式,不需要发送私钥去解密,你不必担心攻击者偷了钥匙.
此外,基于加密和开放密钥的资料来源是极为困难的,因为解密过程是评价离散的对,这并不是容易的。
HTTPS使用混合加密机制,用于共享密钥加密和公共密钥加密。 如果可以保证密钥,则可以考虑使用开放密钥加密来进行通信。
所以应充分利用两者各自的优势,将多种方法组合起来用于通信。在交换密钥环节使用开放密钥加密方法,之后的建立通信交换报文阶段则使用共享密钥加密方式。
遗憾的是,公共密钥加密方法仍存在一些问题。也就是说,不能证明公共钥匙本身是真正的公共钥匙。比如,在准备与服务器进行开放密钥加密时,如何证明收到的公共钥匙是由原意的服务器发出的公共钥匙。也许是在开密钥转移的中间,真正的公共钥匙被攻击者所取代。
为了解决上述问题,可以使用数字证书认证机构及其相关机构颁发的公钥证书。
数字证书认证机构处于第三方机构的地位,可以由客户和服务器信任。介绍了数字证书认证机构的业务流程.首先,服务器的操作员向数字证书认证机构提交公开密钥的申请。数码证书认证机构确定申请人的身份后,将以数字方式签署应用的公钥,然后分配这个签名的公共钥匙,并将公钥绑定到公钥证书上。
服务器将由数字证书认证机构发出的公开密钥证书发送给客户端进行公开密钥加密。 公开密钥证书也可以称为数字证书或直接称为证书。
接收证书的客户可使用数字证书认证机构的公钥来验证证书上的数字签名。一旦验证,客户可指定两件事:
在这里,认证机关的公钥必须安全地转移到客户端。 在使用通信方法时如何安全地转移是十分困难的,因此大多数浏览器开发者,在发布版本时,将预先安装内部的共同认证机构的公钥。
该证书的一个功能是验证作为通信方的服务器是否标准化,另一个功能是验证在其他服务器后面运行的企业是否真的存在。
EV SSL证书是根据国际标准的认证准则发出的证书,它规定了严格的准则,以验证业务组织是否真实,因此,通过认证网站可以获得更高的程度的认可。
在使用EV SSL证书的网站上,浏览器地址栏的背景颜色是绿色,一瞥就能看到。地址栏的左边还显示了在 SSL证书中记录的组织名称以及颁发证书的认证机构名称。
客户端证书也可以在HTTPS中使用。 客户端认证是通过客户端证书进行的,它证明服务器正在通信的另一方始终是预期的客户端,其功能与服务器证书相似。
但仍存在一些与客户端证书有关的问题。其中一个问题是获得和颁发证书。想获取证书时,用户必须安装自己的客户端证书。但由于客户证书是按收费购买的,每个与每个用户相符的证书意味着支付的费用与用户数量相同。另外,允许不同层次的知识用户自行安装证书,这个问题本身也是充满挑战的。现状是,极安全的认证机构可以发布客户证书,但仅限于特殊目的。例如,支持客户证书费用的企业。
例如,银行的网上银行采用客户端证书。 登录网络时,用户不仅需要确认输入ID和密码,而且需要一个客户端证书来确认用户是否从特定终端访问网络。
客户端证书的另一个问题是,毕竟,客户证书只能用来证明一个客户确实存在,它不能用来证明用户的真实有效性。也就是说,只要您有安装客户端证书的计算机使用权限,它还意味着您有权同时使用客户端证书。
为了更好地理解HTTPS,让我们看看HTTPS的通信步骤。
因为HTTPS是如此安全的和可靠的,为什么所有网站都不总是使用HTTPS?
其中一个原因是,因为与普通文本通信相比,加密通信消耗更多的CPU和内存资源。如果每个通信都是加密的,会消耗相当多的资源,当你被贴在电脑上时,因此, 可以 处理 的 请求 数目 也 必须 减少 。因此,如果非敏感信息使用HTTP通信,只包括敏感资料,如个人资料,只使用HTTPS加密的通信。
特别是当更多访问的网站接受加密处理时,它们承受的负担是不可否认的。 在加密处理中,并非所有内容都被加密,但只有那些需要隐藏的内容被加密以储存资源。
除此之外,一个原因是节省购买证件的费用.进行HTTPS通信,证书是必不可少的。使用证书必须从认证机构(CA)购买。证书价格可能因不同认证机构而略有不同。不匹配证书和某些个人网站的服务采购,您只能选择使用HTTP进行通信。
本文由 在线网速测试 整理编辑,转载请注明出处。