簡(jiǎn)介
本期答疑解惑將和大家一起認(rèn)識(shí)SSL/TLS 協(xié)議。請(qǐng)嘗試回答以下幾個(gè)問(wèn)題:
- 使用瀏覽器訪問(wèn)https網(wǎng)站和http網(wǎng)站有什么不同?
- SSL協(xié)議作用于網(wǎng)絡(luò)模型的哪一層?
- 你知道CSDN,博客園正在使用的是什么類型的SSL證書(shū)嗎?
- SSL,TLS, mTLS之間是什么關(guān)系?
非對(duì)稱加密算法
非對(duì)稱加密算法是數(shù)學(xué)家們創(chuàng)造出來(lái)的,它是SSL協(xié)議的基礎(chǔ)。該算法的目的是生成一對(duì)密鑰:公鑰和私鑰,密鑰通常是一段二進(jìn)制數(shù)據(jù)。公鑰是公開(kāi)的,任何人都可以獲得;而私鑰只由服務(wù)器保管。
公鑰和私鑰永遠(yuǎn)是一對(duì)一的關(guān)系,公鑰加密后的數(shù)據(jù)只能由私鑰解密。
SSL協(xié)議
SSL協(xié)議是一種介于應(yīng)用層和傳輸層之間的安全協(xié)議。SSL建立安全鏈接之后,應(yīng)用層將不再把數(shù)據(jù)直接交給傳輸層,而是通過(guò)SSL加密通道發(fā)送,避免中間人攻擊。
應(yīng)用層:HTTP,HTTPs,F(xiàn)TP等 |
????????????????SSL,TLS,mTLS |
傳輸層:TCP, UDP等 |
在詳細(xì)了解SSL協(xié)議機(jī)制之前,我們先來(lái)認(rèn)識(shí)下什么是SSL證書(shū)。
SSL證書(shū)
SSL證書(shū)就是服務(wù)器的電子身份證。任何人都可以制作SSL證書(shū),但只有全球公認(rèn)的證書(shū)頒發(fā)機(jī)構(gòu)(CA)頒發(fā)的證書(shū)才能被瀏覽器和操作系統(tǒng)所信任。這是因?yàn)闉g覽器和操作系統(tǒng)預(yù)裝了受信任的CA根證書(shū),并且能夠在線查詢受信任的證書(shū)庫(kù),驗(yàn)證服務(wù)器的真實(shí)性。
證書(shū)通常包含了服務(wù)器所有者的信息,比如持有者的名稱,有效期,公鑰,加密算法等信息。
- 客戶端拿到證書(shū)中的公鑰之后,可以對(duì)要發(fā)送的數(shù)據(jù)進(jìn)行加密,只有服務(wù)器所持有的私鑰才能解密,因此保證了數(shù)據(jù)傳輸?shù)陌踩浴?/li>
- 證書(shū)包含了自身的數(shù)字簽名,它由證書(shū)內(nèi)容和私鑰計(jì)算生成,除非攻擊者獲得了服務(wù)器手里的私鑰,否則無(wú)法被篡改。
- 信任鏈:CA不會(huì)直接使用根證書(shū)為第三方網(wǎng)站簽發(fā)證書(shū),而是使用中間證書(shū)簽發(fā),中間證書(shū)由CA根證書(shū)直接簽發(fā)。CA使用三層證書(shū)信任鏈?zhǔn)菫榱藢⒆C書(shū)管理劃分成多個(gè)部分,降低管理成本和風(fēng)險(xiǎn),提高管理效率。
- 瀏覽器會(huì)向上追溯證書(shū)鏈和證書(shū)的有效期,直到找到受信任的證書(shū)為止。
早期SSL工作原理
早期SSL的核心思想是通過(guò)非對(duì)稱加密交換證書(shū)和主密鑰,然后使用主密鑰和對(duì)稱加密算法傳輸內(nèi)容。
原因很簡(jiǎn)單:對(duì)稱加密解密計(jì)算速度更快,而使用非對(duì)稱加密可以避免生成的主密鑰被攻擊者截獲。
握手協(xié)議:
- 使用瀏覽器訪問(wèn)https站點(diǎn)時(shí)將發(fā)起SSL請(qǐng)求,內(nèi)容包括瀏覽器支持的加密算法列表。
- 服務(wù)器確定通信所用的算法,并返回自己的SSL證書(shū)(包含公鑰)。
- 瀏覽器按照我上面講的內(nèi)容去檢查證書(shū)是否有效,無(wú)法驗(yàn)證的證書(shū)將給出風(fēng)險(xiǎn)警告。
- 瀏覽器信任服務(wù)器證書(shū)之后,生成一個(gè)密鑰并通過(guò)證書(shū)公鑰進(jìn)行加密,然后發(fā)給服務(wù)器。
- 服務(wù)器使用自己持有的私鑰解密,拿到客戶端生成的密鑰之后,就可以使用它進(jìn)行對(duì)稱加密通信了。
TLS工作原理
人們逐漸發(fā)現(xiàn)早期SSL協(xié)議存在許多安全漏洞,如 Heartbleed 漏洞、POODLE 漏洞等,最終于2014年由谷歌微軟等公司倡導(dǎo)下陸續(xù)宣布棄用。
不過(guò)早在1999年,IETF將SSL 3.0進(jìn)行了修改和擴(kuò)展,并標(biāo)準(zhǔn)化為了TLS協(xié)議。經(jīng)過(guò)不斷完善,TLS已經(jīng)發(fā)展成了互聯(lián)網(wǎng)上最常用的加密協(xié)議。我們也可以將TLS看作是SSL的升級(jí)版本。
握手協(xié)議:
- 客戶端向服務(wù)器發(fā)送握手請(qǐng)求,并附上自己支持的加密算法列表和一個(gè)客戶端隨機(jī)數(shù)。
- 服務(wù)器選擇一種加密算法,并生成一個(gè)服務(wù)器隨機(jī)數(shù),發(fā)送給客戶端。
- 服務(wù)器將發(fā)送TLS證書(shū)給客戶端,并可能要求客戶端也提供證書(shū)。
- 客戶端驗(yàn)證服務(wù)器證書(shū),按照服務(wù)器要求選擇是否提供自身的證書(shū)。
- 客戶端再次生成一個(gè)隨機(jī)數(shù),稱為預(yù)主密鑰,使用服務(wù)器公鑰加密后發(fā)送給服務(wù)器。
- 服務(wù)器使用私鑰解密,獲得預(yù)主密鑰。
- 客戶端和服務(wù)器使用服務(wù)器隨機(jī)數(shù),客戶端隨機(jī)數(shù),預(yù)主密鑰,并按照前面約定的加密算法,生成主密鑰,之后再由主密鑰通過(guò)加密算法生成會(huì)話密鑰。
- 會(huì)話密鑰將被用于之后的對(duì)稱加密通信。
TLS與早期SSL的主要區(qū)別
TLS作為SSL的升級(jí)版本,修補(bǔ)了大量漏洞,并且優(yōu)化了握手通信過(guò)程。
- TLS簡(jiǎn)化了SSL握手流程(我這里對(duì)SSL握手流程介紹的比較簡(jiǎn)單)。TLS默認(rèn)需要發(fā)送4次請(qǐng)求, 也被稱為4次握手。而SSL需要7或者10次請(qǐng)求才能完成握手階段。
- TLS使用更嚴(yán)格的加密算法,移除了MD5, SHA1等存在設(shè)計(jì)漏洞的加密算法,更加安全。
- 警報(bào)消息:通信過(guò)程中可能出現(xiàn)錯(cuò)誤,例如證書(shū)過(guò)期、加解密失敗,握手失敗等問(wèn)題。SSL中包含警告和致命兩種級(jí)別的信息,?當(dāng)發(fā)生致命級(jí)別的錯(cuò)誤時(shí),鏈接會(huì)被立刻終止,SSL中警報(bào)消息是未加密的。TLS新增了“關(guān)閉”來(lái)通知會(huì)話結(jié)束,并且TLS的警報(bào)消息是加密的。
- TLS證書(shū)與SSL證書(shū)并無(wú)太大區(qū)別,雖然SSL已經(jīng)淘汰了,不過(guò)大家還是習(xí)慣將證書(shū)命名為SSL證書(shū)。
mTLS簡(jiǎn)介
前面說(shuō)過(guò),在TLS握手階段:服務(wù)器將發(fā)送TLS證書(shū)給客戶端,并可能要求客戶端也提供證書(shū)。
要求客戶端也必須提供證書(shū)的TLS被稱為雙向TLS認(rèn)證,也就是mTLS。
客戶端證書(shū)通常由企業(yè)內(nèi)部CA頒發(fā),以確保證書(shū)的可信度。在使用mTLS時(shí),服務(wù)器需要信任客戶端證書(shū)的CA,并使用CA的公鑰來(lái)驗(yàn)證證書(shū)的數(shù)字簽名。如果證書(shū)的驗(yàn)證成功,則服務(wù)器可以確認(rèn)客戶端的身份,并繼續(xù)進(jìn)行通信。如果證書(shū)驗(yàn)證失敗,則服務(wù)器可以拒絕該客戶端的連接請(qǐng)求。
SSL證書(shū)種類
前面介紹的都是理論性的內(nèi)容,接下來(lái)我們認(rèn)識(shí)下常見(jiàn)的證書(shū)類型。
EV(Extended Validation?)
認(rèn)證最嚴(yán)格,最貴的證書(shū)類型,需要驗(yàn)證申請(qǐng)者身份,營(yíng)業(yè)執(zhí)照等,如:https://www.paypal.com
OV(Organization Validated)
OV SSL證書(shū)保證級(jí)別接近EV,其主要目的是在交易過(guò)程中加密用戶的敏感信息。商業(yè)或面向公眾的網(wǎng)站應(yīng)該安裝 OV SSL 證書(shū),以確保共享的任何客戶信息保持機(jī)密。
例如我們正在使用的CSDN, 支付寶等:
DV(Domain Validated)
最容易獲取的證書(shū),它通常用于不需要收集個(gè)人信息的網(wǎng)站,如公司展示官網(wǎng),博客等。
博客園使用的其實(shí)是DV證書(shū):
個(gè)人證書(shū)
故名思意,自己搭建的網(wǎng)站,自己造的證書(shū),訪問(wèn)這類網(wǎng)站時(shí)會(huì)收到瀏覽器的風(fēng)險(xiǎn)提醒。
我在網(wǎng)上隨便找了一個(gè):楊青青個(gè)人博客_女程序員的個(gè)人網(wǎng)站
本地證書(shū)管理
打開(kāi)瀏覽器設(shè)置-安全隱私-證書(shū)管理,或者Windows的證書(shū)管理器,你可以看到本地安裝的,受信任的證書(shū),使用受信任的證書(shū)簽發(fā)的證書(shū),也將被信任。
這可以幫助你在公司內(nèi)部環(huán)境中使用 SSL/TLS 加密來(lái)保護(hù)網(wǎng)絡(luò)通信,搭建基于https的網(wǎng)站。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-436492.html
總結(jié)
好了,這期答疑解惑就到這里,大家還有什么問(wèn)題嗎?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-436492.html
到了這里,關(guān)于答疑解惑:開(kāi)發(fā)者必須徹底搞懂的 SSL/TLS 協(xié)議的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!