Verbindliches Kernel-mode code signing in Windows Vista x64

Immer öfter fällt mir in Diskussionen rund um Windows Vista auf, wie wenig über den Einsatz von signierten Treibern bekannt ist. Oft hört man dann: Microsoft setzt für Windows Vista 64-Bit zertifizierte Treiber voraus. Ohne geht es nicht. Daher an dieser Stelle ein paar Worte zum Hintergrund dieser Aussage.

Windows Vista erlaubt in der 64 Bit-Version nur signierten Kernel-mode Treibern das automatische Laden. Dieser Schutz kann beim Starten von Windows Vista manuell ausgeschaltet werden. User-mode Treiber sind davon nicht betroffen. Kernel-mode Treiber müssen aber nicht von Microsoft zertifiziert sein. Man muss dafür auch kein Zertifikat von Microsoft kaufen.

Generell wird gern Kernel-mode code signing (KMCS) mit dem Windows Logo Programm verwechselt. Ersteres erlaubt die Prüfung der Identität des Herstellers auf Grund des Zertifikats. Letzteres ist mit einer Prüfung des Treibers und einer Signierung durch Microsoft verbunden.

Für KMCS benötigt man lediglich ein Software Publisher Certificate (SPC), das man bei einer kommerziellen CA kaufen kann. Aktuelle CAs, die von Vista unterstützt werden, sind:

  • Baltimore CyberTrust Root
  • Equifax Secure Certificate Authority
  • GTE CyberTrust Global Root
  • GlobalSign Root CA
  • GeoTrust Global CA
  • VeriSign Class 3 Public Primary Certification Authority

Quelle: Microsoft Cross-certificates for Windows Vista Kernel Mode Code Signing

KMCS hat also nichts mit einer Prüfung durch Microsoft zu tun, sondern erlaubt die Ermittlung der Identität des Herstellers. Das heisst noch lange nicht, dass die signierte Software qualitativ gut oder schlecht ist. Letzteres kann durch das Windows Logo Programm getestet werden, das gewisse Anforderungen an die Treiber stellt.

Weitere Informationen zum Thema finden sich in Digital Signatures for Kernel Modules on Systems Running Windows Vista und Driver Compatibility for Windows Vista.