OS X上的Keychain中不可提取的私钥

时间:2014-08-03 23:20:00

标签: macos security keychain private-key pki

OS X 10.9上/usr/bin/security的手册页指出,-xsecurity import个选项可指定private keys are non-extractable after being imported

这是如何实施的?通过这种方式导入的私钥是否真的变得完全不可提取,或者是否还有办法通过某种内存转储来保存它们?应用程序如何仍然使用这些密钥进行加密?

1 个答案:

答案 0 :(得分:5)

我不确定应用程序仍然使用这些密钥,但根据https://reverseengineering.stackexchange.com/questions/6043/extract-non-extractable-private-key-from-os-x-keychain,它似乎只是作为CSSM_KEYATTR_FLAGS keyAttributes struct SecKeyImportExportParameters的位属性实现的名为 CSSM_KEYATTR_EXTRACTABLE

如上所述,导入完成后,-x选项被指定为security import时,将特别省略此属性。


根据SecItem.h,OS X 10.6引入了 kSecAttrIsExtractable


随后,在尝试执行包装导出时,安全框架中的多个位置似乎检查以确保在执行任何类型的导出之前设置了此CSSM_KEYATTR_EXTRACTABLE位,并在以下情况下返回错误属性未设置。