2015-05-14 99 views
1

我在Google Play商店中有一个应用程序。最近我收到一封邮件:opentok-android-sdk-2.3.1和OpenSSL漏洞问题

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" 

下面是对APK日志与更新OpenTok库:

"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版本。

所以我的问题是:

  • 这是否意味着现在,如果我在谷歌更新这一新的APK发挥 商店,应用程序是否可以接受?
  • 有没有办法检查我的OpenSSL版本是否仍然容易受到 问题的影响(如google play中的邮件所述)?
  • 有没有在我的APK 正在使用的方式来获得的OpenSSL版本(虽然,$解压-p YourApp.apk |串| grep的“OpenSSL的”,是不是 能够列出的OpenSSL版本)

注:

我曾经使用过此Google Play and OpenSSL warning message后消失,所有提供的解决方案有,但我不能够得到OpenSSL的版本。

关于此的任何信息应该是非常有用的。 在此先感谢。

+0

*“我目前正在使用openTok SDK版本2.3.1 ...”* - 您应该使用最新版本,它似乎是2.5.1。由于在2.4版本切换到BoringSSL,这完全避免了OpenSSL。 – jww

+0

@jww:会这样做。但更新到最新版本后,openssl版本的详细信息将从命令中消失:unzip -p apk |字符串| grep“OpenSSL” – Zax

+1

*“在更新到最新版本后,openssl版本的详细信息将消失......” - 完美无缺,听起来像它不再是您的问题。 – jww

回答

1

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

也许可能。 Google用来警告OpenSSL的脚本非常笨拙。他们将OpenSSL标记为版本号,而不是使用易受攻击的函数。由于没有版本信息,因此脚本可能无法触发它认为是错误的版本。


有没有一种方法来检查,如果我的OpenSSL的版本仍然是脆弱的(如从谷歌播放邮件提到的)问题是什么?

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


有没有在我的APK正在使用的方式来获得的OpenSSL版本(虽然,$解压-p YourApp.apk |串| grep的“OpenSSL的”,无法列出的版本OpenSSL)

我相信你需要在这里与OpenTok人联系。它看起来像OpenTok切换到BoringSSLversion 2.4.0。 BoringSSL是Google的OpenSSL分支。

+0

感谢您的回答。有没有一种方法可以让我像上传新apk一样,谷歌玩家会在阻止我的应用之前先通知我?如果OpenTok使用BoringSSL v2.4.0,是否意味着不会阻止我的应用程序? – Zax

+0

@Zax - 我不知道Google Play控制了什么。扫描上传并向开发人员提供反馈似乎是个好主意。但我不知道Google Play是否会这样做,因为我没有使用Google Play。 (我使用Cyanogenmod,它没有默认的应用程序商店或其集成)。 – jww

+1

正如我在博客文章中提到的那样,2.2.1(以及所有将来的版本在我们移植到BoringSSL之前)都有OpenSSL,并且有必要的安全补丁,但*不更新版本字符串,因此提到的'strings' dump jww让您对Google Play正在追踪的漏洞产生误解。升级OpenTok SDK确实是通过这里树林的最简单的方法。 – wobbals