圖解HTTP之確保Web安全的HTTPS

在HTTP協議中有可能存在信息竊聽或身份偽裝等安全問題。使用HTTPS通信機制可以有效地防止這些問題。

1.HTTP的缺點

HTTP主要有這些不足,列舉如下:
通信使用名文,內容可能會被竊聽
不驗證通信方的身份,因此有可能遭遇偽裝
無法證明報文的完整性,所以有可能已遭篡改
這些問題不僅在HTTP上出現,其他未加密的協議也會存在這類問題。除此之外,HTTP本身有很多缺點。而且像某些特定的Web服務器和特定的Web瀏覽器在實際應用中存在的不足,另外,用Java和PHP等編程語言開發的Web應用也可能存在安全漏洞。為了有效防止這些弊端,有必要使用HTTPS。SSL提供認證和加密處理及摘要功能。僅靠HTTP確保完整性是非常困難的,因此通過和其他協議組合使用來實現這個目標。

2.HTTP+加密+認證+完整性保護=HTTPS

經常會在Web的登錄頁面和購物結算等使用HTTPS通信。使用HTTPS通信時,不再用http://,而是改用https://。另外,當瀏覽器訪問HTTPS通信有效的Web網站時,瀏覽器的地址欄內會出現一個帶鎖的標記。
HTTPS并非時應用層的一種新協議。只是HTTP通信接口部分用SSL和TLS協議代替而已。通常,HTTP直接和TCP通信,當使用SSL時,則演變成先和SSL通信,再由SSL和TCP通信了。SSL是獨立于HTTP的協議,所以不光是HTTP協議,其他運行在應用層的SMTP和Telnet等協議均可配合SSL協議使用。可以說SSL是當今世界上應用最為廣泛的網絡安全技術。

相互交互密鑰的公開密鑰加密技術

在對SSL進行講解之前,我們先來了解一下加密方法。SSL采用了一種叫做公開密鑰加密的加密處理方式。近代的加密方式中加密算法是公開的,而加密卻是保密的。通過這種方法得以保持加密方法得安全性。加密和解密都會用到密鑰。沒有密鑰就無法對密碼解密,反過來,任何人只要持有密鑰就能解密了,如果密鑰被攻擊者獲得,那加密也就失去了意義。

共享密鑰加密的困境

加密和解密用同一個密鑰的方式稱為共享密鑰加密,也被叫做對稱密鑰加密。以共享密鑰方式加密時必須將密鑰也發給對方。在互聯網上轉發密鑰時,如果通信被監聽,密鑰就可能落到攻擊者之手,也就失去了加密的意義。
使用兩把密鑰的公開密鑰加密
公開密鑰加密是一種非對稱的密鑰,一把叫做私有密鑰,一把叫做公開密鑰。使用公開密鑰加密方式,發送密文的一方使用對方的公開密鑰進行加密處理,對方在收到被加密的信息后,再使用自己的私有密鑰進行解密。利用這種方式,不需要發送用來解密的私有密鑰,也不必擔心密鑰被攻擊者竊聽而盜走。

HTTPS采用混合加密機制

HTTPS采用共享密鑰和公開密鑰加密兩者并用的混合加密機制。若密鑰能夠實現安全交換,那么有可能考慮僅使用公開密鑰加密來通信。但是公開密鑰加密與共享密鑰加密相比,其處理速度要慢。所以應充分利用兩者各自的優勢,將多種方法組合起來建立通信。在交換密鑰環節使用公開密鑰加密方式,之后的建立通信交換報文階段則使用共享密鑰加密方式。

證明公開密鑰正確性的證書

公開密鑰加密方式還是有一些問題,那就是無法證明公開密鑰本身就是貨真價實的公開密鑰,為了解決上述問題,可以使用由數字證書認證機構(CA,Certificate Authority)和其他相關機關頒發的公開密鑰證書。
數字證書認證機構處于客戶端和服務器雙方都可信賴的第三方機構的立場上。首先,服務器的運營人員向數字認證機構提出公開密鑰的申請。數字證書認證機構在判明提出申請者的身份之后,會對已申請的公開密鑰做數字簽名,然后分配這個已簽名的公開密鑰,并將該公開密鑰放入公鑰證書后綁定到一起。服務器會將這份由數字證書認證機構頒發的公鑰證書發送給客戶端,以進行公開密鑰加密方式通信,公鑰證書也叫做數字證書,接到證書的客戶端可使用數字證書認證機構的公開密鑰,對那張證書上的數字簽名進行驗證,一旦驗證通過,客戶端就可以明確兩件事:一,認證服務器的公開密鑰是真實有效的數字證書認證機構,二,服務器的公開密鑰是可信賴的。此處認證機關的公開密鑰如何安全的交給客戶端是個問題,因此,多數瀏覽器在開發商發布版本時,會事先植入常用認證機關的公開密鑰。

可證明組織真實性的EV SSL證書

證書的一個作用是用來證明作為通信一方的服務器是否規范,另外一個作用是確認對方服務器背后運營的企業是否真實存在,擁有該特性的證書就是EV SSL證書。

用以確認客戶端的客戶端證書

HTTPS中可以使用客戶端證書。以客戶端證書進行客戶端認證,證明服務器正在通信的對方始終是預料之內的客戶端,其作用跟服務器證書如出一轍。例如,銀行的網上銀行就采用了客戶端證書。在登錄網銀時,不僅要求用戶確認輸入ID和密碼,還會要求用戶的客戶端證書,以確認用戶是否從特定的終端訪問網銀。

認證機構信譽第一

SSL機制中介入認證機構之所以可行,是建立在其信用絕對可靠的這一大前提下的,然后2011年發生在荷蘭的偽造證書事件從根本上撼動了SSL的可信度。因為偽造證書上有正規認證機構的數字簽名,所以瀏覽器會判定該證書是正當的。當偽造的證書被用作服務器偽裝時,用戶根本無法察覺,雖然存在將證書無效化的證書吊銷列表機制以及從客戶端刪除根證書頒發機構的對策,但距離生效期間還需要一段時間,在這段時間里有多少用戶蒙受損失就不得而知了。
由自認證機構頒發的證書稱為自簽名證書
即使使用自簽名證書,通過SSL加密之后,可能偶爾還會看見通信處在安全的狀態的提示,可那也是有問題的,因為就算加密通信,也不能排除正在和已經通過偽裝的假服務器保持通信。

3.HTTPS的安全通信機制

1.客戶端通過發送Client Hello報文開始SSL通信。報文中包含客戶端支持的SSL的指定版本、加密組件列表(所使用的加密算法及密鑰長度等)。
2.服務器可進行SSL通信時,會以Server Hello報文作為應答。和客戶端一樣,在報文中包含SSL版本和加密組件,服務器的加密組件內容是從客戶端加密組件列表內篩選出來的。
3.服務器發送Certificate報文。報文中包含公開密鑰證書。
4.最后服務器發送Server Hello Done報文通知客戶端,最初階段的SSL握手協商部分結束
5.客戶端以Client Key Exchange報文作為回應。報文中包含通信加密中使用的一種被稱為Pre-master secret的隨機密碼串。該報文采用公開密鑰加密。
6.接著客戶端繼續發送Change Cipher Spec報文。該報文會提示服務器,在此報文之后的通信會采用Pre-master secret密鑰加密。
7.客戶端發送Finished報文,該報文包含連接至今的全部報文的整體較驗值。此次握手是否成功,取決于服務器是否正確解密該報文作為判斷標準。
8.服務器同樣發送Change Cipher Spec報文
9.服務器同樣發送Finished報文
10.SSL連接建立完成,當然,通信會收到SSL的保護,從此處開始進入應用層協議的通信,即發送HTTP請求。
11.應用層協議通信,即發送HTTP響應。
12。客戶端斷開連接,斷開時發送close_notify報文,這步之后發送TCP FIN報文來關閉與TCP的通信。
在以上流程中,應用層發送數據時會附加一種叫做MAC的報文摘要,MAC能夠查知報文是否遭到篡改,從而報文報文的完整性。

SSL和TLS

HTTPS使用SSL和TLS這兩個協議。SSL技術最初是由瀏覽器開發商網景通信公司倡導的,開發過SSL3.0之前的版本。目前由IETF(Internet Engineering Task Force,Internet工程任務組)的手中。
IETF以SSL3.0為基準,后制定了TLS1.0、TLS1.1、TLS1.2。TSL是以SSL為原型開發的協議,有時會統一稱該協議為SSL。當前的主流版本是SSL3.0和TLS1.0。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,739評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,634評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,653評論 0 377
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,063評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,835評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,235評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,315評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,459評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,000評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,819評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,004評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,560評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,257評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,676評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,937評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,717評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,003評論 2 374

推薦閱讀更多精彩內容