Ich bin gerade dabei, ein benutzerdefiniertes tcp/ip-Protokoll für die mobile Client-Server-Kommunikation zu entwickeln. Wenn es nicht erforderlich ist (die Daten sind nicht sensibel), möchte ich die Verwendung von SSL aus Overhead-Gründen vermeiden (sowohl bei der Handshake-Latenzzeit als auch bei der Einsparung von Zyklen).
Meine Frage lautet: Wie lassen sich Authentifizierungsdaten am besten über eine unverschlüsselte Verbindung übertragen?
Im Moment mag ich SRP oder J-PAKE (sie generieren sichere Sitzungs-Token, sind Hash/Salt-freundlich und erlauben es, bei Bedarf in TLS einzugreifen), die beide, wie ich glaube, in OpenSSL implementiert sind. Ich bin jedoch etwas misstrauisch, da ich nicht viele Leute sehe, die diese Algorithmen für diesen Zweck verwenden. Ich wäre auch dankbar für Hinweise auf Materialien, die dieses Thema im Allgemeinen behandeln, da ich Schwierigkeiten hatte, welche zu finden.
bearbeiten
Vielleicht hätte die Frage lauten sollen: Gibt es einen Best-Practice-Ansatz für sichere Kennwörter über unverschlüsseltes TCP/IP? Wenn nicht, was sind die Gründe für die Wahl einer bestimmten Methode gegenüber anderen? (Die Antwort von Rooks kommt dieser Frage im Geiste bisher am nächsten, auch wenn sie gegen den Wortlaut verstößt).
Bearbeiten, Teil zwei
Ich interessiere mich in erster Linie für den Fall der Client-Server-Authentifizierung, bei der davon ausgegangen wird, dass beide Parteien ein gemeinsames Geheimnis (Passwort) haben. a priori .