但是非对称加密的速度比对称加密要慢很多,这也不是我们想要的。并且单纯的非对称加密,只能保证用公钥加密私密信息只能被拥有私钥的负责人查看。
ps: 笔者还有个问题想不明白,如果公钥随意分发,那有图谋不轨的人随意进行通信,虽然没问题,可以通过服务端进行控制。但是这样感觉怪怪的~
怎么能让它快起来呢?对称加密和非对称加密混这用,对称加密用于内容,非对称加密用于对称加密密钥的传输。
这样我们就只用到了一次非对称加密,然后就可以用对称加密进行内容的解析。大大提升的速度。
但是这其中有个很严重的问题。如果在服务器发送对称加密密钥的时候,被某个坏人截取到了,这样不但获取到了服务器的公钥,还可以给浏览器发送他的公钥,相当于中间人的角色。浏览器和服务器在不知情的情况下进行危险的通信活动。
怎么证明公钥的正确性这就要利用非对称加密的另一个功能,数字证书。因为私钥是唯一,所以我们可以用私钥进行加密(签名),这样只有正确的公钥才能开锁。保证了内容是安全的。
并且需要浏览器内置一些安全的公钥,用于解析这个证书,这就是证书中心(CA)的作用了。证书中心是一个绝对有保障的组织,他们会和操作系统、浏览器厂商协定,将证书中心(CA)的公钥提前种好。
上面是前提,接下来,服务器会提前找证书中心为公钥做认证,然后返回服务器数字证书。证书的内容是通过证书中心私钥加密过得服务器相关信息和服务器公钥,这样就保证了公钥无法被篡改,保障了安全。
之后浏览器在请求的时候,就会获取到正确的公钥。之后服务器返回内容的时候也会进行一步处理,保障内容不会被篡改。
浏览器会返回两部分,一部分是明文的hash算法结果。一部分是用服务器私钥加密过得明文的hash算法结果,然后浏览器在获取后,会通过hash和服务器公钥进行解密,得到的两部分如果相等,那么这次传输的内容就没问题。可以愉快地进行通信啦~
看明白了是不是会问为啥要进行hash在加密啊,直接加密不就好了吗?答案很简单啊,因为效率。
优化tcp三次握手可以利用'会话缓存'来节省一次握手时间,其实就是缓存,和咱们平常写代码没差,就是写法不一样。我们平常用到的很多技术很多也是一些基本的技术,举一反三就好。
和上面差不多。tcp第二次握手的时候就可以发数据了,可以在这上面做手脚
尽量减少rsa算法,实在是慢,这个想办法缓存或者算法优化吧,我也不太懂~
证书优化,怎么便宜怎么来呗,薅!!!不过也得看企业/个人怎么取舍了
等~ 不做深入了
总结本文内容是理解后经过处理展示出来的,不理解的也不会乱写,如果仍有问题欢迎指出,我会及时回复的。
了解这几点,对于http基础会有一个整体的理解,不管是工作中还是求职中都能说出个一二三来,或许还应该写一点常见问题,但是微乎其微,等用到了自然而然就知道了。
马上清明节了吧,祝大家清明节快乐!!哈哈哈哈~
部分图片来源自网络,侵删
面试答案(老稽~
wireshark血泪史
含义
如何使用wireshark
TCP&UDP
DNS为什么用UDP
介俩活宝啊(一)
介俩活宝啊(二)