在Android 2.3.3上实现TLS 1.2

时间:2011-05-10 12:42:09

标签: android ssl encryption

我一直在尝试在Android上实施TLS 1.2。我创建了一个SSLSocket但是当我运行s.getSupportedProtocols()时,TLS 1.2不是其中一个选项。支持TLSv1和SSLv3,但不支持TLSv1.2。

关于那个问题,我需要的密码套件也不在那里(TLS_ECDHE_ECDSA_WITH_AES_256 _...)

我有什么想法可以导入或执行以启用TLSv1.2和android上的密码?有什么我想念的吗?任何想法都会有所帮助!谢谢!

3 个答案:

答案 0 :(得分:6)

仅用于文档目的(此问题为3。5年) - Android API文档包含每个API级别支持的SSL / TLS列表,包括特定的密码套件:https://developer.android.com/reference/javax/net/ssl/SSLSocket.html

答案 1 :(得分:1)

如果不存在,你无法真正启用它。要添加对TLSv1.2的支持,您需要添加新的JSSE provider(非常简单),或者如果您只需要一个套接字,可能需要使用OpenSSL在本机代码中实现它。或者只是使用JB,如果可以的话。

答案 2 :(得分:1)

如果您仍然坚持使用2.3,那么您最好的选择是使用NDK为Android创建(或使用)OpenSSL端口。 OpenSSL有Android的配置选项。使用NDK,您可以构建静态链接库或动态链接库。然后使用JNI并在那里设置您的TLS 1.2会话。即使您使用JB,也必须首先启用TLS 1.2。您的整个密码套件未列出,因此它可能在JB中仍然不可用,例如_GCM。

table显示哪个API级别支持哪些密码套件。

stackoverflow链接还包含有关构建openssl以在Android上使用的信息。