Redes Sociales

lunes, 30 de mayo de 2016

Cifrado (y III)

Cifrando correos electrónicos

Mucha información muy confidencial se envía a diario usando el correo electrónico. Si esto se realiza sin ningún tipo de cifrado cualquier podría leer lo que escribimos y mandamos en ese correo en cualquiera de los puntos intermedios por los que pasa el mensaje (recordemos que cualquier comunicación realizada a través de internet pasa por los servidores del ISP que tenemos contratado, los servidores del servicio que nos dan el servicio (por ejemplo los de google si usamos gmail) y los servidores finales de la empresa receptora. En cualquiera de esos puntos podría haber alguien leyendo los contenidos de nuestro mensaje.

Desde Microsoft Outlook 2007 es posible cifrar los mensajes de forma individual o en su conjunto (todos los que mandemos). Para ello, es necesario disponer de un certificado personal, como los que expide la Fabrica Nacional de Moneda y Timbre o entidades certificadoras como VeriSign. Pero de una forma más barata, podemos usar tambien el DNI Electrónico, aunque para mandar correos firmados por el DNI electrónico es necesario:

  1. Que nuestro DNI tenga los certificados en vigor (si no estamos seguros lo mas probable es que la respuesta sea que no, por lo que habrá que acercarse por una comisaria de policia para renovarlos).
  2. Conocer la contraseña (privada) de esos certificados.
  3. Un lector de smartcards y los drivers correctamente instalados.
  4. Un programa de correo compatible con S/MIME (practicamente todos hoy en día. MS Outook nos vale).
  5. Modificar un entrada del registro de Windows.

Voy a suponer que los cuatro primeros puntos ya los tenemos conseguidos, por lo que me centraré en el punto 5 y continuaré. Para poder mandar correos electrónicos firmados digitalmente por el DNI electrónico con Outlook es necesario abrir el Editor de Registro y modificar una entrada del registro:

  1. Menu de inicio --> Ejecutar --> regedit.exe
  2. En la parte izquierda de la ventana hacer clic en HKEY_CURRENT_USER.
  3. Dentro de HKEY_CURRENT_USER, aun en la parte izquierda hacer clic en Software, luego en en Microsoft, y luego en Office.
  4. Dependiendo de la version que tengamos deberemos entrar en 12.0, 14.0 o 15.0 (version 2007, 2010 y 2013 de Office respectivamente).
  5. Por ultimo y aun en la parte izquierda ir a Outlook y luego a Security.
  6. En este momento hay que mirar la parte derecha y buscar una entrada que se llama "SupressNameCheck". Si existe este debe tener como valor "1". Si no es asi, hacer clic dos veces sobre ese valor y modificar el "0" por el "1". Si no existe, hacer click con el boton derecho del raton sobre la parte derecho de Editor de Registro y hacer click en "Agregar". Aparece una nueva ventana de dialogo que nos permitirá crea una nueva entrada con el nombre "SupressNameCheck" y con el valor "1".
  7. Una vez hecho esto, podemos cerrar el Editor de Registro y reiniciar el Outlook.

Una vez reiniciado Outlook, y con el DNI electrónico conectado y reconocido (lucecita verde del lector), para cifrar un mensaje suelto, en el mensaje, haremos clic en Opciones --> Mas opciones --> Configuración de seguridad --> Cifrar el contenido del mensaje y de los datos adjuntos, y le daremos al botón "cambiar configuración" y en la nueva ventana, el boton "Elegir" nos permitirá seleccionar el certificado del DNI electrónico.

Para que todos nuestros correos electrónicos se envien cifrados, es necesario crear y aplicar una nueva "configuracion de seguridad". Para ello es necesario ir a Archivo --> Opciones --> Centro de Confianza -->Configuracion del centro de confianza --> Seguridad del correo electrónico --> Configuracion --> Ponerle un nombre a la nueva configuración de seguridad --> Escoger el certificado de cifrado --> Aceptar --> Escoger esta nueva configuración como configuracion predeterminada.


Cifrado de correos con GNUPG

GNUPG es una herramienta de cifrado y firmas digitales, que viene a ser un reemplazo del PGP pero con la principal diferencia que es software libre. Dispone de varios plugins para los principales clientes de correo. GNUPG para windows se puede descargar de https://gpg4win.org/download.html

GNUPG es un paquete de utilidades de cifrado que incluye:

  • GnuPG, el motor de cifrado, la herramienta que se encarga de todo el proceso.
  • Kleopatra: la utilidad para gestionar certificados desde una interfaz gráfica cómodamente.
  • GpgOL: la extensión de Outlook para cifrar y firmar correos de forma sencilla.
  • GpgEx: la extensión de Explorer para cifrar o descifrar con el botón derecho.
  • Claws Mail: un cliente de correo electrónico.

Por desgracia GpgOL solo funcionaba hasta Outlook 2003. Ahora es posible contar con una extensión más: Outlook Privacy Plugin, que amplía el soporte para las versiones más recientes: 2010 y 2013, tanto en 32bits como en 64bits. Eso sí, siempre en Windows Vista, 7 ó 2008, ya que requiere del Framework 4.5 de .NET y este no se encuentra disponible en el ya obsoleto y decadente Windows XP.

La puesta en marcha es un poco engorrosa, una vez configurado Gpg4win y el ya comentado framework 4.5 de .NET, se ha de instalar también Visual Studio 2010 Tools for Office Runtime de Microsoft y por último la última versión disponible del plugin, que está en continuo desarrollo y fase BETA (o dicho de otra forma, mejor que nada y prepárate para algún que otro casque)

En https://www.isecauditors.com/sites/default/files/files/iseclab2.pdf podemos encontrar un manual muy completo para la configuración y uso de GNUPG para el cifrado de mensajes con Microsoft Outlook y otras herramientas de correo.


Cifrado en Gmail

Aunque el acceso a gmail se realiza siempre utilizando https y por tanto nadie puede interactuar en nuestra lectura de los correos. A la hora del envío el correo electrónico circula por los diferentes servidores de salto "en claro".

Para poder cifrar correos de gmail podemos usar diferentes técnicas:

  • Si usamos Google Chrome, podemos instalar los plugins "Mymail-Crypt for Gmail" (https://chrome.google.com/webstore/detail/mymail-crypt-for-gmail/jcaobjhdnlpmopmjhijplpjhlplfkhba?utm_source=chrome-ntp-icon), "Secure Gmail by Streak"
  • En mozilla Firefox tenemos el complemento "Gmail S/MIME"

Recepción de correos cifrados

Antes de empezar a enviar mensajes de correo electrónico, cifrados, tú, como emisor y los receptores de tu correos debeis obligatoriamente intercambiar vuestras claves públicas. También debeis confirmar la validez de cualquier clave que acepteis confirmando que en realidad pertenece al supuesto remitente.

En Thunderbird con Enigmail esto se hará en la opción OpenPGP --> Adjuntar Mi Clave Pública cuando estemos escribiendo un correo electrónico.

Cuando recibamos un correo cifrado en Thunderbird nos aparecerá algo asi:

Para poder ver el mensaje deberemos, como indica el mensaje, hacer clic en el boton "Descifrar" de la parte superior de Thunderbird. En ese momento se importará automaticamente la clave pública del emisor, se descifrará usando su clave pública y a continuación se nos pedirá la contraseña para poder descifrarlo usando nuestra clave privada.

En ese momento, tendremos el mensaje en claro.



Firma electrónica

Una firma digital se consigue calculando un valor hash, que es un valor único que cambia cada vez que se modifica lo mas minimo un documento (un espacio en blanco mas o menos, implica un valor hash completamente diferente). Ese valor hash se adjunta al final del documento y se cifra para que nadie pueda leerlo más que el receptor. De esta manera que el receptor del mensaje o documento, lo primero que hace es descifrar el hash, calcular el hash del mensaje o documento y comprobar si son iguales. Si son diferentes, advertirá al usuario de que podría haber habido una modificación del mensaje durante el tránsito.

Firma de correos electrónicos con MS Outlook

La firma electrónico de correos electrónicos con MS Outlook es igual al cifrado. Podemos utilizar un certificado de Ceres o de una CA como Symantec, pero lo mas fácil y barato tal vez sea el firmado con el DNI electrónico. La opción de firmado de un mensaje se encuentra justo debajo de la de cifrado y se llama "Agregar firma digital a este mensaje". De nuevo, al igual que antes, es necesario ir al botón "Cambiar configuración" y escoger un certificado para la firma de mensajes (Usaremos el del DNI como indicamos antes).


Firma y cifrado de correos en Thunderbird con GNUPG y Enigmail

Enigmail es una extension de Thunderbird Enigmail que debe instalarse en Thunderbird yendo a Herramientas --> Complementos. Al reiniciar Thunderbird y encontraremos una nueva opción en el menú superior llamada OpenPGP. Al seleccionar dentro de ella "Administración de claves" podremos crear un nuevo par de clave (publica y privada), yendo a Generar > "Nuevo par de claves".

Durante el proceso se nos pedirá: La cuenta o ID de usuario, la contraseña (diferente a la clave privada), que sirve para proteger tu clave privada contra un uso fraudulento; si alguien consigue robar tu clave privada, aún necesitará conocer la contraseña asociada para poder utilizarla. También se nos pedirá el tiempo de expiración de la clave, es decir, el tiempo durante el cual la clave que se genere será válido.

Finalmente pulsaremos en generar clave y pasados unos minutos (dependiendo de la potencia del PC) ya tendremos un par de claves publico privado que podremos ver en el Administrador de Claves de Open PGP.

Cuando haya acabado, se te preguntará si quieres generar un certificado de revocación, el cual necesitarás si pierdes tu clave privada o te la roban. Haz clic en Sí y guarda el certificado en alguna carpeta que no sea de acceso público. También puedes guardarla en un pen-drive.

Se puede usar la nueva clave para firmar y cifrar correos. Para ello, abrimos el diálogo de configuración de las cuentas y en la sección Seguridad OpenPGP seleccionaremos "Activar el soporte OpenGPG (Enigmail) para esta identidad".

Para no tener que incluir la clave pública en todos los mensajes que mandemos, podemos subirla a un servidor de claves. Estos servidores son de acceso libre, para que cualquier pueda conocer tu clave publica. Para publicar tu clave en uno de estos servidores, no tienes más que hacer clic derecho en ella en la ventana de administración de claves de Enigmail y seleccionar la opción Subir claves públicas al servidor de claves. En la lista de servidores que aparece, selecciona uno y pulsa el botón Aceptar.

Con la opción "Usar la dirección de correo de esta identidad para identificar la clave OpenPGP" o "Usar un ID de clave OpenPGP específico" se puede subir una clave PGP a Thunderbird.

A continuacion hay que activar el firmado y/o cifrado de los mensajes por defecto. Si no se activa, siempre se podrá hacerlo mientras estemos redactando un correo a través del menú OpenPGP o los botones OpenPGP y S/MIME de la ventana de redacción, que se muestran por defecto tras instalar Enigmail.

Para firmar un mensaje necesitamos la clave pública del usuario al que queremos enviar el mensaje cifrado.

Subir la clave pública a un servidor de claves

El usuario al que queramos enviar un correo cifrado deberá realizar el mismo proceso (o el equivalente con su gestor de claves GPG) para subir su clave pública a un servidor de su elección, cuya dirección te deberá proporcionar. En la ventana del administrador de claves de OpenPGP, seleccionamos en el menú Servidor de claves > Buscar claves. En el diálogo que aparece, introducimos la dirección del servidor de claves que nos haya proporcionado el otro usuario y el nombre o identidad con que registró su clave. Pulsamos en Aceptar y aparecerá una ventana con las claves encontradas en el servidor que coinciden con tu criterio de búsqueda. Seleccionamos la que queramos importar y pulsamos Aceptar, tras lo cual podremos ver la clave pública del contacto en la lista de claves disponibles.

Firmar y/o cifrar mensajes

Para firmar nuestros mensaje, seleccionamos en el menú superior OpenPGP --> Firmar mensaje, o pulsamos el botón OpenPGP de la barra de herramientas. Al enviar el mensaje se nos pedirá la contraseña de nuestra clave privada, si la protegismos de esta manera, y se generará un código cifrado a partir del contenido del mensaje y permitirá al destinatario verificar que el cuerpo del mensaje no ha sido alterado en su trayecto.

Cierre

Con esto cerramos los tres articulos relacionados con el cifrado en todas sus vertientes. Hemos hablado de cifrado de dispositivos, de discos, de moviles, de comunicaciones... y en esta ultima entrega de correos electrónicos.

martes, 17 de mayo de 2016

Cifrado (II)

Continuamos con la serie sobre cifrado, hablando en este caso del cifrado en dispositivos moviles.

Dispositivos móviles

Hoy en día pocos son los que viajan con un portátil y es en las tablets y móviles donde almacenamos la información sensible que queremos presentar a clientes, proveedores, etc. Es también imperativo el cifrado de estos dispositivos móviles para evitar fugas de información de todo tipo.

En las ultimas versiones los sistemas operativos de las principales tecnologías móviles vienen con herramientas de cifrado completo del dispositivo.

IOS

Apple cifra sus dispositivos iPhone y iPad desde iOS5. El cifrado se realiza utilizando el algoritmo AES de 256 bits. Como en anteriores sistemas, cada fichero tiene una clave única y aleatoria de cifrado. Esta clave se almacena en un ficherito de metadatos propio del fichero cifrado que es cifrado con una clave propia del sistema de ficheros (clave A) y con una segunda clave que es una combinación del código de bloqueo del usuario y de una segunda clave única a cada iPhone y iPad (clave B).

Esta segunda clave de cifrado (la clave B), aparte de ser única para cada dispositivo, no es almacenadas por Apple en ningún momento. De hecho estas claves se encuentran integradas en los circuitos integrados del propio dispositivo. En concreto en la memoria Flash del dispositivo.

Cuando el dispositivo se apaga, la copia de esta clave que se mantenía en memoria es eliminada y por tanto un atacante tendría que comprobar todas las combinaciones (2 elevado a 256) para descubrir la clave de cifrado (clave B) del dispositivo.

Al habilitar el código de bloqueo, se habilita también el cifrado del iPad. De esta manera, aunque un ladrón/atacante conecte el dispositivo a una computadora no podrá leer la información y en caso de que lo encienda pedirá una clave de bloqueo que bloqueará el dispositivo en caso de un numero excesivo de intentos.

La forma de activar el cifrado en dispositivos iOS es la siguiente:

  1. Ir a Ajustes
  2. General
  3. Código de Bloqueo
  4. Hacer tap en "Turn Passcode On"

Al habilitar el código de bloqueo, se habilita también el cifrado del iPad.

Los dispositivos iOS mantienen una copia de la clave de cifrado (clave B) en memoria flash (si no, no habría forma de recuperar los datos cuando se encendiera el dispositivo). Dado que la clave almacenada en la memoria Flash y la clave del sistema de ficheros (clave A) son únicas al dispositivo y no se pueden cambiar, en el fondo, la seguridad del dispositivo depende del código de bloqueo. Por defecto los usuarios suelen poner un código numérico de 4 dígitos pero este código puede ser alfanumérico y del numero de caracteres que se desee.

Android

El cifrado de disco en Android se incorporó en la versión Honeycomb (3.0) con el nombre de FDE (Full Disk Encryption o cifrado de disco completo). Sin embargo, Android no cifra el disco completo, solo lo hace con las particiones de usuario. Además sólo puede cifrar el almacenamiento interno, y solo desde Android 4.4 puede cifrar unidades SD. El cifrado utiliza el algoritmo AES de 128 bits.

Hasta Android 5.0 la contraseña la introducía el usuario, y el cifrado se basaba únicamente en esa contraseña. Además, no había otra opción y era responsabilidad del usuario no perderla ni olvidarla. En caso contrario se perdia toda la información del dispositivo. Desde Android 4.4 la clave de usuario es cifrada por una clave interna única a cada kernel y es con ésta clave con la que se cifran los archivos. Al final, los datos acaban siendo descifrados con la clave de usuario. De ahí la importancia de usar claves complejas.

La diferencia entre ambos métodos es que con el primero se podía hacer una copia de los contenidos del dispositivo a un PC e intentar una fuerza bruta usando ADB. Esto, desde Android 4.4, no es posible.

Para cifrar el dispositivo Android deberemos acceder a Ajustes --> Configuración --> Seguridad --> Cifrado

El proceso de cifrado puede llegar a durar una hora, por lo que es recomendable dejar el dispositivo conectado a la red eléctrica.



Cifrado de comunicaciones

La información sensible no se encuentra solo en la unidades de nuestros equipos y dispositivos. En el momento de enviar documentos a nuestros amigos y colaboradores, estamos dejando que información potencialmente sensible circule por un cable donde cualquier podría estar escuchando nuestra conversación y la información sensible enviada (O ni eso, en comunicaciones Wifi, la informacion viaha por las ondas, accesible a todo el mundo). Por esta razón es muy importante que todas las conversaciones de todo tipo (navegación web, correos electrónicos, mensajería instantánea, etc.) vayan cifrados.

En el caso del cifrado de comunicaciones, el algoritmo de cifrado utilizado suelen ser algoritmos asimétricos como RSA o DSA, utilizados por protocolos de comunicación como PGP, GPG,SSL o TLS.


Cifrado asimétrico

Es importante conocer las bases del cifrado asimétrico de una comunicación de cualquier tipo. En una infraestructura de clave pública, cada actor (ya sea un servidor web, un cliente de correo, un navegador web, etc) tiene una clave pública (que todo el mundo puede conocer) y una clave privada (que sólo el propio actor debe conocer). Estas claves tienen la característica de que un mensaje cifrado con una de esas claves (ya sea la publica o la privada) puede ser descifrado por la otra. Es decir, si ciframos un mensaje con nuestra clave privada sólo podremos descifrarlo con nuestra clave pública. Y viceversa. Por eso se llama cifrado asimétrico.

Para garantizar la autenticidad, la confidencialidad y el no repudio en el envío de un mensaje (o un texto, o una imagen o lo que sea), el mensaje será cifrado primero con la clave privada del emisor y a continuación con la clave pública del receptor. Es decir, se cifrará dos veces. El receptor (el legitimo receptor) podrá descifrar el mensaje primero descifrando con su clave privada y luego con la clave pública del emisor.

Si un usuario es capaz de interceptar el mensaje (por ejemplo cuando pasa por el servidor de Holanda) nunca podrá descifrarlo. La razón es que, aunque pueda descifrar usando la clave publica del emisor, aún necesitará descifrar el mensaje resultante con la clave privada del receptor legítimo, que, por supuesto, no conoce.

Infraestructura de clave pública

Cuando nosotros compramos en una tienda a través de internet realmente no conocemos a quien le estamos comprando. ¿Quién nos dice que al otro lado no esta un delincuente que simplemente se quedará con nuestro dinero a cambio de nada?. Para esto existe una infraestructura de autoridades de certificación, autoridades de registro, certificados, etc. Una certificado es un ficherito que dice quien es el dueño de esa web, el algoritmo de cifrado preferido para sus comunicaciones, la clave pública de la web y el periodo de validez del certificado (entre otras muchas cosas).

Por ejemplo aqui podemos ver una conexión segura (en la que aparece el candadito) y al clicar sobre él nos da información sobre la comunicación web:

Como vemos el certificado nos indica que Microsoft.com esta en Redmond, Washington, US, que la conexion utiliza el protocolos TLS 1.2 y que para el cifrado usa AES_256_CBC y que para la negociación ha utilizado una variante del algoritmo RSA (ECDHE_RSA). Es más nos permite obtener más datos. Entre la información adicional se incluye la clave pública del servicio web (que es una RSA de 2048 bits) y en la parte inferior nos la muestra (dado que es pública la puede conocer cualquiera). En la sección de cifrado de comunicaciones web veremos que es cada una de estas cosas.

La entidad generadora de estos certificados es lo que se llama una autoridad de certificación (CA) y en certificados web los más conocidos son VeriSign o goDaddy. En el caso del ejemplo anterior se la CA es Symantec, la casa antivirus.

¿Y como sabe esa "autoridad" de certificación que realmente esa web pertenece a esa persona?. Lo cierto es que no lo sabe. Además, cualquier podría crearse un una "autoridad de certificación" y certificar que yo soy yo. Esto ultimo se soluciona porque los navegadores aceptan por defecto los certificados firmados por la autoridades de certificación bien conocidas, como VeriSign, Thawte, etc. Estos los podemos ver yendo a ajustes, opciones de internet --> contenido --> certificados --> Entidades de certificación Raiz de Confianza. Ahí veremos un listado de unas 200 CAs que acepta nuestro navegador (en este caso Internet Explorer). El 99% de los certificados web están firmadas por 4 o 5 entidades de certificación.

En este ejemplo, la autoridad de certificación no esta aceptada por el navegador. La CA resulta ser la administración española (es la página de la sede electrónica del MEC) pero como el navegador es de origen americano y se pretende que sea de uso universal, no incluyen a la administración española como CA. Esta es la razón por la que cada vez que tenemos que realizar trámites con la administración, nos pide que instalemos los certificados que la avalan.

Pues bien a todo este conglomerado de entidades de certificación, de registro, certificados, listas de revocación de certificados, etc. es a lo que se llama Infraestructura de clave pública.


Cifrando comunicaciones web

Cuando hacemos una compra a través de internet estamos enviando cierta información confidencial como los dígitos de la tarjeta de crédito, el usuario, la fecha de caducidad y el código CCV de la tarjeta. Con esta información, cualquier podría realizar una compra a través de internet, suplantando nuestra identidad, por lo que sólo debe ser conocida por el usuario y la tienda.

Sin embargo esa comunicación esta pasando por los servidores de su ISP, servidores comunicaciones alojados (generalmente) en EEUU, probablemente otros servidores alojados en Inglaterra u Holanda, los servidores del hosting de la tienda donde esta alojada la página web donde estamos comprando. Es una largo camino y un montón de servidores de los cuales no sabemos nada ni si han sido comprometidos o que sistemas de seguridad disponen.


Camino que siguen una consulta a twitter desde algún lugar de Francia

Por esta razón es necesario proteger la comunicación de manera que viaje cifrada desde nuestro ordenador al servidor web de la tienda. Para conseguir esta comunicación cifrada, el primer requisito es que el servidor web este configurado para admitir conexiones HTTPS.

Una conexión segura contra un servidor web que admitan conexiones HTTPS tiene 3 fases. En una primera fase el navegador web y el servidor negocian el algoritmo de cifrado de la comunicación. Este proceso se llama Handshake y sirve para que se establezcan varios parámetros que permitan realizar la conexión de una forma segura.Una vez terminada la negociación, la conexión segura es establecida. En ese momento, el servidor web le envía su certificado, que almacena el nombre de la entidad certificadora (CA) del servidor web, el periodo de validez de ese certificado y la clave pública del servicio web. Tal y como vimos antes, si el navegador detecta que o bien el periodo de validez es invalido y la CA son inválidos, nos mostrará un mensaje de error indicándolo, pero nos dejará continuar bajo nuestra responsabilidad.

A continuación el navegador generará una clave maestra de cifrado y se la enviará al servidor web usando la clave pública de éste, y a partir de este momento la comunicación irá cifrada usando la clave maestra (que solo el servidor y el navegador conocen puesto que el intercambio se ha producido de forma cifrada). Realmente el resto del intercambio se realiza utilizando un cifrado simétrico (cifrado y descifrado con la misma clave) que ha sido negociado en la primera fase de la conexión. El cifrado asimétrico se usa únicamente para la fase de negociación entre el navegador y el servidor.

lunes, 16 de mayo de 2016

Cifrado (I)

Comienzo una serie de tres articulos sobre el cifrado que me pidieron para una publicación y de la cula al final cogieron solo una pequeña parte. Como el texto es largo, lo dividiré en tres posts. Tratan del cifrado de discos, del cifrado de moviles y del cifrado de correos electrónicos. Esta serie de artículos fueron publicados por Realsec para su blog de ciberseguridad.

INTRODUCCIÓN

En un mundo global como el que estamos todo acaba globalizándose, incluidas las amenazas que pueden afectar a una empresa. También los atacantes que ejecutan esas amenazas se globalizan, hasta los métodos de defensa están comenzando a globalizarse. Cualquiera puede hoy en día jugar a ser hacker. Un par de cursillos, un par de foros underground, unas cuantas descargas y, a falta de conocimiento especializado, cualquiera puede convertirse en una importante amenaza importante para una empresa, sea del tamaño que sea.

Desde el mundo empresarial hay que ponerse las pilas en securizar los sistemas y las comunicaciones para evitar que cualquiera pueda acceder a información confidencial o comprometida.

Aparte de esforzarnos en evitar que "los malos" accedan a nuestros sistemas, un segundo nivel de protección consistiría en evitar que, si consiguen acceder, puedan leer ningún dato confidencial. Para ello lo ideal es el cifrado tanto de los sistemas de la empresa como de las comunicaciones que realizamos a diario con clientes, colaboradores, proveedores y conocidos en general.

Cifrado

El cifrado de información consiste en la aplicación (previa introducción de una clave de cifrado) de un algoritmo a un texto, imagen o cualquier otro tipo de documento, de manera que el "objeto" obtenido sea completamente ilegible, pero que, a la vez, sea posible descifrarlo aplicando la misma contraseña u otra asociada, obteniendo al final el documento original.

Según como sea esta clave de cifrado, existen dos tipos de algoritmos de cifrado. Por una parte el cifrado simétrico y por otra el cifrado asimétrico. A grandes rasgos, en el cifrado simétrico, también conocido como cifrado de clave secreta, se utiliza la misma clave para cifrar y descifrar la información, mientras que en el cifrado asimétrico, o cifrado de clave pública, se utiliza un par de claves diferentes (pero relacionadas entre ellas) para el cifrado y descifrado de la información.

Podemos decir que el cifrado asimétrico es una especie de cifrado dirigido entre dos personas y por tanto es habitual encontrarlo en el cifrado de comunicaciones. El cifrado asimétrico además garantiza, aparte de la confidencialidad, la integridad del texto (que no haya sido modificado por quien no debe) y el no repudio (que el autor no pueda retractarse de lo que ha escrito).

Pero, ¿qué herramientas hay disponibles para poder cifrar nuestra información? Existen en el mercado infinidad de productos comerciales para el cifrado de información, pero no es necesario gastarse dinero para conseguir un buen producto. Prácticamente todos los sistemas operativos incluyen de forma nativa herramientas que nos permite cifrar los datos almacenados en las unidades de disco, memorias USB y demás dispositivos conectados. Estas herramientas nos permiten cifrar toda la unidad o archivos previamente seleccionados.

La mayoría de estas herramientas de cifrado utilizan el algoritmo AES. Se trata de un algoritmo de cifrado simétrico, adecuado para los más altos niveles de confidencialidad, aunque también existen otros tipos de cifrado, como las diferentes variantes de DES (DES, 3DES, DESX ...) o RSA.

EFS

En todas las versiones de los sistemas operativos Windows (desde Windows 2000) existe EFS, que permite el cifrado de ficheros o directorios de forma sencilla. Simplemente clicando con el botón derecho sobre un directorio en Windows, seleccionando la opción "Propiedades" y dándole al botón "Opciones avanzadas" nos aparece el cuadro de dialogo que vemos en la imagen y que nos permite cifrar el directorio de una forma sencilla.

Sin embargo no hemos introducido ninguna clave para el cifrado. ¿Cómo es posible que hayamos cifrado el fichero?. Esto es porque EFS automáticamente ha generado una clave de cifrado aleatoria y única para este directorio o fichero. El algoritmo de cifrado utilizado ha sido AES, antes mencionado, con un tamaño de clave de 256 bits (. Dado que se trata de un cifrado simétrico, la clave será la misma para descifrar el fichero. Y dado que esa clave sólo la conoce EFS, ésta debe estar almacenada en algún sitio. Pues bien, este sitio es en el propio fichero que acabamos de cifrar. Es un poco enrevesado, me explico: La clave de cifrado, también es un texto y también se puede cifrar. Lo que hace EFS es cifrar la clave de cifrado con un algoritmo diferente, en este caso RSA y utilizando como clave nuestra contraseña de acceso a Windows. El texto resultante lo "pega" al final del fichero que habíamos cifrado antes y lo almacena en disco. De esta manera, este directorio o fichero solo podrá ser descifrado por el usuario que sepa la clave de acceso a Windows, que se supone que somos sólo nosotros.

Desde el explorador de Windows no podemos hacer mucho mas con EFS, sin embargo, con todos los sistemas Windows viene una herramienta de línea de comandos llamada cipher.exe que permite cifrar y descifrar ficheros utilizando la clave tanto simétrica como asimétrica que nosotros deseemos.

EFS tiene sin embargo algunas deficiencias. Por ejemplo no encripta los ficheros propios del sistema operativo y aunque creamos que tenemos todo disco cifrado y nadie puede leer nuestra información, si se trata de un equipo portatil que no conectamos contra un servidor de dominio, un atacante podría obtener el hash de la cuenta de usuario y si ésta no es lo suficientemente compleja, obtener la contraseña de usuario, utilizada como hemos visto por EFS para cifrar los ficheros del disco duro.

BITLOCKER

Para evitar esto, a partir de Windows 7, aunque únicamente en las ediciones Ultimate y Enterprise, disponemos de una herramienta llamada Bitlocker, con una interfaz gráfica muy intuitiva, que nos permitirá cifrar de manera muy simple nuestra unidad completa (esta vez de verdad) o los archivos sueltos que queramos. En este caso el algoritmo de cifrado utilizado es AES con clave de 128 bits. En el caso de cifrado de unidades enteras, si el equipo esta apagado, el disco permanecerá cifrado, desde el primer hasta el último bit.

Para lanzar bitlocker lo mejor es buscar la aplicación Bitlocker Drive Encription:

En Windows 8/10 es igual:

Como indicabamos Bitlocker permite cifrar una unidad entera o solo un conjunto de archivos:

Bitlocker nos da la opción de escribir una clave de cifrado que sólo nosotros sabremos o dejarle a él escoger una clave aleatoria. En este caso, como ocurría con EFS, esa clave (llamada FVEK) será cifrada con otra clave llamada VMK la cual será almacenada en una región especial del disco cifrado. Para aumentar la seguridad, bitlocker nos ofrece la opción de cifrar esta clave, la VMK y almacenar la clave en una unidad USB o bien utilizar un hardware especial que cumpla con el estándar TPM v1.2. De esta manera sólo sería posible arrancar el equipo si disponemos de esa llave USB o de ese hardware conectado.

En ambos casos es absolutamente necesario tener una vía de recuperación en caso de que olvidemos la clave o se pierda la llave USB. Por eso el siguiente paso al cifrar un unidad con bitlocker es obtener una clave de recuperación, ya sea en un USB, impresa o en una cuenta de Microsoft:

Una vez tengamos el disco cifrado con Bitlocker nosotros, como usuarios, no notaremos nada, puesto que todo lo que se escriba y lea del disco pasará a través de Bitlocker y será éste quien cifre y descifre todo de forma transparente para el usuario. Nosotros veremos los ficheros como los veíamos hasta ahora.

Los expertos en seguridad se quejan de que el algoritmo de cifrado utiliza bloques de solo 128 bits, lo que significa que, con un cierto esfuerzo, podría ser posible su descifrado utilizando técnicas de fuerza bruta.

Algunas alternativas a bitlocker son DiskCryptor, TrueCrypt (aunque descontinuado parece que nunca se encontró ningún backdoor) o Veracrypt, que es un fork de Truecrypt. Todas ellas soportan USB como clave, y al menos DiskCryptor soporta arranque desde partición boot externa.

Linux y OSX

En sistemas operativos Linux, disponemos en todas sus versiones de la herramienta de cifrado GnuPG. Para permiten usar llaves USB para el descifrado automático de unidades no existe una solución como tal pero se puede conseguir aprovechando herramientas como cryptsetup y usb_keymaster usando LUKS y dm-crypt. Por ultimo, en el sistema operativo de Apple (OSX) disponemos de la herramienta FileVault2, también disponible en todas sus versiones y que utiliza el algoritmos AES con claves de 256 bits.

Además de las herramientas integradas en los sistemas operativos, para cifrar archivos sueltos, disponemos de esta opción en las herramientas de compresión, que nos permiten cifrar el contenido de archivo comprimido utilizando una contraseña introducida por nosotros. También, existen aplicaciones de software libre específicas de cifrado que nos permitirán mantener nuestros datos seguros de manera gratuita.