深色模式
PIV 与 HSM
如果你在企业环境中工作,可能会接触到智能卡登录 Windows、VPN 认证这些场景。PIV 和 HSM 就是背后的技术。YuerKey 把这些原本昂贵、复杂的企业级安全能力带到了一个口袋大小的设备中。
PIV 智能卡
什么是 PIV
PIV(Personal Identity Verification,个人身份验证)是美国国家标准与技术研究院(NIST)制定的智能卡身份认证标准,定义在 NIST SP 800-73-4 规范中。
最初,PIV 是为美国联邦政府设计的——每个政府雇员和承包商都有一张 PIV 卡,用于进出大楼、登录电脑、访问机密网络。但因为这个标准设计得非常好,现在已经被全球的企业和组织广泛采用。
你可以把 PIV 想象成一张万能工卡:它既是你的门禁卡,也是你的电脑登录凭证,还能用来给文件盖数字签章。
PIV 的使用场景
Windows 智能卡登录
最常见的场景之一。你在 Windows 登录界面插入 YuerKey,输入 PIN,就能登录电脑——不需要输入 Windows 密码。很多企业用这种方式取代密码登录,既方便又安全。
Windows 登录界面
┌──────────────────────────┐
│ │
│ 请插入智能卡并输入 PIN │
│ │
│ PIN: [____] │
│ │
│ [登录] │
└──────────────────────────┘VPN 认证
远程办公时连接公司 VPN,传统方式是用户名 + 密码。使用 PIV 后,VPN 客户端会读取 YuerKey 中的证书来认证你的身份——更安全,也省去了记忆复杂 VPN 密码的麻烦。
文档签名
给 PDF 文件、Office 文档加上数字签名。签名的证书和私钥存储在 YuerKey 中,确保签名不可伪造。
物理门禁
一些高安全级别的设施使用智能卡作为门禁凭证。PIV 卡可以通过 NFC 或接触式接口开门。
密钥槽的概念
PIV 使用密钥槽(Key Slot)来组织不同用途的密钥和证书。每个槽有特定的用途,就像一个文件夹系统:
| 槽编号 | 用途 | 说明 |
|---|---|---|
| 9A | PIV 认证 | 证明你的身份,用于登录系统 |
| 9C | 数字签名 | 给文件、邮件、代码签名 |
| 9D | 密钥管理 | 加密和解密数据 |
| 9E | 卡片认证 | 门禁等物理访问,不需要 PIN |
| 82-95 | 已退役密钥 | 存储旧的加密密钥,确保历史数据仍可解密 |
YuerKey 支持 11 个密钥槽,涵盖标准的 4 个核心槽和 7 个历史密钥槽。每个槽可以独立存储一对密钥和对应的 X.509 证书。
YuerKey 的 PIV 支持
- 标准合规:符合 NIST SP 800-73-4 规范
- 11 个密钥槽:满足从日常认证到密钥轮换的各种需求
- 支持的算法:RSA-2048/3072/4096、ECDSA(P-256/P-384)、Ed25519、X25519
- PIN 管理:支持 PIV PIN、PUK(PIN Unblock Key)和管理密钥
- CCID 通信:通过标准 USB 智能卡协议与操作系统通信,Windows、macOS、Linux 原生支持
HSM 硬件安全模块
什么是 HSM
HSM(Hardware Security Module,硬件安全模块)是一种专门用于保护和管理数字密钥的硬件设备。
在商业世界中,HSM 通常是这样的:一台安装在服务器机柜中的专用设备,价格从数千美元到数万美元不等,由 Thales、Utimaco 等厂商生产。它们保护着银行的交易签名密钥、CA 机构的根证书密钥、云服务商的加密密钥等"皇冠上的宝石"。
| 传统 HSM | YuerKey HSM | |
|---|---|---|
| 价格 | $5,000+ | ~$7 |
| 大小 | 机架式 | U盘大小 |
| 场景 | 数据中心 | 随身携带 |
YuerKey 实现了 SmartCard-HSM 协议——把企业级 HSM 的核心密钥管理能力浓缩到了一个口袋大小的设备中。当然,它面向的是个人开发者和小型团队,而不是银行级别的高吞吐量场景。
PKCS#15 文件结构
YuerKey 的 HSM 功能使用 PKCS#15 标准来组织设备上的密钥和证书。你可以把 PKCS#15 想象成一套"密钥的文件系统":
YuerKey HSM 存储结构(PKCS#15)
├── 私钥对象
│ ├── CA-Root-Key(CA 根密钥)
│ ├── Code-Signing-Key(代码签名密钥)
│ └── TLS-Server-Key(服务器 TLS 密钥)
├── 证书对象
│ ├── CA-Root-Cert(CA 根证书)
│ ├── Code-Signing-Cert(代码签名证书)
│ └── TLS-Server-Cert(服务器 TLS 证书)
└── 数据对象
└── 其他安全数据每个密钥和证书都是独立的对象,有自己的标签、ID 和访问权限。你可以像管理文件一样管理它们——创建、删除、查看属性。
密钥域隔离
YuerKey HSM 支持最多 16 个独立的密钥域(Key Domain),每个域可以有自己的保护密钥(DKEK,Device Key Encryption Key)。
密钥域的概念就像把一个大保险箱分成了 16 个独立的小隔间:
每个域彼此完全隔离。一个域的 DKEK 不能访问另一个域的密钥。这在多人共享一个设备或需要分隔不同用途的密钥时非常有用。
DKEK 还支持密钥备份和恢复——你可以用 DKEK 将一个域的密钥安全导出(加密状态),备份到离线介质上,需要时恢复到另一台设备。
HSM 的使用场景
CA 证书签发
如果你运营自己的证书颁发机构(CA),CA 的根密钥是最需要保护的资产。存储在 HSM 中的根密钥永远不会被导出或暴露——你只能"请求设备用根密钥签发证书",而不能"把根密钥复制出来"。
代码签名
发布软件时,用存储在 HSM 中的密钥给代码签名。操作系统和应用商店通过验证签名确认软件来自可信的发布者。密钥存储在硬件中,即使开发机被入侵,攻击者也无法盗取签名密钥来发布恶意软件。
数据库加密密钥管理
数据库中的敏感数据(如用户个人信息、支付数据)需要加密存储。加密密钥存放在 HSM 中,数据库服务器需要解密数据时向 HSM 请求——密钥本身永远不会出现在数据库服务器的内存中。
区块链和数字货币
管理加密货币钱包的私钥。HSM 确保私钥不会被恶意软件窃取,每次交易都需要物理确认。
PIV 与 HSM 的区别
你可能会疑惑:PIV 和 HSM 听起来都是"用硬件保护密钥",它们有什么区别?
| 对比项 | PIV | HSM |
|---|---|---|
| 设计目的 | 身份认证 | 密钥管理 |
| 主要标准 | NIST SP 800-73-4 | PKCS#11 / PKCS#15 |
| 密钥槽数量 | 固定槽位,各有特定用途 | 灵活的对象存储 |
| 典型场景 | 登录电脑、VPN、门禁 | 签发证书、代码签名、加密 |
| 证书管理 | 内置,每个槽绑定一个证书 | 灵活,可存储任意数量 |
| 密钥域 | 无 | 支持多域隔离 |
简单来说:PIV 回答"你是谁",HSM 回答"如何安全地使用密钥"。YuerKey 同时支持两者,让你在一个设备上兼顾身份认证和密钥管理的需求。