You are on page 1of 35

SSL (Secure Sockets Layer)

Las condiciones que se debe cumplir una comunicación de Internet


para considerarse segura son:

• Confidencialidad --> se consigue con la Criptografía

• Autenticidad --> se consigue mediante el uso de firmas digitales y


certificados.

• Integridad --> se consigue con la combinación de criptografía,


función hash y firmas digitales.

• No repudio --> se consigue mediante los certificados y las firmas


digitales.

Esta seguridad la podemos conseguir con el equipo de Criptografía,


firmas digitales y certificados y estos de se combinan en diferentes
tecnologías.

CERTIFICADOS DIGITALES:
Es un documento electrónico que contienen datos que identifican a
una persona o entidad y la llave pública, el certificado se hace
responsable de la autenticación de los datos. Las principales
Autoridades Certificadoras en la actualidad son Verisign y
thawter.
El formato de los certificados es estándar, siendo X.5009 v3 el
recomendado por la Unión Internacional de Comunicaciones (ITU).
Los datos que figuran generalmente en un certificado son:

1. Versión: especifica la versión del estándar X.5009 que


generalmente es la 3 por la que es la más actual.
2. Numero de serio: numero identificador del certificado.
3. Algoritmo de firma: algoritmo criptográfico que se utiliza en la
firma
4. Autoridad Certificadora: datos sobre la autoridad que expide el
certificado.
5. Fecha de inicio y fin de validez del certificado.
6. Propietario: persona o entidad vinculada, en esta se utiliza una
serie de abreviaturas para establece datos de identidad: (CN -
nombre común de usuario; OU -unidad organizativa; O -
organización; L -cuidad; S -estado (provincia); C -país; E - correo
electrónico; UID -ID del usuario)
7. Llave pública: de persona o entidad vinculada.
8. Algoritmo que se utiliza para obtener la firma digital de la
Autoridad Certificadora.
9. Firma de la AC
10.Información adicional.

Mediante la consulta de a una Lista de Certificados Revocados y un


recibo de una Autoridad de Oficialía de partes el usuario dispone
de prueba suficientes para considerar las transacciones. Un
firmado digitalmente por una persona o entidad de confianza
llamada Autoridad de Oficialía de Partes, que añade las fechas
actuales a los documentos que recibe para su certificación,
firmando luego con su llave privada.
Existen diferentes tipos de certificados de los cuales depende el
precio y las medidas de comprobación de datos:

• Certificados según la comprobación de datos que realiza, se


dividen en 4:
1. Certificados de clase 1: son muy fáciles de obtener pero con pocas
verificaciones de datos (solo el nombre y el correo)
2. Certificado de clase 2: la AC comprueba el permiso de conducir,
el número de
seguridad social y la fecha de nacimiento.
3. Certificado de clase 3: se le añaden a las comprobaciones de las
clase 2 la verificación de crédito de la persona o empresa mediante
un servicio.
4. Certificado de clase 4: todas la comprobaciones anteriores se le
suma la verificación del cargo de una persona dentro de una
organización (esta en estudio).
• Y desde la finalidad se divide en 5:
1. Certificado SSL para cliente: identificar y autenticar cliente en
servidores en comunicaciones mediante el protocolo SSL (Security
Socket Layer). se expide a una persona en particular.
2. Certificado SSL para servidores: identifica un servidor ante un
cliente en una comunicación SSL y se le expide generalmente al
nombre de la empresa propietaria del servidor. La presencia del
esta certificado es condición imprencendible para establecer
comunicaciones SSL.
3. Certificado S/MIME: para servicios de correo firmado y cifrado.
4. Certificado de firma de objeto: identifica el autor de fichero o
porciones de códigos en cualquier lenguaje de programación que
se deba ejecutar en red.
5. Certificado de AC: identifica las propias AC y es usada por el
software del cliente para ver
si puede confiar en un certificado cualquiera.

SECURITY SOCKET LAYER:


Permite la confidencialidad y la autentificación en transacciones de
Internet, se utiliza especialmente en las transacciones de datos
sensibles, es una de las formas base para la implementación de
soluciones PKI.
Es un sistema de protocolos de carácter general diseñado en 1994
por la empresa Nestcape Comunications Corporation, esta basado
en las aplicaciones de Criptografía simétrica utiliza su velocidad,
Criptografía asimétrica utiliza para el cambio seguro de llaves
simétricas, Certificados digitales realiza la autentificación y Firmas
digitales para la integridad de los datos y así obtener su seguridad.
Su implementación en los modelos OSI y TCP/IP el SSL se introduce
como una capa adicional situada entre la capa de APLICACIÓN y
de TRANSPORTE, lo que hace que sea independiente de la
aplicación que utilice y se implementa en el puerto 443 (los
puertos son las interfaces que hay entre las aplicaciones y la pila
del protocolo TCP/IP del sistema operativo). SSL encripta los datos
salientes de la capa de aplicación antes de ser enviados desde la
capa de transporte. Para diferenciar una zona del servidor SSL, Se
utiliza el demonio HTTPS que trabaja por el puerto 443.

La versión mas actualizada es la 3.0 que utiliza los algoritmos


simétricos DES, TRIPLE DES, RC2, RC4, IDEA, el asimétrico RSA la
función hash MD5 y el algoritmo de firma SHA-1.
Los algoritmos, longitudes de claves y funciones hash usadas en el
SSH depende del nivel de seguridad que se desea, los más
habituales son:

• RSA + Triple DES 168 bits + SHA-1: soporta versiones 2.0 y 3.0 es
el mas fuerte en cuanto a la seguridad , ya que es posible 3.7 *
1050 claves simétricas, por lo que es muy difícil de romper, solo se
utiliza en Estados Unidos aplicándolas sobre las transacciones
bancarias especialmente.

• RSA + RC4 de 128 bit +MD5: versione 2.0 y 3.0 permite 3.4 * 10 38
es mas lento que el anterior maneja una seguridad similar, solo se
permite usar en Estados Unidos para el comercio, auque es posible
implementarlo en los navegadores comunes.

• RSA + DES de 56 bits + SHA-1: versiones 2.0 y 3.0 sistema menos


seguro que los anteriores permitiendo 7.2. * 1018 es el que trae los
navegadores Web por defecto ( 48 bits para la clave y 8 para la
comprobación de errores)

• RSA + RC4 de 40 bits + MD5: versione 2.0 y 3.0 sistema mas


común exportado de Estados Unidos, permite 1.1 * 1012 clave
simétricas y una velocidad de proceso muy elevada pero su
seguridad no es muy buena por los actuales métodos de
Criptogranalisis

• RSA + RC2 de 40 bits + MD5: es todo análogo al sistema anterior,


aunque con una velocidad bastante inferior.

• Solo MD5: es usado solo para autenticar mensajes y para descubrir


ataque a este mismo. se usa cuando no se implementa SSLS y
soporta la versión 3.0.

FUNCIONES DEL SSL:


• FRAGMENTACION: El emisor fragmenta los bloques mayores que
214 octetos y el receptor los ensambla de nuevo.
• COMPRENSION: Puede aplicar un algoritmo de compresión a los
mensajes
• AUTENTIFICACION: Permite autenticar el cliente y el servidor
mediante certificados. Durante la transmisión los mensajes
autentifican al emisor mediante un resumen con clave, llamado
MAC, este proceso se conoce como HANDSHAKE.
• INTEGRIDAD: Se protege la integridad mediante el MAC.
• CONFIDENCIALIDAD: Todos los mensajes son enviado cifrados.

El protocolo SSL se divide en dos capas complementarias

PROTOCOLO HANDSHAKE
Permite al autenticación de los usuarios y servidor; selección de
los parámetros de conexión y sesión y establece conexión segura.
Permite intercambiar una serie de mensajes para negociar la
seguridad entre el cliente y servidor, así:

• FASE 1: Selección del conjunto de algoritmos para mantener la


confidencialidad y la autenticidad.
• FASE 2: Intercambio de claves.
• FASE 3: Creación de las claves de sesión.
• FASE 4: Verificación del servidor.
• FASE 5: Autenticación del cliente.
• FASE 6: Indicación del inicio de la sesión segura
PROTOCOLO DE REGISTRO (RECORD PROTOCOL): utilizado
para el cifrado de los protocolos de las capas más altas (handshake
y aplicaciones)

En el CHAGE CYPER SPEC que es un subprotocolo de Handshake,


que como podemos saber el SSL durante intercambio de
información siempre hay un estado de escritura activo y otro
pendiente y un estado de lectura activo y otro pendiente, este
subprotocolo se utiliza para cambiar del estado activo al
pendiente.

Durante una comunicación con SSL, se puede abrir varias sesiones


y dentro de cada una de estas sesiones se puede abrir otras. El
manejo de la apertura o el cierre de las conexiones se hacen a
través del protocolo handshake. Existen dos estados estado de
sesión y estado de conexión.

ESTADO DE SESION

• IDENTIFICADOR DE SESION: Es un numero arbitrario elegido por


el servidor para identificar la sesión.
• CERTIFICADO: Es el certificado X509v3 del otro
• METODO DE COMPRESION: Es el algoritmo de compresión
• ALGORITMO DE CIFRADO: Especifica el algoritmo simétrico de
cifrado para la confidencialidad y para la integridad el resumen de
la función Hash.
• CLAVE MAESTRA: Es una llave aleatoria de 48 bits secreta entre
el servidor y el cliente que permite la conexión, por cada sesión es
una llave diferente.
• FLAG DE NUEVAS CONEXIONES: Indica si desde esta sesión se
puede iniciar nuevas sesiones.
ESTADO DE CONEXIÓN

• NUMERO ALEATORIO DEL SERVIDOR Y EL CLIENTE: Es el


numero de inicio de la secuencia elegidos por le cliente/servidor.
• NUMERO SECRETO DEL CLIENTE PARA MAC: Numero secreto
que utiliza el cliente par a calcular los MAC de sus mensajes.
• NUMERO SECRETO DEL SERVIDOR PARA MAC: Numero secreto
que utiliza el cliente para calcular los MAC de sus mensajes.
• CLAVE SECRETA DEL CLIENTE: Clave secreta para cifrar los
mensajes.
• CLAVE SECRETA DEL SERVIDOR: Clave secreta para cifrar los
mensajes.
• VECTORES INICIALES: Si se utiliza cifrado con modo CBC (Cipher
Bloack Chaining) se necesita un vector inicial para cada clave.
• NUMEROS DE SECUENCIA: Cada parte actualiza números de
secuencias en cada mensaje, estos son puestos en ceros cuando
se recibe un mensaje change cipher spec.

CONFIGURACION EN WINDOWS:
Ahora configuraremos SSL2 (autenticación solo entre servidores)
en Windows Server 2003.

Comencemos:

1. Lo primero que debemos de hacer es instalar y configurar el AD


(active directory) y con este instalar y configurar el DNS con sus
zonas directas e inversas. En mi caso todo lo montare en un solo
equipo llamado SEMPRON. El dominio que manejé es REDES.NET
con la dirección 192.168.0.141. En el DNS debemos de crear un
host para nuestro sitio web tanto en la zona inversa como en la
directa. Así o semejante debería de quedar nuestra DNS en la zona
directa:

Y así la inversa:
Lo probamos.

2. Ahora instalaremos el servidor web con y le configuraremos


nuestro sitio “WWW.REDES.NET” yo al mío para identificarlo lo
nombre SSL, mas este no influye en nuestro dominio de la web.
Además debemos de crear el archivo “INDEX.TXT” aquí
guardaremos o haremos el código HTML de nuestra pagina y que
este sea el primer o único archivo por defecto para nuestra pagina.
El sitio web podría ser semejante a la siguiente imagen
Con este terminamos de instalar los servicios necesarios para el
montaje de SSL.

3. Ahora instalamos la Autoridad Certificadora Raíz o CA.

• Inicio
• Panel de control
• Agregar o quitar programas
• Agregar o quitar componentes de Windows
• Servicio de Certificate Server.
Al dar clic en esta opción nos mostrara una advertencia a la cual
daremos que si.

4. ahora daremos en la opción “DETALLES” en esta nos mostrara los


servicios que soporto el Certificate Server, donde el primero nos
permite publicar paginas web desde nuestro servidor para enviar
peticiones y obtener certificados y segundo instala l CA. Las
chuleamos si no se encuentra así, aceptamos y “SIGUIENTE”
5. Como es nuestra CA raíz entonces escogeremos la primera opción.
6. Ahora nombraremos nuestra CA y asignaremos su duración.
7. En esta nos muestra lo directorios donde se almacenara la base de
datos del CA.

8. Nos saldrá una advertencia donde nos informan que se van a


detener los servicios ligados a la IIS, responderemos que si.
9. Y el sistema empezara el programa de instalación con la

configuración del sistema. Para esto es necesario tener el CD del


sistema operativo porque en este paso lo pedirá.

10.Nos saldrá otra advertencia donde nos informan que no tenemos


instalado el ASP para la visualización de las paginas web daremos
que si deseamos habilitarlo.

11.Y para terminar damos clic en finalizar


12.Para llevar acabo la gestión instalaremos un consola
administrativa.
• Inicio
• Ejecutar
• mmc

13.En la nueva ventana crearemos la plantilla de la CA de la


siguiente forma:
• Abrir
• Agregar o quitar complemento…
Nos abrirá una ventana y en esta damos la opción
“AGREGAR”
14. Ahora agregaremos el servidor web que es la consola que
vamos a administrar.

15.Cuando la agregamos nos dirigimos a


• Inicio
• Herramientas Administrativas
• Entidad Emisora de Certificados
16.Se abrirá la consola de administración de la CA donde nos
mostrara las múltiples funciones que cumple.
Las opciones que muestran son para el debido proceso de los
certificados.

PRUEBA:
Yo en este manual solo pondré la prueba local pero el procedimiento
de generar una petición para que otro CA la firme sea el mismo como
la voy a generar al igual que el procedimiento para firmar cualquier
otra solicitud.

Empecemos ¡¡¡¡¡

1. Para generar la petición a firmar primero vamos al


administrador de nuestro sitio web y damos clic
secundario sobre el sitio web que creamos y damos en
propiedades, en esta ventana damos clic en la pestaña
“SEGURIDAD DE DIRECTORIOS” y luego en la opción
“CERTIFICADO DEL SERVIDOR”
2. Siguiente

3. Y como vamos a crear un nuevo certificado escogeremos


la primera opción.
4. Ahora le daremos en la primera opción porque en la
segunda el proceso se hace automático y en ocasiones no
es muy recomendable porque necesitaremos el archivo de
la petición y si damos en esta opción dicho archivo no se
crea.

5. Ahora le daremos un nombre al certificado para


reconocerlo y la longitud en bits.
6. Los siguientes datos son lo que aparecen en el certificado
pero lo configuras a tu gusto.

7. En el nombre común debes de tener mucho cuidado


porque aquí solo se pone el dominio del sitio web, por lo
contrario no te funcionara el certificado.
8. Y te seguirá pidiendo más información requerida para el
certificado.

9. Especificamos la ruta y el nombre del la petición que


vamos a guardar.
10.Nos muestra un resumen de todos los datos ingresados y
los cuales saldrán tal cual en el certificado.

11.Y finalizamos.
12.Ahora damos en la opción “MODIFICAR”.

13.Y chuleamos las


• Requerir canal seguro (SSL)
• Requerir cifrado 128 bits
Listo ¡¡¡¡ ahora vamos a firma la petición:

1. Nos dirigimos a la consola administrativa donde tenemos


la CA y encima de esta damos clic secundario y luego en :
• Todas las tares
• Enviar solicitud nueva
2. Buscamos la ruta donde guardamos la solicitud creada
anteriormente y la abrimos.
3. Pero nos sale un error que no nos permite hacerlo por la
consola, entonces nos toco hacerlo por la web.

4. Vamos al navegador Explorer y digitamos la siguiente


dirección http://localhost/certsrv. Cuando cargue daremos
en la opción de “SOLICITAR UN CERTIFICADO”.
5. Ahora damos clic en solicitud avanzada de usuarios.
6. Seleccionamos la segunda opción.

7. Ahora buscamos la el archivo “CERTREQ.TXT”


seleccionamos su contenido …

… y lo copiamos el campo “GUARDAR SOLICITUD” y


damos en enviar.
8. Con lo anterior hemos terminado de firmar la solicitud
ahora nos presenta la opción de descargarlo con un
cifrado DER o Base64, en nuestro caso será DER. Y
descargamos el certificado.

9. Y lo guardamos la petición firmada.


Con la solicitud ya firmada por nuestra CA ahora procederemos a
exportar esta solicitud para su debido reconocimiento.

1. Abrimos el contenido del certificado firmado y daremos


clic en la opción de “COPIAR ARCHIVO”

2. Automáticamente se inicia el asistente para exportar el


certificado en la primera pantalla nos dan una pequeña
introducción del funcionamiento de este asistente,
daremos en “SIGUIENTE”.
3. En el siguiente paso nos mostrara los diferentes formatos
de archivos para la exportación del certificado.
Escogeremos la segunda opción porque es el que maneja
el estándar del SSL x509.

4. Lo guardamos donde lo deseemos y le damos el nombre


que queramos. Si observamos en el campo de “TIPO” esta
especificado el formato que elegimos anteriormente aquí
si lo deseas lo cambias.
5. Damos clic en finalizar y así terminamos con la
exportación del certificado.

El paso a seguir es importar este certificado en nuestro sitio web para


llevar a cabo el funcionamiento del SSL en nuestro equipo local.

1. No dirigimos a la consola administrativa de nuestro


servidor de aplicación daremos clic secundario sobre
nuestro sitio web y luego en :
• Propiedades
• Pestaña seguridad de directorios
• Opción certificado de servidor
2. Se iniciara el asistente de certificados del sitio web y damos
siguiente

3. Seleccionaremos la primera opción ya que esto es para la


importación de nuestro certificado y siguiente.
4. Buscamos el certificado firmado en pasos anteriores y le damos
abrir y siguiente.

5. Digitamos el puerto por donde escuchara el SSL el puerto por


defecto es el 443 ya depende de sus necesidades si desea
cambiar el puerto y siguiente.
6. En la siguiente ventana nos muestra un resumen de la
configuración llevada a cabo para el certificado.

7. Finalizar.
Con esto hemos llegado al final de la configuración y para comprobar
que todo está bien nos dirigimos al navegador y digitamos nuestro
dominio http://www.redes.net; al digitar la dirección el navegado nos
exige que pongamos el “HTTPS” para poder acceder al nuestra
paginas, entonces debemos de digitar nuestro dominio de la siguiente
manera https://www.redes.net y la CA comenzara a verificar los tres
componentes básicos para la conexión los cuales son:
• Resolución del DNS.
• Que la CA sea de confianza.
• Fecha de valides.
Si su verificación de estos tres componentes se realiza con éxito
entonces nos mostrara el contenido de nuestro sitio web.

Y si observamos en la parte inferior derecha del navegados podemos


ver un candadito si damos doble clic en este nos mostrara la
información de nuestro certificado. Donde nos mostrara a quien fue
enviado y por quien fue firmado, la fecha de validez entre otras
informaciones.
NOTA: Así finalizo este manual, recordándoles que por cada sitio web
seria una solicitud firmada diferente y que esta solicitud puedes ser
de otros sistemas operativos.

You might also like