史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 網路軟硬體架設技術文件
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-04-11, 11:04 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 TCP、IP傳輸協定基礎

藏很久的資料,IGP的基礎,共享出來。

1、TCP/IP傳輸協定棧

四層模型
TCP/IP這個傳輸協定遵守一個四層的模型概念:套用層、傳輸層、互聯層和網路接頭層。

網路接頭層
模型的基層是網路接頭層。負責資料畫格的傳送和接收,畫格是獨立的網路訊息傳輸單元。網路接頭層將畫格放在網上,或從網上把畫格取下來。

互聯層
互聯傳輸協定將資料包封裝成internet資料報,並執行必要的路由算法。
這裡有四個互聯傳輸協定:
網際傳輸協定IP:負責在主機和網路之間尋址和路由資料包。
位址解析傳輸協定ARP:獲得同一物理網路中的硬體主機位址。
網際控制消息傳輸協定ICMP:傳送消息,並報告有關資料包的傳送錯誤。
互聯組管理傳輸協定IGMP:被IP主機拿來向本機多路廣播路由器報告主機組成員。

傳輸層
傳輸傳輸協定在電腦之間提供通信會話。傳輸傳輸協定的選項根據資料傳輸方式而定。
兩個傳輸傳輸協定:
傳輸控制傳輸協定TCP:為應用程式提供可靠的通信連接。適合於一次傳輸大批資料的情況。並適用於要求得到回應的應用程式。
用戶資料報傳輸協定UDP:提供了無連接通信,且不對傳送包進行可靠的保證。適合於一次傳輸小量資料,可靠性則由套用層來負責。

套用層
應用程式通過這一層訪問網路。

網路接頭技術
IP使用網路設備接頭規範NDIS向網路接頭層提交畫格。IP支持廣域網和本機網接頭技術。

串行線路傳輸協定
TCP/IPG一般通過internet串行線路傳輸協定SLIP或點對點傳輸協定PPP在串行線上進行資料傳送。(是不是我們平時把它稱之為異步通信,對於要拿LINUX提供建立遠端連接的朋友應該多研究一下這方面的知識)?


2、ARP

要在網路上通信,主機就必須知道對方主機的硬體位址(我們不是老遇到網路卡的物理位址嘛)。位址解析就是將主機IP位址映射為硬體位址的程序。位址解析傳輸協定ARP用於獲得在同一物理網路中的主機的硬體位址。

解釋本機IP位址(要瞭解位址解析工作程序的朋友看好了)
主機IP位址解析為硬體位址:
(1)當一台主機要與別的主機通信時,啟始化ARP請求。當該IP斷定IP位址是本機時,源主機在ARP快取中搜尋目標主機的硬體位址。
(2)要是找不到映射的話,ARP建立一個請求,源主機IP位址和硬體位址會被包括在請求中,該請求通過廣播,使所有本機主機均能接收並處理。
(3)本機網上的每個主機都收到廣播並尋找相符的IP位址。
(4)當目標主機斷定請求中的IP位址與自己的相符時,直接傳送一個ARP答覆,將自己的硬體位址傳給源主機。以源主機的IP位址和硬體位址更新它的ARP快取。源主機收到回答後便建立起了通信。

解析遠端IP位址
不同網路中的主機互相通信,ARP廣播的是源主機的預設網路閘道。
目標IP位址是一個遠端網路主機的話,ARP將廣播一個路由器的位址。
(1)通信請求啟始化時,得知目標IP位址為遠端位址。源主機在本機路由表中搜尋,若無,源主機認為是預設網路閘道的IP位址。在ARP快取中搜尋符合該網路閘道記錄的IP位址(硬體位址)。
(2)若沒找到該網路閘道的記錄,ARP將廣播請求網路閘道位址而不是目標主機的位址。路由器用自己的硬體位址回應源主機的ARP請求。源主機則將資料包送到路由器以傳送到目標主機的網路,最終達到目標主機。
(3)在路由器上,由IP決定目標IP位址是本機還是遠端。如果是本機,路由器用ARP(快取或廣播)獲得硬體位址。如果是遠端,路由器在其路由表中搜尋該網路閘道,然後運用ARP獲得此網路閘道的硬體位址。資料包被直接傳送到下一個目標主機。
(4)目標主機收到請求後,形成ICMP回應。因源主機在遠端網上,將在本機路由表中搜尋源主機網的網路閘道。找到網路閘道後,ARP即獲取它的硬體位址。
(5)如果此網路閘道的硬體位址不在ARP快取中,通過ARP廣播獲得。一旦它獲得硬體位址,ICMP回應就送到路由器上,然後傳到源主機。

ARP快取
為減少廣播量,ARP在快取中儲存位址映射以備用。ARP快取儲存有動態項和靜態項。動態項是自動增加和移除的,靜態項則保留在CACHE中直到計算
機重新啟動。

ARP快取總是為本機子網保留硬體廣播位址(0xffffffffffffh)作為一個永久項。
此項使主機能夠接受ARP廣播。當檢視快取時,該項不會顯示。
每條ARP快取記錄的生命週期為10分鍾,2分鍾內未用則移除。快取容量滿時,移除最老的記錄。

加入靜態(永久)記錄
通過增加靜態ARP項可減少ARP請求訪問主機的次數。

ARP包的結構
ARP結構的字段如下:
硬體檔案類型--使用的硬體(網路訪問層)檔案類型。
傳輸協定檔案類型--解析程序中的傳輸協定使用以太檔案類型的值。
硬體位址長度--硬體位址的字元長度,對於乙太網和令牌環來說,其長度為6字元。
傳輸協定位址長度--傳輸協定位址字元的長度,IP的長度是4字元。
操作號--指定當前執行操作的字段。
傳送者的硬體位址--傳送者的硬體位址。
傳送者的傳輸協定位址--傳送者的傳輸協定位址。
目的站硬體位址--目標者的硬體位址。
目的站傳輸協定位址--目標者的傳輸協定位址。


3、ICMP和IGMP

internet控制消息傳輸協定ICMP是用於報告錯誤並代表IP對消息進行控制。
IP運用互聯組管理傳輸協定IGMP來告訴路由器,某一網路上指導組中的可用主機。

ICMP
ICMP源抑制消息:當TCP/IP主機傳送資料到另一主機時,如果速度達到路由器或者鏈路的飽和狀態,路由器發出一個ICMP源抑制消息。

ICMP資料包結構
檔案類型:一個8位檔案類型字段,表示ICMP資料包檔案類型。
程式碼:一個8位程式碼域,表示指定檔案類型中的一個功能。如果一個檔案類型中只有一種功能,程式碼域置為0。
檢驗和:資料包中ICMP部分上的一個16位檢驗和。
指定檔案類型的資料隨每個ICMP檔案類型變化的一個附加資料。

IGMP
IGMP訊息傳給別的路由器以使每個支持多路廣播的路由器獲知哪個主機組和哪個網路中。

IGMP包結構
版本:IGMP的版本,值一般為0x1h。
檔案類型:IGMP消息的檔案類型。0x1h檔案類型稱為主機成員請求,在多路廣播路由器上用於指定多級組中的任何成員輪詢一個網路。0x2h檔案類型稱為主機成員報告,在主機上用於發怖指定組中的成員情況或對一個路由器的主機成員請求進行回答。
未用:未用的域名被傳送者置零且被接收者忽略。
檢驗和:IGMP頭的一個16位檢驗和。
組位址:主機用該群組位址在一個主機成員請求中儲存於IP多路廣播位址。在主機成員請求中,組位址被全置零,而且硬體級的多路廣播位址被用來標示主機組。

4、IP

IP是一個無連接的傳輸協定,主要就是負責在主機間尋址並為資料包設定路由,在交換資料前它並不建立會話。因為它不保證正確傳送,另一方面,資料在被收到時,IP不需要收到驗證,所以它是不可靠的。
有一些字段,在當資料從傳輸層傳下來時,會被附加在資料包中,我們來看一下這些字段:
源IP位址:用IP位址確定資料報傳送者。
目標IP位址:用IP位址確定資料報目標。
傳輸協定:告知目的機的IP是否將包傳給TCP或UDP。
檢查和:一個簡單的數學計算,用來證實收到的包的完整性。
TTL生存有效時間:指定一個資料報被丟棄之前,在網路上能停留多少時間(以秒計)。它避免了包在網路中無休止循環。路由器會根據資料在路由器中駐停留的時間來遞減TTL。其中資料報通過一次路由器,TTL至少減少一秒。
根據我們前面提到關於ARP的知識,如果IP位址目標為近端網址時,IP將資料包直接傳給那個主機;如果目標位址為遠端位址的話,IP在本機的路由表中搜尋遠端主機的路由(看來好像我們平時撥114一樣)。如果找到一個路由,IP用它傳送資料包。如果沒找 到呢,就會將資料包傳送到源主機的預設網路閘道,也稱之為路由器。(很多時候一直在搞網路閘道和路由器的定義,其實我覺得在學的時候不一定死摳概念,現在硬體和軟體結合的產品越來越多了,一時很分清的,只要我們運用的時候可以解決實際問題嘛。)
這樣當路由器收到一個包後,該包向上傳給IP:
(1)如果交通阻塞(聽起來蠻可怕的),包在路由器中停滯,TTL至少減1或更多。要是它降到0的話,包就會被拋棄。
(2)如果對於下一網路來說包太大的話,IP會將它分割成若干個小包。
(3)如果包被分解,IP為每個新包製造一個新頭,其中包括:一個標誌,用來顯示其它小包在其後;一個小包ID,用來確定所有小包是一起的;一個小包偏移,用來告訴接收主機怎麼重新組合它們。
(4)IP計算一個新的檢驗和。
(5)IP獲取一個路由的目標硬體位址。
(6)IP轉發包。
在下一主機,包被傳送到TCP或UDP。每個路由器都要重複該程序。直到包到達最終目的地。當包到達最終目的地後,IP將小包組裝成原來的包。


5、TCP

TCP是一種可靠的面向連接的傳送服務。它在傳送資料時是分段進行的,主機交換資料必須建立一個會話。它用位元 流通信,即資料被作為無結構的字元流。
通過每個TCP傳輸的字段指定順序號,以獲得可靠性。如果一個分段被分解成幾個小段,接收主機會知道是否所有小段都已收到。通過傳送回應,用以驗證別的主機收到了資料。對於傳送的每一個小段,接收主機必須在一個指定的時間返回一個驗證。如果傳送者未收到確 認,資料會被重新傳送;如果收到的資料包損壞,接收主機會捨棄它,因為驗證未被傳送,傳送者會重新傳送分段。

連接阜
SOCKETS實用程序使用一個傳輸協定連接阜號來標明自己套用的唯一性。連接阜可以使用0到65536之間的任何數位。在服務請求時,作業系統動態地為客戶端的應用程式分配連接阜號。

套接字
套接字在要領上與文件關鍵句類似,因為其功能是作為網路通信的終結點。一個應用程式通過定義三部分來產生一個套接字:主機IP位址、服務檔案類型(面向連接的服務是TCP,無連接服務是UDP)、應用程式所用的連接阜。

TCP連接阜
TCP連接阜為訊息的傳送提供定地點,連接阜號小於256的定義為常用連接阜。

TCP的三次握手
TCP對話通過三次握手來啟始化。三次握手的目的是使資料段的傳送和接收同步;告訴其它主機其一次可接收的資料量,並建立虛連接。
我們來看看這三次握手的簡單程序:
(1)啟始化主機通過一個同步標誌置位的資料段發出會話請求。
(2)接收主機通過發回具有以下項目的資料段表示回覆:同步標誌置位、即將傳送的資料段的起始字元的順序號、回應並帶有將收到的下一個資料段的字元順序號。
(3)請求主機再回送一個資料段,並帶有驗證順序號和驗證號。

TCP滑動視窗
TCP滑動視窗用來暫存兩台主機間要傳送的資料,有點類似CACHE。
每個TCP/IP主機有兩個滑動視窗:一個用於接收資料,另一個用於傳送資料。

6、UDP

用戶資料報傳輸協定UDP提供了無連接的資料報服務。它適用於無須回應並且通常一次只傳送少量資料的應用軟體。

UDP連接阜
連接阜作為多路復用的消息貯列使用。
15 NETSTAT 網路狀態
53 DOMAIN 網域名服務器
69 TFTP 平凡文件傳送傳輸協定
137 NETBIOS-NS NETBIOS指令服務
138 NETBIOS-DGM NETBIOS資料報服務
161 SNMP SNMP網路監視器


IP位址分配

1、IP位址

IP位址標幟著網路中一個系統的位置。我們知道每個IP位址都是由兩部分組成的:網路號和主機號。其中網路號標幟一個物理的網路,同一個網路上所有主機需要同一個網路號,該號在網際網路中是唯一的;而主機號確定網路中的一個工作端、伺服器、路由器其它TCP /IP主機。對於同一個網路號來說,主機號是唯一的。每個TCP/IP主機由一個邏輯IP位址確定。

網路號和主機號
IP位址有兩種表示形式:二進製表示(1和0太多了就搞不清)和點分十進製表示。每個IP位址的長度為4字元,由四個8位域組成,我們通常稱之為八位體。八位體由句點.分開,表示為一個0-255之間的十進制數。一個IP位址的4個域分別標明了網路號和主機號。

2、位址檔案類型

為適應不同大小的網路,internet定義了5種IP位址檔案類型。
可以通過IP位址的前八位來確定位址的檔案類型:
檔案類型 IP形式 網路號 主機號
A類 w.x.y.z w x.y.z
B類 w.x.y.z w.x y.z
C類 w.x.y.z w.x.y z
我們來看一下這5類位址:
A類位址:可以擁有很大數量的主機,最高位為0,緊跟的7位表示網路號,余24位表示主機號,總共允許有126個網路。
B類位址:被分配到中等規模和大規模的網路中,最高兩位總被置於二進制的10,允許有16384個網路。
C類位址:被用於區域網路。高三位被置為二進制的110,允許大約200萬個網路。
D類位址:被用於多路廣播組用戶,高四位總被置為1110,餘下的位用於標明客戶端機所屬的組。
E類位址是一種僅供試驗的位址。

3、位址分配指南

在分配網路號和主機號時應遵守以下幾條準則:
(1)網路號不能為127。大家知道該標幟號被保留作回路及診斷功能,還記得平時ping
127.0.0.1?
(2)不能將網路號和主機號的各位均置1。如果每一位都是1的話,該位址會被解釋為網內
廣播而不是一個主機號。(TCP/IP是一個可廣播的傳輸協定嘛)
(3)相應於上面一條,各位均不能置0,否則該位址被解釋為「就是本網路」。
(4)對於本網路來說,主機號應該是唯一。(否則會出現IP位址已分配或有衝突之類的錯誤)

分配網路號
對於每個網路以及廣域連接,必須有唯一的網路號,主機號用於區分同一物理網路中的不同主機。如果網路由路由器連接,則每個廣域連接都需要唯一的網路號。

分配主機號
主機號用於區分同一網路中不同的主機,並且主機號應該是唯一的。所有的主機包括路由器間的接頭,都應該有唯一的網路號。路由器的主機號,要組態成工作站的預設網路閘道位址。

有效的主機號
A類:w.0.0.1--w.255.255.254
B類:w.x.0.1--w.x.255.254
C類:w.x.y.1--w.x.y.254


4、子網遮閉和IP位址

TCP/IP上的每台主機都需要用一個子網遮閉號。它是一個4字元的位址,用來封裝或「遮閉」IP位址的一部分,以區分網路號和主機號。當網路還沒有劃分為子網時,可以使用預設的子網遮閉;當網路被劃分為若干個子網時,就要使用自訂的子網遮閉了。

預設值
我們來看看預設的子網遮閉值,它用於一個還沒有劃分子網的網路。即使是在一個單段網路上,每台主機也都需要這樣的預設值。
它的形式依賴於網路的位址檔案類型。在它的4個字元裡,所有對應網路號的位都被置為1,於是每個八位體的十進制值都是255;所有對就主機號的位都置為0。例如:C類網位址192.168.0.1和相應的預設遮閉值255.255.255.0。

確定資料包的目的位址
我們說把遮閉值和IP位址值做「與」的操作其實是一個內部程序,它用來確定一個資料包是傳給本機還是遠端網路上的主機。其相應的操作程序是這樣的:當TCP/IP啟始化時,主機的IP位址和子網遮閉值相「與」。在資料包被傳送之前,再把目的位址也和遮閉值作「與」,這樣如果發現源IP位址和目的IP位址相匹配,IP傳輸協定就知道資料包屬於本機網上的某台主機;否則資料包將被送到路由器上。
註:我們知道「與」操作是將IP位址中的每一位與子網遮閉中相應的位按邏輯與作比較。

建立子網

1、 子網簡介


一個網路實際上可能會有多個物理網段,我們把這些網段稱之為子網,其使用的IP位址是由某個網路號派生而得到的。
將一個網路劃分成若干個子網,需要使用不同的網路號或子網號。當然了,劃分子網有它的優點,通過劃分子網,每個服務機構可以將複雜的物理網段連接成一個網路,並且可以:
(1) 混合使用多種技術,比如乙太網和令牌環網。(最流行的兩種接頭都支持了哦)

(2) 克服當前技術的限制,比如突破每段主機的最大數量限制。
(3) 通過重轉發IP傳輸以及減少廣播等傳輸方式以減輕網路的擁擠。

實現子網劃分
在動手劃分子網之前,我們一定要先分析一下自己的需求以及將來的規劃。一般情況下我們遵循這樣的準則:
(1) 確定網路中的物理段數量。(就是子網個數嘛)
(2) 確定每個子網需要的主機數。注意一個主機至少一個IP位址。
(3) 關於此需求,定義:整個網路的子網遮閉、每個子網唯一的子網號和每個子網的主機號範圍。

子網遮閉位
在定義一個子網遮閉之前,確定一下將來需要的子網數量及每子網的主機數是必不可少的一步。因為當更多的位用於子網遮閉時,就有更多的可用子網了,但每個子網中的主機數將減少。(這和定義IP位址的概念正好相反)



2、定義子網遮閉
將網路劃分成若干個子網時,必須要定義好子網遮閉。我們來看看定義的步驟:
(1)確定物理網段也就是子網的個數,並將這個數位轉換成二進制數。比如B類位址,分6個子網就是110。
(2)計算物理網段數(子網數)的二進制位數,這裡是110,所以需要3位。
(3)以高位順序(從左到右)將這個反碼轉換成相應的十進制值,因為需要3位,就將主機號前3位作為子網號,這裡是11100000,所以遮閉就是255.255.254.0。

3、定義子網號
子網號與子網遮閉的位數相同。
(1)列出子網號按高到低的順序使用的位數。例如子網遮閉使用了3位,二進制值是11100000。
(2)將最低的一位1轉換成十進制,用這個值來定義子網的增量。這個例子中是1110,所以增量是32。
(3)用這個增量迭加從0開始的子網號,直到下一個值為256。這個例子中就是w.x.32.1-w.x.63.254、w.x.64.1-w.x.127.254等。

4、定義子網中的主機號
從上面的例子看出,一旦定義了子網號,就已經確定了每個子網的主機號了。我們在做每次增量後得出的值表明了子網中主機號範圍的起始值。
確定每個子網中的主機數目
(1)計算主機號可用的位數。例如在B類網中用3位定義了網路號,那麼餘下的13位定義了主機號。
(2)將這個餘下的位數也就是主機號轉換為十進制,再減去1。例如13位值1111111111111轉換為十進制的話就是8191,所以這個網路中每個子網的主機數就是8190了。

--------------------------------------------------------------------------------

實現IP路由

1、IP路由簡介

路由就是選項一條資料包傳輸路徑的程序。當TCP/IP主機傳送IP資料包時,便出現了路由,且當到達IP路由器還會再次出現。路由器是從一個物理網向另一個物理網傳送資料包的裝置,路由器通常被稱為網路閘道。對於傳送的主機和路由器而言,必須決轉發IP哪裡轉發資料包。在決定路由時,IP層查詢位於記憶體中的路由 表。
(1)當一個主機試圖與另一個主機通信時,IP首先決定目的主機是一個本機網還是遠端網。
(2)如果目的主機是遠端網,IP將查詢路由表來為遠端主機或遠端網選項一個路由。
(3)若未找到明確的路由,IP用預設的網路閘道位址將一個資料傳送給另一個路由器。
(4)在該路由器中,路由表再次為遠端主機或網路查詢路由,若還未找到路由,該資料包將傳送到該路由器的預設網路閘道位址。
每發現一條路由,資料包被轉送下一級路由器,稱為一次「跳步」,並最終傳送至目的主機。
若未發現任何一個路由,源主機將收到一個出錯資訊。

--------------------------------------------------------------------------------

TCP/IP傳輸協定介紹

TCP/IP的通訊傳輸協定


這部分簡要介紹一下TCP/IP的內部結構,為討論與網際網路有關的安全問題打下基礎。TCP/IP傳輸協定組之所以流行,部分原因是因為它可以用在各種各樣的信道和底層傳輸協定(例如T1和X.25、乙太網以及RS-232串行接頭)之上。確切地說,TCP/IP傳輸協定是一組包括TCP傳輸協定和IP傳輸協定,UDP(User Datagram Protocol)傳輸協定、ICMP(Internet Control Message Protocol)傳輸協定和其他一些傳輸協定的傳輸協定組。



TCP/IP整體構架概述



TCP/IP傳輸協定並不完全符合OSI的七層參考模型。傳統的開放式系統互連參考模型,是一種通信傳輸協定的7層抽像的參考模型,其中每一層執行某一特定工作。該模型的目的是使各種硬體在相同的層次上相互通信。這7層是:物理層、資料鏈路層、網路層、傳輸層、話路層、表 示層和套用層。而TCP/IP通訊傳輸協定採用了4層的層級結構,每一層都呼叫它的下一層所提供的網路來完成自己的需求。這4層分別為:



套用層:應用程式間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸傳輸協定(FTP)、網路遠端訪問傳輸協定(Telnet)等。


傳輸層:在此層中,它提供了節點間的資料傳送服務,如傳輸控制傳輸協定(TCP)、用戶資料報傳輸協定(UDP)等,TCP和UDP給資料包加入傳輸資料並把它傳輸到下一層中,這一層負責傳送資料,並且確定資料已被送達並接收。


互連網路層:負責提供基本的資料封包傳送功能,讓每一塊資料包都能夠到達目的主機(但不檢查是否被正確接收),如網際傳輸協定(IP)。


網路接頭層:對實際的網路媒體的管理,定義如何使用實際網路(如Ethernet、Serial Line等)來傳送資料。
TCP/IP中的傳輸協定



以下簡單介紹TCP/IP中的傳輸協定都具備什麼樣的功能,都是如何工作的:

1. IP

網際傳輸協定IP是TCP/IP的心臟,也是網路層中最重要的傳輸協定。

IP層接收由更低層(網路接頭層例如乙太網設備驅動程式)發來的資料包,並把該資料包傳送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的資料包傳送到更低層。IP資料包是不可靠的,因為IP並沒有做任何事情來驗證資料包是按順序傳送的或者沒有被破壞。IP資料包中含有傳送它的主機的位址(源位址)和接收它的主機的位址(目的地 址)。

高層的TCP和UDP服務在接收資料包時,通常假設包中的源位址是有效的。也可以這樣說,IP位址形成了許多服務的認證基礎,這些服務相信資料包是從一個有效的主機傳送來的。IP驗證包含一個選項,叫作IP source routing,可以用來指定一條源位址和目的位址之間的直接路徑。對於一些TCP和UDP的服務來說,使用了該選項的IP包好像是從路徑上的最後一個系統傳送過來的,而不是來自於它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統來 進行平常是被禁止的連接。那麼,許多依靠IP源位址做驗證的服務將產生問題並且會被非法入侵。

2. TCP

如果IP資料包中有已經封好的TCP資料包,那麼IP將把它們向『上』傳送到TCP層。TCP將包排序並進行錯誤檢查,同時實現虛電路間的連接。TCP資料包中包括序號和驗證,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。

TCP將它的訊息送到更高層的應用程式,例如Telnet的服務程序和客戶程序。應用程式輪流將訊息送回TCP層,TCP層便將它們向下傳送到IP層,設備驅動程式和物理介質,最後到接收方。

面向連接的服務(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(傳送和接收域名資料庫),但使用UDP傳送有關單個主機的訊息。

3.UDP

UDP與TCP位於同一層,但對於資料包的順序錯誤或重發。因此,UDP不被套用於那些使用虛電路的面向連接的服務,UDP主要用於那些面向查詢---回應的服務,例如NFS。相對於FTP或Telnet,這些服務需要交換的訊息量較小。使用UDP的服務包括NTP(網落時間傳輸協定)和DNS(DNS也使用TCP)。

欺騙UDP包比欺騙TCP包更容易,因為UDP沒有建立啟始化連接(也可以稱為握手)(因為在兩個系統間沒有虛電路),也就是說,與UDP相關的服務面臨著更大的危險。

4.ICMP

ICMP與IP位於同一層,它被用來傳送IP的的控制訊息。它主要是用來提供有關通向目的位址的路徑訊息。ICMP的『Redirect』訊息通知主機通向其他系統的更準確的路徑,而『Unreachable』訊息則指出路徑有問題。另外,如果路徑不可用 了,ICMP可以使TCP連接『體面地』終止。PING是最常用的關於ICMP的服務。

5. TCP和UDP的連接阜結構

TCP和UDP服務通常有一個客戶/伺服器的關係,例如,一個Telnet服務工作開始在系統上處於空閒狀態,等待著連接。用戶使用Telnet客戶程序與服務工作建立一個連接。客戶程序向服務工作寫入訊息,服務工作讀出訊息並發出回應,客戶程序讀出回應並向用戶報告。因而,這個連接是雙工 的,可以用來進行讀寫。

兩個系統間的多重Telnet連接是如何相互驗證並協調一致呢?TCP或UDP連接唯一地使用每個訊息中的如下四項進行驗證:



源IP位址---傳送包的IP位址。


目的IP位址---接收包的IP位址。


源連接阜---源系統上的連接的連接阜。


目的連接阜---目的系統上的連接的連接阜。


連接阜是一個軟體結構,被客戶程序或服務工作用來傳送和接收訊息。一個連接阜對應一個16位元 的數。服務工作通常使用一個固定的連接阜,例如,SMTP使用25、Xwindows使用6000。這些連接阜號是『廣為人知』的,因為在建立與特定的主機或服務的連接時 ,需要這些位址和目的位址進行通訊。

--------------------------------------------------------------------------------

TCP/IP遠端訪問操作

TCP/IP網路通信軟體包使用遠端訪問的指令,這些指令首先是由UC Berkely為Arpanet開發的。它允許您遠端註冊到另一個系統中,並從一個系統複製文件到另一個系統。您能取得關於一個系統的訊息,比如當前誰正在註冊使用。使用一個系統的位址時,這些遠端指令使用域名或IP位址。和TCP/IP遠端訪問指令一樣,域名位址開始好是為在Arpanet上使用而設計。

許多TCP/IP指令可以和用在Internet上的網路通信功能相比較。例如,用TCP/IP指令rlogin可以遠端註冊到一個系統,它和telnet相似。rcp指令能遠端複製文件,它執行和ftp相同的功能。TCP/IP指令的不同之處是它們提供給用戶的易用和易控制性。您能很容易地訪問在不同的Unix或Linux系統中的帳號,並且能控制訪問這些帳號但沒有提供密碼的用戶。事實上您能提供給不同的用戶提供關於您的帳號的一種組權限。

一、TCP/IP網路系統資訊:rwho,uptime和ping

這些指令是一些TCP/IP指令,通過它們,您能從網路中的不同系統上取得訊息。您能找到誰正在註冊,得到另一個系統中用戶的訊息,或查詢一個系統是否正在執行。例如,rwho指令和who指令的功能很相似。它顯示網路中的每個系統的當前註冊的用戶。

$rwho

violet robert:tty1 Sept 10 10:34

garnet chris:tty2 Sept 10 09:22

指令ruptime可以顯示網路中的每個系統的訊息。此訊息能顯示出每個系統是如何執行。ruptime顯示系統是否執行,它執行了多久,系統中的用戶數和系統在最後5、10和15分鍾內的系統負荷。

$ruptime

violet up 11+04:10, 8 users, load 1.20 1.10

garnet up 11+04:10, 20 users, load 1.50 1.30

指令ping能檢測出系統是否啟動和執行。ping指令加上您想檢測的系統名做為參數,下面的例子將檢測violet是否啟動並連接在網路中。

$ping violet

violet is alive

$

如果您想檢測的系統已經關機,將得到一個如下的回應。這種情況下,garnet是關閉並沒有連線到網路中。

$ping garnet

no answer from garnet

$



二、遠端訪問權限:.rhosts



您能用.rhosts文件控制使用TCP/IP指令對您帳號的訪問。用戶能用標準的編輯器象Vi來新增他們帳號中的.rhosts文件。它必須位於用戶的主目錄。下面的例子中,使用者顯示文件.rhosts文件的內容。

$cat.rhosts

garnet chris

ciolet robert

使用.rhosts文件是一種允許用戶不提供密碼而訪問您的系統的簡單方法。如果需要禁止此用戶訪問,只須簡單地從文件.rhost中移除系統各和用戶註冊名。如果一個用戶的註冊名和系統名在文件.rhost中,那麼此用戶即呆不提供密碼直接訪問系統。並 不是所有的遠端註冊操作都需要這種訪問形式(您能用輸入密碼的方式來替代);但一些遠端指令要求有.rhosts文件,像遠端複製文件或遠端執行Linux指令。如果您想在遠端系統的帳號中招待這些指令,此帳號的.rhosts文件中必須有您 的註冊名和系統名。

通過.rhosts對某一系統進行訪問時,也允許您使用TCP/IP指令直接訪問系統中您的其他帳號。您不需要先註冊到這些帳號中。可以把系統中您的其他帳號做為當前註冊帳號的增強。不管文件牌佻 的哪個帳號下,都可以用frcp指令從一個目錄複製到另一個目錄。用指令rsh,可以在您的其他帳號中招待任何Linux指令。



三、遠端註冊:rlogin



您可能在網路中的不同系統上都有自己的帳號,或者可以訪問別人在另一個系統上的帳號。要訪問別的系統中的帳號,首先要註冊到您的系統中,接著通過網路遠端註冊到帳號所在的系統中。用指令rlogin可以遠端註冊支別的系統。指令的參數應是一個系統名。指令 將把您連線到另一個系統中並開始註冊的程序.

用rlogin的註冊程序和一般的註冊程序有所不同,用rlogin時用戶不被提示輸入註冊名。rlogin假設您的本機系統中的註冊名和遠端系統中的一致。所以象上面執行rlogin指令時,您將馬上被提示輸入密碼。輸入密碼後,您即可進入遠端系統各的 帳號。

用rlogin假設註冊各是相同的,因為大多數的人用rlogin訪問別的系統中的註冊名一般和本機的註冊名是相同的。然而,當遠端系統中的註冊名和本機系統的不同時,選項1-允許您輸入遠端系統帳戶的不同的註冊名。語法如下所顯示:

$rlogin sys tem-name -1 login-name

在下面的例子中,用戶使用註冊名robert註冊到violet的系統中。

$rlogin violet-1 robert

password

$

: 一旦註冊到遠端系統中,您能執行任何指令。可以用exit、CTRL-d或logout(TCSH或C-shell)結束連接。



四、遠端複製文件:rcp



您能用指令rcp從遠端系統複製文件到本機系統中。rcp執行文件傳輸的功能,它的操作和cp指令很相似,但它是通過網路連線到另一系統。執行指令rcp時要求遠端系統的。rhosts文件中有您的本機系統名和註冊各。指令rcp用關鍵字rcp開頭,參數 為源檔案名和複製的目標檔案名。為了指定文件在遠端系統中,您需要在檔案名前放置一個系統名,兩者之間用冒號分隔,如下所顯示:

$rcp sys tem-name:source-file slystem-name:copy-file

當複製一個文件到遠端系統中時,複製的目標文件是遠端文件,它要求帶有系統名。而源文件在您的本地機系統中,不要求系統名:

$rcp source-file remote-sys tem-name:copy-file

在下面的例子中,用戶從自己的系統中複製文件weather到遠端系統violet並重新命名為monday.

$rcp weather violet:Monday

從遠端系統中複製一個文件到本機時,源文件是遠端文件,它要求帶有系統名。而複製的目標文件在您的本地機系統中,不要求系統名:

$rcp remote-sys tem-name:source-file copy-file

在下面的例子中,用戶從遠端系統之間複製整個目錄。rcp指令加上-r選項將從一個系統複製一個目錄和它的子目錄到另一個系統。像cp指令一樣,rcp要求一個源目錄和複製目錄。在遠端系統中的目錄要求系統名和一個以分隔系統名和目錄名的冒號,以及目錄名。當從您的系統複製目錄到一個遠端系統,則在遠端系統中的複製目錄需 要遠端系統名。

$rcp -r source-directory remote-sys tem-name:copy-directory

在下面的例子中,使用者把目錄letters複製到遠端系統violet中的目錄oldnotes中。

$rcp-r letters violetldnotes

當從您的系統複製一個遠端系統中的目錄到本機時,在遠端系統中的源目錄需要遠端系統名。

$rcp-r remote-sys tem-name:source-directory copy-directory

在下面的例子中,使用者把遠端系統violet中的目錄birthdays複製到本機的目錄party中。

$rcp-r violet:birthdays party

同時,您可以用星號指定名字,或用圓點引用當前目錄。對於Shell的特殊字串,是由您的本機系統進行解釋轉換,而不是遠端系統。為了使遠端系統解釋轉換一個特定字串,您必須通進某種方式引用它。為了複製遠端系統種所有帶副檔名.c的文件到您的系統中,您 需要用特殊字串-星號:*.c來指定所有的帶副檔名.c的文件。您必須注意引用星號的方式。下面的例子中,在系統violet中的帶.c副檔名的文件被複製到使用者的系統中。注意,星號是通過一個反斜槓引用。而最後的圓點,表示現用的目錄,並沒被引用。它是由您的本機系統 解釋並轉換的。

$rcp violet:\*.c

下面的例子中,目錄report將從使用者的本機系統複製到遠端系統的當前目錄中。注意圓點被引用,它將被遠端系統解釋轉換。

$rcp -r reports violet:\.



五、遠端執行:rsh



您可能需要在遠端系統中執行一個指令。rsh指令將在遠端Linux系統上執行一個指令並把結果顯示到您的系統中。當然,您的系統名和註冊名必須在遠端系統的.rhosts文件中,指令rsh有兩個一般的參數,一個系統名和一個Linux指令。語法如下所 示:

$rsh remote-sytem-neame Linux-command

在下面的例子中,rsh指令將在遠端系統violet中執行一個ls指令以列出在violet中目錄/home/robert中的文件。

$rsh violet ls /home/robert

除非是引用特定字串,否則它將被本李系統解釋轉換,對於控制標準輸出的特殊字串更是如此,像重轉發IP或管道字串。下面的例了中列出遠端系統上的文件,並把它們送到本系統中的標準輸出。重轉發IP操作由本機系統解釋,並把輸出改向到本機系統中的文件myfiles 中。

$rsh violet ls /home/robert>myfiles

如您引用一個特定字串,它將成為Linux指令的一部分被遠端系統解釋。引用重轉發IP操作符將允許您在遠端系統中執行重轉發IP操作。下面的例子中,引用一個重轉發IP操作符。它變成Linux指令的一部分,包括指令的參數,檔案名myfile。指令ls產生一列文 件名並把它們重轉發IP到遠端系統中的一個文件myfile中。

$rsh violet ls /home/robert'>'myfiles

對於管道操作也是如此。下面例子中第一個指令輸出一列文件到本機的列印機中。標準的輸出能過管道輸出到您的在線列印機中。第二個指令中,一列文件將輸出遠端系統的列印機上。管道線被遠端系統解釋。輸送標準輸出到遠端系統的列印機上。


--------------------------------------------------------------------------------

(安全篇)

TCP/IP的層次不同提供的安全性也不同,例如,在網路層提供虛擬私用網路,在傳輸層提供安全套接服務。下面將分別介紹TCP/IP不同層次的安全性和提高各層安全性的方法。

  一、Internet層的安全性

  對Internet層的安全傳輸協定進行標準化的想法早就有了。在過去十年裡,已經提出 了一些方案。例如,「安全傳輸協定3號(SP3)」就是美國國家安全局以及標準技術協 會作為「安全資料網路系統(SDNS)」的一部分而制定的。「網路層安全傳輸協定(NLS P)」是由國際標準化組織為「無連接網路傳輸協定(CLNP)」制定的安全傳輸協定標準。 「整合化NLSP(I-NLSP)」是美國國家科技研究所提出的包括IP和CLNP在內的統一 安全機制。SwIPe是另一個Intenet層的安全傳輸協定,由Ioannidis和Blaze提出並實 現原型。所有這些提案的共同點多於不同點。事實上,他們用的都是IP封裝技術。 其本質是,純文本的包被加密,封裝在外層的IP報頭裡,用來對加密的包進行In ternet上的路由選項。到達另一端時,外層的IP報頭被拆開,報文被解密,然後 送到收報地點。

  Internet工程特遣組(IETF)已經特許Internet傳輸協定安全傳輸協定(IPSEC)工作組對IP安 全傳輸協定(IPSP)和對應的Internet密鑰管理傳輸協定(IKMP)進行標準化工作。IPSP的主 要目的是使需要安全措施的用戶能夠使用相應的加密安全體制。該體制不僅能在 目前通行的IP(IPv4)下工作,也能在IP的新版本(IPng或IPv6)下工作。該體制應 該是與算法無關的,即使加密算法取代了,也不對其他部分的實現產生影響。此 外,該體制必須能實行多種安全政策,但要避免給不使用該體制的人造成不利影 響。按照這些要求,IPSEC工作組制訂了一個規範:認證頭(Authentication Hea der,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),可能是事先手動式發怖的。SK IP要求Diffie-Hellman證書,其他傳輸協定則要求RSA證書。

  1996年9月,IPSEC決定採用OAKLEY作為ISAKMP框架下強制推行的密鑰管理手段, 採用SKIP作為IPv4和IPv6實現時的優先選項。目前已經有一些廠商實現了合成的 ISAKMP/OAKLEY方案。

  Photuris以及類Photuris的傳輸協定的基本想法是對每一個會 話密鑰都採用Diffie-Hellman密鑰交換機制,並隨後採用簽名交換來驗證Diffie --Hellman參數,確保沒有「中間人」進行攻擊。這種組合最初是由Diffie、Oos chot和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-Hel lman密鑰洩露,,則任何在該密鑰保護下的密鑰所保護的相應通信都將被破解。 而且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層安全性的主要優點是它的透明性,也就是說,安全服務的提供不需要 應用程式、其他通信層次和網路設備做任何改動。它的最主要的缺點是: Intern et層一般對屬於不同工作和相應條例的包不作區別。對所有去往同一位址的包, 它將按照同樣的加密密鑰和訪問控制原則來處理。這可能導致提供不了所需的功 能,也會導致效能下降。針對面向主機的密鑰分配的這些問題,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 Socke ts等,具體做法包括雙端實體的認證,資料加密密鑰的交換等。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)。另一免費的S SL實現叫做SSLeay。SSLref和SSLeay均可給任何TCP/IP套用提供SSL功能。Inter net號碼分配當局(IANA)已經為具備SSL功能的套用分配了固定連接阜號,例如,帶 SSL的 HTTP(https)被分配的連接阜號為443,帶SSL的SMTP(ssmtp)被分配的連接阜號 為465,帶SSL的NNTP(snntp)被分配的連接阜號為563。

  微軟推出了SSL2的改進版本稱為PCT(私人通信技術)。至少從它使用的記錄格式來 看,SSL和PCT是十分相似的。它們的主要差別是它們在版本號字段的最顯著位(T he 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和D SS。

  目前還沒有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國際和微軟已經同意聯手推出I nternet上的安全信用卡交易服務。他們發怖了相應的安全電子交易(SET)傳輸協定, 其中規定了信用卡持卡人用其信用卡通過Internet進行付費的方法。這套機制的 後台有一個證書頒發的基礎結構,提供對X.509證書的支持。

  上面提到的所有這些加安全功能的套用都會面臨一個主要的問題,就是每個這樣 的套用都要單獨進行相應的修改。因此,如果能有一個統一的修改手段,那就好 多了。通往這個方向的一個步驟就是赫爾辛基大學的Tatu Yloenen開發的安全sh ell(SSH)。SSH允許其用戶安全地登入到遠端主機上,執行指令,傳輸文件。它實 現了一個密鑰交換傳輸協定,以及主機及客戶端認證傳輸協定。SSH有當今流行的多種Uni x系統平台上的免費版本,也有由Data Fellows公司包裝上市的商品化版本。

  把SSH的思法再往前推進一步,就到了認證和密鑰分配系統。本質上,認證和密鑰 分配系統提供的是一個套用編程介面(API),它可以用來為任何網路應用程式提供 安全服務,例如: 認證、資料機密性和完整性、訪問控制以及非否認服務。目前 已經有一些實用的認證和密鑰分配系統,如: MIT的Kerberos(V4與V5),IBM的Cr yptoKnight和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更高的層次,使同網路安全性有關的編程更加方便了。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 12:30 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1