Preface
在设计安全的数字信息的计算、存储、运输系统时有许多安全问题作为基础。 理解这些基础概念与安全社区使用的术语是十分重要的。 它们可以启发我们设计更安全的计算机架构。 这本书尝试去总结最为重要的安全基础概念(它们往往分散地在密码学、操作系统安全、网络安全课上被讲授),并提供给计算机架构师。
OUTLINE OF THE BOOK
在第一章中,我们介绍了面向威胁的设计方法,提供了现有的面向性能、功耗、面积、成本的实际方法以外的方法。 我们定义了安全的三大基石特性:机密性、完整性、可用性。 (We define the cornerstone security properties of Confidentiality, Integrity and Availability.) 我们还定义了基础性的访问控制,以及其他需要的安全特性。 (We also define fundamental access control, as well as other desirable security properties.) 我们定义了所谓的安全计算机,即所谓可信计算机。 (We define what we mean by a security-aware computer, which we also call a trustworthy computer.) 我们还提出了一种系统性的安全设计方法。 (We also propose a systematic security architecture design methodology.)
从第二章到第六章,我们介绍了重要的安全技术,包括安全策略、访问控制方法、密码学技术、安全协议。 本书有一个特色版块,我们在哪里提供了关于计算机架构师如何用安全技术来设计可信计算机的例子。
第二章介绍了安全策略模型,包括多层次(multi-level)和多方面(multi-lateral)安全。 这有助于计算机架构师学习安全术语并且理解如何考虑安全策略以用于确保机密性和完整性。 安全策略模型的使用允许我们去集中关注在浙西基础概念上,而不是真是的极为庞杂的安全策略。
第三章介绍了基础的访问控制,包括认证(authentication)、授权(authorization)方法。 尽管这些方法被典型地用于操作系统安全,但是他们需要假定有可信的监管程序(hypervisor)与硬件(hardware),尤其是当操作系统被纳入考量之后。
第四章和第五章提供了对于密码学技术的介绍。 这是一个已经充分发展了的领域,因此也有宝贵的可供计算机架构师直接使用的密码学原语(cryptographic primitives)。 我们将其视为一种新的思考方式,用于代替所谓“限制访问”的模式(正如我们在第二章和第三章讨论的许多安全策略模型和访问控制方法中广泛使用的)。 这种思考方式下允许对于加密内容的随意访问,只对于用于使得加密内容有意义的密码学密钥(cryptographic keys)的访问进行限制。
第四章介绍了对称密钥密码(symmetric-key cryptography)和密码学哈希算法(crpytographic hash algorithms),它们分别可用于保护计算机系统中的机密性和完整性。
第五章介绍了公钥密码学(public-key cryptography),它可以用于提供提供长期的数字身份验证(digital identities)。 我们讨论了数字签名(digital signatures)、公钥基础设施(Public Key Infrastructure, PKI)、数字证书和数字证书颁发机构(Certificate Authorities, CAs),以及中间人攻击(man-in-the-middle attacks)和误用公钥密码学的危害。
第六章提供了安全协议的介绍,它可以用于建立计算机间的网络安全通信。 它们同样可以被用于表述同一个计算机内部的不同部分之间的安全通信。 安全协议对于安全架构是很重要的,涵盖其软件、硬件和网络组件。 如果用于发送方和接收方之间交互的协议不安全,那么使用的强大的密码学手段就毫无用处。
第七章总结了上述覆盖的主题,指出了一些有趣的应用领域以及硬件相关的安全主题,以及通向设计安全的架构的道路和方向。
只想了解基础的安全概念但是并不想设计安全计算机的读者可以跳过架构设计的例子。 只想了解或使用简单的密码学技术的读者可以跳过第二章和第三章。 然而,任何认真考虑设计安全计算机的读者都应该阅读全书。 本书描述的基础安全概念允许我们同安全社区交流并且理解如何使用面向威胁的设计方法。
为了简洁,我经常使用PALMS(Princeton Architecture Lab for Multimedia and Security, http://palms.ee.princeton.edu )实验室设计的架构作为例子,以便揭示如何本书中展示的安全理念可以用于设计软硬件安全架构。 这些例子对我非常熟悉,因此我可以更快地写作。 我同样给出了一些其他设计的例子,以及许多领域广泛的参考文献和相关工作的列表。 一本后续的书会更加详细地讨论新的计算机架构安全研究主题。 这本书的目的是浓缩大量的安全基础概念成一本简短的手册。 因此,我选择的主题是对于理解安全的一些维度并辨析之的基础且重要的内容,能够启发新的设计安全系统的思路。
那些熟悉构建系统的计算机架构师现在也必须学会思考系统会如何被攻击者破坏或利用。 我们需要去学习如何主动在设计中抵抗这种恶意行为。 本书中描述的基本安全概念提供了丰富的点子和技术作为出发点以供思考如何设计新的软硬件架构。
我要感谢我在 Princeton 本科班 ELE/EGR 386 网络安全和研究生研讨班 ELE/COS 580 可信计算的助教和学生,感谢他们对我的讲座和讨论的有趣投入。 本书反映了我在这些课程中的一些讲座材料。 非常感谢 Mark Hill,他本能地意识到了计算机架构中安全性的重要性,多次邀请我写一本关于安全性的书,并且不接受拒绝。 Mike Morgan 也不断鼓励我完成这本书。最后,我要感谢我亲爱的丈夫 Howard,无论我是否在写书,他都让我的生活充满乐趣并如此深情地支持我。