[問題] 如何確認和關閉使用TLS1.0?

看板AndroidDev作者 (joycece)時間7年前 (2017/05/24 18:15), 7年前編輯推噓0(0010)
留言10則, 1人參與, 最新討論串1/1
請問要怎麼知道目前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

05/24 18:44, , 1F
你整個程式連網的部分就只有這個socket?
05/24 18:44, 1F

05/24 18:45, , 2F
RC4就在setEnabledCipherSuites把RC4拿掉啊
05/24 18:45, 2F

05/24 18:49, , 3F
另外支援的android版本是? 4.1以上才有TLS 1.2
05/24 18:49, 3F
的確只有這個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

05/25 14:03, , 4F
應該是,protocol的部分你原本的寫法就ok了
05/25 14:03, 4F

05/25 14:05, , 5F
但是android 4.0.3(api level 15)以下沒有TLS1.1、1.2
05/25 14:05, 5F

05/25 14:06, , 6F
你要自己試一下在那些版本上會是怎樣的結果
05/25 14:06, 6F

05/25 14:07, , 7F
android支援跟你用的JDK、AS、android SDK版本都沒關係,開
05/25 14:07, 7F

05/25 14:08, , 8F
發環境只是build用,實際有沒有只看裝置的android版本
05/25 14:08, 8F

05/25 14:09, , 9F
另外以我送檢測的經驗,這些東西其實只要設server端就好
05/25 14:09, 9F

05/25 14:09, , 10F
除非你的是連不特定網站那就沒辦法了
05/25 14:09, 10F
文章代碼(AID): #1P9Lqnp3 (AndroidDev)
文章代碼(AID): #1P9Lqnp3 (AndroidDev)