OpenSSL Verbindung sicher?

umask007

Lt. Junior Grade
Registriert
Dez. 2012
Beiträge
370
Hallo,
ist folgende Verbindung trotz eines selbst signierten Zertifikates sicher?

Code:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
Server:
Code:
openssl s_server -key key.pem -cert cert.pem -accept 9000 -quiet

Client:
Code:
openssl s_client -connect localhost:9000  -CAfile cert.pem -verify_quiet -quiet -noservername

Ich würde davon ausgehen, dass es sicher ist ( da ja nicht jedem selbst signierten Zertifikat vertraut wird, sondern das Zertifikat explizit angegeben wird), ich frage mal besser nach.

Viele Grüße,
Thomas
 
kommt darauf an, was du unter "sicher" verstehst. im beispiel verifiziert der client, ob er auch wirklich mit dem gewünschten server kommuniziert. es macht keine aussage, welche verschlüsselung genutzt wird oder ob überhaupt verschlüsselt wird. bzgl. "sicher" gibt es authentication, authorization und encryption, dein beispiel ist erstmal nur die server-authentication.
 
  • Gefällt mir
Reaktionen: BeBur
Die „Sicherheit“ kommt aus der Verschlüsselung, hier mit 2.048 Bit. Was aktuell okay sein sollte. Dass dir ein Browser so ein Zertifikat als unsicher anzeigt liegt daran, dass er nicht validieren kann wer es ausgestellt hat. Bzw. der Ersteller keine als „sicher“ bekannte CA ist. Die eigentliche Verschlüsselung ist am Ende identisch, egal ob du dir das selbst ausstellst oder das Premium-Paket bei der Super-Duper-CA kaufst ;)

PS: LetsEncrypt ist kostenlos. Und wird von jedem gängigen Browser akzeptiert.
 
  • Gefällt mir
Reaktionen: wesch2000
ranzassel schrieb:
Die „Sicherheit“ kommt aus der Verschlüsselung, hier mit 2.048 Bit.
das zertifikat verschlüsselt nicht die verbindung. du kannst dich auch mit einem zertifikat authentifizieren und danach die verbindung mit einer null-cipher nicht verschlüsseln. macht hoffentlich niemand ausser zum entwickeln/debuggen, aber möglich ist es.
 
0x8100 schrieb:
kommt darauf an, was du unter "sicher" verstehst. im beispiel verifiziert der client, ob er auch wirklich mit dem gewünschten server kommuniziert. es macht keine aussage, welche verschlüsselung genutzt wird oder ob überhaupt verschlüsselt wird. bzgl. "sicher" gibt es authentication, authorization und encryption, dein beispiel ist erstmal nur die server-authentication.
ich gehe davon aus, dass openssl sichere default Werte verwendet. Aber darum ging es mir eigentlich nicht.
Überall im Internet liest man, dass selbst signierte Zertifikate nicht sicher sind. Ich frage mich, ob obiges Beispiel eine Ausnahme darstellt, das das Zertifikat explizit mit "-CAfile cert.pem" angegeben wird.
Anders ausgedrückt: Ist obige Verbindung gegen Man-In-The-Middle Angriffe sicher?
ranzassel schrieb:
Die „Sicherheit“ kommt aus der Verschlüsselung, hier mit 2.048 Bit. Was aktuell okay sein sollte. Dass dir ein Browser so ein Zertifikat als unsicher anzeigt liegt daran, dass er nicht validieren kann wer es ausgestellt hat. Bzw. der Ersteller keine als „sicher“ bekannte CA ist. Die eigentliche Verschlüsselung ist am Ende identisch, egal ob du dir das selbst ausstellst oder das Premium-Paket bei der Super-Duper-CA kaufst ;)

PS: LetsEncrypt ist kostenlos. Und wird von jedem gängigen Browser akzeptiert.
Ja die Verschlüsselung passt denke ich. Trotzdem reicht diese alleine nicht aus (wegen der Man-In-The Middle Problematik). Wenn ich mein eigenes, selbst signiertes Zertifikat in den Browser importieren würde, wäre die Verbindung dann sicher?
 
umask007 schrieb:
Überall im Internet liest man, dass selbst signierte Zertifikate nicht sicher sind.
Wenn ein unbekannter Server sich mit einem selbstsignierten Zertifikat authentifizeren will, dann ist das ziemlich wertlos. Wenn du selber das Zertifikat erstellt hast, dann ist das etwas anderes.
 
  • Gefällt mir
Reaktionen: umask007
Zurück
Oben