作者joycece (joycece)
看板AndroidDev
标题[问题] 如何确认和关闭使用TLS1.0?
时间Wed May 24 18:15:11 2017
请问要怎麽知道目前App有在使用TLS1.0?
以及如果确定有,要怎麽关闭或移除?
另外想再问TLS1.2如何知道有在使用RC4?
以及如果确定有,要怎麽关闭或移除?
目前接手的App被侦测有这两个问题,
看程式目前也只设定TLS1.2
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(null, tmf.getTrustManagers(), null);
SSLSocketFactory sslFact = ctx.getSocketFactory();
mSock = (SSLSocket) sslFact.createSocket();
mSock.setEnabledCipherSuites(mSock.getSupportedCipherSuites());
String[] s={"TLSv1.2"};
mSock .setEnabledProtocols(s);
不懂为什麽会被侦测到有使用TLS1.0和TLS1.2使用RC4?
所以想知道应该朝哪个方向可以解决这两个问题?
感谢~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.216.130.205
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/AndroidDev/M.1495620913.A.CC3.html
1F:→ ssccg: 你整个程式连网的部分就只有这个socket? 05/24 18:44
2F:→ ssccg: RC4就在setEnabledCipherSuites把RC4拿掉啊 05/24 18:45
3F:→ ssccg: 另外支援的android版本是? 4.1以上才有TLS 1.2 05/24 18:49
的确只有这个Socket,
请问是将mSock.getSupportedCipherSuites() 移除 RC4的部分,
再用setEnabledCipherSuites 设定吗?
目前android 支援版本是 4.0~5.1 , 和server连线也是用TLS 1.2,
但不知为什麽被送检侦测说有用TLS 1.0? 也不知道要怎麽知道有用到以及设定关掉?
会是和使用的JDK还是Android Studio版本有关吗?
目前JDK是1.8 Android Studio 2.2.2
Update 1
我後来透过getSupportedProtocols 和 getSupportedCipherSuites
知道有用Supported protocols: [SSLv3, TLSv1, TLSv1.1, TLSv1.2]
以及 11个有用到RC4的CipherSuites
想请问如何disable TLSv1 ?
RC4现在想到的方法就是重新滤掉跟RC4有关的CipherSuites,
再重新设定回去, 不知道是不是这样?
※ 编辑: joycece (61.216.130.205), 05/25/2017 11:26:34
4F:→ ssccg: 应该是,protocol的部分你原本的写法就ok了 05/25 14:03
5F:→ ssccg: 但是android 4.0.3(api level 15)以下没有TLS1.1、1.2 05/25 14:05
6F:→ ssccg: 你要自己试一下在那些版本上会是怎样的结果 05/25 14:06
7F:→ ssccg: android支援跟你用的JDK、AS、android SDK版本都没关系,开 05/25 14:07
8F:→ ssccg: 发环境只是build用,实际有没有只看装置的android版本 05/25 14:08
9F:→ ssccg: 另外以我送检测的经验,这些东西其实只要设server端就好 05/25 14:09
10F:→ ssccg: 除非你的是连不特定网站那就没办法了 05/25 14:09