Frage

Ich habe eine Delphi 2010-Anwendung. Es ist von vielen Unternehmen in der Region verwenden, um von nicht vertrauenswürdigen Benutzern vertraut. Die Anwendung authentifiziert Benutzer mit MySQL hinter MD5 verschlüsseltes Passwort. Im Anschluss an diesen, um die Anwendung Notwendigkeit hochladen und viele Dateien herunterladen trought ftp.

Die Tatsache ist: jeder Netzwerk-Sniffer (wie Ethereal auch als Wireshark bekannt) kann meine Ebene Benutzer und Passwort vom ftp Teil meiner Anwendung greifen. Verschlüsselte Passwort kann auch greifen und jeder kann sich anmelden mit einer beliebigen FTP-Anwendung auf meinen Server und macht unliebsame Dinge.

[TindyFTP] wird sich der FTP-Verbindung zu verwalten. Diese Aufgabe diejenigen, die nicht SFTP-Unterstützung, die ich tought, dass das Ende meines Problems sein könnte.

[tMyMac] aus Devart verwendet wird MYSQL Verbindung zu verwalten.

Was ist mein Punkt jetzt: Es ist ein guter Weg, SSH Tunneling zu verwenden, um die IO-Handler sowohl (ftp und mysql) Bewegungsart auf meine Anwendung zu kontrollieren? Ich mache jetzt einigen Test mit Secure von Devart, die kompatibel ist mit MyDAC Komponente und Tindy.

Muss ich einfach erhalten müssen mit SSH Tunnel und gehen trought es mit mysql und ftp? Muss ich auch zu verschlüsseln FTP-Passwort bei der Verwendung von SSH Tunnel? Für die MySQL-Teil scheint das Kennwort verschlüsselt oder verschleiert werden, wenn ich zu Intercept versuchen Sie es mit Wireshark.

Dank lassen Sie mich wissen, Ihre Idee von diesem Punkt ohne die ganze Struktur meines Programms zu ändern, die 99% abgeschlossen ist:)

Danke, Jonathan

War es hilfreich?

Lösung

Zuerst müssen Sie bestimmen, was genau Protokoll sollten Sie / verwenden können. FTP ist nicht SFTP und FTP über SSH macht wenig Sinn, als auch (wenn es möglich ist). Lassen Sie uns Bewertung der Optionen:

  1. Verwendung FTPS (FTP-over-SSL). Setzt voraus, dass der FTP-Server SSL-Zertifikat hat, sonst ist es eine vialbe Option. Con: nicht sichern MySQL-Verbindung.
  2. verwenden FTP über SSH-Tunnel. Wenn Sie nicht sehen, warum man dies tun würde, wenn er SFTP verwenden kann. FTP über SSH ist möglich, mit Indy und SecureBlackbox Produkt.
  3. Verwendung SFTP (SSH File Transfer Protocol) zur Übertragung von Dateien und die Verwendung von SSH Port-Weiterleitung zur Sicherung von MySQL-Verbindung. Technisch ist es möglich, sowohl SFTP-Subsystem und Port-Weiterleitung über eine bestehende SSH-Sitzung auszuführen, und SecureBlackbox unterstützt dies. Ich weiß nicht, über DevArt Sachen, aber, weil ihre SSH / SFTP-Client recht jung ist und gewisse Einschränkungen haben kann.

Wenn Sie einen Linux-Server (MySQL schlägt vor, dass Sie tun), dann hat es OpenSSH als SSH-Server und OpenSSH verfügt über eine integrierte in SFTP-Server. Wenn Sie MySQL auf Windows laufen, werden Sie harte Zeit mit OpenSSH-Ports unter Windows haben, und Bitvise SSH-Server wäre eine bessere Option sein (wir es nutzen, um uns auf unseren internen Server).

Bei SFTP-Authentifizierung und Verschlüsselung auf SSH-Ebene durchgeführt und die Sie nicht brauchen zu belästigen weiter Passwort für die Authentifizierung verwendet Sicherung - es ist bereits mit SSH gesichert. Was Sie über obwohl kümmern ist der SSH-Schlüssel überprüfen, die vom Server an den Client dargestellt. Sie können dies tun, indem Sie eine Kopie des Server-Schlüssels in der Client-Modul speichert (denken Sie daran, dass Sie den Server-Schlüssel von Zeit zu Zeit ersetzen, müssen möglicherweise, also nicht fest einprogrammieren es in der Client-Modul).

Wenn Sie sich entscheiden, FTP-over-SSH-Weg zu gehen (obwohl ich sehe nicht, warum Sie diese brauchen würden), Sie brauchen noch nicht, um ein sicheres FTP-Passwort, wie Sie FTP über sicheren SSH-Tunnel ausgeführt werden.

Andere Tipps

TIdFTP in Indy 10 DOES Unterstützung Verschlüsselung sowohl auf der Verbindungsebene (SSL / TLS) und die Login-Berechtigungsnachweis Stufe (SASL).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top