網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。 安全性在操作系統中應該是相當容易實現的,對嗎?就是說,為任意對象指定某個安全級別所需要做的所有工作只是一個簡單的函數調用,例如GrantAccessTo或者DenyAccessTo,對嗎? 不幸的是,Windows NT安全性應用程序接口(API)看起來并不是那么簡單。它包含了過多的與安全性有關的函數,并且僅僅為一個用戶打開一個對象的工作就已經非常復雜了。 要正確使用安全性API,需要按照下面幾個層次去理解:
在這些服務只被第三方應用程序使用時,相當容易理解安全性是如何工作的。然而,Windows NT是一個安全的操作系統,此外,基于Windows NT的網絡也非常依賴于安全性。因此,安全性結合到系統的方法就顯得很模糊。 誰需要安全? 在進入任何細節之前,先要明確為什么會需要安全性。如果不是處于下面的情況,就根本不必為安全性擔心: 正在寫一個服務器應用程序,即幾個用戶都可以訪問的一個應用程序,而且此服務器應用程序只限于為這些用戶的一個子集提供數據結構。 注意這是一個相當廣泛的定義。下面是滿足條件的幾個例子程序。 對于單機(沒有連網的計算機),編寫一個服務,Windows NT啟動以后一直運行,并且有多個用戶在此計算機上登錄及退出。該服務提供的信息只對少數用戶可見。例如,想收集使用模式或者登錄數據,就可能只限于管理員訪問該數據。 許多特權限制在系統級。例如,系統注冊表受保護,使得只有具有特殊特權的用戶能夠向系統中添加設備驅動程序。這是由于安全性的原因。例如,一個惡意的用戶能夠利用設備驅動程序監控用戶輸入的能力竊取其它用戶的工作。安全性也有助于系統的穩定。設想一個未經授權的用戶安裝了一個粗制濫造的設備驅動程序。當其它用戶工作時,這樣的驅動程序會造成系統崩潰。通過將注冊新設備驅動程序的權利限制給可信賴的用戶,能夠防止Windows NT的計算機上出現這種情況。 許多在網絡上工作得與單機上同樣好的服務器程序得益于與安全性系統的某種掛鉤。例如,一個數據庫服務器可能同時為幾個用戶服務,某些用戶不允許查看給定數據庫中的某些數據。假設公司內的每個人都能夠查詢員工數據庫。管理人員需要訪問員工的全部信息,而其他人則應該只能看到工作頭銜和辦公室編號。如果將包含工資和獎金信息的字段限制于管理人員訪問,就可以允許公司內所有的人使用同一個數據庫,而不會危及安全性和機密。 安全性的微觀視圖 安全性的一個問題是使用安全性API毫無新奇刺激可言。其他人編寫的代碼可以旋轉茶壺、在窗口中顯示動畫、彈出很酷的Windows 95控件、通過MAPI來回發送數據等等,而安全性編程卻總是令人厭煩的事情。 Windows NT安全性表現的非常復雜,相比之下,從微觀水平上看則比較簡單。每個Windows NT域(或域組)保存有一個該域所知道的用戶的數據庫。用戶想要在Windows NT的域中工作,必須先使用一個用戶名和口令證明自己。一旦安全性系統證明了口令,用戶就會被關聯到一個訪問令牌,識別用戶的內部數據結構。 關于Windows NT下安全性必須知道的首要事情是它是以用戶為中心的;也就是說,試圖訪問受保護對象的每一行代碼都必須與一個特殊用戶關聯,該用戶必須用口令向客戶機證明自己的身份。每次安全性檢查都要依靠用戶鑒別。例如,編寫代碼阻止Microsoft Excel訪問一個對象是不可能的。可以保護一個對象防止Joe Blow運行Microsoft Excel訪問,但是如果允許Carla Vip訪問該對象,她可以使用Microsoft Excel或者其它喜歡的程序訪問,只要Carla使用只有自己知道的口令向客戶機證明自己的身份就行。
用戶可能不是直接看到錯誤信息,而是一個對話框,上面寫著:“你沒有特權將雞蛋從紙盒中拿走。”彈出此對話框的程序內部可能包含下面的代碼行: if (!RemoveEggsFromCarton() && GetLastError() == ACCESS_DENIED) AfxMessageBox("You do not have the privilege to remove the eggs from the carton"); 網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。 |
溫馨提示:喜歡本站的話,請收藏一下本站!