详细讲解HTTP 的安全问题

之前的文章说了一下关于 Cookie 的内容,但是也就引出来了一些问题,比如 HTTP 是怎么进行安全处理的?来了,本文给大家讲述 HTTP 的安全问题 。
1. HTTPSHTTPS 是最流行的 HTTP 安全形式 。它是由网景公司首创的,所有主要的浏览器和服务器都支持此协议 。
大家来看这个图,

详细讲解HTTP 的安全问题

文章插图
 
HTTPS 方案的 URL 以 https://,而不是 http:// 开头,据此就可以分辨某个 Web 页面是通 过 HTTPS 而不是 HTTP 访问的(有些浏览器还会显示一些标志性的安全提示)
使用 HTTPS 时,所有的 HTTP 请求和响应数据在发送到网络之前,都要进行加密 。HTTPS 在 HTTP 下面提供了一个传输级的密码安全层 。
我们可以来看一下关于 HTTP 和 HTTPS 的层 。
 
详细讲解HTTP 的安全问题

文章插图
 
 
大部分困难的编码及解码工作都是在 SSL or TLS 库中完成的,所以 Web 客户端和服务器在使用 安全 HTTP 时无需过多地修改其协议处理逻辑 。在大多数情况下,只需要用 SSL 的输入 / 输出调用取代 TCP 的调用,再增加其他几个调用来配置和管理安全信息就行了 。
2.数字加密关于数字加密,很容易理解的,不知道大家看过一些 “神剧” 么? 在抗战时期的电报密码,都是用本子的形式,然后密码本不同的字母来对应不同的数据信息,然后把对应的数字拼接起来 。这只是我们对数字密码的简单理解,来官方的说法:
 
详细讲解HTTP 的安全问题

文章插图
 
 
这里面的编码器和解码器在 “神剧”中不就是密码本的存在么?用密码来生成保密信息已经有数千年了 。传说尤利乌斯 · 凯撒(Julius Caesar)曾使用过 一种三字符循环移位密码,报文中的每个字符都由字母表中三个位置之后的字符来取代 。在现代的字母表中,“A”就应该由“D”来取代,“B”就应该由“E”来取代,以此类推 。
我们按照 “旋转3” 为例子,
 
详细讲解HTTP 的安全问题

文章插图
 
 
密码就可以将报文“meet me at the pier at midnight”编码为密文“phhw ph dw wkh slhu dw plgqljkw” 。
1 通过解码,在字母 表中旋转 -3 个字符,就可以将密文解密回原来的明文报文 。
但是缺点我们同时也能想到,密码本容易被对方给获取,编码机器也容易被敌人获取,在战争年代,密码本这是必争之物呀 。
所以大部分机器上都有一些号盘,可以将其 设置为大量不同的值以改变密码的工作方式 。即使机器被盗,没有正确的号盘设置(密钥值),解码器也无法工作 。
这些密码参数被称为密钥(key) 。要在密码机中输入正确的密钥,解密过程才能正确进 行 。密码密钥会让一个密码机看起来好像是多个虚拟密码机一样,每个密码机都有不同的 密钥值,因此其行为都会有所不同 。
详细讲解HTTP 的安全问题

文章插图
 
上图中就是使用不同密钥的旋转 N 字符密码 。。密钥越长,编码组合就越多,通过随机猜测 密钥来破解代码就越困难 。
给定一段明文报文 P、一个编码函数 E 和一个数字编码密钥 e,就可以生成一段经过编码的密文 C 如下图 。通过解码函数 D 和解码密钥 d,可以将密文 C 解码为原始的明文 P 。当然,编 / 解码函数都是互为反函数的,对 P 的编码进行解码就会回到原始报文 P 上去 。
详细讲解HTTP 的安全问题

文章插图
 
3.对称密钥加密我们来更详细地看看密钥和密码是怎样配合工作的 。很多数字加密算法都被称为对称密 钥(symmetric-key)加密技术,这是因为它们在编码时使用的密钥值和解码时一样 (e=d) 。我们就将其统称为密钥 k 。
在对称密钥加密技术中,发送端和接收端要共享相同的密钥 k 才能进行通信 。发送端用共 享的密钥来加密报文,并将得到的密文发送给接收端 。接收端收到密文,并对其应用解密 函数和相同的共享密钥,恢复出原始的明文 。大家看下面的一幅图:
详细讲解HTTP 的安全问题

文章插图
 
对称密钥加密算法为编 / 解码使用相同的密钥,流行的对称密钥加密算法包括:DES、Triple-DES、RC2 和 RC4 。


推荐阅读