韩国做游戏的电影 迅雷下载网站企业查询网站
韩国做游戏的电影 迅雷下载网站,企业查询网站,导航网站cms,大型网站建站公司 上市HTTP传输协议缺点
之前几篇文章中详细讲解了TCP/IP协议栈中的几个协议#xff0c;其中个就有对HTTP做了一个比较详细的讲解。HTTP是基于TCP进行传输的#xff0c;其中传输的内容都是明文报文数据#xff0c;如果我是一个黑客#xff0c;我会想办法获取这个HTTP消息体…HTTP传输协议缺点
之前几篇文章中详细讲解了TCP/IP协议栈中的几个协议其中个就有对HTTP做了一个比较详细的讲解。HTTP是基于TCP进行传输的其中传输的内容都是明文报文数据如果我是一个黑客我会想办法获取这个HTTP消息体那我可以直接肉眼就能看出消息中的所有内容。这其实是存在很大风险的如果HTTP消息被劫持那么整个传输过程将存在风险正因为存在以下三种风险HTTP变成了一种不安全的协议 第一窃听风险eavesdropping:第三方可以窃取通信内容第二篡改风险tampering:第三方可以修改通信内容第三冒充风险pretending第三方可以冒充他人身份参与通信
加密协议SSL/TLS
互联网中加密通信协议是通互联网共同发展的一门技术。 1994年NetScape公司设计了SSL协议Secure Sockets Layer的1.0版但是未发布。1995年NetScape公司发布SSL 2.0版很快发现有严重漏洞。1996年SSL 3.0版问世得到大规模应用。1999年互联网标准化组织ISOC接替NetScape公司发布了SSL的升级版TLS 1.0版。2006年和2008年TLS进行了两次升级分别为TLS 1.1版和TLS 1.2版。最新的变动是2011年TLS 1.2的修订版。 目前应用最广的是TLS1.0接下来是SSL 3.0。但是主流浏览器都已经实现了TLS1.2 的支持。TLS1.0通常被标记为SSL3.1TLS1.1为SSL3.2TLS1.2为SSL3.3
更加安全的HTTPS
加密算法 加密算法有历史悠久的发展在一战二战中都有广泛使用所以密码学在社会发展种有广泛的用途 第一对称加密有流式分组两种加密和解密都是使用的同一个秘钥例如DESAES-GCMChaCha20-Poly1305等 第二非对称加密加密使用的秘钥和解密使用的秘钥是不同的分别称为公钥私钥公钥和算法都是公开的私钥是保密的。非对称加密性能较低但是安全性超强由于加密特性非对称加密算法能加密的数据长度也是有限的。例如RSADSAECDSAECDHE 第三哈希算法将任意长度的信息转换为较为固定的长度的值通常其长度要比信息小得多且算法不可逆。例如MD5SHA-1SHA-2SHA-256 第四数字签名签名就是在信息的后面加上一段内容信息经过hash后的值经过hash后的值可以证明信息没有被修改过。hash值一般都会加密后也就是签名再和信息一起发送以保证这个hash值不被修改。
对HTTP消息体对称加密 如上图中展示了HTTP客户端发出的请求很容易被黑客接货如果此时黑客冒充服务器或者黑客窃取信息则其可以放回任意信息给客户端而且不被客户端察觉所以我们经常会听到“劫持”这个词 如上图是一个简单HTTPS经过TCP 的三次握手后客户端与服务器建立连接如果对后续双方传输的内容进行对称加密那么理论上我们在本次传输中防止了内容的裸奔。缺点在于 但是由于对称加密使用的秘钥两端是一样的要维持每一个客户端的秘钥不一致整套加密才有意义比如我是黑客伪造的客户端如果秘钥一致那么黑客还是能拿到秘钥那没有任何意义。但是遇到的问题是产生n个不同的秘钥N客户端数量维护困难。另外因为对称加密需要双方协商一致一般提前约定或者使用前传输秘钥不管哪一种方式很容易秘钥泄露。只要黑客拿到秘钥那么所谓加密传输也就失去意义。
对HTTP消息体进行非对称加密
如下图我们使用非对称加密 上图中客户端用公钥对请求内容加密服务器使用私钥对内容解密反之亦然但是上述过程也存在缺点 公钥是公开的也就是黑客也会有公钥所以第4 步私钥加密的信息如果被黑客接货就可以使用公钥进行解密获取其中的内容。非对称加密不适用数量太大的报文大数量的报文导致加密效率降低
对称加密和非对称加密结合使用 对称加密的优势对称加密如果能保证秘钥不被黑客获取那么他是安全的并且对称加密的速度具有很大优势 非对称加密优势非对称加密请求发起时候尽管使用的是公钥加密但是因为必须使用私钥解密的特点因此能够保证消息体在想服务器发送过程中是安全的。 两者结合做法 使用对称加密对消息体进行加密对称加密的算法和对称秘钥使用公钥加密后在ClientHello时发送给服务器后续双方的内容进行对称加密 如上图我们之前说了秘钥交换在第一步进行一下几个步骤意义如下 第3 步时候客户端给服务器说之后回话用对称秘钥这是对称算法XXX和对称秘钥XXX这段话用公钥进行加密然后传给服务器。第4步时候服务器收到信息后用私钥解密提取出对称加密算法和对称秘钥后服务器回复好的并用对称秘钥加密后续两者之间的信息传输就可以使用对称加密的方式了。 使用这个方式时候还有部分问题 如何将公钥给客户端客户端在获取一个公钥后如何确认公钥是正确的服务端发出的而不是黑客伪装的 如上图的情况第一步中公钥获取是存在风险的而且直接在某个地方下载公钥也是不可靠的因为黑客也可以在下载公钥的时候劫持了请求并伪造公钥返回给客户端。后续的请求都会被黑客欺骗。 解决方案是使用证书 证书是一个经证书授权中心数字签名的包含公开秘钥拥有者信息以及公开秘钥的文件最简单的证书包含公开秘钥名称证书授权中心数字签名。数字证书还有一个重要特征就是旨在特定时间段内有效数字帧数是一种权威性的电子文档可以由权威工作的第三方机构即CA例如中国各地方的CA公司中心签发的证书也可以由企业级别CA系统进行签发。 如下证书模式HTTPS 如上图2步骤时候服务器发送了一个SSL证书给客户端SSL证书中包含的具体内容有 证书发布机构CA证书有效期公钥证书所有者签名 客户端在接受服务器发来的SSL证书会对证书进行校验以浏览器为例说明如下 首先浏览器读取证书中的证书所有者有效期信息进行校验浏览器开始查找操作系统中已内置的收信人的证书发布机构CA与服务器发来的证书中的颁发者CA对比用于校验证书是否为合法机构颁发如果找不到浏览器报错说明服务器发来的证书是不可信的。如果找到浏览器会从操作系统中取出颁发者CA的公钥然后对服务器发来的证书里面的签名进行解密浏览器使用相同的hash算法计算出服务器发来的证书的hash值将这个计算的hash值域证书中签名做对比对比结果一致则证明服务器发来的证书核发没有被冒充。此时浏览器就可以读取证书中公钥用于后续加密了。 通过SSl证书的形式即解决了公钥获取问题又解决了黑客冒充问题HTTPS加密过程也就此形成。所以对不HTTPHTTPS传输更安全。 所有信息都加密传播具有校验机制一旦被篡改通信双方立刻会发现配备身份证书防止身份被冒充。
上一篇 网络编程-TCP/IP协议栈-UDP/HTTP协议
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/89140.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!