Android 啟用 SessionTicket

貌似還沒有看到 Android 關(guān)于 SessionTicket,前些天正好用到,這里寫一下。
關(guān)于協(xié)議相關(guān)的,這里就不贅述了,感興趣的可以去看 RFC

這里先把具體代碼列一下,然后我們在細說。

SSLSessionCache sessionCache = new SSLSessionCache(getApplicationContext());
SSLCertificateSocketFactory socketFactory = (SSLCertificateSocketFactory)SSLCertificateSocketFactory.getDefault(5000, sessionCache);
Socket socket = socketFactory.createSocket();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
 socketFactory.setUseSessionTickets(socket, true);
}

需要注意的地方:

  • SSLSessionCache、SSLCertificateSocketFactory 可以做成單例,這里只是方便展示,所以直接 new 的對象(當(dāng)然不搞單例也沒什么問題)。
  • SSLCertificateSocketFactory.getDefault(5000, sessionCache) 中的 5000 僅為個人經(jīng)驗值,大家可以根據(jù)自己的需要設(shè)置不同值。

其中涉及到的主要是兩個類 SSLSessionCache.java、SSLCertificateSocketFactory.java

關(guān)于 SessionTicket:

我這抓包截了幾張給大家看一下:

這一張是正常的 TLS 握手,可以看到其中 NO.92 中的長度為 3278:


ServerHelloWithCertificate.png

展開后可以看到下圖,其中 Certificate 占了 2795:


CertificateLeangth.png

具體的 SessionTicket 是在第一張圖中的 NO.96 發(fā)送過來的,具體展開可以看到 SessionTicket 的具體內(nèi)容,如圖:


SessionTicket.png

SSLSessionCache 負責(zé)上述 Session 的緩存。當(dāng)已經(jīng)有緩存了以后,再次 Client Hello 會把 SessionTicket 附上,所以圖一中的 Client Hello 長度只有 237,下圖的 ClientHello 為 571,而 Server Hello 只有 191 了:


ServerHello.png

至于 SessionTicket 怎么生成: 阮一峰 - 圖解SSL/TLS協(xié)議

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,725評論 25 709
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,623評論 18 399
  • 真的好喜歡歌。 喜歡美麗的歌詞,喜歡優(yōu)美的旋律,歌詞蘊含深深的情感,再配上一個高質(zhì)量音色的歌手,簡直完美。 有時候...
    嵐風(fēng)的葉子閱讀 201評論 0 0
  • 當(dāng)你讀到這些文字的時候你已經(jīng)快畢業(yè)了。我不知道未來的這二百百多天的日子里你要經(jīng)歷些什么,不過既然已經(jīng)跋涉了十幾年,...
    Chanlincar_閱讀 600評論 0 0

友情鏈接更多精彩內(nèi)容