推广网站有多少家,分销商城app,济南中建设计院有限公司网站,网站建设违约合同Https
Http协议
Http协议是目前应用比较多应用层协议#xff0c;浏览器对于Http协议已经实现。Http协议基本的构成部分有
请求行 #xff1a; 请求报文的第一行请求头 #xff1a; 从第二行开始为请求头内容的开始部分。每一个请求头都是由K-V键值对组成。请求体#xf…Https
Http协议
Http协议是目前应用比较多应用层协议浏览器对于Http协议已经实现。Http协议基本的构成部分有
请求行 请求报文的第一行请求头 从第二行开始为请求头内容的开始部分。每一个请求头都是由K-V键值对组成。请求体 请求头完成后以空行结束、从空行开始为请求体。 同理Http响应也遵循上述基本结构
响应行响应报文的第一行主要包含了Http的版本、响应状态码。响应头从第二行开始为响应头内容的开始部分每一个响应头都是由K-V键值对组成。响应体服务器器所有的响应内容都在响应体中返回当然有些请求可能也没有响应体例如302重定向请求。
所谓的协议就是 为了满足计算机通信双方可以正确的获取数据处理数据而约定好的一种格式如果不遵守协议则无法正确处理数据。例如Http协议的响应行没有状态码或者响应头格式不正确等都会导致浏览器无法正确解析。 遵循了标准Http协议浏览器和服务器则可以根据对方传输的信息做正确处理浏览器也可以正确展示数据。 之前的版本Http协议都是在浏览器与服务器之间使用明文传输的这种方式是不安全的极度容易被中间人攻击篡改传输的数据。于是Https协议诞生了。
Https起源
对称加密算法实现
既然Http协议是不安全的那将传输的信息使用对称加密算法加密过后再传输就可以避免被中间人攻击了但问题是如何让对称加密的密钥让浏览器与服务器更安全的知道如果浏览器直接将密钥发给服务器那还是有可能被攻击者解惑则后续再传输的任何信息都可以被轻松解密所以对称加密也是不安全的。
非对称加密算法实现
非对称加密算法有以下优势
有两把密钥分为公钥和私钥公钥加密只能私钥解密而私钥加密只能公钥解密。密钥长度更长破解难度更高。攻击者获取一把密钥无法实现对数据的加解密。
尝试用非对称加密算法来实现浏览器与服务器的安全通信 首先服务器把自己的公钥发送给浏览器浏览器用服务器的公钥加密一串随机数字将加密后的密文发送给服务器即使被中间人攻击由于私钥只有服务器才有也是无法解密的。服务器拿到密文用自己的私钥进行解密这样就可以获取到浏览器生成的随机数后续用这个随机数进行对称加密即可。
常用的非对称加密实现算法有 RSA、DSA、SM2等。 绝大多数的非对称加密算法都是基于数学问题去实现的例如RSA算法基于超大质数分解SM2基于椭圆曲线率等。 在可预见的时间范围内这几种算法的安全性依然是相当高的。
SSL、TSL
非对称加密潜在的问题
在使用了非对称加密算法保证浏览器与服务器通信安全以后似乎还是有一个问题没有解决那就是如果服务器发送给浏览器公钥的过程中被中间人拦截中间人替换成自己的公钥发送给浏览器那么浏览器再用假的公钥加密随机数发给服务器此时再度被中间人攻击由于浏览器加密用的是假的公钥所以攻击者可以用自己的私钥进行解密然后再用浏览器的公钥加密发给浏览器这个时候攻击者已经完全拿到的浏览器生成的随机数了那么后续双方的通信也都可以被轻松破解。
问题解决
可以看到根本的问题就是浏览器无法判断服务器发过来的公钥是不是服务器本身的还是被篡改的此时就需要引入一个第三方机构了这个第三方机构就是CA Certificate Authority。 服务器会像自己的域名信息、组织、主体以及最关键的公钥整理好向CA机构申请颁发证书CA机构经过审核以后用自己的私钥对这些信息进行数字签名也就是先将信息进行消息摘要然后对这个消息摘要进行加密然后将CA的公钥以及申请的信息打包成一个证书 CA会将证书下发给服务器。那么后续的通信过程是这样的 浏览器向服务器发送请求服务器会将自己的证书发给浏览器。浏览器首先根据证书上的CA机构的公钥对密文进行解密然后拿着解密的内容去比对证书上的数字签名是否一致如果不一致则表示证书有问题。如果攻击者篡改了篡改了服务器的公钥则浏览器再进行数字签名验证时就会出现问题此时会提示风险。如果攻击者也申请了一个证书来伪造虽然可以正确解密出来但两个域名的证书内容是不可能相同的所以也无法验证成功例如 访问的是 www.bilibili.com而证书上的域名是 www.bi1ibi1i.com此时也会提示证书安全问题。 此时看似解决了安全问题但现在的问题是浏览器如何知道CA机构的公钥不是被篡改过的呢这就有点套娃了。 最简单的办法就是操作系统和浏览器直接内置了CA机构的公钥信息内置的方式避免了攻击者篡改。
可以发现上述将的浏览器和服务器的协商密钥的过程是独立于Http协议之外的这一过成叫做 secure socket layer (安全套接字层)也就是 SSLSSL经历过多次迭代发展后有了SSL1.0、SSL2.0、SSL3.0后来更名为TSL。 所以SSL、TSL是独立于协议之外的一套安全机制这一过程也称作SSL握手。
除此之外证书也设置有效期、定义更换算法以及密钥也是提升安全性的一种方式。
CA机构
Symantec赛门铁克SymantecSSL证书前身为 Verisign后于2017年12月被DigiCert收购现在已经使用 DigiCert 根证书。Symantec Secure Site SSL证书依然是各行业尤其是金融银行证券等大型企业认可的品牌。Symantec Secure Site SSL证书 支持诺顿安全签章是网站拥有很好的可信度。 GeoTrust是全球成长最快的数字证书颁发机构之一在全球超过150个国家/地区颁发数百万的数字证书。 Comodo是全球知名的互联网安全公司为用户提供网站安全防护、SSL证书、反病毒软件等服务。 DigiCert是全球领先的数字证书提供商在SSL市场占有重要地位。DigiCert旗下拥有DigiCert、Symantec、Geotrust、Thawte、Rapid 5大SSL证书品牌可以提供从基础型到高端型全系列的SSL证书解决方案。
证书的基本信息有颁发者、颁发机构等等
同时证书中还包含了服务器的公钥、域名、CA机构的公钥、签名算法等等。