複数のサードパーティのFTPサーバーにファイルをプッシュする必要があるシステムを構築するプロジェクトがあります。これらのサードパーティに、より安全なインターフェースを提供するように依頼しました。すべてが減少しました。だから今私はこの問題を抱えています:最終的にプレーンテキストでネットワーク経由で送信されるパスワードを保護するために、おそらく別のプロセスで何らかの可逆暗号化を実装できます。なぜわざわざ?
アプリケーションの他の領域のセキュリティに焦点を当てることで、より良い利益を得ることができると思いますか、それともこのデータを暗号化する努力に値するのですか?
私は「わぁ、気にしないでください」に傾いていますが、明確な答えは1つではないと思います。原則として、それらのパスワードがアクセスを許可するデータとリソース、およびそれらを格納するマシンの安全性に依存します。
パスワードが十分に安全なマシンに保存され、アクセスを許可するデータが非常に重要でなければ、暗号化する必要はありません。一方、パスワードが非常に機密性の高いデータへのアクセスを許可する場合、はい、パスワードを暗号化し、追加の保護も検討しますが、その場合、3番目に保存するべきではありません。とにかくクリアテキストのパスワードで保護されたサードパーティのFTPサーバー。ほとんどの場合、パスワードを暗号化する必要はありません。
提案:懸念がある場合は、自動化されたプロセス(例:週に1回程度)を使用して定期的にパスワードを変更するのが簡単かどうかを検討してください。
あるサーバーから別のサーバーにデータをプッシュしている場合、転送中にパスワードが傍受されるリスクは非常に高いとは思いません。確かに、これは完全に無視すべきリスクではありませんが、そのような状況でデータを盗聴することは比較的まれです。盗聴のリスクが最も高いのは、ワイヤレスネットワーク経由でデータを送信するとき、または少なくとも1台の感染したマシンや感染したマシンを含むLAN経由でデータを送信するときです。たとえば、誰かが2つのエンドポイントのいずれかに侵入したり、バックアップが失われたりするなどの理由で、安静時にパスワードが盗まれるリスクが高いと思います。
正直言って気にしません。ほとんどのアプリケーションはデータベースのパスワードをプレーンテキストで保存しますが、これが非常に異なっているとは思いません。共有ホストを使用している場合は、ユーザーアカウントのみがファイルへの読み取りアクセス権を持っていることを確認してください。また、SFTPまたはFTPSを使用することを強くお勧めします。これらのプロトコルのいずれかを使用していない場合は、ハッキングされるように頼むです。
FTPセキュリティの大きな問題は別として、パスワードを解読する必要がある場合(保存されたハッシュ値に対してパスワードを単純に検証するのではなく)、パスワードを保存する問題を見ると、すぐに問題が発生する可能性があります。データへのアクセス権は、おそらくパスワードの暗号化に使用されるキーへのアクセス権も取得できます。これを回避する唯一の方法は、管理するPITAであるすべてのユーザー(つまり、ユーザーのパスワード)の一意のキーを使用して暗号化されたパスワードのコピーを維持することです(ただし、シェルフにはいくつかのデジタルウォレットソリューションがあります)。
FTPの平文の問題を軽減する方法はいくつかあります。VPNの使用は非常に明白な解決策です。特定のIPアドレスへのアクセスを制限することはあまり効果的ではありませんが、他に選択肢が残っていない場合でも実行可能なオプションである可能性があります。しかし、どちらのアプローチも、安全なプロトコルを使用する利点osに近づきません。
他の人が言ったように、あなたがデューディリジェンスを観察し、これを明確にすることによってあなた自身を保護したと仮定すると、FTPベースのソリューションは安全ではありません、そしてあなたに残された唯一のオプション/責任はできるだけ多くのソフトウェアを設計することであることを提案します機能の可能性は、ファイルの送信に使用されるプロトコルとは無関係であり、後で他のプロトコルのサポートを簡単に追加できます。
FTPパスワードは、ターゲットFTPサーバーでの認証用です。パスワードは、これらのサーバーのストレージサービスへのアクセスをロック解除します。多くの場合、これは彼らの問題であり、あなたの問題ではありません。
より詳細には、データファイルをサーバーに送信するときは常に、データの全体的な機密性と整合性は、サーバーの管理者の責任の一部です。ピアが達成しようとしているよりもデータを安全にすることはできません。また、パスワードとデータを平文で送信することをFTPに要求することで、サーバーの管理者はあまり気にしないことを示しています。彼らがあなたに与えるパスワードは責任の委譲です:彼らはあなたにアクセスを許可し、かもしれないそれのためにいくつかの追加の保護手段を必要としますが、そうする場合not、それから、主題について過度に主張するのはあなたの役割ではありません。彼らが言うように、教皇よりカトリックであろうとしないでください。 FTPの不安の問題を提起することにより、あなたは不注意を警告する義務を果たしました。その時点から、この件についてフォローアップするのは彼ら次第です。
実際には、あなたの側でパスワードを漏らさないようにするために、いくつかの手順を実行したい場合があります。それらを含む構成ファイルの読み取り保護。これは実際にシステムをより安全にするためではなく、システムがハッキングされた場合にスケープゴートにならないようにするためです。次に、プロトコルの終わりが最も弱い点ではなかったことを示す必要があります。FTPには暗号化がなく、クリアテキストのパスワードを使用しているため、難しくありません。あなたの側の暗号化はやり過ぎです。また、あなたの側のシステムが無人で進む必要がある場合、これは、パスワードに適用された暗号化がマシンによって自動的に元に戻される可能性があることを意味します。ファイル。ですから、私の助言は、パスワードの暗号化に煩わされないでください。実際の追加のセキュリティよりもはるかに複雑になります。それは、とにかくシステムの最も弱い部分ではありません。
もちろん、機密性の高いデータを管理者が示したサードパーティのFTPサーバーに本当にプッシュしたいかどうかを自問する必要があるかもしれません [〜#〜] sftpのようなより安全なプロトコルへの切り替えを拒否する[〜#〜] 、セキュリティ問題に関してかなり不注意な不注意。それはすべて、プッシュしたいデータが本当に機密であるかどうかに依存します。
プログラムが自動的に暗号化を解除する場合、リバーシブル暗号化はほとんどメリットがありません。馬鹿がスクリプトへの読み取りアクセス権を持っている場合、おそらくスクリプトを実行して、パスワードを復号化する方法を理解することもできます。確かに、それは「姉妹」タイプの攻撃を防ぐかもしれませんが、平均的な攻撃者への挑戦を防ぐことはできません。
個人的には、アクセスを制限するファイアウォールと追加のキーに基づいて認証できない場合は、プレーンテキストを選択します。
ただし、使用するパスワードは、この特定の目的のためだけに作成されたランダムなパスワードであることを確認してください。たとえば、マシンごとに異なる、ランダムに生成された16シンボルのパスワード。他の場所で使用し、メモリにコミットした実際のパスワード/パスフレーズを記録しないでください。安全にバックアップされた暗号化されたリストにパスワードのコピーも保存します(たとえば、複数のマシンに同期されたDropboxにデータベースが保存されたkeepassx、およびバージョン管理されたバックアップ)。
また、Rookが述べたように、オープンインターネットで通常のFTPを使用していないことを確認してください。パスワード(およびすべてのデータ)は平文で送信され、誰でも傍受できます。 FTPS(SSLを介したFTP、HTTPSはHTTP over SSLと同様)またはSFTP(SSHを使用したFTPスタイルのファイル転送)を使用するか、VPNトンネルを使用します。それ以外のものは受け入れられません。