超文本传输协议,理解:就是一门沟通的语言
http重定向
如图所示在百度搜索(http//woniuxy.com)的报文,会把http重定向为https。
GET和POST的区别:
1.GET更加侧重获取数据
2. Post侧重提交数据
3.Post相较于Get相对安全;Post可以传输更多的数据
加密
对称加密
对称加密的特点:
1.相对不安全
2.相对快
3.管理麻烦(n(n-1)/2)
加密:f(x)=x+1 解密:g(x)=x-1
上述这种是对称加密还是非对称加密? ------》(对称加密)
非对称加密
对象:私钥和公钥
如果用A 的私钥加密,就只能用A的公钥解密:
如果用A的公钥加密,就只能用A的私钥解密。
特点:
1.相对安全
2.计算比较复杂,处理速度慢
证书
机构颁发的证书,客户端看服务器的证书:
1.www.baidu.com ----->是安全的
2.www.google.com----->是安全的
3.www.91xxoo.com----> 是不安全的
在HTTP协议中,服务器本身并不查看客户端证书。然而,在HTTPS(即HTTP Secure)中,服务器可以配置为要求客户端提供证书进行身份验证。
HTTPS中的双向认证流程:
-
服务器端配置: 服务器不仅需要拥有自己的SSL/TLS证书(由受信任的证书颁发机构CA签名或自签名),还需要配置其HTTPS服务以请求客户端证书。当服务器设置成需要客户端证书时,它会在握手过程中发送一个信号给客户端,表明希望客户端提供证书。
-
客户端响应: 客户端收到服务器的请求后,如果已安装有有效的客户端证书,则会将其发送给服务器作为身份证明的一部分。
-
服务器验证: 服务器接收到客户端证书后,将根据预置的信任列表(如系统或应用级别的CA根证书库)验证该证书的有效性,包括检查证书是否由受信任的CA签发、是否过期、证书链是否完整以及证书主题信息是否匹配预期等。
通过这个过程,HTTPS不仅可以保证服务器到客户端的数据加密和服务器的身份验证,还能实现从客户端到服务器的身份验证,从而实现更高级别的安全控制。(网银场景)
数据(加密)传输过程
非对称加密指加密和加密使用不同的密钥,同时存在四个密钥。通信双方各自准备一个公钥和私钥,公钥由接收方给发送方,由于公钥是公开的,所以就算传输过程中被盗取了也影响不大。发送方用接受方的公钥对信息加密,接收方用自己的私钥进行解密。
但是如何确定收到的信息是发送方发送的呢?如果攻击者在通信双方的信息通道中间拦截了双方的公钥,并替换成了自己的公钥,那就相当于双方都在和攻击者进行通信,所以为了确保通信双方的身份正确,在信息传输的过程中,我们还需要使用公钥证书。
由于非对称加密需要双方各自准备一个私钥和公钥,虽然更安全但是计算比较复杂,计算机处理相对更慢,所以通常对称加密和非对称加密会进行结合使用,信息数量大就用对称加密,数据处理更快,然后对对称加密进行非对称加密进行传输。如下图:
如图所示:Alice(A)要向Bob(B)发送信息。
首先原始信息会通过hash成为信息摘要(1)在经过A的私钥加密成为数字签名,原始信息+数字签名+A的证书(A的公钥)=加密信息,然后放入密钥信封,B给密钥信封发送了一把公钥给他上锁(公钥可以随便发)。
B收到密钥信封后用自己的私钥解开自己的公钥就会得到里面的加密信息,拆开后用里面A证书里的公钥解开数字签名上的私钥,就能得到里面的信息摘要(1),在用原始信息hash后得到的摘要(2)和解密出来的摘要(1)对比,如果相同就说明数据没有被篡改。
HTTPS
HTTPS不是新的协议,就是HTTP+TLS协议组成的,最终是为了保证安全。
TLS最终的目的就是为了搞出一个对称密钥(S_key)
报文
HTTPS为Web应用提供了端到端的安全通信,是现代互联网服务中最基本的安全保障之一。