sam演算法
A. MD5加密的system32中的config/sam有沒有反編譯的工具
MD5是一種不可逆的加密演算法,所以破解是不行的,唯一的就是窮舉。你可以去 www.xmd5.com或者 www.cmd5.com 去爆一下,那裡面存的數據還是不少的,運氣好的話應該可以爆出來。
B. PSAM卡與SAM卡有什麼不同
PSAM卡內嵌於各類終端設備,為其提供IC卡級別的安全保護,
PSAM除具備用戶卡功能外,還具有計算功能。PSAM中增加了計算型密鑰。
應用范圍 PSAM主要用於商用POS,網點終端,直連終端等設備上,具有安全控制管理功能,支持多級發卡機制,適用於多應用環境
技術指標 符合ISO/IEC 7816系列國際標准,《中國金融集成電路(IC)卡規范》,《社會保障(個人)卡規范》,《中國金融IC卡試點PSAM應用規范》
產品特點 支持一卡多應用,各應用之間相互獨立(多應用、防火牆功能)。
支持多種文件類型 包括二進制文件,定長記錄文件,變長記錄文件,循環文件,錢包文件。
在通訊過程中支持多種安全保護機制(信息的機密性和完整性保護)。
支持多種安全訪問方式和許可權(認證功能和口令保護)。
支持中國人民銀行認可的DES、3DES演算法。
支持多級密鑰分散機制,產生《中國金融集成電路(IC)卡規范》中定義的MAC1和校驗MAC2。
支持多級密鑰分散機制,用分散後的密鑰作為臨時密鑰對數據進行加密、解密、MAC等運算,以完成終端與卡片之間的合法性認證等功能。
支持多種通訊協議:接觸界面支持T=0(字元傳送)和T=1(塊傳送)通訊協議。
接觸界面符合PPS協議,支持多種速率選擇。
支持多種容量選擇 可選擇8K、16K位元組EEPROM空間
安全模組(SAM卡)如同讀卡機之身分證,SAM卡與讀卡機可以視為一體,讀卡機上傳、更新、開機確認時都需要使用到SAM卡。
行動電話機與SIM卡共同構成移動通信終端設備。無論是GSM系統還是CDMA系統,數字行動電話機用戶在「入網」時會得到一張SIM卡(SubscriberIdentityMole)或UIM卡(UserIdentity Mole)。SIM卡是一張符合GSM規范的「智慧卡」,可以插入任何一部符合GSM規范的行動電話中,實現「電話號碼隨卡不隨機的功能」,而且通話費用自動計入持卡用戶的賬單上,與手機無關。
8月,三星與您激情奧運 雅典風雲熱辣速遞
LG 手機一元搶拍 精彩手機賽事全攻略
外部特徵
在實際使用中有兩種功能相同而形式不同的SIM卡:
卡片式(俗稱大卡)SIM卡,這種形式的SIM卡符合有關IC卡的ISO7816標准,類似IC卡。
嵌入式(俗稱小卡)SIM卡,其大小隻有25mm×15mm,是半永久性地裝入到移動台設備中的卡。
「大卡」上真正起作用的是它上面的那張「小卡」,而「小卡」上起作用的部分則是卡面上的銅制介面及其內部膠封的卡內邏輯電路。目前國內流行樣式是「小卡」,小卡也可以換成「大卡」(需加裝一卡托)。「大卡」和「小卡」分別適用於不同類型的GSM行動電話,早期機型如摩托羅拉GC87C、308C等手機用的是「大卡」,而目前新出的機型基本上都使用「小卡」。
思路:
反余玄函數,通過引入math.h頭文件,使用double acos(double x) 函數計算
每次求和利用for循環依次計算即可
D. 什麼是sam文件
SAM文件是WIN2000裡面保存密碼信息的文件
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: mmy:fIVTl4IgU:501:503::/home/mmy:/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被激活時,他並不立即記錄,而是在系統下次啟動時才記錄。而且,當密鑰被改變時,口令信息似乎並沒有相應更新。
E. SAM是何種文件格式請指教!
SAM文件是WIN2000裡面保存密碼信息的文件
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: mmy:fIVTl4IgU:501:503::/home/mmy:/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被激活時,他並不立即記錄,而是在系統下次啟動時才記錄。而且,當密鑰被改變時,口令信息似乎並沒有相應更新。
F. 什麼是PSAM卡、SAM卡、SIM卡
PSAM卡內嵌於各類終端設備,為其提供IC卡級別的安全保護,
PSAM除具備用戶卡功能外,還具有計算功能。PSAM中增加了計算型密鑰。
應用范圍 PSAM主要用於商用POS,網點終端,直連終端等設備上,具有安全控制管理功能,支持多級發卡機制,適用於多應用環境
技術指標 符合ISO/IEC 7816系列國際標准,《中國金融集成電路(IC)卡規范》,《社會保障(個人)卡規范》,《中國金融IC卡試點PSAM應用規范》
產品特點 支持一卡多應用,各應用之間相互獨立(多應用、防火牆功能)。
支持多種文件類型 包括二進制文件,定長記錄文件,變長記錄文件,循環文件,錢包文件。
在通訊過程中支持多種安全保護機制(信息的機密性和完整性保護)。
支持多種安全訪問方式和許可權(認證功能和口令保護)。
支持中國人民銀行認可的DES、3DES演算法。
支持多級密鑰分散機制,產生《中國金融集成電路(IC)卡規范》中定義的MAC1和校驗MAC2。
支持多級密鑰分散機制,用分散後的密鑰作為臨時密鑰對數據進行加密、解密、MAC等運算,以完成終端與卡片之間的合法性認證等功能。
支持多種通訊協議:接觸界面支持T=0(字元傳送)和T=1(塊傳送)通訊協議。
接觸界面符合PPS協議,支持多種速率選擇。
支持多種容量選擇 可選擇8K、16K位元組EEPROM空間
安全模組(SAM卡)如同讀卡機之身分證,SAM卡與讀卡機可以視為一體,讀卡機上傳、更新、開機確認時都需要使用到SAM卡。
行動電話機與SIM卡共同構成移動通信終端設備。無論是GSM系統還是CDMA系統,數字行動電話機用戶在「入網」時會得到一張SIM卡(SubscriberIdentityMole)或UIM卡(UserIdentity Mole)。SIM卡是一張符合GSM規范的「智慧卡」,可以插入任何一部符合GSM規范的行動電話中,實現「電話號碼隨卡不隨機的功能」,而且通話費用自動計入持卡用戶的賬單上,與手機無關。
8月,三星與您激情奧運 雅典風雲熱辣速遞
LG 手機一元搶拍 精彩手機賽事全攻略
外部特徵
在實際使用中有兩種功能相同而形式不同的SIM卡:
卡片式(俗稱大卡)SIM卡,這種形式的SIM卡符合有關IC卡的ISO7816標准,類似IC卡。
嵌入式(俗稱小卡)SIM卡,其大小隻有25mm×15mm,是半永久性地裝入到移動台設備中的卡。
「大卡」上真正起作用的是它上面的那張「小卡」,而「小卡」上起作用的部分則是卡面上的銅制介面及其內部膠封的卡內邏輯電路。目前國內流行樣式是「小卡」,小卡也可以換成「大卡」(需加裝一卡托)。「大卡」和「小卡」分別適用於不同類型的GSM行動電話,早期機型如摩托羅拉GC87C、308C等手機用的是「大卡」,而目前新出的機型基本上都使用「小卡」。
G. sam和sam.log各是什麼文件
SAM文件是保存密碼的文件夾。
SAM.LOG是保存密碼相關日誌文件夾。
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: mmy:fIVTl4IgU:501:503::/home/mmy:/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被激活時,他並不立即記錄,而是在系統下次啟動時才記錄。而且,當密鑰被改變時,口令信息似乎並沒有相應更新。
H. 什麼是sam資料庫中的口令哈希
sam就是windows系統的用戶密碼配置文件,它的內容即是hash計算出來的,微軟的密碼有自己的加密演算法,有興趣可以自己搜索。
I. 求大神破解win7 SAM文件
1、Win7系統的SAM文件存儲用戶密碼,不能直接復制出來的,本機的SAM文件存儲於X:windowssystem32configsam文件中(x指的系統盤,一般為C盤),事實上存儲的密碼是經過不可逆加密演算法處理的Hash散列。
2、因為Sam文件是不能復制出來的,因此Windows提供給用戶一個操作SAM文件的程序——注冊表編輯器,查看步驟具體如下:
1):開始——搜索程序和文件中,輸入regedit,找到後,右鍵」以管理員身份運行「,打開注冊表編輯器後找到HKEY_LOCAL_MACHINESAM,對於此鍵下的所有子鍵的修改,都會保存於config目錄下的sam文件。
2):要展開sam鍵,需要在sam鍵上右鍵,選擇」許可權「,將管理員組的許可權設置為「完全控制」,然後F5刷新即可看到sam鍵下的子鍵了。