アプリケーションのアカウント データを「アプリケーション データ」ローカル ディレクトリに保存しています。このファイルを保護するための適切な (または正しい) 方法を理解したいと思っています。
現状では、単純なテキスト ファイルです。AES 256bit 暗号化で単純に圧縮できますか? それは十分に安全ですか?もちろん、プログラム内でキーを保存する必要がありますが、これは危険ですか?
最良の方法は何ですか?
乾杯、 エイドリアン
DPAPI (データ保護 API)を検討することをお勧めします。This SO answerは、それを使用できるいくつかのシナリオ (ユーザー データ、プログラム データ) について説明しています。
独自の暗号化アルゴリズムを発明するのではなく、暗号化キーの保存についてよく考えてください。これは、多くの場合、セキュリティ チェーン全体で最も弱い点です。
ファイルに書き込む前に、機密データ (またはストリーム/文字列全体) を暗号化できます。または、データ ストリーム全体をメモリに圧縮/解凍し、ファイルへの書き込み/ファイルからの読み取りを行うこともできます。この場合、使用するディスク容量が少なくなります。
ファイルを圧縮することは良い解決策ではありません。プロファイル データの書き込み/読み取り時に、しばらくの間、ファイルが暗号化されていないことを前提としています。これは大きなセキュリティ ホールになる可能性があります。