Domanda

Ho creato una Delphi 2010 applicazione. È uso da molte società della regione da fiducia per utenti non attendibili. Gli utenti dell'applicazione autenticarsi con MySQL dietro MD5 crittografati password. In seguito a questo, la necessità di applicazione per caricare e scaricare molti file trought ftp.

Il fatto è: qualsiasi sniffer di rete (come Ethereal noto anche come WireShark) può afferrare il mio normale utente e la password dalla parte ftp della mia applicazione. password criptata può essere anche afferrare e chiunque può accedere con qualsiasi applicazione FTP al mio server e rendere le cose unpleaseant.

[TindyFTP] è utilizzato per gestire il collegamento FTP stesso. Questo oggetto quelli non supporta SFTP che ho insegnato che potrebbe essere la fine del mio problema.

[tMyMac] da Devart è utilizzato per gestire MYSQL connessione.

Qual è il mio punto per ora: E 'un buon modo per utilizzare SSH Tunneling per controllare il IO Handler di entrambi (ftp e mysql) tipo di transazione sulla mia domanda? Sto facendo un po 'di test in questo momento con SecureBridge da Devart quali è compatibile con il componente MyDAC e TIndy.

Ho bisogno semplicemente di collegarsi ad SSH Tunnel e vado trought con mysql e ftp? Ho anche bisogno di password FTP cifrare mentre usando SSH Tunnel? Per la parte di MySQL, la password sembra essere crittografati o offuscato quando provo ad intercettare con WireShark.

Grazie per farmi sapere la vostra idea da quel punto senza cambiare tutta la struttura del mio programma che è il 99% completato:)

Grazie, Jonathan

È stato utile?

Soluzione

In primo luogo è necessario determinare, che cosa esattamente il protocollo si dovrebbe / può usare. FTP non è SFTP, e FTP su SSH ha molto senso, come pure (se è possibile). Rivediamo le opzioni:

  1. FTPS uso (FTP-over-SSL). Richiede che il server FTP ha certificato SSL, altrimenti è una scelta Vialbe. Contro: non assicura connessione MySQL.
  2. utilizzare FTP su SSH tunnel. Non vedo perché si dovrebbe fare questo se può usare SFTP. FTP over SSH è possibile con Indy e il nostro prodotto SecureBlackbox .
  3. uso SFTP (SSH File Transfer Protocol) per il trasferimento di file e il port forwarding uso di SSH per il fissaggio connessione MySQL. Tecnicamente è possibile eseguire sia sottosistema SFTP e port forwarding tramite una sessione SSH stabilita, e il nostro SecureBlackbox supporta questo. Non so su Devart roba, però, perché il loro client SSH / SFTP è molto giovane e può avere alcune limitazioni.

Se si dispone di un server linux (MySQL suggerisce che si fa), allora ha OpenSSH come un server SSH, e OpenSSH ha built-in server SFTP. Se si esegue MySQL su Windows, si avrà difficoltà a utilizzare le porte OpenSSH su Windows, e il server SSH Bitvise sarebbe una scelta migliore (lo usiamo noi stessi sul nostro server interno).

In caso di autenticazione SFTP e la crittografia è eseguita a livello di SSH e non è necessario preoccuparsi garantire ulteriormente la password utilizzata per l'autenticazione - è già fissata con SSH. Quello che c'è da preoccuparsi se è verifica la chiave SSH, presentato dal server al client. È possibile farlo memorizzando una copia della chiave del server nel modulo client (ricordate che potrebbe essere necessario sostituire la chiave del server di tanto in tanto, quindi non hard-code nel modulo client).

Se si decide di andare via FTP-over-SSH (anche se non vedo il motivo per cui avreste bisogno di questo), è ancora non c'è bisogno di password FTP sicuro come si sarà in esecuzione FTP su tunnel SSH sicuro.

Altri suggerimenti

TIdFTP in Indy 10 Il la crittografia di sostegno, sia a livello di connessione (SSL / TLS) e il livello di credenziali di login (SASL).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top