第8章 安全性介紹
網絡的蓬勃發展也許是本世紀末最激動人心的革命。個人電腦雖然也在飛速發展,但無論CPU、內存、硬盤還是顯示器的性能有多麼出色,在網絡的威力麵前都將黯然失色。今天,從學生寢室到規模龐大的公司企業,局域網正為人們創造著高速的數據傳輸。另一方麵,Internet的迅猛膨脹正在使我們的地球變得越來越像一個地球村,報告顯示:每一分鍾都有局域網或者主機(連網的計算機)與Internet相連。
比爾?蓋茨不會忽視這個巨大的市場。正是這個原因,微軟的操作係統,無論是Windows 9X還是Windows NT,還是全新推出的Windows 2000,都必須具有方便的聯網功能。Windows 2000支持各種流行的網絡協議,隻要裝配有網卡,就可以很方便地實現計算機互聯;如果再配置了調製解調器,找到合適的ISP,就可以上網衝浪了(後麵將有詳細的聯網介紹)。
但是在享受網絡樂趣的同時,有一點是需要銘記在心的,那就是安全性問題。
本章主要內容有:
?安全性概述
?Windows 2000的C2級安全性
?登陸策略
?賬戶策略
?密碼策略
?注冊表的安全性
?其他
?文件加密
?安全模板及安全配置和分析工具
?證書管理
8.1 安全性概述
事實上每個人即使沒有聯網,也需要維護自己的程序、文檔、表格和設備免遭他人在非法情況下訪問和使用,從而導致破壞,這就是安全性的問題。隻是當用戶的計算機聯網時,這個問題尤其顯得尖銳。作為一個公司或者企業的網絡管理者,更有責任維護整個係統的數據安全,使其免遭損壞、盜竊或者誤用。
首先要弄清楚:誰是需要注意的防範對象?在互聯網中,有許多人經常攻擊各種站點,他們以“黑客”的稱謂為無尚的光榮。這些人中有些懷著各種政治或商業的目的,還有許多純粹以進行破壞為樂趣。用戶上網的時間越長,受到攻擊的可能性就越大。如果是公司的網站,就更需要高度的警惕。
與外部攻擊同時存在的是來自內部的威脅。說不清哪位雇員會心懷怨恨而試圖獲取公司的絕密數據,而那些天生有著強烈冒險精神和好奇心的人更應該被嚴格限製,無意識的破壞同樣會帶來嚴重的後果。
內部網絡的安全性管理在有些企業沒有得到應有的重視,這或許是因為細致的管理需要太多的精力和高昂的費用,或者是因為嚴格的管理對普通的職員帶來這樣那樣的限製招致抱怨。然而當數據破壞或網絡癱瘓的情況出現時,後悔就來不及了。作為網絡的管理員,有責任提醒負責人安全的重要性,無論如何不能容忍管理鬆懈的網絡存在。
與此同時,另一方麵需要注意,矛盾的存在總是絕對的。過於嚴厲的管理有可能為絕大多數的用戶帶來工作的不便,從而導致效率的低下。現代的網絡管理給管理員提出了很高的要求,必須經過周密的思考才能進行完備的計劃。
Windows 2000是一種先進的網絡操作係統,它可以幫助係統管理員快速有效地控製、管理和監督網絡的運行。
8.2 Windows 2000的C2級安全性
有識之士在普通用戶之前很早就表現了他們對計算機安全性的擔憂。美國計算機安全中心(NCSC)提出了自己的安全性標準,對操作係統、網絡構件及安全子係統進行了產品安全的等級評價,這就是所謂“桔皮書”。桔皮書的分類級別分為A、B、C、D級,Windows 2000滿足其C2級安全要求,下表對分類有進一步的說明。
表8-1 安全性級別說明
級 別 說 明
D 最小安全要求
C1 慎重安全
C2 控製訪問
B1 標記安全
B2 結構化保護
B3 安全域
A1 驗證保護
在這個分類級別中,D級是級別最低的,A類是安全性最強的,而B,C級還有更細致的區分,其中C2的級別比C1要高,相應地在B類中,B1、B2、B3的安全級別也不斷提高。1995年,微軟的NT 3.51就通過了NCSC的C2級安全性審核,又比如Oracle公司的Oracle7也被評估為C2級的可信程序。
NCSC的C1級別要求設置某些形式的控製,使用戶能保護用戶的私人信息,這一級別係統要求用戶能夠標誌自己的身份(采用用戶名以及密碼),並由係統進行身份驗證。係統需要維持用戶以及密碼數據的完整性,防止未授權用戶的訪問。係統還要求保證用戶在自己職權範圍內行事,不應該允許用戶使用某種程序以避開安全機製。
C2級安全性除了要求C1級別的所有安全機製外,還要求針對每一個用戶準許或者限製他們對數據文件的訪問,要求隻能由授權的用戶為當前沒有訪問權限的用戶分配權限。C2級別的安全性的另外一項要求是對象或者文件被刪除後,任一部分不應該能被恢複。此外還要求提供完備的審核記錄,以監督用戶的各種行動。
C2級安全性提出的要求以及Windows 2000的表現如下:
■ 慎重控製
通過訪問控製列表(Access Control List,ACL),實現針對具體用戶的對象訪問控製權限。對象包括文件、文件夾、進程、打印機等等。
■ 對象再生
不能再生或恢複已經刪除的對象。例如,任何NTFS分區的文件被刪除後,都不能再恢複數據。
■ 用戶標識與身份驗證
用戶必須提供用戶名和密碼才能獲準登錄,係統將進行身份驗證以判斷用戶是否是合法的。此外,登錄時提供的用戶信息將用於跟蹤用戶的活動,比如進行審核等。
■ 審核
能夠審核係統內所有的對象訪問及有關安全的行動,而且隻有具有一定權限的用戶(比如係統管理員)能夠查看審核信息。
讀者可以發現,Windows 2000對這些要求都作了相當嚴密的布置,上麵提到的安全性都在Windows 2000的用戶、賬號等方麵的管理中都受到了相當程度的重視
事實上,B、A的安全級別比C級提出了更高的要求。讀者也許會問:為什麼Windows 2000不遵循更高的安全性要求呢?回答是:對大多數商業應用來說,C2級的安全級別就是最好的了,別忘了對安全的要求越高,往往也就意味著工作效率的降低。除非要同政府機密打交道,否則不需要提出那些不近人情的要求。
8.3 登錄策略
首先從登錄機製來看看Windows 2000的安全性。
8.3.1 Ctrl+Alt+Del登錄
Windows 2000同Windows NT一樣,需要用戶按“Ctrl+Alt+Del”鍵,才能打開登錄窗口,輸入登錄所需的用戶名和密碼信息。
有一種叫做特洛伊木馬(Trojan Horse)的程序,會通過仿造登錄窗口的方法騙取用戶輸入登錄信息,以此獲得用戶的用戶名和密碼,之後進入係統進行破壞。
也許許多人仍然記得在MS-DOS和Windows 3.x/95的時代,人們通過按“Ctrl+Alt+Del”鍵重新啟動係統或者關閉某個程序,然而在Windows NT和Windows 2000中,通過采取“Ctrl+Alt+Del”鍵登錄的方式,可以阻止模仿登錄屏幕的程序。這種登錄機製相當有效,因為捕獲密碼的特洛伊木馬程序,幾乎不可能寫成同時按“Ctrl+Alt+Del”鍵。
也可以將係統設置成不需要按“Ctrl+Alt+Del”鍵才能輸入用戶名和密碼,但考慮到係統的安全性,這點是必不可少的。
要設置用戶必須按Ctrl+Alt+Del鍵以登錄,管理員采用以下操作:
(1)雙擊打開“控製麵板”中的“用戶和密碼”。
(2)選擇“高級”選項卡。
(3)選中底部的要求用戶在登錄之前按“Ctrl+Alt+Del”鍵,如圖8-1所示。
圖8-1 要求按Ctrl+Alt+Del鍵登錄
8.3.2 DES和RSA加密技術
用戶的密碼保存在SAM數據庫中,並采取了先進的加密手段。
DES加密的密碼長16個字節,其前8個字節由密碼的前7個字節計算產生,後8個字節由密碼的後7個字節計算產生。
SAM數據庫中還存有第二個密碼,與前者不同,這個密碼使用Unicode字符集,區分大小寫。這個密碼采用RSA公共密鑰密碼的加密方法,這種加密方法是70年代末開發出來的,它也用來生成數字簽名。
8.3.3 顯示警告
有些人隻是處於好奇心而猜測密碼以圖進入係統,如果在他打壞主意時,顯示一個警告框是一個好辦法,可以通過修改注冊表以達到在顯示登錄對話框時出現警告。方法是:
(1)在“運行”對話框中,輸入“regedt32”運行注冊表。
(2)選擇以下鍵值:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon,如圖8-2所示。
找到LegalNoticeCaption和LegalNoticeText兩個鍵,分別為它們輸入文本字符串(缺省情況下它們是空的)。LegalNoticeCaption顯示的是提示框的標題,而LegalNoticeText顯示的是提示框的正文。
圖8-2 修改注冊表中的鍵值
輸入警告字符串類似圖8-3所示。
圖8-3 輸入警告字符串
8.3.4 不顯示上一登錄的用戶名
用戶或許已經習慣了登錄對話框中顯示上一登錄的用戶名,如果用戶是再次登錄,這樣的確可以省去許多不必要的麻煩,至少用戶不必一遍又一遍地重複輸入工作。
但是考慮到安全性的問題,這種設置並不可取。試想一下,當有陌生人來到機器前,按下Ctrl+Alt+Del鍵,在他麵前出現上一登錄的用戶名,那麼這個陌生人就可能根據用戶名提供的信息(如果他認識那個用戶的話),猜測這個賬號的密碼。因此,嚴密的安全設施應該禁止上一登錄的用戶名。
這一設置可以在管理控製台中執行。方法是:
(1)打開管理控製台。
圖8-4 設置登錄屏幕上不顯示上次登錄的用戶名
(2)打開組策略,如果是本地計算機,啟動的將是“本地計算機策略”。
(3)依次打開“Windows設置”→“安全設置”→“本地策略”→“安全選項”。
(4)在如圖8-4所示的大屏幕中,找到“登錄屏幕上不要顯示上次登錄的用戶名”這一設置,缺省時,這一策略沒有啟用。
(5)單擊右鍵,選擇“安全性”,在如圖8-5中,選擇“啟用”單選按鈕,啟用不顯示上登錄用戶名策略。
圖8-5 啟用策略
這一設置也許將招致用戶的抱怨,用戶開始會認為不斷重複輸入用戶名令人生厭,但為了安全,這點工作量是值得的,而且用戶也會很快習慣。
8.3.5 登錄驗證機製
用戶輸入的用戶名和密碼將與賬戶數據庫進行對照以驗證身份,如果正確無誤的話,係統將為這次會話創建一個安全訪問令牌,令牌中包含了用戶的安全身份信息,如果用戶屬於某個組的話,令牌中還會包括用戶所屬組的安全身份信息。
由於係統中每個對象(文件、文件夾或者打印機等等)都包含一個訪問許可權限列表,這些列表中含有用戶賬戶的安全信息、組的安全信息以及他們的權限,如果用戶對這些對象進行訪問,對象就會檢查訪問許可權限列表,將列表中的信息與用戶的安全訪問令牌信息進行對照,之後允許用戶以合法的權限進行訪問。
如果用戶希望從工作站中登錄到域中去,那麼輸入的登錄信息就要由本地的安全控製轉移到域控製器中,由域控製器(主域控製器或者備份域控製器)進行登錄驗證。
需要注意的是,用戶可能在本地工作站和域中有相同的用戶名,但這兩個用戶賬號並不是同一碼事,它們包含了不同的權限信息,因為由管理員分配的訪問權可能是不一樣的,如果用戶發現登錄後能執行的操作發生了變化,需要檢查一下是否進行了正確的登錄。
8.3.6 限製用戶在工作站登錄
在域管理器中,可以限製用戶在某個工作站登錄。對於一些作風不嚴謹的用戶,可以限製其在存有重要資料的工作站登錄。
8.3.7 設置用戶登錄的時間
這項工作也將在域控製器中完成,可以設置用戶隻能在上班時間登錄,而晚上就不能登錄,這也可以保證係統的安全。
另一方麵,比較大的公司或者企業,往往也需要選擇夜裏做備份工作,這時候允許用戶登錄也是不適合的。
8.4 賬戶策略
Windows 2000有安全的登錄機製,然而要保障係統安全,管理員需要花費更多的精力,進行更精密周全的規劃。
賬戶管理是規劃的重要部分。Windows 2000和Windows NT都使用賬戶來識別有權訪問本地資源和網絡資源的用戶,因此必須驗證為本地或者域的有效用戶(通過按“Ctrl+Alt+Del”輸入賬戶和密碼登錄),才能獲得資源對象的訪問權,使用賬戶管理有力地維護了係統的安全。
8.4.1 安全標識
係統使用安全標識(SID)對每個係統對象進行區別,包括用戶、組、域中的計算機賬號,都有一個獨一無二的安全標識號。
對象創建時,下列3個條件決定了SID號碼的產生:
(1)計算機名稱
(2)當前計算機的係統時間
(3)當前線程的用戶型執行時間
係統根據這3個32位數字,利用散列算法創建出一個獨一無二的SID號碼,從概率和統計學角度來說,任何兩個SID號碼應該是不會相同的。
可以打開注冊表查看SID號碼。
(1)在“運行”對話框中,輸入“regedt32”運行注冊表。
(2)選擇以下鍵值:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList,如圖8-6中,標出了係統的各個SID號碼。
圖8-6 SID號碼
現在可以說明為什麼刪除了一個用戶或者組賬號後,即使用完全一樣的賬戶名和密碼重新命名一個新賬號,也無法恢複相同的權限信息。由於兩個創建的時間不一樣,因此它們的SID號碼不一樣,這實際上就是兩個不同的賬號。
8.4.2 管理管理員賬戶
由於係統管理員擁有係統的完全控製權,從而往往成為攻擊的首要對象。窺視係統的破壞分子總是試圖竊得管理員的密碼,以獲取各種資料。因此,管理員必須得時時小心,管理員的密碼必須設置得十分複雜以保證安全。
安裝Windows 2000時,會自動創建管理員的Administrator賬號,為安全起見,可以把這個賬號重新命名,新的名字可以讓破壞分子難以猜到。相應地,限製Administrator賬號的權力,這樣即使黑客破獲了Administrator賬號的密碼,他也將發現其權力相當有限,無法對係統造成破壞。
另外一點需要注意的是,一定要慎用管理員賬戶。用管理員賬戶運行Windows?2000可能會使係統變得十分脆弱,比如訪問一個Internet站點這樣一件簡單的事都可能產生嚴重的安全問題,在一個陌生的Internet站點中,可能會有特洛伊木馬等程序下載到係統中並執行,從而導致刪除重要的係統文件、格式化硬盤,甚至創建一個新賬號等重要破壞。
管理員如果也需要經常使用程序、文件等數據,應該為自己添加一個普通的用戶(User)賬號,在平時使用這個賬號登錄,和其他普通用戶一樣操作,僅當需要做管理工作時,才用管理員賬號登錄,而且應當在執行完任務後馬上注銷。
8.4.3 停用Guest賬戶
一般說來,係統允許通過客戶(Guest)賬戶進行匿名登錄,為了運行FTP服務,提供客戶賬號有時是十分必要的。
客戶賬號的權限相當有限,不能執行特權操作,也有許多對象拒絕客戶訪問,管理員可以對客戶加強控製。但是,客戶允許查看注冊表和係統這樣重要的設施,雖然不能做改動,但客戶可以查看係統的設施,了解配置情況,這也是不安全的。為了更加有效的保障,可以停用Guest賬戶。