安装加密工具和环境设置

LinuxBeginner
立即练习

介绍

在这个 Lab 中,你将在一个 Ubuntu 22.04 系统上设置一个用于密码学开发的底层环境。一个合适的开发环境对于安全地学习和实现密码学原理至关重要。我们将安装两个关键组件:OpenSSL,一个用于通用密码学和安全通信的强大且多功能的命令行工具包;以及 Python 的 cryptography 库,它为常见的密码学算法提供了高级配方和低级接口。

完成这个 Lab 后,你将拥有一个可用的环境,准备好探索加密、哈希、数字签名和其他密码学操作。

更新软件包列表

在这一步,我们将更新 Ubuntu 系统上的包列表。在安装任何新软件之前,最佳实践是同步本地包索引与中央仓库。apt update 命令会从所有配置的源下载包信息,确保我们可以安装最新版本的软件。

请注意,此命令不会升级任何已安装的包,它只刷新可用包的列表。

在你的终端中执行以下命令来更新包列表。由于此操作会修改系统级的包信息,我们需要使用 sudo

sudo apt update

你将看到显示从 Ubuntu 仓库获取包列表的输出。输出可能略有不同,但通常看起来像这样:

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:3 http://security.ubuntu.com/ubuntu jammy-security InRelease [119 kB]
...
Fetched 3,334 kB in 2s (1,950 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

安装 OpenSSL

在这一步,你将安装 OpenSSL。OpenSSL 是一个强大且广泛使用的开源工具包,用于传输层安全(TLS)和安全套接字层(SSL)协议。它也作为一个通用密码学库,提供了一套丰富的命令行工具,用于生成密钥、创建证书、加密/解密文件等等。

我们将使用 apt install 命令来安装 openssl 包。我们还会添加 -y 标志,它会自动确认安装,防止命令暂停以询问你的确认。

在你的终端中运行以下命令:

sudo apt install -y openssl

命令完成后,你将看到详细说明安装过程的输出,包括正在安装和配置的包。

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
openssl is already the newest version (3.0.2-0ubuntu1.15).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

你的系统可能会显示 openssl 已经安装,这在许多基础镜像中很常见。运行此命令可以确保它存在。

安装 Python 和 pip

在这一步,我们将确保安装了 Python 及其包安装器 pip。Python 是一种非常流行的语言,因其可读性和广泛的第三方库生态系统,被广泛应用于包括网络安全和密码学在内的各种应用中。pip 是安装和管理这些 Python 包的标准工具。

虽然 LabEx 环境预装了 Python,但运行此命令可以确保 python3python3-pip 都被系统的包管理器正确安装和管理。

执行以下命令来安装这两个包。同样,我们使用 -y 来在没有交互提示的情况下继续。

sudo apt install -y python3 python3-pip

输出将确认这些包正在安装或已经是最新版本。

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
python3 is already the newest version (3.10.6-1~22.04).
python3-pip is already the newest version (22.0.2+dfsg-1ubuntu0.4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

安装 Cryptography 包

在这一步,你将安装 Python 的 cryptography 包。这是一个现代化的、高级的库,提供了一种简单安全的方式来使用密码学算法。它通常被称为“面向人类的密码学”,因为它抽象掉了底层密码学 API 中许多复杂且容易出错的细节。它正在积极开发中,并被推荐用于大多数需要密码学功能的 Python 应用。

我们将使用我们刚刚验证过的 Python 包安装器 pip,从 Python 包索引(PyPI)下载并安装 cryptography 库。

在你的终端中运行以下命令:

pip install -U cryptography

pip 在下载和安装包及其依赖项时会显示输出。-U 标志用于将包更新到最新版本。

Successfully installed cffi-2.0.0 cryptography-46.0.3 typing-extensions-4.15.0

验证安装

在最后这一步,我们将验证所有已安装的工具都能正常工作。在开始使用环境进行开发之前,这是一个重要的检查,以确保我们的环境配置正确。

首先,我们检查 openssl 命令行工具。使用 version 参数运行它将打印其版本信息,确认系统可以找到并执行它。

openssl version

输出应显示已安装的 OpenSSL 版本。

OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)

接下来,我们验证 Python 的 cryptography 库是否已正确安装并且可以被 Python 解释器导入。我们可以使用一个简单的单行命令来实现这一点,该命令使用 -c 标志,它会执行一段代码字符串。

python -c "import cryptography"

如果此命令在没有产生任何输出的情况下运行完成,则表示导入成功。如果安装存在问题,Python 会打印一个 ImportError 追溯信息。在这种情况下,没有输出就是成功的标志。

通过这两项检查后,你的密码学开发环境就准备好了。

总结

恭喜你完成了这个实验!你已成功在 Ubuntu 上设置了一个基础但功能强大的密码学开发环境。

在这个实验中,你学会了如何:

  • 使用 apt update 更新系统的包列表。
  • 安装必要的 openssl 命令行工具包。
  • 安装 python3 及其包管理器 pip
  • 使用 pip 安装高级的 cryptography Python 库。
  • 验证所有组件都已安装并可访问。

这个环境为你开始探索和实现各种密码学概念奠定了基础,从使用 OpenSSL 进行简单的哈希和加密,到使用 Python 构建复杂的安全应用。