15
Pachuca Hgo. 28 de Noviembre del 2013 OPEN SSL OPEN SSL OPEN SSL OPEN SSL Unidad 4 MATERIA: SEGURIDAD EN TECNOLOGIAS DE LA INFORMACION CATEDRATICO: JAVIER HERNANDEZ OROZCO ALUMNA: ANA KAREN VELASCO SOTO N.C. 09200867

Openssl

Embed Size (px)

DESCRIPTION

OPENSSL y SSLCOP

Citation preview

Page 1: Openssl

Pachuca Hgo. 28 de Noviembre del 2013

OPEN SSLOPEN SSLOPEN SSLOPEN SSL Unidad 4

MATERIA: SEGURIDAD EN TECNOLOGIAS DE LA INFORMACION

CATEDRATICO: JAVIER HERNANDEZ OROZCO

ALUMNA: ANA KAREN VELASCO SOTO

N.C. 09200867

Page 2: Openssl

Contenido

INTRODUCCIÓN ..................................................................................................................................... 2

SEGURIDAD EN COMUNICACIONES WEB: SSL ............................................................................................... 2 ¿COMO ES EL MODELO DE CONFIANZA? .................................................................................................................. 2 DESVENTAJAS .................................................................................................................................................... 5

Uso de certificados comodín ...................................................................................................................... 5 Protección ante ataques ............................................................................................................................ 5

SSLCop ............................................................................................................................................................................. 6

OPEN SSL (LA NAVAJA SUIZA DE LA ENCRIPTACIÓN) ................................................................................ 7

REQUISITOS DE INSTALACIÓN ................................................................................................................................. 7 PROCEDIMIENTO DE INSTALACION .......................................................................................................................... 7

Generado claves......................................................................................................................................... 8

CONCLUSIÓN ........................................................................................................................................ 13

REFERENCIAS ....................................................................................................................................... 14

Page 3: Openssl

IntroducciónIntroducciónIntroducciónIntroducción

SEGURIDAD EN COMUNICACIONES WEB: SSLSEGURIDAD EN COMUNICACIONES WEB: SSLSEGURIDAD EN COMUNICACIONES WEB: SSLSEGURIDAD EN COMUNICACIONES WEB: SSL

Es esta época donde todo circula por internet y la información importante puede ser sustraída con

facilidad es necesario tener herramientas y habilitar procedimientos para la protección de los datos

en tránsito. En la red Internet actual, la gran mayoría de las comunicaciones a nivel de usuario son

comunicaciones vía web, hablamos de Facebook, Twitter, acceso a banca online, etc. Con la

intención de asegurar las conexiones del mayor número de personas posibles se ve interesante

profundizar exclusivamente en la protección de comunicaciones web. Es por tanto necesario

asegurar que cuando interactuamos con una página web estamos realmente intercambiando

información con la página legítima y no con un atacante. Para ello, se ha implementado un modelo

de seguridad basado en una infraestructura de clave pública (PKI, del inglés Public Key

Infrastructure) en el protocolo SSL.

¿Como es el Modelo de confianza?

Cuando nos conectamos a una página web mediante el protocolo HTTPS (HTTP sobre SSL), nuestro

navegador se conecta al servidor web e intenta establecer una sesión segura mediante SSL. Para

ello, se llevan a cabo los siguientes pasos:

1. Obtención del certificado del servidor. En primer lugar, el servidor nos envía un certificado digital.

Esto sería equivalente a un pasaporte o documento de identidad generado por las autoridades de

nuestro país. Básicamente, el certificado incluye el dominio de la página web, el período de validez,

la parte pública del par de claves que el servidor va a usar para establecer la comunicación y una

firma digital creada por una Autoridad de Certificación (CA, Certification Authority).

2. Comprobación del certificado. Una vez se tiene el certificado, se obtiene la clave pública de la CA

y se verifica la validez del mismo. Para que este paso sea válido, la CA debe estar dentro de una lista

de autoridades de confianza (por ejemplo, equivaldría a ser generado por un país de la EUA en el

mundo real). Para ello, los navegadores contienen una lista de CA de confianza. Si el certificado no

ha sido generado por una CA de confianza, es posible no obstante que haya sido por generado por

una CA subordinada. En este caso se procede a comprobar la firma digital sobre el certificado de la

CA subordinada. Con esto se genera una cadena de certificados, que debe acabar en una autoridad

de confianza. Si es posible verificar todos los certificados de la cadena, entonces se asume que la

clave pública expuesta por el servidor es de confianza.

3. Comprobación de la identidad del servidor. Una vez establecida la confianza de la clave pública,

es necesario establecer la identidad del servidor. Para ello, se utiliza el protocolo SSL para asegurar

que el servidor con el que estamos hablando efectivamente tiene conocimiento de la clave privada

Page 4: Openssl

correspondiente. Además, el protocolo SSL se asegura de introducir datos aleatorios en la

comprobación para evitar que un atacante pueda estar reusando comunicaciones almacenadas con

anterioridad.

4. Generación de claves simétricas. Finalmente, se utilizan los datos intercambiados entre cliente y

servidor para generar dos claves simétricas. Éstas se usarán para asegurar la confidencialidad y la

integridad de las comunicaciones durante la sesión web.

Sin embargo, SSL no protege frente atacantes capaces de comprometer la seguridad de cualquiera

de los dos extremos de la información. Si el cliente ha sido comprometido, es obvio que el atacante

tendrá acceso a cualquier comunicación del mismo con un servidor web por mucho que éste utilice

SSL. Por otra parte, si un servidor web es comprometido, el atacante sería capaz de inyectar

información en las sesiones SSL así como acceder a toda la información a la que tiene acceso el

sistema comprometido. Por último, si el atacante es capaz de obtener la clave privada

correspondiente al servidor, éste sería capaz también de descifrar las comunicaciones protegidas

vía SSL puesto que tendría acceso a toda la información necesaria para derivar las claves simétricas

utilizadas en las sesiones web. Así pues, SSL protege la confidencialidad y la integridad de la

comunicación pero no puede proteger al usuario ante servidores maliciosos o comprometidos.

Generalmente, cuando se accede a un servicio web vía SSL, el navegador se encarga de verificar el

certificado y establecer la sesión si dicha verificación se realiza con éxito. Los navegadores más

comunes disponen de mecanismos para notificar al usuario que la verificación se ha realizado con

éxito, generalmente mediante el uso de un pequeño candado.

En la siguiente imagen se muestra un ejemplo del certificado de identidad de gmail, ha sido

verificado.

Page 5: Openssl

La información sobre el certificado:

Detalles más a fondo del certificado de identidad:

Page 6: Openssl

DesventajasDesventajasDesventajasDesventajas

Uso de certificados comodín

En los certificados utilizados para garantizar la autenticidad de los servidores web existe la

posibilidad de utilizar comodines dentro del dominio web. Así pues, se pueden generar certificados

válidos para cualquier dominio. Obviamente, para generar dicho certificado se necesitaría la

colaboración de CAs o el acceso ilegítimo a ellas.

Por ejemplo, en las agencias de espionaje de determinados gobiernos tengan acceso a este tipo de

certificados para realizar labores de vigilancia e investigación.

Protección ante ataques

En vista de los ataques más comunes ante SSL, existen dos formas principales de protegerse como

usuario: limitando la lista de CAs de confianza y/o vigilando los certificados de aquellas páginas webs

con las que interactuamos. Puesto que la verificación manual de certificados cada vez que visitamos

una página web es una tarea tediosa, en esta sección vamos a ver algunas utilidades que nos pueden

ayudar en este cometido.

Page 7: Openssl

SSLCop SSLCop SSLCop SSLCop

SSLCop es una herramienta desarrollada con el objetivo de limitar el número de CAs de confianza

en sistemas Windows. El concepto básico detrás de esta herramienta es que en general, un usuario

español, por ejemplo, no tiene ninguna necesidad de acceder a sitios web con certificados emitidos

en Macao. Siguiendo este concepto, la herramienta SSLCop nos permite elegir en qué CAs queremos

confiar basándonos en el país de origen de la misma. Cómo se puede ver en esta imagen, la interfaz

nos permite seleccionar CAs por países y bloquear aquellos países seleccionados.

Una vez presionado el botón BLOCK!, estas CAs son eliminadas de la lista de CAs de confianza de

Windows, que es usada entre otros por Internet Explorer y Google Chrome.

Cabe aclarar que el certificado se ha borrado pero esto no impide que se pueda visualizar la página.

Page 8: Openssl

OOOOPEN SSL (la navaja suiza de la encriptación)PEN SSL (la navaja suiza de la encriptación)PEN SSL (la navaja suiza de la encriptación)PEN SSL (la navaja suiza de la encriptación)

Requisitos de instalación

• Instalar OpenSSL

• Acceder a la página www.openssl.org

• Buscar el ejecutable de Windows en la sección Related/binaries

• Para poder trabajar en d:\temp hay que definir el path: c:\openssl\bin

Procedimiento de instalacion

Despues de descargar el setup de OPENSSL le damos doble clic y seguimos le procedimiento como

se muestra en las siguientes imagenes:

1.-

2.-

3.- 4.-

Page 9: Openssl

5.- 6.-

Generado claves

Para realizar una encriptacion se necesitan dos claves ya sean asimetricas (diferentes entre ellas) o

simetricas(iguales entre ellas) una debe ser de caracter publico y otra privada.

Con OPENSSL se generan dichas claves, de forma sencilla y con opciones de nivel de encriptacion

(las “vueltas” de cifrado que se le dan al archivo a encriptar).

En cmd escribimos el comando openssl?

Y observamos que entre ellos aparecen los comandos genrsa y rsa, que nos permitirán generar las claves

publica y privada.

Page 10: Openssl

Como primer ejercicio, vamos a generar una clave privada de 1.024 bits de nombre c4yRSA1 como

se observa en la siguiente figura. Para ello usaremos el siguiente comando:

C:\OpenSSL-Win32\bin>openssl genrsa -out c4yRSA1 1024

Seguramente te preguntarás qué significan esos puntos y esas cruces que aparecen en dos líneas

mientras se calcula la clave. Se trata de la indicación que nos hace el programa que está intentando

encontrar un primo p y luego un primo q, y comprobando que ambos son primos. Más adelante

tendrás ocasión de comprobarlo cuando calcules una clave muy grande y por tanto tarde bastante

tiempo en generarse. Además comprobamos que si no especificamos nada al respecto, OpenSSL usa

como clave pública estándar el número 4 de Fermat: 65.537 ó 0x10001.

Ejecutando el siguiente comando se va a generar esta clave “muygrande” de 8.192 bits el programa

tarda varios segundos, lo que se observa en la velocidad en que van apareciendo los puntos y las

cruces.

Esto depende del nivel de cifrado que se le ha dado a la clave, por eso es que tarda unos mili

segundos más en encriptar que con la clave anterior.

Page 11: Openssl

C:\OpenSSL-Win32\bin>openssl genrsa -out muygrande 8192

Para ver la clave pública, deberemos ejecutar antes el siguiente comando:

C:\OpenSSL-Win32\bin>openssl rsa -in c4yRSA1 -pubout

Page 12: Openssl

En esta imagen se muestra la diferencia del nivel de cifrado en la clave que se llama “muygrande”.

En la ruta siguiente se puede visualizar la clave privada, se debe abrir con wordpad el archivo

c4yRSA1 almacenado en la siguiente ruta:

C:\OpenSSL-Win32\bin

Page 13: Openssl

Y la clave publica:

Page 14: Openssl

Conclusión

OPENSSL es una herramienta para encriptación de datos que normalmente se utiliza para crear

certificados digitales que sirve para que el navegador identifique si la página a donde se está

accesando es auténtica, estos certificados se utilizan principalmente es páginas que necesitan

seguridad extra como lo son Gmail, Outlook, twitter y de banca electrónica entre otras.

Cabe destacar que esta herramienta proporciona también claves privadas y públicas para cifrar

archivos comunes, con diferentes niveles de encriptación.

OPENSSL al ser una herramienta de encriptación podría utilizarse en la última capa de nuestro

sistema de seguridad web, pero no por eso debemos subestimarlo sobre lo útil que puede ser al

proteger información muy valiosa.

Page 15: Openssl

Referencias Bioinformatiquillo. (26 de 11 de 2013). Obtenido de

http://bioinformatiquillo.wordpress.com/2007/12/16/encriptacion-sencilla-de-ficheros-

con-openssl/

Criptored. (20 de 11 de 2013). Obtenido de

http://www.criptored.upm.es/crypt4you/temas/RSA/leccion7/leccion07.html

INFOW. (24 de 11 de 2013). Obtenido de http://infow.wordpress.com/2009/01/11/openssl-la-

navaja-suiza-del-cifrado/

LINGUEE. (20 de 11 de 2013). Obtenido de http://www.linguee.es/ingles-

espanol/traduccion/openssl+toolkit.html

OPENSSL . (24 de 11 de 2013). Obtenido de http://www.openssl.org/docs/apps/genrsa.html

Wikipedia. (18 de 11 de 2013). Obtenido de http://en.wikipedia.org/wiki/Convergence_(SSL)