2011-05-10 68 views
14

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

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

什么我可以导入或做使TLSv1.2工作和Android版密码的任何想法?有什么我失踪?任何想法都会有所帮助!谢谢!

+1

FWIW的Android 4.1果冻豆包括TLSv1.2工作和TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA – mfrankli 2012-07-03 19:21:34

+0

@Otra你可以罚款任何事情。我有同样的问题。我无法升级我的android操作系统。所以你的回答可能对我有帮助。 – 2017-01-18 07:12:54

回答

1

如果不存在,您无法真正启用它。要添加对TLSv1.2的支持,您需要添加新的JSSE provider(不是微不足道的),或者如果您只需要一个套接字,则可能使用OpenSSL以本地代码实现它。如果可以的话,也可以直接使用JB。

+0

我正在尝试为我们的应用程序实现TLS 1.2,这些应用程序支持来自android 2.3,并且您在此提到添加新的JSSE提供程序。更新到最新的JDK 1.7是否可以帮助我启用TLS 1.2,因为这意味着使用最新的JSSE提供程序? – 2015-07-05 09:10:22

+0

@VyshakhAmarnath你有没有设法在android 2.3上启用TSL 1.2? – 2016-02-24 15:58:16

+0

@VyshakhAmarnath你有没有在Android 2.3上使用它? – ifiok 2016-04-01 06:05:53

1

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

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

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

+0

您是否介绍更多关于此的内容?或者你知道一个很好的例子吗? – Jacksonkr 2015-09-14 15:04:29