大家知道嗎?微軟發布的具有數位簽章的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、Hotfix分發、作業系統升級、Windows Update、Windows裝置管理員/類別安裝程式。