摘要
本文嘗試一步步還原https的設計過程,以理解為什麼https最終會是這副模樣。但是這並不代表https的真實設計過程。在閱讀本文時,你可以嘗試放下已有的對https的理解,這樣更利於「還原」過程。
我們先不了聊http,https,我們先從乙個聊天軟體說起,我們要實現a能發乙個hello訊息給b:
如果我們要實現這個聊天軟體,本文只考慮安全性問題,要實現
a發給b的hello訊息包,即使被中間人攔截到了,也無法得知訊息的內容這個問題,很多人馬上就想到了各種加密演算法,什麼對稱加密、非對稱加密、des、rsa、xx、噼里啪啦~
而我想說,加密演算法只是解決方案,我們首先要做的是理解我們的問題域——什麼是安全?
我個人的理解是:
a與b通訊的內容,有且只有a和b有能力看到通訊的真正內容好,問題域已經定義好了(現實中當然不止這一種定義)。對於解決方案,很容易就想到了對訊息進行加密。
題外話,但是只有這一種方法嗎?我看未必,說不定在將來會出現一種物質打破當前世界的通訊假設,實現真正意義上的保密。
對於a與b這樣的簡單通訊模型,我們很容易做出選擇:
這就是對稱加密演算法,其中圖中的金鑰s同時扮演加密和解密的角色。具體細節不是本文範疇。
只要這個金鑰s不公開給第三者,同時金鑰s足夠安全,我們就解決了我們一開始所定問題域了。因為世界上有且只有a與b知道如何加密和解密他們之間的訊息。
但是,在www環境下,我們的web伺服器的通訊模型沒有這麼簡單:
如果伺服器端對所有的客戶端通訊都使用同樣的對稱加密演算法,無異於沒有加密。那怎麼辦呢?既能使用對稱加密演算法,又不公開金鑰?請讀者思考21秒鐘。
UI設計師這樣面試更容易成功
最基本的 專業的ui設計能力 大部分的公司都會從以下幾個方面來問你一些設計基礎 先會詢問一些基礎設計理論 常見的ui設計理論和設計法則 11.色彩搭配理論 如果什麼是暖色,冷色,前進色,後退色,什麼顏色代表什麼意思。比如電子商務 配什麼色好?為什麼?22.造型和構圖理論 比如透視,變形的簡單原理等。...
在深圳,這樣備考更容易通過軟考高階!
在深圳,這樣備考更容易通過軟考高階!軟考高階每年通過率百分之二十左右,考試難度還是比較大的,想要順利通過考試,複習就得下功夫。高階考試科目是三科,綜合知識 選擇題 案列分析 問答題 寫作題 複習以教材 歷年真題為主,還要額外蒐集一些 素材資料。大家複習之前最好制定乙個學習計畫,很多參加軟考的朋友都是...
迴圈佇列這樣理解就容易多啦
初始時,front rear 0,front代表指向佇列的第乙個元素 即arr front 是佇列的第乙個元素 rear代表指向佇列的最後乙個元素的後乙個元素,當front rear時表示隊列為空,注意為空時不一定front rear 0。想象成乙個圓形好理解一點。如果把佇列填滿,這種情況下就會出現...