免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
kubernetes里的mTLS

兩臺(tái)主機(jī)通信的時(shí)候,如果是通過(guò)明文的方式通信的話兩者之間的數(shù)據(jù)很容易被截獲,兩臺(tái)主機(jī)要安全通信,需要在這兩者之間實(shí)現(xiàn)數(shù)據(jù)的加密。主要涉及到對(duì)稱(chēng)加密、非對(duì)稱(chēng)加密、哈希函數(shù)。

對(duì)稱(chēng)加密

所謂對(duì)稱(chēng)加密,即加密和解密使用相同的密鑰,這個(gè)密鑰可以理解為就是密碼。


這里A用一個(gè)對(duì)稱(chēng)加密密鑰haha001加密了一個(gè)數(shù)據(jù),然后把加密之后的數(shù)據(jù)發(fā)送給B之后,因?yàn)槭羌用軘?shù)據(jù),所以B是打不開(kāi)的。所以A需要把密碼告訴B才行,但是如何告訴B密鑰是haha001呢?這是一個(gè)問(wèn)題,因?yàn)檫@個(gè)過(guò)程很可能被別人監(jiān)測(cè)到。

非對(duì)稱(chēng)加密

對(duì)于非對(duì)稱(chēng)加密算法來(lái)說(shuō),包括了2個(gè)密鑰一個(gè)是公鑰,一個(gè)是私鑰。公鑰是可以公開(kāi)的,私鑰需要保護(hù)好。對(duì)于非對(duì)稱(chēng)加密來(lái)說(shuō)主要作用有兩個(gè),一是數(shù)據(jù)加密,二是數(shù)字簽名。

數(shù)據(jù)加密


上圖里鎖的圖標(biāo)表示公鑰,鑰匙的圖標(biāo)表示私鑰。
  • 第一步:B把公鑰發(fā)送給A
  • 第二步:A用B的公鑰加密數(shù)據(jù)
  • 第三步:A把加密后的數(shù)據(jù)發(fā)送給B
  • 第四步:B用自己的私鑰對(duì)加密數(shù)據(jù)進(jìn)行解密。
    因?yàn)閯e人獲取不到B的私鑰,所以在第三步里即使數(shù)據(jù)被截獲了也解密不了,因?yàn)橹挥蠦的私鑰才能解密。

如果把對(duì)稱(chēng)加密和非對(duì)稱(chēng)加密結(jié)合使用的話,這樣利用非對(duì)稱(chēng)加密就可以解決了前面對(duì)稱(chēng)加密算法中,對(duì)稱(chēng)密鑰不方便傳輸?shù)膯?wèn)題了。

  • 第一步:B把公鑰發(fā)送給A。
  • 第二步:A用B的公鑰加密對(duì)稱(chēng)加密的密鑰haha001。
  • 第三步:A把加密后的密鑰發(fā)送給B
  • 第四步:B用自己的私鑰解密A發(fā)送過(guò)來(lái)的數(shù)據(jù),得到對(duì)稱(chēng)加密的密鑰haha001。
  • 第五步:B用haha001解密A發(fā)送過(guò)來(lái)的對(duì)稱(chēng)加密的數(shù)據(jù)。
    這樣A用對(duì)稱(chēng)加密的數(shù)據(jù)發(fā)送給B之后,B也能順利的打開(kāi)了。這種方式看起來(lái)安全,但其實(shí)很容易受到中間人攻擊,因?yàn)樵诘谝徊嚼镂覀兗僭O(shè)的是A獲取的就是B的公鑰,而不是別人冒充的。
    下面我們看一下中間人攻擊的過(guò)程,這里假設(shè)C是壞人即中間人。
  • 第一步:B把公鑰發(fā)送給A,但C把原本發(fā)送給A的公鑰截獲了,此時(shí)C有了B的公鑰。
  • 第二步:C把自己的公鑰發(fā)送給A,但是宣稱(chēng)是“B的公鑰”,A不明真相,以為就是B的公鑰
  • 第三步:A用"B的公鑰"(其實(shí)是C的公鑰)加密對(duì)稱(chēng)加密的密鑰
  • 第四步:把加密后的對(duì)稱(chēng)加密的密鑰發(fā)送給B,但是這個(gè)又被C截獲了。因?yàn)閷?shí)際用的是C的公鑰加密的,所以C用自己的私鑰是能夠解密的。此時(shí)C獲取了對(duì)稱(chēng)加密的密鑰haha001。
  • 第五步:C用B的公鑰加密對(duì)稱(chēng)加密密鑰haha001,之后發(fā)送給B。
  • 第六步:B用自己的私鑰解密數(shù)據(jù),得到對(duì)稱(chēng)密鑰haha001。
  • 到現(xiàn)在為止,A和B以為他們之間是直接溝通的,但是這當(dāng)中有個(gè)中間人C也獲取了對(duì)稱(chēng)加密的密鑰。
  • 第七步:A把用對(duì)稱(chēng)加密后的數(shù)據(jù)發(fā)送給B,但也被C截獲了。因?yàn)镃知道了對(duì)稱(chēng)加密密鑰,所以C是能看到數(shù)據(jù)里的內(nèi)容并做修改的。
  • 第八步:C再次用對(duì)稱(chēng)密鑰haha001加密數(shù)據(jù)之后轉(zhuǎn)發(fā)給B
    第九步:B用對(duì)稱(chēng)密鑰haha001解密數(shù)據(jù)。

整個(gè)過(guò)程A和B都以為他們是直接通信的,殊不知這中間所有的數(shù)據(jù)都被C看到了,這就是中間人攻擊。那么如何解決這個(gè)問(wèn)題呢?我們先了解數(shù)字簽名。

數(shù)字簽名

數(shù)字簽名是私鑰加密數(shù)據(jù),公鑰解密數(shù)據(jù),先看下圖。

  • 第1步:B先把公鑰發(fā)送給A,

  • 第2步:B然后用哈希函數(shù)對(duì)所要傳輸?shù)臄?shù)據(jù)求得哈希值hash1。哈希函數(shù)的特點(diǎn)的是輸入不定長(zhǎng)的值總是能得到定長(zhǎng)的值。比如:

    root@vms61:~# wc -c /etc/hosts
    291 /etc/hosts
    root@vms61:~# wc -c /etc/services 
    19183 /etc/services
    root@vms61:~# 
    root@vms61:~# 
    root@vms61:~# md5sum /etc/hosts
    219ebb29a192b6e41af2dc98865df58e  /etc/hosts
    root@vms61:~# md5sum /etc/services 
    567c100888518c1163b3462993de7d47  /etc/services
    root@vms61:~#
  • 第3步:B會(huì)用自己的私鑰對(duì)哈希值hash1進(jìn)行加密。

  • 第4步:B把原始數(shù)據(jù)和加密后的哈希值發(fā)送給A。

  • 第5步:A先用B的公鑰把收到的加密后的哈希值hash1解密,得到hash1,這個(gè)hash1和第2步生成的hash1是一樣的。

  • 第6步:B會(huì)對(duì)收到的數(shù)據(jù)data求得哈希值hash2。

  • 第7步:B對(duì)比hash1和hash2來(lái)判斷data在傳輸過(guò)程中是不是被修改過(guò)。如果兩個(gè)hash值是一樣的話,就說(shuō)明數(shù)據(jù)data在傳輸過(guò)程中是沒(méi)有被修改的,如果兩個(gè)哈希值不一樣說(shuō)明數(shù)據(jù)在傳輸過(guò)程中被修改過(guò)。

這里會(huì)帶來(lái)兩個(gè)問(wèn)題:

  • 第一:這里也會(huì)遇到中間人攻擊的問(wèn)題,即第1步的公鑰被C截獲了,然后把自己的公鑰發(fā)送給了A。在第四步里,數(shù)據(jù)data和hash1被C截獲,然后C修改了data的數(shù)據(jù),然后求得哈希值之后用自己的私鑰做數(shù)據(jù)簽名。
    其實(shí)所有的中間人攻擊的根本問(wèn)題在于
  • 第二,即使沒(méi)有中間人攻擊,B的密鑰對(duì)跟B這個(gè)主體之間沒(méi)有必然的聯(lián)系,因?yàn)锽可以隨時(shí)刪除掉自己的密鑰對(duì),然后重新生成。

證書(shū)中心

在互聯(lián)網(wǎng)上存在一種權(quán)威機(jī)構(gòu)叫做證書(shū)中心(簡(jiǎn)稱(chēng)CA),一個(gè)前提就是我們都要信任CA。


前面講中間人攻擊的主要原因就是A獲取B的公鑰可能是假冒的,所以A不會(huì)信任別人發(fā)給他的公鑰的,且B也知道他直接把他自己生成的公鑰發(fā)給別人,別人也不信任,所以B不會(huì)再生成公鑰了。
  • 第一步:B會(huì)用自己的私鑰生成一個(gè)證書(shū)請(qǐng)求文件(類(lèi)似于申請(qǐng)書(shū))
  • 第二步:B把證書(shū)請(qǐng)求文件發(fā)送到CA去申請(qǐng)證書(shū)。
  • 第三步:CA會(huì)審核B的身份,之后會(huì)頒發(fā)證書(shū)給B。這個(gè)證書(shū)其實(shí)就是公鑰,只是上面有了CA的數(shù)字簽名,以證明這個(gè)證書(shū)是CA頒發(fā)的。這一步解決了“數(shù)字簽名”部分B和他的密鑰對(duì)之間沒(méi)有必然聯(lián)系的問(wèn)題,因?yàn)檫@里有CA來(lái)證明這個(gè)密鑰對(duì)就是B的,B不可抵賴(lài)。
  • 第四步:B會(huì)把證書(shū)發(fā)送給A,說(shuō)這是我的證書(shū)并且上面有CA的數(shù)字簽名,不會(huì)被別人偽冒。
  • 第五步:A是持懷疑態(tài)度的,到底是不是真的是由CA頒發(fā)的,還是別人偽冒的呢?所以A要驗(yàn)證這個(gè)證書(shū)的真?zhèn)涡?。此時(shí)A需要CA的公鑰(像瀏覽器里都內(nèi)置了權(quán)威CA的公鑰的),然后會(huì)用權(quán)威CA的公鑰驗(yàn)證 B證書(shū)的公鑰上的數(shù)字簽名。

之后A會(huì)用B的證書(shū)加密對(duì)稱(chēng)加密算法的密鑰發(fā)送給B,B用私鑰解密。這樣A和B之間就可以安全的傳輸數(shù)據(jù)了,整個(gè)過(guò)程叫做TLS(傳輸層安全)。
這里只有A驗(yàn)證了B的證書(shū)的合法性,所以叫做單向TLS。如果A也有自己的私鑰及CA頒發(fā)的證書(shū),那么除了A要驗(yàn)證B證書(shū)的合法性之外,B也要驗(yàn)證A證書(shū)的合法性,即兩邊互相驗(yàn)證,這個(gè)就叫做mTLS(mutual TLS,雙向TLS)了。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
一個(gè)故事講完https
HTTPS單向認(rèn)證、雙向認(rèn)證、抓包原理、反抓包策略
HTTPS再發(fā)一彈,不要再說(shuō)不會(huì)了
最詳細(xì)的 HTTPS 科普掃盲帖 – 碼農(nóng)網(wǎng)
計(jì)算機(jī)安全基礎(chǔ):認(rèn)證技術(shù)知識(shí)筆記
加密-數(shù)字信封-完整性驗(yàn)證-數(shù)字簽名-數(shù)據(jù)加解密以及身份驗(yàn)證流程(1)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服