标签:目录 就是 png post 必须 解密 模拟 jpg cad
internet上的两台机器A,B要建立起HTTP连接了,在这之前要先建立TCP连接,情景大概是这样子的:
网络上有个关于TCP的笑话,大概就是上面的意思。当然事实上的情景要比这个复杂:
TCP握手本质上是在约定一次二进制通讯的参数,使得网络上的两台机型能够基于这个约定交换二进制数据。因为大家也知道,二进制数据就是一堆0和1,如果没有事先约定好字节长度的分割和每个位代表的意义,是无法解读的。
还是上面的情景,A和B建立好TCP连接后,又要建立一个TLS连接了
实质上的TLS协商要比这个复杂,交换很多细节参数,TLS连接层的安全是,保证了以下三个方面的安全
要达到以上三点,很细节上的点要去参考RFC的
HTTPS是基于TCP+TLS的协议,要想进行HTTPS通讯,则先要进行一次TCP握手,再进行一次TLS握手,然后才能开始HTTPS通讯。握手之后,A跟B就是在交换数据了
/images/logo.png
的文档,我这里面缓存的最后修改时间是 20161201/upload/file.jpg
里面,内容是xxxxxx可以看到HTTP1.1版本的请求基本上是在模拟人类的对话,一请示一响应,双方以此交换数据。
HTTP/2的多路复用可以减少这些来往
/images/logo.png
的内容yyyyyyTLS1.3目前还是一个制定中的标准。其中加密部分是基于ECDH,而不是RSA的,所以我们并不需要等到服务端的证书发送过来就可以开始一些加密的计算。ECDH的原理可以参考这里。在此证书的作用就变成校验,而不是加密了。 TLS1.3握手的场景大概是这样子的
A下面就可以进行GET /
之类的HTTP请求
甚至还可以进行0-RTT的握手,当然这是基于以前已经握过手。
可以看出这个握手是直接把TCP,TLS,HTTP三合一,这也是QUIC 0-RTT的基本原理。
前面 #8 #5 的时候我在处理一个网络的错误问题,当时只知道一些解决方法,也怀疑过是不是HTTPS的问题,但无法考证。后来系统地学习过HTTPS的知识之后,发现从这些知识解释这个现象是很简单的。
参考上面的TLS握手,服务端把自己的证书交给客户端之后,原则上客户端是要从CA那里去校验这个证书的合法性的,一但无法验证(verify),就会报上面的错误,而strict-ssl=false
是让npm不去验证,NODE_TLS_REJECT_UNAUTHORIZED=0
是让node-gyp不去验证。所以双方就基于一个假的证书在进行HTTPS通讯了。反过来也说明我在用的代理有进行MITM攻击。
如果一个网站部署了HTTPS,除了更加安全,前端也能基于它得到以下优化
https://tools.ietf.org/html/rfc5246
https://tools.ietf.org/html/rfc7540
https://imququ.com/post/optimize-tls-handshake.html
https://www.khanacademy.org/computing/computer-science/cryptography/modern-crypt/v/diffie-hellman-key-exchange-part-2
https://github.com/imweb/IMWeb-Conf-ppt/blob/master/%E3%80%8AHTTPS%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5%E3%80%8B-lancelotluo.pdf
标签:目录 就是 png post 必须 解密 模拟 jpg cad
原文地址:https://www.cnblogs.com/chenliuxiao/p/9256790.html