Creación de formato seguro.

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: akodo, maiku

Responder
Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Creación de formato seguro.

Mensaje por akodo » Vie Feb 26, 2010 1:50 am

Necesito crear un tipo de fichero seguro para una aplicación que estoy haciendo, que necesite pedir contraseña para poder abrirlo. Evidentemente, sólo se debería abrir con esa aplicación (u otras que soporten el formato, que seguro que es ninguna) y si la contraseña es válida. Tampoco debería ser posible saber el contenido utilizando cualquier programa, ni debería ser posible abrirlo si de alguna forma se borra la contraseña.
En principio el formato debería ser portable, con lo que no es opción almacenar la contraseña en algún lugar extraño.
El contenido en principio debería ser irrelevante, aunque haya que guardarlo. A lo que me refiero es que preferiría que la solución considerara el contenido como un bloque.

Gracias por las respuestas.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Avatar de Usuario
niky45
Forista Ancestral
Forista Ancestral
Mensajes: 9186
Registrado: Jue Abr 12, 2007 7:00 am
Ubicación: tras la pantalla (...)
Contactar:

Re: Creación de formato seguro.

Mensaje por niky45 » Vie Feb 26, 2010 11:22 pm

se me ocurre: ocular codigo bash en el arhchivo, de tal manera que solo se abra si el programa leeva el codigo correspondiente.

para ocultar algo en un archivo, basta con un cat archivo.ext codigo.sh >> archivo2.ext (repasa la sintaxis).

el codigo seria algo del tipo: compruba que el programa que lo va a leer cumple x e y, y que la pass es la correcta. a su vez, la pass deberia ir encriptada en el codigo bash.

lo malo: que bash no es portable a otros SO.

lo bueno: que lo puedes hacer con cualquier lenguaje.... pero con otros no tengo ni idea de como hacerlo. (e hecho,lo suyo seria un cdigo binario, no un script)

ala,la idea ya la tienes. solo te falta ver si es viable :D
#446716
>>"Linux: the operating system with a CLUE... Command Line User Environment".
(seen in a posting in comp.software.testing)

[ DNFD ] - [ F4A ] - [ dotfiles ]
Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: Creación de formato seguro.

Mensaje por akodo » Sab Feb 27, 2010 1:18 am

Lo del código viene a ser algo parecido a los "magic numbers" que se suelen utilizar. Básicamente lo que se hace es poner, al principio del archivo, unos bytes conocidos (y preferentemente únicos) de forma que al leer los primeros bytes puedes identificar el tipo de archivo. El problema es que sólo vale para eso: identificar el tipo de archivo.
Además, tal como lo planteas, es cierto que debería pedir la contraseña, pero se puede seguir accediendo al contenido.

Si te he entendido bien, el contenido del archivo podría ser algo como:

Código: Seleccionar todo

<contraseña encriptada>
contenido1
contenido2
Habría que tener que con un editor de texto puedes ver el contenido del archivo, y por consiguiente "contenido1" y "contenido2". Además, en el caso de que fuera contenido binario, y por tanto, más difícil de identificar, sería posible cambiar la contraseña por otra conocida, aún estando encriptada, con lo que el contenido estaría visible.

Además, como bien has dicho, bash no es para nada portable, lo cual es un problema. De hecho, el programa es en java, con lo que tener que hacer soporte para varias plataformas es mucha lata. Hay que tener en cuenta que lo que quiero es un archivo, y por lo tanto el archivo debe ser portable entre plataformas, con lo que meter código en el archivo no me convence para nada. De todas formas, meter código en un archivo creo que es de muy mal gusto, y puede causar muchos problemas.

Aún no lo tengo muy claro, pero gracias por la información
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Avatar de Usuario
codestation
Forista Nuevo
Forista Nuevo
Mensajes: 36
Registrado: Dom Dic 20, 2009 3:33 am

Re: Creación de formato seguro.

Mensaje por codestation » Sab Feb 27, 2010 1:53 am

Por lo que describes lo que necesitas en un fichero cifrado. Para ello puedes utilizar AES para el cifrado y pretegido mediante contraseña. Openssl te puede proveer de esto que andas buscando además de ser portable entre distintos SO, por dar un ejemplo:

Código: Seleccionar todo

$ openssl enc -aes-256-cbc -salt -in file.ext -out file.enc
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
Alli estás cifrando el fichero usando AES 265-bit en modo CBC, y para descifrarlo seria:

Código: Seleccionar todo

$ openssl enc -d -aes-256-cbc -in file.enc
enter aes-256-cbc decryption password:
Obviamente tambien puedes hacer esto mismo desde tu código sin programas adicionales desde tu aplicación. Mírate la documentación de openssl para que sepas que funciones tienes que usar en tu código. Saludos.
Just feel the code...
fpuga
Forista Mayor
Forista Mayor
Mensajes: 798
Registrado: Sab Ago 25, 2007 7:00 am
Ubicación: Galicia - España
Contactar:

Re: Creación de formato seguro.

Mensaje por fpuga » Dom Feb 28, 2010 5:15 pm

Mi blog: [url=http://conocimientoabierto.es]Conocimiento Abierto[/url]
Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: Creación de formato seguro.

Mensaje por akodo » Dom Feb 28, 2010 8:33 pm

Gracias por la información.

Entonces tenemos en el archivo, una contraseña encriptada con una función hash, y el contenido cifrado con la contraseña.
La pregunta es: ¿es eso suficiente, o hay que añadir alguna seguridad más?
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje