本章所討論的安全性包括ms windows安全性和程式碼存取安全性(code access security),ado.net的安全性。
1.應用程式安全性概述
.net framework實現一個包含兩層防護的安全體系。第一層稱為角色型安全性,該層控制使用者對應應用程式資源和操作的訪問;第二層CAS,該層不僅控制碼對資源的訪問,還控制碼執行特權操作的許可權。
1.1 身分識別驗證
身分識別驗證(Authentication)是擷取使用者認證(使用者名稱,密碼)以識別和確認某個機構的過程。
認證(credentials)通常包含一個標示符和身份證據,如使用者名稱和密碼、電子郵件地址和密碼、使用者名稱和數位憑證等。
1.2授權
授權(Authorization)是確定使用者是否能夠獲得某種資源存取權限的過程。資源可能是檔案、資料庫、註冊表等。訪問類型包括讀取操作、寫入操作。寫入又包括添加、刪除、修改等操作。
1.3身份類比
身份類比(Impersonation)允許以客戶的身份執行代碼。
1.4委派
在電腦之間進行身份類比稱為委派(delegation)。
1.5角色型安全性
1.5.1工作群組環境
在工作群組環境中,每台電腦都在自己的目錄中定義了需要訪問本電腦的使用者。
1.5.2域環境
在域環境中,網域控制站包含一個活動目錄,該目錄將列出能夠訪問本域的使用者。工作站包含一個分配給資源的本機群組的目錄。
1.5.A 工作群組與域
工作群組和域是我們區域網路中兩個非常重要的概念,但是很多人卻它們之間的關係卻弄不清楚,今天我們就和大家一起來瞭解它們之間的差別。
一、工作群組
一個網路建成後,預設所有電腦都處在網路位置中。當電腦比較多時,則顯的非常的亂。因此,可以對其進行分組進行管理。例如“銷售部”、“服務部”等,屬於這些部分的電腦分別加入相應的組中,這樣我們開啟網路位置首先看到的是這些組,進入組後看到的才是一台台具體的電腦。
對此,我們某一台電腦要加入組中,只需要右擊開啟我的電腦屬性視窗,在“電腦名稱”中單擊“更改”按鈕,然後將“隸屬於”設為“工具組”,並輸入自己所屬的工作群組名稱,如果輸入的是新名稱,那麼則預設建立該組並加入該組,設定完畢單擊“確定”按鈕重新啟動後生效。
如果是寬鬆型的,對管理要求不是特別高的可以使用工作群組;
從上面的介紹可以看出工作群組內的每一台電腦之間是平等的,每一個人都可以自由控制自己加入哪一個組,顯的比較鬆散。因此我們又引入了“域”的概念。
二、域
由一台電腦充當網域服務器,由它控制其它電腦能否加入域。
要加入到域,那麼則必須在網域服務器的管理工具中開啟“Active Directory使用者和電腦”,然後在左側選擇“電腦”,並在右側右擊選擇“建立”中的“電腦”,填入要加入域的客戶機的名稱,建議使用有一定規律的英文。
在網域服務器上做好後,就可以在客戶電腦上開啟系統屬性視窗,然後在“電腦名稱”中單擊“更改”按鈕,將“隸屬於”設為“域”,然後按提示輸入欄位名以及域使用者賬戶即可。
如果對資源的訪問有較嚴格的管理,那麼則應建立域。
1.6程式碼存取安全性
程式碼存取安全性(CAS)能最大限度地防止使用者無意識地執行不安全的代碼。
1.6.1證據
1.6.2代碼存取權限
代碼存取權限用於定義訪問特定資源的權利。.net架構實現了多種代碼存取權限,以保護系統資源。
1.6.3處理CAS
1.6.4程式碼群組
程式碼群組用於定義一組授予程式集的許可權。
1.6.5許可權集
許可權集是一組可以根據需要分配給程式碼群組的許可權。
1.6.6運行時安全性原則層級
運行時安全性原則層級是一組可應用於企業、本機電腦、使用者、和應用程式定義域的安全層級。每個安全層級都擁有自己的程式碼群組和許可權集層次。
1.6.7修改應用程式定義域級安全性原則
1.6.8建立一個測試安全性的項目