Nitrokey/nethsm-pkcs11

GitHub: Nitrokey/nethsm-pkcs11

为 Nitrokey NetHSM 硬件安全模块提供标准 PKCS#11 接口的适配层,让现有应用程序无需改造即可使用硬件级密钥保护。

Stars: 38 | Forks: 12

# Nitrokey NetHSM 的 PKCS#11 模块 [![codecov.io](https://codecov.io/gh/nitrokey/nethsm-pkcs11/branch/main/graph/badge.svg)][codecov-url] 本模块允许使用 [Nitrokey NetHSM](https://www.nitrokey.com/products/nethsm) 作为 PKCS#11 操作的后端。 有关更多详细信息,请参阅 [支持的功能列表](./features.md)。 ## 下载 从 [发布页面](https://github.com/Nitrokey/nethsm-pkcs11/releases) 下载最新的二进制文件。 ## 文档 请按照 [文档](https://docs.nitrokey.com/nethsm/pkcs11-setup.html) 获取使用说明。 ## 兼容性 nethsm-pkcs11 与这些 NetHSM 版本兼容: | NetHSM Version | Compatibility | Notes | | :------------: | :-----------: | ----- | | [v1.0][nethsm-v1.0] | limited | | | [v2.0][nethsm-v2.0] | limited | | | [v2.1][nethsm-v2.1] | limited | | | [v2.2][nethsm-v2.2] | limited | | | [v3.0][nethsm-v3.0] | limited | 使用 PKCS1 机制的 RSA 签名不起作用。 | | [v3.1][nethsm-v3.1] | full | | 完全兼容意味着 NetHSM PKCS#11 模块的所有功能都可以在此版本中使用。 有限兼容意味着此版本仅支持部分功能。 有关新功能版本要求的更多详细信息,请参阅 [更新日志](./CHANGELOG.md)。 ## 调试选项 将 `RUST_LOG` 环境变量设置为 `trace`、`debug`、`info`、`warn` 或 `err` 以更改日志级别。 ## Docker 示例 出于测试和开发目的,提供了两个在 Nginx 和 Apache 中使用 PKCS11 驱动程序的示例。 它们各自需要使用 `container//generate.sh` 生成的证书。 可以使用以下命令构建它们: ``` # 构建 images docker build -t nginx-testing -f container/nginx/Dockerfile . docker build -t apache-testing -f container/apache/Dockerfile . ``` 假设 NetHSM 运行在 localhost:8443,则可以使用以下命令运行它们: ``` docker run --net=host nginx-testing:latest docker run --net=host apache-testing:latest ``` NetHSM 应已配置以下配置: ``` nitropy nethsm --host localhost:8443 --no-verify-tls provision -u 0123456789 -a Administrator nitropy nethsm --host localhost:8443 --no-verify-tls add-user -n Operator -u operator -p opPassphrase -r Operator ``` ## 测试重试 有一组测试使用多个实例运行,并测试重试和超时机制。 它们需要:访问 `sudo`(或以 root 身份运行)和 `podman`。 您可以运行以下命令: ``` USE_SUDO=true cargo t -p nethsm_pkcs11 --test basic -- multi_instance_retries # 或者如果以 root 身份运行则移除 sudo 的使用 cargo t -p nethsm_pkcs11 --test basic -- multi_instance_retries ``` ## 构建 需要 `gcc` 和至少版本 (MSRV) 为 1.70 的可用 Rust 工具链。 ``` cargo build --release ``` 动态库将位于 `${CARGO_TARGET_DIR:-target}/release/libnethsm_pkcs11.so`。 ### Alpine Linux 您需要安装 `musl-dev` 和 `gcc`: ``` apk add musl-dev gcc ``` 要在 Alpine Linux 上构建,您需要添加 C 参数 `target-feature=-crt-static`: ``` RUSTFLAGS="-C target-feature=-crt-static" cargo build --release ```
标签:Apache, CVE, Docker, HSM, NetHSM, Nginx, Nitrokey, PKCS#11, RSA, Rust, SamuraiWTF, SSL/TLS, 加密令牌, 可视化界面, 后端驱动, 安全防御评估, 密码学, 密钥存储, 开源, 手动系统调用, 数字签名, 数据加密, 硬件安全模块, 网络安全, 网络流量审计, 请求拦截, 远程密钥, 通知系统, 隐私保护