本站小編為你精心準備了Windows操作系統中密碼解決參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
摘要本文從密碼學的角度對windows操作系統進行了分析,指出了Windows操作系統是如何通過程序來實現密碼安全功能的,并描述了Windows操作系統的安全特征及實現用戶認證的技術細節。
關鍵詞CSP;MS-CAPI;數字證書;ActiveX控件;COM組件;NTLM;域控制器
1引言
在安全方面,微軟開發并免費提供一套密碼接口API(MS-CAPI),使用這套API能夠解決Windows操作系統中的密碼安全問題。
像JAVA中的JCA/JCE一樣,MS-CAPI隱藏了密碼算法本身的一些繁瑣內容,而僅體現出功能上的要求。MS-CAPI同樣使用了引擎和類的方式,但它有自己的術語描述方法。在MS-CAPI中,提供者類等同于我們常說的CSP(CryptographicServiceProviders)。不同的廠家提供的CSP在內部實現代碼上可能不盡相同,但是在對外接口上按照微軟的定義都是完全一樣的。MS-CAPI提供一套通用的但需要CSP支持的外包接口,應用程序開發者通過使用這套接口來實現密碼安全功能。CSP的內部內容對于應用程序的開發者來說是透明的。MS-CAPI自帶默認的微軟CSP,這個CSP也可被其它第三方的CSP所替代。
圖1MS-CAPI與CSP的關系
圖2MS-CAPI方法與CSP
CSP實際上就是一個DLL文件,這個文件必須經過微軟的簽名才能保證它在Windows操作系統中的可用性,目前,微軟免費對第三方的CSP進行簽名。在應用過程中,Windows操作系統首先要驗證簽名合法性后才能正常使用。
2MS-CAPI
我們來看一段用VB寫的小程序,這是運用MS-CAPI來生成數字簽名的例子。例子本身很簡單,但筆者還是給出了一定的注解,便于閱讀。
//給需要簽名的明文分配一個變量strPlainText
strPlainText=”明文數據”
//通過CAPICOM數字簽名類創建一個對象,給對象命名oDigSig
setoDigSig=CreateObject(“CAPICOM.SignedData”)
//在數字簽名對象和明文建立關聯
oDigSig.Content=strPlainText
//設置輸出數據僅為簽名結果而不包含明文
fDetached=TRUE
//生成明文。通過調用數字簽名對象的Sign方法,同時傳遞相應參數到方法中,變量signature包含簽名結果
signature=oDigSig.Sign(Nothing,fDetached)
和JCA/JCE類似,MS-CAPI的最大優點就在于它是完全公開的,用戶可以自由的使用。而且,它已經成為了IE和Windows2000以上操作系統的一部分。在未來的日子里,依靠微軟的品牌效應再加上Windows操作系統龐大的用戶群,很可能使得MS-CAPI成為相當流行的密碼安全類軟件。MS-CAPI另一大優點在于CAPICOM。CAPICOM是一個COM客戶端,可以通過ActiveX控件或COM組件的形式進行密碼函數的自動調用,CAPICOM用于處理基本的密碼操作,如簽名驗證,數字信封,解密數字信封,加解密數據,檢查數字證書的有效性等。CAPICOM可以用VB或VC進行調用。
3安全與Windows操作系統3.1安全特征
(1)安全登錄與反欺騙措施:安全登錄要求管理員為所有用戶設置一個口令用于登錄。黑客會開發一個能夠給用戶顯示登錄界面的程序,然后通過某種方式在用戶終端上運行,而不加懷疑的用戶往往會認為這個登錄界面就是系統的登錄界面,并在其中輸入自己的用戶ID和口令,攻擊者以此方式輕易地就能夠截獲用戶ID和密碼,并顯示一個登錄失敗的錯誤信息給用戶。Windows2000以上操作系統通過要求用戶使用CTRL-ALT-DEL結合的方式進行登錄來防止上述攻擊。鍵盤驅動程序在捕捉到CTRL-ALT-DEL的序列以后,會通知系統調用正確的登錄顯示界面。在Windows中,是沒有辦法屏蔽CTRL-ALT-DEL三鍵組合消息的,因此,使得黑客欺騙變得無機可乘。
(2)任意訪問控制:這種機制允許資源如文件的擁有者能夠決定誰并且能夠以哪種方式來訪問資源。
(3)權限訪問控制:這種機制允許系統管理員在出現問題的情況下,超越任意訪問控制的范圍。
(4)地址空間保護:Windows2000以上操作系統給每個進程提供獨立的受保護的虛擬地址空間,這樣就有效地防止了惡意的進程攻擊。
(5)新頁歸零:這種機制保證了任何新頁都是從內存地址二進制0開始的,這樣一來,一個進程就無法知道它前面的那個進程到底做了些什么。
(6)安全審計:利用這個機制,系統管理員能夠通過查詢系統產生的日志了解系統的相關安全事件。
每個Windows2000的用戶和用戶組會被分配一個惟一的SID,這個SID由一個隨機數和一個短的二進制的頭標志組成。每個SID在全世界惟一。進程和線程只有在用戶的SID下才能運行。每個進程在Windows2000下都有一個包含SID和其它信息的可訪問令牌。系統中的每個資源(如文件)又都有一個對應的安全描述符,該描述符描述了哪個SID允許做哪些操作。
3.2用戶認證
Windows2000使用Kerberos協議來完成用戶身份認證。同時系統也支持WindowsNT的挑戰/響應機制,這種機制又被稱之為NTLM。NTLM以挑戰/響應機制為基礎,同時避免明文口令的簡單傳遞。NTLM的工作原理如下:
(1)用戶在登錄界面上輸入用戶ID和口令。用戶的計算機計算出口令的摘要值,同時在內存中銷毀用戶輸入的口令。
(2)客戶端將用戶ID的明文傳遞到服務端。
(3)服務器傳送16字節的隨機數到客戶端。
(4)客戶端用口令計算出的摘要加密隨機數,客戶端將加密結果(客戶端響應值)傳送到服務器端。
(5)服務器將用戶ID、傳給客戶端的隨機數、客戶端響應值(即客戶端加密結果)傳遞給一臺特殊的機器,我們稱之為域控制器。在域控制器上保留著所有的用戶ID和口令的消息摘要值。
(6)域控制器接收到從服務器端傳來的上述數據以后,從數據庫(SAM)中可以得到當前用戶對應的口令消息摘要值,并且用它來加密從服務器端傳來的隨機數。
(7)域控制器通過比較從服務器端傳來隨機數加密結果(第5步)和自身計算得到的結果(第6步)的一致性,來判斷用戶的身份是否合法。
圖3WindowsNTLM的認證過程
4結論
從安全性的角度來說,Windows系統本身還有諸多方面值得我們進行深入的研究,因為Windows系統的安全性被集成到了操作系統的方方面面,大多數安全決策被本地的安全頒發策略所控制,本文的側重點僅在于關于密碼安全基礎的概念方面,力圖使讀者對于系統的安全特性有所了解,以便日后再進行深入研究。
參考文獻
[1]SteveBurnett&StephenPaine著,馮登國,周永彬,張振峰,李德全等譯.《密碼工程實踐指南》.清華大學出版社,2001.10
[2]BruceSchneier著,吳世忠等譯.應用密碼學——協議、算法與C源程序.機械工業出版社,2000
[3]張世永.《網絡安全原理與應用》.科學出版社
[4]尹傳勇,劉壽強,陳嬌春.《基于PKI/CA身份認證體系的應用研究》.計算機安全