当前位置:首页 > 工业技术
Linux安全体系分析与编程
Linux安全体系分析与编程

Linux安全体系分析与编程PDF电子书下载

工业技术

  • 电子书积分:21 积分如何计算积分?
  • 作 者:倪继利著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2007
  • ISBN:7121050196
  • 页数:769 页
图书介绍:本书选择经典的开放源代码,全面系统地分析了Linux安全机制。本书共有17章,前10章着重介绍了Linux操作系统的安全机制及实现方法,阐述了公钥设施的基本概念和使用openSSL库接口进行编程的方法。后7章介绍了可信平台模块框架规范和可信网络连接框架规范,并分析了可信平台模块的驱动程序的实现机制。另外,作者还结合实际代码归纳了Linux系统编程的编程模式,介绍了Makefile生成方法和ELF文件执行过程。
《Linux安全体系分析与编程》目录

第1章 Linux安全框架 1

1.1 Linux安全概述 1

1.1.1 安全评价标准 1

1.1.2 操作系统安全特性 7

1.1.3 网络安全的OSI安全模型 8

1.1.4 数据库安全 9

1.2 Linux安全框架 9

1.3 Linux常用安全技术 11

第2章 日志系统与审计系统 14

2.1 Linux日志系统 14

2.1.1 Linux日志系统概述 14

2.1.2 syslog系统构架 15

2.1.3 printk及控制台的日志级别 17

2.1.4 printk打印消息机制 18

2.1.5 sys_syslog系统调用 22

2.2 审计系统 25

2.2.1 审计系统构架 25

2.2.2 用户空间审计系统应用程序 25

2.2.3 内核审计缓冲区管理机制 30

2.2.4 审计事件分类 31

2.2.5 内核审计系统的接口函数 31

2.2.6 内核审计系统初始化 35

2.2.7 与用户空间审计系统的netlink通信机制 36

2.2.8 利用规则链表进行审计事件过滤 39

2.3 进程的审计 43

2.3.1 进程审计上下文 43

2.3.2 系统调用记录审计信息的过程 45

2.3.3 进程辅助审计数据 49

2.4 文件系统变化监视机制 50

2.4.1 文件系统改变发起事件的机制 50

2.4.2 用于文件系统监视的数据结构 52

2.4.3 inotify机制的事件处理 54

2.4.4 文件系统变化的审计 54

2.4.5 用户空间inotify机制 58

第3章 SELinux访问控制机制 65

3.1 SELinux概述 65

3.1.1 Linux与SELinux在安全管理上的区别 66

3.1.2 Flask安全框架概述 66

3.1.3 安全模块(LSM)框架 68

3.1.4 内核SELinux的组织结构 69

3.2 SELinux策略配置语言 70

3.2.1 基本概念 71

3.2.2 TE规则的描述 72

3.2.3 RBAC规则的描述 78

3.2.4 限制规则 80

3.2.5 标识安全上下文 80

3.2.6 boolean及条件描述语句 82

3.3 SELinux策略配置 83

3.3.1 策略文件的配置 83

3.3.2 系统启动时的策略 83

3.3.3 在/proc和/selinux文件系统中的策略 84

3.3.4 SELinux设置分析工具 85

3.3.5 策略的编译与装载 91

3.4 参考策略 92

3.4.1 安全策略的概念 92

3.4.2 target二进制策略目录与文件说明 93

3.4.3 参考策略源代码分析 94

3.4.4 如何创建一个策略模块 97

3.5 用户空间客体管理器 99

3.5.1 客体管理器机制概述 99

3.5.2 使用客体管理器的样例 100

3.5.3 客体管理器接口说明 103

3.5.4 libselinux库初始化 107

3.5.5 函数avc_init分析 109

3.5.6 netlink机制获取内核SELinux实时消息 111

3.5.7 函数avc_has_perm分析 116

3.6 内核策略库及库管理 119

3.6.1 策略库结构policydb 119

3.6.2 SID表sidtab 120

3.6.3 安全级别 121

3.6.4 符号表symtab 122

3.6.5 向量访问规则表avtab 123

3.6.6 操作类别及限制规则的结构 124

3.6.7 角色结构role_datum 126

3.6.8 用户结构user_datum 127

3.6.9 角色转移结构role_tran 127

3.6.10 条件规则结构 127

3.7 文件系统selinuxfs 128

3.7.1 创建selinuxfs文件系统 129

3.7.2 load文件操作与内核策略库装载 132

3.8 SELinux安全决策过程 135

3.8.1 SELinux内核模块初始化 136

3.8.2 任务的安全管理 137

3.8.3 AVC分析 140

3.8.4 计算访问向量决策 144

3.9 安全审计的管理 147

第4章 文件权限管理 149

4.1 UNIX文件权限管理 149

4.1.1 文件的权限位分配 149

4.1.2 改变权限的命令 150

4.1.3 suid/guid 152

4.1.4 umask 152

4.2 Linux能力机制 153

4.2.1 能力的定义 153

4.2.2 能力机制操作函数集 154

4.2.3 应用程序运行设置信任值 155

4.3 ACL权限管理 159

4.3.1 ACL权限管理命令 159

4.3.2 命令getfacl和setfacl机制分析 160

4.3.3 文件系统检查ACL权限 162

第5章 PAM用户认证机制 164

5.1 PAM机制 164

5.1.1 PAM框架 164

5.1.2 PAM配置文件 165

5.1.3 服务模块说明 167

5.2 编写普通PAM机制应用程序 169

5.2.1 PAM API与SPI 169

5.2.2 PAM上下文结构 170

5.2.3 服务应用程序样例 172

5.2.4 PAM机制的实现分析 178

第6章 ClamAV杀毒应用程序 181

6.1 ClamAV概述 181

6.2 ClamAV编译安装及使用 182

6.2.1 clamd后台与clamdscan客户端 184

6.2.2 clamav-milter邮件扫描器 184

6.2.3 建立病毒库自动更新 185

6.2.4 libclamav库API 185

6.3 clamd服务器 188

6.3.1 应用程序命令参数分析 189

6.3.2 clamd服务器入口函数clamd 192

6.3.3 设置系统限制及确定资源使用量 194

6.3.4 配置文件解析 195

6.3.5 log文件操作 198

6.3.6 使用syslog机制输出调试信息 201

6.3.7 用户组及文件权限设置 202

6.3.8 进程后台化 204

6.3.9 利用socket在进程间通信 205

6.3.10 子进程执行系统命令及环境变量设置 216

6.3.11 线程 218

6.3.12 线程池 223

6.3.13 信号处理 226

6.3.14 OnAccess扫描病毒线程clamukoth 229

6.3.15 服务器进程自动重新启动保护 231

6.4 libclamav库API 232

6.4.1 病毒库的装载 232

6.4.2 病毒扫描 235

6.5 客户端应用程序 235

6.5.1 clamdscan客户端 236

6.5.2 qtclamavclient客户端应用程序 242

6.6 病毒库升级程序freshclam 246

6.6.1 病毒库定时更新 246

6.6.2 域名信息查询 248

6.6.3 HTTP协议下载病毒库文件 251

第7章 On_access文件访问拦截 257

7.1 访问扫描器概述 257

7.2 Dazuko文件访问控制及库接口分析 258

7.2.1 dazukoio库接口应用 259

7.2.2 与内核模块通信方法 262

7.2.3 Dazuko库与内核通信的数据格式 263

7.2.4 Dazuko库函数dazukoGetAccess分析 264

7.2.5 应用程序操作字符设备 267

7.3 Dazuko字符设备内核模块 269

7.3.1 注册字符设备及扫描拦截模块 269

7.3.2 后台应用程序的请求分发 272

7.3.3 Dazuko内核模块注册扫描后台 275

7.4 Dazuko拦截文件机制 279

7.4.1 Dazuko内核线程同步机制 279

7.4.2 文件访问进程与扫描后台进程的通信 282

7.4.3 扫描后台获得扫描文件和返回许可的内核过程 283

7.4.4 Dazuko拦截文件源代码分析 287

7.5 文件访问拦截方法 290

7.5.1 Redirfs文件系统概述 291

7.5.2 RedirFS应用样例 292

7.5.3 root对象和filter对象管理 293

7.5.4 RedirFS框架与filter接口使用的数据结构 296

7.5.5 root对象与filter对象绑定 299

7.5.6 RedirFS模块的初始化 300

7.5.7 转发操作函数集控制文件访问 301

7.5.8 RedirFS与filter接口的函数分析 302

7.5.9 Dazuko内核模块注册RedirFS 308

第8章 防火墙 312

8.1 防火墙概述 312

8.1.1 网络攻击 312

8.1.2 防火墙配置 313

8.1.3 防火墙的规则 315

8.2 iptables工具介绍 316

8.2.1 iptables语法及组成 316

8.2.2 iptables工具簇 318

8.3 NetFilter框架 319

8.3.1 Netfilter框架的hook及规则表 319

8.3.2 规则表的相关结构 320

8.3.3 hook控制点接入方法 324

8.3.4 包排队及包再注入 327

8.3.5 hook点操作函数集及使用方法 329

8.3.6 setsockopt和getsockopt扩展系统调用 332

8.3.7 匹配、目标和nf_sockopt_ops的注册使用 333

8.4 filter模块 337

8.4.1 filter规则表 338

8.4.2 注册规则表filter 339

8.4.3 hook函数应用规则表规则 341

8.4.4 扩展匹配state 344

8.4.5 扩展目标ulog 345

8.5 连接跟踪 350

8.5.1 连接跟踪机制 350

8.5.2 连接跟踪的数据结构 353

8.5.3 连接跟踪源代码分析 357

8.6 iptables工具源代码分析 367

8.6.1 iptables的数据结构 367

8.6.2 iptables命令选项解析 369

8.6.3 iptables工具与Netfilter框架的交互 375

8.6.4 ULOG扩展目标库 377

第9章 PKI公钥设施 380

9.1 PKI概述 380

9.1.1 PKI基本组成 380

9.1.2 PKI标准简介 380

9.1.3 PKCS的加密算法 382

9.2 证书 384

9.2.1 证书的应用 384

9.2.2 PEM编码 385

9.2.3 ASN.1语法和DER编码 386

9.2.4 X.509 v3证书内容 387

9.3 CA系统 390

9.3.1 CA认证与CA系统证书链 391

9.3.2 OCSP在线证书状态协议 392

9.4 因特网安全协议 392

9.4.1 SSL协议 393

9.4.2 TLS协议 395

9.4.3 IPSec协议 395

第10章 OpenSSL 398

10.1 OpenSSL概述 398

10.2 OpenSSL应用程序工具与应用 399

10.2.1 OpenSSL应用程序工具说明 399

10.2.2 OpenSSL工具使用方法 400

10.3 程序用openSSL库建立安全连接的方法 403

10.3.1 使用SSL层接口函数安全通信 404

10.3.2 使用BIO接口函数安全通信 405

10.4 ASN.1编码与解码接口 407

10.4.1 ASN.1对象及方法结构 407

10.4.2 编码转换函数i2d和d2i 410

10.4.3 PKI对象ASN.1编码/解码转换函数 410

10.5 PKCS#14伪随机数产生器 411

10.6 ENGINE机制 413

10.6.1 结构ENGINE及其操作函数 413

10.6.2 ENGINE链表及操作函数 414

10.6.3 ENGINE_TABLE表及应用 414

10.6.4 ENGINE机制的使用方法 415

10.7 EVP密码算法接口 416

10.7.1 EVP_Encrypt系列对称加密算法 416

10.7.2 EVP_Seal系列信封密封函数 420

10.7.3 EVP_Open系列信封开启函数 420

10.7.4 EVP_MD系列信息摘要算法 421

10.7.5 EVP_Sign系列签名函数 423

10.7.6 EVP_Verify系列签名验证函数 423

10.7.7 EVP_PKEY系列公钥算法接口 424

10.7.8 EVP_Encode系列Base64编/解码算法 425

10.7.9 PKCS#5基于口令加密的EVP接口函数 425

10.8 非对称密码算法 426

10.8.1 PKCS标准非对称密码算法概述 426

10.8.2 大数运算 426

10.8.3 PKCS#8私钥信息语法 429

10.8.4 PKCS#1 RSA密码体系 430

10.9 PKCS#6 X509扩展证书 432

10.9.1 X509扩展证书的数据结构 432

10.9.2 X509证书操作函数前缀说明 433

10.9.3 PKCS#10证书请求结构 433

10.9.4 PKCS#10证书请求操作函数 434

10.10 PKCS#7和PKCS#12信息描述接口 435

10.10.1 PKCS#7和PKCS#12信息结构 435

10.10.2 PKCS#12接口函数 438

10.10.3 PKCS#7接口函数 438

10.10.4 PKCS#7与S/MIME格式转换 439

10.11 PKI对象PEM编码 439

10.12 SSL 439

10.12.1 SSL相关数据结构 440

10.12.2 SSL API函数说明 443

10.13 BIO抽象接口的原理 448

10.13.1 BIO相关数据结构 448

10.13.2 BIO接口类型与封装方法 449

10.13.3 BIO源文件功能说明 450

10.13.4 BIO通用操作及实现 450

10.14 BIO类型说明 452

10.14.1 file类型BIO 452

10.14.2 fd类型BIO 454

10.14.3 socket类型BIO 454

10.14.4 mem类型BIO 455

10.14.5 BIO对类型BIO 456

10.14.6 connect类型BIO 458

10.14.7 accept类型BIO 459

10.14.8 NULL过滤型BIO 461

10.14.9 buffer类型BIO 461

10.14.10 Base64类型BIO 462

10.14.11 cipher类型BIO 463

10.14.12 md类型BIO 464

10.14.13 SSL类型BIO 465

第11章 可信计算与内核加密接口 470

11.1 TCG概述 470

11.1.1 TCG规范文档结构 470

11.1.2 TCG规范簇介绍 471

11.1.3 TCG可信平台功能概述 474

11.2 可信平台组成与结构 475

11.2.1 可信根 475

11.2.2 可信组成块 476

11.2.3 信任边界和传递信任 476

11.2.4 TCG密钥类型 476

11.2.5 TCG证书类型 477

11.2.6 TPM的组件构成 480

11.2.7 存储可信根框架 482

11.2.8 完整性测量 483

11.2.9 完整性报告 483

11.2.10 TPM作为通信的安全端点 485

11.3 TCG执行模型 485

11.3.1 TPM操作状态 485

11.3.2 平台操作 487

11.4 与TPM接口和软件服务 488

11.4.1 TCG软件接口和服务 488

11.4.2 应用程序交互样例 489

11.4.3 TPM命令确认 491

11.5 TCG编程接口 495

11.5.1 命名规范 495

11.5.2 命令次序和串行化 496

11.5.3 TCG命令和接口说明 497

11.6 TCG可信网络连接框架 502

11.6.1 TNC框架端点完整性及其作用 502

11.6.2 TNC框架组成结构 503

11.6.3 TNC框架接口间的基本消息流 506

11.6.4 含有TPM的TNC框架特征 507

11.6.5 含有TPM的TNC框架结构 508

11.6.6 含有TPM的TNC框架平台可信服务 510

11.6.7 TNC和TCG完整性管理模型 511

11.7 内核加密接口 512

11.7.1 算法结构 512

11.7.2 算法操作函数集结构 513

11.7.3 算法库管理 514

11.7.4 硬件加密算法模块样例 514

11.8 TPM驱动程序 517

11.8.1 TPM芯片设备结构 517

11.8.2 TPM设备链表管理 518

11.8.3 从TPM芯片读写数据 519

11.8.4 tpm_atmel安全芯片驱动程序 521

第12章 内核密钥环 524

12.1 密钥和密钥环结构 524

12.1.1 密钥结构key 524

12.1.2 密钥操作函数集结构key_type 525

12.2 密钥数据操作 526

12.2.1 密钥数据操作概述 526

12.2.2 密钥环的数据操作 526

12.2.3 用户类型密钥的数据操作 528

12.3 密钥和密钥环管理 529

12.3.1 密钥内核模块初始化 529

12.3.2 密钥操作函数集链表管理 531

12.3.3 密钥树的管理 531

12.3.4 密钥用户树的管理 532

12.3.5 通用密钥的管理 532

12.3.6 进程的密钥环管理 533

12.3.7 procfs文件系统显示key信息 535

12.4 请求key服务 539

12.4.1 请求key服务的过程 539

12.4.2 系统调用sys_add_key分析 540

12.4.3 系统调用sys_request_key分析 542

12.4.4 应用程序request-key 547

12.4.5 系统调用sys_keyctl 548

第13章 加密文件系统 551

13.1 eCryptfs文件格式及应用 551

13.1.1 eCryptfs文件系统概述 551

13.1.2 eCryptfs文件系统测试 551

13.1.3 eCryptfs的术语 552

13.1.4 eCryptfs文件格式 553

13.2 eCryptfs文件系统框架 558

13.2.1 eCryptfs文件系统组织结构 558

13.2.2 密钥管理流程 560

13.2.3 创建新文件流程 561

13.3 eCryptfs文件系统数据结构 564

13.3.1 eCryptfs文件系统的私有数据结构 564

13.3.2 文件系统加密统计信息结构 565

13.3.3 加密统计信息结构 566

13.4 内核eCrypts文件系统加密操作 567

13.4.1 eCrypts文件系统对象的函数操作集 567

13.4.2 挂接文件系统 567

13.4.3 创建新文件 571

13.4.4 打开文件 574

13.4.5 文件读页操作 580

13.4.6 文件写页操作 582

13.5 eCryptfs文件系统后台进程 583

13.5.1 后台进程机制 583

13.5.2 消息包处理 585

13.5.3 PKI链表及其操作 586

13.5.4 使用openSSL的PKI库 588

第14章 数字版权管理 591

14.1 OMA DRM功能框架 591

14.1.1 OMA DRM功能框架概述 591

14.1.2 OMA DRM基本下载模型 593

14.1.3 ROAP协议 594

14.1.4 证书状态检查与设备时间同步 596

14.1.5 OMA DRM域 598

14.1.6 DCF文件格式 598

14.2 OpenIPMP概述 600

14.2.1 OpenIPMP软件包介绍 600

14.2.2 DRM插件的编译与安装 601

14.2.3 DRM服务器的安装 602

14.2.4 DRM实现框架 603

14.3 OpenIPMP采用的C++典型语法 605

14.3.1 C++编程常用方法 605

14.3.2 DRM插件的典型C++语法 609

14.3.3 多线程类工厂ThreadSyncFactory 612

14.4 用类工厂封装PKI 618

14.4.1 XML类工厂XMLFactory 618

14.4.2 公钥加密工厂PublicCryptoFactory 620

14.4.3 Base64类工厂Base64Factory 622

14.4.4 密码算法类工厂CipherFactory 622

14.5 ROAP消息处理 625

14.5.1 权利对象RO的类描述 625

14.5.2 ROAP会话消息的类封装 627

14.5.3 证书消息的类封装 630

14.5.4 ROAP消息分析器 632

14.6 解密DCF文件 635

14.6.1 解密DCF文件的函数调用流程 635

14.6.2 DCF文件DRM信息类OMADRMInfo 636

14.6.3 解密管理类工厂创建解密管理器 637

14.7 解密管理器 639

14.7.1 DRM代理类OMADRMDecAgent 640

14.7.2 解密DRM代理获取密钥的操作流程 643

14.7.3 RO管理与消费 647

14.7.4 解密的通信处理器类工厂 649

14.8 加密媒体 652

14.8.1 加密过程 653

14.8.2 加密器产生 654

14.8.3 RO产生 655

第15章 ELF文件执行过程 658

15.1 动态链接与静态链接 658

15.1.1 动态链接库使用方法 658

15.1.2 共享库使用机制 660

15.1.3 预链接 661

15.2 对象文件格式 661

15.2.1 a.out与COFF文件格式 662

15.2.2 ELF对象文件组织结构 663

15.2.3 与符号定位相关的小节 668

15.2.4 ELF对象文件与装载相关的结构 673

15.2.5 动态链接的机制 676

15.3 位置无关代码与共享库 682

15.3.1 位置无关代码与一般代码的区别 682

15.3.2 共享库对象文件与可执行对象文件的区别 684

15.3.3 内嵌汇编位置无关代码 686

15.4 可执行文件加载代码分析 687

15.4.1 执行文件的处理函数集 687

15.4.2 ELF可执行文件运行过程 688

15.4.3 函数load_elf_binary分析 689

第16章 应用程序编译方法 699

16.1 编写Makefile 699

16.1.1 Makefile语法概述 699

16.1.2 iptables软件Makefile实例 703

16.2 automake自动产生Makefile 713

16.2.1 configure脚本产生过程概述 713

16.2.2 Autoconfig语言 714

16.2.3 configure.in实例 721

16.2.4 automake工具 728

16.3 GCC工具及扩展 733

16.3.1 GNU常用工具 733

16.3.2 预处理 734

16.3.3 C语言扩展 735

16.3.4 C++和C语言混合使用 737

16.3.5 字符串国际化 737

第17章 编程模式 739

17.1 C语言面向对象的实现 739

17.1.1 面向对象的编程思想 739

17.1.2 软件架构 740

17.1.3 类的实现 740

17.1.4 其他对象化方法 744

17.2 程序设计模式 745

17.2.1 外观模式 746

17.2.2 适配器模式 747

17.2.3 桥接模式 747

17.2.4 抽象工厂 749

17.2.5 策略模式 750

17.2.6 装饰模式 750

17.2.7 单件模式和双检查锁模式 752

17.2.8 观察者模式 752

17.2.9 模板方法模式 754

17.2.10 工厂方法模式 754

17.3 编程基本语法规范 755

17.3.1 异常处理 755

17.3.2 子程序 756

17.3.3 宏定义 756

17.3.4 内联子程序 756

17.3.5 基本数据类型 756

17.3.6 结构体 757

17.3.7 指针和引用 758

17.3.8 全局数据 761

17.3.9 控制语句 761

17.3.10 头文件 761

17.4 安全编程 762

17.5 线程并行模型 763

17.6 应用程序编写规范 765

17.7 代码书写规范 766

参考文献 768

返回顶部