本文探索有關(guān)mTLS身份驗(yàn)證架構(gòu)、證書、私鑰和公鑰概念以及如何使用開源Istio服務(wù)網(wǎng)格啟用mTLS。
譯者 | 李睿
【資料圖】
審校 | 重樓
本文是關(guān)于mTLS以及如何使用Istio服務(wù)網(wǎng)格實(shí)現(xiàn)它的詳細(xì)指南。以下將討論以下主題:
了解TCP/IP套件的mTLS協(xié)議SLL vs TLS vs mTLS為什么mTLS很重要?mTLS的用例證書頒發(fā)機(jī)構(gòu),公鑰,X.509證書:必須知道的mTLS概念mTLS是如何工作的?如何使用Istio服務(wù)網(wǎng)格啟用mTLSIstio中mTLS的證書管理什么是mTLS?
相互傳輸層安全(mTLS)是一種加密協(xié)議,旨在驗(yàn)證雙方的身份并保護(hù)他們?cè)诰W(wǎng)絡(luò)中的通信。mTLS協(xié)議是TLS協(xié)議的擴(kuò)展,其中雙方(Web客戶端和Web服務(wù)器)都經(jīng)過身份驗(yàn)證。mTLS的主要目標(biāo)是實(shí)現(xiàn)以下目標(biāo):
真實(shí)性:確保雙方都是真實(shí)且經(jīng)過驗(yàn)證的保密性:確保傳輸中的數(shù)據(jù)安全完整性:確保發(fā)送數(shù)據(jù)的正確性mTLS協(xié)議:TCP/IP協(xié)議組的一部分
mTLS協(xié)議位于應(yīng)用程序?qū)雍蛡鬏攲又g,僅對(duì)消息(或數(shù)據(jù)包)進(jìn)行加密。它可以看作是對(duì)TCP協(xié)議的增強(qiáng)。下圖從概念上提供了mTLS在TCP/IP協(xié)議套件中的位置。
SSL、TLS和mTLS:哪個(gè)是新的?
安全工程師、架構(gòu)師和開發(fā)人員可以互換使用SSL、TLS和mTLS,這通常是因?yàn)樗鼈兊南嗨菩?。?jiǎn)單地說,mTLS是對(duì)TLS的增強(qiáng),而TLS是對(duì)SSL的增強(qiáng)。
安全套接字層(SSL)的第一個(gè)版本是由網(wǎng)景(Netscape)公司在1994年開發(fā)的;最流行的版本是版本2和創(chuàng)建于1995年的版本3。它非常受歡迎,甚至被拍進(jìn)了007系列電影中(下圖是1997年上映的《明日帝國(guó)》)。
SSL的整體工作由三個(gè)子協(xié)議承載:
握手協(xié)議:用于驗(yàn)證Web客戶端和Web服務(wù)器的身份,建立安全的通信通道。在握手過程中,將生成一個(gè)共享密鑰,僅用于會(huì)話,用于加密通信期間的數(shù)據(jù)。記錄協(xié)議:該協(xié)議使用新生成的共享密鑰來維護(hù)客戶端和服務(wù)器之間通信數(shù)據(jù)的機(jī)密性。警報(bào)協(xié)議:如果客戶端或服務(wù)器檢測(cè)到錯(cuò)誤,警報(bào)協(xié)議將關(guān)閉SSL連接(數(shù)據(jù)傳輸將終止);破壞所有會(huì)話、共享密鑰等。隨著互聯(lián)網(wǎng)應(yīng)用的增多,對(duì)網(wǎng)絡(luò)中數(shù)據(jù)的細(xì)粒度安全性要求也越來越高。因此,傳輸層安全性(TLS)是由IETF開發(fā)的。網(wǎng)景公司將SSL項(xiàng)目移交給IETF,傳輸層安全性(TLS)是SSL的高級(jí)版本;協(xié)議的代碼思想和實(shí)現(xiàn)是相同的。
SSL和TLS協(xié)議之間的主要區(qū)別在于用于在TLS中加密數(shù)據(jù)的密碼套件(或算法)是高級(jí)的。其次,對(duì)握手、記錄和警報(bào)協(xié)議進(jìn)行了修改和優(yōu)化,以適應(yīng)互聯(lián)網(wǎng)的使用。
注:在SSL握手協(xié)議中,服務(wù)器通過發(fā)送證書對(duì)客戶端進(jìn)行身份驗(yàn)證是強(qiáng)制性的,但客戶端身份驗(yàn)證是可選的,以確保線路的安全。但是在TLS中,只有對(duì)服務(wù)器和客戶端進(jìn)行身份驗(yàn)證的規(guī)定,而不是相反。幾乎所有使用HTTPS作為協(xié)議訪問的網(wǎng)站都將使用TLS證書將自己建立為真正的網(wǎng)站。如果用戶訪問Google.com并單擊掛鎖符號(hào),它將顯示TLS證書。
TLS主要用于以客戶端為用戶的Web應(yīng)用程序。此外,確保數(shù)十億客戶端或用戶的身份驗(yàn)證僅適用于某些Web應(yīng)用程序。
但是,隨著大型單片應(yīng)用程序分解成許多通過互聯(lián)網(wǎng)通信的微服務(wù),對(duì)mTLS的需求突然增長(zhǎng)。mTLS協(xié)議確保Web客戶端和Web服務(wù)器在握手前都進(jìn)行身份驗(yàn)證。(將在本文后面看到mTLS協(xié)議的工作模型)。
為什么mTLS比以往更重要?
現(xiàn)代業(yè)務(wù)是使用Web應(yīng)用程序完成的,其底層架構(gòu)遵循混合云模型。微服務(wù)將分布在公共云/私有云、Kubernetes和on-prem VM上。各種微服務(wù)和組件之間的通信是在網(wǎng)絡(luò)上進(jìn)行的,這帶來了黑客攻擊或惡意攻擊的重大風(fēng)險(xiǎn)。以下是一些可以通過使用mTLS協(xié)議完全避免的網(wǎng)絡(luò)攻擊場(chǎng)景。
中間人攻擊(MITM):網(wǎng)絡(luò)攻擊者可以將自己置于客戶端和服務(wù)器之間,在傳輸過程中攔截?cái)?shù)據(jù)。使用mTLS時(shí),網(wǎng)絡(luò)攻擊者無法進(jìn)行身份驗(yàn)證,無法竊取數(shù)據(jù)。IP欺騙:另一種情況是,網(wǎng)絡(luò)攻擊者偽裝成信任的人,向接收者注入惡意數(shù)據(jù)包。這也是通過mTLS中的端點(diǎn)身份驗(yàn)證來解決的,以確定網(wǎng)絡(luò)數(shù)據(jù)包或數(shù)據(jù)是否來自人們信任的來源。數(shù)據(jù)包嗅探器:網(wǎng)絡(luò)攻擊者可以在無線發(fā)送器附近放置被動(dòng)接收器,以獲取傳輸?shù)拿總€(gè)數(shù)據(jù)包的副本。當(dāng)網(wǎng)絡(luò)攻擊者想要竊取卡號(hào)、銀行應(yīng)用程序用戶名、密碼、SSN等敏感信息時(shí),這種攻擊在銀行和金融科技領(lǐng)域很普遍。由于數(shù)據(jù)包嗅探是非侵入性的,因此很難檢測(cè)到。因此,保護(hù)數(shù)據(jù)的最佳方法是使用加密技術(shù)。mTLS使用復(fù)雜的加密算法來幫助加密數(shù)據(jù),這些算法很難被數(shù)據(jù)包嗅探器破譯。拒絕服務(wù)(DoS)攻擊:網(wǎng)絡(luò)攻擊者的目的是使網(wǎng)絡(luò)或Web服務(wù)器無法被合法的應(yīng)用程序或用戶使用。這是通過發(fā)送易受攻擊的數(shù)據(jù)包,或者數(shù)據(jù)包泛濫,或者打開大量的TCP連接到主機(jī)(或Web服務(wù)器),從而使服務(wù)器最終崩潰來實(shí)現(xiàn)的??梢酝ㄟ^在適用的通信中調(diào)用mTLS協(xié)議來避免DoS和分布式DoS(高級(jí)DoS技術(shù))。所有的惡意DoS攻擊在進(jìn)入握手階段之前就會(huì)被丟棄。mTLS在行業(yè)中的用例
隨著通過Web應(yīng)用程序的業(yè)務(wù)使用的增加以及網(wǎng)絡(luò)攻擊威脅的同時(shí)增加,mTLS的用例每天都在增長(zhǎng)。以下是基于與不同行業(yè)或領(lǐng)域(銀行、金融科技和在線零售公司)的許多領(lǐng)導(dǎo)者討論的經(jīng)驗(yàn)的一些重要用例。
混合云和多云應(yīng)用程序:每當(dāng)組織使用混合數(shù)據(jù)中心(內(nèi)部部署設(shè)施、公共云或私有云)時(shí),數(shù)據(jù)就會(huì)離開受保護(hù)的邊界并流出網(wǎng)絡(luò)。在這種情況下,應(yīng)該使用mTLS來保護(hù)數(shù)據(jù)?;谖⒎?wù)的B2B軟件:市場(chǎng)上的許多B2B軟件都遵循微服務(wù)架構(gòu)。每個(gè)服務(wù)將使用REST API與其他服務(wù)通信。即使所有的服務(wù)都托管在一個(gè)數(shù)據(jù)中心,網(wǎng)絡(luò)也應(yīng)該得到保護(hù),以保護(hù)傳輸中的數(shù)據(jù)(以防防火墻被破壞)。在線零售和電子商務(wù)應(yīng)用程序:通常情況下,電子商務(wù)和在線零售應(yīng)用程序使用內(nèi)容交付網(wǎng)絡(luò)(CDN)從服務(wù)器獲取應(yīng)用程序并向用戶展示。雖然在CDN中實(shí)現(xiàn)了TLS,以便在用戶訪問頁面時(shí)對(duì)自己進(jìn)行身份驗(yàn)證,但是應(yīng)該有一種安全機(jī)制,通過mTLS來保護(hù)CDN和Web服務(wù)器之間的網(wǎng)絡(luò)。銀行應(yīng)用程序:承載易受影響交易的應(yīng)用程序,例如銀行、金融交易應(yīng)用程序、支付網(wǎng)關(guān)等,應(yīng)采取極端預(yù)防措施,防止其數(shù)據(jù)被盜。每天都有數(shù)百萬個(gè)在線交易通過各種銀行和金融科技應(yīng)用程序進(jìn)行。如果網(wǎng)絡(luò)中的數(shù)據(jù)不受保護(hù),銀行用戶名、密碼、借記卡/信用卡詳細(xì)信息、CVV號(hào)碼等敏感信息很容易被黑客入侵。使用mTLS可以對(duì)網(wǎng)絡(luò)應(yīng)用嚴(yán)格的身份驗(yàn)證和安全保密。行業(yè)法規(guī)和合規(guī)性:每個(gè)國(guó)家都有一些規(guī)則和標(biāo)準(zhǔn)來管理IT基礎(chǔ)設(shè)施和保護(hù)數(shù)據(jù)。所有政策,例如FIPS、GDPR、PCI-DSS、HIPAA、ISO27001等,都概述了嚴(yán)格的安全措施,以保護(hù)靜態(tài)數(shù)據(jù)和傳輸中的數(shù)據(jù)。對(duì)于網(wǎng)絡(luò)中的嚴(yán)格認(rèn)證,可以使用mTLS,企業(yè)可以遵循各種標(biāo)準(zhǔn)。在理解mTLS的工作機(jī)制之前,需要了解以下幾個(gè)概念。
證書和公鑰/私鑰:必須知道的mTLS概念
證書
數(shù)字證書是由證書頒發(fā)機(jī)構(gòu)(CA)頒發(fā)的小型計(jì)算機(jī)文件,用于對(duì)用戶、應(yīng)用程序或組織進(jìn)行身份驗(yàn)證。數(shù)字證書包含證書持有者的姓名、證書序列號(hào)、有效期、公鑰和證書頒發(fā)機(jī)構(gòu)的簽名等信息。
證書頒發(fā)機(jī)構(gòu)(CA)
證書頒發(fā)機(jī)構(gòu)(CA)是一個(gè)受信任的第三方,它驗(yàn)證用戶身份并頒發(fā)包含申請(qǐng)者公鑰和其他信息的加密數(shù)字證書。值得關(guān)注的證書頒發(fā)機(jī)構(gòu)(CA)包括VeriSign、Entrust、LetsEncrypt、Safescript Limited等。
Root CA證書鏈
創(chuàng)建證書頒發(fā)機(jī)構(gòu)層次結(jié)構(gòu)是為了分配頒發(fā)證書的工作負(fù)載??梢源嬖趶牟煌?jí)別的不同證書頒發(fā)機(jī)構(gòu)(CA)頒發(fā)證書的實(shí)體。在證書頒發(fā)機(jī)構(gòu)(CA)的多級(jí)層次結(jié)構(gòu)(如父級(jí)和子級(jí))中,頂端有一個(gè)證書頒發(fā)機(jī)構(gòu)(CA),稱為Root CA參閱下圖)。每個(gè)證書頒發(fā)機(jī)構(gòu)(CA)還將擁有由父同證書頒發(fā)機(jī)構(gòu)(CA)頒發(fā)的證書,Root CA將擁有自簽名證書。
為了確保證書頒發(fā)機(jī)構(gòu)(CA)向客戶端/服務(wù)器頒發(fā)證書是可信的,安全協(xié)議建議實(shí)體將它們的數(shù)字證書和整個(gè)鏈發(fā)送到Root CA。
公鑰和私鑰對(duì)
在為實(shí)體創(chuàng)建證書時(shí),證書頒發(fā)機(jī)構(gòu)(CA)將生成一個(gè)公鑰和一個(gè)私鑰——通常稱為公鑰對(duì)。公鑰和私鑰用于驗(yàn)證其身份并加密數(shù)據(jù)。公鑰是公開的,但私鑰是保密的。如果有興趣了解生成公鑰的算法,可以了解有關(guān)RSA、DSA、ECDSA和ed25519的更多信息。
X.509證書
它是證書的一個(gè)特殊類別,由國(guó)際電信聯(lián)盟定義,它使用數(shù)字簽名將應(yīng)用程序的身份(主機(jī)名、組織名稱等)綁定到公鑰。它是所有安全協(xié)議SSL/TLS/mTLS中最常用的證書,用于保護(hù)Web應(yīng)用程序。
mTLS是如何工作的?
如上所述,mTLS具有與SSL類似的子協(xié)議實(shí)現(xiàn)。兩個(gè)應(yīng)用程序使用mTLS協(xié)議相互通信有8個(gè)階段(如下所述)。
1.使用hello建立安全功能:客戶機(jī)嘗試與服務(wù)器通信(也稱為客戶機(jī)hello)??蛻舳薶ello消息將包含特定參數(shù)的值,例如mTLS版本、會(huì)話id、密碼套件、壓縮算法等。服務(wù)器還將發(fā)送一個(gè)名為server hello的類似響應(yīng),其中包含客戶端發(fā)送的相同參數(shù)的值。
2.服務(wù)器身份驗(yàn)證和密鑰交換:在這一階段,服務(wù)器將向客戶端共享其數(shù)字證書(主要是微服務(wù)的X.509證書)和通向Root CA的整個(gè)鏈。它還需要客戶端的數(shù)字證書。
3.客戶端驗(yàn)證服務(wù)器的證書:客戶端將使用數(shù)字證書中的公鑰來驗(yàn)證服務(wù)器的真實(shí)性。
4.客戶端身份驗(yàn)證和密鑰交換:在驗(yàn)證完成之后,客戶端向服務(wù)器發(fā)送數(shù)字證書進(jìn)行驗(yàn)證。
5.服務(wù)器驗(yàn)證客戶端證書:服務(wù)器驗(yàn)證客戶端的真實(shí)性。
6.主密鑰生成和握手完成:一旦雙方的真實(shí)性建立,客戶端和服務(wù)器將建立握手,并生成兩個(gè)新密鑰;共享的秘密信息僅為各方所知,并在會(huì)話中處于活動(dòng)狀態(tài)。
(1)主密鑰:用于加密
(2)消息認(rèn)證碼(MAC):用于保證消息的完整性
7.開始加密通信和傳輸:信息交換將從使用主秘鑰加密的所有消息或數(shù)據(jù)包開始。在這層面紗的背后,mTLS協(xié)議會(huì)將消息劃分為稱為片段的較小塊,壓縮每個(gè)片段,為每個(gè)塊添加消息認(rèn)證碼(MAC),最后使用主密鑰對(duì)其進(jìn)行加密。
8.數(shù)據(jù)傳輸開始:最后,mTLS協(xié)議將消息塊附加報(bào)頭,并將其發(fā)送給TCP協(xié)議,將其發(fā)送到目的地或接收方。
9.會(huì)話結(jié)束:一旦通信完成,會(huì)話將關(guān)閉。如果在傳輸過程中檢測(cè)到異常,mTLS協(xié)議將銷毀所有密鑰和秘密,并立即終止會(huì)話。
注:在上述階段中,假設(shè)證書頒發(fā)機(jī)構(gòu)(CA)已經(jīng)向仍然有效的實(shí)體頒發(fā)了證書。實(shí)際上,關(guān)鍵任務(wù)應(yīng)用程序的證書很快就會(huì)過期,并且需要經(jīng)常進(jìn)行證書輪換(將直接跳到Istio如何啟用mTLS和證書輪換)。
如何使用Istio服務(wù)網(wǎng)格啟用mTLS和證書輪換
Istio服務(wù)網(wǎng)格是一個(gè)基礎(chǔ)設(shè)施層,它將網(wǎng)絡(luò)和安全性抽象出應(yīng)用層。它通過向每個(gè)應(yīng)用程序注入Envoy代理(L4和L7 sidecar代理)并監(jiān)聽所有網(wǎng)絡(luò)通信來實(shí)現(xiàn)這一點(diǎn)。
mTLS在Istio中的實(shí)現(xiàn)
盡管Istio支持多種身份驗(yàn)證類型,但它最出名的是對(duì)托管在云平臺(tái)、內(nèi)部部署或Kubernetes基礎(chǔ)設(shè)施上的應(yīng)用程序?qū)崿F(xiàn)mTLS。Envoy代理充當(dāng)策略實(shí)施點(diǎn)(PEP);用戶可以使用Istio提供的點(diǎn)對(duì)點(diǎn)(p2p)身份驗(yàn)證策略實(shí)現(xiàn)mTLS,并通過代理在工作負(fù)載級(jí)別強(qiáng)制執(zhí)行它。
Istio中的p2p身份驗(yàn)證策略示例,用于將mTLS應(yīng)用于Istio-nm命名空間中的demobank應(yīng)用程序:
YAML apiVersion: security.istio.io/v1beta1 kind: PeerAuthentication metadata: name: "mTLS-peer-policy" namespace: "istio-nm" spec: selector: matchLabels: app: demobank mtls: mode: STRICT
Istio中mTLS認(rèn)證的工作機(jī)制如下:
1.首先,到網(wǎng)格中任何應(yīng)用程序的所有出站和入站流量都通過Envoy代理重新路由。
2.mTLS發(fā)生在客戶端Envoy代理和服務(wù)器端Envoy代理之間。
3.客戶端Envoy代理將嘗試通過交換證書和證明其身份來連接服務(wù)器端Envoy代理。
4.一旦身份驗(yàn)證階段成功完成,就會(huì)在客戶端和服務(wù)端Envoy代理之間建立TCP連接,以執(zhí)行加密通信。
需要注意的是,使用Istio的mTLS可以在所有級(jí)別上實(shí)現(xiàn):應(yīng)用程序、名稱空間或網(wǎng)格范圍。
Istio Service Mesh中的證書管理和輪換
Istio通過向附加到應(yīng)用程序的Envoy代理頒發(fā)X.509證書來提供更強(qiáng)的身份。證書管理和輪換由與Envoy代理在同一容器中運(yùn)行的Istio代理完成。Istio代理與Istio的控制平臺(tái)Istiod對(duì)話,以有效地分發(fā)帶有公鑰的數(shù)字證書。以下是Istio中證書管理的詳細(xì)階段:
1.Istio代理生成公鑰對(duì)(公鑰和私鑰),然后將公鑰發(fā)送到Istio控制平臺(tái)進(jìn)行簽名。這稱為證書簽名請(qǐng)求(CSR)。
2.Istiod有一個(gè)組件(早期的Galley)作為證書頒發(fā)機(jī)構(gòu)(CA)。Istiod驗(yàn)證請(qǐng)求中的公鑰、簽名并向Istio代理頒發(fā)數(shù)字證書。
3.當(dāng)需要mTLS連接時(shí),Envoy代理使用Envoy秘密發(fā)現(xiàn)服務(wù)(SDS) API從Istio代理獲取證書。
4.Istio代理觀察特使使用的證書的過期。當(dāng)證書到期時(shí),代理向Istiod發(fā)起證書簽名請(qǐng)求(CSR)。
使用開源Istio實(shí)現(xiàn)網(wǎng)絡(luò)安全
微服務(wù)架構(gòu)是當(dāng)今的標(biāo)準(zhǔn)。應(yīng)用程序的分布式特性為網(wǎng)絡(luò)攻擊者提供了更大的攻擊面,因?yàn)檫@些應(yīng)用程序通過網(wǎng)絡(luò)相互通信。在這種情況下,安全性不能是事后才考慮的事項(xiàng),因?yàn)樗赡軐?dǎo)致災(zāi)難性的數(shù)據(jù)泄露。使用Istio實(shí)現(xiàn)mTLS是確保云原生應(yīng)用程序之間通信安全的有效方法。Splunk、Airbnb和Salesforce等許多行業(yè)領(lǐng)先的公司都使用開源的Istio來啟用mTLS并增強(qiáng)其應(yīng)用程序的安全性。
原文標(biāo)題:What Is mTLS? How To Implement It With Istio,作者:Debasree Panda
關(guān)鍵詞:
參與評(píng)論
- 什么是mTLS?如何使用Istio實(shí)現(xiàn)它2023-06-05
- 苯乙烯價(jià)格反彈高度有限金十期貨6月5日訊,2023-06-05
- 馬斯克:特斯拉FSD暫時(shí)將安全性置于舒適性2023-06-05
- 2023北京經(jīng)開區(qū)好車亦城汽車消費(fèi)券審核流程2023-06-05
- 環(huán)球熱門:教育部發(fā)布考前提醒:切勿攜帶電2023-06-05
- 沃爾德:首次回購約4.54萬股|全球聚焦2023-06-05
- 攜程重塑團(tuán)隊(duì)游 數(shù)字化升級(jí)旅行團(tuán)服務(wù)業(yè)內(nèi)2023-06-05
- 天天微資訊!民生信用卡協(xié)商還款流程是怎樣2023-06-05
- “一米高度”視角很重要2023-06-05
- 昆明公交集團(tuán)有限責(zé)任公司董事長(zhǎng)(昆明公交2023-06-05
- 官方聲明!這類“志愿者”招募不可信 播資2023-06-05
- 如何科學(xué)預(yù)防近視_環(huán)球播資訊2023-06-05
- 全球微頭條丨量比是什么意思量比多少才合適2023-06-05
- 《微雨燕雙飛》開播張楠王玉雯姐妹攜手演繹2023-06-05
- 揚(yáng)州辦理商轉(zhuǎn)公原商業(yè)貸款可以不結(jié)清嗎?申2023-06-05
- “暴雨藍(lán)+雷電黃”預(yù)警高掛!上海啟動(dòng)防汛2023-06-05
- 焦點(diǎn)速遞!哪些二手房值得買?瑤海10大熱搜2023-06-05
- “成都造”無人機(jī)護(hù)航神十五回家2023-06-05
- 精靈夢(mèng)葉羅麗:那些花瓣其實(shí)有生命,她們是2023-06-05
- 什么是霍桑實(shí)驗(yàn)通過霍桑試驗(yàn)得出什么結(jié)論2023-06-05
- 以“四個(gè)強(qiáng)化”提升平安建設(shè)水平 環(huán)球今日2023-06-05
- 徐培晨畫猴多少一平尺_(dá)徐培晨2023-06-05
- 新型儲(chǔ)能站上風(fēng)口 上市公司積極布局 環(huán)球2023-06-05
- 全球動(dòng)態(tài):邯鄲兼職招聘信息最新招聘_邯鄲兼2023-06-05
- 中國(guó)女排3_全球百事通2023-06-05
- 一般吧|天天即時(shí)看2023-06-05
- 【天天新視野】瑞銀集團(tuán)任命東南亞并購業(yè)務(wù)2023-06-04
- vogue是什么意思中文翻譯成(vogue是什么意2023-06-04
- 環(huán)球視訊!MMN數(shù)據(jù):梅西156射21球,內(nèi)馬爾2023-06-04
- 懷德學(xué)院助學(xué)金發(fā)放時(shí)間_懷德學(xué)院_當(dāng)前熱訊2023-06-04