Eine zentrale Bedeutung bei den Sicherheitsmaßnahmen weisen die Verfahren des „Virtual Private Networking“ (VPN) auf, wie sie aus der Bürowelt bekannt sind. Dabei wird ein kryptographisch gesicherter „Tunnel“ durch das unsichere Netz für die Datenübertragung genutzt. Auf diese Weise werden in der Regel Vertraulichkeit und Integrität geschützt. Hierfür steht eine Vielzahl von Protokollen zur Verfügung, die sich je nach Anwendungsfall nutzen lassen (Bild 2). Grundsätzlich werden temporäre und statische Tunnel unterschieden.
Statische Tunnel werden für längere Zeit zwischen zwei Netzen oder Systemen aufgebaut. Hier kommen symmetrische Verschlüsselungsverfahren zum Einsatz, d.h., an beiden Endpunkten des Tunnels werden geheime Schlüssel hinterlegt. Solche Tunnel lassen sich realisieren mit Hilfe des Secure Internet Protocol (IPsec) auf der Vermittlungsschicht (Network, OSI-Schicht 3) oder mit Hilfe von PPTP oder L2TP auf der Sicherungsschicht (OSI-Schicht 2, Data Link Layer).
Während die statischen Verfahren für die Kopplung von Standorten sowie zur Anbindung abgesetzter Stationen eingesetzt werden können, sind sie für eine sichere Verbindung zwischen wechselnden Partnern weniger geeignet. Hier bieten sich Protokolle an, die auf hybriden Verfahren beruhen. Diese kombinieren asymmetrische kryptographische Verfahren zum Schlüsselaustausch mit symmetrischen Verfahren für den Datenaustausch. Solche temporären Tunnel werden z.B. mit Hilfe des „Secure Socket Layer“-Protokolls (SSL) auf der Transportschicht (OSI-Schicht 4) oder mit Hilfe von Secure Shell (SSH) oder daraus abgeleiteten Tunneln auf der Anwendungsschicht (OSI-Schicht 7) realisiert.
Authentifizierung
Viele Embedded-Systeme werden heute noch ohne Authentifizierung betrieben. Wird diese eingesetzt, so ist die Standardmethode bei Embedded-Systemen immer noch die Eingabe von Benutzernamen und Passwort; dabei wird dort in der Regel wegen des Pflegeaufwands statt individueller Benutzernamen häufig ein funktionaler „Username“ von mehreren Nutzern gemeinsam verwendet, wie z.B. „Administrator“, „Factory“ oder „Service“. Damit verbunden sind einheitliche Passworte, die einem mitunter weiten Personenkreis bekannt sind und so trotz der Verschlüsselung der Verbindung ein erhebliches Sicherheitsrisiko darstellen. Nachteilig ist auch, dass die an sich geheimen Passworte auf vielen Systemen mehr oder weniger offen gespeichert werden müssen. Ein Implementierungsbeispiel für eine solche – kryptographisch nicht abgesicherte – HTTP-Authentifizierung von Webseiten ist in [3] vorgestellt; dort werden die Login-Daten im Klartext über das Netz übertragen. Verbesserung bringen hier schon die auf Hash-Code beruhenden Authentifizierungsverfahren, bei denen für die Authentifizierung nur verschlüsselte Informationen über das Netz übertragen werden.
Ein noch höheres Sicherheitsniveau bringt die zertifikatsbasierte Authentifizierung. Ein Zertifikat ist ein öffentlicher Schlüssel, der zusammen mit den Informationen über den Zertifkats-inhaber, die Gültigkeit oder den Verwendungszweck durch eine Zertifizierungstelle (Certification Authority, CA) signiert ist. Jeder „User“ verfügt dabei über ein individuelles Zertifikat mit dem dazugehörigen privaten Schlüssel. Das Embedded-System benötigt für die Verifikation der „User“-Zertifikate nun, unabhängig von der Zahl der ausgegebenen „User“-Zertifikate, nur die Zertifikate aller akzeptierten Zertifizierungsstellen. Bei entsprechender Gestaltung der „User“-Zertifikate können eine oder mehrere „User“-Rollen zusätzlich integriert werden; dies erleichtert die Auswertung auf dem Embedded-System. Entscheidend ist, dass auf dem Embedded-System keine weitere geheim zu haltende Information zur Authentifizierung gespeichert werden muss; aus Sicht des Embedded-Systems erfolgt diese vollständig mit dem öffentlichen Material.
Da die Client-Authentifizierung auf dem gleichen RSA-Mechanismus basiert, der bei SSL ohnehin verwendet wird, hält sich der Mehraufwand für die Software in Grenzen. Verglichen mit dem Aufwand für den Verbindungsaufbau ist der zusätzliche Zeitbedarf für die Authentifizierung recht gering.
Firewall
Ein Paketfilter (Firewall) beschränkt den Verkehr zu einem Knoten oder Netz auf den vermutlich sinnvollen Verkehr. Hierdurch soll die Verfügbarkeit der Systeme erhöht werden, indem nur erlaubte Dienste von außen angesprochen und Denial-of-Service-Angriffe verhindert werden können. Embedded-Systeme können nur in den seltensten Fällen mit einem separaten Paketfilter ausgestattet werden, da von vorneherein klar ist, welche Dienste unterstützt und welche Ports dazu geöffnet werden müssen. Daher spielt hier die Qualität der TCP/IP-Implementierung die entscheidende Rolle, die nur den erlaubten Verkehr annehmen darf und alle anderen Anfragen ignorieren muss. Das Sicherheitskonzept steht und fällt mit dieser Komponente.
Weitere Funktionen zur Erkennung oder Vermeidung von Angriffen durch „Intrusion Detection“-Systeme (IDS) bzw. „Intrusion Prevention“-Systeme (IPS) scheitern in der Regel an dem zu hohen Implementierungsaufwand bei der Abspeicherung statistischer Daten.