4月阅读周·HTTP权威指南:安全HTTP之对称密钥加密技术篇

举报
叶一一 发表于 2025/04/22 09:41:51 2025/04/22
【摘要】 引言HTTP(Hypertext Transfer Protocol,超文本传输协议[插图])是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。《HTTP权威指南》一书将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,对HTTP“为什么”这样做进行了详细的解...

引言

HTTP(Hypertext Transfer Protocol,超文本传输协议[插图])是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。

《HTTP权威指南》一书将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,对HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。此外,这本书还介绍了很多HTTP应用程序正常工作所必需且重要的非HTTP技术。

这本书主要包括以下内容:

  • 第一部分描述了Web的基础构件与HTTP的核心技术
  • 第二部分重点介绍了Web系统的结构构造块:HTTP服务器、代理、缓存、网关以及机器人应用程序。
  • 第三部分提供了一套用于追踪身份、增强安全性以及控制内容访问的技术和技巧。
  • 第四部分涵盖HTTP报文主体和Web标准,前者包含实际内容,后者描述并处理主体内容。
  • 第五部分介绍了发布和传播Web内容的技巧。
  • 第六部分是一些很有用的参考附录,以及相关技术的教程。

安全HTTP

在友好环境中,这些技术都能够很好地工作,但在充满各种利益驱动和恶意对手的环境中,它们并不足以保护那些重要的事务处理。

接下来讨论一种更复杂,更安全的技术,通过数字密码来保护HTTP事务免受窃听和篡改的侵害。

对称密钥加密技术

我们来更详细地看看密钥和密码是怎样配合工作的。很多数字加密算法都被称为对称密钥(symmetric-key)加密技术,这是因为它们在编码时使用的密钥值和解码时一样(e=d)。我们就将其统称为密钥k。

流行的对称密钥加密算法包括:DES、Triple-DES、RC2和RC4。

密钥长度与枚举攻击

保持密钥的机密状态是很重要的。在很多情况下,编/解码算法都是众所周知的,因此密钥就是唯一保密的东西了。

好的加密算法会迫使攻击者试遍每一个可能的密钥,才能破解代码。用暴力去尝试所有的密钥值称为枚举攻击(enumeration attack)。如果只有几种可能的密钥值,居心不良的人通过暴力遍历所有值,就能最终破解代码了。但如果有大量可能的密钥值,他可能就要花费数天、数年,甚至无限长的时间来遍历所有的密钥,去查找能够破解密码的那一个。

可用密钥值的数量取决于密钥中的位数,以及可能的密钥中有多少是有效的。就对称密钥加密技术来说,通常所有的密钥值都是有效的。[插图]8位的密钥只有256个可能的密钥值,40位的密钥可以有240个可能的密钥值(大约是一万亿个密钥),128位的密钥可以产生大约340000 000000 000000 000000 000000 000000 000个可能的密钥值。

在传统的对称密钥加密技术中,对小型的、不太重要的事务来说,40位的密钥就足够安全了。但现在的高速工作站就可以将其破解,这些工作站每秒可以进行数十亿次计算。

相比之下,对于对称密钥加密技术,128位的密钥被认为是非常强大的。实际上,长密钥对密码安全有着非常重要的影响,美国政府甚至对使用长密钥的加密软件实施了出口控制,以防止潜在的敌对组织创建出美国国家安全局(National Security Agency,NSA)自己都无法破解的秘密代码。

Bruce Schneier编写的Applied Cryptography(John Wiley&Sons出版社)是一本很棒的书,书中有一张表,表中对使用1995年的技术和耗费,通过猜测所有的密钥来破解一个DES密码所需的时间进行了描述。

根据1995年微处理器的速度,愿意花费100000美元的攻击者可以在大约2秒内破解一个40位的DES代码。2002年的计算机就已经比1995年的快20倍了。除非用户经常修改密钥,否则对于别有用心的攻击者来说,40位的密钥是不安全的。

DES的56位标准密钥长度就更安全一些。从1995年的经济水平来说,花费100万美元进行的攻击还是要几个小时才能破解密码。但可使用超级计算机的用户则只需数秒钟即可通过暴力方法破解密码。与之相对的是,通常大家都认为长度与Triple-DES密钥相当的128位DES密钥实际上是任何人以任何代价都无法通过暴力攻击破解的。

建立共享密钥

对称密钥加密技术的缺点之一就是发送者和接收者在互相对话之前,一定要有一个共享的保密密钥。

如果想要与Joe的五金商店进行保密的对话,可能是在看了公共电视台的家装节目之后,想要订购一些木工工具,那么在安全地订购任何东西之前,要先在你和www.joes-hardware.com之间建立一个私有的保密密钥。你需要一种产生保密密钥并将其记住的方式。你和Joe的五金商店,以及因特网上所有其他人,都要产生并记住数千个密钥。

比如Alice(A)、Bob(B)和Chris(C)都想与Joe的五金商店(J)对话。A、B和C都要建立自己与J之间的保密密钥。A可能需要密钥KAJ, B可能需要密钥KBJ, C可能需要密钥KCJ。每对通信实体都需要自己的私有密钥。如果有N个节点,每个节点都要和其他所有N-1个节点进行安全对话,总共大概会有N2个保密密钥:这将是一个管理噩梦。

总结

在对称密钥加密技术中,发送端和接收端要共享相同的密钥k才能进行通信。发送端用共享的密钥来加密报文,并将得到的密文发送给接收端。接收端收到密文,并对其应用解密函数和相同的共享密钥,恢复出原始的明文。



作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏️ | 留言📝

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。