Logo Studenta

CAPITULO_9 SEGURIDAD EN INTERNET

¡Este material tiene más páginas!

Vista previa del material en texto

Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
1 
 
 
Podemos manipularte como queramos. 
Podemos leer y cambiar tus datos personales. 
Podemos tomar tu identidad. 
Podemos hacerte la vida imposible. 
Podemos estar a tu lado desde cualquier lugar del mundo. 
No puedes escapar. 
 
--[United Hacking Association]-- 
 
UNIDAD 9 
SEGURIDAD EN INTERNET 
 
 Internet es la interconexión de millones de equipos de todo el mundo. Comprende 
los sistemas y las conexiones que hacen posible que cualquier equipo que esté en Internet 
pueda comunicarse con cualquier otro equipo que también esté en Internet. Internet 
podría compararse con una red de carreteras y autopistas. Las superautopistas de 
Internet, conocidas como la "red troncal" de Internet, transportan grandes volúmenes de 
información a través de largas distancias. Dentro de la red troncal, se producen 
intercambios llamados puntos de acceso a la red (NAP, "network access points") e 
intercambios de áreas metropolitanas (MAE, "metropolitan area exchanges"). Hay 
autopistas regionales ofrecidas por los grandes Proveedores de servicios de Internet 
(ISP, "Internet service providers") y calles locales ofrecidas por los ISP locales. 
 Al igual que en una red de carreteras y autopistas, Internet ofrece varias 
trayectorias entre dos puntos. Si hay una zona de Internet que tiene mucho tráfico o que 
está dañada, la información se redirige. 
 
 
 
 Hoy en el mundo globalizado en que vivimos estamos acostumbrados a 
 Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
2 
 
intercambiar datos, enviar correo electrónico, adquirir productos, informarnos, etc., a 
través de la RED (“INTERNET”). 
 
 La cuestión que nos planteamos ahora es: ¿Qué seguridad tenemos que nadie 
intercepta, elimina e incluso altera nuestros datos?. 
 
Los riesgos habituales los identificamos como de: 
 
• Interrupción: un recurso del sistema es destruido o se vuelve no disponible. Este es 
un ataque contra la operatividad. Ejemplos de este ataque son la destrucción de un 
elemento hardware, como un disco duro, cortar una línea de comunicación o deshabilitar 
el sistema de gestión de archivos. 
 
• Intercepción: una entidad no autorizada consigue acceso a un recurso. Este es un 
ataque contra la confidencialidad. La entidad no autorizada podría ser una persona, un 
programa o una computadora. Ejemplos de este ataque son pinchar una línea para 
hacerse con datos que circulen por la red y la copia ilícita de archivos o programas 
(intercepción de datos), o bien la lectura de las cabeceras de paquetes para develar la 
identidad de uno o más de los usuarios implicados en la comunicación observada 
ilegalmente (intercepción de identidad). 
 
• Modificación: una entidad no autorizada no sólo consigue acceder a un recurso, 
sino que es capaz de manipularlo. Este es un ataque contra la integridad. Ejemplos de 
este ataque es el cambio de valores en un archivo de datos, alterar un programa para que 
funcione de forma diferente y modificar el contenido de mensajes que están siendo 
transferidos por la red. 
 
• Fabricación: una entidad no autorizada inserta objetos falsificados en el sistema. 
Este es un ataque contra la autenticidad. Ejemplos de este ataque son la inserción de 
mensajes espurios en una red o añadir registros a un archivo. 
 
 Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
3 
 
 
 Cuando navegamos o hacemos uso de los servicios de internet, o de una 
intranet o extranet, no establecemos un enlace directo entre nuestro equipo y el de 
destino. Por el contrario el flujo de datos por nosotros generados pasar por un número 
 Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
4 
 
no determinado de equipos, e incluso se archiva, a veces momentáneamente, en estos 
equipos; lo que implica un riesgo de seguridad. Si a “alguien” le interesa nuestra 
comunicación esta es la mejor oportunidad que tiene para tratar de acceder a ella. 
 Los equipos conectados a Internet están identificados por una dirección IP. Cada 
dirección IP está formada por 4 números comprendidos entre el 0 y el 255, como por 
ejemplo: 194.136.1.39. 
 Si utilizamos conexiones remotas (desde un módem) la dirección será distinta a la 
siguiente vez que nos conectemos: se trata de una dirección dinámica. En cambio, si 
tenemos una conexión permanente a Internet (desde la empresa, por ejemplo), nuestra 
dirección IP de salida puede ser siempre la misma. Esto es, una dirección estática. 
 
 
 Los equipos conectados a Internet habitualmente están esperando que otros 
equipos se conecten a ellos. Un servidor web, por ejemplo, está permanentemente a la 
espera de que un visitante le solicite una página web. Las escuchas se realizan desde los 
puertos. Dos pares de direcciones IP y puertos determinan una conexión (socket) en 
Internet. Los servidores web escuchan por el puerto 80; los de FTP, por el 21; los 
servidores de correo, por el 25. 
 Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
5 
 
 
 
 Las políticas de seguridad de cualquier equipo conectado a Internet comienzan por 
un escaneado de puertos, con objeto de determinar sus puertas de entrada. Únicamente 
deben estar abiertos los puertos que sean imprescindibles para el funcionamiento del 
servidor. - 
 
 Con el advenimiento de la era de la computación han surgido diversos 
apelativos que se emplean para designar a personas o grupos de ellas que se dedican a 
actividades ilícitas. Consideramos que existe confusión en los conceptos aplicados, ya que 
definitivamente existen diferencias entre ellos y es nuestra intención detallar sus 
verdaderos significados. 
 Con el devenir de los años, los medios de difusión periodísticos, influenciados por 
las transnacionales de software, adoptaron el nombre de "hacker" para calificar a toda 
persona involucrada en actos que atentan en contra la propiedad intelectual, seguridad 
en las redes, autores de virus, intrusos de servidores, interceptadores de mensaje de 
correo, vándalos del ciberespacio, etc. 
 
PIRATAS INFORMÁTICOS 
 
 Aunque la palabra pirata es evocativamente romántica, este apelativo es atribuido 
a las personas que hacen uso del software creado por terceros, a través de copias 
obtenidas ilegalmente, vale decir, sin permiso o licencia del autor. Al software no original 
se le denomina "copia pirata", pero en términos reales y crudos debería llamarse un 
software robado. 
 
 La palabra pirata, asociada al uso ilegal del software, fue nombrada por primera 
vez por William Gates en 1976, en su "Carta abierta a los Hobistas" mediante la cual 
expresó su protesta debido a que muchos usuarios de computadoras estaban haciendo 
uso de un software desarrollado por él, sin su autorización. 
 
 En todo el mundo el uso del software ilegal está sujeto a sanciones y penalidades, 
 Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
6 
 
que se agravan cuando el pirata se convierte en un comercializador de software copiado 
ilegalmente para lucrar en beneficio propio. En el Perú la pena por este delito varía de 1 
a 4 años de prisión condicional para los usuarios finales y con un máximo de 8 años de 
prisión efectiva para los comercializadores. 
 
HACKER 
 
 Hacker es una expresión idiomática inglesa cuya traducción literal al español tiene 
varios significados, siendo el más popular el atribuido a "una persona contratada para 
un trabajo rutinario" y que por la naturaleza del mismo su trabajo es tedioso, entregado, 
hasta se podría maniático. 
 
 El apelativo de hacker se crea a fines del siglo pasado cuando los Estados Unidos de 
América empiezaa recibir un masivo movimiento migratorio de personas de todos los 
países del mundo que esperaban encontrar en el "país de las oportunidades" un 
bienestar económico y progreso. 
 
 Los hackers eran estibadores informales que se pasaban todos el día bajando las 
maletas y bultos de las personas y familias completas que llegaban en los barcos a los 
puertos de New York, Boston, San Francisco, etc. Estos trabajadores eran infatigables, 
pues trabajaban muchas veces sin descansar y hasta dormían y comían entre los bultos 
de los muelles con el objeto de no perderse una oportunidad de ganar dinero. La palabra 
"hack" en inglés tiene varios significados en español, entre ellos "hacha". Como si fuesen 
taladores de árboles que usan su hacha, en forma infatigable hasta llegar a tumbarlos, su 
tesonero propósito les mereció este apelativo. 
 
 La palabra hacker aplicada en la computación se refiere a las personas que se 
dedican a una tarea de investigación o desarrollo realizando esfuerzos más allá de los 
normales y convencionales, anteponiéndole un apasionamiento que supera su normal 
energía. El hacker es alguien que se apasiona por las computadoras y se dedica a ellas 
más allá de los límites. Los hackers tienen "un saludable sentido de curiosidad: prueban 
todas las cerraduras de las puertas para averiguar si están cerradas. No sueltan un 
sistema que están investigando hasta que los problemas que se le presenten queden 
resueltos". 
 
 "La revolución de la computación ha sido lograda gracias a los hackers", afirman 
categóricamente los famosos estudiosos e investigadores pioneros de los virus de 
computadoras Rob Rosenberg y Ross Greenberg. 
 
 Desde los inicios de la computación electromecánica a base de relés, bobinas y 
tubos de vidrio al vacío, las tareas de programación eran muy tediosas y el lenguaje de 
esos años era el críptico lenguaje de máquina y posteriormente se empleó el Assembler 
Pnemónico. En la fase inicial de las computadoras, no como las concebimos ahora, 
 Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
7 
 
hubieron hombres, mujeres, jóvenes y adultos entregados por entero a diversificadas 
tareas de investigación y experimentación, considerándose su trabajo, rutinario, 
sumamente perseverante y cuyos resultados sólo se han podido reconocer a través de los 
años. 
 
 Una mujer, la almirante de la armada norteamericana Grace Hooper es 
considerada el primer hacker de la era de la computación. Mientras ella trabajaba e 
investigaba en la computadora Mark I, durante la Segunda Guerra Mundial, fue la 
primera persona que aseguró que las computadoras no solamente servían para fines 
bélicos, sino que además podrían ser muy útiles para diversos usos a favor de la 
humanidad. Ella creó un lenguaje de programación denominado FlowMatic y años 
después inventó nada menos que el famoso lenguaje COBOL. 
 
 Desde hace algún tiempo el FBI de los Estados Unidos emplea el software 
"Carnivore" que espía a los usuarios de Internet y recientemente el Senado 
norteamericano le concedió la facultad de utilizarlo sin autorización judicial. 
 http://www.wired.com/news/politics/0,1283,46852,00.html 
 Cabe la pregunta: Quién "hackea" a quién? 
 
CRACKER 
 
 Es aquella persona que haciendo gala de grandes conocimientos sobre computación 
y con un obcecado propósito de luchar en contra de lo que le está prohibido, empieza a 
investigar la forma de bloquear protecciones hasta lograr su objetivo. Los crackers 
modernos usan programas propios o muchos de los que se distribuyen gratuitamente en 
cientos de páginas web en Internet, tales como rutinas desbloqueadoras de claves de 
acceso o generadores de números para que en forma aleatoria y ejecutados 
automáticamente pueden lograr vulnerar claves de accesos de los sistemas. 
 
 Obviamente que antes que llegar a ser un cracker se debe ser un buen hacker. 
Asimismo se debe mencionar que no todos los hackers se convierten en crackers. 
 
ATAQUES 
 Los usuarios que comienzan a trabajar con sistemas operativos de servidor 
(Windows 2000 o Linux) descuidan habitualmente la regla mencionada anteriormente y 
resultan un blanco fácil para ataques de denegación de servicios (DoS). Algunos puertos 
deben ser cerrados en prácticamente todas las situaciones. Entre ellos se encuentran: 
echo (7), discard (9), systat (11), daytime (13), netstat (15), chargen (19), bootp (67), tftp 
(69), finger (79), pop-2 (109) y uucp (117). Y, en general, deben ser cerrados aquellos 
puertos que no sean imprescindibles como por ejemplo el puerto http (80), si nuestra 
máquina no es un servidor web. De esta forma evitaremos que un hacker se introduzca en 
 Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
8 
 
nuestro ordenador utilizando algún agujero de seguridad conocido (asociado a algún 
servicio o puerto concreto) y obtenga informaciones valiosas. 
Un escaneado de puertos informa sobre la presencia de troyanos 
 Aquellos sistemas que no actúen como servidores pero tengan puertos "a la 
escucha" pueden haber sido víctimas de troyanos. Estos programas instalan, sin 
conocimiento del usuario, un módulo servidor que envía contraseñas y otros datos de 
interés al atacante, abriendo un puerto en el ordenador de la víctima. Desde Online 
Scanner se puede realizar un escaneado de puertos para determinar tanto la presencia de 
programas maliciosos (troyanos), como la de potenciales agujeros de seguridad (puertos 
abiertos de servicios que no se utilizan). Los puertos que nos deben preocupar son 
aquellos marcados como abiertos (open). El escáner también indica si los puertos están 
protegidos por cortafuegos (firewalled o stealthed), o no (unstealthed). Los estados 
firewalled o stealthed son preferibles al estado closed, debido a que no devuelven 
respuesta al que ha intentado hacer la conexión, sin embargo sólo se pueden obtener 
mediante un cortafuegos. Otros análisis adicionales pueden realizarse desde los sitios web 
de GRC, Secure-Me, Virtual Suicide o HackerWhacker. 
 
 Windows 2000 Professional con los puertos HTTP, SMTP, y FTP abiertos 
 Por otro lado, si se tiene instalado un sistema operativo de servidor (Windows 2000 
o Linux o cualquier otro) deberá cerrar aquellos puertos que no utilice. Como ejemplo 
podemos decir que desde Windows 2000 hay que entrar a Panel de Control / 
Herramientas Administrativas / Servicios y detener todos los servicios innecesarios (por 
ejemplo, Servicios simples de TCP/IP, que engloba al generador de caracteres, hora, 
desechar, eco y cita del día); en Linux, los servicios telnet, FTP, finger y algunos otros se 
 Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
9 
 
gestionan desde el archivo /etc/inetd.conf. También es posible detener demonios 
temporalmente mediante comandos del estilo de /etc/rc.d/init.d/httpd stop. 
 Algunos sitios web disponen de herramientas online que comprueban la seguridad 
de nuestro equipo. Uno de ellos es Quick Inspector for the web, que analiza los 
principales puntos débiles de nuestro Windows NT o 2000, clasificando cada uno de ellos 
como: alto riesgo, posible riesgo, alta seguridad, información o incapaz de analizar, según 
la protección que hayamos incorporado. 
 
 Quick Inspector comprueba sistemas Windows NT y 2000 
WebTrends Network dispone también de una herramienta para verificar puntos débiles 
en los sistemas. Sin embargo, requiere la descarga e instalación de un programa gratuito. 
Pruebas 'online' de seguridad: Las páginas web pueden contener códigos maliciosos en 
forma de controles ActiveX, scripts de Visual Basic o applets de Java. En Sandbox 
Security se encuentran varios análisis para poner a prueba nuestra configuración. Estos 
test pueden llegar a bloquear nuestro ordenador o producir pérdida dedatos, por lo que 
hay que ejecutarlos con precaución. Algunas pruebas consiguen que el sistema se quede 
sin recursos, agotando toda su memoria o sobrecargando el procesador. 
 Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
10 
 
 
 Applet de Java malicioso que abre 1000 ventanas 
 Virtual Suicide es una demostración de algunos agujeros de seguridad conocidos. 
Las pruebas que contiene pueden producir cuelgues o pérdida de datos en el equipo que 
se ejecutan (o en el proxy, si estamos conectados a través de una red). El usuario asume la 
responsabilidad de sus acciones si ejecuta estas demostraciones. En WinNuke podemos 
solicitar un ataque de denegación de servicios contra nuestra propia máquina. Si nuestro 
ordenador está conectado a una red, la máquina que sufrirá el ataque será el firewall o 
proxy de salida a Internet, por lo que estaríamos hackeando nuestra propia red. Este tipo 
de pruebas deben ser realizadas únicamente en máquinas privadas y a través de 
conexiones por módem o similares. 
Protocolos Secure Socket Layer.- 
 Toda transacción segura por la red debe contemplar los aspectos de Autenticidad, 
Integridad, Confidencialidad y No Repudio. Son varios los sistemas y tecnologías que se 
han desarrollado para intentar implementar estos aspectos en las transacciones 
electrónicas, siendo sin duda SSL el más conocido y usado en la actualidad. SSL permite 
la Confidencialidad y la Autentificación en las transacciones por Internet, siendo usado 
principalmente en aquellas transacciones en la que se intercambian datos sensibles, como 
números de tarjetas de crédito o contraseñas de acceso a sistemas privados. SSL es una 
de las formas base para la implementación de soluciones PKI (Infraestructuras de Clave 
Pública). 
 Secure Socket Layer es un sistema de protocolos de carácter general diseñado en 
1994 por la empresa Nestcape Communcations Corporation, y está basado en la 
aplicación conjunta de Criptografía Simétrica, Criptografía Asimétrica (de llave 
pública), certificados digitales y firmas digitales para conseguir un canal o medio seguro 
de comunicación a través de Internet. De los sistemas criptográficos simétricos, motor 
principal de la encriptación de datos transferidos en la comunicación, se aprovecha la 
rapidez de operación, mientras que los sistemas asimétricos se usan para el intercambio 
 Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
11 
 
seguro de las claves simétricas, consiguiendo con ello resolver el problema de la 
Confidencialidad en la transmisión de datos. 
 SSL implementa un protocolo de negociación para establecer una comunicación 
segura a nivel de socket (nombre de máquina más puerto), de forma transparente al 
usuario y a las aplicaciones que lo usan. 
 Actualmente es el estándar de comunicación segura en los navegadores web más 
importantes (protocolo HTTP), como Nestcape Navigator e Internet Explorer. La 
identidad del servidor web seguro (y a veces también del usuario cliente) se consigue 
mediante el Certificado Digital correspondiente, del que se comprueba su validez antes 
de iniciar el intercambio de datos sensibles (Autenticación), mientras que de la seguridad 
de Integridad de los datos intercambiados se encarga la Firma Digital mediante 
funciones hash y la comprobación de resúmenes de todos los datos enviados y recibidos. 
Desde el punto de vista de su implementación en los modelos de referencia OSI y TCP/IP, 
SSL se introduce como una especie de nivel o capa adicional, situada entre la capa de 
Aplicación y la capa de Transporte, sustituyendo los sockets del sistema operativo, lo que 
hace que sea independiente de la aplicación que lo utilice, y se implementa generalmente 
en el puerto 443. 
 
 SSL proporciona servicios de seguridad a la pila de protocolos, encriptando los 
datos salientes de la capa de Aplicación antes de que estos sean segmentados en la capa 
de Transporte y encapsulados y enviados por las capas inferiores. Es más, también puede 
aplicar algoritmos de compresión a los datos a enviar y fragmentar los bloques de 
tamaño mayor a 2
14
 bytes, volviéndolos a reensamblarlos en el receptor. 
 SSL proporciona cifrado de alto nivel de los datos intercambiados (se cifran 
incluso las cabeceras HTTP), autenticación del servidor (y si es necesario también del 
cliente) e integridad de los datos recibidos. 
 Durante el proceso de comunicación segura SSL existen dos estados 
fundamentales, el estado de sesión y el estado de conexión. A cada sesión se le asigna un 
número identificador arbitrario, elegido por el servidor, un método de compresión de 
datos, una serie de algoritmos de encriptación y funciones hash, una clave secreta 
maestra de 48 bytes y un flag de nuevas conexiones, que indica si desde la sesión actual se 
pueden establecer nuevas conexiones. Cada conexión incluye un número secreto para el 
 Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
12 
 
cliente y otro para el servidor, usados para calcular los MAC de sus mensajes, una clave 
secreta de encriptación particular para el cliente y otra para el servidor, unos vectores 
iniciales en el caso de cifrado de datos en bloque y unos números de secuencia asociados a 
cada mensaje. 
¿Cómo podemos saber si una conexión se está realizando mediante SSL?. Generalmente 
los navegadores disponen de un icono que lo indica, generalmente un candado en la parte 
inferior de la ventana. Si el candado está abierto se trata de una conexión normal, y si 
está cerrado de una conexión segura. Si hacemos deble click sobre el candado cerrado 
nos aparecerá el Certificado Digital del servidor web seguro. 
 
 Además, las páginas que proceden de un servidor SSL vienen implementadas 
mediante protocolo HTTP seguro, por lo que su dirección, que veremos en la barra de 
direcciones del navegador, empezará siempre por https, como por ejemplo: 
 https://www.htmlweb.net 
 Y cuando estamos en una conexión segura podemos ver el certificado del servidor 
acudiendo al menú "Archivo" del navegador y pinchando en "Propiedades". En la parte 
inferior tenemos una opción "Certificados", que nos mostrará el del servidor actual. 
 Para establecer una comunicación SSL es necesario que previamente el cliente y el 
servidor realicen un proceso de reconocimiento mutuo y de petición de conexión que, al 
igual que en otros tipos de comunicaciones, recibe el nombre de apretón de manos o 
Handshake, que en este caso está controlado por el Potocolo SSL Handshake, que se 
encarga de establecer, mantener y finalizar las conexiones SSL. Durante el mismo se 
negocian los parámetros generales de la sesión y los particulares de cada conexión. 
 Concretamente, y de forma general, el protocolo comienza con el saludo del cliente 
al servidor, conocido como Client Hello, por el que se informa al servidor de que se desea 
establecer una comunicación segura con él. SSL soporta solicitudes de conexión por 
puertos diferentes al utilizado normalmente para este servicio. Junto con este saludo 
inicial, el cliente envía al servidor información de la versión de SSL que tiene 
implementada, de los algoritmos de encriptación que soporta, las longitudes de clave 
máximas que admite para cada uno de ellos y las funciones hash que puede utilizar. 
También se le solicita al servidor el envío de su Certificado Digital X.509 v3, con objeto 
de verificar el cliente la identidad del mismo y recoger su clave pública. En este momento 
se asigna un identificador a la sesión y se hace constar la hora y fecha de la misma. 
 Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
13 
 
 Como medida adicional, el cliente envía asimismo una clave numérica aleatoria, 
para que se pueda establecer una comunicaciónsegura mediante otros protocolos o 
algoritmos en el caso de que el servidor web no posea un Certificado Digital. 
 En este paso no se intercambia en ningún momento información sensible, tan sólo 
información necesaria para establecer la comunicación segura. 
 A continuación, el servidor SSL responde al cliente en el proceso que se conoce con 
el nombre de Server Hello, enviándole su Certificado Digital (con su llave pública) e 
informándole de su versión de SSL, de los algoritmos y longitudes de clave que soporta. 
 Generalmente se obtiene el conjunto de algoritmos, longitudes de clave y funciones 
hash soportados por ambos, eligiéndose entonces los más fuertes. Si no hay acuerdo con 
los algoritmos a usar se envía un mensaje de error. 
 A veces, y si la comunicación posterior así lo exige, el servidor solicita al cliente su 
Certificado Digital, en el mensaje llamado CertificateRequest. Esto sólo suele ocurrir en 
SSL cuando los datos a transferir sean especialmente sensibles y precisen la previa 
autenticación del cliente. Si es el caso, el cliente debe contestar al servidor mediante el 
mensaje CertificateVerify, enviándole entonces su certificado. 
 En este momento el cliente verifica la validez del Certificado Digital del servidor, 
desencriptando el resumen del mismo y comprobando su corrección, verificando que ha 
sido emitido por una Autoridad Certificadora de confianza, que esté correctamente 
firmado por ella y que el certificado no esté revocado. También se comprueba que la 
fecha actual está dentro del rango de fechas válidas para el certificado y que el dominio 
(URL) que aparece en el certificado se corresponde con el que se está intentando 
establecer la comunicación segura. Si alguna de estas validaciones falla, el navegador 
cliente rechazará la comunicación, dándola por finalizada e informando al usuario del 
motivo del rechazo. 
 En caso de que el servidor no tenga un Certificado X.509 v3 se puede utilizar un 
mensaje ServerKeyExchange para enviar la clave pública sin certificado, en cuyo caso 
queda en manos del cliente la elección de si acepta la llave o no, lo que finalizaría el 
proceso. 
 Como medida adicional de seguridad, el cliente genera una clave aleatoria 
temporal y se la envía al servidor, que debe devolvérsela cifrada con su clave privada. El 
cliente la descifra con la llave pública y comprueba la coincidencia, con lo que está 
totalmente seguro de que el servidor es quién dice ser. Y un proceso análogo a éste, pero 
en sentido inverso, se requiere si es necesaria la autenticación del usuario ante el 
servidor. 
 Si todo está correcto el cliente genera un número aleatorio que va a servir para 
calcular una clave de sesión correspondiente al algoritmo de encriptación simétrico 
negociado antes, conocida con el nombre de clave maestra, que es enviada al servidor de 
 Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
14 
 
forma segura encriptándola asimétricamente con la llave pública del mismo que aparece 
en el Certificado Digital. Esta clave maestra se usará para generar todas las claves y 
números secretos utilizados en SSL. 
 Con esto servidor y cliente se han identificado y tienen en su poder todos los 
componentes necesarios para empezar a transmitir información cifrada simétricamente. 
 Se pasa entonces el control al subprotocolo Change Cipher Spec (ver más abajo), 
iniciándose la conexión segura. 
 Así y todo, para que empiecen las transmisiones de datos protegidos se requiere 
otra verificación previa, denominada Finished, consistente en que cliente y servidor se 
envían uno al otro una copia de todas las transacciones llevadas a cabo hasta el momento, 
encriptándola con la llave simétrica común. Al recibir esta copia, cada host la desencripta 
y la compara con el registro propio de las transacciones. Si las transacciones de los dos 
host coinciden significa que los datos enviados y recibidos durante todo el proceso no han 
sido modificados por un tercero. Se termina entonces la fase Handshake. 
 Para empezar a transmitir datos cifrados en necesario que cliente y servidor se 
pongan de acuerdo respecto a la forma común de encapsular los datos que se van a 
intercambiar, es decir, qué formato de datos se va a usar en la transmisión cifrada. Esto 
se realiza mediante el Protocolo SSL Record (Protocolo de Registro SSL), que establece 
tres componentes para la porción de datos del protocolo: 
 1. MAC-DATA: código de autenticación del mensaje. 
 2. ACTUAL-DATA: datos de aplicación a transmitir. 
 3. PADDING-DATA: datos requeridos para rellenar el mensaje cuando se usa un 
sistema de cifrado en bloque. 
 El Protocolo de Registro es el encargado de la seguridad en el intercambio los datos 
que le llegan desde las aplicaciones superiores, usando para ello los parámetros de 
encriptación y resumen negociados previamente mediante el protocolo SSL Handshake. 
Sus principales misiones son: 
 
- La fragmentación de los mensajes mayores de 2
14
 bytes en bloques más pequeños. 
- La compresión de los bloques obtenidos mediante el algoritmo de compresión negociado 
anteriormente. 
 Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
15 
 
- La autenticación y la integridad de los datos recibidos mediante el resumen de cada 
mensaje recibido concatenado con un número de de secuencia y un número secreto 
establecidos en el estado de conexión. El resultado de esta concatenación se denomina 
MAC, y se añade al mensaje. Con esta base, la autenticación se comprueba mediante el 
número secreto, compartido por el cliente y el servidor, y mediante el número de 
secuencia, que viaja siempre encriptado. La integridad se comprueba mediante la 
función hash negociada. 
 
- La confidencialidad se asegura encriptando los bloques y sus resúmenes mediante el 
algoritmo simétrico y la clave correspondiente negociadas en la fase Handshake. Existen 
dos tipos posibles de encriptación: 
 a. Cifrado en bloque: se cifran los datos en bloques de 64 bits. Si el mensaje no es 
múltiplo de 64 bits se le añaden los bits de relleno necesarios para obtener un número 
entero de bloques completos, indicándose la adición en el formato del mensaje. Este 
método de cifrado se conoce con el nombre de Cipher Block Chainning, CBC, y precisa 
un vector inicial, que habrá sido negociado previamente en la fase Handshake. Como 
algoritmos de cifrado se usan RC2 y DES. 
 b. Cifrado Stream: o de flujo, en el que se encriptan los datos realizando una operación 
lógica OR-Exclusiva entre los bytes y un generador pseudoaleatorio usando el algoritmo 
RC4. 
 Tras todos estos requisitos, el canal seguro está listo para empezar la transmisión 
de datos de forma segura. Cuando el cliente o el servidor desean transmitir algún 
mensaje al otro se genera automáticamente un resumen del mismo mediante la función 
has acordada, se encriptan mensaje y resumen con la clave simétrica acordada y se 
envían los datos. Cuando el destinatario los recibe, desencripta todo, vuelve a obtener el 
resumen a partir del original y lo compara con el recibido. Si coinciden hay seguridad de 
que la comunicación segura se ha producido satisfactoriamente, sin intromisiones 
externas. Si no coinciden, se pone en conocimiento del otro host, y si es preciso se 
suspende la conexión SSL. Cada uno de los mensajes enviados por cliente o servidor 
sufre este proceso de verificación. 
 Seguridad Informática Ing. Ricardo Corbella - Ing. José Zakhour 
 
16 
 
 Por último, cuando la transferencia de mensajes ha finalizado y se desea cerrar la 
comunicación segura, generalmente porque el cliente así lo desea, la aplicación cliente (el 
navegador web, p.e.) lanza una ventana de aviso de que se va a cerrar la comunicación 
SSL, y si es aceptada por el usuario, se sale de lamisma y se regresa a una comunicación 
normal, finalizando el proceso SSL. 
 SSL actúa computacionalmente como una máquina de estados: durante el 
intercambio de datos hay en todo momento un estado de escritura activo y otro pendiente 
y lo mismo ocurre respecto a la lectura de datos, realizándose el cambio de estados 
mediante un subprotocolo especial del Handshake denominado Change Cipher Spec. 
 SSL Handshake posee además otro subprotocolo específico, denominado Alerta, 
que se encarga de avisar de los problemas que ocurren durante la conexión, y que 
pueden llevar a la finalización brusca de la sesión.

Continuar navegando