4月阅读周·HTTP权威指南:安全HTTP之数字加密篇
引言
HTTP(Hypertext Transfer Protocol,超文本传输协议[插图])是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。
《HTTP权威指南》一书将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,对HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。此外,这本书还介绍了很多HTTP应用程序正常工作所必需且重要的非HTTP技术。
这本书主要包括以下内容:
- 第一部分描述了Web的基础构件与HTTP的核心技术
- 第二部分重点介绍了Web系统的结构构造块:HTTP服务器、代理、缓存、网关以及机器人应用程序。
- 第三部分提供了一套用于追踪身份、增强安全性以及控制内容访问的技术和技巧。
- 第四部分涵盖HTTP报文主体和Web标准,前者包含实际内容,后者描述并处理主体内容。
- 第五部分介绍了发布和传播Web内容的技巧。
- 第六部分是一些很有用的参考附录,以及相关技术的教程。
安全HTTP
在友好环境中,这些技术都能够很好地工作,但在充满各种利益驱动和恶意对手的环境中,它们并不足以保护那些重要的事务处理。
接下来讨论一种更复杂,更安全的技术,通过数字密码来保护HTTP事务免受窃听和篡改的侵害。
数字加密
密码编制的机制与技巧
密码学是对报文进行编/解码的机制与技巧。人们用加密的方式来发送秘密信息已经有数千年了。但密码学所能做的还不仅仅是加密报文以防止好事者的读取,我们还可以用它来防止对报文的篡改,甚至还可以用密码学来证明某条报文或某个事务确实出自你手,就像支票上的手写签名或信封上的压纹封蜡一样。
密码
密码学基于一种名为密码(cipher)的秘密代码。密码是一套编码方案——一种特殊的报文编码方式和一种稍后使用的相应解码方式的结合体。加密之前的原始报文通常被称为明文(plaintext或cleartext)。使用了密码之后的编码报文通常被称作密文(ciphertext)。
用密码来生成保密信息已经有数千年了。传说尤利乌斯 ·凯撒(Julius Caesar)曾使用过一种三字符循环移位密码,报文中的每个字符都由字母表中三个位置之后的字符来取代。在现代的字母表中,“A”就应该由“D”来取代,“B”就应该由“E”来取代,以此类推。
比如,用rot3(循环移位3字符)密码就可以将报文“meet me at the pier at midnight”编码为密文“phhw ph dw wkh slhu dw plgqljkw”。通过解码,在字母表中循环移位3个字符,就可以将密文解密回原来的明文报文。
密码机
最初,人们需要自己进行编码和解码,所以起初密码是相当简单的算法。因为密码很简单,所以人们通过纸笔和密码书就可以进行编解码了,但聪明人也可以相当容易地“破解”这些密码。
随着技术的进步,人们开始制造一些机器,这些机器可以用复杂得多的密码来快速、精确地对报文进行编解码。这些密码机不仅能做一些简单的旋转,它们还可以替换字符、改变字符顺序,将报文切片切块,使代码的破解更加困难。
使用了密钥的密码
编码算法和编码机都可能会落入敌人的手中,所以大部分机器上都有一些号盘,可以将其设置为大量不同的值以改变密码的工作方式。即使机器被盗,没有正确的号盘设置(密钥值),解码器也无法工作。
这些密码参数被称为密钥(key)。要在密码机中输入正确的密钥,解密过程才能正确进行。密码密钥会让一个密码机看起来好像是多个虚拟密码机一样,每个密码机都有不同的密钥值,因此其行为都会有所不同。
比如使用密钥的密码实例。加密算法就是普通的“循环移位N字符”密码。N的值由密钥控制。将同一条输入报文“meet me at the pier at midnight”通过同一台编码机进行传输,会随密钥值的不同产生不同的输出。现在,基本上所有的加密算法都会使用密钥。
数字密码
随着数字计算的出现,出现了以下两个主要的进展。
- 从机械设备的速度和功能限制中解放出来,使复杂的编/解码算法成为可能。
- 支持超大密钥成为可能,这样就可以从一个加密算法中产生出数万亿的虚拟加密算法,由不同的密钥值来区分不同的算法。密钥越长,编码组合就越多,通过随机猜测密钥来破解代码就越困难。
与金属钥匙或机械设备中的号盘设置相比,数字密钥只是一些数字。这些数字密钥值是编/解码算法的输入。编码算法就是一些函数,这些函数会读取一块数据,并根据算法和密钥值对其进行编/解码。
给定一段明文报文P、一个编码函数E和一个数字编码密钥e,就可以生成一段经过编码的密文C。通过解码函数D和解码密钥d,可以将密文C解码为原始的明文P。当然,编/解码函数都是互为反函数的,对P的编码进行解码就会回到原始报文P上去。
总结
本篇子阿数字加密技术的入门介绍中,主要介绍以下内容。
- 密码:对文本进行编码,使偷窥者无法识别的算法。
- 密钥:改变密码行为的数字化参数。
- 对称密钥加密系统:编/解码使用相同密钥的算法。
- 不对称密钥加密系统:编/解码使用不同密钥的算法。
- 公开密钥加密系统:一种能够使数百万计算机便捷地发送机密报文的系统。· 数字签名用来验证报文未被伪造或篡改的校验和。
- 数字证书:由一个可信的组织验证和签发的识别信息。
作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。
- 点赞
- 收藏
- 关注作者
评论(0)