Delphi アプリケーションを使用して SSH トンネルを通過するようガイドされる必要がある

StackOverflow https://stackoverflow.com/questions/4026856

質問

Delphi 2010 アプリケーションを作成しました。信頼できるユーザーから信頼できないユーザーまで、この地域の多くの企業で使用されています。アプリケーションは、MD5 暗号化パスワードの背後にある MySQL を使用してユーザーを認証します。この後、アプリケーションは FTP 経由で多くのファイルをアップロードおよびダウンロードする必要があります。

事実は次のとおりです。ネットワーク スニファー (WireShark としても知られる Ethereal など) は、アプリケーションの FTP 部分からプレーン ユーザーとパスワードを取得できます。暗号化されたパスワードも盗まれる可能性があり、誰でも任意の FTP アプリケーションを使用してサーバーにログインし、不快なことを行うことができます。

[ティンディFTP] FTP 接続自体を管理するために使用されます。このオブジェクトは SFTP をサポートしていないため、これで問題が解決する可能性があると思いました。

[tMyMac] DEVART のは、MYSQL 接続を管理するために使用されます。

今のところ私の言いたいことは何ですか:SSH トンネリングを使用して、アプリケーションの両方 (ftp と mysql) トランザクション タイプの IO ハンドラーを制御するのは良い方法です。私は今、いくつかのテストを行っています セキュアブリッジ MyDAC コンポーネントおよび TIndy と互換性のある DEVART から。

接続する必要があるだけですか? SSHトンネル mysql と ftp を使用してそれを処理しますか?SSH トンネルの使用中に FTP パスワードも暗号化する必要がありますか?MySQL 部分については、WireShark でパスワードを傍受しようとすると、パスワードが暗号化または難読化されているようです。

99%完成したプログラムの構造をすべて変更することなく、その時点からあなたのアイデアを教えてくれてありがとう:)

ありがとう、ジョナサン

役に立ちましたか?

解決

まず、正確にどのプロトコルを使用する必要があるか、使用できるかを決定する必要があります。FTP は SFTP ではなく、SSH 経由の FTP もほとんど意味がありません (ただし、可能です)。オプションを確認してみましょう。

  1. FTPS (FTP-over-SSL) を使用します。FTP サーバーに SSL 証明書があることが必要です。そうでない場合はバイアルベ オプションです。短所:MySQL 接続を保護しません。
  2. SSH トンネル経由で FTP を使用します。SFTP を使用できるのに、なぜこれを行う必要があるのか​​わかりません。SSH 経由の FTP は、Indy と弊社の セキュアブラックボックス 製品。
  3. SFTP (SSH ファイル転送プロトコル) を使用してファイルを転送し、SSH ポート転送を使用して MySQL 接続を保護します。技術的には、確立された 1 つの SSH セッションを介して SFTP サブシステムとポート転送の両方を実行することが可能です。 セキュアブラックボックス はこれをサポートします。ただし、DevArt についてはわかりません。SSH/SFTP クライアントは非常に新しく、特定の制限がある可能性があるためです。

Linux サーバーをお持ちの場合 (MySQL は Linux サーバーを使用することを推奨しています)、SSH サーバーとして OpenSSH があり、OpenSSH には SFTP サーバーが組み込まれています。Windows 上で MySQL を実行している場合、Windows 上で OpenSSH ポートを使用するのは難しいため、Bitvise SSH サーバーの方が良い選択肢になります (私たちは内部サーバーでそれを使用しています)。

SFTP認証と暗号化の場合、SSHレベルで実行され、認証に使用されるパスワードをさらに固定する必要はありません。すでにSSHで保護されています。ただし、注意する必要があるのは、サーバーからクライアントに提示された SSH キーを確認することです。これを行うには、サーバー キーのコピーをクライアント モジュールに保存します (サーバー キーは時々置き換える必要があるため、クライアント モジュールにハードコーディングしないでください)。

FTP-over-SSH ルートを選択する場合 (ただし、これが必要な理由はわかりませんが)、安全な SSH トンネル経由で FTP を実行するため、安全な FTP パスワードを設定する必要はありません。

他のヒント

インディ 10 の TIdFTP あります 接続レベル (SSL/TLS) とログイン資格情報レベル (SASL) の両方で暗号化をサポートします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top