Skip to content

开放硬件安全标准 (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 合规说明
YubiKeyyubikey✅ 默认FIDO2/PIV/PGP 多协议
Ledgerledger需验证加密货币硬件钱包
Trezortrezor需验证开源硬件钱包
通用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.jsHSM 适配器核心引擎~193
src/main/ukey/hsm-adapter-ipc.jsIPC 处理器(4 个)~113
src/renderer/stores/hsmAdapter.tsPinia 状态管理~80
src/renderer/pages/security/HSMAdapterPage.vueHSM 适配器页面~90

测试覆盖率

✅ hsm-adapter-manager.test.js         - 设备连接/操作/合规测试
✅ stores/hsmAdapter.test.ts           - Store 状态管理测试
✅ e2e/security/hsm-adapter.e2e.test.ts - 端到端用户流程测试

相关文档

基于 MIT 许可发布