Wenn Sie Ihre Anwendung ausführlicher erläutern, stelle ich möglicherweise fest, dass ich hier nicht an der Basis bin, aber für den Moment werde ich einige Annahmen über Ihren Anwendungsfall und Ihr Bedrohungsmodell treffen.
Mein Verständnis ist, dass Sie einige vertrauliche Informationen haben, die Sie zwischen einem mobilen Gerät mit unterbrochener Konnektivität und einem Remote-Dienst synchronisieren möchten. Der Dienst ist nur für authentifizierte Benutzer zugänglich, und Benutzer müssen sich gegenüber dem mobilen Gerät authentifizieren, um auf ihre Kopie der Informationen zugreifen zu können, selbst wenn sie offline ist.
Wenn Sie starke Sicherheit wünschen, verschlüsseln Sie die Kopie des mobilen Geräts mit passwortbasierter Verschlüsselung.
Sie könnten dasselbe Passwort verwenden, das für die Authentifizierung beim Dienst verwendet wird, aber im Allgemeinen würde ich vermeiden, denselben Schlüssel für andere Zwecke zu verwenden. Ein besserer Ansatz wäre ein Hauptverschlüsselungskennwort für das mobile Gerät, das die mobile Datenbank verschlüsselt, sowie das "Kennwort", das zur Authentifizierung des Benutzers beim Synchronisierungsdienst verwendet wird. Beachten Sie, dass das Dienstauthentifizierungskennwort tatsächlich ein privater Schlüssel für die SSL-Client-Zertifikat-Authentifizierung oder ein zeichenbasiertes Kennwort sein kann.
Sie müssen das Risiko eines einzigen Passworts auswerten, aber in vielen Fällen denke ich, dass dies dem Benutzer einen Vorteil bietet, kombiniert mit der Sicherheit eines starken Master-Passworts im Gegensatz zu zwei schwachen, aber leicht zu merkende Passwörter ist eine gute Balance.
Beachten Sie, dass Benutzer, deren Dienstzugriff widerrufen wurde, mit diesem Ansatz weiterhin auf ihre lokale Kopie zugreifen können, jedoch ohne neue Aktualisierungen. Sie könnten eine Vorstellung von einem Zeitlimit enthalten, das von der mobilen Software durchgesetzt werden soll, aber ein entschlossener Angreifer könnte dies umgehen.
Wenn Sie nur Spielzeugsicherheit benötigen, ist Ihr Vorschlag, den richtigen Hash auf dem mobilen Gerät zu speichern, angemessen, und es ist wirklich egal, ob Sie das echte Passwort oder eine Alternative hashen, denn wenn Sie den richtigen Hash verwenden, Es sollte einige Milliarden Jahre dauern, bis eine Passwortkollision gefunden wurde, die es ihnen ermöglichen würde, auf den Remote-Dienst zuzugreifen.
Vorausgesetzt, ein Angreifer kann den Kennwort-Hash sehen, was hindert ihn daran, auch die synchronisierten Daten anzusehen? Warum sollten sie das Passwort wiederherstellen müssen? Eine Verschlüsselung der mobilen Datenbank würde dies verhindern.
Sprechen Sie über dauerhaften Offline-Zugriff oder die erneute Authentifizierung von jemandem, der online war, jetzt, wo sie nicht mehr sind? – Whisk
Das Endziel ist, dass der Client später mit dem Server verbunden wird und seine Daten/Updates synchronisiert. – pc1oad1etter
Entschuldigung für die Verwirrung. Ich meinte kein "Master" -Kennwort, das von allen Benutzern geteilt wird. Ich meinte ein Kennwort, das die mobile Datenbank des Benutzers und die Anmeldeinformationen für die Dienstauthentifizierung des Benutzers schützt. Dies authentifiziert Benutzer effektiv offline und online. – erickson