Pregunta

He creado una aplicación Delphi 2010. Es el uso de la compañía de muchos en la región de confianza para los usuarios que no se confía. Los usuarios se autentican con la aplicación MySQL detrás MD5 contraseña cifrada. Después de esto, la necesidad de la aplicación para cargar y descargar muchos archivos trought ftp.

El hecho es que cualquier sniffer de red (tales como Ethereal también conocido como WireShark) puede agarrar mi usuario y contraseña llanura de la parte ftp de mi solicitud. contraseña cifrada también puede ser agarrar y cualquiera puede conectarse con cualquier aplicación ftp a mi servidor y hacer las cosas unpleaseant.

[TindyFTP] se utiliza para gestionar la conexión FTP sí mismo. Este objeto no soporta SFTP los cuales me listada que podría ser el final de mi problema.

[tMyMac] desde Devart se utiliza para gestionar conexión MySQL.

¿Cuál es mi punto por ahora: Es una forma buena de usar túnel SSH para controlar el IO de Manejador de ambos tipo de transacción (FTP y MySQL) en mi solicitud? Estoy haciendo algunas pruebas en este momento con SecureBridge de las cuales es compatible Devart con el componente MyDAC y Tindy.

¿Es necesario simplemente para conectarse a SSH túnel y vaya trought con MySQL y ftp? ¿También necesito la contraseña FTP cifrar durante el uso de SSH túnel? Para la parte de MySQL, la contraseña parece estar cifrada o ofuscado cuando intento de interceptarlo con Wireshark.

Gracias a que me haga saber su idea desde ese punto sin cambiar toda la estructura de mi programa que se ha completado el 99%:)

Gracias, Jonathan

¿Fue útil?

Solución

En primer lugar es necesario determinar, qué es exactamente el protocolo que debe / puede utilizar. FTP no es SFTP y FTP sobre SSH tiene poco sentido también (aunque es posible). Repasemos las opciones:

  1. FTPS uso (FTP sobre SSL). Es necesario que tu servidor FTP tiene certificado SSL, si no es una opción vialbe. En contra: no asegura la conexión MySQL.
  2. utilizar FTP sobre SSH túnel. ¿No ve por qué se podría hacer esto si puede utilizar SFTP. FTP sobre SSH es posible con Indy y nuestra SecureBlackbox producto.
  3. El uso de SFTP (SSH File Transfer Protocol) para transferencia de archivos y el reenvío de puertos uso de SSH para asegurar la conexión MySQL. Técnicamente es posible ejecutar tanto subsistema SFTP y el reenvío de puertos a través de una sesión SSH establecida, y nuestra SecureBlackbox apoya esto. No sé sobre DevArt cosas, sin embargo, debido a que su cliente SSH / SFTP es muy joven y puede tener ciertas limitaciones.

Si usted tiene un servidor Linux (MySQL sugiere que lo hace), entonces tiene OpenSSH como un servidor SSH y OpenSSH ha incorporado un servidor SFTP. Si ejecuta MySQL en Windows, tendrá dificultades para usar los puertos de OpenSSH en Windows, y el servidor SSH Bitvise sería una mejor opción (la usamos nosotros mismos en nuestro servidor interno).

En el caso de la autenticación y el cifrado SFTP se realiza en el nivel de SSH y no es necesario molestar a asegurar aún más la contraseña utilizada para la autenticación - que ya está asegurado con SSH. Lo que hay que preocuparse de que se verifique la clave SSH, presentado por el servidor al cliente. Usted puede hacer esto mediante el almacenamiento de una copia de la clave del servidor en el módulo de cliente (recuerde que puede que tenga que sustituir la clave del servidor de vez en cuando, así que no difícil que el código en el módulo de cliente).

Si usted decide ir a la ruta FTP sobre SSH (aunque no veo razón por la que había necesidad de esto), que todavía no es necesario que la contraseña FTP seguro que va a correr FTP sobre SSH túnel seguro.

Otros consejos

TIdFTP en Indy 10 ¿Tiene cifrado apoyo, tanto a nivel de conexión (SSL / TLS) y el nivel de credenciales de inicio de sesión (SASL).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top