elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Acceso FTP -> proteger contraseña de ingeniería inversa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Acceso FTP -> proteger contraseña de ingeniería inversa  (Leído 3,345 veces)
patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
Acceso FTP -> proteger contraseña de ingeniería inversa
« en: 16 Enero 2015, 20:27 pm »

Hola estoy haciendo un programa en la que me conecto a un servidor ftp y la contraseña esta en texto sin mas. Como protejo la contraseña o si la codifico ?

Saludos


En línea

Almamu

Desconectado Desconectado

Mensajes: 13



Ver Perfil
Re: Acceso FTP -> proteger contraseña de ingeniería inversa
« Respuesta #1 en: 16 Enero 2015, 20:43 pm »

Buenos días patilanz,

Puedes ofuscar la contraseña de FTP pero no ocultarla por completo. Las soluciones más rápidas pasan por moldear la cadena, por ejemplo pasarla a base64, invertir la cadena, alterar el orden de los caracteres de acuerdo a un patrón, básicamente lo que se te ocurra. Otra opción sería no almacenar la contraseña en el ejecutable y solicitarla por https por ejemplo a un servidor (añadiendo comprobaciones de certificados, de forma que no puedan poner un proxy "man in the middle"), así además la contraseña pasaría cifrada a tu programa, que luego podría hacer conexiones SFTP para evitar que esta contraseña sea visible por un sniffer.

Otra opción es combinar ambas técnicas, de forma que en memoria solo almacenas la contraseña ofuscada y cuando la vayas a usar la deofuscas, la usas y destruyes la contraseña deofuscada, manteniendo la original, ofuscada en memoria, por lo que requeriría de tecnicas más avanzadas de ingeniería inversa para poder dar con ella.

Ten en cuenta que es posible hacerlo lo más dificil que quieras para el ingeniero inverso, pero nunca podrás evitar que acabe descifrando como obtienes la contraseña y la averigüe, pero para ese entonces tu ya podrías haber cambiado la contraseña (de hecho con el metodo de peticion https sería bastante sencillo cambiar la contraseña periódicamente).

Espero que te haya ayudado,
Almamu.


« Última modificación: 16 Enero 2015, 20:46 pm por Almamu » En línea

MeCraniDOS


Desconectado Desconectado

Mensajes: 337


Sr. Glass


Ver Perfil
Re: Acceso FTP -> proteger contraseña de ingeniería inversa
« Respuesta #2 en: 16 Enero 2015, 20:50 pm »

Como dice Almamu, no puedes ocultar la contraseña, hagas lo que hagas si esta en el exe se puede sacar, será facil o dificil, pero al final se saca.

De todas formas, si el programa es para ti, da igual como lo pongas  :silbar:

Un saludo
En línea

"La física es el sistema operativo del Universo"
     -- Steven R Garman
patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
Re: Acceso FTP -> proteger contraseña de ingeniería inversa
« Respuesta #3 en: 16 Enero 2015, 22:27 pm »

Si codifico la clave luego para pasar la por el ftp tengo que descifrar la y viaja sin codificar. Quiero implemente https pero no estoy seguro como. Tengo el ftp en un servidor de hostinger gratuito y he leído que con curl se puede con php, es lo que quiero. En plan conectarme al https en un archivo php que me va proporcionar la clave para enviarla al exe que se conectara al ftp. Así ?

Como se hace el https ?

@Edit: Con OpenSLL ?
« Última modificación: 16 Enero 2015, 22:37 pm por patilanz » En línea

Almamu

Desconectado Desconectado

Mensajes: 13



Ver Perfil
Re: Acceso FTP -> proteger contraseña de ingeniería inversa
« Respuesta #4 en: 16 Enero 2015, 23:41 pm »

Si codifico la clave luego para pasar la por el ftp tengo que descifrar la y viaja sin codificar. Quiero implemente https pero no estoy seguro como. Tengo el ftp en un servidor de hostinger gratuito y he leído que con curl se puede con php, es lo que quiero. En plan conectarme al https en un archivo php que me va proporcionar la clave para enviarla al exe que se conectara al ftp. Así ?

Como se hace el https ?

@Edit: Con OpenSLL ?

Buenas noches,

Con usar curl es suficiente para el https, no es necesario implementar el protocolo http desde cero con OPENSSL. FTP tiene una variante (SFTP) que hace que los datos pasen cifrados a través de la conexión. De esa forma te evitas que se vea la contraseña.
En línea

patilanz


Desconectado Desconectado

Mensajes: 481

555-555-0199@example.com


Ver Perfil WWW
Re: Acceso FTP -> proteger contraseña de ingeniería inversa
« Respuesta #5 en: 16 Enero 2015, 23:58 pm »

Ahora veo lo de SFTP pero ahora mismo estaba probando con openssl y se me ocurrió porque no generar una clave, que ya tengo privada y publica, luego cifrar la contraseña con esa clave desde php con openssl_public_encrypt y luego en c++ desencriptarla con alguna librería de ssl teniendo la clave privada guardada en el exe ?

@Edit: He visto que sftp no esta disponible en hostinger así que no creo que sera una alternativa.
« Última modificación: 17 Enero 2015, 00:03 am por patilanz » En línea

xv0


Desconectado Desconectado

Mensajes: 1.026



Ver Perfil
Re: Acceso FTP -> proteger contraseña de ingeniería inversa
« Respuesta #6 en: 17 Enero 2015, 19:01 pm »

Antes de enviar nada cifralo y ya, cual es el problema?

Citar
pero ahora mismo estaba probando con openssl y se me ocurrió porque no generar una clave, que ya tengo privada y publica, luego cifrar la contraseña con esa clave desde php con openssl_public_encrypt y luego en c++ desencriptarla con alguna librería de ssl teniendo la clave privada guardada en el exe ?

Pero donde se a visto eso, la clave privada no tiene por que estar en el paquete. Para no complicarte la vida si el server es de tu propiedad o de un amigo podeis poneros de acuerdo con la clave y ya.

Si no tienes claves de uso publico.

Citar
@Edit: He visto que sftp no esta disponible en hostinger así que no creo que sera una alternativa.

SFTP es una combinacion estre FTP y SSH, si no me equivoco, y esas dos si que las tendras disponibles, supongo.

Un saludo.
En línea

Almamu

Desconectado Desconectado

Mensajes: 13



Ver Perfil
Re: Acceso FTP -> proteger contraseña de ingeniería inversa
« Respuesta #7 en: 18 Enero 2015, 19:26 pm »

Ahora veo lo de SFTP pero ahora mismo estaba probando con openssl y se me ocurrió porque no generar una clave, que ya tengo privada y publica, luego cifrar la contraseña con esa clave desde php con openssl_public_encrypt y luego en c++ desencriptarla con alguna librería de ssl teniendo la clave privada guardada en el exe ?

@Edit: He visto que sftp no esta disponible en hostinger así que no creo que sera una alternativa.

Sin soporte SFTP no podrás evitar que la contraseña pase sin cifrar por la red, puesto que a la hora de conectar tendrás que enviarla de forma insegura. Por otro lado, la opción "sencilla" para obtener la contraseña encriptadaa través de https sería:

  • Incrustar una clave pública en el código de tu programa, ofuscándola de alguna forma como en base64, invertiendo la cadena o alterando su orden.
  • Hacer una solicitud a una web PHP que te proporcione la clave cifrada (tendrás que cifrar la contraseña con la clave privada para que luego tu aplicación pueda desencriptarla usando la clave pública)
  • De-ofuscar la clave publica incrustada en tu programa y usarla para descifrar la contraseña que has recibido del web-server (funcionamiento básico de SSL, clave publica descifra lo que cifra la clave privada, y la clave privada descifra lo que cifra la clave pública, más info aquí: http://es.wikipedia.org/wiki/Transport_Layer_Security )
  • Iniciar autenticación FTP (insegura) y relizar las operaciones en cuestión.

Obviamente el problema aquí está en que al conectar al FTP no podrás cifrar la contraseña de ninguna forma puesto que FTP es un protocolo de texto plano simple, como lo es HTTP. La opción "mas segura" sería poder cambiar la contraseña cada vez que se solicita al script PHP y que el servidor FTP la acepte como válida, de forma que harías el trabajo más dificil al RE puesto que tendría que hacer parches en tiempo de ejecución de la aplicación para poder interceptar la contraseña y conectar libremente al FTP.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
FAQ de Ingeniería Inversa
Ingeniería Inversa
::GD:: 1 9,447 Último mensaje 9 Julio 2003, 15:05 pm
por Rojodos
ingenieria inversa
Sugerencias y dudas sobre el Foro
ornitorrinco 3 3,492 Último mensaje 9 Septiembre 2005, 00:06 am
por BenRu
Ingenieria Inversa « 1 2 3 4 »
Ingeniería Inversa
jolypc 30 20,658 Último mensaje 15 Octubre 2009, 15:20 pm
por jolypc
Ingenieria inversa
Ingeniería Inversa
cocoloko 9 7,973 Último mensaje 14 Enero 2010, 18:05 pm
por tena
Ingeniería Inversa en .NET ?
Ingeniería Inversa
Art3 5 13,937 Último mensaje 1 Marzo 2010, 23:58 pm
por vanse
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines