PKCS #11 API安全攻击分析
1. 对称密钥API攻击
在PKCS #11中,被包装的密钥或外部加密的密钥通常被称为加密密钥令牌(T)。密钥一般在密钥加密密钥(KEK)下进行包装(或加密)以用于交换,或者在主密钥(MK)下进行存储,以便在设备外部使用。下面我们来详细分析几种对称密钥API攻击方式。
1.1 密钥伪造(Key Conjuring)
密钥伪造是指在设备中进行未经授权的密钥生成的任何技术。这种攻击方式之所以被称为“伪造”,是因为密钥似乎是凭空“变出来”的。它带来安全风险主要有两个原因:一是绕过了官方密钥生成函数的访问控制,提供了一种未经授权但能达到相同效果的操作方式;二是攻击者可以利用密钥伪造机制生成大量密钥,然后通过并行搜索进行攻击。
例如,在一些旧设备中,将随机的8字节作为外部加密的DES密钥提交,设备会对其进行解密并尝试将其用作密钥。若执行奇偶校验,新“密钥”有1/256的概率具有正确的奇偶性。攻击者平均重复此过程256次,就有可能成功在系统中伪造出一个新密钥。不过,通过使用消息认证码(MAC)或哈希函数可以防止密钥伪造,因为它们能验证密钥的明文值是否有效。
1.2 密钥绑定(完整性)
在使用C_WrapKey函数时,模式的选择由调用者(用户)决定,并且没有强制使用MAC或其他技术来确保数据的真实性,也没有限制使用两半重复的密钥。由于缺乏加密绑定,攻击者可以独立攻击密钥的每一半,具体步骤如下:
1. 导出目标双长度密钥(在任何密钥加密密钥和任何模式下),将双长度密钥表示为有序对K = ⟨K1, K2⟩,每一半将独立加密形成加密密钥令牌(T):
- T = eKEK(⟨K
超级会员免费看
订阅专栏 解锁全文
53

被折叠的 条评论
为什么被折叠?



