サーバー上でファイルを安全に転送および保存する必要があるアプリケーションの設計を支援しています。アプリケーションはC#で記述されますが、サーバーはLinuxベースです。最大2GBのサイズのこれらのファイルを転送および保存するには、どのプロトコルを使用する必要がありますか?
sftpとsshを少し読んだことがあります。これらは何か良いでしょうか?
最小限のコンポーネントで.NETを使用して簡単かつ安全に転送したいBIGファイルがある場合は、通常、FTPES(明示的なSSLを介したFTPとも呼ばれ、「FTPS」とも呼ばれます)を使用することをお勧めします。または「FTP-ES」。これは、サードパーティのプラグインを必要としない純粋な.NETアプローチでサポートされている唯一のバージョンです。
SFTPまたはFTPoverSSHを使用する場合、FTPESとは異なり、ユーザーとクライアントの間で手動でキーを交換する必要があります。.NETにはSFTPの機能が組み込まれていないため、これを実現するにはサードパーティのライブラリも必要です。
FTPESを使用するクライアントを作成する場合は、FtpWebRequestを使用してEnableSSLをtrueに設定するだけです。
避けるべきこと:
ImplicitSSLを介してFTPを使用しないでください。この時点で長年廃止されており、廃止されたと見なす必要があります。
ファイルをPGP暗号化してから、古いFTP経由で転送するだけではいけません。昔ながらのFTPでは、すべてのユーザー名とパスワードがクリアテキストで送信されるため、攻撃者は少なくともPGP暗号化ファイルを簡単に傍受できます。