我写过自己的 https 代码,所以不请自来。
在互联网早期,一方面组织内部能上网的计算机比较少,另一方面是网络比较慢且流量比较贵,还有一方面是为了管控组织内能上网的计算机身份和数量,所以有了 proxy 这种组件。
我们常说的 http 代理工作在 80 端口,工作过程如下图:
http 代理工作过程,来源:如果内网计算机的浏览器访问的是明文 http 请求,那这个请求会直接发给中间的代理。代理收到后根据目标域名或IP地址连接服务器并将浏览器的请求转发给服务器,最后将服务器的响应转发给浏览器。整个过程都是通过明文 tpc 连接发送的。
后来,https 出现了。如果浏览器想通过 https 访问网页,会先建立加密通道,然后将 http 请求加密之后发给服务器。如果个时候想在中间加个代理,代理也没法解密浏览器的加密请求,从而没法代理。为了解决这个问题,人们引入了一种叫 CONNECT 的 http 请求方法,工作过程如下:
http connect 请求过程,来源:浏览器先跟代理建议 tcp 连接。如果它想访问 ,就需要先发一个这样的请求:
CONNECT google.com:443 HTTP/1.1代理收到后会主动连接google.com:443对应的服务器,两边 tcp 连接都建好了,代理会自动双向转发数据。也就是说,这个时候浏览器的加密数据就会被转发到服务器,服务器的加密数据也会转发给浏览器。但代理并不知道加密数据的明文。
但不论是明文 http 请求还是加密的 https 请求,从浏览器到代理这一段的通信都是通过明文 tcp 传输的。也就是说不论是浏览器发出的 GET 请求还是 CONNECT 请求,在浏览器到代理的链路上的所有节点都是能监控的。也就是说这些节点知道你要访问哪个网站,这会导致隐私泄漏。而且有的代理需要登录,用户名和密码也是通过明文传输的,根本没有安全性可言。
为了解决这个问题,人们引入了所谓的 Secure Web Proxy,也就是所谓的 https 代理。核心思路就是使用 https/tls 对浏览器到代理这一段的通信进行加密,这样中间节点就不能监听数据。
https 代理的工作过程跟 http 很像,只不过浏览器在跟 proxy 建议 tcp 连接之后还需要再协商 tls 会话。tls 信道建立后的通信过程跟 http 代理就一样了。
4本 图解HTTP 图解TCP/IP 图解密码技术 图解网络硬件京东¥164.00去购买基本概念
1、HTTP:是互联网上应用广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
2、HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。3、HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;
另一种就是确认网站的真实性。
安全风险
1、隐私泄露由于 HTTP 本身是明文传输,用户和服务端之间的传输内容都能被中间者查看。也就是说 你在网上搜索、购物、访问的网点、点击的页面等信息,都可以被「中间人」获取。
2、页面劫持隐私泄露的风险比较隐蔽,用户基本感知不到。但另外一类劫持的影响就非常明显非常直接了——页面劫持,也就是直接篡改用户的浏览页面。劫持分类根据劫持路径分类:DNS 劫持、客户端劫持、链路劫持。
HTTPS与Web服务器通信时的步骤
1、客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
2、Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
3、客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。4、客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
5、Web服务器利用自己的私钥解密出会话密钥。
6、Web服务器利用会话密钥加密与客户端之间的通信
HTTPS的优点
1、身份认证使用HTTPS协议可认证用户和服务器,确保数据发送到正确的客户机和服务器。2、内容加密——防窃听HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全,可防止数据在传输过程中不被窃取。
2、一致性校验——防篡改通过对数据和共享密钥的 MAC 码来防止中间者篡改消息内容,确保数据的一致性。
3、HTTPS网络传输安全系数相对较高,可以大幅增加中间人攻击的成本。
HTTPS的缺点
1、速度慢网络耗时:由于协议的规定,必须要进行的网络传输。比如 SSL 完全握手,302 跳转等。HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电。计算耗时:无论是客户端还是服务端,都需要进行对称加解密,
协议解析,私钥计算,证书校验等计算,增加大量的计算时间。
2、HTTPS连接缓存不如HTTP高效,会增加数据开销和功耗,甚至已有的安全措施也会因此而受到影响;
3、成本较高
服务器成本:HTTPS 的私钥计算会导致服务端性能的急剧下降,甚至不到 HTTP 协议的十分之一,也就是说,如果 HTTP 的性能是 10000cps,HTTPS 的性能可能只有几百 cps,会增加数倍甚至数十倍的服务器成本。
证书成本:根据证书个数及证书类型,一年可能需要花费几百到几百万不等的证书成本。
开发和运维成本:HTTPS 协议比较复杂,包括协议的配置,证书的更新,过期监控,客户端的兼容等一系列问题都需要具备专业背景的技术人员跟进处理。
Http和Https的主要区别
https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
品易云海外HTTP汇聚190+国家城市IP资源,6500万动态住宅IP,支持高并发调用,提供专属IP定制。海量、高匿、安全,24小时稳定运行,支持HTTP、HTTPS、SOCKS5三种协议,官网支持免费测试。