https 的工作原理敦间,和 http 的區(qū)別瓶逃。

在上網(wǎng)獲取信息的過程中,我們接觸最多的信息加密傳輸方式也莫過于 HTTPS 了廓块。每當(dāng)訪問一個站點厢绝,瀏覽器的地址欄中出現(xiàn)綠色圖標(biāo)時,意味著該站點支持 HTTPS 信息傳輸方式带猴。HTTPS 是我們常見的 HTTP 協(xié)議與某個加密協(xié)議的混合體昔汉,也就是 HTTP+S。這個 S 可以是 TLS(安全傳輸層協(xié)議)拴清、也可以是 SSL(安全套接層)靶病,不過我更認(rèn)可另一個抽象概括的說法,HTTP+Security口予。

首先娄周,HTTPS并不是這種加密技術(shù)的正式名稱,HTTPS代表的是“在TLS/SSL上實現(xiàn)的HTTP協(xié)議”沪停,因此實現(xiàn)加密的其實是位于HTTP下面的TLS/SSL層煤辨。

我們看看TLS/SSL所實現(xiàn)的幾個主要機制:

  1. 證書:通過第三方權(quán)威證書頒發(fā)機構(gòu)(如VeriSign)驗證和擔(dān)保網(wǎng)站的身份裳涛,防止他人偽造網(wǎng)站身份與不知情的用戶建立加密連接。

  2. 密鑰交換:通過公鑰(非對稱)加密在網(wǎng)站服務(wù)器和用戶之間協(xié)商生成一個共同的會話密鑰众辨。

  3. 會話加密:通過機制(2)協(xié)商的會話密鑰端三,用對稱加密算法對會話的內(nèi)容進(jìn)行加密。

  4. 消息校驗:通過消息校驗算法來防止加密信息在傳輸過程中被篡改泻轰。

通過上述機制技肩,用戶與網(wǎng)站之間的傳輸內(nèi)容受到了保護(hù),因此能夠獲得很高的安全性浮声。不過虚婿,任何密碼學(xué)手段都不是絕對安全的,上面幾個機制中其實都存在可能的風(fēng)險:

  1. 證書:如果有人偽造證書泳挥,瀏覽器會發(fā)出警告然痊,提示用戶該網(wǎng)站的證書可能是偽造的,應(yīng)該停止訪問屉符,但如果你無視瀏覽器的警告剧浸,你的會話信息就有可能被偽造者竊取。此外矗钟,如果第三方證書頒發(fā)機構(gòu)遭到攻擊唆香,攻擊者竊取了已頒發(fā)的證書密鑰,就可以偽造相應(yīng)的網(wǎng)站證書吨艇,完全騙過瀏覽器的安全機制躬它,這樣的例子的確曾經(jīng)發(fā)生過。

  2. 密鑰交換:RSA东涡,這是一種最普遍使用的公鑰加密算法冯吓,一般來說安全性很高。

  3. 會話加密:AES-256(CBC Mode)疮跑,這是一種非常廣泛使用的加密算法组贺,采用256位密鑰代表其安全性很高,如果采用128位密鑰(AES-128)則安全性就差一些祖娘。

  4. 消息校驗:SHA1失尖,這是一種散列算法,SHA1的安全性比MD5要好渐苏,但如果采用SHA256則安全性會更好一些掀潮。

上面很抽象是不是,我們用“傳紙條”這個人人小時候都做過的事來形象的說明一下整以。

HTTP

假設(shè)你現(xiàn)在正坐在教室里上課胧辽,現(xiàn)在你非常想和走道旁的迷人的 TA 說一些話峻仇,一般這個時候你會用“傳紙條”的方式來交流公黑。而這個方式和 TCP/IP 協(xié)議基本的工作模式十分相像:

通過小動作引起對方注意;

對方以多種可能的方式(注視、肢體語言等)回應(yīng)于你凡蚜;

你確認(rèn)對方感知到你后人断,將紙條傳給對方;

對方閱讀紙條朝蜘;

對方給予你閱讀后的反應(yīng)恶迈;

怎么樣,這個流程是不是很熟悉谱醇?

如果你要傳遞紙條的 TA 距離你很遠(yuǎn)怎么辦暇仲?HTTP 協(xié)議就是指你在紙條上寫明你要傳給的 TA 是誰,或者 TA 的座位在哪副渴,接著只需要途徑的同學(xué)拿到紙條后根據(jù)紙條上的指示依次將紙條傳過去就 OK 了奈附。

這個時候問題來了:途徑的同學(xué)完全可以觀看并知道你在紙條上寫了什么。

這就是 HTTP 傳輸所面臨的問題之一:中間人攻擊煮剧,指消息傳遞的過程中斥滤,處在傳遞路徑上的攻擊者可以嗅探或者竊聽傳輸數(shù)據(jù)的內(nèi)容。

HTTPS

HTTPS 針對這個問題勉盅,采用了“加密”的方式來解決佑颇。最著名原始的加密方法就是對稱加密算法了,就是雙方約定一個暗號草娜,用什么字母替換什么字母之類的√粜兀現(xiàn)在一般采用一種叫 AES(高級加密算法)的對稱算法。

對稱加密算法既指加密和解密需要使用的密鑰 key 是一樣的驱还。

AES 在數(shù)學(xué)上保證了嗜暴,只要你使用的 key 足夠長,破解幾乎是不可能的(除非光子計算機造出來了)

我們先假設(shè)在沒有密鑰 key 的情況下议蟆,密文是無法被破解的闷沥,然后再回到這個教室。你將用 AES 加密后的內(nèi)容噌噌噌地寫在了紙條上咐容,正要傳出去的時候你突然想到舆逃,TA 沒有 key 怎么解密內(nèi)容呀,或者說戳粒,應(yīng)該怎么把 key 給TA路狮?

如果把 key 也寫在紙條上,那么中間人照樣可以破解竊聽紙條內(nèi)容蔚约。也許在現(xiàn)實環(huán)境中你有其他辦法可以把 key 通過某種安全的渠道送到 TA 的手里奄妨,但是互聯(lián)網(wǎng)上的實現(xiàn)難度就比較大了,畢竟不管怎樣苹祟,數(shù)據(jù)都要經(jīng)過那些路由砸抛。

于是聰明的人類發(fā)明了另一種加密算法——非對稱加密算法评雌。這種加密算法會生成兩個密鑰(key1 和 key2)。凡是 key1 加密的數(shù)據(jù)直焙,key1 自身不能解密景东,需要 key2 才能解密;凡事 key2 加密的數(shù)據(jù)奔誓,key2 自身不能解密斤吐,只有 key1 才能解密。

目前這種算法有很多中厨喂,最常用的是 RSA和措。其基于的數(shù)學(xué)原理是:

兩個大素數(shù)的乘積很容易算,但是用這個乘積去算出是哪兩個素數(shù)相乘就很復(fù)雜了蜕煌。好在以目前的技術(shù)臼婆,分解大數(shù)的素因確實比較困難,尤其是當(dāng)這個大數(shù)足夠大的時候(通常使用2的10次方個二進(jìn)制位那么大)幌绍,就算是超級計算機颁褂,解密也需要非常長的時間。

現(xiàn)在就把這種非對稱加密的方法應(yīng)用在我們教室傳紙條的場景里傀广。

你在寫紙條內(nèi)容之前先用 RSA 技術(shù)生成了一對密鑰 k1 和 k2颁独。

你把 k1 用明文傳了出去,路經(jīng)也許有人會截取伪冰,但是沒有用誓酒,k1 加密的數(shù)據(jù)需要 k2 才可以破解,而 k2 在你自己手中贮聂。

k1 傳到了目的人靠柑,目的人會去準(zhǔn)備一個接下來準(zhǔn)備用于對稱加密(AES)的傳輸密鑰 key,然后用收到的 k1 把 key 加密吓懈,傳給你歼冰。

你用手上的 k2 解出 key 后,全教室只有你和你的目的人擁有這個對稱加密的 key耻警,你們倆就可以盡情聊天不怕竊聽啦~

這里也許你會有問題隔嫡,為什么不直接用非對稱加密來加密信息,而是加密 AES 的 key 呢甘穿?因為非對稱加密和解密的平均消耗時間比較長腮恩,為了節(jié)省時間提高效率,我們通常只是用它來交換密鑰温兼,而非直接傳輸數(shù)據(jù)秸滴。

然而使用非對稱加密真的可以防范中間人攻擊嗎?雖然看上去很安全募判,但是實際上卻擋不住可惡的中間人攻擊荡含。

假設(shè)你是 A吝羞,你的目的地是 B,現(xiàn)在要途徑一個惡意同學(xué)M内颗。中間人的惡意之處在于它會偽裝成你的目標(biāo)。

當(dāng)你要和 B 完成第一次密鑰交換的時候敦腔,M 把紙條扣了下來均澳,假裝自己是B并偽造了一個 key,然后用你發(fā)來的 k1 加密了 key 發(fā)還給你符衔。

你以為你和 B 完成了密鑰交換找前,實際上你是和 M 完成了密鑰交換。

同事 M 和 B 完成一次密鑰交換判族,讓 B 以為和 A 你完成了密鑰交換躺盛。

現(xiàn)在整體的加密流程變成了A(加密鏈接1)->M(明文)->B(加密鏈接2)的情況了,這時候 M 依然可以知道A和B傳輸?shù)娜肯ⅰ?/p>

這個時候就是體現(xiàn) HTTPS 和傳紙條的區(qū)別了形帮。在教室里槽惫,你是和一位與你身份幾乎對等的的對象來通信;而在訪問網(wǎng)站時辩撑,對方往往是一個比較大(或者知名)的服務(wù)者界斜,他們有充沛的資源,或許他們可以向你證明他們的合法性合冀。

此時我們需要引入一個非常權(quán)威的第三方各薇,一個專門用來認(rèn)證網(wǎng)站合法性的組織,可以叫做 CA(Certificate Authority)君躺。各個網(wǎng)站服務(wù)商可以向 CA 申請證書峭判,使得他們在建立安全連接時可以帶上 CA 的簽名。而 CA 得安全性是由操作系統(tǒng)或者瀏覽器來認(rèn)證的棕叫。

你的 Windows林螃、Mac、Linux俺泣、Chrome治宣、Safari 等會在安裝的時候帶上一個他們認(rèn)為安全的 CA 證書列表,只有和你建立安全連接的網(wǎng)站帶有這些CA的簽名砌滞,操作系統(tǒng)和瀏覽器才會認(rèn)為這個鏈接是安全的侮邀,否則就有可能遭到中間人攻擊。

一旦某個 CA 頒發(fā)的證書被用于的非法途徑贝润,那么這個 CA 之前頒發(fā)過的所有證書都將被視為不安全的绊茧,這讓所有 CA 在頒發(fā)證書時都十分小心,所以 CA 證書在通常情況下是值得信任的打掘。

正如聲網(wǎng)agora.io Web SDK考慮數(shù)據(jù)安全問題华畏,限制了http訪問getUserMedia接口鹏秋,只能通過https方式訪問。所以會出現(xiàn)用http在Chrome瀏覽器(47以上版本)中訪問Agora服務(wù)失敗亡笑,我該怎么辦侣夷?

Agora Web解決方案基于WebRTC技術(shù)建立瀏覽器間的音視頻通信,在WebRTC協(xié)議中仑乌,瀏覽器通過getUserMedia接口獲取視頻(通過攝像頭)和音頻(通過麥克風(fēng))數(shù)據(jù)百拓,Google Chrome是支持WebRTC的主流瀏覽器之一,在v47及以上版本晰甚,考慮到數(shù)據(jù)安全問題衙传,限制了http訪問getUserMedia接口,只能通過https方式訪問厕九。除了chrome瀏覽器外蓖捶,Opera瀏覽器在v34版本后也跟進(jìn)了對http的限制,F(xiàn)irefox暫時沒有此更新扁远。但是考慮到https是WebRTC協(xié)議推薦的安全訪問方式俊鱼,建議客戶統(tǒng)一通過https來訪問Agora Web服務(wù),也能兼容各瀏覽器平臺畅买。

原文鏈接:http://www.reibang.com/p/be7a20cc8468
亭引。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市皮获,隨后出現(xiàn)的幾起案子焙蚓,更是在濱河造成了極大的恐慌,老刑警劉巖洒宝,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件购公,死亡現(xiàn)場離奇詭異,居然都是意外死亡雁歌,警方通過查閱死者的電腦和手機宏浩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來靠瞎,“玉大人比庄,你說我怎么就攤上這事》ρ危” “怎么了佳窑?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長父能。 經(jīng)常有香客問我神凑,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任溉委,我火速辦了婚禮鹃唯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瓣喊。我一直安慰自己坡慌,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布藻三。 她就那樣靜靜地躺著洪橘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪趴酣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天坑夯,我揣著相機與錄音岖寞,去河邊找鬼。 笑死柜蜈,一個胖子當(dāng)著我的面吹牛仗谆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播淑履,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼隶垮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了秘噪?” 一聲冷哼從身側(cè)響起狸吞,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎指煎,沒想到半個月后蹋偏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡至壤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年威始,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片像街。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡黎棠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出镰绎,到底是詐尸還是另有隱情脓斩,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布畴栖,位于F島的核電站俭厚,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏驶臊。R本人自食惡果不足惜挪挤,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一叼丑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧扛门,春花似錦鸠信、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至葬凳,卻和暖如春绰垂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背火焰。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工劲装, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人昌简。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓占业,卻偏偏與公主長得像,于是被迫代替她去往敵國和親纯赎。 傳聞我的和親對象是個殘疾皇子谦疾,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,876評論 2 361

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