HTTP
http,超文本传输协议,它是基于 TCP 实现的应用层协议,它开始工作的前提是 TCP 连接已经建立,HTTP 协议与 IP 协议共同组成 Internet,这就是我们常说的 TCP/IP 协议,我们也可以把 Internet 称作是 TCP/IP 网络。因为 HTTP 是比 TCP 更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接。
HTTP 传输的数据类型为 HTML 文件、图片文件、 其他结果等,它由请求和响应构成,是一个标准的客户端服务器模型(B/S),因为它不需要建立一个持久的连接,所以它一直都是由客户端发起请求,服务器进行响应。
HTTP 的请求过程中,客户端和服务器之间没有确认身份的过程,数据全部明文传输,直接暴露在互联网上的,所以这就很容易遭到黑客的攻击。黑客会劫持客户端发给服务器的信息,然后冒充服务器发给用户任意信息;所以就造成了诸如消息监听、消息篡改、冒充身份等一些安全问题。
HTTP2
HTTPS
HTTPS:安全的超文本传输协议。在HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。
HTPPS 并不是新的协议,只是引入了安全层 SSL/TSL,进化为 HTTP 首先和 SSL/TSL 进行通信,再由 SSL/TSL 和 TCP 通信,所以 HTTPS 就是身穿 SSL/TSL 协议的 HTTP。
SSL 提供加密处理,并且使用数字证书的手段,用于确定通信方。证书由第三方机构颁发,通过第三机构的私钥进行加密,难以伪造。我们通过证书就可以确认服务器和客户端的是否真实存在。
TLS 主要保证两个通信应用程序之间提供保密性和数据完整性,在浏览器、邮箱、即时通信、网络传真等应用程序中,广泛支持这个协议。如 Google、Facebook 等也以此协议建立连接。
SSL/TLS 是通过哪些算法实现的?
1、对称加密
如果 J 通过互联网向 D 发送数据,如果不对数据进行加密,数据就可能被恶意的第三者 P 看到, 所以保密的数据需要进行加密再发送。这个方法的缺点也很明显,就是需要使用相同的密钥进行加密和解密,因为这个钥匙也要通过网络传输,所以也很可能会被 P 拦截。
2、非对称加密
因为对称加密用单个密匙加解密存在很大的风险,如果将密匙分为 2 个,保存在服务端的是私有密匙,发送给客户端的是公有密匙。私有密匙保存在服务端是相对安全的,公有密匙是所有客户端或者劫持者都可以得到。现在通信就是使用公钥加密,私钥解密,这个时候因为劫持者没有私钥,就无法修改客户端传输的数据,也无法解密数据。但是这样是保证了安全,代价就是加密解密的时间过长。
3、混合加密
因为对称加密效率高,非对称加密安全性强,这种方式采用的就是二合一的加密方式。道理很简单就是通过公开密钥加密客户端的密钥传给服务端,再通过对称密钥方法传递数据。HTTPS 目前就是采用的这种方式加密。
其实这样的加密手段依旧不是安全的,传输过程中我们是无法保证服务器返回的公钥不被截获。如果黑客把服务器返回的公钥转换成自己的公钥,然后他就可以对客户端的的所有消息使用自己的私钥解密。这个问题的根本所在就是我们无法分辨出返回的数据是否是真正的来自服务器。针对这个问题的解决方法就是:使用数字证书来证明信息发送方的身份。
4、数字证书
数字证书,顾名思义,它是一个用于验证身份的数字认证,由公认的证书机构颁发给服务器的。它的基本架构是利用一对秘钥实施加密和解密。其中密钥包括私钥和公钥,私钥主要用于签名和解密,由用户自定义,只有用户自己知道;公钥用于签名验证和加密,可被多个用户共享。
数字证书认证机构(Certificate Authority)简称 CA
https 的详细工作流程
希望关于 HTTPS 的这些介绍能帮助大家更好的理解和回顾,有理解偏差的地方,希望大家多多指正。那么我们可以思考一个问题就是:既然 HTTPS 这么安全,为什么我们利用抓包工具还能捕捉到数据哪?这里其实我们扮演了一个中间人的身份,也就是中间人攻击,HTTPS 的主要作用是防止在不知情的情况下通信被监听,如果我们主动信任某个证书,就会构成 “中间人攻击” ,代理软件就是这个道理,这样就可以对传输内容进行解密。其中的详细实现过程,大家可以自己更深入的了解一下。
HTTPS和HTTP的区别主要如下:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。