大家知道嗎?微軟發布的具有數字簽名的SP2才是正式版本(右擊打開文件屬性窗口可以查看到圖1所示的數字簽名信息),這是怎麼一回事呢?
圖1 一、Windows的文件保護功能 在windows 2000以前的Windows版本中,安裝操作系統之外的軟件,可能會覆蓋掉一些共享的系統文件,例如動態鏈接庫(*.dll文件)、可執行文件(*.exe),這樣可能會導致程序運行不穩定、系統出現故障,這主要是由於所謂的DLL陷阱所導致。
為了徹底解決這一問題,在windows 2000和windows xp中,微軟引入了“Windows文件保護”機制用來防止替換受到保護的系統文件,包括*.sys、*.dll、*.ocx、*.ttf、*.fon、*.exe等類型的文件,Windows文件保護在後台自動運行,可以保護Windows安裝程序安裝的所有文件。
Windows文件保護能夠檢測到其他程序要替換或移動受保護的系統文件的意圖,那麼它是依據什麼來檢測的呢?其實,Windows文件保護是通過檢測文件的數字簽名,以確定新文件的版本是否為正確的Microsoft版本,如果文件版本不正確,Windows文件保護會自動調用dllcache文件夾或Windows中存儲的備份文件替換該文件,如果Windows文件保護無法定位相應的文件,那麼會提示用戶輸入該位置或插入安裝光盤。
二、認識數字簽名 數字簽名是允許用戶驗證的,如果某文件沒有有效的數字簽名,那麼將無法確保該文件確實來自它所聲明的來源,或者無法確保它在發行之後未被篡改過(可能由病毒篡改)。此時,比較安全的做法是,除非你確定該文件的創建者而且知道其內容,那麼才能安全地打開,否則建議不要輕易打開該文件。凡是通過了微軟數字簽名的硬件或軟件,其外包裝上一般都會出現“為Microsoft Windows XP設計(Designed for Microsoft windows xp)”的徽標。
在計算機上安裝新軟件時,系統文件和設備驅動程序文件有時會被未經過簽名的或不兼容的版本覆蓋,導致系統不穩定。隨windows xp一起提供的系統文件和設備驅動程序文件都有Microsoft數字簽名,這表明這些文件都是原始的未更改過的系統文件,或者它們已被Microsoft同意可以用於Windows。在windows 2000/XP中提供了“文件簽名驗證”工具(見圖2),Windows 9x則提供了“系統文件檢查器”,我們可以通過這些工具來檢查系統文件的數字簽名狀態。
圖2
默認情況下,Windows文件保護始終處於啟用狀態,同時允許Windows數字簽名文件替換現有文件。目前,簽名文件通過以下方式進行分發:Windows Service Pack、修補程序分發、操作系統升級、Windows Update、Windows設備管理器/類別安裝程序。