![Dekodieren/Kodieren der OpenSSL-Datei „sess.pem“](https://rvso.com/image/768950/Dekodieren%2FKodieren%20der%20OpenSSL-Datei%20%E2%80%9Esess.pem%E2%80%9C.png)
Ich verwende es, openssl sess_id -in sess.pem -noout -text
um die SSL-Sitzungsparameter in der Datei sess.pem (die ich mit sess_out erhalten habe) in einen für Menschen lesbaren Text zu dekodieren. Ich wollte wissen, ob es eine Möglichkeit gibt, das Gegenteil zu tun, also den Text in ein sess.pem-ähnliches Format umzuwandeln. Im Grunde möchte ich nur ein paar Parameter (Sitzungs-ID, Hauptschlüssel usw.) in der Datei sess.pem ändern, kann aber scheinbar nicht den richtigen Befehl finden.
Antwort1
Es gibt keine Befehle zum Bearbeiten oder Erstellen einer SSL_SESSION, aber Sie asn1parse -genconf
können eine beliebige ASN.1-Struktur in DER erstellen, die Sie mithilfe der Definition in der Quelldatei anwenden ssl/ssl_asn1.c
und dann mit sess_id
oder einfach base64
mit manuellen Header-/Trailer-Zeilen in PEM konvertieren können.
Um dies im Code zu tun, ist die API auf die übliche Weise dokumentiert; dies ist man -k SSL_SESSION
bei den meisten Unix- oder Unix-ähnlichen Systemen der Fall. Wenn Sie unter Windows oder einem anderen schlecht installierten/gepackten System arbeiten, gehen Sie zuhttps://www.openssl.org/docs/man1.1.1/man3/und schauen Sie unter PEM_*SSL_SESSION
und nach SSL_SESSION_*
.
Aber selbst wenn es einem (benutzerdefinierten) Stapel nicht gelingt, die gespeicherten Parameter mit dem neuen Hallo zu vergleichen, müssen die gespeicherten Parameter grundsätzlich trotzdem verwendet werden. Obwohl es sich hierbei also zumindest um einen Verstoß gegen RFC handelt, sehe ich nicht, wie hier eine Sicherheitslücke bestehen kann.
Antwort2
Hier ist eine Fortsetzung zuAntwort von @dave_thompson_085: du kannst den ... benutzenPEM_read_SSL_SESSION
UndPEM_write_SSL_SESSION
Funktionen der OpenSSL-Bibliothek zum Dekodieren und Neukodieren der PEM-Datei.SSL_SESSION_set1_master_key
ermöglicht Ihnen, den Hauptschlüssel zu optimieren.