2015-05-14 95 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