宮明
摘 要:攻擊者可以通過各種途徑竊取網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)。如果數(shù)據(jù)使用了脆弱的加密方式或者以明文的方式傳輸,那么數(shù)據(jù)的安全性和網(wǎng)絡(luò)軟件系統(tǒng)的穩(wěn)定性將無法得到保障。對于包含敏感數(shù)據(jù)的網(wǎng)絡(luò)系統(tǒng),在設(shè)計(jì)階段應(yīng)該著重思考系統(tǒng)安全保護(hù)方案;需要根據(jù)系統(tǒng)的特點(diǎn)定制合理的加解密策略,既要確保安全又要兼顧效率;在自主開發(fā)的數(shù)字校園網(wǎng)絡(luò)設(shè)備監(jiān)控系統(tǒng)中,應(yīng)用非對稱加密算法和對稱加密算法相結(jié)合的方案,取得了滿意的效果。
關(guān)鍵詞:網(wǎng)絡(luò);數(shù)據(jù);安全;加解密;非對稱加密算法
中圖分類號:TP39 文獻(xiàn)標(biāo)識碼:A
1 引言(Introduction)
網(wǎng)絡(luò)安全是指網(wǎng)絡(luò)系統(tǒng)的硬件、軟件及其系統(tǒng)中的數(shù)據(jù)受到保護(hù),不因偶然的或者惡意的原因而遭受到破壞、更改、泄露,系統(tǒng)連續(xù)可靠正常地運(yùn)行,網(wǎng)絡(luò)服務(wù)不中斷。網(wǎng)絡(luò)安全包含網(wǎng)絡(luò)設(shè)備安全、網(wǎng)絡(luò)信息安全、網(wǎng)絡(luò)軟件安全。網(wǎng)絡(luò)信息安全側(cè)重于保護(hù)信息的保密性、真實(shí)性和完整性。避免攻擊者利用系統(tǒng)的安全漏洞進(jìn)行竊聽、冒充、詐騙等有損于合法用戶的行為。其本質(zhì)是保護(hù)用戶的利益和隱私。數(shù)據(jù)竊聽是攻擊者常用的手段。2003年,有黑客在網(wǎng)上出售一種名為“隔山打?!钡哪抉R程序,它植入用戶電腦后可以對所在局域網(wǎng)進(jìn)行竊聽并截獲一款當(dāng)下流行的網(wǎng)絡(luò)游戲賬號和密碼,然后以電子郵件的形式發(fā)送給攻擊者。這個(gè)木馬的實(shí)現(xiàn)原理是:首先通過ARP欺騙,把宿主計(jì)算機(jī)偽裝成路由器;導(dǎo)致局域網(wǎng)內(nèi)的其他計(jì)算機(jī)發(fā)送給遠(yuǎn)程服務(wù)器的數(shù)據(jù)都要經(jīng)過它轉(zhuǎn)發(fā)。同時(shí)它還對數(shù)據(jù)進(jìn)行分析、匹配,如果發(fā)現(xiàn)符合那款游戲定義的數(shù)據(jù)包則進(jìn)行解密,然后局域網(wǎng)內(nèi)玩家的賬號密碼被秘密發(fā)送到指定的電子郵箱,最后的結(jié)果是很多玩家的游戲裝備被盜,損失慘重。
這僅僅是一個(gè)開始,接下來若干年直到今天,網(wǎng)絡(luò)上的ARP病毒從沒有停止過,它們已經(jīng)發(fā)展成各種各樣的形式,竊取信息的種類也是五花八門。試想,如果沒有黑客再去制造ARP病毒,或者殺毒軟件、防御工具可以對任何ARP病毒實(shí)現(xiàn)絕殺。那么網(wǎng)絡(luò)數(shù)據(jù)是否能夠安全傳輸呢?答案是否定的。網(wǎng)絡(luò)管理員只需要用一臺計(jì)算機(jī)連接到局域網(wǎng)的主干路由器,就可以將數(shù)據(jù)鏡像到這臺計(jì)算機(jī),剩下的事情完全由他的主觀意愿決定了。誠然,有法律和道德的約束,但這些不能保證全世界的網(wǎng)絡(luò)管理員不犯錯(cuò)誤。所以,要實(shí)現(xiàn)數(shù)據(jù)在網(wǎng)絡(luò)上安全傳輸,必須依賴技術(shù)手段;設(shè)計(jì)可靠、高效的加解密方案,相當(dāng)于給數(shù)據(jù)加上一道牢固的鎖;即使數(shù)據(jù)被攻擊者截獲,但在短時(shí)間內(nèi)不能被解密成明文;或者攻擊者需要付出巨大的時(shí)間及物質(zhì)成本才能完成解密。并且攻擊者無法還原,分析數(shù)據(jù)封包的格式,不能隨意偽造數(shù)據(jù)封包欺騙遠(yuǎn)程服務(wù)端軟件,保障了網(wǎng)絡(luò)軟件安全運(yùn)行。
2 分析網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)包(Analysis the packets
on the network)
在互聯(lián)網(wǎng)沒有誕生之前,人們通常使用軟盤從一臺計(jì)算機(jī)拷貝數(shù)據(jù)然后復(fù)制到另一臺計(jì)算機(jī);這種依賴存儲介質(zhì)的方式在今天仍在使用,軟盤已經(jīng)退出歷史舞臺,取而代之的是USB閃存驅(qū)動器(俗稱U盤)、移動硬盤等。使用存儲介質(zhì)有很多弊端,其中效率問題最為明顯,它會隨著兩臺計(jì)算機(jī)之間距離的增加而降低;比如,某公司在沈陽的分公司需要把計(jì)算機(jī)里的資料發(fā)送到北京的總公司,那么需要把資料拷貝到存儲介質(zhì)中,然后借助交通工具把存儲介質(zhì)運(yùn)送到目的地。顯然這非常影響工作效率。
今天,互聯(lián)網(wǎng)已經(jīng)覆蓋了整個(gè)世界。人們使用一臺計(jì)算機(jī)可以在網(wǎng)上購物、聽音樂、看電影、玩游戲、和異地的朋友交流。它最大可能為人們的工作、學(xué)習(xí)、生活提供方便。人們因此有了網(wǎng)上銀行密碼、電子郵箱密碼、社交網(wǎng)絡(luò)密碼、網(wǎng)絡(luò)游戲密碼等等。有人會質(zhì)疑,這些密碼關(guān)系到個(gè)人隱私和物質(zhì)資產(chǎn),它們以什么樣的形式在網(wǎng)絡(luò)上傳輸,會不會被其他人竊取到,是不是很不安全?要解答這個(gè)問題,需要先知道數(shù)據(jù)是怎樣在網(wǎng)絡(luò)上傳輸?shù)摹?/p>
計(jì)算機(jī)之間能夠相互通信,就必須約定好通用的通信方式,即協(xié)議。其中,NETBEUI、IPX/SPX和TCP/IP[1]是常見的網(wǎng)絡(luò)通信協(xié)議。隨著互聯(lián)網(wǎng)的發(fā)展,TCP/IP已經(jīng)成為使用最廣泛的通信標(biāo)準(zhǔn)。在TCP/IP協(xié)議的基礎(chǔ)上,定義了一系列的標(biāo)準(zhǔn)應(yīng)用層協(xié)議[2]:HTTP、FTP、TELNET、DNS、POP3、SMTP,應(yīng)用層數(shù)據(jù)按照協(xié)議規(guī)定的格式組裝成數(shù)據(jù)包后由網(wǎng)絡(luò)層發(fā)送出去。軟件開發(fā)者、網(wǎng)絡(luò)管理員通常使用嗅探器抓取網(wǎng)絡(luò)封包進(jìn)行相關(guān)的研究。圖1是使用Wireshark網(wǎng)絡(luò)分析器在本地計(jì)算機(jī)上抓取到的網(wǎng)絡(luò)登錄封包,它表示用戶輸入了口令和密碼登錄某個(gè)web應(yīng)用,數(shù)據(jù)是以明文的形式發(fā)送的,從圖的底部可以清晰的看到口令和密碼。
使用明文傳輸數(shù)據(jù)不但容易泄露敏感信息,而且暴露了整個(gè)封包協(xié)議的數(shù)據(jù)結(jié)構(gòu)。大多數(shù)網(wǎng)絡(luò)應(yīng)用程序都會自定義應(yīng)用層協(xié)議,例如網(wǎng)絡(luò)游戲。早期的一些網(wǎng)絡(luò)游戲使用的加密算法比較簡單,程序員使用網(wǎng)絡(luò)嗅探器抓取游戲客戶端和服務(wù)器之間通信的數(shù)據(jù)包,分析出完整的通信協(xié)議,最后開發(fā)出脫機(jī)外掛,獲取大量灰色收入,嚴(yán)重危害了服務(wù)器程序的穩(wěn)定性和可靠性。
3 定制合理的加解密方案(Customized the encryption
and decryption programme)
相對直接發(fā)送明文而言,發(fā)送方對數(shù)據(jù)進(jìn)行加密必須消耗一定的系統(tǒng)時(shí)間,接收方也需要額外的時(shí)間進(jìn)行解密;有的加密算法會增加數(shù)據(jù)的尺寸,在傳輸時(shí)會占用更多的網(wǎng)絡(luò)帶寬;因此加解密一定會降低系統(tǒng)的處理效率。對于實(shí)時(shí)交互,且交互頻繁的應(yīng)用,例如網(wǎng)絡(luò)游戲,在設(shè)計(jì)加解密方案的時(shí)候,應(yīng)該考慮最大限度得把效率損失降到最低。所以,針對應(yīng)用系統(tǒng)的特點(diǎn),采用適合的加解密算法,是目前普遍實(shí)施的一種數(shù)據(jù)保護(hù)方案。
筆者開發(fā)了一套數(shù)字校園網(wǎng)絡(luò)設(shè)備監(jiān)控系統(tǒng)。該系統(tǒng)采用C/S和B/S混合結(jié)構(gòu),其中B/S子系統(tǒng)提供簡單的數(shù)據(jù)查詢和統(tǒng)計(jì);主要的業(yè)務(wù)邏輯處理集中在C/S子系統(tǒng),它提供監(jiān)測、控制、管理功能。網(wǎng)絡(luò)管理員作為系統(tǒng)的使用者,需要在客戶端程序輸入口令和密碼登錄;客戶端程序和服務(wù)器程序在交互過程中會傳輸自定義的控制指令和設(shè)備的敏感信息。這些信息一旦泄露,攻擊者便可以修改全網(wǎng)設(shè)備的任何參數(shù),網(wǎng)絡(luò)安全受到巨大威脅。因此,加解密模塊是這個(gè)系統(tǒng)最重要的組成部分。endprint
如果采用傳統(tǒng)的對稱密鑰[3]算法,那么密鑰存放在什么位置最安全呢?方案1:密鑰存放在客戶端。由于這個(gè)密鑰是固定不變的,黑客只要通過反匯編與逆向工程[4]就可以跟蹤到密鑰。方案2:服務(wù)器隨機(jī)生成密鑰發(fā)送給客戶端??此坪馨踩?,因?yàn)槊荑€是動態(tài)變化的;但是黑客先通過逆向工程分析客戶端使用的加密算法,然后在網(wǎng)絡(luò)上嗅探密鑰和密文,有了加密算法、對稱密鑰、密文,便能夠分析出解密算法。
鑒于對稱密鑰算法的缺陷,筆者使用非對稱密鑰算法來保護(hù)系統(tǒng)的第一道門(身份認(rèn)證)。解決方案如下:客戶端發(fā)送認(rèn)證請求,服務(wù)器動態(tài)生成一對密鑰,即私鑰(private key)和公鑰(public key),服務(wù)器把公鑰發(fā)送給客戶端,客戶端使用公鑰對明文加密,然后把密文返回到服務(wù)器,服務(wù)器使用私鑰解密出登錄口令和密碼進(jìn)行身份識別。攻擊者即使得到了公鑰和密文,也毫無用處,因?yàn)楣€只能用來加密,要解密必須得到私鑰。
用戶登錄成功以后,進(jìn)入客戶端主界面。用戶對客戶端程序操作的背后是客戶端程序跟服務(wù)器程序交互的結(jié)果。這些敏感信息雖然沒有登錄口令和密碼那樣重要,但它們的安全性同樣是不能被忽視的。此時(shí),繼續(xù)使用非對稱加密并不是最佳的方案,因?yàn)榉菍ΨQ加密算法的復(fù)雜度高,加解密的速度遠(yuǎn)遠(yuǎn)慢于對稱加密算法。筆者使用對稱加密算法來保護(hù)身份認(rèn)證成功后的數(shù)據(jù)傳輸安全。解決方案如下:認(rèn)證成功后,客戶端與服務(wù)器動態(tài)協(xié)商出一個(gè)密鑰,由公鑰加密后傳輸?shù)綄Χ?,客戶端與服務(wù)器后續(xù)的數(shù)據(jù)傳輸使用這個(gè)密鑰進(jìn)行加解密。
4 結(jié)論(Conclusion)
上述方案,應(yīng)用到筆者開發(fā)的數(shù)字校園網(wǎng)絡(luò)設(shè)備監(jiān)控系統(tǒng)。該系統(tǒng)的C/S子系統(tǒng)基于Windows 8 64位企業(yè)版和Visual Studio 2012中文旗艦版開發(fā)。系統(tǒng)目前處于試運(yùn)行階段,客戶端與服務(wù)器交互響應(yīng)迅速,用戶體驗(yàn)良好。
參考文獻(xiàn)(References)
[1] W.Richard Stevens.范建華,等,譯.TCP/IP詳解 卷1:協(xié)議[M].
北京:機(jī)械工業(yè)出版社,2000.
[2] Charles M.Kozierok.陳鳴,等,譯.TCP/IP指南(卷2)應(yīng)用層協(xié)
議[M].北京:人民郵電出版社,2008.
[3] Behrouz A.Forouzan.馬振晗,賈軍保,譯.密碼學(xué)與網(wǎng)絡(luò)安全
[M].北京:清華大學(xué)出版社,2009.
[4] Chris Eagle.石華耀,段桂菊,譯.IDA Pro權(quán)威指南(第2版)[M].
北京:人民郵電出版社,2012.
作者簡介:
宮 明(1979-),男,本科,工程師.研究領(lǐng)域:計(jì)算機(jī)網(wǎng)絡(luò),
軟件工程.endprint