現在、マルチユーザーモバイル環境用のオフライン認証システムに取り組んでいます。
すべてのパスワードをローカルに保存することを避けるために、これは悪い考えのようですが、私はこのように進めます:
最初のオンライン認証が必要です。次に、サーバーはユーザーにトークンを返します。トークンは、将来のAPI呼び出しを実行するために使用されます。
同じモバイル/タブレットで複数のユーザーを使用するには、複数のトークンを保存し、特定のユーザーにのみアクセスを許可する方法が必要です。
2つの解決策が思い浮かびます。
指紋認証もソリューションになりますが、すべてのデバイスが指紋検出をサポートしているわけではありません。
どちらのケースにも欠点があり、オフライン攻撃に対して脆弱であるため、どちらも弱い
オフラインのマルチユーザーモバイル環境でユーザーを認証する最良の方法は何ですか?
まあ、ユーザーを切り替えるか、ユーザーを「ログアウト」するときはいつでも、トークンを無効にして削除するだけで、オンライン認証とオンラインパスワードチェックを使用できます。
オフライン攻撃からトークンを確実に保護する唯一の方法(私が知る限り)は、パスワードまたはPINを必要とするトークンを暗号化することです。エントロピーを少し助けるためにPBKDF2などの十分な反復を伴う低速のパスワード導出関数を使用する必要があります。