Mit den Tipps und Workshops im ADMIN-Magazin 03/2013 sichern Administratoren ihre Webserver und Netze gegen Angriffe ab: gegen Abhören sensibler Informationen, ... (mehr)

Würfelspiel

Die von TLS verwendeten Algorithmen greifen auf einen Zufallsgenerator zurück. Standardmäßig bildet »mod_ssl« die Zufallszahl aus der aktuellen Uhrzeit, der Prozess-ID und einem zufällig gewählten, ein KByte großen Stück des internen Scoreboard-Speichers. Letztgenannten nutzt Apache bei der Interprozesskommunikation. Das Ergebnis ist jedoch keine echte Zufallszahl. Aus diesem Grund lässt sich mit »SSLRandomSeed« eine andere Quelle auswählen und so die Sicherheit erhöhen. Im einfachsten Fall kann man die Zufallswerte aus einer Datei holen, unter Linux etwa »/dev/random« :

SSLRandomSeed connect file:/dev/random

»connect« zeigt hierbei an, dass Apache die Zufallszahl beim Aufbau einer Verbindung abruft. Bei der Alternative »startup« wäre dies nur beim Start des Webservers der Fall. »SSLRandomSeed« muss zudem im globalen Server-Kontext stehen (also außerhalb des »<VirtualServer>« -Containers). Neben einer Datei als Quelle kann man auch ein Programm die Daten anliefern lassen. Dieses muss die Zufallswerte auf die Standardausgabe schreiben:

SSLRandomSeed startup exec:/bin/meinprg

Auf Unix-Systemen kann man schließlich noch die Daten aus einem Netzwerksocket als Quelle für Zufallszahlen missbrauchen:

SSLRandomSeed startup egd:/pfad/zum/socket

Eine Referenz aller von »mod_ssl« bereitgestellten Direktiven steht für Apache 2.2 unter [7] bereit, während man für Apache 2.4 unter [8] nachschlägt.

Fazit

Hat man erst einmal ein Zertifikat erzeugt, ist die Einrichtung von »mod_ssl« schnell erledigt. SSL beziehungsweise TLS verschlüsseln allerdings nur den Datenverkehr und bieten daher nur einen Sichtschutz für potenzielle Mitleser. Folglich reicht es nicht aus, nur einfach das SSL-Modul zu aktivieren. Die Web-Anwendung muss zusätzlich die empfangenen Daten vertraulich behandeln und beispielsweise verschlüsselt in einer Datenbank ablegen. TLS ist somit nur ein kleiner Baustein in einer kompletten Sicherheitsstrategie.

Server Name Identification

Da der Domainname fester Bestandteil des Zertifikats ist, kann man eigentlich pro IP-Adresse immer nur ein Zertifikat nutzen. Mit anderen Worten müsste man jeder (Sub-)Domain eine eigene IP-Adresse spendieren. Abhilfe schafft ein Verfahren namens Server Name Indication, kurz SNI. Dabei sendet der Browser noch vor dem Beginn der eigentlichen Verschlüsselung (beim Client-Hello, siehe Kasten "Abhörsicher" ) die URL, auf die er zugreifen möchte. Alle aktuellen großen Browser unterstützen SNI, Apache kennt das Verfahren seit der Version 2.2.12 – vorausgesetzt es kommt OpenSSL ab Version 0.9.8i zum Einsatz. Trifft das auf die eigene Apache-Installation zu, kann man in jedem »<VirtualHost>« -Container ein eigenes Zertifikat angeben.

Infos

  1. Wikipedia-Eintrag zum Diffie-Hellman-Algorithmus: http://de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch
  2. Wikipedia-Eintrag zum X.509-Standard: http://de.wikipedia.org/wiki/X509
  3. OpenSSL: http://www.openssl.org
  4. Apache Download: http://httpd.apache.org/download.cgi
  5. Verisign: http://www.verisign.de
  6. Meldestelle – Zertifikate mit OpenCA verwalten, ADMIN 01/2010: http://www.admin-magazin.de/Das-Heft/2010/01/Zertifikate-mit-Open-CA-verwalten/%28language%29/ger-DE
  7. Dokumentation von Mod-SSL für Apache 2.2: http://httpd.apache.org/docs/2.2/mod/mod_ssl.html
  8. Dokumentation von Mod-SSL für Apache 2.4: http://httpd.apache.org/docs/2.4/mod/mod_ssl.html

Der Autor

Tim Schürmann ist selbstständiger Diplom-Informatiker und derzeit hauptsächlich als freier Autor unterwegs. Zu seinen Büchern gesellen sich zahlreiche Artikel, die in Zeitschriften und auf Internetseiten in mehreren Ländern veröffentlicht wurden.

comments powered by Disqus
Mehr zum Thema

Was von TLS übrig bleibt

Zahlreiche Angriffe haben die Sicherheit von SSL/TLS-Verschlüsselungen in den letzten Jahren erschüttert. Abhilfe schaffen würden neuere Standards, doch die sind kaum verbreitet.
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023