![]()
内容推荐 本书是针对TPM实战的编程实用书籍,将常用的TPM应用场景编写为C++与C#双语示例,配上详细代码说明,以浅显易懂、循序渐进的方式展示,在阅读后可以立即运用到项目开发之中。全书共19章:第1章和第2章介绍常用的安全基础概念,包括HASH算法、HMAC算法、对称密钥、非对称密钥、数字签名、数字信封、PKI等内容;第3~19章将理论付诸实践,讲解如何使用TPM提供的安全算法解决一些实际问题,包括生成随机数、计算HASH摘要、加密与解密文件、加密与解密消息、导入与导出密钥、管理存储分层、创建Child Key、构建Policy表达式、生成数字签名、实现PKI模型、迁移非对称密钥、使用NV Index存储数据、借助NV Index转移授权等内容。 本书对于有一定编程基础,并希望基于TPM芯片构建安全应用软件产品、提升企业信息安全等级、学习安全领域知识的IT从业人员,均能起到很好的指导作用。 作者简介 杨悦 1997年开始从事软件开发,精通.NET、Java、C++、Rust、Python、Obj-C、JavaScript、Typescript、React、PHP、VB等多种语言及框架,擅长以下领域。 ·云计算:精通AWS、Azure解决方案设计与开发,拥有AWS-Architect、AWS-Developer、AWS-SysOps资格证书; ·身份安全:精通身份安全协议、安全算法,擅长安全产品与SSO方案设计; ·人工智能:精通机器视觉领域的TensorFlow与OpenCV算法开发; ·大数据:精通SQLServer、MySQL、MongoDB等数据库的管理与开发,擅长大数据、湖仓一体方案设计与开发,拥有多项DBA资格证书; ·企业应用:精通AD、ADFS、SharePoint等企业产品的管理与开发; ·软件开发:精通各类Web、桌面、App应用开发。曾任职大众点评网高级研发工程师、香港IAS系统分析师,现任职某知名安全科技公司高级解决方案架构师,拥有CISA、PMP、MCSE、MCDBA、MCITP、MCP、MCTS、MCITP-SharePoint、MCITP-DBA等20项国际资格认证。 目录 第1章 系统安全基础 1.1 常用攻击手段 1.1.1 字典攻击 1.1.2 HASH反查表攻击 1.1.3 彩虹表攻击 1.1.4 中间人攻击 1.1.5 战争驾驶 1.1.6 窃听 1.1.7 重播攻击 1.1.8 网络钓鱼 1.1.9 社会工程学 1.2 安全算法 1.2.1 HASH算法 1.2.2 HASH扩展 1.2.3 HMAC算法 1.2.4 对称密钥 1.2.5 非对称密钥 1.2.6 Nonce 1.2.7 KDF 1.3 本章小结 第2章 身份认证与安全协议 2.1 消息安全模式 2.1.1 数字签名 2.1.2 数字信封 2.1.3 证书 2.2 身份认证方式 2.2.1 密码认证 2.2.2 IC卡或智能卡认证 2.2.32 FA认证 2.2.4 生物特征认证 2.2.5 U盾认证 2.2.6 OTP认证 2.2.7 FIDO认证 2.2.8 Windows Hello 2.2.9 MFA 2.3 身份认证协议 2.3.1 SSL 2.3.2 TLS 2.3.3 Kerberos 2.3.4 PKI 2.3.5 RADIUS 2.3.6 EAP 2.3.7 SAML 2.3.8 JWT 2.4 本章小结 第3章 开发准备 3.1 初识TPM 3.1.1 什么是TPM 3.1.2 TPM历史 3.1.3 编程接口 3.2 准备工作 3.2.1 TPM芯片 3.2.2 TPM模拟器 3.2.3 C++开发环境 3.2.4 C#开发环境 3.3 测试TPM 3.4 本章小结 第4章 第一个TPM程序 4.1 随机数不随机 4.1.1 RNG 4.1.2 HRNG 4.2 使用HRNG生成随机数 4.3 本章小结 第5章 HASH算法 5.1 TPM_HANDLE 5.2 计算HASH 5.2.1 简单HASH 5.2.2 序列HASH 5.2.3 文件HASH 5.3 校验HASH 5.4 本章小结 第6章 HMAC算法 6.1 定义Key模板 6.2 TPMS_SENSITIVE_CREATE 6.3 创建HMAC Key对象 6.4 计算HMAC摘要 6.4.1 简单HMAC 6.4.2 序列HMAC 6.5 校验HMAC 6.6 本章小结 第7章 对称密钥 7.1 授权区域 7.2 Password授权 7.2.1 绑定密码 7.2.2 使用Password授权 7.3 使用密码保护Key 7.4 使用对称Key 7.4.1 加密与解密字符串 7.4.2 加密文件 7.4.3 解密文件 7.5 本章小结 第8章 对称密钥导入 8.1 架构设计 8.2 导入对称Key 8.3 完整应用示例 8.3.1 生成Key 8.3.2 导入Key 8.3.3 加密消息 8.3.4 发送消息 8.3.5 接收消息 8.3.6 解密消息 8.3.7 测试程序 8.4 本章小结 第9章 对称密钥导出 9.1 Password、Policy、Session 9.2 Policy授权 9.2.1 构建与绑定Policy 9.2.2 使用Policy授权 9.3 使用Policy保护Key 9.3.1 基于命令名称的Policy授权 9.3.2 基于密码的Policy授权 9.4 导出对称Key 9.5 完整导出示例 9.5.1 设计Policy 9.5.2 导出Key 9.5.3 导入Key 9.6 本章小结 第10章 非对称密钥 10.1 分层 10.1.1 夺回所有权 10.1.2 修改分层授权 10.2 使用非对称Key 10.2.1 加密字符串 10.2.2 解密字符串 10.3 本章小结 第11章 非对称密钥公钥导出 11.1 架构设计 11.2 导出公钥 11.2.1 安装Botan 11.2.2 配置Botan 11.2.3 安装CSharp-easy-RSA-PEM 11.3 完整应用示例 11.3.1 导出公钥 11.3.2 解密消息 11.3.3 接收消息 11.3.4 加密消息 11.3.5 发送消息 11.3.6 测试程序 11.4 本章小结 第12章 非对称密钥公钥导入 12.1 架构设计 12.2 导入公钥 12.3 完整应用示例 12.3.1 生成Key 12.3.2 导入公钥 12.3.3 加密消息 12.3.4 发送消息 12.3.5 接收消息 12.3.6 解密消息 12.3.7 测试程序 12.4 本章小结 第13章 非对称密钥私钥导出 13.1 架构设计 13.2 导出私钥 13.3 完整应用示例 13.3.1 导出私钥 13.3.2 加密消息 13.3.3 发送消息 13.3.4 接收消息 13.3.5 解密消息 13.3.6 测试程序 13.4 本章小结 第14章 非对称密钥私钥导入 14.1 架构设计 14.2 导入私钥 14.3 完整应用示例 14.3.1 生成Key 14.3.2 转换Key 14.3.3 导入私钥 14.3.4 解密消息 14.3.5 接收消息 14.3.6 加密消息 14.3.7 发送消息 14.3.8 测试程序 14.4 本章小结 第15章 非对称密钥签名 15.1 Primary Key与Child Key 15.1.1 Child Key生命周期 15.1.2 限制性解密Key 15.1.3 可导出性定义 15.2 使用非对称Key 15.2.1 创建Primary Key 15.2.2 创建Child Key 15.2.3 签名字符串 15.2.4 验证签名 15.3 本章小结 第16章 非对称密钥 |