中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中網絡請求加密的原理是什么

發布時間:2022-01-12 11:08:51 來源:億速云 閱讀:203 作者:iii 欄目:移動開發

這篇文章主要介紹了Android中網絡請求加密的原理是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Android中網絡請求加密的原理是什么文章都會有所收獲,下面我們一起來看看吧。

非對稱加密

加密我了解的不多,只知道有這么兩種算法:對稱加密和非對稱加密。

  • 對稱加密:加密和解密的密鑰一樣,比如用123加密就是用123解密,但是實際中密碼都是普通數據在互聯網傳輸的,這樣一點密碼被中間人截取并破解,加密直接被攻破。

  • 非對稱加密:把密鑰分為公鑰和私鑰,公鑰是公開的所有人都可以認領,私鑰是保密的只有一個人知道。假設A要發送一封Email給B,他不想讓任何其他人在傳輸中看到Email的內容,做法就是使用B的公鑰對Email加密,只有B的私鑰能夠解密(B的私鑰唯一性保證信件不會泄露)。

某天出意外了,有黑客冒充A給B發送Email,并且也用B的公鑰加密,導致B無法區分這封郵件是否來自A。怎么辦?此時A可以用自己的私鑰加密,那么B收到郵件后如果用A的公鑰可以解密郵件,那么證明這封信肯定來自于A。

OK,通過這個例子我想你們基本明白非對稱加密了!我總結了下面幾點:

  • 公鑰的作用:對內容本身加密,保證不被其他人看到。

  • 私鑰的作用:證明內容的來源

  • 公鑰和私鑰是配對關系,公鑰加密就用私鑰解密,反之亦然,用錯的密鑰來嘗試解密會報錯。

數字簽名

接著聊上面發郵件的例子,假設A用自己的私鑰對Email加密發送,這存在下面問題:

對文件本身加密可能是個耗時過程,比如這封Email足夠大,那么私鑰加密整個文件以及拿到文件后的解密無疑是巨大的開銷。

數字簽名可以解決這個問題:

1.A先對這封Email執行哈希運算得到hash值簡稱“摘要”,取名h2

2.然后用自己私鑰對摘要加密,生成的東西叫“數字簽名”

3.把數字簽名加在Email正文后面,一起發送給B(當然,為了防止郵件被竊聽你可以用繼續公鑰加密,這個不屬于數字簽名范疇)

4.B收到郵件后用A的公鑰對數字簽名解密,成功則代表Email確實來自A,失敗說明有人冒充

5.B對郵件正文執行哈希運算得到hash值,取名h3

6.B 會對比第4步數字簽名的hash值h2和自己運算得到的h3,一致則說明郵件未被篡改。

Android中網絡請求加密的原理是什么

看完這個過程,是不是覺得數字簽名不過如此。其實就是利用算法(不一定是非對稱算法)對原文hash值加密,然后附著到原文的一段數據。數字簽名的作用就是驗證數據來源以及數據完整性!解密過程則稱為數字簽名驗證。

不過先別著急,我在梳理數字簽名流程時候有下面幾點疑惑,不知你也是否一樣?

1.如果中間人同時篡改了Email正文和數字簽名,那B收到郵件無法察覺啊。
答案:數字簽名的生成需要對方私鑰,所以數字簽名很難被偽造。萬一私鑰泄漏了呢,不好意思,你私鑰都能弄丟了那這篇文章當我白寫。(私鑰絕對保密不參與傳輸)

2.公鑰是公開的并且可以自行導入到電腦,如果有人比如C偷偷在B的電腦用自己公鑰替換了A的公鑰,然后用自己的私鑰給B發送Email,這時B收到郵件其實是被C冒充的但是他無法察覺。

答案:確實存在這種情況!解決辦法就是數字證書,一環套一環請接著看。

數字證書

上面第2點描述的安全漏洞根源在哪?就是A的公鑰很容易被替換!那么數字證書是怎么生成的呢?以及如何配合數字簽名工作呢?

1.首先A去找”證書中心”(certificate authority,簡稱CA),為公鑰做認證。證書中心用自己的私鑰,對A的公鑰和一些相關信息一起加密,生成”數字證書”(Digital Certificate):

Android中網絡請求加密的原理是什么

2.A在郵件正文下方除了數字簽名,另外加上這張數字證書

Android中網絡請求加密的原理是什么

3.B收到Email后用CA的公鑰解密這份數字證書,拿到A的公鑰,然后驗證數字簽名,后面流程就和圖1的流程一樣了,不再贅述。

和數字簽名一樣我在梳理這個流程時有下面幾點疑惑:

假設數字證書被偽造了呢?

答案:是的,傳輸中數字證書有可能被篡改。因此數字證書也是經過數字簽名的,是不是感覺很繞貌似陷入了“雞生蛋蛋生雞”,我保證這是最后一個蛋- - !上文說道數字簽名的作用就是驗證數據來源以及數據完整性!B收到郵件后可以先驗證這份數字證書的可靠性,通過后再驗證數字簽名。

要是有1萬個人要給B發郵件,難道B要保存1萬份不同的CA公鑰嗎?

答案:不需要,CA認證中心給可以給B一份“根證書”,里面存儲CA公鑰來驗證所有CA分中心頒發的數字證書。CA中心是分叉樹結構,類似于公安部->省公安廳->市級派出所,不管A從哪個CA分支機構申請的證書,B只要預存根證書就可以驗證下級證書可靠性。

如何驗證根證書可靠性?

答案:無法驗證。根證書是自驗證證書,CA機構是獲得社會絕對認可和有絕對權威的第三方機構,這一點保證了根證書的絕對可靠。如果根證書都有問題那么整個加密體系毫無意義。

舉個栗子

上面一直在說虛擬場景,下文舉個實際例子看看數字簽名+數字證書如何驗證文件的來源,以及文件的完整性。比如下載文件:我們開發中一般是服務端給文件信息加上md5,客戶端下載完成后校驗md5來判斷文件是否損壞,這個其實就是簡單的校驗機制,而很多正規企業比如google都會給官方軟件簽署數字簽名和證書,而windows已經預置了很多CA根證書:

Android中網絡請求加密的原理是什么

然后看下我之前從網上下載的Chrome.exe,右鍵屬性,通過鼠標點擊一步驗證:

Android中網絡請求加密的原理是什么

Google Inc就是google從CA中心申請的數字證書。這樣看來,這個軟件確實來源于google官方,并且文件完整。接下來我干點壞事,用notepad打開這個exe文件并且篡改里面的內容(修改二進制數據,09 改為33),保存:

Android中網絡請求加密的原理是什么

再看下數字簽名還正常嗎?

Android中網絡請求加密的原理是什么

文件被篡改導致數字簽名無效,數字證書沒有問題。

https介紹

數字簽名和數字證書可以用于文件,當然也能用于html網頁數據。本人沒有https相關開發經驗,故不做深入探討只是簡單介紹下。

http的安全缺陷:

  • 1.無法驗證服務端的身份

  • 2.無法保證數據完整性

  • 3.無法保證數據傳輸不被竊聽

而https就是專門解決這三個問題,https使用數字簽名+數字證書解決了前2個問題,很多大型網站比如baidu.com都會采用https協議,網址左側會出現綠色加鎖標識:

Android中網絡請求加密的原理是什么

點擊可以查看證書,另外瀏覽器都會內置CA根證書,來對這些網站的服務器證書進行校驗。

然后,再用SSL協議對傳輸通道加密,保證數據傳輸不被竊聽。

關于“Android中網絡請求加密的原理是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Android中網絡請求加密的原理是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

垫江县| 定边县| 凌源市| 慈利县| 咸阳市| 宜州市| 滁州市| 柘荣县| 运城市| 白朗县| 高邮市| 苗栗县| 正安县| 清流县| 华蓥市| 东港市| 什邡市| 静海县| 神农架林区| 余庆县| 呼图壁县| 肥西县| 嘉黎县| 迭部县| 张家港市| 永州市| 富顺县| 天等县| 郴州市| 郯城县| 平顺县| 潞城市| 敦煌市| 牟定县| 湘潭市| 华安县| 沁源县| 云浮市| 南通市| 屯门区| 谷城县|