[Blowfish-Bild]


Der Leitfaden eines jeden guten Sicherheitsingenieurs ist: »Sicherheit ist kein Produkt sondern ein Prozess.« Es steckt mehr dahinter, als starke Kryptographie in ein System zu integrieren. Es bedeutet, das gesamte System so zu entwerfen, dass alle Sicherheitsmaßnahmen - inklusive der Kryptographie - zusammenarbeiten.

- Bruce Schneier, Autor von Applied Cryptography.

Kryptographie


Inhaltsverzeichnis
Warum liefern wir Kryptographie aus?
OpenSSH.
Pseudozufallszahlengeneratoren (PRNG): ARC4, ...
Kryptographische Hashfunktionen: MD5, SHA1, ...
Symmetrische Verschlüsselungsverfahren: DES, Blowfish, ...
Unterstützung für kryptographische Hardware
Internationale Kryptographen gesucht
Weitere Quellen


Warum liefern wir Kryptographie aus?

Kurz gesagt: Weil wir es können.

Das OpenBSD-Projekt ist in Kanada beheimatet.

Die Exportkontrollliste von Kanada beinhaltet keine signifikanten Beschränkungen bezüglich des Exports von kryptographischer Software und ist sogar noch offener, was den Export frei erhältlicher kryptographischer Software angeht. Marc Plumb hat einige Nachforschungen betrieben, um die Kryptographiegesetze zu prüfen.

Daher hat das OpenBSD-Projekt Kryptographie in zahlreichen Stellen im Betriebssystem integriert. Wir verlangen, dass die kryptographische Software, die wir benutzen wollen, frei erhältlich ist und guten Lizenzen unterliegt. Wir benutzen keine Kryptographie mit unzulänglichen Lizenzen direkt. Wir verlangen außerdem, dass solche Software aus Ländern mit vernünftigen Exportbedingungen kommt, da wir keinerlei Landesgesetze brechen wollen. Die kryptographischen Komponenten, die wir momentan benutzen, wurden in Argentinien, Australien, Deutschland, Griechenland, Kanada, Norwegen und Schweden geschrieben.

Wenn wir OpenBSD-Releases oder -Schnappschüsse erzeugen, erzeugen wir diese in freien Ländern, um sicherzustellen, dass sowohl Quelltexte als auch Binärdateien frei von Beschränkungen sind. In der Vergangenheit wurden unsere Releases in Kanada, Schweden und Deutschland erzeugt.

OpenBSD wird mit Kerberos V ausgeliefert. Die Quelltext-Basis, die wir benutzen, ist die exportierbare Heimdal-Version aus Schweden. Unsere X11-Quellen wurden ebenfalls so erweitert, dass sie Gebrauch von Kerberos machen.

vpnc-test-partner.gif OpenBSD war das erste Betriebssystem, das mit einem IPsec-Stack ausgeliefert wurde. IPsec ist Teil des Systems seit der Veröffentlichung des OpenBSD-Releases 2.1 im Jahre 1997. Unser voll konformer kernelinterner IPsec-Stack mit möglicher Hardwareunterstützung durch Zusatzkarten und unser eigener freier ISAKMP-Daemon wird als eine der Maschinen der IPsec conformance Testumgebung der VPNC benutzt.

Heutzutage ist Kryptographie eine wichtiges Mittel, um die Sicherheit eines Betriebssystems zu erhöhen. Die in OpenBSD integrierte Kryptographie kann in folgende Bereiche unterteilt werden:

OpenSSH

Seit dem Release 2.6 hat OpenBSD OpenSSH integriert; eine absolut freie und nicht patentierte Version von ssh. OpenSSH interagiert auch mit ssh Version 1 und hat viele zusätzliche Funktionalitäten,

Grob gesagt haben wir eine Version von ssh mit freier Lizenz genommen und sie OpenBSD-fiziert. Ungefähr ein Jahr später haben wir OpenSSH so erweitert, dass es nun auch das SSH-2-Protokoll beherrscht. Das Resultat ist, dass nun alle drei großen SSH-Protokolle unterstützt werden: 1.3, 1.5, 2.0.

Pseudozufallszahlengeneratoren

Ein Pseudozufallszahlengenerator (PRNG = Pseudo Random Number Generator) versorgt Anwendungen mit einem Strom aus zufälligen Zahlenfolgen, welche einen erheblichen Einfluss auf die Sicherheit des Systems haben:

Ein PRNG ist eigentlich nur ein Algorithmus, bei welchem durch gleiche Anfangswerte auch die gleichen Ergebnisse produziert werden. Bei einem Mehrbenutzersystem gibt es viele Möglichkeiten, den PRNG mit zufälligen Daten zu füttern. Der OpenBSD-Kernel benutzt das Mausinterrupttiming, Netzwerkdateninterruptverzögerungen, die Zeit zwischen Tastendrücken und Festplatten-E/A-Informationen, um Zufallszahlen zu bekommen. Zufallszahlen stehen dann den Kernelroutinen zur Verfügung und werden an Userlandprogramme weitergegeben. Bisher werden Zufallszahlen benutzt von:

Kryptographische Hashfunktionen

Eine Hashfunktion komprimiert ihre eingegebenen Daten zu einer Zeichenkette konstanter Länge. Mit einer kryptographischen Hashfunktion können folgende Szenarien nicht eintreten:

In OpenBSD werden die kryptographischen Hashfunktionen MD5, SHA1, und RIPEMD-16 benutzt, z.B. hier:

Symmetrische Verschlüsselungsalgorithmen

Symmetrische Verfahren werden benutzt, um Daten zu ver- und entschlüsseln. Normalerweise werden sie mit einem Schlüssel zur Ver- und einem Schlüssel zur Entschlüsselung gebraucht. Die Sicherheit eines symmetrischen Algorithmus sollte wirklich nur auf den Schlüsseln beruhen.

OpenBSD stellt symmetrische Verfahren wie DES, 3DES, Blowfish und Cast für Kernel- und Userlandprogramme zur Verfügung, die an vielen Orten, wie z. B. an diesen, benutzt werden:

Unterstützung für kryptographische Hardware

OpenBSD unterstützt seit Release 2.7 einiges an kryptographischer Hardware, wie etwa Hardwarebeschleuniger und Zufallszahlengeneratoren.

Wenn jemand beim Schreiben der Treiber helfen will, bitte einfach herkommen und mithelfen.

Internationale Kryptographen gesucht

Natürlich braucht unser Projekt Leute, die an diesen Systemen arbeiten. Wenn ein nicht amerikanischer Kryptograph, den die oben erwähnten Zwänge nicht betreffen, an Mitarbeit an unserer eingebetteten Kryptographie interessiert ist, soll er uns bitte kontaktieren.

Weitere Quellen

Einige Leute aus dem OpenBSD-Team haben Vorträge über die Veränderungen geschrieben, die in OpenBSD Einzug gehalten haben. Die Postscript-Versionen dieser Vorträge sind hier erhältlich:


OpenBSD www@openbsd.org
$OpenBSD: crypto.html,v 1.99 2012/04/25 12:13:15 ajacoutot Exp $