HTTPS那些事(一)HTTPS原理

謠言粉碎機(jī)前些日子發(fā)布的《用公共 WiFi 上網(wǎng)會(huì)危害銀行賬戶安全嗎?》原叮,文中介紹了在使用 HTTPS 進(jìn)行網(wǎng)絡(luò)加密傳輸?shù)囊恍┣闆r,從回復(fù)來(lái)看巡蘸,爭(zhēng)議還是有的奋隶。隨著網(wǎng)絡(luò)越來(lái)越普及,應(yīng)用越來(lái)越廣泛悦荒,一些網(wǎng)絡(luò)安全問(wèn)題也會(huì)越來(lái)越引起網(wǎng)民的關(guān)注唯欣,在這里和大家一起聊聊 TLS/SSL 也就是我們常說(shuō)的 HTTPS ,從原理到實(shí)際應(yīng)用看清它到底是怎么一回事搬味,以及在使用 HTTPS 要注意哪些問(wèn)題以及相關(guān)的安全技巧境氢。

網(wǎng)絡(luò)安全是一個(gè)整體的事件,涉及到個(gè)人計(jì)算機(jī)的安全碰纬,協(xié)議的安全萍聊,傳輸數(shù)據(jù)的安全,以及軟件開(kāi)發(fā)公司和網(wǎng)站的安全悦析,單純的依靠一個(gè) HTTPS 協(xié)議并不能解決所有的問(wèn)題寿桨。希望通過(guò)今后一點(diǎn)一點(diǎn)的對(duì)安全相關(guān)的問(wèn)題進(jìn)行說(shuō)明解釋,能讓更多人對(duì)網(wǎng)絡(luò)安全有所了解强戴,從而更安全的使用網(wǎng)絡(luò)亭螟。

文章會(huì)比較長(zhǎng),暫時(shí)計(jì)劃分成三個(gè)部分:
第一部分主要描述 HTTPS 的原理骑歹;第二部分主要描述 SSL 證書(shū)驗(yàn)證的過(guò)程與使用的一些注意事項(xiàng)预烙;第三部分會(huì)呈現(xiàn)一些針對(duì) HTTPS 攻擊的實(shí)例。如果有需要道媚,我會(huì)后續(xù)的補(bǔ)充一些內(nèi)容扁掸。

我盡量使用最簡(jiǎn)潔的語(yǔ)言來(lái)描述相關(guān)的概念翘县,這里開(kāi)始先挖個(gè)坑,然后慢慢地填也糊。

一炼蹦、什么是 HTTPS

在說(shuō)HTTPS之前先說(shuō)說(shuō)什么是 HTTP ,HTTP 就是我們平時(shí)瀏覽網(wǎng)頁(yè)時(shí)候使用的一種協(xié)議狸剃。HTTP 協(xié)議傳輸?shù)臄?shù)據(jù)都是未加密的掐隐,也就是明文的,因此使用HTTP協(xié)議傳輸隱私信息非常不安全钞馁。為了保證這些隱私數(shù)據(jù)能加密傳輸虑省,于是網(wǎng)景公司設(shè)計(jì)了 SSL(Secure Sockets Layer)協(xié)議用于對(duì) HTTP 協(xié)議傳輸?shù)臄?shù)據(jù)進(jìn)行加密,從而就誕生了 HTTPS 僧凰。 SSL 目前的版本是3.0探颈,被 IETF(Internet Engineering Task Force)定義在 RFC 6101中,之后 IETF 對(duì) SSL 3.0進(jìn)行了升級(jí)训措,于是出現(xiàn)了 TLS(Transport Layer Security) 1.0伪节,定義在 RFC 2246。實(shí)際上我們現(xiàn)在的HTTPS都是用的 TLS 協(xié)議绩鸣,但是由于 SSL 出現(xiàn)的時(shí)間比較早怀大,并且依舊被現(xiàn)在瀏覽器所支持,因此 SSL 依然是 HTTPS 的代名詞呀闻,但無(wú)論是 TLS 還是 SSL 都是上個(gè)世紀(jì)的事情化借,SSL 最后一個(gè)版本是3.0,今后 TLS 將會(huì)繼承 SSL 優(yōu)良血統(tǒng)繼續(xù)為我們進(jìn)行加密服務(wù)捡多。目前 TLS 的版本是1.2蓖康,定義在 RFC 5246中,暫時(shí)還沒(méi)有被廣泛的使用垒手。

對(duì)歷史感興趣的朋友可以參考http://en.wikipedia.org/wiki/Transport_Layer_Security蒜焊,這里有對(duì)TLS/SSL詳盡的敘述。

二淫奔、HTTPS到底安全嗎山涡?

這個(gè)答案是肯定的,很安全唆迁。谷歌公司已經(jīng)行動(dòng)起來(lái)要大力推廣 HTTPS 的使用鸭丛,在未來(lái)幾周,谷歌將對(duì)全球所有本地域名都啟用 HTTPS 唐责,用戶只要在搜索前用Google帳號(hào)登錄鳞溉,之后所有的搜索操作都將使用 TLS 協(xié)議加密,見(jiàn):http://thenextweb.com/google/2012/03/05/google-calls-for-a-more-secure-web-expands-ssl-encryption-to-local-domains/鼠哥。

三熟菲、HTTPS的工作原理

HTTPS 在傳輸數(shù)據(jù)之前需要客戶端(瀏覽器)與服務(wù)端(網(wǎng)站)之間進(jìn)行一次握手看政,在握手過(guò)程中將確立雙方加密傳輸數(shù)據(jù)的密碼信息。TLS/SSL 協(xié)議不僅僅是一套加密傳輸?shù)膮f(xié)議抄罕,更是一件經(jīng)過(guò)藝術(shù)家精心設(shè)計(jì)的藝術(shù)品允蚣,TLS/SSL 中使用了非對(duì)稱加密,對(duì)稱加密以及 HASH 算法呆贿。握手過(guò)程的簡(jiǎn)單描述如下:
1.瀏覽器將自己支持的一套加密規(guī)則發(fā)送給網(wǎng)站嚷兔。
2.網(wǎng)站從中選出一組加密算法與 HASH 算法,并將自己的身份信息以證書(shū)的形式發(fā)回給瀏覽器做入。證書(shū)里面包含了網(wǎng)站地址冒晰,加密公鑰,以及證書(shū)的頒發(fā)機(jī)構(gòu)等信息竟块。
3.獲得網(wǎng)站證書(shū)之后瀏覽器要做以下工作:

  • 驗(yàn)證證書(shū)的合法性(頒發(fā)證書(shū)的機(jī)構(gòu)是否合法壶运,證書(shū)中包含的網(wǎng)站地址是否與正在訪問(wèn)的地址一致等),如果證書(shū)受信任浪秘,則瀏覽器欄里面會(huì)顯示一個(gè)小鎖頭蒋情,否則會(huì)給出證書(shū)不受信的提示。
  • 如果證書(shū)受信任耸携,或者是用戶接受了不受信的證書(shū)恕出,瀏覽器會(huì)生成一串隨機(jī)數(shù)的密碼,并用證書(shū)中提供的公鑰加密违帆。
  • 使用約定好的 HASH 計(jì)算握手消息,并使用生成的隨機(jī)數(shù)對(duì)消息進(jìn)行加密金蜀,最后將之前生成的所有信息發(fā)送給網(wǎng)站刷后。

4.網(wǎng)站接收瀏覽器發(fā)來(lái)的數(shù)據(jù)之后要做以下的操作:

  • 使用自己的私鑰將信息解密取出密碼,使用密碼解密瀏覽器發(fā)來(lái)的握手消息渊抄,并驗(yàn)證 HASH 是否與瀏覽器發(fā)來(lái)的一致尝胆。
  • 使用密碼加密一段握手消息,發(fā)送給瀏覽器护桦。

5.瀏覽器解密并計(jì)算握手消息的 HASH含衔,如果與服務(wù)端發(fā)來(lái)的 HASH 一致,此時(shí)握手過(guò)程結(jié)束二庵,之后所有的通信數(shù)據(jù)將由之前瀏覽器生成的隨機(jī)密碼并利用對(duì)稱加密算法進(jìn)行加密贪染。
這里瀏覽器與網(wǎng)站互相發(fā)送加密的握手消息并驗(yàn)證,目的是為了保證雙方都獲得了一致的密碼催享,并且可以正常的加密解密數(shù)據(jù)杭隙,為后續(xù)真正數(shù)據(jù)的傳輸做一次測(cè)試。另外因妙, HTTPS 一般使用的加密與HASH算法如下:

  • 非對(duì)稱加密算法:RSA痰憎,DSA/DSS
  • 對(duì)稱加密算法:AES票髓,RC4,3DES
  • HASH算法:MD5铣耘,SHA1洽沟,SHA256

其中非對(duì)稱加密算法用于在握手過(guò)程中加密生成的密碼,對(duì)稱加密算法用于對(duì)真正傳輸?shù)臄?shù)據(jù)進(jìn)行加密蜗细,而 HASH 算法用于驗(yàn)證數(shù)據(jù)的完整性裆操。由于瀏覽器生成的密碼是整個(gè)數(shù)據(jù)加密的關(guān)鍵,因此在傳輸?shù)臅r(shí)候使用了非對(duì)稱加密算法對(duì)其加密鳄乏。非對(duì)稱加密算法會(huì)生成公鑰和私鑰跷车,公鑰只能用于加密數(shù)據(jù),因此可以隨意傳輸橱野,而網(wǎng)站的私鑰用于對(duì)數(shù)據(jù)進(jìn)行解密朽缴,所以網(wǎng)站都會(huì)非常小心的保管自己的私鑰,防止泄漏水援。

TLS 握手過(guò)程中如果有任何錯(cuò)誤密强,都會(huì)使加密連接斷開(kāi),從而阻止了隱私信息的傳輸蜗元。正是由于 HTTPS 非常的安全或渤,攻擊者無(wú)法從中找到下手的地方,于是更多的是采用了假證書(shū)的手法來(lái)欺騙客戶端奕扣,從而獲取明文的信息薪鹦,但是這些手段都可以被識(shí)別出來(lái),我將在后續(xù)的文章進(jìn)行講述惯豆。不過(guò)2010年還是有安全專家發(fā)現(xiàn)了 TLS 1.0協(xié)議處理的一個(gè)漏洞:http://www.theregister.co.uk/2011/09/19/beast_exploits_paypal_ssl/池磁,實(shí)際上這種稱為BEAST的攻擊方式早在2002年就已經(jīng)被安全專家發(fā)現(xiàn),只是沒(méi)有公開(kāi)而已楷兽。目前微軟和Google已經(jīng)對(duì)此漏洞進(jìn)行了修復(fù)地熄。見(jiàn):http://support.microsoft.com/kb/2643584/en-ushttps://src.chromium.org/viewvc/chrome?view=rev&revision=90643

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市芯杀,隨后出現(xiàn)的幾起案子端考,更是在濱河造成了極大的恐慌,老刑警劉巖揭厚,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件却特,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡棋弥,警方通過(guò)查閱死者的電腦和手機(jī)核偿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)顽染,“玉大人漾岳,你說(shuō)我怎么就攤上這事轰绵。” “怎么了尼荆?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵左腔,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我捅儒,道長(zhǎng)液样,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任巧还,我火速辦了婚禮鞭莽,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘麸祷。我一直安慰自己澎怒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布阶牍。 她就那樣靜靜地躺著喷面,像睡著了一般。 火紅的嫁衣襯著肌膚如雪走孽。 梳的紋絲不亂的頭發(fā)上惧辈,一...
    開(kāi)封第一講書(shū)人閱讀 49,806評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音磕瓷,去河邊找鬼盒齿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛困食,可吹牛的內(nèi)容都是我干的县昂。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼陷舅,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了审洞?” 一聲冷哼從身側(cè)響起莱睁,我...
    開(kāi)封第一講書(shū)人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎芒澜,沒(méi)想到半個(gè)月后仰剿,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡痴晦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年南吮,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片誊酌。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡部凑,死狀恐怖露乏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情涂邀,我是刑警寧澤瘟仿,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站比勉,受9級(jí)特大地震影響劳较,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜浩聋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一观蜗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧衣洁,春花似錦墓捻、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至践樱,卻和暖如春厂画,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拷邢。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工袱院, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瞭稼。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓忽洛,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親环肘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子欲虚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

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