https学习总结
一、定义
1、HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议,是一个安全通信通道,它基于HTTP开发用于在客户计算机和服务器之间交换信息。HTTP是采用明文形式进行数据传输,极易被不法份子窃取和篡改。所以HTTPS使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版,是使用TLS/SSL加密的HTTP协议。
2、TLS/SSL全称安全传输层协议Transport Layer Security, 是介于TCP和HTTP之间的一层安全协议,不影响原有的TCP协议和HTTP协议,所以使用HTTPS基本上不需要对HTTP页面进行太多的改造。
二、http和https的区别
1.http的缺点
(1)通信使用明文,可能被窃听
(2)不验证通信方的身份,可能遭遇伪装
(3)无法证明报文的完整性,有可能遭遇篡改
2.http和https的区别
可以看到HTTPS比HTTP多了一层TLS/SSL协议。
并且针对以上HTTP的缺点,可以总结出:HTTP+加密+认证+完整性保护 = HTTPS
三、TSL/SSL工作原理
(1)HTTPS协议的主要功能基本都依赖于TLS/SSL协议,TLS/SSL的功能实现主要依赖于三类基本算法:散列函数 Hash、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性。
(2)SSL/TLS 通过将称为 X.509 证书的数字文档将网站和公司的实体信息绑定到加密密钥来进行工作。
注:X.509:X.509 是公钥证书的标准格式,这个文档将加密密钥与(个人或组织)进行安全的关联。
X.509 主要应用如下
1)SSL/TLS 和 HTTPS 用于经过身份验证和加密的 Web 浏览
2)通过 S/MIME 协议签名和加密的电子邮件
3)代码签名:它指的是使用数字证书对软件应用程序进行签名以安全分发和安装的过程。
HTPPS加密(请求)过程:
(3)HTTPS的通信过程就是:
首先,客户端根据服务器的CA证书确认服务器端身份;
然后,客户端产生对称密钥并用非对称加密的方式给服务端;
最后,两端用对称密钥对会话过程进行加密。
(前两步是通过TSL握手实现的)
四、总结
从HTTP到HTTPS的进化以及TSL的握手过程的原因为什么要使用对称加密,非对称加密和散列函数(思考过程)
1、为什么加密?因为http的内容是明文传输的,明文数据会经过中间代理服务器、路由器、wifi热点、通信服务运营商等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传输的信息且不被双方察觉,这就是中间人攻击。所以我们才需要对信息进行加密。最容易理解的就是对称加密 。
2、为什么不用对称加密?对称加密存在的问题就是这个密钥怎么让传输的双方知晓,同时不被别人知道。(解决方式:密钥协商、利用公钥加密进行传输)
3、为什么不用非对称加密?非对称加密算法非常耗时,而对称加密快很多。(解决方式:使用混合加密,利用公钥加密加密对称密钥,该对称密钥用于未来的会话过程)
4、非对称加密会遇到什么问题?中间人攻击和信息抵赖。
5、如何解决中间人攻击问题?引入CA认证。
网站在使用HTTPS前,需要向CA机构申领一份数字证书(CA用自己的私钥对服务器的公钥进行签名,CA的公钥一般内嵌在浏览器内置信任的证书中,所以要收费),数字证书里含有证书持有者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书里获取公钥就行了。
6、如何解决信息抵赖问题? 进行数字签名。
因为签名者的私钥只有签名者自己拥有,别人无法伪造,所以可以防止签名者的信息抵赖问题。
7、如何解决数字证书的防篡改性?
Hash和MAC。