TCP/IP的層次不同提供的安全性也不同,例如,在網絡層提供虛擬私用網絡,在傳輸層提供安全套接服務。下面將分別介紹TCP/IP不同層次的安全性和提高各層安全性的方法。
一、Internet層的安全性
對Internet層的安全協議進行標準化的想法早就有了。在過去十年裡,已經提出了一些方案。例如,"安全協議3號(SP3)"就是美國國家安全局以及標準技術協會作為"安全數據網絡系統(SDNS)"的一部分而制定的。"網絡層安全協議(NLSP)"是由國際標準化組織為"無連接網絡協議(CLNP)"制定的安全協議標準。"集成化NLSP(I-NLSP)"是美國國家科技研究所提出的包括IP和CLNP在內的統一安全機制。SwIPe是另一個Intenet層的安全協議,由Ioannidis和Blaze提出並實現原型。所有這些提案的共同點多不同點。事實上,他們用的都是IP封裝技術。其本質是,純文本的包被加密,封裝在外層的IP報頭裡,用來對加密的包進行Internet上的路由選擇。到達另一端時,外層的IP報頭被拆開,報文被解密,然送到收報地點。
Internet工程特遣組(IETF)已經特許Internet協議安全協議(IPSEC)工作組對IP安全協議(IPSP)和對應的Internet密鑰管理協議(IKMP)進行標準化工作。IPSP的主要目的是使需要安全措施的用戶能夠使用相應的加密安全體制。該體制不僅能在目前通行的IP(IPv4)下工作,也能在IP的新版本(IPng或IPv6)下工作。該體制應該是與算法無關的,即使加密算法替換了,也不對其他部分的實現產生影響。此外,該體制必須能實行多種安全政策,但要避免給不使用該體制的人造成不利影響。按照這些要求,IPSEC工作組制訂了一個規范:認証頭(Authentication Header,AH)和封裝安全有效負荷(Encapsulating Security Payload,ESP)。簡言之,AH提供IP包的真實性和完整性,ESP提供機要內容。
IP AH指一段消息認証代碼(Message Authentication Code,MAC),在發送IP包之前,它已經被事先計算好。發送方用一個加密密鑰算出AH,接收方用同一或另一密鑰對之進行驗証。如果收發雙方使用的是單鑰體制,那它們就使用同一密鑰;如果收發雙方使用的是公鑰體制,那它們就使用不同的密鑰。在一種情形,AH體制能額外地提供不可否認的服務。事實上,有些在傳輸中可變的域,如IPv4中的time-to-live域或IPv6中的hop limit域,都是在AH的計算中必須忽略不計的。RFC 1828首次規定了加封狀態下AH的計算和驗証中要採用帶密鑰的MD5算法。而與此同時,MD5和加封狀態都被批評為加密強度太弱,並有替換的方案提出。
IP ESP的基本想法是整個IP包進行封裝,或者只對ESP內上層協議的數據(運輸狀態)進行封裝,並對ESP的絕大部分數據進行加密。在管道狀態下,為當前已加密的ESP附加了一個新的IP頭(純文本),它可以用來對IP包在Internet上作路由選擇。接收方把這個IP頭取掉,再對ESP進行解密,處理並取掉ESP頭,再對原來的IP包或更高層協議的數據就象普通的IP包那樣進行處理。RFC 1827中對ESP的格式作了規定,RFC 1829中規定了在密碼塊鏈接(CBC)狀態下ESP加密和解密要使用數據加密標準(DES)。雖然其他算法和狀態也是可以使用的,但一些國家對此類產品的進出口控制也是不能不考慮的因素。有些國家甚至連私用加密都要限制。
AH與ESP體制可以合用,也可以分用。不管怎用,都逃不脫傳輸分析的攻擊。人們不太清楚在Internet層上,是否真有經濟有效的對抗傳輸分析的手段,但是在Internet用戶裡,真正把傳輸分析當回事兒的也是寥寥無幾。
1995年8月,Internet工程領導小組(IESG)批準了有關IPSP的RFC作為Internet標準系列的推薦標準。除RFC 1828和RFC 1829外,還有兩個實驗性的RFC文件,規定了在AH和ESP體制中,用安全散列算法(SHA)來代替MD5(RFC 1852)和用三元DES代替DES(RFC 1851)。
在最簡單的情況下,IPSP用手工來配置密鑰。然而,當IPSP大規模發展的時候,就需要在Internet上建立標準化的密鑰管理協議。這個密鑰管理協議按照IPSP安全條例的要求,指定管理密鑰的方法。
因此,IPSEC工作組也負責進行Internet密鑰管理協議(IKMP),其他若幹協議的標準化工作也已經提上日程。其中最重要的有:
IBM 提出的"標準密鑰管理協議(MKMP)"
SUN 提出的"Internet協議的簡單密鑰管理(SKIP)"
Phil Karn 提出的"Photuris密鑰管理協議"
Hugo Krawczik 提出的"安全密鑰交換機制(SKEME)"
NSA 提出的"Internet安全條例及密鑰管理協議"
Hilarie Orman 提出的"OAKLEY密鑰決定協議"
在這裡需要再次強調指出,這些協議草案的相似點多不同點。除MKMP外,它們都要求一個既存的、完全可操作的公鑰基礎設施(PKI)。MKMP沒有這個要求,因為它假定雙方已經共同知道一個主密鑰(Master Key),可能是事先手工發布的。SKIP要求Diffie-Hellman証書,其他協議則要求RSA証書。
1996年9月,IPSEC決定採用OAKLEY作為ISAKMP框架下強制推行的密鑰管理手段,採用SKIP作為IPv4和IPv6實現時的優先選擇。目前已經有一些廠商實現了合成的 ISAKMP/OAKLEY方案。Photuris以及類Photuris的協議的基本想法是對每一個會話密鑰都採用Diffie-Hellman密鑰交換機制,並隨採用簽名交換來確認Diffie--Hellman參數,確保沒有"中間人"進行攻擊。這種組合最初是由Diffie、Ooschot和Wiener在一個"站對站(STS)"的協議中提出的。Photuris裡面又添加了一種所謂的"cookie"交換,它可以提供"清障(anti-logging)"功能,即防范對服務攻擊的否認。
Photuris以及類Photuris的協議由對每一個會話密鑰都採用Diffie-Hellman密鑰交換機制,故可提供回傳保護(back-traffic protection,BTP)和完整轉發安全性(perfect-forward secrecy,PFS)。實質上,這意味著一旦某個攻擊者破解了長效私鑰,比如Photuris中的RSA密鑰或SKIP中的Diffie-Hellman密鑰,所有其他攻擊者就可以冒充被破解的密碼的擁有者。但是,攻擊者卻不一定有本事破解該擁有者過去或未來收發的信息。
值得注意的是,SKIP並不提供BTP和PFS。盡管它採用Diffie-Hellman密鑰交換機制,但交換的進行是隱含的,也就是說,兩個實體以証書形式彼此知道對方長效Diffie--Hellman 公鑰,從而隱含地共享一個主密鑰。該主密鑰可以導出對分組密鑰進行加密的密鑰,而分組密鑰才真正用來對IP包加密。一旦長效Diffie-Hellman密鑰泄露,,則任何在該密鑰保護下的密鑰所保護的相應通信都將被破解。而且SKIP是無狀態的,它不以安全條例為基礎。每個IP包可能是個別地進行加密和解密的,歸根到底用的是不同的密鑰。
SKIP不提供BTP和PFS這件事曾經引起IPSEC工作組內部的批評,該協議也曾進行過擴充,試圖提供BTP和PFS。但是,擴充的SKIP協議版本其實是在BTP和PFS功能的提供該協議的無狀態性之間的某種折衷。實際上,增加了BTP和PFS功能的SKIP非常類似Photuris以及類Photuris的協議,唯一的主要區別是SKIP(仍然)需要原來的Diffie-Hellman証書。這一點必須注意:目前在Internet上,RSA証書比其他証書更容易實現和開展業務。
大多數IPSP及其相應的密鑰管理協議的實現均基Unix系統。任何IPSP的實現都必須跟對應協議棧的源碼糾纏在一起,而這源碼又能在Unix系統上使用,其原因大概就在此。但是,如果要想在Internet上更廣泛地使用和採納安全協議,就必須有相應的DOS或Windows版本。而在這些系統上實現Internet層安全協議所直接面臨的一個問題就是,PC上相應的實現TCP/IP的公共源碼資源什也沒有。為克服這一困難,Wagner和Bellovin實現了一個IPSEC模塊,它象一個設備驅動程序一樣工作,完全處IP層以下。
Internet層安全性的主要優點是它的透明性,也就是說,安全服務的提供不需要應用程序、其他通信層次和網絡部件做任何改動。它的最主要的缺點是: Internet層一般對屬不同進程和相應條例的包不作區別。對所有去往同一地址的包,它將按照同樣的加密密鑰和訪問控制策略來處理。這可能導致提供不了所需的功能,也會導致性能下降。針對面向主機的密鑰分配的這些問題,RFC 1825允許(甚至可以說是推薦) 使用面向用戶的密鑰分配,其中,不同的連接會得到不同的加密密鑰。但是,面向用戶的密鑰分配需要對相應的操作系統內核作比較大的改動。
雖然IPSP的規范已經基本制訂完畢,但密鑰管理的情況千變萬化,要做的工作還很多。尚未引起足夠重視的一個重要的問題是在多播 (multicast)環境下的密鑰分配問題,例如,在Internet多播骨幹網(MBone)或IPv6網中的密鑰分配問題。
簡而言之,Internet層是非常適合提供基主機對主機的安全服務的。相應的安全協議可以用來在Internet上建立安全的IP通道和虛擬私有網。例如,利用它對IP包的加密和解密功能,可以簡捷地強化防火牆系統的防衛能力。事實上,許多廠商已經這樣做了。RSA數據安全公司已經發起了一個倡議,來推進多家防火牆和TCP/IP軟件廠商聯合開發虛擬私有網。該倡議被稱為S-WAN(安全廣域網)倡議。其目標是制訂和推薦Internet層的安全協議標準。
二、傳輸層的安全性
在Internet應用編程序中,通常使用廣義的進程間通信(IPC)機制來與不同層次的安全協議打交道。比較流行的兩個IPC編程界面是BSD Sockets和傳輸層界面(TLI),在Unix系統V命令裡可以找到。
在Internet中提供安全服務的首先一個想法便是強化它的IPC界面,如BSD Sockets等,具體做法包括雙端實體的認証,數據加密密鑰的交換等。Netscape通信公司遵循了這個思路,制定了建立在可靠的傳輸服務(如TCP/IP所提供)基礎上的安全套接層協議(SSL)。SSL版本3(SSL v3)1995年12月制定。它主要包含以下兩個協議:
SSL記錄協議 它涉及應用程序提供的信息的分段、壓縮、數據認証和加密。SSL v3提供對數據認証用的MD5和SHA以及數據加密用的R4和DES等的支持,用來對數據進行認証和加密的密鑰可以通過SSL的握手協議來協商。
SSL握手協議 用來交換版本號、加密算法、(相互)身份認証並交換密鑰。SSL v3 提供對Deffie-Hellman密鑰交換算法、基RSA的密鑰交換機制和另一種實現在 Fortezza chip上的密鑰交換機制的支持。
Netscape通信公司已經向公眾推出了SSL的參考實現(稱為SSLref)。另一免費的SSL實現叫做SSLeay。SSLref和SSLeay均可給任何TCP/IP應用提供SSL功能。Internet號碼分配當局(IANA)已經為具備SSL功能的應用分配了固定端口號,例如,帶SSL的 HTTP(https)被分配的端口號為443,帶SSL的SMTP(ssmtp)被分配的端口號為465,帶SSL的NNTP(snntp)被分配的端口號為563。
微軟推出了SSL2的改進版本稱為PCT(私人通信技術)。至少從它使用的記錄格式來看,SSL和PCT是十分相似的。它們的主要差別是它們在版本號字段的最顯位(The Most Significant Bit)上的取值有所不同: SSL該位取0,PCT該位取1。這樣區分之,就可以對這兩個協議都給以支持。
1996年4月,IETF授權一個傳輸層安全(TLS)工作組著手制定一個傳輸層安全協議(TLSP),以便作為標準提案向IESG正式提交。TLSP將會在許多地方酷似SSL。
前面已介紹Internet層安全機制的主要優點是它的透明性,即安全服務的提供不要求應用層做任何改變。這對傳輸層來說是做不到的。原則上,任何TCP/IP應用,只要應用傳輸層安全協議,比如說SSL或PCT,就必定要進行若幹修改以增加相應的功能,並使用(稍微)不同的IPC界面。是,傳輸層安全機制的主要缺點就是要對傳輸層IPC界面和應用程序兩端都進行修改。可是,比起Internet層和應用層的安全機制來,這裡的修改還是相當小的。另一個缺點是,基UDP的通信很難在傳輸層建立起安全機制來。同網絡層安全機制相比,傳輸層安全機制的主要優點是它提供基進程對進程的(而不是主機對主機的)安全服務。這一成就如果再加上應用級的安全服務,就可以再向前跨越一大步了。
三、應用層的安全性
必須牢記(且須仔細品味): 網絡層(傳輸層)的安全協議允許為主機(進程)之間的數據通道增加安全屬性。本質上,這意味著真正的(或許再加上機密的)數據通道還是建立在主機(或進程)之間,但卻不可能區分在同一通道上傳輸的一個具體文件的安全性要求。比如說,如果一個主機與另一個主機之間建立起一條安全的IP通道,那所有在這條通道上傳輸的IP包就都要自動地被加密。同樣,如果一個進程和另一個進程之間通過傳輸層安全協議建立起了一條安全的數據通道,那兩個進程間傳輸的所有消息就都要自動地被加密。
如果確實想要區分一個具體文件的不同的安全性要求,那就必須借助應用層的安全性。提供應用層的安全服務實際上是最靈活的處理單個文件安全性的手段。例如一個電子郵件系統可能需要對要發出的信件的個別段落實施數據簽名。較低層的協議提供的安全功能一般不會知道任何要發出的信件的段落結構,從而不可能知道該對哪一部分進行簽名。只有應用層是唯一能夠提供這種安全服務的層次。
一般來說,在應用層提供安全服務有幾種可能的做法,第一個想到的做法大概就是對每個應用(及應用協議)分別進行修改。一些重要的TCP/IP應用已經這樣做了。在RFC 1421至1424中,IETF規定了私用強化郵件(PEM)來為基SMTP的電子郵件系統提供安全服務。由種種理由,Internet業界採納PEM的步子還是太慢,一個主要的原因是PEM依賴一個既存的、完全可操作的PKI(公鑰基礎結構)。PEM PKI是按層次組織的,由下述三個層次構成:
頂層為Internet安全政策登記機構(IPRA)
次層為安全政策証書頒發機構(PCA)
底層為証書頒發機構(CA)
建立一個符合PEM規范的PKI也是一個政治性的過程,因為它需要多方在一個共同點上達成信任。不幸的是,歷史表明,政治性的過程總是需要時間的,作為一個中間步驟,Phil Zimmermann開發了一個軟件包,叫做PGP(pretty Good Privacy)。PGP符合PEM的絕大多數規范,但不必要求PKI的存在。相反,它採用了分布式的信任模型,即由每個用戶自己決定該信任哪些其他用戶。因此,PGP不是去推廣一個全局的PKI,而是讓用戶自己建立自己的信任之網。這就立刻產生一個問題,就是分布式的信任模型下,密鑰廢除了怎辦。
S-HTTP是Web上使用的超文本傳輸協議(HTTP)的安全增強版本,由企業集成技術公司設計。S-HTTP提供了文件級的安全機制,因此每個文件都可以被設成私人/簽字狀態。用作加密及簽名的算法可以由參與通信的收發雙方協商。S-HTTP提供了對多種單向散列(Hash)函數的支持,如: MD2,MD5及SHA; 對多種單鑰體制的支持,如:DES,三元DES,RC2,RC4,以及CDMF; 對數字簽名體制的支持,如: RSA和DSS。
目前還沒有Web安全性的公認標準。這樣的標準只能由WWW Consortium,IETF或其他有關的標準化組織來制定。而正式的標準化過程是漫長的,可能要拖上好幾年,直到所有的標準化組織都充分認識到Web安全的重要性。S-HTTP和SSL是從不同角度提供Web的安全性的。S-HTTP對單個文件作"私人/簽字"之區分,而SSL則把參與通信的相應進程之間的數據通道按"私用"和"已認証"進行監管。Terisa公司的SecureWeb工具軟件包可以用來為任何Web應用提供安全功能。該工具軟件包提供有 RSA數據安全公司的加密算法庫,並提供對SSL和S-HTTP的全面支持。
另一個重要的應用是電子商務,尤其是信用卡交易。為使Internet上的信用卡交易安全起見,MasterCard公司(同IBM,Netscape,GTE和Cybercash一道) 制定了安全電子付費協議(SEPP),Visa國際公司和微軟(和其他一些公司一道)制定了安全交易技術(STT)協議。同時,MasterCard,Visa國際和微軟已經同意聯手推出Internet上的安全信用卡交易服務。他們發布了相應的安全電子交易(SET)協議,其中規定了信用卡持卡人用其信用卡通過Internet進行付費的方法。這套機制的台有一個証書頒發的基礎結構,提供對X.509証書的支持。
上面提到的所有這些加安全功能的應用都會面臨一個主要的問題,就是每個這樣的應用都要單獨進行相應的修改。因此,如果能有一個統一的修改手段,那就好多了。通往這個方向的一個步驟就是赫爾辛基大學的Tatu Yloenen開發的安全shell(SSH)。SSH允許其用戶安全地登錄到遠程主機上,執行命令,傳輸文件。它實現了一個密鑰交換協議,以及主機及客戶端認証協議。SSH有當今流行的多種Unix系統平台上的免費版本,也有由Data Fellows公司包裝上市的商品化版本。
把SSH的思路再往前推進一步,就到了認証和密鑰分配系統。本質上,認証和密鑰分配系統提供的是一個應用編程界面(API),它可以用來為任何網絡應用程序提供安全服務,例如: 認証、數據機密性和完整性、訪問控制以及非否認服務。目前已經有一些實用的認証和密鑰分配系統,如: MIT的Kerberos(V4與V5),IBM的CryptoKnight和Netwrok Security Program,DEC的SPX,Karlsruhe大學的指數安全系統(TESS)等,都是得到廣泛採用的實例。甚至可以見到對有些認証和密鑰分配系統的修改和擴充。例如,SESAME和OSF DCE對Kerberos V5作了增加訪問控制服務的擴充,Yaksha對Kerberos V5作了增加非否認服務的擴充。
關認証和密鑰分配系統的一個經常遇到的問題是關它們在Internet上所受到的冷遇。一個原因是它仍要求對應用本身做出改動。考慮到這一點,對一個認証和密鑰分配系統來說,提供一個標準化的安全API就顯得格外重要。能做到這一點,開發人員就不必再為增加很少的安全功能而對整個應用程序大動手術了。因此,認証系統設計領域內最主要的進展之一就是制定了標準化的安全API,即通用安全服務API(GSS-API)。GSS-API(v1及v2)對一個非安全專家的編程人員來說可能仍顯得過技術化了些,但德州Austin大學的研究者們開發的安全網絡編程(SNP),把界面做到了比GSS-API更高的層次,使同網絡安全性有關的編程更加方便了。
局域網在網絡層有什不安全的地方?
NAI公司 供稿
不安全的地方
由局域網中採用廣播方式,因此,若在某個廣播域中可以偵聽到所有的信息包,黑客就對可以對信息包進行分析,那本廣播域的信息傳遞都會暴露在黑客面前。
網絡分段
網絡分段是保証安全的一項重要措施,同時也是一項基本措施,其指導思想在將非法用戶與網絡資源相互隔離,從而達到限制用戶非法訪問的目的。
網絡分段可分為物理分段和邏輯分段兩種方式:
物理分段通常是指將網絡從物理層和數據鏈路層(ISO/OSI模型中的第一層和第二層)上分為若幹網段,各網段相互之間無法進行直接通訊。目前,許多交換機都有一定的訪問控制能力,可實現對網絡的物理分段。邏輯分段則是指將整個系統在網絡層(ISO/OSI模型中的第三層)上進行分段。例如,對TCP/IP網絡,可把網絡分成若幹IP子網,各子網間必須通過路由器、路由交換機、網關或防火牆等設備進行連接,利用這些中間設備(含軟件、硬件)的安全機制來控制各子網間的訪問。在實際應用過程中,通常採取物理分段與邏輯分段相結合的方法來實現對網絡系統的安全性控制。
VLAN的實現
虛擬網技術主要基近年發展的局域網交換技術(ATM和以太網交換)。交換技術將傳統的基廣播的局域網技術發展為面向連接的技術。因此,網管系統有能力限制局域網通訊的范圍而無需通過開銷很大的路由器。
以太網從本質上基廣播機制,但應用了交換器和VLAN技術,實際上轉變為點到點通訊,除非設置了監聽口,信息交換也不會存在監聽和插入(改變)問題。
由以上運行機制帶來的網絡安全的好處是顯而易見的:
信息只到達應該到達的地點。因此、防止了大部分基網絡監聽的入侵手段。
通過虛擬網設置的訪問控制,使在虛擬網外的網絡節點不能直接訪問虛擬網內節點。
但是,虛擬網技術也帶來了新的安全問題:
執行虛擬網交換的設備越來越復雜,從而成為被攻擊的對象。基網絡廣播原理的入侵監控技術在高速交換網絡內需要特殊的設置。基MAC的VLAN不能防止MAC欺騙攻擊。
採用基MAC的VLAN劃分將面臨假冒MAC地址的攻擊。因此,VLAN的劃分最好基交換機端口。但這要求整個網絡桌面使用交換端口或每個交換端口所在的網段機器均屬相同的VLAN。
VLAN之間的劃分原則
VLAN的劃分方式的目的是保証系統的安全性。因此,可以按照系統的安全性來劃分VLAN;可以將總部中的服務器系統單獨劃作一個VLAN,如數據庫服務器、電子郵件服務器等。也可以按照機構的設置來劃分VLAN,如將領導所在的網絡單獨作為一個Leader VLAN(LVLAN), 其他司局(或下級機構)分別作為一個VLAN,並且控制LVLAN與其他VLAN之間的單向信息流向,即允許LVLAN查看其他VLAN的相關信息,其他VLAN不能訪問LVLAN的信息。VLAN之內的連接採用交換實現, VLAN與VLAN之間採用路由實現。由路由控制的能力有限,不能實現LVLAN與其他VLAN之間的單向信息流動,需要在LVLAN與其他VLAN之間設置一個Gauntlet防火牆作為安全隔離設備,控制VLAN與VLAN之間的信息交流。
(http://www.fanqiang.com)
進入【UNIX論壇】
|