第0章 前言

安全和网络是当今软件的基本特征。现代互联网充斥着蠕虫、特洛伊木马、中间人和其他威胁。这就是为什么维护安全比以往任何时候都更重要。

OpenSSL是互联网上使用最广泛、最重要的开源项目之一。如果你是一名软件开发人员、系统管理员、网络安全工程师或DevOps专家,你可能在过去偶然发现了这个工具集——但你如何最大限度地利用它呢?在本书的帮助下,您将学习OpenSSL最重要的功能,并深入了解其全部潜力。

本书包含对基本密码学和网络安全概念的逐步解释,以及说明这些概念使用的实际示例。您将从学习基础知识开始,例如如何执行对称加密和计算消息摘要。接下来,您将了解更多关于密码学的知识:MAC和HMAC、公钥和私钥以及数字签名。随着学习的深入,您将探索使用X.509证书、公钥基础设施和TLS连接的最佳实践。

在本书结束时,您将能够使用OpenSSL最流行的功能,允许您在应用程序和网络基础设施中实现加密和TLS。

第0章 前言这本书是给谁的这本书涵盖了什么充分利用这本书下载示例代码下载彩色图片使用的惯例其他

这本书是给谁的

本书面向软件开发人员、系统管理员、DevOps专家、网络安全工程师和分析师,或任何希望保护其应用程序和基础设施安全的人。软件开发人员将学习如何使用OpenSSL库为他们的软件提供加密和TLS。DevOps专业人员和系统管理员将学习如何在命令行上使用密码和证书,以及如何为他们的组织设置迷你CA。需要对安全和网络有基本的了解。

这本书涵盖了什么

充分利用这本书

您必须在计算机上安装OpenSSL才能运行命令行和C代码示例。如果你还没有安装它,【第2章“对称加密和解密”】将帮助你安装。要构建C代码示例,你需要一个兼容C11的C编译器和一个链接器。您必须按照各自的文档安装这些开发工具。所有示例都已在Kubuntu Linux 22.04上使用上述Linux发行版中的GNU C编译器、GNU Linker(LD)和GNU Make进行了测试。其他开发工具,如LLVM Clang或Microsoft Visual C++,也应与本书中的代码示例兼容。

系统需求

如果您使用的是本书的数字版本,我们建议您自己键入代码或从本书的GitHub存储库访问代码(下一节提供了链接)。这样做将帮助您避免与复制和粘贴代码相关的任何潜在错误。

虽然对OpenSSL功能和代码示例的解释有时非常详细,但这本书旨在提供指导,而不是取代OpenSSL文档。如果您想了解本书未涵盖的OpenSSL功能的详细信息,请随时查阅OpenSSL文档、OpenSSL源代码,或者使用OpenSSL尝试自己的代码!

下载示例代码

您可以从GitHub下载本书的示例代码文件,网址为 https://github.com/PacktPublishing/Demystifying-Cryptography-with-OpenSSL-3 。如果代码有更新,它将在GitHub存储库中更新。

我们还有丰富的书籍和视频目录中的其他代码包,请访问 https://github.com/PacktPublishing/ 。看看他们!

下载彩色图片

我们还提供了一个PDF文件,其中包含本书中使用的屏幕截图和图表的彩色图像。您可以在此处下载:https://packt.link/c0WEO

使用的惯例

本书中使用了许多文本约定。

Code in text:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄。下面是一个示例:“SSH user public keys are pinned on the server in the authorized_keys file.”

代码块设置如下:

任何命令行输入或输出编写如下:

Bold:表示一个新术语、一个重要单词或您在屏幕上看到的单词。例如,菜单或对话框中的单词以粗体显示。这里有一个例子:“Reduced maintenance because you don’t need to make a Certificate Signing Request (CSR) and communicate with a CA. You can even use a self-signed certificate.(减少了维护,因为您不需要发出证书签名请求CSR)并与CA通信。您甚至可以使用自签名证书。)”

其他

无关紧要。