Das Entwicklerteam, dem ich angehöre, versucht, einen sicheren Weg zum Austausch sensibler Daten zwischen einem Server und mobilen Geräten zu entwickeln.
Wir haben den folgenden Algorithmus entwickelt:
Gerät generiert einen privaten RSA-Schlüssel und sendet den öffentlichen Schlüssel an den Server.
Der Server generiert einen eindeutigen AES-Schlüssel für den Benutzer und verwendet den öffentlichen RSA-Schlüssel für verschlüsseln Sie es und senden Sie es an das Gerät zurück.
Das Gerät erhält den AES-Schlüssel. Verwendet es zum Verschlüsseln von Kennwort und Benutzername und sendet es an den Server.
Der Server entschlüsselt den Benutzernamen und das Kennwort. Wenn eine Übereinstimmung vorliegt, wird der AES-Schlüssel für die sichere Kommunikation für X Zeit oder bis zum Abmelden verwendet. Andernfalls muss der Prozess neu gestartet werden.
Ist er sicher genug? Gibt es Möglichkeiten, wie es verbessert werden kann? Was sind die Fehler?
Bearbeiten: Was ist nach dem Lesen der Kommentare eine sicherere Alternative und warum?
Bearbeiten2: Ok, ich verstehe . Ich werde meine eigene Implementierung nicht verwenden, sondern etwas finden, das sich bereits bewährt hat.