开放硬件安全标准 (HSM Adapter)
版本: v3.2.0 | 状态: ✅ 生产就绪 | 4 IPC Handlers | 1 数据库表 | FIPS 140-3 合规
ChainlessChain HSM Adapter 提供统一的硬件安全模块(HSM)接口,支持 YubiKey、Ledger、Trezor 等主流硬件设备的自动发现、连接和加密操作。系统内置 FIPS 140-3 合规追踪,确保所有密码学操作满足企业级安全标准。
核心特性
- 🔌 多厂商统一接口: 支持 YubiKey、Ledger、Trezor 及通用 HSM 设备
- 🏛️ FIPS 140-3 合规: 自动追踪设备合规状态,提供合规等级评估
- 🔍 自动设备发现: 连接时自动识别型号、序列号、固件版本
- 🔐 统一加密操作: RSA-2048、ECDSA-P256、ML-KEM-768 等算法支持
- 📊 合规状态监控: 实时统计设备连接状态和合规级别
系统架构
┌────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Vue3 前端 │────→│ IPC ���理器 │────→│ HSM Adapter │
│ 设备管理 │ │ hsm:* │ │ Manager │
└────────────┘ └──────────────────┘ └────────┬─────────┘
│
┌───────────┼───────────┐
▼ ▼ ▼
┌──────────┐ ┌─────────┐ ┌─────────┐
│ YubiKey │ │ Ledger │ │ Trezor │
│ Adapter │ │ Adapter │ │ Adapter │
└────┬─────┘ └────┬────┘ └────┬────┘
│ │ │
└─────┬──────┘───────────┘
▼
┌───────────────────┐
│ FIPS 140-3 合规 │
│ 追踪 & 评估 │
└───────────────────┘支持的设备厂商
| 厂商 | 常量值 | FIPS 合规 | 说明 |
|---|---|---|---|
| YubiKey | yubikey | ✅ 默认 | FIDO2/PIV/PGP 多协议 |
| Ledger | ledger | 需验证 | 加密货币硬件钱包 |
| Trezor | trezor | 需验证 | 开源硬件钱包 |
| 通用 | generic | 需验证 | PKCS#11 兼容设备 |
连接设备
javascript
const result = await window.electron.ipcRenderer.invoke("hsm:connect-device", {
vendor: "yubikey",
model: "YubiKey 5 NFC",
serialNumber: "12345678",
firmwareVersion: "5.4.3",
supportedAlgorithms: ["RSA-2048", "ECDSA-P256", "ML-KEM-768"],
});
// result.adapter = {
// id: "uuid",
// vendor: "yubikey",
// status: "connected",
// fips_compliant: 1,
// ...
// }执行加密操作
javascript
const result = await window.electron.ipcRenderer.invoke(
"hsm:execute-operation",
{
adapterId: "adapter-001",
operation: "sign", // sign | verify | encrypt | decrypt | generateKey
params: {
algorithm: "ECDSA-P256",
data: "待签名数据的哈希值",
},
},
);
// result.result = { operation: "sign", result: "sign completed", executedAt: ... }查询合规状态
javascript
const result = await window.electron.ipcRenderer.invoke(
"hsm:get-compliance-status",
);
// result.status = {
// totalAdapters: 3,
// fipsCompliant: 2,
// connected: 3,
// complianceLevel: "partial", // "FIPS-140-3" | "partial"
// }IPC 接口完整列表
HSM Adapter 操作(4 个)
| 通道 | 功能 | 说明 |
|---|---|---|
hsm:list-adapters | 列出 HSM 适配器 | 支持按厂商/状态过滤 |
hsm:connect-device | 连接 HSM 设备 | 自动识别型号和能力 |
hsm:execute-operation | 执行加密操作 | 签名/验签/加密/解密/生成密钥 |
hsm:get-compliance-status | 查询合规状态 | FIPS 140-3 合规等级 |
数据库 Schema
1 张核心表:
hsm_adapters 表
sql
CREATE TABLE IF NOT EXISTS hsm_adapters (
id TEXT PRIMARY KEY,
vendor TEXT NOT NULL, -- yubikey | ledger | trezor | generic
model TEXT,
serial_number TEXT,
firmware_version TEXT,
status TEXT DEFAULT 'disconnected', -- connected | disconnected
fips_compliant INTEGER DEFAULT 0,
supported_algorithms TEXT, -- JSON: ["RSA-2048", "ECDSA-P256", ...]
last_connected INTEGER,
created_at INTEGER DEFAULT (strftime('%s','now') * 1000)
);
CREATE INDEX IF NOT EXISTS idx_hsm_adapters_vendor ON hsm_adapters(vendor);
CREATE INDEX IF NOT EXISTS idx_hsm_adapters_status ON hsm_adapters(status);前端集成
HSMAdapterPage 页面
功能模块:
- 统计卡片: 总适配器数 / FIPS 合规数 / 已连接数 / 合规等级
- 设备列表: 展示厂商、型号、序列号、固件版本、状态
- 连接操作: 选择厂商并连接新设备
- 合规报告: 展示整体合规状态
Pinia Store (hsmAdapter.ts)
typescript
const useHsmAdapterStore = defineStore("hsmAdapter", {
state: () => ({
adapters: [],
complianceStatus: null,
loading: false,
error: null,
}),
actions: {
fetchAdapters, // → hsm:list-adapters
connectDevice, // → hsm:connect-device
executeOperation, // → hsm:execute-operation
fetchComplianceStatus, // → hsm:get-compliance-status
},
});关键文件
| 文件 | 职责 | 行数 |
|---|---|---|
src/main/ukey/hsm-adapter-manager.js | HSM 适配器核心引擎 | ~193 |
src/main/ukey/hsm-adapter-ipc.js | IPC 处理器(4 个) | ~113 |
src/renderer/stores/hsmAdapter.ts | Pinia 状态管理 | ~80 |
src/renderer/pages/security/HSMAdapterPage.vue | HSM 适配器页面 | ~90 |
测试覆盖率
✅ hsm-adapter-manager.test.js - 设备连接/操作/合规测试
✅ stores/hsmAdapter.test.ts - Store 状态管理测试
✅ e2e/security/hsm-adapter.e2e.test.ts - 端到端用户流程测试