Vous êtes sur la page 1sur 93

INDICE

1 Introducción a la seguridad en Redes .......................................................................... 3

1.1 Definición y niveles de seguridad ..................................................................................... 3

1.2 Análisis de requerimientos de seguridad.......................................................................... 7

1.2.1 Amenazas ......................................................................................................................................... 9

1.2.2 Vulnerabilidades ............................................................................................................................ 11

1.2.3 Riesgos ........................................................................................................................................... 12

1.2.4 Tipos de ataques ............................................................................................................................ 12

1.2.5 Técnicas de Inserción ..................................................................................................................... 15

1.3 Planificación de la seguridad ......................................................................................... 16

2 Criptografía .............................................................................................................. 17

2.1 Definición de criptografía .............................................................................................. 17

2.1.1 Clasificación ................................................................................................................................... 17

2.1.2 Tipos de cifrado .............................................................................................................................. 18

2.2 Criptografía Simétrica ................................................................................................... 24

2.2.1 Criptosistemas de Clave Secreta. ................................................................................................... 24

2.2.2 Generalidades sobre sistemas de clave secreta. ........................................................................... 25

2.2.3 Algoritmo DES (Data Encryption Standard). .................................................................................. 25

2.2.4 Modos de cifra en bloque. ............................................................................................................. 26

2.2.5 Algoritmo IDEA (International Data Encryption Algorithm). .......................................................... 29


2.2.6 Algoritmo AES (Advanced Encryption Standard). .......................................................................... 32

2.2.7 Criptosistemas de Cifrado en Flujo ................................................................................................ 33

2.3 Criptografía Asimétrica.................................................................................................. 36

2.3.1 Criptosistemas de Clave Pública. ................................................................................................... 36

2.4 Herramientas Criptográficas. ......................................................................................... 39

3 Autenticación ........................................................................................................... 41

3.1 Protocolos de Autenticación .......................................................................................... 41

3.1.1 Claves secretas compartidas .......................................................................................................... 42

3.1.2 Centros de distribución de claves .................................................................................................. 43

3.1.3 Claves públicas ............................................................................................................................... 44

3.1.4 Ejemplos de protocolos de autenticación ...................................................................................... 46

3.2 Firmas Digitales............................................................................................................. 49

3.3 Cortafuegos (firewalls) .................................................................................................. 51

3.3.1 Alcances y limitaciones .................................................................................................................. 52

3.3.2 Componentes ................................................................................................................................. 53

3.3.3 Filtros de paquetes ........................................................................................................................ 53

3.3.4 Filtro de servicios ........................................................................................................................... 54


1 Introducción a la seguridad en Redes

1.1 Definición y niveles de seguridad

Seguridad es una palabra con una definición demasiado amplia, y aún entre
expertos es difícil llegar a un acuerdo acerca de qué significa.

En el ámbito informático, la seguridad equivale principalmente a garantizar al


usuario:

 Consistencia: Comportarse como se espera que se comporte y mantener su


comportamiento sin cambios inesperados.
 Servicio: El sistema debe prestar todos los servicios que ofrece de manera
confiable, constante y consistente.
 Protección: Si un programa tiene errores y sufre una caída, no debe afectar
a la ejecución de otros procesos. Un programa diseñado expre- samente para
́ imo en el sistema. Los segmentos de
hacer daño debe tener un impacto min
memoria de un proceso deben ser invisibles e inmodi- ficables para cualquier
otro proceso.
 Control de Acceso: Los datos generados por un usuario no deben ser
accesibles a otro usuario a menos que así sea específicamente solicitado por
su dueño. Soportar diferentes modos de acceso a un archivo, de modo que
el sistema pueda exigir que un archivo pueda ser leído pero no ejecutado o
abierto para escritura. Los mecanismos de control de acceso deben ser tan
granulares como sea posible.
 Autenticación: El sistema debe poseer los mecanismos necesarios para
asegurarse que un usuario es quien dice ser y tiene suficientes privilegios
para llevar a cabo todas las operaciones que desee realizar. Debe ser capaz
́ .
de notificar al administrador acerca de cualquier anomalia
El estándar de niveles de seguridad más utilizado internacionalmente es el TCSEC
Orange Book, desarrollado en 1983 de acuerdo a las normas de seguridad en
computadoras del Departamento de Defensa de los Estados Unidos.

Los niveles describen diferentes tipos de seguridad del Sistema Operativo y se


́ imo grado de seguridad al máximo.
enumeran desde el min

Estos niveles han sido la base de desarrollo de estándares europeos


(ITSEC/ITSEM) y luego internacionales (ISO/IEC).

Cabe aclarar que cada nivel requiere todos los niveles definidos anteriormente: así
el subnivel B2 abarca los subniveles B1, C2, C1 y el D.

 Nivel D: Este nivel contiene sólo una división y está reservada para sistemas
que han sido evaluados y no cumplen con ninguna especificación de
seguridad. Sin sistemas no confiables, no hay protección para el hardware,
el sistema operativo es inestable y no hay autentificación con respecto a los
usuarios y sus derechos en el acceso a la información. Los sistemas
operativos que responden a este nivel son MS-DOS y System 7.0 de
Macintosh.
 Nivel C1: Protección Discrecional Se requiere identificación de usuarios que
permite el acceso a distinta información. Cada usuario puede manejar su
información privada y se hace la distinción entre los usuarios y el
administrador del sistema, quien tiene control total de acceso. Muchas de las
tareas cotidianas de administración del sistema sólo pueden ser realizadas
por este "super usuario" quien tiene gran responsabilidad en la seguridad del
mismo. Con la actual descentralización de los sistemas de cómputos, no es
raro que en una organización encontremos dos o tres personas cumpliendo
este rol. Esto es un problema, pues no hay forma de distinguir entre los
cambios que hizo cada usuario. A continuación se enumeran los
́ imos que debe cumplir la clase C1:
requerimientos min
o Acceso de control discrecional: distinción entre usuarios y recursos. Se
podrán definir grupos de usuarios (con los mismos privilegios) y grupos
de objetos (archivos, directorios, disco) sobre los cuales podrán actuar
usuarios o grupos de ellos.
o Identificación y Autentificación: se requiere que un usuario se identifique
antes de comenzar a ejecutar acciones sobre el sistema. El dato de un
usuario no podrá ser accedido por un usuario sin autorización o
identificación.
 Nivel C2: Protección de Acceso Controlado Este subnivel fue diseñado para
solucionar las debilidades del C1. Cuenta con características adicionales que
crean un ambiente de acceso controlado. Se debe llevar una auditoria de
accesos e intentos fallidos de acceso a objetos. Tiene la capacidad de
restringir aún más el que los usuarios ejecuten ciertos comandos o tengan
acceso a ciertos archivos, permitir o denegar datos a usuarios en concreto,
con base no sólo en los permisos, sino también en los niveles de
autorización. Requiere que se audite el sistema. Esta auditoría es utilizada
para llevar registros de todas las acciones relacionadas con la seguridad,
como las actividades efectuadas por el administrador del sistema y sus
usuarios. La auditoría requiere de autenticación adicional para estar seguros
de que la persona que ejecuta el comando es quien dice ser. Su mayor
desventaja reside en los recursos adicionales requeridos por el procesador y
el subsistema de discos.
Los usuarios de un sistema C2 tienen la autorización para realizar algunas
tareas de administración del sistema sin necesidad de ser administradores.
Permite llevar mejor cuenta de las tareas relacionadas con la administración
del sistema, ya que es cada usuario quien ejecuta el trabajo y no el
administrador del sistema.
 Nivel B1: Seguridad Etiquetada Este subnivel, es el primero de los tres con
que cuenta el nivel B. Soporta seguridad multinivel, como la secreta y
ultrasecreta. Se establece que el dueño del archivo no puede modificar los
permisos de un objeto que está bajo control de acceso obligatorio. A cada
objeto del sistema (usuario, dato, etc.) se le asigna una etiqueta, con un nivel
de seguridad jerárquico (alto secreto, secreto, reservado, etc.) y con unas
́ s (contabilidad, nóminas, ventas, etc.). Cada usuario que accede a
categoria
un objeto debe poseer un permiso expreso para hacerlo y viceversa. Es decir
que cada usuario tiene sus objetos asociados. También se establecen
controles para limitar la propagación de derecho de accesos a los distintos
objetos.
 Nivel B2: Protección Estructurada Requiere que se etiquete cada objeto de
nivel superior por ser padre de un objeto inferior. La Protección Estructurada
es la primera que empieza a referirse al problema de un objeto a un nivel mas
elevado de seguridad en comunicación con otro objeto a un nivel inferior. Así,
un disco rígido será etiquetado por almacenar archivos que son accedidos
por distintos usuarios. El sistema es capaz de alertar a los usuarios si sus
condiciones de accesibilidad y seguridad son modificadas; y el administrador
es el encargado de fijar los canales de almacenamiento y ancho de banda a
utilizar por los demás usuarios.
 Nivel B3: Dominios de Seguridad Refuerza a los dominios con la instalación
de hardware: por ejemplo el hardware de administración de memoria se usa
para proteger el dominio de seguridad de acceso no autorizado a la
modificación de objetos de diferentes dominios de seguridad. Existe un
monitor de referencia que recibe las peticiones de acceso de cada usuario y
las permite o las deniega según las políticas de acceso que se hayan
definido. Todas las estructuras de seguridad deben ser lo suficientemente
̃ s como para permitir análisis y testeos ante posibles violaciones.
pequena
Este nivel requiere que la terminal del usuario se conecte al sistema por
medio de una conexión segura. Además, cada usuario tiene asignado los
lugares y objetos a los que puede acceder.
 Nivel A: Protección Verificada Es el nivel más elevado, incluye un proceso de
diseño, control y verificación, mediante métodos formales (matemáticos) para
asegurar todos los procesos que realiza un usuario sobre el sistema. Para
llegar a este nivel de seguridad, todos los componentes de los niveles
inferiores deben incluirse. El diseño requiere ser verificado de forma
matemática y también se deben realizar análisis de canales encubiertos y de
distribución confiable. El software y el hardware son protegidos para evitar
infiltraciones ante traslados o movimientos del equipamiento.

1.2 Análisis de requerimientos de seguridad

En toda red existe la necesidad de proteger la integridad y confidencialidad de la


información y el uso de sus activos, para determinar el grado de confianza que se
puede depositar en un sistema informático existen criterios y normas de seguridad,
pero, si se requiere mejorar el nivel de seguridad que existe en una red, se tiene
que realizar una evaluación de seguridad, con lo cuál se puede determinar el estado
de un sistema y los cambios que se pueden realizar para mejorar dicho estado. Para
realizar una evaluación de seguridad se pueden hacer pruebas de vulnerabilidad
que incluyen el análisis de una red y sus polit́ icas y controles de seguridad; pruebas
de seguridad, en las que se realizan auditorías de seguridad, escaneo de
vulnerabilidades y pruebas de penetración, y finalmente, el reporte de las
vulnerabilidades encontradas y las sugerencias para la implementación de mejoras.

Para la evaluación de la seguridad de una red existen diferentes modelos que


permiten tener una mayor certeza sobre evaluación, calificación y mejora de la
misma, estos modelos permiten cuantificar de alguna manera, los resultados de las
acciones emprendidas sobre una red, tanto si es un resultado tangible como si se
trata de un intangible. Estándares de evaluación reconocidos como NSA IAM
(National Security Agency -Information Security-Assessment Methodology) de la
agencia de seguridad de Estados Unidos, CESG CHECK (Council of Registered
Ethical Security Testers) y SPD (Site Data Protection) de Mastercard, nos brindan
una metodología estructurada que permite desarrollar la evaluación de seguridad
de una manera organizada.
NSA IAM

́ de evaluación de la red NSA IAM (National Security Agency -


La metodologia
Information Security-Assessment Methodology) es un método detallado y
sistemático para la evaluación de vulnerabilidades desde una perspectiva
organizacional, en oposición a una perpectiva técnica. Generalmente se pasan por
alto los procesos, documentación y actividades informales que impactan
directamente en la postura de una organización de seguridad y no necesariamente
de manera técnica. El IAM fue desarrollado por la Agencia de Seguridad Nacional
de los Estados Unidos y asesores de INFOSEC y ha estado en práctica dentro del
gobierno de ese paiś desde 1997.

1. Avalúo (“Assessment”): En esta fase se realiza la recopilación y examen de


las polit́ icas de seguridad, procedimientos, de arquitectura de seguridad y de
flujo de la información. También se hace un análisis colaborativo de alto nivel
y se evalúan las funciones crit́ icas de la organización.
2. Evaluación (“Evaluation”): Se realizan pruebas de seguridad del sistema,
firewalls, routers, equipos. Se realiza un escaneado de la red y se utilizan
herramientas de penetración.
3. Penetración (“Red Team”): Una evaluación de nivel 3 es no cooperativa y
externa a la red de destino, con la participación de pruebas de penetración
para simular el adversario adecuado. La evaluación es no intrusiva, por lo
que dentro de este marco, una evaluación de nivel 3 implica una calificación
completa de las vulnerabilidades. Se realizan pruebas de ingeniería social,
simulación de ataques y hackeo de sistemas.
4. Informe de Hallazgos: Se realiza un informe técnico, operacional y gerencial
de los hallazgos determinados durante las fases previas.
5. Recomendaciones: En esta etapa se prepara un informe con las
recomendaciones para mitigar las vulnerabilidades.
1.2.1 Amenazas

El término amenaza requiere pensar los posibles problemas que nos pueden afectar
en un futuro cercano, por lo que plantea un posicionamiento anterior a un hecho,
que representa algún grado de probabilidad de materializarse. A manera de
ejemplos de amenazas reales pueden citarse los virus, los delincuentes informáticos
o las intrusiones.

La ITU (International Telecommunication Union) define una amenaza como una


violación potencial a la seguridad y, en ese sentido, para el contexto informático
debe interpretarse para la seguridad de la información.

Las amenazas afectan principalmente al Hardware, al Software y a los Datos. Estas


se deben a fenómenos de:

 Interrupción
 Interceptación
 Modificación
 Generación

De interrupción:

Las características de este tipo de amenaza, es que se daña, se pierde o deja de


funcionar un punto del sistema. Por lo mismo su detección es de forma inmediata.

 Destrucción del hardware


 Borrado de programas, datos
 Fallos del sistema operativo

De interceptación:

Las principales caracteriś ticas de estas amenazas son que el acceso a la


información por personas no autorizadas se da comúnmente, además de esto, se
́ n. Por tal son de
les otorgan privilegios a usuarios que originalmente no los tenia
difić il detección debido a que casi no dejan huellas.

 Copias ilić itas de programas


 ́ ea de datos
Escucha en lin

De modificación:

En estas amenazas además de violar el acceso a datos no permitidos, modifican o


cambian dichos datos para beneficio propio, lo cual lo vuelve difícil de detectar en
algunas circunstancias.

 La modificación de bases de datos es un claro ejemplo de este tipo de


amenaza.

De generación:

Esta amenaza se caracteriza por la creación de objetos nuevos en el sistema sin


que los usuarios cotidianos se den cuenta, ya que no afecta el flujo normal del
sistema, por tal es de difić il detección.

 Añadir transacciones en red.


 Añadir registros en bases de datos.

Para usuarios comunes, algunas formas de protección son las listadas a


continuación:

 Firewalls
 VPN ś
 Conexiones seguras (SSL)
 Software de análisis de vulnerabilidad
 Fingerprints para archivos
 Normas de asignación de cuentas
1.2.2 Vulnerabilidades

Una vulnerabilidad es una debilidad de un bien o de un control, que puede ser


aprovechada por una amenaza. Se trata de una característica negativa del bien,
también conocido como activo o recurso de información, o de un control que se
implementó sobre él, que lo hace vulnerable. En efecto esa vulnerabilidad es
susceptible de ser aprovechada y varía de acuerdo con los cambios en las
condiciones que dieron origen a su existencia o a las acciones que se tomen con el
fin de evitar su explotación o aprovechamiento.

Las vulnerabilidades pueden darse por fallas de diseño, por una codificación
deficiente o insegura, por errores en la implementación o por falta de mantenimiento,
entre otros motivos. Cada etapa del desarrollo, implementación y mantenimiento de
una pieza de software es susceptible de poseer una debilidad que es factible usar
para alterar su funcionamiento. Un ejemplo signi11cativo es el protocolo utilizado
́ de correos electrónicos, que no fue disena
para el envio ̃ do pensando en la
seguridad y que provoca que hoy suframos la consecuencia de este problema de
diseño, por citar un caso, cuando se usa para distribuir phishing, suplantando
identidades.

́ cero o “zero-day”. Recibe


Un tipo especial de vulnerabilidad es la conocida como dia
esta calificación desde el momento en que es descubierta y hay evidencias de que
existe un código que puede aprovecharla, denominado como “exploit”, hasta que se
hace públicamente conocida y el fabricante del producto afectado no la corrige.
Mientras no aparezcan soluciones o medidas de mitigación, este tipo de
vulnerabilidades abre una ventana de tiempo que puede utilizarse para infectar una
gran cantidad de sistemas, con una alta probabilidad de éxito. Esto genera la
existencia de un mercado de compra-venta de vulnerabilidades, en el cual se les
asigna un valor monetario.
1.2.3 Riesgos

La materialización de una amenaza que aprovecha una vulnerabilidad expone a las


organizaciones y sus sistemas informáticos a lo que se conoce como riesgo. El
riesgo puede ser definido como la posibilidad de que algo que ocurra impacte
negativamente sobre la información o sobre los recursos para gestionarla. La Norma
ISO/IEC-27002 lo define como la combinación de la probabilidad de ocurrencia de
un determinado hecho y sus consecuencias. La probabilidad de ocurrencia es el
producto del análisis sobre datos históricos respecto a cuántas veces sucedió un
hecho similar en un periodo de tiempo que se tomará como unidad. Se entiende por
consecuencias, el impacto, es decir, los hechos o acontecimientos que resultan de
uno o varios eventos evaluados para esa organización.

La determinación de la probabilidad de ocurrencia y la valoración del impacto tienen


lugar en el proceso de gestión del riesgo, que dará como producto la decisión de
distribuir o aplicar los controles, sobre la base de una ecuación de costo/beneficio,
dando como resultado la determinación del nivel de riesgo aceptable y la
identificación del riesgo a mitigar.

En el rubro de controles técnicos, el mercado de software y de equipamiento es


basto, y los ajustes para su puesta en marcha deben además efectuarse acorde a
estándares de seguridad, que muchas veces brindan los fabricantes o las buenas
prácticas de organizaciones especializadas como OWASP (The Open Web
Applications Security Project), por citar un ejemplo.

1.2.4 Tipos de ataques

1.2.4.1 Denegación del servicio

Un Ataque por denegación de servicio (DoS, Denial of service) tiene como objetivo
imposibilitar el acceso a los servicios y recursos de una organización durante un
́ do indefinido de tiempo. Por lo general, este tipo de ataques está dirigido a los
perio
servidores de una compañia
́ , para que no puedan utilizarse ni consultarse.
La denegación de servicio es una complicación que puede afectar a cualquier
servidor de la compañía o individuo conectado a Internet. Su objetivo no reside en
recuperar ni alterar datos, sino en dañar la reputación de las compañías con
presencia en Internet y potencialmente impedir el desarrollo normal de sus
actividades en caso de que éstas se basen en un sistema informático.

Generalmente, estos ataques se dividen en dos clases:

1. Por saturación: que saturan un equipo con solicitudes para que no pueda
responder a las solicitudes reales.
2. Por explotación de vulnerabilidades: que aprovechan una vulnerabilidad en
el sistema para volverlo inestable.

Los ataques por denegación de servicio envia


́ n paquetes IP o datos de tamaños o
formatos atípicos que saturan los equipos de destino o los vuelven inestables y, por
lo tanto, impiden el funcionamiento normal de los servicios de red que brindan.
Cuando varios equipos activan una denegación de servicio, el proceso se conoce
como "sistema distribuido de denegación de servicio" (DDOS, Distributed Denial of
Service).

Los métodos de ataque por denegación de servicio más conocidos son:

1. Inundación SYN (SYN Flood): La inundación SYN envia


́ un flujo de paquetes
TCP/SYN (varias peticiones con Flags SYN en la cabecera), muchas veces
con la dirección de origen falsificada. Cada uno de los paquetes recibidos es
tratado por el destino como una petición de conexión, causando que el
servidor intente establecer una conexión al responder con un paquete
TCP/SYN-ACK y esperando el paquete de respuesta TCP/ACK (Parte del
proceso de establecimiento de conexión TCP de 3 via
́ s). Sin embargo, debido
a que la dirección de origen es falsa o la dirección IP real no ha solicitado la
conexión, nunca llega la respuesta. Estos intentos de conexión consumen
recursos en el servidor y copan el número de conexiones que se pueden
establecer, reduciendo la disponibilidad del servidor para responder
peticiones legit́ imas de conexión.
2. Inundación ICMP (ICMP Flood): Es una técnica DoS que pretende agotar el
ancho de banda de la víctima. Consiste en enviar de forma continuada un
número elevado de paquetes ICMP Echo request (ping) de tamaño
considerable a la vić tima, de forma que esta ha de responder con paquetes
ICMP Echo reply (pong) lo que supone una sobrecarga tanto en la red como
en el sistema de la víctima. Dependiendo de la relación entre capacidad de
procesamiento de la vić tima y el atacante, el grado de sobrecarga varia
́ , es
decir, si un atacante tiene una capacidad mucho mayor, la vić tima no puede
manejar el tráfico generado.
3. SMURF: Existe una variante a ICMP Flood denominado Ataque Smurf que
amplifica considerablemente los efectos de un ataque ICMP. Existen tres
partes en un Ataque Smurf: El atacante, el intermediario y la víctima
(comprobaremos que el intermediario también puede ser víctima). En el
ataque Smurf, el atacante dirige paquetes ICM P tipo "echo request" (ping) a
una dirección IP de broadcast, usando como dirección IP origen, la dirección
de la víctima (Spoofing). Se espera que los equipos conectados respondan
a la petición, usando Echo reply, a la máquina origen (víctima). Se dice que
el efecto es amplificado, debido a que la cantidad de respuestas obtenidas,
corresponde a la cantidad de equipos en la red que puedan responder. Todas
estas respuestas son dirigidas a la víctima intentando colapsar sus recursos
de red. Como se dijo anteriormente, los intermediarios también sufren los
mismos problemas que las propias vić timas.
4. Inundación UDP (UDP Flood): Básicamente este ataque consiste en generar
grandes cantidades de paquetes UDP contra lavíctima elegida. Debido a la
naturaleza sin conexión del protocolo UDP, este tipo de ataques suele venir
acompañado de IP spoofing. Es usual dirigir este ataque contra máquinas
que ejecutan el servicio Echo, de forma que se generan mensajes Echo de
un elevado tamaño.
1.2.4.2 Suplantación de la identidad

El termino Phishing es utilizado para referirse a uno de los métodos mas utilizados
por delincuentes cibernéticos para estafar y obtener información con15dencial de
forma fraudulenta como puede ser una contraseña o información detallada sobre
tarjetas de crédito u otra información bancaria de la victima.

́ social,
El estafador, conocido como phisher, se vale de técnicas de ingenieria
haciéndose pasar por una persona o empresa de confianza en una aparente
comunicación oficial electrónica, por lo general un correo electrónico, o algún
sistema de mensajería instantánea, redes sociales SMS/MMS, a raiź de un malware
o incluso utilizando también llamadas telefónicas.

1.2.5 Técnicas de Inserción

Un virus usa el sistema de infección por inserción cuando copia su código


directamente dentro de archivos ejecutables, en vez de añadirse al final de los
archivos anfitriones. Copian su código de programa dentro de un código no utilizado
o en sectores marcados como dañados dentro del archivo por el sistema operativo,
esto evita que el tamaño del archivo varíe. Esto mayores técnicas de programación
de los virus para poder detectar las zonas posibles de contagio dentro de un
ejecutable.

La inserción de burbujas es un método para prevenir la aparición de riesgo de datos,


estructurales y de salto. Una vez que las instrucciones sean capturadas, la lógica
de control determina si podría o va a ocurrir un riesgo. Si es cierto, la lógica de
control inserta una instrucción NOP (No Operation). De esta manera antes de la
instrucción siguiente (la que causa el riesgo) sea ejecutada, la anterior tendrá tiempo
suficiente para completarse y prevenir el riesgo. Si el número de NOP`s insertadas
es igual al número de etapas de la segmentación el procesador puede trabajar sin
amenazas de riesgo.
1.3 Planificación de la seguridad

El Plan de Seguridad Informática es la expresión gráfica del Sistema de Seguridad


Informática diseñado y constituye el documento básico que establece los principios
organizativos y funcionales de la actividad de Seguridad Informática en una Entidad
y recoge claramente las políticas de seguridad y las responsabilidades de cada uno
de los participantes en el proceso informático, así como las medidas y
procedimientos que permitan prevenir, detectar y responder a las amenazas que
gravitan sobre el mismo.

Durante el proceso de diseño de un Sistema de Seguridad Informática se distinguen


tres etapas:

1) Determinar las necesidades de protección del sistema informático objeto de


análisis, que incluye:
a. Caracterización del sistema informático.
b. Identificación de las amenazas y estimación de los riesgos. Evaluación
del estado actual de la seguridad.
2) Definir e implementar el sistema de seguridad que garantice minimizar los
riesgos identificados en la primera etapa.
a. Definir las polit́ icas de seguridad.
b. Definir las medidas y procedimientos a implementar.
3) Evaluar el sistema de seguridad diseñado.

Una vez cumplidas estas etapas se elabora el Plan de Seguridad Informática.


2 Criptografía

2.1 Definición de criptografía

́ es la creación de técnicas para el cifrado de datos. Teniendo como


La criptografia
objetivo conseguir la confidencialidad de los mensajes. Si la criptografía es la
creación de mecanismos para cifrar datos, el criptoanálisis son los métodos para
“romper” estos mecanismos y obtener la información. Una vez que nuestros datos
han pasado un proceso criptográfico decimos que la información se encuentra
cifrada.

2.1.1 Clasificación

Los primeros registros del uso de la criptografía datan del siglo V a.C. A partir de la
escritura de la obra Mathematical Theory of Communication, escrito por C.E
Shannon era considerado como un arte de escribir algún mensaje mediante el uso
de claves secretas o un modo misterioso. A principios de la segunda guerra mundial
se implementa la utilización de algoritmos matemáticos, de máquinas, programas,
entre otros para el ocultamiento del mensaje, algunos de ellos usados aún en
́ s considerando a la criptografia
nuestros dia ́ como ciencia.

Por ello la criotografía se divide en:

́ Clásica: En la criptografía clásica se ocupaban diversos métodos


1. Criptografia
para ocultar mensajes, que sólo podían leer o llegar a personas de mucho
prestigio como reyes, jefes y monarcas. En muchos de los casos fue utilizada
para la comunicación en las guerras. Es por ello que se le considero como el
arte de ocultar el mensaje.
Existen diversos métodos utilizados con respecto al año o época
dependiendo de los recursos disponibles (tecnológicos, humanos, etc.), para
́ clásica, se mencionaran algunos ejemplos
poder entender la criptografia
sobresalientes utilizados a lo largo de la historia.
2. Criptografía moderna: En 1948 Bell System Technical Journal publica el
́ matemática de la comunicación escrita por Clude
artículo llamado Una teoria
Shannon y las aportaciones de Warren Weaver, se demuestra que toda
fuente de información se puede medir y que los canales de comunicación
tienen una unidad de medida similar, apoyado en la teoría de muestreo de
Nysquit ( la cual indica que se produce una pérdida de información llamada
distorsión, error o ruido de cuantificación y que existe un límite para su
transmisión), es decir que toda información se trasmite sobre un canal si la
magnitud de la fuente no excede con la capacidad de trasmisión del canal
que la conduce, sentando las bases para corrección de errores, suspensión
de ruido y redundancia.
En 1949 se publicó la Teoría de las comunicaciones secretas escrito por
Shannon, en donde la criptografía se apoya de otras ciencias como la
estadiś tica, la teoria
́ de la información, la fiś ica, las matemáticas, etc.
Con los dos anteriores escritos surge la teoría de la información: la fuente de
información genera el mensaje a trasmitir, posteriormente se aplica una
codificación, es decir se trasforma el mensaje, para poder ser mandado como
señal sobre un canal, en el transcurso el mensaje o señal se puede ver
afectada por el ruido, el cual provocara pérdida o alteración para poder llegar
al receptor. Una vez que se reciba la señal por el receptor y sea decodificado,
es decir a su forma original, se manda el destino que es el punto final del
proceso de comunicación.
́
La criptografía moderna se dividida en dos grandes vertientes: criptografia
simétrica y asimétrica.

2.1.2 Tipos de cifrado

2.1.2.1 Cifrado por sustitución

El cifrado de sustitución consiste en reemplazar una o más entidades (generalmente


letras) de un mensaje por una o más entidades diferentes.
Existen varios tipos de criptosistemas de sustitución:

 La sustitución monoalfabética: Consiste en reemplazar cada una de las letras


del mensaje por otra letra del alfabeto.
 La sustitución polialfabética: Consiste en utilizar una serie de cifrados
monoalfabéticos que son re-utilizados periódicamente.
 La sustitución homófona: Hace posible que cada una de las letras del
mensaje del texto plano se corresponda con un posible grupo de caracteres
distintos.
 La sustitución poligráfica: Consiste en reemplazar un grupo de caracteres en
un mensaje por otro grupo de caracteres.

Cifrado César

Este código de cifrado es uno de los más antiguos ya que su uso se remonta a Julio
César. El principio de cifrado se basa en la adición de un valor constante a todos
los caracteres de un mensaje o, más precisamente, a su código ASCII (American
National Standard Code for Information Interchange).

Simplemente es cuestión de cambiar todos los valores de los caracteres de un


mensaje en un determinado número de posiciones, es decir, sustituir cada letra por
otra. Por ejemplo, si cambiamos 3 posiciones del mensaje "COMMENT CA
MARCHE", obtenemos "FRPPHQW FD PDUFKH". Cuando el valor agregado da
una letra posterior a la Z, podemos simplemente continuar empezando por la A.
Esto quiere decir que aplicamos un módulo 26.

Como, por ejemplo, en la película 2001: Una Odisea al Espacio, el ordenador se


llamó HAL. Este nombre es, en realidad, IBM desplazado una posición hacia abajo...

El carácter que corresponde al valor que se agregó al mensaje para el cifrado se


llama clave. En este caso, la clave es C, ya que es la 3º letra del alfabeto.
Este sistema de cifrado es, en verdad, muy fácil de implementar, pero su desventaja
es que es totalmente asimétrico, ya que se puede realizar una simple sustracción
para averiguar el mensaje inicial. Un método básico consiste en una simple
sustracción de los números 1 al 26 para ver si alguno de estos números nos da un
mensaje inteligible.

Un método más avanzado consiste en calcular la frecuencia con que aparecen las
letras en el mensaje codificado (esto se hace cada vez más fácil a medida que el
mensaje es más largo). Según el idioma, algunas letras se usan con más frecuencia
que otras (por ejemplo, en francés la letra E es la más usada). De esta forma, la
letra que aparece con más frecuencia en el texto cifrado mediante el cifrado César
será la que corresponda a la letra E y una simple sustracción nos da la clave de
cifrado...

Cifrado ROT13

El caso específico del cifrado César donde la clave de cifrado es N (la 13º letra del
alfabeto) se denomina ROT13 (se eligió el número 13, la mitad de 26, para que sea
posible cifrar y descifrar fácilmente mensajes textuales).

2.1.2.2 Cifrado por transposición

El método de cifrado por transposición consiste en reordenar datos para cifrarlos a


fin de hacerlos ininteligibles. Esto puede significar, por ejemplo, reordenar los datos
geométricamente para hacerlos visualmente inutilizables.

Los cifrados por transposición reordenan el texto de acuerdo con algún esquema.
Este reordenamiento se hacía clásicamente con la ayuda de algún tipo de figura
geométrica.

Primero el texto a cifrar se escribía en la figura de una forma determinada y después


se extraía de la figura de una forma diferente, quedando cifrado. La llave (clave)
consiste pues en la forma de introducir y sacar el texto de la figura.
La figura escogida la mayoría de las veces era una matriz bidimensional. Como
ejemplos podemos distinguir:

3. Cifrado por transposición columnar


4. Cifrado por transposición

El objetivo de las sustituciones es crear confusión. Una transposición es un cifrado


en el que las letras del mensaje son cambiadas de posición. Su objetivo es el de la
difuminar el mensaje. También se conoce como una permutación. En este caso al
reordenar el criptograma aparecerán exactamente los mismos caracteres que en el
texto en claro.

Es fácil detectar que nos enfrentamos ante un cifrado por transposición si


comprobamos que la frecuencia de aparición de caracteres cumple la estadística
para algún idioma. Estas técnicas de cifrado son atacadas mediante técnicas de
“ANAGRAMACIÓN”.

Cifrado por transposición columnar

Dado un texto a cifrar, se escribe por filas en una matriz de una anchura
predeterminada y se obtiene el texto cifrado leyendo las columnas en algún orden.
Por ejemplo, para cifrar el texto “El cristal roto empezaba a crecer de nuevo”, con
una anchura de bloque de 6 caracteres hacemos:

E L C R I S
T A L R O T
O E M P E Z
A B A A C R
E C E R D E
N U E V O

Ahora lo que se hace es leer el texto por columnas en cualquier orden. Por ejemplo,
en el orden 2-4-6-1-3-5 tenemos:
“LAEBCU RRPARV STZRE ETOAEN CLMAEE IOECDO”

La llave (clave) de este cifrado es la permutación que se ha usado y las dimensiones


de la tabla.

Como se ha explicado anteriormente lo único que hace este método es considerar


el texto escrito por filas en una matriz y volver a escribir este texto cogiendo las
columnas de dicha matriz. Debemos tener en cuenta que la llave (clave) en este
cifrado es la permutación que se ha utilizado, es decir, la forma de elegir las
columnas, y las dimensiones de la matriz donde se escribe el texto.

Teniendo en cuenta lo expuesto en el párrafo anterior, y que al escribir el texto


cifrado hay espacios en blanco entre los “trozos” de texto que se corresponden con
las columnas, entonces, una forma de realizar el criptoanálisis al texto anteriormente
cifrado puede ser la siguiente:

Coger el texto cifrado y volverlo a poner en una matriz como la explicada


anteriormente.

Intercambiar las columnas de dicha matriz hasta obtener un texto con sentido.

Para facilitar la labor debemos tener en cuenta que la columna de menor longitud
será la última columna de la matriz original. Entonces, partiendo de la tabla:

L R E C I S
A R T L O T
E P O M E Z
B A A A C R
C R E E D E
U V N E O

Realizando distintas permutaciones entre las columnas de la misma podemos volver


a obtener la matriz original:
E L C R I S
T A L R O T
O E M P E Z
A B A A C R
E C E R D E
N U E V O

Y, por tanto, podemos descifrar el mensaje: “El cristal roto empezaba a crecer de
nuevo”

Cifrado por transposición

Dado un texto a cifrar, se escribe por filas en una matriz de una anchura
predeterminada y luego se cambian las columnas de sitio. Por ejemplo, para cifrar
el texto “A quien madruga Dios le ayuda”, con una anchura de bloque de 5
caracteres hacemos:

A Q U I E
N M A D R
U G A D I
O S L E A
Y U D A H

Metemos cualquier carácter de relleno al final, para que la matriz quede


completamente rellena y cambiamos las columnas de sitio, por ejemplo, las
ponemos en el orden 3-5-2-1-4 y obtenemos:

U E Q A I
A R M N D
A I G U D
L A S O E
D H U Y A
Con lo que el texto cifrado queda:

EQAI ARMND AIGUD LASOE DHUYA

Más formalmente, lo que se hace es dividir el texto en bloques de una longitud fija
y aplicar a cada bloque una permutación p. En el ejemplo anterior, se dividiría el
texto en bloques de 5 caracteres:

AQUIE NMADR UGADI OSLEA YUDAH

Se le añaden letras al final para terminar de llenar un bloque y se aplica la


permutación (1, 3, 2, 5,4), con lo que se llega el resultado UEQAI ARMND AIGUD
LASOE DHUYA, que coincide con el obtenido anteriormente.

Para realizar el criptoanálisis de un texto que ha sido cifrado con este método
debemos seguir los pasos considéranos en el apartado de cifrado por transposición
columnar. Además de lo expuesto anteriormente hay que tener en cuenta que ahora
los huecos son rellenados con caracteres. Entonces, dado un texto cifrado con este
método y sin espacios en blanco para delimitar las columnas, podríamos obtener el
número de columnas de la matriz sin más que conocer la longitud del texto cifrado,
pues el número de columnas debe ser un divisor de este.

2.2 Criptografía Simétrica

2.2.1 Criptosistemas de Clave Secreta.

Denominamos criptosistema de clave secreta (de clave privada, de clave única o


simétrico) a aquel criptosistema en el que la clave de cifrado puede ser calculada a
partir de la de descifrado y viceversa. En la mayoría de estos sistemas, ambas
claves coinciden, y por supuesto han de mantenerse como un secreto entre emisor
y receptor: si un atacante descubre la clave utilizada en la comunicación, ha roto el
criptosistema.
2.2.2 Generalidades sobre sistemas de clave secreta.

Hasta la década de los setenta, la invulnerabilidad de todos los sistemas dependía


de este mantenimiento en secreto de la clave de cifrado. Este hecho presentaba
una gran desventaja: había que enviar, aparte del criptograma, la clave de cifrado
del emisor al receptor, para que éste fuera capaz de descifrar el mensaje. Por tanto,
se incurría en los mismos peligros al enviar la clave, por un sistema que había de
ser supuestamente seguro, que al enviar el texto plano. Por si esto no fuera
suficiente, el hecho de que exista al menos una clave de cifrado/descifrado entre
cada dos usuarios de un sistema haría inviable la existencia de criptosistemas
simétricos en las grandes redes de computadores de hoy en día: para un sistema
de computación con usuarios, se precisarían claves diferentes, lo cual es
obviamente imposible en grandes sistemas. Todos estos motivos han propiciado
que el estudio de los cifradores simétricos quede relegado a un papel histórico.

Los sistemas de cifrado de clave única se dividen a su vez en dos grandes grupos
de criptosistemas: por una parte tenemos los cifradores de flujo, que son aquellos
que pueden cifrar un sólo bit de texto claro al mismo tiempo, y por tanto su cifrado
se produce bit a bit, y por otro lado tenemos los cifradores de bloque, que cifran un
bloque de bits (habitualmente, cada bloque es de 64 bits) como una única unidad.

2.2.3 Algoritmo DES (Data Encryption Standard).

DES es un algoritmo de cifrado escogido como un estándar FIPS (Federal


Information Processing Standard) en los Estados Unidos en 1976, y cuyo uso se
propagó ampliamente por todo el mundo. DES permite bloques de texto ordenados
de 64 bits, claves privadas de 56 bits, tiene 16 interacciones, se generan 16
subclaves de 48 bits una para cada interacción.

Actualmente DES se considera un algoritmo inseguro, y no debe utilizarse. Su


ventaja es que es uno de los sistemas más empleados y extendidos, por tanto es
de los más probados, pero no es seguro. Implementación sencilla y rápida.
Tiene un listado de inconvenientes como por ejemplo:

 No se permite una clave de longitud variable, es decir, no se puede aumentar


para tener una mayor seguridad.
 Es vulnerable al criptoanálisis diferencial, aunque solo es un ataque teórico.
 La longitud de clave de 56 bits es demasiado corta, y por tanto vulnerable.
 Actualmente DES ya no es un estándar, debido a que en 1999 fue roto.

2.2.4 Modos de cifra en bloque.

Los algoritmos de cifrado de bloque como DES (Data Encryption Standard) o AES
(Advanced Encryption Standard) separan el mensaje en pedazos de tamaño fijo,
por ejemplo de 64 o 128 bits. La forma en que se gestionan estos pedazos o bloques
de mensaje, se denomina "modo de cifrado". Existen muchos modos de cifrado
diferentes, a continuación hablaremos de los más importantes.

ECB - Electronic Code Book Mode

ECB ha sido estandarizado por el NIST (U.S. National Institute for Standards and
Technology). Este modo de cifrado es el más simple de todos, pues se limita a partir
el mensaje en bloques y cifrarlos por separado.

Entre las ventajas de este método destaca la posibilidad de romper el mensaje en


bloques y cifrarlos en paralelo o el acceso aleatorio a diferentes bloques.

Sin embargo, las desventajas de este modo de cifrado son enormes, por lo que se
usa cada vez menos. El hecho de cifrar los bloques por separado implica que
cuando se cifre un bloque con cierto valor, siempre se obtendra el mismo resultado.
Esto hace posible los ataques de diccionario.
Además, cuando se cifran varios bloques y se envían por un canal inseguro, es
posible que un adversario elimine ciertos bloques sin ser detectado, o que capture
algunos bloques y los reenvíe más adelante.

CBC - Cipher Block Chaining Mode

CBC ha sido estandarizado por el NIST (U.S. National Institute for Standards and
Technology). Este modo de cifrado es una extensión de ECB que añade cierta
seguridad. El modo de cifrado CBC divide el mensaje en bloques y usa XOR para
combinar el cifrado del bloque anterior con el texto plano del bloque actual. Como
no se dispone de un texto cifrado con el que combinar el primer bloque, se usa un
vector de inicialización IV (número aleatorio que puede ser publicamente conocido).
El uso del vector de inicialización es importante, pues de no usarlo, podría ser
susceptible de ataques de diccionario. También es necesario que el IV sea aleatorio
y no un número secuencial o predecible.

Entre las desventajas de este modo de cifrado destaca la necesidad de realizar el


cifrado de forma secuencial (no puede ser paralelizado). Tambien hay que tener en
cuenta la posibilidad de realizar ataques de reenvío de un mensaje entero (o
parcial).

CTR - Counter Mode

Mientras que ECB y CBC son modos basados en bloques, CTR simula un cifrado
de flujo. Es decir, se usa un cifrado de bloque para producir un flujo pseudo aleatorio
conocido como keystream. Este flujo se combina con el texto plano mediante XOR
dando lugar al cifrado.
Para generar el keystream se cifra un contador combinado con un número aleatorio
(nonce) mediante ECB y se va incrementando. El valor del contador puede ser
públicamente conocido, aunque es preferible guardarlo en secreto. Es necesario
que el valor de nonce+contador lo conozcan ambos lados de la comunicación.

Entre las ventajas de CTR destaca la posibilidad de precalcular el keystream (y/o


trabajar en paralelo), el acceso aleatorio al keystream o que revela poquísima
información sobre la clave.

Como desventajas hay que tener en cuenta que reutilizar un contador en la misma
clave puede ser desastroso, pues se generará de nuevo el mismo keystream.

Modificar bits en el texto plano es muy sencillo, pues modificando un bit del cifrado
se modificará el bit del texto plano correspondiente (Bit-flipping attacks). Por lo que
es adecuado usar este modo de cifrado junto con una verificación de la integridad
del mensaje.

OFB - Output Feedback Mode

OFB ha sido estandarizado por el NIST (U.S. National Institute for Standards and
Technology). Como CTR es otro cifrado de flujo. En este caso el keystream se
genera cifrando el bloque anterior del keystream, dando lugar al siguiente bloque.
El primer bloque de keystream se crea cifrando un vector de inicialización IV.
OFB comparte muchas de las características de CTR, pero CTR tiene beneficios
adicionales, por lo que OFB se usa bastante poco.

En OFB se pueden precalcular los keystream (aunque no se puede realizar en


paralelo) y a diferencia de CTR no da problemas al ser usado con cifrados de bloque
de 64 bits. Además, como en el caso de CTR, revela muy poca información sobre
la clave.

Tambien comparte con CTR sus desventajas: reutilizar un contador en la misma


clave puede ser desastroso y permite Bit-flipping attacks.

CFB - Cipher Feedback Mode:

CFB ha sido estandarizado por el NIST (U.S. National Institute for Standards and
Technology) y es muy similar a OFB. Para producir el keystream cifra el último
bloque de cifrado, en lugar del último bloque del keystrema como hace OFB.

Como en OFB reutilizar un contador en la misma clave puede ser desastroso y


permite Bit-flipping attacks. En CFB el cifrado no puede ser paralelizado, pero el
descifrado si.

Igual que en el caso anterior, es preferible usar CTR.

2.2.5 Algoritmo IDEA (International Data Encryption Algorithm).

En criptografía, International Data Encryption Algorithm o IDEA (del inglés, algoritmo


internacional de cifrado de datos) es un cifrador por bloques diseñado por Xuejia Lai
y James L. Massey de la Escuela Politécnica Federal de Zúrich y descrito por
primera vez en 1991. IDEA fue diseñado en contrato con la Fundación Hasler, la
cual se hizo parte de Ascom-Tech AG.

El algoritmo IDEA (International Data Encryption Algorithm) es bastante mas joven


que DES, pues data de 1992. Para muchos constituye el mejor y mas seguro
algoritmo simetrico disponible en la actualidad. Trabaja con bloques de 64 bits de
longitud y emplea una clave de 128 bits. Como en el caso de DES, se usa el mismo
algoritmo tanto para cifrar como para descifrar.

IDEA es libre para uso no comercial, aunque fue patentado y sus patentes se
vencerán en 2010 y 2011. El nombre "IDEA" es una marca registrada y está
licenciado mundialmente por MediaCrypt. IDEA fue utilizado como el cifrador
simétrico en las primeras versiones de PGP (PGP v2.0) y se lo incorporó luego de
que el cifrador original usado en la v1.0 ("Bass-O-Matic") se demostró insegura. Es
un algoritmo opcional en OpenPGP.

IDEA es un algoritmo bastante seguro, y hasta ahora se ha mostrado resistente a


multitud de ataques, entre ellos el criptoanalisis diferencial. No presenta claves
debiles, y su longitud de clave hace imposible en la practica un ataque por la fuerza
bruta. Como ocurre con todos los algoritmos sim_etricos de cifrado por bloques,
IDEA se basa en los conceptos de confusion y difusion, haciendo uso de las
siguientes operaciones elementales (todas ellas faciles de implementar):

 XOR.
 Suma modulo 2 (base 16)
 Producto modulo 2 (base 16) + 1

El algoritmo IDEA consta de ocho rondas. Dividiremos el bloque X a codicar, de 64


bits, en cuatro partes X1, X2, X3 y X4 de 16 bits. Denominaremos Zi a cada una de
las 52 subclaves de 16 bits que vamos a necesitar. Las operaciones que llevaremos
a cabo en cada ronda son las siguientes:
1. Multiplicar X1 por Z1.
2. Sumar X2 con Z2.
3. Sumar X3 con Z3.
4. Multiplicar X4 por Z4.
5. Hacer un XOR entre los resultados del paso 1 y el paso 3.
6. Hacer un XOR entre los resultados del paso 2 y el paso 4.
7. Multiplicar el resultado del paso 5 por Z5.
8. Sumar los resultados de los pasos 6 y 7.
9. Multiplicar el resultado del paso 8 por Z6.
10. Sumar los resultados de los pasos 7 y 9.
11. Hacer un XOR entre los resultados de los pasos 1 y 9.
12. Hacer un XOR entre los resultados de los pasos 3 y 9.
13. Hacer un XOR entre los resultados de los pasos 2 y 10.
14. Hacer un XOR entre los resultados de los pasos 4 y 10.

La salida de cada iteracion seran los cuatro sub-bloques obtenidos en los pasos 11,
12, 13 y 14, que seran la entrada del siguiente ciclo, en el que emplearemos las
siguientes seis subclaves, hasta un total de 48. Al final de todo intercambiaremos
los dos bloques centrales (en realidad con eso deshacemos el intercambio que
llevamos a cabo en los pasos 12 y 13). Despues de la octava iteracion, se realiza la
siguiente transformacion:

1. Multiplicar X1 por Z49.


2. Sumar X2 con Z50.
3. Sumar X3 con Z51.
4. Multiplicar X4 por Z52.

Las primeras ocho subclaves se calculan dividiendo la clave de entrada en bloques


de 16 bits. Las siguientes ocho se calculan rotando la clave de entrada 25 bits a la
izquierda y volviendo a dividirla, y asi sucesivamente. Las subclaves necesarias
para descifrar se obtienen cambiando de orden las Zi y calculando sus inversas para
la suma o la multiplicacion. Puesto que 216 + 1 es un numero primo, nunca
podremos obtener cero como producto de dos numeros, por lo que no necesitamos
representar dicho valor. Cuando estemos calculando productos, utilizaremos el cero
para expresar el numero 216 un uno seguido de 16 ceros. Esta representacion es
coherente puesto que los registros que se emplean internamente en el algoritmo
poseen unicamente 16 bits.

2.2.6 Algoritmo AES (Advanced Encryption Standard).

Advanced Encryption Standard (AES). También conocido como Rijndael


(pronunciado "Rain Doll" en inglés), es un esquema de cifrado por bloques adoptado
como un estándar de cifrado por el gobierno de los Estados Unidos. El AES fue
anunciado por el Instituto Nacional de Estándares y Tecnología (NIST) como FIPS
PUB 197 de los Estados Unidos (FIPS 197) el 26 de noviembre de 2001 después
de un proceso de estandarización que duró 5 años. Se transformó en un estándar
efectivo el 26 de mayo de 2002. Desde 2006, el AES es uno de los algoritmos más
populares usados en criptografía simétrica. El cifrador fue desarrollado por dos
criptólogos belgas, Joan Daemen y Vincent Rijmen, ambos estudiantes de la
Katholieke Universiteit Leuven, y enviado al proceso de selección AES bajo el
nombre "Rijndael".

Los tamaños de bloque de 128, 160, 192, 224 y 256 bits son soportados por el
algoritmo Rijndael, pero sólo bloques de 128 bits de tamaño son especificados en
el AES.

Estrictamente hablando, AES no es precisamente Rijndael (aunque en la práctica


se los llama de manera indistinta) ya que Rijndael permite un mayor rango de
tamaño de bloques y longitud de claves; AES tiene un tamaño de bloque fijo de 128
bits y tamaños de llave de 128, 192 o 256 bits, mientras que Rijndael puede ser
especificado por una clave que sea múltiplo de 32 bits, con un mínimo de 128 bits y
un máximo de 256 bits. La mayoría de los cálculos del algoritmo AES se hacen en
un campo finito determinado. AES opera en una matriz de 4×4 bytes, llamada state
(algunas versiones de Rijndael con un tamaño de bloque mayor tienen columnas
adicionales en el state).
Pseudocódigo

 Expansión de la clave usando el esquema de claves de Rijndael.


 Etapa inicial:
1. AddRoundKey
 Rondas:
1. SubBytes — en este paso se realiza una sustitución no lineal donde cada
byte es reemplazado con otro de acuerdo a una tabla de búsqueda.
2. ShiftRows — en este paso se realiza una transposición donde cada fila
del «state» es rotada de manera cíclica un número determinado de veces.
3. MixColumns — operación de mezclado que opera en las columnas del
«state», combinando los cuatro bytes en cada columna usando una
transformación lineal.
4. AddRoundKey — cada byte del «state» es combinado con la clave
«round»; cada clave «round» se deriva de la clave de cifrado usando una
iteración de la clave.
 Etapa final:
1. SubBytes
2. ShiftRows
3. AddRoundKey

2.2.7 Criptosistemas de Cifrado en Flujo

Las cifras en flujo surgen como una aproximación optimizada del cifrado de Vernam.
La idea es construir una clave lo bastante larga, cuando menos de la longitud del
mensaje, a partir de una clave inicial corta mediante lo que se llama generador
pseudoaleatorio. Este generador expande una clave corta, llamada semilla, para
obtener una mucho más larga. Además, la operación de expansión tiene que tener
unas características determinadas, ya que la secuencia que resulta se utiliza para
cifrar el texto en claro.
Los cifradores de flujo son algoritmos de cifrado que pueden realizar el cifrado
incrementalmente, convirtiendo el texto en claro, en texto cifrado bit a bit. Esto se
logra construyendo un generador de flujo de clave. Un flujo de clave es una
secuencia de bits de tamaño arbitrario que puede emplearse para oscurecer los
contenidos de un flujo de datos combinando el flujo de clave con el flujo de datos
mediante la función XOR. Si el flujo de clave es seguro, el flujo de datos cifrados
también lo será.

2.2.7.1 Cifradores con clave continua de un solo uso.

Como su nombre lo indica solo se usa una vez, en caso de que sea interceptada y
haya sido usada, ya no funcionara. Normalmente se generan mediante un algoritmo
y no se recurre a la introducción por parte del usuario.

Los métodos para obtener claves de un solo uso son:

 Usar una calculadora que da claves sincronizadas en el tiempo con el


servidor. Ambos utilizar el mismo algoritmo y por tanto la clave de la
calculadora y la esperada por el servidor coinciden.
 Petición por teléfono móvil. Algún banco envía la clave de un solo uso al
móvil, en un SMS.

2.2.7.2 Postulados de Golomb para secuencias cifrantes.

Son herramienta que ayudan a determinar la calidad y seguridad de una secuencia


en términos de aleatoriedad (primero y segundo postulados) y su impredecibilidad
(tercer postulador). Golomb, formulo tres postulados que en una secuencia finita
debe satisfacer para denominarse secuencia pseudoaleatoria o PN (Pseudo Noise).
Estos postulados pueden resumirse de la siguiente manera, en cada periodo de la
secuencia considerada:

G1: El número de 1 tiene que ser aproximadamente igual al número de 0. Es decir,


el número de 1 en cada periodo debe diferir del número de 0 por no más que 1.
G2: La probabilidad de ocurrencia, aproximada por su frecuencia relativa, de cada
k-grama (muestras de n dígitos consecutivos) debe ser muy cercana a :

G3: La función de auto correlación, AC(K), fuera de fase es constante para todo
valor de K. Para que una secuencia satisfaga este postulado, la función de auto
correlación debe ser bivaluada. Una secuencia que cumpla estos tres postulados
se denomina secuencia pseudoaleatoria, PN y disfruta de todas las propiedades de
una secuencia binaria con distribución uniforme.

2.2.7.3 Estructuras generadoras de secuencias cifrantes.

Las claves pueden ser creadas por el usuario o generadas automáticamente con la
ayuda de generadores de claves:

Generadores aleatorios: Para generar secuencias cifrantes utilizan datos


provenientes de ruido físico aleatorio (ruido de un micrófono, ruido térmico en un
semiconductor, etc.) o bien provenientes del estado de una computadora
(interrupciones, posición del ratón, actividad en la red, uso del teclado, etc.). Es
conveniente combinar varias técnicas para que la secuencia resultante sea
imposible de predecir. Este tipo de generadores se utilizan para generar claves
cortas.

Generadores pseudoaleatorios: Este tipo de cifradores no son totalmente aleatorios


ya que para generar una secuencia obedecen a algún algoritmo o cierto
procedimiento repetitivo.

Generador de congruencia lineal: Un generador de congruencia lineal ( LCG ) es un


algoritmo que produce una secuencia de números pseudo-aleatorios calculados con
una discontinua ecuación lineal por tramos . El método representa una de las más
antiguas y más conocidas número de generadores pseudoaleatorios algoritmos. La
teoría detrás de ellos es relativamente fácil de entender, y se implementa fácilmente
y rápido, sobre todo en el hardware que puede proporcionar la aritmética módulo de
almacenamiento de bits truncamiento.
2.2.7.4 Cifrados en flujo con registros de desplazamiento.

Un registro de desplazamiento es básicamente una construcción con varias celdas


de memoria conectadas entre sí, donde cada celdas almacena un bit. Así, el valor
de todas estas celdas conforman el estado del registro. Cuando se cambia el estado
del registro (generalmente al ritmo de un reloj), el nuevo estado del registro se forma
simplemente desplazando los bits de cada celda a la celda de su derecha. Así, el
bit de más a la derecha sale del registro, y un nuevo bit entra en la celda de más a
la izquierda.

2.3 Criptografía Asimétrica.

2.3.1 Criptosistemas de Clave Pública.

La criptografía asimétrica es el método criptográfico que usa un par de claves para


el envío de mensajes. Las dos claves pertenecen a la misma persona que ha
enviado el mensaje. Una clave es pública y se puede entregar a cualquier persona,
la otra clave es privada y el propietario debe guardarla de modo que nadie tenga
acceso a ella. Además, los métodos criptográficos garantizan que esa pareja de
claves sólo se puede generar una vez, de modo que se puede asumir que no es
posible que dos personas hayan obtenido casualmente la misma pareja de claves.

2.3.1.1 Introducción a la cifra con clave pública.

Para los procedimientos simétricos, y antes de cifrar el mensaje, es obligatorio el


intercambio de la clave privada entre quien envía el mensaje y quien lo recibe.

A causa de las enormes redes de comunicación con las cuales hoy día se tienen
que intercambiar datos cifrados, el intercambio de claves privadas origina un
problema insuperable: apenas logra el mantenimiento del secreto. Cada mensaje
requiere un nuevo intercambio de claves, lo que implica un retraso. Por lo tanto,
para tener una seguridad más alta en el proceso de cifrado se fuerza a tener una
clave más grande, es decir, un costo altísimo.
2.3.1.2 Protocolo de Diffie y Hellman para el intercambio de claves.

Cada participante en una red de comunicación suministra de manera pública su


propia clave B y la correspondiente función de cifrado eB. Esta puede ser colocada
en un libro, como el directorio telefónico. La función de descifrado dB se conserva
secreta y, además, esta no puede ser calculada a partir de eB por otra persona, en
un tiempo justificable.

Alicia desea enviar un mensaje x a Bob, así que ella encuentra en el directorio
telefónico bajo Bob la función de cifrado eB y envía eB(x). Con esto, dado que tiene
dB, Bob puede luego calcular dB(eB(x)) = x

2.3.1.4 Cifrado RSA.

El algoritmo fue descrito en 1977 por Ron Rivest, Adi Shamir y Len Adleman (la sigla
RSA es Rivest Shamir Adleman) en el MIT.

El cifrado RSA es un algoritmo de cifrado de clave pública (o asimétrico) por


bloques, que como todos los cifrados de clave pública tiene dos claves: una pública,
que se distribuye a los usuarios que quiera el propietario de ella, y otra privada, la
cual es guardada en secreto por su propietario. Así cuando se envía un mensaje, el
emisor usa la clave pública de cifrado del receptor para cifrar el mensaje y una vez
que dicho mensaje llega al receptor, éste se ocupa de descifrarlo usando su clave
oculta.

El algoritmo sigue los siguientes pasos:

1. Se construye un número “N”, que resulta del producto de dos primos “p” y “q”
(normalmente son números muy grandes). Teniendo N = p · q y Φ(N) = (p-1)
· (q-1)
2. Se selecciona un número “e”,1 < e < Φ(N), tal que MCD (e, Φ(N)) = 1 (“e” y
Φ(N) son primos relativos).
3. Se calcula el inverso de “e”, denotado por “d”, tal que e · d = 1 (mod Φ(N))
4. Con esto se consiguen las claves (e, d), siendo la clave pública (e, N) y la
clave privada (d, N).

Una vez tenemos las claves podemos pasar a cifrar/descfirar los mensajes:

Cifrado: C = Me (mod N) con MCD (M, N) = 1 y M < N

Descifrado: M = Cd (mod N)

La seguridad de este algoritmo radica en que no hay maneras rápidas conocidas de


factorizar un número grande en sus factores primos utilizando computadoras
tradicionales.

2.3.1.5 Cifrado ElGamal.

Este algoritmo está basado en el algoritmo de Diffie-Hellman para el intercambio de


claves, fue descrito en 1984 por Taher Elgamal. Actualmente se usa en el software
libre GNU Privacy Guard (GPG), versiones de PGP y otros sistemas.

El algoritmo sigue los siguientes pasos:

1. El receptor selecciona un primo grande “p” y un generador g ∈ Z*p.


2. El receptor selecciona aleatoriamente un valor “xr” tal que 0 < xr < p-1. Siendo
“xr” la clave privada.
3. La clave pública es igual a yr = gxr (mod p).
4. Ahora el emisor toma un “K” aleatorio tal que MCD (K, p-1) = 1, es decir, “K”
sea primo relativo con p-1 y calcula r = gK (mod p) y s = M · yKr (mod p).
5. El emisor manda el mensaje cifrado como C = (r, s), siendo “r” la clave pública
del emisor y “s” el mensaje cifrado.
6. Ahora el mensaje cifrado se descifra calculando M = s/rxr.

La seguridad del algoritmo depende en la dificultad de calcular logaritmos discretos.


2.4 Herramientas Criptográficas.

DiskCryptor es una solución Open Source para el cifrado de particiones y discos


duros completos. Al igual que TrueCrypt podemos cifrar archivos, particiones o
dispositivos de almacenamiento externo USB. También incluye algoritmos de
cifrado tales como AES, Twofish y Serpen.

VeraCrypt es una solución de cifrado Open Source basada en TrueCrypt. Utiliza la


misma interfaz y características con la diferencia que incluye un número mayor de
iteraciones para el cifrado de la información. La desventaja del aumento significativo
de iteraciones es que VeraCrypt es más lento al momento de implementar lectura y
escritura de información en el disco. Al igual que TrueCrypt, VeraCrypt incluye
algoritmos de cifrado tales como AES, Twofish y Serpent.

OpenStego es una herramienta Open Source que permite utilizar la técnica de


Estenografía para guardar información de manera segura a través de imágenes,
música y/o videos. En términos simples, con OpenStego podemos enviar mensajes
ocultos dentro de una imagen o cualquier archivo multimedia. La Estenografía es
una rama de la criptografía.

OpenPuff es una herramienta Open Source para Windows de Estenografía. Fue una
de las primeras herramientas de estenografía. Soporta imágenes en formato BMP
y JPG, archivos de audio MP3 y WAV, archivos de video MPG4, entre otros.

GNUGPG es una implementación libre de PGP (Pretty Good Privacy). GNUGPG


permite el cifrado y firma de datos y de las comunicaciones. GNUPGP es una de las
herramientas de cifrado utilizadas por Edward Snowden ex-contratista de la NSA.

OpenSSH es una herramienta Open Source de acceso remoto a través del protocolo
IP. OpenSSH es la alternativa perfecta al protocolo Telnet. Con OpenSSH podemos
conectarnos de manera segura a un dispositivo en la red, ya quela información que
viaja entre ambos nodos va cifrada utilizando algoritmos de cifrado simétricos.
OpenSSH también incluye capacidad de Tunneling y autenticación.
OpenSSL es una implementación Open Source del protocolo SSL (Secure Socket
Layer). Este protocolo permite el cifrado de información a través de la red. Su gran
adopción es gracias a que no es necesaria la instalación de un software cliente para
cifrar la información entre dos dispositivos, ya que SSL viene instalado en
prácticamente el 99% de todos los navegadores web. Este SSL protocolo es
utilizado para realizar de manera segura la mayoría de transacciones financieras en
línea. OpenSSL es también utilizado como solución de VPN (Virtual Private
Network) como alternativa al protocolo IPSEC, principalmente en la conectividad de
usuarios remotos.

TOR es una aplicación de código abierto que nos ayuda a mantener nuestra
privacidad mientras navegamos por Internet. Cuando descargamos e instalamos
TOR en nuestro ordenador, nos conectamos a una red P2P (Peer to Peer)
totalmente cifrada utilizando el algoritmo de encriptación AES, donde el tráfico que
sale de nuestra computadora es ilegible para cualquiera que trate de ver el
contenido de nuestras comunicaciones.
3 Autenticación

3.1 Protocolos de Autenticación

Una parte importante de la seguridad de la red es la autenticación, autorización y


auditoría, conocidas colectivamente como la AAA (Authentication, Authorization and
Accounting). AAA es un marco, en el que un administrador puede mantener el
control de acceso sobre los dispositivos de red. AAA cubre control de acceso sobre
routers, switches, firewalls, servidores, etc.

Cualquier dispositivo de red que no sea una estación de trabajo y que permite el
acceso remoto, puede caer bajo las políticas AAA. AAA no es un protocolo en sí
mismo, sino que es un conjunto de directrices promovidas por The Internet
Engineering Task Force (IETF) que describe cómo deben comportarse los
protocolos de acceso a optimizar sus beneficios de la seguridad.

La autenticación es el proceso en el que se identifica un usuario en un dispositivo.


Esto incluye el nombre de usuario y la contraseña de proceso y el tipo de cifrado, si
los hubiere, que se utiliza durante el proceso de autenticación. El objetivo de la
autenticación es restringir el acceso a los dispositivos de red, por lo que tiene que
producirse la autenticación antes de que un usuario tenga acceso a un dispositivo.
La autenticación se define para cada interfaz. Múltiples formas de autenticación son
compatibles con cada interfaz, sin embargo, una autenticación por defecto pueden
ser asignada a todas las interfaces.

La autorización es el perfil de usuario. Es lo que determina el nivel de acceso, o lo


servicios a los que un usuario tiene acceso. Autorización se puede definir en un par
de maneras. Si la política de autorización para cada usuario va a ser coherente en
toda la red, entonces la política de autorización se puede definir en el servidor AAA.
Si la autorización de la política va a variar de un dispositivo a dispositivo, entonces
las políticas de autorización se pueden definir sobre el dispositivo de red individual.
Por ejemplo, un administrador de red puede querer definir distintas políticas para
los routers y servidores, o un desarrollador web puede tener pleno acceso al
servidor web, pero sólo un acceso limitado al servidor DNS. Las políticas de
autorización no tienen que estar limitada para cada usuario. Se puede definir para
cada grupo, con diferentes grupos con diferentes privilegios.

Controlar los registros, y qué privilegios se han registrado y cuando, no es suficiente.


También tienen que ser capaces de controlar lo que hacen mientras está conectado,
que es donde la auditoría es importante. La auditoría permite a un administrador de
red controlar los tiempos de conexión de una cuenta, las órdenes emitidas mientras
está conectado, los recursos utilizados, y los datos transferidos. Las características
de la auditoría pueden añadir sobrecarga a la red, sin embargo, la información
adicional puede ser de un valor incalculable cuando se trata de localizar, ya sea
interno o externo un atacante como la contabilidad del servidor AAA tiene un registro
completo de los movimientos realizados por un atacante.

3.1.1 Claves secretas compartidas

Este protocolo se basa en un principio encontrado en muchos protocolos de


autenticación. Una parte envía un nuero aleatorio a la otra, quien a continuación lo
transforma en una forma especial y después regresa al resultado. Tales protocolos
se conocen como de desafio-respuesta. Es posible especificar una clave secreta
compartida previamente. Su uso es sencillo y no requiere que el cliente ejecute el
protocolo Kerberos V5 ni que tenga un certificado de claves públicas. Ambas partes
deben configurar IPSec manualmente para utilizar esta clave compartida
previamente.

El uso de autenticación por claves compartidas previamente no se recomienda


porque es un método de autenticación relativamente débil. La autenticación por
claves compartidas previamente crea una clave maestra que es menos segura (y
que podría ofrecer una forma de cifrado más débil) que los certificados o el protocolo
Kerberos V5. Asimismo, las claves compartidas previamente se almacenan en texto
no cifrado. La autenticación por claves compartidas previamente se utiliza por
motivos de interoperabilidad y por compatibilidad con los estándares de IPSec. Se
recomienda que sólo utilice claves previamente compartidas en pruebas y que, en
su lugar, emplee certificados o Kerberos V5 en un entorno de producción.

3.1.2 Centros de 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.

3.1.3 Claves públicas

El principio del cifrado asimétrico (también conocido como cifrado con clave pública)
apareció en 1976, con la publicación de un trabajo sobre criptografía por Whitfield
Diffie y Martin Hellman.

Una clave pública esencialmente resuelve el problema de distribución de claves


simétricas, que hasta esos años era uno de los principales problemas en la
criptografía. De manera creativa es también inventado el concepto de firma digital,
que resuelve el problema de autenticidad de una entidad. En la actualidad se cuenta
con esquemas: de cifrado, de firma digital y de intercambio de claves, entre sus
principales usos.

En un criptosistema asimétrico (o criptosistema de clave pública), las claves se dan


en pares:

Una clave pública para el cifrado;

Una clave secreta para el descifrado.

En un sistema de cifrado con clave pública, los usuarios eligen una clave aleatoria
que sólo ellos conocen (ésta es la clave privada). A partir de esta clave,
automáticamente se deduce un algoritmo (la clave pública). Los usuarios
intercambian esta clave pública mediante un canal no seguro.

Cuando un usuario desea enviar un mensaje a otro usuario, sólo debe cifrar el
mensaje que desea enviar utilizando la clave pública del receptor (que puede
encontrar, por ejemplo, en un servidor de claves como un directorio LDAP). El
receptor podrá descifrar el mensaje con su clave privada (que sólo él conoce).
Este sistema se basa en una función que es fácil de calcular en una dirección
(llamada función trapdoor de único sentido) y que, matemáticamente, resulta muy
difícil de invertir sin la clave privada (llamada trapdoor).

Para ilustrarlo con un ejemplo, sería como si un usuario creara de forma aleatoria
una pequeña llave metálica (la clave privada) y luego produjera una gran cantidad
de candados (claves públicas) que guarda en un casillero al que puede acceder
cualquiera (el casillero sería el canal no seguro). Para enviarle un documento, cada
usuario puede usar un candado (abierto), cerrar con este candado una carpeta que
contiene el documento y enviar la carpeta al dueño de la clave pública (el dueño del
candado).

Sólo el dueño podrá abrir la carpeta con su clave privada.

El problema de la comunicación de la clave de descifrado ya no existe, ya que las


claves públicas se pueden enviar libremente. Por lo tanto, el cifrado con clave
pública permite a las personas intercambiar mensajes de cifrado sin tener que
compartir un secreto.

Por otro lado, el problema consiste en asegurarse de que la clave pública que se
obtiene pertenece realmente a la persona a la que desea enviar la información
cifrada.

La seguridad de un sistema criptográfico de clave pública es sin duda la primera


preocupación, los elementos que la componen deben de ser elegidos de la manera
más cuidadosa posible ya que de ello depende su "seguridad", (casi es siempre
satisfecho si tomamos en cuenta el estándar más actualizado) pero ningún sistema
criptográfico puede decirse totalmente seguro, en el sentido de que no pueda ser
atacado de alguna manera nueva y novedosa.

En términos más formales en la actualidad se esta discutiendo mucho sobre una


definición de seguridad en los sistemas de clave pública, por el momento existen
dos corrientes, una de ellas afirma que todo esquema de clave pública puede y debe
de probar su seguridad vía los métodos formales que existen para ello u otros
nuevos. La otra corriente no menos importante menciona que dicha seguridad
formal no aporta mucho a la seguridad "real", es decir que en la práctica no se ve
reflejado dicha seguridad.

De manera sencilla la seguridad de un sistema criptográfico ha ido modificándose,


desde la primera noción, un sistema criptográfico era seguro si su función primitiva
era de un solo sentido. Posteriormente se modificó esta definición a: Dada una clave
pública y un mensaje cifrado (llamado ciphertext), entonces el sistema de clave
pública es seguro si no se puede derivar el texto ordinario o la clave secreta
correspondiente. Una tercera y más fuerte definición de seguridad es: El sistema de
clave pública es seguro si no puede derivarse "cualquier" información de los
plaintexts o de la clave a partir de toda la información posible que pueda tenerse y
que el atacante pueda incluso acomodar para sus propósitos, incluyendo
ciphertexts, plaintexts, parte de la clave, u otros parámetros del sistema como IV
(vectores de inicialización).

En la actualidad la seguridad de un sistema de clave pública no se limita al propio


sistema sino también al modo de operación del algoritmo, del esquema, del
protocolo, del dispositivo que lo aplica, etc.

3.1.4 Ejemplos de protocolos de autenticación

PAP (Protocolo de autenticación de contraseña)

Es un protocolo de autenticación simple en el que el nombre de usuario y la


contraseña se envían al servidor de acceso remoto como texto simple (sin cifrar).
No se recomienda utilizar PAP, ya que las contraseñas pueden leerse fácilmente en
los paquetes del Protocolo punto a punto intercambiados durante el proceso de
autenticación. PAP suele utilizarse únicamente al conectar a servidores de acceso
remoto antiguos basados en UNIX que no admiten métodos de autenticación más
seguros.
CHAP (Protocolo de autenticación por desafío mutuo)

Es un método de autenticación muy utilizado en el que se envía una representación


de la contraseña del usuario, no la propia contraseña. Con CHAP, el servidor de
acceso remoto envía un desafío al cliente de acceso remoto. El cliente de acceso
remoto utiliza un algoritmo hash (también denominado función hash) para calcular
un resultado hash de MessageDigest-5 (MD5) basado en el desafío y un resultado
hash calculado con la contraseña del usuario. El cliente de acceso remoto envía el
resultado hashMD5 al servidor de acceso remoto.

El servidor de acceso remoto, que también tiene acceso al resultado hash de la


contraseña del usuario, realiza el mismo cálculo con el algoritmo hash y compara el
resultado con el que envió el cliente. Si los resultados coinciden, las credenciales
del cliente de acceso remoto se consideran auténticas. El algoritmo hash
proporciona cifrado unidireccional, lo que significa que es sencillo calcular el
resultado hash para un bloque de datos, pero resulta matemáticamente imposible
determinar el bloque de datos original a partir del resultado hash.

SPAP (Protocolo de autenticación de contraseña de shiva)

Es un protocolo de autenticación simple de contraseña cifrada compatible


conservadores de acceso remoto de Shiva. Con SPAP, el cliente de acceso remoto
envía una contraseña cifrada al servidor de acceso remoto. SPAP utiliza un
algoritmo de cifrado bidireccional. El servidor de acceso remoto descifra la
contraseña y utiliza el formato sin cifrar para autenticar al cliente de acceso remoto.

MS-CHAP y MS-CHAP v2

Protocolo de autenticación por desafío mutuo de Microsoft:

Microsoft creó MS-CHAP para autenticar estaciones de trabajo Windows remotas,


integrando la funcionalidad a la que los usuarios de redes LAN están habituados
con los algoritmos de has utilizados en las redes Windows. Utiliza un mecanismo de
desafío y respuesta para autenticar conexiones sin enviar contraseñas.
El autenticador (el servidor de acceso remoto o el servidor IAS) envía al cliente de
acceso remoto un desafío formado por un identificador de sesión y una cadena de
desafío arbitraria.

El cliente de acceso remoto envía una respuesta que contiene el nombre de usuario
y un cifrado no reversible de la cadena de desafío, el identificador de sesión y la
contraseña.

El autenticador comprueba la respuesta y, si es válida, se autentican las


credenciales del usuario.La familia Windows Server 2003 admite MS-CHAP v2, que
proporcionaautenticación mutua, la generación de claves de cifrado de datos
iniciales más seguras para Cifrado punto a punto de Microsoft (MPPE) y distintas
claves de cifrado para los datos enviados y los datos recibidos. Para reducir al
mínimo el riesgo de que una contraseña se vea comprometida durante su cambio,
no se admiten métodos más antiguos que el cambio de contraseña de MS-CHAP.

EAP (Protocolo de autenticación extensible):

Es una extensión del Protocolo punto a punto (PPP) que admite métodos de
autenticación arbitrarios que utilizan intercambios de credenciales e información de
longitudes arbitrarias. EAP se ha desarrollado como respuesta a la creciente
demanda de métodos de autenticación que utilizan dispositivos de seguridad, como
las tarjetas inteligentes, tarjetas de identificación y calculadoras de cifrado. Mediante
EAP, se pueden admitir esquemas de autenticación adicionales, conocidos como
tipos EAP. Entre estos esquemas se incluyen las tarjetas de identificación,
contraseñas de un solo uso, autenticación por clave pública mediante tarjetas
inteligentes y certificados.EAP, junto con los tipos de EAP seguros, es un
componente tecnológico crítico para las conexiones de red privada virtual (VPN)
seguras.

La familia Windows Server 2003 admite dos tipos de EAP: y EAP-MD5 CHAP
(equivalente al protocolo de autenticación CHAP) y EAP-TLS (utilizado para
autenticación basada en certificados de usuario).EAP-TLS es un método de
autenticación mutua, lo que significa que tanto el cliente como el servidor deben
demostrar sus identidades uno a otro. Durante el proceso de autenticación, el cliente
de acceso remoto envía su certificado de usuario y el servidor de acceso remoto
envía su certificado de equipo. Si el certificado no se envía o no es válido, se termina
la conexión.

Kerberos

Es un protocolo de autenticación de redes de ordenador que permite a dos


computadores en una red insegura demostrar su identidad mutuamente de manera
segura. Sus diseñadores se concentraron primeramente en un modelo de cliente-
servidor, y brinda autenticación mutua: tanto cliente como servidor verifican la
identidad uno del otro. Los mensajes de autenticación están protegidos para evitar
eavesdropping y ataques de Replay. Kerberos se basa en criptografía de clave
simétrica y requiere un tercero de confianza. Además, existen extensiones del
protocolo para poder utilizar criptografía de clave asimétrica.

3.2 Firmas Digitales

Una firma digital es un mecanismo densocriptográfico que permite al receptor de un


mensaje firmado digitalmente identificar a la entidad originadora de dicho mensaje
(autenticación de origen y no repudio), y confirmar que el mensaje no ha sido
alterado desde que fue firmado por el originador (integridad).

Se han establecido una serie de propiedades necesarias que tiene que cumplir un
esquema de firma para que pueda ser utilizado. La validez de una firma se ampara
en la imposibilidad de falsificar cualquier tipo de firma radica en el secreto del
firmante. En el caso de las firmas escritas el secreto está constituido por
características de tipo grafológico inherentes al signatario y por ello difíciles de
falsificar. Por su parte, en el caso de las firmas digitales, el secreto del firmante es
el conocimiento exclusivo de una clave (secreta) utilizada para generar la firma.
Para garantizar la seguridad de las firmas digitales es necesario a su vez que estas
sean:

 Únicas: Las firmas deben poder ser generadas solamente por el firmante y
por lo tanto infalsificable. Por tanto la firma debe depender del firmante.
 Infalsificables: Para falsificar una firma digital el atacante tiene que resolver
problemas matemáticos de una complejidad muy elevada, es decir, las firmas
han de ser computacionalmente seguras. Por tanto la firma debe depender
del mensaje en sí.
 Verificables: Las firmas deben ser fácilmente verificables por los receptores
de las mismas y, si ello es necesario, también por los jueces o autoridades
competentes.
 Innegables: El firmante no debe ser capaz de negar su propia firma.
 Viables: Las firmas han de ser fáciles de generar por parte del firmante.

Los esquemas de firma digital de clave simétrica son los siguientes:

 Firma de Desmedt
 Firma de Lamport-Diffie
 Firma de clave simétrica de Rabin
 Firma de Matyas-Meyer

Se han propuesto distintos protocolos de firma basados en la criptografía de clave


asimétrica. Los más importantes son los siguientes:

 Firma RSA
 Firma DSA
 Firma ESING
 Firma de clave asimétrica de Rabin
 Firma ElGamal
 Firma con curvas elípticas
 Firma de Guillou-Quisquater
 Firma de Ohta-Okamoto
 Firma de Schnorr
 Firma de Okamoto
 Firma de Feige-Fiat-Shamir

Normalmente la verificación de la firma no se ciñe exclusivamente a verificar con el


algoritmo de verificación, que la firma digital se corresponde con el mensaje que se
quería firmar. Además hay que evaluar una serie de factores que dan la validez real
de la firma:

 Hay que verificar que la clave usada por el signatario es válida. Normalmente
las claves para firmar suelen tener mecanismos que sólo las hacen válidas
durante cierto periodo de tiempo. Este tiempo se limita mediante uno o varios
mecanismos, por ejemplo: fechas de caducidad (por ejemplo, para
criptografía de clave pública con certificados, con tiempos de vigencia de
certificados), estableciendo mecanismos que permiten comprobar que la
clave no ha sido revocada por el firmante (por ejemplo, para criptografía de
clave pública con certificados, con OCSP o CRL).
 En algunas ocasiones la firma lleva un sello de tiempo (en inglés
timestamping). Este sello de tiempo establece el momento en el que se ha
realizado la firma. Este sello se puede utilizar por los protocolos para
establecer periodos de tiempos después del cual la firma no es válida. Por
ejemplo podríamos establecer un sistema en el que las firmas sólo son
válidas durante 30 minutos después de haberse producido.

3.3 Cortafuegos (firewalls)

Un cortafuegos o firewall es un sistema que previene el uso y el acceso


desautorizados a tu ordenador.

Los cortafuegos pueden ser software, hardware, o una combinación de ambos. Se


utilizan con frecuencia para evitar que los usuarios desautorizados de Internet
tengan acceso a las redes privadas conectadas con Internet, especialmente
intranets.

Todos los mensajes que entran o salen de la Intranet pasan a través del
cortafuegos, que examina cada mensaje y bloquea los que no cumplen los criterios
de seguridad especificados.

Es importante recordar que un cortafuegos no elimina problemas de virus del


ordenador, sino que cuando se utiliza conjuntamente con actualizaciones regulares
del sistema operativo y un buen software antivirus, añadirá cierta seguridad y
protección adicionales para tu ordenador o red.

3.3.1 Alcances y limitaciones

Cortafuegos de hardware

Los cortafuegos de hardware proporcionan una fuerte protección contra la mayoría


de las formas de ataque que vienen del mundo exterior y se pueden comprar como
producto independiente o en routers de banda ancha.

Desafortunadamente, luchando contra virus, gusanos y Troyanos, un cortafuegos


de hardware puede ser menos eficaz que un cortafuegos de software, pues podría
no detectar gusanos en emails.

Cortafuegos de software

Para usuarios particulares, el cortafuegos más utilizado es un cortafuego de


software. Un buen cortafuegos de software protegerá tu ordenador contra intentos
de controlar o acceder a tu ordenador desde el exterior, y generalmente proporciona
protección adicional contra los troyanos o gusanos de E-mail más comunes.

La desventaja de los cortafuegos de software es que protegen solamente al


ordenador en el que están instalados y no protegen una red.
3.3.2 Componentes

En todo cortafuegos existen tres componentes básicos para los cuales se ha de


implementar los mecanismos necesarios para hacer cumplir la política de seguridad:

1. El filtrado de paquetes.
2. El proxy de aplicación.
3. La monitorización y detección de actividad sospechosa.

3.3.3 Filtros de paquetes

El filtrado de paquetes, además de utilizarse para reducir la carga de red, también


se emplea para implementar distintas políticas de seguridad en una red. Respecto
al objetivo principal de dichas políticas de seguridad, es habitual el hecho de evitar
el acceso no autorizado entre dos redes, manteniendo los accesos autorizados.

Los sistemas de filtrado de paquetes encaminan los paquetes entre los hosts de
una red interna y los hosts de una red externa. De modo selectivo, permiten o
bloquean ciertos tipos de paquetes de acuerdo a una política de seguridad. El tipo
de router que se usa en el filtrado de paquetes se conoce con el nombre de
screening router.

Características:

El filtrado de paquetes cuenta con una serie de puntos fuertes que se indican a
continuación:

 Resulta muy rápido y económico instalar un control basado en el filtrado de


paquetes.
 Resulta totalmente transparente.
 Si el número de reglas creadas no es muy elevado, no llega a imponer una
sobrecarga importante de procesamiento en el screening router, por lo que
el rendimiento de la red no se verá afectado.
Por el contrario, también cabe indicar una serie de debilidades del filtrado de
paquetes:

 Definir las reglas de filtrado puede convertirse en una tarea muy complicada,
ya que existen muchos aspectos en la especificación de los servicios de
Internet y de los protocolos que, si no se conocen a fondo para su correcta
configuración, pueden dejar abierta la puerta a ataques variados (ataques de
falsificación de dirección IP origen, ataques de enrutamiento de origen,
ataques de fragmentación, etc.).
 Cuanto mayor sea el número de reglas, menor será el rendimiento del
screening router, que en principio está diseñado únicamente para enrutar
paquetes, no para tomar decisiones acerca de si debería o no debería
hacerlo.
 Si el cortafuegos acepta un servicio no es capaz de bloquear selectivamente
ciertos comandos del servicio o rechazar ciertos contenidos, por lo que son
susceptibles a ataques basados en datos.

3.3.4 Filtro de servicios

Un proxy de aplicación es una aplicación software capaz de filtrar las conexiones a


servicios, es decir, capaz de reenviar o bloquear conexiones a servicios.

Los proxies cogen las peticiones de los usuarios sobre servicios de Internet, como
FTP y Telnet, y responden a dichas peticiones según la política de seguridad. Los
proxies proporcionan conexiones y actúan de pasarela entre la propia máquina o la
red interna y la red externa. Por este motivo, también se denominan pasarelas de
nivel de aplicación.

La actuación de un proxy entre un usuario de la red interna y un servicio de la red


externa es más o menos transparente.

Un proxy requiere dos componentes: un servidor proxy y un proxy cliente. El


servidor proxy se ejecuta en un host situado entre la red interna y la externa,
mientras que el proxy cliente es una versión especial de un programa cliente normal
como Telnet o FTP cliente, que se comunica con el servidor proxy como si fuera el
servidor "real" de la red externa. El servidor proxy evalúa las peticiones del proxy
cliente y decide si aprobar o denegar la petición. Si la petición se aprueba de
acuerdo a la política de seguridad, el servidor proxy contacta con el servidor "real"
y mandará las respuestas del servidor "real" al proxy cliente.

Con los proxies de aplicación se cuenta con una serie de ventajas sobre seguridad
como por ejemplo las siguientes:

 Sólo permiten la utilización de servicios para los que existe un proxy, por lo
que el administrador de red tiene un control absoluto sobre los servicios
soportados por el proxy.
 En comparación con el filtrado de paquetes, en la pasarela es posible filtrar
protocolos basándose en algo más que en la cabecera de las tramas. De este
modo, resulta posible tener habilitado un servicio con sólo una serie de
comandos permitidos.
 La pasarela de aplicación permite un grado de ocultación de la estructura del
perímetro de seguridad, ya que se pueden enmascarar la dirección de las
máquinas de la red interna. Es decir, actúan como traductores de direcciones
de red (NAT).
 Debido al hecho de que las aplicaciones proxy son componentes software
ejecutándose en la máquina bastión, se facilita la autenticación y la auditoría
del tráfico sospechoso antes de que alcance el host destino.
 Se simplifican las reglas de filtrado implementadas en el router, ya que
únicamente se permite el tráfico hacia la pasarela, bloqueando el resto.
Además, la definición de las reglas de filtrado a nivel de aplicación es mucho
más sencilla que a nivel de paquete, pudiendo implementar reglas más
conservadoras con mayor flexibilidad.

Por otra parte, a la hora de instalar una pasarela de aplicación nos encontramos con
los siguientes inconvenientes:
 Los cortafuegos más antiguos requerían que el usuario de la red interna
instalara software especial de cliente para cada uno de los servicios
habilitados. Otros requerían que, empleando el software de cliente habitual,
se siguieran ciertas indicaciones de uso. De este modo, nuevas aplicaciones
de Internet exigían escribir e instalar nuevos servicios proxy en el firewall y
nuevos clientes proxy en los ordenadores de los usuarios. Hoy en día, los
cortafuegos de aplicación son completamente transparentes para los
usuarios finales.
 Es un elemento usualmente más caro y de rendimiento menor que un filtro
de paquetes.
 En el caso de protocolos cliente-servidor, se requieren dos pasos para
conectar hacia la zona segura o hacia el resto de la red.
 Algunas implementaciones necesitan clientes modificados para funcionar
correctamente.
 Se puede producir una degradación en el rendimiento, en el caso de que
sean muchos los servicios proxy en la misma máquina y las reglas de filtrado
sean complejas.
 Para una total seguridad, se requiere un mecanismo adicional que restrinja
las comunicaciones directas entre las máquinas de la red interna y las del
exterior, como es el filtrado de paquetes.

Una variante de las pasarelas de aplicación la constituyen las pasarelas de nivel de


circuito (Circuit-level Gateways), que son sistemas capaces de redirigir conexiones
(reenviando tramas). Estos sistemas no pueden procesar o filtrar paquetes en base
al protocolo utilizado, sino que se limitan únicamente a autenticar al usuario (a su
conexión) antes de establecer el circuito virtual entre sistemas. Además resultan
ventajosos en cuanto a que proveen de servicios a un amplio rango de protocolos.
Sin embargo, necesitan software especial que tenga las llamadas al sistema
clásicas sustituidas por funciones de librería seguras, como SOCKS.
4 Seguridad en servicios de Internet

4.1 Seguridad en la Web

4.1.1 Asignación segura de nombres de dominio (DNS)

El sistema de nombres de dominio (DNS) es la forma en que los nombres de dominio


de internet se encuentran y se traducen a direcciones de protocolo de internet (IP).
El sistema de nombre de dominio asigna el nombre que las personas usan para
ubicar un sitio web en la dirección IP, la cual usa una computadora para ubicar un
sitio web. Por ejemplo, si alguien escribe TechTarget.com en un navegador web, un
servidor tras bambalinas asignará ese nombre a la dirección IP 206.19.49.149.

La navegación web y la mayor parte de la actividad de internet se basan en DNS


para proporcionar rápidamente la información necesaria para conectar a los
usuarios con hosts remotos. La asignación de DNS se distribuye a través de internet
en una jerarquía de autoridad. Los proveedores de acceso y las empresas, así como
los gobiernos, universidades y otras organizaciones, por lo general tienen sus
propios rangos asignados de direcciones IP y un nombre de dominio asignado;
también suelen ejecutar servidores DNS para administrar el mapeo de esos
nombres a esas direcciones. La mayoría de las URL están basadas en el nombre
de dominio del servidor web que toma las solicitudes de los clientes.

Los servidores DNS responden preguntas tanto dentro como fuera de sus propios
dominios. Cuando un servidor recibe una solicitud desde fuera del dominio para
obtener información sobre un nombre o una dirección dentro del dominio,
proporciona la respuesta autorizada. Cuando un servidor recibe una solicitud dentro
de su propio dominio para obtener información sobre un nombre o una dirección
fuera de ese dominio, transfiere la solicitud a otro servidor, generalmente uno
administrado por su proveedor de servicios de internet (ISP). Si ese servidor no
conoce la respuesta o la fuente autorizada de la respuesta, buscará a los servidores
DNS para el dominio de nivel superior, por ejemplo, para todos los .com o .edu.
Luego, pasará la solicitud al servidor autorizado para el dominio específico, por
ejemplo, techtarget.com o stkate.edu; la respuesta fluye por el mismo camino de
regreso.

4.1.2 Capa de sockets seguros

El protocolo SSL (Secure Sockets Layer) ha sido desarrollado por Netscape


Communications Corporation.

SSL garantiza que los datos que se transfieren entre un cliente y un servidor
permanezca privado. Este protocolo permite al cliente autenticar la identidad del
servidor.

Cuando el servidor tiene una interfaz digital, los navegadores habilitados para SSL
pueden comunicarse de forma segura con el servidor mediante SSL. Con SSL, se
puede establecer fácilmente un sitio web con la seguridad habilitada en Internet, o
en su intranet privada. Un navegador que no da soporte a HTTP a través de SSL no
puede solicitar URL con HTTPS. Los navegadores sin SSL no permiten someter
formularios que requieren comunicaciones seguras.

SSL utiliza un establecimiento de comunicación de seguridad para iniciar una


conexión segura entre el cliente y el servidor. Durante el establecimiento de
comunicación, el cliente y el servidor se ponen de acuerdo en las claves de
seguridad que se deben utilizar para la sesión y los algoritmos que se deben utilizar
para el cifrado. El cliente autentica el servidor; de forma opcional, el servidor puede
solicitar el certificado de cliente. Después del establecimiento de comunicación, SSL
cifra y descifra toda la información incluida tanto en la petición HTTPS como en la
respuesta del servidor que se indica a continuación:

 El URL solicitado por el cliente


 El contenido de todos los formularios enviados
 La información de autorización de acceso, como nombres de usuario y
contraseñas
 Todos los datos enviados entre el cliente y el servidor

HTTPS representa un protocolo exclusivo que combina SSL y HTTP. Especifique


https:// como ancla de los documentos HTML que enlaza con documentos
protegidos por SSL. Un usuario de cliente también puede abrir un URL
especificando https:// para solicitar un documento protegido por SSL.

Puesto que HTTPS (HTTP + SSL) y HTTP son protocolos distintos y utilizan
diferentes puertos (443 y 80, respectivamente), puede ejecutar simultáneamente
peticiones SSL y no SSL. Esta capacidad permite proporcionar información a
usuarios sin seguridad, a la vez que se suministra información específica sólo a los
navegadores que realizan peticiones seguras. Con esta funcionalidad, una empresa
de venta al por menor en Internet puede dar soporte a usuarios que buscan en la
mercancía de la empresa sin seguridad, pero que rellenan formularios de pedidos y
envían sus números de tarjeta de crédito con seguridad.

4.1.3 HTTP Seguro

S-HTTP (Secure HTTP) es un proceso de transacciones HTTP (HyperText Transfer


Protocol; en castellano, Protocolo de Transferencia de Hipertexto) que se basa en
el perfeccionamiento del protocolo HTTP creado en 1994 por EIT (Enterprise
Integration Technologies). Este proceso hace posible establecer una conexión
segura para transacciones de comercio electrónico mediante mensajes cifrados, y
garantizar a los clientes la confidencialidad de los números de tarjetas bancarias y
su información personal.

A diferencia de SSL (Secure Socket Layer) que funciona transportando capas,


SHTTP garantiza la seguridad del mensaje mediante el protocolo HTTP, que marca
individualmente los documentos HTML con certificados. En tanto que SSL es
independiente de la aplicación utilizada y puede cifrar todo tipo de comunicación,
SHTTP está íntimamente relacionado con el protocolo HTTP y cifra mensajes de
forma individual.
Los mensajes SHTTP se basan en tres componentes:

1. El mensaje HTTP
2. Las preferencias criptográficas del remitente
3. Las preferencias del destinatario

Así, para descifrar un mensaje SHTTP, el destinatario analiza los encabezados del
mensaje para determinar el tipo de método que se utilizó para cifrar el mensaje.
Luego, basándose en sus preferencias criptográficas presentes y pasadas, y en las
preferencias criptográficas pasadas del remitente, el destinatario puede descifrar el
mensaje.

Cuando SSL y SHTTP competían, muchas personas se dieron entonces cuenta de


que estos dos protocolos de seguridad eran complementarios, ya que no trabajaban
en el mismo nivel. El SSL garantiza una conexión segura a Internet, mientras que el
SHTTP garantiza intercambios HTTP seguros.

Como resultado, la compañía Terisa Systems, especializada en protección de red y


formada por RSA Data Security y EIT, desarrolló un kit de programación que
permitió a los administradores desarrollar servidores Web implementando los
protocolos SSL y SHTTP (SecureWeb Server Toolkit) así como clientes Web
capaces de soportar estos protocolos (SecureWeb Client Toolkit).

4.1.4 Seguridad en correo electrónico

La utilización del correo electrónico por Internet o por otras redes que no sean de
confianza supone riesgos de seguridad para su sistema, aunque este esté protegido
por un cortafuegos.

Debe conocer estos riesgos para garantizar que su política de seguridad indique
cómo minimizarlos.
El correo electrónico es similar a otras formas de comunicación. Es importante ser
prudente a la hora de enviar información confidencial por correo electrónico. El
correo electrónico viaja a través de numerosos sistemas antes de llegar a su
destino, por lo que es posible que alguien lo intercepte y lo lea. Por lo tanto,
convendrá que emplee medidas de seguridad para proteger la confidencialidad del
correo electrónico.

Estos son algunos de los riesgos asociados al uso del correo electrónico:

 La Inundación (tipo de ataque de denegación de servicio) se produce cuando


un sistema queda sobrecargado con múltiples mensajes de correo
electrónico. Para un atacante es relativamente fácil crear un programa
sencillo que envíe millones de mensajes de correo electrónico (incluso
mensajes vacíos) a un único servidor de correo electrónico para intentar
inundarlo. Sin la seguridad correcta, el servidor de destino puede
experimentar una denegación de servicio porque el disco de almacenamiento
del servidor queda lleno de mensajes inútiles. El sistema también puede dejar
de responder porque todos sus recursos están ocupados en procesar el
correo del ataque.
 Correo masivo (spam) (correo basura) es otro tipo de ataque común dirigido
al correo electrónico. Con el aumento del número de empresas que practican
el comercio electrónico en Internet, se ha producido una invasión de
mensajes comerciales de correo electrónico no deseados o no solicitados.
Este es el correo basura, que se envía a una amplia lista de distribución de
usuarios de correo electrónico, llenando el buzón de correo de todos los
usuarios.
 La Confidencialidad es un riesgo asociado al envío de correo electrónico a
otra persona a través de Internet. El mensaje de correo electrónico pasa a
través de numerosos sistemas antes de llegar al destinatario. Si el mensaje
no está cifrado, cualquier pirata informático podría hacerse con él y leerlo en
cualquier punto de la ruta de entrega.

Para prevenir los riesgos de inundaciones y el correo masivo (spam), debe


configurar el servidor de correo electrónico correctamente. La mayoría de las
aplicaciones de servidor proporcionan métodos para combatir este tipo de ataques.
Asimismo, puede colaborar con el proveedor de servicios de Internet (IPS) para
asegurarse de que aporta algún tipo de protección adicional contra estos ataques.

Las medidas de seguridad adicionales que necesite dependerán del nivel de


confidencialidad que desee, así como de qué características de seguridad ofrezcan
sus aplicaciones de correo electrónico. Por ejemplo, ¿basta con mantener la
confidencialidad del contenido del mensaje de correo electrónico?, ¿o bien desea
que sea confidencial toda la información asociada al correo electrónico (como las
direcciones IP de origen y destino)?

Algunas aplicaciones tienen características de seguridad integradas que tal vez


ofrezcan la protección que necesita. Por ejemplo, Lotus Notes Domino proporciona
varias características de seguridad integradas, como la capacidad de cifrado de un
documento completo o de campos individuales de un documento.

Para cifrar el correo, Lotus Notes Domino crea una clave pública y una clave privada
exclusivas para cada usuario. La clave privada se utiliza para cifrar el mensaje, de
forma que solo lo podrán leer aquellos usuarios que tengan su clave pública. Debe
enviar la clave pública a los destinatarios que desee, para que puedan utilizarla para
descifrar la nota cifrada. Si alguien le envía correo cifrado, Lotus Notes Domino
utiliza la clave pública del remitente para descifrar automáticamente la nota.

Puede encontrar más información sobre el uso de las características de cifrado de


Notes en los archivos de ayuda en línea del programa.
Si desea proporcionar más confidencialidad para el correo electrónico o para otro
tipo de información que fluya entre las sucursales, clientes remotos o socios
comerciales, tiene dos opciones.

Si SSL está soportado por la aplicación del servidor de correo electrónico, puede
utilizar la capa de sockets segura (SSL) para crear una sesión de comunicaciones
seguras entre el servidor y los clientes de correo electrónico. SSL también
proporciona soporte a la autenticación opcional del lado del cliente, si la aplicación
de cliente está escrita para este uso. Como la sesión completa está cifrada, SSL
también garantiza la integridad de los datos mientras se estén transmitiendo.

Otra posible opción es configurar una conexión de red privada virtual (VPN). Puede
utilizar el sistema para configurar diversas conexiones VPN, incluso entre clientes
remotos y su sistema. Cuando se utiliza una conexión VPN, todo el tráfico que fluye
entre los extremos de la comunicación está cifrado, lo que garantiza la
confidencialidad y la integridad de los datos.

4.1.5 MIME Seguro

Por extraño que parezca, S/MIME no es una nueva corriente de performance


callejera, sino un acrónimo que hace referencia a "extensiones seguras
/multipropósito de correo en Internet ("Secure/Multipurpose Internet Mail
Extensions", por sus siglas originales en inglés), una tecnología que le permite cifrar
sus correos electrónicos. S/MIME está basado en los principios de la criptografía
asimétrica y su finalidad es proteger sus correos electrónicos frente a accesos no
deseados. Además, esta tecnología le permite firmar digitalmente sus correos
electrónicos para autenticarse como el remitente legítimo de sus mensajes, lo cual
la convierte en una eficaz arma contra los numerosos ataques de phishing que se
producen cada día en Internet. Estos son, en esencia, los fundamentos de la
tecnología S/MIME.

S/MIME está basado en los principios de la criptografía asimétrica, que utiliza un


par de claves matemáticamente relacionadas –una pública y otra privada– para
funcionar. Desde un punto de vista computacional, es inviable adivinar la clave
privada a partir de la clave pública: los correos electrónicos se cifran con la clave
pública del destinatario y, posteriormente, estos solo pueden descifrarse con la
clave privada correspondiente, que se supone que solo posee dicho destinatario.
Por tanto, a menos que la clave privada caiga en las manos equivocadas, puede
tener la certeza de que solo el destinatario al que envió el mensaje podrá acceder
a los datos confidenciales transmitidos.

Si aun así no le convencen del todo las ventajas de cifrar sus correos electrónicos,
piense que Edward Snowden el denunciante que sacó a la luz las operaciones
secretas de la Agencia Nacional de Seguridad de los Estados Unidos (NSA), confía
en el cifrado de correos electrónicos como medida de seguridad. A lo largo de los
años, varias empresas de primer nivel también han tomado conciencia de la
importancia de cifrar los correos electrónicos. Google, por ejemplo, ya cifra los
mensajes que se envían a Gmail, y tanto Facebook como AOL han seguido sus
pasos implantando medidas similares. Incluso Microsoft, compañía que aloja un
gran número de servicios de correo, ya ha protegido sus cuentas mediante sistemas
de cifrado de correo electrónico.

4.1.6 PGP, GPG

Pretty Good Privacy o PGP (privacidad bastante buena) es un programa


desarrollado por Phil Zimmermann y cuya finalidad es proteger la información
distribuida a través de Internet mediante el uso de criptografía de clave pública, así
como facilitar la autenticación de documentos gracias a firmas digitales.

PGP originalmente fue diseñado y desarrollado por Phil Zimmermann en 1991. El


nombre está inspirado en el del colmado Ralph's Pretty Good Grocery de Lake
Wobegon, una ciudad ficticia inventada por el locutor de radio Garrison Keillor.

PGP combina algunas de las mejores características de la criptografía simétrica y


la criptografía asimétrica. PGP es un criptosistema híbrido. Cuando un usuario
emplea PGP para cifrar un texto plano, dicho texto es comprimido. La compresión
de los datos ahorra espacio en disco, tiempos de transmisión y, más importante aún,
fortalece la seguridad criptográfica. La mayoría de las técnicas de criptoanálisis
explotan patrones presentes en el texto plano para craquear el cifrador. La
compresión reduce esos patrones en el texto plano, aumentando enormemente la
resistencia al criptoanálisis.

Después de comprimir el texto, PGP crea una clave de sesión secreta que solo se
empleará una vez. Esta clave es un número aleatorio generado a partir de los
movimientos del ratón y las teclas que se pulsen durante unos segundos con el
propósito específico de generar esta clave (el programa nos pedirá que los
realicemos cuando sea necesario).

Esta clave de sesión se usa con un algoritmo simétrico convencional (IDEA, Triple
DES) para cifrar el texto plano. Una vez que los datos se encuentran cifrados, la
clave de sesión se cifra con la clave pública del receptor (criptografía asimétrica).

La clave de sesión cifrada se adjunta al texto cifrado y el conjunto es enviado al


receptor.

El descifrado sigue el proceso inverso. El receptor usa su clave privada para


recuperar la clave de sesión, que PGP luego usa para descifrar los datos. La
combinación de los dos métodos de cifrado permite aprovechar lo mejor de cada
uno: el cifrado simétrico o convencional es mil veces más rápida que el asimétrico
o de clave pública, mientras que éste, a su vez, provee una solución al problema de
la distribución de claves en forma segura.

Las llaves empleadas en el cifrado asimétrica se guardan cifradas protegidas por


contraseña en el disco duro. PGP guarda dichas claves en dos archivos separados
llamados llaveros; uno para las claves públicas y otro para las claves privadas.

GnuPG, o simplemente GPG, esta disponible principalmente como herramienta de


linea de comandos, lo que significa que no tiene interfaz gráfica y muchos usuarios
se podrían sentir incómodos ala usarla. En lugar de aprender una larga lista de
comandos de GPG, muchos usuarios optan por instalar la aplicación gráfica de
GPG. En windows, GPG4Win tiene todo lo que se necesita para generar mensajes
cifrados, enviarlos y posteriormente ser cifrados por el receptor, utilizando cualquier
programa de correo electrónico estándar. Obviamente ambos usuarios (emisor y
receptor) deben utilizar GPG.
5 Autenticación de aplicaciones

5.1 Definición

Autenticación o autentificación es el acto de establecimiento o confirmación de algo


(o alguien) como auténtico, es decir que reclama hecho por, o sobre la cosa son
verdadero. La autenticación de un objeto puede significar (pensar) la confirmación
de su procedencia, mientras que la autenticación de una persona a menudo consiste
en verificar su identidad. La autenticación depende de uno o varios factores.

5.2 Tipos de autenticación

Tipos de Autentificación

 Delegadas en el cliente y el servidor


 Basados en estándares de Internet
 Autentificación Básica HTTP
 Autentificación Digest HTTP
 Autentificación de cliente HTTPs
 Basados en la especificación de servlets
 Autentificación basada en formularios

Autentificación controlada por programa

 Hay que basarla en conexiones seguras con HTTPS

Autentificación HTTP Básica

 Parte del protocolo HTTP desde sus comienzos.


 Muy simple
 Poco seguro
 Cuando el navegador solicita un recurso (jsp, por ejemplo), el servidor solicita
usuario y contraseña, que viajan encriptadas con codificación base 64 bits.
 Se puede reforzar combinándola con protocolo HTTPs, de forma que las
peticiones HTTP viajen encriptadas.

Autentificación Por Programa

 Todo lo tenemos que programar


 La aplicación coteja la contraseña contra supropio sistema de control de
usuarios
 Hay que basarla en protocolos seguros de comunicación como HTTPs (SSL)
para evitar que nadie “escuche” la contraseña interpretando los paquetes
HTTP.
 Mas tedioso de programar

Filtros Servlet HTTP

 Incorporados en la versión 2.3 de la especificación de servlets.


 Interceptan la invocación del servlet ANTES de que sea invocado el propio
servlet.
 Permiten examinar y modificar la request antes de que le llegue al servlet.
 Permite modificar el response y redirigir, en caso necesario, la petición a otro
recurso distinto.
 Ideales para el control de acceso deusuarios autentificados.

5.3 Protocolo LDAP

El Protocolo ligero de acceso a directorios (en inglés, Lightweight Directory Access


Protocol, LDAP) es un conjunto de protocolos abiertos usados para acceder
información guardada centralmente a través de la red. Está basado en el estándar
X.500 para compartir directorios, pero es menos complejo e intensivo en el uso de
recursos. Por esta razón, a veces se habla de LDAP como "X.500 Lite." El estándar
X.500 es un directorio que contiene información de forma jerárquica y categorizada,
que puede incluir nombres, directorios y números telefónicos.
Como X.500, LDAP organiza la información en un modo jerárquico usando
directorios. Estos directorios pueden almacenar una gran variedad de información y
se pueden incluso usar de forma similar al Servicio de información de red (NIS),
permitiendo que cualquiera pueda acceder a su cuenta desde cualquier máquina en
la red acreditada con LDAP.

Sin embargo, en la mayoría de los casos, LDAP se usa simplemente como un


directorio telefónico virtual, permitiendo a los usuarios acceder fácilmente la
información de contacto de otros usuarios. Pero LDAP va mucho más lejos que un
directorio telefónico tradicional, ya que es capaz de propagar su consulta a otros
servidores LDAP por todo el mundo, proporcionando un repositorio de información
ad-hoc global. Sin embargo, en este momento LDAP se usa más dentro de
organizaciones individuales, como universidades, departamentos del gobierno y
compañías privadas.

LDAP es un sistema cliente/servidor. El servidor puede usar una variedad de bases


de datos para guardar un directorio, cada uno optimizado para operaciones de
lectura rápidas y en gran volúmen. Cuando una aplicación cliente LDAP se conecta
a un servidor LDAP puede, o bien consultar un directorio, o intentar modificarlo. En
el evento de una consulta, el servidor, puede contestarla localmente o puede dirigir
la consulta a un servidor LDAP que tenga la respuesta. Si la aplicación cliente está
intentando modificar información en un directorio LDAP, el servidor verifica que el
usuario tiene permiso para efectuar el cambio y después añade o actualiza la
información.

La mayor ventaja de LDAP es que se puede consolidar información para toda una
organización dentro de un repositorio central. Por ejemplo, en vez de administrar
listas de usuarios para cada grupo dentro de una organización, puede usar LDAP
como directorio central, accesible desde cualquier parte de la red. Puesto que LDAP
soporta la Capa de conexión segura (SSL) y la Seguridad de la capa de transporte
(TLS), los datos confidenciales se pueden proteger de los curiosos.
LDAP también soporta un número de bases de datos back-end en las que se
guardan directorios. Esto permite que los administradores tengan la flexibilidad para
desplegar la base de datos más indicada para el tipo de información que el servidor
tiene que diseminar. También, ya que LDAP tiene una interfaz de programación de
aplicaciones (API) bien definida, el número de aplicaciones acreditadas para LDAP
son numerosas y están aumentando en cantidad y calidad.

OpenLDAP incluye un número de características importantes.

 Soporte LDAPv3 — OpenLDAP soporta la Capa de autenticación y seguridad


(SASL), la Seguridad de la capa de transporte (TLS) y la Capa de conexión
segura (SSL), entre otras mejoras. Muchos de los cambios en el protocolo
desde LDAPv2 han sido diseñados para hacer LDAP más seguro.
 Soporte IPv6 — OpenLDAP soporta la próxima generación del protocolo de
Internet versión 6.
 LDAP sobre IPC — OpenLDAP se puede comunicar dentro de un sistema
usando comunicación interproceso (IPC). Esto mejora la seguridad al
eliminar la necesidad de comunicarse a través de la red.
 API de C actualizada — Mejora la forma en que los programadores se
conectan para usar servidores de directorio LDAP.
 Soporte LDIFv1 — Provee compatibilidad completa con el formato de
intercambio de datos, Data Interchange Format (LDIF) versión 1.
 Servidor Stand-Alone mejorado — Incluye un sistema de control de acceso
actualizado, conjunto de hilos, herramientas mejoradas y mucho más.

5.4 Servicio Active Directory

Active Directory (AD) o Directorio Activo son los términos que utiliza Microsoft para
referirse a su implementación de servicio de directorio en una red distribuida de
computadores. Utiliza distintos protocolos, principalmente LDAP, DNS, DHCP y
Kerberos.
De forma sencilla se puede decir que es un servicio establecido en uno o varios
servidores en donde se crean objetos tales como usuarios, equipos o grupos, con
el objetivo de administrar los inicios de sesión en los equipos conectados a la red,
así como también la administración de políticas en toda la red.

Su estructura jerárquica permite mantener una serie de objetos relacionados con


componentes de una red, como usuarios, grupos de usuarios, permisos y
asignación de recursos y políticas de acceso.

Active Directory permite a los administradores establecer políticas a nivel de


empresa, desplegar programas en muchos ordenadores y aplicar actualizaciones
críticas a una organización entera. Un Active Directory almacena información de
una organización en una base de datos central, organizada y accesible. Pueden
encontrarse desde directorios con cientos de objetos para una red pequeña hasta
directorios con millones de objetos.

Su funcionamiento es similar a otras estructuras de LDAP (Lightweight Directory


Access Protocol), ya que este protocolo viene implementado de forma similar a una
base de datos, la cual almacena en forma centralizada toda la información relativa
a un dominio de autenticación. Una de sus ventajas es la sincronización presente
entre los distintos servidores de autenticación de todo el dominio.

A su vez, cada uno de estos objetos tendrá atributos que permiten identificarlos en
modo unívoco (por ejemplo, los usuarios tendrán campo «nombre», campo «email»,
etcétera, las impresoras de red tendrán campo «nombre», campo «fabricante»,
campo «modelo», campo "usuarios que pueden acceder", etc). Toda esta
información queda almacenada en Active Directory replicándose de forma
automática entre todos los servidores que controlan el acceso al dominio.

De esta forma, es posible crear recursos (como carpetas compartidas, impresoras


de red, etc) y conceder acceso a estos recursos a usuarios, con la ventaja que
estando todos estos objetos memorizados en Active Directory, y siendo esta lista de
objetos replicada a todo el dominio de administración, los eventuales cambios serán
visibles en todo el ámbito. Para decirlo en otras palabras, Active Directory es una
implementación de servicio de directorio centralizado en una red distribuida que
facilita el control, la administración y la consulta de todos los elementos lógicos de
una red (como pueden ser usuarios, equipos y recursos).

5.5 Autenticación de aplicaciones web con LDAP

La autenticación Web es una función de seguridad de la capa 3 que hace al


regulador rechazar el tráfico IP (excepto el DHCP y los paquetes DNS-relacionados)
de un cliente particular hasta que ese cliente haya suministrado correctamente un
nombre de usuario válido y una contraseña. Cuando usted utiliza la autenticación
Web para autenticar a los clientes, usted debe definir un nombre de usuario y
contraseña para cada cliente. Entonces, cuando los clientes intentan unirse al
Wireless LAN, deben ingresar el nombre de usuario y contraseña cuando son
indicados por una página de registro.

Cuando se habilita la autenticación Web (bajo Seguridad de la capa 3), los usuarios
reciben de vez en cuando una alerta de seguridad del web browser la primera vez
que intentan acceder un URL.
Después de que usted haga clic sí para proceder (o continuar más exacto a este
sitio web (no recomendado) para el navegador de Firefox por ejemplo), o si el
navegador del cliente no visualiza una alerta de seguridad, el sistema de
autenticación Web reorienta al cliente a una página de registro, tal y como se
muestra en de la imagen:

La página de registro predeterminada contiene un texto del logotipo de Cisco y del


Cisco específico. Usted puede elegir tener la visualización una del sistema de
autenticación Web de éstos:

 La página de registro predeterminada


 Una versión modificada de la página de registro predeterminada
 Una página de registro personalizada que usted configura en un servidor
Web externo
 Una página de registro personalizada que usted descarga al regulador
Cuando usted ingresa un nombre de usuario válido y la contraseña en la página de
registro y el tecleo de la autenticación Web somete, le autentican basó sobre las
credenciales sometidas y una autenticación satisfactoria de la base de datos
backend (LDAP en este caso). El sistema de autenticación Web después visualiza
una página de la registración satisfactoria y reorienta al cliente autenticado al URL
pedido.

La página predeterminada de la registración satisfactoria contiene un puntero a una


dirección del gateway virtual URL: https://1.1.1.1/logout.html. La dirección IP que
usted fija para la interfaz virtual del regulador sirve como el direccionamiento de la
reorientación para la página de registro.

Este documento explica cómo utilizar la página web interna en el WLC para la
autenticación Web. Este ejemplo utiliza a un servidor LDAP como la base de datos
backend para que la autenticación Web extraiga las credenciales de usuario y
autentique al usuario.

5.6 Autenticación de aplicaciones web con Active Directory

sudo apt-get install php5-ldap


Esto nos instalará la extensión de php necesaria para poder conectarnos a un
servidor ldap (en nuestro caso, un Active Directory!). En Windows, hay que
descomentariar la extensión de ldap, o sea “extension = php_ldap.dll” y la DLL
(dependiendo de qué se usa… si XAMPP, AppServ, etc.) debería de tener la dll o
igual.. hay que buscarla, copiarla en el lugar de las extensiones de php y reiniciar
apache.

Para ver que ya esta funcionando, solo se crean un archivito en su carpeta de


publicaciones (/var/www/html) con un nombre y extensión php (info.php por ejemplo)
y adentro le ponen: <?php phpinfo(); ?>

Al ver en el navegador (http://localhost/info.php) deberían de encontrar un apartado


LDAP

1. Creamos nuestro archivo index.php y lo colocamos en la carpeta donde


publicamos nuestro sitio. Al archivo index.php le colocamos el siguiente código.

<?php @session_start(); ?>


<html>

<head>

<title>Acceso por LDAP</title>

<body>

<form method="post" action="control.php"><br>

<table>

<tr>

<td>Usuario:</td>

<td><input type="text" maxlength="50" name="usuario"


id="usuario" /></td>

</tr>

<tr>

<td>Clave:</td>

<td><input type="password" maxlength="50" name="clave"


id="clave" />

</td>

</tr>

<tr>

<td colspan="2"><input type="submit" value="Entrar"></td>

</tr>
</table><br>

</form>

</body>

</html>

<?php exit(); ?>

Como pueden ver, es nuestra página inicio donde solicitamos el típico usuario y
contraseña. Creo que no hay mucho que explicar… es casi HTML puro, solo hay un
pequeño código php que hace referencia a la creación o reanudación de una sesión.

2. Ahora, crearemos nuestro archivo control.php el cual nos servirá para poder
realizar el control de la autenticación. Tecleamos lo siguiente:

<?php

require("ldap.php");

header("Content-Type: text/html; charset=utf-8");

$usr = $_POST["usuario"];

$usuario = mailboxpowerloginrd($usr,$_POST["clave"]);

if($usuario == "0" || $usuario == ''){

$_SERVER = array();

$_SESSION = array();

echo"<script> alert('Usuario o clave incorrecta. Vuelva a


digitarlos por favor.'); window.location.href='index.php'; </script>";

}else{
session_start();

$_SESSION["user"] = $usuario;

$_SESSION["autentica"] = "SIP";

echo"<script>window.location.href='app.php'; </script>";

?>

Como se puede ver en el código, incluímos un archivo llamado ldap.php, que es el


que hace la conexión hacia Active Directory. Luego capturamos el nombre de
usuario y la clave (que vienen del Index.php por POST) y hacemos referencia a una
función que esta en ldap.php para poder verificar que el usuario y contraseña
enviados concuerda con la información en el AD. Luego, se verifica si retorna la
función un 0 (no se logró autenticar) o un 1 (si se logró autenticar), para así guardar
las variables de sesión respectivas o no. Al final, se redirecciona a la página
respectiva dependiendo del resultado de la autenticación.

3. Veamos entonces el código del archivo ldap.php

<?php

require_once("config.php");

function mailboxpowerloginrd($user,$pass){

$ldaprdn = trim($user).'@'.DOMINIO;

$ldappass = trim($pass);

$ds = DOMINIO;

$dn = DN;
$puertoldap = 389;

$ldapconn = ldap_connect($ds,$puertoldap);

ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION,3);

ldap_set_option($ldapconn, LDAP_OPT_REFERRALS,0);

$ldapbind = @ldap_bind($ldapconn, $ldaprdn, $ldappass);

if ($ldapbind){

$filter="(|(SAMAccountName=".trim($user)."))";

$fields = array("SAMAccountName");

$sr = @ldap_search($ldapconn, $dn, $filter, $fields);

$info = @ldap_get_entries($ldapconn, $sr);

$array = $info[0]["samaccountname"][0];

}else{

$array=0;

ldap_close($ldapconn);

return $array;

?>
Lo primero que se hace es incluir un archivo de configuración en donde tenemos
nuestras constantes, por ejemplo el nombre de dominio y DN. Luego, lo demás del
código es para verificar si el usuario y la clave concuerdan con las del Active
Directory.

4. El archivo config.php que tiene las constantes de nuestro dominio, contiene el


siguiente código:

<?php

define('DOMINIO', 'midominio.com.sv');

define('DN', 'dc=midominio,dc=com,dc=sv');

?>

Obviamente, el servidor web debería estar en la misma red donde esta el dominio
para que pueda llegar a él mediante su registro DNS. OJO!, deberán de cambiar el
nombre de dominio (midominio.com.sv) por el de ustedes. Si en control.php se
determina que el usuario y contraseña ingresado corresponde al usuario y
contraseña que se encuentra en el Active Directory, redirecciona hacia un archivo
app.php el cual es nuestra primera página de nuestra aplicación.

5. Veamos el contenido básico del archivo app.php

<?php include("seguridad.php"); ?>

<html>

<head>

<title>Bienvenido al sistema</title>

</head>
<body>

Hola! <?php echo $_SESSION["user"]; ?><br>

<br>

<a href="salir.php">Salir del sistema</a>

</body>

</html>

Ésta es la página de bienvenida a nuestra aplicación. Muestra el nombre de usuario


logueado y el link para cerrar la sesión. La primera línea hace una inclusión de un
archivo seguridad.php el cuál es sumamente importante que se incluya en todas las
páginas del sistema que se quiera proteger (que requiera autenticación).

6. Entonces veamos el contenido de seguridad.php

<?php

@session_start();

if($_SESSION["autentica"] != "SIP"){

header("Location: index.php");

exit();

?>

Aquí validamos si realmente el usuario que quiere acceder a ésta página esta
autenticado. Si no lo esta, lo direccionamos a la página index.php. Si esta
autenticado, verá la página de bienvenida y su nombre de usuario.
7. Finalmente, en app.php vemos que hay un link hacia un archivo salir.phppor lo
que veamos el código:

<?php

session_start();

session_destroy();

header("Location:index.php");

?>

Básicamente se destruye la sesión y direccionamos a index.php. Si el usuario desea


nuevamente entrar a app.php, no podrá dado que deberá de autenticarse.

Veamos entonces unas capturas de su funcionamiento:

Inicio de sesión:

Usuario o contraseña inválida:


Autenticación correcta y primera página del sistema:
6 Vigilancia de los sistemas de información

6.1. Definición de vigilancia y Anatomía de un ataque.

Del latín vigilantia, la vigilancia es el cuidado y la supervisión de las cosas que están
a cargo de uno. La persona que debe encargarse de la vigilancia de algo o de
alguien tiene responsabilidad sobre el sujeto o la cosa en cuestión.

El servicio ordenado y dispuesto para vigilar también se conoce como vigilancia.


Puede tratarse del servicio prestado por una compañía privada (ya sea mediante
guardias o equipos tecnológicos como cámaras de video) o por las fuerzas públicas
de seguridad (la policía, la gendarmería, el ejército, etc.).

Identificación de objetivos

Los incidentes de seguridad normalmente son muy complejos y su resolución


presenta muchos problemas. A continuación, se muestran las siguientes fases en
la prevención, gestión y detección de incidentes:

1) Preparación y prevención. En esta fase se toman acciones para preparar la


organización antes de que ocurra un incidente. Por tanto, se deberá empezar
por tratar de analizar qué debe ser protegido y qué medidas técnicas y
organizativas tienen que implementarse. Una vez hechos los diversos
análisis se podrá considerar que la organización ya tiene identificadas las
situaciones que pueden provocar un incidente de seguridad y ha
seleccionado los controles necesarios para reducirlas. Pero aun hecho dicho
análisis, siempre hay situaciones que no van a poder ser protegidas, por lo
que se tendrá que elaborar un plan de continuidad de negocio. Dicho plan
está formado por un conjunto de planes de contingencia para cada una de
las situaciones que no están controladas.
2) Detección del incidente. La detección de un incidente de seguridad es una
de las fases más importante en la securización de los sistemas. Hay que
tener en cuenta que la seguridad absoluta es muy difícil y es esta fase la que
nos sirve para clasificar y priorizar los incidentes acaecidos en nuestra
organización. La clasificación es la siguiente:
a) Accesos no autorizados: un usuario no autorizado accede al sistema.
b) Código malicioso: ha habido una infección de programas maliciosos
(virus, gusano spyware, troyano, etc.) en un sistema.
> Programas maliciosos <
(a) Virus: es un archivo ejecutable que desempeña acciones (dañar
archivos, reproducirse, etc.) en un ordenador sin nuestro consentimiento.
(b) Gusano: es un código malicioso que se reproduce y extiende a un gran
número de ordenadores.
(c) Spyware: es un programa que recopila información de un ordenador y
la envía a terceras personas sin el consentimiento del propietario.
(d) Troyano: también conocido como caballo de Troya, es un programa
que obtiene las contraseñas haciéndose pasar por otro programa.
c) Denegación de servicio: incidente que deja sin dar servicio (dns, web,
correo electrónico, etc.) a un sistema.
d) Phishing: consiste en suplantar la identidad de una persona o empresa
para estafar. Dicha estafa se realiza mediante el uso de ingeniería social
consiguiendo que un usuario revele información confidencial
(contraseñas, cuentas bancarias, etc.). El atacante suplanta la imagen de
una empresa u organización y captura ilícitamente la información personal
que los usuarios introducen en el sistema.
e) Recogida de información: un atacante obtiene información para poder
realizar otro tipo de ataque (accesos no autorizados, robo, etc.).
f) Otros: engloba los incidentes de seguridad que no tienen cabida en las
categorías anteriores.

La detección de un incidente de seguridad se realiza a través de diversas fuentes.


A continuación, se enumeran algunas de ellas:
a. Alarma de los antivirus.
b. Alarmas de los sistemas de detección de intrusión y/o prevención (IDS
y/o IPS).
c. Alarmas de sistemas de monitorización de los sistemas (zabbix,
nagios, etc.).
d. Avisos de los propios usuarios al detectar que no funcionan
correctamente los sistemas informáticos.
e. Avisos de otras organizaciones que han detectado el incidente.
f. Análisis de los registros de los sistemas.

Una vez detectado el incidente a través de cualquier vía, para poder gestionarlo es
recomendable tener al menos los siguientes datos:

 Hora y fecha en la que se ha notificado el incidente.


 Quién ha notificado el incidente.
 Clasificación del incidente (accesos no autorizados, phishing, denegación de
servicio, etc.).
 Hardware y software involucrado en el incidente (si se pueden incluir los
números de serie, es recomendable).
 Contactos para gestionar el incidente.
 Cuando ocurrió el incidente.

Reconocimiento inicial

En esta fase se trata de obtener la máxima información posible para determinar qué
tipo de incidente de seguridad ha ocurrido y así poder analizar el impacto que ha
tenido en la organización. La información obtenida en esta fase será utilizada en la
siguiente para poder formular la estrategia a utilizar. Dicha información será fruto
como mínimo de:

 Entrevistas con los administradores de los sistemas.


 Revisión de la topología de la red y de los sistemas.
 Entrevistas con el personal de la empresa que haya tenido algo que ver con
el incidente con el objetivo de contextualizarlo.
 Revisar los logs de la detección de la intrusión.

Técnicas de recopilación de información y análisis forense.

La informática forense, o análisis forense digital, es la disciplina que se encarga,


como parte de la demostración objetiva de la comisión de un delito, de la
recopilación, recuperación y análisis de los datos contenidos en todo tipo de
dispositivos con capacidad para almacenar datos digitales. Esta labor es importante
en los procesos judiciales, pero también puede emplearse en el sector privado (por
ejemplo, para las comprobaciones internas de las empresas o las investigaciones
en caso de intrusión en la empresa y/o en su infraestructura informática)

La adquisición de datos es una de las actividades más críticas en el análisis forense.


Dicha criticidad es debida a que, si se realizase mal, todo el análisis e investigación
posterior no sería válido debido a que la información saldría con impurezas, es decir,
la información que creemos que es del origen no lo es realmente.

El análisis forense se compone de tres pasos:

 Identificación y preservación de los datos con el fin de crear un duplicado


forense, es decir, una copia exacta de los datos de un soporte digital, sin
modificar los datos originales.
 Análisis de los datos así protegidos por medio de un software especial y de
métodos para la recopilación de pruebas. Medidas típicas son, por ejemplo,
la búsqueda de contraseñas, la recuperación de archivos borrados, la
obtención de información del registro de Windows (base de datos de
registro), etc.
 Elaboración de un informe por escrito sobre las evidencias descubiertas en
el análisis y en el que se incluyan también las conclusiones extraídas del
estudio de los datos y de la reconstrucción de los hechos o incidentes.
6.2. Escaneos.

El protocolo TCP

Contrariamente a UDP, el protocolo TCP está orientado a conexión. Cuando una


máquina A envía datos a una máquina B, la máquina B es informada de la llegada
de datos, y confirma su buena recepción. Aquí interviene el control CRC de datos
que se basa en una ecuación matemática que permite verificar la integridad de los
datos transmitidos. De este modo, si los datos recibidos son corruptos, el protocolo
TCP permite que los destinatarios soliciten al emisor que vuelvan a enviar los datos
corruptos.

El protocolo UDP

UDP es un protocolo no orientado a conexión. Es decir cuando una maquina A envía


paquetes a una maquina B, el flujo es unidireccional. La transferencia de datos es
realizada sin haber realizado previamente una conexión con la máquina de destino
(maquina B), y el destinatario recibirá los datos sin enviar una confirmación al emisor
(la maquina A). Esto es debido a que la encapsulación de datos enviada por el
protocolo UDP no permite transmitir la información relacionada al emisor. Por ello el
destinatario no conocerá al emisor de los datos excepto su IP.

Identificación y ataques a puertos TCP/UDP

Las vulnerabilidades pretenden describir las debilidades y los métodos más


comunes que se utilizan para perpetrar ataques a la seguridad de la familia de
protocolos TCP/IP (confidencialidad, integridad y disponibilidad de la información).

Éstos pueden provenir principalmente de dos fuentes:

1. Usuarios autentificados, al menos a parte de la red, como por ejemplo


empleados internos o colaboradores externos con acceso a sistemas dentro
de la red de la empresa. También denominados insiders.
2. Atacantes externos a la ubicación física de la organización, accediendo
remotamente. También denominados outsiders
. Las vulnerabilidades pueden clasificarse según dos criterios:

1. Número de paquetes a emplear en el ataque:


a. Atomic: se requiere un único paquete para llevarla a cabo.
b. Composite: son necesarios múltiples paquetes.
2. Información necesaria para llevar a cabo el ataque:
a. Context: se requiere únicamente información de la cabecera del
protocolo.
b. Content: es necesario también el campo de datos o payload

La utilización de estas técnicas se conoce con el nombre de fingerprinting, es decir,


obtención de la huella identificativa de un sistema o equipo conectado a la red. Una
técnica específica que permite extraer información de un sistema concreto es el
fingerprinting es decir, la obtención de su huella identificativa respecto a la pila
TCP/IP. El objetivo primordial suele ser obtener el sistema operativo que se ejecuta
en la máquina destino de la inspección. Esta información junto con la versión del
servicio o servidor facilitará la búsqueda de vulnerabilidades asociadas al mismo.
Gran parte de la información de la pila TCP/IP puede obtenerse en base al
intercambio entres pasos propio del protocolo TCP/IP (TCP three-way handshake)

La probabilidad de acierto del sistema operativo remoto es muy elevada, y se basa


en la identificación de las características propias de una implementación de la pila
TCP/IP frente a otra, ya que la interpretación de los RFCs no concuerda siempre.
Para poder aplicar esta técnica con precisión es necesario disponer de un puerto
abierto (TCP y/o UDP).

Tecnicas utilizadas:

 Sniffers: que se encargan de capturar e interpretar tramas y datagramas


mediante aplicaciones en entornos de red basados en difusión. Un sniffer no
es más que un sencillo programa que intercepta toda la información que pase
por la interfaz de red a la que esté asociado. Una vez capturada, se podrá
almacenar para su análisis posterior.

 Sniffing: consiste en que sin necesidad de acceso a ningún sistema de la red,


un atacante podrá obtener información sobre cuentas de usuario, claves de
acceso o incluso mensajes de correo electrónico en el que se envían estas
claves. La forma más habitual de realizar técnicas de sniffing en una red,
probablemente porque está al alcance de todo el mundo, es la que podríamos
denominar sniffing software, utilizando las aplicaciones que ya mencionadas.
 Niffing: también se conocen como técnicas de eavesdropping y técnicas de
snooping. La primera, eavesdropping, es una variante del sniffing,
caracterizada por realizar la adquisición o intercepción del tráfico que circula
por la red de forma pasiva, es decir, sin modificar el contenido de la
información. Por otra parte, las técnicas de snooping se caracterizan por el
almacenamiento de la información capturada en el ordenador del atacante,
mediante una conexión remota establecida durante toda la sesión de captura.
En este caso, tampoco se modifica la información incluida en la transmisión.

Una solución para evitar esta técnica consiste en la segmentación de la red y de los
equipos mediante el uso de conmutadores (switch). Al segmentar la red y los
equipos, el único tráfico que tendrían que ver las máquinas sería el que les
pertenece, puesto que el conmutador se encarga de encaminar hacia el equipo
únicamente aquellos paquetes destinados a su dirección MAC.

6.3. Identificación de vulnerabilidades.

Conocer las diferentes etapas que conforman un ataque informático brinda la


ventaja de aprender a pensar como los atacantes y a jamás subestimar su
mentalidad. Desde la perspectiva del profesional de seguridad, se debe aprovechar
esas habilidades para comprender y analizar la forma en que los atacantes llevan a
cabo un ataque.

1. Reconnaissance (Reconocimiento): Esta etapa involucra la obtención de


información (Information Gathering) con respecto a una potencial víctima
que puede ser una persona u organización.
Por lo general, durante esta fase se recurre a diferentes recursos de
Internet como Google, entre tantos otros, para recolectar datos del
objetivo. Algunas de las técnicas utilizadas en este primer paso son la
Ingeniería Social, el Dumpster Diving, el sniffing.
2. Scanning (Exploración): En esta segunda etapa se utiliza la información
obtenida en la fase 1 para sondear el blanco y tratar de obtener
información sobre el sistema víctima como direcciones IP, nombres de
host, datos de autenticación, entre otros.
Entre las herramientas que un atacante puede emplear durante la
exploración se encuentra el network mappers, port mappers, network
scanners, port scanners, y vulnerability scanners.
3. Gaining Access (Obtener acceso): En esta instancia comienza a
materializarse el ataque a través de la explotación de las vulnerabilidades
y defectos del sistema (Flaw exploitation) descubiertos durante las fases
de reconocimiento y exploración.
Algunas de las técnicas que el atacante puede utilizar son ataques de
Buffer Overflow, de Denial of Service (DoS), Distributed Denial of Service
(DDos), Password filtering y Session hijacking.
4. Maintaining Access (Mantener el acceso): Una vez que el atacante ha
conseguido acceder al sistema, buscará implantar herramientas que le
permitan volver a acceder en el futuro desde cualquier lugar donde tenga
acceso a Internet. Para ello, suelen recurrir a utilidades backdoors,
rootkits y troyanos.
5. Covering Tracks (Borrar huellas): Una vez que el atacante logró obtener
y mantener el acceso al sistema, intentará borrar todas las huellas que
fue dejando durante la intrusión para evitar ser detectado por el
profesional de seguridad o los administradores de la red. En
consecuencia, buscará eliminar los archivos de registro (log) o alarmas
del Sistema de Detección de Intrusos (IDS).

́ de evaluación de la red NSA IAM (National Security Agency -


La metodologia
Information Security-Assessment Methodology) es un método detallado y
sistemático para la evaluación de vulnerabilidades desde una perspectiva
organizacional, en oposición a una perpectiva técnica. Generalmente se pasan por
alto los procesos, documentación y actividades informales que impactan
directamente en la postura de una organización de seguridad y no necesariamente
de manera técnica. El IAM fue desarrollado por la Agencia de Seguridad Nacional
de los Estados Unidos y asesores de INFOSEC y ha estado en práctica dentro del
gobierno de ese paiś desde 1997.

1. Avalúo (“Assessment”): En esta fase se realiza la recopilación y examen de


las polit́ icas de seguridad, procedimientos, de arquitectura de seguridad y de
flujo de la información. También se hace un análisis colaborativo de alto nivel
y se evalúan las funciones crit́ icas de la organización.
2. Evaluación (“Evaluation”): Se realizan pruebas de seguridad del sistema,
firewalls, routers, equipos. Se realiza un escaneado de la red y se utilizan
herramientas de penetración.
3. Penetración (“Red Team”): Una evaluación de nivel 3 es no cooperativa y
externa a la red de destino, con la participación de pruebas de penetración
para simular el adversario adecuado. La evaluación es no intrusiva, por lo
que dentro de este marco, una evaluación de nivel 3 implica una calificación
́ social,
completa de las vulnerabilidades. Se realizan pruebas de ingenieria
simulación de ataques y hackeo de sistemas.
4. Informe de Hallazgos: Se realiza un informe técnico, operacional y gerencial
de los hallazgos determinados durante las fases previas.
5. Recomendaciones: En esta etapa se prepara un informe con las
recomendaciones para mitigar las vulnerabilidades.
6.4. Actividades de infiltración.

6.4.1. Sistema operativo.

6.4.2. Aplicaciones.

6.4.3. Bases de datos.

6.5. Defensa perimetral.

6.5.1. Creación de una DMZ.

6.5.2. Antivirus.

6.5.3. Nat.

6.5.4. Proxy

6.6 Aspectos legales en Seguridad Informática

6.6.1 Ley Federal de Protección de Datos

6.6.2 Gobernanza de Internet

Vous aimerez peut-être aussi