2016-09-13 4 views
5

私はGoogleが提供するアンドロイドの指紋サンプルを通過しました。Androidフィンガープリント認証にcryptoオブジェクトが必要な理由

https://developer.android.com/samples/FingerprintDialog/index.html

私はセキュリティ標準に新しいです、私は次のことを理解することができません。

  1. なぜキーストア、キー、CryptoObjectなどを使用する必要があるのですか?単純に、指紋マネージャーにユーザーの認証を依頼して、単にステータスを返すことができます(成功/失敗)
  2. 認証ごとに毎回新しいキーを生成する必要がありますか?ご質問の1、

    から

+2

をCryptoObject、キーとパスワードのプロセスを実装して指紋認証ダイアログのための私のライブラリを確認することができますステータス(成功/失敗)を返すことができます " - [FingerprintManager'の' authenticate() 'メソッド参照](https://developer.android.com/reference/android/hardware/fingerprint/FingerprintManager.html##認証(android.hardware.fingerprint.FingerprintManager.CryptoObject、%20andandroid.os.CancellationSignal、%20int、%20andandroid.hardware.fingerprint.FingerprintManager.AuthenticationCallback、%20andandroid.os.Handler))。 'CryptoObject'は' null'でもかまいません。 – CommonsWare

+0

おかげさまで、私のアプリに指紋認証を使用する予定です。キーやキーストアなどを使用することをお勧めしますか?このコンセプトを理解する方向に私を指摘できますか? –

+0

私はあなたが指紋認証から何を望んでいるのか、そしてあなたがそれによって保護しようとしているもの(APIキー?ユーザーデータ?何か他のもの?)を詳細に** **説明する別のStack Overflow質問をすることをお勧めします。あなたのニーズに最も適した指紋APIの側面を尋ねます。 – CommonsWare

答えて

0

answere私たちは、別名でキーを作成し、キーを取得するためにエイリアスを使用します。エイリアスはキーのキーです。アプリサンドボックスに格納されているエイリアスのリストが表示されます。同じエイリアスを持つキーを生成しようとした後の試行でキーを取得します。

+0

もう少し説明できますか?第三者が指紋スキャナによって返された結果を傍受する可能性があります。 Cryptoオブジェクトは、指紋スキャナによって返された結果を暗号化するために使用されます。 ' – Yashasvi

+2

あなたは第三者について言ったことが絶対に間違っています**。とにかく、傍受されるデータはありません。 [Android Doc](https://source.android.com/security/authentication/fingerprint-hal)から:したがって、生の画像と処理された指紋の特徴は、 信頼できないメモリに渡されてはなりません。このようなバイオメトリックデータはすべて、センサーのハードウェアまたはトラステッドメモリ 内に確保する必要があります。 (TEE内のメモリは信頼できるとみなされ、TEE以外のメモリは信頼できないとみなされます)。 –

5

なぜキーストア、キー、CryptoObjectなどを使用する必要があるのですか?単にそれは あなたがする必要はありません(成功/失敗)ユーザーを認証するために、それは 単にステータスを返すことができ

を指プリントマネージャを頼む、のような可能性があります。 CryptoObjectなしで指紋認証を行うことができます。ちょうどnullの値を渡します。キーストアやその他のものを混乱させる必要はありません。

指紋認証の場合に唯一CryptoObjectを使用するのは、ユーザーが最後に指紋で認証してから新しい指紋が追加されたかどうかを知ることです。

各認証ごとに毎回新しい鍵を生成する必要がありますか?

新しい指紋がを追加した場合(新しい指紋が追加されたとき、彼らが無効になっているため)、ユーザーの身元を確認するためにパスワードを要求し、新しいキーを生成する必要があります。あなたはnullCryptoObject

問題の視点の

指紋認証がCryptoObjectを必要としない、実際にはそれは全く逆だ渡す場合

もう一度、あなたはこれらと混乱する必要はありません。

あなたは、Android上で暗号化操作を行うと、あなたはこれらのオブジェクトのいずれかを使用することができます:CipherSignatureMac(その他)。これら3つのうちの1つを使用してCryptoObjectを構築することができます。

あなたは、これらのオブジェクトのためのキーを生成すると、ユーザーは前に指紋で認証している場合VALIDS のみキーを取得するために管理しsetUserAuthenticationRequired(boolean)をnammed方法があります。

例えば、クライアント/サーバ通信の場合、クライアントが鍵を使用できる場合、指紋で認証され、その身元が分かっていることを意味します。ところで

、あなたは、単にそれは、のようなことがユーザーを認証するために指紋マネージャを尋ねると、それでした」... https://github.com/omaflak/FingerprintDialog-Library

関連する問題