Hi,
RSA Verschlüsselung ist eine Verschlüsselung mit Private und Public Key.
Üblicherweise ist es so, dass eine Person / eine Instanz ein Schlüsselpaar besitzt und sich durch dieses identifiziert und authentifiziert! Das wird in den meisten Fällen so gehandhabt.
Also ein Server würde für seine Lebzeit das gleiche Schlüsselpaar benutzen. Ein Client, der auf den Server zugreift und seinen Public Key kennt, könnte anhand dessen feststellen, ob er auch wirklich mit besagtem Server kommuniziert (und nicht etwa mit einem Man in the Middle).
In SSH zum Beispiel ist es so: dein private Key ist auf deinem lokalen PC und dein public Key auf dem Server. Wenn du nun einen Login versuch per SSH machst, kannst du RSA Authentifizierung aktivieren und mit deinem Public Key 'beweisen', wer du bist. Somit ist eine Passwortverifikation überflüssig.
Du kannst hiermit überlegen, auf welcher Ebene du Authentifizierung handhaben willst. Klar könnte dein einziges Bezwecken sein, dass irgendein Lauscher davon nichts mitbekommt, aber selbst da müsstest du irgendwie deinen Public Key an die Gegenseite bekanntgeben, somit stehen dir 3 Möglichkeiten offen:
1. Jede Nachricht ein eigenes Schlüsselpaar:
Würde ich dringend von abraten. Wie will denn der Schlüsselaustausch stattfinden? Jedes Mal? Und wie willst du versichern, ob du mit der richtigen Person den Schlüssel ausgetauscht hast? Hier kann versichert werden, dass das Ende der Nachricht von der gleichen Person ist, wie der Anfang.
2. Jedes Gespräch ein eigenes Schlüsselpaar:
Ist besser, dann müste nur am Anfang des Gesprächs ein Schlüsselaustausch stattfinden. Hier kann versichert werden, dass man am Ende des Gesprächs mit der gleichen Person spricht wie am Anfang.
3. Auf Lebzeit (z.B. per Benutzer) ein Schlüsselpaar.
Meiner Meinung nach die beste Lösung -> hier muss man nur beim allerersten Kontakt den Schlüssel austauschen und alle folgenden Begegnungen werden nun beidseitig authentifiziert.
Grüße,
Muja