 | 
|
 |  Sicherheitsinfrastruktur: Hardwarebeschleuniger für kryptographische Funktionen

-> emlix Leistungen 
Kryptographische Funktionen lassen sich über den verwendeten Algorithmus in bestimmte Gruppen einordnen. Prinzipiell unterscheidet man hierbei zwischen symmetrischen und asymmetrischen Verschlüsselungsverfahren sowie der Bildung von Hashsummen.Für jede dieser Gruppen kann man Algorithmen festlegen, welche sich als Standards durchgesetzt haben und in nahezu jedem System Anwendung finden: 
symmetrische Verschlüsselung 

asymmetrische Verschlüsselung 
 | RSA
|  | DSA (nur für Signatur geeignet)
|  | elliptische Kurven |

Hashfunktionen 

Da die von der NSA standardisierten Verfahren (DES und AES) frei von Lizenzansprüchen sein mussten, um an der Auswahl teilzunehmen, findet man diese Algorithmen sehr häufig als Implementierung in Hardware.
Einer der Vorteile der Hardwareimplementierung ist die höhere Geschwindigkeit. Gerade bei AES war eines der Designziele die einfache und schnelle Implementierung in Hardware. Genau dort spielt er daher sein Potential voll aus. Doch auch DES und 3DES lassen sich sehr gut in Hardware implementieren.
Die asymmetrische Verfahren sind eher selten als Hardwareimplementierung zu finden, da diese nur zu Beginn einer verschlüsselten Sitzung einmalig genutzt werden und danach mit wechselnden symmetrische Sitzungsschlüsseln gearbeitet wird. Die seltene Nutzung und die vergleichsweise große Chipfläche sind die Hauptgründe, warum man RSA nur selten in Hardware implementiert. Es gibt allerdings spezielle Hardwarebausteine, welche RSA umsetzen. Als Beispiel seien hier die von der Trusted Computing Group (TCG) spezifizierten Trusted Platform Modules (TPM) genannt.
Neben den symmetrischen Verfahren werden auch Hashfunktionen in Hardware realisiert. Diese Verfahren bilden die Grundlage für die Datensicherheit und die Signatur von Werten. Ähnlich den symmetrische Verfahren benötigen sie die vollständigen Rohdaten, was wiederum für die implementierung als Hardwarebaustein spricht.
Eine weitere Funktionalität, welche häufig in den entsprechenden Hardwaremodulen zu finden ist, betrifft das Erzeugen von sicheren Zufallszahlen. Gerade Embedded Systeme, welche keine direkte und damit zufällige Interaktion mit einem Nutzer pflegen haben häufig das Problem, dass nicht ausreichend Zufallszahlen generiert werden können. Diese Zufallszahlen braucht man allerdings, wenn man einen sicheren Schlüssel erzeugen möchte. Dieses Problem lösen die Hardwarebausteine zum Beispiel durch den Einsatz offener Transistoren im Inneren des Chips oder durch die Ausnutzung anderer physikalischer Effekte, die nicht von außen beeinflusst werden können.  Typischer Aufbau eines solchen Moduls
Betrachtet man den typischen Aufbau eines Hardwarebeschleunigers für kryptographische Funktionen, so agiert dieser meistens als DMA Master am Bussystem des Systems. Dies ist dem Umstand geschuldet, dass die einzelnen Funktionen große Mengen Rohdaten einlesen müssen, um zu einem Ergebnis zu kommen. Dies wäre nicht zielführend über einen PIO Betrieb realisierbar.
Je nach Aufbau des Moduls können verschiedene Operationen parallel ausgeführt oder miteinander verschachtelt werden. Einfache Module beherrschen nur eine symmetrische Verschlüsselungsoperation und eine Hashfunktionen gleichzeitig. Komplexe Hardwarebausteine erlauben das Verketten von Operationen, um die Host CPU noch weiter zu entlasten. Gerade im Telekomunikationssektor findet man Hardwarebeschleuniger, welche bestimmte Funktionsblöcke (AES, MD5) mehrfach bereitstellen, um mehrere Datenströme gleichzeitig zu verarbeiten.
Für Embedded Systeme ist es typisch, dass man AES und eine Hashfunktionen der SHA (Secure Hash Algorithm) Familie vorfindet. Nutzt man diese Hardwareoptionen geschickt, so kann man die Systemlast deutlich minimieren, ohne einem Angreifer die Möglichkeit der Manipulation zu geben.
Als Beispiel könnte man sich eine hybride Verschlüsselung vorstellen, welche einen großen Datenblock via AES mit einem zufälligen Schlüssel verschlüsselt. Dieser Schlüssel soll via RSA geschützt sein. Neben diesen Daten wird noch eine Hashsumme mit übertragen, welche sich auf die Rohdaten bezieht um die Übertragung abzusichern.
Die Grafik (per Click vergrößern) veranschaulicht das Verfahren.



Da die Prüfsumme unabhängig vom verwendeten Verschlüsselungsverfahren ist, kann die Generierung bereits beginnen, während die Vorbereitungen für die Verschlüsselung laufen. Dadurch erhält man einen gewissen Zeitvorteil und nutzt die Bandbreite des Speicherbusses optimal aus.
Besitzt das Hardwaremodul einen Secure-Random-Number-Generator, so wird dieser genutzt um den AES Key zu generieren. Dieser Schlüssel ist im Normalfall zwischen 128 und 256 Bit lang. Ist dieser Schlüssel verfügbar, wird das Hardwaremodul eingestellt und die AES Verschlüsselung der Rohdaten gestartet.
Nun ist die CPU vollkommen unbelastet, da alle Aktivitäten in den entsprechenden Hardwareblöcken ablaufen. Die CPU kann nun also genutzt werden um die aufwändige RSA Berechnung auszuführen. Da die Daten hierfür klein sind (der Schlüssel ungefähr 4096 Bit und der AES Schlüssel 256Bit), sind kaum Zugriffe auf den Hauptspeicher notwendig. Die CPU bedient sich aus dem Daten und Instructions Cache, während die Hardwareblöcke die Außenanbindung nutzen können, um möglichst viele Daten einzulesen und zu verarbeiten.  Probleme der Hardware
Wie mit diesem schematischen Vorgehen dargestellt, ist es durch geschickte Kombination von Hard- und Software möglich, sehr effektiv möglichen Verschlüsselungsverfahren den abschreckenden Zeitfaktor zu nehmen.
Ob man wirklich Zeit gewinnt, hängt von verschiedenen Faktoren ab. Einerseits natürlich von der Hardware und deren Programmierinterface. Ist es nötig 20 bis 30 Register zu setzen und dazwischen möglicherweise noch warten zu müssen, so kann man die kryptographischen Operationen ohne Zeitverlust in Software abarbeiten.
Neben dem Aufbau der Hardware spielt auch die Größe der Rohdaten und deren Nutzung vor der Anwendung der kryptographischen Operationen eine Rolle. Ist die Datenmenge gering (nur wenige Bytes bis 1 Speicherseite) und wurden die Daten vorher bereits verarbeitet oder erst aufgebaut, ist die Chance groß, diese Daten aus dem Cache abrufen zu können. Auch in diesem Fall ist das Aktivieren der Hardware nicht zielführend.
Neben diesen rein technischen Problemen, gibt es gerade für exportierende Unternehmen eine weitere Einschränkung. Viele der Algorithmen unterliegen den US-amerikanischen Exportbestimmungen und beschränken damit den Verkauf und die Lieferung in bestimmte Länder. Dies betrifft neben ihrer Applikation vor allem die Hardware. Planen sie also den Export ihrer Geräte beispielsweise in den Iran, sollten sie vom Einsatz einer CPU mit einem Beschleuniger absehen. 
-> emlix Leistungen 
|
 | 
|
 |