作者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/m.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