問題タブ [android-fingerprint-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android 指紋認証: 暗号プリミティブが初期化されていません
1 週間前に正常に動作していたアプリケーション内に指紋認証を実装しました。コードに変更はなく、次のエラーが発生しています。
ブランチをきれいにプルして確認しても、コードは何も変更されていないため、何が起こっているのかわかりません。
以下は、アプリで使用している依存関係のリストです。
これらの新しい API に関して注意すべきことはありますか?
android - マシュマロ指紋スキャナ ハードウェア プレゼンス
Marshmallow Fingerprint Authentication API の使用を開始しようとしています。許可を求めるには、次の方法を使用する必要があることを理解しています。
そして、デバイスが API レベル 23 以上を実行しているかどうかを確認する必要があります。しかし、許可を求める前に、そもそもデバイスに実際に指紋スキャナーがあるかどうかを確認したいと思います。このチェックを行うには、次の2つの方法が見つかりました。
ただし、どちらの方法USE_FINGERPRINT
でも、呼び出すにはアクセス許可が必要です。存在すら知らない指紋スキャナーを使用する許可を求める必要があるのはなぜですか? スキャナーが存在するかどうかを調べる他の方法はありますか? または、最初に許可を求める唯一の方法ですか?
android - Samsung は Marshmallow から Google の指紋 API をサポートしますか?
Samsung の Marshmallow アップデートが Google の新しい指紋 API を使用するか、カスタム SDK を使用し続けるか、またはその両方を使用するかについて、利用可能な情報はありますか?
彼らはベータ テスターへのローリング アップデートを開始したようですが、これらは私の国では利用できず、他の情報を見つけることができません。
android - Android で Apple の指紋設定フローを模倣する
Apple が指紋設定フローで増大する指紋効果をどのように実装したのか疑問に思っています。Androidで可能ですか?Android のプログレス バーのようなものに見えると思いますが、それがどのように機能し、実際に Android 6.0 の指紋 API とどのように関連しているかに興味があります。
android - 識別としての Android 指紋
アイデアは、指紋を使用してユーザーを識別することです。ユーザーが指紋デバイスで指を使用してアプリにログインできるように、ユーザーと指をバインドしたいので、ユーザーがデバイスを変更し、ユーザー名とパスワードを入力せずにユーザーがログインできるようにします。作り方は?私がこれまでに見つけたように、それを作るオプションはありません。または私は間違っている可能性がありますか?
公開鍵と秘密鍵を使用した認証に関する記事を見つけましたが、ユーザーがデバイスを変更した場合、デバイスは公開鍵と秘密鍵の新しいペアを生成する必要があるため、これは本当に望んでいたものではありません。
android - Espresso を使用した Android UI テストのフィンガープリント
Android フィンガープリントの実装が機能しており、Espresso で UI テストを追加することを検討していました。解決策が見つからない問題の 1 つは、指のスキャンをエミュレートする方法です。adb -e emu finger touch
エミュレーターで動作する adb コマンドがあり
ます。
そのようなものをエスプレッソと統合する方法について何か考えはありますか?
android - Android指紋APIで認証済みの登録指紋を特定する方法
ログイン用のアプリの1つに指紋認証を使用したかったのです。私のアプリでは、複数のユーザーがアプリでログインできます。ここで、ユーザーが使いやすいように指紋認証を実装したいと考えています。どうにかしてユーザーを区別する必要があります。指紋ログインを実装すれば、どの指紋が認識されたかを知ることができればいいのにと思いました。指紋に関連する情報を取得する方法はありますか?
android - Android 指紋 API の暗号化と復号化
Android M Fingerprint API を使用して、ユーザーがアプリケーションにログインできるようにしています。これを行うには、ユーザー名とパスワードをデバイスに保存する必要があります。現在、ログインと指紋 API は機能していますが、ユーザー名とパスワードは両方ともプレーンテキストとして保存されています。パスワードを保存する前に暗号化し、ユーザーが指紋で認証した後にパスワードを取得できるようにしたいと考えています。
これを機能させるのに非常に苦労しています。私はAndroid セキュリティ サンプルからできることを適用しようとしましたが、各例は暗号化または署名のみを処理し、復号化は処理しないようです。
これまでのところ、Android を使用できるようにするために、非対称暗号化を使用してAndroidKeyStore
、 a 、KeyPairGenerator
および aのインスタンスを取得する必要があります。非対称暗号化の理由は、ユーザーが認証されていない場合、メソッドがキーの使用をブロックするためですが、次のとおりです。Cipher
KeyGenParameterSpec.Builder().setUserAuthenticationRequired(true)
setUserAuthenticationRequired
この承認は、秘密鍵と秘密鍵の操作にのみ適用されます。公開鍵の操作は制限されません。
これにより、ユーザーが指紋で認証する前に公開鍵を使用してパスワードを暗号化し、ユーザーが認証された後にのみ秘密鍵を使用して復号化できるようになります。
正直なところ、これが正しいかどうかはわかりません。これは、この件に関して私が見つけたものからの断片です. Cipher
私が変更したものはすべて別の例外をスローし、 をインスタンス化できないため、この特定のビルドは実行されませんNoSuchAlgorithmException: No provider found for EC
。同様に切り替えてみましRSA
たが、同様のエラーが発生します。
私の質問は基本的にこれです。Android でプレーンテキストを暗号化し、ユーザーが指紋 API によって認証された後に復号化できるようにするにはどうすればよいですか?
KeyGenParameterSpec
主にドキュメンテーションページの情報を発見したおかげで、私はある程度の進歩を遂げました。
getKeyStore
、encryptePassword
、decryptPassword
、getKeyPairGenerator
およびgetCipher
ほとんど同じままにしましたが、KeyPairGenerator.getInstance
およびCipher.getInstance
をそれぞれ"RSA"
およびに変更し"RSA/ECB/OAEPWithSHA-256AndMGF1Padding"
ました。
また、残りのコードを楕円曲線ではなく RSA に変更しました。私の理解では、Java 1.7 (したがって Android) は EC での暗号化と復号化をサポートしていないからです。createKeyPair
ドキュメントページの「RSA OAEP を使用した暗号化/復号化の RSA キーペア」の例に基づいて方法を変更しました。
また、ドキュメントの既知の問題initCipher
に基づいて方法を変更しました。KeyGenParameterSpec
Android 6.0 (API レベル 23) の既知のバグにより、公開鍵に対してもユーザー認証関連の承認が強制されます。この問題を回避するには、Android Keystore の外部で使用する公開鍵素材を抽出します。
これで、パスワードを暗号化し、暗号化されたパスワードを保存できます。しかし、暗号化されたパスワードを取得して復号化しようとすると、KeyStoreException
不明なエラーが発生します...
android - Android KeyStoreException 不明なエラー
ユーザーが Android M Fingerprint API によって認証された後、暗号化されたテキストを復号化しようとしています。私は主にAndroid セキュリティのサンプルKeyGenParameterSpec
と、ドキュメントで提供されている例に従うように努めてきました。公開鍵でテキストを正常に暗号化できましたが、 で秘密鍵を使用して呼び出すcipher.doFinal
と、「不明なエラー」が発生します。Cipher
DECRYPT_MODE
KeyStoreException
関連する現在のコードは次のとおりです。
この「不明なエラー」の原因は何ですか? を除外しましたがsetUserAuthenticationRequired
、何が原因なのかわかりません。また、提供されたもののmCipher
代わりにグローバルを使用してみました(ただし、それらは同じである必要があると思います)同じ結果が得られました。Cipher
FragmentManagerCompat.AuthenticationCallback.onAuthenticationSucceeded
別の質問への回答を探しているときに、この問題に遭遇しました。