网站关键词优化推广,东莞短视频推广方法,wordpress 点评网,网站开发网站有哪些目录
HTTPS是什么
加密是什么
HTTPS的工作流程
1.使用对称加密
2.引入非对称加密
3.引入证书机制
客户端验证证书真伪的过程 签名的加密流程
整体工作流程
总结 HTTPS是什么
HTTPS协议也是一个应用程协议#xff0c;是在HTTP的基础上加入了一个加密层#xff0c;由…目录
HTTPS是什么
加密是什么
HTTPS的工作流程
1.使用对称加密
2.引入非对称加密
3.引入证书机制
客户端验证证书真伪的过程 签名的加密流程
整体工作流程
总结 HTTPS是什么
HTTPS协议也是一个应用程协议是在HTTP的基础上加入了一个加密层由于HTTP协议内容都是明文传输就会导致在传输的过程中被黑客篡改。就比如有时我们在一些软件下载的网站上明明下载的是网站图片上的软件但是真真下载的却是另一个软件。HTTPS就是进一步保证用户的信息安全。
加密是什么
加密就是把明文(要传输的信息)转化为密文(加密后的明文)解密就是将密文再转化为明文中间进行这个转化工作的就是密钥大概可以理解为我们现在有一个日记这个日记就是明文然后我们为了不让别人看到这本日记就将这个日记放到盒子中给锁起来现在这个盒子连同里面的日记就是密文这个锁就是密钥。
对称加密
对称加密就是加密解密都是通过同一个密钥客户端通过这个密钥将明文变成密文服务器也通过这个密钥将密文变成明文可以理解为一把锁就只有一个钥匙把锁锁住使用这把钥匙把锁打开也使用这把钥匙。
非对称加密
非对称加密需要两个密钥一把叫做公钥另一把叫做私钥。
如果通过公钥对明文加密就通过私钥对密文解密如果通过私钥对明文加密那么就通过公钥对密文解密。可以理解为一把锁有两个钥匙这两个钥匙有一个特点如果使用其中一把钥匙把锁锁上就要用另一把钥匙把锁打开。
但是非对称加密的运行速度比对称加密慢得多
HTTPS的工作流程
1.使用对称加密
使用对称加密后当黑客再次截取传输的信息时因为没有密钥所以就无法直接看到明文。
但是虽然这样看起来非常完美但是却给服务器带来不小的负担因为一般一台服务器会同时服务多名用户就需要服务器维护每名用户和其对应密钥的关系。所以为了减小服务器的负担我们可以在双方建立联系的时候协商好这次的密钥是啥这样在每次建立联系时来确定此次密钥服务器就不用再去维护用户和对应密钥的关系了。 //其实就是将密钥从服务器自己管理变成每次连接由客户端告诉服务器密钥是什么
不过显然还有一个不合理的点就是客户端在告诉服务器密钥是什么时如果直接明文传输不就相当于是在挑衅黑客吗演都不演了。所以我们要对密钥进行加密。
但是如果还使用对称加密那么就需要再协商一个密钥的密钥那么这个密钥的密钥肯定也不能直接明文传输那就又有了一个密钥的密钥的密钥这样循环套娃永远解决不了问题。 所以此时就不能使用对称加密了。而要使用非对称加密来对密钥进行加密
2.引入非对称加密
首先客户端在本地生成对称密钥通过公钥加密发送给服务器中间黑客截获到密钥后由于没有私钥所以无法解密服务器接收到后通过私钥进行解密确认客户端发来的对称密钥服务器使用接收到的对称密钥对响应信息进行加密返回给客户端客户端接收到响应后后续双方的通信都通过这个对称密钥加密即可。由于对称加密的效率要比非对称加密高很多所以只在最开始加密对称密钥时使用非对称加密。后续依然使用对称加密因为这个密钥只有通信双方知道。 不过又有一个问题公钥私钥怎么来呢而且客户端的公钥并不是自己生成的而是由服务器给的那么客户端又怎么确认自己的这把公钥是服务器给的而不是黑客从中截取替换的呢
3.引入证书机制
这时如果有一个第三方的公正机构来证明的话不就好了所以就引入了证书机制证书就相当于是一个第三方的公证人当客户端看到这个证书时就能确保自己收到的信息是真的。
在客户端和服务器刚建立连接时服务器就会给客户端返回一个证书这个证书不仅用来验证身份还包含了刚刚的公钥。
这个证书就好比是网站的身份证虽然叫证书但是其实是一个起到证书作用的结构化的字符串里面会包含许多信息比如证书的颁发机构(第三方)证书有效期公钥网站信息签名等等
//(搭建一个HTTPS网站要在CA机构先申请一个证书就像是给网站办理一个身份证)
客户端验证证书真伪的过程
判定证书的有效期是否过期判断证书的颁发机构是否可信(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥)判断证书是否被篡改虽然我们认为证书是可信的但是还是有可能会被黑客截获进而篡改所以我们要判定收到的这个证书是否被篡改首先从操作系统中拿到证书发布机构的公钥(已内置在系统中)对签名进行解密拿到数据摘要(一个hash值命名为hash1)然后计算整个证书的hash值计为hash2对比hash1和hash2是否相等如果相等就表示证书没有被篡改过 //在系统中已经提前内置了证书的公钥这个公钥可以对证书中的签名进行解密(不是服务器给的加密对称密钥的公钥)证书里的签名就相当于是一个防伪标识这是一个hash值这个hash值是由整个证书计算得来所以只要黑客篡改了证书的内容客户端那边计算出的证书的hash值就会发生变化然后和签名一比对就能知道证书是否可靠了。 //常见的生成签名的算法有MD5和SHA 签名的加密流程
如果直接把签名用明文传输那么当黑客拿到证书时就能看到一个正确的hash值是什么样的进而就可以进行伪造所以对于签名我们也要进行一层加密。
当公证机构把证书颁发给服务器时还会给服务器一个私钥这个私钥就是用来加密证书的。然后这个私钥所对应的公钥内置在客户端的系统中(操作系统包含了可信任的 CA 认证机构有哪些, 同时持有对应的公钥)客户端在拿到证书时就直接使用这把公钥对签名进行解密最后比对。
整体工作流程
准备工作客户端系统内内置了解密证书签名的CA证书给的公钥1服务器申请证书获得用于加密签名的私钥1并且服务器自己生成公钥2私钥2
申请建立连接阶段客户端发起连接请求服务器收到连接请求后返回证书并把公钥2放入证书同时计算证书的签名(hash值)使用私钥1进行加密。客户端收到证书后用公钥1获取签名验证证书的合法性确认合法后获取证书中的公钥2。
商讨对称密钥阶段客户端生成对称密钥并使用公钥2给对称密钥加密发送给服务器服务器收到请求后使用自己的私钥2解密获得对称密钥并返回使用这个对称密钥加密的响应。
后续业务交流阶段客户端使用对称密钥加密请求服务器收到请求后使用对称密钥解密并返回用对称密钥加密的响应客户端接受响应后再使用对称密钥解密确认响应内容
总结
HTTPS的工作流程主要用到了三次加密一次对称加密和两次非对称加密
第一次非对称加密用于校验证书是否被篡改公钥在客户端系统中内置私钥由公证机构给服务器服务器用私钥对签名加密客户端用公钥对签名解密来确认证书的合法性
第二次非对称加密用于协商生成对称加密的密钥公钥私钥都由服务器生成公钥通过证书传递给客户端客户端用这个公钥给对称密钥加密服务器用私钥给对称密钥解密
对称加密其实前两次的非对称加密都是为了解决对称加密遇到的问题因为对称加密的运行效率要比非对称加密快得多所以后于业务请求都用对称加密非对称加密就是为了让对称密钥安全的到达服务器手上
以上就是博主对HTTPS知识的分享在之后的博客中会陆续分享有关HTTPS的其他知识如果有不懂的或者有其他见解的欢迎在下方评论或者私信博主也希望可以多多支持博主的其他博客