Hallo zusammen,
ich will meine eine kleine Applikation mit Server / Client Kommunikation über eine Socket Verbindung programmieren. Dazu habe ich mir überlegt wie ich die Verbindung absichere mit Verschlüsselung und Authentifizierung.
Dazu habe ich mir folgendes überlegt:
Im Client ist ein Public Key hinterlegt, der Server kennt den Private Key dazu.
1. Client verschickt eine "Hallo" Nachricht verschlüsselt mit dem Public Key vom Server an den Server.
2. Server generiert eine neues Key Paar nur für dieses Session und sendet den generierten Public Key verschlüsselt mit dem Ur-Private Key an den Client.
3. Nun sendet der Client eine Nachricht mit User-Name und Passwort verschlüsselt mit dem Session Public Key.
4. Server bestätigt Anmeldung und die weitere Kommunikation wird mit dem Session Key verschlüsselt.
5. Session Keys werden nach dem Schließen der Verbindung verworfen
Meint ihr das ist so ein sinniger Weg? Zertifikate kann ich leider aus diversen Gründen keine einsetzten.
Gruß
Markus
ich will meine eine kleine Applikation mit Server / Client Kommunikation über eine Socket Verbindung programmieren. Dazu habe ich mir überlegt wie ich die Verbindung absichere mit Verschlüsselung und Authentifizierung.
Dazu habe ich mir folgendes überlegt:
Im Client ist ein Public Key hinterlegt, der Server kennt den Private Key dazu.
1. Client verschickt eine "Hallo" Nachricht verschlüsselt mit dem Public Key vom Server an den Server.
2. Server generiert eine neues Key Paar nur für dieses Session und sendet den generierten Public Key verschlüsselt mit dem Ur-Private Key an den Client.
3. Nun sendet der Client eine Nachricht mit User-Name und Passwort verschlüsselt mit dem Session Public Key.
4. Server bestätigt Anmeldung und die weitere Kommunikation wird mit dem Session Key verschlüsselt.
5. Session Keys werden nach dem Schließen der Verbindung verworfen
Meint ihr das ist so ein sinniger Weg? Zertifikate kann ich leider aus diversen Gründen keine einsetzten.
Gruß
Markus