OpenSSL 1.1.0 wurde am 25. August 2016 veröffentlicht. Die neue Hauptversion der freien Kryptobibliothek ergänzt moderne Verfahren, entfernt veraltete Algorithmen und verändert mehrere öffentliche Schnittstellen. Für Anwendungen, die OpenSSL direkt oder über eine abhängige Bibliothek nutzen, ist deshalb eine Anpassung der Build- und Testprozesse nötig.
Neue Verfahren für verschlüsselte Verbindungen
Die Release Notes nennen Unterstützung für ChaCha20 und Poly1305 in libcrypto und libssl sowie für den Schlüsselaustausch X25519. Hinzu kommen HKDF, scrypt, OCB und die Möglichkeit, Certificate Transparency direkt mit OpenSSL zu nutzen. Die Bibliothek bringt außerdem eine überarbeitete Verwaltung von Sicherheitsstufen und zusätzliche Funktionen für DANE TLSA mit.
OpenSSL 1.1.0 entfernt unter anderem SSLv2 sowie die Unterstützung für 40- und 56-Bit-Schlüssel. RC4 ist nicht mehr Bestandteil der standardmäßig aktivierten Cipher-Suites. Diese Änderungen verringern die Zahl unsicherer Voreinstellungen, können bei älteren Anwendungen aber zu Fehlermeldungen beim Aufbau einer Verbindung führen.
Öffentliche Strukturen werden intern
Ein großer Teil der bisher öffentlichen Strukturen von libcrypto und libssl wird in der neuen Version undurchsichtig. Genannt werden unter anderem BIGNUM, RSA, EVP_MD_CTX und X509. Programme sollen damit stärker über die vorgesehenen Funktionen der API arbeiten, müssen dafür aber Stellen anpassen, die direkt auf interne Felder zugegriffen haben.
Auch die SSL/TLS-Zustandsmaschine, die Versionsaushandlung und der Record Layer wurden neu geschrieben. Die Release Notes nennen zudem ein vereinheitlichtes Build-System und Optionen, mit denen veraltete Schnittstellen beim Kompilieren ausgeblendet werden können. Für technische Teams bleibt damit neben der Bibliotheksaktualisierung eine vollständige Prüfung der abhängigen Software erforderlich. Ein passender älterer Beitrag beschreibt beim Web-Debugging bereits die Analyse verschlüsselter und vernetzter Anwendungen.
