設備驅動程式是關鍵組件 以便Windows能夠理解 硬件顯示卡、印表機、Wi-Fi適配器、音效卡等等。當驅動程式出現問題時,會出現奇怪的錯誤,設備停止工作,或發生難以解釋的崩潰。更複雜的是,多年來,微軟一直要求其中許多驅動程式必須… 數位簽名 為了能夠正常充電。
Windows 中的驅動程式簽章驗證 驅動程式簽署是一項強大的安全措施,但當您需要安裝舊版驅動程式、測試版驅動程式或未經微軟批准的製造商提供的驅動程式時,它也可能帶來許多麻煩。本文將詳細介紹驅動程式簽署的概念、驗證方法、遇到臭名昭著的「Windows 無法驗證數位簽章…(程式碼 52)」錯誤時的應對措施,以及停用(臨時或永久)此驗證的方法及其所有相關風險。
Windows 中的驅動程式簽章究竟是什麼?
控制器的數位簽章起到真實性證書的作用。這與已簽署應用程式中使用的簽名非常相似。本質上,它表明驅動程式檔案自開發者簽署以來未被修改,並且已經過微軟認為可靠的驗證過程。
當製造商向微軟發送驅動程式時這些驅動程式可以進行測試(例如,使用 HLK/HCK)或透過認證簽名。無論哪種方式,最終都會產生一個由 Microsoft 頒發的憑證簽署的軟體包。此簽章保證驅動程式適用於特定的作業系統和使用場景,並且從來源檔案傳輸到您的電腦的過程中沒有被損壞或篡改。
對於一般使用者而言,這種簽章可以起到安全過濾的作用。預設情況下,Windows 只載入經過審核的驅動程式。如果您嘗試安裝未簽署或簽署無效的驅動程序,系統可能會封鎖安裝、顯示警告,或直接無法載入設備,尤其是在 64 位元版本的 Windows Vista 及更高版本中。
在後台,控制器簽名也用於對抗非常嚴重的威脅。 例如rootkit,它們偽裝成系統驅動程式來取得權限。 系統一旦此類惡意軟體被安裝為控制器,它就可以監控流量、攔截使用偽造證書的連接、禁用防毒軟體,並隱藏在非常低的級別,使得在沒有[不清楚 - 可能是「防毒」或「防毒」]的情況下幾乎不可能檢測到它。 格式.
因此,一般規律很明確。盡可能使用製造商或[unclear/unclear]提供的簽章驅動程式。 Windows更新只有當您有充分的理由並且確切知道自己要安裝什麼時,您才應該跳過簽名。

案例研究:錯誤代碼 52 “Windows 無法驗證數位簽章…”
從 Windows Vista x64 和 Windows Server 2008 及更高版本開始經常會遇到以下錯誤訊息:“Windows 無法驗證此裝置所需驅動程式的數位簽章。最近的硬體或軟體變更可能安裝了未正確簽署、已損壞或來自未知來源的惡意軟體的檔案。(代碼 52)”
這則訊息的意思很簡單,就是控制器的簽名無效。 這取決於您系統目前生效的策略。可能是驅動程式根本沒有簽名、頒發機構不受信任、憑證已過期,或是文件完整性受到損害。
實際上,結果是 Windows 會阻止裝置運作。例如,這在某些Wi-Fi適配器中很常見。 USB 例如某些 TP-Link TL-WN722N 型號:裝置管理員可以識別它們,但顯示代碼 52,且裝置無法運行,除非您啟動系統時暫時停用強制應用程式簽章(使用 F8 或進階啟動選項)。
如果你每次啟動電腦都必須按 F8 鍵或使用進階啟動選項,那麼你的電腦可能有問題。 如果您的驅動程式無法正常運作,則表示問題出在憑證簽署上。可能是驅動程式已過時、已修改,或它使用的憑證不被您目前使用的 Windows 版本信任。
理想的解決方案是盡可能取得已正確簽署的驅動程式版本。可以從製造商的官方網站或透過 Windows 更新取得。如果無法透過以上方式獲取,也有方法可以放寬或停用簽名驗證,但務必極其謹慎地使用這些方法。
如何驗證驅動程式提交中的 Microsoft 簽名
在硬體開發、測試或分發環境中經常需要驗證一組驅動程式是否真正有效。 由微軟簽署以及它是否通過了認證或HLK/HCK測試。為此,第一步是從相應的微軟硬體面板下載已簽署的軟體包。
從出貨單下載已簽署驅動程式檔案的一般步驟 具體步驟如下:在硬體入口網站上找到發貨單,選擇私有產品標識符,輸入驅動程式詳細信息,然後在“包裹和簽名屬性”部分中使用“更多”選項,然後選擇“下載簽名文件”。
拿到軟體包後,關鍵元素通常是 .cat 檔案。 與控制器關聯。此目錄包含簽名和認證資訊。您可以從中查看用於簽署的憑證及其允許的用途。
使用圖形介面驗證 Microsoft 簽名您可以右鍵單擊驅動程式的 .cat 文件,開啟“屬性”,然後選擇“數位簽章”標籤。在那裡,您將看到用於簽署的憑證名稱。按一下該簽署的“詳細資料”,然後進入憑證的“詳細資料”選項卡,即可查看“增強金鑰用法”(EKU)欄位。
EKU 指示該簽章憑證的用途。對於 Windows 硬體驅動程序,使用特定的物件識別碼 (OID)。以 5 結尾的 OID 通常對應於非認證簽章類型,而以 1 結尾的 OID 則表示驅動程式已通過認證簽署。當您有兩個相同驅動程式的版本並且需要區分它們時,這種差異至關重要。
使用 SignTool 驗證簽名(簽名嵌入在 .sys 檔案中)

除了 .cat 目錄中的簽名之外許多核心驅動程式都將簽名直接嵌入到 .sys 檔案中。要檢查這種類型的簽名,可以使用標準工具: 簽名工具包含在 Windows SDK 和 Microsoft 開發工具中。
驗證驅動程式中嵌入的簽章的典型命令 大概是這樣的:
SignTool — 檢查簽名: SignTool verify /v /pa DriverFileName.sys
在此命令中,選項 確認 它指示 SignTool 驗證簽名。 指定的驅動程式檔案。修飾符 /v 它會啟用詳細輸出,顯示進度訊息和潛在警告,同時 /帕 它要求按照即插即用設備安裝的簽名要求進行驗證。
請注意,SignTool 不要求您指定具體的證書。 系統會使用用於簽署文件的憑證;它會搜尋系統的憑證儲存區,以查看信任鍊是否指向受信任的根憑證授權單位。因此,如果您使用的是測試證書,則必須先將該證書安裝到用於驗證的電腦的「受信任的根證書頒發機構」儲存區中。
SignTool — 實際案例: SignTool verify /v /pa amd64\toaster.sys
如果驗證失敗,SignTool 將顯示錯誤訊息。 指出問題是否在於找不到憑證、憑證鏈未到達受信任的根憑證、金鑰用途不當,或簽章與文件的實際內容不符(文件已被竄改或損壞)。
已簽署、未簽署和通用 Windows 驅動程式
Windows 使用者在日常生活中基本上會用到三種類型的驅動程式。:系統本身提供的通用驅動程式、官方製造商驅動程序,以及在較小程度上,不太知名的第三方驅動程式或試用版。
微軟通用驅動程式 它們會自動安裝,因此您首次啟動電腦後即可使用大部分硬體。它們通常提供一組基本功能:例如,對於多功能印表機,您可能只能列印,而無法掃描或使用進階面板功能。
硬體製造商提供的驅動程式 它們通常會添加額外功能、提升效能並啟用特定工具:控制面板、校準工具、色彩設定檔、特殊聲音功能等等。如果您需要完全卸載 GPU,請使用 DDU.
在谷歌上搜尋司機時,第三方網站經常會排在前面。 那些承諾“下載任何驅動程式”或自動安裝所有驅動程式的網站。這類網站是惡意軟體和篡改驅動程式的典型來源,因此最好避免存取它們。如果您的系統啟用了簽章驗證,許多此類驅動程式將被偵測為無效而被封鎖。如果您喜歡使用工具來識別驅動程序,可以使用 輕鬆駕駛.
最後,還有測試驅動程式或來自小型開發商的驅動程式。這些憑證可能使用自簽名憑證簽名,或由 Windows 預設無法辨識的實體簽署。在這種情況下,會出現諸如代碼 52 之類的警告和錯誤。
方法一:透過暫時停用驅動程式簽章來啟動。
繞過限制最簡單、最溫和的方法 這需要使用啟動選項“禁用驅動程式簽名強制”。此模式僅影響目前會話;下次重新啟動後,Windows 將恢復其標準行為。
想法很簡單:啟動系統時選擇此選項。您安裝有問題的驅動程序,完成後正常重新啟動。這樣做的好處是可以降低… El Temppo 即使系統未受保護,也不能保證驅動程式在未正確簽署的情況下,在未來的啟動時仍能繼續運作。
在 Windows 8、Windows 10 和 窗戶11經典的 F8 鍵預設是隱藏的。因此,通常的做法是從系統內部存取進階啟動選項。您可以按住該鍵。 轉移 在「開始」功能表中點擊「重新啟動」時按住(Shift)鍵,或在視窗中執行它。 CMD 或運行:
進階登入權限: shutdown.exe /r /o
重新啟動後,Windows 將顯示診斷選項功能表。接下來,依序點選「疑難排解」>「進階選項」>「啟動設定」。點擊“確定”後,系統將重啟,並顯示選項清單。其中會包含“停用驅動程式簽章強制”,通常按 F7 鍵即可選取。
En 窗戶7Windows Vista 和相同版本的 Windows Server是的,F8鍵通常在啟動時可用。只要在開機時重複按F8鍵,進入進階選項,然後直接選擇「停用強制使用簽章驅動程式」。
方法二:使用 bcdedit 永久修改啟動過程
如果您需要永久停用簽名驗證 (例如,在測試或實驗室環境中),您可以使用 BCDEDIT,一種直線工具 命令 它允許您更改 Windows 啟動管理器設定。
與先前的臨時方法不同,使用 bcdedit 所做的變更是永久性的。 每次重新啟動後都會執行這些操作,直到您撤銷它們為止。正因如此,您必須格外謹慎地使用它們,因為這將導致沒有有效簽署的驅動程式也能載入。
若要停用檢查,請使用 bcdedit打開一個視窗 命令提示 以管理員權限執行(右鍵點選「以管理員身分執行」),例如:
bcdedit — 啟用測試模式並停用完整性: bcdedit /set testsigning on
bcdedit /set nointegritychecks on
參數 測試簽名 啟動測試模式旨在允許開發人員上傳使用測試憑證簽署的測試驅動程式。 對 nointegritychecks 它會停用簽章完整性檢查,即使驅動程式的簽章未能通過通常的驗證,Windows 也能載入驅動程式。
當您想要恢復正常的 Windows 行為時您必須使用以下命令從引導程式配置中刪除這些值:
bcdedit — 還原 testsigning/nointegritychecks: bcdedit /deletevalue testsigning
bcdedit /deletevalue nointegritychecks
如果您對目前哪些值處於啟動狀態有任何疑問,請與我們聯絡。您可以使用以下命令查看設定:
檢查充電器狀態: bcdedit /v
在實施這些類型的永久性變更之前,建議考慮以下兩點。如果啟用了 BitLocker,請暫時停用它;如果它在 BIOS/UEFI 中啟用, 安全啟動您需要停用它,因為此機制專門防止載入未經驗證的系統或配置。
透過群組原則停用驅動程式簽名
Windows 10/11 專業版用戶及同等版本 您可以透過本機群組原則編輯器 (gpedit.msc) 調整驅動程式簽署行為。此方法在家庭版中不可用。
若要使用它,請按 Win + R 開啟「執行」對話方塊。,寫道 gpedit.msc 然後按 Enter 鍵。在開啟的編輯器中,導覽至「使用者設定」>「管理範本」>「系統」>「驅動程式安裝」。
在該路徑下,您會找到“裝置驅動程式的程式碼簽署”選項。雙擊即可開啟其設定。您可以在那裡選擇不同的策略:警告、封鎖或允許。
如果您選擇「停用」或調整策略使其不需要簽名,則會觸發此操作。Windows 在安裝驅動程式時會比較寬鬆,但您應該記住,這適用於使用者上下文,並且可能無法涵蓋核心或驅動程式在啟動的早期階段載入的所有情況。
更改此策略後,建議重新啟動電腦。 為確保新規則得到全面應用。此外,一旦安裝了有問題的驅動程序,請考慮恢復到更嚴格的配置,以避免漏洞長期存在。
Windows 中的測試模式
Windows 包含一個經過精心設計的「測試模式」。 適用於需要執行未使用標準憑證簽署的驅動程式或應用程式的情況。在此模式下,無需使用微軟認可的憑證授權單位簽署即可載入測試驅動程式。
bcdedit 也可用於啟動或停用此模式。您可以使用管理員權限透過控制台控制此參數。 測試簽名雖然很多指南都用相反的方法演示,但通常的操作是:
測試簽名 — 啟動指令: bcdedit /set TESTSIGNING ON
將 TESTSIGNING 設為 ON 會啟動系統進入測試模式。 您的桌面上會出現浮水印,提示類似「Windows 測試模式…」的資訊。在此模式下,您可以安裝和載入使用測試憑證簽署的驅動程式。
安裝或測試必要的驅動程式完成後建議執行反向命令以返回正常模式:
測試簽章 — 停用指令: bcdedit /set TESTSIGNING OFF
這種方法是一種折衷方案。 介於使用 F7 啟動的臨時方法和完全停用完整性檢查之間。它尤其適用於正在開發中的驅動程式的開發人員和測試人員。
完全禁用驅動程式簽名驗證
還有一種更徹底的方法,可以永久停用它。 控制器最重要的安全功能之一是簽章完整性檢查。這是一種極端解決方案,只能作為最後的手段。
想法很簡單:使用 bcdedit 告訴 Windows 不要執行完整性檢查 載入驅動程式時。為此,通常在管理員控制台中使用以下命令:
NoIntegrityChecks — 停用檢查: bcdedit.exe /set nointegritychecks on
透過此調整,Windows 將允許安裝和載入未通過簽名檢查的驅動程式。換句話說,幾乎任何驅動程式都可以運行,無論其來源如何,只要其他機制(例如安全啟動)不阻止它運行即可。
安裝完所有需要的驅動程式後,您就可以開始使用了。強烈建議您撤銷此變更並恢復預設值以恢復保護。為此,您可以執行以下命令:
NoIntegrityChecks — 恢復檢查: bcdedit.exe /set nointegritychecks off
永久禁用這些檢查會大大增加攻擊面。惡意驅動程式可以透過此途徑獲得完全權限,且不會被 Windows 封鎖。因此,在個人環境中,通常更明智的做法是使用臨時方法或尋找已簽署的替代驅動程序,而不是讓系統始終處於未受保護的狀態。
安裝未簽名驅動程式的真正危險
司機簽名可能看起來很麻煩 你可能只想讓你的 Wi-Fi 轉接器或舊印表機正常運作,但值得注意的是,這種限制存在的原因。基於驅動程式的威脅(例如 rootkit、bootkit 等)是目前最危險的威脅之一。
惡意驅動程式以 SYSTEM 權限運行。它凌駕於使用者和多重防禦之上。在此基礎上,它可以攔截所有網路流量,篡改證書將連接重定向到虛假網站,記錄鍵盤輸入,窺探密碼等等。
此外,這類惡意軟體通常幾乎是隱形的。 這是因為作業系統本身運行的防毒軟體和安全工具載入等級較低。在許多情況下,徹底清除此類rootkit的唯一可靠方法是完全格式化並重新安裝Windows系統。
因此,您絕不應輕易停用驅動程式簽名。 不要相信那些要求你停用某些功能才能安裝所謂「神奇驅動程式」或「優化器」的程式。在嘗試這些選項之前,最好先從可靠來源尋找替代方案,或者考慮一下你是否真的需要那個特定的驅動程式。
黃金法則很簡單:只從可信任來源安裝驅動程式。尤其是當你放鬆警戒或停用簽名驗證的時候。今天一個小小的便利,如果一個受感染的驅動程式控制了你的電腦,明天就可能變成大問題。
對字節世界和一般技術充滿熱情的作家。我喜歡透過寫作分享我的知識,這就是我在這個部落格中要做的,向您展示有關小工具、軟體、硬體、技術趨勢等的所有最有趣的事情。我的目標是幫助您以簡單有趣的方式暢遊數位世界。