Post on 11-Jun-2018
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=Fulano@fulanez.es 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=Fulano@fulanez.es 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.