【问题标题】:Why use OpenSSL for FIPS 140-2 vs relying on CoreCrypto on iOS?为什么在 FIPS 140-2 上使用 OpenSSL 而在 iOS 上依赖 CoreCrypto?
【发布时间】:2014-11-12 17:55:34
【问题描述】:

我开始深入了解我们使用 FIPS 140-2 处理静态数据和传输中数据的客户要求。从我目前的(有限)阅读来看,听起来 iOS 7 及更高版本内置了 FIPS 支持。我还看到有关该主题的文章(带有 FIPS 的 iOS)指向构建 OpenSSL 并将其包含在您的项目中以获得 FIPS 支持.如果 FIPS 已包含在 iOS 7+ 中,我不确定为什么需要 OpenSSL。我错过了什么吗?

【问题讨论】:

  • 它经常出现在需求中的最大原因是因为它适用于其他平台,尤其是web,因此安全专业人员和架构师对它很熟悉,甚至可能为一些受监管的行业和机构也是如此。这是“要求”和“满足要求”概念之间的混淆。要求应符合 FIPS,并且特定库的决定符合要求。

标签: ios fips


【解决方案1】:

在撰写本文时,OpenSSL FIPS 对于较新的 Apple 设备和超过 6 的 iOS 版本几乎无法使用,因为要编译它需要对构建过程进行大量修改,这绝对不允许 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

【讨论】:

  • 第一句话是绝对错误的。 (我不认为 OpenSSL 不容易使用,因为它的文档记录很差)。 OpenSSL User Guide 2.0 中提供了 iOS 的文档化流程。附录 E.2 提供了带有屏幕截图的分步示例。此外,CommonCrypto 未经 FIPS 验证。请参阅 NIST 的 Validated FIPS 140-1 and FIPS 140-2 Cryptographic Modules。
  • 绝对正确。这些说明当然存在,但未经修改不适用于 iOS 7 或 8,这实际上使产品无效。试试看。修改后,请尝试在运行时对最近的架构进行验证,而无需同时修改代码。另外,让我向您介绍有关 Apple 和 fips 140-2 的文档:csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/…
【解决方案2】:

除非您需要某些 OpenSSL 中的功能,但 Common Crypto 中没有,请使用 Common Crypto。

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

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

【讨论】:

    【解决方案3】:

    为什么在 FIPS 140-2 上使用 OpenSSL 而在 iOS 上依赖 CoreCrypto?

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

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

    Apple 在 2013 年 5 月获得了第一次验证,这意味着从 2010 年到 2013 年夏天,Apple 没有任何可用的东西。那是一个很大的空白。 Apple 仍然只提供一个经过验证的模块,直到 iOS 7。

    在缺少供应商支持期间,Apple 通过其营销资料表明他们拥有经过验证的模块。 (Apple 有一个“Module In Progress”,它与“Validated Module”不同。他们花了好几年才得到验证,这在某种程度上是闻所未闻的)。

    作为关注这些事情的人,Apple 从 2010 年到 2013 年的策略显然是为了迷惑那些正在寻找 FIPS 140 验证模块的人。 (我就 Apple 的卑鄙做法写信给 CMVP。CMVP 将要求像 Apple 这样的供应商发出停止和终止令。Apple 并不是唯一一个混淆和欺骗人们的供应商 - CipherCloud 也这样做了)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多