
Como saben los lectores veteranos, me apasiona la seguridad de la información, aunque me esfuerzo por mantener una comprensión de las muchas subdisciplinas de la tecnología de la información. Ya que no he contribuido con ninguna experiencia en InfoSec por un tiempo, me gustaría corregirlo. No podría haber cronometrado mejor esta realización porque (como puede ver) las técnicas que se muestran son excelentes para asegurar su declaración masiva de impuestos en la temporada.
En esta publicación, mi objetivo es proporcionar una serie de opciones simples pero efectivas para cifrar una pequeña cantidad de archivos. En particular, estas opciones son importantes para casos de uso como declaraciones de impuestos, donde los usuarios envían documentos confidenciales a destinatarios de competencia técnica desconocida. Me encanta PGP, y apuesto su cheque de reembolso, su contador no sabía nada sobre su uso.
Antes de continuar, señalaré que todas estas técnicas de encriptación de archivos requieren que use un canal adicional para transferir secretos compartidos, en su mayoría contraseñas. Los archivos se enviarán a través de un canal previamente acordado, mientras que el descifrado se enviará a través de otro canal.
Hay demasiados canales secundarios viables para enumerar, pero asegúrese de tomar medidas razonables para elegir uno que no se rompa fácilmente. El hecho de que utilice un canal adicional es en sí mismo una protección contra la divulgación de archivos: sin él, enviar un archivo cifrado y su contraseña de descifrado en el mismo canal crearía un único punto de falla. El uso de dos carriles requiere que tu oponente realice dos ataques exitosos para fallar.
Comencemos con las técnicas de menor complejidad (y seguridad) y avancemos hasta las más altas. Algunas de las entradas posteriores son para tipos de seguridad básicos, pero hay algo para todos.
ZIP encriptado, estilo CLI
Mi vida cambió para siempre cuando supe que podía cifrar archivos ZIP. Lo que hace que el cifrado ZIP sea tan útil es la ubicuidad de ZIP. Casi todos los sistemas pueden manejar ZIP y todos los sistemas que pueden manejar cifrado.
La interfaz para descifrarlos es muy simple: el usuario hace clic en el ZIP, aparece una ventana que solicita una contraseña, el usuario ingresa la contraseña y el ZIP comienza a extraerse (suponiendo que la contraseña sea correcta, por supuesto). Esto hace que el cifrado ZIP sea ideal para transferir archivos a destinatarios cuyas capacidades técnicas no se pueden determinar.
Claro, hay una interfaz gráfica para comprimir archivos, pero la interfaz de línea de comandos (CLI) aprovecha la facilidad y la eficiencia del proceso. En realidad, está ejecutando el comando «zip» con el indicador «-e», el nombre que desea que tenga el archivo y uno o más archivos existentes que desea cifrar y comprimir, todos separados por espacios:
zip-e Archivo Archivo 1 Archivo 2
Después de ejecutar el comando, se le pedirá que ingrese y confirme la contraseña de descifrado. Anótelo ya que esto es lo que necesita compartir con el destinatario para abrir el ZIP. Puede triturar/quemar el papel más tarde, simplemente escríbalo.
Hay algunos puntos técnicos que vale la pena discutir. Primero, el archivo original no ha sido alterado. El comando «zip» comprime y cifra automáticamente las copias. En segundo lugar, el nombre del archivo comprimido se puede leer incluso cuando el archivo se abre antes del descifrado. Por lo tanto, el cifrado no protegerá ningún nombre de archivo confidencial de nadie que obtenga el ZIP, la contraseña o no.
Suponiendo que está de acuerdo con estas advertencias y ha seguido los pasos anteriores, el paso final es enviar el archivo y la contraseña a su destinatario por separado. Los atacantes necesitan ambas partes, así que hágales las cosas lo más difíciles posible.
OpenSSL: ya no es solo para navegadores
Para aquellos que quieren más seguridad que un ZIP encriptado simple, pueden usar OpenSSL. Para los usuarios de Linux, sus sistemas hacen esto fácilmente con el paquete «openssl» preinstalado. Al igual que con la compresión criptográfica, puede usar OpenSSL para cifrar archivos con un solo comando:
openssl aes-256-cbc-a-sal-in documento -salir documento.enc
Vamos a desglosarlo.
- «aes-256-cbc» es el cifrado utilizado. Úselo a menos que tenga una opinión fuerte sobre las contraseñas.
- El indicador «‐a» codifica la salida como base64, lo cual es importante si queremos que otros programas manejen bien los archivos de salida cifrados. Otra forma es que los archivos binarios, los servicios de correo electrónico y otros programas lo marquen como un riesgo de seguridad (irónicamente, en este caso).
- El indicador «‐salt» agrega un valor aleatorio a la combinación para reducir la posibilidad de que un atacante que conoce sus prácticas de encriptación la comprometa. «openssl» también le advierte que nunca use sal, por lo que hay; y,
- Como su astuto lector puede intuir, «‐in» especifica el archivo de entrada y «‐out» establece el nombre del archivo de salida de destino. Técnicamente, puede nombrar el archivo de salida como desee, hasta la extensión del archivo. Sin embargo, asegúrese de no nombrarlo igual que su archivo de entrada, o su salida sobrescribirá su entrada.
Al ejecutar el comando, solicita la contraseña dos veces. Nuevamente, regístrelo en algún lugar para que alguien pueda descifrar sus archivos. El descifrado es igualmente simple. Simplemente tome la sal y pase la bandera «-d» para descifrar. Obviamente, el archivo cifrado es la entrada esta vez, y el nombre del archivo descifrado es la salida:
openssl aes-256-cbc -d -a -in documento.enc-fuera documento.nuevo
Nuevamente, puede nombrar el archivo de salida como desee. Al igual que un ZIP cifrado, necesita un canal secundario adecuado para transmitir la contraseña de descifrado.
Para los de alto rendimiento, siempre hay un PGP
PGP es para verdaderos nerds de InfoSec a quienes no les importa el trabajo extra (y tienen amigos). Por lo tanto, estos pasos asumen que usted y el destinatario del archivo saben cómo operarlo. No entraré en detalles aquí, pero afortunadamente, Lo he hecho antes.
Para usar el cifrado de archivos PGP, el destinatario debe tener un par de claves PGP. Técnicamente, no es necesario, solo para enviar el archivo. Sin embargo, si desea devolver archivos de forma segura, debe tener un par de claves PGP.
A diferencia de ZIP cifrado y OpenSSL, el remitente realiza el cifrado y luego transmite el archivo y el secreto compartido al destinatario; con PGP, el destinatario del archivo debe enviar su clave pública al remitente antes de que se pueda realizar el cifrado. Si el remitente quiere firmar el documento, necesitará su propio par de claves para poder proporcionar al destinatario su clave pública.
A pesar de las complejidades de este baile, tiene una gran ventaja: su estructura de clave asimétrica hace que el intercambio de claves sea más seguro, ya que un atacante no puede romper el cifrado de la clave pública. Esto proporciona flexibilidad para el intercambio de claves. Puede cargar su clave pública en el servidor de claves y llamarlo un día.
Si no quiere que el mundo sepa que posee la clave PGP, puede intercambiar la clave pública en otra plataforma de encriptación. Por supuesto, si realmente no desea que sus claves públicas toquen Internet, puede cambiarlas usted mismo. Nuevamente, si puede hacer eso, ¿por qué no intercambiar sus archivos en ese momento?
Después de todo esto, es hora de hacer el cifrado real. Aquí hay una serie de banderas para descifrar:
gpg-o archivo de salida -oído Perfil del destinatario
- El indicador «-o» y su «outfile» asociado especifican el nombre de archivo del producto terminado. Nómbralo como quieras, pero te recomiendo incluir un sufijo para recordarte que está encriptado.
- El indicador «-e» le indica a GPG que realice operaciones de encriptación.
- El indicador «‐a» hace que GPG codifique la salida cifrada en base64, tal como lo hace el indicador en «openssl».
- «-r» y su «receptor» deciden qué clave pública se utiliza. Esto es importante porque PGP usa una clave pública al cifrar, y solo el titular de la clave privada del hermano de la clave pública puede descifrar ese cifrado. Especifique los destinatarios por la dirección de correo electrónico asociada a su clave pública. Finalmente, debe señalar el archivo que desea cifrar.
El comando de descifrado es mucho más simple:
gpg-o archivo de salida -d documento
El receptor pasa el indicador «-d» para descifrar, elige cómo llamar a la salida y establece la entrada. Eso es todo.
Entre estas tres tecnologías, tiene todo lo que necesita para horas de diversión encriptada… y sabe que sus archivos están seguros. ¡Feliz contraseña!