日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

快速理解https是如何保证安全的

發布時間:2024/5/7 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速理解https是如何保证安全的 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.https作用

  • 混合加密
  • 身份驗證: 可以通過數字證書驗證對方身份
  • 驗證數據完成性: 防止內容被中間人冒充或篡改

2. 基礎知識

  • 數字摘要:通過hash函數對報文進行哈希,得到長度固定的字符串稱謂摘要, 這個過程是單向的,無法通過摘要反推原文。

  • 數字簽名:對數字摘要進行非對稱加密后的密文,叫做數字簽名。

  • 數字證書:可用于客戶端驗證服務端身份的證書,一般是由CA機構簽發的。數字證書包含頒發機構、過期時間、網站域名、網站公鑰、CA簽名。

  • CSR:CSR是Certificate Signing Request的英文縮寫,即數字證書簽名請求,網站只要把CSR文件提交給證書頒發機構后,證書頒發機構使用其【根證書私鑰】對CSR內容進行【簽名】,就生成了數字證書;CSR請求中包含網站生成的公鑰,因此CSR必定有對用的key,也就是私鑰.例如下圖是在線生成CSR的工具:


生成結果:

3. https流程

  • 網站首先需要申請域名,然后使用域名生成 CSR 和 私鑰,然后向CA機構申請數字證書。

  • 瀏覽器向網站發送https請求,URL中必須使用域名。

  • 網站收到請求后,立刻響應數字證書。

  • 瀏覽器收到數字證書后,在本地已授信的根證書列表中,查詢數字證書中的頒發機構的根證書;如果不存在則無法驗證,所以提示用戶該數字證書不安全,如果存在,則使用本地根證書對數字證書進行驗證,如果驗證失敗則提示用戶該數字證書不安全。如果證書沒有問題,瀏覽器自動生成一個隨機數(對稱密鑰)對請求報文進行加密,然后再使用數字證書中的公鑰對隨機數進行加密,然后將【請求密文】和【隨機數密文】發送給網站。

  • 網站收到瀏覽器發來的密文后,首先使用私鑰解密【隨機數密文】得到【隨機數】,然后使用隨機數解密【請求報文】,此時SSL連接已建立,該連接以后的通信將一直使用該【隨機數】進行對稱加密。最后網站使用【隨機數】加密響應報文,并發送到瀏覽器。

  • 瀏覽器接受到響應報文后,使用【隨機數】解密報文,然后使用【隨機數】加密請求。

  • 4. 數字證書驗證主要過程

  • 瀏覽器請求數字證書
  • 比如訪問百度收到的數字證書如下圖:

    點擊URL框左邊的鎖即可查看證書,在證書的常規信息:

    • 頒發給: baidu.com 即數字證書中的網站域名
    • 頒發者: CA機構
    • 有效期: 即數字證書的有效期

      上圖示數字證書的詳情,點擊下方的【證書的詳情信息】可以打開證書的解釋,最重要的信息就是指紋和公鑰了。

    指紋就是證書簽名,是CA對證書內容進行摘要后使用私鑰加密后的簽名。

    公鑰是網站的公鑰。

  • 瀏覽器查找CA根證書
  • 瀏覽器安裝后都會內置很多CA機構的根證書,基本涵蓋全球CA機構,如谷歌瀏覽器中的根證書如下:

    這些根證書實際就是CA機構自己給自己頒發的數字證書,其中的信息和頒發給網站的數字證書的格式是一樣的。

    瀏覽器根據網站數字證書中的頒發機構名稱,從根證書列表中查詢對用的根證書,如果不存在,則說明網站數字證書的頒發機構不受信任,不夠安全,因此驗證失敗,如果存在則繼續驗證。

  • 瀏覽器使用根證書中的公鑰,對數字簽名進行解密,如果能解密成功,說明指紋是CA機構使用私鑰進行加密的,如果解密失敗則說明數字簽名是偽造的。解密成功后獲得證書摘要。

  • 瀏覽器根據摘要算法主動生成摘要,和解密數字簽名得到的數字摘要進行對比,如果不一致則說明證書內容被篡改了,否則說明該數字證書的確是CA機構簽發的。

  • 瀏覽器比較數字證書中的域名是否和請求中的一致,如果不一致則說明該數字證書雖然的確是CA機構簽發的,但并不是目標網站的數字證書。比如一個非法網站擁有CA簽發的數字證書,但它截取了訪問某個百度的https請求,并響應瀏覽器自己的證書,如果瀏覽器不進行域名校驗,就會認為數字證書是正確的,進而整個會話被劫持。

  • 這也是為什么https要求必須是域名,否者會話可能被劫持。如下圖,當https請求中使用ip訪問百度時,瀏覽器也會提示不安全,以避免會話被劫持:


    流程圖:

    關系圖:

    5.證書鏈



    可知百度的數字證書并不是一級CA機構簽發的,而是二級CA機構簽發的。

    總結

    以上是生活随笔為你收集整理的快速理解https是如何保证安全的的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。