ドメイン
私はソフトウェア ATM を設計しています。必要な暗号化操作を「暗号化デーモン」の背後に隠したいと考えています。これは、ディスク上の暗号化されたキーにアクセスし、これらの操作に対して高レベルのアプリケーション固有のインターフェイスを提供します。
他のプログラムは次のことを行う必要があります。
- デーモンに対する認証 (有効な認証により、デーモンはディスク上のキーを復号化できます)
- デーモンにコマンドを発行し、応答を受け取る
これらの操作に localhost 経由で TCP を使用するという考えがあります。TCP ハンドシェイクを実行した後、プログラムはデーモンに対して認証を行う必要があり、認証が成功した場合は、暗号化コマンドをデーモンに発行できます。
実際の質問
少なくとも 2 つの仮定が成り立つ必要があります。そうでない場合、これは設計上安全ではありません。
- localhost の TCP チャネルはハイジャック/変更できません (管理者/ルートを除く)
- localhost の TCP チャネルは非公開です (覗き見ることはできません) (管理者/ルートを除く)
これらの仮定は正しいですか?なんで?なぜだめですか?他に欠陥はありますか?