防止 Windows 7 無線網絡連接屬性顯示明文密碼
Windows 7 無線網絡連接屬性的“安全”選項卡有一項名為“顯示字符”的復選框,勾選此復選框可以將無線網絡連接的密碼以明文的形式顯示出來。Windows 7 提供“顯示字符”原本是方便用戶在忘記密碼時
可以查看,然而此功能卻普遍被視為無線連接密碼泄露的安全隱患。很多用戶都希望將“顯示字符”復選框設置為禁用以避免自己的無線連接密碼外泄。
遺憾的是,Windows 7 無論在網絡連接設置還是在組策略中均未提供直接禁用“顯示字符”的選項。這是
因為 Windows 7 的設計初衷是希望我們通過用戶帳戶與密碼來保護個人數據的安全。換言之,Windows 7希望我們將電腦臨時借給別人使用時,能夠暫時注銷或切換用戶帳戶返回歡迎屏幕,讓別人以其它用戶帳戶重新登錄,這樣一來就沒有必要禁用我們自己帳戶的“顯示字符”?墒潜娝苤,微軟在幾代 Windows一直大力推薦的這種“快速用戶切換”理論一直沒能在普通用戶中流行起來。自從 Windows XP 首次引入“快速用戶切換”功能至今,大多數用戶依然只在自己的電腦中設置一個用戶帳戶,并經?犊蠓降亟杞o別人使用。因此對于這些用戶而言,我們確實有必要想辦法禁用無線網絡連接的“顯示字符”功能。
經過 Process Monitor 對“顯示字符”調用的注冊表項的監視,筆者發現“顯示字符”復選框與注冊表項
HKEY_CLASSES_ROOT\AppID\{86F80216-5DD6-4F43-953B-35EF40A35AEE} 存在著關聯。在默認的
系統設置中此注冊表項的“默認”值為 CElevateWLANUI,有一個名為 AccessPermission 的二進制值、一個名為 DLLSurrogate 的字符串值。此注冊表項的默認權限設置非常嚴格,只有 TrustedInstaller 具有完全控制權限,包括 SYSTEM 以及所有管理員帳戶、非管理員帳戶對此注冊表項均只具有“讀取”權限。
如果我們希望一個用戶帳戶的“顯示字符”功能失效,需要將此用戶所在的組對此注冊表項僅有的“讀取”權限也取消掉。為實現此目的,我們必須首先獲取此注冊表項的所有權,將此注冊表項的所有者由默認的TrustedInstaller 修改為我們執行修改操作的管理員帳戶。拿到注冊表項的所有權后我們就可以重新編輯此注冊表項的權限設置,將希望禁用“顯示字符”的用戶帳戶組從此注冊表項的用戶列表中刪除,或者將僅有的“讀取”權限也取消即可。例如,假設一臺計算機已加入域,如果我們將此注冊表項中的所有本地用戶組均從列表中刪除或取消其全部權限,只保留域管理員對此注冊表項的權限,那么這臺計算機就只有域管理員登錄后才可以使用“顯示字符”查看密碼,從本地登錄的所有用戶都將無法再使用“顯示字符”。
另外一個可以針對所有的用戶帳戶組統一生效的方法是修改字符串值 DLLSurrogate,將其值由默認的空白修改為 1。這樣無論我們以何種用戶帳戶登錄,雖然“顯示字符”復選框看起來還可以勾選,但設置卻無法生效,并且會自動恢復為未選中的狀態。當然由于 DLLSurrogate 繼承了父級注冊表項的權限,默認也是歸TrustedInstaller 所有并無權修改,所以我們也必須首先獲取注冊表項的所有權才能將 DLLSurrogate 的值由空白修改為 1。
除了可以直接顯示明文密碼的“顯示字符”復選框外,Windows 7 無線網絡連接屬性中還提供了導出無線
連接配置文件的功能,也可能會成為無線連接密碼泄露的隱患。對那些基本不使用快速用戶切換重新登錄的用戶來說,可能也很想將這個導出功能一并禁用。經過 Process Monitor 的監視,此導出功能與注冊表項 HKEY_CLASS_ROOT\AppID\{C100BEBB-D33A-4A4B-BF23-BBEF4663D017} 有關。我們可以參照之前對 {86F80216-5DD6-4F43-953B-35EF40A35AEE} 的處理,首先獲取其所有權,然后取消希望禁用導出的用戶帳戶組對此注冊表項的全部權限,即可禁用相應用戶帳戶導出無線連接配置的功能。
|