Server Name Indication
Server Name Indication (SNI) ist eine Erweiterung des Transport Layer Security-Standards (TLS), die es ermöglicht, dass sich mehrere Websites unterschiedlicher Domains einen Server teilen. Beim Aufbau einer TLS-Verbindung wird vom Computer, der die Verbindung herstellen will, dem Client, ein digitales Zertifikat verlangt. Auf dem Server liegen aber Webseiten mehrerer Domains, so dass der Server nicht weiß, mit welchem der Zertifikate er antworten soll. SNI ist eine Erweiterung von TLS, die es dem Client erlaubt, diese Information früher zu übermitteln.
Inhaltsverzeichnis |
[Bearbeiten] Das Verfahren
Um die Authentizität einer Webseite im Internet zu überprüfen, verwendet man in der Regel digitale Zertifikate. Da der verschlüsselte Verbindungsaufbau zum Server bereits stattfindet, bevor die angefragte URL übertragen wird, ist es mit TLS 1.0/SSL-Verschlüsselung nicht möglich, mehrere Domains unter einer IP-Adresse zu nutzen (sogenanntes Virtual Hosting). Grund dafür ist, dass der Server nicht weiß, welches Zertifikat, das immer nur für eine Domain gilt, er benutzen muss. Bei der Definition von SSL/TLS wurde die Möglichkeit von Virtual Hosting nicht vorgesehen. Sogenannte 'Wildcard-Zertifikate' können allerdings komplette Subdomains abdecken (z.B. *.meine-domain.de).
Im erweiterten SNI-Verfahren wird die Domain in dem sogenannten server_name-Parameter bereits beim Verbindungsaufbau übergeben, sodass der Server das passende Zertifikat auswählen und beim TLS-Handshake verwenden kann.
Die 2003 definierte Erweiterung (RFC 3546 3.1) ermöglicht es so, die begrenzte Anzahl von IPv4-Adressen besser auszunutzen.
[Bearbeiten] Unterstützte Software
[Bearbeiten] Browser
SNI wird von folgenden Browsern unterstützt:
- Mozilla Firefox 2.0 und neuer
- Opera 8.0 und später (TLS 1.1 muss aktiviert sein)
- Internet Explorer ab Version 7 und ab Windows Vista, unter Windows XP wird es selbst mit Internet Explorer 8 nicht unterstützt
- Google Chrome
- Safari 3.0 und später (ab OS X 10.5.6, ab Windows Vista)
[Bearbeiten] Browser auf mobilen Systemen
SNI wird von folgenden Browsern auf den angegebenen mobilen Betriebssystemen unterstützt:
- Android Browser ab Honeycomb (3.0) auf Tablets und ab Ice Cream Sandwich (4.0) auf Smartphones[1]
- Safari auf iOS ab iOS 4[2]
- Mozilla Firefox Mobile
- Opera (Mini & Mobile) mindestens ab Version 10.1 auf Android
[Bearbeiten] Server
- Apache 2.2.12 oder später mit mod_ssl, OpenSSL ≧ 0.9.8f[3]
- Apache Backport des SNI-Patches nach 2.0.63/win32 mit mod_ssl [4]
- Cherokee mit TLS-Unterstützung
- IIS 8
- lighttpd ab 1.4.24[5], vorherige Versionen mit SNI-Patch [6]
- Nginx mit OpenSSL-SNI-Unterstützung
- LiteSpeed 4.1.3
- Hiawatha 8.6 oder später[7]
[Bearbeiten] Quellen
- ↑ http://code.google.com/p/android/issues/detail?id=12908#c15
- ↑ http://langui.sh/2010/06/08/sni-in-ios-4-0/
- ↑ http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI
- ↑ http://wap.ecw.de/archives/1218
- ↑ http://www.lighttpd.net/2009/10/25/1-4-24-now-with-tls-sni-and-money-back-guarantee
- ↑ #386 (TLS servername extension (SNI) for namebased TLS-vhosts)
- ↑ https://www.hiawatha-webserver.org/changelog