0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HTTPS協(xié)議和信鴿有什么關(guān)系如何通過信鴿來解釋

Linux愛好者 ? 來源:未知 ? 作者:易水寒 ? 2018-10-20 09:51 ? 次閱讀

密碼學(xué)可能是一個難以理解的主題。它充滿了數(shù)學(xué)證明。除非你真的需要開發(fā)密碼系統(tǒng),否則,如果你只想從宏觀的角度了解密碼學(xué),你并不需要理解這些復(fù)雜的內(nèi)容。

如果你抱著能夠創(chuàng)建下一個 HTTPS 協(xié)議的期望打開這篇文章,我不得不遺憾地表示只有信鴿是不夠的。否則,煮一些咖啡,享受這篇文章吧。

Alice,Bob 和信鴿?

你在互聯(lián)網(wǎng)上的任何活動(閱讀這篇文章,在亞馬遜上買東西,上傳貓咪的圖片)都歸結(jié)為向服務(wù)器發(fā)送消息和從服務(wù)器接收消息。

這么講聽起來可能有點抽象,因此,我們不妨假設(shè)這些信息是通過信鴿傳遞的。我明白這么假設(shè)顯得很隨意,但請相信我:HTTPS 的工作原理就是這樣的,只是快得多。

本文中我們并不會使用,服務(wù)器,客戶端和黑客這樣的術(shù)語,取而代之的是,我們會依次使用人名 Alice、 Bob 和 Mallory來代替它們。如果你不是第一次嘗試理解密碼概念,你可以認出這些名字,因為它們被廣泛用于技術(shù)文獻中。

一次簡單的通訊

如果 Alice 想要給 Bob 傳遞一條信息,她將信息綁在信鴿的腿上,然后讓信鴿傳給 Bob。Bob 收到信息,讀取信息。一切都正常。

但要是 Mallory 途中攔截了 Alice 的信鴿,并且改變了信息的內(nèi)容?Bob 無法知道 Alice 發(fā)送的信息在傳遞途中被修改了。

這就是HTTP的工作原理。挺可怕的,對吧?我不會通過 HTTP 協(xié)議來發(fā)送我的銀行憑證,你也不應(yīng)該這么做。

一個密令

那如果 Alice 和 Bob 都很機靈呢。他們同意將使用密令來寫信息。他們將字母表中的每個字母偏移 3 個位置。比如:D -> A, E -> B, F -> C。明文“secret message”將轉(zhuǎn)換成“pbzobq jbppxdb”。

現(xiàn)在,如果 Mallory 攔截了信鴿,她既不能把信息改變成一些有意義的信息,也不能明白信息里說的內(nèi)容,因為她不知道密令。但是Bob可以簡單地反向應(yīng)用密令(A -> D, B -> E, C -> F)將信息解密。密文“pbzobq jbppxdb”將被解密回“secret message”。

大功告成!

這被稱為對稱密鑰密碼術(shù),因為當你知道如何加密一條信息,你也知道如何給信息解密。

我在上面介紹的密令通常被稱為凱撒密碼。在現(xiàn)實生活中,我們使用更高級和復(fù)雜的密令,但是主要思路是相同的。

我們?nèi)绾螞Q定密鑰是什么?

如果只有發(fā)送方和接收方知道密鑰,對稱密鑰密碼術(shù)是很安全的。在凱撒密碼中,密鑰是一個偏移值,這個偏移值決定每個字母應(yīng)該偏移多少。在我們的例子中,我們使用的偏移值是 3,但是也能是 4 或者 12。

不過這么設(shè)計會有個問題:在用信鴿傳遞信息之前,如果 Alice 和 Bob 之前從沒見過,他們沒有安全的方式創(chuàng)建一個密鑰。如果他們將密鑰包含在信息之中,Mallory 將攔截信息并且發(fā)現(xiàn)密鑰。后果就是:無論 Alice 和 Bob 發(fā)送的信息是否加密,Mallory 都能讀取或者改變攔截到的信息。

這是一個典型的中間人攻擊例子。避免它的唯一方法是改變之前的密碼系統(tǒng)。

攜帶盒子的信鴿

所以 Alice 和 Bob 想出了一個更好的系統(tǒng)。當 Bob 想要發(fā)送信息給 Alice 時,Alice 將遵照下面的流程:

Bob 向 Alice 傳送一只信鴿,信鴿不攜帶任何信息。

Alice 將這只信鴿傳回給 Bob,信鴿攜帶一只開著鎖的盒子以及密鑰。

Bob 把信息放到盒子里,將鎖鎖上,將盒子傳送給 Alice。

Alice 收到盒子,使用密鑰打開盒子,讀取信息。

通過這種方式傳遞信息,Mallory 不可能通過攔截信鴿的方式來改變信息,因為她沒有密鑰。當 Alice 想要向 Bob 發(fā)送信息時,遵循相同的流程。

Alice 和 Bob 剛剛使用了通常所說的非對稱密鑰密碼術(shù)。之所以稱它為非對稱,是因為即使你可以加密一條信息(鎖上盒子)但你也不能將它解密(打開鎖住的盒子)。

我怎么信任這個盒子?

如果你夠仔細的話,你可能已經(jīng)意識到我們?nèi)匀挥幸粋€問題。當 Bob 收到那個開著的盒子時,他如何確信這是來自 Alice 的盒子,而不是 Mallory 攔截信鴿后,將來自于 Alice 的盒子替換成 Mallory 自己設(shè)置了密鑰后的盒子。

Alice 決定對盒子進行數(shù)字簽名,通過這種方式,當 Bob 收到盒子,他通過核對簽名的一致性來確定盒子是否來自 Alice。

有些人可能就會想 Bob 如何識別 Alice 的簽名?不錯的問題。Alice 和 Bob 也有同樣的疑問。因此他們決定讓 Ted 對盒子進行數(shù)字簽名,而不是 Alice。

Ted 是誰?Ted 是一個著名且值得信賴的人。每個人都可以從Ted 那里獲得簽名,每個人都相信Ted 只會為合法的人提供盒子的數(shù)字簽名服務(wù)。

只有當Ted 確信正在請求簽名的人是 Alice,Ted 才會為 Alice 提供盒子數(shù)字簽名的服務(wù)。因此 Mallory 不能再像之前那樣攔截 Alice 的盒子、替換盒子后傳送給 Bob 了,因為 Bob 會發(fā)現(xiàn)這個盒子在 Ted 那進行數(shù)字簽名的是 Mallory,而不是 Alice。

Ted 在技術(shù)術(shù)語中通常被稱為證書頒發(fā)機構(gòu),你閱讀這篇文章所使用的瀏覽器安裝著各種證書頒發(fā)機構(gòu)的簽名。

因此當你第一次連接到一個網(wǎng)站,你信任它的盒子,因為你信任 Ted,而 Ted 告訴你這個盒子是合法的。

盒子太重了

Alice 和 Bob 現(xiàn)在有了一個可靠的通信系統(tǒng),但是他們意識到和僅僅攜帶信息的信鴿相比,攜帶盒子的信鴿太慢了。

他們決定只在傳遞密鑰的時候使用盒子的方法(非對稱密碼術(shù)),加密信息使用對稱密碼術(shù)(記得之前提到的凱撒密碼?)。

這樣的話可謂兩全其美:非對稱密碼術(shù)的可靠性和對稱密碼術(shù)的效率都有了。

在現(xiàn)實世界中,“信鴿”的傳送速度都很快,但盡管這么講,使用非對稱密碼技術(shù)加密消息比使用對稱密碼技術(shù)慢,所以我們只使用它來交換加密密鑰。

現(xiàn)在你知道了HTTPS的工作原理,你的咖啡也該煮好了。去喝吧,這是你應(yīng)得的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 互聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    54

    文章

    11037

    瀏覽量

    102443
  • 通信系統(tǒng)
    +關(guān)注

    關(guān)注

    6

    文章

    1156

    瀏覽量

    53241
  • HTTP
    +關(guān)注

    關(guān)注

    0

    文章

    495

    瀏覽量

    30892

原文標題:通過信鴿來解釋 HTTPS

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    ARM9和STM32什么關(guān)系?

    小伙伴問:ARM9和STM32什么關(guān)系
    發(fā)表于 12-19 11:06 ?1972次閱讀

    使用騰訊信鴿做消息推送

    使用信鴿創(chuàng)建demo app安裝在手機上下載騰訊提供的sdk我用的是python版本的,只需替換掉 id 和key ,在樹莓派上執(zhí)行就可以推送的手機上個性化設(shè)置也比較多,還不錯
    發(fā)表于 03-02 18:36

    ARM和AVR什么關(guān)系?

    ARM和AVR什么關(guān)系非常迷茫,或者是是什么樣的聯(lián)系
    發(fā)表于 05-20 14:50

    信鴿電子環(huán)復(fù)制器

    信鴿電子環(huán)能復(fù)制嗎
    發(fā)表于 11-12 06:50

    請問VNF和NSF是什么關(guān)系?看到VNF解釋說是在SIMCOP中的,什么意義?

    本帖最后由 一只耳朵怪 于 2018-6-22 14:17 編輯 Dear all,我以下兩個個疑問。1:VNF和NSF是什么關(guān)系?看到VNF解釋說是在SIMCOP中的,什么
    發(fā)表于 06-22 04:21

    請問USB D+和D-線的speed設(shè)置和USB協(xié)議什么關(guān)系?

    關(guān)于USBD+和D-線的speed設(shè)置,和USB協(xié)議什么關(guān)系呢?4-20ns是什么意思?這個值關(guān)系到IO口的speed嗎?
    發(fā)表于 06-11 15:06

    flash跟EEPROM之間什么關(guān)系?

    flash跟EEPROM之間什么關(guān)系?
    發(fā)表于 01-29 20:24

    光點“信鴿”復(fù)合翼無人機,組裝快捷

    今日,無人機網(wǎng)又添新成員“無人機網(wǎng)號-信鴿”。該機是由“廣東東莞光點科技有限公司(以下簡稱:光點科技)”所提供,這是一款可快速組裝、便攜的復(fù)合翼無人機。
    的頭像 發(fā)表于 08-11 08:44 ?4261次閱讀

    220V電和380V電什么區(qū)別和什么關(guān)系

    電,是我們?nèi)粘I钪斜夭豢缮俚臇|西了,可是我們很多人卻不了解我們使用的電是怎么的,220V 電和 380V 電之間什么關(guān)系?
    發(fā)表于 12-21 08:00 ?39次下載

    LED的亮度與PWM什么關(guān)系詳細代碼說明

    本文檔的主要內(nèi)容詳細介紹的是LED的亮度與PWM什么關(guān)系詳細代碼說明。
    發(fā)表于 08-01 17:34 ?13次下載
    LED的亮度與PWM<b class='flag-5'>有</b><b class='flag-5'>什么關(guān)系</b>詳細代碼說明

    一文看懂PD協(xié)議和Type-C的區(qū)別

    說到充電快,那一定要了解下PD快充協(xié)議?那么PD協(xié)議和Type-C又有什么關(guān)系呢?下面帶你一起來搞清楚。
    的頭像 發(fā)表于 12-22 07:25 ?14.4w次閱讀
    一文看懂PD<b class='flag-5'>協(xié)議和</b>Type-C的區(qū)別

    USB接口與雷電接口什么關(guān)系?

    USB接口和雷電接口什么關(guān)系
    的頭像 發(fā)表于 01-13 16:34 ?1.8w次閱讀

    聲音(sound)是什么,它和頻率什么關(guān)系

    大家好,今天和大家分享一下聲音的物理知識。聲音(sound)聲音是什么,他和頻率什么關(guān)系?聲音就是由物體振動產(chǎn)生的聲波。是通過介質(zhì)(空氣或固體、液體)傳播并能被人或動物聽覺器官所感知的波動現(xiàn)象。最初發(fā)出振動(震動)的物體叫聲源
    的頭像 發(fā)表于 03-08 10:52 ?4098次閱讀

    減速電機的扭矩與速度什么關(guān)系?

    減速電機的扭矩與速度什么關(guān)系? 減速電機是一種常見的電動機,常用于需要精確控制轉(zhuǎn)速和輸出扭矩的應(yīng)用中。在了解減速電機的扭矩與速度關(guān)系之前,我們先來了解一下減速電機的基本原理。 減速電機由兩部分
    的頭像 發(fā)表于 12-19 09:55 ?1350次閱讀

    什么是頻域分析?頻域和時域什么關(guān)系?

    什么是頻域分析?頻域和時域什么關(guān)系? 頻域分析是一種用于分析信號的方法,它將信號從時域(時鐘)轉(zhuǎn)換為頻域(頻率)。頻域分析允許我們觀察信號中包含的不同頻率成分,并確定它們的振幅、相位和其它特性
    的頭像 發(fā)表于 02-03 17:19 ?3421次閱讀