介绍
在这个 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,但运行此命令可以确保 python3 和 python3-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安装高级的cryptographyPython 库。 - 验证所有组件都已安装并可访问。
这个环境为你开始探索和实现各种密码学概念奠定了基础,从使用 OpenSSL 进行简单的哈希和加密,到使用 Python 构建复杂的安全应用。



