パスワードの保存は簡単です。パスワードハッシャーを使用してください。だが..
どのように指紋をサーバーに安全に保存しますか?つまり、サーバーとそのすべてのデータが盗まれても、誰かが指紋を取得することはできません。
私が理解しているところによると、スキャナーが取得する指紋の画像は常に異なるため、あなたが所有者であることを確認するには、指紋が十分な割合で一致することを確認するだけです。そのため、スキャナーから提供された画像の直接パスワードハッシュを作成して、データベース内のものと比較することはできません。
指をスキャンするたびにスキャン全体が少し変化しても、「変化しない」データを抽出するための前処理はありますか?
サーバーに指紋テンプレートを安全に保存することはできません。テンプレートは攻撃を受ける可能性があります。これらの攻撃に対処しようとしても、パスワードの場合と同様のバランスは取れていません。ミシガン州にある、それを変えようとしている主要な研究所 http://biometrics.cse.msu.edu/pubs/secure_biometrics.html
また、リモートで指紋を読み取っている場合は、ハードウェアへの攻撃、グミベア攻撃などの影響を受ける可能性があります。そのため、必要なセキュリティが得られず、認証されている人は別の認証システムを使用できません。システム。
実際、問題に取り組むいくつかの研究があります。クライアント側で指紋情報を保存するという事実(他の人が示唆するように)は、特定のケースでは実行可能なソリューションではない可能性があることを認めるべきです。携帯電話には問題ないかもしれませんが、企業や分散サービスには不十分です。
同様の入力に対して同じハッシュを作成できる(非暗号化)ハッシュ関数があります。局所性に敏感なハッシュ(LSH)と呼ばれ、検索アルゴリズムで広く使用されています。この関数は、「類似データ間で発生する差異を高い確率で減らすことができますが、遠方のデータは大幅に離れたままにする必要があります」。次に、LSHを暗号化ハッシュして、エラー耐性の高い結果を得ることができます。 この2009年の記事 で説明されているように、これをブルームフィルターと組み合わせることができます。残念ながら、そこに記述されているメソッドの既存の実装については知りません。
要約すると、答えは(上記のような)フォールトトレラントな暗号化方法でこれを行うことができるということですが、時間がない場合は、指紋とUIDの変換のための専用の安全なプロバイダーを用意することをお勧めします(その上に座っている機関銃手)。