net是什么意思中文翻译,net是什么类型网站

  

     

  

  导读上海最近连续下了一周的雨,一夜之间气温又回到了解放前。我穿着夏装瑟瑟发抖,躲在家里哪里也不想去。   

  

     

  

  在家无聊,刷网页,看到微信官方账号后台的消息。有同学问我HTTP和HTTPS有什么区别?   

  

  当然,HTTPS比HTTP更安全。你没看见后面有个S吗?就是NB加个s而已。   

  

  然后同学的下一个问题把我逼疯了。为什么服用S更安全?你能告诉我更多关于它的情况吗?   

  

  我告诉你,噢,我没有搞砸。我花了这么多年。   

  

  我从来没见过像你这样的同学问这样一个我不太了解的问题。   

  

  虽然这个问题让我脸红,但我有一种“我不会,但我可以学”的无耻精神。   

  

     

  

  http:我们先来了解一下http:   

  

  HTTP的全称是超文本传输协议,翻译过来就是超文本传输协议。请不要质疑这个翻译。我用百度翻译翻译的。   

  

  应该知道TCP/IP的四层模型,包括数据链路层、网络层、传输层和应用层:   

  

     

  

  HTTP协议位于TCP/IP四层模型的应用层。   

  

     

  

  这里很多人会把TCP和HTTP搞混。其实HTTP是基于TCP连接的。   

  

  简单来说,TCP就是简单的建立一个连接,没有任何我们需要请求的实际数据,简单的传输。HTTP是用来发送和接收数据的,也就是实际应用的。   

  

  HTTP协议通过请求和响应在客户端和服务器之间发送和接收数据,并进行通信:   

  

     

  

  HTTPSHTTP协议好像没什么问题。唯一的问题是不够安全,因为HTTP协议的传输方式完全是明文传输,没有任何加密,这就给了一些恶意的人可乘之机。   

  

  这种传播方式诱发了一种经典的攻击方式:中间人攻击。   

  

     

  

  在这种情况下,我们可以使用最简单的加密方案,如AES加密。服务器和客户端首先商定一个随机生成的密钥,在随后的通信中,所有信息都将使用该密钥通过AES加密:   

  

     

  

  这样接下来的通信过程是安全的,但是我们第一次发送AES密钥的时候还是有被中间人截获的风险。一旦中间人截获了我们的密钥,我们就可以更改密钥或直接解密所请求的内容:   

  

     

  

  这时,我们可以使用非对称加密来保护密钥的传输。   

  

  非对称加密将有两个密钥,一个是公钥,另一个是私钥。明文可以用公钥加密,用私钥解密,也可以用私钥加密。   

  

  目前比较常见的非对称加密算法是RSA。   

  

     

  

  这里的同学一定很疑惑,既然都用非对称加密,为什么只对AES密钥用非对称加密?看似多余,后续所有通信信息完全可以使用非对称加密。   

  

  因为非对称加密相对于对称加密有明显的劣势,所以你可能会觉得一个请求多花几个ms或者ns都无所谓。然而,当请求到达服务器时,它需要被解密,并且每个请求需要多花费几个ms,这加起来是相当大的量。   

  

  上面的方案看起来很安全,即使中间人拦截。   

我们的公钥,由于不知道我们的私钥貌似也没办法解密。

  

实际上中间人完全不需要解密我们的信息,他可以生成一对新的公私钥发送给客户端进行攻击,后续客户端的通信中间人使用自己创造的私钥进行解密,然后通过服务端生成的公钥进行加密返回给服务端:

  

  

CA 证书上面的问题我们仅通过客户端和服务端已经没办法了,这时候需要引入新的第三方机构,一个颁发 CA 证书的机构。

  

常见的第三方 CA 机构有:Symantec(赛门铁克),Comodo(科莫多),GeoTrust(环度网信),GoDaddy,Thawte,daoRapidSSL 等等。

  

在中间人攻击中,我们遇到的问题不是加密算法不够神奇,不是密钥方式不够严谨,而是我们没有办法向我们的客户端表明我们给他的公钥是我们的,是不是很像我没办法证明我是我的问题。

  

  

所以第三方机构应运而生,第三方机构只做一件事情,将服务端的公钥刻上了我们的名字(CA 证书),客户端接收到公钥之后,只需要来第三方机构这里查询,就能知道这个公钥是不是真的服务器,然后再将自己生成的 AES 密钥使用 CA 证书中解密得到的公钥进行加密后发送给服务端。

  

  

最后服务端使用私钥解密得到 AES 密钥,就可以愉快的和客户端进行通信了。

  

最后的最后,CA 机构验证不是每次都要去 CA 机构查询。这样做太傻了而且太耗时,尤其是很多 CA 机构的服务都在海外,这样一来一去消耗的时间太多了。

  

CA 机构高明的地方就在于,我们去找它注册公钥,它会使用另一个来注册的公司的私钥对我们的公钥加密,得到一个我们的公钥的指纹(全球唯一),然后将这家公司的公钥信息(其实也是证书)和我们的公钥以及我们公钥的指纹打包成一个证书。

  

当我们使用 HTTPS 将证书下发给客户端校验时,客户端(比如浏览器)从证书中看到了上级证书的信息,恰巧这个证书就在浏览器(或者本机)中,已经被验证过是合法的,浏览器只要使用这个证书中的公钥将我们的公钥指纹进行解密,然后比对我们的公钥信息就知道我们也是的合法的。因为假证书中的公钥签名不可能被合法的上级证书中公钥解密 。

  

这段稍微有点绕,慢慢看多看几次就理解了。

  

参考https://www.jianshu.com/p/691b8ba3a70f

  

https://blog.csdn.net/u010144805/article/details/80803059

  

https://blog.csdn.net/caofengtao1314/article/details/87912078

  

作者:极客挖掘机

  

来源:https://www.cnblogs.com/babycomeon/p/13041439.html

相关文章