史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 資訊系統安全備援防護技術文件
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2003-12-02, 08:46 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 SAM文件基礎知識

windows NT及win2000中對用戶帳戶的安全管理使用了安全帳號管理器(security account manager)的機制,安全帳號管理器對帳號的管理是通過安全標識進行的,安全標識在帳號新增時就同時新增,一旦帳號被刪除,安全標識也同時被刪除。安全標識是唯一的,即使是相同的用戶名,在每次新增時獲得的安全標識都時完全不同的。因此,一旦某個帳號被刪除,它的安全標識就不再存在了,即使用相同的用戶名重建帳號,也會被賦予不同的安全標識,不會保留原來的權限。

安全帳號管理器的具體表現就是%SystemRoot%\\system32\\config\\sam文件。sam文件是windows NT的用戶帳戶資料庫,所有NT用戶的登入名及密碼等相關資訊都會儲存在這個文件中。sam文件可以認為類似於unix系統中的passwd文件,不過沒有這麼直觀明瞭。passwd使用的是存文本的格式儲存信息,這是一個linux passwd文件內容的例子

0: root:8L7v6:0:0:root:/root:/bin/bash
1: bin:*:1:1:bin:/bin:
2: daemon:*:2:2:daemon:/sbin:
3: adm:*:3:4:adm:/var/adm:
4: lp:*:4:7:lp:/var/spool/lpd:
5: sync:*:5:0:sync:/sbin:/bin/sync
6: shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown
7: halt:*:7:0:halt:/sbin:/sbin/halt
8: mail:*:8:12:mail:/var/spool/mail:
9: news:*:9:13:news:/var/spool/news:
10: uucp:*:10:14:uucp:/var/spool/uucp:
11: operator:*:11:0perator:/root:
12: games:*:12:100:games:/usr/games:
13: gopher:*:13:30:gopher:/usr/lib/gopher-data:
14: ftp:*:14:50:FTP User:/home/ftp:
15: nobody:I0iJ.:99:99:Nobody:/home/httpd:/bin/bash
16: david:c6CuzM:500:500::/home/david:/bin/bash
17: dummy:fIVTl4IgU:501:503::/home/dummy:/bin/bash
18: msql:!!:502:504::/home/msql:/bin/bash
unix中的passwd文件中每一行都代表一個用戶資料,每一個帳號都有七部分資料,不同資料中使用":"分割格式如下
帳號名稱:密碼:uid:gid:個人資料:用戶目錄:shell
除了密碼是加密的以外(這裡的密碼部分已經shadow了)其他項目非常清楚明瞭。
而NT中就不是這樣,雖然他也是用文件儲存帳號信息,不過如果我們用編輯器開啟這些NT的sam文件,除了亂碼什麼也看不到。因為NT系統中將這些資料全部進行了加密處理,一般的編輯器是無法直接讀取這些信息的。註冊表中的
HKEY_LOCAL_MACHINE\\SAM\\SAM
HKEY_LOCAL_MACHINE\\SECURITY\\SAM
儲存的就是SAM文件的內容,在正常設定下僅對system是可讀寫的。

*** NT的帳號信息在SAM文件中是如何存儲的呢?***

在SAM文件中儲存了兩個不同的密碼信息:LanManager(LM)密碼散列算法和更加強大的加密NT版。LM就是NT密碼文件的弱點。我們來看看LM密碼算法是如何加密密碼的,考慮這樣一個密碼:Ba01cK28tr,這樣的密碼已經可以稱的上是一個安全的密碼了,雖然沒有!#等特殊字串,但是已經包含大寫字母,小寫字母和數字,並且具有無規律性。可以認為是符合安全的要求的一個密碼。
LM對密碼的處理方法是:如果密碼不足14位,就用0把密碼補足14位,並把所有的字母轉稱大寫字母。之後將處理後的密碼分成兩組數字,每組是7位。剛才我們所提到的密碼經處理後就變成BA01CK2和8TR0000部分。然後由這兩個7位的數字分別產生8位的DES KEY,每一個8位的DES KEY都使用一個魔法數字(將0x4B47532140232425用全是1的一個KEY進行加密獲得的)再進去行一次加密,將兩組加密完後的字串串連在一起,這就是最終的密碼散列。這個字串傳看起來是個整體,但是象L0phtcrack這樣的破解軟體,他能將密碼字串串的兩部分獨立的破解,因此,破解上面所提到密碼(10位),由於密碼已經被分解為兩部分破解,而後面的那部分密碼由於只有3位,破解難度可想而知並不困難。實際的難度就在前面的七位密碼上了。因此就NT而言,一個10位的密碼與一個7位的密碼相比並沒有太高的安全意義。由此還可以瞭解:1234567*$#這樣的密碼可能還不如SHic6這樣的密碼安全。(關於如何設定安全密碼的問題不是本文的範圍,有興趣的可以參考相關文章)
而正式的密碼(加密NT版)是將用戶的密碼轉換成unicode編碼,然後使用MD4算法將密碼加密。

NT之所以保留兩種不同版本的密碼是由於歷史原因造成的,在一個純NT的環境中應該將LAN manager密碼關閉。因為LAN manager密碼使用了較弱的DES密鑰和算法,比較容易破解。相比較之下,使用較強加密算法的NT正式密碼要安全些。
但是這兩種密碼的加密方法從總體上來說強度還是不足,因此,微軟在win NT4的SP3之和以後的修正檔中,提供了一個syskey.exe的小工具來進一步加強NT的密碼。這個軟體是可以選項使用的,管理員只要執行一下這個程序並回答一些設定問題就可以增加這項增強功能。(windows2000已經作為預設安裝設定了)
syskey被設計用來防止輕易獲得SAM密碼,它是如何工作的呢?
當syskey被啟動,密碼信息在存入註冊表之前還進行了一次加密處理。然而,在機器啟動後,一個舊的格式的信息還是會儲存在記憶體中,,因為這個舊格式的密碼信息是進行網路驗證的所需要的。
可以這樣認為:syskey使用了一種方法將密碼信息搞亂。或者說使用了一個密鑰,這個密鑰是啟動syskey由用戶選項儲存位置的。這個密鑰可以儲存在軟碟,或者在啟動時由用戶產生(通過用戶輸入的密碼產生),又或者直接儲存在註冊表中。由於沒有官方的正式技術說明如何關閉syskey,所以syskey一旦啟用就無非關閉,除非用啟用syskey之前的註冊表制作備份恢復註冊表。

*** 將syskey啟動後系統有什麼發生了什麼,如何關掉syskey呢?***

-1-

將syskey啟動後,在註冊表HKLM\\System\\CurrentControlSet\\Control\\Lsa下被增加了新的鍵值\'SecureBoot\'中儲存了syskey的設定:
1 - KEY儲存在註冊表中
2 - KEY由用戶登入時輸入的密碼產生
3 - KEY儲存在軟碟中
但是把主鍵刪除或者把值設成0並沒能將syskey關閉,看來還有其他的地方......

-2-
HKLM\\SAM\\Domains\\Account\\F 是一個二進制的結構,通常儲存著電腦的SID和其他的描述信息。當syskey被啟動後,其中的內容就變大了(大小大約是原來的兩倍) 增加的部分估計是加密的KEY+一些標記和其他的數值,這些標記和數值中一定有一部分包括 SecureBoot 相同的內容。所以,在NT4(已安裝SP6修正檔包)將這些標記位設為0可能就可以關閉syskey了。在改變這些設定時系統給出了一個錯誤提示說明SAM和系統設定相互衝突,但是在重新啟動電腦後,系統已經不再使用syskey了。

-3-
再win2000中還有另一個地方還存儲著關於syskey的信息
HKLM\\security\\Policy\\PolSecretEncryptionKey\\
這也是一個二進制的結構,也是使用同樣的存儲方式,將這裡相應部分同樣設為0,syskey就已經從win2000中移除了。(如果這三部分修改出現錯誤(不一致),系統會在下次啟動是自動恢復為預設值)

-4-
,然後就是密碼信息部分。舊的密碼信息是長度是16字元,但使用syskey後長度全部被增加到20字元。其中頭四個字元看起來想是某種計數器,可能是歷史使用記錄計數器。奇怪的是,當syskey被啟動時,他並不立即記錄,而是在系統下次啟動時才記錄。而且,當密鑰被改變時,密碼信息似乎並沒有相應更新。 
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 01:07 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1