HTTP 与 HTTPS 的理解

区别:HTTP 是明文传输的,容易泄漏信息,所以大多数应用都会升级为 HTTPS

HTTP 底层是用 TCP 传输的,HTTPS 就是在 TCP 和 HTTP 之间加了一层加密和认证的协议,这一层叫做 SSL/TLS。

在这里插入图片描述

为什么叫这个名字呢?
因为最早的时候是 SSL 协议,但是后来发现了漏洞,就改为 TLS 协议了,而且 TLS 协议也在不断的升级,从 1.1、1.2 到了现在的 TLS 1.3。

不管叫 SSL 还是叫 TLS,都是指的这一层。
重点:这一层就实现了加密、身份认证,还有防篡改的功能。

什么是加密?
加密很容易理解,就是通过一种加密算法对内容进行处理,生成密文,然后另一端通过解密算法把密文处理成原始内容。

只有加密解密还不够 为了每次都不一样,所以会有密钥的存在

这个密钥是随机生成的,所以只能一端生成以后告诉另一端。
那么问题来了,怎么把这个密钥安全的告诉另一端呢?
这就得用到一种特殊的加密算法 — 非对称加密了。

非对称加密:用一个密钥加密的数据只能另一个密钥解密,这个暴露出去的密钥就叫做公钥,留下的密钥叫做私钥。

前面提到 TLS 层主要是实现了加密、身份认证、防篡改的功能。

加密是用对称加密的方式,用到的密钥通过基于公私钥的非对称加密机制来传递。
那身份认证怎么做呢?
其实也是通过公私钥的机制,刚才提到了公钥加密的内容只能私钥解密,这保证了信息的安全传递。
那反过来,私钥加密的数据,如果用公钥能解开,这不就证明了信息是你传递的么?因为私钥只有你有。
所以,私钥的加密又叫做签名,可以用来做身份的认证

一般是对传输的信息做一次 hash,生成数据指纹,然后用私钥加密这个数据指纹,也就是对它进行签名。
这样数据传递到另一端,用公钥把数据指纹取出来,再对内容做一次 hash,生成一份数据指纹,两者对比一下,如果一样,就说明没有被篡改。
这就是 TLS 层的第三个功能,防篡改,也就是保证数据的完整性。

非对称加密的算法是公开的,你可以生成公私钥,别人也可以,那怎么保证我拿到的公钥是你的呢?

数字证书
在这里插入图片描述

在这里插入图片描述

现在的问题是怎么验证公钥是某个人的。
如果我有信得过的人,他说这个公钥是那个人的,我就相信。基于这样的信任来验证可以么?
也就是说我信任的人有自己的公私钥,他用私钥对这段信息签名,我收到信息后用他的公钥来解密,发现能解密出其中的信息,说明这是被他签名过的,我就相信我收到的公钥是可靠的。

解决方式是操作系统内置了一批信得过的机构的公钥,经过这些机构签名的,就一定是对方的公钥。
这种信得过的机构叫做 CA(Certification Authority),电子认证机构,经过 CA 认证的公钥和相关信息,就叫做数字证书。

操作系统内置了所有可信的 CA 的证书,也就是 CA 的公钥和相关信息,叫做根证书。

为什么都是三级呢?

因为这样万一中级证书不能信任了,还可以让根证书再找一个中级证书,因为信任根证书,也自然信任这个新的中级证书,但如果根证书直接信任某个网站的证书,万一根证书被攻破不能信任了,那就找不到可以信任的了。
所以,三级证书会更安全一些。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值