本篇文章給大家分享的是有關(guān)如何用信鴿來解釋 HTTPS,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
我們提供的服務(wù)有:網(wǎng)站建設(shè)、成都做網(wǎng)站、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、香格里拉ssl等。為數(shù)千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的香格里拉網(wǎng)站制作公司
密碼學(xué)是一門難以理解的學(xué)科,因?yàn)樗錆M了數(shù)學(xué)定理。但是除非你要實(shí)際開發(fā)出一套加密算法系統(tǒng),否則你是沒必要強(qiáng)制理解那些深?yuàn)W的數(shù)學(xué)定理的。
愛麗絲、鮑伯和 ... 信鴿?
你在互聯(lián)網(wǎng)上從事的任何活動(dòng)(閱讀這篇文章、在亞馬遜上購(gòu)物、上傳圖片等)歸結(jié)到底都是從某臺(tái)服務(wù)器上發(fā)送和接收信息。
這個(gè)說起來可能有點(diǎn)抽象,不如讓我們假設(shè)這些消息都是由信鴿來傳遞的。我知道這個(gè)假設(shè)有些太過隨意,但相信我 HTTPS 就是這樣工作的,盡管它的速度快的多。
我們先不談服務(wù)器、客戶端或者黑客攻擊,先來聊一下愛麗絲、鮑伯和馬洛里。如果這已不是你第一次接觸密碼學(xué)理論,你應(yīng)該會(huì)認(rèn)識(shí)這些名字,因?yàn)樗麄兘?jīng)常在各種密碼學(xué)文獻(xiàn)中被提及。
初級(jí)交流
如果愛麗絲想要給鮑勃發(fā)送一段信息,她會(huì)把信息綁在信鴿的腿上然后送往鮑勃那里。鮑勃收到了信息,并閱讀了信息,非常完美。
但如果馬洛里攔截了愛麗絲的鴿子并且篡改了信息呢?鮑勃就沒有辦法去知道愛麗絲發(fā)出的信息在傳遞過程中遭到了修改。
這就是 HTTP 如何運(yùn)作的。看起來很可怕對(duì)吧?我是不會(huì)通過 HTTP 來發(fā)送我的銀行資信證明的,并且你也不應(yīng)如此。
隱蔽的密碼
那么如果愛麗絲和鮑勃都非常的機(jī)智。他們一致認(rèn)同使用一種隱蔽的密碼來書寫他們的信息。他們會(huì)將信息中的每個(gè)字母按照字母表中的順序前移三位。比如,D→A,E→B,F(xiàn)→C。如此一來,原文為 “secret message” 的信息就變成了 “pbzobq jbppxdb” 。
那現(xiàn)在如果馬洛里再截獲了信鴿,她既不能做出有意義的修改同時(shí)也不會(huì)知道信息的內(nèi)容,因?yàn)樗恢离[蔽的密碼到底是什么。然而鮑勃卻可以很容易反轉(zhuǎn)密碼,依靠 A → D, B → E, C → F 之類的規(guī)則破譯信息的內(nèi)容。加密后的信息 “pbzobq jbppxdb” 會(huì)被破解還原為 “secret message” 。
搞定!
這就是對(duì)稱密匙加密,因?yàn)槿绻阒廊绾渭用芤欢涡畔⒛敲茨阃瑯涌梢越饷苓@段信息。
上述的密碼通常被稱為凱撒碼。在現(xiàn)實(shí)生活中,我們會(huì)使用更為奇特和復(fù)雜的密碼,但原理相同。
我們?nèi)绾螞Q定密匙?
如果除了發(fā)信者和收信者之外沒有人知道使用的是什么密匙,對(duì)稱密匙加密是非常安全的。在凱撒加密中,密匙就是每個(gè)字母變到加密字母需要移動(dòng)多少位的偏移量。我之前的距離中,使用的偏移量是 3 ,但是也可以用 4 或者 12 。
問題是如果愛麗絲和鮑勃在開始用信鴿傳信之前沒有碰過頭,他們沒有一個(gè)安全的方式來確立密匙。如果他們自己來在信中傳遞密匙,馬洛里就會(huì)截獲信息并發(fā)現(xiàn)密匙。這就使得馬洛里可以在愛麗絲和鮑勃開始加密他們的信息之前或之后,閱讀到他們信息的內(nèi)容并按照她的意愿來篡改信息。
這是一個(gè)中間人攻擊的典型例子,避免這個(gè)問題的唯一方法就是收發(fā)信的兩方一起修改他們的編碼系統(tǒng)。
通過信鴿傳遞盒子
所以愛麗絲和鮑勃就想出了一個(gè)更好的系統(tǒng)。當(dāng)鮑勃想要給愛麗絲發(fā)送信息時(shí),他會(huì)按照如下的步驟來進(jìn)行:
鮑勃向愛麗絲送一只沒有攜帶任何信息的鴿子。
愛麗絲給鮑勃送回鴿子,并且這只鴿子帶有一個(gè)有開著的鎖的盒子,愛麗絲保管著鎖的鑰匙。
鮑勃把信放進(jìn)盒子中,把鎖鎖上然后把盒子送給愛麗絲。
愛麗絲收到盒子,用鑰匙打開然后閱讀信息。
這樣馬洛里就不能通過截獲鴿子來篡改信息了,因?yàn)樗龥]有打開盒子的鑰匙。當(dāng)愛麗絲要給鮑勃發(fā)送消息的時(shí)候同樣按照上述的流程。
愛麗絲和鮑勃所使用的流程通常被稱為非對(duì)稱密鑰加密。之所以稱之為非對(duì)稱,是因?yàn)榧词故悄惆研畔⒕幋a(鎖上盒子)也不能破譯信息(打開鎖住的盒子)。
在術(shù)語中,盒子被稱為公匙而用來打開盒子的鑰匙被稱為私匙。
如何信任盒子
如果你稍加注意你就會(huì)發(fā)現(xiàn)還是存在問題。當(dāng)鮑勃收到盒子時(shí)他如何能確定這個(gè)盒子來自愛麗絲而不是馬洛里截獲了鴿子然后換了一個(gè)她有鑰匙能打開的盒子呢?
愛麗絲決定簽名標(biāo)記一下盒子,這樣鮑勃收到盒子的時(shí)候就可以檢查簽名來確定是愛麗絲送出的盒子了。
那么你們之中的一些人可能就會(huì)想了,鮑勃如何打一開始就能識(shí)別出愛麗絲的簽名呢?這是個(gè)好問題。愛麗絲和鮑勃也確實(shí)有這個(gè)問題,所以他們決定讓泰德代替愛麗絲來標(biāo)記這個(gè)盒子。
那么誰是泰德呢?泰德很有名的,是一個(gè)值得信任的家伙。他會(huì)給任何人簽名并且所有人都信任他只會(huì)給合法的人簽名標(biāo)記盒子。
如果泰德可以確認(rèn)索要簽名的人是愛麗絲,他就會(huì)在愛麗絲的盒子上簽名。因此馬洛里就不可能搞到一個(gè)有著泰德代表愛麗絲簽了名的盒子,因?yàn)轷U勃知道泰德只會(huì)給他確認(rèn)過的人簽名,從而識(shí)破馬洛里的詭計(jì)。
泰德的角色在術(shù)語中被稱為認(rèn)證機(jī)構(gòu)。而你閱讀此文時(shí)所用的瀏覽器打包存有許多認(rèn)證機(jī)構(gòu)的簽名。
所以當(dāng)你首次接入一個(gè)網(wǎng)站的時(shí)候你可以信任來自這個(gè)站點(diǎn)的盒子因?yàn)槟阈湃翁┑露┑聲?huì)告訴你盒子是合法的。
沉重的盒子
現(xiàn)在愛麗絲和鮑勃有了一個(gè)可靠的系統(tǒng)來進(jìn)行交流,然他們也意識(shí)到讓鴿子攜帶盒子比原本只攜帶信件要慢一些。
因此他們決定只有在選擇用對(duì)稱加密來給信息編碼(還記得凱撒加密法吧?)的密匙時(shí),使用傳遞盒子的方法(非對(duì)稱加密)。
這樣就可以二者的優(yōu)點(diǎn)兼具了,非對(duì)稱加密的可靠性和對(duì)稱加密的高效性。
現(xiàn)實(shí)世界中我們不會(huì)用信鴿這樣慢的送信手段,但用非對(duì)稱加密來編碼信息仍要慢于使用對(duì)稱加密技術(shù),所以我們只有在交換編碼密匙的時(shí)候會(huì)使用非對(duì)稱加密技術(shù)。
以上就是如何用信鴿來解釋 HTTPS,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。