現在,隨著電子商務等因特網應用越來越多,信息交換變得越來越普及,而保證因特網安全顯得越來越重要。
一、因特網上的威脅
因特網上的威脅包括人為的破壞和自然破壞兩方面的因素,其中人為的破壞更為嚴重,因為自然破壞可以通過數據冗余設置等來降低損失,但人為的破壞卻防不勝防。
人為破壞主要指黑客的攻擊。此外,計算機病毒也會對網絡造成很大的破壞。
1999年,美國計算機安全研究所和聯邦調查局對計算機犯罪和安全的檢測顯示,82%的損失來自公司內部。1997~1999年,共有293 890 505美元的損失是由于諸如專有信息竊取、數據和網絡破壞、濫用內部網絡接入、非授權內部接入、電信欺騙等引起的。人是安全策略的中心,防火墻只是一種工具,安全策略實施的好壞取決于人員的素質,對職工進行定期培訓無疑是一種好的辦法。
二、因特網本身存在的安全問題
因特網的基石是TCP/IP協議,該協議在實現上力求高效,因而為盡量降低代碼量、提高TCP/IP的運行效率而沒有考慮安全因素,所以TCP/IP本身在設計上就是不安全的。現在的TCP/IP協議中的主要安全缺陷如下。
1.很容易被竊聽和欺騙
因特網是一種網間互聯技術,雖然其傳輸是點對點的,但一般網上任何一臺機器都可以收到因特網上主機發布的消息。
因特網上的信息容易被竊聽和劫獲的另一個原因是,當一臺主機與另一主機通信時,它們之間互相發送的數據包要經過重重轉發。這種工作原理雖然節約了資源、簡化了傳輸過程,但增加了泄密的危險。
另外,因特網上大多數的數據流是沒有加密的,所以電子郵件、文件等在傳輸時很容易被監聽和竊取。
2.脆弱的TCP/IP服務
基于TCP/IP協議的服務很多,如WWW,FTP,電子郵件,TFTP,NSF和Finger等。這些服務都存在不同程度的安全缺陷。用戶采用防火墻保護時,就需要考慮該提供哪些服務、該禁止哪些服務。
3.配置的復雜性
訪問控制的配置十分復雜,很容易被錯誤配置而給黑客留下可乘之機,例如許多站點在防火墻配置上無意識地擴大了訪問權限。現在大多數防火墻是基于Unix環境的,但使用Unix需要豐富的計算機知識,因此好的安全效果取決于普通職員的安全意識和網絡管理員的計算機水平。
4.調制解調器的安全
調制解調器提供進入用戶網絡的另一個入口點。一般來說網絡入口點越多,被入侵的可能性就越大。
(1)撥號調制解調器的訪問安全
增強撥號調制解調器安全的方法很多,包括只把撥號號碼告訴需要使用該服務的人;使用用戶名和一次性口令來保護撥號服務器;基于位置的嚴格的身份驗證;使用安全性好的調制調解器以及在網絡上增加一個用于核實身份的服務器等。
(2)Windows NT的遠程訪問服務
Windows NT的遠程訪問服務(RAS)為用戶提供了用調解調器訪問遠程網絡的功能,它使用一些安全性量度,如集成的域安全性、加密驗證和登錄、審核、第三方的安全性主機以及回叫安全性等,以保證遠程用戶是合法用戶。
三、TCP/IP各層的安全性和提升方法
對TCP/IP的層次結構有所了解,就可以在不同的層次提供不同的安全性。
1.網絡層的安全性
因特網工程任務組(IETF)已經特許因特網安全協議(IPSec)工作組對IP安全協議(IPSP)和對應的因特網密鑰管理協議(IKMP)進行標準化工作。IPSP的主要目的是使需要安全措施的用戶能夠使用相應的加密安全體制。該體制不僅能在IPv4下工作,也能在IPv6下工作;該體制應與算法無關,即使加密算法替換了,也不對其他部分的實現產生影響;此外,該體制必須能實施各種安全政策,但要避免被不使用該體制的人利用。按照以上要求,IPSec工作組制定了認證頭(AH:Authentication Header)和封裝安全有效負荷(ESP:Encapsulating Security Payload)規范,其中AH提供IP包的真實性和完整性,ESP提供機要內容。
AH與ESP體制既可以合用也可以分用,但不管如何使用,都無法避免傳輸分析的攻擊。因此,IPSec工作組制定因特網密鑰管理協議(ISMP)等的標準化工作也已經提上日程,包括:IBM公司提出的標準密鑰管理協議(MKMP),Sun公司提出的因特網協議的簡單密鑰管理(SKIP),美國國家安全局(NSA)提出的因特網安全條例及密鑰管理協議等。這些協議草案除MKMP外,都要求一個既存的、完全可操作的公鑰基礎設施(PKI)。
另外,雖然IPSP的規范已經基本制定完畢,但多播環境下的密鑰分配問題目前尚未引起足夠重視。
2.傳輸層的安全性
在因特網應用編程中,通常使用廣義的進程間通信(IPC)機制來與不同層次的安全協議通信。在因特網中提供安全服務的想法便是強化它的IPC界面,如BSD套接(socket)等,具體做法包括雙端實體的認證、數據加密密鑰的交換等。Netscape通信公司按照這個思路,制定了建立在可靠傳輸服務(如TCP/IP所提供的)基礎上的安全套接層協議(SSL)。SSL版本3(SSL v3)主要包含以下兩個協議:SSL記錄協議及SSL握手協議。
Netscape通信公司已經向公眾推出了SSL的實現版本SSLref和SSleay,它們均可給任何TCP/IP應用提供SSL功能。因特網號碼分配局(IANA)已經為具備SSL功能的應用分配了固定端口號。
微軟推出了SSL2的改進版本,即私人通信技術(PCT)。它使用的記錄格式和SSL相似,主要差別在于版本號字段的最顯著位(the most significant bit)上的取值有所不同:SSL該位取0,PCT該位取1。這樣區分之后,就可以對這兩個協議都給予支持。
同網絡層安全機制相比,傳輸層安全機制的主要優點是它提供基于進程對進程的安全服務。此外,傳輸層安全機制的主要缺點是要對傳輸層IPC界面和應用程序兩端都進行修改。但比起網絡層和應用層的安全機制,其修改相當少。
3.應用層的安全性
網絡層(或傳輸層)的安全協議意味著真正的數據通道還是建立在主機(或進程)之間,但卻不可能區分在同一通道上傳輸的一個具體文件的安全性要求。
要區分不同的安全性要求,就必須借助于應用層的安全性。在應用層提供安全服務有幾種做法。一種是對每個應用及應用協議分別進行修改,一些重要的TCP/IP應用已經這樣做了;而在RFC 1424中,IETF規定了私用強化郵件(PEM)來為基于簡單郵件傳輸協議(SMTP)的電子郵件系統提供安全服務。但目前還沒有Web安全性的公認標準。另外,針對因特網上信用卡交易安全,MasterCard公司同IBM,Netscape,GTE和Cybercash等公司一道制定了安全電子付費協議(SEPP),Visa國際公司和微軟公司等一道制定了安全交易技術(STT)協議。同時,MasterCard,Visa國際和微軟發布了安全電子交易(SET)協議,其中規定了持卡人用其信用卡通過因特網進行付費的方法。
這些加強安全性能的應用都需要單獨進行相應的修改。因此,為了能夠進行統一修改,赫爾辛基大學的Tatu Yloenen開發了安全shell(SSH),允許其用戶安全地登錄到遠程主機上執行命令、傳輸文件,實現了密鑰交換協議以及主機與客戶端認證協議。
SSH的延伸是認證和密鑰分配系統,它提供一個應用程序接口(API),可為任何網絡應用程序提供安全服務,例如認證、數據機密性和完整性、訪問控制以及非否認服務等。目前已經有一些實用的認證和密鑰分配系統,其中有些還被擴充。
近來,認證系統設計領域最主要的進展之一就是制定了標準化的安全API,即通用安全服務API(GSS-API)。美國奧斯汀大學的研究者開發的安全網絡編程(SNP)還把界面做到了比GSS-API更高的層次,使與網絡安全性相關的編程更加方便。
四、Web 站點上數據的安全
Web應用程序及Web站點往往易遭受各種各樣的攻擊,Web數據在網絡傳輸過程中也很容易被竊取或盜用。基于Web的應用程序正在與基本的操作系統和后端數據庫更加緊密地集成在一起而防火墻允許所有的Web通信進出網絡,無法防止對Web服務器程序及其組件或Web應用程序的攻擊。再者,Web服務器和基于Web的應用程序有時是在“功能第一,安全其次”的思想指導下開發出來的,比較脆弱,使得Web站點上的數據安全顯得更為迫切。
Web的安全性問題非常復雜,范圍很廣,從防止外部攻擊角度講,Web服務器提供了三種類型的訪問限制(控制)方法,以保護數據安全。
1.通過IP地址、子網或域名控制
只有當瀏覽器的連接請求來自某個IP地址、IP子網或域的時候,才允許被訪問。這樣做可以保護某個文檔甚至整個目錄。
IP地址限制對普通的情況是安全的,但通過一定的設備和工具軟件,網絡黑客可以偽造其IP地址。另外,也不能保證從已授權地址的主機向Web服務器請求連接的用戶就是預期的用戶。出于安全性考慮,IP地址限制必須與用戶身份檢查機制結合起來。
通過主機名/域名來限制訪問機制的方法還存在著域名服務器(DNS)欺騙的危險:假的IP地址使用服務器卻被認為是可以信任的主機名。為此,一些服務器可以為每個客戶完成額外的DNS解析,把到來請求的IP地址轉換成主機名之后,該服務器使用DNS把主機名再次解析成IP地址,從而禁止非法訪問請求。如果服務器運行在防火墻后面,該防火墻有防止和發現IP地址欺騙的功能,那么IP地址限制的方法會更安全。
2.通過用戶名/口令限制
當遠程用戶使用用戶名和對應的口令訪問某些目錄或文檔的方法也存在問題時,只有選擇很難猜到的口令才有效。而且,WWW服務與Unix的登錄方式不同,不能控制連接不成功的最大次數,這就更為網絡黑客猜取口令提供了可能和方便。另外,在Web下訪問被保護的文檔,瀏覽器會向服務器發送多次口令信息,這使得網絡黑客更易截取口令信息。為了避免這種情況,只能使用密鑰加密的方法。
3.用公用密鑰加密
加密是用一個密鑰對消息的文本進行編碼來實現的。文檔的請求和文檔本身都將被加密,使得只有收信人才能讀取文檔的內容,其他用戶即使截獲文檔本身,也因為沒有密鑰而不能讀取文檔內容。
傳統的加密系統在加密和解密時使用同一個密鑰,在新的公共密鑰或非對稱加密系統中,密鑰以成對的形式出現,一個密鑰用于編碼,另一個密鑰用于解碼。例如在該系統下,用戶A向用戶B發送消息,可以使用用戶B的公共密鑰來對消息進行加密。該消息僅能由私有密鑰的擁有者(用戶B)解密,這就防止了消息被竊取的可能。該系統也可以用于創建無法偽造的數字簽名。
五、拒絕服務攻擊及其防范措施
拒絕服務(DoS:Denial of Service)攻擊是伴隨著因特網的發展而發展和升級的。拒絕服務攻擊的目的是阻止服務器發送它所提供的服務,使受害主機或網絡無法及時處理外界請求,或根本無法回應外界請求。
DoS嚴格地說只是一種破壞網絡服務的方式,具體實現方式一般包括畸形包、包溢出、分布式拒絕業務等。當高速包產生而被攻擊的主機帶寬無法承受高速包的攻擊時,則DoS攻擊成功。Smurf等技術的出現使低帶寬主機發起對高帶寬主機的DoS攻擊變得非常容易。
通常DoS攻擊的目標是網絡的TCP/IP內層結構。這些攻擊分為三種:破壞TCP/IP(例如Ping of Death及Teardrop攻擊等)、 利用TCP/IP協議的漏洞(最流行的是SYN攻擊)以及Smurf攻擊和用戶數據報協議沖擊等。
DoS攻擊中危害最大的是分布式拒絕服務(DDoS:Distributed Denial Of Service)攻擊:攻擊者利用已經侵入并控制的多臺主機對某一單機發起攻擊,在懸殊的帶寬對比下,被攻擊的主機會很快失去反應。這種攻擊方式非常有效,而且難以抵擋,任何人都可以將DDoS的“僵尸”植入到那些毫無防范的系統中,然后發送攻擊目標的信息以及攻擊的指令,DDoS瞬間即至。新的DDoS使用“脈動僵尸”方法,它不進行野蠻攻擊,而是發送一波一波的小帶寬數據?這樣就能繞過那些為密集進攻而設置的網絡警報器。
更嚴峻的問題是?微軟的下一代Windows XP操作系統使用原始的TCP/IP套接字,程序員可以編寫任意代碼(包括編寫DDoS攻擊程序,使用套接字80獲取指令)等。因此有人預言,DDoS攻擊將呈爆炸式增長?這將使因特網因為成百上千的DDoS攻擊而減慢速度。
從現有的技術角度來看,還沒有一種針對DoS攻擊的有效解決辦法。目前防止DoS攻擊的最佳手段就是防患于未然。首先要保證外圍主機和服務器的安全,使攻擊者無法控制大量的無關主機,從而無法發動有效攻擊。保護這些主機最好的辦法就是及時了解有關本操作系統的安全漏洞以及相應的安全措施,及時安裝補丁程序并注意升級系統軟件,以免給黑客可乘之機。其次,當攻擊發生后,可以在數據流中搜尋特征字符串,確定發起攻擊的服務器和攻擊者的位置,管理員還可以通過監視端口的使用情況進行入侵監測。再者,當使用的數據包異常,如出現超長或畸形的因特網控制報文協議(ICMP)或UDP包等,或數據包本身正常但其中的數據特異(例如存在某種加密特性)時,也很可能是在攻擊。最后,可通過統計的方法來獲知攻擊的到來,例如在攻擊之前,目標網絡的域名服務器會接到遠遠超出正常數量的反向和正向的地址查詢,這些查詢往往意味著攻擊的到來;或者通過數據流量來判斷,在遭到攻擊時,攻擊數據的來源地址會發出超出正常極限的數據量。
六、防火墻效率與安全之間的矛盾
防火墻在為內部網絡帶來安全的同時,也產生了一定的反作用——降低了網絡運行的效率。
在傳統防火墻的設計中,包過濾與規則表進行匹配,對符合規則的數據包進行處理,不符合規則的就丟棄,每個包都要依據規則順序過濾。由于網絡安全涉及領域很多,技術復雜,安全規則往往要達到數百甚至上千種,使防火墻產品出現性能大幅度降低、網絡資源衰竭等問題,從而造成網絡擁塞。所以,安全與效率的兩難選擇成為傳統防火墻面臨的最大問題。此外,在這種設計中,黑客會采用IP Spoofing的辦法將自己的非法包偽裝成屬于某個合法的連接,進而侵入用戶的內部網絡系統。因此,傳統的包過濾技術既缺乏效率又容易產生安全漏洞。為實現安全、效率上的雙向突破,基于連接的包過濾技術應運而生。
與傳統包過濾的無連接檢測技術不同,基于連接狀態的包過濾在進行包的檢查時,不僅將其看成是獨立的單元,同時還要考慮它的歷史關聯性。防火墻在進行規則檢查的同時,可以將包的連接狀態記錄下來,該連接以后的包則無需再通過規則檢查,只需通過狀態表里對該包所屬的連接的記錄來檢查即可。如果有相應的狀態標識,則說明該包已經建立合法連接,可以接受。檢查通過后該連接狀態的記錄將被刷新,這樣就使具有相同連接狀態的包避免了重復檢查。同時由于規則表的排序是固定的,只能采用線性的方法進行搜索,而連接狀態表里的記錄是可以隨意排列的,于是可采用諸如二叉樹或哈希(hash)等算法進行快速搜索,這就提高了系統的傳輸效率。同時,采用實時的連接狀態監控技術,可以在狀態表中通過諸如應答響應(ACK)、NO等連接狀態因素加以識別,增強系統的安全性。
另外,對于基于UDP協議的應用來說,由于該協議本身對于順序錯誤或丟失的包并不作糾錯或重傳,所以很難用簡單的包過濾技術來處理。防火墻在處理基于UDP協議的連接時,應能為UDP建立虛擬的連接,對連接過程進行狀態監控,通過規則與連接狀態的共同配合達到包過濾的高效與安全。
七、結 語
因特網上的安全問題是多方面的,隨著電子商務等因特網應用日益發展,信息交換變得越來越普及,信息安全也顯得愈加迫切,面臨的考驗也愈加嚴峻。保證因特網安全不僅僅是技術上的問題,從各個層次上提高協議的安全性等只是問題的一個方面,操作管理、人員素質等也是影響安全的非常重要的因素。