看板 AndroidDev 關於我們 聯絡資訊
請問要怎麼知道目前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://www.ptt.cc/bbs/AndroidDev/M.1495620913.A.CC3.html
ssccg: 你整個程式連網的部分就只有這個socket? 05/24 18:44
ssccg: RC4就在setEnabledCipherSuites把RC4拿掉啊 05/24 18:45
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
ssccg: 應該是,protocol的部分你原本的寫法就ok了 05/25 14:03
ssccg: 但是android 4.0.3(api level 15)以下沒有TLS1.1、1.2 05/25 14:05
ssccg: 你要自己試一下在那些版本上會是怎樣的結果 05/25 14:06
ssccg: android支援跟你用的JDK、AS、android SDK版本都沒關係,開 05/25 14:07
ssccg: 發環境只是build用,實際有沒有只看裝置的android版本 05/25 14:08
ssccg: 另外以我送檢測的經驗,這些東西其實只要設server端就好 05/25 14:09
ssccg: 除非你的是連不特定網站那就沒辦法了 05/25 14:09