图书介绍

构建安全的软件 避免产生软件安全问题的正确方法pdf电子书版本下载

构建安全的软件  避免产生软件安全问题的正确方法
  • (美)John Viega,(美)Gary McGraw著;钟向群,王鹏译 著
  • 出版社: 北京:清华大学出版社
  • ISBN:7302065152
  • 出版时间:2003
  • 标注页数:344页
  • 文件大小:20MB
  • 文件页数:363页
  • 主题词:软件可靠性-研究

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页 直链下载[便捷但速度慢]   [在线试读本书]   [在线获取解压码]

下载说明

构建安全的软件 避免产生软件安全问题的正确方法PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 软件安全性概论 1

1.1 都是软件惹的祸 1

1.2 安全性问题的处理 4

1.2.1 Bugtraq 6

1.2.2 GERT建议 6

1.2.3 RISKS Digest 6

1.3 影响软件安全性的技术趋势 7

1.4 ilities 10

1.4.1 安全性 11

1.4.2 可靠性 11

1.5 穿透-补丁不是好办法 12

1.6 艺术与工程 13

1.7 安全目标 14

1.7.1 预防 14

1.7.2 跟踪与审计 15

1.7.3 监控 15

1.7.4 保密性和机密性 15

1.7.5 多级安全性 16

1.7.6 匿名性 16

1.7.7 认证 17

1.7.8 完整性 18

1.8 普通软件的安全性陷阱 18

1.9 软件项目的目标 20

1.10 结束语 20

第2章 软件安全性风险管理 22

2.1 软件安全性风险管理概览 22

2.2 安全人员的角色 24

2.3 生命周期中的软件安全人员 25

2.3.1 需求获取 25

2.3.2 风险评估 26

2.3.3 安全性设计 27

2.3.4 实现 28

2.3.5 安全性测试 28

2.4 现实的权衡 29

2.5 思考安全性 30

2.6 软件风险管理的实践 30

2.6.1 当开发误入歧途时 30

2.6.2 当安全性分析误入歧途时 31

2.7 通用准则 32

2.8 结束语 34

第3章 技术的选择 35

3.1 语言的选择 35

3.2 分布式对象平台的选择 38

3.2.1 CORBA 38

3.2.2 DCOM 40

3.2.3 EJB和RMI 41

3.3 操作系统的选择 42

3.4 认证技术 43

3.4.1 基于主机的认证 44

3.4.2 物理权标 45

3.4.3 生物认证 45

3.4.4 密码认证 47

3.4.5 深度防御与认证 47

3.5 结束语 47

第4章 开放源代码与封闭源代码 48

4.1 隐晦的安全性 48

4.1.1 逆向工程 50

4.1.2 代码模糊 51

4.1.3 紧包软件的安全性 52

4.1.4 模糊安全性不是万能的 52

4.2 开放源代码 52

4.3 多眼现象 53

4.3.1 脆弱性检测是困难的 55

4.3.2 其他担心 56

4.4 关于发布密码算法 56

4.5 另外两个开放源代码的谬论 57

4.5.1 Microsoft谬论 57

4.5.2 Java谬论 57

4.6 GNU Mailman的安全性问题 58

4.7 特洛伊木马 59

4.8 开放源代码还是封闭源代码 60

4.9 另一个来自缓冲区溢出的安全性教训 60

4.10 忠告 61

4.11 结束语 62

第5章 软件安全性指导原则 63

5.1 原则1:加固最脆弱的链接 64

5.2 原则2:实行深度防护 66

5.3 原则3:失败安全 67

5.4 原则4:坚持最小优先权原则 69

5.5 原则5:分割 70

5.6 原则6:简单化 71

5.7 原则7:提高保密性 74

5.8 原则8:记住隐藏秘密是很难的 75

5.9 原则9:不要轻信 76

5.10 原则10:利用社会资源 77

5.11 结束语 78

第6章 软件稽核 79

6.1 体系结构的安全性分析 81

6.1.1 攻击树 82

6.1.2 报告分析结果 85

6.2 实现的安全性分析 86

6.2.1 源代码的稽核 86

6.2.2 源代码级的安全性稽核工具 87

6.2.3 在分析中使用RATS 88

6.2.4 软件安全性扫描的效果 90

6.3 结束语 91

第7章 缓冲区溢出 92

7.1 什么是缓冲区溢出 94

7.2 为什么缓冲区溢出是安全性问题 95

7.3 防止缓冲区溢出 97

7.4 主要的陷阱 98

7.5 内部缓冲区溢出 102

7.6 更多的输入溢出 102

7.7 其他风险 103

7.8 测试工具 104

7.9 摧毁堆和堆栈 106

7.10 堆溢出 107

7.11 堆栈溢出 111

7.11.1 破译堆栈 111

7.11.2 趋于无限 117

7.12 攻击代码 126

7.12.1 UNIX漏洞检测代码 127

7.12.2 在Windows中的情况 133

7.13 结束语 133

第8章 访问控制 134

8.1 UNLX的访问控制模式 134

8.1.1 UMLX是怎样控制权限的 135

8.1.2 修改文件属性 136

8.1.3 修改文件的归属 138

8.1.4 umask命令 139

8.1.5 程序接口 139

8.1.6 Setuid编程 141

8.2 Windows NT中的访问控制 145

8.3 分割 147

8.4 细化的特权 149

8.5 结束语 150

第9章 竞争状态 151

9.1 什么是竞争状态 151

9.2 检查时间与使用时间 154

9.2.1 攻破Passwd 156

9.2.2 避免TOCTOU问题 158

9.3 安全访问文件 160

9.4 临时文件 163

9.5 锁定文件 164

9.6 其他竞争状态 165

9.7 结束语 166

第10章 随机与惟定 167

10.1 伪随机数发生器 167

10.1.1 PRNG示例 169

10.1.2 Blum-Blum-Shub PRNG 170

10.1.3 Tiny PRNG 171

10.1.4 攻击PRNG 171

10.1.5 在在线游戏中作弊 172

10.1.6 PRNG的统计测试 173

10.2 熵的收集和估计 174

10.2.1 硬件方案 174

10.2.2 软件方案 176

10.2.3 糟糕的熵收集示例 182

10.3 处理熵 183

10.4 实际应用的随机资源 185

10.4.1 Tiny 186

10.4.2 Windows中的随机数 186

10.4.3 Linux中的随机数 187

10.4.4 Java中的随机数 189

10.5 结束语 190

第11章 密码学的应用 192

11.1 一般建议 192

11.1.1 软件开发人员并不是密码学专家 192

11.1.2 数据的完整性 194

11.1.3 密码出口的有关法律 194

11.2 常用的密码库 195

11.2.1 Cryptilb 195

11.2.2 OpenSSL 196

11.2.3 Crypto++ 197

11.2.4 BSAFE 198

11.2.5 Cryptix 199

11.3 密码术编程 200

11.3.1 加密 200

11.3.2 散列运算 205

11.3.3 公钥密码加密 206

11.3.4 多线程 210

11.3.5 加密cookie 210

11.4 密码散列算法的更多应用 212

11.5 SSL和TLS 213

11.6 使用Stunnel 215

11.7 一次一密 216

11.8 结束语 219

第12章 信任管理和输入的有效性 220

12.1 关于信任 220

12.2 不恰当信任的示例 222

12.2.1 信任是可传递的 222

12.2.2 防御恶意的访问者 225

12.2.3 安全调用另一个程序 228

12.2.4 网页上的危险 231

12.2.5 客户端的安全 233

12.2.6 Perl中的问题 235

12.2.7 格式串攻击 236

12.3 自动探测输入问题 237

12.4 结束语 240

第13章 口令认证 241

13.1 口令的存储 241

13.2 向口令数据库添加用户 244

13.3 口令认证 253

13.4 选择口令 258

13.4.1 更多的建议 259

13.4.2 掷骰子 259

13.4.3 口令短语 264

13.4.4 应用程序选择的口令 264

13.5 一次性口令 266

13.6 结束语 278

第14章 数据库安全性 279

14.1 基础知识 279

14.2 访问控制 280

14.3 在访问控制中使用视图 282

14.4 保护域 284

14.5 抵抗统计攻击 287

14.6 结束语 290

第15章 客户端安全性 292

15.1 版权保护机制 294

15.1.1 许可证文件 301

15.1.2 挫败普通盗版者 302

15.1.3 许可证的其他特性 303

15.1.4 其他版权保护方法 304

15.1.5 对不可信客户机的身份认证 305

15.2 防篡改技术 306

15.2.1 反调试程序方法 306

15.2.2 检查和 307

15.2.3 对滥用的响应 308

15.2.4 引诱 309

15.3 代码迷惑技术 310

15.3.1 基本迷惑技术 310

15.3.2 对部分程序进行加密 311

15.4 结束语 313

第16章 通过防火墙 314

16.1 基本策略 314

16.2 客户机代理 316

16.3 服务器代理 317

16.4 SOCKS 318

16.5 点对点 319

16.6 结束语 321

附录A 密码学基础 322

A.1 密码学的最终目标 322

A.2 对密码术的攻击 324

A.3 密码术的类型 325

A.4 对称密码术 325

A.4.1 对称算法的类型 326

A.4.2 对称算法的安全性 327

A.5 公钥密码术 329

A.6 密码散列算法 333

A.6.1 对散列算法的其他攻击 336

A.6.2 好的散列算法 337

A.7 数字签名 337

A.8 结束语 338

参考文献 339

精品推荐