opentok-android-sdk-2.3.1 和 OpenSSL 漏洞问题

opentok-android-sdk-2.3.1 and OpenSSL vulnerability issue

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

Google Play 60-day deadline for resolving OpenSSL vulnerabilities

它指出我使用的是一个 OpenSSL 版本,该版本易受某些问题的影响。但是,我没有直接使用 OpenSSL。我将 OpenTok 库用于视频聊天功能,它在内部使用 OpenSSL。我目前使用的是 openTok SDK 2.3.1 版。但是根据这个 link 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 库。 integrating/updating 到新库后,我执行以下命令:

  $ 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 and OpenSSL warning message post 和那里提供的所有解决方案,但我无法获得 OpenSSL 版本。

关于此的任何信息都将非常有用。 提前致谢。

Does it now mean that if i update this new APK on the Google play store, Will the application be accepted?

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


Is there a way to check if my OpenSSL version is still vulnerable to issues (as mentioned in the mail from google play)?

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


Is there a ways to get the version of OpenSSL being used in my APK (Although, $ unzip -p YourApp.apk | strings | grep "OpenSSL", was not able to list the version of OpenSSL)

我相信您需要在这里与 OpenTok 人员核实。 OpenTok 似乎切换到了 BoringSSL at version 2.4.0。 BoringSSL 是 Google 的 OpenSSL 分支。