Betriebssysteme

Wie entwickle ich einen Gerätetreiber für Windows Embedded CE?

Seite: 3/3

Firmen zum Thema

6. Welche Besonderheiten des USER-Mode-Treibers sind zu beachten?

Bild 5: User-Mode-Stream-Treiber-Schnittstellen. Der Gerätemanager erkennt anhand der Flags, ob es sich um einen User-Mode-Treiber handelt. (Archiv: Vogel Business Media)

Die Unterschiede zum Kernel-Mode-Treiber sind nur in dem Registry-File zu finden. Der Geräte Manager erzeugt einen User-Prozeß (Udevice.exe) und läd den CAN_Driver als USER-Treiber.

Hier das Registry-File (CAN_Driver.reg):

Bildergalerie

[HKEY_LOCAL_MACHINE\Drivers\ProcGroup_0004]

„ProcName“=“udevice.exe“

„ProcVolPrefix“=“$udevice“

[HKEY_LOCAL_MACHINE\Drivers\CAN_Driver]

„Dll“=“CAN_Driver.dll“

„Prefix“=“CAN“

„Order“=dword:30

„Index“=dword:1

„FriendlyName“=“Mein CAN Treiber“

;------------Zusätzliche Definitionen für einen User Mode Driver

„Flags“=dword:10 ;User Mode

„UserProcGroup“=dword:4

Der GM erkennt anhand der Flags, das es sich hierbei um einen USER-Mode-Treiber handelt. Ihre Integration und Verwaltung ist sehr aufwendig. In Bild 5 ist die Komplexität der Schnittstellen zu erkennen.

7. Welche Aspekte für höhere Sicherheit gibt es?

Sicherheit ist eines der Hauptthemen der Windows-Embedded-Produkte. Vor der Auflistung der Verbesserungen, die mit CE 6.0 gemacht wurden, sollten auch die Sicherheitsfunktionen erwähnt werden, die bereits vorhanden sind. Im Mittelpunkt steht die Fähigkeit eines Windows CE-betriebenen Geräts, genau zu steuern, welche Anwendungen und DLLs geladen und ausgeführt werden dürfen. Durch die Funktion „OEMCertifyModule“ kann ein Gerät verhindern, dass nicht autorisierter Code ausgeführt wird.

Eine gängige Methode um autorisierte Module zu identifizieren sind digitale Zertifikaten. Die Gerätesicherheit lässt sich mit verschiedenen Konfigurationen einrichten. Beispielsweise lässt sich für unbekannte Module, also solche ohne gültige Zertifikate, der Systemzugriff verweigern. Alternativ kann dieser Mechanismus deaktiviert werden, sodass alle Module uneingeschränkten Zugriff auf alle Systemdienste erhalten.

Eine weitere wichtige Sicherheitsfunktion ist die kryptografische API, die es ermöglicht, dass Anwendungen Datenblöcke mit verschiedenen Verschlüsselungsalgorithmen verschlüsseln und entschlüsseln. Verschlüsselungsalgorithmen werden durch symbolische Namen mit dem Präfix CALG_ gekennzeichnet, z. B. CALG_DES und CALG_AES. Die zweite besteht in der Unterstützung von SSL (Secure Sockets Layer) für sichere HTTP-Verbindungen. Darüber hinaus werden über das PPTP-Protokoll virtuelle private Netzwerke (VPN) unterstützt. Um sichere Verbindungen mit Serversystemen zu ermöglichen, bietet Windows CE Unterstützung für verschiedene Authentifizierungsmechanismen, darunter das Windows NT LAN Manager-Protokoll und das beständigere Kerberos-Authentifizierungsprotokoll.

Weitere Funktionen aus früheren Windows CE-Versionen umfassen die Verwaltung von Anmeldeinformationen, Unterstützung von Smartcards, DPAPI, Unterstützung von öffentlichen Schlüsselzertifikaten (PKI) sowie das Local Authentication Subsystem (LASS).

Was sind nun die neuen Sicherheitsfunktionen in CE 6.0? Wie bereits oben erwähnt, gibt es eine strikte Trennung zwischen Benutzermodus-Code und Kernelmodus-Code. In CE 6.0 werden die Parameter für die geschützte Serverbibliothek (PSL) und E/A-Steuerung (IOCTL), die vom Benutzermodus in den Kernelmodus übergeben werden, gründlicher überprüft, wodurch die Sicherheit und Stabilität im Kernelmodus verbessert wird.

Die Parametersicherheit eines Systems kann deutlich durch Unterstützung eines sicheren Ladeprogramms verbessert werden. Dieses gewährleistet, dass nur vertrauenswürdiger Code auf einem System ausgeführt wird.

Ein weiterer Bereich, in dem Sicherheitsverbesserungen vorgenommen wurden, ist der Assistent für Windows CE OS-Design (bzw. für neue Plattformen). Wird eine Plattform mit einer Funktion konfiguriert, die die Gerätesicherheit beeinträchtigen könnte, wird eine Sicherheitswarnung ausgegeben. (OBEX-Server).

Eine weitere Funktion, die zur CE-6.0-Sicherheit hinzugefügt wurde, ist die Unterstützung eines sicheren Boot-Ladeprogramms. Damit wird sichergestellt, dass heruntergeladene Betriebssystem-Images (NK.BIN) gültige digitale Signaturen enthalten, bevor sie in einem System installiert und ausgeführt werden dürfen.

Fazit: Die Treiberentwicklung unter Windows CE ist gegenüber XP sehr strukturiert und einfach umzusetzen, da der Gerätemanager die komplette Administration des Treibers übernimmt. Auch die einfache Auswahl-Möglichkeit um was für einen Treiber-Type es sich handelt, einen User-Mode Treiber, der sehr robust ist oder um einen Kernel-Mode Treiber, der die gleichen Zugriffsrechte wie das Betriebssystem besitzt, ist wohl durchdacht.

Ausblick: Die Treiber-Schnittstellen in der neuen Version werden sich nicht ändern. Die gravierende Erweiterung wird die Unterstützung mehrere CPUs sein. Damit lassen sich Threads auf mehrere CPUs verteilen. Dadurch erhält WinCE (7) einen gigantische Leistungsschub.

(ID:264282)