Проблема уязвимости opentok-android-sdk-2.3.1 и OpenSSL

У меня есть приложение в магазине 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 были устранены начиная с версии 2.2.1 SDK. (В настоящее время я использую 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 до последней версии, которая поставляется с opentok-android-sdk-2.5.0, После интеграции / обновления в новую библиотеку я выполняю следующую команду:

  $ 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 в магазине Google Play, будет ли принята заявка?
  • Есть ли способ проверить, уязвима ли моя версия OpenSSL к проблемам (как упоминалось в письме из Google Play)?
  • Есть ли способы получить версию OpenSSL, используемую в моем APK (хотя, $ unzip -p YourApp.apk | strings | grep "OpenSSL", не смог отобразить версию OpenSSL)

Замечания:

Я просмотрел это сообщение с предупреждением в Google Play и OpenSSL и все предоставленные там решения, но я не могу получить версию OpenSSL.

Любая информация об этом должна быть действительно полезной. Заранее спасибо.

1 ответ

Решение

Означает ли это теперь, что если я обновлю этот новый APK в магазине Google Play, будет ли принята заявка?

Вероятно, может быть. Сценарий, который Google использует для контроля над OpenSSL, довольно тупой. Они отмечают OpenSSL для номеров версий, а не использования уязвимых функций. Поскольку информация о версии отсутствует, сценарий может не сработать из-за того, что он считает плохой версией.


Есть ли способ проверить, уязвима ли моя версия OpenSSL к проблемам (как упоминалось в письме из Google Play)?

Да, используйте strings Программа для вывода строк OpenSSL.


Есть ли способы получить версию OpenSSL, используемую в моем APK (хотя, $ unzip -p YourApp.apk | strings | grep "OpenSSL", не смог отобразить версию OpenSSL)

Я считаю, что вы должны проверить с людьми OpenTok здесь. Похоже, OpenTok переключился на BoringSSL в версии 2.4.0. BoringSSL - это форк Google от OpenSSL.

Другие вопросы по тегам