Fragen? Antworten! Siehe auch: Alternativlos
Der re-keying code in vielen libraries, allermindestens openssl, nss, gnutls, ist total kaputt. Wir haben das über Jahre in postgres (nur openssl zu dem Zeitpunkt) verwendet, und haben unmengen von Bugs gefunden. Und weitgehend sind die immer noch vorhanden.Und zu meinem Bauchgefühl, dass dann ja auch der initiale Handshake im Arsch sein müsste, schreibt er:Das reicht von "passiert nichts mehr über der Verbindung" weil der interne Status keinen Sinn mehr macht bis zu crashes. In postgres war das wohl besonders schlimm weil wir a) non-blocking IO verwendet haben und openssl da noch weniger getestet ist b) teilweise sehr viele Daten transferiert werden (replication läuft auch über so eine Verbindung und eine Verbindung kann terrabytes überleben).
Zumindest in openssl würde ich sagen dass das nicht ganz so ist - während die renegotiation in progress ist muss openssl auch noch damit zurechtkommen dass Daten mit dem alten Schlüssel ankommen. Ich finde es schwer dem openssl code wirklich zu folgen, aber soweit ich es verstanden habe sind schlichtweg nicht alle korrekt implementiert.Oha. Mein Verständnis war, dass man renegotiation benutzt, um in TLS auszuschließen, dass die Cipher-Suites in der initialen (unverschlüsselten) Handshake-Negotiation von einem aktiven Angreifer ausgedünnt worden sind. D.h. wenn man Renegotiation wegschmeißt, man messbar Sicherheit einbüßt. Aber vielleicht habe ich das falsch verstanden.Man bemerke auch dass tls 1.3 key renegotiation komplett rausschmeisst.
Ich wäre *sehr* verwundert wenn der "live" renegotiation code in openssl nicht ein paar exploitable bugs hätte.
Update: Ein anderer Einsender erklärt:
bitte nicht Re-Negotiation mit Re-Keying verwechseln.
Re-Keying ist auch in TLS 1.3 noch drin.
Und das ist auch gut so, den im Gegensatz zur Re-Negotiation ist Re-Keying bei vielen (den meisten?) Krypto-Algorithmen einfach notwendig, da mit einem Key nur eine begrenzte Menge an Daten verschlüsselt werden darf, bevor das Verfahren unsicher wird. (z.B. weil dann die Wahrscheinlichkeit, dass zufällig gewählte Nonces per Birthday-Paradoxon mehrfach verwendet werden, zu hoch wird.)