Archivos de la categoría ‘criptología’

BREACH (Browser Reconnaissance and Exfiltration via Adaptive Compression of Hypertext) es una nueva herramienta que utiliza una técnica mediante la cual es posible extraer tokens de logins, IDs de sesión y otra información sensible a partir de tráfico web cifrado SSL/TLS y en ¡sólo 30 segundos!.

Esto significa que podría permitir a un atacante descifrar fácilmente un canal HTTPS de un banco o de un sitio de venta online.
Fue presentada en la última conferencia Black Hat y se aprovecha varias vulnerabilidades de forma similar a lo que hacía CRIME con deflate; es decir, ataca al algoritmo de compresión aunque en las respuestas HTTP. Eso sí, como comentamos la información sensible ha de estar en las respuestas HTTP, el servidor por supuesto ha de utilizar compresión HTTP y el exploit requiere que la víctima visite primero un enlace malicioso.
 Imagen

Os contábamos hace un par de semanas que Google estaría barajando la posibilidad de cifrar por completo todos los datos que sus usuarios almacenan en su servicio en su nube, Google Drive, con el objeto de recuperar un poco la confianza perdida tras el escándalo de PRISM y todo lo que ha coleado el asunto. Lo haga o no, ya existen servicios en la actualidad que se encargan de ello. Boxcryptor es uno bastante interesante.

Google Drive, SkyDrive, Dropbox y otras tantas nubes de usuario tienen un grave problema: no crifran los datos en lado del cliente, por lo que esos datos pueden ser accedidos por los técnicos de la compañía. Hay alternativas 100% seguras, como SpiderOak o Wuala, pero si ya tienes cuenta en alguno de los anteriores servicios o en varios de ellos a la vez, puedes sacarle provecho al a herramienta que te presentamos hoy. Aunque tiene sus limitaciones.

Tal y como indican en la página web de Boxcryptor, “Boxcryptor protege tus archivos en la nube que uses Dropbox, Google Drive, Microsoft SkyDrive, SugarSync, Box.net, o cualquier otro principal proveedor de almacenamiento en la nube. También es compatible con todas las nubes que utilizan el estándar WebDAV como Cubby, Strato HiDrive y ownCloud”. No solo eso, sino que permite gestionar cuantas cuentas quieras, siempre que pagues. He ahí, tal vez, su mayor hándicap, aunque es comprensible que su modelo de negocio sea por suscripción.

El cifrado que utiliza Boxcryptor es AES-256 y RSA, dispone de compartición de archivos de forma segura, aplicaciones para PC y dispositivos móviles, entre otras características. De manera gratuita Boxcryptor solo se puede utilizar con fines no comerciales, y solo es posible utilizar un único servicio a la vez.

Surespot un app genial !surespot_logo_web

Surespot es una app que quiere ser un poco distinta a las demás, pues hace que solamente puedan contactar contigo únicamente si saben a quién están hablando, con un concepto de seguridad muy distinto. Resumiendo, este sistema de mensajería instantánea no te sincroniza la agenda de contactos del móvil, ni siquiera te pide el número de móvil ni el correo. Simplemente un nombre de usuario y una contraseña, y ya está.

Hoy les comentaré de OpenSSL que es una herramienta muy flexible, que proporciona muchos módulos cada uno de los cuales realiza una tarea específica. Cada módulo no es un ejecutable separado sin embargo se selecciona con el primer parámetro del ejecutable openssl. Por otro lado ,cada módulo tiene una página de manual separada. Por ejemplo, un modulo llamado x509 gestiona certificados digitales X509 y un mdulo llamado pkcs12 gestiona paquetes PKCS12. Para ejecutar x509, ejecutamos lo siguiente:
openssl x509 -param1 param1 valor
pero para ver su manual debemos escribir : man x509
Probando Conexiones SSL/TLS (Secure Socker Layer/Transport Layer Security)
Openssl posee 3 módulos que nos permite probar conexiones SSL:
s_client (simula un cliente), útil para probar que protocolos y que cifrados está de acuerdo en utilizar el    servidor, siendo útil en seguridad y en auditorias de funcionalidad.
s_server (simula un servidor)
s_time  (pruebas de tiempo de conexión)
Para comprobar que protocolos acepta server podemos utilizar los siguientes parámetros: -ssl2, -ssl3, -tls1, -no_ssl2, -no_ssl3, o -no_tls1.
Dado que se sabe que ssl2 tiene debilidades en seguridad podemos conectar con el servidor utilizando la orden siguiente:
openssl s_client -connect server:443 -no_ssl3 -no_tls1
Si el servidor acepta cualquier protocolo distinto de SSL3 o TLS1, la orden anterior abre una conexión y espera los datos.
Para cerrar la conexión inmediatamente después de haberla establecido, escribimos en s_client:
echo “x” | openssl s_client -connect server:443 -no_ssl3 -no_tls1
con -cipher comprobamos los parámetros permitidos. Podemos buscar nombres de grupos y cifrados con man ciphers.
Para comprobar si el servidor acepta conexiones usando cifrados de un grupo NULL o LOW :
echo “x” | openssl s_client -connect $server:443 -cipher NULL,LOW
Para comprobar si se puede establecer una conexión SSL2 sin esperar más de 10 segundos, podemos utilizar:
echo “x” | timeout openssl s_client -connect server:443 -ssl2
Para automatizar más la orden podemos utilizar $? para comprobar el retorno de la última orden ejecutada  por Bash. Si se ha establecido la conexión, OpenSSL devuelve 0. 
El siguiente script lee nombre de anfitrión desde la salida estándar y comprueba si se establece otra conexión distinta de SSL3 o TLS1 en el puerto 443. Espera 3 segundos. Los anfitriones que permiten este tipo de conexión se escriben en un archivo bad_protocol.txt. Los anfitriones que permiten conexiones con cifrados NULL o LOW se listan en bad_cipher.txt.
01 #!/bin/bash
02 while read server ; do
03    timeout 3 openssl s_client -connect $server:443 -no_ssl3 -no_tls1
04    if [ $? -eq 0]; then
05       echo $server >> bad_protocol.txt
06    fi
07    timeout 3 openssl s_client -connect $server:443 -cipher NULL.LOW
08    if [ $? -eq 0]; then
09       echo $server >> bad_cipher.txt 
10    fi
11 done
 Manejar Formatos PEM/DER y PKCS12
 Para convertir archivos en formatos PEM y DER podemos usar los parámetros -inform y outform. Por ejemplo para convertir todos los certificados X.509 de PEM a DER, usaremos el siguiente bucle:
for file in*.pem;
do openssl x509 -inform PEM -in $file -outform DER -out $file.der; 
done
Otra tarea común es extraer claves/certificados de un paquete PKCS12, que normalmente esta protegido con una contraseña.
Para extraer los certificados de los archivos PKCS12 protegidos con contraseña en un directorio de trabajo y almacenarlos en un directorio de trabajo y almacenarlos sin proteccion de contraseña, se hace lo siguiente:
for file in*.p12;
do openssl pkcs12 -in $file -passin file: $file.pass -nokeys -nodes -out $file.nokeys; 
done
Asumiendo que tenemos la contraseña para cada archivo PKCS12 con la extension .pass 
Cifrado y Descifrado en Masa
Para cifrar un archivo plain.txt de manera simétrica y escribir la salida en cipher.enc, podemos usar la siguiente orden:
openssl  [ ciphername] -a -salt -in plain.txt -out cipher.enc
 
En consecuencia para cifrar todos los archivos .txt en el directorio actual y escribirlo en el directorio ../enc con la cifra aes-256-cbc, podemos utilizar el siguiente bucle (asumiendo que se escribe la contraseña del archivo pass):
 
for file in*.txt;
do openssl aes-256-cbca -salt -in “$file” -out “../enc/$file” passin file:pass; 
done
 
Podemos descifrar todos los archivos .txt en el directorio actual y escribirles en el directorio ../dec con :
 
for file in*.txt;
do openssl aes-256-cbc-d –a -salt -in “$file” -out “../dec/$file” passin file:pass; 
done
 
asumiendo nuevamente que tenemos una contraseña en el archivo pass.
                                                                                       
fuente:  Marcin Teodorczyk