Pendrive cifrado con dm-crypt en Debian

Debianseguridad

Esta receta explica como utilizar dm-crypt para cifrar el sistema de ficheros de un pendrive o disco USB externo y luego montarlo cómodamente.

Introducción

Si llevas tus claves o tus prácticas de “operativos” en el pendrive, lo último que quieres es perderlo y que alguien se lo pase bomba mandando mensajes de “calvorota” y tal con tu cuenta de la uni. Para evitarlo nada mejor que cifrarlo y asunto resuelto. Verás que fácil…

Ingredientes

  • cryptsetup – configures encrypted block devices
  • pmount – mount removable devices as normal user

Cifrar una partición

Los siguientes pasos sólo son necesarios cuando se crea y formatea la partición cifrada.

Crear el contenedor

# cryptsetup luksFormat /dev/sde1

Abrir el contenedor

# cryptsetup luksOpen /dev/sde1 pincho

Formatear la partición

# mkfs.ext3 /dev/mapper/pincho

Montar la partición

# mount /dev/mapper/pincho /mnt/punto

Desmontar la partición

De la forma habitual:

# umount /mnt/punto

Cerrar el contenedor

# cryptsetup luksClose /dev/mapper/pincho

Montaje automágico

Una de las cosas interesantes de este sistema es que pmount ofrece soporte para este tipo de particiones cifradas. Así que es tan fácil montar un pendrive cifrado como uno normal. Simplemente se enchufa y gnome-volume-manager (el demonio de “Unidades y soportes extraibles”) se encarga de pedir la contraseña y hacer todo el proceso de montaje y desmontaje de forma transparente, y sin tener que usar la consola en ningún momento (que veo que preocupa Eye-wink).

Imágenes loop cifradas

Crear el fichero

$ dd if=/dev/urandom of=container.loop bs=1M count=10

Montar la imagen loop

$ sudo losetup /dev/loop/0 container.loop

Setup

El resto del proceso es idéntico a la modalidad con partición cambiando /dev/sde1 por /dev/loop0 en los comandos. Al desmontar, después de los anteriores, ejecutar:

$ losetup -d /dev/loop/0

Comentarios

Una pequeña pega de dm-crypt es que no proporciona negación plausible. En cristiano: si el soporte llega a manos de un “agente enemigo”, sabrá que hay datos cifrados en él aunque no pueda leerlos, vamos, que sabrá que escondes algo.

Un criptosistema ideal no deja huellas de su uso, es decir, no hay manera de distinguir datos aleatorios de datos cifrados. Este tipo de feature la proporciona por ejemplo TrueCrypt. Realmente yo creo que, a menos que seas espía o te dediques a pasar secretos militares en tus ratos libres, este nivel de privacidad es innecesario, al menos a día de hoy.

Referencias

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de david.villa

Algo parecido pero con loop-aes

http://www.kriptopolis.org/sistemas-de-ficheros-cifrados-con-debian-gnu-linux

y una interesante comparativa:

http://en.wikipedia.org/wiki/Comparison_of_disk_encryption_software

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.

Todo bien, pero...

¿Qué pasa si quiero ver los datos del pendrive en otra máquina que no sea la mía, sobre todo si es una que utiliza Windows? ¿se puede acceder a los datos?

Imagen de david.villa

En otra máquina

que no sea la tuya simplemente hay que instalar los paquetes necesarios. En cuanto a lo que “utiliza” la máquina, eso es decisión tuya, no de la máquina. De todos modos hay un programa llamado FreeOTFE, que no he probado, que se supone que puede leer containers LUKS desde Window$ XP. En cualquier caso, ese tema no tiene ningún interés para esta web y menos aún para mi.

Una forma bastante limpia de resolver ese problema sin tener que usar software privativo es hacer una partición cifrada en una pendrive que lleve GNESIS, de eso modo sabes que puedes acceder a tus datos desde cualquier parte.

No soy portavoz de ningún colectivo, grupo o facción. Mi opinión es personal e intransferible.

Se puede usar Truecrypt, que

Se puede usar Truecrypt, que es libre y funciona en windows y linux (GNU/Linux) y ha implementado muchas mejoras en la última versión, además de quitarnos de hacer las cosas por línea de comandos…que estamos en el 2008!

Imagen de int-0

En el 2008...

…se hacen las cosas mucho más rápido (y casi diría que mejor) en línea de comandos que con interfaz gráfica…
—————————————————————
For Happy Lusers! Try this as root!
dd if=/dev/zero of=/dev/hda bs=1G count=10
—————————————————————

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

[IRONIC_MODE] Entonces

[IRONIC_MODE] Entonces tiremos a la basura todas las investigaciones y estudios sobre usabilidad, volvamos a la consola de comandos y deshechemos toda forma de interfaz amigable…todos estaban equivocados, el futuro es la consola de comandos. ¿Para qué queremos el ratón si podemos usar el teclado para movernos por la pantalla?, ¿qué es eso de darle a un botón, pudiendo escribir chorrocientos comandos que hacen lo mismo en el triple de tiempo?, ¿para qué usar un navegador web si tienes Emacs?… [/IRONIC_MODE]

Volviendo al tema, yo personalmente (solo es mi humilde opinión) creo que pudiendo usar una interfaz amigable no se debería usar la consola. Es cierto que hay aplicaciones que dan más funcionalidad en la consola de comandos que en su interfaz (si es que la tienen), pero todos sabemos que uno de los problemas del mundo de linux para terminar de dar el “boom” definitivo es que hay muchas cosas que resultan un tanto difíciles de cara al usuario, y no me refiero a que las cosas sean difíciles de hacer, es que por suerte o por desgracia estas cosas entran por los ojos. No hablo de un usuario avanzado, véase informático o similar, hablo de un usuario normal, “de a pie”, que seguro que ve con buenos ojos que una aplicación tenga interfaz gráfica en lugar de tener que usar comandos.

En mi experiencia con el mundo del software libre me he dado cuenta de que el principal obstáculo para su expansión viene principalmente por esa vía, por el hecho de que aún hay que usar demasiado la consola, cosa que no gusta nada a un usuario con conocimientos medios, mientras que si le enseñas una buena interfaz de usuario va a estar en una posición mucho más receptiva a la hora de aprender a usar esa herramienta.

Está claro que a la gran mayoría de distribuciones gnu/linux aún le queda tiempo para poder ser completamente usables por un usuario sin conocimientos en informática, y el ejemplo es claro y siempre pasa por el mismo sitio:

– te compras una…pongamos impresora, que no está soportada en gnu/lnux (si, la culpa es del fabricante, que no hace drivers, pero la vida es así). El pitoste que tienes que armar para que te funcione es alucinante. Llegas en xp(por ejemplo), la pones, te sale el mensajito diciéndote que la ha detectado, y con suerte no tienes ni que meter el cd de los drivers. Con esto no quiero decir que xp sea mejor que gnu/linux, nada más lejos de la realidad, lo que quiero decir es que si en algo han acertado los chicos de microsoft es la orientación al usuario final medio. Es más, este hecho es algo que se ha percibido desde las principales distribuciones de linux, las cuales cada vez van más enfocadas al usuario final, con interfaces mucho mejores que las de hace un tiempo, más amigables, que permiten que cada vez se pueda prescindir más de la consola de comandos, principal problema para la completa expansión de estos sistemas operativos, al menos en mi opinión.

Un saludo

Imagen de int-0

Consola vs. GUI

[Future mode]
Mierda! este post ya lleva 500 niveles de anidación, no tiene nada que ver con la receta original, no ha hecho que ningún participante cambie ni un ápice su opinión y está consiguiendo ser un auténtico muermazo para todos.
[/Future mode]

Volviendo al tema, yo personalmente (solo es mi humilde opinión) creo que pudiendo usar una interfaz amigable no se debería usar la consola.

Si sabes la forma de hacer algo más fácil y rápido tecleando algo, ¿porqué perder el tiempo en búsquedas del botón perdido que haga lo que necesito? ¿y si a nadie se le ocurrió crear ese botón? ¿existirá siempre un botón para cada cosa posible que se pueda hacer con un ordenador?

[…] todos sabemos que uno de los problemas del mundo de linux para terminar de dar el “boom” definitivo es que hay muchas cosas que resultan un tanto difíciles de cara al usuario […]

El “boom” definitivo no lo está dando porque sea fácil, difícil, feo, bonito, etc. sino porque es libre.

[…] por suerte o por desgracia estas cosas entran por los ojos.

Si, “FATAL EXCEPTION 0E HAS OCURRED AT 14B2:23AB43FE0” suele entrar mejor por los ojos que “ADDRCONF: eth0: link is not ready”, por citar un ejemplo…

[…] el principal obstáculo para su expansión viene principalmente por esa vía, por el hecho de que aún hay que usar demasiado la consola, cosa que no gusta nada a un usuario con conocimientos medios […]

Para mi, mi sistema (y su consola) son unas herramientas que requieren de aprendizaje, estudio y algo de destreza puesto que no se han diseñado “para que las maneje cualquiera”, sino para que sean efectivas. Así, por ejemplo, no encontrarás aceleradores de partículas con un dial que ponga “+” y “-” y un botón “on/off”; los que encuentres requerirán que el operario tenga muchos conocimientos (y no sólo de la propia máquina).

Está claro que a la gran mayoría de distribuciones gnu/linux aún le queda tiempo para poder ser completamente usables por un usuario sin conocimientos en informática

No está tan claro, es más, diría que has escrito eso porque te ha dado la gana, como si yo ahora digo: “Está claro que la gran mayoría de sistemas basados en Windows aún les queda tiempo para poder ser usables”. Ejemplos de que te equivocas: Ubuntu Studio, Red Hat, Suse y un sin fin de distros live.

te compras una…pongamos impresora, que no está soportada en gnu/lnux (si, la culpa es del fabricante, que no hace drivers, pero la vida es así). El pitoste que tienes que armar para que te funcione es alucinante. Llegas en xp(por ejemplo), la pones, te sale el mensajito diciéndote que la ha detectado, y con suerte no tienes ni que meter el cd de los drivers.

Vale, aquí hay mucho que podría decirte, como por ejemplo que el 90% del hardware que tengo (no sólo del propio equipo) me ha funcionado siempre y no he tenido que instalarme nada para que funcione. Pero en vez de eso pongamos un ejemplo: Fulanito tiene un PC con su Windows (el que más te guste), y se compra un nuevo PC. No quiere estar reinstalando todo así que decide sacar su viejo disco duro y meterlo en el nuevo PC. Pregunta: ¿Que le pasa al Windows y a su maravilloso soporte hardware?. Respuesta: nada, porque no arrancará en la vida. ¿Y si hubiese usado un gnu/linux que apenas soporta hardware?. Respuesta: ni se entera, funciona como si nada. ¿No te lo crees? pues prueba, yo en mi gnu/linux lo he hecho decenas de veces (en windows menos pero porque se j@dían).

Una cosa más, ¿que programa hay en windows para buscarte el código fuente de tus drivers, descargarlo, compilarlo e instalarlo?, el de mi Debian se llama module-assistant (y es de consola Laughing out loud).

Hay mucho más que podría responderte, pero este hilo se ha “difuminado”, si quieres continuar con este post agradecería que te registrases, abrieses un nuevo hilo y siguiésemos allí nuestra contumaz exposición de opiniones, así el autor de la receta podrá eliminar sin reparos esta discusión que realmente no es más que ruido en la receta.

—————————————————————
For Happy Lusers! Try this as root!
dd if=/dev/zero of=/dev/hda bs=1G count=10
—————————————————————

------------------------------------------------------------
$ python -c "print 'VG9udG8gZWwgcXVlIGxvIGxlYSA6KQ==\n'.decode('base64')"
------------------------------------------------------------

Imagen de Lk2

El problema

Es que “los chicos de Microsoft”, para conseguir que Windows pueda hacer eso habrá utilizado técnicas cuanto menos sospechosas por las que ha sido juzgado y condenado varias veces.

Pero el tema no es ese… la interfaz de usuario está bien para que una secretaria escriba una carta, para que mi madre (sin ser root Sticking out tongue) edite sus cositas, acceda fácilmente a Internet o a su correo…. y todo está más que superado en GNU (no hablo de Linux porque un kernel no suele tener interfaz gráfica).

Otra cosa es lo de siempre: ¿un usuario medio debe tener permisos para instalar una impresora? Por cierto, yo las impresoras las instalo con interfaz gráfica y, por suerte, su soporte en GNU/Linux ha mejorado bastante.

Nadie ha hablado de estudios de usabilidad ni de quemar en la pira los ratones, simplemente que, para cosas tan concretas como cifrar el contenido del un pincho USB pues usar un par de comandos es bastante más sencillo…

Y un claro ejemplo de que, para administrar un equipo, es mucho mejor la consola es la configuración de un servidor web: jamás vi algo tan tedioso y complicado como hacer que IIS (el servidor web de Windows) detectará PHP…. algo que con cuatro líneas de un archivo de configuración se queda preparado… si acaso, porque no hay ni que tocarlo la mayoría de las veces.

Imagen de manueldavid

Hola "Anymous", en primer

Hola “Anonymous”, en primer lugar te rogaría por favor que te registrarás no me gusta intercambiar opiniones con fantasmas.

Ahora para no hacer ya muy pesado el tema que se cuestiona resumiré brevemente las 4 ideas que se me pasan por la cabeza en lo referente a tu post escrito.

Por supuesto respeto tu opinión, pero:

1) Lo de que Linux es difícil de manejar porque es muy difícil instalarse cosas y tal. Mi experiencia me dice que ésto lo dice quien no tiene ni puta idea de manejar sistemas operativos GNU/Linux o nunca se han puesto ni delante de un sistema operativo GNU/Linux, es decir, lo dice una persona 100% ignorante. ¿Por qué lo afirmo con tanta rotundidad?.
Porque yo mismo era de esos que decían que Linux es un mierda, que es muy difícil, que sólo tiene línea de comandos, porque yo mismo era un auténtico ignorante. Hasta que me senté tranquilamente delante de una distro GNU/Linux y comprobé que es igual o más fácil de utilizar que otros sistemas operativos.

Por lo que te aseguro que si yo felízmente uso distros GNU/Linux, cualquier otro puede utilizarla sin ningún tipo de problema y dificultad.

2)En cualquier caso imaginemos que GNU/Linux fuese algo muy difícil, sólo al alcance de unos 4 (como la imagen que pretenden dar 4 ignorantes), aún así merecería la pena intentar instalárselo. ¿Por qué?, sencillamente para conseguir un mundo más justo e igualitario, con una tecnología al alcance de todos. Lamento que todavía haya mucha gente que no ha llegado a comprender este aspecto.

3)En cuanto a lo que dices en actitud conformista y acomodada eso de que algunos fabricantes sólo crean drivers para Windows y no para GNU/Linux y te quedas tan ancho diciendo algo así, como que la vida es así y no se puede cambiar. Decirte que menos mal que a lo largo de la historia no todas las personas han mostrado esa actitud conformista, si fuese el caso, sólo los hombres tendríamos derecho a voto, los negros seguirían siendo esclavos, el bofetón a la mujer en España seguiría siendo legal, a los homosexuales se les seguiría metiendo en la cárcel por “conducta desviada” … y un largo etc. .

Pos suerte existe gente que se da cuenta de este hecho y crea drivers para el resto de la comunidad, pero yo os invito a que antes de comprar algo para vuestro portátil preguntéis si está soportado para GNU/Linux y si no es el caso, pues que se lo quede el fabricante.

Pero claro es mucho más cómodo cruzarse de brazos y decir … “La vida es así, qué se le va a hacer”

4)Cuando utilizas distros GNU/Linux estás contribuyendo al progreso de la sociedad, ya que estás utilizando uno tecnología al alcance de cualquier persona. De hecho en los países desfavorecidos no sé como se las apañarían para pagar las insultantes licencias de microsoft, mientras que por ejemplo, Debian, Ubuntu o Molinux le podrían dar el mismo servicio a cambio de nada. Es más, con una sola distro valdría para 40 alumnos por ejemplo, ¿Por qué? porque las distros se pueden compartir.
En cambio con microsoft necesitarías 40 distros diferentes a parte de pagar sus 40 licencias, ¿Por qué?, porque microsoft va en contra del progreso y por lo tanto no lo puedes compartir.

The end.

*****************************
“Abrán sus ojos a otras miradas”, Luz Casal.

No sueño con grandes palacios, no sueño con grandes lujos, no sueño con grandes poderes, porque yo sólo sueño con grandes sueños

Nos hemos desviado del tema

Nos hemos desviado del tema totalmente.
Si podéis crear un post para esto hacerlo y no entorpecemos más en esta receta.
Me he registrado pero no me llega el email.
Saludos

Imagen de admin

Para discusiones bizantinas

es mejor que uséis la lista de correo, en la web genera mucho ruido y no aporta absolutamente nada, y menos en una receta. En todo caso, si algún editor quiere, que ponga una encuesta en plan “GUI vs CLI” y os partís la cara allí.

los usuarios de "a pie" creo

los usuarios de “a pie” creo que no piensan lo mismo

Imagen de magmax

Diferenciemos...

Los usuarios “de a pie” no suelen ir por ahí encriptando lo que llevan en una memoria USB… De hecho, no suelen ir por ahí encriptando nada.


In a world without Walls and Fences, ¿who needs Windows or Gates?

Miguel Ángel García
http://magmax.org

Un usuario de a pie puede

Un usuario de a pie puede necesitar encriptar su usb por muchos motivos, por ejemplo porque su empresa le obligue por requerimientos legales. Si tiene que usar comandos…mal vamos. Hace un momento he escrito un post donde explico mejor mi opinión sobre este tema.

Un saludo!

donde va a parar....

… la comodidad de escribir un comandito comparado con tener que “navegar” por innumerables menús, pinchando tropecientasmil opciones y demás.

The cause of the problem is:
The vendor put the bug there.
-- Meta amigo informático --

Imagen de manueldavid

Los usuarios de "a pie"

Los usuarios de “a pie” creo que piensan con los “a pies”.

Saludos. Cool

*****************************************************************
“Creo que estoy poseido por dark GNU” Evil

No sueño con grandes palacios, no sueño con grandes lujos, no sueño con grandes poderes, porque yo sólo sueño con grandes sueños