Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Login<br />
Admin-Story<br />
© schiffner, Photocase<br />
Wegweiser duch Crypto-Bibliotheken <strong>und</strong> ‐Services<br />
Im Dickicht<br />
Der Einsatz von Crypto-Bibliotheken kann manchmal etwas umständlich<br />
sein. Dass hiervon gleich eine ganze Handvoll existieren, erleichert die<br />
Sache nicht unbedingt. Der folgende Artikel versucht, ein wenig Licht ins<br />
Dunkel zu bringen <strong>und</strong> erklärt den Einsatz der Network Security Services<br />
(NSS) <strong>und</strong> OpenSSL im Zusammenhang <strong>mit</strong> X.509-Zertifikaten. Thorsten Scherf<br />
Linux lässt einem bei nahezu allem die<br />
Wahl zwischen einer Vielzahl von Alternativen,<br />
warum sollte dies also bei<br />
Crypto-Frameworks anders sein? Auf<br />
proprietären Systemen hat man sich<br />
meistens auf ein bestimmtes Framework<br />
festgelegt (beispielsweise die CryptoAPI<br />
bei Microsoft Windows) <strong>und</strong> passt die<br />
Standard-Applikationen daraufhin an, bei<br />
Linux existieren neben den bekannten<br />
OpenSSL <strong>und</strong> den Network Security Services<br />
auch noch BeeCrypt, Cyrus SASL,<br />
libgcrypt, GnuTLS <strong>und</strong> diverse andere<br />
Implementierungen.<br />
Große Auswahl<br />
Dabei versuchen nahezu alle Frameworks<br />
das gleiche Problem zu lösen oder<br />
ähnliche Lösungen für bestimmte Anwendungsfälle<br />
anzubieten, also beispielsweise<br />
eine Implementierung für das TLS/<br />
SSL-Protokoll, für S/MIME, für Crypto-<br />
Algorithmen <strong>und</strong> Hash-Funktionen, Zufallszahlen-Generatoren<br />
<strong>und</strong> Ähnliches.<br />
Hier den Überblick zu behalten, ist nicht<br />
wirklich einfach. Zumal es dem Entwickler<br />
einer Anwendung natürlich freigestellt<br />
ist, welches Crypto-Framework<br />
er für seine Applikation verwendet. Ob<br />
die Auswahl des Frameworks auf dem<br />
System, auf dem die Anwendung einmal<br />
laufen wird, zu Problemen führt, ist nicht<br />
wirklich sichergestellt.<br />
Ein kleines Beispiel: Die Anwendung<br />
nutzt die Network Security Services <strong>und</strong><br />
erwartet Benutzerzertifikate in einem<br />
Berkley-DB basierten Zertifikatsspeicher.<br />
Der Benutzer hat sein X.509-Zertifikat<br />
aber als PEM-codierte Datei auf dem<br />
Dateisystem liegen <strong>und</strong> weiß nichts von<br />
einer Berkley-DB. Hier ist erst einmal etwas<br />
Handarbeit gefragt, bevor schließlich<br />
das Benutzerzertifikat als PKCS#12<br />
Datei in die Berkely-DB geschoben werden<br />
kann. Das Fedora-Projekt hat sich<br />
vor einiger Zeit zum Ziel gesetzt, diesen<br />
Wildwuchs etwas einzudämmen <strong>und</strong> ein<br />
Crypto-Framework gesucht, das einen<br />
breiten Funktionsumfang, hohe Portabilität<br />
<strong>und</strong> ein flexibles Lizenzierungsmodell<br />
bietet. Betrachtet man die Anforderungen,<br />
so kommen hierfür eigentlich<br />
nur OpenSSL <strong>und</strong> die Network Security<br />
Services (NSS) infrage.<br />
OpenSSL ist in der OpenSource-Community<br />
sehr gut bekannt <strong>und</strong> hat die erste<br />
OpenSource-Implementierung für SSL zur<br />
Verfügung gestellt, hat einen hohen Verbreitungsgrad<br />
auf Unix-artigen Systemen<br />
<strong>und</strong> verwendet ein duales Lizenzierungsmodell<br />
– es kommen die BSD-artigen Lizenzen<br />
SSLeay <strong>und</strong> OpenSSL zum Einsatz.<br />
NSS ist das ältere Framework <strong>und</strong> hat von<br />
Haus aus einen höheren Funktionsumfang<br />
als OpenSSL. Der Zertifikatsspeicher<br />
besteht aus einer Berkeley-Datenbank,<br />
anders als bei OpenSSL, wo Zertifikate<br />
in regulären Dateien abgelegt sind. NSS<br />
verwendet ein dreistufiges Lizenzierungsmodell,<br />
bestehend aus der Mozilla, der<br />
GNU General <strong>und</strong> der GNU Lesser General<br />
Public License.<br />
OpenSSL oder NSS<br />
Heute setzt der Großteil der Fedora-Applikationen<br />
NSS als Crypto-Framework<br />
ein, andere Anwendungen benutzen<br />
OpenSSL oder lassen dem Benutzer die<br />
Wahl zwischen dem einen oder dem<br />
anderen Framework. Ein gutes Beispiel<br />
hierfür ist der bekannte Webserver<br />
Apache. TLS/SSL-Support stellt dieser<br />
seit jeher über das Modul »mod_ssl« zur<br />
Verfügung. Vor einiger Zeit bereits wurde<br />
daneben das Modul »mod_nss« für den<br />
Einsatz der Network Security Services<br />
entwickelt. Dem Admin steht es frei, das<br />
eine oder das andere Modul einzusetzen.<br />
Ähnlich ist es auch auf der Client-<br />
Seite. OpenLDAP kann beispielsweise <strong>mit</strong><br />
18 Ausgabe 06-2012 Admin www.admin-magazin.de