[OpenBSD]


Das Mantra eines jeden guten Sicherheitsingenieurs ist : "Sicherheit ist kein Produkt, sondern ein Prozess !" Es steckt mehr dahinter als starke Kryptografie in ein System zu integrieren, es bedeutet das gesamte System so zu entwerfen, dass alle Sicherheitsmassnahmen, inklusive der Kryptografie, zusammen arbeiten.

-- Bruce Schneier, Autor von "Applied Cryptography".

Kryptografie

Index
Warum liefern wir Kryptografie aus?.
OpenSSH.
Pseudo Zufallszahlen Generatoren (PRNG): ARC4, ...
Kryptografische Hash Funktionen: MD5, SHA1, ...
Symmetrische Verschlüsselungsverfahren: DES, Blowfish, ...
Unterstützung für kryptologische Hardware
Internationale Kryptologen gesucht
Weitere Quellen


Warum liefern wir Kryptografie aus ?

In drei Worten: weil wir können.

Das OpenBSD Projekt ist in Kanada beheimatet.

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

Daher hat das OpenBSD-Projekt Kryptologie in zahlreichen Orten im Betriebsystem integriert. Wir verlangen, dass die kryptologische Software, die wir benutzen wollen, frei erhältlich ist und guten Lizenzen unterliegt. Wir benutzen Kryptografie mit garstigen Lizenzen nicht direkt. Wir verlangen ausserdem, dass solche Software aus Ländern mit vernünftigen Exportbedingungen kommt, da wir nicht die Gesetze irgendeines Landes brechen wollen. Die kryptografischen Komponenten, die wir momentan benutzen, wurden in Argentinien, Australien, Kanada, Deutschland, Griechenland, Norwegen und Schweden geschrieben.

Wenn wir OpenBSD Versionen oder Snapshots machen, erzeugen wir diese in freien Ländern, um sicherzustellen, dass sowohl Sourcen, als auch Binaries frei von Beschränkungen sind. In der Vergangenheit wurden unsere Versionen in Kanada, Schweden und Deutschland erzeugt.

OpenBSD wird mit Kerberos IV ausgeliefert. Die Codebase, die wir benutzen ist die exportierbare KTH-basierte Version aus Schweden. Unsere X11-Sourcen wurden ebenfalls so erweitert, dass sie Gebrauch von Kerberos IV machen. Kerberos V Unterstützung wird irgendwann in 2000 erscheinen, aber zur Zeit existiert einfach keine frei exportierbare Version von Kerberos V.

OpenBSD war das erste Betriebssystem, das mit dem IPSEC-Stack ausgeliefert wurde. IPSEC ist Teil des Systems seit der Veröffentlichung der Version OpenBSD 2.1 im Jahre 1997. Unser voll konformer kernel-interner IPSEC stack mit möglicher Hardwarebeschleunigung durch einige Karten, und unser eigener freier ISAKMP daemon wird als eine der Maschinen im 'IPSEC conformance testbed' von der VPNC benutzt.

Heutzutage ist Kryptografie eine wichtige Sache, um die Sicherheit eines Betriebsystems zu erhöhen. Die in OpenBSD integrierte Kryptografie kann in folgende Bereiche klassifiziert werden :

OpenSSH

Was ist das erste, was die Leute tun, nachdem sie OpenBSD installiert haben ? Sie installieren Secure Shell (ssh) aus dem Ports-Tree oder den Paketen auf den FTP-Servern. Bis vor einiger Zeit zumindest.

Seit der Version 2.6 hat OpenBSD OpenSSH integriert , eine absolut freie und nicht-patentierte Version von ssh. OpenSSH interagierte mit ssh Version 1 und hatte viele weitere Features.

Grob gesagt haben wir eine Version von ssh mit freier Lizenz genommen und sie OpenBSD-fiziert. Wir umgehen das USA-basierte Patent von RSA, indem wir einen einfachen Weg anbieten, die libcrypto und libssl Libraries mit RSA einfach herunterzuladen und zu installieren. Diese Pakete basieren auf OpenSSL. Leute, die ausserhalb der USA leben, können den von RSA patentierten Code frei benutzen, solange sie ihn nicht für kommerzielle Zwecke einsetzen. Es sieht so aus, als ob Firmen innerhalb der USA RSA-patentierten Code ebenfalls frei benutzen können, solange RSA keine Hauptrolle beim Geldverdienen spielt.

Aber auf diesem Wege bekommt fast jeder ein eingebautes ssh in seinem Betriebssystem.

NEU! OpenSSH unterstützt Protokoll 2.0!

Vor kurzem haben wir OpenSSH so erweitert, dass es auch das SSH2 Protokoll benutzen kann. Ein ssh-daemon, der alle 3 wichtigen SSH-Protokole beherrscht, bringt uns viel mehr Flexibilität. Protokoll 2.0 benutzt kein RSA für seine Public-Key-Kryptografie, und verlässt sich stattdessen auf DH und DSA Algorithmen. In OpenBSD 2.7 -- das mit dem neuen SSH ausgeliefert wird -- hast du Protokoll 2.0 Unterstützung gleich mit eingebaut! Wenn du zusätzlich Protokoll 1.3 und 1.5 unterstützen willst, brauchst du nur das RSA-Paket zu installieren (so wie auf der ssl manual Page beschrieben), und den Daemon neu starten.

Pseudo Zufallszahlen Generatoren

Ein Pseudo Zufallszahlengenerator (PRNG = Pseudo Random Number Generator) versorgt Applikationen mit einem Strom von Zahlen, die einen erheblichen Einfluss auf die Sicherheit des Systems haben:

Ein PRNG ist eigentlich nur ein Algorithmus, bei dem mit den selben Startwerten auch die selben Ergebnisse herauskommen. Bei einem Multi-User-System gibt es viele Möglichkeiten den PRNG mit Zufallsdaten zu füttern. Der OpenBSD Kernel benutzt das Maus-Interrupt-Timing, Netzwerk-Daten-Interrupt- Verzögerungen, die Zeit zwischen Tastendrücken und Festplatten IO-Informationen um Zufallszahlen zu bekommen. Zufallszahlen stehen den Kernel-Routinen zur Verfügung und werden an "Userland"-Programme weitergegeben. Bisher werden Zufallszahlen hierbei benutzt :

Kryptografische Hash Funktionen

Eine Hash Funktion komprimiert ihre eingegebenen Daten zu einer Zeichenkette konstanter Länge. Für eine kryptografische Hash-Funktion ist es undurchführbar folgendes zu finden:

In OpenBSD werden MD5, SHA1, und RIPEMD-160 als kryptografische Hash-Funktionen benutzt, z.B. hier:

Symmetrische Verschlüsselungsalgorithmen

Symmetrische Verfahren werden benutzt um Daten zu ver- und entschlüsseln. Normalerweise werden sie mit einem Schlüsel 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 Userland-Programme zur Verfügung, die an vielen Plätzen, wie z.B. an diesen benutzt werden :

Unterstützung für kryptologische Hardware

OpenBSD unterstützt seit Version 2.7 einige kryptologische Hardware wie etwa Hardwarebeschleuniger und Zufallszahlengeneratoren.

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

Internationale Kryptologen gesucht

Natürlich braucht unser Projekt Leute, die an diesen Systemen arbeiten. Wenn ein Nicht-amerikanischer Kryptologe, den die oben erwähnten Zwänge nicht betreffen, an Mitarbeit an unserer eingebettenen Kryptologie interessiert ist, soll er uns kontakten.

Weitere Quellen

Eine Reihe von Leuten aus dem OpenBSD-Team haben Vorträge und Aufsätze über die Veränderungen geschrieben, die sie in OpenBSD eingeführt haben. Die Postscript-Versionen sind hier erhältlich:


OpenBSD www@openbsd.org
Originally [OpenBSD: crypto.html,v 1.73 ]
$Translation: crypto.html,v 1.30 2001/01/03 11:44:16 reinhard Exp $
$OpenBSD: crypto.html,v 1.24 2001/01/03 12:42:42 reinhard Exp $