Android Https原理詳解

2021-10-10 16:39:51 字數 936 閱讀 9426

非對稱加密,客戶端將公鑰加密後的資料傳送給伺服器,伺服器用對應的私鑰解密。安全性高,但是加解密的效率低。

https同時採用了非對稱加密和對稱加密的方法來保證通訊通道的安全。注意這裡有乙個思維誤區,https保證的是通訊通道的安全,

至於兩端,這種通訊模型本身就是假設兩端是安全的。服務端通常不用擔心,能攻進去的畢竟是少數。客戶端的安全環境則很糟如果不加任何防護手段,金鑰被提取是分分鐘的事,https協議中客戶端也是有自己的乙個私鑰的。防護手段一般有使用加密晶元,給軟體加固加殼,混淆**等手段,基本思想是把密碼演算法執行的不安全的環境轉換成安全的執行環境。

以下的內容源於對guolin寫一篇最好懂的https講解的文章理解,歡迎交流;

http時代明文傳輸(有監聽和篡改資料的風險)→→兼顧安全和效率引入對稱加密,瀏覽器(客戶端)和**(伺服器)持有相同私鑰→→產生新問題:密文通訊通道安全了,那瀏覽器怎麼協商每乙個**的私鑰→→首次明文通訊?(再次走上不安全的老路)↓↓

→→引入非對稱加密(瀏覽器用公鑰加密自己隨機生成的私鑰a,**用非對稱私鑰解密獲取私鑰a)→→首次使用非對稱加密協商私鑰a後,後續通訊都使用私鑰a加解密→→沒錯老鐵,還是我,問題又來了(瀏覽器怎麼安全的獲取每個**的公鑰??) ↓↓

→→瀏覽器或者系統內建所有**的公鑰??不現實→→引入ca機構,給登記的正規**(**上傳自己的公鑰)製作證書(包含**網域名稱,有效時長,**公鑰等)→→**(伺服器)將ca加密後的證書配置到伺服器→→瀏覽器請求獲取證書資訊↓↓

→→用系統內建的ca機構根證書解析證書獲取**公鑰,網域名稱(網域名稱等資訊可以輔助校驗是不是目標**,有效防止了中間路由的監聽篡改)→→協商對稱秘鑰→→密文傳輸

到此整個https的基本工作原理就描述完了,現在就很好理解為什麼android 9引入https之後你去訪問伺服器或者一些**(12306)會丟擲連線異常,說明**沒有合法的ca機構頒發的證書(自己給自己頒發證書)或者證書資料被篡改了;有時候為了節省

android https 雙向驗證

android ssl雙向驗證 預備工具 bcprov jdk16 141.jar 和 portecle.jar 將 bcprov jdk16 141.jar 部署到jdk1.6.0 03 jre lib ext目錄下 1 伺服器端的金鑰庫 d a keytool genkey alias 19em...

深入理解 Android Https

用私鑰加密資訊,用公鈅來解密。因為公鑰是共有的,這種流程用於認證。c用s的公鑰把資訊加密後傳遞給s.s用自己的私鑰解密獲取資訊。常用的非對稱加密演算法有rsa elgamal rabin d h ecc 橢圓曲線加密演算法 等。配置 設定簽名證書 建立tls型別的sslcontext物件,that ...

Kafka學習筆記 Kafka原理與使用詳解

kafka 是乙個訊息系統,原本開發自 linkedin,用作 linkedin 的活動流 activity stream 和運營資料處理管道 pipeline 的基礎。現在它已被多家公司作為多種型別的資料管道和訊息系統使用。活動流資料是幾乎所有站點在對其 使用情況做報表時都要用到的資料中最常規的部...