web-dev-qa-db-ja.com

オフラインのマルチユーザーモバイル環境でユーザーを認証する最良の方法は何ですか?

現在、マルチユーザーモバイル環境用のオフライン認証システムに取り組んでいます。

すべてのパスワードをローカルに保存することを避けるために、これは悪い考えのようですが、私はこのように進めます:

最初のオンライン認証が必要です。次に、サーバーはユーザーにトークンを返します。トークンは、将来のAPI呼び出しを実行するために使用されます。

同じモバイル/タブレットで複数のユーザーを使用するには、複数のトークンを保存し、特定のユーザーにのみアクセスを許可する方法が必要です。

2つの解決策が思い浮かびます。

  • クラシックパスワード。ユーザーが「メインパスワード」と同じパスワードを入力するリスクがあります。
  • PINコードまたは類似のコード。「メインパスワード」とは関係ありませんが、エントロピーは少ないです

指紋認証もソリューションになりますが、すべてのデバイスが指紋検出をサポートしているわけではありません。

どちらのケースにも欠点があり、オフライン攻撃に対して脆弱であるため、どちらも弱い

オフラインのマルチユーザーモバイル環境でユーザーを認証する最良の方法は何ですか?

1
Kepotx

まあ、ユーザーを切り替えるか、ユーザーを「ログアウト」するときはいつでも、トークンを無効にして削除するだけで、オンライン認証とオンラインパスワードチェックを使用できます。

オフライン攻撃からトークンを確実に保護する唯一の方法(私が知る限り)は、パスワードまたはPINを必要とするトークンを暗号化することです。エントロピーを少し助けるためにPBKDF2などの十分な反復を伴う低速のパスワード導出関数を使用する必要があります。

1
Peter Harmann