我开始深入了解客户要求我们使用FIPS 140-2来处理静态数据和传输中的数据。从我(有限)的阅读到目前为止,听起来像iOS 7及以上内置了FIPS支持。我也看到过关于这个主题的文章(带有FIPS的iOS)指向构建OpenSSL并将其包含在你的项目中以获得FIPS支持。如果FIPS已经包含在iOS 7+中,我不确定为什么需要OpenSSL。我错过了什么吗?
答案 0 :(得分:3)
在撰写本文时,对于较新的Apple设备和过去6的iOS版本,OpenSSL FIPS几乎被打破,因为要编译它需要对构建过程进行大量修改,这对于FIPS合规性是绝对不允许的。除非您重新认证,否则您将获得一个库,但不符合FIPS标准。尝试逐步完成记录的构建过程以观察雷区。尚未纳入帮助解决问题的社区贡献。它也不是很安全,因为它没有针对威胁进行响应性更新。 Heartbleed将与我们合作多年,但CommonCrypto相比之下转为一角钱,根据需要重新认证,并与其他操作系统更新一起更新。 使用Apple CommonCrypto。
关于它被破坏的原因之一:https://groups.google.com/forum/#!topic/mailing.openssl.users/V_HITNhWaDA
我提出的相关(非重复)问题。唯一的答案打破了FIPS合规性。 Unknown cpu type when compiling OpenSSL FIPS Capable libraries for arm64 or arm7s
答案 1 :(得分:0)
除非您需要OpenSSL中不在Common Crypto中的某些功能,否则请使用Common Crypto。
Apple不再提供OpenSSL的原因是由于许多情况下SSL不向后兼容,Apple提供的当前版本可能与使用早期版本构建的应用程序不兼容。
此外,Common Crypto使用内置硬件加密,而OpenSSL可能不使用。
答案 2 :(得分:0)
为什么使用OpenSSL用于FIPS 140-2而不是依赖于iOS上的CoreCrypto?
OpenSSL可在更广泛的iOS平台上使用。例如,OpenSSL包括使用A4到A6处理器的iOS 5到iOS 7。有更多iOS验证,但它们尚未根据证书1747提供给公众。例如,基金会已经在进行iOS 8验证。
此外,OpenSSL可在非Apple平台上使用。后者很有吸引力,因为相同的代码库可以在多个平台上使用,包括Windows,Linux和Android。
Apple于2013年5月首次验证,这意味着Apple从2010年到2013年夏天没有任何可用的东西。这是一个很大的空白。 Apple仍然只提供经过验证的模块,最高可达iOS 7。在缺少供应商支持期间,Apple通过他们的营销文献证明他们有一个经过验证的模块。 (Apple有一个"模块正在进行",这与"验证模块"不同。它花了几年的时间才得到验证,这是闻所未闻的。)
作为追随这些事情的人,从2010年到2013年,Apple的策略显然是为了混淆那些正在寻找FIPS 140验证模块的人。 (我写信给CMVP关于Apple的卑鄙做法.CMVP将要求像Apple这样的供应商停止和停止订购.Apple并不是唯一一个混淆并欺骗人们的供应商--CipherCloud也是这样做的。