为什么将OpenSSL用于FIPS 140-2,而不是依赖iOS上的CoreCrypto



我开始深入了解客户的要求,即我们对静止数据和传输中的数据使用FIPS 140-2。到目前为止,从我(有限)的阅读来看,iOS 7及以上版本似乎内置了FIPS支持。我也看到过关于这个主题的文章(带FIPS的iOS)指向构建OpenSSL,并将其包含在您的项目中以获得FIPS支持。如果iOS 7+中已经包含FIPS,我不确定为什么OpenSSL是必要的。我是不是错过了什么?

在撰写本文时,OpenSSL FIPS对于较新的苹果设备和iOS过去6的版本来说几乎已经崩溃,因为编译它需要对构建过程进行大量修改,而这对于FIPS合规性来说是绝对不允许的。除非您重新认证,否则您将获得库,但不符合FIPS。试着通过有文件记录的建造过程来观察雷区。社区为帮助解决这些问题所作的贡献尚未纳入其中。它也不是很安全,因为它没有针对威胁进行响应更新。Heartbleed将伴随我们多年,但相比之下,CommonCrypto的盈利很低,它将根据需要重新认证,并与其他操作系统更新一起更新使用Apple CommonCrypto

关于它为什么会断开的众多线索之一:https://groups.google.com/forum/#!主题/mailing.openssl.users/V_HITNhWaDA

我提出了一个相关的(不重复的)问题。唯一的答案打破了FIPS合规性。为arm64或arm7s 编译支持OpenSSL FIPS的库时未知的cpu类型

除非您需要OpenSSL中的某些功能,而这些功能不在Common Crypto中,否则请使用Common Crypt。

苹果不再提供OpenSSL的原因是,在许多情况下,SSL不向后兼容,苹果提供的当前版本可能与使用早期版本构建的应用程序不兼容。

此外,Common Crypto使用内置硬件加密,而OpenSSL可能不会。

为什么将OpenSSL用于FIPS 140-2而不是依赖iOS上的CoreCrypto?

OpenSSL可在更广泛的iOS平台上使用。例如,OpenSSL包括使用A4到A6处理器的iOS 5到iOS 7。还有更多的iOS验证,但它们还没有根据1747证书向公众提供。例如,该基金会已经在进行iOS 8的验证。

此外,OpenSSL可在非苹果平台上使用。后者很有吸引力,因为这意味着相同的代码库可以在多个平台上使用,包括Windows、Linux和Android。

苹果公司于2013年5月获得了第一次验证,这意味着从2010年到2013年夏天,苹果公司没有任何可用的产品。那是一个很大的空白。苹果仍然只提供iOS 7之前的验证模块。

在缺少供应商支持的那段时间里,苹果公司通过营销文献表明他们有一个经过验证的模块。(苹果公司有一个"正在进行的模块",这与"已验证的模块"不同。他们花了数年时间才对其进行验证,这有点闻所未闻)。

作为一个关注这些事情的人,苹果从2010年到2013年的策略显然是为了迷惑那些正在寻找FIPS 140验证模块的人。(我就苹果的卑鄙行为写信给CMVP。CMVP将要求像苹果这样的供应商下达停止和停止订单。苹果并不是唯一一个对人们撒谎的供应商——CipherCloud也这么做了)。

最新更新