今天接到一封熱心讀者朋友的來信,他在來信中提到一個很有意義的問題:在局域網(wǎng)中訪問對方的電腦時,會彈出一個對話框,要求輸入對方計算機用戶名和密碼。如果選中記住密碼,那么下次訪問時就不用再輸入了,我想知道這個用戶名和密碼存儲在注冊表的哪個位置?
筆者認(rèn)為,這是一個很好的問題,Windows 2000只能把網(wǎng)絡(luò)訪問憑據(jù)保存在登錄會話里,重啟或者注銷后,這些網(wǎng)絡(luò)憑據(jù)就會被清空。
而在Windows XP/Vista的某些版本里,則可以選擇保存網(wǎng)絡(luò)訪問憑據(jù),我們可以隨后在“存儲的用戶名和密碼”對話框選擇手動添加或者刪除網(wǎng)絡(luò)訪問憑據(jù)。
問題是,這些網(wǎng)絡(luò)訪問憑據(jù),是保存在注冊表里嗎?
為了解決這個問題,筆者做了個實驗,準(zhǔn)備用Process Monitor對系統(tǒng)的注冊表和文件訪問活動進(jìn)行監(jiān)視,以下以Windows Vista旗艦版為例進(jìn)行介紹。打開“存儲的用戶名和密碼”,手動添加一個憑據(jù),如圖所示。
結(jié)果發(fā)現(xiàn),Process Monitor提示Lsass進(jìn)程會在“C:\Users\Admin\AppData\Roaming\Microsoft\Protect\S-1- 5-21-118199911-2510020216-4247364677-1000”目錄下創(chuàng)建一個Preferred文件。這個文件一般是用來提示系統(tǒng)選擇所需的主密鑰。
C:\Users\Admin\AppData\Roaming\Microsoft\Protect下保存的是指定用戶的主密鑰,S-1-5-21-118199911-2510020216-4247364677-1000就是筆者所使用帳戶的SID。
同時Process Monitor提示Lsass進(jìn)程會在“C:\Users\Admin\AppData\Roaming\Microsoft\Credentials” 下創(chuàng)建一個5958C724801B91E50915D98404E30E25文件,這就是新建憑據(jù)的對應(yīng)文件。
如果刪除該5958C724801B91E50915D98404E30E25的憑據(jù)文件,再打開“存儲的用戶名和密碼”對話框,就會發(fā)現(xiàn)網(wǎng)絡(luò)訪問憑據(jù)已經(jīng)被刪除,這再次證明了兩者的對應(yīng)關(guān)系。
可見,網(wǎng)絡(luò)訪問憑據(jù)并不是保存在注冊表上,而是保存在文件系統(tǒng)里。
評注:
系統(tǒng)用Preferred文件指定的主密鑰,對網(wǎng)絡(luò)訪問憑據(jù)進(jìn)行加密,并保存在%AppData%\Microsoft\Credentials下。
筆者認(rèn)為,這是一個很好的問題,Windows 2000只能把網(wǎng)絡(luò)訪問憑據(jù)保存在登錄會話里,重啟或者注銷后,這些網(wǎng)絡(luò)憑據(jù)就會被清空。
而在Windows XP/Vista的某些版本里,則可以選擇保存網(wǎng)絡(luò)訪問憑據(jù),我們可以隨后在“存儲的用戶名和密碼”對話框選擇手動添加或者刪除網(wǎng)絡(luò)訪問憑據(jù)。
問題是,這些網(wǎng)絡(luò)訪問憑據(jù),是保存在注冊表里嗎?
為了解決這個問題,筆者做了個實驗,準(zhǔn)備用Process Monitor對系統(tǒng)的注冊表和文件訪問活動進(jìn)行監(jiān)視,以下以Windows Vista旗艦版為例進(jìn)行介紹。打開“存儲的用戶名和密碼”,手動添加一個憑據(jù),如圖所示。
結(jié)果發(fā)現(xiàn),Process Monitor提示Lsass進(jìn)程會在“C:\Users\Admin\AppData\Roaming\Microsoft\Protect\S-1- 5-21-118199911-2510020216-4247364677-1000”目錄下創(chuàng)建一個Preferred文件。這個文件一般是用來提示系統(tǒng)選擇所需的主密鑰。
C:\Users\Admin\AppData\Roaming\Microsoft\Protect下保存的是指定用戶的主密鑰,S-1-5-21-118199911-2510020216-4247364677-1000就是筆者所使用帳戶的SID。
同時Process Monitor提示Lsass進(jìn)程會在“C:\Users\Admin\AppData\Roaming\Microsoft\Credentials” 下創(chuàng)建一個5958C724801B91E50915D98404E30E25文件,這就是新建憑據(jù)的對應(yīng)文件。
如果刪除該5958C724801B91E50915D98404E30E25的憑據(jù)文件,再打開“存儲的用戶名和密碼”對話框,就會發(fā)現(xiàn)網(wǎng)絡(luò)訪問憑據(jù)已經(jīng)被刪除,這再次證明了兩者的對應(yīng)關(guān)系。
可見,網(wǎng)絡(luò)訪問憑據(jù)并不是保存在注冊表上,而是保存在文件系統(tǒng)里。
評注:
系統(tǒng)用Preferred文件指定的主密鑰,對網(wǎng)絡(luò)訪問憑據(jù)進(jìn)行加密,并保存在%AppData%\Microsoft\Credentials下。