Archivos invisibles

Iniciado por Gambinoh, 11 Marzo 2011, 14:10 PM

0 Miembros y 1 Visitante están viendo este tema.

Gambinoh

¿Qué hay de la furtividad? Me refiero a que el objetivo de cifrar datos, es que esos datos ocultos no sean accesibles a personas no autorizadas, entonces básicamente es como si estuviéramos ocultando la existencia de esos datos (por ejemplo contraseñas).

Al cifrar un archivo de texto plano con AES, es como si se creara una caja fuerte, pero claro, para abrir esa "caja fuerte" hay que teclear la contraseña, y si el PC tiene un keylogger... adiós contraseñas.

Pienso que si no existe una "caja fuerte" a la que dirigirse para introducir la contraseña, o al menos no puede ser localizable, ya no es posible abrirla.

¿Existe alguna manera de que un archivo cifrado se camufle tan bien que no sea percibido? pero hablo de algo serio, no de archivos ocultos como en Windows o en Linux.


APOKLIPTICO

Bueno, me alegra que traigas el tema a colación.
Hay una rama de la criptografía, conocida como "esteganografía" (del griego "steganos" que significa cubierto u oculto y "graphos" que significa escritura), que se basa en el ocultamiento de datos en archivos que lo permiten.
Ejemplos que vienen a la mente, es utilizar un archivo de audio para meter datos en las frecuencias que son imperceptibles para el ser humano (abajo de 20 hz o arriba de 20.000 hz), si se pudiesen escuchar dichas frecuencias, se oiría mal el archivo de audio, sin embargo, para un ser humano normal, no se notaría. Por otro lado, el ser humano solo percibe ciertos cambios de color, de hecho, el color que en la pc se compone por 4 factores (rojo, verde, azul y alpha que es la transparencia), se puede modificar de tal manera que sea imperceptible para el ser humano, pero que guarde información, por ejemplo, los conos del ojo encargados de percibir el color azul, tienen 20 veces menos sensibilidad que los del color rojo y verde, es por esto que se puede utilizar para guardar información aquí.

Es una rama muy interesante en la criptografía, realmente. Si cifras un archivo con un AES 256, lo cifras con RSA 4096 y luego lo ocultas utilizando esteganografía, bueno... Las probabilidades de que esta información sea leida por ojos ajenos, se reducen drásticamente.

Saludos
APOKLIPTICO.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

Gambinoh

Cita de: APOKLIPTICO en 11 Marzo 2011, 14:33 PMEs una rama muy interesante en la criptografía, realmente. Si cifras un archivo con un AES 256, lo cifras con RSA 4096 y luego lo ocultas utilizando esteganografía, bueno... Las probabilidades de que esta información sea leida por ojos ajenos, se reducen drásticamente.

Sí, mi idea fue combinar la "furtividad" que al parecer se llama esteganografía con un cifrado tipo AES 256, sin embargo no sabía que fuera conveniente pasarle al texto cifrado otro cifrado suplementario con RSA 4096 (por ejemplo).

Para no desviarnos del tema, tengo dudas en cuanto al medio a utilizar para ocultar mi archivo cifrado. Por ejemplo, se podrían usar los píxeles de una imagen, pero yo en mi PC sólo tengo 1 imagen que es la del fondo de pantalla, luego están las imágenes del sistema, iconos, etc. En cuanto al sonido más o menos lo mismo, sólo tengo los sonidos del sistema.

Imagino que la abundancia de imágenes sería un factor importante si vamos a ocultar el ciphertext en una imagen. Así que retomando la línea inicial que me llevó a abrir el hilo...

¿Qué hay del espacio en "blanco" de mi PC? son 410 GB de espacio en blanco ¿no podría considerarse un medio en sí?

APOKLIPTICO

El RSA sirve para tener un cifrado asimétrico, es decir, una clave pública y una privada, es prescindible, pero recomendable. Por otro lado, es muy simple lo que podés hacer es sacar fotos familiares o lo que sea, guardarlas en tu pc y listo, una de ellas sería el contenedor de la información. Por otro lado, lo que vos decis de tu disco, se podría hacer, claro que no es tan facil. El tema de jugar con el sistema de archivos y las particiones, es que existe la posibilidad de pérdida de datos. Podés hacer una partición oculta, pero claro que sería sospechos que en un disco de 500 gb, sólo aparezcan asignados 250... Por otro lado, podrías poner los datos en la misma particion y no darle entrada en el sistema de archivos, pero eso es extremadamente riesgoso, ya que podrías sobreescribirlo sin darte cuenta, perdiendo toda la información en el proceso de manera casi irrecuperable.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

Garfield07

¡Qué interesante  ::)!
Vamos a ver, la cosa sería hacer que el sistema no fuese capaz de localizar unos datos, pero a la vez que estén ahí y que no se puedan modificar...
¿Qué os parecería cifrarlos, ocultarlos de la forma más natural posible y modificar los bytes de lectura y escritura (de forma que no se pudiesen leer pero tampoco modificar)? Sería una solución fácil pero posiblemente detectable... O de otra forma más simple aún: Los ciframos con un cifrado asimétrico y usamos un programa casero para descifrarlos? El keylogger ni se enterará...

¿? ¡Un saludo!
Sagrini


* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo

Gambinoh

#5
Cita de: APOKLIPTICO en 11 Marzo 2011, 15:28 PM
El RSA sirve para tener un cifrado asimétrico, es decir, una clave pública y una privada, es prescindible, pero recomendable. [...] Podés hacer una partición oculta, pero claro que sería sospechos que en un disco de 500 gb, sólo aparezcan asignados 250...

Con el RSA, me vendría bien una indicación práctica usando OpenSSL.

En Linux para cifrar un archivo con OpenSSL en AES 256 hago:

Citarsudo openssl aes-256-cbc -a -sal -in /ruta/archivo.txt -out /ruta/achivo.txt.enc

Entonces ¿sería cuestión de cifrar achivo.txt.enc (actualmente cifrado de forma simétrica con AES 256) con RSA?

Según la web de OpenSSL, sólo debo hacer:

Citarsudo openssl rsa -in /ruta/achivo.txt.enc -out /ruta/keyout.pem

Aunque no estoy muy seguro de la extensión .pem la verdad.

Con respecto a la parte en negrita, entiendo que nuestro problema sería encontrar una manera de fingir que están asignados 500 GB, cuando en realidad están asignados 400 por ejemplo. Ahora supongamos que planteamos esta duda en el subforo Linux y al parecer hay formas de realizarlo.

Creo que hay maneras de trampear la detección de las particiones y también creo que el potencial de esto que planteo sería brutal... Porque tenemos la caja fuerte, tenemos la partición y nadie sabe que existe tal partición, en mi opinión sería un puntazo que alguien sepa cómo.





APOKLIPTICO

Servidito en bandeja:
http://foro.elhacker.net/criptografia/guia_generacion_de_claves_para_cifrado_asimetrico-t311350.0.html

Podés modificar las tablas de particiones, pero te repito es peligroso, es más segura la esteganografía. En cuanto a lo del cifrado asimétrico, me refería a que si uno necesita cifrar grandes cantidades de datos con un cifrado asimétrico, lo más eficiente es cifrarlo con AES, y luego poner la clave del AES en el mismo archivo, una vez terminado, se cifra con RSA. Este es el método que se utiliza en las conexiones https y en EFS (Encrypting file system) de NTFS.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

Gambinoh

APOKLIPTICO, he leído la pequeña guía escrita por madpitbull_99 que me has recomendado, sin embargo me parece que no es lo que yo buscaba, porque no conozco a nadie a quien deba enviarle un archivo de texto cifrado.

Es decir, entiendo la utilidad, pero en mi caso buscaba simplemente una forma de reforzar el cifrado AES 256 simétrico de mi archivo de texto plano conteniendo a su vez otras claves.

De todas formas he generado una "PGP PUBLIC KEY" mediante el comando gpg --gen-key de la aplicación GNUPG y todo ha resultado correcto. La guardaré para cuando necesite comunicarme con alguien de forma 100% segura...

Si hay algo que no he entendido, por favor te agradecería que me lo aclarases.

Me ha parecido entender que los cifrados asimétricos se basan en la posibilidad de establecer comunicaciones cifradas, para ello se intercambian emisor y receptor las claves públicas y con ellas se cifran los mensajes que serán enviados... posteriormente los mensajes recibidos se descifran con las claves privadas de cada uno.

Gambinoh

#8
Vale, acabo de leer el capítulo primero del "manual de criptografía asimétrica desde cero" y ya se han aclarado mis dudas (de momento) al respecto del cifrado asimétrico.

[Edito]

En este punto, las posibilidades que tengo serían, o bien aplicar esteganografía directamente sobre mi ciphertext con cifrado AES 256 simétrico, o bien intentar usar mi propia clave pública (importándola a mi anillo de claves como si fuera la de mi "inexistente" interlocutor) para cifrar con RSA el archivo ya cifrado con AES 256.

¿Sería esta última posibilidad posible? y, ¿no debería existir ya en la base de datos gestionada por la aplicación GNUPG un registro de mi clave pública?

En cuanto a la esteganografía ¿qué tipo de fichero sería más adecuado para esconder mi ciphertext definitivo? Las imágenes y vídeos parecen una interesante opción...


APOKLIPTICO

Yo la verdad te recomiendo que si querés cifrar el archivo para guardarlo de manera segura y oculta (no para transmitirlo a otros usuarios), utilices AES256, ya de por sí es más seguro, rápido y eficiente que RSA. Aparte, RSA se utiliza sólo para cifrar la clave AES guardada en los archivos, cifrar el archivo entero puede ser muy lento. Si vas a transmitir el archivo cifrado y la clave, te recomiendo que transmitas por separado el archivo cifrado y la clave. La clave debe de ser transmitida por un canal seguro, por ejemplo, un chat cifrado. El problema de las claves RSA, es que pueden ser vulnerables a un ataque MITM si no se firman digitalmente. Y firmar una clave con un trusted third party (por ejemplo verisign), puede ser muy caro.

En cuanto a lo de esteganografía, te conviene utilizar archivos de audio, video o imágenes, el video es el que más espacio te va a permitir guardar.

Saludos
APOKLIPTICO
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.