Ich richte einen HTTP-Heimserver ein, der JSON-Daten an / von verschiedenen Clients (Android- und iPhone-Apps) senden und empfangen kann.
Ich möchte den Zugriff nur bestimmten Benutzern und Benutzern ermöglichen Ich denke darüber nach, einen einfachen Mechanismus für Benutzernamen und Kennwörter zu verwenden, da das Einrichten von Clientzertifikaten für dieses kleine Projekt etwas übertrieben erscheint.
Natürlich kann ich keine eindeutigen Kennwörter vom Client an den Server senden auf einfachem HTTP könnte es sonst jeder lesen, auf dem wireshark / tcpdump installiert ist. Ich denke also über den folgenden Mechanismus nach:
- Der HTTP-Server kann als HTTPS-Server eingerichtet werden.
- Der Server verfügt auch über eine Datenbank mit Benutzernamen und Kennwörtern (möglicherweise Kennwörter) mit bcrypt gespeichert)
- Der Client öffnet die HTTPS-Verbindung, authentifiziert den Server (daher ist ein Serverzertifikat erforderlich) und nach dem Austausch des Hauptschlüssels sollte die Verbindung verschlüsselt werden.
- Der Client sendet den Benutzernamen / das Kennwort eindeutig an den Server.
- Der Server führt bcrypt für das Kennwort aus und vergleicht es mit dem in der Datenbank gespeicherten Kennwort. ol>
Gibt es welche Problem mit dieser Art der Konfiguration? Das Passwort sollte sicher sein, da es über eine verschlüsselte Verbindung gesendet wird.