gpt4 book ai didi

Android:以编程方式确定设备的 TLS 支持

转载 作者:太空宇宙 更新时间:2023-11-03 12:03:49 25 4
gpt4 key购买 nike

所以我使用的主机最近禁用了 TLS 1.0,所以对于任何不支持 TLS 1.0 的设备,我需要使用 http 而不是 https(无论如何都不会发送任何敏感信息......我只是更喜欢对所有内容使用 SSL在可能的情况下)。

似乎 TLS 1.1/1.2 自 API 16 以来就已受支持,但自 API 20 或 21 左右以来默认情况下并未启用。关于默认切换的确切时间存在相互矛盾的报告。参见例如here (来自 API 20 的建议)和 here (来自 API 21 的建议)。而且似乎有些设备甚至在 API 20 之前都启用了 TLS 1.1/1.2 支持,这可能是因为制造商进行了调整以实现这一点。

我知道可以在支持它的设备上启用 TLS 1.1/1.2(参见例如 here ),甚至可以按照 here 所述通过 Play 服务来实现.

但我宁愿没有实现这些黑客攻击的麻烦(并处理来自用户的任何问题),并且只是接受任何运行我的应用程序但尚不支持 TLS 1.1/1.2 的设备应该使用 http 而不是比https。正如我所说,无论如何都不会传达任何被归类为“敏感”的内容。随着时间的推移,不支持 TLS 1.1/1.2 的设备数量将会减少。

那么,话虽如此,是否有一种方法可以通过编程确定设备支持哪些 TLS 版本?

目前我只使用 API 版本进行此检查(“从 API 21 开始使用 https”),但最好更明确地检查 TLS 支持,因为一些旧设备也将支持 TLS 1.1/1.2。

最佳答案

So, with that said, is there a way of programmatically determining what TLS versions are supported by the device?

试试这个:

SSLParameters sslParameters;
try {
sslParameters = SSLContext.getDefault()
.getDefaultSSLParameters();
} catch (NoSuchAlgorithmException e) {
// ...
}

// SSLv3, TLSv1, TLSv1.1, TLSv1.2 etc.
sslParameters.getProtocols();

关于Android:以编程方式确定设备的 TLS 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42855333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com