SSL 協(xié)議與 TLS 協(xié)議
在軟件發(fā)展過程中,有很多東西一開始都只是某個技術(shù)能力突出的公司研發(fā)出來的,在被大眾認(rèn)可取得一定市場后有可能被官方收編,成為行業(yè)內(nèi)的一種標(biāo)準(zhǔn)。SSL 最早是 Netscape 公司研發(fā)的,后來被采納成為標(biāo)準(zhǔn)后取名為 TLS。
1. 簡介
SSL 是網(wǎng)景(Netscape)公司設(shè)計的主要用于 Web 的安全傳輸協(xié)議,后來致力于互聯(lián)網(wǎng)標(biāo)準(zhǔn)開發(fā)與推動的組織(IETF)認(rèn)為在 SSL3.0 的基礎(chǔ)上將該協(xié)議進(jìn)行升級并標(biāo)準(zhǔn)化(RFC 2246),并命名為 TLS(Transport Layer Security)。
1.1 SSL 協(xié)議提供的服務(wù)
- 認(rèn)證用戶和服務(wù)器,確保數(shù)據(jù)發(fā)送到正確的客戶機(jī)和服務(wù)器;
- 加密數(shù)據(jù)以防止數(shù)據(jù)中途被竊??;
- 維護(hù)數(shù)據(jù)的完整性,確保數(shù)據(jù)在傳輸過程中不被改變。
1.2 SSL 協(xié)議結(jié)構(gòu)
-
握手協(xié)議(SSL Handshake Protocol):它建立在 SSL 記錄協(xié)議之上,用于在實際的數(shù)據(jù)傳輸開始前,通訊雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。內(nèi)部包括SSL握手協(xié)議(SSL HandShake Protocol)、SSL密碼參數(shù)修改協(xié)議(SSL Change Cipher Spec Protocol)和SSL告警協(xié)議(SSL Alert Protocol)。
-
記錄協(xié)議(SSL Record Protocol):它建立在可靠的傳輸協(xié)議(如TCP)之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能的支持。
2. 發(fā)展歷史
協(xié)議 | 時間 | 狀態(tài) |
---|---|---|
SSL 1.0 | 未公布 | 未公布 |
SSL 2.0 | 1995年 | 公開發(fā)布了第二版,于2011年棄用 |
SSL 3.0 | 1996年 | 第三版得到大規(guī)模應(yīng)用,于2015年棄用 |
TLS 1.0 | 1999年 | RFC2246 被IETF納入標(biāo)準(zhǔn),與 SSL 3.0 比變化不大,命名改為 TLS |
TLS 1.1 | 2006年 | RFC4346 修改bug,新增參數(shù) |
TLS 1.2 | 2008年 | RFC5246 功能擴(kuò)展和算法改進(jìn) |
TLS 1.8 | 2018年 | RFC8846 效率和安全均有較大提升 |
3. 現(xiàn)狀
目前大家依然比較習(xí)慣用 SSL 稱呼,但是 SSL 系列的所有版本都已經(jīng)棄用了。TLS 可以認(rèn)為是 SSL 的后續(xù)版本,低版本的 TLS 有存在較為明顯的漏洞,所以并不是選擇了 Https 就是決定安全的,建議至少選擇 TLS 1.2 以上版本。
近年來各個大廠都不留余力的推動 Https ,騰訊小程序更是要求全站啟用 Https 。在選擇了 Https 的情況下我們要明白一點,Https 與 Http 相比,需要更多的 CPU 資源去計算加密算法的。我們的架構(gòu)在設(shè)計的時候我是比較建議網(wǎng)關(guān)對外部分用 Https 算法,站點內(nèi)部的服務(wù)間通信用 Http 或 Rpc 協(xié)議。
4. 小結(jié)
TLS 是傳輸層與應(yīng)用層之間的加密協(xié)議,對于應(yīng)用層來說他是透明的,也就是不用關(guān)心他的具體實現(xiàn),不管有沒有 TLS 對應(yīng)用層的軟件來說都是一樣的。多了這一層的話可能在瀏覽器側(cè)察覺不到,我們在瀏覽器 F12 查看的接口出入?yún)⒍歼€是銘文的,其實底層傳輸?shù)倪^層已經(jīng)是加密處理了。