《国外计算机科学经典教材:信息安全工程(第2版)》第1版于2001年问世后,受到了全球广大读者的热烈欢迎。今天的安全领域已经发生了巨大变化:垃圾邮件发送者、病毒编写者、网络钓鱼者、洗钱者以及间谍们的作案水平不断提升,搜索引擎、社交网络乃至电子投票机等新领域都成为这些犯罪者们新的攻击目标,恐怖事件也对世界产生了深远影响。本书针对这些新情况全面更新了第1版的内容,指导您构建能够轻松抵御恶意攻击的可靠系统。《国外计算机科学经典教材:信息安全工程(第2版)》表述准确、讲解清晰,是安全工程领域的鸿篇巨著,涵盖的内容包括工程技术基础、攻击类型、专用保护机制、安全经济学和安全心理学等,适合所有对安全工程感兴趣的读者使用。
《国外计算机科学经典教材:信息安全工程(第2版)》特色 工程技术基础——密码学、协议、访问控制和分布式系统 攻击类型——网络钓鱼、Web攻击、信用卡诈骗、硬件破解和电子战 专用保护机制——生物识别、封印、智能卡、报警器和DRM 安全经济学——企业怎样构建固若金汤的系统并得心应手地管理安全项目 安全心理学——分析隐私困境、应用安全策略的难点以及诈骗行为日益猖獗的原因
前言
近几个世纪以来人们使用锁、栅栏、签名、封印、账册和仪表等来保护自己的财产和隐私,并得到从国际条约到国际法到礼节和风俗等的大量社会结构的支持。
这一切处于快速的变革中。大多数记录现在都实现了电子化,从银行账号到土地财产登记册都如此;随着Internet购物的流行,交易也日趋电子化。还有很多也很重要但不那么明显的是,很多日常系统也已经悄悄地实现了自动化处理。防盗自动警铃不再会惊醒邻居的美梦,而是悄悄地向警察发送消息;学生们不再需要使用硬币来为其宿舍内的洗衣机和干衣机付费,而是用可在大学书店充值的智能卡进行记账;锁不再是简单的机械设施,而是可以通过远程电子控制或刷卡进行操纵;数百万的人们不再需要租赁录像带,而是通过卫星或电缆来观看电影。甚至普通钞票也不再只是纸上印着墨汁,而是包含了数字水印信息,以便机器检测很多伪造行为。
那么,这些新的安全技术效果如何?遗憾的是,真实的答案是“与预期的良好作用相距甚远”。新系统通常很快就被攻破,同样的基础性错误在不同的应用程序中不断重复出现。通常需要经过四五次尝试才能实现安全的设计,而这实在太多了。
媒体经常报告Internet上的安全漏洞,银行为取款机上的“错误提款”与客户争论不休,VISA报告了Internet上有争议的信用卡交易数量的显著增长,卫星电视公司追索复制其智能卡的盗版者,执法机构试图通过控制加密机制使用的法律来监视计算机领域的恐怖主义行为。更糟糕的是,各种功能之间存在很多交互—— 偶然按到了移动电话的重拨键只是一个小小的麻烦,而在发明了一种机器且该机器在每次电话号码被呼叫时就提供一罐软饮料时,情况就不那么简单了,当你突然发现你的电话账单上有50罐可乐时,谁应该对此负责?电话公司?手持设备制造商?还是销售机操作员?一旦几乎所有影响生活的电子设备都连接到Internet上(Microsoft预计这将在2010年出现),“Internet安全”对个人意味着什么,怎样应付这个问题?
除系统故障外,还有很多系统不能有效工作。医疗记录系统不允许医生按需共享个人健康信息,但仍不能防止这些信息被不择手段的私家侦探获取。Zillion-dollar军事系统阻止不具备绝密级许可权限的任何人获取情报数据,但通常在设计上几乎要求所有人都具备绝密级许可权限才能完成任何工作。乘客售票系统在设计上试图防止客户欺骗,但当反垄断官员打破了铁路的统一后,无法阻止新的铁路公司彼此之间的欺骗。如果设计者知道其他地方有哪些做法已经被尝试过并失败过,就可以预见其中很多失败。
安全工程是从这些混乱中涌现出的一门新学科。
尽管大多数底层技术(如加密学、软件可靠性、防篡改、安全打印和审计等)较容易理解,但如何有效应用这些技术则更难。由于从机械机制向数字机制的转变几乎无处不在,使得很多经验教训没有足够的时间在工程团体内被学习和接受。我们一次又一次地看到很多做法在不同场合重复。
最有能力应对变迁的行业通常是那些从其他领域学习了适当技术的行业,比如,银行取款机(甚至预付费煤气表)就重用了军事领域敌我识别装备中的技术。因此,即便某位安全设计人员在某个特定领域拥有出色的技能——不管是操纵密码的数学家还是开发钞票墨水的化学家—— 对整个主题有全局的理解还是有意义的。良好的安全工程的实质是理解系统面临的潜在威胁,之后运用技术上和组织上合适的混合防护措施,来对这些威胁进行控制。了解在其他应用中哪些措施是有效的,更重要的是了解哪些措施是无效的,这对开发会很有帮助,并且可以省下一大笔钱。
本书旨在为安全工程奠定坚实的基础,这也是我们在21世纪初对安全工程的理解。希望本书可以起到以下四个层面的作用:
(1) 作为一本教科书,可作为本主题的入门读物,可在数天内全部读完。本书主要面向需要了解这一主题的IT专业人士,也可作为大学教材(一学期课程)。
(2) 作为一本参考书,用于大致了解某特定类型系统的工作原理和过程。这些系统包括取款机、出租车计价表、雷达干扰器和匿名医疗记录数据库等。
(3) 作为介绍底层技术的入门书籍,如加密、访问控制、推理控制、防篡改和封印等技术。由于篇幅所限,无法进行特别深入的探讨,但对于每个主题都给出了基本的路线图,并为感兴趣的读者给出了参考读物列表(对未来的毕业生,还给出了开放研究问题列表)。
(4) 作为一本原创的科学文献,在其中,我试图勾勒出作为安全工程基础的通用原理,以及人们在构建某种类型系统时应该从其他系统中吸取的教训。在我从事安全工作的多年经历中,我一直试图说出这些。比如,设计通用防空火力控制雷达的人不知道对流密码的简单攻击方法,使得雷达很容易受到干扰;而雷达社区中人们熟悉的技巧也没有被印钞机和设计版权标记框架的人所理解,从而导致对大多数数字水印的非常常见的攻击。
本书源于我在剑桥所教授的安全工程课程,但我重新撰写了教案,使其更容易理解,并添加了一些必要的素材。对专业安全管理人员或顾问来讲,本书是一本极富价值的最前沿的参考书;对从事密码学研究的计算机科学教授、试图了解最新计算机骗术的警察侦探、想要清除密码学与匿名性立法方面冲突的政策人员来讲,本书应该都是有用的。最重要的是,本书的主要读者群是在职的程序员或工程师,他们正在试图设计实际系统,并努力保证系统在客户、管理人员和任何其他人的操作下都能正常运行。
本书分为三个部分:
●第I部分介绍一些基本概念,从安全协议的一些中心概念开始,到人机界面问题、访问控制、密码学与分布式系统问题。该部分不要求读者具备特定的技术背景,只要求掌握计算机基础知识。本部分是以我给二年级学生所教授的安全课程为基础的。
●第II部分较详细地讲述了大量重要的应用,比如军事通信、医疗记录系统、取款机、移动电话以及付费电视等,这些系统用于引入更多高级技术和概念。本部分还从公司、消费者、犯罪分子、警察、间谍等大量不同团体的视点分析了信息安全问题。这些素材源于我在安全方面的高级课程讲义、研究工作和咨询工作等。
●第III部分讲述了组织与策略问题:计算机安全怎样与法律、证据和公司政治生态交互作用;怎样确保系统可以按照设计的目标工作;怎样对安全工程的整个过程进行最有效的管理。
我相信,构建在面对恶意行为时仍能可靠运行的系统是工程师们在21世纪面临的最重要、最有趣、最困难的任务之一。
参考文献
在阅读过程中,你会发现正文中的一些地方出现了用方括号括住的编号,即[*],这些代表参考文献号,你可以在书末的“参考文献”查阅书名。
安德森(Ross Anderson),现任剑桥大学计算机实验室信息安全工程教授,是公认的全球最重要安全权威之一,也是安全经济学的开创者。Ross已经发表了多篇分析现场安全系统故障原因的论文,并在点对点系统、API分析及硬件安全等大量技术领域做出了开拓性的贡献。Ross教授是英国皇家学会会员、皇家工程学院院士、工程及科技学会会员、数学及应用学会会员、物理学会会员。
齐宁,1978年5月生,河北保定人。2006年获得解放军信息工程大学计算机软件与理论博士学位。求学及工作期间的主要研究方向包括计算机安全、可信计算、二进制翻译、高性能计算等。主要译著有《SQL Server 2005性能调优》和《C++多核高级编程》等。
韩智文,计算机科学与技术专业博士,网络系统分析师,长期从事网络通信和信息安全领域工作,参加了多项国家“863”和国防研究项目,为政府信息化建设提供咨询服务。主要研究领域包括网络安全、策略管理和下一代互联网技术等,已在国家核心期刊上发表研究论文十余篇,出版译著两部。
刘国萍,中国电信北京研究院商业客户部技术与产品研发部高级工程师。本硕毕业于中国人民解放军信息工程大学,获得中科院研究生院空间技术与方法专业博士学位。博士研究期间,曾参与国家大型项目“中国探月工程”一期工程的地面通信网络部分的设计工作。2004年进入中国电信北京研究院工作,从事互联网业务和网络安全技术研究及相关产品的研发工作。
第Ⅰ部分
第1章 安全工程的含义
1.1 简介
1.2 框架
1.3 实例1——银行
1.4 实例2——军事基地
1.5 实例3——医院
1.6 实例4——家庭
1.7 定义
1.8 小结
第2章 可用性与心理学
2.1 简介
2.2 基于心理学的攻击
2.2.1 假托
2.2.2 钓鱼
2.3 心理学研究的视点
2.3.1 人脑在哪些方面逊于计算机
2.3.2 认知偏差与行为经济学
2.3.3 思维处理的不同方面
2.3.4 人的差别
2.3.5 社会心理学
2.3.6 人脑在哪些方面胜于计算机
2.4 密码
2.4.1 可靠密码输入的困难
2.4.2 记住密码的困难
2.4.3 幼稚的密码选取
2.4.4 用户能力与培训
2.4.5 社会工程攻击
2.4.6 可信路径
2.4.7 对钓鱼攻击的应对措施
2.4.8 钓鱼攻击的未来
2.5 系统问题
2.5.1 是否可以拒绝服务
2.5.2 保护自己还是保护他人
2.5.3 对密码输入的攻击
2.5.4 密码存储攻击
2.5.5 绝对限制
2.6 CAPTCHA
2.7 小结
2.8 研究问题
2.9 补充书目
第3章 协议
3.1 引言
3.2 密码窃听的风险
3.3 简单身份验证
3.3.1 质询与应答
3.3.2 MIG中间人攻击
3.3.3 反射攻击
3.4 操纵消息
3.5 环境变化
3.6 选择协议攻击
3.7 加密密钥管理
3.7.1 基本密钥管理
3.7.2 Needham——Schroeder协议
3.7.3 Kerberos
3.7.4 可行的密钥管理
3.8 迈向形式化
3.8.1 一个典型的智能卡银行协议
3.8.2 BAN逻辑
3.8.3 支付协议认证
3.8.4 形式化认证的局限性
3.9 小结
3.10 研究问题
3.11 补充书目
第4章 访问控制
4.1 引言
4.2 操作系统访问控制
4.2.1 组与角色
4.2.2 访问控制列表
4.2.3 Unix操作系统安全
4.2.4 AppleOS/X
4.2.5 Windows——基本体系结构
4.2.6 能力
4.2.7 Windows——新增的特性
4.2.8 中间件
4.2.9 沙盒与携带证明的代码
4.2.10 虚拟化
4.2.11 可信计算
4.3 硬件保护
4.3.1 Intel处理器与可信计算
4.3.2 ARM处理器
4.3.3 安全处理器
4.4 存在的问题
4.4.1 破坏堆栈
4.4.2 其他攻击技术
4.4.3 用户接口失败
4.4.4 为何错误百出
4.4.5 补救措施
4.4.6 环境变化
4.5 小结
4.6 研究问题
4.7 补充书目
第5章 密码学
5.1 引言
5.2 历史背景
5.2.1 早期流密码:vigenere
5.2.2 一次一密法
5.2.3 早期的分组密码——Playfair
5.2.4 单向函数
5.2.5 非对称原语
5.3 随机预言模型
5.3.1 随机函数:哈希函数
5.3.2 随机序列生成器:流密码
5.3.3 随机置换:分组密码
5.3.4 公钥加密和陷门单向置换
5.3.5 数字签名
5.4 对称加密原语
5.4.1 SP网络
5.4.2 高级加密标准
5.4.3 Feistel密码
5.5 操作模式
5.5.1 电子密码本
5.5.2 密码分组链
5.5.3 输出反馈
5.5.4 计数器加密
5.5.5 密码反馈
5.5.6 消息身份验证码
5.5.7 操作模式的组合
5.6 哈希函数
5.6.1 基础加密的额外要求
5.6.2 常用哈希函数及应用
5.7 非对称加密原语
5.7.1 基于因数分解的加密
5.7.2 基于离散对数的加密
5.7.3 特殊用途的原语
5.7.4 椭圆曲线加密
5.7.5 证书
5.7.6 非对称加密原语的强度
5.8 小结
5.9 研究问题
5.10 补充书目
第6章 分布式系统
6.1 引言
……
第Ⅱ部分
第Ⅲ部分
参考文献
银行运行着非常大范围的安全关键(security-critical)的计算机系统。
(1)银行业务的核心通常是一个分行簿记系统,其中保存了客户账目主文件,并且记录了日常交易的大量分类账。对这一系统的主要威胁是银行的内部员工,每年都有l%的银行员工被解雇,其中大部分都是因为小规模的欺诈(平均额度只有几千美元)。对这种威胁的主要防御措施是已经演化了几百年的簿记流程,比如,对某个账号的每个借方都必须有针对其他账号的一个等额的贷方与之匹配,因此钱只是在银行内部流动,从来不会被创造或销毁。此外,大额转账需要2、3个人共同批准才能进行。还有各种报警系统,用来监控异常交易额度或交易模式,并且员工需要定期休假,休假期间不能进入银行或者访问银行系统。
(2)自动取款机(automatic teller machine,ATM)是银行的公开窗口,ATM根据客户的银行卡与个人身份号码进行交易身份验证——通过这种身份验证方式同时防御外部与内部的攻击者——要比看起来难得多。本地的坏人(或者银行员工)发现了银行系统中可利用的漏洞,导致在很多国家和地区都流行“错误提款(phantom withdrawal)”。ATM之所以有趣,还因为它们是密码学在商业上的首次大规模应用,并且帮助确立了很多加密标准。
……