【问题标题】:opentok-android-sdk-2.3.1 and OpenSSL vulnerability issueopentok-android-sdk-2.3.1 和 OpenSSL 漏洞问题
【发布时间】:2015-07-25 23:21:18
【问题描述】:

我在 Google Play 商店中有一个应用程序。最近收到一封邮件:

Google Play 60-day deadline for resolving OpenSSL vulnerabilities

它表明我使用的是 OpenSSL 版本,该版本容易受到某些问题的影响。但是,我没有直接使用 OpenSSL。我正在将 OpenTok 库用于视频聊天功能,它在内部使用 OpenSSL。我目前正在使用 openTok SDK 2.3.1 版。但根据此链接http://www.tokbox.com/blog/mobile-sdks-2-2-1-resolve-openssl-vulnerability/,所有 OpenSSL 漏洞均已从 SDK 版本 2.2.1 开始解决。 (我目前使用的是 2.3.1,它必须在 2.2.1 之后发布)

我在我的 android 应用程序(APK 文件)上使用了以下命令:

$ unzip -p YourApp.apk | strings | grep "OpenSSL"

我得到了以下日志:

"OpenSSL"
GmsCore_OpenSSL
OpenSSLAdapter::OnCloseEvent(
OpenSSLAdapter::Error(
OpenSSLAdapter::OnConnectEvent
Failed to create OpenSSLCertificate from PEM string.
OpenSSLStreamAdapter::Error(
OpenSSLStreamAdapter::OnEvent SE_OPEN
OpenSSLStreamAdapter::OnEvent
OpenSSLStreamAdapter::OnEvent(SE_CLOSE, 
OpenSSLStreamAdapter::Read(
OpenSSLStreamAdapter::Write(
OpenSSL CMAC method
%s(%d): OpenSSL internal error, assertion failed: %s
OpenSSL PKCS#3 DH method
OpenSSL DH Method
OpenSSL DSA method
OpenSSL EC algorithm
OpenSSL ECDH method
OpenSSL ECDSA method
OpenSSL HMAC method
You need to read the OpenSSL FAQ, http://www.openssl.org/support/faq.html
OpenSSL RSA method
OpenSSL 1.0.1e 11 Feb 2013
OpenSSL default user interface
OpenSSLAdapter::OnCloseEvent(
OpenSSLAdapter::Error(
OpenSSLAdapter::OnConnectEvent
Failed to create OpenSSLCertificate from PEM string.
OpenSSLStreamAdapter::Error(
OpenSSLStreamAdapter::OnEvent SE_OPEN
OpenSSLStreamAdapter::OnEvent
OpenSSLStreamAdapter::OnEvent(SE_CLOSE, 
OpenSSLStreamAdapter::Read(
OpenSSLStreamAdapter::Write(
OpenSSL CMAC method
%s(%d): OpenSSL internal error, assertion failed: %s
OpenSSL PKCS#3 DH method
OpenSSL DH Method
OpenSSL DSA method
OpenSSL EC algorithm
OpenSSL ECDH method
OpenSSL ECDSA method
OpenSSL HMAC method
You need to read the OpenSSL FAQ, http://www.openssl.org/support/faq.html
OpenSSL RSA method
OpenSSL 1.0.1e 11 Feb 2013
OpenSSL default user interface

从上面的日志中,我确认在我当前的 apk 中,OpenTok 正在使用 OpenSSL OpenSSL 1.0.1e。

因此,我已经用 opentok-android-sdk-2.5.0 附带的最新版本更新了 OpenTok 库。集成/更新到新库后,我执行以下命令:

  $ unzip -p YourApp.apk | strings | grep "OpenSSL"

以下是更新 OpenTok 库的 APK 日志:

"OpenSSL"
GmsCore_OpenSSL
OpenSSL EC algorithm
OpenSSL HMAC method
OpenSSL RSA method
OpenSSLAdapter::Error(
OpenSSLAdapter::OnCloseEvent(
OpenSSLAdapter::OnConnectEvent
Failed to create OpenSSLCertificate from PEM string.
OpenSSLStreamAdapter::Error(
OpenSSLStreamAdapter::Write(
OpenSSLStreamAdapter::Read(
OpenSSLStreamAdapter::OnEvent SE_OPEN
OpenSSLStreamAdapter::OnEvent
OpenSSLStreamAdapter::OnEvent(SE_CLOSE, 
OpenSSL EC algorithm
OpenSSL HMAC method
OpenSSL RSA method
OpenSSLAdapter::Error(
OpenSSLAdapter::OnCloseEvent(
OpenSSLAdapter::OnConnectEvent
Failed to create OpenSSLCertificate from PEM string.
OpenSSLStreamAdapter::Error(
OpenSSLStreamAdapter::Write(
OpenSSLStreamAdapter::Read(
OpenSSLStreamAdapter::OnEvent SE_OPEN
OpenSSLStreamAdapter::OnEvent
OpenSSLStreamAdapter::OnEvent(SE_CLOSE,

在这里,我们在获取的日志中没有看到任何版本的 OpenSSL。

所以我的问题是:

  • 现在是否意味着如果我在 Google Play 上更新这个新的 APK 商店,申请会被接受吗?
  • 有没有办法检查我的 OpenSSL 版本是否仍然容易受到 问题(如 google play 的邮件中所述)?
  • 有没有办法让我的 APK 中使用的 OpenSSL 版本 (虽然,$ unzip -p YourApp.apk | strings | grep "OpenSSL",不是 能够列出 OpenSSL 的版本)

注意:

我已经浏览了这个Google Play and OpenSSL warning message 帖子以及那里提供的所有解决方案,但我无法获得 OpenSSL 版本。

这方面的任何信息都将非常有帮助。 提前致谢。

【问题讨论】:

  • “我目前正在使用 openTok SDK 版本 2.3.1...” - 您可能使用的是最新版本,似乎是 2.5.1。这完全避免了 OpenSSL,因为在 2.4 版中切换到 BoringSSL。
  • @jww:会这样做。但是更新到最新版本后,openssl 版本详细信息从命令中消失了:unzip -p apk |字符串 | grep "OpenSSL"
  • "更新到最新版本后,openssl 版本细节消失了……" - 完美,听起来对你来说不再是问题了。

标签: android openssl opentok boringssl


【解决方案1】:

现在是否意味着如果我在 Google Play 商店更新这个新的 APK,该应用程序会被接受吗?

可能是。 Google 用来监管 OpenSSL 的脚本非常愚蠢。他们将 OpenSSL 标记为版本号,而不是使用易受攻击的功能。由于没有版本信息,脚本可能不会触发它认为是错误的版本。


有没有办法检查我的 OpenSSL 版本是否仍然容易出现问题(如 google play 的邮件中所述)?

是的,使用strings 程序转储 OpenSSL 字符串。


有没有办法获取我的 APK 中使用的 OpenSSL 版本(虽然,$ unzip -p YourApp.apk | strings | grep "OpenSSL",无法列出 OpenSSL 的版本)

我相信你需要在这里与 OpenTok 人员核实一下。看起来 OpenTok 在version 2.4.0 切换到BoringSSL。 BoringSSL 是 Google 的 OpenSSL 分支。

【讨论】:

  • 感谢您的回答。如果我上传新的apk,有没有办法喜欢,谷歌播放的人会在阻止我的应用程序之前先通知我吗?如果 OpenTok 使用 BoringSSL v2.4.0,是否意味着不会阻止我的应用程序??
  • @Zax - 我不知道 Google Play 有什么控件。在上传时进行扫描并向开发人员提供反馈似乎是个好主意。但我不知道 Google Play 是否正在这样做,因为我不使用 Google Play。 (我使用 Cyanogenmod,它没有默认的应用商店或集成)。
  • 正如我在博文中提到的,2.2.1(以及我们迁移到 BoringSSL 之前的所有未来版本)具有带有必要安全补丁的 OpenSSL,但不是版本更新字符串,所以提到的stringsdump jww 会给你一个误报,因为 Google Play 正在寻找的漏洞。升级 OpenTok SDK 确实是最简单的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-18
  • 1970-01-01
  • 1970-01-01
  • 2017-05-12
  • 1970-01-01
  • 2015-04-14
  • 2011-03-07
相关资源
最近更新 更多