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