Skip to content

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)来组织不同用途的密钥和证书。每个槽有特定的用途,就像一个文件夹系统:

槽编号用途说明
9APIV 认证证明你的身份,用于登录系统
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 机构的根证书密钥、云服务商的加密密钥等"皇冠上的宝石"。

传统 HSMYuerKey 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 听起来都是"用硬件保护密钥",它们有什么区别?

对比项PIVHSM
设计目的身份认证密钥管理
主要标准NIST SP 800-73-4PKCS#11 / PKCS#15
密钥槽数量固定槽位,各有特定用途灵活的对象存储
典型场景登录电脑、VPN、门禁签发证书、代码签名、加密
证书管理内置,每个槽绑定一个证书灵活,可存储任意数量
密钥域支持多域隔离

简单来说:PIV 回答"你是谁",HSM 回答"如何安全地使用密钥"。YuerKey 同时支持两者,让你在一个设备上兼顾身份认证和密钥管理的需求。