cns*_*nst 2 security macos pki keychain private-key
/usr/bin/security
OS X 10.9上的手册页指示可以指定该-x
选项.security import
private keys are non-extractable after being imported
这是如何实现的?通过这种方式导入的私钥是否真的变得完全不可提取,或者是否还有办法通过某种内存转储来保存它们?应用程序如何仍然使用这些密钥来加密?
我不确定应用程序仍然使用这些密钥,但根据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,这kSecAttrIsExtractable
已经在OS X 10.6中引入.
随后,当尝试执行包装导出时,安全框架中的几个位置似乎检查以确保CSSM_KEYATTR_EXTRACTABLE
在执行任何类型的导出之前设置此位,并在未设置该属性的情况下返回错误.