Реализация TLS 1.2 на Android 2.3.3 - PullRequest
14 голосов
/ 10 мая 2011

Я пытался реализовать TLS 1.2 на Android.Я создаю SSLSocket s, но когда я запускаю s.getSupportedProtocols (), TLS 1.2 не является одним из вариантов.TLSv1 и SSLv3 поддерживаются, но TLSv1.2 - нет.

В связи с этим вопросом также не нужен нужный мне набор шифров (TLS_ECDHE_ECDSA_WITH_AES_256 _...)

Любая идея о том, что яможет импортировать или сделать, чтобы включить TLSv1.2 и этот шифр на Android?Есть ли что-то, что мне не хватает?Любые идеи будут полезны!Спасибо!

Ответы [ 3 ]

6 голосов
/ 24 октября 2014

Только для целей документации (этому вопросу 3,5 года) - в документации по Android API есть список поддерживаемых SSL / TLS для каждого уровня API, включая определенные комплекты шифров: https://developer.android.com/reference/javax/net/ssl/SSLSocket.html

1 голос
/ 10 сентября 2013

Если вы все еще застряли с 2.3, лучшим вариантом будет создание (или использование) порта OpenSSL для Android с использованием NDK.OpenSSL имеет параметры настройки для Android.Используя NDK, вы можете создавать либо статически связанные библиотеки, либо динамически связанные библиотеки.Затем используйте JNI и настройте там сеанс TLS 1.2.Даже если вы используете JB, вам сначала нужно включить TLS 1.2.Весь ваш набор шифров не указан в списке, поэтому есть вероятность, что он все еще недоступен в JB, например, _GCM.

В этой таблице показано, какие наборы шифров поддерживаются каким уровнем API.

Эта ссылка stackoverflow также содержит информацию о сборке openssl для использования на Android.

1 голос
/ 05 июля 2012

Вы не сможете включить его, если его там нет.Чтобы добавить поддержку TLSv1.2, вам нужно либо добавить нового JSSE провайдера (не тривиально), либо, если вам нужен только сокет, возможно, реализовать его в собственном коде с использованием OpenSSL.Или просто используйте JB, если можете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...