一文读懂 https 底层原理

引子

先说说我对架构师的理解。从业务能力上,需要的是发现问题和解决问题的能力;从团队建设上,需要的是能培养团队的业务能力;从项目管理上,把控好整个项目和软件产品的全生命周期。

我搜索了一下架构师的培训课程,讲什么的也有。实际上是Java从入门到精通的课也冠名架构师课程;讲持久层框架的也冠名架构师课程;讲组件、中间件的也冠名架构师课程;讲分布式系统设计的也冠名架构师课程。个人意见哈,内容其实没有什么问题,但是课程开始之前至少让大家有个整体的视图:

636ff96612cbcfbf4a9e25ddcbb08472.png

安全层原理

既然https协议本质只是http上加了安全层,本文就主要将安全层是怎么实现的。当然要靠加密。加密又分成对称加密和非对称加密。要使用对称加密,客户端和服务端要有一个相同的秘钥,这个秘钥怎么能安全的传输就成了问题。非对称加密是公钥只能用来加密,私钥只能用来解密。那服务端自己存私钥,客户端来请求的时候,服务端把公钥发给它就可以了。

那有的朋友就问了,那别的客户端来请求是不是也拿到的是同一个公钥呀,信息就不安全了呀。没错,同一个服务端给所有的客户端返回的是相同的公钥。但是威胁网络安全的黑客需要是截获信息,不是公钥。信息发送方用公钥把信息加密了,黑客没有私钥解不开。他能拿到公钥和密文,想解开那就只能暴力破解,把所有语言文字的组合用公钥试一下看看和截获到的密文是不是一样的。如果用常用的RSA2048的话,要80年。

总之,非对称加密是比较安全的,但是它慢。通常加解密速度是对称加密的几百倍,信息大了速度还会快速下降。所以https协议是用非对称加密沟通一个对称秘钥。真正的信息就用对称秘钥来加解密了。

CA证书

很多人都听过网络抓包吧。抓包的原理和黑客截获信息差不多,都是自己作为一个代理。客户端B想访问C网站,黑客D发现了。D就伪装成了C把自己的公钥发给了B。B发请求“我是B,我的提货卡号码是XBXB”到网站C时,黑客D截获了这个信息,用自己的私钥解开,之后把数据篡改成“我是D,我的提货卡号码是XBXB”发给网站C。于是本来B的东西就被D领走了。抓包也是这种充当代理的原理。

为了防止这一问题。客户端就需要在收到公钥的时候做一下判断,信任的公钥才使用。于是出现了一些大家都很认可的组织,它们可以颁发公钥。

打个比方,在唐朝,贺知章贺老可谓是少有的文坛官场双得意的代表,“二月春风”没少光顾他家。从7品官做到3品大员,是皇帝的老铁,为国服务50年后退休皇帝了还送豪宅,后来还被追封礼部尚书。《长安十二时辰》里那个80多的老头何监就是影射的贺知章,因为他退休前的官职就是监事,人称贺监。不少诗坛大家就是受了他的推荐才与皇帝建立了通信成为了公务员。所以,贺监还有一个身份是“大唐最佳星探”。

这里贺监就是大家都认可的组织,在贺监80多岁的时候,40多岁的李白找到贺监,请求他给自己签发一份公钥。贺监就用自己的私钥给他做了签发写了推荐信,不仅如此,还金龟换酒传为佳话。皇帝想选公务员,李白拿出了贺监的推荐信。皇帝一看,确实是贺监的笔迹,马上就给李白封了公务员。

3d2459aab3c2880ed1e58364a8519d06.png

总结

回答开头的问题:

接到安全团队的指令,要求各个团队梳理域名是否存在证书将要到期的安全风险。怎么来给团队下发具体任务呢/p>

1、要梳理的是提供https服务的服务端,只有服务端才会需要找认证机构签发证书

2、只有需要外部认证的证书有过期的概念,自己签发的可以更新也可以不更新。可以通过向服务端发请求的获取到证书,查看证书是谁签发的、有效期是哪天

架构师经常面临着需要做出正确的决策,比如连续几天团队都在执行生产程序发布,但是后面几天大家有纪律涣散的趋势,这时候应该敏锐的察觉到并及时指出并纠正。这些都需要对原理或者事情的走向有深刻的认知才能做出正确和及时的判断。

推荐

主流Java进阶技术(学习资料分享)

Java面试题宝典

加入Spring技术开发社区

0a40d6a026ecac7a7a92967d8ee64453.png

PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!

文章知识点与官方知识档案匹配,可进一步学习相关知识网络技能树首页概览22394 人正在系统学习中

来源:Java知音_

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年11月14日
下一篇 2021年11月14日

相关推荐