Проблема уязвимости 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.