Die Bitanzahl in einer Datei mit statischem Schlüssel ist nicht die OpenVPN-Verschlüsselungsstärke
Die Bitanzahl in einer Datei mit statischem Schlüssel misst gespeichertes Material, nicht die Verschlüsselungsstärke. Lesen Sie das Banner, den Profilmodus und die ausgehandelte Verschlüsselung getrennt.
Ein Scanner oder ein Kollege zeigt auf die Bitanzahl, die in einer Datei mit statischem OpenVPN-Schlüssel abgedruckt ist, und fragt, warum der Tunnel keine Verschlüsselung dieser Größe verwendet. Die Frage klingt vernünftig, und die Antwort ist keine Zahl: Das Banner zählt gespeichertes Schlüsselmaterial, während eine Verschlüsselung nur den Teil verbraucht, den ihre Schlüsselgröße benötigt. Behandelt man diese Summe als Stärkeeinstellung, entstehen Änderungen, die nichts bewirken. Das Format wurde gebaut, um mehr Material zu halten, als irgendein einzelner Algorithmus nutzt.
Hier vermischen sich zwei Fragen: wie viel Schlüsselmaterial die Datei speichert und wie stark die ausgehandelte Verschlüsselung ist. Nur die zweite beschreibt den Tunnel.
Was die Zahl im Banner tatsächlich zählt
Der Container serialisiert Verschlüsselungsmaterial und HMAC-Material als getrennte Strukturen, und die bidirektionale Form hält zwei solcher Sätze, damit jede Richtung eigene Schlüssel tragen kann. Der schreibende Code leitet die gedruckte Zahl aus der Anzahl der serialisierten Strukturen, ihrer Größe und acht Bit pro Byte ab. Das ist Arithmetik über den Speicher, keine Aussage, dass eine Verschlüsselung jedes gespeicherte Byte verbraucht. Der Kopf legt außerdem eine maximale Zuteilung für Verschlüsselungsmaterial fest, damit eine Bibliotheksänderung das Format nicht stillschweigend anders dimensioniert.
Vergleichen Sie das mit einem Zertifikatsschlüssel, bei dem die Bitanzahl tatsächlich die Größe eines Objekts beschreibt. Ein 4,096-Bit-RSA-Schlüssel und eine Schlüsseldatei, deren Banner 4,096 Bit anzeigt, sind verschiedene Artefakte mit verschiedenen Aufgaben, und sie als zwei Einstellungen an einem Regler auszurichten führt zu schlechten Schlüssen.
Zwei Schlüsselsätze in einer Datei
Jede Hälfte der Datei liefert Material zur Verschlüsselung und Authentifizierung, weil der Modus mit vorab geteiltem Schlüssel Pakete in beiden Richtungen mit diesen getrennten Stücken schützt. Die aktive Verschlüsselung nutzt nur die Bytes, die ihre Schlüsselgröße verlangt, und der Digest nutzt seine eigene Ausgabegröße, weshalb die nutzbare Stärke aus den Optionen kommt und nicht aus der Länge der Datei. Den hexadezimalen Block zu verlängern verlangt vom konfigurierten Algorithmus nicht, mehr davon zu verbrauchen. Den Kommentar mit einer größeren Zahl zu bearbeiten ändert noch weniger.
Wenn Sie tatsächlich einen längeren Schlüssel wollen, ist die Einstellung, die geändert werden muss, die Verschlüsselung oder der Digest, und der Generator erzeugt, was die gewählten Algorithmen brauchen.
Das Profil zu lesen sagt Ihnen, welchen Modus Sie haben
Dasselbe Dateiformat dient zwei recht verschiedenen Aufgaben, und nur das Profil sagt, welche Sie haben. Eine alte secret-Zeile macht die Datei zum einzigen Schlüsselmaterial des Tunnels, während tls-auth oder tls-crypt sie zur Absicherung des Steuerkanals neben Zertifikaten macht. Keine der beiden Verwendungen verwandelt sie in den privaten Zertifikatsschlüssel eines Clients, so ähnlich der Block auch aussieht. Bestimmen Sie Option und Version, bevor Sie einen Ersatz erzeugen, und nutzen Sie den dokumentierten Generator statt Zeichen anzuhängen.
Diese Unterscheidung entscheidet auch die Reaktion auf eine Offenlegung. Ein tls-auth-Schlüssel, der abfließt, legt die Sitzungsschlüssel nicht offen, erlaubt einem Angreifer aber, Verkehr in den Steuerkanal einzuspeisen, deshalb muss er trotzdem ersetzt werden. Ein abgeflossener secret-Schlüssel ist schlimmer, denn er war das Material, das die Daten selbst schützte.
Was eine Sicherheitsprüfung festhalten sollte
Halten Sie drei Dinge getrennt fest: den ausgehandelten Schutz des Datenkanals, den Schutz des Steuerkanals und die Art, wie Peers sich authentifizieren. Eine Zeile wie data-ciphers AES-256-GCM beschreibt nur das erste, und ein Bericht, der dort endet, kann nicht beantworten, ob der Steuerkanal überhaupt geschützt ist. Die Datei mit dem statischen Schlüssel gehört in die zweite Kategorie, wenn sie mit tls-auth oder tls-crypt verwendet wird, und in keine, wenn sie nicht verwendet wird. Prüfer, die die Kategorien vermengen, verlangen eine größere Schlüsseldatei, wenn sie eigentlich eine stärkere Verschlüsselung wollen.
Wenn die Datei offengelegt wurde, rotieren Sie sie und verteilen Sie sie über den freigegebenen Kanal neu. Zeichen an ein kompromittiertes Geheimnis anzuhängen ist keine Rotation und lässt das offengelegte Material gültig.
Bewahren Sie den Rotationsnachweis bei dem Profil auf, zu dem er gehört. Die nächste Prüfung wird fragen welcher Schlüssel welchen Zeitraum geschützt hat, und das Banner wird das nicht beantworten.