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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

1.https作用

  • 混合加密
  • 身份驗(yàn)證: 可以通過數(shù)字證書驗(yàn)證對(duì)方身份
  • 驗(yàn)證數(shù)據(jù)完成性: 防止內(nèi)容被中間人冒充或篡改

2. 基礎(chǔ)知識(shí)

  • 數(shù)字摘要:通過hash函數(shù)對(duì)報(bào)文進(jìn)行哈希,得到長(zhǎng)度固定的字符串稱謂摘要, 這個(gè)過程是單向的,無(wú)法通過摘要反推原文。

  • 數(shù)字簽名:對(duì)數(shù)字摘要進(jìn)行非對(duì)稱加密后的密文,叫做數(shù)字簽名。

  • 數(shù)字證書:可用于客戶端驗(yàn)證服務(wù)端身份的證書,一般是由CA機(jī)構(gòu)簽發(fā)的。數(shù)字證書包含頒發(fā)機(jī)構(gòu)、過期時(shí)間、網(wǎng)站域名、網(wǎng)站公鑰、CA簽名。

  • CSR:CSR是Certificate Signing Request的英文縮寫,即數(shù)字證書簽名請(qǐng)求,網(wǎng)站只要把CSR文件提交給證書頒發(fā)機(jī)構(gòu)后,證書頒發(fā)機(jī)構(gòu)使用其【根證書私鑰】對(duì)CSR內(nèi)容進(jìn)行【簽名】,就生成了數(shù)字證書;CSR請(qǐng)求中包含網(wǎng)站生成的公鑰,因此CSR必定有對(duì)用的key,也就是私鑰.例如下圖是在線生成CSR的工具:


生成結(jié)果:

3. https流程

  • 網(wǎng)站首先需要申請(qǐng)域名,然后使用域名生成 CSR 和 私鑰,然后向CA機(jī)構(gòu)申請(qǐng)數(shù)字證書。

  • 瀏覽器向網(wǎng)站發(fā)送https請(qǐng)求,URL中必須使用域名。

  • 網(wǎng)站收到請(qǐng)求后,立刻響應(yīng)數(shù)字證書。

  • 瀏覽器收到數(shù)字證書后,在本地已授信的根證書列表中,查詢數(shù)字證書中的頒發(fā)機(jī)構(gòu)的根證書;如果不存在則無(wú)法驗(yàn)證,所以提示用戶該數(shù)字證書不安全,如果存在,則使用本地根證書對(duì)數(shù)字證書進(jìn)行驗(yàn)證,如果驗(yàn)證失敗則提示用戶該數(shù)字證書不安全。如果證書沒有問題,瀏覽器自動(dòng)生成一個(gè)隨機(jī)數(shù)(對(duì)稱密鑰)對(duì)請(qǐng)求報(bào)文進(jìn)行加密,然后再使用數(shù)字證書中的公鑰對(duì)隨機(jī)數(shù)進(jìn)行加密,然后將【請(qǐng)求密文】和【隨機(jī)數(shù)密文】發(fā)送給網(wǎng)站。

  • 網(wǎng)站收到瀏覽器發(fā)來(lái)的密文后,首先使用私鑰解密【隨機(jī)數(shù)密文】得到【隨機(jī)數(shù)】,然后使用隨機(jī)數(shù)解密【請(qǐng)求報(bào)文】,此時(shí)SSL連接已建立,該連接以后的通信將一直使用該【隨機(jī)數(shù)】進(jìn)行對(duì)稱加密。最后網(wǎng)站使用【隨機(jī)數(shù)】加密響應(yīng)報(bào)文,并發(fā)送到瀏覽器。

  • 瀏覽器接受到響應(yīng)報(bào)文后,使用【隨機(jī)數(shù)】解密報(bào)文,然后使用【隨機(jī)數(shù)】加密請(qǐng)求。

  • 4. 數(shù)字證書驗(yàn)證主要過程

  • 瀏覽器請(qǐng)求數(shù)字證書
  • 比如訪問百度收到的數(shù)字證書如下圖:

    點(diǎn)擊URL框左邊的鎖即可查看證書,在證書的常規(guī)信息:

    • 頒發(fā)給: baidu.com 即數(shù)字證書中的網(wǎng)站域名
    • 頒發(fā)者: CA機(jī)構(gòu)
    • 有效期: 即數(shù)字證書的有效期

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

    指紋就是證書簽名,是CA對(duì)證書內(nèi)容進(jìn)行摘要后使用私鑰加密后的簽名。

    公鑰是網(wǎng)站的公鑰。

  • 瀏覽器查找CA根證書
  • 瀏覽器安裝后都會(huì)內(nèi)置很多CA機(jī)構(gòu)的根證書,基本涵蓋全球CA機(jī)構(gòu),如谷歌瀏覽器中的根證書如下:

    這些根證書實(shí)際就是CA機(jī)構(gòu)自己給自己頒發(fā)的數(shù)字證書,其中的信息和頒發(fā)給網(wǎng)站的數(shù)字證書的格式是一樣的。

    瀏覽器根據(jù)網(wǎng)站數(shù)字證書中的頒發(fā)機(jī)構(gòu)名稱,從根證書列表中查詢對(duì)用的根證書,如果不存在,則說明網(wǎng)站數(shù)字證書的頒發(fā)機(jī)構(gòu)不受信任,不夠安全,因此驗(yàn)證失敗,如果存在則繼續(xù)驗(yàn)證。

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

  • 瀏覽器根據(jù)摘要算法主動(dòng)生成摘要,和解密數(shù)字簽名得到的數(shù)字摘要進(jìn)行對(duì)比,如果不一致則說明證書內(nèi)容被篡改了,否則說明該數(shù)字證書的確是CA機(jī)構(gòu)簽發(fā)的。

  • 瀏覽器比較數(shù)字證書中的域名是否和請(qǐng)求中的一致,如果不一致則說明該數(shù)字證書雖然的確是CA機(jī)構(gòu)簽發(fā)的,但并不是目標(biāo)網(wǎng)站的數(shù)字證書。比如一個(gè)非法網(wǎng)站擁有CA簽發(fā)的數(shù)字證書,但它截取了訪問某個(gè)百度的https請(qǐng)求,并響應(yīng)瀏覽器自己的證書,如果瀏覽器不進(jìn)行域名校驗(yàn),就會(huì)認(rèn)為數(shù)字證書是正確的,進(jìn)而整個(gè)會(huì)話被劫持。

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


    流程圖:

    關(guān)系圖:

    5.證書鏈



    可知百度的數(shù)字證書并不是一級(jí)CA機(jī)構(gòu)簽發(fā)的,而是二級(jí)CA機(jī)構(gòu)簽發(fā)的。

    總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。