2017-03-17 11 views
0

質問:マルチプラットフォーム.NET Core 1.1アプリケーションを開発する際に、データを保護する最良の方法は何ですか?マルチプラットフォームのデータ保護

私は何を意味するのか説明しましょう。アプリケーションには、データベース接続パスワードを含む設定ファイルがあります。

私は正しい方法でやりたいと思っています。つまり、初めてパスワードを読み取った後、設定ファイルの文字列を暗号化することをお勧めします。明らかに、何らかの種類のパスフレーズで対称暗号化を使用する必要があります。 Windowsでは、私はパスフレーズ(を少し難読化した後に)を生成するためにDPAPIとホストIDを使用します。

LinuxはDPAPIを持っていない...私が説明した内容達成の真のマルチ方法はありますか?

ありがとうございます!

編集:環境/ホストOSによらず、実装コードベースが同じであることが望ましいです。

答えて

2
  1. すべての敏感な設定が
  2. 復号鍵は、環境変数に格納する必要がある設定ファイルに暗号化する必要があり

そして、それは必要なときに、その場で設定を解読する必要があるアプリケーションそれら。

+1

私は環境変数のアプローチが好きです。 LinuxとWindowsの両方で.netコアアプリケーションから環境変数を操作するためのコードが1セット必要ですか? –

+0

@ Philip。 Environment.GetEnvironmentVariable()メソッドが動作するはずです。 – Artak

2

単一の実装からすべてのプラットフォームでネイティブOSレベルの暗号化プリミティブを呼び出すための「真にマルチプラットフォーム」な方法はないと思います。私は多くのベンダーがOSのAPIをケースバイケースでターゲットにしなければならないと考えています。

このCIA adviceはおそらく「それを苦労してやって」と、具体的すべてのプラットフォームをターゲットと周りに取り組んでいることをサポートするための十分な証拠である、おそらくショートカットを見つけようとして関与するリスクに話す:

すべてのツールなければなりません が利用可能な暗号化プリミティブを提供するオペレーティングシステム(OS)を利用する(例えば、Microsoft CryptoAPI-NG、OpenSSL、PolarSSL、GnuTLSなど)。

関連する問題