HTTPS协议

由于 HTTP天生"明文"的特点,整个传输过程完全透明,任何人都能够在链路中截获、修改或者伪造请求/响应报文,数据不具有可信性。
因此就诞生了为安全而生的HTTPS协议。
使用HTTPS时,所有的HTTP请求和响应在发送到网络之前,都要进行加密。

比如有些网站命名没有广告,但是响应到你的浏览器就有广告了,很有可能就是报文在网络传输的链路中响应报文被篡改了

在这里插入图片描述
https协议在http协议的基础上加了一个安全层
http通过socket跟TCP交互
https中,应用程序先跟安全层交互,安全层再跟TCP交互

SSL/TLS
SSL即安全套接层(Secure Sockets Layer),由网景公司于1994年发明,IETF在1999年把它改名为TLS(传输层安全,Transport Layer Security) ,正式标准化,到今天TLS已经发展出了主流的三个版本,分别是2006年的1.1、2008年的1.2,2018的1.3,每个新版本都紧跟密码学的发展和互联网的现状,持续强化安全和性能,已经成为了信息安全领域中的权威标准。

摘要算法
摘要算法能够把任意长度的数据"压缩"成固定长度、而且独一无二的“摘要"字符串,就好像是给这段数据生成了一个数字“指纹”。任意微小的数据差异,都可以生成完全不同的摘要。所以可以通过把明文信息的摘要和明文一起加密进行传输,数据传输到对方之后再进行解密,重新对数据进行摘要,再比对就能发现数据有没有被篡改。这样就保证了数据的完整性。

对称加密算法(异或)
对称密钥加密算法:编、解码使用相同密钥的算法,如(AES,RC4,ChaCha20 ) 。

非对称密钥加密算法:它有两个密钥,一个叫“公钥”,一个叫“私钥”。两个密钥是不同的,公钥可以公开给任何人使用,而私钥必须严格保密。非对称加密可以解决“密钥交换”的问题。网站秘密保管私钥,在网上任意分发公钥,你想要登录网站只要用公钥加密就行了,密文只能由私钥持有者才能解密。而黑客因为没有私钥,所以就无法破解密文。非对称密钥加密系统通常需要大量的数学运算,比较慢。如(DH、DSA、RSA、ECC )
在这里插入图片描述
https使用以上3种加密方式实现混合加密
在这里插入图片描述服务器上会有公钥和私钥,私钥不会参与网络传输,公钥可以随意分发,浏览器可以通过握手请求拿到公钥,之后浏览器就可以使用公钥完成数据加密,经过公钥加密的额数据只有私钥才能完成解密,这样浏览器跟服务器说的话,即使别人截取到了这个报文也没法看懂,因为只有私钥才能完成报文解密,用私钥加密的数据只有用公钥才能解密,用私钥加密的数据其实是不安全的
基于客户端我们可以生成一个对称加密算法的密钥,然后通过公钥完成密钥的传输,我们通过公钥加密之后把数据传送到服务器端,服务器端就可以拿到密钥了,这个密钥是一个对称加密的密钥,后面的网络传输就可以基于客户端生成的密钥来完成,对称加密算法相对非对称加密算法更加高效,服务器端拿到密钥之后就可以进行双向的数据通信

在这里插入图片描述
服务器上部署有公钥和私钥,客户端跟服务器端交互首先会经过三次握手,然后会有安全层的握手(就是HTTPS的握手)
安全层的握手过程:首先客户端发送请求给服务器,发送的是客户端支持的加密套件(散列算法 对称/非对称加密算法),服务端会看客户端提供的我支不支持,支持的话,他会选择其中最安全的一个算法,然后会告诉客户端我选择了哪一个加密的套件,并且会把自己的公钥传给客户端,客户端就可以生成一个随机的密钥了(就是后面使用对称加密算法会使用到的密钥),并用公钥进行加密(这个公钥是服务器给的),加密之后传给服务端,服务端就可以用私钥进行解密了。就能拿到客户端随机生成的密钥,客户端的密钥现在跟服务端就是一样的了,因为服务端已经拿到客户端的密钥,这个时候就可以使用对称加密算法来完成双向数据的传输

在最初建立TCP三次握手的前提是拿到服务器的IP,如果获得服务器IP的过程中被截获了DNS的信息,黑客就可能把IP地址指向别的服务器,就伪装成你要访问的服务器,请求就不会真的到达我们想要访问的服务器,我们的请求就会都跟黑客的服务器进行交互了,数据就可能都传到黑客那里去了,我们就需要验证访问的服务器是我们真正想访问的服务器,这一步怎么来做呢?

答:服务器给客服端你发送公钥的时候,并不是单纯的公钥,而是一个公钥数字证书,这个数字证书里面包含了很多的信息(CA信息,公钥,公钥用户信息,权威机构的签名,有效期)
数字证书组成:
CA信息,公钥用户信息,公钥,权威机构的签名,有效期数字证书作用:
1.通过数字证书向浏览器证明身份(公钥数字证书表明服务器传回来的公钥确实是服务器颁发的
⒉数字证书里面包含了公钥
数字证书的申请和验证

如何申请:
1.生成自己的公钥和私钥,服务器自己保留私钥
2.向CA机构提交公钥,公司,域名信息等待认证
3.CA机构通过线上,线下多种途径验证你提交信息的真实性,合法性
4.信息审核通过,CA机构则会向你签发认证的数字证书,包含了公钥,组织信息,CA信息,有效时间,证书序列号,同时生成一个签名;
签名步骤: hash(你用于申请证书所提交的明文信息)=信息摘要;CA再使用私钥对信息摘要进行加密,密文就是证书的数字签名

TLS里使用的混合加密方式,即把对称加密和非对称加密结合起来呢,两者互相取长补短,即能高效地加密解密,又能安全地密钥交换。大致流程如下:1.通信开始的时候使用非对称算法如RSA,ECDHE先解决密钥交换的问题

参考文献

HTTP,HTTPS和SSL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值