問題タブ [touch-id]
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.
ios - iOS8では指紋による認証のみでキーチェーンへのアクセスが制限される
iOS キーチェーンでアイテムを安全に保存/取得する必要があります。
Apple KeyChainServicesReference ドキュメント ( https://developer.apple.com/library/ios/documentation/security/Reference/keychainservices/Reference/reference.html ) から、SecItemCopyMatching 呼び出しを使用してキーチェーン項目を取得します。後者は、指紋または代わりに 4 桁の電話パスコードを使用できるローカル キーチェーンに対して認証するためのシステム プロンプトをポップアップ表示します。
指紋による認証は安全だと考えていますが、現在のセキュリティを低下させるのは 4 桁の PIN オプションです。だから、私の質問は: 指紋オプションだけでキーチェーンを照会する方法はありますか (パスコードオプションがなく、指紋認証が失敗した場合、失敗するだけで、4 桁のパスコードにフォールバックしません)
LocalAuthentication を調べましたが、後者は必要な正確なフローを提供しますが、LA はキーチェーンへのアクセスを許可しないため、LA は役に立ちません。
事前にどうもありがとう
ios - iOS シミュレーターで Apple の Touch ID (指紋スキャナー) を使用する方法はありますか?
Touch ID 認証を必要とするアプリを開発中ですが、シミュレーターで Touch ID (指紋スキャナー) を使用する方法はありますか?
また、LocalAuthentication フレームワークを使用するための何らかのサンプル コードを共有してください。
ios - アプリを最小化した場合に touchID を表示する必要があります
アプリの「ロックを解除」するためにタッチ ID を実装していますが、アップルのバグに遭遇したのか、自分で処理する必要があるのか わかりません。evaluatePolicy が Touch ID プロンプトを読み込む前に、ホーム ボタンをタップしてアプリを最小化すると、ホーム画面に表示されます。
![スクリーンショットを表示するのに十分な評判がないため、ここにリンクがあります] https://www.dropbox.com/s/zrhc60lx87ze7mt/IMG_0016.PNG
このポリシーの成功/失敗/キャンセルの評価は何もしませんが、アプリを再起動して再度キャンセルすると、電話を再起動するまで touchID が永久に無効になっているようです。
他の誰かがこの問題に遭遇したり、アイデアを持っていますか?
PS errSecUserCanceled がキャンセル ボタンのタップから返されないオープン レーダーがあるため、現在、errSecAuthFailed ケースに陥っています。これも原因である可能性があります。
ios - 指紋が追加された場合のios8 TouchID検出
Apple の Touch ID、より正確には Local Authenticator を掘り下げています。現在のドキュメントはかなりまばらです。主にこれだけです:
https://developer.apple.com/documentation/localauthenticationから取得
認証に指紋を使用するというアイデアは素晴らしいです。しかし、パスコードを知っていれば、デバイスに指紋を追加できます。そして、パスコードを取得するのは非常に簡単です。たとえば、電車の中で被害者の隣に座って、被害者がパスコードを入力するのを見るようにします。
安全な認証方法として指紋を使用したいのですが、前回指紋を要求してから新しい指紋が追加されたかどうかを検出できるようにしたいと考えています。
Apple は AppStore のためにこれを行っています。AppStore でトランザクションを認証する必要があり、最後のトランザクション以降に新しい指紋を追加した場合、AppStore は AppleId-Password を要求します。パスコードを知っていて、高価なものを購入するために自分の指紋を追加した誰かが電話を盗んだ可能性があるため、これは正常な動作です。
私の質問: 前回 Local Authenticator を使用してから新しい指紋が追加されたかどうかを検出できますか?
ios - iOS 8 Touch ID エラー「ユーザーの操作が必要です。」
作業中のアプリに Touch ID サポートを統合する作業を行っています。ただし、非常に一貫性のない動作です。私が見ている一般的な問題の 1 つは、アプリを新しく起動すると期待どおりに動作するが、アプリをバックグラウンドにしてフォアグラウンドに移動すると、エラーが返されることです。
あまり意味がありません(タッチIDアラートは表示されません)
アプリがすでに実行されているときに touchid アラートを表示しようとしましたが、フォアグラウンドになったばかりの場合は問題ではないようです。最初のアプリの起動後、毎回壊れています。
他の誰かがこれに遭遇していますか?
参考までに、私が使用しているコードは次のとおりです。
ios - SecItemAdd() が errSecInteractionNotAllowed (-25308) を返す
キーチェーンに値を保存しようとすると、エラー コード errSecInteractionNotAllowed (-25308) で失敗します。Touch ID とキーチェーンをいじっていたので、知らなかったアクセス許可を変更した可能性がありますが、この問題を引き起こす可能性のある変更内容がわかりません。
キーチェーンをいじる前にキーチェーンに値を正常に保存できたので、デバイスのどこかに設定されている可能性があります。それが設定である場合、キーチェーンにデータを再度保存するために何を変更する必要があるかを見つける手助けが欲しい. また、試す前にキーチェーンに保存するためのアクセス権があることを確認するための提案をいくつかお願いします.
ios - TouchID は applicationWillResignActive と applicationDidBecomeActive を呼び出します
これらのライフサイクル メソッドが TouchID 機能の使用時に呼び出されることが Apple によって意図されているかどうか疑問に思っています。
touchIDプロセスがこれらのメソッドを呼び出しているかどうかを確認する可能性はありますか?
br
ios - PIN フォールバックを備えた Touch ID API
Touch ID を使用してキーチェーンからシークレットを読み取るアプリケーションに取り組んでいます。
前回の読み取りの直後にキーチェーンから読み取ると、PIN コードを使用して最初にシークレットを読み取ると、2 回目の読み取りで文字列値が返されないことがわかりました。ユーザーが最初に指紋を使用すると、Touch ID ダイアログが 2 回目に表示され、別の読み取りが成功します。
アプリケーションの例を次に示します: https://github.com/cnandreu/KeychainTouchIdError
以下は、KeychainTouchIdError デモ アプリケーションを使用するいくつかのシナリオです。これらは、タッチ ID センサーを備えた iOS 8 を実行している実際のデバイスで実行する必要があります。Touch ID ダイアログが表示されないため、シミュレーターを使用すると、すべてのシナリオが期待どおりに機能します。
シナリオ 1 (作業中)
- kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly で保護されたキーチェーンに値を格納します。
- キーチェーンから読み取り、指紋を使用してロックを解除します。
- 遅延なし。
- キーチェーンから読み取り、指紋または PIN を使用してロックを解除します。
シナリオ 2 (デバイスで破損):
- kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly で保護されたキーチェーンに値を格納します。
- キーチェーンから読み取り、PIN を使用してロックを解除します。
- 遅延なし。
- キーチェーンから読み取ります。デバイスを使用している場合、タッチ ID ダイアログは表示されず、キーチェーンから null 文字列が返されます。ただし、シミュレーターを使用すると、キーチェーンに格納されている値が正しく取得されます。
シナリオ 3 (動作中):
- kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly で保護されたキーチェーンに値を格納します。
- キーチェーンから読み取り、PIN を使用してロックを解除します。
- 500ミリ秒待ちます。
- キーチェーンから読み取ります。ユーザーにはダイアログが表示され、指紋または PIN を使用した後にシークレットを再度読み取ることができます。
デモ アプリケーションで使用できるボタン
保存 - kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly によって保護されたキーチェーンにシークレットを書き込みます。
読み取り - キーチェーンからシークレットを読み取ります。
削除 - キーチェーンからシークレットを削除します。
クイック - シナリオ 1 および 2 を実行するために使用されます。
Quick with Delay - シナリオ 3 を実行するために使用します。
コメント
私たちの推測では、下にスワイプして約 250 ミリ秒続く PIN のロック解除のアニメーションが、2 回目の読み取りに干渉している可能性があります。指紋でロック解除するときのアニメーションはありません。これは単なる推測ですが。
シナリオ 2 で問題が発生した理由について何か考えはありますか? キーチェーンが再び「読み取り可能」になるのを待つために必要なことはありますか?