图书简介:
目 录
第1章 介绍
1.1 什么是计算机安全
1.1.1 资源的价值
1.1.2 脆弱点—威胁—控制的范式
1.2 威胁
1.2.1 机密性
1.2.2 完整性
1.2.3 可用性
1.2.4 威胁的类型
1.2.5 攻击者类型
1.3 危害
1.3.1 风险及常识
1.3.2 方法—时机—动机
1.4 脆弱点
1.5 控制
1.6 总结
1.7 下一步是什么
1.8 习题
第2章 工具箱: 鉴别、 访问控制与加密
2.1 身份鉴别
2.1.1 识别与身份鉴别
2.1.2 基于短语和事实的鉴别: 用户已知的事情
2.1.3 基于生物特征鉴别技术的鉴别: 用户的一些特征
2.1.4 基于令牌的身份鉴别: 你拥有的东西
2.1.5 联合身份管理机制
2.1.6 多因素鉴别
2.1.7 安全鉴别
2.2 访问控制
2.2.1 访问策略
2.2.2 实施访问控制
2.2.3 面向程序的访问控制
2.2.4 基于角色的访问控制
2.3 密码编码学
2.3.1 加密技术解决的问题
2.3.2 术语
2.3.3 DES: 数据加密标准
2.3.4 高级加密标准
2.3.5 公开密钥密码体制
2.3.6 从公钥加密到密钥分配
2.3.7 检错码(error detecting codes)
2.3.8 信任度
2.3.9 证书: 可信的身份信息与公钥
2.3.10 数字签名: 整合
2.4 习题
第3章 程序和编程
3.1 无意的(非恶意的)程序漏洞
3.1.1 缓冲区溢出
3.1.2 不完全验证
3.1.3 检查时刻到使用时刻的错误
3.1.4 未公开的访问点
3.1.5 大小差一错误
3.1.6 整型溢出
3.1.7 未以空终止符结尾的字符串
3.1.8 参数长度、 类型和数值
3.1.9 不安全的通用程序
3.1.10 竞态条件
3.2 恶意的代码: 恶意软件
3.2.1 恶意软件: 病毒、 木马和蠕虫
3.2.2 技术细节: 恶意代码
3.3 对策
3.3.1 用户的对策
3.3.2 开发者的对策
3.3.3 专门的安全对策
3.3.4 无效的对策
3.4 小结
3.5 习题
第4章 Web和用户
4.1 针对浏览器的攻击
4.1.1 针对浏览器的攻击类型
4.1.2 浏览器攻击如何成功: 识别失败与鉴别失败
4.2 针对用户的Web攻击
4.2.1 虚假或误导的内容
4.2.2 恶意的网页内容
4.2.3 防止恶意网页
4.3 获取用户或网站的数据
4.3.1 有数据的代码
4.3.2 网站数据: 用户的问题
4.3.3 挫败数据攻击
4.4 电子邮件攻击
4.4.1 虚假电子邮件
4.4.2 作为垃圾邮件的虚假电子邮件
4.4.3 假(错误的)电子邮件头数据
4.4.4 网络钓鱼
4.4.5 防止电子邮件攻击
4.5 小结
4.6 习题
第5章 操作系统
5.1 操作系统的安全性
5.1.1 背景: 操作系统结构
5.1.2 普通操作系统的安全特性
5.1.3 历史回顾
5.1.4 受保护对象
5.1.5 实现安全功能的操作系统工具
5.2 安全操作系统的设计
5.2.1 简约设计
5.2.2 分层设计
5.2.3 内核化设计
5.2.4 引用监视器
5.2.5 正确性和完整性
5.2.6 安全设计原则
5.2.7 可信系统
5.2.8 可信系统的功能
5.2.9 可信系统的研究成果
5.3 rootkit
5.3.1 手机rootkit
5.3.2 rootkit躲避检测
5.3.3 rootkit未经检查的操作
5.3.4 索尼公司的XCP rootrootkit
5.3.5 TDSS rootkits
5.3.6 其他rootkits
5.4 小结
5.5 习题
第6章 网络
6.1 网络的概念
6.1.1 背景: 网络传输介质
6.1.2 背景: 协议层
6.1.3 背景: 寻址和路由选择
6.2 网络通信的威胁
6.2.1 截取: 偷听与窃听
6.2.2 篡改、 伪造: 数据损坏
6.2.3 中断: 服务失效
6.2.4 端口扫描
6.2.5 脆弱点总结
6.3 无线网络安全
6.3.1 WiFi场景
6.3.2 无线网络中的脆弱点
6.3.3 故障的对策: WEP(等效于有线加密)
6.3.4 更强的协议族: WPA(WiFi保护访问)
6.4 拒绝服务
6.4.1 例子: 爱沙尼亚海量网络故障
6.4.2 服务是怎么被拒绝访问的
6.4.3 洪泛(flooding)攻击的细节
6.4.4 恶意代码导致的网络洪泛
6.4.5 资源消耗的网络洪泛
6.4.6 地址错误造成的拒绝服务
6.4.7 流量重定向
6.4.8 DNS攻击
6.4.9 利用已知的脆弱点
6.4.10 物理隔离
6.5 分布式拒绝服务
6.5.1 脚本拒绝服务攻击
6.5.2 Bots
6.5.3 僵尸网络
6.5.4 恶意自主的移动代理
6.5.5 自主移动防护代理
6.6 网络安全中的密码学
6.6.1 网络加密
6.6.2 浏览器加密
6.6.3 洋葱路由
6.6.4 IP安全协议套件(IPsec)
6.6.5 虚拟专用网络
6.6.6 系统架构
6.7 防火墙
6.7.1 什么是防火墙
6.7.2 防火墙设计
6.7.3 防火墙的类型
6.7.4 个人防火墙
6.7.5 几种类型防火墙的比较
6.7.6 防火墙配置举例
6.7.7 网络地址转换(NAT)
6.7.8 数据丢失防护(Date Loss Prevention)
6.8 入侵检测和防御系统
6.8.1 IDS的种类
6.8.2 其他入侵检测技术
6.8.3 入侵防御系统
6.8.4 入侵响应
6.6.5 入侵检测系统的目标
6.8.6 IDS的能力和局限
6.9 网络管理
6.9.1 服务保障管理
6.9.2 安全信息和事件管理(SIEM)
6.10 小结
6.11 习题
第7章 数据库
7.1 数据库简介
7.1.1 数据库的概念
7.1.2 数据库的组成
7.1.3 数据库的优点
7.2 数据库的安全需求
7.2.1 数据库的完整性
7.2.2 元素的完整性
7.2.3 可审计性
7.2.4 访问控制
7.2.5 用户鉴别
7.2.6 可用性
7.2.7 完整性、 机密性和可用性
7.3 可靠性和完整性
7.3.1 操作系统提供的保护特性
7.3.2 两阶段更新
7.3.3 冗余/内在一致性
7.3.4 恢复
7.3.5 并发性/一致性
7.4 数据库泄露
7.4.1 敏感数据
7.4.2 泄露类型
7.4.3 防止泄露: 数据禁止和修改
7.4.4 安全性与精确度
7.5 数据挖掘和大数据
7.5.1 数据挖掘
7.5.2 大数据
7.6 小结
7.7 习题
第8章 云计算
8.1 云计算概念
8.1.1 服务模式
8.1.2 部署模式
8.2 迁移到云端
8.2.1 风险分析
8.2.2 评估云服务提供商
8.2.3 更换云服务提供商
8.2.4 作为安全控制的云
8.3 云安全工具与技术
8.3.1 云环境下的数据保护
8.3.2 云应用安全
8.3.3 日志与事件响应
8.4 云认证管理
8.4.1 安全断言标记语言
8.4.2 OAuth协议
8.4.3 OAuth用于认证
8.5 加固IaaS
8.5.1 公有IaaS与私有网络的安全性对比
8.6 小结
8.6.1 本领域的发展方向
8.6.2 更多参考
8.7 习题
第9章 计算机中的隐私
9.1 隐私的概念
9.1.1 信息隐私的各方面
9.1.2 与计算机相关的隐私问题
9.2 隐私的原理和政策
9.2.1 公平信息策略
9.2.2 美国的隐私法律
9.2.3 美国政府网站的控制
9.2.4 商业网站的控制
9.2.5 非美国的隐私原则
9.2.6 保护隐私的个人行为
9.2.7 政府和隐私
9.2.8 身份窃取
9.3 鉴别和隐私
9.3.1 鉴别意味着什么
9.3.2 结论
9.4 数据挖掘
9.4.1 政府数据挖掘
9.4.2 隐私保持的数据挖掘
9.5 网站上的隐私
9.5.1 了解在线环境
9.5.2 网上付款
9.5.3 门户网站注册
9.5.4 这是谁的网页
9.5.5 冲浪要留心
9.5.6 间谍软件
9.5.7 网上购物
9.6 电子邮件安全性
9.6.1 电子邮件将发往何处, 谁能够访问它
9.6.2 电子邮件的拦截
9.6.3 监控电子邮件
9.6.4 匿名、 假名、 消失的电子邮件
9.6.5 欺骗和垃圾邮件
9.6.6 小结
9.7 对新技术的影响
9.7.1 RFID
9.7.2 电子投票选举
9.7.3 VoIP与Skype
9.7.4 云端的隐私
9.7.5 有关新技术的结论
9.8 领域前沿
9.9 小结
9.10 习题
第10章 安全管理和事件
10.1 安全计划
10.1.1 组织和安全计划
10.1.2 安全计划的内容
10.1.3 安全计划编制组成员
10.1.4 安全计划的承诺
10.2 业务持续计划
10.2.1 评估业务影响
10.2.2 发展战略
10.2.3 开发计划
10.3 事件处理
10.3.1 事故响应计划
10.3.2 应急小组
10.4 风险分析
10.4.1 风险的性质
10.4.2 风险分析的步骤
10.4.3 赞成和反对风险分析的理由
10.5 处理灾难
10.5.1 自然灾难
10.5.2 停电
10.5.3 人为破坏
10.5.4 敏感信息截取
10.5.5 意外事故处理计划
10.5.6 物理安全的回顾
10.6 小结
10.7 习题
第11章 法律和道德问题
11.1 程序和数据的保护
11.1.1 版权
11.1.2 专利
11.1.3 商业秘密
11.1.4 特殊情况
11.2 信息和法律
11.2.1 作为对象的信息
11.2.2 与信息相关的法律问题
11.2.3 法律制度
11.2.4 计算机产品保护的小结
11.3 雇员和雇主权利
11.3.1 产品所有权
11.3.2 雇佣合同
11.4 软件故障的补救
11.4.1 销售正确的软件
11.4.2 报告软件错误
11.5 计算机犯罪
11.5.1 为什么要有计算机犯罪的单独类型
11.5.2 为什么计算机犯罪很难定义
11.5.3 为什么对计算机犯罪难以起诉
11.5.4 法令实例
11.5.5 国际范围
11.5.6 为什么破获计算机犯罪困难重重
11.5.7 什么样的计算机犯罪没有讨论
11.5.8 计算机安全法律问题的小结
11.6 计算机安全中的道德问题
11.6.1 法律与道德之间的区别
11.6.2 对道德的研究
11.6.3 道德推理法
11.7 道德的案例分析
11.7.1 案例1: 计算机服务的使用
11.7.2 案例2: 隐私权
11.7.3 案例3: 拒绝服务
11.7.4 案例4: 程序的所有权
11.7.5 案例5: 专有资源
11.7.6 案例6: 欺诈
11.7.7 案例7: 信息的准确性
11.7.8 案例8: 黑客和快客的道德
11.7.9 案例9: 真实再现
11.7.10 对计算机道德的小结
11.8 小结
11.9 习题
第12章 密码学精讲
12.1 密码学
12.1.1 密码分析
12.1.2 密码学基础
12.1.3 一次一密密码本(OneTime Pads)
12.1.4 统计分析
12.1.5 “安全的”加密算法由什么构成
12.2 对称加密算法
12.2.1 DES
12.2.2 AES
12.2.3 RC2、 RC4、 RC5和RC6
12.3 RSA非对称加密
12.3.1 RSA算法
12.3.2 RSA算法的健壮性
12.4 消息摘要
12.4.1 哈希函数
12.4.2 单向哈希函数
12.4.3 消息摘要算法
12.5 数字签名
12.5.1 椭圆曲线加密体制
12.5.2 El Gamal与数字签名算法
12.5.3 2012年国家安全局(NSA)密码学争论
12.6 量子密码学
12.6.1 量子物理学
12.6.2 光子接收
12.6.3 光子密码学
12.6.4 实现
12.7 小结
第13章 新兴问题
13.1 物联网
13.1.1 医疗设备
13.1.2 移动电话
13.1.3 物联网安全
13.2 网络安全经济学
13.2.1 制定一个商业方案
13.2.2 定量的安全性
13.2.3 近期的研究和未来的趋势
13.3 电子投票
13.3.1 什么是电子投票
13.3.2 什么才是公平公正的选举
13.3.3 有哪些关键因素
13.4 网络战争
13.4.1 什么是网络战争
13.4.2 可能出现的网络战争案例
13.4.3 致命的问题
13.5 小结
参考文献
展开
译 者 序
继2004年、 2007年先后出版了原书的第三版、 第四版翻译版之后, 我们再次翻译了第五版。原书得到美国著名信息安全专家Willis H.Ware教授(兰德公司)的热情推荐, 畅销美国, 并成为美国各大学院校广为使用的经典教材, 更被业界视为计算机安全攻击和对策的权威指南。本书经过十几年的改编再版, 内容始终保持经典、 丰富和新颖, 循序渐进, 并且案例翔实生动, 深入浅出, 有较大的深度和广度。第五版紧跟技术潮流, 随着第三个合著人Jonathan Margulies的加入, 新增了3章新内容(第4章Web和用户、 第8章云计算、 第13章新兴问题), 并对每个章节进行了细微调整。第五版不仅在内容上得到了丰富, 而且理论体系结构更趋合理, 体现了本书作者深厚的技术沉淀。特别值得一提的是, 本书花了大量篇幅侧重讨论和分析代码, 因为有相当多的危险或多或少都是由计算机上执行的程序代码引起的。读者可以随意选取自己感兴趣的主题阅读, 阅读本书唯一需要的背景知识就是了解编程和计算机系统。本书适合于信息安全或计算机专业本科生、 研究生、 广大相关领域的研究人员和专业技术人员阅读和参考。
本书由电子科技大学李毅超教授、 西南石油大学梁宗文博士、 电子科技大学李晓冬共同负责翻译。
在此还要感谢杨华聪、 刘治宇、 邱捷、 雷鑫、 胡小勇、 卜义云、 李军辉、 余倩等研究生, 他们也为本书做出了贡献。
由于译者水平有限, 翻译不妥或错误之处在所难免, 敬请广大读者批评指正。
译 者
序 言
来源于作者: 我们在第三版和第四版的《信息安全原理与应用》中提供了Willis H.Ware写的前言。在他写的前言中, 囊括了计算机安全早期岁月的一些事情, 描述了他们早些年在计算机领域关注的问题, 这些问题时至今日仍然有效。
Willis不断努力以求使其从事的工作更加完善。事实上, 他全面的分析能力和令人信服的领导能力对这些工作的最终成功做出了巨大贡献。现在很少有人知道Willis的名字, 但欧盟数据保护指令却被更多的人所熟知(欧盟数据保护指令是Willis提交给美国公共事业部门的报告\[WAR73a\]所直接产生的一个分支)。Willis这么做只是希望大家看重他的思想, 而不是为了个人名声。
不幸的是, Willis于2013年11月去世, 享年93岁。考虑到他写的前言对我们的读者依然重要, 因此出于尊敬和感激, 我们在此再次发布他的文字。
在20世纪50年代到60年代, 著名的计算机联合会议JCC(Joint Computer Conferences)把计算机技术专业人员和用户召集在了一起。JCC一年两届, 最初被称为东部和西部JCC, 后来改名为春季和秋季JCC, 再后来又更名为全国计算机年会AFIPS。在这个背景下, 计算机安全(后来命名为信息系统安全, 现在也称为“国家信息基础设施安全的保护”)不再是机要部门、 防御部门关心的话题, 它开始走向公众。
其时, RAND(兰德)公司(正如它的名字一样那么有名)的Robert L.Patrick, John P.Haverty和我本人都在谈论着国家及其公共机构对计算机技术日益增长的依赖性。我们注意到, 已安装的系统无法保证自身及其数据不受入侵攻击的破坏。我们认为, 此时应该促使技术群体和用户群体去关注计算机安全了。
(美国)国家安全局NSA(National Security Agency)的远程访问分时系统的开发使这个设想成为现实。该分时系统具有一套完整的安全访问控制机制, 它运行在Univac 494机器上, 为终端和用户提供服务——不仅是马里兰州Fort George G.Meade总部内的终端和用户, 而且是世界范围内的。很幸运, 我了解该系统的详细情况。
我在RAND公司另两位工作人员(Harold Peterson博士和Rein Turn博士)和NSA的Bernard Peters的帮助下, 组织了一批论文并将它们提交给了SJCC(春季JCC)大会的管理方, 建议由我来主持该届JCC的论文会议。大会方接受了这个提议[1], 会议于1967年在大西洋城(NJ)会议大厅举行。
此后不久, 一个国防承包商要求一台运行在远程访问模式下的大型机能同时兼顾机密保护和商业应用。受这一要求的驱使, 并通过(美国)高级研究计划署ARPA(Advanced Research Projects Agency)和后来的(美国)国防科学局DSB(Defense Science Board)的立案, (美国)国防部组织了一个专门研究计算机系统安全控制问题的委员会, 由我担任主席。委员会的目的是制订一个文档, 该文档可以作为(美国)国防部(DoD)在这个问题上的政策立场的基础。
委员会的报告最初是作为一个机密文件出版的, 并于1970年1月正式提交给发起者(DSB)。此报告后来解密, 并于1979年10月由RAND公司再版。这一报告得到了广泛的传播[2], 而且还得到了一个“警示报告”的绰号。如今, 在RAND公司的网站上还可以找到这份报告和相关的历史介绍[3]。
后来, 美国空军(USAF)资助了另一个由James P.Anderson担任主席的委员会。它的报告于1972年出版[4], 推荐了一个6年研发安全计划, 总预算大约是800万美元。美国空军根据这个安全计划投资了数个项目[5], 其中的3个为特定的计算机设计, 并且被用来实现一个带有安全控制的操作系统。
最终, 这些举措促成了一个由NSA发起的“标准和评估”(Criteria and Evaluation)计划。该计划在1983年出版的“桔皮书”(Orange Book)[6]和随后它所支持的绰号为“彩虹系列”的文件组中达到鼎盛。后来, 在20世纪80年代直至20世纪90年代期间[7], 这个计划成为一个国际性主题, 并且成为ISO标准[8]。
了解系统安全研究在近数十年中的发展是很重要的。长期以来, 防御部门都是以文档的形式来保护机密信息的。而今, 它已经演变为一个非常精细的方案, 将各种需保护的信息划分成组、 子组和超级组, 所有组都必须是得到许可的人才能访问, 而且有必要访问才能访问。它带给我们的加密技术和在传送过程中保护机密信息的经验, 足以影响一个世纪[9]。最后, 它认识到安全中的人员问题及在相关人员间建立可信度的必要性。它当然也认识到了物理安全的重要性。
因此, “这个”计算机安全问题, 正如20世纪60年代及后来人们所理解的, 就是: (1)如何在计算机系统中建立一组访问控制, 这些访问控制实施或模仿的是以往纸介质环境中的处理流程; (2)一些相关问题, 如保护软件免受未授权的修改、 破坏或非法使用, 以及将系统安置在一个安全的物理环境中, 该环境有着适当的管理监控和操作规程。我们对安全方面的认识还不够深入, 主要表现在软件及其相关硬件方面, 也就是说, 还存在使软件的正常行为出错和被破坏的风险。在通信、 人员和物理安全方面, 有关规定和经验太多, 但效果并不佳。把各个方面结合在一起, 产生一个全面的、 安全的系统和操作环境是很重要的。
如今, 世界已经发生了根本性的改变。桌上型计算机和工作站已经出现并日益激增。因特网不断繁荣, 万维网(World Wide Web)日益昌盛。网络在“爆炸”, 计算机系统之间进行通信已成为必然。很多商业交易都基于网络; 很多商业团体(特别是金融机构)都进入了网络。确切地说, 世界上的任何一个人都可能是计算机“用户”。计算机联网是普遍现象, 目标就是要使信息系统不断扩展和延伸。
随着网络的发展, 基于计算机的信息系统(其硬件、 软件、 数据库和通信)都暴露在一个无法控制的环境中——终端用户、 网络管理员、 系统所有者甚至政府都无法控制。我们必须做的是, 在社会可接受的法律框架下, 提供适当的技术、 规程、 操作及环境, 来抵御各种可能出现的或潜在的威胁。
威胁来自个人和团体、 国内和国外。恶意渗透系统或编制恶意软件的动机(通常伴有攻击性或破坏性的结果)可能是满足个人智力需求、 间谍活动、 经济回报、 报复、 非暴力反抗(civil disobedience)或其他原因。信息系统的安全环境已发生了很大的变化: 从在有限范围内只与彼此了解且遵纪守法的用户群体交互, 到在全球范围内与不了解且不可信的用户进行交互。重要的是, 现在的安全控制必须能够处理没有控制的情形及如何避免控制带来的负面影响。计算机安全和责任保险有许多相似之处: 它们可能都会处于一个易被了解、 易被攻击的受威胁的环境; 当然, 攻击的细节、 时间或其必然性是不同的, 只有当事件发生时才清楚。
另一方面, 信息及其交流不断繁荣; 如今的世界、 社会和机构, 离开基于计算机通信的信息系统, 就无法正常工作。因此, 系统应得到全方位的保护——技术的、 规程的、 操作的及环境的。不管是所有者还是职员, 都有责任对系统信息资产进行保护。
但是, 计算机安全的发展很缓慢, 主要原因是威胁的真实性和破坏性还没有得到充分认识; 另外, 全面实现信息系统安全的成本太高, 超过了不采取措施可能面临的损失。增强资金决策层对安全控制的信心是一个长期的过程。
本书致力于以下问题: 威胁和系统漏洞的本质(第1章); 密码学(第2章和第12章); 软件漏洞(第3章); 通用标准(第5章); 万维网和因特网(第4章和第6章); 风险管理(第10章); 法律、 道德和隐私问题(第11章)。本书也描述了目前可用的安全控制, 如加密协议、 软件开发实践、 防火墙及入侵检测系统。从总体上说, 本书将为那些负责筹划和/或组织和/或管理和/或实现一个全面的信息系统安全计划的专家, 提供一个广泛而正确的基础。
信息安全还有很多技术方面的问题亟待解决, 如硬件、 软件、 系统和体系结构的研发, 以及相应的产品方面。但是, 技术本身不是信息安全发展过程中的支柱, 而组织和管理者们完成安全工作的动机及承诺才是。今天, 国家乃至世界的公共信息基础设施正在沿着“不断学习”这样的曲线缓慢上升; 每一次恶作剧或恶意的攻击事件都在推动它的进步。当今的恐怖主义事件也起了推动作用。但是在系统安全和威胁之间, 这个上升曲线是否已经达到了某个恰当的平衡点呢?答案是“不, 还没有; 我们还有很长的路要走”[10]。
——Willis H. Ware
RAND
Santa Monica, California
参考文献
1. “Security and Privacy in Computer Systems,” Willis H. Ware; RAND, Santa Monica, CA; P3544, April 1967. Also published in Proceedings of the 1967 Spring Joint Computer Conference (later renamed to AFIPS Conference Proceedings), pp 279 seq,Vol. 30, 1967.
“Security Considerations in a MultiProgrammed Computer System,” Bernard Peters;Proceedings of the 1967 Spring Joint Computer Conference (later renamed to AFIPS Conference Proceedings), pp 283 seq, vol 30, 1967.
“Practical Solutions to the Privacy Problem,” Willis H. Ware; RAND, Santa Monica, CA;P3544, April 1967. Also published in Proceedings of the 1967 Spring Joint Computer Conference (later renamed to AFIPS Conference Proceedings), pp 301 seq, Vol. 30, 1967.
“System Implications of Information Privacy,” Harold E. Peterson and Rein Turn;RAND, Santa Monica, CA; P3504, April 1967. Also published in Proceedings of the 1967 Spring Joint Computer Conference (later renamed to AFIPS Conference Proceedings), pp 305 seq, vol. 30, 1967.
2.“Security Controls for Computer Systems,” (Report of the Defense Science Board Task Force on Computer Security), RAND, R6091PR. Initially published in January 1970 as a classified document. Subsequently, declassified and republished October 1979.
3. http://rand.org/publications/R/R609.1/R609.1.html,“Security Controls for Computer Systems”; R609.1, RAND, 1979 http://rand.org/publications/R/R609.1/intro.html, Historical setting for R609.1
4.“Computer Security Technology Planning Study,” James P. Anderson; ESDTR7351, ESD/AFSC, Hanscom AFB, Bedford, MA; October 1972.
5. All of these documents are cited in the bibliography of this book. For images of these historical papers on a CDROM, see the “History of Computer Security Project, Early Papers Part 1,” Professor Matt Bishop; Department of Computer Science, University of California at Davis. http://seclab.cs.ucdavis.edu/projects/history
6.“DoD Trusted Computer System Evaluation Criteria,” DoD Computer Security Center, National Security Agency, Ft George G. Meade, Maryland; CSCSTD00183;Aug 15, 1983.
7. So named because the cover of each document in the series had a unique and distinctively colored cover page. For example, the“Red Book” is “Trusted Network Interpretation,” National Computer Security Center, National Security Agency, Ft. George G. Meade,Maryland; NCSCTG005, July 31, 1987. USGPO Stock number 008000004862.
8.“A Retrospective on the Criteria Movement,” Willis H. Ware; RAND, Santa Monica, CA; P7949, 1995. http://rand.org/pubs/papers/P7949/
9. This scheme is nowhere, to my knowledge, documented explicitly. However, its complexity can be inferred by a study of Appendices A and B of R609.1 (item \[2\] above).
10.“The Cyberposture of the National Information Infrastructure,” Willis H. Ware; RAND, Santa Monica, CA; MR976OSTP, 1998. Available online at: http://www.rand.org/publications/MR/MR976/mr976.html.
前 言
平板电脑、 智能手机、 电视机顶盒、 GPS导航设备、 运动监测器、 家庭安全站, 甚至联网的洗衣机和烘干机, 对于这些设备的数据从哪里来和要到哪里去, 用户很少能够看到并控制。与此同时, 泄露客户数据的零售商越来越多, 包括Home Depot、 Target、 T.J. Maxx、 P.F. Chang’s、 Sally Beauty。一方面人们希望享受连通性所带来的便利和效益, 另一方面却担心因为发生事故而产生严重危害。计算机安全将这两种情况结合起来, 成为一个推动智能产品发展的竞赛, 使那些忽略基本控制的设计者能预防或限制灾难。
从某种程度上来讲, 人们总认为简单产品出现安全性故障是令人意外的, 而复杂系统出现安全性问题却合情合理。但实情是, 这种状况并非必须如此。计算机专家们明白产生这些问题的原因, 同时知道怎么去应对。自1960年计算机安全成为一个特定的研究领域以来, 这几十年来产生了许多优秀的研究成果, 并且人们已经对威胁及其控制方法有了很好的理解。
使许多人望而却步的一个因素就是语言——复杂的术语, 如多形病毒、 高级持续性威胁、 分布式拒绝服务攻击、 推理和聚合、 多重身份验证、 密钥交换协议和入侵检测系统。其他术语听起来有趣但是难以理解, 如蠕虫、 僵尸网络、 木马、 中间人、 蜜罐、 沙盒和脚本小子。高等数学和微生物学语言容易混淆, 医学和法律中的拉丁术语更难区分, 关键看你是否认识它。事实上, 计算机安全相关的术语和概念清晰明了, 并且易于学习和使用。
脆弱点: 薄弱点
威胁: 实施脆弱点的条件
事故: 脆弱点+威胁
控制: 减少脆弱点或威胁
计算机安全的前提很简单: 脆弱点就是产品、 系统、 协议、 算法、 程序、 接口和设计中的薄弱点。威胁就是能够实施脆弱点的条件。当威胁利用脆弱点时, 事故就发生了, 继而造成危害。最后, 人们通过增加控制或对应措施来预防、 转移、 减少、 检测、 诊断及应对威胁。所有的计算机安全都是从简单框架构建起来的。本书介绍了计算机上可能发生的灾难事件及保护计算机安全的方法。
为什么要读这本书
计算对数据或计算机操作的隐私和完整性造成了严重威胁。而危险是生活的一部分: 过马路是危险的, 或许在某个地方比其他地方更危险, 但是你还是要过去。小时候, 你学会了在过马路前要停下来, 并左右看看。长大之后, 你学会了估计来往车辆的速度并决定是否有时间通过。某种情况下你形成了一种感觉: 来往的车辆是否会慢下来或避让。但有时候, 你必须判断突然横穿马路而不左右看看是不是最佳躲避危险的方法, 我们希望你永远不必实践这些。关键是所有这些都取决于你的知识和经验。我们希望本书能帮助你形成应对计算机安全风险的知识和经验。
从个人设备到复杂的商业系统, 计算机安全的共同点是: 首先从一些基本的术语、 原则和概念开始; 然后通过观察这些基础知识在许多情境下出现的情况来学习这一学科, 这些环境包括程序、 操作系统、 网络和云计算。你学习一些基本工具, 如身份认证、 访问控制和加密, 并理解它们在防御策略中如何应用。然后你会开始思考如何去做一名攻击者, 预测那些可能会被利用的薄弱点, 并改变防御手段来应对攻击。同时扮演攻击者和防守者使得计算机安全成为一种有创造性和挑战性的活动。
本书的使用者及用途
本书适用于想要学习计算机安全的读者; 如果你对本书已经有了较深的理解, 就很可能是这样的人。本书适用于三类人群: 高校学生、 计算机专业人员、 管理人员等各种使用计算机系统的用户。很多人都想了解怎样控制计算机所面临的安全威胁。但对于特定主题, 不同的人想要了解的程度有所不同: 有些人想要广泛浏览, 有些人则想要集中地研究某个特定主题, 如网络或程序开发。
本书能够提供大多数读者想要的广度和深度。本书按计算的一般领域进行组织, 因此有特殊兴趣的读者能够很容易地找到想要的信息。
本书的组织
本书的章节按照一定的顺序展开, 从一般的安全考虑到专门应用的特定需求, 最后到管理和法律方面的问题。因此, 本书覆盖了以下六个关键领域。
● 简介: 威胁、 脆弱点及控制。
● 安全工作者的“工具箱”: 身份识别和鉴别、 访问控制及加密。
● 计算机安全实践的应用领域: 程序、 用户—因特网的交互作用、 操作系统、 网络、 数据和数据库、 云计算。
● 交叉学科: 隐私、 管理、 法律和伦理学。
● 密码学的详细介绍。
● 新兴应用领域。
第1章如一场博览会: 奠定了本书的基础, 介绍术语和定义, 并给出一些实例以说明这些术语是如何使用的。第2章通过三个概念深入地学习安全领域, 即身份识别和鉴别、 访问控制、 加密技术, 它们构成了计算机安全中大多数的基本防御技术。我们用多种方式来说明如何运用这些技术, 并阐述它们的优势和弱点, 还介绍了一些相关的前沿技术。
然后我们从个人用户以外的角度, 更进一步去理解计算机领域。第3章从个人程序开始介绍, 即介绍那些个人编写及仅供个人使用的程序。这两种类型的程序都是会受到潜在攻击的主体, 我们需要检查攻击的性质及知道预防的方法。第4章继续进一步了解许多用户如今都非常熟悉的程序: 浏览器, 即因特网的大门。如今主流的攻击都是远程的, 即通过网络(通常是因特网), 攻击者在远处发起攻击。因此, 我们有理由学习因特网上的恶意代码。但这一章的焦点是如何实施远程攻击, 而不是阐述网络基础设施是怎样运作的; 我们把网络的概念推迟到第6章去讲解。第5章我们将学习操作系统, 它是用户和攻击者之间的一条强大的防御线。同时, 我们也会思考破坏操作系统能力的方法。第6章我们将回到网络, 但是这次着眼于体系结构和技术, 包括只发生在网络上的拒绝服务攻击。数据是第7章的主题, 这是用户收集并保护的内容, 我们还会了解数据库管理系统和大数据应用。最后, 第8章将探索云计算, 这是计算机领域近期才提出的技术, 但它也带来了其特有的漏洞和保护措施。
第9章到第11章的内容称为交叉学科: 首先, 第9章我们探讨隐私, 这是从程序到云这六大领域中最为接近与相似的主题; 然后, 第10章把我们带到计算机安全管理的部分, 探讨管理是如何计划和解决计算机安全问题的; 最后, 第11章探讨法律和伦理学如何帮助我们控制计算机的行为。
在第2章中我们介绍了密码学。但是密码学领域涉及信息安全的所有领域, 以及一些学术会议、 学术期刊和研究生课程的学习。另外, 除了密码学, 本书还需要覆盖许多重要主题。因此, 我们做出两个关键的决定。首先, 我们把密码学当作一种工具, 而不是要学习的领域。一个汽车修理工并不会去学习汽车的设计, 也不会去衡量空气动力学、 耗油量、 内部约定和防撞这些因素; 一个汽车修理工做的仅仅只是接收一辆车, 并寻找和修理发动机或其他机械零件上的故障。类似地, 我们希望读者能够利用密码学快速解决安全问题, 因此仅仅在第2章简略地介绍了密码学中普遍使用的知识。第二个关键决定是在后面的章节中稍微拓展一些密码学知识, 即第12章。但正如我们所指出的那样, 完整地介绍密码学通常需要写一整本书, 因此在第12章我们只给出了关于密码学技术细节上的概述, 以便感兴趣的读者可以在别处获取。
最后一章, 我们又回到有重大计算机安全隐患的四个部分, 这也是正在快速发展的主题, 该主题的计算机安全问题仍在不断发展。第13章介绍物联网, 即把许多设备连接到因特网, 这产生了许多可被利用的潜在安全威胁。经济学支配了许多安全决策, 因此安全专家需要理解经济学和安全如何关联。为了方便, 人们更愿意使用计算机来选举。在该过程中, 收集投票总数之类的简单流程由许多司法部门来做, 但是组织网上公平报名和投票选举的困难环节只能由少部分的示范性选举公司来完成。另外, 计算机在战争中的作用也越来越有威胁。此外, 少部分在计算机设备上的中等规模攻击表明了此类行为的可行性, 但是安全专家和普通市民需要了解(无论好坏)这种攻击类型的可能性。
如何阅读本书
阅读本书需要哪些背景知识呢?唯一的要求就是要了解编程和计算机系统。计算机专业的在校大学生和大学毕业生必然拥有这些背景知识, 专业设计人员和计算机系统的开发人员也一样。想了解更多关于程序工作方式的用户也可以从这本书中学到知识。另外, 有时我们也会在解决相关安全问题之前, 提供与操作系统或网络概念相关的必要背景知识。
本书可作为计算机安全的教材, 供一个或两个学期的教学使用。本书同样也可以作为计算机专业人员的参考书, 或者大强度培训教程的补充。目录和广泛的参考文献使本书可作为一本手册, 该手册对文献中关键文章的重要主题和知识点进行了解释。本书可在全世界范围内的课堂上使用; 教师可设置一个学期的课程, 集中讲解学生们特别感兴趣的主题, 或者与其他课程紧密相关的主题。
本书有什么新内容
这是本书的第五版, 第一版出版于1989年。从那时到现在, 尽管许多基本概念都没有改变, 但特定的威胁、 脆弱点及控制都发生了变化, 因为许多计算机安全所适用的基础技术都发生了变化。然而, 许多的基本概念仍然一样。
对熟悉早期版本的读者来说, 本书最明显的变化就是添加了一些新的章节。特别是, 用户和Web的交互、 云计算、 新兴问题这三章中所提到的主题。另外, 在第2章中把三种基本控制放在了一起。这些都是比较大的变化。另外, 每个章节也都有许多小的变化, 因为我们介绍了一些新型的攻击和详细叙述了那些已经变得更为重要的知识点。
有人可能会注意到本书的另外一个特点就是第三个合著人的加入。Jonathan Margulies成为本版书创作团队中的重要成员。他目前是Qmulos的安全实践(这是一种新推出的安全咨询业务)主管。他的加入带来了其在Sandia国家实验室和国家标准与技术研究所任职中的多年经验。他所专注的领域能够与我们已有的技术很好地互补, 从而扩展了本书。
致 谢
要在这里感谢所有对本书做出贡献的人已越来越困难了, 因为同事和朋友常常在他们不知不觉的情况下就贡献了他们的学识和视野。通过讨论一个要点或分享一个概念的解释, 同事和朋友让我们对自己所知的事物提出了质疑或重新思考。
至少要通过两个方面感谢我们的同行们。首先, 我们尽量引用了他们能对本书产生影响的工作成果。参考文献引用了有独特想法或概念的论文, 同时也包含了其他更广泛的工作成果, 它们对安全方案的提出具有独特的贡献。因此, 对于所有被引用的作者(其中有许多是我们的朋友和同事), 我们衷心地感谢他们对本书做出的积极贡献。
其次, 我们要感谢一些组织。我们在这些组织中接触到的人都十分具有创新性、 促进性和挑战性, 使我们从中学习到了很多东西。这些组织包括Trusted Information Systems, the Contel Technology Center, the Centre for Software Reliability of the City University of London, Arca Systems, Exodus Communications, The RAND Corporation, Sandia National Lab, Cable & Wireless,the National Institute of Standards and Technology, the Institute for Information Infrastructure Protection, Qmulos, and the Editorial Board of IEEE Security & Privacy。如果你在其中任意的一个组织工作, 就有很大的机会能在这本书中找到你的痕迹。另外, 我们很感激所有的对话、 讨论、 争论和领悟。
展开