Descarga la aplicación para disfrutar aún más
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.
Compartir