百度于2015年完成全站HTTPS改造,此舉標(biāo)志著大型網(wǎng)站在網(wǎng)絡(luò)安全領(lǐng)域的重大實(shí)踐。本文將深入剖析HTTPS協(xié)議的核心原理,并結(jié)合百度的實(shí)踐經(jīng)驗(yàn),探討全站HTTPS部署的技術(shù)細(xì)節(jié)與實(shí)際意義。

百度已全面上線全站HTTPS安全搜索,默認(rèn)將HTTP請(qǐng)求跳轉(zhuǎn)至HTTPS。本文重點(diǎn)闡述HTTPS協(xié)議的技術(shù)架構(gòu),并簡要分析全站HTTPS部署的戰(zhàn)略價(jià)值,旨在為大型網(wǎng)站的安全升級(jí)提供參考。
HTTPS協(xié)議可視為HTTP協(xié)議與TLS(傳輸層安全協(xié)議)的結(jié)合體。HTTP協(xié)議作為萬維網(wǎng)的基礎(chǔ)通信協(xié)議,廣泛應(yīng)用于各類Web應(yīng)用與網(wǎng)站;而TLS協(xié)議則負(fù)責(zé)在傳輸層提供數(shù)據(jù)加密、身份認(rèn)證及完整性校驗(yàn)功能,其前身為SSL協(xié)議,最早由Netscape公司于1995年發(fā)布,1999年經(jīng)IETF標(biāo)準(zhǔn)化后更名為TLS。HTTP與TLS在協(xié)議棧中的位置及TLS協(xié)議組成結(jié)構(gòu)如圖1所示,TLS協(xié)議主要由應(yīng)用數(shù)據(jù)層協(xié)議、握手協(xié)議、報(bào)警協(xié)議、加密消息確認(rèn)協(xié)議及心跳協(xié)議五部分構(gòu)成,各層協(xié)議數(shù)據(jù)均通過record協(xié)議封裝傳輸。
當(dāng)前主流HTTP協(xié)議版本為HTTP1.1,TLS協(xié)議常用版本包括TLS1.2、TLS1.1、TLS1.0及SSL3.0。需注意的是,SSL3.0因POODLE攻擊已被證實(shí)存在安全風(fēng)險(xiǎn),盡管仍有不足1%的瀏覽器在使用;TLS1.0也存在RC4和BEAST等漏洞。相比之下,TLS1.2與TLS1.1暫無已知安全漏洞,且通過多項(xiàng)擴(kuò)展優(yōu)化了性能與速度,推薦優(yōu)先部署。TLS1.3作為下一代協(xié)議,預(yù)計(jì)在安全性與傳輸效率上實(shí)現(xiàn)質(zhì)的飛躍,目前尚無明確發(fā)布時(shí)間;與此同時(shí),HTTP2協(xié)議已正式定稿,其基于SPDY協(xié)議演化,將顯著提升應(yīng)用層數(shù)據(jù)傳輸效率。
百度部署HTTPS的核心目標(biāo)在于保護(hù)用戶隱私、抵御流量劫持。HTTP協(xié)議采用明文傳輸,用戶數(shù)據(jù)在瀏覽器與服務(wù)器間的傳輸過程中,可能被WIFI熱點(diǎn)、路由器、防火墻等中間節(jié)點(diǎn)嗅探、竊取甚至篡改。例如,用戶搜索關(guān)鍵詞“蘋果手機(jī)”時(shí),中間者可獲取隱私信息并實(shí)施騷擾;或通過篡改頁面植入惡意廣告,嚴(yán)重時(shí)甚至導(dǎo)致用戶無法正常訪問。
HTTPS協(xié)議通過三大核心功能有效對(duì)抗上述威脅:其一,內(nèi)容加密,確保瀏覽器與服務(wù)器間數(shù)據(jù)以密文傳輸,中間者無法直接窺探原始信息;其二,身份認(rèn)證,通過數(shù)字證書驗(yàn)證服務(wù)端身份,防止DNS劫持導(dǎo)致的訪問偽造;其三,數(shù)據(jù)完整性,借助哈希算法與數(shù)字簽名保障數(shù)據(jù)在傳輸過程中未被篡改。
##### 內(nèi)容加密
加密算法分為對(duì)稱加密與非對(duì)稱加密。對(duì)稱加密采用相同密鑰加解密,強(qiáng)度高但密鑰管理復(fù)雜;非對(duì)稱加密通過公私鑰對(duì)實(shí)現(xiàn),安全性高但計(jì)算開銷大。HTTPS結(jié)合兩者優(yōu)勢(shì):通過非對(duì)稱密鑰交換算法(如RSA、ECDHE)協(xié)商對(duì)稱密鑰,再以對(duì)稱加密傳輸應(yīng)用數(shù)據(jù),兼顧安全與性能。
非對(duì)稱密鑰交換是HTTPS性能瓶頸的關(guān)鍵來源。RSA算法歷史悠久、安全性高,但依賴大素?cái)?shù)運(yùn)算,資源消耗較大;ECDHE算法基于橢圓曲線,僅需較短密鑰即可達(dá)到同等安全強(qiáng)度,支持前向保密(PFS)及false start優(yōu)化,但實(shí)現(xiàn)復(fù)雜且需兼容性考量。實(shí)際部署中,建議優(yōu)先支持RSA與ECDHE_RSA,兼顧安全性與客戶端兼容性。
對(duì)稱加密方面,流式加密已棄用RC4,推薦ChaCha20算法;分組加密宜采用AES-GCM模式,避免CBC模式的BEAST攻擊,但需注意移動(dòng)端性能開銷。
##### 身份認(rèn)證
身份認(rèn)證依托PKI(公鑰基礎(chǔ)設(shè)施)體系,涵蓋終端實(shí)體、CA(證書簽發(fā)機(jī)構(gòu))、RA(注冊(cè)審核機(jī)構(gòu))、CRL發(fā)布者及證書庫等角色。數(shù)字證書(X509v3格式)包含待簽名證書內(nèi)容、簽名算法及簽名值,兼具身份授權(quán)與公鑰分發(fā)功能。其防偽依賴數(shù)字簽名:CA通過私鑰對(duì)證書摘要加密,客戶端以CA公鑰解密并驗(yàn)證,確保證書真實(shí)性。
##### 數(shù)據(jù)完整性
數(shù)據(jù)完整性通過哈希算法實(shí)現(xiàn),需避免使用已存在碰撞風(fēng)險(xiǎn)的MD5及SHA1,推薦SHA-256等更安全的算法。微軟與Google已明確計(jì)劃逐步淘汰SHA1簽名證書,以提升數(shù)據(jù)傳輸安全性。
HTTPS部署成本可控:證書費(fèi)用方面,中小網(wǎng)站可選用低價(jià)甚至免費(fèi)方案(如Let’s Encrypt),企業(yè)級(jí)證書年費(fèi)通常在數(shù)千至數(shù)萬元;性能影響可通過協(xié)議優(yōu)化(如TLS1.3、HTTP2)及硬件加速緩解,百度實(shí)踐表明,合理配置下HTTPS訪問速度可媲美HTTP;機(jī)器成本方面,非對(duì)稱密鑰交換雖消耗CPU資源,但通過算法選型與集群擴(kuò)展,可避免大規(guī)模硬件投入。
全站HTTPS已成為全球互聯(lián)網(wǎng)安全趨勢(shì),百度作為國內(nèi)首個(gè)實(shí)現(xiàn)全站HTTPS的大型搜索引擎,為行業(yè)樹立了標(biāo)桿。當(dāng)前中文HTTPS技術(shù)資料相對(duì)匱乏,本文系統(tǒng)梳理了協(xié)議核心原理與實(shí)踐要點(diǎn),后續(xù)將圍繞性能優(yōu)化、架構(gòu)設(shè)計(jì)及安全防護(hù)展開深入探討,助力國內(nèi)互聯(lián)網(wǎng)安全升級(jí)。