私が直面している問題は興味深いもので、セキュリティに関する知識は豊富ですが、理解は不十分です。つまり、私は理論を理解していますが、この特定の点に関してはほとんど実用化されていません。パスワードを保存し、ソルトを使用して送信し、ハッシュを検証しました。ここでの私のニーズは似ていますが、具体的です。
他の外部アプリケーションが ContentProvider URI を介して「フック」できるアプリケーションが 1 つあります。外部アプリケーションは誰でも開発できるため、私はそれらを制御できません。ただし、サブスクライバーへのアクセスを制限したいと考えています。これを容易にするために、各「サブスクライブ」アプリケーションには、そのパッケージ名に登録されたキーがあります。ContentProvider は、このキーが有効であることを確認する必要があります。
私の問題はこれです: URI を介して渡されるため、転送中にキーを簡単に傍受することができます。さらに、サブスクライバーは、安全なサーバーに接続せずに独自のキーを保存できる方法を必要としています。もちろん、キーをリテラルとしてアプリ内に保存することはできません。これにより脆弱性が生じやすくなります。これらの他のアプリケーションのセキュリティを「信頼」する必要なく、できるだけ多くのソリューションを提供しようとしています。
では、データベースと外部アプリケーションの両方にキーを保存し、特に検証されたクエリのためにキーを送信できるようにするにはどうすればよいでしょうか? これを行う方法を理解する上での問題は、永続ストレージの側面と、それがモデルに与える影響だと思います。つまり、パスワード モデルでは、パスワードは入力され、通常は保存されません。
ファジカルロジック