图书前言

前 言

拜托,先生或女士,你不看看我的书吗?我花了很多年才写出来的,你不看一下吗?

— Lennon 和McCartney

我讨厌黑盒。我撰写本书的主要目的在于阐明如今信息安全书籍中流行的一些黑盒。另一方面,我不想用琐碎的细节烦扰你——如果这是你想要的,可以去读RFC。因此,本书经常会忽略那些我认为与所要表达的观点无关的细节。你可以判断我是否在这两个相互竞争的目标之间取得了适当的平衡。

我一直在努力持续跟进,以便涵盖广泛的主题。本书的目标是深入讨论每一项内容,以便你能够理解安全问题,同时不会在细节上陷入太多的困境。我还试图定期强调和重申要点,这样就不会错过关键信息。

撰写本书的另一个目标是以生动有趣的方式呈现主题。如果有任何计算主题令人兴奋和富有趣味,那就是信息安全。

我也试图在本书中插入一点幽默。人们说幽默源于痛苦,从笑话的质量来看,可以说我的生活绝对是有魔力的。无论如何,大多数糟糕的笑话都会在脚注中出现,所以它们不会太分散你的注意力。

一些安全教科书提供了大量枯燥的理论。阅读它们就像阅读微积分教科书一样令人兴奋。其他书籍提供了一些看似随机的、不相关的事实,给人的印象是安全根本不是一个真正连贯的主题。还有一些书籍把这个主题描述成一堆高级的管理性陈词滥调。最后,一些书侧重于安全中人的因素。虽然所有这些方法都有它们的作用,但我的看法是,首先,安全工程师必须完全理解底层技术的固有优势和弱点。

信息安全是一个巨大的主题,与其他更成熟的领域不同,这类书应该包括什么内容,或者如何以最佳方式组织它,作者并不完全清楚。我选择围绕以下四个主题来组织本书:

 加密技术

 访问控制

 网络安全

 软件

在上述结构中,这些主题富有弹性。例如,在访问控制主题下,包含了传统的认证和授权主题,以及CAPTCHA 之类的非传统主题。软件主题非常灵活,包括软件开发、恶意软件和逆向工程等各种话题。

虽然本书关注的是实际问题,但已尽力涵盖了足够多的基本原则,这样就可以为从事该领域的进一步研究做好准备。此外,我已尽可能地将背景要求降到最低。特别是,数学形式主义被保持在最低限度(附录包含几个基本数学主题的回顾)。尽管存在这种自我强加的限制,但我相信这本书比大多数安全书籍包含了更多实质性的加密技术。学习本书,所需的计算机科学背景也很少——一门介绍性的计算机组织课程(或类似的经验)就足够了。假设你有一些编程经验,那么汇编语言的基本知识在几个章节中会有帮助,但不是强制性的。本书涵盖了网络基础知识,因此不需要具备之前在该领域的知识或经验。

如果你是一名信息技术专业人员,正在努力学习更多关于安全的知识,我建议你阅读整本书。本书中大多数话题都是相互关联的,跳过少数不相关的话题也不会节省太多时间。即使你是某个领域的专家,至少浏览一下我的介绍也是值得的,因为在这个领域使用术语时经常会出现不一致的情况,本书可能会提供一个不同于你在其他书中看到的视角。

如果你在教授一门安全课程,本书包含的内容可能会比一学期的课程所能涵盖的知识稍微多一点。我在本科安全课程上通常遵循的时间表如表1 所示。

表1 教学大纲建议

章节 时长 建议范围

1. 引言 1 全部

2. 经典加密 3 全部

3. 对称密码 4 全部

4. 公钥加密 4 全部

5. 加密散列函数 4 省略5.7 节中的攻击细节

6. 认证 4 全部

7. 授权 2 全部

8. 网络安全基础 3 省略8.5 节

9. 简单认证协议 4 省略9.4 节

10. 现实世界的安全协议 4 省略WEP 或GSM

章节 时长 建议范围

11. 软件缺陷与恶意软件 4 全部

12. 软件中的不安全因素 3 全部

总计 40

安全不是一项观赏性的运动——解答大量的作业习题是学习本书内容的一个重要方面。许多主题在习题中进一步充实,有时会引入额外的主题。底线是你解决的问题越多,你学到的知识就越多。

基于本书的安全课程是个人或团体项目的理想选择。教科书网站(http://www.cs.sjsu.edu/~stamp/infosec/)包括关于密码分析的部分,这是加密项目的一个可能来源。此外,许多作业习题很适合课堂讨论或课堂作业,例如第10 章中的问题16或第11 章中的问题17。

在教科书网站上你可以找到PowerPoint 幻灯片、习题中提到的所有文件、勘误表和许多其他有用的东西。如果第一次教授这门课,我会特别推荐PowerPoint幻灯片,这些幻灯片已经过彻底的“实战检验”,并经过多次改进。

附录中提到的数学知识在本书中是如何应用的呢?初等模运算出现在第3 章和第5 章的几节中,而数论结果需要在第4 章和第9 章的9.5 节中使用。我发现大多数学生都需要温习模运算基础知识。只需要20~30 分钟的课堂时间就可以涵盖模运算的内容,在深入研究公钥加密技术之前,花费这些时间是非常值得的。

附录中简要讨论的置换在第3 章中最为突出,关于离散概率的材料需要在第6 章的密码破解部分找到。

就像任何大型复杂的软件项目都有缺陷一样,可以形而上学地认为本书也会有不足。我想知道你发现的任何问题——或大或小。我将努力在教科书网站上维护一份最新的勘误表。此外,不要犹豫,请为这本书的未来版本提供任何建议。

第3 版的新增内容

本书的几部分被重新组织和扩展,而其他部分(和两个完整的章节)被删除。

网络安全的主要部分涵盖了更广泛的主题,包括网络简介,这使得基于本书的课程更独立。根据本书的使用者反馈,在加密章节中新增了额外的例子,而协议章节已被修改和扩展。第1 版和第2 版包含了一章关于现代密码分析的内容,这一章已从第3 版中删除了,但仍然可以在教科书网站上找到,其他被删除的主题也是如此。

所有的图形都经过了重新处理,变得更清晰、更好。当然,第2 版中所有已知的错误都被改正。作业习题也已进行了更新。

信息安全是一个不断发展的领域,自本书于2005 年首次出版以来,已发生了一些重大变化。然而,第1 版的基本结构大体上保持不变。我相信这些年来本书主题的组织和列表一直保持得很好。因此,对于第3 版,本书的结构变化更多的是进化而不是革命。

在此要说明的是,本书的参考文献和第12 章习题中提到的一些压缩文件读者可通过扫描封底的二维码进行下载。

Mark Stamp

Los Gatos, California

2021 年6 月