• No se han encontrado resultados

Bases de Datos: Plataforma OpenSSL

N/A
N/A
Protected

Academic year: 2021

Share "Bases de Datos: Plataforma OpenSSL"

Copied!
15
0
0

Texto completo

(1)

Bases de Datos: Plataforma OpenSSL

Para la realización de la Practica “Gestión de accesos seguros SSL a una Base de Datos” vamos a utilizar la plataforma OpenSSL instalada en la Máquina Virtual de la asignatura. Esta plataforma nos va a permitir crear la infraestructura de seguridad (certificados y claves) que vamos a utilizar en la configuración del SGBD para implementar servicios de seguridad en el acceso a la Base de Datos.

(2)

Bases de Datos: Plataforma OpenSSL

OpenSSL es un entorno integrado que permite la creación y gestión de certificados digitales. OpenSSL dispone de la infraestructura necesaria para crear una Autoridad de Certificación, firmar certificados de usuario, revocar certificados etc .

OpenSSL es además un paquete de herramientas de administración y librerías de seguridad para la gestión de certificados y la implementación de mecanismos de seguridad. OpenSSL proporciona un entorno mediante el cual es posible mediante línea de comandos crear certificados, firmas digitales, cifrado/descrifrado información, mensajes S/mime etc….Además proporciona librerías para implemementar aplicaciones de seguridad en entorno C/C++ en sistemas operativos windows/linux

sistemas operativos windows/linux.

Esta librería criptográfica surge a partir del proyecto SSLeay, que fue iniciado por Eric A. Young y Tim J.Houston, y como propuesta inicial pretendía ofrecer el protocolo SSL para cualquier aplicación de seguridad. El proyecto OpenSSL fue iniciado en 1995, y actualmente es la librería criptográfica más usada. Algunas de las razones que la hacen tan popular son:

Es distribuida, usando una licencia de código libre. Esto permite a los usuarios realizar cambios y optimizaciones constantes en los elementos criptográficos que la componen. Es posible integrarla en cualquier aplicación comercial sin necesidad de abonar tasas permitiendo ofrecer soporte en cualquier aplicación comercial sin necesidad de abonar tasas, permitiendo ofrecer soporte

(3)

Bases de Datos: Plataforma OpenSSL

La herramienta openssl, que se invoca mediante la línea de mandatos, proporciona acceso a un gran conjunto de funciones criptográficas correspondientes a la librería criptográfica crypto. Algunas de las operaciones que se pueden realizar mediante dicha librería son:

Creación y gestión de certificados digitales X.509, solicitudes de certificados digitales (CSR) y listas de revocación de certificados (CRL).

Creación y gestión de claves privadas y claves públicas. Operaciones relacionadas con la criptografía de clave pública.

Cálculo de “resúmenes” de mensajes mediante funciones hash. Firma digital. Cifrado y descifrado con un amplio conjunto de algoritmos.

Api para el desarrollo de aplicaciones SSL/TLS cliente-servidor. Manejo de e-mails S/MIME cifrados y firmados.

(4)

Bases de Datos: Plataforma OpenSSL

Una vez instalado el entorno OpenSSL hay que poner en la variable “path” del sistema “C:\OpenSSL-Win32” que es la instalación por defecto de la plataforma*. De esta forma podemos ejecutar la herramienta desde cualquier directorio del sistema.

La forma de invocar la herramienta es tecleando “openssl”. Momento en el cual entramos en el entorno

OpenSSL>

En la figura se observan el conjunto de comandos disponibles de la herramienta *La máquina virtual del curso ya tiene configurado la variable de entorno del path de la instalación de OpenSSL con lo cual se puede invocar a la plataforma desde cualquier ventana MSDOS con el comando “openssl”.

(5)

Bases de Datos: Plataforma OpenSSL

Los certificados X.509 tiene un estándar PKCS#7 pueden almacenarse enp formato binario DER con extensiones “.crt”, “.cer”, “.der”. También pueden almacenarse en formato PEM con extensión “.pem”.

La claves privada al igual que los certificados pueden estar en formato DER o PEM. Y las extensiones de los ficheros serían “.der” o “.pem”. El formato de las claves sigue el estándar PKCS#8.

El formato PEM es la conversión base64 del formato DER a la que se añaden d li it d d l ti “ BEGIN CERTIFICATE ” “ END CERTIFICATE” unos delimitadores del tipo “-BEGIN CERTIFICATE-” y “-END CERTIFICATE”

Los archivos con extensión “.p12” se utilizan para almacenar en un único fichero cifrado el certificado de clave pública de un usuario y su clave privada. La extensión .pfx (Personal inFormation eXchange) es similar que la *.p12” en el entorno windows. El formato de estos ficheros sigue el estándar PKCS#12.

El entorno Openssl nos permite convertir formatos de certificados según sean requeridos por nuestras aplicaciones

(6)

Bases de Datos: Plataforma OpenSSL

Vamos a empezar a utilizar la herramienta creando un par clave privada-pública.

La clave privada la vamos a tener en un fichero que podemos opcionalmente proteger con una clave y un algoritmo simétrico como DES, AES 256 …

La clave pública también la podemos crear en un fichero. Se extrae a partir de la clave privada.p

(7)

Bases de Datos: Plataforma OpenSSL

Vamos ahora a crear un certificado digital X.509. vamos a llamar a este certificado, certificado de la Autoridad de Certificación (CA Certification Authority) Este certificado certificado de la Autoridad de Certificación (CA, Certification Authority). Este certificado nos permitirá autenticarnos frente a un servidor e implementar mecanismos de seguridad adicionales.

Vamos a poner los siguientes campos en el certificado de la CA

---Country Name (2 letter code) [AU]:ES

State or Province Name (full name) [Some-State]:MA Locality Name (eg, city) []:BOA

O i ti N ( ) [I t t Wid it Pt Ltd] FIM

Organization Name (eg, company) [Internet Widgits Pty Ltd]:FIM Organizational Unit Name (eg, section) []:UPM

Common Name (eg, YOUR name) []:ALU1_CA Email Address []:[email protected]

OpenSSL>

Nótese que el comando para crear el certificado toma como parámetro de entrada el fichero de clave privada creada anteriormente. Podemos igualmente usar una clave privada cifrada; en este caso se nos pedirá la clave que cifra el fichero.

Vamos a convertir el certificado a formato binario DER creando un fichero con extension *.crt. Ahora pinchando en el fichero desde el entorno Windows podemos ver que ha sido creado correctamente.

También podemos crear un fichero con extension *.p12 que contenga el certificado de clave pública y la clave privada. Pinchando en el fichero obtenido desde el entorno windows se inicia un proceso de instalación del certificado. Éste se instalará en un almacén de certificado de usuario.

Por último podemos ver en formato texto el certificado construido.o ú t o pode os e e o ato te to e ce t cado co st u do

El certificado obtenido es un certificado autofirmado en el que el “emisor(Emitido por)” es igual que el “propietario (Enviado a)”.

(8)
(9)

Bases de Datos: Plataforma OpenSSL

Ahora nos vamos a crear un certificado de usuario pero firmado por una Autoridad de Certificación El certificado que nos hemos creado con anterioridad coincidían los Certificación. El certificado que nos hemos creado con anterioridad coincidían los campos emisor y propietario, es decir era un certificado autofirmado. Ahora nos vamos a crea un certificado emitido por la Autoridad de Certificación.

El proceso es el siguiente: En primer lugar generamos el par clave privada-pública. A continuación generamos una solicitud de firma, que en definitiva es un fichero con extensión *.csr. Este fichero lleva incorporado el certificado de usuario autofirmado con solicitud de ser firmado por una Autoridad de Certificación. Finalmente la Autoridad de Certificación tomando como parámetro su clave privada firmará el certificado.

Los campos que pondremos en el certificado de usuario son los siguientes: Country Name (2 letter code) [AU]:ES

State or Province Name (full name) [Some-State]:MA Locality Name (eg, city) []:BOA

Organization Name (eg, company) [Internet Widgits Pty Ltd]:FIM Organizational Unit Name (eg, section) []:UPM

Common Name (eg, YOUR name) []:alumno1seg( g, ) [] g Email Address []:[email protected]

Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:oooooo An optional company name []:oooooo

Si queremos utilizar este certificado para firmar y cifrar mensajes con una aplicación de correo electrónico (como p.e outlook) necesitamos que el campo “Email Address” este correctamente

ll d l di ió d d l i P i l i ti l t l il

rellenado a la dirección de correo del usuario. P.e si el usuario tiene la cuenta en el correo gmail el campo de “Email Address” deberá ser rellenado a “[email protected]”.

(10)

Bases de Datos: Plataforma OpenSSL

De forma similar a como hicimos con el certificado de la Autoridad de Certificación convertimos el certificado a formato binario DER (extensión *.cer) y también construimos el fichero *.p12 con el certificado de usuario y la clave privada protegidas por contraseña.

Pinchando en el fichero “usrCertificado.crt” se observa que efectivamente se trata de un certificado firmado ya que los campos “emisor (emitido por)” y “propietario (Enviado a)” son diferentes. El emisor del certificado es la Autoridad que firma, que en nuestro caso se la Autoridad de Certificación que nos hemos creado.

(11)
(12)

Bases de Datos: Plataforma OpenSSL

El mecanismo de firma digital es esencial para implementar servicios como el “no repudio”. Un usuario que firma un documento con una clave privada asociada a un certificado de clave publica (avalado por una Autoridad de Certificación reconocida) no puede negar haber firmado un documento.

El mecanismo de firma consiste en hacer un resumen de documento (aplicar una función hash) y cifrar el resultado con la clave privada del usuario:

ClavePrivada[Hash(documento)]= BloqueCifrado

El proceso de verificación de firma consiste en el proceso inverso: Se aplica la clave pública al BloqueCifrado anterior y se compara con el resumen del documento

ClavePública[BloqueCifrado] se compara con Hash(documento) Si el resultado de esta comparación es afirmativa se considera verificada la

(13)

Bases de Datos: Plataforma OpenSSL

Un documento también podría cifrase con la clave pública obteniendo un bloque cifrado. En este caso sólo el propietario de la clave privada par de la anterior podría descifrar ese bloque cifrado.

A diferencia del mecanismo de firma (cifrado con clave privada), el cifrado con clave pública lleva implícito el servicio de confidencialidad: Nadie puede acceder a los contenidos del bloque cifrado salvo el propietario de la clave privada.

Los algoritmos de la criptografía asimétrica son lentos. Están pensados para cifrar poca cantidad de información. El ejemplo más común es usarlos para cifrar las claves de sesión intercambias entre dos usuarios. El protocolo SSL lo hace así: en el mensaje “Intercambio_clave_cliente” se envía las claves de sesión cifradas con la clave pública del servidor extraída de su certificado.

En la figura se muestran los comando OpenSSL necesarios para cifrar con la clave pública un documento.

La clave pública también se puede extraer así: rsa -in cert_userp12.pem -out publica.pem -pubout

(14)

Bases de Datos: Plataforma OpenSSL

El entorno OpenSSL proporciona de manera estándar muchos algoritmos de cifrado simétrico, incluidas diferentes variantes de cada uno.

En la figura se muestra como cifra un documento de texto incluyendo la clave de cifrado en el comando.

La clave también se puede introducir por teclado: des -in documento.txt -out documento_cifrado_des

(15)

Bases de Datos: Plataforma OpenSSL

Se pueden utilizar otros algoritmos de cifrado :

OpenSSL> des3 -in documento.txt -out documento_cifrado_des3 -pass pass:clave

OpenSSL> des3 -d -in documento_cifrado_des3 -out documento_original_des3.txt -pass pass:clave

OpenSSL> aes-256 -ecb-in documento.txt -out documento_cifrado_aes -pass pass:clave

OpenSSL> aes-256-ecb -d -in documento_cifrado_aes -out documento_original_aes.txt -pass pass:clave

OpenSSL> rc4 -in documento.txt -out documento_cifrado_rc4 -pass pass:clave OpenSSL> rc4 d in documento_cifrado_rc4 out documento_original_rc4.txt -pass -pass:clave

OpenSSL> idea-ecb -in documento.txt -out documento_cifrado_idea -pass pass:clave

OpenSSL> idea-ecb -d -in documento_cifrado_idea -out documento_original_idea.txt -pass pass:clave

Referencias

Documento similar

En un congrés, convé disposar d’un pla o full de ruta per tal de garantir la igualtat d’accés de totes les persones, tant ponents com participants.. Comunicació : Tant si el

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

En conclusión, a partir de este acabado recorrido por las ideas centrales expuestas, el autor busca mostrar cómo para pensar en términos de la descolonialidad del poder es

Desde esa concepción, el Derecho es considerado como algo que puede ser completamente objetivado y observado sin ningún tipo de parti- cipación (puede ser casi «fotografiado»).

El quincenario de los frailes de Filipinas, condena para el Archipiélago los propósitos de nivelación jurídica que para todo territorio español, peninsular o ultramarino, se

Durante toda su disertación, el ponente asigna una gran importan- cia al tema de las relaciones triangulares entre China, Estados Unidos y Latinoamérica, pues es algo, dice, que

El mensaje, encriptado con la clave privada, y el certificado que contiene la clave pública, es enviado al receptor del texto, el cual, sólo podrá descencriptarlo utilizando la

Se trata de un software matem´ atico muy vers´ atil, basado en el c´ alculo con matrices para computaci´ on num´ erica, que ofrece un Entorno de Desarrollo Integrado (IDE) con