??首本嵌入式系统安全领域的书籍,填补了国内此领域的研究空白。
从软件架构、加密、数据保护以及应用等方向进行全面而深入的剖析。
本书作者系NSA加密认证系统首席设计师,拥有丰富的嵌入式安全经验。??
对安全的原则、问题和技术的一种深刻理解
高效地开发安全、可靠的嵌入式软件的成熟技术
针对系统架构、操作系统和超级管理程序、网络、存储和加密问题的研究,这些是设计安全嵌入式系统所必须考虑的问题
通篇使用了实用的建议和大量的案例分析
作者拥有丰富的嵌入式安全经验,是世界上通过通用标准EAL 6+安全认证的软件产品的最初开发人员之一,而且是NSA加密认证系统的首席设计师。
对于嵌入式系统和安全专业人员,无论是新手还是资深人士,本书都是必不可少的参考书籍。
《嵌入式系统安全:安全与可信软件开发实战方法》提供了一个关于安全法则、安全薄弱环节以及相关可用技术的概述。通过对真实的系统漏洞案例和出于安全需要的开发实例的讲解,给出了抵消安全风险的有效技术及建议。领域涉及数据保护协议、新兴的嵌入式系统、网络、密码系统、系统体系结构、操作系统和存储技术。本书提供给大家使嵌入式系统更可靠、更安全、更有保障的建议;本书展示了对安全法则、安全担忧及相关技术的深刻理解;本书介绍了高效开发安全可靠嵌入式软件的成熟技术;当设计安全可靠的嵌入式系统时,系统架构、操作系统、管理程序、网络、存储以及加密,这些都必须被作为研究课题。这是嵌入式系统和安全从业人员必读的一本书,无论是新手还是专家。
推荐序
译者序
序
前言
第1章嵌入式系统安全绪论 1
¨什么是安全 l
1.2什么是嵌入式系统 1
1.3嵌入式安全趋势 3
1.3.1嵌入式系统的复杂度 4
1.3.2网络连接 9
1.3.3关键性基础架构对嵌入式
系统的依赖 一11
1.3.4复杂的攻击者 12
1.3.5处理器整合 13
1.4安全策略 14
1.4.1绝对安全 14
1.4.2保密性、完整性和实用性 15
1.4.3隔离 15
1.4.4信息流控制 16
1.4.5物理安全策略 16
1.4.6特定应用软件的安全策略 16
1.5安全威胁 17
1.6总结 18
参考文献 18
第2章 系统软件的安全考量 19
2.1操作系统角色 19
2.2多重独立安全等级 19
2.2.1信息流20
2.2.2数据隔离 20
2.2.3损害控制 20
2.2.4周期性处理 20
2.2.5 -直激活 21
2.2.6防篡改 21
2.2.7可评估 21
2.3微内核与单内核 23
2.4嵌入式操作系统核心安全要求 25
2.4.1内存保护 25
2.4.2虚拟内存 25
2.4.3故障恢复 27
2.4.4资源保护 27
2.4.5虚拟设备驱动 30
2.4.6确定性影响 30
2.4.7安全调度 33
2.5访问控制与访问能力 34
2.5.1案例分析:安全Web
浏览器 35
2.5.2访问控制的粒度与简化 36
2.5.3 白名单与黑名单 38
2.5.4职责混淆问题 39
2.5.5能力与访问控制表 39
2.5.6能力约束与收回 43
2.5.7使用能力系统的安全设计 44
2.6系统管理程序与系统虚拟化 46
2.6.1系统虚拟化介绍 48
2.6.2系统虚拟化应用 48
2.6.3环境沙箱 49
2.6.4虚拟安全设施 49
2.6.5系统管理程序架构 49
2.6.6半虚拟化 52
2.6.7充分利用硬件辅助实现
虚拟化 52
2.6.8系统管理程序的安全性 54
2.7 110虚拟化 56
2.7.1共享I/O的需求 56
2.7.2仿真技术 56
2.7.3直通技术 56
2.7.4共享IOMMU 58
2.7.5 IOMMU与虚拟设备驱动 58
2.7.6微内核中的安全I/O虚拟化 59
2.8远程管理 60
2.9确保TCB的完整性 62
2.9.1可信硬件和供应链 62
2.9.2安全引导 62
2.9.3静态可信根与动态可信根 63
2.9.4远程认证 64
参考文献 65
第3章安全嵌入式软件开发 67
3.1 PHASE的介绍 67
3.2最少实现 68
3.3组件架构 68
3.3.1运行时组件化 69
3.3.2进程与线程 70
3.4最小化权限 71
3.5安全开发过程 71
3.5.1变更管理 -72
3.5.2同行评审 72
3.5.3开发工具的安全性 74
3.5.4安全编码 76
3.5.5软件测试与验证 107
3.5.6开发过程效率 -112
3.6独立专家验证 113
3.6.1通用标准 114
3.6.2案例分析:操作系统保护
准则 116
3.7案例分析:HAWS l19
3.7.1最少实现 120
3.7.2组件架构 121
3.7.3最小化权限 122
3.7.4安全开发过程 122
3.7.5独立专家验证 122
3.8模型驱动设计 122
3.8.1 MDD概述 123
3.8.2可执行模型 126
3.8.3建模语言 128
3.8.4 MDD平台类型 132
3.8.5案例分析:数字病理
扫描仪 132
3.8.6 MDD平台选择 138
3.8.7在安全关键系统中
使用MDD 145
参考文献 146
第4章嵌入式加密 150
4.1简介 150
4.2美国联邦政府加密指南 151
4.3-次性密码本 152
4.4加密模式 160
4.4.1输出反馈 160
4.4.2加密反馈 160
4.4.3带有CFB保护的0FB 161
4.4.4通信流安全 162
4.4.5计数器模式 162
4.5块加密 163
4.6认证加密 165
4.6.1 CCM 166
4.6.2伽罗瓦计数器模式 166
4.7公钥加密 166
4.7.1 RSA 168
4.7.2等效密钥强度 169
4.7.3陷门构建 l69
4.8密钥协商 170
4.9公钥认证 172
4.10椭圆曲线加密 174
4.10.1椭圆盐线数字签名 175
4.10.2椭圆曲线匿名密钥协商 175
4.11加密散列 175
4.11.1安全散列算法 176
4.11.2 MM0 176
4.12消息认证码 177
4.13随机数生成 ‘177
4.13.1真随机数生成 178
4.13.2伪随机数生成 181
4.14嵌入式系统的密钥管理 183
4.14.1密钥管理——通用模型 183
4.14.2密钥管理案例分析 l88
4.15加密认证 ‘l97
4.15.1 FIPS 140-2认证 ‘197
4.15.2 NSA认证199
参考文献 202
第5章嵌入式系统数据保护
协议 205
5.1简介 205
5.2动态数据协议 205
5.2.1广义模式 205
5.2.2选择安全的网络层 209
5.2.3以太网安全协议 210
5.2.4网络层安全协议与安全
5.2.5套接层协议 ‘213
5.2.6网络层安全协议 一214
5.2.7安全套接层协议/传输层
安全协议 ‘219
嵌入式虚拟专用网络
客户端 222
5.2.8数据包安全传输协议 一223
5.2.9安全外壳协议 一224
5 .2.10 自定义网络安全协议 ‘225
5.2.11 网络安全协议加密实现 ‘227
5 .2.12安全多媒体协议 227
5.2.13广播安全 231
5.3静态数据协议 一 一236
5.3.1安全存储层的选择 一237
5.3.2对称加密算法的选择 一238
5.3.3存储加密密钥的管理 一241
5.3.4对数据加密解决方案的
高端威胁 243
参考文献 245
第6章新兴应用技术.249
6.1嵌入式网络交易 249
?6.1.1剖析网络交易 一250
6.1.2不安全状态 250
6.1.3网络交易的威胁 251
6.1.4提高网络交易安全的
前沿尝试 253
6.1.5可信赖嵌入式交易体系
结构 258
6.2汽车安全 260
6.3安卓系统安全 263
6.3.1安卓系统安全回顾 263
6.3.2安卓设备Rooting 264
6.3.3手机数据保护:深度防护的
一个实例研究 一265
6.3.4安卓沙箱处理方法 一267
6.4下一代软件定义无线电 271
6.4.1红黑分离 271
6.4.2软件定义无线电体系结构 271
6.4.3进入Li肌x 272
6.4.4多域无线电 273
参考文献 274
★本书对于理解安全的嵌入式系统有着重要的帮助。两位作者是各自领域的专家。随着物联网成为现实,本书可以帮助业务和技术管理人员以及工程师理解“从头构建安全”的重要性。本书包含各种案例和要点,有助于带给市场更加安全、稳固的系统。
—— Joerg Borchert博士
北美英飞凌科技公司芯片卡与安全副总裁,可信计算组织总裁兼主席
★本书提供了关于风险和攻击的实际示例。最重要的是,该书为构建安全的嵌入式系统给出了一种清晰的认识。
—— Adriel Desautels
美国Netragard公司总裁兼首席技术执行官
★嵌入式系统的安全比以往任何时候都要重要。网络的快速增长是其中一个原因。然而,很多嵌入式系统开发人员缺乏实现他们设计的系统的安全知识。David Kleidermacher是该领域中名满天下的专家,在书中与其他工程师分享了他的知识和长期的经验。这本非常重要的书恰逢其时。
—— Matthias Sturm博士 莱比锡应用科学大学教授,嵌入式世界会议指导委员会主席