李英杰
(湖南環(huán)境生物職業(yè)技術(shù)學院,湖南 衡陽 421005)
網(wǎng)絡(luò)安全協(xié)議對于普通人來說是一個較為陌生的詞,但對于所有互聯(lián)網(wǎng)用戶來說,它則是保證網(wǎng)絡(luò)及計算機安全的基本技術(shù)。隨著近些年網(wǎng)絡(luò)安全事件的頻發(fā),不管是普通的計算機還是人們?nèi)粘J褂玫氖謾C等各種移動互聯(lián)網(wǎng)設(shè)備都面臨各種安全風險。因此要確保通信和交易的安全,就需要一系列安全的網(wǎng)絡(luò)協(xié)議來對其進行監(jiān)控和規(guī)范。根據(jù)不同的功能和作用可以對網(wǎng)絡(luò)安全協(xié)議的類型進行劃分,該文將選取部分進行說明。
網(wǎng)絡(luò)安全協(xié)議是指多個用戶在通過互聯(lián)網(wǎng)進行信息交換時,用于保護用戶信息安全的加密和解密技術(shù)。網(wǎng)絡(luò)安全協(xié)議是基于密碼學誕生的一種通信技術(shù),它可以保證其他用戶在沒有經(jīng)過授權(quán)的情況下無法讀取相應(yīng)的信息,從而實現(xiàn)保護用戶信息安全的功能[1]。隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,為了應(yīng)對更為復(fù)雜的網(wǎng)絡(luò)環(huán)境,相應(yīng)的網(wǎng)絡(luò)安全協(xié)議也在不斷迭代更新,而舊的安全協(xié)議也存在一定的風險,因此各大組織不斷開發(fā)新的網(wǎng)絡(luò)安全協(xié)議,以保證互聯(lián)網(wǎng)活動的正常進行。
TCP/IP協(xié)議也被稱作網(wǎng)絡(luò)通信協(xié)議,它是計算機網(wǎng)絡(luò)中最為基本的一種通信協(xié)議。TCP/IP協(xié)議對互聯(lián)網(wǎng)中的通信標準和方法進行了統(tǒng)一規(guī)定,并且是保證網(wǎng)絡(luò)中信息數(shù)據(jù)能夠及時、完整傳輸?shù)闹匾獏f(xié)議。嚴格意義上講,TCP/IP協(xié)議是一個綜合性的協(xié)議,它是不僅包括TCP協(xié)議和IP協(xié)議,而且還涵蓋了FTP、SMTP、UDP以及TCP等多種協(xié)議的綜合性互聯(lián)網(wǎng)協(xié)議。由于計算機需要按相應(yīng)的規(guī)則對傳輸層的數(shù)據(jù)進行處理并傳送到傳輸層,然后再由互聯(lián)網(wǎng)完成數(shù)據(jù)的分享,因此在該過程中需要不斷地對其加密或者解密,以確保分享數(shù)據(jù)的安全性。
TCP/IP協(xié)議至今發(fā)展成被世界所認可的通用協(xié)議主要有以下4個特點:1)該協(xié)議群是開放的,所有網(wǎng)絡(luò)用戶均可免費使用。2)獨立性。該協(xié)議群可以獨立于網(wǎng)絡(luò)硬件實現(xiàn)互聯(lián)網(wǎng)的統(tǒng)一標準。3)唯一性。只要加入了該協(xié)議的網(wǎng)絡(luò)設(shè)備都會獲得專屬于自身的地址,是互聯(lián)網(wǎng)實現(xiàn)網(wǎng)狀聯(lián)通的必要條件。4)拓展性。由于該協(xié)議對其他協(xié)議有極強的兼容性,因此基于該協(xié)議,更多的網(wǎng)絡(luò)服務(wù)可以被接入,從而引爆了當今互聯(lián)網(wǎng)的蓬勃發(fā)展。
然而,由于TCP/IP協(xié)議握手轉(zhuǎn)發(fā)信息的過程中存在漏洞,部分網(wǎng)絡(luò)黑客會利用TCP-SYNFlood對服務(wù)器或個人電腦進行攻擊,從而導(dǎo)致計算機設(shè)備出現(xiàn)網(wǎng)絡(luò)擁堵甚至系統(tǒng)過載的現(xiàn)象[2]。由于該攻擊工具在互聯(lián)網(wǎng)上廣泛傳播,因此需要網(wǎng)絡(luò)運維人員引起高度重視,首先是定期地對系統(tǒng)進行維護,確保服務(wù)器和電腦沒有明顯的漏洞;其次,要安裝相應(yīng)的防護軟件對相關(guān)的攻擊進行過濾處理;最后,還要定時查看安全日志,確保系統(tǒng)沒有產(chǎn)生異常。
Kerberos認證協(xié)議是由麻省理工學院開發(fā)的一套網(wǎng)絡(luò)身份認證協(xié)議,它是基于密鑰系統(tǒng)為計算機設(shè)備提供全面強大的認證服務(wù)。在Kerberos認證協(xié)議下,用戶不需要通過主機系統(tǒng)進行身份驗證,也不需要確定網(wǎng)絡(luò)上主機的物理安全,它是假定在網(wǎng)絡(luò)信息傳輸過程中可以被任意讀寫和修改,從而誕生的一種認證技術(shù)。Kerberos使用的是傳統(tǒng)的共享密鑰方式,其運行方式為單點登錄,適用于通信者和服務(wù)器之間的信息交互,并且只需要完成一次完整的認證即可確保通信的安全。Kerberos的驗證憑據(jù)是一種叫做keytab的特殊類格式文件,其包含了所有認證過程所需要用到的憑證。在Kerberos中,還有一個概念值得注意,即“領(lǐng)域”,領(lǐng)域是指Kerberos協(xié)議所鏈接的所有服務(wù)集、主機和用戶。
Kerberos采用服務(wù)器對比的認證方式,其服務(wù)器又被稱作密鑰分發(fā)中心(KDC)。Kerberos共有兩層服務(wù)器,第一層是認證服務(wù)器(AS),用于驗證用戶端的身份信息,一旦通過驗證將會自動給用戶提供一種被稱作票證授予票證(TGT)的特殊憑證。第二層是票據(jù)授權(quán)服務(wù)器(TGS),用戶獲得TGT后,可以將TGT提交給TGS進行二次驗證,當驗證被通過時會對用戶的權(quán)限進行提升,給予用戶訪問服務(wù)器資源的票證(ST,部分資料稱TGS Ticket)。其大致工作流程如下:當位于用戶端的用戶向AS發(fā)起認證請求時,AS通過對數(shù)據(jù)庫進行對比向用戶返回一個基于Kerberos加密的TGT密碼,密碼不被第三方知道。用戶獲得TGT密碼后,再向TGS發(fā)起訪問請求,從而開始對服務(wù)器進行訪問。整個過程中,TGT只被AS及用戶所知道,由于非對稱算法的特性,因此很難被破解,從而達到保障安全的效果。
3.2.1 初始驗證:獲取票證授予票證(TGT)
Kerberos的TGT獲取流程如圖1所示。首先,在用戶端進行登錄,并向密鑰分發(fā)中心的第一層服務(wù)器AS發(fā)出認證請求,該過程通常情況下是自動完成的,當認證請求被通過時,AS向用戶發(fā)送加密后的TGT。TGT的基本作用相當于現(xiàn)實世界中的簽證,TGT的簽證作用是對遠程網(wǎng)絡(luò)連接或服務(wù)器資源進行訪問。TGT除了能夠擁有更高的權(quán)限之外,也具有時間限制,因此直到TGT失效,在TGT的有效使用期間可以隨意使用TGT,并非一次性使用即失效。相對來說,TGT也像是一把被上鎖的鑰匙,用戶獲取TGT后,必須要對其進行再次解密,當然該過程是默認自動的,無須用戶另外申請。綜上所述,Kerberos初次驗證可歸納為以下2個特點:1)TGT是在密鑰分發(fā)中心生成并以特定的加密方式將其發(fā)送回用戶端。用戶端使用特定的口令來解密TGT。2)當客戶端獲得TGT時,TGT具有時間限制,其有效期通常為1 d。如果超過使用時限,用戶必須重新獲取TGT。
圖1 Kerberos的TGT獲取流程
3.2.2 二次驗證:獲取訪問服務(wù)器資源的票證(ST)
Kerberos二次認證流程如圖2所示。當用戶完成初始驗證后,必須要對TGT進行二次驗證,其大致流程環(huán)節(jié)與初始驗證環(huán)節(jié)類似,不同點在于二次驗證獲取的票據(jù)即可作為資源訪問的授權(quán)物,從而獲得更高的權(quán)限,例如實現(xiàn)計算機的遠程登錄。其流程大致如下:用戶端向密鑰分發(fā)中心發(fā)出TGT并請求認證,TGS對其解密后自動確認并返回ST,用戶使用ST進行相關(guān)操作,例如遠程登錄、文件管理等。
圖2 Kerberos二次認證流程
假定某用戶Beta要訪問已通過要求的 krb5 驗證共享的 NFS 文件系統(tǒng)。Beta已經(jīng)通過了初始驗證,獲得了TGT,因此當他訪問NFS系統(tǒng)下的文件時,NFS客戶機系統(tǒng)將自動地從秘鑰分發(fā)中心獲取相關(guān)權(quán)限的NFS票據(jù),從而實現(xiàn)授權(quán)。如果用戶Alpha想要在服務(wù)器tank上使用rlogin命令,Alpha已事先獲取了相應(yīng)的TGT,因此當Alpha對tank進行遠程訪問時,會自動從TGS獲取ST,并且可以一直保留使用權(quán)限,直到TGT失效。但如果Alpha想登陸另一個服務(wù)器sank,則需要重新進行初始認證,獲取擁有sank登錄權(quán)限的TGT。
3.2.3 Kerberos 具體應(yīng)用
Hadoop作為一個強大的分布式集群系統(tǒng),必須要依賴安全和準確的訪問措施。集群中的每一個客戶端都需要對自己的身份進行明確,使其他計算機能夠更為準確地進行識別,再進行分享。由于集群系統(tǒng)資源的共享性,主機和服務(wù)之間需要更為安全的身份認證措施,以防止惡意程序入侵,從而對系統(tǒng)造成破壞。因此Hadloop借助了Kerberos來實現(xiàn)加密操作,確保集群系統(tǒng)中各部分身份識別的安全性,并且能夠更為有效地實現(xiàn)對文件資源的管理,提高集群的協(xié)作能力。Kerberos大多時候被用于不安全網(wǎng)絡(luò)環(huán)境下的通信,用獨特的加密方式實現(xiàn)了用戶和服務(wù)器之間的認證交互,提高了系統(tǒng)的安全性。
SSL(Secure Socket Layer)協(xié)議即安全套接字協(xié)議,它是為保證網(wǎng)絡(luò)通信安全及數(shù)據(jù)完整的一種加密協(xié)議[3]。SSL協(xié)議通常在4個層面保障用戶進行信息傳輸?shù)陌踩?。SSL握手協(xié)議由網(wǎng)絡(luò)對協(xié)議用戶的身份進行確認,確認符合身份后則繼續(xù)使用SSL加密規(guī)程協(xié)議,對相關(guān)的數(shù)據(jù)進行加密并交換密鑰。如果在該過程中,數(shù)據(jù)出現(xiàn)泄漏或破壞,則啟動SSL報警協(xié)議,分別向協(xié)議用戶進行報警,如果報警內(nèi)容為1,則為一般性數(shù)據(jù)錯誤,報警內(nèi)容為2,則是致命性錯誤,可以便于終端對數(shù)據(jù)進行準確判斷。另外,最后一層為優(yōu)先級最高的SSL記錄協(xié)議,它將對整個通信過程進行記錄,對數(shù)據(jù)進行封裝和壓縮等操作。
中間人攻擊(MITM攻擊)是基于SSL協(xié)議的典型網(wǎng)絡(luò)攻擊形式,它并非是一臺計算機直接對另一臺計算機進行攻擊,而是通過入侵手段對其他計算機進行非法操控,將另一臺計算機當做中間人來對自己進行偽裝,然后對真正會話中的計算機建立活動連接,并對其傳輸?shù)臄?shù)據(jù)進行讀取甚至串改。該方式具有極強的隱蔽性,另一端真正的計算機無法辨別通信對象的合法性,因此該方法被大多數(shù)網(wǎng)絡(luò)黑客用于非法牟利,例如對網(wǎng)銀和各類網(wǎng)上交易進行破壞性操作,實現(xiàn)非法獲利。常見的MITM攻擊有ARP欺騙、DNS污染等手段,ARP欺騙是通過欺騙局域網(wǎng)內(nèi)訪問者PC的網(wǎng)關(guān)MAC地址,使訪問者PC錯以為攻擊者更改后的MAC地址是網(wǎng)關(guān)的MAC,導(dǎo)致網(wǎng)絡(luò)不通,從而造成特定計算機無法上網(wǎng)的情況;而DNS污染是指不法分子對計算機的DNS識別進行破壞,從而將計算機用戶導(dǎo)向錯誤的IP地址,進而實現(xiàn)詐騙等操作。
一種典型的ARP欺騙是假定在某一個局域網(wǎng)內(nèi),只有A、B和C 3臺主機,且A是攻擊者。A對局域網(wǎng)上的MAC地址進行監(jiān)聽,一旦B、C 2臺主機存在大量的ARP請求,就可以對其進行欺騙。A準確掌握了2臺主機的IP和MAC地址,就可以向C發(fā)送一個欺騙性的ARP回復(fù),并將IP偽裝為B,而A自身的MAC地址不變。主機C收到ARP回復(fù)后,更新它的ARP表,把主機B的MAC地址(IP_B,MAC_B)改為(IP_B,MAC_A),當主機C發(fā)送數(shù)據(jù)包給主機B時,交換機會將其數(shù)據(jù)包轉(zhuǎn)發(fā)給主機A。在該過程中,A可以實現(xiàn)對其他主機的監(jiān)聽,甚至篡改數(shù)據(jù)包以達到對B的欺騙效果,從而對B造成破壞。
SSL會話通信實際上是用戶使用客戶端與服務(wù)器之間的通信。不同的用戶有不同的權(quán)限。為了實現(xiàn)對用戶的鑒別,在服務(wù)器的數(shù)據(jù)庫中必然有一個與用戶共享的秘密作為通信會話時的認證信號,例如用戶用于登陸服務(wù)器的帳戶U_acout 和密碼password。用戶的帳戶U_accout和密碼password往往是通過其他方式在使用協(xié)議進行通信前就已經(jīng)約定好的,例如電子銀行上用戶的帳號和密碼是在實際銀行進行注冊時申請的,在實際銀行申請后,就可以在電子銀行上進行使用。該賬號及其對應(yīng)的密碼都是服務(wù)器和用戶已知的共享秘密,而且不需要通過SSL協(xié)議本身進行協(xié)商。因此,該方案利用這個共享秘密來增強SSL協(xié)議的服務(wù)器認證機制。
下面詳細分析握手過程。
當客戶端發(fā)送Client-hello消息時,消息內(nèi)容增加用戶的帳號密碼信息的mac_U值。
mac_U=MAC(U_accout,password)
服務(wù)器根據(jù)mac_v值在數(shù)據(jù)庫中找到對應(yīng)的帳戶U_acout和密碼password,計算mac_Cert=MAC(U_accout,password,Cert__s)。
在服務(wù)器的Certificate 消息中增加對服務(wù)器數(shù)字證書的校驗mac_Cert。當客戶端收到Certificate 消息后,使用mac_Cert對消息中封裝的服務(wù)器數(shù)字證書Certr進行檢查,驗證接收到的數(shù)字證書 Certr是否被修改,是否來自合法的服務(wù)器。采用該方式中間人就無法偽裝成服務(wù)器。假設(shè)中間人已經(jīng)控制了整個數(shù)據(jù)流,能夠攔截所有的數(shù)據(jù)[4]。當服務(wù)器發(fā)送Certificate消息時,中間人為了達到成功解密獲取pre_master_key的目的,用自己的數(shù)字證書Cert_m替換掉服務(wù)器原有的數(shù)字證書Cert_s。
Cert_m Cert_sMAC(U_accout,password,Cert_s)
但是中間人沒有用戶U_accout和密碼password,無法篡改mac_Cert。因此客戶端將收到的Certificate 消息內(nèi)容。
Cert_m MAC(U_accout,password,Cert_s)客戶端通過驗證接收到證書的mac_Cert’=MAC(U_accout,password,Cert_m)就會發(fā)現(xiàn)數(shù)字證書被篡改過,將立即斷開連接,從而防止中間人的攻擊,保障了自己與服務(wù)器之間的通信安全。
在該方案的改進過程中,使用用戶帳戶和密碼增強了對服務(wù)器證書的認證。中間人在會話過程中可以截獲randc、MAC(U_accout,password)、rand_s、cert_s和MAC(U_accoul,password,Cerls),但是不能得到用戶帳戶U_accout和密碼password,會導(dǎo)致不能重構(gòu)合法的mac_Cert,最終攻擊失敗。該方案簡單有效地阻止了中間人的攻擊[5]。
隨著計算機通信技術(shù)的不斷發(fā)展,越來越多的安全協(xié)議將會出現(xiàn)在人們的生活中。由于現(xiàn)代技術(shù)的制約,部分協(xié)議需要在當前的基礎(chǔ)上進行革新,從而適用現(xiàn)代網(wǎng)絡(luò)環(huán)境,而對于廣大用戶來說,也要積極學習相關(guān)網(wǎng)絡(luò)安全知識,對相應(yīng)的網(wǎng)絡(luò)安全協(xié)議進行了解。尤其是當前數(shù)字貨幣和電商蓬勃發(fā)展的環(huán)境下,人們的財產(chǎn)大多與網(wǎng)絡(luò)有著緊密的聯(lián)系,為了營造更好的網(wǎng)絡(luò)交易環(huán)境,就必須對相關(guān)的網(wǎng)絡(luò)協(xié)議進行深入學習,從而實現(xiàn)各類App和網(wǎng)站的安全交互。程序員必須具備充足的網(wǎng)絡(luò)安全知識,在涉及大型網(wǎng)站、軟件的開發(fā)等過程中,全面深入地學習相應(yīng)的網(wǎng)絡(luò)協(xié)議,并將其運用到實際開發(fā)環(huán)境中,從而提升項目的開發(fā)質(zhì)量。