作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
OS X 10.9 上 /usr/bin/security
的手册页表明,有一个 -x
选项用于 安全导入
指定私钥导入后不可提取
。
这是如何实现的?通过这种方式导入的私钥真的变得完全不可提取,还是仍然有办法通过某种内存转储来获取它们?应用程序如何仍然使用此类 key 进行加密?
最佳答案
我不确定应用程序如何仍然使用此类 key ,但根据 https://reverseengineering.stackexchange.com/questions/6043/extract-non-extractable-private-key-from-os-x-keychain ,这似乎只是作为 struct SecKeyImportExportParameters
的 CSSM_KEYATTR_FLAGS keyAttributes
的位属性实现,名为 CSSM_KEYATTR_EXTRACTABLE
。
如上所述,当导入完成后,当为security import
指定-x
选项时,该属性会被明确省略。
根据 SecItem.h,这个 kSecAttrIsExtractable
是在 OS X 10.6 中引入的。
随后,当尝试执行打包导出时,安全框架内的多个位置似乎会进行检查,以确保在执行任何类型的导出之前设置此 CSSM_KEYATTR_EXTRACTABLE
位,并返回错误如果未设置该属性。
关于macos - OS X 上钥匙串(keychain)中的不可提取私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25109994/
我是一名优秀的程序员,十分优秀!