国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OkHttp網(wǎng)絡(luò)框架深入理解-SSL握手與加密

這篇具有很好參考價值的文章主要介紹了OkHttp網(wǎng)絡(luò)框架深入理解-SSL握手與加密。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

OkHttp簡介

由Square公司貢獻的一個處理網(wǎng)絡(luò)請求的開源項目,是目前Android使用最廣泛的網(wǎng)絡(luò)框架。從Android4.4開始HttpURLConnection的底層實現(xiàn)采用的是OkHttp。

特點:

  • 支持HTTP/2并允許對同一主機的所有請求共享一個套接字
  • 通過連接池,減少了請求延遲
  • 默認通過GZip壓縮數(shù)據(jù)
  • 響應(yīng)緩存,避免了重復(fù)的網(wǎng)絡(luò)請求
  • 請求失敗自動重試主機的其他ip,自動重定向

什么是SSL

SSL其實就是Secure Scoket Layer安全套接層,提供了一種為網(wǎng)絡(luò)通信提供安全以及數(shù)據(jù)完整性的安全協(xié)議,再傳輸層對網(wǎng)絡(luò)進行加密。

  • SSL記錄協(xié)議: 為高層協(xié)議提供安全封裝,壓縮,加密等基本功能
  • SSL握手協(xié)議:用與再數(shù)據(jù)傳輸開始前進行通信雙方的身份驗證、加密算法協(xié)商、交換秘鑰

https安全的http協(xié)議是建立在SSL層或TLS層上的http協(xié)議,在普通的傳輸層和http應(yīng)用層之間插入SSL或TLS安全層。

https使用非對稱加密進行加密秘鑰協(xié)商,采用對稱加密方式對報文進行加密處理以保證安全性

https不同于http,使用443端口作為默認端口,建立TCP連接后,會初始化SSL層,對加密參數(shù)進行溝通并交換秘鑰。

非對稱加密

數(shù)字簽名技術(shù)

數(shù)字簽名技術(shù)是為了證明數(shù)據(jù)的完整性,未經(jīng)過的三方修改(發(fā)送者身份的真實性);主要包括兩個方面:摘要算法和加密。

1.摘要算法通過哈希處理將原始信息轉(zhuǎn)換成固定長度的序列,確保輸入到輸出的一一映射,原始信息的變化將導(dǎo)致輸出結(jié)果的變化,常見的有MD5,SHA-1,SHA-256等。

2.加密采用非對稱加密,私鑰加密保證加密后的摘要信息無法更改

數(shù)字簽名流程:

1、對原始信息進行摘要算法處理,得到摘要信息,使用私鑰對摘要信息進行加密,生成簽名。

2、簽名與原始信息合并成最終簽名文件發(fā)布

3、接收方使用公鑰將簽名文件中的數(shù)字簽名進行解密

4、對原始信息進行摘要算法處理

5、對比3、4步的結(jié)果,一致說明文件未被更改;

數(shù)字證書

1.數(shù)字證書包含有公鑰,證書有效期,發(fā)證機構(gòu)等信息;數(shù)字證書需要向CA機構(gòu)申請,獲取到的數(shù)字證書是經(jīng)過簽名處理的。

  1. CA機構(gòu)的根證書是沒有經(jīng)過簽名的數(shù)字證書,可以直接拿到其公鑰。

  2. CA機構(gòu)頒發(fā)的次級證書已經(jīng)使用私鑰進行了簽名處理,可以使用CA根證書中的公鑰進行解密獲得次級證書中的公鑰。能正常解密才能說明次級證書的合法性。

  3. 客戶端持有CA根證書,在服務(wù)端發(fā)送申請到的數(shù)字證書給客戶端后,客戶端使用根證書公鑰解密處理,驗證服務(wù)端證書。

SSL握手過程

ssl握手過程完成加密算法的協(xié)商和加密秘鑰的確定,雙方數(shù)字證書的認證工作。

具體流程如下:

  • 1.客戶端發(fā)起連接請求,發(fā)送客戶端支持的SSL版本號,加密算法(密碼套件/Cipher Suites)列表,隨機數(shù)給服務(wù)端
  • 密碼套件格式:每個套件都以“SSL”開頭,緊跟著的是密鑰交換算法。用“With”這個詞把密鑰交換算法、加密算法、散列算法分開,例如:SSL_DHE_RSA_WITH_DES_CBC_SHA, 表示把DHE_RSA(帶有RSA數(shù)字簽名的暫時Diffie-HellMan)定義為密鑰交換算法;把DES_CBC定義為加密算法;把SHA定義為散列算法。
  • 2.服務(wù)端在客戶端支持的加密算法中選擇一組,和服務(wù)端證書(包含公鑰)、一個隨機數(shù)一起發(fā)給客戶端
  • 3.客戶端對服務(wù)端的證書進行驗證并獲取公鑰,產(chǎn)生一個稱作pre_master_secret的隨機密碼串,并使用服務(wù)器的公用密鑰對其進行加密(參考非對稱加/解密),并將加密后的信息發(fā)送給服務(wù)器;
  • 4.客戶端與服務(wù)器端根據(jù)pre_master_secret以及客戶端與服務(wù)器的隨機數(shù)值(第1,2步中的隨機數(shù))獨立計算出加密和MAC密鑰。

這里有三個秘鑰:服務(wù)端證書傳遞的公鑰,隱含的服務(wù)端持有的私鑰,最終的加密秘鑰;

公鑰和私鑰是非對稱加密算法的秘鑰,主要用于服務(wù)端和客戶端協(xié)商生成最終的加密秘鑰,保證協(xié)商過程的保密性

最終生成的加密秘鑰匙對稱加密算法的秘鑰,主要用于后面數(shù)據(jù)交換的加密

pre_master_secret是客戶端生成的一段隨機碼用于生成最終的加密秘鑰(使用秘鑰交換算法)。

以上流程是單向認證流程即只有客戶端對服務(wù)端進行認證

本文是對okhttp網(wǎng)絡(luò)框架中的SSL握手與加密的簡單介紹與理解,更多有關(guān)可以前往《okhttp網(wǎng)絡(luò)框架筆記》學(xué)習(xí)進階跟多技術(shù)板塊,可以點擊查看詳細類目。

OkHttp網(wǎng)絡(luò)框架深入理解-SSL握手與加密,Android?開發(fā),網(wǎng)絡(luò),okhttp,ssl,網(wǎng)絡(luò)協(xié)議,android文章來源地址http://www.zghlxwxcb.cn/news/detail-718974.html

到了這里,關(guān)于OkHttp網(wǎng)絡(luò)框架深入理解-SSL握手與加密的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • HTTPS加密協(xié)議詳解:TLS/SSL握手過程

    HTTPS加密協(xié)議詳解:TLS/SSL握手過程

    基于RSA握手和密鑰交換的客戶端驗證服務(wù)器為示例詳解TLS/SSL握手過程。 (1).client_hello 客戶端發(fā)起請求,以明文傳輸請求信息,包含版本信息,加密套件候選列表,壓縮算法候選列表,隨機數(shù),擴展字段等信息,相關(guān)信息如下: 支持的最高TSL協(xié)議版本version,從低到高依次 SS

    2024年02月09日
    瀏覽(30)
  • 深入理解TCP三次握手:連接可靠性與安全風(fēng)險

    深入理解TCP三次握手:連接可靠性與安全風(fēng)險

    導(dǎo)言 TCP簡介和工作原理的回顧 TCP三次握手的目的和步驟 TCP三次握手過程中可能出現(xiàn)的問題和安全風(fēng)險 為什么TCP三次握手是必要的? 是否可以增加或減少三次握手的次數(shù)? TCP四次揮手與三次握手的異同點 ????????在網(wǎng)絡(luò)通信中,TCP(Transmission Control Protocol)作為一種可靠

    2024年02月14日
    瀏覽(22)
  • 安卓:網(wǎng)絡(luò)框架okhttp

    安卓:網(wǎng)絡(luò)框架okhttp

    目錄 一、okhttp介紹 1. OkHttpClient類: ?常用方法: 2. Request類: ?常用方法: 3. Response類: 常用方法: 4. Call類: 常用方法:? 5. Interceptor接口: 常用方法:? 6. FormBody類: 常用方法: 7. MultipartBody類: ?常用方法: 8. WebSocket類: 常用方法: 二、okhttp使用方法 1、添加依賴:

    2024年02月12日
    瀏覽(18)
  • 深入理解TCP三次握手與四次揮手過程以及抓包實驗

    深入理解TCP三次握手與四次揮手過程以及抓包實驗

    最近,我正好在做socket相關(guān)的實驗,發(fā)現(xiàn)現(xiàn)在對計算機網(wǎng)絡(luò)知識有一點點模糊,借此機會,熟悉一下TCP連接過程并利用WireShark工具進行測試。 源端口號:占16比特,寫入源端口號,用來 標(biāo)識發(fā)送該TCP報文段的應(yīng)用進程。 目的端口號:占16比特,寫入目的端口號,用來 標(biāo)識接

    2024年02月08日
    瀏覽(18)
  • Android OkHttp/Retrofit框架使用Interceptor 抓包/mock數(shù)據(jù)

    在Android業(yè)務(wù)開發(fā)中,抓包/mock數(shù)據(jù)一般有 兩種方案 (該篇主要介紹第 二 種方案): 前提: 網(wǎng)絡(luò)庫使用的是okhttp或Retrofit。 這里就用到了okhttp框架的原理定義一個 MockDataInterceptor 【Mock數(shù)據(jù)攔截器】,并在創(chuàng)建Builder實例的時候直接使用 addIntercepter 【 應(yīng)用攔截器 】添加 Moc

    2024年02月07日
    瀏覽(15)
  • 深入理解SSL VPN

    深入理解SSL VPN

    名詞解析: SSL ( Secure Socket Layer ,安全套接字層 ) TLS(Transport Layer Security ,傳輸層安全協(xié)議 )????? TLS 1.0 是 IETF ( Internet Engineering Task Force , Internet 工程任務(wù)組)制定的一種新的協(xié)議,它建立在 SSL 3.0 協(xié)議規(guī)范之上,是 SSL 3.0 的后續(xù)版本 采用B/S架構(gòu),遠程用戶無需安裝

    2024年02月10日
    瀏覽(22)
  • Android 使用okhttp監(jiān)控網(wǎng)絡(luò)數(shù)據(jù)

    Android 使用okhttp監(jiān)控網(wǎng)絡(luò)數(shù)據(jù)

    這里使用Okhttp寫了一個demo來監(jiān)聽網(wǎng)絡(luò)請求過程中的一系列數(shù)據(jù),包括當(dāng)前網(wǎng)絡(luò)類型、請求體、響應(yīng)體大小,url,請求方式,當(dāng)然還有本次核心獲取域名解析時長,建立連接時長,保持連接時長,請求總時長這些數(shù)據(jù)。 一次網(wǎng)絡(luò)請求經(jīng)歷了哪些過程 通過域名訪問的方式來請求

    2024年02月11日
    瀏覽(30)
  • Android低版本(4.4)okhttp 網(wǎng)絡(luò)適配

    Android低版本(4.4)okhttp 網(wǎng)絡(luò)適配

    目錄 訪問網(wǎng)絡(luò)時,出現(xiàn)錯誤: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0xb7eabc88: Failure in SSL library, usually a protocol error? ? error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version (external/openssl/ssl/s23_clnt.c:741 0xa4fb8d5c:0x00000000) SSLSocket的setEnabledProtocols配置支持TLSv1.1,

    2024年01月17日
    瀏覽(24)
  • Android之網(wǎng)絡(luò)請求2————OkHttp的基本使用

    Android之網(wǎng)絡(luò)請求2————OkHttp的基本使用

    1.概述 okhttp是一個第三方庫,用于Android中網(wǎng)絡(luò)請求 這是一個開源項目,是安卓端最火熱的輕量級框架,由移動支付Square公司貢獻(該公司還貢獻了Picasso和LeakCanary) 。用于替代HttpUrlConnection和Apache HttpClient(android API23 里已移除HttpClient)。 2.OkHttp于http的請求 我們先構(gòu)造一個一個http請

    2024年02月01日
    瀏覽(24)
  • 計網(wǎng) - 深入理解HTTPS:加密技術(shù)的背后

    計網(wǎng) - 深入理解HTTPS:加密技術(shù)的背后

    PKI - 數(shù)字簽名與數(shù)字證書 PKI - 借助Nginx 實現(xiàn)Https 服務(wù)端單向認證、服務(wù)端客戶端雙向認證 HTTP(超文本傳輸協(xié)議)的發(fā)展歷史 : HTTP的起源可以追溯到1990年代早期,由蒂姆·伯納斯-李(Tim Berners-Lee)在CERN(歐洲核子研究組織)開發(fā)出來,最初被用于在客戶端和服務(wù)器之間傳

    2024年02月22日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包