HTTPS與SSL(上篇)

HTTP的安全性問題

一般地晰洒,HTTP的報(bào)文在網(wǎng)絡(luò)中是明文傳輸?shù)睦俣睢EB服務(wù)器或者瀏覽器組裝好HTTP數(shù)據(jù)包后野建,就直接遞交給了傳輸層(一般是基于TCP的)進(jìn)行傳送。而通常情況下确买,我們的數(shù)據(jù)包不是直接傳送到目標(biāo)主機(jī)的斤讥,中間會經(jīng)過很多的轉(zhuǎn)發(fā)節(jié)點(diǎn),比如寢室或家里的路由器湾趾,學(xué)校的網(wǎng)關(guān)路由器芭商,運(yùn)營商的路由器等。這中間的任何節(jié)點(diǎn)都可以截獲我們的數(shù)據(jù)包撑帖,查看甚至篡改里面的內(nèi)容然后再進(jìn)行轉(zhuǎn)發(fā)。

在這里澳眷,舉三個例子胡嘿。

例1:Cookie竊取
我們都知道,HTTP協(xié)議是一個無狀態(tài)的協(xié)議钳踊,在不附帶其他額外信息的情況下衷敌,服務(wù)器是無法分辨前后兩次請求是否是來自同一用戶的。因此拓瞪,需要一些輔助手段來記錄用戶的信息缴罗。Cookie就是其中之一(Cookie的作用就不在這里詳述了)。Cookie最常見的作用就是用來記錄用戶登錄的Session ID祭埂。
我們首先來回顧一下登錄的原理:

  • 用戶填寫用戶名面氓、密碼
  • 發(fā)送登錄請求,此請求會帶上用戶填寫的用戶名蛆橡、密碼舌界,密碼通常會再瀏覽器端先進(jìn)行加密再傳送
  • 服務(wù)器接收到登錄請求數(shù)據(jù)包,取出用戶名泰演、密碼進(jìn)行驗(yàn)證呻拌,驗(yàn)證通過則在服務(wù)器端創(chuàng)建一個記錄用戶信息的Session,然后構(gòu)造響應(yīng)數(shù)據(jù)包睦焕,并且在HTTP頭里面增加一個Set-Cookie字段藐握,把剛才創(chuàng)建的Session的ID放進(jìn)去
  • 瀏覽器接收到響應(yīng)靴拱,并且把Set-Cookie頭中的Cookie信息保存到本地
  • 以后瀏覽器再向該網(wǎng)站發(fā)起請求的時候,都會帶上本地存儲的Cookie信息猾普;同樣袜炕,服務(wù)器接收到請求的時候,也首先去檢查請求頭的Cookie信息抬闷,如果Cookie里有Session ID并且該Session ID對應(yīng)的Session在服務(wù)器端還存在且有效妇蛀,則服務(wù)器允許用戶進(jìn)行操作,否則將用戶重定向到登錄頁面笤成。

如下圖所示评架,這是登錄之后瀏覽器存儲的Cookie,里面有一個Session ID炕泳。


Cookie-Session

也就是說纵诞,如果我們的Cookie信息在傳輸?shù)倪^程中被竊取了,竊取者就可以登錄我們的賬號了培遵。我們拿163郵箱的登錄舉個例子浙芙。

  • 首先,登錄我們的163郵箱


    163郵箱登錄
  • 然后籽腕,我們通過Chrome自帶的Network工具隨便獲取一個到main.163.com的請求嗡呼,并取出其中的Cookie信息


    獲取Cookie信息
  • 接下來打開另外一個瀏覽器,訪問 http://mail.163.com皇耗。如果你沒有在這個瀏覽器登錄過南窗,這個時候是不會直接登錄的。打開瀏覽器開發(fā)工具的JS控制臺郎楼,輸入如下代碼万伤,并且把剛才的獲取的Cookie粘貼到Prompt彈框里面。這個時候我們獲取的Cookie信息已經(jīng)寫入了新瀏覽器呜袁。按照設(shè)想敌买,此時我們應(yīng)該可以復(fù)原該賬號的登錄了。
    寫入Cookie
  • 重新載入頁面阶界,果然虹钮,登錄進(jìn)去了。


    復(fù)原登錄

所以膘融,從例子1我們能看出來芜抒,當(dāng)我們的Cookie信息被竊取,賬號就有可能被壞人登錄托启,然后做一些壞事^宅倒。我們的QQ空間,人人賬號,BBS等都有可能通過這種方式被別人登錄拐迁,因?yàn)樗麄兌际侵换贖TTP的蹭劈。所以,對于不信任的WIFI熱點(diǎn)线召,最好少連铺韧,連了也不要登錄這些只基于HTTP的社交賬號。當(dāng)然了缓淹,這里只是舉了一個例子哈打,能夠被竊取的還不僅僅是Cookie信息。由此可見讯壶,HTTP安全性問題一:數(shù)據(jù)有被竊取的危險(xiǎn)料仗。

例2: 運(yùn)營商HTTP劫持
明文HTTP數(shù)據(jù)包除了可以被竊取之外,還有可能被篡改伏蚊,而且通信的雙方都無法知道接收到的HTTP數(shù)據(jù)包是否被篡改過立轧。
接下來,讓我們來看一個HTTP數(shù)據(jù)包被篡改的例子躏吊。
我們有時候在瀏覽手機(jī)網(wǎng)頁的時候氛改,會發(fā)現(xiàn)頁面出了正常的內(nèi)容之外,還多出了一些奇怪的東西比伏,如下圖右下角的水泡胜卤。

HTTP劫持示意圖1

點(diǎn)開一看,卻是運(yùn)營商充話費(fèi)赁项、充流量的一個導(dǎo)購頁面葛躏。
HTTP劫持示意圖2

當(dāng)我通過電腦訪問,或者手機(jī)從數(shù)據(jù)切換到WIFI環(huán)境再訪問時肤舞,頁面上的水泡就消失了紫新。這說明均蜜,頁面上的這個水泡是運(yùn)營商做的手腳李剖。通過對比發(fā)現(xiàn),在使用運(yùn)營商網(wǎng)絡(luò)訪問網(wǎng)頁時囤耳,獲取到的頁面被插入了一段JS篙顺。而這段JS的作用就是生成那個水泡和運(yùn)營商的導(dǎo)購頁面。
HTTP劫持示意圖3

這說明充择,我們的響應(yīng)HTTP數(shù)據(jù)包在返回的時候被運(yùn)營商截獲并且修改了德玫。雖然這一行為很無恥,但是用戶和WEB服務(wù)提供者對此都無能為力椎麦。

例3:中間人攻擊
中間人攻擊舉一個典型的公鑰私鑰加密通信的例子吧宰僧。
一般的場景是:A要與B進(jìn)行通信,為了使通信內(nèi)容保密观挎,A會把自己的公鑰發(fā)給B琴儿,B也會把自己的公鑰發(fā)給A段化,然后A與B就可以進(jìn)行加密通信了。但是造成,如果此時A與B中間有一個人C在竊聽A與B的通信显熏,當(dāng)A把公鑰發(fā)給B的時候,C把A的公鑰截獲下來并且把自己的公鑰發(fā)給B晒屎,當(dāng)B把自己的公鑰發(fā)給A的時候喘蟆,C把B的公鑰截獲下來并且把自己的公鑰發(fā)給A,這樣C就可以冒充A和B進(jìn)行通信鼓鲁,也可以冒充B和A進(jìn)行通信蕴轨。A與B的通信內(nèi)容對與C來說是毫無保密性可言的。
這中間的問題在于坐桩,當(dāng)我拿到一個公鑰是尺棋,我無法知道我拿到的公鑰是不是我目標(biāo)通信對象的。要解決這個問題绵跷,必須要有一種辦法膘螟,讓收到公鑰的人能夠確認(rèn)公鑰的真實(shí)性。這就是后面會講到的證書的作用碾局。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末荆残,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子净当,更是在濱河造成了極大的恐慌内斯,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡唆缴,警方通過查閱死者的電腦和手機(jī)榨咐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咆课,“玉大人,你說我怎么就攤上這事≌谏簦” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵湖笨,是天一觀的道長旗扑。 經(jīng)常有香客問我,道長慈省,這世上最難降的妖魔是什么臀防? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上袱衷,老公的妹妹穿的比我還像新娘琼锋。我一直安慰自己,他們只是感情好祟昭,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布缕坎。 她就那樣靜靜地躺著,像睡著了一般篡悟。 火紅的嫁衣襯著肌膚如雪谜叹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天搬葬,我揣著相機(jī)與錄音荷腊,去河邊找鬼。 笑死急凰,一個胖子當(dāng)著我的面吹牛女仰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播抡锈,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼疾忍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了床三?” 一聲冷哼從身側(cè)響起一罩,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎撇簿,沒想到半個月后聂渊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡四瘫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年汉嗽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片找蜜。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡饼暑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出锹杈,到底是詐尸還是另有隱情撵孤,我是刑警寧澤迈着,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布竭望,位于F島的核電站,受9級特大地震影響裕菠,放射性物質(zhì)發(fā)生泄漏咬清。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望旧烧。 院中可真熱鬧影钉,春花似錦、人聲如沸掘剪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夺谁。三九已至廉赔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間匾鸥,已是汗流浹背蜡塌。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留勿负,地道東北人馏艾。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像奴愉,于是被迫代替她去往敵國和親琅摩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理锭硼,服務(wù)發(fā)現(xiàn)迫吐,斷路器,智...
    卡卡羅2017閱讀 134,661評論 18 139
  • 作者:晚晴幽草軒www.jeffjade.com/2016/10/31/115-summary-of-cookie...
    饑人谷_Dylan閱讀 1,225評論 0 51
  • 背景在HTTP協(xié)議的定義中账忘,采用了一種機(jī)制來記錄客戶端和服務(wù)器端交互的信息志膀,這種機(jī)制被稱為cookie,cooki...
    時芥藍(lán)閱讀 2,366評論 1 17
  • 1. 網(wǎng)絡(luò)基礎(chǔ)TCP/IP HTTP基于TCP/IP協(xié)議族鳖擒,HTTP屬于它內(nèi)部的一個子集溉浙。 把互聯(lián)網(wǎng)相關(guān)聯(lián)的協(xié)議集...
    yozosann閱讀 3,444評論 0 20
  • “人要有傲骨,但不可傲氣蒋荚〈粱” “每個人都會有一段時間很迷茫,但是也都會有一次走好運(yùn)的機(jī)會期升,只要你抓住了惊奇,多的是機(jī)遇...
    困困君萬歲閱讀 392評論 0 0