为什么https比http更安全

为什么https比http更安全读完本文,希望你能明白:
HTTP通信存在什么问题HTTPS如何改进HTTP存在那些问题HTTPS工作原理是什么
一、什么是HTTPS
HTTPS是在HTTP上建立SSL加密

读完本文后,希望您了解以下内容:

HTTPS 通信有哪些问题?HTTPS 的工作原理是什么?

一、什么是HTTPS

HTTPS 在HTTP 之上构建SSL 加密层来加密发送的数据。 HTTP 协议的安全版本。它现在广泛用于万维网上的安全敏感通信,例如交易支付。

HTTPS的主要特点是:

(1)建立信息安全通道,对数据进行加密,保证数据传输过程中的安全。

(2)在网站服务器上进行个人认证。

Web登录页面、购物支付接口等经常使用HTTPS通信。使用HTTPS通信时,不再使用http://,而是使用https://。此外,当您的浏览器通过启用的HTTPS 通信访问网站时,浏览器的地址栏中将显示一个锁定符号。 HTTPS 的显示方式因浏览器而异。

二、为什么需要HTTPS

HTTP 协议可能会带来信息盗窃和身份欺诈等安全问题。使用HTTPS通信机制可以有效防止这些问题。现在让我们了解一下HTTP 协议的问题是什么。

通信使用纯文本(未加密),内容可能被拦截

HTTP本身不具备加密功能,因此整个通信(使用HTTP协议通信的请求和响应的内容)无法被加密。也就是说,HTTP 消息以明文形式发送(指未加密的消息)。

HTTP明文协议中的缺陷是数据泄露、数据篡改、流量劫持、网络钓鱼攻击等安全问题的重要根源。 HTTP协议无法加密数据,所有通信数据都以明文形式在网络中“裸露”运行。通过网络嗅探设备和一些技术手段,可以恢复HTTP报文的内容。

消息的完整性无法验证,并且可能已被篡改。

所谓完整性,是指信息的准确性。无法证明完整性通常意味着我们无法确定信息是否准确。由于HTTP协议无法证明通信消息的完整性,因此无法知道请求或响应的内容在发送到对方接收期间是否被篡改。也就是说,无法确保您发送的请求/响应和您收到的请求/响应相同。

由于无法验证通信伙伴的身份,因此存在欺骗的可能性。

HTTP 协议中的请求和响应不会确认通信伙伴。使用HTTP协议进行通信时,没有过程来检查通信伙伴,因此任何人都可以发起请求。此外,如果服务器收到请求,它将响应任何人(只要发送者的IP 地址或端口号不受Web 服务器限制)。

HTTP 协议不允许您验证与您通信的人的身份。任何人都可以创建虚假服务器来欺骗用户并进行“网络钓鱼”诈骗,而用户甚至没有意识到。

回顾HTTPS协议,它相对于HTTP协议有以下优点(稍后详细介绍):

数据隐私:内容经过对称加密,每个连接都会生成唯一的加密密钥。 数据完整性:验证内容传输的完整性。身份认证:第三方无法伪造服务器(客户端)的身份。

三、HTTPS如何解决HTTP上述问题?

HTTPS 并不是一个新的应用层协议。它只是将HTTP通信接口部分替换为SSL和TLS协议。

HTTP 通常直接与TCP 通信。当您使用SSL 时,您首先与SSL 通信,然后SSL 演变为与TCP 通信。所以所谓的HTTPS其实就是HTTP包裹在SSL协议外壳里。

通过采用SSL,HTTP 增加了HTTPS 的加密、证书和完整性保护功能。换句话说,HTTPS 是在HTTP 基础上添加了加密、身份验证和完整性保护的内容。

HTTPS 协议的主要功能从根本上依赖于TLS/SSL 协议。 TLS/SSL的功能实现主要依赖于三种基本算法:哈希函数、对称加密、非对称加密。它使用身份认证和非对称加密。关键谈判。对称加密算法使用协商密钥对数据进行加密,并基于哈希函数验证信息的完整性。

1.解决内容可能被窃听的问题——加密

方法1.对称加密

该方法使用相同的密钥进行加密和解密。密钥用于加密和解密。没有密钥就无法破解密码,但拥有密钥的任何人都可以破解它。

使用对称加密进行加密时,密钥也必须发送给对方。但如何安全地传输密钥呢?当密钥通过互联网传输时,窃听通信可能会将密钥落入攻击者手中,从而破坏了加密的目的。您还需要找到一种方法来安全地存储您收到的密钥。

方法2.非对称加密

公钥加密使用非对称密钥对。一个称为私钥,另一个称为公钥。顾名思义,私钥不能被其他任何人知道,而公钥则可以自由发布并可供任何人使用。

使用公钥加密技术,发送密文的一方使用对方的公钥进行加密,对方收到加密信息后,使用自己的私钥进行解密。这样就不需要发送用于解密的私钥,并且无需担心私钥被攻击者截获。

非对称加密的特点是信息是一对多传输的。一台服务器只需要拥有一个私钥即可与多个客户端进行加密通信。

这种方法有以下缺点:

公钥是公开的,因此黑客截获私钥加密的信息后,可以使用公钥解密并检索内容。另外,公钥不包含服务器的任何信息,即使使用非对称加密算法,如果服务器的身份合法,从服务器发送到客户端的公钥也是可以被拦截和篡改的。数据加密和解密的过程需要一定的时间,降低了数据传输的效率。

方法3.对称加密+非对称加密(HTTPS采用这种方式)

使用对称密钥的优点是解密效率比较快。使用非对称密钥的好处是,即使数据被截获,没有相应的私钥也无法解密内容,因此无法解密传输的内容。例如,您抓起一个保险箱,但没有保险箱钥匙就无法打开它。因此,我们将对称加密和非对称加密结合起来,发挥各自的优点,在密钥交换阶段使用非对称加密,在后续的通信和消息交换阶段使用对称加密。

具体来说,发送密文的一方使用对方的公钥加密“对称密钥”,对方使用自己的私钥解密得到“对称密钥”。密钥将被安全地交换。通信使用对称加密,假设通信安全。因此,HTTPS采用混合加密机制,同时使用对称加密和非对称加密。

2.解决报文可能遭篡改问题——数字签名

网络传输需要很多中间节点,但数据无法解密,那么如何保证数据的完整性呢? —-验证数字签名。

数字签名有两个功能:

其他人无法伪造发送者的签名,因此他们可以确定该消息实际上是由发送者签名并发送的。数字签名可以确定消息的完整性并证明数据没有被篡改。

如何生成数字签名:

它首先使用哈希函数生成部分文本的消息摘要,然后用发送者的私钥对其进行加密,生成数字签名,并将其与原始文本一起发送给接收者。下一步是接收者验证数字签名的过程。

验证数字签名流程:

接收方使用发送方的公钥解密加密的摘要信息,使用HASH函数生成接收到的原文的摘要信息,并将其与上一步获得的摘要信息进行比较。如果相同,则说明接收到的信息是完整的,在发送过程中没有被修改过,如果不同,则说明信息被修改过,所以数字签名是可以验证完整性的。

假设科比和詹姆斯之间传递一条消息。詹姆斯向科比发送带有数字签名的消息。当科比收到消息时,他可以通过验证数字签名来验证他收到的消息是否是詹姆斯发送的。当然,这个过程的前提是科比知道詹姆斯的公钥。问题的关键和消息本身一样,是公钥无法通过不安全的网络直接发送给科比,或者如何证明获得的公钥属于詹姆斯。

目前,必须部署证书颁发机构(CA)。 Kobe 客户端包含所有受信任CA 的证书。 CA 对James 的公钥(和其他信息)进行数字签名后,会生成证书。

3.解决通信方身份可能被伪装的问题——数字证书

数字证书颁发机构充当客户端和服务器的可信第三方组织。

介绍数字证书颁发机构的业务流程。

服务器运营商向第三方CA提交公钥、组织信息、个人信息(域名)等信息,并申请认证。CA对申请者提供的信息的有效性进行线上、线下验证。并通过身份验证。其他衡量标准,例如组织是否存在、公司是否合法、是否拥有域名的所有权。如果信息经过审核并获得批准,CA 向申请人颁发证书。证书包含申请人的公钥、申请人的组织和个人信息、颁发机构CA信息、到期日期、证书序列号以及签名等明文信息。签名生成算法:首先使用哈希函数计算公开明文信息的信息摘要,然后使用CA的私钥对信息摘要进行加密。密文是客户端向服务器发送请求时的签名。服务器返回证书文件。客户端读取证书中的相关明文信息,使用相同的哈希函数计算信息摘要,使用相应CA的公钥解密签名数据,并比较信息摘要。如果证书匹配,则可以确认证书的有效性,从而可以信任服务器的公钥。客户端还验证域名信息、有效期等与证书相关的信息。如果CA 不受信任,则客户端拥有与该CA 关联的证书信息(包括公钥)。找不到,该证书也被认为是非法的。

四、 HTTPS工作流程

1. 客户端发起HTTPS(例如https://juejin.im/user)请求。根据RFC2818,客户端知道它应该连接到服务器的443(默认)端口。

2. 服务器将预先配置的公钥证书返回给客户端。

3. 客户端验证公钥证书。例如,该证书的用途是否与客户请求的站点相符?是否在CRL 撤销列表中?这是一个递归过程,直至验证根证书(操作系统的内置根证书或客户端的内置根证书)。如果验证通过,则继续。如果没有,将显示警告消息。

4. 客户端使用伪随机数生成器生成用于加密的对称密钥,并使用证书的公钥对对称密钥进行加密,并将其发送到服务器。

5. 服务器使用自己的私钥解密消息并获得对称密钥。此时,客户端和服务器都拥有相同的对称密钥。

6、服务器使用对称密钥对“明文内容A”进行加密并发送给客户端。

7.客户端使用对称密钥解密响应密文,得到“明文内容A”。

8、客户端再次发起HTTPS请求,并使用对称密钥对请求的“明文内容B”进行加密。服务器再利用对称密钥对密文进行解密,得到“明文内容B”。

五、HTTP 与 HTTPS 的区别

HTTP是一种明文传输协议,是由SSL+HTTP协议构建的网络协议,比HTTP协议更加安全。

说到安全性,描述两者关系的最简单比喻就是HTTP卡车是敞篷的,货物暴露在外。由于https是封闭式集装箱卡车,自然提供了更高的安全性。

HTTPS 比HTTP 更安全,更易于搜索引擎使用,并且更适合SEO。 Google 和百度更喜欢索引HTTPS 网页。 HTTPS 需要SSL 证书,而HTTP 需要HTTPS 标准端口443 和HTTP 标准端口80。 HTTPS基于传输层,HTTP基于应用层。 HTTPS 在您的浏览器中显示绿色安全锁,而HTTP 则不会。

六、为何不所有的网站都使用HTTPS

HTTPS 如此安全可靠,为什么不是所有网站都使用它呢?

首先,很多人认为实施HTTPS是有门槛的。此阈值需要由权威CA 颁发的SSL 证书。传统模式从选择、购买到部署证书,需要花费更多的时间和精力。

其次,HTTPS 通常被认为比HTTP 性能更加密集,因为加密通信比明文通信消耗更多的CPU 和内存资源。对每个通信进行加密会消耗大量资源,因此将其分发到单个计算机必然会减少可以处理的请求数量。然而,这种情况并非如此。用户可以通过在SLB或CDN上部署证书来优化性能并解决此问题。例如,“双十一”期间,淘宝、天猫全站采用HTTPS,网站和移动设备上的访问、浏览、交易等操作均顺利进行。通过测试,我们发现很多优化后的页面性能与HTTP相同或仅稍好一些,因此优化后HTTPS实际上并没有变慢。

另一个原因是节省购买证书的成本。证书对于HTTPS 通信至关重要。您使用的证书必须从证书颁发机构(CA) 购买。

# 以上关于为什么https比http更安全的相关内容来源网络,仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/93353.html

(0)
CSDN's avatarCSDN
上一篇 2024年7月6日 上午11:02
下一篇 2024年7月6日 上午11:34

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注