目录
HTTP 与 HTTPS 的区别
HTTPS 解决了 HTTP 的哪些问题?
HTTPS加密方式与过程
什么是SSL/TLS ?
中间人攻击
HTTP 与 HTTPS 的区别
主要的区别在于安全性
- HTTP 是超文本传输协议,信息是明文传输,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 SSL/TLS 安全协议,使得报文能够加密传输。
- HTTP 连接建立相对简单, TCP 三次握手之后便可进行 HTTP 的报文传输。而 HTTPS 在 TCP 三次握手之后,还需进行 SSL/TLS 的握手过程,才可进入加密报文传输。
- 两者的默认端口不一样,HTTP 默认端口号是 80,HTTPS 默认端口号是 443。
- HTTPS 协议需要向 CA(证书权威机构)申请数字证书,来保证服务器的身份是可信的。HTTP不需要使用数字证书。
- 由于不涉及加密和解密,HTTP通常比HTTPS更快,因为加密和解密数据需要一定的计算时间和资源。
HTTPS 解决了 HTTP 的哪些问题?
HTTP 由于是明文传输,所以安全上存在以下三个风险:
- 窃听风险,比如通信链路上可以获取通信内容,用户号容易没。
- 篡改风险,比如强制植入垃圾广告,视觉污染,用户眼容易瞎。
- 冒充风险,比如冒充淘宝网站,用户钱容易没。
HTTPS 在 HTTP 与 TCP 层之间加入了 SSL/TLS 协议,可以很好的解决了上述的风险:
- 信息加密:交互信息无法被窃取,但你的号会因为「自身忘记」账号而没。
- 校验机制:无法篡改通信内容,篡改了就不能正常显示,但百度「竞价排名」依然可以搜索垃圾广告。
- 身份证书:证明淘宝是真的淘宝网,但你的钱还是会因为「剁手」而没。
可见,SSL/TLS 协议是能保证通信是安全的。
HTTPS加密方式与过程
HTTPS是一种安全的通信协议,它使用SSL/TLS协议来保护数据传输的安全。
以下是HTTPS加密的过程:
- 客户端请求:当你在浏览器中输入一个以”https://”开头的网址时,浏览器会向服务器发起一个HTTPS请求。
- 服务器会将其数字证书发送给客户端。该证书包含服务器的公钥、证书的签发机构CA签名以及其他信息。证书的签名保证了证书的合法性和完整性。
- 浏览器会验证服务器的证书是否有效、是否由可信任的CA签发,并检查是否有已知的安全问题。如果证书验证失败,浏览器会向用户显示警告,询问是否要继续连接。
- 如果证书验证成功,浏览器将生成一个用于该会话的对称的会话密钥。对称密钥是一种加密和解密信息的密钥,其特点是加解密速度快。
- 浏览器使用服务器的公钥(从证书中获取)对会话密钥进行加密,并将加密后的会话密钥发送给服务器。
- 服务器使用自己的私钥来解密客户端发送的会话密钥,从而得到该会话密钥。
- 现在客户端和服务器都有了相同的会话密钥,他们使用该密钥进行加密和解密通信内容。这样,所有通过HTTPS传输的数据都会使用会话密钥进行加密,保障数据的安全性。
通过这个过程,HTTPS确保了客户端和服务器之间的通信是安全的、私密的和可信的。即使在网络上被拦截,黑客也不能轻易地解密通信内容,因为他们没有服务器的私钥,也无法在短时间内破解对称加密算法。这使得HTTPS成为保护敏感信息和确保在线隐私的关键技术。
什么是SSL/TLS ?
SSL 和 TLS 都是用于加密通信的安全协议,用于保护在计算机网络上进行的数据传输的安全性和隐私性。
SSL/TLS协议使用非对称加密和对称加密相结合的方式来实现通信的加密和身份验证。
中间人攻击
中间人攻击是一种网络安全攻击,其中攻击者插入自己在通信的两个实体之间,以监视、拦截或篡改通信的内容。
先举个例子:上学的时候,我喜欢一个妹子,但是害羞腼腆不好意思主动约妹子看电影,于是就找了另外一个妹子让她帮我给心仪的妹子捎个话,本来心仪的妹子就答应去看电影了,但是捎话的妹子十分嫉妒于是就和你说心仪的妹子拒绝了,我只能留下一个孤独的背影……
HTTPS通过使用数字证书和非对称加密和对称加密来解决中间人攻击的问题。
以下是HTTPS如何解决中间人攻击的过程:
- HTTPS使用服务器的数字证书来验证服务器的身份。服务器的数字证书是由受信任的第三方证书颁发机构(CA)签发的,包含了服务器的公钥和其他信息。
但需要注意的是,要保证安全性,服务器的数字证书必须由受信任的CA签发,并且客户端必须能够有效地验证证书。
- 当客户端连接到服务器时,服务器会将其数字证书发送给客户端。客户端会验证该证书的有效性,包括检查其是否由受信任的CA签发,是否在有效期内,以及是否与服务器域名匹配。
- 如果证书验证成功,客户端会从服务器的证书中提取服务器的公钥。客户端生成一个临时的会话密钥,然后使用服务器的公钥对该会话密钥进行加密,并将加密后的密钥发送给服务器。
- 一旦会话密钥建立,客户端和服务器之间的数据传输将使用会话密钥进行加密和解密。中间人攻击者即使能够拦截通信,也无法解密加密的数据,因为他们无法获得会话密钥。
中间人攻击的难度:在正常情况下,中间人攻击者无法有效地模拟服务器,因为他们无法获得合法的数字证书,也无法获取服务器的私钥。由于会话密钥是使用服务器的公钥加密的,只有服务器可以使用其私钥来解密它。因此,中间人无法获得加密的会话密钥。