描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302576563丛书名: 安全技术经典译丛
阅读本书,你将更直观、更深刻地体会到如何正确使用加密技术。本书讲述Python密码算法的基础知识,阐释密码学内部原理,演示常见错误。
在当今的IT领域,密码学堪称安全基础设施的命脉。密码学无处不在,从各国政府部门乃至普通消费者,通信大多以某种形式受到加密保护,即使谷歌搜索也不例外。但密码学很容易被误配置、误用和误解。
在实际应用中,加密操作的开发者通常并非密码学专家,未透彻理解各种算法、模式和其他参数的含义。本书在示例的引导下澄清概念,列举不当的加密方式,分析如何破解“糟糕”密码。本书直击要害,深入讲解密码学的核心内容;你将体验到哪些密码是有效的,哪些是无效的,并悟透原因。
理解密码学的使用场合、误用方式和原因
了解什么是安全哈希,以及安全哈希的基本属性
了解块密码(如AES)的算法和模式,以及不当配置的密码为什么容易遭到破解
使用消息完整性和/或数字签名来保护消息使用现代对称密码,如AES-GCM和ChaCha
了解公钥加密的基础知识,包括ECDSA签名
了解如何破解填充不当的RSA加密
使用TLS连接进行安全通信
了解证书的工作原理,熟悉证书锁定和CT日志等新功能
第1章 密码学:不仅仅是保密 1
1.1 设置Python环境 1
1.2 恺撒的移位密码 2
1.3 密码学介绍 10
1.4 密码学的用途 11
1.5 会出现什么问题呢? 12
1.6 你不是密码学家 12
1.7 “跳下悬崖”——互联网 13
1.8 cryptodoneright.org项目 14
1.9 小结 14
第2章 哈希 17
2.1 使用hashlib自由哈希 17
2.2 进行一次哈希教育 20
2.2.1 原像抗性 21
2.2.2 第二原像抗性和抗碰撞性 26
2.3 哈希摘要算法 28
2.4 哈希密码 31
2.5 破解弱密码 36
2.6 工作量证明 38
2.7 小结 41
第3章 对称加密:两端使用同一个密钥 43
3.1 加密示例 43
3.2 什么是加密? 46
3.3 AES:对称块密码 47
3.4 ECB不适合我 48
3.5 想要的:自发的独立 58
3.5.1 不是区块链 58
3.5.2 流密码 71
3.6 密钥和IV管理 75
3.7 利用可伸缩性 79
3.8 弱密钥,糟糕的管理 87
3.9 其他加密算法 89
3.10 finalize () 89
第4章 非对称加密:公钥/私钥 91
4.1 两个密钥的故事 91
4.2 越来越紧张 92
4.3 RSA出错 94
4.4 给发件箱填料 100
4.5 是什么让非对称加密与众不同? 104
4.6 传递填充 106
4.6.1 确定的输出 106
4.6.2 选择性密文攻击 108
4.6.3 共模攻击 111
4.7 证据就在填充物里 114
4.8 利用PKCS #1 v1.5填充的RSA加密 117
4.8.1 步骤1:盲操作 122
4.8.2 步骤2:搜索符合PKCS的消息 124
4.8.3 步骤3:缩小解的集合 128
4.8.4 步骤4:求解 131
4.9 关于RSA的补充说明 133
4.9.1 密钥管理 133
4.9.2 算法参数 134
4.9.3 量子密码 134
4.10 小结 135
第5章 消息完整性、签名和证书 137
5.1 过于简单的消息验证码 137
5.2 MAC、HMAC和CBC-
MAC 139
5.2.1 HMAC 140
5.2.2 CBC-MAC 144
5.2.3 加密和MAC 150
5.3 数字签名:身份验证和完整性 151
5.4 证书:证明公钥的所有权 160
5.5 证书和信任 172
5.6 撤销和私钥保护 173
5.7 重放攻击 174
5.8 小结 175
第6章 结合非对称和对称算法 177
6.1 用RSA交换AES密钥 177
6.2 不对称和对称:像巧克力和花生酱 180
6.3 测量RSA的相对性能 181
6.4 Diffie-Hellman和密钥协议 190
6.5 Diffie-Hellman和前向保密 195
6.6 质询-响应协议 201
6.7 常见问题 203
6.8 一个非对称和对称密钥的遗憾示例 204
6.9 小结 207
第7章 更对称的加密:身份验证加密和Kerberos 209
7.1 AES-GCM 209
7.2 AES-GCM细节和细微差别 213
7.3 其他AEAD算法 216
7.4 工作网络 218
7.5 Kerberos简介 225
7.6 小结 246
第8章 TLS通信 247
8.1 拦截流量 247
8.2 数字身份:X.509证书 252
8.2.1 X.509字段 252
8.2.2 证书签名请求 254
8.2.3 在Python中创建密钥、CSR和证书 266
8.3 TLS 1.2和1.3概述 270
8.3.1 介绍“hello” 272
8.3.2 客户端身份验证 274
8.3.3 推导会话密钥 275
8.3.4 切换到新密码 278
8.3.5 派生密钥和批量数据传输 279
8.3.6 TLS 1.3 283
8.4 证书验证和建立信任 285
8.5 对TLS的已知攻击 289
8.5.1 POODLE 289
8.5.2 FREAK和Logjam 289
8.5.3 Sweet32 290
8.5.4 ROBOT 290
8.5.5 CRIME、TIME和BREACH 291
8.5.6 Heartbleed 291
8.6 将OpenSSL与Python一起用于TLS 292
8.7 小结 301
参考文献 303
当今这个相互联系的世界彻底改变了一切,包括银行业、娱乐业,甚至治国之道。尽管用户、用途和安全配置文件各不相同,但这些数字应用程序至少有一个共同点:它们都需要正确应用密码学才能正常工作。
通俗地说,密码学是密码的数学。需要密码来让未经授权的人无法阅读信息,让信息无法更改,并知道是谁发送了信息。实用密码学是在实际系统中设计和使用这些代码。
《Python密码学编程》主要面向缺少或几乎没有密码学背景的计算机程序员。虽然数学在书中只作了简短介绍,但总的方法是通过示例来讲授密码学的入门概念。
《Python密码学编程》首先介绍一些基本组件,包括哈希算法、对称加密和非对称加密。接下来将超越加密,进入数字证书、签名和消息验证码领域。后几章展示了这些不同元素如何以有趣和有用的方式(如Kerberos和TLS)组合在一起。
讲解密码术的另一个重要部分是列出糟糕的密码术!《Python密码学编程》故意破解一些密码,以帮助读者理解是什么催生了公认的实践。练习和示例包括真实漏洞。列举糟糕的示例能帮助读者更好地理解密码学中出错的地方和原因。
可扫描《Python密码学编程》封底二维码下载源代码。
在阅读正文时,有时会看到[*]之类的文字,这表示需要查询《Python密码学编程》末尾“参考文献”中相应编号的资源。
★★★★★本书启发性强,我受益颇多!
——Mike Price
我并非密码学专家,不熟悉加密包的更佳实践和用法。我曾尝试从网络学习密码学知识。但通过Google搜索时,先看到的都是未维护的包;stackoverflow网站的示例中也没有阐明各项技术的使用要领。而在本书中,我获得了解决这些问题的答案,拨云见日,一切豁然开朗;在此向广大读者强烈推荐本书!
★★★★★一本出类拔萃的书籍!
-Evgeny
本书讲解通俗易懂、选材精良,揭开了密码学的神秘面纱。如果你对现代密码学的正确应用感兴趣,想了解用Python编写密码算法的基础知识,本书是你的一站式充电站。
★★★★★一本书籍,呈现实用的密码学基础知识!
——Horace
对于本书,几位读者已给出很好的、有帮助的评论。在此,我要发表一下自己的看法。拿到本书后,我每天都在咀嚼和思考,汲取到不少知识营养,获益良多。通过阅读本书,你将了解到是否安全地保护了数据。敦促购买了本书的读者亲手完成书中的示例,从做中学。
这是一本值得反复研读的宝典。
★★★★★本书直击要害,深入讲解密码学的核心内容,是一本优秀书籍!
———Alex
苦苦追寻后,终于找到一本在密码学理论和实践方面完美平衡的书籍。在此向你推荐本书!
评论
还没有评论。