指紋と 4 桁の PIN (アプリケーション設定でユーザーが設定できます。これはシステム PIN/パターン/パスワードではありません) 認証を使用するアプリがあります。
指紋ですべて問題ありませんが、ピンに問題があります。
私がやろうとしていることは次のとおりです。
- ユーザーがアプリケーション設定からピンを設定できるようにする
- 入力されたピンで保護されたエイリアスのキーストアでキーペアを生成します(このピンなしでは秘密鍵にアクセスできないようにするため)
- 将来の署名検証のために公開鍵をサーバーに送信する
- サーバーからユーザー トークンを取得し、ローカル ストレージに保存します
次に、承認中に:
- ユーザーに PIN の入力を要求する
- 入力した PIN で秘密鍵を取得する
- ローカル ストレージからトークンを取得する
- ステップ 6 の秘密鍵でトークンに署名する
- 署名付きデータでサーバーに送信する
- サーバーで署名を確認し、有効な場合はユーザーのセッションを開きます。
私の質問は:ユーザーが入力したピンで保護された KeyPair を生成するにはどうすればよいですか?
PS指紋の場合、このロジックは次のように処理されます。
KeyGenParameterSpec.Builder(KEY_NAME, KeyProperties.PURPOSE_SIGN).setUserAuthenticationRequired(true)