SSL/TLS Starke SSL/TLS-Verschlüsselung: Kompatibilität

Alle PCs sind kompatibel. Einige sind aber kompatibler als andere.

-- Unbekannt

Dieser Abschnitt befasst sich mit der Abwärtskompatibilität zu anderen SSL-Lösungen. Wie Sie vielleicht wissen, ist mod_ssl nicht die einzige SSL-Lösung für den Apache. Es sind noch vier weitere wichtige Produkte verfügbar: Das kostenlose Apache-SSL von Ben Laurie (von dem mod_ssl im Jahre 1998 abgeleitet wurde), das kommerzielle Secure Web Server von der Firma Red Hat (das auf mod_ssl basiert), das kommerzielle Raven SSL Module von der Firma Covalent (das auch auf mod_ssl basiert) und das kommerzielle Produkt Stronghold von der Firma C2Net (welches bis zur Version Stronghold 2.x auf einem unterschiedlichen Entwicklungszweig mit der Bezeichnung Sioux basierte und seit der Version 3.0 auf mod_ssl basiert).

Weil mod_ssl eine Obermenge der Funktionalität fast aller anderen Lösungen enthält, kann Abwärtskompatibilität in fast allen Fällen problemlos gewährleistet werden. Drei Kompatibilitätsbereiche stehen zur Zeit im Vordergrund: Konfigurationsdirektiven, Umgebungsvariablen und eigene Protokollfunktionen.

Konfigurationsdirektiven

Um Abwärtskompatibilität zu den Konfigurationsdirektiven anderer SSL-Lösungen zu gewährleisten, wird eine Zuordnung vorgenommen: Direktiven, für die es eine direkte mod_ssl-Entsprechnung gibt, werden stillschweigend zugeordnet, während andere Direktiven zu einer Warnung in der Protokolldatei führen. Tabelle 1 listet die derzeitigen Direktivenzuordnungen auf. Eine vollständige Abwärtskompatibilität bieten zur Zeit nur die Apache-Versionen SSL 1.x und mod_ssl 2.0.x. Die Kompatibilität zu Sioux 1.x und Stronghold 2.x wird infolge spezieller Funktionalität dieser Schnittstellen, die mod_ssl (noch) nicht anbietet, nur partiell erreicht.

Tabelle 1: Zuordnung von Konfigurationsdirektiven
Alte Direktivemod_ssl-DirektiveKommentar
Apache-SSL 1.x & mod_ssl 2.0.x-Kompatibilität:
SSLEnableSSLEngine onzusammengefasst
SSLDisableSSLEngine offzusammengefasst
SSLLogFile DateiSSLLog Dateizusammengefasst
SSLRequiredCiphers SpezifikationSSLCipherSuite Spezifikationumbenannt
SSLRequireCipher c1 ...SSLRequire %{SSL_CIPHER} in {"c1", ...}verallgemeinert
SSLBanCipher c1 ...SSLRequire not (%{SSL_CIPHER} in {"c1", ...})verallgemeinert
SSLFakeBasicAuthSSLOptions +FakeBasicAuthvermischt
SSLCacheServerPath Verz-Funktionalität entfernt
SSLCacheServerPort integer-Funktionalität entfernt
Apache-SSL 1.x-Kompatibilität:
SSLExportClientCertificatesSSLOptions +ExportCertDatavermischt
SSLCacheServerRunDir Verz-Funktionalität nicht unterstützt
Sioux 1.x-Kompatibilität:
SSL_CertFile DateiSSLCertificateFile Dateiumbenannt
SSL_KeyFile DateiSSLCertificateKeyFile Dateiumbenannt
SSL_CipherSuite ArgumentSSLCipherSuite Argumentumbenannt
SSL_X509VerifyDir ArgumentSSLCACertificatePath Argumentumbenannt
SSL_Log DateiSSLLogFile Dateiumbenannt
SSL_Connect FlagSSLEngine Flagumbenannt
SSL_ClientAuth ArgumentSSLVerifyClient Argumentumbenannt
SSL_X509VerifyDepth ArgumentSSLVerifyDepth Argumentumbenannt
SSL_FetchKeyPhraseFrom Argument-nicht zuzuordnen, benutzen Sie SSLPassPhraseDialog
SSL_SessionDir Verz-nicht zuzuordnen, benutzen Sie SSLSessionCache
SSL_Require Ausdruck-nicht zuzuordnen, benutzen Sie SSLRequire
SSL_CertFileType Argument-Funktionalität nicht unterstützt
SSL_KeyFileType Argument-Funktionalität nicht unterstützt
SSL_X509VerifyPolicy Argument-Funktionalität nicht unterstützt
SSL_LogX509Attributes Argument-Funktionalität nicht unterstützt
Stronghold 2.x-Kompatibilität:
StrongholdAccelerator Verz-Funktionalität nicht unterstützt
StrongholdKey Verz-Funktionalität nicht unterstützt
StrongholdLicenseFile Verz-Funktionalität nicht unterstützt
SSLFlag FlagSSLEngine Flagumbenannt
SSLSessionLockFile DateiSSLMutex Dateiumbenannt
SSLCipherList SpezifikationSSLCipherSuite Spezifikationumbenannt
RequireSSLSSLRequireSSLumbenannt
SSLErrorFile Datei-Funktionalität nicht unterstützt
SSLRoot Verz-Funktionalität nicht unterstützt
SSL_CertificateLogDir Verz-Funktionalität nicht unterstützt
AuthCertDir Verz-Funktionalität nicht unterstützt
SSL_Group name-Funktionalität nicht unterstützt
SSLProxyMachineCertPath Verz-Funktionalität nicht unterstützt
SSLProxyMachineCertFile Datei-Funktionalität nicht unterstützt
SSLProxyCACertificatePath Verz-Funktionalität nicht unterstützt
SSLProxyCACertificateFile Datei-Funktionalität nicht unterstützt
SSLProxyVerifyDepth Zahl-Funktionalität nicht unterstützt
SSLProxyCipherList Spezifikation-Funktionalität nicht unterstützt
Umgebungsvariablen

Bei Verwendung von SSLOptions +CompatEnvVars werden zusätzliche Umgebungsvariablen erzeugt. Sie entsprechen alle offiziellen mod_ssl-Variablen. Tabelle 2 führt alle zur Zeit implementierten Variablenableitungen auf.

Tabelle 2: Ableitungen von Umgebungsvariablen
Alte Variablemod_ssl-VariableKommentar
SSL_PROTOCOL_VERSIONSSL_PROTOCOLumbenannt
SSLEAY_VERSIONSSL_VERSION_LIBRARYumbenannt
HTTPS_SECRETKEYSIZESSL_CIPHER_USEKEYSIZEumbenannt
HTTPS_KEYSIZESSL_CIPHER_ALGKEYSIZEumbenannt
HTTPS_CIPHERSSL_CIPHERumbenannt
HTTPS_EXPORTSSL_CIPHER_EXPORTumbenannt
SSL_SERVER_KEY_SIZESSL_CIPHER_ALGKEYSIZEumbenannt
SSL_SERVER_CERTIFICATESSL_SERVER_CERTumbenannt
SSL_SERVER_CERT_STARTSSL_SERVER_V_STARTumbenannt
SSL_SERVER_CERT_ENDSSL_SERVER_V_ENDumbenannt
SSL_SERVER_CERT_SERIALSSL_SERVER_M_SERIALumbenannt
SSL_SERVER_SIGNATURE_ALGORITHMSSL_SERVER_A_SIGumbenannt
SSL_SERVER_DNSSL_SERVER_S_DNumbenannt
SSL_SERVER_CNSSL_SERVER_S_DN_CNumbenannt
SSL_SERVER_EMAILSSL_SERVER_S_DN_Emailumbenannt
SSL_SERVER_OSSL_SERVER_S_DN_Oumbenannt
SSL_SERVER_OUSSL_SERVER_S_DN_OUumbenannt
SSL_SERVER_CSSL_SERVER_S_DN_Cumbenannt
SSL_SERVER_SPSSL_SERVER_S_DN_SPumbenannt
SSL_SERVER_LSSL_SERVER_S_DN_Lumbenannt
SSL_SERVER_IDNSSL_SERVER_I_DNumbenannt
SSL_SERVER_ICNSSL_SERVER_I_DN_CNumbenannt
SSL_SERVER_IEMAILSSL_SERVER_I_DN_Emailumbenannt
SSL_SERVER_IOSSL_SERVER_I_DN_Oumbenannt
SSL_SERVER_IOUSSL_SERVER_I_DN_OUumbenannt
SSL_SERVER_ICSSL_SERVER_I_DN_Cumbenannt
SSL_SERVER_ISPSSL_SERVER_I_DN_SPumbenannt
SSL_SERVER_ILSSL_SERVER_I_DN_Lumbenannt
SSL_CLIENT_CERTIFICATESSL_CLIENT_CERTumbenannt
SSL_CLIENT_CERT_STARTSSL_CLIENT_V_STARTumbenannt
SSL_CLIENT_CERT_ENDSSL_CLIENT_V_ENDumbenannt
SSL_CLIENT_CERT_SERIALSSL_CLIENT_M_SERIALumbenannt
SSL_CLIENT_SIGNATURE_ALGORITHMSSL_CLIENT_A_SIGumbenannt
SSL_CLIENT_DNSSL_CLIENT_S_DNumbenannt
SSL_CLIENT_CNSSL_CLIENT_S_DN_CNumbenannt
SSL_CLIENT_EMAILSSL_CLIENT_S_DN_Emailumbenannt
SSL_CLIENT_OSSL_CLIENT_S_DN_Oumbenannt
SSL_CLIENT_OUSSL_CLIENT_S_DN_OUumbenannt
SSL_CLIENT_CSSL_CLIENT_S_DN_Cumbenannt
SSL_CLIENT_SPSSL_CLIENT_S_DN_SPumbenannt
SSL_CLIENT_LSSL_CLIENT_S_DN_Lumbenannt
SSL_CLIENT_IDNSSL_CLIENT_I_DNumbenannt
SSL_CLIENT_ICNSSL_CLIENT_I_DN_CNumbenannt
SSL_CLIENT_IEMAILSSL_CLIENT_I_DN_Emailumbenannt
SSL_CLIENT_IOSSL_CLIENT_I_DN_Oumbenannt
SSL_CLIENT_IOUSSL_CLIENT_I_DN_OUumbenannt
SSL_CLIENT_ICSSL_CLIENT_I_DN_Cumbenannt
SSL_CLIENT_ISPSSL_CLIENT_I_DN_SPumbenannt
SSL_CLIENT_ILSSL_CLIENT_I_DN_Lumbenannt
SSL_EXPORTSSL_CIPHER_EXPORTumbenannt
SSL_KEYSIZESSL_CIPHER_ALGKEYSIZEumbenannt
SSL_SECKEYSIZESSL_CIPHER_USEKEYSIZEumbenannt
SSL_SSLEAY_VERSIONSSL_VERSION_LIBRARYumbenannt
SSL_STRONG_CRYPTO-Von mod_ssl nicht unterstützt
SSL_SERVER_KEY_EXP-Von mod_ssl nicht unterstützt
SSL_SERVER_KEY_ALGORITHM-Von mod_ssl nicht unterstützt
SSL_SERVER_KEY_SIZE-Von mod_ssl nicht unterstützt
SSL_SERVER_SESSIONDIR-Von mod_ssl nicht unterstützt
SSL_SERVER_CERTIFICATELOGDIR-Von mod_ssl nicht unterstützt
SSL_SERVER_CERTFILE-Von mod_ssl nicht unterstützt
SSL_SERVER_KEYFILE-Von mod_ssl nicht unterstützt
SSL_SERVER_KEYFILETYPE-Von mod_ssl nicht unterstützt
SSL_CLIENT_KEY_EXP-Von mod_ssl nicht unterstützt
SSL_CLIENT_KEY_ALGORITHM-Von mod_ssl nicht unterstützt
SSL_CLIENT_KEY_SIZE-Von mod_ssl nicht unterstützt
Angepasste Protokollfunktionen

Wird mod_ssl in den Apache eingebunden oder nur geladen (unter DSO), dann gibt es zusätzliche Funktionen für das Angepasste Protokollformat von mod_log_config (siehe Handbuch). Neben der %{varname}x-Erweiterungsfunktion, mit der von einem beliebigen Modul bereitgestellte Variablen expandiert werden können, gibt es aus Gründen der Abwärtskompatibilität die Kryptografiefunktion %{name}c. Zur Zeit sind die Tabelle 3 aufgeführten Aufrufe implementiert.

Tabelle 3: Kryptografie-Funktionsaufrufe
FunktionsaufrufBeschreibung
%...{version}c SSL-Protokollversion
%...{cipher}c SSL-Verschlüsselungsalgorithmus
%...{subjectdn}c Distinguished Name des Subjekts des Clientzertifikats
%...{issuerdn}c Distinguished Name des Ausstellers des Clientzertifikats
%...{errcode}c Zertifikatüberprüfungsfehler (numerisch)
%...{errstr}c Zertifikatüberprüfungsfehler (Zeichenfolge)