私は、セキュリティ、プライバシー、匿名性を中心としたWebベースのアプリを構築しています。アプリの重要な原則の1つは、ユーザーが機密データを匿名で保存できることです。
結果として、できればOAuthまたはOpenIDを使用して、システム認証を完全にアウトソーシングすることを期待しています。
これも可能ですか?メールアドレスやその他のユーザー識別情報を自分の側に保存することは避けたいと思います。
まず、OAuthは、プロジェクトのスコープとは別に、まったく別のものです。
それはあなたの「匿名」の定義によると思います。OpenIDを使用する場合は、ユーザーのOpenIDURLを保存することになります。つまり、システムはユーザーのOpenIDとまったく同じように匿名になります。
より本質的に匿名の解決策は、ユーザーが自分自身を識別するために任意の文字列を入力できるようにすることです。リピーターは、同じ文字列をもう一度入力するだけです。ユーザーの「ID」を表示したい場合は、ハッシュ関数を介してその文字列を実行できます。登録は必要ありません(4chanの安全なトリップコードとは異なります)。
私の友人は数年前にこれに取り組んでいました。彼のアイデアは、電子メールアドレスと親指または指紋を一意の画像にハッシュすることでした(生体認証データは単なるビットのストリームであり、理論的には「123456」のような人間が入力したパスワードと比較してかなり一意です)。
その画像は、自分のパスワードまたはビットロッカーを使用してその人のデバイスに保存したり、印刷して物理的にロックしたりすることもできます。ウェブカメラに表示したりアップロードしたりすると、画像が鍵となり、QRコードの反転のようなものになります。
もちろん、画像作成は潜在的な追跡ポイントになります。しかし、それが完全にメモリ内で行われた場合、または無料で広く配布されたキー生成ツールを使用して行われた場合は、元のユーザーのデータやIDを明らかにすることを強制されないように法的に保護されている可能性があります。(これはすべて、生体認証スキャナーの幅広い使用とあらゆる場所での安全な接続の必要性を覆い隠しています)
編集:
生体認証データストリームは、取得するたびにわずかに異なります。このようなストリームをそのままハッシュした場合、「パスワード回復」はありません。同じになることはないでしょう。ほとんどの次元削減は、それをはるかに安全性の低いものにし、それでも再現できない可能性を残す可能性があります。