面向哲思的编程与架构
笔记哲思阅读动态搜索RSS 订阅
切换到深色模式
搜索
RSS 订阅
切换到深色模式
© 2026 Vic Chen. All rights reserved.CC BY-NC-ND 4.0
← 笔记
金融机构的双因素认证(五):私钥不出硬件

金融机构的双因素认证(五):私钥不出硬件

2026年7月25日3,1049分钟

智能卡、USB Key、HSM……这些方案背后是同一个密码学思想:非对称密钥,且私钥永远不离开硬件。这一篇讲清楚这个思想为什么能从根本上解决前几篇反复出现的「密钥托管介质」问题,以及国密算法 SM2/SM3/SM4 在国内合规场景下扮演的角色。


目录
  • TL;DR
  • 1. 非对称密钥认证:不共享的秘密
  • 2. USB Key 与智能卡:私钥不出硬件的落地形态
  • 3. HSM:机构侧的私钥管家
  • 4. 国密算法:SM2/SM3/SM4
  • 5. 两种场景对比:证书体系的信任根不同
  • 6. 强度尺定位
  • 7. 小结
目录
  • TL;DR
  • 1. 非对称密钥认证:不共享的秘密
  • 2. USB Key 与智能卡:私钥不出硬件的落地形态
  • 3. HSM:机构侧的私钥管家
  • 4. 国密算法:SM2/SM3/SM4
  • 5. 两种场景对比:证书体系的信任根不同
  • 6. 强度尺定位
  • 7. 小结
目录
  1. TL;DR
  2. 1. 非对称密钥认证:不共享的秘密
  3. 2. USB Key 与智能卡:私钥不出硬件的落地形态
  4. 3. HSM:机构侧的私钥管家
  5. 4. 国密算法:SM2/SM3/SM4
  6. 5. 两种场景对比:证书体系的信任根不同
  7. 6. 强度尺定位
  8. 7. 小结
双因素
相关文章
  • 01
    金融机构的双因素认证(八):合规倒推方案2026/07
  • 02
    金融机构的双因素认证(七):信任怎么折算2026/07
  • 03
    金融机构的双因素认证(六):信任边界在哪2026/07
← 上一篇金融机构的双因素认证(四):方便的代价
下一篇 →金融机构的双因素认证(六):信任边界在哪

评论

© 2026 Vic Chen · 面向哲思的编程与架构CC BY-NC-ND 4.0

TL;DR

这是《金融机构的双因素认证》系列的第五篇,也是系列里密码学含量最高的一篇。前几篇反复出现同一个问题:密钥托管在哪,就决定了认证强度的上限。短信验证码托管在电信运营商手里(第 2 篇),手机 App 托管在用户个人设备上(第 4 篇)。

智能卡、USB Key、HSM(Chen 注:HSM(Hardware Security Module,硬件安全模块):专用硬件设备,用于生成、存储和管理密钥,并在设备内部完成加解密、签名等密码学运算,私钥永远不会以明文形式离开设备边界。广泛用于金融、CA(证书颁发机构)、政企场景。) 这类方案,用一个更彻底的设计思路解决了这个问题:私钥从生成的那一刻起就没有离开过硬件,也永远不会离开。这一篇讲清楚这个思想背后的非对称密钥原理,以及国密算法在国内合规场景下的角色。


1. 非对称密钥认证:不共享的秘密

前几篇讲的 HOTP/TOTP 都是对称密钥方案:服务器和令牌两边持有同一份密钥 KKK,认证时双方各自用这份密钥算出同一个结果。对称密钥的固有问题是:这份密钥必须在某个时刻从一方传到另一方(第 3 篇讲的种子分发),传输和存储的每一环都是潜在的泄露点。

非对称密钥(Chen 注:非对称密钥(asymmetric key)密码学,也叫公钥密码学(public-key cryptography),由 Diffie、Hellman、Rivest、Shamir、Adleman 等人在 1970 年代奠基。核心是一对数学上相关但计算上不可互相推导的密钥:公钥(public key)可以公开,私钥(private key)必须保密,公钥加密的内容只能用对应私钥解密,私钥签名的内容任何人用公钥都能验证。)换了一个思路:生成一对密钥,公钥可以公开给任何人(包括认证服务器),私钥永远只有持有者一个人知道,从不传输、从不共享。认证的过程变成一次「挑战应答」:

服务器:随机挑战  c→发送持有者\text{服务器}: \text{随机挑战} \; c \xrightarrow{\text{发送}} \text{持有者}服务器:随机挑战c发送​持有者 持有者:σ=Sign(Kpriv,c)→发送服务器\text{持有者}: \sigma = \text{Sign}(K_{\text{priv}}, c) \xrightarrow{\text{发送}} \text{服务器}持有者:σ=Sign(Kpriv​,c)发送 服务器:Verify(Kpub,c,σ)=?true\text{服务器}: \text{Verify}(K_{\text{pub}}, c, \sigma) \overset{?}{=} \text{true}服务器:Verify(Kpub​,c,σ)=?true

服务器发一个随机挑战值 ccc(防止重放攻击),持有者用私钥对这个挑战签名得到 σ\sigmaσ,服务器用公钥验证这个签名是否确实由对应的私钥生成。整个过程中,私钥本身从未被传输过,服务器验证的不是「你告诉我的秘密对不对」,而是「你能不能证明你拥有那个只有你才有的私钥」。

上面用公式描述了协议的数学结构,下面用时序图描述它在硬件上的落地形态:(Chen 注:上面的公式和下面的图,说的是同一套流程,但侧重点不同:公式强调的是每一步在数学上算了什么(签名函数 Sign 用了哪些输入、验证函数 Verify 判断的是什么等式),是协议的数学定义;图 1 强调的是这套协议落到 USB Key/智能卡这类硬件时,私钥全程不离开硬件这个物理约束,这是公式本身看不出来的,公式里 $K_{\text{priv}}, c$ 不关心 $K_{\text{priv}}$ 存在哪。)
图1:非对称密钥认证(私钥从不传输)
ℹ
这就是为什么这类方案能从根本上解决「密钥托管介质」问题:不是把私钥托管在一个更安全的地方,而是设计成私钥根本不需要离开生成它的那个硬件。第3、4篇讨论的「种子分发链路上会不会泄露」这个问题,在这里被从设计上直接消除了。

2. USB Key 与智能卡:私钥不出硬件的落地形态

USB Key(也称 UKey)和智能卡是这套原理最常见的两种硬件形态。二者原理相同,区别主要是接口和使用方式:USB Key 插入电脑 USB 口使用,智能卡需要配合读卡器。核心设计都是:

  • 芯片内置一个安全协处理器,能独立完成密钥生成和签名运算
  • 私钥在芯片内部生成,生成后即被锁定,无法通过任何接口读出,只能「使用」(签名/解密),不能「导出」
  • 使用时通常还需要输入 PIN 码,构成「持有硬件+知道 PIN」的双因素组合(硬件是「你有的」,PIN 是「你知道的」)
图3:USB Key 内部结构示意

即便攻击者物理拿到了这枚 USB Key,没有 PIN 码也无法使用它签名;即便攻击者知道 PIN 码但没有拿到硬件,也无法伪造签名,因为私钥这个「秘密」从未以任何形式存在于硬件之外。这正是它相比手机 App 动态口令(第 4 篇)的根本优势:手机 App 的密钥仍然是「存在于某处、有可能被读出」的数据,而 USB Key 的私钥被设计成永远不可能被读出。


3. HSM:机构侧的私钥管家

前面讲的是用户侧的私钥硬件,机构自己(作为认证服务器、CA、或需要管理大量密钥的系统)同样需要一个「私钥不出硬件」的方案,这就是 HSM 的角色。

HSM 是专用的硬件设备(可以是插在服务器上的卡,也可以是独立的网络设备),承担几类核心职能:

  • 密钥生成与存储:为整个机构生成和管理大量密钥(如 CA 的根证书私钥、批量签发用户证书需要用到的签名私钥),密钥同样遵循「生成后不可导出」的原则
  • 密码学运算:签名、加解密等运算在 HSM 内部完成,业务系统只是发起请求、接收结果,从不接触私钥本身
  • 物理防篡改:符合金融级安全要求的 HSM 通常带有物理防拆机制,一旦检测到被拆解或异常探测,会自动清除内部存储的密钥
⚠
HSM 解决的是「机构自己怎么保护批量密钥」的问题,与用户侧的 USB Key 解决「个人怎么保护自己的私钥」的问题是同一个思路在不同规模上的应用。二者往往同时出现在一套完整的证书体系里:机构用 HSM 保护CA根密钥和签发流程,用户拿着 USB Key 存放自己的证书私钥。

4. 国密算法:SM2/SM3/SM4

国内合规场景下,涉及密码学的系统常被要求使用国密算法(Chen 注:国密算法是国家密码管理局(现国家密码管理局,隶属中央办公厅)主导制定的一系列密码学算法标准,是国内信息系统密码合规的重要组成部分,尤其在金融、政务、关基设施领域应用广泛。)而非国际通用的算法(如 RSA、AES、SHA-256)。本篇涉及的三种国密算法各自对应一类密码学运算:

  • SM2:椭圆曲线公钥密码算法,对应本篇讲的非对称密钥签名/加密场景,是 RSA/ECDSA 的国产替代
  • SM3:密码散列(哈希)算法,对应 RFC 里 SHA 系列的角色,常用于数字签名前的消息摘要计算
  • SM4:分组对称加密算法,对应 AES 的角色,用于数据本身的加解密(不是本篇的密钥认证场景,但常与 SM2/SM3 搭配出现在同一套证书体系里)

USB Key、智能卡、HSM 这类硬件产品面向国内金融机构销售时,通常都会提供国密算法版本,芯片内置的安全协处理器直接支持 SM2 签名运算,私钥生成、存储、运算的流程与前面讲的国际算法版本完全一致,只是底层的数学运算换成了国密标准。

✓
国密算法的引入不改变本篇讲的「私钥不出硬件」这个核心设计思路,只是把签名/哈希运算换成了符合国内合规要求的具体算法实现。后面第 7 篇讲专线场景时会直接引用这个结论,不再重复算法细节。

5. 两种场景对比:证书体系的信任根不同

  • 内部落地系统:机构通常自建 CA(Chen 注:CA(Certificate Authority,证书颁发机构):负责签发和管理数字证书的机构或系统。自建 CA 意味着机构自己充当信任根,为内部用户和系统签发证书;相对的是使用第三方公共 CA(如面向公网服务的商业 CA)。),作为整个证书体系的信任根。员工的 USB Key/智能卡由机构自己的 CA 签发证书,机构自己的 HSM 保护根密钥和签发流程。这条信任链完全在机构自己的控制范围内,从密钥生成、证书签发到吊销,机构都有完全的可见性和控制力。

  • 专线托管端系统:证书体系可能由托管方运营,也可能是机构证书体系和托管方系统之间建立信任互认关系(机构的证书被托管方系统识别和信任,反之亦然)。信任链因此变长,机构自己签发的证书要被另一个机构的系统信任,中间可能涉及交叉签名、信任链嵌套(Chen 注:交叉签名(cross-signing):两个 CA 互相为对方的证书签名,让各自签发的证书能被对方体系信任,常见于两条独立信任链需要互认时。信任链嵌套:一条证书链里插入多级中间 CA(比如 A 的中间 CA 证书由 B 的 CA 签发),验证时要沿着更长的路径逐级验证到各自的根,而不是直接到一个共同的根。)等更复杂的证书管理机制。谁来承担证书吊销、有效期管理的责任,需要在合作协议里明确划分。

ℹ
这个「信任链变长」的问题,会在第 7 篇讨论专线场景特有方案时进一步展开。专线本身提供的网络层信任,某种程度上可以简化这条证书信任链的复杂度(比如通过 IP 白名单减少对证书吊销检查实时性的依赖)。

6. 强度尺定位

按第 1 篇的三级尺,USB Key/智能卡+PIN 码的组合,以及基于 HSM 托管私钥的证书认证,都属于 L3(强化级):真正的双因素(持有硬件+知道PIN),且因素本身基于硬件加密实现,私钥不出硬件,这正是 L3 的定义门槛。

这是本系列目前讲到的方案里强度最高的一档,代价是实现和运维成本也最高:需要建设或采购 CA 体系、需要给每个用户发放和管理硬件设备、证书的生命周期管理(签发、更新、吊销)本身就是一套复杂的系统工程。


7. 小结

非对称密钥认证的核心思想是私钥不传输、不共享,甚至从设计上就不可能被导出,从根本上解决了前几篇反复出现的「密钥托管介质是否可信」的问题。USB Key/智能卡把这套思想落地到用户侧,HSM 把它落地到机构侧,国密算法则是国内合规场景下这套思想的具体算法实现。

下一篇转向一类完全不同的因素:生物识别。它不再讨论「密钥存在哪」,而是讨论「匹配这件事发生在哪」,这个问题会带来一套新的信任边界判断方式。

​
服务器