Verschlüsselten Text über normalen Socket senden / empfangen



  • Hallo zusammen!
    Ich habe eine grundlegende Frage zum Thema verschlüsselte Übertragung. Momentan beschäfte ich mich mit Verschlüsselungen und wollte wissen, ob es ein Sicherheitsrisiko darstellt, einen verschlüsselten Text über einen normalen Socket zu versenden und zu empfangen? Bei Java gibt es dafür spezielle SSL bzw. TLS Sockets. Doch muss man die zwangsläufig verwenden? Das verunsichert mich ein wenig. Wenn ich jetzt mal angenommen eine hybride Verschlüsselung mit normalen Sockets verwenden möchte und generiere im Server unter Java ein Keypair mit public und private Key und sende den public Key unverschlüsselt zum Client, der dann mit dem public Key einen zufälligen symetrischen Key verschlüsselt und diesen wieder zum Server sendet, der die Chiffre mit dem private Key wieder entschlüsselt. Somit kommt dann eine symmetrische verschlüsselte Kommunikation zustande. Gibt es da irgendwelche Sicherheitsbedenken das über normale Sockets zu machen?

    Danke.



  • Warum entwirfst du selbst ein key exchange protocol anstatt ein bekanntes zu nehmen? An der Stelle hätte ich die viel größeren Sicherheitsbedenken.



  • Also prinzipiell ist das nicht unsicher, Java macht auch nichts anderes als normale Sockets zu kapseln. Dein Protokoll allerdings ist nicht MITM-sicher. Was machst du wenn jemand einfach den public key den der Server versendet abfängt und durch seinen public key austauscht? (Und dann die Antwort abfängt, entschlüsselt, den key wieder mit dem public key des servers verschlüsselt und zum Server sendet. Ab jetzt kann er alles wunderbar mit lesen.)

    Edit: Falls du dich fragst wie man das denn verhindern soll, die Antwort lautet gar nicht. Die erste Kommunikation kann leider nie gegen MITM gesichert sein. Der Unterschied ist nur dass die erste Kommunikation bei TLS die Installation des ersten Browsers o.Ä. ist (der oft gleich mit dem OS installiert wird), dieser enthält nämlich gleich die public keys der Certificate Authorities, welche wiederrum die Public Keys anderer Server bestätigen, während bei deinem Protokoll jeder Verbindungsaufbau eine neue "erste Kommunikation" ist.



  • Stimmt! An einem MITM Angriff hatte ich jetzt garnicht gedacht.


Log in to reply