解密是增強(qiáng)安全性和監(jiān)控的關(guān)鍵
在討論如何針對(duì)加密流量進(jìn)行安全分析或性能監(jiān)控時(shí),我們經(jīng)常會(huì)被問到以下問題:“解密是如何工作的?”“為什么我們能夠攔截加密通信并解密它?”“如果我能簡(jiǎn)單地監(jiān)聽網(wǎng)絡(luò)上的通信并解密,這難道不是違背了加密的目的嗎?”。
以下內(nèi)容解釋了傳輸層安全(TLS)加密是如何工作的,nDA如何能夠解密網(wǎng)絡(luò)流量,以及為什么即使在網(wǎng)絡(luò)上內(nèi)聯(lián)了解密設(shè)備,TLS仍然是安全的。
加密基礎(chǔ)知識(shí)
加密有兩大類:對(duì)稱加密和非對(duì)稱加密。對(duì)稱加密使用通信雙方都需要的一個(gè)密鑰,它的密鑰大小相對(duì)較小,速度較快,資源利用率較低。非對(duì)稱加密需要兩個(gè)單獨(dú)的密鑰—一個(gè)是任何人都可以使用的公鑰,另一個(gè)是私鑰,它保留在創(chuàng)建公鑰/私鑰對(duì)的個(gè)人或系統(tǒng)中。對(duì)于非對(duì)稱加密,密鑰的大小要大得多,同時(shí)它也慢得多,需要更多的資源。
對(duì)稱加密由于速度快,通常用于大的數(shù)據(jù)加密,算法包括DES (Data Encryption Standard)和AES (Advanced Encryption Standard)。另一方面,非對(duì)稱加密用于RSA等應(yīng)用程序的安全消息傳輸,因?yàn)槭褂梅菍?duì)稱加密可以使用多個(gè)密鑰(例如,A的公鑰和B的私鑰)對(duì)同一個(gè)事務(wù)進(jìn)行加密。
對(duì)稱加密的主要問題是雙方需要有相同的密鑰。如何在不可信的媒體(如互聯(lián)網(wǎng))上交換需要保持私有的密鑰?您要么需要提前私下交換密鑰,要么使用其他機(jī)制來交換密鑰。非對(duì)稱加密的主要問題是速度和資源利用率。非對(duì)稱加密是安全的,因?yàn)樗哂兴借€/公鑰的特性,但對(duì)于加密大量數(shù)據(jù)可能無法使用。因此,一個(gè)主要的用例是將兩者一起使用,創(chuàng)建一個(gè)非對(duì)稱會(huì)話來交換對(duì)稱密鑰,然后使用對(duì)稱密鑰來傳輸需要安全交換的大量數(shù)據(jù)。這就是TLS的工作原理。
TLS加密
以下是TLS如何工作的高層視圖,我們重點(diǎn)關(guān)注TLS 1.2和TLS 1.3,這兩個(gè)版本都依賴于一個(gè)證書頒發(fā)機(jī)構(gòu)(CA)。CA是一個(gè)實(shí)體,它驗(yàn)證服務(wù)器的所有者并驗(yàn)證服務(wù)器的身份。這個(gè)過程從服務(wù)器的所有者將其信息連同服務(wù)器的公鑰和身份一起發(fā)送給CA開始。一旦CA對(duì)服務(wù)器進(jìn)行了身份驗(yàn)證,它就用它的私鑰對(duì)該信息進(jìn)行簽名,并將該信息(稱為證書)返回給服務(wù)器。然后,服務(wù)器在所有TLS通信中使用此證書。
這個(gè)過程的第一件事是服務(wù)器需要一個(gè)由受信任的CA(您的瀏覽器信任許多開箱即用的CA)簽名的服務(wù)器證書。為此,服務(wù)器生成一個(gè)公鑰/私鑰對(duì),生成一個(gè)證書簽名請(qǐng)求(CSR),用私鑰進(jìn)行簽名,并將其發(fā)送給CA。CA使用這些細(xì)節(jié)構(gòu)建服務(wù)器證書,并返回一個(gè)用私鑰簽名的服務(wù)器證書。
當(dāng)客戶端向服務(wù)器發(fā)送請(qǐng)求時(shí),服務(wù)器將使用其簽名的證書和公鑰進(jìn)行響應(yīng)??蛻舳送ㄟ^使用CA的公鑰解密該證書來驗(yàn)證該證書,這使得客戶端知道服務(wù)器就是它所要通信的系統(tǒng)。然后,客戶端使用服務(wù)器上的這個(gè)公鑰發(fā)送一條消息,與該服務(wù)器建立一個(gè)會(huì)話密鑰——只有該服務(wù)器可以用它的私鑰解密這個(gè)密鑰——然后使用該會(huì)話密鑰繼續(xù)通信。
TLS 1.2 會(huì)話
讓我們看看TLS 1.2連接的初始狀態(tài)。客戶端擁有CA證書和CA公鑰??蛻舳送ǔ?huì)有很多這樣的證書,但重要的是它有簽署服務(wù)器證書的CA的CA證書和公鑰(CA也有自己的證書、公鑰和私鑰)。服務(wù)器擁有由CA簽名的服務(wù)器證書以及它自己的公鑰和私鑰。
為了完成TLS 1.2握手,最終目標(biāo)是交換一個(gè)客戶端和服務(wù)器都知道的對(duì)稱密鑰。首先,客戶端發(fā)送一個(gè)Hello消息,其中包括它支持的密碼套件列表。服務(wù)器用Hello消息響應(yīng),選擇一個(gè)密碼套件,并包括它的服務(wù)器證書和它的公鑰??蛻舳送ㄟ^使用CA公鑰解密該服務(wù)器證書來驗(yàn)證該證書。假設(shè)這是可行的,然后客戶端生成一個(gè)預(yù)主密鑰(premaster secret),使用服務(wù)器公鑰對(duì)其加密,并將其發(fā)送給服務(wù)器。它還從剛剛發(fā)送到服務(wù)器的premaster密鑰生成會(huì)話密鑰。服務(wù)器用它的私鑰解密此消息(它是唯一擁有此密鑰的機(jī)器,因此也是唯一能夠解密此消息的機(jī)器),這將恢復(fù)premaster密鑰。然后,服務(wù)器使用這個(gè)premaster密鑰生成會(huì)話密鑰,并向客戶機(jī)發(fā)送加密的握手消息,客戶機(jī)應(yīng)該能夠?qū)υ撓⑦M(jìn)行解密。此時(shí),客戶端和服務(wù)器都擁有相同的會(huì)話密鑰(對(duì)稱密鑰),并將其用于會(huì)話期間的其余通信。
TLS 1.3 會(huì)話
TLS 1.3在很多方面對(duì)TLS 1.2進(jìn)行了改進(jìn)。TLS 1.2存在已知的安全問題,包括可能對(duì)該標(biāo)準(zhǔn)的某些實(shí)現(xiàn)進(jìn)行的攻擊。TLS 1.2有37種不同的密碼套件可用。由于這樣或那樣的原因,其中許多已不再被認(rèn)為是安全的。而TLS 1.3僅支持5個(gè)密碼套件。
另一個(gè)改進(jìn)是連接的速度。TLS 1.2在傳輸數(shù)據(jù)之前總共需要兩個(gè)往返連接。這需要更多的時(shí)間來建立連接,而且明顯比建立TLS 1.3會(huì)話所需的1次或有時(shí)為0次的往返時(shí)間要慢。
TLS 1.3的往返時(shí)間為0?是的,這是可能的。如果之前建立了會(huì)話,則可以恢復(fù)TLS 1.3會(huì)話,這使會(huì)話建立速度更快。
TLS 1.3的最后一個(gè)改進(jìn)是只使用臨時(shí)密鑰。這意味著,如果某個(gè)會(huì)話密鑰由于某種原因被泄露,那么它只會(huì)對(duì)客戶端和服務(wù)器之間的一小部分流量有影響,而不會(huì)泄露整個(gè)會(huì)話。
TLS 解密
在上面我們介紹了一些加密的基礎(chǔ)知識(shí),討論了TLS 1.2,并概述了TLS 1.3提供的改進(jìn)。接下來,我們將更進(jìn)一步研究對(duì)TLS 1.2和1.3版本的TLS解密。
要解密TLS會(huì)話,有幾個(gè)要求。其中一個(gè)選項(xiàng)是在客戶端或服務(wù)器上,客戶端和服務(wù)器必須能夠在某個(gè)時(shí)刻解密會(huì)話以使用該信息。對(duì)于某些場(chǎng)景,這可能就是所需要的全部?jī)?nèi)容,但不幸的是,這并不能很好地?cái)U(kuò)展。
另一種選項(xiàng)是擁有一個(gè)服務(wù)器私鑰的副本,并使用它偵聽通過網(wǎng)絡(luò)的通信。這在某些場(chǎng)景中可以工作,并允許將所有解密的通信流量發(fā)送到安全或監(jiān)控工具以進(jìn)行分析。這個(gè)解決方案存在兩個(gè)問題:首先,它只有在您控制服務(wù)器的情況下才能工作,它將永遠(yuǎn)不會(huì)對(duì)內(nèi)部客戶端到互聯(lián)網(wǎng)的通信解密。第二,它將不能用于TLS 1.3,即使您有服務(wù)器的秘密密鑰。TLS 1.3使用臨時(shí)密鑰,因此您不能通過被動(dòng)地偵聽解密它。
為了解密來自多個(gè)客戶端到多個(gè)服務(wù)器的會(huì)話,需要一個(gè)中間人(person-in-the-middle),以便在客戶端和服務(wù)器之間修改通信。在這種情況下,TLS 1.2會(huì)話的初始狀態(tài)略有不同。NETSCOUT nGenius加解密設(shè)備(nGenius Encryption Appliance,簡(jiǎn)稱nDA)需要能夠看到客戶端和服務(wù)器之間的所有通信??蛻舳诵枰粋€(gè)證書頒發(fā)機(jī)構(gòu)(CA)證書和公鑰,但是現(xiàn)在這個(gè)證書需要由nDA生成。服務(wù)器初始狀態(tài)保持不變。nDA擁有自己的自創(chuàng)建CA證書和公鑰和私鑰,CA的證書和公鑰,以及自己的服務(wù)器公鑰和私鑰。
TLS 1.2 解密
那么,解密TLS 1.2會(huì)話的過程是什么呢?這個(gè)TLS會(huì)話的開始是相同的:客戶端發(fā)送一個(gè)Hello消息,其中包括它支持的密碼套件的列表。服務(wù)器用Hello消息響應(yīng),選擇一個(gè)密碼套件,并包括它的服務(wù)器證書和它的公鑰。此消息被nDA截獲。nDA使用自己的CA私鑰替換服務(wù)器公鑰并重新簽署。這是客戶端信任的密鑰,因此它將執(zhí)行與之前相同的步驟:客戶端通過使用CA公鑰解密來驗(yàn)證此服務(wù)器證書。然后生成一個(gè)premaster密鑰,使用服務(wù)器公鑰對(duì)其進(jìn)行加密,并將其發(fā)送到服務(wù)器。此消息也被nDA截獲。它使用自己的私鑰對(duì)該消息進(jìn)行解密,恢復(fù)premaster密鑰,然后能夠從premaster密鑰生成會(huì)話密鑰。
nDA接下來又做兩件事:首先,它處理服務(wù)器Hello消息,驗(yàn)證服務(wù)器,加密premaster密鑰,就像客戶端所做的那樣,然后將其發(fā)送給服務(wù)器。它還用一條加密的握手消息響應(yīng)客戶機(jī),這將建立TLS會(huì)話1。服務(wù)器對(duì)接收到的消息進(jìn)行解密,從premaster密鑰生成會(huì)話密鑰,并發(fā)送握手消息。nDA收到此消息并知道TLS會(huì)話2也處于活動(dòng)狀態(tài)?,F(xiàn)在客戶機(jī)、nDA和服務(wù)器都有相同的會(huì)話密鑰,而且nDA將能夠解密客戶機(jī)和服務(wù)器之間的所有消息。
TLS 1.3解密的總體過程與此類似,但總體步驟更少,因?yàn)樯厦娴膸讉€(gè)步驟是結(jié)合在一起的。nDA同時(shí)充當(dāng)客戶端和服務(wù)器,適當(dāng)?shù)匦薷拿荑€,使nDA最終得到兩個(gè)TLS會(huì)話密鑰(每端一個(gè))。
為什么TLS仍是安全的?
因此,在了解了TLS如何被解密后,您可能想知道是否應(yīng)該關(guān)注您的TLS會(huì)話正在被解密,或者是否任何TLS會(huì)話可以被解密。以下是一些需要記住的要點(diǎn)和提示,以確定您的流量是否可以(或正在)解密。
客戶端和服務(wù)器總是可以解密會(huì)話。這必須在兩個(gè)端點(diǎn)都是可能的,否則,端點(diǎn)將無法處理兩個(gè)系統(tǒng)之間的信息。如果您對(duì)自己的通信流進(jìn)行此操作感興趣,那么可以直接在本地系統(tǒng)上捕獲會(huì)話密鑰,并將這些密鑰加載到可以解密數(shù)據(jù)包的程序中。大多數(shù)瀏覽器支持將加密密鑰保存到計(jì)算機(jī)上的特定文件夾中,可以將這些密鑰加載到一個(gè)程序中,以解密捕獲的網(wǎng)絡(luò)通信。
您可以通過單擊瀏覽器中的鎖圖標(biāo)來驗(yàn)證HTTPS會(huì)話中的連接,找到服務(wù)器發(fā)送給您的證書并檢查它。以NETSCOUT為例,它是這樣的:
NETSCOUT的證書信息
一個(gè)自簽名的證書看起來像下面這樣:
自簽名的證書
此外,當(dāng)使用nDA來解密通信時(shí),最終用戶仍然可以看到正在發(fā)生的情況??纯聪旅娴淖C書:
由解密設(shè)備頒發(fā)的證書
如您所見,www.google.com是由nDA Demo簽名的。這使得最終用戶看到即使證書是有效的,它也不是由谷歌頒發(fā)的。
任何擁有服務(wù)器私鑰的人都可以解密該消息。這對(duì)于被動(dòng)監(jiān)控自己的服務(wù)器非常有用。您可以將私鑰復(fù)制到被動(dòng)監(jiān)控工具的系統(tǒng)中,并將TLS解密。該方法支持到TLS1.2,但TLS 1.3無法通過此方法解密。這樣做的原因是Diffie-Hellman密鑰交換,它確保只有客戶端和服務(wù)器可以解密消息。
如何正確處理解密流量?
如果您已經(jīng)對(duì)一些流量進(jìn)行了解密,那么在處理它時(shí)需要注意哪些事項(xiàng)呢?正確地處理這些通信是極其重要的,因?yàn)槟用芩欢ㄊ腔谀撤N原因的。
處理解密通信的最佳方法是將其直接發(fā)送到將要分析通信的設(shè)備。這可以通過NETSCOUT的PFS數(shù)據(jù)包流交換機(jī)來完成。這樣做的好處是可以將多個(gè)副本發(fā)送到不同的設(shè)備。一次解密,多種工具可以同時(shí)進(jìn)行分析。
注:不要通過未加密的IP網(wǎng)絡(luò)發(fā)送流量。
如果您計(jì)劃存儲(chǔ)流量,則可能會(huì)遇到遵從性問題。如果一個(gè)設(shè)備要存儲(chǔ)流量,那么最好使用可以掩碼信用卡和身份證件號(hào)碼信息的工具。
結(jié)論
nDA允許以多種方式解密TLS會(huì)話,并且當(dāng)與PFS數(shù)據(jù)包流交換機(jī)結(jié)合使用時(shí),允許多個(gè)設(shè)備同時(shí)分析解密的流量。這是一種很好的方法,可以安全地分析網(wǎng)絡(luò)上的流量,以實(shí)現(xiàn)安全和應(yīng)用性能監(jiān)控。
要了解更多信息,請(qǐng)關(guān)注武漢恒景科技有限公司微信公眾號(hào),或留言聯(lián)系我們。
-
最新動(dòng)態(tài)
-
Niagara Bypass交換機(jī) Netscout 網(wǎng)絡(luò)設(shè)備 Uila 虛擬化性能監(jiān)控 Fortinet 網(wǎng)絡(luò)安全 iRecovery網(wǎng)絡(luò)故障自愈系統(tǒng) NetAlly手持儀表 Napatech 網(wǎng)絡(luò)加速卡 恒景數(shù)據(jù)包中轉(zhuǎn)交換機(jī) 思科Cisco 光電模塊 星融元 安立Anritsu Mellanox交換機(jī)
-
Niagara Networks解決方案 Netscout 解決方案 Uila解決方案 FORTINET解決方案 iRecovery 網(wǎng)絡(luò)故障自愈系統(tǒng) NetAlly解決方案 MultiLane端口測(cè)試解決方案
-
公司介紹 廠商介紹 聯(lián)系我們 加入我們 最新動(dòng)態(tài)
郵箱 y.k@whpermanent.com
電話 027-87569272
地址 湖北省武漢市洪山區(qū)文化大道555號(hào)融創(chuàng)智谷A10-5
關(guān)注恒景

獲取最新案例及解決方案
">