41
Seguridad de la Información Antología 23/08/2010 Universidad Tecnológica de Izúcar de Matamoros Mtro. Sergio Valero Orea

Seguridad de la Información - utim.edu.mxsvalero/docs/Antologia Seguridad de la Informacion... · Esto puede derivar en que para un atacante sea más fácil lograr tomar y copiar

Embed Size (px)

Citation preview

Seguridad de la Información Antología 23/08/2010 Universidad Tecnológica de Izúcar de Matamoros Mtro. Sergio Valero Orea

“Seguridad de la Información”

Contenido

Unidad I. Introducción a la seguridad de la información .................................................................... 3

1. Introducción a la seguridad de la información ....................................................................... 3

2. Políticas de seguridad ............................................................................................................. 6

3. Escenarios de ataques a redes ............................................................................................... 7

4. Código malicioso .................................................................................................................... 9

5. Principios matemáticos para criptografía .............................................................................. 9

6. Algoritmos de criptografía .................................................................................................... 13

7. Normatividad Nacional e Internacional de seguridad .......................................................... 16

Unidad II. Administración de la seguridad ........................................................................................ 20

1. Administración de claves públicas ....................................................................................... 20

2. Administración de riesgos y continuidad de actividades .................................................... 21

3. Prevención y recuperación de incidentes ............................................................................ 23

4. Protección de sistemas operativos ....................................................................................... 24

5. Protocolo SSL y SSL Handshake ............................................................................................ 24

Unidad III. Métodos de autenticación .............................................................................................. 27

1. Servicios AAA ........................................................................................................................ 27

2. Algoritmos de Hash MD5 y SHA-1 ........................................................................................ 29

3. Certificados digitales ........................................................................................................... 32

Unidad IV. Firewalls ........................................................................................................................... 36

1. Medidas de seguridad preventivas y correctivas aplicables a un firewall ........................... 37

2. Técnicas de implementación de Firewall ............................................................................. 39

Unidad I. Introducción a la seguridad de la información

Objetivo. El alumno implementará una política de seguridad para proteger la información de la

organización apoyándose en las normas aplicables.

1. Introducción a la seguridad de la información

La seguridad informática es la disciplina que ocupa de diseñar normas, procedimientos, métodos

y técnicas orientados a proveer condiciones seguras y confiables, para el procesamiento de datos

en sistemas informáticos. La decisión de aplicarlos es responsabilidad de cada usuario. La

consecuencia de no hacerlo, también.

En términos generales, la seguridad puede entenderse como aquellas reglas técnicas y/o

actividades destinadas a prevenir, proteger y resguardar lo que es considerado como susceptible

de robo, pérdida o daño, ya sea de manera personal, grupal o empresarial. En este sentido, es la

información el elemento principal a proteger, resguardar y recuperar dentro de las redes

empresariales.

Garantizar que los recursos informáticos de una compañía estén disponibles para cumplir sus

propósitos, es decir, que no estén dañados o alterados por circunstancias o factores externos, es

una definición útil para conocer lo que implica el concepto de seguridad informática.

La seguridad de la información es importante por la existencia de personas ajenas a la

información, también conocidas como piratas informáticos o hackers, que buscan tener acceso a

la red empresarial para modificar, sustraer o borrar datos.

Tales personajes pueden, incluso, formar parte del personal administrativo o de sistemas, de

cualquier compañía; de acuerdo con expertos en el área, más de 70 por ciento de las Violaciones e

intrusiones a los recursos informáticos se realiza por el personal interno, debido a que éste conoce

los procesos, metodologías y tiene acceso a la información sensible de su empresa, es decir, a

todos aquellos datos cuya pérdida puede afectar el buen funcionamiento de la organización.

Por vulnerabilidad entendemos la exposición latente a un riesgo. En el área de informática,

existen varios riesgos tales como: ataque de virus, códigos maliciosos, gusanos, caballos de troya y

hackers; no obstante, con la adopción de Internet como instrumento de comunicación y

colaboración, los riesgos han evolucionado y, ahora, las empresas deben enfrentar ataques de

negación de servicio y amenazas combinadas; es decir, la integración de herramientas automáticas

de "hackeo", accesos no autorizados a los sistemas y capacidad de identificar y explotar las

vulnerabilidades de los sistemas operativos o aplicaciones para dañar los recursos informáticos.

Específicamente, en los ataques de negación de servicio, el equipo de cómputo ya no es un blanco,

es el medio a través del cual es posible afectar todo el entorno de red; es decir, anular los servicios

de la red, saturar el ancho de banda o alterar el sitio web de la compañía. Con ello, es evidente

que los riesgos están en la red, no en la PC.

Tipos de seguridad informática

Es muy importante ser consciente que por más que nuestra empresa sea la más segura desde el

punto de vista de ataques externos: hackers, virus, etc., la seguridad de la misma será nula si no se

ha previsto como combatir un incendio.

La seguridad física es uno de los aspectos más olvidados a la hora del diseño de un sistema

informático. Si bien algunos de los aspectos tratados a continuación se prevén, otros, como la

detección de un atacante interno a la empresa que intenta a acceder físicamente a una sala de

operaciones de la misma, no.

Esto puede derivar en que para un atacante sea más fácil lograr tomar y copiar un disco de

respaldo de la sala, que intentar acceder vía lógica a la misma.

Así, la Seguridad Física consiste en la "aplicación de barreras físicas y procedimientos de control,

como medidas de prevención y contramedidas ante amenazas a los recursos e información

confidencial". Se refiere a los controles y mecanismos de seguridad dentro y alrededor del Centro

de Cómputo así como los medios de acceso remoto al y desde el mismo; implementados para

proteger el hardware y medios de almacenamiento de datos.

Luego de ver como nuestro sistema puede verse afectado por la falta de seguridad física, es

importante recalcar que la mayoría de los daños que puede sufrir un centro de cómputo no será

sobre los medios físicos sino contra información por él almacenada y procesada.

Así, la seguridad física, sólo es una parte del amplio espectro que se debe cubrir para no vivir con

una sensación ficticia de seguridad. Como ya se ha mencionado, el activo más importante que se

posee es la información, y por lo tanto deben existir técnicas, más allá de la seguridad física, que la

aseguren. Estas técnicas las brinda la Seguridad Lógica.

Es decir que la Seguridad Lógica consiste en la "aplicación de barreras y procedimientos que

resguarden el acceso a los datos y sólo se permita acceder a ellos a las personas autorizadas para

hacerlo". Existe un viejo dicho en la seguridad informática que dicta que "todo lo que no está

permitido debe estar prohibido" y esto es lo que debe asegurar la Seguridad Lógica.

La seguridad lógica de un sistema informático incluye: restringir al acceso a programas y archivos

mediante claves y/o encriptación. Asignar las limitaciones correspondientes a cada usuario del

sistema informático, esto significa, no darle más privilegios extras a un usuario, sino sólo los que

necesita para realizar su trabajo. Asegurarse que los archivos y programas que se emplean son los

correctos y se usan correctamente. Por ejemplo, el mal uso de una aplicación puede ocasionar

agujeros en la seguridad de un sistema informático. Control de los flujos de entrada/salida de la

información. Esto incluye que una determinada información llegue solamente al destino que se

espera que llegue, y que la información llegue tal cual se envió. Los controles anteriormente

mencionados se pueden hacer a nivel sistema operativo, a nivel aplicación, a nivel base de datos o

archivo, o a nivel firmware.

Principios de la seguridad informática

Confidencialidad

La confidencialidad implica mantener los datos privados. En otras palabras, se refiere a la

privacidad de los elementos de información almacenados y procesados en un sistema informático.

Esta privacidad podría acarrear restricciones físicas y lógicas al acceder a datos delicados o cifrar

tráfico a través de la red. Un sistema que proporciona confidencialidad podría hacer lo siguiente:

- Utilizar mecanismos de seguridad (como un firewall) para prevenir accesos no autorizados

a los recursos del sistema o la red.

- Solicitar las credenciales apropiadas (nombres de usuario y/o contraseñas) para acceder a

los recursos del sistema.

- Cifrar el tráfico de tal forma que un hacker no pueda descifrarlo cuando sea capturado en

la red.

Basándose en este principio, las herramientas de seguridad deben proteger al sistema de

invasiones, intrusiones y accesos, por parte de personas o programas no autorizados. Este

principio es importante principalmente en sistemas distribuidos, es decir, aquellos en los que

usuarios, computadoras y datos residen en localidades diferentes, pero están físicamente y

lógicamente conectados.

Integridad

La integridad significa que los datos no sean modificados. Es decir, se refiere a la validez y

consistencia de los elementos de información almacenados y procesados en un sistema

informático. También, una solución en la integridad de los datos podría realizar autenticación de

origen para verificar que el tráfico está originándose en una fuente confiable.

Basándose en este principio, las herramientas de seguridad deben asegurar que los procesos de

actualización estén sincronizados y no se dupliquen, de forma que todos los elementos del sistema

manipulen adecuadamente los mismos datos. Este principio es particularmente importante en

sistemas descentralizados, es decir, aquellos en los que diferentes usuarios, computadoras y

procesos comparten la misma información.

Disponibilidad

La disponibilidad es una medida de la accesibilidad a los datos. Por ejemplo, si un servidor se “cae”

solamente 5 minutos por año, tendría una disponibilidad de 99.999%. Es decir, la disponibilidad se

refiere a la continuidad de acceso a los sistemas de información almacenados y procesados en un

sistema informático.

Basándose en este principio, las herramientas de seguridad informática deben reforzar la

permanencia del sistema informático, en condiciones de actividad adecuadas para que los

usuarios accedan a los datos con la frecuencia y dedicación que requieran. Este principio es

particularmente importante en sistemas informáticos cuyo compromiso con el usuario es prestar

servicio permanente.

Control de acceso

El control de acceso constituye uno de los servicios de seguridad que es indispensable, existe una

gran variedad de formas y métodos para implementar un control de acceso. El primer paso que

tenemos que tomar en cuenta para la implementación de un control de acceso es el acceso físico

así como el personal que está autorizado para entrar aciertos perímetros donde se encuentran los

sistemas. Lo siguiente, es implementar políticas para el control de acceso sobre los datos. El

usuario que desarrolla, adquiere u obtiene un archivo (programa, aplicación, dispositivo, etc.) se

considera como su dueño, y como tal es el único que puede asignar derechos de otros usuarios

sobre el archivo. Constituye metodología y políticas de control de acceso que permiten a un

usuario negar o aceptar el uso de sus archivos. Se implementa mediante: bits de permiso sistemas

de contraseñas listas de capacidades listas de control de acceso.

2. Políticas de seguridad

Una política de seguridad informática es un conjunto de reglas que definen la manera en que una

organización maneja, administra, protege y asigna recursos para alcanzar el nivel de seguridad

definido como objetivo.

Una política de seguridad es un conjunto de requisitos definidos por los responsables de un

sistema, que indica, en términos generales, que está y que no está permitido en área de seguridad

durante la operación general del sistema. 1

La RFC 1244 define Política de Seguridad como: "una declaración de intenciones de alto nivel que

cubre la seguridad de los sistemas informáticos y que proporciona las bases para definir y

1 Villalón, Antonio. (2002). Seguridad en Unix y redes v2.1. Consultado el 5/Sep./2010. Disponible en

http://es.tldp.org/Manuales-LuCAS/SEGUNIX/unixsec-2.1.pdf

delimitar responsabilidades para las diversas actuaciones técnicas y organizativas que se

requerirán." 2

Cualquier política de seguridad ha de contemplar los elementos claves de seguridad ya

mencionados: la Integridad, Disponibilidad, Privacidad y, adicionalmente, Control, Autenticidad y

Utilidad.

No debe tratarse de una descripción técnica de mecanismos de seguridad, ni de una expresión

legal que involucre sanciones a conductas de los empleados. Es más bien una descripción de los

que deseamos proteger y el porqué de ello.

El objetivo principal de una política de seguridad es proteger los activos de una organización.

Estos, no se reducen simplemente a cosas tangibles, sino cosas como: propiedad intelectual,

procesos y procedimientos, datos de usuario, funciones específicas de servidores (por ejemplo,

web o correo electrónico).

3. Escenarios de ataques a redes

Una forma útil de clasificar los ataques a la seguridad, empleada en la recomendación X.800 y RFC

2828, es la distinción entre ataques pasivos y ataques activos. Un ataque pasivo intenta conocer o

hacer uso de información del sistema, pero no afecta los recursos del mismo. Un ataque activo,

por el contrario, intenta alterar los recursos del sistema o afectar su funcionamiento.

Ataques pasivos

Los ataques pasivos se dan en forma de escucha o de observación no autorizadas de las

transmisiones. El objetivo del oponente es obtener información que se esté transmitiendo. Dos

tipos de ataques pasivos son la obtención de contenidos de mensajes y el análisis de tráfico

(sniffing). La obtención de contenidos de mensajes se entiende fácilmente. Una conversación

telefónica, un mensaje por correo electrónico y un archivo enviado pueden contener información

confidencial. Queremos evitar que un oponente conozca los contenidos de estas transmisiones.

Un segundo tipo de ataque pasivo, el análisis de tráfico, es más sutil. Supongamos que hemos

enmascarado los contenidos de los mensajes u otro tráfico de información de forma que el

oponente, incluso habiendo capturado el mensaje, no pueda extraer la información que contiene.

La técnica común para enmascarar los contenidos es el cifrado. Incluso si tuviésemos protección

mediante cifrado, un oponente podría observar el patrón de los mensajes, determinar la

localización y la identidad de los servidores que se comunican y descubrir la frecuencia y la

2 RFC 1244. (1991). Site Security Handbook. Consultado el 5/Sep./2010. Disponible en

http://www.faqs.org/rfcs/rfc1244.html

longitud de los mensajes que se están intercambiando. Esta información puede ser útil para

averiguar la naturaleza de la comunicación que está teniendo lugar.

Los ataques pasivos son muy difíciles de detectar ya que no implican alteraciones en los datos.

Normalmente, el mensaje se envía y recibe de una forma aparentemente normal y ni el emisor ni

el receptor son conscientes de que una tercera persona ha leído los mensajes o ha observado el

patrón de tráfico. Sin embargo, es posible evitar el éxito de estos ataques, normalmente mediante

el uso del cifrado. Así, al tratar con los ataques pasivos, el énfasis se pone más en la prevención

que en la detección.

Ataques activos

Los ataques activos implican alguna modificación del flujo de datos o la creación de un flujo falso y

se pueden dividir en cuatro categorías: suplantación de identidad (phishing), repetición,

modificación de mensajes e interrupción del servicio.

Una suplantación se produce cuando una entidad finge ser otra. Un ataque de este tipo incluye

habitualmente una de las otras formas de ataque activo. Por ejemplo, las secuencias de

autentificación pueden ser capturadas y repetidas después de que una secuencia válida de

autentificación haya tenido lugar, permitiendo así, que una entidad autorizada con pocos

privilegios obtenga privilegios extra haciéndose pasar por la entidad que realmente los posee.

La repetición implica la captura pasiva de una unidad de datos y su retransmisión posterior para

producir un efecto no autorizado.

La modificación de mensajes significa que una parte de un mensaje original es alterada, o que los

mensajes se han retrasado o reordenado, para producir un efecto no autorizado. Por ejemplo, el

mensaje “permitir a Jesús Sánchez que lea las cuentas de archivos confidenciales” se modifica para

convertirlo en “permitir a Juan Sánchez que lea las cuantas de archivos confidenciales”.

La interrupción del servicio impide el uso o la gestión normal de las utilidades de comunicación.

Este ataque podría tener un objetivo específico; por ejemplo, una entidad podría suprimir todos

los mensajes dirigidos a un destino en particular. Otra forma de este tipo de ataque es la

interrupción de una red completa, ya sea inhabilitándola o sobrecargándola con mensajes para

reducir su rendimiento.

Los ataques activos presentan las características opuestas a los pasivos. Aunque los ataques

pasivos son difíciles de detectar, existen medidas para prevenir su éxito. Sin embargo, es bastante

difícil prevenir por completo los ataques activos, debido a que se requeriría protección física de

todas las herramientas de comunicación y las rutas en todo momento. Por el contrario, el objetivo

es el de detectarlos y recuperarse de cualquier interrupción o retraso que originen. Como la

detección tiene un efecto disuasivo, también podría contribuir a la prevención.

Ejemplo de escenarios de ataques a redes en este link

4. Código malicioso

Podemos definir el término código malicioso como todo programa o fragmento de código, que

genera en su accionar, algún tipo de problema en el sistema de cómputo en el cual se ejecuta,

interfiriendo de esta forma con el normal funcionamiento del mismo. Existe una cierta confusión

en lo que a la clasificación de los distintos códigos maliciosos se refiere. No es raro ver cómo se

utilizan términos tales como "virus" o "gusano" indistintamente. Sin embargo, cada uno de estos

nombres responde a un tipo de código malicioso en concreto que posee características propias.

En realidad, todos los códigos maliciosos pueden englobarse dentro de un concepto mucho más

amplio denominado malware, y que puede definirse como cualquier programa, documento o

mensaje susceptible de causar perjuicios a los usuarios de sistemas informáticos.

Así, dentro del malware se encuentran los llamados genéricamente virus. Se trata del tipo de

código malicioso más abundante y que, por lo tanto, suele protagonizar los incidentes más graves.

Sin embargo, en realidad, el conjunto de los virus está compuesto por tres subgrupos: virus,

gusanos y troyanos.

Los virus son programas informáticos capaces de multiplicarse mediante la infección de otros

programas mayores e intentan permanecer ocultos en el sistema hasta darse a conocer. Pueden

introducirse en las computadoras de formas muy diversas, produciendo efectos molestos, nocivos

e incluso destructivos e irreparables.

Por su parte, un gusano es un programa similar a un virus que, a diferencia de éste, solamente

realiza copias de sí mismo, o de partes de él. Así, no necesita infectar otros archivos para poder

multiplicarse.

Finalmente, los troyanos son programas que llegan al ordenador por cualquier medio, se

introducen en él, se instalan y realizan determinadas acciones para tomar el control del sistema

afectado. La historia mitológica "El caballo de Troya" ha inspirado su nombre.

Los programas que conocemos como "antivirus" tienen como misión principal detectar y eliminar

los tipos de códigos maliciosos antes mencionados, ya que, en la práctica, son los que pueden

causar daños más importantes a los sistemas.

5. Principios matemáticos para criptografía

Según la Real Academia Española, la criptografía se define como “arte de escribir con clave secreta

o de algún modo enigmático. 3 Lo cual, podría ser un poco utópico para nuestros tiempos.

Una definición más formal, nos indica que la criptografía es una rama inicial de las matemáticas y

en la actualidad también de la informática y la telemática, que hace uso de métodos y técnicas con

el objeto principal de cifrar, y por lo tanto proteger, un mensaje o archivo por medio de un

algoritmo, usando una o más claves. 4

Habitualmente, se usan dos formas de cifrado: cifrado convencional o simétrico, y cifrado de

clave pública o asimétrica.

Cifrado simétrico (criptografía simétrica)

También conocido como cifrado convencional o cifrado de clave privada, el cifrado simétrico es la

técnica más antigua y mejor conocida. Una clave secreta -o privada-, que puede ser un número,

una palabra o simplemente una cadena de letras, aleatorias, se aplica al texto de un mensaje para

cambiar el contenido en un modo determinado. Esto podría ser tan sencillo como desplazando

cada letra a un número de posiciones en el alfabeto. Siempre que el remitente y destinatario

conocen la clave secreta, puede cifrar y descifrar todos los mensajes que utilizan esta clave.

Esta técnica consiste en el uso de una clave que es conocida tanto por el emisor como por el

receptor y, se supone, por nadie más. La siguiente figura muestra un esquema de este tipo

Figura 1. Cifrado simétrico

E y R conocen la clave K. El emisor E, desea transmitir el mensaje “Mensaje” a R. Para ello,

utilizando determinado algoritmo de cifrado simétrico y la clave K, genera el mensaje “Mensajek”,

que es transmitido a R. Éste, aplicando la misma clave y el algoritmo inverso, obtiene nuevamente

el mensaje original.

3 Real Academia Española (2010). Consultado el 5/Sep./2010. Disponible en http://www.rae.es

4 Ramió, Jorge (2009). Seguridad Informática y Criptografía. Consultado el 5/Sep./2010. Disponible en:

http://www.criptored.upm.es/guiateoria/gt_m001a.htm

Quizás el ejemplo más simple del cifrado simétrico sea el juego de niños de desplazar las letras del

mensaje una determinada cantidad de posiciones: Por ejemplo, cifrar el mensaje ``Hola Mundo''

como ``Ipmb Nvñep'', desplazando las letras una posición. En este caso, la clave que ambas partes

deben conocer es la cantidad de posiciones que se desplazaron las letras.5

Es importante observar que la seguridad del cifrado simétrico depende de la privacidad de la clave,

no de la privacidad del algoritmo. Es decir, se asume que no es práctico descifrar un mensaje

teniendo el texto cifrado y conociendo el algoritmo de cifrado/descifrado. En otras palabras, no es

necesario que el algoritmo sea secreto; lo único que hay que mantener en secreto es la clave.

Esta característica del cifrado simétrico es la causa de su uso tan extendido. El hecho de que el

algoritmo no sea secreto significa que los fabricantes pueden desarrollar y han desarrollado

implementaciones con chips de bajo costo de los algoritmos de cifrado de datos. Estos chips se

pueden conseguir fácilmente y se han incorporado a una serie de productos. Con el uso del cifrado

simétrico, el problema principal consiste en mantener la privacidad de la clave.

Cifrado asimétrico (criptografía asimétrica)

También conocido como cifrado de clave pública, fue propuesto por primera vez por Diffie y

Hellman en 1976. Es el primer avance realmente revolucionario en el cifrado en miles de años. El

motivo es que los algoritmos de clave pública están basados en funciones matemáticas y no en

simples operaciones sobre los patrones de bits. Además, la criptografía de clave pública es

asimétrica, lo que implica el uso de dos claves separadas, a diferencias del cifrado simétrico

convencional, que emplea sólo una clave. El uso de dos claves, tiene importantes consecuencias

en el terreno de la confidencialidad, la distribución de claves y la autentificación.

Figura 2. Cifrado asimétrico

5 Smaldone, Javier (2006). Introducción al Secure Shell. Consultado el 5/Sep./2010. Disponible en:

http://mmc.igeofcu.unam.mx/LuCAS/Tutoriales/doc-ssh-intro/intro-ssh/node6.html

Las técnicas de cifrado asimétrico se basan en el uso de dos claves: una pública y otra privada. En

el ejemplo de la figura 2, R posee dos claves KR (su clave privada, conocida solo por él) y KRP (su

clave pública, conocida por cualquiera). En este ejemplo, E desea transmitir el mensaje “Mensaje”

a R, de manera que nadie, excepto este último, pueda conocer su contenido. Para ello, utilizando

la clave KRP y un algoritmo de cifrado asimétrico, genera el mensaje “MensajeKR”, el cual es

transmitido. Luego, R, utilizando el algoritmo inverso y su clave privada KR, reproduce el mensaje

original.

Figura 3. Diferencias entre el cifrado simétrico y el asimétrico

Los pasos fundamentales del cifrado asimétrico son los siguientes:

1. Cada usuario genera una pareja de claves para el cifrado y el descifrado de mensajes.

2. Cada usuario localiza una de las dos claves en un registro público u otro archivo accesible.

Esta es la clave pública. La otra clave no se revela. Cada usuario mantiene un grupo de

claves públicas que han obtenido de otros.

3. Como se muestra en la figura 3, si Andrea quiere enviar un mensaje privado a Bruno, cifra

el mensaje usando la clave pública de Bruno.

4. Cuando Bruno recibe el mensaje, lo descifra usando su clave privada. Ningún otro receptor

puede descifrar el mensaje porque sólo Bruno conoce su clave privada.

En este enfoque, todos los participantes tienen acceso a las claves públicas, y las claves privadas

las genera cada participante de forma local y, por lo tanto, nunca necesitan ser distribuidas.

Mientas el usuario proteja su clave privada, la comunicación entrante es segura. En cualquier

momento un usuario puede cambiar la clave privada y publicar la clave pública que la acompaña

para sustituir la clave pública antigua.

La clave empleada en el cifrado convencional se denomina comúnmente clave secreta. Las dos

claves empleadas para el cifrado de clave pública se denominan clave pública y clave privada.

Invariablemente, la clave privada se mantiene en secreto, en vez de llamarse clave secreta se

llama clave privada para evitar confusiones con el cifrado convencional.

6. Algoritmos de criptografía

Los algoritmos de cifrado simétrico pueden ser divididos en algoritmos de bloques y algoritmos de

flujo. Los algoritmos de cifrado en bloques transforman bloques de texto plano de n bits a bloques

de texto cifrado de n bits bajo la influencia de una clave k. Los algoritmos de cifrado de flujo son

algoritmos que pueden realizar el cifrado incrementalmente, convirtiendo el texto plano en texto

cifrado bit a bit. Es decir, el cifrado por flujo protege un texto plano bit a bit mientras que el

cifrado por bloques toma un número de bits y lo encapsula como una unidad simple

En las secciones siguientes, se describen los algoritmos de cifrado de bloque más importantes: el

DES, 3DES, AES y el RSA.

DES (Data Encryption Standard)

El esquema de cifrado más extendido se basa en DES. El cual, fue desarrollado

en 1977 y rápidamente se convirtió en un estándar por el gobierno de los

Estados Unidos y otros países. DES es un cifrado en bloques con una longitud

de 64 bits por bloque (pueden ser 16 números hexadecimales), de los que 8

bits se utilizan como control de paridad, por lo tanto la clave tiene una

longitud útil de 56 bits, es decir, realmente se utilizan sólo 56 bits del

algoritmo

El algoritmo se encarga de realizar combinaciones, sustituciones y

permutaciones entre el texto a cifrar y la clave, asegurándose al mismo tiempo

de que las operaciones puedan realizarse en ambas direcciones (para el

descifrado). Hay 16 etapas del proceso. Se generan 16 subclaves partiendo de

la clave original, una para cada etapa.

La clave es codificada en 64 bits y se compone de 16 bloques de 4 bits,

generalmente nombrados de k1 a k16. Dado que “solamente” 56 bits sirven

para el cifrado, puede haber hasta 256 (o 7.2 x 1016) claves diferentes.

Ejemplo

Texto a cifrar: “Your lips are smoother than Vaseline” (36 caracteres + Chr(13) + Chr(10))

En hexadecimal

596F7572206C6970 732061726520736D 6F6F746865722074 68616E2076617365 6C696E650D0A0000 (relleno)

Clave: 0E329232EA6D0D73 Texto Cifrado:

Fig. 4. Algoritmo DES

C0999FDDE378D7ED 727DA00BCA5A84EE 47F269A4D6438190 D9D52F78F5358499 828AC9B453E0E653

3DES (Triple DES)

El triple DES se estandarizó inicialmente para aplicaciones financieras en el estándar ANSI en 1985.

El algoritmo 3DES desarrollado por Tuchman en 1978, es una manera de mejorar la robustez del

algoritmo DES que consiste en aplicarlo 3 veces consecutivas. Se puede aplicar con la misma clave

cada vez o con claves distintas y combinando el algoritmo de cifrado con el de descifrado. El

resultado es un algoritmo seguro y que se utiliza en la actualidad, aunque resulta muy lento

comparado con otros algoritmos más modernos que también son seguros.6

AES (Advanced Encryption Standard)

El algoritmo 3DES tiene dos atractivos que aseguran su uso durante los próximos años. Primero,

son su longitud de clave de 168 bits evita la vulnerabilidad al ataque de fuerza bruta del DES.

Segundo, el algoritmo de cifrado que se usa es el mismo que en el DES. Este algoritmo ha estado

sujeto a más escrutinios que ningún otro en un largo periodo de tiempo, y no se ha encontrado

ningún ataque criptoanálitico efectivo basado en el algoritmo que no sea la fuerza bruta. Por

tanto, hay un alto grado de seguridad en la resistencia al criptoanálisis del 3DES. Si la seguridad

fuera la única consideración, el 3DES sería una elección adecuada para un algoritmo de cifrado

estándar durante las próximas décadas.

El inconveniente principal del 3DES es que el algoritmo es relativamente lento en su

implementación software. El DES original se diseñó para implementaciones hardware de mediados

de los 70 y no produce código software eficiente. El 3DES tiene 3 veces más etapas que el DES y,

por ello, es más lento. Un inconveniente secundario es que tanto el DES como el 3DES usan un

tamaño de bloque de 64 bits. Por razones tanto de eficiencia como de seguridad, es preferible un

mayor tamaño de bloque.

Debido a estos inconvenientes, el 3DES no es un candidato razonable para usarlo durante mucho

tiempo. Para reemplazarlo, el NIST (National Institute of Standards and Technology) realizó en

1997 un concurso de propuestas para el desarrollo de un nuevo estándar de cifrado avanzado

(AES), que deberá ser tan robusto o más que el 3DES y que mejoraría significativamente la

eficiencia. Además de esos términos generales, el NIST especificó que el AES debía ser un cifrador

simétrico de bloque con una longitud de bloque de 128 bits y permitir longitudes de clave de 128,

192 y 256 bits. Los criterios de evaluación incluyeron seguridad, eficiencia computacional,

requisitos de memoria, la idoneidad para hardware y software y la flexibilidad.

6 Palacios R., Delgado V. (2006). Introducción a la criptografía: tipos de algoritmos. Anales de mecánica y

electricidad [en línea], Volumen LXXXIII, Número 1, Págs. 42-46. Disponible en https://www.icai.es/contenidos/publicaciones/anales_get.php?id=1210

El algoritmo seleccionado por el NIST como propuesta del AES fue el Rijndael, desarrollado y

presentado por dos criptógrafos belgas: Dr. Joan Deamen y Dr. Rijmen.

RSA (Rivest, Shamir Adleman)

El algoritmo RSA es uno de los algoritmos de clave pública (asimétricos) más usados. Fue publicado

en 1978 por Ron Rivest, Adi Shamir y Len Adleman en el MIT y ha sido desde entonces el enfoque

más aceptado e implementado para el cifrado de clave pública.

El sistema RSA se basa en el hecho matemático de la dificultad de factorizar números muy

grandes. Para factorizar un número el sistema más lógico consiste en empezar a dividir

sucesivamente éste entre 2, entre 3, entre 4,..., y así sucesivamente, buscando que el resultado de

la división sea exacto, es decir, de resto 0, con lo que ya tendremos un divisor del número.

Ahora bien, si el número considerado es un número primo (el que sólo es divisible por 1 y por él

mismo), tendremos que para factorizarlo habría que empezar por 1, 2, 3,........... hasta llegar a él

mismo, ya que por ser primo ninguno de los números anteriores es divisor suyo. Y si el número

primo es lo suficientemente grande, el proceso de factorización es complicado y lleva mucho

tiempo.

Basado en la exponenciación modular de exponente y módulo fijos, el sistema RSA crea sus claves

de la siguiente forma:

Se buscan dos números primos lo suficientemente grandes: p y q (de entre 100 y 300

dígitos).

Se obtienen los números n = p * q y Ø = (p - 1) * (q - 1).

Se busca un número e tal que no tenga múltiplos comunes con Ø.

Se calcula d = e - 1 mod Ø, con mod = resto de la división de números enteros.

Y ya con estos números obtenidos, n es la clave pública y d es la clave privada. Los

números p, q y Ø se destruyen. También se hace público el número e, necesario para

alimentar el algoritmo.

El cálculo de estas claves se realiza en secreto en la máquina en la que se va a guardar la clave

privada, y una vez generada ésta conviene protegerla mediante un algoritmo criptográfico

simétrico.

En cuanto a las longitudes de claves, el sistema RSA permite longitudes variables, siendo

aconsejable actualmente el uso de claves de no menos de 1024 bits (se han roto claves de hasta

512 bits, aunque se necesitaron más de 5 meses y casi 300 computadoras trabajando juntos para

hacerlo).

RSA basa su seguridad es ser una función computacionalmente segura, ya que si bien realizar la

exponenciación modular es fácil, su operación inversa, la extracción de raíces de módulo Ø no es

factible a menos que se conozca la factorización de e, clave privada del sistema.

RSA es el más conocido y usado de los sistemas de clave pública, y también el más rápido de ellos.

Presenta todas las ventajas de los sistemas asimétricos, incluyendo la firma digital, aunque resulta

más útil a la hora de implementar la confidencialidad el uso de sistemas simétricos, por ser más

rápidos. Se suele usar también en los sistemas mixtos para encriptar y enviar la clave simétrica que

se usará posteriormente en la comunicación cifrada.

Ejemplo de RSA

Un ejemplo trivial del algoritmo RSA se muestra a continuación. Para este ejemplo hemos

seleccionado p=17 y q=11, dando n=187 (11x17) y Ø=160 (16x10). Un valor adecuado de e es 7.

Con estas selecciones, d puede encontrarse determinando tal que d x e mod 160 = 1 y d < 160. El

valor correcto es d = 23, porque 23x7 = 161 mod 160 = 1 y 23 < 160. El texto cifrado, C, de un

mensaje de texto normal, P, se da por la regla C = P7 (mod 187). El texto cifrado lo descifra el

receptor de acuerdo con la regla P = C23 (mod 187). Observe tanto en el emisor como en el

receptor, donde se muestra el cifrado-descifrado del texto normal "CASA".

Simbólico Numérico P7 P

7 (mod 187) Texto cifrado

(C) C

23 C

23(mod 187) Simbólico

C 05 78125 146 146 6.027201112789140509229245261707e+49

5 C

A 01 1 1 1 1 1 A

S 19 893831739 145 145 5.1459320995204636701832036647081e+49

19 S

A 01 1 1 1 1 1 A

Tabla 1. Ejemplo del algoritmo RSA

Otro ejemplo

Clave pública (7,187), clave privada (23,187).

Cifrado Descifrado

Texto plano “88” Texto cifrado “11” Texto plano “88”

7. Normatividad Nacional e Internacional de seguridad

ISO 27001

Publicada el 15 de Octubre de 2005. Es la norma principal de la serie y contiene los requisitos del

sistema de gestión de seguridad de la información. Tiene su origen en la BS 7799-2:2002 (que ya

quedó anulada) y es la norma con arreglo a la cual se certifican por auditores externos los SGSIs

887 mod 187 = 11 1123 mod 187 = 88

(Sistemas de Gestión de Seguridad de la Información) de las organizaciones. En su Anexo A,

enumera en forma de resumen los objetivos de control y controles que desarrolla la ISO

27002:2005 (nueva numeración de ISO 17799:2005 desde el 1 de Julio de 2007), para que sean

seleccionados por las organizaciones en el desarrollo de sus SGSI; a pesar de no ser obligatoria la

implementación de todos los controles enumerados en dicho anexo, la organización deberá

argumentar sólidamente la no aplicabilidad de los controles no implementados. En México, está

publicada bajo la norma NMX-I-041/02-NYCE7.

ISO 27002

Desde el 1 de Julio de 2007, es el nuevo nombre de ISO 17799:2005, manteniendo 2005 como año

de edición. Es una guía de buenas prácticas que describe los objetivos de control y controles

recomendables en cuanto a seguridad de la información. No es certificable. Contiene 39 objetivos

de control y 133 controles, agrupados en 11 dominios. Como se ha mencionado en su apartado

correspondiente, la norma ISO 27001 contiene un anexo que resume los controles de ISO

27002:2005.

COBIT

El IT Governance Institute fue establecido por ISACA (Information Systems Audit and Control

Association) en 1998 para aclarar y orientar en cuestiones actuales y futuras relativas a la

administración, seguridad y aseguramiento TI. Como consecuencia de su rápida difusión

internacional, ambas instituciones disponen de una amplia gama de publicaciones y productos

diseñados para apoyar una gestión efectiva de las TI en el ámbito de la empresa.

Uno de sus documentos más conocidos, referencia a nivel mundial, es CobiT (Objetivos de control

para tecnologías de la información y similares).

Se trata de un marco compatible con ISO 27002 (anterior ISO 17799:2005) y COSO, que incorpora

aspectos fundamentales de otros estándares relacionados; por tanto, aquellas empresas y

organizaciones que hayan evolucionado según las prácticas señaladas por CobiT están más cerca

de adaptarse y lograr la certificación en ISO 27001.

7 Organismo Nacional de Normalización y Evaluación de la Conformidad (2009), Normas Mexicanas NMX-

NYCE, Normalización y Certificación Electrónica AC. Disponible en : http://www.normalizacion-nyce.org.mx

CobiT se estructura en cuatro partes; la principal de ellas se divide de acuerdo con 34 procesos de

TI. Cada proceso se cubre en cuatro secciones (objetivo de control de alto nivel para el proceso, los

objetivos de control detallados, directrices de gestión y el modelo de madurez para el objetivo)

que dan una visión completa de cómo controlar, gestionar y medir el proceso. Utiliza un ciclo de

vida de tipo PDCA (Plan-Do-Check-Act) que lo integra en los procesos de negocio.

No existe un certificado en las prácticas indicadas por CobiT, aunque ISACA sí ofrece la posibilidad

a título personal de obtener certificaciones como “Certified Information Systems Auditor” (CISA),

“Certified Information Security Manager” (CISM) y "Certified in the Governance of Enterprise IT"

CGEIT.

Figura 4. Marco de trabajo Cobit 4.0

NIST Serie 800

El National Institute of Standards and Technology (NIST), fundado en 1901, es un organismo

federal no regulador que forma parte de la Administración de Tecnología (Technology

Administration) del Departamento de Comercio (Department of Commerce) de los EE.UU.

La misión del NIST consiste en elaborar y promover patrones de medición, normas y tecnología

con el fin de incrementar la productividad, facilitar el comercio y mejorar la calidad de vida.

Distintos principios y prácticas en seguridad comunes y de aplicación tanto en agencias

gubernamentales como en corporaciones privadas están recogidos en una larga lista de

publicaciones identificadas bajo la Serie 800 y disponibles para su libre descarga8.

Estas guías y directrices son documentos muy elaborados y de reconocido prestigio, que cubren

múltiples aspectos relacionados con la seguridad de la información y que pueden servir de apoyo a

la hora de desarrollar políticas, procedimientos y controles.

WebTrust

WebTrust es el sello de confianza, calidad y seguridad que se concede a la “página Web” de la

empresa que, previamente ha obtenido un Informe Favorable de Auditoría Independiente, por

una Firma de Auditoría Habilitada para la Prestación de Servicios WebTrust al cumplir, durante un

cierto periodo de tiempo, los Criterios y Principios WebTrust, establecidos por las entidades

promotoras y licenciatarias del sello; Instituto Americano de Auditores Públicos de Cuentas

(AICPA), Instituto Canadiense de Auditores de Cuentas (CICA), e Instituto de Auditores Censores

Jurados de Cuentas de España (IACJCE).

Desde el año 1997, se han desarrollado y mejorado (tres versiones) los Principios y Criterios que

debe cumplir un “sitio Web” para que obtenga el sello, a la vez que se han ido otorgando licencias

a los colectivos más representativos de Auditores en los principales países de todo el mundo, que

han iniciado el proceso de desarrollo de la nueva actividad para los auditores de dichos países, de

forma que WebTrust se ha convertido en el método más efectivo de transmitir confianza para los

usuarios de Internet.

Para saber más…

Whatkins, Michael (2008). CCNA Security Official Exam Certification Guide. Cisco Press.

Stallings, Williams (2005). Fundamentos de seguridad en redes. Aplicaciones y Estándares. 2ª

Edición. Pearson Educación.

8 National Institute of Standards and Technology. (2010). Special Publications (800 series). Disponible en

http://csrc.nist.gov/publications/PubsSPs.html

Unidad II. Administración de la seguridad

Objetivo. El alumno administrará la seguridad informática para garantizar la disponibilidad de la

información.

1. Administración de claves públicas

Una de las funciones principales del cifrado de clave pública es la del tratar del problema de la

distribución de claves. Hay dos aspectos fundamentales sobre el uso del cifrado de clave pública

en este sentido:

La distribución de claves públicas.

El uso de cifrado de clave pública para distribuir clave secreta.

Certificados de clave pública

A la vista de todo esto, la base del cifrado de clave pública se encuentra en el hecho de que la

clave pública es pública. Así, si hay un algoritmo de clave pública aceptado, como el RSA, cualquier

participante puede enviar su clave pública a cualquier otro o difundir la clave a la comunidad en

general. Aunque este enfoque es conveniente, presenta una debilidad fundamental: cualquiera

puede falsificar ese dato público. Es decir, un usuario podría hacerse pasar por el usuario A y

enviar una clave pública a otro participante o difundirla. Hasta el momento en que A descubre la

falsificación y alerta a los otros participantes, el falsificador puede leer todos los mensajes cifrados

enviados a A y puede usar las claves falsificadas para la autentificación.

La solución a este problema es el certificado de clave pública. Básicamente, un certificado consiste

en una clave pública y un identificador o nombre de usuario del dueño de la clave, con todo el

bloque firmado por una tercera parte confiable. Comúnmente, la tercera parte una autoridad de

certificación (CA, Certificate Authority) en la que confía la comunidad de usuarios, que podría ser

una entidad gubernamental o una institución financiera. Un usuario puede presentar su clave

pública a la autoridad de forma segura, obtener su certificado y luego publicarlo. Cualquiera que

necesite la clave pública de este usuario puede obtener el certificado y verificar que es válida por

medio de la firma fiable adjunta.

El esquema que se ha aceptado mundialmente para el formateo de los certificados de clave

pública es el estándar X.509, cuyos certificados se emplean en la mayoría de las aplicaciones de

seguridad de redes, incluyendo la seguridad IP, las capas de conexión segura (SSL), las

transacciones electrónicas seguras (SET) y S/MIME.

Distribución de claves secretas mediante criptografía de clave pública

Con el cifrado convencional, un requisito fundamental para que las dos partes se comuniquen de

forma segura es que compartan la clave secreta. Supongamos que Benito quiere crear una

aplicación de mensajes que le permita intercambiar correo electrónico de manera segura con

alguien que tiene acceso a internet o a otra red que ambos comparten. Supongamos, además, que

quiere hacerlo usando cifrado convencional. Con el cifrado convencional, Benito y su interlocutor,

Alicia, deben acordar una forma de compartir una clave secreta que nadie más conozca. ¿Cómo

podrán hacerlo? Si Alicia se encuentra en la habitación contigua de Benito, éste podría generar

una clave y anotarla en un papel o guardarla en un disquete y entregarla a Alicia. Pero si Alicia está

en el otro extremo del continente o del mundo, ¿qué puede hacer Benito? Podría cifrar la clave

usando cifrado convencional y enviarla por correo electrónico a Alicia, pero esto significa que

ambos deben compartir una clave secreta para cifrar esta nueva clave secreta. Además, Benito y

todo aquel que use este nuevo paquete de correo electrónico se enfrenta al mismo problema con

cada posible interlocutor: cada pareja de interlocutores debe compartir una clave secreta única.

Un enfoque consistente en el uso del intercambio de clave de Diffie-Hellman, que, de hecho, está

muy extendido. Sin embargo, tiene la desventaja de que en su forma más simple el algoritmo

Diffie-Hellman no proporciona la autentificación de las dos partes que se comunican.

Una alternativa válida es el uso de los certificados de clave pública. Cuando Benito quiere

comunicarse con Alicia, puede hacer lo siguiente:

a. Preparar un mensaje.

b. Cifrar el mensaje usando cifrado convencional con una clave de sesión

convencional.

c. Cifrar la clave de sesión utilizando el cifrado de clave pública con la clave pública

de Alicia.

d. Añadir la clave de sesión cifrada al mensaje y enviarlo a Alicia.

Solo Alicia puede descifrar la clave de sesión y, por lo tanto, recuperar el mensaje original. Si

Benito obtuvo la clave pública de Alicia a través del certificado de clave pública de Alicia, está

seguro de que se trata de una clave válida.

2. Administración de riesgos y continuidad de actividades

Muchas organizaciones se han introducido en la administración de riesgos de seguridad debido a

la necesidad de responder a una incidencia de seguridad relativamente pequeña. Por ejemplo, el

equipo de un empleado se infecta con un virus y un responsable de la oficina convertido en

experto informático debe averiguar cómo tiene que erradicar el virus sin destruir el equipo ni los

datos que contiene. Independientemente de cuál sea la incidencia inicial, a medida que aparecen

cada vez más problemas relacionados con la seguridad y comienzan a tener repercusiones en los

negocios, muchas organizaciones sienten frustración al tener que responder a una crisis tras otra.

Desean una alternativa a este enfoque reactivo, una alternativa que reduzca la probabilidad de

que las incidencias de seguridad se produzcan en primer lugar. Las organizaciones que administran

el riesgo de forma eficaz evolucionan a un enfoque más proactivo pero esto sólo constituye parte

de la solución.

Enfoque reactivo

Actualmente, muchos profesionales de tecnología de información (TI) sienten una tremenda

presión para terminar sus tareas rápidamente y provocar las menos incomodidades posibles a los

usuarios. Cuando se produce una incidencia de seguridad, muchos profesionales de TI piensan que

lo único para lo que tienen tiempo de hacer es contener la situación, averiguar qué ha sucedido y

reparar los sistemas lo más rápidamente posible. Algunos pueden intentar identificar la causa

principal, pero esto incluso puede parecer un lujo para los que tienen grandes restricciones de

recursos. Aunque un enfoque reactivo puede constituir una respuesta táctica eficaz a los riesgos

de seguridad descubiertos y se han convertido en incidencias de seguridad, la imposición de un

pequeño nivel de rigor al enfoque reactivo puede permitir que las organizaciones de cualquier tipo

utilicen mejor sus recursos.

Enfoque proactivo

La administración de riesgos de seguridad proactiva tiene numerosas ventajas con respecto a un

enfoque reactivo. En vez de esperar a que suceda lo peor y, a continuación, llevar a cabo la

respuesta, se minimiza la posibilidad de que pase lo peor antes de que se produzca. Se trazan

planes para proteger los activos importantes de la organización mediante la implementación de

controles que reduzcan el riesgo de que el software malintencionado, los piratas informáticos o un

uso incorrecto accidental aprovechen las vulnerabilidades. Esta idea se puede ilustrar con una

analogía. La gripe es una enfermedad respiratoria mortal que infecta a millones de personas en

Estados Unidos cada año. De ellas, más de 100.000 deben recibir tratamiento en hospitales y cerca

de 36.000 mueren. Podría tratar la amenaza de la enfermedad esperando a infectarse y, después,

tomar la medicina para tratar los síntomas si enferma. O también podría optar por vacunarse

antes de que comenzara la temporada de la gripe.

3. Prevención y recuperación de incidentes

Resulta importante establecer políticas de seguridad, las cuales van desde el monitoreo de la

infraestructura de red, los enlaces de telecomunicaciones, la realización del respaldo de datos y

hasta el reconocimiento de las propias necesidades de seguridad, para establecer los niveles de

protección de los recursos.

Las políticas deberán basarse en los siguientes pasos:

Identificar y seleccionar lo que se debe proteger (información sensible)

Establecer niveles de prioridad e importancia sobre esta información

Conocer las consecuencias que traería a la compañía, en lo que se refiere a

costos y productividad, la pérdida de datos sensibles

Identificar las amenazas, así como los niveles de vulnerabilidad de la red

Realizar un análisis de costos en la prevención y recuperación de la información,

en caso de sufrir un ataque y perderla

Implementar respuesta a incidentes y recuperación para disminuir el impacto

Este tipo de políticas permitirá desplegar una arquitectura de seguridad basada en soluciones

tecnológicas, así como el desarrollo de un plan de acción para el manejo de incidentes y

recuperación para disminuir el impacto, ya que previamente habremos identificado y definido los

sistemas y datos a proteger.

Es importante tomar en consideración, que las amenazas no disminuirán y las vulnerabilidades no

desaparecerán en su totalidad, por lo que los niveles de inversión en el área de seguridad en

cualquier empresa, deberán ir acordes a la importancia de la información en riesgo.

La planificación de la recuperación de desastres integra los procedimientos para restaurar la

operatividad del sistema, aplicación o instalación de computadoras destino; pueden utilizarse

métodos como: NIST 800-34 (se enfoca en la continuidad del servicio TI y describe estrategias para

el mantenimiento de la disponibilidad TI).

4. Protección de sistemas operativos

Según un estudio realizado por Inteco, 8 de cada 10 equipos se encuentran infectados con algún

tipo de código malicioso. Ante estos datos tan alarmantes, se ha elaborado una guía de seguridad

para proteger su sistema operativo, estos son:

- Instale (y actualice) software antivirus.

- Instale las actualizaciones de software:

o Los services packs, que son actualizaciones globales que contienen varios

centenares de pequeñas correcciones aportadas al sistema para resolver fallos de

seguridad y también bugs que no representan necesariamente un riesgo.

o Parches de seguridad (Windows update).

- Configure un firewall.

- Evite instalar programas desconocidos o poco confiables.

- Evite el correo electrónico no deseado (spam).

- No abra archivos adjuntos por correo (de remitentes desconocidos) ni por chat.

- Navegación segura.

- Ponga contraseñas a su computadora.

- Detenga los servicios inútiles.

- Establezca permisos.

- Proteja sus servidores:

o Certificados de servidor.

o Mantenerlos en lugares seguros.

o Instalación del directorio activo (Windows).

o Actualizaciones de seguridad al servidor de base de datos.

5. Protocolo SSL y SSL Handshake

SSL está diseñado de forma que utilice TCP para proporcionar un servicio fiable y seguro extremo a

extremo. SSL no es un protocolo simple, sino que tiene dos niveles de protocolos.

El protocolo Record de SSL proporciona servicios de seguridad básica a varios protocolos de nivel

más alto. En particular, el HTTP, que suministra el servicio de transferencia para la interacción

entre el cliente y servidor web, puede operar encima de SSL. Existen 3 protocolos de nivel más alto

como parte de SSL: Handshake, Change Cipher Spec y Alert. Estos protocolos se utilizan en la

gestión de intercambios SSL.

El protocolo SSL Proporciona sus servicios de seguridad cifrando los datos intercambiados entre el

servidor y el cliente con un algoritmo de cifrado simétrico, típicamente el RC4 o IDEA, y cifrando la

clave de sesión de RC4 o IDEA mediante un algoritmo de cifrado de clave pública, típicamente el

RSA. La clave de sesión es la que se utiliza para cifrar los datos que vienen del y van al servidor

seguro. Se genera una clave de sesión distinta para cada transacción, lo cual permite que aunque

sea reventada por un atacante en una transacción dada, no sirva para descifrar futuras

transacciones. MD5 se usa como algoritmo de hash.

SSL Handshake

Este protocolo permite la autentificación mutua del servidor y cliente y negociar un algoritmo de

cifrado y de cálculo de MAC (código de autentificación de mensajes) y las claves criptográficas que

se utilizarán para proteger los datos enviados en un registro SSL. Este protocolo Handshake se

utiliza antes de que se transmita cualquier dato de aplicación.

El protocolo Handshake consiste en una serie de mensajes intercambiados entre servidor y cliente.

Todos los mensajes tienen el formato que se muestra en la siguiente figura:

Figura 5. SSL Handshake

La figura 5 muestra el intercambio inicial necesario para establecer una conexión lógica entre el

cliente y el servidor. Este intercambio se divide en cuatro fases:

Fase 1. El establecimiento de las capacidades de seguridad, incluyendo versión del protocolo, ID de

sesión, suite de cifrado, método de compresión y los números aleatorios iniciales.

Fase 2. El servidor puede enviar un certificado, intercambio de clave y solicitud de certificado. El

servidor señala el final de la fase del mensaje hello.

Fase 3. El cliente envía certificado, si se le solicita, el intercambio de clave, y puede que envíe la

verificación de certificado.

Fase 4. Intercambio de suite de cifrado y finalización del protocolo handshake.

Para saber más…

Stallings, Williams (2005). Cryptography and network security, principles and practices. 4th

edition. Prentice Hall.

Stallings, Williams (2005). Fundamentos de seguridad en redes. Aplicaciones y Estándares. 2ª

Edición. Prentice Hall.

Unidad III. Métodos de autenticación

Objetivo. El alumno implementará el método de autentificación adecuado para garantizar el

acceso seguro a las aplicaciones y servicios informáticos de la organización.

La autenticación es la técnica mediante la cual un proceso verifica que su compañero de

comunicación sea quien se supone que debe ser y no un impostor. Verificar la integridad de un

proceso remoto en la presencia de un intruso activo y malicioso es sorprendentemente difícil y

requiere protocolos complejos con base en la criptografía.

1. Servicios AAA

En seguridad informática, el acrónimo AAA corresponde a un tipo de protocolos que realizan tres funciones: Autenticación, Autorización y Contabilización (Authentication, Authorization and Accounting, en inglés). La expresión protocolo AAA no se refiere pues a un protocolo en particular, sino a una familia de protocolos que ofrecen los tres servicios citados.

Autenticación

La Autenticación es el proceso por el que una entidad prueba su identidad ante otra.

Normalmente la primera entidad es un cliente (usuario, computadora) y la segunda un servidor. La

Autenticación se consigue mediante la presentación de un nombre de usuario y la demostración

de estar en posesión de las credenciales que permiten comprobarla. Ejemplos posibles de estas

credenciales son las contraseñas, los Certificados Digitales, etc.

Autorización

Autorización se refiere a la concesión de privilegios específicos (incluyendo "ninguno") a una

entidad o usuario basándose en su identidad (autenticada), los privilegios que solicita, y el estado

actual del sistema

Contabilización

La Contabilización se refiere al seguimiento del consumo de los recursos de red por los usuarios.

Esta información puede usarse posteriormente para la administración, planificación, facturación, u

otros propósitos.

Las siguientes preguntas son útiles para entender el funcionamiento de los servicios AAA al

preguntar:

- ¿quién eres?

- ¿qué servicios estoy autorizado a darte?

- ¿qué hiciste con los servicios mientras los usaste?

RADIUS (Remote Authentication Dial-In User Service)

RADIUS es un protocolo de comunicación cliente/servidor que fue creado para tener un método

de autenticación, autorización y contabilidad para usuarios que necesitaban acceder a recursos de

cómputo heterogéneos. Cuando se realiza una conexión con un proveedor de servicios de internet

mediante modem, DSL, cablemodem, Ethernet o Wi-Fi, se envía una información que

generalmente es un nombre de usuario y una contraseña. Esta información se transfiere a un

servidor de acceso a red (NAS) sobre el protocolo PPP, quien redirige la petición a un servidor

RADIUS mediante el protocolo RADIUS. Este servidor comprueba que la información es correcta

utilizando esquemas de autentificación PAP, CHEAP o EAP. Una de las características más

importantes del protocolo RADIUS es su capacidad de manejar sesiones, notificando cuando

comienza y termina una conexión, así que al usuario se le podrá determinar su consumo y facturar

en consecuencia; los datos se pueden utilizar con propósitos estadísticos. Fue desarrollado en

Livingston Enterprises y ahora está publicado dentro del RFC 2138 y RFC 2139. Dichas

especificaciones indican que RADIUS:

- Es un protocolo basado en UDP y no orientado a la conexión que usa el puerto 1831.

- Utiliza un mecanismo de seguridad brinco a brinco.

- Es un protocolo sin estado.

- Soporta autenticación PAP y CHAP vía PPP.

- Utiliza el algoritmo MD5 para el cifrado de passwords.

TACACS (Terminal Access Controller Access Control System)

TACACS es un protocolo de comunicación cliente/servidor basado en TCP, el cual permite

comunicarse de manera remota con un servidor de autentificación. TACACS permite a un servidor

de acceso remoto (RAS) comunicarse con un servidor de autentificación para determinar si el

usuario tiene acceso a la red. Este protocolo está documentado en RFC 1492.

Cisco ha mejorado este protocolo muchas veces, y su implementación (XTACACS) separa la

autentificación, autorización y la contabilidad.

Kerberos

Un protocolo de autenticación ampliamente utilizando en muchos sistemas reales (como Windows

y Linux) es Kerberos. Su nombre proviene del perro de múltiples cabezas de la mitología griega que

custodiaba la entrada de Hades (para tener fuera a las personas indeseables). Kerberos se diseñó

en el MIT para permitir que los usuarios de estaciones de trabajo accedieran a los recursos de la

red en una forma segura. Kerberos se basa exclusivamente en el cifrado simétrico, dejando de

lado el cifrado de clave pública.

El primer enfoque que se publicó sobre Kerberos presentaba los siguientes requisitos:

Seguridad: un observador de la red no debería poder obtener la información necesaria

para hacerse pasar por un usuario. Es decir, Kerberos debería ser lo suficientemente

robusto para que un posible oponente no lo considere un punto débil.

Fiabilidad: para todos los servicios que utilizan Kerberos para el control de acceso, la falta

de disponibilidad del servicio de Kerberos implica una falta de disponibilidad de los

servicios que se proporcionan. Así, Kerberos debería ser muy fiable y emplear una

arquitectura de servidores distribuida en la que un sistema pudiera disponer de copias de

otro.

Transparencia: aparte del requisito de introducir una contraseña, es preferible que el

usuario no sea consciente de que está teniendo lugar la autentificación.

Escalabilidad: el sistema debería poder dar cabida a un gran número de clientes y

servidores, lo cual sugiere una arquitectura distribuida modular.

Para lograr estos requisitos, el esquema general de Kerberos es el de un servicio de autentificación

de una tercera parte confiable. Es confiable en el sentido de que los clientes y los servidores

confían en Kerberos para que medie en su autentificación mutua. Suponiendo que el protocolo de

Kerberos está bien diseñado, el servicio de autentificación es seguro si el servidor Kerberos es

seguro en sí mismo.

2. Algoritmos de Hash MD5 y SHA-1

Un algoritmo de hash se refiere a una función o método para generar claves que representen de

manera casi única a un documento, registro, archivo, etc. Además, las funciones hash se utilizan

para ``comprimir'' un mensaje de longitud variable tomado como entrada a uno de tamaño fijo

(valor hash) producido como salida, reduciendo el tiempo de generación de firmas por algoritmos

de firmas digitales.

Cuando un usuario desea acceder al sistema, se le aplica una función hash a la contraseña dada

por él y el valor hash obtenido se compara con el valor almacenado en la base de datos, si son

iguales, el usuario tiene acceso. Si la contraseña almacenada en la base de datos estuviera

``comprometida'', sería difícil obtener la contraseña dada por el usuario.

Una función hash debe tener las características básicas siguientes:

- La entrada puede ser de cualquier tamaño.

- El valor hash (salida) debe tener un tamaño fijo.

- Estar libre de colisiones. Dadas dos cadenas de entrada “a” y “b”, no se obtenga el mismo

valor hash tal que H(a) = H(b).

- Irreversible; es decir, dado un valor hash “x”, no sea posible encontrar una entrada “y”, tal

que H(y) = x.

- Rapidez y facilidad de obtener un resultado (valor hash).

Algoritmo MD5

El algoritmo de hash más utilizado en estos momentos es el MD5. Este algoritmo fue desarrollado

por Ronald Rivest en 1995 y está basado en dos algoritmos anteriores MD2 y MD4. Todos estos

protocolos producen un número de 128 bits a partir de un texto de cualquier longitud.

MD4 fue desarrollado para mejorar el rendimiento de MD2, sin embargo, varios problemas fueron

detectados y en 1996 fueron publicados elementos que hacen hoy en día inservible el algoritmo.

MD5 sustituyó a MD4 y aunque no tiene el rendimiento de su antecesor, hasta el momento no han

sido publicados elementos que comprometan su integridad y funcionamiento.

Este algoritmo opera truncando los bits de una manera tan complicada que cada bit de salida es

afectado por cada bit de entrada. Muy brevemente, comienza a rellenar el mensaje a una longitud

de 448 bits (módulo 512). Después, la longitud original del mensaje se agrega como entero de 64

bits para dar una entrada total cuya longitud es un múltiplo de 512 bits. El último paso del cálculo

previo es la inicialización de un búfer de 128 bits a un valor fijo.

Ahora comienza el cálculo. Cada ronda toma un bloque de 512 bits de entrada y lo mezcla por

completo por el búfer de 128 bits. Por si fuera poco, se introduce también una tabla construida a

partir de la función seno. El objetivo de usar una función conocida como el seno no es porque sea

más aleatoria que un generador de números aleatorios, sino para evitar cualquier sospecha de que

el diseñador construyó una puerta ingeniosa por la que sólo él puede entrar. La negativa de IBM

de hacer públicos los principios en que se basó el diseño de las cajas S del DES dio pie a una gran

cantidad de especulación sobre las puertas traseras. Se hacen cuatro rondas por cada bloque de

entrada. Este proceso continua hasta que todos los bloques de entrada se han consumido. El

contenido del búfer de 128 bits forma el resumen del mensaje.

Dicho de otras palabras, MD5 comienza rellenando el mensaje a una longitud congruente en

módulo 448 mod 512. Es decir la longitud del mensaje es 64 bits menos que un entero múltiplo de

512. El relleno consiste en un bit en 1 seguido por cuantos bits en 0 sean necesarios. La longitud

original del mensaje es almacenada en los últimos 64 bits del relleno.

Figura 6. Algoritmo MD5

Adicionalmente se inicializa, con un valor fijo, un buffer de 128 bits. Este buffer puede verse

como 4 registros de 32 bits (A, B, C, D) y son inicializados con los siguientes valores hexadecimales:

A=67452301; B=EFCDAB89; C=98BADCFE; D=10325476

Durante varias rondas de procesamiento el algoritmo toma bloques de 512 bits de la entrada y los

mezcla con los 128 bits del buffer. Este proceso es repetido hasta que todos los bloques de

entrada han sido consumidos. El valor resultante en el buffer es el hash del mensaje.

Algoritmo SHA-1

Este algoritmo fue desarrollado por el NIST y publicado en 1973 como un estándar federal de

procesamiento de información; una versión revisada, a la que normalmente se conoce como SHA-

1 se publicó como FIPS PUB 180-1 en 1995.

El algoritmo toma como entrada un mensaje con una longitud máxima menor que 264 y produce

como salida un resumen de mensaje de 160 bits. La entrada se procesa en bloques de 512 bits. El

procesamiento consiste en los siguientes pasos:

Paso 1. Añadir bits de relleno. El mensaje se rellena para que su longitud sea congruente con 448

módulo 512 (longitud = 448 mod 512). Es decir, la longitud del mensaje de relleno es 64 bits

menor que un múltiplo de 512 bits. El relleno se añade aunque el mensaje ya tenga la longitud

deseada. Así, el número de bits de relleno se encuentra entre 1 y 512. El relleno está formado por

un único bit 1 seguido del número necesario de bits 0.

Paso 2. Añadir longitud. Se añade un bloque de 64 bits al mensaje. Este bloque se trata como un

entero sin signo de 64 bits y contiene la longitud del mensaje original. La inclusión de un valor de

longitud dificulta un tipo de ataque conocido como ataque de relleno. El resultado de los dos

primeros pasos da lugar a un mensaje que es un entero múltiplo de 512 bits de longitud.

Paso 3. Iniciar el búfer MD. Un búfer de 160 bits se usa para tener resultados intermedios y finales

de la función hash. El búfer puede representarse como cinco registros de 32 bits (A, B, C, D, E).

Paso 4. Procesar el mensaje en bloques de 512 bits (16 palabras). El corazón del algoritmo es un

módulo, conocido como función de compresión, que consiste en cuatro etapas de procesamiento

de 20 pasos cada una.

Las cuatro etapas tienen una estructura similar, pero cada una usa una función lógica primitiva

diferente. Cada etapa toma como entrada el bloque de 512 bits que se está procesando y el valor

ABCDE del búfer de 160 bits y actualiza los contenidos del búfer. Cada etapa también hace uso de

una constante adicional K, que indica uno de los 80 pasos a lo largo de cinco etapas.

La salida de la cuarta etapa (octogésimo paso) se añade a la entrada de la primera etapa. La suma

se hace independientemente para cada una las cinco palabras en el búfer con cada una de las

palabras correspondientes en la entrada del bloque usando suma módulo 232.

Paso 5. Salida. Después de que todos los bloques de 512 bits han sido procesados, la salida del L-

ésimo estado es el resumen del mensaje de 160 bits.

3. Certificados digitales 9

Un certificado digital que es archivo digital intransferible y no modificable, emitido por una tercera

parte de confianza (CA, Certified Authority), que asocia a una persona o entidad una clave pública.

Un certificado digital que siga el estándar X509v3, utilizado por los navegadores, contiene la

siguiente información:

- Identificación del titular del certificado: Nombre, dirección, etc.

- Clave pública del titular del certificado.

- Fecha de validez.

- Número de serie.

- Identificación del emisor del certificado.

Un ejemplo sería:

==========================================================================

issuer: C=ES ST=L=Barcelona O=SECURITY ZUTANEZ OU=Division de certificados CN=Fulano Menganez [email protected] subject: C=ES ST=O=OU=CN=Jaimito Email=Jaimito@jaimito serial: 15

Certificate: Data: Version: 1 (0x0) Serial Number: 21 (0x15) Signature Algorithm: md5WithRSAEncryption Issuer: C=ES ST=L=Barcelona O=SECURITY ZUTANEZ OU=Division de certificados CN=Fulano Menganez [email protected] Validity Not Before: Nov 18 15:15:31 1998

9 Criptonomicón. (2009). Qué son los certificados digitales. Boletín de criptonomicón. Año II No 51,

9/06/2090 [en línea] http://www.iec.csic.es/criptonomicon/boletines/boletin51.txt consultado el 22/Oct/2010.

GMT Not After : Nov 13 15:15:31 1999 GMT Subject: C=ES, ST=, O=, OU=, CN=Jaimito Email=Jaimito@jaimito Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit):

00:9e:74:de:c9:1a:6b:f4:fe:d1:04:30:58:7e:8b:

51:7a:98:23:e9:45:a9:c2:a7:7c:f8:f8:b5:9a:a2:

ea:c1:99:68:ba:f7:c3:d8:06:05:1b:6a:47:a1:44:

5c:2c:a6:e0:4b:6f:ce:02:c4:06:32:20:34:be:13:

97:39:a3:aa:6f:2f:41:a7:bc:14:c8:f3:0c:ad:9d:

09:63:8a:f5:eb:60:5b:06:a6:01:fb:1a:07:b2:c6:

39:48:bb:b7:00:56:4e:20:6d:87:3f:67:0b:2f:f4:

b0:5f:74:7f:90:6b:b4:47:6f:56:1a:b5:c5:42:54:

9b:e5:e3:00:e2:4f:e3:14:47

Exponent: 65537 (0x10001) Signature Algorithm: md5WithRSAEncryption

3b:2b:e9:ff:48:48:35:ab:30:5c:e2:d1:88:c9:29:8b:bc:09:

b2:58:80:17:9c:e7:08:0a:7d:8a:5e:46:a8:83:3b:ee:84:de:

62:e3:ea:51:cb:92:bc:fa:db:90:bd:cd:9f:25:d4:4a:48:63:

ac:b8:93:f9:dc:9c:cf:ef:fd:45

- -----BEGIN CERTIFICATE-----

MIICOzCCAeUCARUwDQYJKoZIhvcNAQEEBQAwgaYxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlDYXRhbHVueWExDDAKBgNVBAcTA0JjbjEVMBMGA1UEChMMU0VDVVJJVFkgQkNOMRowGAYDVQQLExFzZWNjaW8gZCdlbXByZXNlczEdMBsGA1UEAxMURGF2aWQgR3VlcnJlcm8gVmlkYWwxIzAhBgkqhkiG9w0BCQEWFGd1ZXJyZXJvQGdyZWMudXBjLmVzMB4XDTk4MTExODE1MTUzMVoXDTk5MTExMzE1MTUzMVowZjELMAkGA1UEBhMCRVMxCTAHBgNVBAgTADEJMAcGA1UEChMAMQkwBwYDVQQLEwAxGDAWBgNVBAMUD0NhbHZpbiAmIEhvYmJlczEcMBoGCSqGSIb3DQEJARYNY2FsdmluQGhvYmJlczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAnnTeyRpr9P7RBDBYfotRepgj6UWpwqd8+Pi1mqLqwZlouvfD2AYFG2pHoURcLKbgS2/OAsQGMiA0vhOXOaOqby9Bp7wUyPMMrZ0JY4r162BbBqYB+xoHssY5SLu3AFZOIG2HP2cLL/SwX3R/kGu0R29WGrXFQlSb5eMA4k/jFEcCAwEAATANBgkqhkiG9w0BAQQFAANBADsr6f9ISDWrMFzi0YjJKYu8CbJYgBec5wgKfYpeRqiDO+6E3mLj6lHLkrz625C9zZ8l1EpIY6y4k/ncnM/v/UU=

- -----END CERTIFICATE-----

==========================================================================

Este es un certificado, válido durante un año, emitido por la autoridad certificadora SECURITY

ZUTANEZ para el usuario Jaimito cuya clave pública RSA es:

==========================================================================

exponente: 65537 modulo: 111271955529718274977020001053287254971153574325639486465242654264911453961403088231010544304032158540188499185504478881755061645893205889184340440484177173313682979482908132499473623983651771075446109365198267065678811090107152632592388889101510157610404623906744451048525264576885364836810773621503974118471

==========================================================================

Todos los datos están firmados por la CA usando la función hash MD5 y su clave privada RSA.

Una firma digital es el equivalente de la firma convencional, en el sentido de que es un añadido al

final del mensaje conforme se está de acuerdo con lo que allí se dice. Formalmente, una firma

digital es una transformación de un mensaje de forma que cualquier persona con conocimiento

del mensaje y de la clave pública del firmante pueda comprobar que dicha transformación ha sido

realizada realmente por el firmante.

Para verificar que el certificado es correcto deberíamos hacernos con el certificado digital emitido

para dicha CA por una segunda CA. Para verificar la veracidad de este segundo certificado

deberíamos obtener el certificado digital emitido para segunda CA por una tercera CA. Como este

proceso podría eternizarse, existen las llamadas autoridades raíz que firman sus propios

certificados, un ejemplo de autoridad raíz es Verisign.

Aparte de los datos del emisor y del propietario del certificado éste puede contener información

referente a las limitaciones que se hayan establecido para su uso: e-mail, www, etc.

Como puede observarse en el certificado del ejemplo, no existe ninguna referencia a algoritmos

de clave secreta. Cuando navegamos con Netscape y recibimos un certificado de un servidor web

'seguro' aparece la ventana:

==========================================================================

New Site Certificate

Here is the Certificate that is being presented:

Certificate for: UPC Signed by: UPC Encryption: Highest Grade (RC4 with 128-bit secret key)

The signer of the Certificate promises you that the holder of this Certificate is who they say they are. The encryption level is an indication of how difficult it would be for someone to eavesdrop on any information exchanged between you and this web site.

==========================================================================

La información ''Encryption: Highest Grade (RC4 with 128-bit secret key)'' no tiene nada que ver

con el certificado presentado por el servidor, sólo depende del navegador utilizado y del servidor,

a distinto navegador distinto grado de cifrado.

Aunque desde un punto de vista técnico cualquiera puede erigirse en CA (sólo es necesario

disponer de un par de claves pública-privada para firmar y verificar la firma, y todo aquel que

desee obtener un certificado las tiene), una CA, además de emitir certificados, debería ofrecer los

servicios siguientes:

- Búsqueda de certificados: Una persona puede querer buscar el certificado referente a otra

persona o entidad.

- Revocación: Si un certificado se pierde, el titular debe poder informar a la CA para que lo

anule y emita otro. También si la clave privada ha quedado comprometida debe ser

posible su revocación.

- Suspensión: La CA debe suspender la validez de un certificado si se hace un uso anormal

de él.

- Estado del certificado: Las personas a las que se les presenta un certificado deben de

poder comprobar que no ha sido revocado o suspendido.

Actualmente aún se está desarrollando el marco legal que regule el reconocimiento de la validez

legal de las firmas digitales y cuáles han de ser los requerimientos mínimos que han de reunir las

autoridades certificadoras para ser reconocidas como tales.

Unidad IV. Firewalls

Objetivo. El alumno implementará mecanismos de seguridad firewall, aplicando reglas de filtrado

y directivas de control de acceso a redes para garantizar la seguridad de la información de la

organización.

La capacidad de conectar a una computadora, en cualquier lugar, con cualquier computadora,

desde cualquier lugar, es una ventaja a medias. Para los usuarios domésticos, navegar en internet

significa mucha diversión. Para los gerentes de seguridad empresarial, es una pesadilla. Muchas

empresas tienen en línea grandes cantidad de información confidencial –secretos de comercio,

planes de desarrollo de productos, estrategias de mercadotecnia, análisis financieros, etc. Si esta

información cae en manos de un competidor podría tener graves consecuencias.

Además del peligro de la fuga de información, también existe el peligro de la infiltración de la

información. En particular, virus, gusanos y otras pestes digitales pueden abrir brechas de

seguridad, destruir valiosos datos y hacer que los administradores pierdan mucho tiempo tratando

de arreglar el daño que hayan hecho. Por lo general, son traídos por empleados descuidados que

desean ejecutar algún nuevo juego ingenioso, o

visitar algún sitio web poco confiable. En

consecuencia se necesitan mecanismos para

mantener adentro los bits buenos de los bits

malos.

Los firewalls (servidores de seguridad) son

simplemente una adaptación moderna de la

vieja estrategia medieval de seguridad: excavar

un foso defensivo profundo alrededor de su

castillo. Este diseño obligaba a que todos los

que entraran o salieran del castillo pasaran a

través de un puente levadizo, en donde los

encargados de la E/S los podían inspeccionar. En

las redes, es posible el mismo truco: una

compañía puede tener muchas LANs conectadas

de formas arbitrarias, pero se obliga a que todo

el tráfico desde o hacia la compañía pase a

través de un puente levadizo electrónico

(firewall). Figura 7. Ejemplo de un firewall

Un firewall es simplemente un sistema diseñado para prevenir acceso no autorizado de o hacia

una red privada. Los firewalls pueden ser implementados mediante hardware o software, o una

combinación de ellos.

1. Medidas de seguridad preventivas y correctivas aplicables a un firewall

Generalmente, los firewalls son configurados para proteger contra accesos desde el mundo

exterior. Esto ayuda a prevenir a los accesos no autorizados a máquinas de tu red. Firewalls más

sofisticados bloquean tráfico del exterior al interior, pero se permite a los usuarios del interior

comunicarse con el exterior de una forma más flexible.

Existen tres decisiones básicas en el diseño o la configuración de un firewall; la primera de ellas, la

más importante, hace referencia a la política de seguridad de la organización propietaria del

firewall: evidentemente, la configuración y el nivel de seguridad potencial será distinto en una

empresa que utilice un firewall para bloquear todo el tráfico externo hacia el dominio de su

propiedad (excepto, quizás, las consultas a su página web) frente a otra donde sólo se intente

evitar que los usuarios internos pierdan el tiempo en la red, bloqueando por ejemplo todos los

servicios de salida al exterior excepto el correo electrónico. Sobre esta decisión influyen, aparte de

motivos de seguridad, motivos administrativos de cada organismo.

La segunda decisión de diseño a tener en cuenta es el nivel de monitorización, redundancia y

control deseado en la organización; una vez definida la política a seguir, hay que definir cómo

implementarla en el firewall indicando básicamente qué se va a permitir y qué se va a denegar.

Para esto existen dos aproximaciones generales: o bien se adopta una postura restrictiva

(denegamos todo lo que explícitamente no se permita) o bien una permisiva (permitimos todo

excepto lo explícitamente negado); evidentemente es la primera la más recomendable de cara a la

seguridad, pero no siempre es aplicable debido a factores no técnicos sino humanos (esto es, los

usuarios y sus protestas por no poder ejecutar tal o cual aplicación a través del firewall).

Por último, la tercera decisión a la hora de instalar un firewall es meramente económica: en

función del valor estimado de lo que deseemos proteger, debemos gastar más o menos dinero, o

no gastar nada. Un firewall puede no entrañar gastos extras para la organización, o suponer un

desembolso de varios de miles de pesos: seguramente un departamento o laboratorio con pocos

equipos en su interior puede utilizar un PC con Linux, Solaris o FreeBSD a modo de firewall, sin

gastarse nada en él (excepto unas horas de trabajo y unas tazas de café), pero esta aproximación

evidentemente no funciona cuando el sistema a proteger es una red de tamaño considerable; en

este caso se pueden utilizar sistemas propietarios, que suelen ser caros, o aprovechar los routers

de salida de la red, algo más barato pero que requiere más tiempo de configuración que los

cortafuegos sobre Unix en PC de los que hemos hablado antes. De cualquier forma, no es

recomendable a la hora de evaluar el dinero a invertir en el firewall fijarse sólo en el costo de su

instalación y puesta a punto, sino también en el de su mantenimiento.

Puertos

Muchas veces queremos acceder a un servidor para obtener uno de sus servicios y solamente uno

de ellos y no los demás. Para ello, todos los servicios se organizan o mapean en toda computadora

de una forma y en esta forma de organizar los servicios entran en juego los puertos.

Pensemos en una máquina expendedora de... por ejemplo, combinados con cierta graduación

alcohólica (o no alcohólica para los abstemios) imaginemos que dicha máquina cuando pulsamos

el 25 nos sirve un... Jack Daniel's con Cola y en el 110 nos sirve un Vodka con lima. Suponemos que

yo quiero el servicio que me da el número (puerto) 25 y no el del 110, entonces lo que hacemos es

meter el dinero en la máquina (nos conectamos a ella) y le decimos que queremos lo que hay en el

estante con el número 25 (nos conectamos al puerto 25). Pues esto mismo pasa con los servicios

de un servidor.

Cuando hacemos un request a google.com para buscar algo, estamos pidiéndole a la dirección IP de google (sea cual sea) en el puerto 80 (el estándar del WWW) que nos busque fotos del volcán Popocatépetl (por citar un ejemplo). Es decir es como si en la expendedora pulsamos el 80 para obtener un licor de mora. Lo que pasa es que nuestro navegador nos hace transparente esa petición al puerto, porque por defecto él sabe que todo lo que escribamos en la barra de direcciones se refiere a servicios web que se hospedan en los puertos 80 de gran parte de los servidores del mundo y es por ello que si yo tecleo http:/ /www.google.com me lleva a la página de google y si tecleo http://www.google.com:80 también, lo que pasa es que sería una redundancia. Números de puertos Los números de puertos son divididos en 3 rangos:

- Puertos bien conocidos (0 al 1023) - Puertos registrados (1024 al 49151) - Puertos dinámicos o privados (49152 al 65535)

Puerto Número Descripción

FTP 20, 21 Transferencia de archivos SSH 22 Conexión remota

Telnet 23 Conexión remota SMTP 25 Transferencia de correo DNS 53 Servidor de nombres de dominio HTTP 80 Web POP 110 Protocolo de oficina de correo

Samba 139 Protocolo de archivos compartidos IMAP 143 Protocolo de acceso de mensajes de internet HTTPS 443 Web seguro

Tabla 2. Ejemplo de número de puertos.

Dependiendo de las necesidades de cada red, puede ponerse uno o más firewalls para establecer distintos perímetros de seguridad en torno a un sistema. Es frecuente también que se necesite exponer algún servidor a internet (como es el caso de un servidor web, un servidor de correo,

etc.), y en esos casos obviamente en principio se debe aceptar cualquier conexión a ellos. Lo que se recomienda en esa situación es situar ese servidor en lugar aparte de la red, el que denominamos DMZ o zona desmilitarizada. El firewall tiene entonces tres entradas:

Figura 8. Esquema de firewall con DMZ

En la zona desmilitarizada se pueden poner tantos servidores como se necesiten. Con esta arquitectura, permitimos que el servidor sea accesible desde internet de tal forma que si es atacado y se gana acceso a él, la red local sigue protegida por el firewall. Esta estructura de DMZ puede hacerse también con un doble firewall (aunque como se ve se puede usar un único dispositivo con al menos tres interfaces de red). Sería un esquema como este:

Figura 9. Esquema de red con doble firewall

2. Técnicas de implementación de Firewall

Conceptualmente hay dos tipos de firewalls, nivel de red y nivel de aplicación. Los firewalls de nivel de red toman sus acciones en función del origen, la dirección de destino y el puerto en cada paquete IP. Los modernos firewalls de este tipo se han sofisticado y mantienen información respecto del estado de las conexiones que están activas a través de él. Este tipo de firewalls tienden a ser muy rápidos y son transparentes al usuario.

Los firewalls de nivel de aplicación por lo general son hosts corriendo proxy servers, que no permiten el tráfico directo entre redes, manteniendo una elaborada auditoria y logeo del tráfico que pasa a través de él. Este tipo de firewall puede ser utilizado para realizar las tareas relativas al NAT, debido a que como las comunicaciones van de un lado hacia el otro se puede enmascarar la ubicación original. Este tipo tiende a proveer una auditoría más detallada y un mayor grado de seguridad que los de nivel de red. Los routers de filtro de paquetes, que corresponden al primer grupo, realizan una decisión del tipo pasa no pasa para cada paquete que recibe. El router examina cada paquete para determinar si se aplican sus reglas de filtrado. Las reglas de filtrado se basan en la información contenida en el encabezado del paquete. Esta información consiste en la IP de origen, la IP de destino, el protocolo encapsulado (TCP, UDP, ICMP), el puerto TCP/UDP de origen y de destino, etc. Toda esta información es controlada contra las reglas de filtrado definidas, pudiendo ser enrutada si existe una regla que lo permite, descartada si una regla así lo indica y si no existe regla comparable un parámetro previamente configurado determinará si el paquete pasa o no. Dentro de este tipo están los que filtran en función del servicio involucrado. Esto es posible pues hay muchos servicios para los cuales están normalizados los puertos en los que escuchan, por lo cual se pueden definir reglas que involucren el puerto, definiendo la aceptación o el rechazo. Por otro lado frente a diferentes ataques que se fueron produciendo surgieron otros firewalls cuyas reglas son independientes del servicio; estas reglas exigen un análisis más detallado que involucra el ruteo, las opciones de IP, verificación de los fragmentos de desplazamiento y puntos por el estilo.La mayoría de los firewalls implementados sobre Internet están desarrollados sobre el concepto de filtrado de paquetes. Este tipo de firewalls no son difíciles de configurar debido a que su software contiene una serie de reglas previamente configuradas y fundamentalmente son transparentes al usuario y no exigen instalar ningún software adicional en los hosts. Por otro lado cuando se debe personalizar de manera tal de adaptarlo a aplicaciones específicas de cada empresa la tarea se puede hacer algo compleja pues exige una figura de administrador que debe conocer los servicios de Internet, los distintos encabezados de los paquetes, los distintos valores que se espera encontrar en los campos a analizar. Si se requiere un filtrado complejo, las reglas pueden volverse demasiado largas con la consecuencia de una difícil administración y seguimiento. Como se mencionó, los filtros a nivel de aplicación permiten aplicar un esquema de seguridad más estricto. En estos firewalls se instala un software específico para cada aplicación a controlar (un proxy server); de hecho si no se instala los servicios relativos a la aplicación las comunicaciones no podrán ser enrutadas, punto que no se convierte en trivial pues de esta forma estamos garantizando que todas aquellas nuevas aplicaciones desconocidas no podrán acceder a nuestra red. Otra ventaja que trae el uso de este tipo de firewall es que permite el filtrado del protocolo, por ejemplo se podría configurar el proxy server que atiende el FTP para que pueda aceptar conexiones pero denegar el uso del comando put asegurando de esta forma que no nos puedan escribir ningún archivo o que impida navegar por el FS; esto es lo que hoy se conoce como un FTP anónimo. Este tipo de configuración incrementa los costos de la plataforma sobre la cual funcionará el filtro.