楊紅敏
(中國鐵通吉林分公司,吉林 長春 130012)
TCP/IP(Transmission Control Protocol/Internet Protocol的簡寫,中文譯名為傳輸控制協(xié)議/互聯(lián)網(wǎng)絡協(xié)議)協(xié)議是 Internet最基本的協(xié)議,簡單地說,就是由底層的IP協(xié)議和TCP協(xié)議組成的。TCP/IP協(xié)議的開發(fā)工作始于20世紀70年代,是用于互聯(lián)網(wǎng)的第一套協(xié)議。
開放式系統(tǒng)互聯(lián)模型(OSI)是1984年由國際標準化組織(ISO)提出的一個參考模型。作為一個概念性框架,它是不同制造商的設備和應用軟件在網(wǎng)絡中進行通信的標準?,F(xiàn)在此模型已成為計算機間和網(wǎng)絡間進行通信的主要結構模型。
網(wǎng)絡協(xié)議通常分不同層次進行開發(fā),每一層分別負責不同的通信功能。TCP/IP協(xié)議族是一組不同層次上的多個協(xié)議的組合。TCP/IP通常被認為是一個四層協(xié)議系統(tǒng),見圖1。
圖1 TCP/IP協(xié)議族的4個分層
每一層負責不同的功能:
1.2.1 鏈路層
有時也稱作數(shù)據(jù)鏈路層或網(wǎng)絡接口層,通常包括操作系統(tǒng)中的設備驅動程序和計算機中對應的網(wǎng)絡接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細節(jié)。
1.2.2 網(wǎng)絡層
有時也稱作互聯(lián)網(wǎng)層,處理分組在網(wǎng)絡中的活動,例如分組的選路。在TCP/IP協(xié)議族中,網(wǎng)絡層協(xié)議包括IP協(xié)議(網(wǎng)際協(xié)議)、ICMP協(xié)議(Internet互聯(lián)網(wǎng)控制報文協(xié)議)以及IGMP協(xié)議(Internet組管理協(xié)議)。
1.2.3 傳輸層
主要為兩臺主機上的應用程序提供端到端的通信。在TCP/IP協(xié)議族中,有兩個互不相同的傳輸協(xié)議:TCP(傳輸控制協(xié)議)和 UDP(用戶數(shù)據(jù)報協(xié)議)。TCP為兩臺主機提供高可靠性的數(shù)據(jù)通信。它所做的工作包括把應用程序交給它的數(shù)據(jù)分成合適的小塊交給下面的網(wǎng)絡層,確認接收到的分組,設置發(fā)送最后確認分組的超時時鐘等。由于傳輸層提供了高可靠性的端到端的通信,因此應用層可以忽略這些細節(jié)。而另一方面,UDP則為應用層提供一種非常簡單的服務。它只是把稱作數(shù)據(jù)報的分組從一臺主機發(fā)送到另一臺主機,但并不保證該數(shù)據(jù)報能到達另一端。任何必需的可靠性必須由應用層來提供。
1.2.4 應用層
負責處理特定的應用程序細節(jié)。幾乎各種不同的TCP/IP實現(xiàn)都會提供下面這些通用的應用程序:Telnet遠程登錄、FTP文件傳輸協(xié)議、SMTP簡單郵件傳送協(xié)議、SNMP簡單網(wǎng)絡管理協(xié)議。
IP是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP、UDP、ICMP及IGMP數(shù)據(jù)都以IP數(shù)據(jù)包格式傳輸。IP提供了不可靠和無連接的數(shù)據(jù)包傳送。
不可靠是指它不能保證IP數(shù)據(jù)報能成功的到達目的地。IP僅提供最好的傳輸服務。如果發(fā)生某種錯誤時,如某個路由器暫時用完了緩沖區(qū),IP有一個簡單的錯誤處理算法:丟棄該數(shù)據(jù)報,然后發(fā)送ICMP消息報給信源端。任何要求的可靠性必須由上層來提供,如:TCP。
無連接是指IP并不維護任何關于后續(xù)數(shù)據(jù)報的狀態(tài)信息。每個數(shù)據(jù)報的處理是相互獨立的。這也說明,IP數(shù)據(jù)報可以不按發(fā)送順序接收。如果信源向相同的信宿發(fā)送兩個連續(xù)的數(shù)據(jù)報(先是A,然后是B),每個數(shù)據(jù)報都是獨立地進行路由選擇,可能選擇不同的路線,因此B可能在A到達之前先到達。
1.3.1 傳輸控制協(xié)議(TCP)
傳輸控制協(xié)議(TCP):為應用程序提供可靠的面向連接的通信服務,適用于要求得到響應的應用程序。目前,許多應用程序都使用TCP。
TCP協(xié)議通過以下過程來保證端到端數(shù)據(jù)通信的可靠性:①TCP實體把應用程序劃分為合適的數(shù)據(jù)塊,加上TCP報文頭,生成數(shù)據(jù)段。②當TCP實體發(fā)出數(shù)據(jù)段后,立即啟動計時器,如果源設備在計時器清零后仍然沒有收到目的設備的確認報文,重發(fā)數(shù)據(jù)段。③當對端TCP實體收到數(shù)據(jù),發(fā)回一個確認。④TCP包含一個端到端的校驗和字段,檢測數(shù)據(jù)傳輸過程的任何變化。如果目的設備收到的數(shù)據(jù)校驗和計算結果有誤,TCP將丟棄數(shù)據(jù)段,源設備在前面所述的計時器清零后重發(fā)數(shù)據(jù)段。⑤由于TCP數(shù)據(jù)承載在IP數(shù)據(jù)包內,而IP提供了無連接的、不可靠的服務,數(shù)據(jù)包有可能會失序。TCP提供了重新排序機制,目的設備將收到的數(shù)據(jù)重新排序,交給應用程序。⑥TCP提供流量控制。TCP連接的每一端都有緩沖窗口。目的設備只允許源設備發(fā)送自己可以接收的數(shù)據(jù),防止緩沖區(qū)溢出。⑦TCP支持全雙工數(shù)據(jù)傳輸。
1.3.2 用戶數(shù)據(jù)報協(xié)議(UDP)
UDP是一個簡單的面向數(shù)據(jù)報的傳輸層協(xié)議:進程的每個輸出操作都正好產(chǎn)生一個UDP數(shù)據(jù)報,并組裝成一份待發(fā)送的IP數(shù)據(jù)報。
UDP不提供可靠性:它把應用程序傳給IP層的數(shù)據(jù)發(fā)送出去,但并不保證它們能到達目的地。
1.3.3 TCP/IP協(xié)議棧常用協(xié)議介紹
(1)地址解析協(xié)議(ARP)。當一臺主機把以太網(wǎng)數(shù)據(jù)幀發(fā)送到位于同一局域網(wǎng)上的另一臺主機時,需要將數(shù)據(jù)包封裝為以太網(wǎng)幀之后進行發(fā)送。在一個IP報文被封裝為以太網(wǎng)幀的時候,需要根據(jù)IP報文的目的IP地址確認以太網(wǎng)幀的MAC地址,用以完成對以太網(wǎng)幀的封裝。這就要求在發(fā)送設備上有地址解析,即:IP地址和MAC地址之間的映射。
(2)網(wǎng)際控制消息協(xié)議(ICMP)。網(wǎng)際控制消息協(xié)議ICMP是一個網(wǎng)絡層的協(xié)議,它提供了錯誤報告和其他回送給源點的關于IP數(shù)據(jù)包處理情況的消息。ICMP通常為IP層或更高層協(xié)議使用,一些 ICMP報文把差錯報文返回給用戶進程。ICMP報文通常被封裝在IP數(shù)據(jù)包內傳輸。
(3)動態(tài)主機配置協(xié)議(DHCP)。隨著網(wǎng)絡的發(fā)展,網(wǎng)絡中的主機數(shù)量不斷增加,管理主機的IP地址和相關參數(shù)對管理員來說越來越困難,手工分配IP地址難免會帶來地址沖突問題。主機經(jīng)常需要從一個地方移動到另一個地方,人工配置IP地址相當麻煩。當IP地址資源較緊張時,如果每臺主機都占用固定的IP地址,地址空間會非常緊張,實際上并不是每臺機器都是運行的,造成地址的浪費。動態(tài)分配是唯一一種允許自動重用地址的機制。因此,這種方法對于有臨時上網(wǎng)用戶,而且網(wǎng)絡的IP地址資源又不是多得沒法用的時候特別有用。而手工指定對于管理不希望使用動態(tài)IP地址的用戶十分方便,不會因為手工指定而和DHCP沖突或和其他已經(jīng)分配的地址沖突。通過DHCP可以給網(wǎng)絡中的主機提供配置信息,包括IP地址和相關的其他參數(shù)。DHCP可以完美的解決上述問題。
(4)DHCP Relay。當DHCP客戶機啟動并進行DHCP初始化時,它會在本網(wǎng)絡廣播配置請求報文;若本地網(wǎng)絡存在DHCP服務器則不需要DHCP中繼就直接可以進行DHCP配置;若本地網(wǎng)絡中無DHCP服務器,則與本地網(wǎng)絡相連的、帶DHCP中繼功能的網(wǎng)絡設備在收到該廣播報文后將做適當處理將之轉發(fā)給指定的存在于其他網(wǎng)絡上的DHCP服務器;服務器根據(jù)客戶機提供的必要信息,為其作響應的配置,并再次通過 DHCP中繼將該配置信息發(fā)送給客戶機,完成對客戶機的動態(tài)配置。事實上,從開始到最終完成配置,需要多個這樣的交互過程。
我們知道TCP/IP協(xié)議應用的主要目的是為了在Internet上的應用,也就是基于TCP/IP協(xié)議上的服務,雖然TCP/IP協(xié)議已是事實上通信協(xié)議的標準,但仍不可避免的一個問題就是安全性問題,不僅TCP/IP協(xié)議本身,現(xiàn)在很多基于TCP/IP的應用服務都在不同程度上存在著嚴重的安全問題,一些新的處于測試階級的服務有更多的安全缺陷。基于TCP/IP協(xié)議的服務較多,如WWW服務、FTP服務、電子郵件服務、TFTP服務、NFS服務、Finger服務、NDS服務、DHCP服務和WINS服務等,詳細了解這些服務在安全性方面的不足對于用戶設置防火墻保護自己的網(wǎng)絡有重要意義,平時我們?yōu)閱挝坏姆阑饓r就需要考慮該提供哪些服務、要禁止哪些服務以及哪些服務該如何配置等,在這里僅對一些常用服務做簡單介紹。
2.1.1 WWW服務
WWW 服務相對于其他服務出現(xiàn)較晚,是基于超文本(HTML)傳輸協(xié)議HTTP的,它是互聯(lián)網(wǎng)、多媒體網(wǎng)頁制作技術飛速發(fā)展的必然產(chǎn)物。它是由瑞士日內瓦歐洲粒子物理實驗室發(fā)明的,并在短時間內得到迅猛發(fā)展,是人們常用的互聯(lián)網(wǎng)服務,如我們第一線天所進行的網(wǎng)頁瀏覽。隨著Nctscape公司推出安全套接字層 SSL,WWW 服務器和瀏覽器的安全性得到大大的提高,現(xiàn)在人們把這種技術應用于電子商務 E-business。例如人們可以在互聯(lián)網(wǎng)上進行買賣股票和購物。安全套接字層SSL使WWW服務的安全性得到了提高,但它主要解決的是數(shù)據(jù)包被竊聽和劫持的問題,除此之外 WWW 服務還有其他問題,如WWW 服務所使用的 CGI程序、服務器端附件(Server Side Include,SSI)和Java Applet小程序等。
最初WWW服務只提供靜態(tài)的HTML頁面,這種頁面顯得很呆板,于是人們引入了CGI程序,CGI程序讓人們的主頁活起來。CGI程序可以接收用戶的輸入信息,一般用戶是通過表格把輸入信息傳給CGI程序的,然后CGI程序可以根據(jù)用戶的要求進行一些處理,一般情況下會生成一個HTML軟件包,利用它可做一些非法的事情,如把/etc/passwd文件傳送給黑客、刪除服務器上的文件等。另外,很多人在編CGI程序時,可能對CHI軟件包中的安全漏洞并不了解,多數(shù)情況下不會重新編寫程序的所有部分,只是對其加以適當?shù)男薷?,這樣很多 CGI程序就不可避免的具有相同的安全漏洞,所以用戶若要編寫一個安全的CGI程序,就應先去了解這些軟件包中的安全漏洞。另一個CGI程序很多是用Perl來編寫的,Perl本身的功能強大,但它同樣也很不安全,其中有很多UNIX的特殊字符可用來執(zhí)行UNIX的系統(tǒng)命令,一般入侵者就是利用這些特殊字符實施攻擊的,這也是造成CGI程序不安全的先天性,從某種意義上來講也是TCP/IP協(xié)議先天安全性不足的重要因素之一。
2.1.2 電子郵件服務
電子郵件服務給人們提供了一種便宜、方便和快捷的服務,E-mail地址也開始寫在現(xiàn)代都市人的名片上了,但是電子郵件程序本身就存在許多安全性問題。如在UNIX環(huán)境下的電子郵件Sendmail,它是一個復雜且功能強大的應用軟件,正因如此它的安全漏洞更多。程序越大、越復雜則安全漏洞可能越多,這似乎已是一個不爭的事實,以 Windows系列為例,版本在不斷更新,新功能在不斷添加,老的BUG據(jù)說是一個個被KILL,但新的問題總是層出不窮。如 Win2K的專業(yè)版中竟然在輸入法出現(xiàn)了重大安全漏洞,這是以前任何版本W(wǎng)indows所未曾出現(xiàn)的!
Sendmail在UNIX環(huán)境下以root運行,所以如果該程序被黑客利用,用戶主機的損失將會是巨大的?;ヂ?lián)網(wǎng)蠕蟲病毒曾經(jīng)震驚世界,它使大批的UNIX服務于癱瘓之中,這種病毒就是利用Sendmail安全缺陷來進攻的。如果要使這些功能以更安全的方式實現(xiàn),需要對Sendmail進行重新設計和重新實現(xiàn),但人們又會擔心新的版本會有更多的人們難以預料的安全漏出現(xiàn),于是Sendmail的開發(fā)者們只好對其修修補補。
除此之外,電子郵件附著的 Word文件或其他文件中有可能帶有病毒,如 Word的宏病毒等。電子郵件炸彈也是一個頭疼的問題,但這個問題時至今日人們仍無法有任何有效措施來預防,更不要說徹底解決了。
2.1.3 FTP服務和TFTP服務
這兩個服務都是用于傳輸文件的,但用的場合不同,安全程度也不同。
TFTP服務用于局域網(wǎng),在無盤工作站啟動時用于傳輸系統(tǒng)文件,因為它不帶有任何安全用證,所以其安全性極差,常被人用來竊取密碼文件。
FTP服務對于局域網(wǎng)和廣域網(wǎng)都可以用來下載任何類型的文件,但它允許匿名登錄,其實還有許多類似的服務,如ssh、scp等,ssh是一種帶有完善加密和認證機制的協(xié)議,如果服務器上運行的 ssh是最新版本,那么使用它應該是安全的。然而如http、ftp、smtp和nntp則是一般WWW服務器實際提供的服務,這些服務是必須運行的,所以所有其他文件傳輸都應最好使用scp工具和ssh協(xié)議完成。
網(wǎng)上有許多匿名FTP服務站點,其上有許多免費軟件、圖片和游戲,匿名FTP是人們常使用的一種。FTP服務的安全性要好一些,至少它需要用戶輸入用戶名和口令,當然匿名 FTP服務就像匿名WWW服務是不需要口令的,但用戶權力會受到嚴格的限制。匿名FTP存在一定的安全隱患,因為有些匿名FTP被一些人用作存放盜版軟件和黃色圖片,這會浪費用戶的磁盤窨、網(wǎng)絡帶寬等系統(tǒng)資源。
2.1.4 Finger服務
用于查詢用戶的信息,包括網(wǎng)上成員的真實姓名、用戶名、最近登錄時間和地點等,也可用來顯示當前登錄在機器上所有用戶名,這對于入侵者來說是無價之寶。因為它能告訴入侵者在本機上有效的登錄名,然后入侵就可以注意其活動。
仔細分析PSTN、ATM及IP網(wǎng)絡結構,可更充分理解IP網(wǎng)易受攻擊的安全性問題的原委。
一般安全攻擊多半在終端發(fā)起,PSTN的終端本質為傻瓜型,兼之PSTN的收費模式,在終端入手發(fā)起大規(guī)模攻擊,成本亦很高,難以操作。PSTN的用戶端與網(wǎng)絡端接以UNI與NNI彼此分離,業(yè)務提供及控制權均在運營商手中,沒有運營商參與,用戶難在終端做新花樣,播發(fā)病毒及發(fā)動攻擊;就算用戶想做手腳,追查亦較方便,因為 PSTN對所有終端均按 E.164碼號規(guī)則賦予全球惟一與公開的編號。此外,當PSTN提供IP網(wǎng)接入服務時,僅作為IP網(wǎng)的鏈路層接入,IP數(shù)據(jù)只是在PSTN上透穿,無法在PSTN接入IP之際從IP網(wǎng)攻擊PSTN。由此可以推理PSTN的網(wǎng)絡與終端安全性較好,相應其喪失的便是靈活有效的寬帶多業(yè)務增值能力。
ATM雖然亦同屬分組型技術,但ATM并無直接的終端業(yè)務與用戶,對用戶而言只是提供一個邏輯“專網(wǎng)”,用戶只能在自己的“專網(wǎng)”中運作,用戶亦無能力與可能發(fā)送ATM網(wǎng)絡能識別與要識別的信令與業(yè)務數(shù)據(jù)。同樣,ATM的UNI與NNI是分離的,網(wǎng)絡只是為用戶提供透傳功能,其信令、業(yè)務數(shù)據(jù)等對用戶為不可見,用戶無法產(chǎn)生惡意數(shù)據(jù)對ATM進行攻擊;ATM 網(wǎng)絡與網(wǎng)絡間的安全性則靠運營規(guī)則與運營商間的信任關系和協(xié)同合作予以保證。而且,由于用戶只能在自己所在的網(wǎng)絡中運作,即便能發(fā)動攻擊,也只能攻擊自己網(wǎng)絡內的有限用戶,很容易追查。因此,ATM網(wǎng)絡也有較好的安全性保證,但同時帶來了寬帶多業(yè)務增值不靈活方便與不價廉物美。
再看IP網(wǎng)絡,它真像信息的明信片傳送,沒有UNI與NNI的分離,運營商設備、協(xié)議乃至網(wǎng)絡拓撲對用戶均屬開放可見。用戶端產(chǎn)生的IP信息,無論在用戶端或在網(wǎng)絡中均可傳送終結,從而既可能由用戶端與運營商網(wǎng)絡交換非法及惡意路由信息,也可能對運營商網(wǎng)絡的路由器、接入服務器等設備及三層以上設備實施攻擊。與此同時,位于IP網(wǎng)絡邊際的用戶側的網(wǎng)絡與業(yè)務、應用,一般均使用 TCP/UDP/IP這一基礎技術,這導致用戶間在IP層及應用層等各層面彼此透明可見,從而亦為惡意用戶攻擊對方網(wǎng)絡及相應業(yè)務大開方便之門。IP網(wǎng)絡的終端高度智能化及多業(yè)務能力一方面使由終端用戶發(fā)動攻擊變得容易,同時又增加了識別與防范各類花樣繁多的安全攻擊的難度,因為多種業(yè)務綜合承載在同一網(wǎng)絡上,難以分辨與確立用戶間的信任關系,導致惡意用戶容易找準對象發(fā)動攻擊,而被攻擊的用戶實際上難以分清哪些是合法用戶的正常訪問,哪些是非法用戶侵入或惡意攻擊。另一方面,鑒于IP網(wǎng)絡及技術飛速發(fā)展,協(xié)議設計及軟件開發(fā)中的缺陷與漏洞在大規(guī)模應用前來不及測試發(fā)現(xiàn)與徹底排除,這亦給惡意攻擊造成各種可乘之機。對此,一些知名公司的軟件漏洞,如微軟的 WindowsXPsp2、思科的IOS及蘋果的MACOS均為其明顯示例。此外,IP用戶身份難以識別導致很難跟蹤及遏止攻擊者;而且,IP的高度智能的終端及其寬帶化,加上其計費模式等更有利惡意用戶方便與低成本地有效實施大規(guī)模攻擊,包括分布式拒絕服務(DDOS)攻擊在內,而且制造這類攻擊的技術難度亦變得愈來愈容易,從而使這類非法入侵及惡意攻擊有增無減、肆意蔓延與防不勝防,著實令人擔憂。當然,IP協(xié)議的開放透明性導致的安全性弊端,同時帶來了其靈活有效的寬帶多業(yè)務增值能力及容易互聯(lián)互通和有效降低成本等明顯的市場應用優(yōu)勢與吸引力。
現(xiàn)實情況亦確實如此,黑客、病毒似乎愈殺愈烈,泛濫成風,實際已成為IP網(wǎng)絡安全運作的頭等隱患。例如,2004年,新病毒增加52%,瑞星報告指出,其中下述十大病毒對用戶造成的破壞最大:網(wǎng)絡天空(占總病毒數(shù)的39.9%)、愛情后門(占21.3%)、SCO炸彈(占7.7%)、小郵差(占1.5%)、垃圾桶(占0.9%)、惡鷹(占0.8%)、求職信(占0.5%)、高波(占0.5%)、震蕩波(占0.4%)及瑞波(占0.4%)。而且,黑客和病毒威脅呈下述四大發(fā)展趨勢:變種病毒數(shù)量翻番劇增、防不勝防,從漏洞被發(fā)現(xiàn)至針對漏洞攻擊病毒出現(xiàn)的時間間隔越來越短,國產(chǎn)型木馬病毒及后門程序成為主流,目標直指網(wǎng)民真實財產(chǎn),“網(wǎng)絡釣魚”形式的詐騙病毒活動明顯增加等。十大病毒中有9種為蠕蟲,從對用戶的危害性而言,依然是蠕蟲病毒最為嚴重。病毒變種之所以快速增長蔓延的一個重要原因即在于很多病毒源代碼借助網(wǎng)絡被病毒作者公開并提供下載,甚至有些代碼還包括完整的說明文檔及相應工具和示例,易于普及傳播。毋需特別技能,僅需修改配置文件和部分源代碼便可編譯生成一個新的變種病毒。這是對公開性、包括源代碼公開在內而產(chǎn)生的負面影響的一種直接諷刺,亦說明如何正確認識與控制一種事物的正反兩個方面是何等重要。
由這些分析討論可充分理解IP網(wǎng)絡安全問題的本質所在,就像SARS一樣,只有控制其病源,才能控制其蔓延,因此,尋找IP網(wǎng)絡的有效安全對策,尤為緊迫、重要。
對此,IP和 Internet研究的權威機構——IETF,對現(xiàn)有Internet及IP協(xié)議的缺陷與不足已有足夠的認識,曾在其年會提出過主題“因特網(wǎng)的十字路口”,列舉了Internet下一步發(fā)展面臨的10大技術問題:身份識別技術、保護IPR技術、保護個人隱私技術、新一代Internet通信協(xié)議IPv6技術、下一代Internet結構的網(wǎng)格(Grid)技術、無線 Internet技術、傳統(tǒng)電話網(wǎng)與Internet融合的技術、更有效地在網(wǎng)上傳輸?shù)囊曨l技術、防止垃圾郵件的過濾技術及網(wǎng)絡安全技術。如果無法在網(wǎng)絡安全、個人隱私及IPR保護方面取得突破,Internet將無法成為一種真正可信的商業(yè)工具。當然,IETF相信,在采取一系列有效措施后,如改進IP協(xié)議,改進TCP/UDP協(xié)議,縮短路由及傳輸時延,提高傳輸效率及質量,實施有效的全球大容量移動擴展、訪問與漫游,提高網(wǎng)絡安全性及改進網(wǎng)絡管理能力等,新的IP網(wǎng)能擔當起 NGN重任。十大技術問題中即有一半以上與安全性有關,可見IP安全問題的嚴重性。
1楊延雙、張建標、王全民編著.TCP/IP協(xié)議分析及應用[M].北京:機械工業(yè)出版社,2007.2
2史蒂文斯(W.Richard Stevens)著.TCP/IP詳解(范建華等譯)[M].北京:機械工業(yè)出版社,2007.8