Escolar Documentos
Profissional Documentos
Cultura Documentos
Licencia
Este obra de Jess Jimnez Herranz est bajo una licencia Creative Commons Atribucin-
LicenciarIgual 3.0 Espaa.
Basada en una obra en oposcaib.wikispaces.com.
Introduccin
Criterios de seguridad
A la hora de analizar la seguridad de un sistema informtico, hay que tener en cuenta una serie de
criterios. Generalmente, al describir estos criterios se hace una analoga con la transmisin de un
mensaje, si bien el concepto es aplicable a la informacin almacenada, el acceso a recursos, etc.
Confidencialidad: Capacidad de enviar informacin de manera que slo pueda verla el receptor.
En los siguientes apartados se muestran diferentes mecanismos para conseguir los criterios arriba
mencionados.
Mecanismos de seguridad
Cifrado
El cifrado es uno de los principales mecanismos utilizados alcanzar un buen nivel de seguridad
en un sistema informtico, y se encuentra presente en prcticamente todos los criterios de seguridad.
El cifrado consiste en alterar la informacin de alguna manera predefinida, de manera que sea
irreconocible para cualquier agente de comunicacin distinto del receptor del mensaje.
Generalmente, el cifrado se hace usando un mtodo pblicamente conocido, pero que involucra una
palabra de paso o contrasea, sin la que el proceso de descifrado es imposible o al menos
extremadamente costoso.
Existen principalmente dos tipos de esquemas de cifrado: los simtricos y los asimtricos o de
doble clave.
Simtrico
Un sistema de cifrado de clave simtrica es aquel en el que el cifrado de los datos se hace a partir
de una clave secreta nica, conocida por ambos extremos de la comunicacin. Esta clave permite
tanto el cifrado como el descifrado:
El principal problema de los algoritmos simtricos es que requieren que los dos extremos
conozcan la clave secreta, lo cual crea el problema de cmo transmitir la clave de forma segura. Si a
eso se le suma que, por seguridad, es recomendable cambiar las claves peridicamente, el problema
de la distribucin de claves se agrava an ms.
Asimtrico
En un sistema asimtrico, cada extremo de la comunicacin tiene dos claves: la pblica,
conocida por todo el mundo, y la privada, conocida slo por su poseedor. Estas claves tienen las
siguientes propiedades:
Una informacin cifrada con una clave pblica puede ser descifrada con la privada, y
viceversa
Aunque las claves estn matemticamente relacionadas, no es posible (o es extremadamente
costoso) deducir una clave a partir de la otra.
La ventaja de este esquema es que permite el envo cifrado de datos sin necesidad de
intercambiar previamente claves, ya que, para transmitir datos de A a B, A cifrara los datos con la
clave pblica de B, de manera que slo B podra descifrarlos (con su clave privada):
El problema principal de este esquema es que los algoritmos son ms complejos y requieren de
mayores recursos computacionales, por lo que su uso generalizado es poco prctico y se emplean en
combinacin con otras tcnicas. Por ejemplo, un uso habitual es utilizar un esquema asimtrico para
transmitir la clave secreta de un sistema simtrico.
La forma de conseguir alcanzar los tres criterios de seguridad usando un sistema asimtrico sera:
Confidencialidad: Es suficiente con que el emisor cifre los datos con la clave pblica del
receptor. Como slo se pueden descifrar mediante la clave privada del receptor, ste ser el
nico que pueda verlos.
Integridad: Al cifrar un mensaje con la clave privada del emisor, el nico que puede alterar
el contenido es el propio emisor. Se puede combinar con el mtodo anterior, cifrando
primero con la clave privada propia para garantizar la integridad, y despus con la clave
pblica del receptor para la confidencialidad.
Autenticidad: Al cifrar con la clave privada del emisor, se garantiza que nadie ms puede
haber enviado el mensaje.
En la prctica, los esquemas de clave asimtrica no se usan as, ya que son computacionalmente
costosos y no resulta prctico. Lo que se acostumbra a hacer es:
Confidencialidad: Cifrar los datos con un esquema simtrico, generando una clave aleatoria
que se transmitir al receptor mediante un esquema asimtrico.
Integridad y autenticidad: No cifrar todo el mensaje, sino utilizar mecanismos de firma
electrnica para cifrar solamente un hash representativo de los datos. Ver apartado de Firma
Electrnica.
One-time pads
El cifrado mediante one-time pads consiste en alterar la informacin haciendo un XOR con una
clave aleatoria del mismo tamao que el mensaje, que slo se utiliza una vez.
Ventajas:
Ofrece cifrado perfecto, es totalmente irrompible.
Es de los pocos mtodos de cifrado que pueden hacerse a mano, con lpiz y papel
Inconvenientes:
No da autenticidad ni integridad.
Requiere un flujo de nmeros completamente aleatorios
Es fcilmente modificable si se conoce parte del mensaje: haciendo la XOR con el flujo
cifrado, obtenemos parte del OTP, que podemos usar para cifrar el fragmento poniendo lo
que queramos (ataque man-in-the-middle).
Poco prctico por el gran tamao de las claves y la dificultad de la comunicacin de claves.
Pese a su funcionamiento como cifrador perfecto, los OTP no se utilizan debido a sus mltiples
inconvenientes prcticos, y al hecho de que los algoritmos de cifrado convencionales, pese a no ser
perfectos, son suficientemente seguros en la prctica y mucho ms sencillos de implementar.
Esteganografa
La esteganografa es un mtodo de cifrado por ocultacin, que consiste en camuflar el mensaje
dentro de otro tipo de informacin de manera que, aparentemente, no se sepa que est all. Por
ejemplo, un mtodo esteganogrfico es el utilizado en las marcas de agua de las imgenes, que
mediante la alteracin de los bits menos significativos de los pxeles de la imagen, pueden incluir
informacin invisible a simple vista.
Algunas tcnicas esteganogrficas son:
Marcas de agua en imgenes o vdeos
Marcas de puntuacin en texto: En ficheros de texto, utilizar espacios a final de frase, o
elementos no visibles (tabuladores) para codificar la informacin.
Bit menos significativo: Consiste en utilizar el bit menos significativo de cada palabra para
almacenar la informacin. Generalmente se usa sobre imgenes, y el resultado es una
alteracin mnima de los datos que generalmente no es perceptible.
Retardo en tecleo: Aadir un pequeo retardo a los datos tecleados. Las combinaciones de
retardos se usan para codificar la informacin.
Chaffing: Consiste en enviar un mensaje en pequeos fragmentos, donde cada paquete
contiene parte del mensaje, un nmero de orden, y un hash que permite autenticarlo.
Combinando el envo de paquetes legtimos con otros paquetes inventados, es imposible
para un tercero saber qu paquetes son los buenos. Tambin es til porque el emisor puede
denegar estar cifrando.
Hashes
Un hash es una funcin matemtica que, dado un mensaje, proporcion un resumen representativo
del mismo, que lo sustituye en los diferentes procesos criptogrficos, que de esta forma resultan
menos costosos computacionalmente.
Una funcin de hash debe tener las siguientes propiedades:
Genera un resultado mucho menor que el mensaje en s. Generalmente el tamao es fijo, y es
de unas decenas de KB
Es fcil y rpido de calcular a partir del mensaje
Es extremadamente difcil construir un mensaje para que nos d un determinado hash
Es extremadamente difcil modificar un mensaje de manera que el hash se mantenga
Es extremadamente difcil que dos mensajes diferentes tengan el mismo hash
Una funcin de hash que cumpla estas tres ltimas propiedades se considera un hash
criptogrfico. Hay que destacar que funciones de hash cuyos objetivos son otros (p. ej. CRC o el
checksum, cuyo objetivo es detectar errores en los datos) no cumplen alguno de estos requisitos y
no se consideran hashes seguros para usar en criptografa.
Algunos algoritmos de hash criptogrfico son MD5 o SHA-1. Si bien a da de hoy (2009) ambos
presentan vulnerabilidades, se considera que son leves y se siguen utilizando. No obstante, se
prefiere el uso de SHA-1 en vez de MD5, y est en desarrollo una versin SHA-3 ms robusta que
SHA-1 y SHA-2 (que utilizan algoritmos fundamentalmente similares y se sospecha pueden ser
propensos a las mismas vulnerabilidades).
Una forma de aadir mayor seguridad es utilizar como hash la concatenacin de diferentes
algoritmos. Se puede demostrar que de esta manera no se duplica la seguridad, pero s se consigue
la seguridad del algoritmo ms fuerte. Por ejemplo, el protocolo SSL usa como hash una
concatenacin de MD5 y SHA, de manera que, si en algn momento uno de los dos algoritmos se
rompe y pasa a ser inseguro, el hash combinado seguira siendo utilizable.
Los hashes como medio de proporcionar integridad de informacin, ya que acompaando al
mensaje con su hash, el receptor puede calcularlo por su cuenta y comprobar que no ha sido
modificado. Combinndolo con otras tcnicas como la firma digital, es posible obtener tambin
autenticidad.
Firma digital
La firma electrnica es una aplicacin de la criptografa asimtrica para garantizar la autenticidad
e integridad de los datos.
Como el cifrado de todo el mensaje puede ser computacionalmente costoso y poco eficiente, lo
que se hace en esta tcnica es, en primer lugar, generar un hash representativo de los datos que lo
componen.
Una vez generado el hash del mensaje, se cifra con la clave privada del emisor, constituyendo la
firma digital que se adjuntar con el mensaje. El receptor, a su vez, generar el hash del mensaje y
descifrar con la clave pblica del emisor la firma digital, comprobando que ambos hashes (el
recibido y el calculado) son los mismos.
MAC, HMAC
Una MAC (Message Authentication Code) es el nombre genrico del mecanismo para proveer
integridad y autenticidad en el intercambio de informacin, combinando hashes (generalmente
criptogrficos) y claves secretas simtricas.
Se diferencian de los hashes criptogrficos en que no slo ofrecen integridad, sino tambin
autenticidad al combinarse con una clave secreta, y se diferencian de las firmas digitales en que
estas ltimas utilizan cifrado asimtrico, lo que les permite ofrecer tambin certificacin de entrega
adems integridad y autenticidad.
As, si K es la clave secreta, m el mensaje y h() una funcin de hash criptogrfico, la MAC tpica
de un mensaje se calculara como:
MAC K m=h K m
El problema de las MAC de este tipo es que, al concatenar la clave al principio, son sensibles a
modificaciones al final del mensaje en determinados algoritmos de hash. El mismo problema se da
tambin concatenando la clave al final, o en ambos extremos.
Para solventar los problemas de las MAC, se usa un tipo especial de MAC, las HMAC (Hash
Message Authentication Code) que se calculan de la siguiente forma:
HMAC K m=h K h K m
La doble aplicacin del hash hace ms seguros los datos intermedios y, as, no se conoce ninguna
vulnerabilidad para una HMAC.
HMAC se puede usar en combinacin con cualquier hash criptogrfico, como MD5 o SHA-1.
Los objetivos de HMAC son:
Proporcionar autenticidad e integridad
Utilizar tcnicas de hash existentes
Preservar el rendimiento del hash utilizado, sin aadir excesivo overhead
Permitir reemplazar fcilmente el algoritmo hash usado
HMAC, debido a que se usa en combinacin con una clave secreta, no es sensible a ataques de
colisiones a los algoritmos hash. As, por ejemplo, si bien en los ltimos aos se han descubierto
vulnerabilidades de este tipo en MD5, que lo hacen poco recomendable para determinados usos, el
uso de MD5 en un esquema HMAC no se ve repercutido.
Certificados digitales
A pesar de que esquemas como el asimtrico permiten el intercambio de datos de forma segura,
falta tener en cuenta un detalle ms, que es cmo se puede asegurar que la clave pblica de los
extremos de la comunicacin es de quien dice ser, y no de un tercero malicioso que pretenda
suplantarlo.
Para resolver este problema, se establecen una serie de entidades de confianza, llamadas
autoridades de certificacin, que se encargan de asegurarse de que las claves pblicas pertenecen a
su propietario. Para certificarlo, emiten certificados digitales, que son un paquete con las siguientes
informaciones:
Clave pblica a validar
Nombre del propietario de la clave pblica
Firma digital del certificado, cifrada con la clave privada de la autoridad certificadora
Fecha de caducidad del certificado
Teniendo en cuenta que las claves pblicas de las autoridades certificadoras son pblicamente
conocidas y por tanto se consideran imposibles de suplantar, un certificado permite asegurar que
una clave pblica pertenece a una persona/organizacin.
El formato estndar de certificado digital es el definido en la especificacin ITU-T X.509
Red de confianza
En este caso, los certificados son emitidos por las propias partes pero, adems de su propia firma
electrnica, en el certificado se incluyen firmas electrnicas de otros usuarios que certifican que la
clave pblica es correcta. De esta manera, un certificado ser ms confiable cuantas ms firmas de
otros usuarios contenga. A su vez, las firmas de usuarios con muchos votos en sus firmas tienen ms
peso, establecindose una jerarqua de usuarios.
Este esquema es totalmente descentralizado, y presenta diferentes ventajas:
No requiere de autoridades de certificacin, que en muchas ocasiones cobran por la emisin
de certificados
Es inmune a, por ejemplo, la desaparicin de una entidad certificadora, o simplemente su
mala gestin
Por otra parte, tambin tiene inconvenientes:
Los nuevos certificados necesitan un tiempo hasta haber sido firmados por un nmero
suficiente de usuarios hasta considerarse fiables.
Tolerancia a fallos
Los sistemas tolerantes a fallos son aquellos que son capaces de seguir funcionando
correctamente en caso de fallo de alguno de sus componentes. En el caso de la seguridad de los
sistemas de informacin, la principal medida de tolerancia a fallos de un sistema es la
disponibilidad, que es la probabilidad de que un sistema funcione en un instante dado.
Los fallos en un sistema pueden ser de dos tipos:
Espontneos: Se corresponden a errores que suceden de forma aleatoria, generalmente
debido a un fallo de algn componente.
Intencionados. Provocados por un tercero que busca que el sistema deje de funcionar.
Para conseguir que un sistema tolere fallos espontneos, se emplea la redundancia en los diseos.
Un sistema redundante es aquel que dispone de ms componentes de los que estrictamente
necesitara para llevar a cabo una tarea. De esta manera, en caso de fallo en un componente, y
mediante los mecanismos adecuados, es posible utilizar alguno de los componentes extra para
seguir funcionando.
En el mbito de la computacin, se puede clasificar la redundancia en los siguientes tipos:
Hardware: Duplicar alguno de los sistemas hardware para utilizarlos en caso de fallo
Software: Escribir diferentes versiones del cdigo, para poder responder a fallos hardware o
defectos de diseo (bugs).
De informacin: Aadir informacin adicional a los datos que usa el programa, de manera que
se puedan detectar/corregir fallos.
Temporal: Repetir clculos en diferentes instantes para afrontar fallos de naturaleza temporal.
Tcnicas de trazabilidad
La trazabilidad es la capacidad de llevar un registro de las acciones y eventos de un sistema. El
objetivo es tanto evitar actuaciones peligrosas como monitorizar:
Evitar actuaciones que comprometan la seguridad
Monitorizar el sistema buscando actividades peligrosas
Analizar las incidencias de seguridad una vez producidas
Reactivo: Adems de monitorizar, un IDS reactivo acta para hacer frente a la amenaza
potencial, por ejemplo cerrando una conexin en la que se haya detectado un posible ataque.
En realidad, un IDS reactivo es un IPS.
Tipos de IDS
Un NIDS examina generalmente el trfico de entrada, si bien tambin puede analizar el trfico de
salida como forma de detectar actividades sospechosas como, por ejemplo, ataques a terceros
sistemas provenientes de software malicioso instalado en el servidor.
IDS hbrido
Combina diferentes tipos en uno. Por ejemplo, se podra combinar un NIDS con caractersticas
de un HIDS para hacer una monitorizacin de la red con informacin detallada de cada host.
Problemticas de seguridad
Criptoanlisis
El criptoanlisis es el estudio de los mtodos para obtener el sentido de una informacin cifrada,
cuando no se dispone de la clave secreta necesaria para descifrar los datos. El criptoanlisis tambin
incluye los intentos de sortear la seguridad de otros algoritmos criptogrficos, no necesariamente de
cifrado.
Otros ataques no generalmente incluidos en el criptoanlisis, pero que pueden ser igualmente
tiles a la hora de romper un cdigo, son:
Robo
Soborno
Keylogging: Intentar averiguar las contraseas capturando las pulsaciones del usuario sobre
el teclado.
Engao e ingeniera social: Intentar que el usuario nos diga su propia contrasea mediante
engao, suplantacin de personalidad, induccin a error, etc.