Amenazas a la seguridad
de información
Servicios de Seguridad
Mecanismos de Seguridad
Gestión de claves
CRIPTOGRAFIA Y SEGURIDAD
En estas páginas nos centraremos en la seguridad en la comunicación a través de redes, especialmente Internet, consistente en prevenir, impedir, detectar y corregir violaciones a la seguridad durante la transmisión de información, más que en la seguridad en los ordenadores, que abarca la seguridad de sistemas operativos y bases de datos. Consideraremos la información esencialmente en forma digital y la protección se asegurará mayormente mediante medios lógicos, más que físicos.
Amenazas deliberadas a la seguridad de la información
Se entiende por amenaza una condición del entorno del sistema de información
(persona, máquina, suceso o idea) que, dada una oportunidad, podría
dar lugar a que se produjese una violación de la seguridad (confidencialidad,
integridad, disponibilidad o uso legítimo). La política de seguridad
y el análisis de riesgos habrán identificado las amenazas que
han de ser contrarrestadas, dependiendo del diseñador del sistema de
seguridad especificar los servicios y mecanismos de seguridad necesarios.
Las amenazas a la seguridad en una red pueden caracterizarse modelando el sistema
como un flujo de información desde una fuente, como por ejemplo un fichero
o una región de la memoria principal, a un destino, como por ejemplo
otro fichero o un usuario. Un ataque no es más que la realización
de una amenaza.
Las cuatro categorías generales de amenazas o ataques son las siguientes:
· Interrupción: un recurso del sistema es destruido o se
vuelve no disponible. Este es un ataque contra la disponibilidad. Ejemplos de
este ataque son la destrucción de un elemento hardware, como un disco
duro, cortar una línea de comunicación o deshabilitar el sistema
de gestión de ficheros.
· Intercepción: una entidad no autorizada consigue acceso
a un recurso. Este es un ataque contra la confidencialidad. La entidad no autorizada
podría ser una persona, un programa o un ordenador. Ejemplos de este
ataque son pinchar una línea para hacerse con datos que circulen por
la red y la copia ilícita de ficheros o programas (intercepción
de datos), o bien la lectura de las cabeceras de paquetes para desvelar la identidad
de uno o más de los usuarios implicados en la comunicación observada
ilegalmente (intercepción de identidad).
· Modificación: una entidad no autorizada no sólo
consigue acceder a un recurso, sino que es capaz de manipularlo. Este es un
ataque contra la integridad. Ejemplos de este ataque son el cambio de valores
en un archivo de datos, alterar un programa para que funcione de forma diferente
y modificar el contenido de mensajes que están siendo transferidos por
la red.
· Fabricación: una entidad no autorizada inserta objetos
falsificados en el sistema. Este es un ataque contra la autenticidad. Ejemplos
de este ataque son la inserción de mensajes espurios en una red o añadir
registros a un archivo.
Estos ataques se pueden asimismo clasificar de forma útil en términos
de ataques pasivos y ataques activos.
1.Ataques pasivos
En los ataques pasivos el atacante no altera la comunicación, sino que
únicamente la escucha o monitoriza, para obtener información que
está siendo transmitida. Sus objetivos son la intercepción de
datos y el análisis de tráfico, una técnica más
sutil para obtener información de la comunicación, que puede consistir
en:
· Obtención del origen y destinatario de la comunicación,
leyendo las cabeceras de los paquetes monitorizados.
· Control del volumen de tráfico intercambiado entre las entidades
monitorizadas, obteniendo así información acerca de actividad
o inactividad inusuales.
· Control de las horas habituales de intercambio de datos entre las entidades
de la comunicación, para extraer información acerca de los períodos
de actividad.
Los ataques pasivos son muy difíciles de detectar, ya que no provocan
ninguna alteración de los datos. Sin embargo, es posible evitar su éxito
mediante el cifrado de la información y otros mecanismos que se verán
más adelante.
2.Ataques activos
Estos ataques implican algún tipo de modificación del flujo de
datos transmitido o la creación de un falso flujo de datos, pudiendo
subdividirse en cuatro categorías:
· Suplantación de identidad: el intruso se hace pasar por
una entidad diferente. Normalmente incluye alguna de las otras formas de ataque
activo. Por ejemplo, secuencias de autenticación pueden ser capturadas
y repetidas, permitiendo a una entidad no autorizada acceder a una serie de
recursos privilegiados suplantando a la entidad que posee esos privilegios,
como al robar la contraseña de acceso a una cuenta.
· Reactuación: uno o varios mensajes legítimos son
capturados y repetidos para producir un efecto no deseado, como por ejemplo
ingresar dinero repetidas veces en una cuenta dada.
· Modificación de mensajes: una porción del mensaje
legítimo es alterada, o los mensajes son retardados o reordenados, para
producir un efecto no autorizado. Por ejemplo, el mensaje "Ingresa un millón
de pesetas en la cuenta A" podría ser modificado para decir "Ingresa
un millón de pesetas en la cuenta B".
· Degradación fraudulenta del servicio: impide o inhibe
el uso normal o la gestión de recursos informáticos y de comunicaciones.
Por ejemplo, el intruso podría suprimir todos los mensajes dirigidos
a una determinada entidad o se podría interrumpir el servicio de una
red inundándola con mensajes espurios. Entre estos ataques se encuentran
los de denegación de servicio, consistentes en paralizar temporalmente
el servicio de un servidor de correo, Web, FTP, etc.
Para hacer frente a las amenazas a la seguridad del sistema se definen una serie de servicios para proteger los sistemas de proceso de datos y de transferencia de información de una organización. Estos servicios hacen uso de uno o varios mecanismos de seguridad. Una clasificación útil de los servicios de seguridad es la siguiente:
· Confidencialidad: requiere que la información sea accesible
únicamente por las entidades autorizadas. La confidencialidad de datos
se aplica a todos los datos intercambiados por las entidades autorizadas o tal
vez a sólo porciones o segmentos seleccionados de los datos, por ejemplo
mediante cifrado. La confidencialidad de flujo de tráfico protege la
identidad del origen y destino(s) del mensaje, por ejemplo enviando los datos
confidenciales a muchos destinos además del verdadero, así como
el volumen y el momento de tráfico intercambiado, por ejemplo produciendo
una cantidad de tráfico constante al añadir tráfico espurio
al significativo, de forma que sean indistinguibles para un intruso. La desventaja
de estos métodos es que incrementan drásticamente el volumen de
tráfico intercambiado, repercutiendo negativamente en la disponibilidad
del ancho de banda bajo demanda.
· Autenticación: requiere una identificación correcta
del origen del mensaje, asegurando que la entidad no es falsa. Se distinguen
dos tipos: de entidad, que asegura la identidad de las entidades participantes
en la comunicación, mediante biométrica (huellas dactilares, identificación
de iris, etc.), tarjetas de banda magnética, contraseñas, o procedimientos
similares; y de origen de información, que asegura que una unidad de
información proviene de cierta entidad, siendo la firma digital el mecanismo
más extendido. Si le interesa, puede leer el curso de control de acceso
en Internet mediante técnicas básicas.
· Integridad: requiere que la información sólo pueda
ser modificada por las entidades autorizadas. La modificación incluye
escritura, cambio, borrado, creación y reactuación de los mensajes
transmitidos. La integridad de datos asegura que los datos recibidos no han
sido modificados de ninguna manera, por ejemplo mediante un hash criptográfico
con firma, mientras que la integridad de secuencia de datos asegura que la secuencia
de los bloques o unidades de datos recibidas no ha sido alterada y que no hay
unidades repetidas o perdidas, por ejemplo mediante time-stamps.
· No repudio: ofrece protección a un usuario frente a que
otro usuario niegue posteriormente que en realidad se realizó cierta
comunicación. Esta protección se efectúa por medio de una
colección de evidencias irrefutables que permitirán la resolución
de cualquier disputa. El no repudio de origen protege al receptor de que el
emisor niegue haber enviado el mensaje, mientras que el no repudio de recepción
protege al emisor de que el receptor niegue haber recibido el mensaje. Las firmas
digitales constituyen el mecanismo más empleado para este fin.
· Control de acceso: requiere que el acceso a los recursos (información,
capacidad de cálculo, nodos de comunicaciones, entidades físicas,
etc.) sea controlado y limitado por el sistema destino, mediante el uso de contraseñas
o llaves hardware, por ejemplo, protegiéndolos frente a usos no autorizados
o manipulación.
· Disponibilidad: requiere que los recursos del sistema informático
estén disponibles a las entidades autorizadas cuando los necesiten.
No existe un único mecanismo capaz de proveer todos los servicios anteriormente citados, pero la mayoría de ellos hacen uso de técnicas criptográficas basadas en el cifrado de la información. Los más importantes son los siguientes:
· Intercambio de autenticación: corrobora que una entidad,
ya sea origen o destino de la información, es la deseada, por ejemplo,
A envía un número aleatorio cifrado con la clave pública
de B, B lo descifra con su clave privada y se lo reenvía a A, demostrando
así que es quien pretende ser. Por supuesto, hay que ser cuidadoso a
la hora de diseñar estos protocolos, ya que existen ataques para desbaratarlos.
· Cifrado: garantiza que la información no es inteligible
para individuos, entidades o procesos no autorizados (confidencialidad). Consiste
en transformar un texto en claro mediante un proceso de cifrado en un texto
cifrado, gracias a una información secreta o clave de cifrado. Cuando
se emplea la misma clave en las operaciones de cifrado y descifrado, se dice
que el criptosistema es simétrico. Estos sistemas son mucho más
rápidos que los de clave pública, resultando apropiados para funciones
de cifrado de grandes volúmenes de datos. Se pueden dividir en dos categorías:
cifradores de bloque, que cifran los datos en bloques de tamaño fijo
(típicamente bloques de 64 bits), y cifradores en flujo, que trabajan
sobre flujos continuos de bits. Cuando se utiliza una pareja de claves para
separar los procesos de cifrado y descifrado, se dice que el criptosistema es
asimétrico o de clave pública. Una clave, la privada, se mantiene
secreta, mientras que la segunda clave, la pública, puede ser conocida
por todos. De forma general, las claves públicas se utilizan para cifrar
y las privadas, para descifrar. El sistema tiene la propiedad de que a partir
del conocimiento de la clave pública no es posible determinar la clave
privada. Los criptosistemas de clave pública, aunque más lentos
que los simétricos, resultan adecuados para las funciones de autenticación,
distribución de claves y firmas digitales.
· Integridad de datos: este mecanismo implica el cifrado de una
cadena comprimida de datos a transmitir, llamada generalmente valor de comprobación
de integridad (Integrity Check Value o ICV). Este mensaje se envía al
receptor junto con los datos ordinarios. El receptor repite la compresión
y el cifrado posterior de los datos y compara el resultado obtenido con el que
le llega, para verificar que los datos no han sido modificados.
· Firma digital: este mecanismo implica el cifrado, por medio
de la clave secreta del emisor, de una cadena comprimida de datos que se va
a transferir. La firma digital se envía junto con los datos ordinarios.
Este mensaje se procesa en el receptor, para verificar su integridad. Juega
un papel esencial en el servicio de no repudio.
· Control de acceso: esfuerzo para que sólo aquellos usuarios
autorizados accedan a los recursos del sistema o a la red, como por ejemplo
mediante las contraseñas de acceso.
· Tráfico de relleno: consiste en enviar tráfico espurio junto con los datos válidos para que el atacante no sepa si se está enviando información, ni qué cantidad de datos útiles se está transmitiendo.
· Control de encaminamiento: permite enviar determinada información
por determinadas zonas consideradas clasificadas. Asimismo posibilita solicitar
otras rutas, en caso que se detecten persistentes violaciones de integridad
en una ruta determinada.
· Unicidad: consiste en añadir a los datos un número
de secuencia, la fecha y hora, un número aleatorio, o alguna combinación
de los anteriores, que se incluyen en la firma digital o integridad de datos.
De esta forma se evitan amenazas como la reactuación o resecuenciación
de mensajes.
Los mecanismos básicos pueden agruparse de varias formas para proporcionar
los servicios previamente mencionados. Conviene resaltar que los mecanismos
poseen tres componentes principales:
· Una información secreta, como claves y contraseñas, conocidas
por las entidades autorizadas.
· Un conjunto de algoritmos, para llevar a cabo el cifrado, descifrado,
hash y generación de números aleatorios.
· Un conjunto de procedimientos, que definen cómo se usarán
los algoritmos, quién envía qué a quién y cuándo.
Asimismo es importante notar que los sistemas de seguridad requieren una gestión
de seguridad. La gestión comprende dos campos bien amplios:
· Seguridad en la generación, localización y distribución
de la información secreta, de modo que sólo pueda ser accedida
por aquellas entidades autorizadas.
· La política de los servicios y mecanismos de seguridad para
detectar infracciones de seguridad y emprender acciones correctivas.
Abarca la generación, distribución, almacenamiento, tiempo de vida, destrucción y aplicación de las claves de acuerdo con una política de seguridad.
Generación de claves
La seguridad de un algoritmo descansa en la clave. Un criptosistema que haga
uso de claves criptográficamente débiles será él
mismo débil. Algunos aspectos a considerar que se presentan a la hora
de la elección de las claves son:
Espacio de claves reducido
Cuando existen restricciones en el número de bits de la clave, o bien
en la clase de bytes permitidos (caracteres ASCII, caracteres alfanuméricos,
imprimibles, etc.), los ataques de fuerza bruta con hardware especializado o
proceso en paralelo pueden desbaratar en un tiempo razonable estos sistemas.
Elección pobre de la clave
Cuando los usuarios eligen sus claves, la elección suele ser muy pobre
en general (por ejemplo, el propio nombre o el de la mujer), haciéndolas
muy débiles para un ataque de fuerza bruta que primero pruebe las claves
más obvias (ataque de diccionario).
Claves aleatorias
Claves buenas son las cadenas de bits aleatorios generadas por medio de algún
proceso automático (como una fuente aleatoria fiable o un generador pseudo-aleatorio
criptográficamente seguro), de forma que si la clave consta de 64 bits,
las 264 claves posibles sean igualmente probables. En el caso de los criptosistemas
de clave pública, el proceso se complica, ya que a menudo las claves
deben verificar ciertas propiedades matemáticas (ser primos dos veces
seguros, residuos cuadráticos, etc.).
Frases de paso
Esta solución al problema de la generación de contraseñas
seguras (y fáciles de recordar) por parte del usuario consiste en utilizar
una frase suficientemente larga que posteriormente es convertida en una clave
aleatoria por medio de un algoritmo (key-crunching).
Distribución de claves
Sin duda alguna, el problema central de todo sistema de gestión de claves
lo constituyen los procedimientos de distribución de éstas. Esta
distribución debe efectuarse previamente a la comunicación. Los
requisitos específicos en cuanto a seguridad de esta distribución
dependerán de para qué y cómo van a ser utilizadas las
claves. Así pues, será necesario garantizar la identidad de su
origen, su integridad y, en el caso de claves secretas, su confidencialidad.
Las consideraciones más importantes para un sistema de gestión
de claves son el tipo de ataques que lo amenazan y la arquitectura del sistema.
Normalmente, es necesario que la distribución de claves se lleve a cabo
sobre la misma red de comunicación donde se está transmitiendo
la información a proteger. Esta distribución es automática
y la transferencia suele iniciarse con la petición de clave por parte
de una entidad a un Centro de Distribución de Claves (intercambio centralizado)
o a la otra entidad involucrada en la comunicación (intercambio directo).
La alternativa es una distribución manual (mediante el empleo de correos
seguros, por ejemplo), independiente del canal de comunicación. Esta
última alternativa implica un alto coste económico y un tiempo
relativamente largo para llevarse a cabo, lo que la hace descartable en la mayoría
de las situaciones. La distribución segura de claves sobre canal inseguro
requiere protección criptográfica y, por tanto, la presencia de
otras claves, conformando una jerarquía de claves. En cierto punto se
requerirá protección no criptográfica de algunas claves
(llamadas maestras), usadas para intercambiar con los usuarios de forma segura
las claves que usarán en su(s) futura(s) comunicación(es). Entre
las técnicas y ejemplos no criptográficos podemos citar seguridad
física y confianza.
La distribución de claves se lleva siempre a cabo mediante protocolos,
es decir, secuencias de pasos de comunicación (transferencia de mensajes)
y pasos de computación. Muchas de las propiedades de estos protocolos
dependen de la estructura de los mensajes intercambiados y no de los algoritmos
criptográficos subyacentes. Por ello, las debilidades de estos protocolos
provienen normalmente de errores cometidos en los niveles más altos del
diseño.
Las claves criptográficas temporales usadas durante la comunicación,
llamadas claves de sesión, deben ser generadas de forma aleatoria. Para
protegerlas será necesaria seguridad física o cifrado mediante
claves maestras, mientras que para evitar que sean modificadas deberá
utilizarse seguridad física o autenticación. La autenticación
hace uso de parámetros como time-stamps y contadores para protegerse
también contra la reactuación con antiguas claves.
Almacenamiento de claves
En sistemas con un solo usuario, la solución más sencilla pasa
por ser su retención en la memoria del usuario. Una solución más
sofisticada y que desde luego funcionará mejor para claves largas, consiste
en almacenarlas en una tarjeta de banda magnética, en una llave de plástico
con un chip ROM (ROM key) o en una tarjeta inteligente, de manera que el usuario
no tenga más que insertar el dispositivo empleado en alguna ranura a
tal efecto para introducir su clave.
Otra manera de almacenar claves difíciles de recordar es en forma encriptada
mediante una clave fácil de recordar, como por ejemplo almacenar en disco
la clave privada RSA cifrada mediante una clave DES.
Tiempo de vida de claves
Una clave nunca debería usarse por tiempo indefinido. Debe tener una
fecha de caducidad, por las siguientes razones:
· Cuanto más tiempo se usa una clave, aumenta la probabilidad
de que se comprometa (la pérdida de una clave por medios no criptoanalíticos
se denomina compromiso).
· Cuanto más tiempo se usa una clave, mayor será el daño
si la clave se compromete, ya que toda la información protegida con esa
clave queda al descubierto.
· Cuanto más tiempo se usa una clave, mayor será la tentación
de alguien para intentar desbaratarla.
· En general es más fácil realizar criptoanálisis
con mucho texto cifrado con la misma clave.
Para protocolos orientados a conexión, una elección obvia es usar
la misma clave de sesión durante la duración de la comunicación,
siendo descartada al finalizar la comunicación y nunca reutilizada. Si
la conexión lógica posee una vida muy larga, sería prudente
en este caso cambiar la clave de sesión periódicamente, por ejemplo
cada vez que el número de secuencia de la PDU completa un ciclo.
Para protocolos no orientados a conexión, no existe un inicio o fin de
sesión explícitos. Por lo tanto, no resulta tan obvio con qué
frecuencia debería cambiarse la clave. Con el fin de no recargar la información
de control ni retrasar la transacción, una estrategia válida sería
usar una clave de sesión durante un cierto período o para un cierto
número de transacciones.
Las claves maestras no necesitan ser reemplazadas tan frecuentemente, ya que
se usan ocasionalmente para el intercambio de claves. En cualquier caso, no
hay que olvidar que si una clave maestra se compromete, la pérdida potencial
es enorme, de hecho, todas las comunicaciones cifradas con claves intercambiadas
con esa clave maestra.
En el caso del cifrado de grandes ficheros de datos, una solución económica
y segura, mejor que andar descifrando y volviendo a cifrar los ficheros con
una nueva clave todos los días, sería cifrar cada fichero con
una única clave y después cifrar todas las claves con una clave
maestra, que deberá ser almacenada en un lugar de alta seguridad, ya
que su pérdida o compromiso echaría a perder la confidencialidad
de todos los ficheros.
Destrucción de claves
Las claves caducadas deben ser destruidas con la mayor seguridad, de modo que
no caigan en manos de un adversario, puesto que con ellas podría leer
los mensajes antiguos. En el caso de haber sido escritas en papel, éste
deberá ser debidamente destruido; si habían sido grabadas en una
EEPROM, deberá sobreescribirse múltiples veces, y si se encontraba
en EPROM, PROM o tarjeta de banda magnética, deberán ser hechas
añicos (muy pequeñitos, a poder ser). En función del dispositivo
empleado, deberá buscarse la forma de que se vuelvan irrecuperables.
volver al principio de la página