Post on 10-Aug-2015
TEMA 1. INTRODUCCIÓN A LA SEGURIDAD
INFORMÁTICA
1.1 Modelos de referencia
Protocolo- conjunto de reglas que hay que observar y cumplir para la
operación que llevemos a cabo tenga éxito. Coordinan el intercambio de
información.
Capas o Niveles- Nos permiten reducir la complejidad de un diseño. Cada
capa se construye sobre la inferior, de tal forma que cuando se necesite un
servicio, se solicitará a la capa inferior.
Interfaz- Una interfaz define que operaciones y servicios ofrece la capa
inferior a la capa superior.
Arquitectura de red- Es un conjunto de capas y protocolos.
Servicios- Un servicio NO ES un protocolo. Es un conjunto de primitivas.
Hay 4 primitivas:
o Petición (Request)
o Indicación (Indication)
o Respuesta (Response)
o Confirmación (Confirmation)
*Ejemplo: María a través del teléfono invita a Pedro a ir al
cine.
FASE CONEXIÓN (servicio confirmado)
1- Conexión (María marca el número de teléfono de Pedro)/Connect request M
2- Suena el teléfono en casa de Pedro/ Connect indication P
3- Transferencia de información (Pedro descuelga el teléfono)/ Connect response
P
4- El teléfono deja de llamar/ connect confirmation M
FASE DE TRANSFERERNCIA DE INFORMACIÓN O DATOS
(servicio no confirmado)
5- María invita a Pedro a ir al cine/ data request
6- Pedro escucha la invitación/ data indication
7- Pedro contesta que sí/ data request
8- María escucha la respuesta/ data indication...
...
FASE DE DESCONEXIÓN (servicio no confirmado)
N-1- María cuelga el teléfono/ disconnect request
N- Pedro escucha que María colgó/ disconnect indication
Servicio no confirmado
Servicio confirmado
1.2 Modelo OSI
Antes de la aparición de las redes, el problema más notorio que teníamos que solucionar era
lo de "compartir" (datos, periféricos...), con lo cuál
lo ideal era volver a tener unas conexiones como las que teníamos con los mainframes pero
con la diferencia que las terminales ya no son "terminales tontas",
serían terminales independientes.
A la hora de montar las redes, cada fabricante tenía su propia arquitectura y ello suponía que
entre distintos fabricantes los equipos fuesen incompatibles.
Ante esta situación se planteó hacer un modelo de forma que si todos los fabricantes lo
asumiesen no hubiera ese problema: 1978 Open System Interconnection OSI creado por
International Organization for Standarization IOS/ISO en 1983 y mientras éste estaba
creándose se formaba TCP/IP. El modelo OSI no se llegó a implementar pero nos ha quedado
como modelo para el estudio de las redes.
Servicios de información distribuida
Servicio de intercambio de mensajes
independientes de la sintaxis
Servicio de intercambio de mensajes
independientes de la red
Conexiones físicas con el equipo
terminal de red
Proceso de aplicación de usuario final
Transferencia, acceso y gestión de archivos,
intercambio de documentos y mensajes,
transferencia y manipulación de trabajos
Negociación de sintaxis de transferencia,
transformaciones de representación de
datos (protección de datos)
Control y sincronización de diálogos para
entidades de aplicación
Transferencia de mensajes de extremo a
extremo (gestión de conexiones, control de
errores, fragmentación, control de flujo)
Enrutamiento, direccionamiento,
preparación de llamadas y liberación de la
red
Control de enlace de datos (entramado,
transparencia de datos, control de errores)
Definiciones de interfaces de redes
mecánicas y eléctricas
Red de comunicaciones de datos
Capa de aplicación
Capa de presentación
Capa de sesión
Capa de transporte
Capa de red
Capa de
aplicació
Capa de enlace
Capa física
CAPAS
Conceptos a tener en cuenta:
Cabecera: en inglés Header, obtenemos la letra "h" del término inglés para asociarlo a cada capa con su primera sigla (también en inglés)
Aplicación- Aplication (HA); Presentación- Presentation (HP); Sesión- Sesion (HS); Transporte- Transport (HT); Red- Network (HN); Enlace- Link (HL)
; Fisica- Phisical (A tener en cuenta en los Protocolos, no lleva cabecera el mensaje aquí).
Cola: en inglés Trailer o Tail. De ahí que en la capa de Enlace y red aparezca "TL" (Trailer Link).
Encapsular: se trata de la acción de poner una cabecera.
Desencapsular: acción de quitar una cabecera.
Mensaje / SDU: Conocido como SDU (Service Data Unit).
SAP: Service Access Point. Es el punto de acceso para entrar en cada capa, como por ejemplo la IP en la capa de Red o el Número de Puerto en la
capa de Transporte.
ICI: Interface Control Information. Información entre capas. Se trata de una información para esa capa y es en ella donde desaparece.
IDU: ICI + SDU. Interface Data Unit.
PCI: Protocol Control Information. Son las "H" del esquema anterior.
PDU: PCI + SDU. Protocol Data Unit
* Las direcciones físicas son solo válidas en el enlace.
COLISIÓN - Se trata donde pueden "chocar" los paquetes
DOMINIO
DIFUSIÓN - Está formado por todos aquellos equipos que son capaces de escuchar las difusiones.
* Para romper el dominio de difusión hay que llegar a la capa de red y para romper el dominio de colisión hay que llegar a la capa de enlace.
MULTICAST- Dirigida (Ejemplo: a todos los componentes de una subred)
BROADCAST - A todos (Global)
Básicamente a la hora de acceder al medio tenemos dos posibilidades, utilizar un método que use testigos o no. En el caso de que use testigos no hablamos
de dominios de colisión. El testigo (token) es una trama que se suele utilizar en redes estilo “anillo”.
Por cada puerto del Router tenemos un dominio de difusión y uno de colisión.
DOMINIOS DE COLISIÓN Y DIFUSIÓN
ENTORNOS
IMPORTANTE: El modelo OSI (Open System Interconnection) es también conocido como el ISO 7498 u ITU –T X200. A continuación se muestran distintos
modelos de los cuales es importante saber a quién pertenece cada uno
MODELOS DE REFERENCIA Aplicación
Servicios de
transacción
Aplicación
DNA
FTP,
SMTP
Protocolo principal de
Netware
AppleShare Bloques del mensaje
del servidor
Sistema de archivos de red
Servicios de
presentación
Presentación
NFS, DNS
AFP
Control de
sesión de la
DNA Sesión
TELNET Conductores
nominados
NetBIOS ASP ADSP ZIP PAP NetBIOS Conductores
nominados
SMTP FTP TELNET SNMP
Control del
flujo de
datos
Transporte
Transporte TCP, UDP SPX ATP NBP AEP RTMP NetBEUI TCP
Control de la transmisión
Red
Red IP, ARP IPX DDP IP
Control de trayecto
Enlace de
datos
Subnivel
LLC
IEEE
802.2
Enlace de
datos
Controladores LAN Controladores LAN Controladores LAN Controladores LAN
Control de
enlace de datos Subnivel
MAC
ODI NDIS Local-
Talk
Ether-
Talk
Token-
Talk
NDIS MAC
Físico
Físico
Control físico Físico Físico Físico Físico Físico
OSI Modelo Especif. SNA DNA TCP/IP NetWare AppleTalk LAN Manager UNIX
IEEE IEEE
http://www.ieee802.org/dots.shtml
IEEE: Institutos de Ingenieros de Electricidad y Electrónica; SNA (Systems Network Architecture- IBM) La segunda generación de SNA es APPN (Advanced Peer to Peer
Network). En esta segunda generación toma mayor importancia los dispositivos intermedios (como los Routers), abandonando el entorno de mainframe; DNA (Digital Network
Architecture)- Digital Equipment Corporation ahora parte de HP. ; TCP/IP (Protocolo de Control de Transmisión/Protocolo de Internet) Departamento de defensa (ARPANET); Netware (Novell); AppleTalk (Macintosh Apple) 1983 destacaríamos de este modelo la asignación dinámica de direcciones. Cuando se enciende una máquina se le asigna
automáticamente un número de red y un número de nodo. El número de red está comprendido entre 65280 y 65534 y un número de nodo entre el 1 y 253. La máquina se
pone en contacto con el router que esté en la misma red y éste comprueba si ese número de red sirve para su red, si no da el visto bueno, se asigna un nuevo número de red. En el momento en el que número de red es correcto, difunde un mensaje por la red para comprobar si el número de nodo ha sido cogido. Otra propiedad que las caracteriza
son las zonas. Zonas: un conjunto de dispositivos que no tienen por qué estar físicamente cercanos. Para poder conectar un ordenador Apple a una red “no Apple” lo que se
hace es utilizar la implementación correspondiente (Ej: Ether Talk). ; LAN Manager (Local Area Network Manager) (Microsoft); UNIX (UNIX/LINUX) (AT&T utilizó como
compañía de hardware a Digital) 1993 AT&T vendió la patente a Novell, éste atravesó serios problemas y traspasó la patente original a SCO (Santa Cruz Operation), paralelamente otras empresas como SUN le fueron copando mercado.
IEEE 8
02
.3
...¨
¨
DOMINIOS DE UNA LAN
1/ DOMINIOS DE ACCESO AL MEDIO
Dominio de colisión
Dominio de misión de testigo
2/ DOMINIOS DE DIFUSIÓN
Dominio de colisión: Está formado por todos aquellos dispositivos cuyos paquetes puede colisionar.
Dominio de transmisión de testigo: Está formado por todos aquellos dispositivos que transmiten testigos.
Dominio de difusión: Está formado por todos aquellos dispositivos que “escuchan” las difusiones.
1.3- ARQUITECTURA DE SEGURIDAD OSI-RM (Open System Interconnection /
Reference Model)
ISO 7498 International Organization for Standarization ITU X-200 International Telecommunication Union.
Se desarrolló un modelo pero, además de tener sus ventajas, tenía un gran inconveniente que era la seguridad.
Debido a ello se definió un nuevo modelo en 1988 el ISO 7498-2 (ITU X-800). Aunque no todas las
arquitecturas de interconexión siguen esta normativa nos valdrá para establecer equivalencias entre lo que los
servicios de una capa ofrecen a otra capa.
El ISO 7498 trata de la arquitectura de seguridad del modelo de referencia OSI, proponiendo
fundamentalmente un conjunto de servicios y de mecanismos para proteger los datos durante la
transmisión.
Los mecanismos se pueden usar para proporcionar, ya sea total o parcialmente, varios servicios.
SEGURIDAD
Servicios Mecanismos
Autenticación
o
Autentificación
Control
de
Acceso
Confidencialidad
de los
Datos
Integridad
de los
Datos
No
repudio
De seguridad
Específicos
De seguridad
Generalizados
Cifrado
Firma Digital
Control de Acceso
Integridad de Datos
Intercambio de
Autenticación
Relleno de Tráfico
Control de
Encaminamiento
Certificación
Funcionalidad de
Confianza
Etiquetas de
Seguridad
Detección de Eventos
Traza de Auditoria de
Seguridad
Recuperación de
Seguridad
SEGURIDAD
Servicios
Autenticación
o
Autentificación
Control
de
Acceso
Confidencialidad
de los
Datos
Integridad
de los
Datos
No
repudio
Par o de la Pareja
Del origen de los
Datos
Prueba de
Conocimiento
Prueba de la
Posesión
Prueba de la
Propiedad
Orientados a
Conexión (CO)
No orientados a
Conexión (CL)
En campos
Seleccionados
De Flujo de Tráfico
CO con
recuperación de
Datos
CO sin recuperación
de Datos
CO en campos
Seleccionados
No orientados a
Conexión (CL)
CL en campos
Seleccionados
Con prueba de
origen
Con prueba de
destino
INTRODUCCIÓN A LA SEGURIDAD DE LA INFORMACIÓN (SI)
Actualmente la seguridad de la información es un elemento que ha tomado una gran relevancia dado que su no
aseguración puede llevar a la paralización de una empresa.
¿Qué es la seguridad? Se trata de proteger los bienes. “Calidad relativa resultado del equilibrio entre el riesgo y
las medidas adoptadas para apaliarlo” A mayor riesgo mayores medidas de protección lo que da lugar a la
proporcionalidad.
¿Qué es el riesgo? El riesgo es una combinación de amenazas a la seguridad de vulnerabilidades y del valor del
elemento en cuestión. Sobre las amenazas no podemos actuar ni sobre el valor de los elementos pero si
podemos actuar sobre las vulnerabilidades tomando unas medidas de seguridad.
La seguridad de las comunicaciones va a tener como objetivo la protección de las mismas tanto a nivel local
como durante su transmisión a través de las redes.
ISO 7498-2 define servicio de seguridad como “la prestación de un sistema basado en tecnología de la
información que contribuye a incrementar la seguridad del mismo”, sin embargo los expertos prefieren más que
trabajar con una definición, trabajar con unos objetivos que son los siguientes:
La confidencialidad (la información solo sea revelada a los usuarios autorizados)
La integridad (que la información no sea modificada)
La disponibilidad (se refiere a que la información esté disponible cuando y como lo requiera los
usuarios autorizados)
Desde el punto de vista general entonces podríamos decir que la seguridad se centra básicamente en 2
aspectos, por un lado las herramientas y por otro lado el factor humano.
Las herramientas pueden ser tanto lógicas (ejemplo contraseña) como físicas (ejemplo el servidor metido en
una caja de hierro)
Ingeniería social es una muestra de confianza para conseguir información.
Medidas de protección
La seguridad supone integrar distintas medidas:
Medidas Lógicas (medidas técnicas): Se utilizan para proteger el software y los datos y se pueden
implementar mediante dispositivos hardware o software.
o Criptografía: La criptografía es cifrar la información. Es la base de la mayoría de los servicios de
seguridad.
o Los sistemas operativos: Los sistemas operativos son los que me van a garantizar disponer de
los recursos y me van a garantizar la integridad de los datos.
o Las bases de datos: Los sistemas gestores de bases de datos me van a garantizar aquellos
aspectos que no me garantizan los sistemas operativos.
o La seguridad en las redes: El hecho de conectar el ordenador a otros implica que nos
exponemos a una serie de peligros y hoy en día no nos podemos plantear evitar.
Medidas Físicas: Son las primeras que se adoptan porque su costo no suele ser exagerado y porque no
adoptarlas suele conllevar consecuencias drásticas. Ejemplos: Inundaciones, incendios…
Medidas administrativas: Son cuestiones organizativas y que están relacionadas con: Establecer una
política de seguridad, Análisis de riesgos, Política de personal, Asignación de responsabilidades…
Normativa legal: Son las disposiciones regales que regulan y protegen la información y los equipos.
(ver tema 9)
Estrategias de seguridad
La estrategia de seguridad tiene como objetivo introducir a la Dirección (empresa, organización…) en la
importancia de la seguridad de la información y su ineludible compromiso con ella.
Supone en primer lugar definir y formalizar el papel de la Dirección en la seguridad consiguiendo un
nivel de compromiso.
En segundo lugar, definir el modelo organizativo con el que se gestionará la seguridad.
La seguridad no es un concepto aislado si no que es un proceso cíclico que influye en la política y la estrategia
de los sistemas de información.
Política de seguridad
Una política de seguridad es un conjunto de principios y de reglas donde se especifica como se va a gestionar la
protección de la información de forma efectiva. Por ello, las políticas de seguridad deben:
- Alinear los requisitos de seguridad de la información con las necesidades de negocio de la empresa u
organización
- Fomentar el apoyo de la Dirección a la seguridad
- Planificar y presupuestar la seguridad para hacerla posible y fácil de implantar
- Establecer las responsabilidades en la gestión de la seguridad
- Promocionar la divulgación, educación y formación en seguridad
- Dejar patente a los usuarios la necesidad de la seguridad de la información y como ellos pueden contribuir
a alcanzar los objetivos de seguridad
- Facilitar la implantación de los procedimientos y mecanismos de seguridad
Veremos ahora lo que establecen al respecto 2 instituciones de referencia: La OCDE y el ISSA.
OCDE (Organización de Cooperación y Desarrollo Económico): Estableció unos servicios de seguridad que son:
- Principio de contabilidad: La responsabilidad del uso de recursos debe ser explícita y exigible.
- Principio de concienciación: De que los propios usuarios sean conscientes y sensibles a las amenazas.
- Principio de ética: Es utilizar la información observando unos códigos de conducta.
- Principio de multidisciplinariedad: Las medidas afectan a varias disciplinas.
- Principio de proporcionalidad: Las medidas serán proporcionales a los riesgos.
- Principio de integración: Las medidas han de estar integradas entre sí.
- Principio de acompasamiento: Hace referencia a las substituciones públicas, privadas, nacionales o
internacionales tienen que actuar coordinadamente.
- Principio de reevaluación: Hay que evaluar la seguridad periódicamente.
- Principio de democracia: Hay que tener en cuenta los derechos de todos los individuos involucrados.
ISSA (Information Systems Security Association) Estableció unos servicios de seguridad que son:
- Principio del mínimo privilegio: Cada usuario, administrador, programa, sistema, o lo que sea, solo
debe tener los privilegios que necesita para cubrir la tarea que le ha sido asignada.
- Principio de separación de tareas y responsabilidades: Separar a los que tienen que cumplir las
normas de los que tienen que vigilar que se cumplan.
- Principio de continuidad: Las medidas deben ser continuas en el tiempo.
- Principio de anticipación: Las políticas de seguridad deben prevenir lo que es aceptable que ocurra.
1.4- Tipos de amenaza a la seguridad
Las vamos a distinguir entre físicas, basadas en el medio de transmisión, autenticación, programación y puertas
falsas:
Físicas:
o Robo: Puertas de seguridad, Atornillar el servidor, Encerrar el servidor en una caja, Tener
personal de seguridad…
o Dumpster diving (Rebuscar en la basura): No tirar en la basura discos de información usados
o Espionaje: Se considera un robo y es una amenaza con la que podemos optar por diferentes
medidas; formación del personal, autenticándonos para los recursos, captación de señales…
o Identificadores falsos: Comprobar robos de identidad añadiendo dispositivos biométricos
que nos permitirán evitar identidades falsas; huellas dactilares, control de retina, iris, rostro,
termograma del rostro, geometría de la mano, venas de las manos (vascular), voz, firma…
Sistemas Biométricos:
Análisis de vulnerabilidades de los sistemas biométricos:
1 Sensor
Los ataques a este nivel consisten en presentar una característica biométrica falsa. Por ejemplo, en un sistema de reconocimiento de
locutores, se puede burlar el sistema presentando una grabación del locutor genuino.
2 Transmisión entre el sensor y el extractor de características
Los ataques en este nivel consisten en inyectar datos biométricos almacenados previamente. Esta posibilidad es especialmente importante en aplicaciones remotas, en las que un ordenador cliente proporciona datos biométricos a un host remoto que lleva a cabo el reconocimiento. Esta situación es especialmente delicada en aplicaciones de Internet.
3 Extractor de características
En los ataques de este nivel, se fuerza al extractor de características a proporcionar valores escogidos por el impostor, en vez de las medidas reales extraídas a partir de la señal original capturada por el sensor biométrico. Este ataque suele consistir en insertar un programa que reemplaza al verdadero extractor de características.
4 Transmisión de las características extraídas
Este ataque consiste en reemplazar las características extraídas por otras falsas, o por un conjunto de características que han sido
adquiridas previamente de forma ilegal. Es parecido al ataque del punto 2.
5 Clasificador
Los ataques sobre el clasificador pretenden que éste proporcione puntuaciones (scores) mayores o menores a las reales, de forma que se
fuerce la aceptación o rechazo de un determinado usuario. Es un ataque similar al descrito en el punto 3.
6 Base de datos
El resultado de la autenticación depende de la comparación entre las plantillas o modelos almacenados en la base de datos y las
características extraídas de la muestra de entrada. Si se altera la base de datos de alguna forma, el sistema será craqueado de forma
permanente. De forma alternativa, en vez de alterar la base de datos, es posible almacenar modelos que pertenezcan a un usuario no
autorizado.
7 Transmisión de los datos de la BBDD al clasificador
Este nivel es análogo a los niveles 2 y 4. Sin embargo, aquí la suplantación de los datos reales afecta a la comunicación de los modelos (o
plantillas) almacenados en la base de datos hacia el clasificador. Puede ser importante cuando la base de datos sea remota y, por ejemplo,
compartida por varios sistemas de acceso que trabajan sobre una misma base de datos común a todos ellos.
8 Decisión
El último nivel consiste en saltarse todo el sistema biométrico y reemplazar su decisión. Por ejemplo, en un sistema de control de accesos
basado en reconocimiento biométrico, seguramente habrá un par de terminales que enviarán el resultado del sistema biométrico hacia un
actuador. El actuador puede ser tan simple como un relé que abre o cierra un circuito en función de la tensión aplicada. Actuar sobre estos
cables e inyectarles una tensión de activación sería suficiente para burlar todo el sistema biométrico, por muy seguros que sean todos los
otros puntos.
Basadas en el medio de transmisión(cables):
o Escuchas: Interceptar o “pinchar” la transmisión. A veces no es ni siquiera necesario actuar
físicamente sobre el medio si no que se pueden captar las señales que van por fuera del medio
de transmisión.
o Marcación de un número de teléfono: Se ven sobre todo cuando se emplean módems.
o Imitación: Hacer que una máquina parezca otra máquina (“gemelo maligno”)
Identificación:
o Captura de contraseñas: Se trata de sacar una pantalla exactamente igual que cuando nos
identificamos para que la persona tecle ahí su información y capturar sus datos.
o Averiguación de contraseñas: Buscar por medio de los conocimientos o deducciones lógicas
o Suposiciones basadas en algoritmos: Buscar de forma matemática que descarte por medio de
distintas posibilidades las no válidas.
o Edición de contraseñas: Parte de una brecha de seguridad interna (alguien nos pasa los datos)
y se crea una cuenta ficticia o cambiándole la contraseña a una cuenta inactiva.
Programación (malware- malicious software): Se considera malware todo software que tenga como
finalidad provocar un daño en el sistema (el ejemplo más común son los Virus). Es necesario distinguir
entre el malware (que siempre es mal intencionado) de los propios fallos del software (bugs – agujeros
de seguridad) que no son intencionados. Vamos a analizar:
o Virus: Es una secuencia de código que se inserta en otro código ejecutable de forma que cuando
se ejecuta ese código también lo hace el virus. Los virus no son programas independientes, no se
pueden ejecutar por sí solos.
El primer virus conocido se llamaba “Creeper” (Enredadera) en 1972 creado por Morris para un
IBM 360. Sacaba un mensaje que era “Hola soy una enredadera…Atrapame si puedes”. Esto dio
lugar a un antivirus (el primero que se conoce) llamado “Reaper” (Segadora). Un virus puede
entrar en el equipo a través de un correo electrónico, pendrive, dispositivo de memoria, etc.
Tipos de virus:
Virus de programas: son virus que se instalan sobre programas ejecutables y modifican
el código de ese programa sobrescribiéndolo con su propio código. Dentro de estos, se
distinguen los virus :
1. “autorun.inf” (fichero de arranque de medios extraíbles). Para evitar los
autorun.inf deberíamos eliminarlo (pero quedaríamos sin el arranque) o crear
una carpeta autorun.inf porque así no podrá generarse un archivo con el mismo
nombre.
2. Virus del registro: Las alteraciones sobre el registro que realice el virus puede
provocar que el equipo no funcione.
Los virus en el sector de arranque (también conocidos como virus boot): atacan al MBR
(Master Boot Record) que carga la BIOS para las particiones de cada disco (Se puede
regenerar con fdisk) y hace que se cargue el virus en la RAM.
Virus de BIOS (Basic Input Output System): virus que infectan la BIOS del sistema. La
BIOS es hardware porque está en un chip y es software (firmware) porque también es
un programa que está en un lenguaje de programación y que se almacena en una
memoria ROM.
Virus de Macros: puede que sean los más habituales. Forman parte de programas
sobre todo ofimáticos.
o Códigos bomba: Se llaman también bombas lógicas. Las bombas lógicas son amenazas que
permanecen latentes y que se activan por la ocurrencia de un evento como puede ser el llegar a
una determinada fecha o bien que alguien haga algo
o Caballos de Troya: Son programas que se ocultan bajo una determinada apariencia para que
hagan algo que no es lo que piensa el usuario que está haciendo.
o Gusanos (worms): Los gusanos son programas que se pueden ejecutar de forma independiente
y que van viajando por la red de nodo en nodo. Pueden hacer que parte de ellos se ejecuten en
muchas máquinas diferentes. Una vez que están dentro del equipo se comportan como un virus o
como un caballo de Troya.
o Las bacterias: Las bacterias son programas que de forma explícita no dañan ningún fichero, su
objetivo es replicarse. Terminarán ocupando todo el espacio en disco o toda la capacidad del
procesador, negando que los usuarios puedan acceder a los recursos. El establecimiento de
cuotas sería la solución a este problema.
o Otros:
Adware (advertisement): Es un software malicioso que se utiliza para mostrar publicidad
no deseada.
Backdoors (puertas traseras): Entran en un equipo sin permiso y conceden a un
programa o a ese programa derechos de administrador. Se suelen usar para espiar y para
instalar otros programas con algún fin maligno.
Botnets (bot de robot y net de network): Son redes de ordenadores que se controlan
de forma remota, se suelen utilizar para ataques masivos a un determinado servidor
mediante la técnica de denegación de servicio (“DoS” Denial of Service)
Dialers (Marcar): Programas de marcado. Establecen conexiones telefónicas
(generalmente por internet) sin consentimiento del propietario y sin que se dé cuenta de
ello.
Exploit : Software malicioso que atacan vulnerabilidades de un sistema operativo o
agujeros del sistema (bugs).
Hijacker (secuestro): son programas que se dedican a cambiar la configuración de los
navegadores, cambiando la página de inicio
Hoax(engaño): Son mensajes que nos facilitan mentiras o noticias falsas.
Joke (bromas): Son programas que simulan el comportamiento de virus pero no lo son,
simplemente son bromas.
Keyloggers (contraseñas): Son los que registran las pulsaciones del teclado.
PC-Zo-mbie: Se dice que un equipo es un zombie cuando permite que pueda ser
empleado para entrar en otros.
Phishing: Consiste en tratar de conseguir información del usuario para obtener algún
rendimiento económico como por ejemplo suplantar páginas de bancos y obtener las
cuentas y contraseñas de los clientes.
Pop ups (ventanas emergentes): Son ventanas que nos aparecen por lo general con
publicidad aunque a veces actúan también como spyware (software espia)
Rogue Software (software bandido): Es el que intenta hacer creer que el equipo está
infectado y se nos ofrecen a limpiarlo.
Rootkits: Es un software malicioso que se instala en el equipo para encubrir accesos no
permitidos u otro tipo de malware.
Spam (correo basura): Envío masivo de e-mails que no se han solicitado (normalmente
utilizados como publicidad)
Spyware (software espia): Es un software que envía información de nuestro equipo sin
nuestro consentimiento.
http://cert.inteco.es/software/Proteccion/utiles_gratuitos/
o Actualizaciones:
Es una forma habitual de acceso no autorizado al ordenador aprovechando las actualizaciones
que obligatoriamente debemos descargar.
Puertas de escape (backdoors): una puerta de escape o puerta trasera son trozos de código escritos
dentro de la aplicación o del sistema operativo para facilitar al programador el acceso sin tener que
autenticarse. Ejemplos:
Piggybacking: un usuario termina la comunicación y por alguna razón el puerto queda
abierto, lo cual es aprovechado por un atacante.
Servicios no seguros: hay servicios del sistema operativo en que muchas veces se salta
el sistema de seguridad de una máquina para facilitar una tarea.
Inicialización del sistema: por mantenimiento muchas veces es necesario reiniciar el
sistema y hay servicios de seguridad que, o no se inicializan bien, o no lo hacen
inmediatamente.
1.5- Soluciones generales a las amenazas contra la seguridad
Sistemas de detección de intrusos (Intrusion Detection System “IDS”):
Es una herramienta que tiene como objetivo proteger datos y los servicios, proporcionando disponibilidad y
privacidad. Consiste en monitorizar procesos y recursos del sistema para, analizando los datos obtenidos, llegar
a establecer si se está cometiendo o pretende cometer una intrusión.
Para saber si hay una intrusión existen unas bases de datos que contienen lo que se llaman “signaturas o
firmas” de los ataques, se analizan los procesos de los usuarios para determinar si hacen más cosas que las
que tienen permitidas hacer, y también se realiza un análisis estadístico con el fin de buscar patrones que me
indiquen actividades anómalas.
Terminología:
¿Qué es un intruso?: Un intruso es un usuario no autorizado que se hace pasar por uno que si lo es. Ejemplos:
hackers, crackers.
¿Qué es una intrusión?: Una intrusión es un conjunto de acciones para conseguir acceder al sistema
Funcionalidad de un IDS.
Un IDS puede:
Monitorizar y analizar la actividad de los usuarios y del sistema, con supervisión mínima del administrador
o usuario para su configuración
Auditar las configuraciones del sistema y vulnerabilidades
Evaluar la integridad de ficheros de datos y sistemas críticos
Reconocer patrones para identificar ataques conocidos
Analizar de forma estadística patrones con una actividad anómala
Reconocer actividades que reflejan violaciones a una política de seguridad
Emitir alertas sobre posibles incidentes
Para realizar estas tareas las ha de hacer teniendo en cuenta:
o Que se use lo mínimo de los recursos disponibles para que no afecte al desarrollo del sistema.
o Conseguir una tasa de alertas falsas positivas baja.
o Resistencia a ataques para que pueda seguir funcionando…
Por último aclarar que un IDS es un sistema pasivo porque solo detecta, si queremos detectar y tomar medidas
deberíamos utilizar un IPS (Intrusion Prevention System). Por ejemplo cuando se detecta un ataque se puede
cerrar la conexión. Por otro lado están los IDPS que realizan las dos funciones (Intrusion Detection Prevention
System)
Tipos de IDS´s
Clasificación de acuerdo con la fuente de información
Network-based IDS (NIDS): Supone utilizar un dispositivo de red configurado en modo promiscuo
(escucha todo el tráfico que pasa por su canal aunque no él no sea el destinatario) que pueda por lo tanto
“ver” todos los paquetes buscando patrones que puedan indicar un ataque.
Ejemplos:
o Snort (www.snort.org): el snort puede actuar en los siguientes modos:
Modo Sniffer: similar a “tcpdump” de Windows. Recibiendo y mostrando todos los paquetes.
Modo Logger de paquetes: registra los paquetes recibidos en un fichero.
Modo de Detección y prevención de intrusos: supone monitorizar todas las fuentes de
información para identificar ataques y en base a la comparación con determinados
patrones.
o Bro
o Suricata
o Einstein
Host-based IDS (HIDS): Si en lugar de escuchar el tráfico de la red escuchamos el de un host
determinado, obviamente nos estaremos refiriendo a un HIDS. Los HIDS fueron los primeros IDS que se
desarrollaron por la industria de seguridad informática.
Ejemplos: OSSEC, Tripwire, SWATCH, Verisys
Clasificación según tipo de análisis
Detección por anomalías: Se buscan eventos anómalos en el comportamiento del sistema. Lógicamente
esto da pie a que puedan saltar alarmas falsas. Se consideran que si de entre 20 falsas 1 es buena, el
sistema es bueno.
Detección por patrones de ataques: Supone comparar la información obtenida con unas bases de datos.
Esas bases de datos contendrán unos patrones o “signaturas / firmas” que han de estar actualizadas
constantemente.
Clasificación según tiempo de detección y granularidad de procesamiento
In-line (en tiempo real o muy cercano)
Off-line (cuando existe una demora)
Si tenemos un sistema que realice las dos funciones, tenemos un sistema hibrido.
Componentes de la arquitectura de un IDS
Para los componentes de una arquitectura de un IDS existen diversas propuestas, pero siempre van a tener los
siguientes componentes:
Fuente de información (también conocido como generador de eventos): consiste en obtener los eventos
del sistema tan pronto ocurren, estos eventos se almacenan en una base de datos o registro.
Motor de análisis (también conocido como sensor): es el que identifica el ataque. Es el cerebro del IDS.
Puede usar también una base de datos de patrones (signaturas).
Módulo de respuesta: ¿Qué hacemos cuando se detecta un ataque?
o Por ejemplo se pueden utilizar medidas pasiva como una alerta, un correo al administrador,
escribir un log…
o O utilizar medidas activas como por ejemplo bloquear un puerto, deshabilitar una cuenta de
usuario, ejecutar un software de seguridad, apagar el equipo…
1.6- Políticas de seguridad informática
Una PSI es una herramienta organizativa para concienciar a los miembros de una organización sobre la importancia y la sensibilidad de la
información y de los servicios críticos que va a permitir a una empresa desarrollarse y mantenerse en un determinado negocio. Se trata
pues de una serie de directrices que hay que seguir para asegurar la confidencialidad de su sistema.
RFC 1244 (http://www.ietf.org/rfc/rfc1244.txt) (RFC- Request for comments)
“Una declaración de intenciones de alto nivel, que cubre la seguridad de los sistemas informáticos, y que proporciona las bases para definir
y delimitar responsabilidades para las diversas actuaciones técnicas y organizativas que se requerirán”.
Las PSI deben considerar entre otras los siguientes elementos:
Alcance de las políticas, incluyendo facilidades, sistemas y personal sobre la cual se aplican
Objetivos de la política y descripción clara de los elementos involucrados en su definición
Responsabilidades por cada uno de los servicios y recursos informáticos a todos los niveles de la organización
Requerimientos mínimos para configuración de la seguridad de los sistemas
Definición de violaciones y de las consecuencias del no cumplimiento de la política
Responsabilidades de los usuarios con respecto a la información a la que tienen acceso
Parámetros para establecer las PSI:
Efectuar un ejercicio de análisis de riesgos informáticos
Involucrar a las áreas propietarias de los recursos o servicios
Comunicar a todo el personal involucrado en el desarrollo de las PSI, los beneficios y riesgos relacionados con los recursos y bienes,
y sus elementos de seguridad
Identificar quien tiene la autoridad para tomas decisiones
Hacer explícitos y concretos los alcances y propuestas de seguridad
Revisar periódicamente las directrices en el hacer de la organización
Etapas de desarrollo: Para llevar a cabo el desarrollo de una PCI se han de realizar 11 etapas que se pueden agrupar a su vez en 4
fases. Estas son:
Fase de desarrollo: Es la fase en la que se crea, se revisa y se aprueba una política.
Creación
Revisión
Aprobación
La fase de implementación: Es la fase en la que la política se lleva a cabo*
Comunicación: La comunicación se ha de adaptar a la situación geográfica, al idioma.
Cumplimiento: Hay que conseguir que se entienda, realizar un seguimiento y medir su impacto
Excepciones: A veces falta coordinación, personal, etc. Por ello cuando no se cumplen las políticas hay que anotar porqué
determinando si hay que hacer una excepción o bien es algo temporal subsanable.
La fase de mantenimiento: Es la que va a permitir que esa política se pueda seguir cumpliendo actualizándola si es necesario
Concienciación: Se trata de que las personas conozcan y asuman las políticas.
Monitorización: Se trata de realizar un seguimiento de los resultados. Esa información puede partir del personal de la
empresa/usuarios o de un auditor que realice dicha función.
Garantía de cumplimiento: Se trata de incluir acciones correctivas que garanticen el cumplimiento de lo que está estipulado.
Mantenimiento: Se trata de mantener la política actualizada.
La fase de eliminación: Es la fase que supone retirar la política porque ya no se va a emplear más.
Retiro: Una vez que la política cumple su finalidad y ya no es necesaria, por ejemplo por nuevas circunstancias, ésta hay que
eliminarla.
Estas 11 etapas deben ser realizadas y en algún caso, como por ejemplo la de mantenimiento, concienciación, monitorización y garantía del
cumplimiento se deben ejecutar de forma cíclica.
Recomendaciones:
A la hora de escribir una PCI y garantizar que tenga éxito, cuando la implementemos, deberíamos incluir:
La declaración de la política
Nombre y cargo de quién autoriza o aprueba la política
A quién está dirigida y quién es el responsable de garantizar su cumplimiento
Indicadores del grado de cumplimiento
Políticas y regulaciones en las cuales se soporta o con las que tiene relación
Proceso para solicitar excepciones
Pasos necesarios para solicitar cambios o actualizaciones en la política y acciones que se seguirán en caso de que se produzcan
Fecha a partir de la cual tiene vigencia la política
Fecha acerca de cuándo se revisará la política
Seguridad de servicios ISO7498-2
a) Autenticación o Autentificación. Corrobora la veracidad de la fuente de una
unidad de datos.
• Autenticación de entidad par o de la pareja. Proporciona la capacidad de verificar que la
contraparte de una asociación es quien dice ser. Se comprueban dos aspectos: 1- Que en
el momento en que se inicia la transmisión, ambas partes son quien dicen ser. 2- Que
ningún tercero suplanta la identidad de uno de los dos pares, ya sea durante la conexión
o ya sea recuperando una conexión anterior.
• Autenticación del origen de los datos. Permite reclamar el origen de las fuentes de los
datos recibidos; no proporciona protección contra la duplicación o la modificación de
unidades de datos.
b) Control de acceso. Se utiliza para evitar el uso no autorizado de los recursos.
Tanto en este caso como en el caso anterior se suele llevar a cabo utilizando técnicas que
pueden ser: prueba de conocimiento (preguntarme por algo que tengo que saber.
Ejemplo: contraseña*), prueba de posesión (Ejemplo: tarjeta), prueba de propiedad
(Características biométricas. Ejemplo: escáner de retina, huella dactilar, voz).
* En relación a las contraseñas se recomienda seguir las siguientes consideraciones:
1- Contraseñas largas
2- Combinación de caracteres alfabéticos y numéricos
3- No utilizar palabras que tengan sentido
4- No utilizar la misma contraseña en todos los sistemas
5- No utilizar nombres propios…
...- No utilizar contraseñas difíciles de recordar
c) Confidencialidad de datos. Proporciona protección contra la revelación
deliberada o accidental de los datos en una comunicación. Hay 4 modalidades:
• Servicios de confidencialidad orientados a conexión (CO- Connection Oriented – me
proporciona confidencialidad de todos los mensajes desde que comienza hasta que
finaliza una conexión). Proporcionan confidencialidad a los datos transmitidos durante su
conexión.
• Servicios de confidencialidad no orientados a conexión (CL-datagramas). Proporcionan
confidencialidad de paquetes de datos.
• Servicios de confidencialidad en campos seleccionados. Proporcionan confidencialidad
de campos específicos de los datos durante una conexión.
• Servicios de confidencialidad de flujo de tráfico. Proporcionan protección de información
que de otra forma podría resultar comprometida u obtenida indirectamente mediante un
análisis del tráfico. Esta información puede ser observada y así, un atacante podría
conseguir información.
d) Integridad de datos. Garantiza que los datos recibidos coinciden con los datos
enviados. Se trata de que no exista duplicaciones, modificaciones o destrucciones de la
información.
• Servicios de integridad orientados a conexión con recuperación de datos (CO con
recuperación de datos). Proporcionan integridad de los mismos durante una conexión. Si
es posible, permiten la recuperación de fallos de integridad.
• Servicios de integridad orientados a conexión sin recuperación de datos. Proporcionan
integridad a los mismos durante una conexión. No se recuperan los fallos de integridad.
• Servicios de integridad de campo seleccionado orientado a conexión. Proporcionan
integridad de campos específicos en los datos durante la conexión.
• Servicios de integridad no orientados a conexión(CL). Proporcionan integridad a
unidades de datos.
• Servicios de integridad en campos seleccionados no orientados a conexión.
Proporcionan integridad de campos específicos dentro de las unidades de datos.
e) No repudio. Proporciona la prueba, ante una tercera parte, de que cada una de
las entidades comunicantes han participado en una comunicación. El principal mecanismo
para el “no repudio” es la firma digital.
• Servicios de no repudio con prueba de origen. Sirven para proporcionar al destinatario
una prueba del origen de los datos. Protege frente a la intención del emisor de negar
falsamente un envío o el contenido de los datos.
• Servicios de no repudio con prueba de destino. Sirven para proporcionar al emisor una
prueba de que los datos se han entregado al destinatario. Este caso sería lo mismo pero
desde el punto de vista del destinatario.
Mecanismos de seguridad ISO7498-2
Para proporcionar un servicio se necesita un mecanismo. Los mecanismos se subdividen entre
los que son específicos y los que son generales.
Mecanismos de seguridad específicos:
a) Cifrado: Se utiliza para proteger la confidencialidad de los datos ya sea en reposo o
en flujo, así como para dar soporte o complementar otros mecanismos de seguridad.
b) Firma digital: Se emplean para proporcionar una analogía electrónica a la firma
manuscrita en documentos electrónicos; de forma similar a las firmas manuscritas, las firmas
digitales no deben ser falsificables. Los receptores deben ser capaces de verificarlas, y el
firmante no debe poder rechazarlas posteriormente.
c) Control de acceso: Este mecanismo se utiliza para autenticar las capacidades de
una entidad, con el fin de asegurar los derechos de acceso a recursos que posee. El control de
acceso se puede realizar en el origen o en un punto intermedio, y se encarga de asegurar si el
emisor está autorizado a comunicarse con el receptor así como a hacer uso de los recursos de
comunicación requeridos. Si una persona intenta acceder a un recurso al que no tiene acceso
además de denegarle el acceso se puede desencadenar un aviso de advertencia y/o una
anotación en un registro.
d) Integridad de datos: Se encarga de proteger la integridad de los datos, de los
paquetes de datos, de las secuencias de los paquetes de datos, así como de los campos
correspondientes a dichas secuencias. Como ejemplo tenemos CRC (Cyclical Redundancy
Checksum). Para la integridad en el caso de que no exista conexión (CL), además del uso del
CRC es necesario tener alguna forma de ordenar los campos (ejemplo numerándolos). Si de lo
que se trata es de la integridad de una serie de mensajes consecutivos, también
necesitaremos establecer su orden.
e) Intercambio de autenticación: Su finalidad es verificar la identidad de las
entidades en comunicación antes de iniciar el intercambio de información. Existen dos grados
en el mecanismo de autenticación:
• Autenticación simple. El emisor envía su nombre distintivo y una contraseña al receptor.
• Autenticación fuerte. Se basa en el uso de técnicas criptográficas para proteger los
mensajes que se intercambiarán; utiliza las propiedades del cifrado asimétrico.
f) Relleno de tráfico: Se utiliza para brindar protección contra ataques de análisis de
tráfico. El término relleno de tráfico se refiere a la generación de ejercicios de comunicación,
paquetes de datos, y de datos espurios (bastardos) dentro de dichos paquetes. Se suele basar
en incluir tráfico redundante protegido por mecanismos de confidencialidad.
g) Control de encaminamiento: Este mecanismo permite la selección dinámica o
preestablecida de rutas específicas para la transmisión de los datos. Se trata de localizar rutas
seguras y emplear con los mensajes un cierto nivel de seguridad.
h) Certificación (Registro): Mecanismo cuya función es asegurarse de ciertas
propiedades de los datos que se comunican entre dos o más entidades, entre los que
destacan su integridad, origen, tiempo o destino. La certificación la realiza una tercera
entidad de confianza (TTP), que es la que da testimonio de la autenticidad.
Mecanismos de seguridad generalizados:
a) Funcionalidad de confianza (Funcionalidad Certificada): Se trata de poner
en práctica un concepto que se utiliza para ampliar o extender otros mecanismos de
seguridad o para establecer su efectividad.
b) Etiquetas de seguridad: Mecanismo asociado directamente con los recursos
del sistema, ya que un nivel de seguridad puede implicar datos adicionales que se
asocian a los datos transmitidos o puede ser implícito, y su uso primordial se da en los
datos en tránsito. Se usa de forma específica para el nivel de seguridad.
c) Detección de eventos: Se trata de un mecanismo relevante para la seguridad
ya que su función es detectar violaciones aparentes de la seguridad.
d) Traza de auditoría de seguridad: Este mecanismo se encarga de la revisión y
examen independiente de los registros y las actividades del sistema para probar la
operatividad de los controles, asegurar el cumplimiento de las políticas y procedimientos
operacionales establecidos y recomendar los cambios adecuados en el control, política y
procedimientos.
e) Recuperación de seguridad: Se relaciona directamente con mecanismos
gestores de eventos y funciones de gestión, y se encarga de realizar acciones de
recuperación con base en las políticas de seguridad establecidas. Para la recuperación
hay 3 tipos de acciones de recuperación:
Inmediata (Ejemplo: Si alguien viola la política de seguridad lo desconecto al instante)
Temporales: Se consideran inválidas durante un corto periodo de tiempo (Ejemplo: No
poder realizar una acción hasta cambiar de departamento)
A largo plazo: (Ejemplo: Anotar a un elemento o persona a una lista negra)
Servicio
Nivel OSI
1 2 3 4 5 6 7
Autenticación
Autenticación de entidad par o
de la pareja
Autenticación del origen de los
datos
Control de acceso
Confidencialidad
Servicios de confidencialidad
orientados a conexión
Servicios de confidencialidad
orientados a no conexión
Servicios de confidencialidad
en campos seleccionados
Servicios de confidencialidad
de flujo de tráfico
Integridad
Servicios de integridad
orientados a conexión con
recuperación de datos
Servicios de integridad
orientados a conexión sin
recuperación de datos
Servicios de integridad de
campo seleccionado orientado a
conexión
Servicios de integridad no
orientados a conexión
Servicios de integridad en
campos seleccionados no
orientados a conexión
No repudio
Servicios de no repudio con
prueba de origen
Servicios de no repudio con
prueba de destino
*La capa de sesión no proporciona ningún servicio mientras que la de aplicación proporciona en todas.
*El servicio de confidencialidad orientado a conexión aparece reflejado en más capas.
SERVICIOS Y MECANISMOS DE SEGURIDAD EN EL MODELO OSI
Servicio
MECANISMO
Cifrado Firma Control
de
acceso
Integridad
de los
datos
Relleno
de
tráfico
Control
de
encaminam.
Certificad
o
Autenticación
Autenticación de entidad par o
de la pareja
Autenticación del origen de los
datos
Control de acceso
Confidencialidad
Servicios de confidencialidad
orientados a conexión
Servicios de confidencialidad
orientados a no conexión
Servicios de confidencialidad
en campos seleccionados
Servicios de confidencialidad
de flujo de tráfico
Integridad
Servicios de integridad
orientados a conexión con
recuperación de datos
Servicios de integridad
orientados a conexión sin
recuperación de datos
Servicios de integridad de
campo seleccionado orientado a
conexión
Servicios de integridad no
orientados a conexión
Servicios de integridad en
campos seleccionados no
orientados a conexión
No repudio
Servicios de no repudio con
prueba de origen
Servicios de no repudio con
prueba de destino
*No hay ningún mecanismo que pueda implementar todos los servicios.
*El mecanismo de cifrado es el que nos facilita el uso de más servicios, es decir, que el
cifrado sería la solución más oportuna para conectar redes seguras. Y en el otro sentido
está el control de acceso y al relleno de tráfico como los que menos servicios
complementan.
TEMA 2: IMPLANTACIÓN DE MECANISMOS DE
SEGURIDAD 2.1 - HERRAMIENTAS PARA EL MANTENIMIENTO DE LA INTEGRIDAD
DE LOS DATOS
2.1.1 - Copias de seguridad (backup)
Cuando se ha de realizar una copia de seguridad se ha de ponderar una serie de factores
como son:
La cantidad de datos que hay que copiar
El coste del medio físico en el que vamos a hacer la copia
El rendimiento del medio físico
La fiabilidad del medio físico
La facilidad del almacenamiento fuera de nuestras instalaciones
Dispositivos físicos:
Las cintas magnéticas: tienen gran capacidad, su coste no es muy elevado y son las
más habituales. Lógicamente no son medios de acceso directo. Si ocupamos más de una
cinta se puede utilizar lo que se llaman autocargardores y bibliotecas de cintas. Entre los
distintos tipos de cintas tenemos:
o DDS (Digital Data Storage)
o DAT (Digital Audio Tape)
o DLT (Digital Lineal Tape)
o LTO (Lineal Tape Open)…
Los medios ópticos:
o CD
o DVD
o Blu-ray…
Unidades de disco duro: Las copias suelen funcionar en unión a otros métodos (por
ejemplo una copia en cinta magnética). Cuando hablamos de copias en HDD tenemos que
recordar los métodos de almacenamiento que existen que son tres y muy empleados
actualmente:
o DAS (Direct Attached Storage): Almacenamiento de conexión directo. Es el método de
almacenamiento más sencillo. Se trata de que el medio esté conectado físicamente al sistema
del que vayamos a realizar la copia.
o NAS (Network Attached Storage): Almacenamiento de conexión por red. En este caso
las aplicaciones hacen las peticiones de los datos a sistemas de forma remota, mediante
protocolos de red como por ejemplo FTP. Si tenemos una red pequeña o de tamaño medio,
nosotros podemos utilizar esta opción para que la información sea almacenada en otra
ubicación en lo que llamaríamos una máquina virtual.
o SAN (Storage Area Network): Red de área de almacenamiento. Los dispositivos de
almacenamiento están conectados a una red de alta velocidad y resuelven las peticiones que
se realicen.
Medios de estado sólido: Son todos aquellos no volátiles, que no tienen partes
móviles. Son medios ideales para almacenar datos cuando la rapidez es lo más importante.
o Aceleración de bases de datos
o Edición de videos
o Las redes SAN…
Los dispositivos de este tipo que se emplean hoy en día son muy caros y todavía no están
muy desarrollados pero se espera que a corto plazo esta situación cambie (SSD).
COPIAS DE SEGURIDAD EN WINDOWS 7
Se puede realizar desde Mi equipo, botón derecho del ratón sobre el
disco/propiedades/herramientas/hacer una copia de seguridad ahora\Configurar copias de
seguridad o Panel de control \Copias de seguridad y restauración\Configurar copias de
seguridad y seguimos sus pasos. El problema de este sistema solo permite realizar copias
totales o completas.
Métodos para realizar copias de seguridad
Comunes:
Copias de seguridad completas (Full Backups)
Copias de seguridad diferenciales (Differential Backups)
Copias de seguridad incrementales (Incremental Backups)
Delta o copias de seguridad a nivel de bloque (Delta Block-level Backups)
Copias de seguridad espejo (copia simple) (Mirror Backup)
Otros métodos:
Parche binario (Binary Patch)
Sintético (Synthetic)
Hard Linked (vinculado)
Copias de seguridad completas
Copia de seguridad completa de todos los datos que el usuario selecciona a la hora de
configurar una tarea de respaldo.
Los ficheros copiados se colocan generalmente en un fichero único comprimido, para ayudar
a ahorrar espacio. El problema es que a menudo hay sólo unos pocos ficheros nuevos o
modificados, por lo que su realización supone una gran cantidad de almacenamiento adicional
y una pérdida de tiempo, además del desgaste extra en los discos duros y la cantidad de
ancho de banda que se utiliza para hacerlas.
Es mejor hacer una copia de seguridad completa de vez en cuando, y luego encontrar una
forma para copiar sólo los ficheros nuevos o modificados, de forma más frecuente.
Pero, si el volumen de datos de la copia de seguridad no es muy elevado (menos de 4 GB), lo
más práctico es realizar siempre copias totales ya que en caso de un desastre, tan solo se
ha de recuperar la última copia.
Ventajas y desventajas de copias de seguridad completas:
Una restauración más rápida de todos los ficheros
Ocupan espacio y requieren mucho tiempo para su realización. No son adecuadas para
copias de seguridad periódicas, como las que se realizan por hora o por día.
Copias de seguridad diferenciales
Copia de todos los ficheros que han cambiado desde la última copia de seguridad total que se haya realizado.
Ejemplo, si se hace una copia de seguridad total el día 1 de cada mes y una copia de seguridad diferencial el resto de
los días, cada copia diferencial guardará los ficheros que se hayan modificado desde el día 1. La ventaja es que se
requiere menos espacio que la copia total y que en el proceso de restauración únicamente se necesitará la última
copia total y la última copia diferencial, pues una copia diferencial anula a la copia diferencial anterior. Pero se
consume más tiempo en realizar la copia y también más espacio, que en el caso de una copia incremental.
Si el volumen de datos de la copia de seguridad es muy elevado (mayor de 50 GB), pero el volumen de datos que se
modifican no es elevado (sobre 4 GB), lo más práctico es realizar una primera copia total y posteriormente realizar
siempre copias diferenciales. Así, en caso de desastre, tan solo se ha de recuperar la copia total y la última
diferencial. Periódicamente se debe realizar una copia total y así empezar de nuevo.
Ventajas y desventajas de copias de seguridad diferencial:
Más rápida para restaurar que en otros métodos
Redundancia de datos
Cada diferencial posterior crece de manera significativa hasta que se hace necesario
crear una copia de seguridad completa
Copias de seguridad incrementales
Se hace una copia de seguridad sólo de los ficheros que han cambiado desde la última copia de seguridad realizada.
Ejemplo, si se hace una copia de seguridad total el día 1 de cada mes y una copia de seguridad incremental el resto
de los días, cada copia incremental solo guardará los ficheros que se hayan modificado ese día. Si tenemos que
realizar la restauración de ficheros ante un desastre, debemos disponer de la copia total y de todas las copias
incrementales que se hayan realizado desde la copia total.
Si el volumen de datos de nuestra copia de seguridad es muy elevado (mayor de 50 GB) y el volumen de datos que
se modifican también lo es, las copias diferenciales ocuparán mucho espacio, por lo tanto en este caso lo más
práctico será realizar una primera copia total y posteriormente realizar siempre copias incrementales, ya que son
las que menos espacio ocupan. El problema es que en caso de desastre debemos recuperar la última copia total y
todas las incrementales realizadas desde que se hizo la última copia total. En estos casos, conviene hacer copias
totales más a menudo para no tener que mantener un número muy elevado de copias incrementales.
En grandes compañías donde la realización de copias de seguridad está perfectamente planificada, se suelen utilizar
sistemas mixtos. Por ejemplo en un caso típico se realizarían las siguientes tareas:
Todos los días 1 de cada mes, a las 23:00 horas: copia de seguridad total
Todos los viernes a las 23:00 horas: copia de seguridad diferencial desde la copia de
día 1
Todos los días (excepto los viernes y el día 1) a las 23:00 horas: copia de seguridad
incremental desde la copia del día anterior.
Con ésta planificación nos aseguramos disponer de copia de seguridad diaria. En caso de
desastre deberíamos recuperar la copia total, la última diferencial y todas las incrementales
desde la última diferencial.
Ventajas y desventajas de copias de seguridad incrementales:
Se pueden completar más rápido que los respaldos (backup) diferenciales, debido a
que hay menos datos redundantes que se copian
Las copias de seguridad incrementales son más pequeñas que las de respaldos
diferenciales
El número de copias de seguridad incrementales sucesivas que se puede hacer entre
copias de seguridad completas, sin dejar de ser manejable, es mucho mayor que con las
diferenciales
Se puede tardar mucho más tiempo para hacer las restauraciones completas de copias
de seguridad diferenciales, porque hay que fusionar todos los ficheros individuales, uno por
uno con la copia de seguridad completa.
Una copia de seguridad incremental puede fallar si una de las copias de seguridad en
la secuencia se pierde o se daña
Delta o copias de seguridad a nivel de bloque
El término "delta", cuando se combina con otros términos como "copia de seguridad Delta",
“Copia de seguridad de Delta Block" o " Copia de seguridad Delta-Style", por lo general, se
refiere al mismo método de copia de seguridad básica. Se puede describir Delta como
tecnología a nivel de bloque, mientras que las copias incrementales y las
diferenciales son tecnologías a nivel de fichero.
Es importante tener en cuenta que las técnicas Delta sólo se aplican a los ficheros
modificados, no a los ficheros nuevos. El fichero modificado se divide en bloques de tamaño
fijo y los bloques se comparan con el fichero original (el tamaño de bloque que se maneja
depende del programa en particular, o es un tamaño elegido por el usuario, oscilando
generalmente entre 1 y 32 kilobytes).
Hay Delta diferencial y Delta incremental, y trabajan con el mismo principio que las copias de
seguridad diferencial y las copias seguridad incrementales explicadas anteriormente, pero a
un nivel mucho más granular. Del mismo modo, cada tipo de Delta heredaría el mismo tipo
de ventajas y desventajas.
Es una tecnología especialmente ventajosa cuando se realizan copias de seguridad de los
ficheros inmediatamente después de creados o modificados, lo que se conoce como copia de
seguridad en tiempo real o protección continua de datos, y también cuando se utiliza para los
ficheros de copia de seguridad en redes con ancho de banda limitado o en servidores
remotos, como el almacenamiento en línea.
Ventajas y desventajas de copias de seguridad estilo Delta:
Son muy rápidas debido a la pequeña cantidad de datos que se transfiere
Produce una redundancia mucho menor, y las copias de seguridad son marginalmente
menores que las producidas por las copias de seguridad incrementales o diferenciales,
reduciendo drásticamente la demanda de almacenamiento y ancho de banda
Son más lentas para restaurar los ficheros individuales, porque éstos deben ser
reconstruidos
Copias de seguridad espejo
Son, básicamente, el tipo más sencillo de copia de seguridad. Los ficheros replicados en
general permanecen en el mismo estado en el que se encuentran en la fuente, no se
comprimen.
Las copias de seguridad espejo, sin compresión, son apropiadas para usar cuando se realiza
una copia de seguridad de ficheros ya comprimidos. Por ejemplo, ficheros de música en
formato MP3 o WMA, imágenes en formato jpg o png, videos en formato dvix, mov, flv, y la
mayoría de programas de instalación.
Si se incluyen estos ficheros en una copia de seguridad normal que ya aplica compresión, se
notará en la lentitud del proceso, obteniendo una compresión adicional poco considerable. Lo
mejor es establecer por separado las tareas de respaldo de ficheros comprimidos y de los
ficheros no comprimidos, utilizando programas de respaldo que permitan tal diferenciación.
Ventajas y desventajas de copias de seguridad espejo:
Son mucho más rápidas si se trabaja con ficheros comprimidos
Dado que los ficheros duplicados no se colocan en ficheros individuales, hay menos
preocupación por su corrupción
Dado que las copias de seguridad espejo por lo general no utilizan la compresión,
pueden requerir una gran cantidad de espacio de almacenamiento, a menos que se empleen
también otras técnicas como hard linked
Funciona bastante bien para la clonación de discos, donde todo se traslada a una
unidad de reemplazo, pero no es un solución muy práctica para la copia de seguridad
periódica de un sistema
Copias de seguridad parche binario (FastBit)
Ésta tecnología fue desarrollada originalmente, como una manera para que los
desarrolladores de software pudiesen actualizar fácilmente sus programas en los clientes a
través de Internet, mediante el envío de "parches" que reemplacen las partes de los ficheros
que necesitan modificación. Recientemente se ha comenzado a adaptar ésta tecnología a las
copias de seguridad.
El ejemplo más relevante es una tecnología de copia de seguridad denominado FastBittm.
Las copias de seguridad de parches binarios funcionan de manera similar a Delta, la principal
diferencia es que son aún más granulares: Delta trabaja a nivel de bloque, mientras que los
parches binarios trabajan a nivel binario, copiando sólo los bytes del código binario que han
cambiado.
Ventajas y desventajas de copias de seguridad de parches binarios:
Elimina virtualmente toda la redundancia de datos
Utiliza menos ancho de banda que Delta
No hay información acerca de cómo se maneja la reconstrucción de ficheros y qué tan
eficiente es
Copias de seguridad completas sintéticas
(El término sintético se refiere a que no es una copia de seguridad creada a partir de datos
originales)
Copia de seguridad completa sintética es, más que un método de respaldo, una
tecnología que se puede aplicar a uno de los métodos anteriores, para hacer una
restauración más eficiente y en menos tiempo.
Se suele aplicar sólo en sistemas de respaldo tipo cliente-servidor: un equipo cliente puede
realizar una copia de seguridad por cualquier método, y luego transferirla al servidor. En
algún momento, el servidor combina varios ficheros individuales de copia de seguridad, y
forma la copia de seguridad completa sintética. Una vez realizada la copia de seguridad
completa inicial, el equipo del cliente sólo tiene que realizar copias de seguridad de ficheros
nuevos o modificados.
Los beneficios de este enfoque son de dos tipos. En primer lugar, la velocidad de copia de
seguridad de tecnologías como la diferencial, no se degrada con el tiempo debido al tamaño
creciente de los ficheros acumulativos, puesto que una copia sintética se hará sobre una base
regular. En segundo lugar, cuando una restauración completa debe hacerse en una máquina
cliente, no se necesita hacer la reconstrucción de los ficheros o partes de ficheros, dado que
la misma ya ha sido realizada por el servidor, agilizando el proceso en el cliente.
Ventajas y desventajas de copias de seguridad completas sintéticas:
Requieren menor cantidad de tiempo para realizar la copia de seguridad
Mejoran la eficiencia de restauración (menos tiempo, menos coste)
Copias de seguridad hard linked, Hardlink o vinculadas
Cierto software de respaldo, tiene la capacidad de emplear varios enlaces fijos para preservar
el espacio, cuando se quieren guardar varias copias de seguridad completas espejo del
mismo conjunto de ficheros.
Para entender que es un enlace fijo, hay que considerar cómo se almacenan los ficheros en
un disco duro. Cuando se graba un fichero, los datos físicos se pueden escribir en cualquier
lugar en el disco. A continuación, el sistema de ficheros hace una referencia o enlace fijo a
esos datos físicos con el nombre del fichero especificado. Con algunos sistemas de ficheros,
es posible crear más de una referencia a esos datos físicos. Usando múltiples enlaces fijos, es
posible asignar cualquier número de nombres de fichero en carpetas diferentes, a los mismos
datos físicos.
Al utilizar los programas de copia de seguridad que apoyan la creación de vínculos fijos para
hacer varias copias de seguridad de los mismos ficheros, el programa construirá vínculos fijos
para todos los ficheros que no han cambiado. Por ejemplo, si se crean dos copias de una
carpeta que contiene 100 MB de datos, normalmente terminan usando 200 MB de espacio.
Con enlaces fijos sólo se utilizarían 100 MB de espacio. Si se ha cambiado un fichero de 2 MB
antes de hacer la segunda copia utilizando los enlaces fijos, las dos carpetas consumirán
102MB de espacio: la primera carpeta contendrá el fichero original de 2 MB, mientras que la
segunda contendrá la modificación.
El explorador de Windows no informa del espacio del fichero, como cabría esperar cuando se
utilizan enlaces fijos. Si un fichero de 100 MB tiene dos enlaces fijos, ambos enlaces se
considerará como que consumen 100 MB de espacio para un total de 200 MB utilizados. Sin
embargo, el espacio ahorrado por los enlaces fijos se refleja en la cantidad de espacio libre
en el disco, sólo 100MB se han consumido.
Cabe mencionar que si se desea eliminar una de las copias de seguridad que contienen los
enlaces fijos, no es un problema pues los otros enlaces fijos no se verán afectados. El fichero
físico en el disco sólo es eliminado cuando todos los enlaces fijos se eliminan. También los
enlaces fijos sólo pueden existir dentro del mismo volumen, no pueden extenderse a lo largo
diferentes particiones o discos. Los sistemas de ficheros NTFS, admiten enlaces fijos,
mientras que los FAT no.
Ventajas y desventajas de copias de seguridad vinculadas:
Reducen el ancho de banda WAN y el espacio de almacenamiento necesario
Programas especializados en copias de seguridad
Areca Backup (http://www.areca-backup.org/)
Es un software de backup de fuente libre y abierta. Soporta los típicos métodos de backup:
completa, diferencial, incremental y espejo, con varios modos de almacenamiento
adicionales, incluyendo el modo delta block.
http://cert.inteco.es/software/Proteccion/utiles_gratuitos/Utiles_gratuitos_listado/?idLabel=2
230218&idUser=&idPlatform
2.1.2 – TOLERANCIA A FALLOS LÓGICA
¿Qué es la tolerancia a fallos? La tolerancia a fallos supone implementar unas técnicas que
permitan recuperarse rápidamente ante un fallo. Las hay de dos tipos:
Software (Tolerancia a fallos lógica): Normalmente se emplean los niveles RAID
Hardware (Tolerancia a fallos física):
RAID
N
i
v
e
l
Técnica usada Tol
er
an
cia
0 División en disco sin
paridad
Nin
gu
na
*
1 Copia o duplicación Bu
en
a
2 Copia de disco con
comprobación de errores
Mu
y
alt
a
3 División a nivel de byte
con disco de paridad
dedicado
Bu
en
a
4 División en bloques con
disco de paridad dedicado
Bu
en
a
5 División en bloques
paridad distribuida
Bu
en
a
6 División en bloques con
dobles datos distribuidos
Mu
y
bu
en
a
7 Propietario
1
0
Combina RAID 0 y RAID
1
Bu
en
a
5
0
Combina RAID 1 y RAID
5
Ext
re
ma
da
me
nte
alt
a
BÁSICOS (IMPORTANTE CONOCERLOS BIÉN):
RAID 0 (data striping) (datos divididos)
Los datos se distribuyen entre varios discos en bloques, sin guardar información sobre la
paridad
Raid 0
RAID 1 (data mirroring) (datos reflejados)
Los datos se copian directamente en una segunda unidad de disco duro
Raid 1
RAID 2
Los datos se distribuyen entre varios discos de bit en bit, utilizando corrección de error
(generalmente tipo Hamming) en lugar de paridad; éste nivel ha desaparecido
RAID 3
Los datos se dividen entre varios discos en bytes, con un disco utilizado para almacenar la
información sobre paridad
Raid 3
RAID 4
Los datos se dividen entre varios discos en bloques de datos, con un disco utilizado para
almacenar la información sobre paridad
RAID 5
Los datos se dividen entre varios discos en bloques de datos, con la paridad distribuida por
igual entre todos los discos
Raid 5
Otros estándares RAID propietario o variaciones de los niveles básicos:
RAID 6
Los datos se dividen entre varios discos (mínimo 4) en bloques de datos, con dos conjuntos
de bloques de paridad distribuidos por igual entre todos los discos
RAID 0 + 1
Proporciona redundancia por escribir todos los datos sobre cuatro o más unidades
Raid 0 + 1
RAID 10
Duplica los datos en dos arrays idénticos de unidades RAID 0
Raid 10
RAID 50
Se reproducen en espejo dos conjuntos RAID 5
2.1.2.1 – ARCHIVADO
El significado de archivado depende del contexto en el que se use, en nuestro caso nos
referimos a borrar el almacenamiento online para ubicarlo en dispositivos de almacenamiento
a largo plazo.
2.1.2.2 - CUSTODIA
Hace referencia al proceso de almacenamiento de la información copiada y su disponibilidad.
Cuando se produce un desastre se pone en marcha un protocolo de actuación que, entre
otras cosas va a implicar saber que datos se han de restaurar y sobre todo donde están
organizados.
2.1.2.3 - HSM
HSM (Hierarchical Storage Management) Administración jerárquica del almacenamiento. Es
un sistema automatizado de almacenamiento y de recuperación de ficheros entre el
almacenamiento online y el almacenamiento de datos de uso frecuente. Está relacionado con
el archivado, pero presenta beneficios y también riesgos adicionales.
2.1.2.4 - CHEQUEO DE PARIDAD
Se utiliza para asegurar que los fallos de memoria inesperados no tengan como consecuencia
la caída del servidor o la perdida de integridad de los datos.
2.1.2.5 - PLANIFICACIÓN ANTE UN DESASTRE
Un desastre es una situación que requiere la puesta en práctica de un protocolo de actuación.
Este protocolo tiene que conseguir recuperar el sistema desde cero. Partimos lógicamente de
unas copias de seguridad, las cuales han de estar perfectamente localizables de cara a poder
instaurar una serie de servicios que han de estar disponibles de forma inmediata. Los
servicios que han de estar disponibles de forma inmediata son:
Las bases de datos
Los servidores de aplicaciones
Los servidores de administración del sistema
La Web
Los directorios
Almacenes de datos
Cuando se trata de diseñar un plan de recuperación de desastres se han de conocer las
necesidades de la organización, y para ello, se ha de realizar:
Una evaluación de las vulnerabilidades (Ejemplo: ¿qué es vulnerable a un incendio, y a
una inundación?)
Una evaluación de riesgos (Se suele hacer una lista con los 10 desastres potenciales
más importantes y los efectos asociados)
La concienciación de la directiva
Establecer un grupo de planificación que se encarguen de desarrollar e implementar
las estrategias que configurarán ese plan de desastres
Priorización (Para cada escenario posible de desastre asignar prioridades)
2.1.2.6 - ANÁLISIS PREDICTIVO DE FALLOS
No es normal que los fallos aparezcan de forma espontánea, lo que es normal es que haya
síntomas previos que si fuesen observados nos hubieran permitido evitarlos.
2.1.3 - TOLERANCIA A FALLOS FÍSICOS
Cambio en caliente: Un cambio en caliente consiste en utilizar unidades que cuando
se averían se pueden cambiar sin necesidad de desconectar el equipo.
Repuesto en caliente: Consiste en una variante de la anterior en la que las unidades
substitutas ya están instaladas de forma que cuando falle una unidad el cambio se realiza
automáticamente.
SAI: Sistema de Alimentación Ininterrumpida (inglés UPS, Uninterruptible Power
Supply) Este es un dispositivo que me permite proteger las máquinas más importantes del
sistema contra picos de tensión o cortes eléctricos.
o Componentes:
Batería: trabaja con corriente continua
Cargador de Batería
Inversor de corriente
Existen SAI de diversos tipos.
2.1.4 – IMPLEMENTACIÓN DE TÉCNICAS DE SEGURIDAD
Cuentas de usuarios sin privilegios: Las cuentas de usuario solo deben tener los
privilegios mínimos y necesarios
No instalar programas sospechosos
Mantener el Sistema Operativo actualizado
Protección contra el Malware: Destacamos protección antivirus, los más habituales
son:
o Los virus acompañante
o Los virus de macro
o Los virus polimórficos: modifican su apariencia cada vez que se reproducen
o Los virus camuflados
*Ver lista de tipos de malware
Relacionado con el navegador:
o Utilizar Navegadores Seguros
o Configurarlos Adecuadamente
o No navegar por sitios sospechosos
Utilizar contraseñas seguras
Utilizar cortafuegos (Firewall): Discriminan paquetes en función de una serie de reglas.
Balanceo de carga: Se puede efectuar vía hardware o software, consiste en repartir las
peticiones que hacen los clientes a distintos servidores que estén conectados, para ello utiliza
unos algoritmos que se llaman “Round Robin” que permite repartir la carga de forma
equilibrada. Además nos va a permitir direccionar el tráfico en un momento determinado
hacia un servidor como consecuencia del fallo en otro de ellos.
Ejemplos de balanceadores de carga:
o ISA server
o NAT32 Windows Software Router: En el ejemplo que nos muestra aparece una
unificación de 2 o más conexiones con salidas hacia internet en una sola. De esta forma
podemos repartir la carga en función de la velocidad, fiabilidad, etc.
o Kerio Winrouter
Llevar registros de eventos y revisarlos: Analizándolos podíamos averiguar:
o Los intentos de entrada
o Conexiones y desconexiones de recursos
o Terminación de la conexión
o Desactivación de clientes
o Apertura y cierre de ficheros
o Modificaciones realizadas en los ficheros
o Creación y borrado de directorios
o Modificación de directorios
o Modificaciones de las contraseñas…
Utilización de un sistema de ficheros seguro: Como por ejemplo el NTFS
Utilizar equipos sin disco
Los factores humanos: De nada nos vale controlar factores ambientales (temperatura,
humedad, ventilación), si las personas que van a hacer uso de ese sistema no adoptan unas
medidas lógicas de comportamiento como: Llevar plantas, Llevar cuadros, Vasos de bebidas,
Estufa debajo de los pies, Cajas o muebles de almacenamiento
Los factores ocultos: Son aquellos que no vemos pero lógicamente pueden provocar
fallos de seguridad, como por ejemplo el tendido eléctrico.
Los factores industriales: Ruido, Interferencias electromagnéticas, vibraciones, los
entornos corrosivos o explosivos…
Cifrado: Hacer que la información no sea legible, para ello tenemos herramientas
como:
o Truecript: Pasos:
Crear volumen nuevo
Crear un contenedor de ficheros encriptado
Tipo de volumen: Estándar
Ubicación del volumen
Algoritmo: Dejamos el valor por defecto
Tamaño de volumen: 1 MB
Contraseña
Se mueve el cursor en Aleatorio para conseguir una seguridad mayor unos 30
segundos y se acepta
Volumen creado
Una vez creado el volumen lo que tenemos es que montarlo, seleccionamos una letra
de unidad que no se está utilizando, se selecciona el fichero y se da “montar”.
Imágenes de respaldo: Las imágenes son ficheros que contienen la información de un
disco, de una partición o de un dispositivo de almacenamiento. Utilizaremos programas como
por ejemplo:
o Drive Image
o Nero
o Acronis
o Norton Ghost…
2.1.5 - TOLERANCIA A FALLOS FÍSICOS
El análisis forense está relacionado con técnicas de investigación que permiten reconstruir
una secuencia de eventos. Los dos aspectos más importantes del análisis forense se basan en
lo que la gente o usuarios tienen en sus propios ordenadores en primer lugar y lo que hacen
en otros ordenadores de forma remota en segundo lugar.
En cuanto a lo que tenemos en el ordenador cubriría:
Recuperar ficheros borrados
Buscar cierto tipo de ficheros
Buscar ciertas frases dentro de los ficheros
Decodificar…
En los ordenadores de forma remota cubre:
La lectura de los ficheros de eventos (log)
Reconstruir las acciones realizadas
Rastrear la fuente…
Existen programas comerciales que podemos instalar para tal fin, o bien utilizar las
herramientas propias del sistema operativo. Al respecto indicar que existen páginas web con
contenidos para comparar los datos obtenidos como por ejemplo:
www.samspade.org en la sección de “Library” y ahí se podrá ver como sacar
información de las cabeceras de los e-mails, ver como son los falsificados, etc.
http://www.dshield.org/ en la que se podrá analizar los ataques que sufre el firewall y
obtener patrones (signatures)
TEMA 3: INTRODUCCIÓN A LAS TÉCNICAS
CRIPTOGRÁFICAS
Criptología = Criptografía (técnicas) + Criptoanálisis (métodos)
Criptología proviene de Kryptos (oculto) y logos (palabras), por tanto podemos
decir que se trata de la ciencia de las palabras ocultas. Se trata de cifrar y descifrar
la información mediante unas técnicas que van a permitir el intercambio de
mensajes de una forma más segura.
La criptografía, a partir de una información original llamada texto plano o texto
llano (plain text), efectúa una conversión que lo hace ilegible (texto cifrado).
El criptoanálisis efectúa el paso contrario, descifrando el texto cifrado para
obtener el texto plano.
HISTORIA
El uso de la criptología deriva de tiempos antiguos.
Tras la caída del Imperio Romano y hasta el Renacimiento, la criptología sólo
registra avances significativos en los califatos islámicos, en particular el abasí. En
su capital, Bagdad, nace en el siglo IX d. C, el moderno criptoanálisis, al
descubrirse de que cada lengua tiene una frecuencia característica de aparición de
sus letras.
En 1.480 G. di Lavinde, secretario oficial de las comunicaciones secretas del Papa,
escribe su “Trattati in cifra”. Su sistema de cifrado consiste en utilizar determinados
códigos para sustituir palabras del mensaje en claro. Éste tipo de cifrado era
bastante usado en el siglo XV y XVI.
Por esa época, aparece el primer secretario de cifra conocido en España, Miguel
Pérez Alzamán, consejero de los reyes Isabel y Fernando, quién adopta un sistema
de criptografía que transforma el texto en números romanos.
Pero es Felipe II quién en 1556, introduce uno de los mejores sistemas de cifrado
de la época (lo cual no impidió que Inglaterra conociese por anticipado los planes
de la Armada invencible), poniéndolo bajo la responsabilidad del secretario de cifra
Luis Valle de la Cerda. Su sistema suponía la existencia de la Cifra General, para
sus comunicaciones con secretarios, embajadores y militares de alta graduación, y
de la Cifra Particular, para sus comunicaciones más confidenciales para con los
anteriores.
En Inglaterra, Isabel I contaba para éstos menesteres con Francis Walsinghan, y en
Francia, Enrique III y Enrique IV, contaban con François Viète.
Donde más se avanzó fue entre la primera y segunda guerras mundiales, y fueron
donde empezaron a aparecer las máquinas para el cifrado de información como por
ejemplo ENIGMA de los alemanes. Con la aparición de los ordenadores, esa
necesidad de asegurar la información se acrecentó en el momento en el que los
instalábamos en red. Si bien con los ordenadores se mejoraron muchos los
métodos existentes para cifrar también se hacía para descifrar.
Hoy en día muchos de los métodos que se empleaban para el cifrado de la
información han quedado inoperantes pero su estudio nos permite comprender a lo
que tenemos hoy en día.
ESCRITURA SECRETA
Se plantean dos grandes apartados:
Criptografía
Esteganografía (se verá más adelante)
La criptografía se llevará a cabo con dos técnicas:
o Sustitución: La técnica de substitución supone cambiar el significado
de los elementos del mensaje (letras, dígitos o símbolos), es decir,
consiste en que un carácter o un conjunto de caracteres se
substituya por otro carácter u otro conjunto de caracteres. Se podrá
realizar con:
Códigos: cuando la substitución se haga a nivel de palabras o
frases.
Cifras: cuando hacemos substitución a nivel de letras.
Estrictamente hablando cifrar es ocultar un mensaje utilizando cifra y
codificar sería ocultar un mensaje utilizando un código. Descrifrar si el
mensaje está cifrar y Descodificar si está codificado. Lo que sucede es que
en la realidad no se suele realizar esta distinción.
o Transposición: Supone reordenar los elementos del mensaje, es
decir, se cambia el orden de los caracteres originales del mensaje.
A su vez podemos hacer otra clasificación distinguiendo:
o Cifrado en bloque: el texto se divide en bloques de un determinado
tamaño y cada bloque se cifra de forma independiente.
o Descifrado de flujo: en lugar de realizarlo bloque a bloque se realiza
bit a bit, byte a byte, carácter a carácter…
CÓDIGOS Y CIFRAS EN LA LITERATURA
Código de la Biblia: En 1997 apareció un libro con dicho título de Michael Drosdin
y su teoría es que en la biblia hay mensajes ocultos que se pueden descubrir
buscando secuencias de letras equidistantes (Equidistant Letters Sequency- ELS o
EDLS). El texto es muy amplio por tanto variando el lugar inicial y el número de
saltos no es de extrañar que puedan salir frases con sentido.
Manuscrito Voynich
Matias Sandorf (Las aventuras de los hombres danzantes)
El escarabajo de oro:
Los papeles de Beale
MÉTODOS DE SUBSTITUCIÓN
Monoalfabética-Monográfica
o Atbash (espejo): es un método de substitución monoalfabética (un
carácter se substituye siempre por otro, por lo tanto el mensaje
original y el cifrado tendrán la misma longitud) utilizada por los
hebreos. Consiste en substituir un carácter por el carácter opuesto en
el alfabeto. Ejemplo: ROSA ILHZ
o Cifrado de Cesar: es un método de substitución monoalfabética que
aparece en el siglo I antes de Cristo y consiste en desplazar 3
espacios hacia la derecha los caracteres del texto plano. Ejemplo:
ESTO ES UN SECRETO HVWR HV XQ VHFUHWR. Este sistema se
puede generalizar, por ejemplo: MFMCGQZ TAK MX QZQYUSA –
ATAQUEN AL ENEMIGO clave= 12.
Monoalfabética-Poligráfico
En un criptosistema poligráfico los textos en claro se dividen en bloques con
igual número de letras. A continuación, cada uno de estos bloques se
reemplaza por otro de signos del alfabeto de cifrado, siguiendo las reglas
que indique el criptosistema y haciendo uso de la clave. La concatenación de
los bloques que resultan, es el texto cifrado. Los bloques de texto en claro
no tienen por qué tener la misma longitud que los del texto cifrado, aunque
es común que ello suceda.
Tal longitud suele ser un número pequeño; si es dos, el cifrado se dice
digráfico; si es tres, trigráfico; etc..
Es decir, que en lugar de sustituir una letra por otra, la sustitución
poligráfica permite sustituir digramas, trigramas, etc. de letras, al objeto de
destruir las frecuencias de los monogramas, cifrando un n-grama de una
vez, con lo que se consigue una mayor seguridad.
Playfair: Inventado por Charles Wheatstone en 1854, para comunicaciones
telegráficas secretas. Fue utilizado por el Reino Unido como cifra de campo
en la guerra de los Boer (Imperio Británico contra los colonos de origen
holandés en Sudáfrica) y en la Primera Guerra Mundial. También lo utilizaron
varias armadas como cifra de emergencia en la Segunda Guerra Mundial.
Toma su nombre del científico Lyon Playfair, primer barón Playfair de St.
Andrews, quien lo dio a conocer al gobierno británico.
Es el primer criptosistema poligráfico, en concreto de cifrado de sustitución
digrámica, en el que la clave viene dada por una matriz de 5 x 5, en la que
se distribuyen 25 letras del alfabeto, omitiéndose las letras J y Ñ. Al objeto
de poder memorizar fácilmente dicho cuadro, se recurre al uso de una
palabra clave, que se sitúa en las primeras filas del cuadro, eligiéndose dicha
palabra sin letras repetidas. A continuación de ella, se sitúan el resto de las
letras del alfabeto que no están en la palabra clave.
Luego se divide el mensaje en pares de letras o dígrafos, m1 y m2, y se
siguen las siguientes reglas:
1. Si m1 y m2 están en la misma fila, c1 y c2 son los situados a su derecha
2. Si m1 y m2 están en la misma columna, c1 y c2 son los situados a
continuación en la columna (de arriba abajo, circularmente)
3. Si m1 y m2 están en distinta fila y columna, se toman los de la diagonal
opuesta
m1 c1
c2 m2
4. Si m1 = m2 se inserta un carácter sin significado, por ejemplo X, entre
m1 y m2 para evitar la repetición de éstos
Si hay un número impar de letras se añade al final del texto en claro,
otra sin significado
*Usando el cuadro de playfair y usando la palabra CHISME se cifre el
siguiente texto: “La fuente del texto”
Cifrado de Hill: Debe su nombre al Lester S.Hill quién en 1929 propone
usar las reglas de el álgebra de matrices en criptografía. Es un método de
substitución monoalfabético y poligrámico.
Pigpen (no se va a ver, usado por los templarios…)
…
Criptoanálisis para cifrados Monoalfabéticos
Pretende descifrar un texto que tenemos cifrado.
Fuerza bruta: Consiste en probar todas las posibilidades. Ejemplo: CESAR
Análisis de frecuencias: Consiste en determinar la frecuencia de las letras
del texto cifrado y tratar de buscar su equivalente a letras cuya frecuencia
es similar en el texto original.
E - 16,78% R - 4,94% Y - 1,54% J - 0,30%
A - 11,96% U - 4,80% Q - 1,53% Ñ - 0,29%
O - 8,69% I - 4,15% B - 0,92% Z - 0,15%
L - 8,37% T - 3,31% H - 0,89% X - 0,06%
S - 7,88% C - 2,92% G - 0,73% K - 0,00%
N - 7,01% P - 2,77% F - 0,52% W - 0,00%
D - 6,87% M - 2,12% V - 0,39% -
Método de la palabra probable: Por lo general los textos incluyen unos
vocablos que suelen ser frecuentes en el contexto en el que se sitúan, por
ejemplo, si se trata de órdenes militares hay ciertas palabras que se puede
considerar fija su existencia o aparición. Si se localiza una de esas palabras,
tratamos de desentrañar el resto.
Cualquiera que sea la técnica utilizada nos dará pie a diferenciar
distintos niveles de seguridad, así tendremos:
o Criptosistemas incondicionales: si es seguro frente ataques con tiempo y
recursos limitados
o Criptosistemas Computacionales: es un sistema que es seguro cuando la
información es más valiosa que el esfuerzo y por ello el tiempo dedicado a
desentrañarlo está en consonancia a ello.
o Criptosistemas Probables: se trata de un sistema donde no se demuestra
que no sea inseguro
o Criptosistemas Condicionales: si es seguro mientras no se tiene recursos
suficientes para atacarlo.
Criptoanálisis para cifrados Monoalfabéticos
Polybius: NO
El cifrador de Polybios o cifrado bífido
Siglo II a.C.
Polybio era miembro de la Liga Aquea dirigida por Filipémenes, que fue
derrotada por los romanos en Pidna. Fue llevado como rehén a Roma, para
ser maestro de Escipión Emiliano. Presenció la destrucción de Cartago, y
posiblemente estuvo en el sitio de Numancia.
El cifrador, que es el cifrador de sustitución más antiguo que se conoce, fue
realizado en Grecia y usaba el alfabeto Griego en su versión original, aunque
se ha adaptado a los demás alfabetos. Se utilizó en los siglos XIX y XX por
los nihilistas (negación de toda creencia) rusos, y ha servido de base para
otros sistemas de cifrado.
Consiste en tener una tabla de 5 x 5, que debía ser secreta y solo la
conocerían el emisor y el receptor del mensaje, en cuyos ejes se ponían
diferentes combinaciones de letras o números, y en el interior de la tabla se
escribían las letras del alfabeto. Al cifrar un mensaje, las letras se sustituían
por lo que indicaban las coordenadas en la tabla.
El receptor del mensaje debería tener la misma tabla para poder descifrarlo.
Al reducir el número de símbolos utilizados para la codificación, hace su
análisis más difícil.
Alberti o cifrado de disco:
Leone Battista Alberti inventó el primer artificio de cifrado: el cifrado de
disco. Realilzó un manuscrito de 25 páginas (Modus scribendi in ziferas,
1.466)que establecía un cifrado que él consideraba “digno de reyes”.
Modus scribendi in ziferas, 1.466:
“Hago dos discos con dos láminas de cobre. Uno, el mayor, será fijo y el otro
móvil. El diámetro del disco fijo será superior en un noveno al disco móvil.
Divido la circunferencia de los discos en 24 partes iguales llamadas sectores.
En cada uno de los sectores del disco grande escribo en orden alfabético
normal una letra mayúscula roja: primero la A, seguida de la B, después la
C, etc, omitiendo H y K que no son indispensables
Como en latín no existen las letras J, U, W, Y, rellena por este método
solamente 20 sectores. En los otros cuatro escribe los números 1, 2, 3, 4”.
Prosigue con su relato de como rellenar el disco pequeño:
“... una letra minúscula, pero no en su orden normal como en el disco fijo,
sino en un orden incoherente. De esta forma se puede suponerse que la
primera letra será la a, la segunda la g, tercera la q y así hasta rellenar los
24 sectores, porque el alfabeto latino consta de 24 caracteres, siendo el
vigésimocuarto & (et). Efectuadas estas operaciones, se coloca el disco
pequeño sobre el grande de modo que una aguja pasada por los dos centros
sirva como eje común alrededor del cual girará el disco móvil”.
¿Cómo determinamos donde coincidir esos discos? Tanto el emisor como el
receptor deben tener discos idénticos y ponerse de acuerdo en una letra del
disco móvil. Suponemos que la letra es “k”. Para cifrar el emisor elige una
letra en el disco exterior y esa letra la va a escribir en mayúsculas al
comienzo del texto para que el receptor sepa dónde situar la “k”.
EJERCICIO 1:
Dado el siguiente disco y el siguiente nomenclátor “Felipe II 123” “rey es 124”
“Walsinghan es 122”. Cifren el siguiente mensaje: “Walsinghan muerto informad al
rey Felipe II”. NOTA: Cada 10 letras descifradas gire el disco externo 2 posiciones
en el sentido de las agujas del reloj.
Disco 1
1 2 3 4 A B C D E F G I L M N O P Q R S T V X Z
b a c e g k l n p r t v z & x y s o m q i h f d
SOLUCIÓN:
“BAA &HPMIY VSVOIYLR LX CKN GKL”
EJERCICIO 2:
Dado el siguiente disco:
1 2 3 4 A B C D E F G I L M N O P Q R S T V X Z
b z x s f & q d c g k n h r m e v l t o a i y p
Siendo su posición inicial la de coincidencia entre el número 1 del disco
exterior y el & en el interior cifre el siguiente mensaje: “El disco de Alberti es
el primer cifrador polialfabético conocido”
SOLUCIÓN:
“RL HVBNA HR GLKRPZV RB RL IPVTRP NVMPGHAP IALVGLMGKRZVNA
NAOANVHA”
Cifrado de Trithemius
Alberti no logró desarrollar su concepto y convertirlo en un sistema de
codificación plenamente formado. Basándose en su idea original, Johannes
Trithemius, monje benedictino alemán nacido en 1462, desarrolló un método
polialfabético de sustitución, con una variante llamada llave progresiva.
En 1499 escribió su obra Steganografía (ocho volúmenes), que circuló de
forma manuscrita por toda Europa y terminó siendo prohibido por la Iglesia
Católica en 1609. En él figuran también algunas formas de Criptografía. A
ésta materia consagró un libro de seis tomos que tituló Poligrafía, y que
escribió en 1508. En el quinto tomo aparece su tabla recta (tabula recta),
donde cada fila compuesta por un alfabeto, se construye desplazando la
anterior un espacio a la izquierda.
Las 24 filas de la tabla las utiliza (nosotros usamos 26 porque Johannes no
utilizaba ni la J ni la V) de la siguiente forma: cifra la primera letra del texto
en claro con el primer alfabeto, la segunda letra con el segundo alfabeto, y
así sucesivamente.
Es un cifrado simple y vulnerable, pero va a inspirar a otros diseñadores de
cifras.
EJERCICIO:
Utilizando el cifrado de Trithemius, cifre la palabra “criptografía”:
La cifra del Sig. Giovan Battista Bellaso
En 1533 Bellaso escribe un folleto en el que describe un método que
combina la tabla de Trithemius con una clave.
Propuso emplear claves formadas por varias palabras fáciles de recordar.
También recomendó variar la clave frecuentemente, lo que le convierte en el
primer autor que diseñó un criptosistema en el que las claves cambian
periódicamente.
Cardano
Más o menos al mismo tiempo que Bellaso, el físico y matemático milanés
Girolamo Cardano sugiere emplear la tabla de Trithemius usando como clave
el propio texto en claro. En éste caso, se denomina autoclave
Cifrado de Porta: Giovanni Battista Porta
Napolitano que escribió en 1563 un libro con 4 volúmenes que recogía toda
la criptografía hasta esa fecha, incluyendo sus aportaciones.
Porta ideó cifrados de diversa índole que utilizaban tablas, discos, etc siendo
uno de ellos polialfabético, en este, existían 11 alfabetos que identificaba por
medio de dos letras (1º AB, 2º CD, 3º EF, 4º GH, 5º IL, 6º MN, 7º OP, 8º
QR, 9º ST, 10º VX,11º YZ)
Porta utilizaba estos alfabetos de forma similar a como Bellaso emplea la
tabla de Trithemius.
Vigenère
Blaise de Vigenère, diplomático francés nacido en 1523, conoció los escritos
de Alberti, Trithemius y Porta.
Utiliza 26 alfabetos cifrados distintos para cifrar un mensaje.
El primer paso de la codificación es trazar lo que se denomina un cuadro
Vigenère. Se trata de un alfabeto llano seguido de 26 alfabetos cifrados,
consiguiéndose cada uno de ellos comenzando en la siguiente letra que el
anterior.
La línea 1 representa un alfabeto cifrado con un cambio del César de una
posición, lo que significa que se podría usar para poner en práctica una cifra
de cambio del César, en la que cada letra del texto llano, es reemplazada
por la letra siguiente del alfabeto. De manera similar, la línea 2 representa
un alfabeto cifrado con un cambio del César de dos posiciones, y así
sucesivamente. La línea superior del cuadro, en minúsculas, representa las
letras del texto llano. Se podría codificar cada letra del texto llano según uno
de los 26 alfabetos cifrados.
Cifrado de Beaufort
La cifra del almirante inglés Sir Francis Beaufort, fue publicada después de
su muerte por su hermano. Se trata de un cifrado que modifica el cifrado
Vigenère, pues cifra de manera inversa.
Es importante notar que esta cifra, en la realidad, fue creada por Giovanni
Sestri en 1710.
En 1806, época en que era responsable por un navío de guerra, tuvo la idea
de atribuir números a los grados de la tabla de vientos utilizadas por los
marineros. La tabla está compuesta de 12 grados (o 12 fuerzas) para
expresar la fuerza (o velocidad) del viento. Su preocupación era la de
facilitar la transmisión de observaciones metereológicas. Su tabla fue
oficialmente utilizada por la marina británica en 1834 y su uso se hizo
generalizado en 1874, por ocasión de la primera conferencia de
metereología marítima en Londres.
En su homenaje, un mar situado cerca de Ártico y bañando el norte del
Alaska y de Canadá recibió su nombre.
El método consiste en buscar dentro de la columna de cada letra del
mensaje a cifrar, la letra de la clave que le corresponde, y así, la letra del
mensaje cifrado corresponde con la de la fila.
Cifrado Gronsfeld NO
Variante del cifrado de Vigenère realizada por Johann Franz Graf Gronsfeld-
Bronkhorst. Utiliza sólo las diez primeras líneas de la tabla, que se numeran
del 0 al 9. La palabra clave será un número, cuyos dígitos indican con que
alfabeto cifrar cada carácter.
Altera la frecuencia de aparición de las letras, en forma similar a la que se
observa en el Manuscrito Voynich.
Cifrado Vernam
El ingeniero americano de AT&T Bell, Gilbert S. Vernam, presenta en 1918
un sistema utilizable inicialmente para la transmisión telegráfica, que se
demuestra matemáticamente perfecto.
Una variación del sistema Vernam fue utilizado durante cierto tiempo por el
ejército americano, y se dice que la línea caliente Washington-Moscú
también lo utilizó por lo menos hasta 1987.
Se trata de un cifrado de flujo, en el que el texto en claro se combina,
mediante la operación XOR, con un flujo de datos aleatorio o
pseudoaleatorio del mismo tamaño, para generar un texto cifrado.
Para realizar el cifrado, se debe obtener el equivalente numérico ASCII del
mensaje en claro, una secuencia aleatoria con su equivalente en binario
(clave), y aplicar la operación XOR carácter a carácter. La cadena resultante
será el criptograma.
Criptoanálisis de sustitución polialfabeto
Aunque la sustitución polialfabética es más segura que la monoalfabética, no
es inmune al criptoanálisis.
El procedimiento consiste en determinar el número de alfabetos empleados
(períodos), separar el texto en partes que fueron cifradas con el mismo
alfabeto, y resolver cada parte como si hubiera sido cifrada con un solo
alfabeto.
Existen dos maneras de descubrir el período: el método de Kasiski y el
Índice de coincidencia.
Método de Kasiski TEORÍA
Friedrich Wilhelm Kasiski, oficial prusiano, escribe en 1863 un libro de 95
páginas titulado “Die Geheimschriften und die Dechiffrirkunst” (la escritura
secreta y el arte del desciframiento), que estableció una forma de encontrar
el número de alfabetos en una sustitución polialfabeto (longitud de la clave
empleada).
Se basa en la repetición de grupos de letras y palabras en el lenguaje
natural. Kasiski observa que si dos fragmentos iguales del texto en claro
distan uno de otro un múltiplo de la longitud de la clave, entonces sus
transformados del texto cifrado también son idénticos. En consecuencia, si
en un criptograma hay bloques repetidos, la longitud de la clave debe dividir
el máximo común divisor de las distancias entre fragmentos iguales. Esto
permite su cálculo.
Índice de coincidencia TEORÍA
No obstante, el problema de encontrar la longitud de la clave se resuelve de
un modo definitivo, mediante el llamado índice de coincidencia de un texto,
concepto introducido por el criptoanalista del ejército americano William
Friedman en la década de los años veinte.
Se define la probabilidad de que dos de sus letras elegidas al azar coincidan.
MÉTODO DE SUSTITUCIÓN-TRANSPOSICIÓN
ADFGVX ENTRA FIJO
El 18 de Noviembre de 1914, los alemanes introdujeron un nuevo método de
cifrado, que consistía en un cifrado de Vigenère con clave ABC, seguido de una
transposición de columnas. Los franceses le dieron el nombre de cifrado ABC.
Estuvo en vigor hasta mayo de 1915.
A ésta cifra le siguió la ABCD, que era un poco más complicada, pues consistía en
cifrar el texto en claro usando el sistema de Vigenère con clave ABCD, pero de
forma intermitente, y a continuación se efectuaba una transposición de columnas.
Los alemanes dejaron de usarlo en Abril de 1916.
Los cifrados polialfabéticos empleados para reemplazarlo, resultados poco eficientes
y daban lugar a confusiones entre los criptoanalistas, lo que supuso regresar a los
cifrados por transposición.
Pero no conseguían burlar al Bureau du Chiffre (la oficina francesa de criptoanálisis,
los ingleses tenían “la habitación 40”). A partir de Marzo de 1917, y ante ésta
situación, el ejército de tierra alemán recurrió a los códigos.
A primeros de Marzo de 1918, el jefe del estado mayor germano Erich von
Ludendorff, había preparado una gran ofensiva, y ante la necesidad de
salvaguardar el factor sorpresa, el mando alemán renuncia a emplear códigos y se
deciden por las cifras de campo. En concreto, la cifra elegida se llamaba GEDEFU 18
(GEheimschrift DEr FUnker 18: cifra de radiotelegrafistas 18), aunque ha pasado a
la historia de la criptografía con el nombre de cifrado ADFGX. Fue diseñada por el
coronel Fritz Nebel.
Nebel recuperó la idea del griego Polybios, que consistía en representar las letras
del alfabeto por un par de coordenadas, pero empleando las letras A, D, F, G y X,
que fueron elegidas por ser letras que al ser transmitidas en código Morse, son lo
suficiente diferentes:
A .-
Los alemanes empezaron a radiotelegrafiar usando el cifrado ADFGX, el 5 de Marzo
de 1 918.
De repente, el 1 de Junio los mensajes ADFGX incorporaron una sexta letra, la V.
Así, el cuadrado pasó a ser de 6 x 6.
En la cifra ADFGVX hay sustitución y transposición. Se comienza dibujando una
cuadrícula de 6 x 6, y se llenan los 36 cuadrados con una disposición aleatoria de
26 letras y los 10 dígitos del 0 al 9. Cada línea y cada columna de la cuadrícula, se
identifica con una de las seis letras A, D, F, G, V o X.
La disposición de los elementos en la cuadrícula funciona como parte de la clave, de
forma que el receptor ha de conocer los detalles de la cuadrícula para poder
descifrar los mensajes.
TRASPOSICIÓN TODOS
Los métodos de trasposición cambian la posición del texto claro dentro del mensaje,
es decir, reordenan sus letras. Existen numerosos métodos de trasposición de los
cuales veremos:
Trasposición columnar: Para este método necesitamos una clave que
consta de un entero “N” y una reordenación de los números. El entero N es
el número de letras que tiene.
Supongamos que queremos cifrar la palabra “TRANSPOSICIÓN”
D -..
F ..-
G --.
X -..-
Método ZIG-ZAG: También es conocido con el nombre de RAIL FENCE.
Consiste en poner el texto a cifrar en 2 o más filas, posicionándolos en zig-
zag y leyendo fila a fila. Este método era utilizado por el ejército
confederado en la guerra de secesión (EEUU).
Ejemplo:
Distribución en figuras geométricas: Este consiste en adoptar una figura
geométrica.
Ejemplo:
Nihilistas Rusos (los que no creen en nada): En la segunda mitad del
siglo XIX lo empleaban este grupo de anarquistas que surgió en la Rusia
Zarista. En el primer paso consiste en dividir el texto llano en fragmentos de
n2 letras y formar con cada uno de ellos un cuadrado de n X n, siendo n el
número de letras de la clave. A continuación hay que ir reescribriendo los
cuadrados reordenándolos (sus columnas) en función de la clave.
Ejemplo: COMUNA
Rejilla giratoria: Su origen se data en el siglo XVIII, al ser utilizado por la
administración holandesa a mediados de dicha centuria.
Sin embargo, se suele atribuir al coronel austríaco Eduard Fleissner von
Wostrowitz, ya que lo incluyó en su obra Handbuch der Kryptographie,
escrito en 1881.
La rejilla giratoria fue popularizada por Julio Verne en su novela Matias
Sandorff.
La clave es un cuadrado dividido en cuadrículas, con la cuarte parte de ellas
perforadas, de modo que al girarla 90, 180 y 270 grados, se descubren
progresivamente todas las cuadrículas, sin repetir ninguna.
La selección de las casillas agujereadas no se puede hacer al azar, hay que
hacerla con una determinada estrategia.
En la confección de la rejilla giratoria, la selección de las cuadrículas
agujereadas se hace siguiendo la estrategia de dibujar un cuadrado 6x6, y
numerando sus cuadrículas dividiendo el cuadrado en otros cuatro cuadrados
de nueve casillas cada uno.
Al rotar 90 grados, cada uno de estos cuatro cuadrados se traslada a otro
adyacente de forma que cada una de sus cuadrículas va a parar a aquella
con igual número. En consecuencia, si se quiere que cada cuatro giros
sucesivos de 90 grados se descubran todas las celdillas una única vez, se ha
de perforar nueve de ellas sin hacerlo en dos con el mismo número. Esta
argumentación permite también contar cuantas rejillas 6x6 diferentes
pueden construirse. Puesto que se ha de elegir una de las cuatro casillas con
el número 1, otra de las cuatro con el número 2 y así sucesivamente, hay
49 maneras diferentes de hacerlo, pero como una misma rejilla puede estar
en cuatro posiciones distintas y cada una de ellas corresponde a una
selección diferente de los nueve agujeros, el número anterior ha de dividirse
por 4 quedando así 48 rejillas 6x6 diferentes.
Ejemplo: CIFRE EL TEXTO: LA REJILLA GIRATORIA ES UN MÉTODO CLÁSICO
DE CIFRADO POR TRANSPOSICIÓN.
Hay 2 formas de llevarlo a cabo. Si quedan huecos por el segundo método,
abría que rellenar las posiciones vacías con caracteres como XYZ.
CRIPTOANÁLISIS PARA EL CASO DE LA TRANSPOSICIÓN
Métodos más usados:
Múltiples anagramas: es un método que consiste en escribir los
anagramas uno debajo del otro haciendo un rectángulo. Se
reordenan las columnas procurando formar primero bigramas que
sean frecuentes en el idioma que estamos usando. A partir de ahí,
trigramas, tetragramas… y así hasta formar palabras.
Rejilla giratoria: 1ER METODO cada método de cifrado de
transposición tiene su propio sistema de criptoanálisis. El de la rejilla
giratoria parte de una suposición sobre el tamaño de la rejilla (n x n).
Solía utilizarse como valor entre 5 y 10 (5 x 5, 6 x 6…). Porque las de
4 x 4 provoca muy pocas posibilidades para analizar y por tanto
podría llevar a errores pensando que se cifró de otra forma.
MAQUINAS DE CIFRAR
La Escítala
Fue diseñada en Esparta por los lacedemonios, hacia el siglo V a. C., y la emplean
durante la guerra entre Atenas y Esparta.
Se basa en una operación de transposición, consistente en una cinta de pergamino
enrollada en un cilindro (cuyo diámetro determina la clave), sobre la cual se escribe
el texto en claro horizontalmente.
Al desenrollar la cinta, las letras aparecen permutadas constituyendo éstas el
cifrado que posteriormente se envía al destinatario, el cual dispone de una copia del
cilindro idéntica, de forma que al colocar de nuevo la cinta aparece el mensaje en
claro.
Disco de Alberti
Implementaba un sencillo criptosistema de sustitución polialfabética, mediante dos
discos concéntricos giratorios, con letras en sus bordes.
Criptógrafo de Wheatstone
Fue presentado en la exposición universal de París de 1867.
Consta de dos alfabetos formando sendas circunferencias, una dentro de otra, y dos
manecillas como las de un reloj, apuntando cada una a un alfabeto.
Las letras del alfabeto exterior están fijas y ordenadas en orden alfabético. Las
letras del alfabeto interior pueden extraerse y ordenarse según la clave.
Para cifrar, se desplaza la manecilla grande hasta la posición que en el alfabeto
exterior ocupa la letra correspondiente. Al mismo tiempo, un engranaje mueve la
manecilla pequeña hasta otra letra del alfabeto interior. Esta segunda letra es la
transformada de la primera.
El cifrado que produce lo es de sustitución polialfabética, debido al espacio en
blanco que contiene el alfabeto exterior; cuando la manecilla grande completa una
circunferencia, la pequeña ya no señala la misma letra sino la que está al lado.
La rueda de Jefferson
Thomas Jefferson, ideo su rueda entre los años 1790 y 1800.
Se trata de un cilindro formado con 36 discos de madera de igual tamaño que se
identifican con números del 1 al 36. En el borde de los discos van grabadas las 26
letras del alfabeto en un orden que es diferente en cada disco.
El centro de los discos está agujereado para que éstos puedan montarse sobre un
eje de hierro y de modo que sea posible su giro respecto al eje.
El orden en que se montan los discos sobre el eje es precisamente la clave
convenida entre el emisor y el receptor.
El número total de claves es el factorial de 36, un número con 42 dígitos. Para
cifrar, el emisor divide primero el texto en claro en fragmentos de 36 letras. A
continuación gira convenientemente los discos de la rueda para que pueda leerse el
primer fragmento en una de las 26 generatrices del cilindro. Entonces considera
aleatoriamente una de las 26 generatrices restantes. Las letras de que consta es el
cifrado del primer fragmento. De igual modo se cifra el resto, siendo el cifrado
resultante poligráfico y también homófono, ya que hay 25 posibilidades para un
mismo bloque.
Es un cifrado de sustitución polialfabética.
Cilindro de Bazeries
Etiénne Bazeries reinventó la rueda de Jefferson en 1891.
La única diferencia entre ambos estriba en que el cilindro de Bazeries emplea 20
discos con 25 letras en lugar de los 36 discos y 26 letras de Jefferson.
En 14 de sus discos, Bazeries dispuso el orden de las letras en los discos de
cilindro, colocando las letras ordenándolas a partir de frases mnemotécnicas, como
“Dieu protege la France”, “Honneur et patrie”, “Instruisez la jeunesse”,… lo cual
terminó facilitando su descifrado.
Máquinas Hagelin
Desarrollada por el ingeniero sueco Boris Hagelin entre 1920 y 1930.
Incorporan ruedas de clave con piñones que se pueden activar o desactivar.
El cifrado se considera de sustitución tipo Beaufort.
La Hagelin C-48 combina el texto original, símbolo a símbolo, con la fuente de clave, que es
una larga secuencia pesudoaleatoria derivada de la clave, produciendo el criptograma de un
modo similar a como lo hace la sustitución tipo Vigenère. Tanto el texto en claro, como la
clave, como el criptograma que produce, se componen de letras de un alfabeto con 26
símbolos, siendo el texto en claro restado, en vez de sumado, a la fuente de clave módulo
26, haciendo el cifrado como autoinverso.
Cilindro M-94
El ejército americano presentó en 1922 un cilindro similar al de Bazeries, con la deficiencia
de las frases corregida. Consta de 25 discos de aluminio de pequeño tamaño, que giran
sobre un eje de once centímetros de longitud.
Estuvo en vigor hasta 1943.
Similar fue el M-138, pero con tiras de cartón deslizantes en lugar de discos. Constaba de
100 tiras de las que únicamente se usaban treinta a la vez, y fue empleado hasta casi al final
de la Segunda Guerra Mundial.
MÁQUINAS DE ROTORES
Un rotor es un disco delgado fabricado con material aislante y con contactos
eléctricos en sus dos caras, en número igual a las letras del alfabeto que se
emplee. Cada contacto de una cara se conecta aleatoriamente con otro de la cara
opuesta mediante un cable eléctrico. Por otra parte, los contactos de una cara
rozan con otros que enlazan con las letras del alfabeto en claro y, análogamente,
los contactos de la cara opuesta lo hacen con otros que conectan con las letras del
alfabeto cifrado.
Cuando se pulsa una tecla, una corriente eléctrica atraviesa el rotor transformando
la letra de la tecla pulsada en otra.
Producen un cifrado de sustitución polialfabética.
Máquina de rotores de Hebern
Edward H. Hebern comenzó su diseño en 1917, y la construyó un año después.
Consta de cinco rotores concatenados que se pueden extraer y volver a colocar en
otro orden, incluso invertidos. En total, 3840 maneras distintas. Los cinco rotores
van situados entre dos ruedas de trinquete de aluminio, cuya función es gobernar
su movimiento. Como los rotores, las ruedas también giran y llevan grabadas en su
borde las 26 letras del alfabeto inglés, en correspondencia con sus posibles
posiciones.
Hebern propuso que la clave determine la disposición de los rotores y que se
cambie diariamente. Una vez colocados los rotores, el emisor del mensaje elige
aleatoriamente siete letras y gira las dos ruedas y los cinco rotores para que se
contemplen alineadas en cierto punto marcado en la máquina, al efecto. Las siete
letras deben ser diferentes para cada mensaje, y se transmiten en claro al receptor.
A continuación, el emisor sitúa una palanca en posición DIRECT, y la máquina
puede comenzar a cifrar. Cada vez que se presiona una tecla, una corriente
eléctrica atraviesa el banco de rotores de izquierda a derecha, e ilumina en el panel
situado encima del teclado, la lámpara correspondiente a la letra cifrada. Un
mecanismo hace girar alguno de los rotores y el emisor anota en un papel la letra
iluminada, antes de cifrar la siguiente.
Para descifrar el mensaje, el proceso es similar, pero partiendo de que la posición
de la palanca es REVERSE.
Electric Cipher Machine Mark I
A partir de la máquina de Hebern, se desarrolló en 1934 una máquina que superó
todos los tests de criptoanálisis a los que se le sometió.
Sigaba
Se trata de una mejora de la anterior. También se llama Electric Cipher Machine
Mark II.
El movimiento de los cinco rotores que intervienen en el cifrado es muy complejo,
pues al pulsar una tecla, de uno a cuatro de estos rotores avanzan guiados por una
señal electrónica que se esconde al atravesar otros diez rotores que a su vez se
mueven mediante un dispositivo mecánico.
Enigma
La primera versión, Enigma A, se realizó siguiendo el diseño patentado en 1 918
por el ingeniero alemán Arthur Scherbius, donde se reconocen ideas de otro
inventor, el holandés Hugo Alexander Koch.
Parece una máquina de escribir, y se podía utilizar como tal.
Consta de cuatro rotores cuyo giro es causado por la acción de los dientes de otras
tantas ruedas. Estas cuatro ruedas avanzan una posición cada vez que se pulsa una
letra, completando una revolución cada 11, 15, 17 y 19 pulsaciones,
respectivamente.
La versión B, muy parecida a la versión A, se diferenciaba de su predecesora en
que contenía el alfabeto estándar de 26 letras.
En 1926 aparece Enigma C. Se caracterizó por una disminución de peso y volumen,
con lo que cabía en un pequeño maletín. El cambio más reseñable fue que uno de
los cuatro rotores era un reflector. El empleo del reflector, supuso que las
sustituciones obtenidas fuesen involutivas, es decir, que si una letra se transforma
en otra, ésta también se transmuta por aquella.
Enigma C no imprimía el texto cifrado, cosa que si realizaban las versiones A y B.
En 1927 aparece el modelo D. Las diferencias para con la versión C eran: el teclado
va configurado siguiendo el estándar alemán, en el orden QWERTZ …(en lugar de
ABCDEF …), y el reflector, que pasa a poder situarse en 26 posiciones (en vez de
dos).
Enigma D fue un gran éxito comercial.
http://www.amenigma.com/
C-38
Creada por el ingeniero sueco Boris Hagelin en 1938, se trata de un dispositivo de
bolsillo que funcionaba sin corriente eléctrica y que podía imprimir el texto cifrado.
La versión empleada por el ejército americano se llamó convertidor M-209.
Su cifrado es de sustitución polialfabética.
ESTEGANOGRAFÍA
Del griego steganos (oculto) y graphos (escritura), la esteganografía se puede
definir como la ocultación de información en un canal encubierto con el propósito de
prevenir la detección de un mensaje oculto.
La robustez ante distorsiones también suele ser un objetivo de la criptografía,
ahora bien, la esteganografía y la criptografía son campos distintos. En la
criptografía, el objetivo es asegurar la confidencialidad de la información ante los
ojos de un interceptor que es capaz de ver el criptograma, aun cuando éste conoce
el algoritmo que lo genera. En cambio, la esteganografía busca ocultar la presencia
del mensaje en sí; ya que si se llega a identificar la posición del mensaje se conoce
directamente la comunicación (conocido el algoritmo de ocultación), lo que no
ocurre en el caso del criptograma.
Para que la esteganografía sea de más utilidad se debe combinar con la
criptografía. El mensaje a intercambiar se ha de cifrar (de forma robusta) y luego
introducir en el objeto contenedor. De esta forma, aunque un interceptor descubra
el patrón esteganográfico, jamás puede llegar a conocer el mensaje intercambiado.
La esteganografía estudia el conjunto de técnicas cuyo fin es insertar información
sensible dentro de otro fichero. A este fichero se le denomina fichero contenedor
(gráficos, documentos, programas ejecutables, etc.). De esta forma, se consigue
que la información pase inadvertida a terceros, de tal forma que sólo sea
recuperada por un usuario legítimo que conozca un determinado algoritmo de
extracción de la misma.
En muchos casos el objeto contenedor es conocido, lo que se ignora es el algoritmo
de inserción de la información en dicho objeto.
DEFINICIONES
Objeto contenedor: se trata de la entidad que se emplea para portar el
mensaje oculto. Acudiendo al ejemplo de los mensajes sobre el cuero
cabelludo, el objeto contenedor es el esclavo en sí (esclavo que le cortaban el
pelo para escribir el mensaje en su cabeza y dejaban que le creciese el pelo).
Estego-objeto: se trata del objeto contenedor más el mensaje encubierto.
Siguiendo con el ejemplo, se trata del esclavo una vez se ha escrito en su
cuero cabelludo el mensaje y se le ha dejado crecer el pelo.
Adversario: son todos aquellos entes a los que se trata de ocultar la
información encubierta. En el ejemplo de la prisión, se trata del guardia
que entrega los mensajes a uno y otro prisionero. Este adversario puede
ser pasivo o activo. Un adversario pasivo sospecha que se puede estar
produciendo una comunicación encubierta y trata de descubrir el algoritmo que se extrae del estego-objeto, pero no trata de modificar dicho objeto.
Un adversario activo, además de tratar de hallar el algoritmo de
comunicación encubierta, modifica el estego-objeto con el fin de corromper
cualquier intento de mensajería subliminal. (En una prisión de alta seguridad dos
internos en celdas separadas, Rómulo y Remo, se quieren comunicar para elaborar un plan de fuga. Ahora bien, toda comunicación intercambiada entre ellos es examinada por un guardia
que los aísla por completo ante cualquier sospecha de comunicación encubierta. Con la esteganografía el guardia inspecciona mensajes aparentemente inocuos que contienen un
canal subliminal muy útil para los prisioneros.)
Estegoanálisis: ciencia que estudia la detección (ataques pasivos) y/o anulación (ataques activos) de información oculta en distintas tapaderas,
así como la posibilidad de localizar la información útil dentro de la misma
(existencia y tamaño).
EJEMPLO: El objeto contenedor más utilizado: las imágenes digitales.
Especialmente, en formato BMP por su sencillez (es un formato de fichero sin
compresión). Se pueden extender a otros formatos (JPG, PNG, etc.) y a otros
contenedores (vídeos, documentos, etc.) siempre que se respeten las
particularidades de cada formato. Nosotros veremos el S-Tools.
ESTEGOANÁLISIS
Manual: Consiste en buscar de forma manual diferencias entre el objeto
contenedor y el estego-objeto buscando cambios en la estructura para
localizar datos ocultos. Los principales inconvenientes de esta técnica son
que es necesario tener el objeto contenedor y que en muchas ocasiones se
detecta que un objeto contiene información oculta pero es imposible
recuperarla.
Estadístico: Consiste en el cotejo de la frecuencia de distribución de colores
del estego-objeto. Es una técnica lenta para la que se debe emplear
software especializado. Estos programas suelen buscar pautas para ocultar
los mensajes que utilizan los programas más habituales de esteganografía,
este enfoque los hace muy eficaces cuando se trata de mensajes ocultos con
estos programas típicos. Ahora bien, los mensajes ocultados manualmente
son casi imposibles de encontrar para estos programas. (Ejemplo Chi-
Square)
APLICACIONES
Esteganografía empleando el protocolo TCP/IP: El protocolo TCP/IP es
apropiado para crear canales encubiertos de comunicación ya que a través
de las cabeceras se pueden enviar datos relevantes para dos entes que
acuerdan un protocolo encubierto. Usando este enfoque es posible empotrar
datos en peticiones de conexión iniciales, conexiones establecidas u otros
pasos intermedios.
Malware: El malware de hoy día normalmente se comunica con un punto de
control en posesión del atacante para recibir órdenes de descarga de
módulos adicionales, para enviar datos robados, para indicar que una nueva
víctima ha sido infectada, etc.
Marcas de agua digitales: Una marca de agua digital es un código de
identificación que se introduce directamente en el contenido de un archivo
multimedia, normalmente para incluir información relativa a los derechos de
autor o de propiedad del contenido digital en cuestión.
La presencia de esta marca de agua debe ser inapreciable para el sistema de
percepción humano a la vez que fácilmente extraíble por una aplicación
telemática que conozca el algoritmo para recuperarla. Como consecuencia,
en la actualidad se están empleando técnicas que en algunos casos pueden
ser consideradas esteganografía para conseguir dicho propósito.
Las aplicaciones más comunes de las marcas de agua son (no hace falta
estudiarlas):
Prueba de propiedad: identificación de la fuente, el autor, el propietario, el
distribuidor y/o el consumidor de un fichero digital.
Fingerprinting: incluye los datos asociados a una transacción, datos del
propietario de un fichero y de su comprador. Permite identificar al responsable de
copias ilegales de contenido protegido por derechos de autor.
Clasificación de contenidos: las marcas de agua se pueden emplear apara indicar el tipo de contenido de un fichero. Por ejemplo, en un mundo ideal las
páginas con contenido para adultos incluirían marcas de agua específicas en todas
sus imágenes, vídeos y demás. Los programas de filtrado de contenidos las
detectarían automáticamente de forma sencilla e impedirían su visualización a
determinados públicos.
• Restricción en el uso de contenidos: empleadas en conjunción con
aplicaciones o sistemas empotrados programados para tal fin, las marcas de agua
pueden emplearse para impedir la visualización de ciertos contenidos cuando son
copiados más de un determinado número de veces, a partir de una determinada fecha, etc.
OTRAS APLICACIONES
De igual forma que el malware puede emplear la esteganografía para crear un canal
de comunicación encubierta en redes sociales, también pueden hacerlo personas
físicas. Otro uso poco ético que se ha hecho de la esteganografía es la fuga de
información en entornos corporativos, militares, gubernamentales, etc.
TEMA 4: SISTEMAS DE VERIFICACIÓN E
IDENTIFICACIÓN Gestión de claves
La mayor parte de los sistemas de seguridad en redes se basan en utilizar técnicas
criptográficas. La fortaleza o robustez de los algoritmos, viene determinada en gran
parte por las características de las claves que se vayan a utilizar, lo cual hace que
su propia gestión sea el principal problema a la hora de utilizarlas.
La gestión de claves hace referencia a crear las claves, distribuirlas, almacenarlas y
anularlas.
Para ISO define la gestión de claves como la generación, la distribución, el borrado,
almacenamiento y aplicación en función de una política de seguridad.
Cuando trabajamos con claves una de las posibles clasificaciones es atendiendo a si
se emplea por ambas partes la misma clave, o bien no.
Así surgen los Criptosistemas:
SIMÉTRICOS (O DE CLAVE SECRETA/PRIVADA):
CRIPTOSISTEMAS DE CLAVE SIMÉTRICA
Se caracterizan porque para cifrar y para descifrar usamos la misma clave. Esa
clave debe mantenerse secreta, por ello tendríamos que afrontar el problema de la
distribución de las claves, que resulta ser el problema más peliagudo.
Otra característica es que requiere gran cantidad de claves, ya que deben irse
modificando por su posible interceptación.
Existen dos tipos generales de criptosistemas de clave simétrica (flujo y bloque).
Estos sistemas se han utilizado desde la más remota antigüedad hasta nuestros
días.
Cifrado en flujo:
El emisor de un mensaje, mediante una clave corta y secreta y un algoritmo
determinista público, genera una secuencia binaria, cuyos elementos se suman
módulo 2* con los correspondientes bits del mensaje, dando lugar a los bits del
criptograma.
El receptor del mensaje utiliza la misma clave y el mismo algoritmo para generar la
misma secuencia cifrante, la cual sumará módulo 2 (*XOR) con la secuencia
cifrada (sería restar la suma que hizo el emisor), dando lugar a los bits del mensaje
original.
*XOR (0+0=0; 0+1= 1; 1+0= 1; 1+1= 0)
SUMA NORMAL 111+101=1100 SUMA MODULO 2 111+101= 010
DIVISIÓN NORMAL 101/11 = 1 (RESTO 100),… DIVISIÓN MODULO 2 101/11= 11
(RESTO 0)
Cifrado en bloque:
Consiste en cifrar el mensaje original agrupando los símbolos en grupos o bloques
(conjunto de bytes).
Presenta como características las siguientes:
- Cada símbolo se cifra de manera dependiente de los adyacentes
- Cada bloque de símbolos se cifra siempre de igual manera,
independientemente del lugar que ocupe en el mensaje
- Para descifrar el mensaje no es preciso descifrarlo completamente desde el
principio; se puede hacer desde el bloque que interese
Los algoritmos simétricos que se emplean actualmente suelen cifrar bloques de
tamaño constante o variable, en función del algoritmo. Un bloque puede ser
constante o variable (con o sin el mismo tamaño).
Formas básicas de funcionamiento:
- Electronic CodeBook (ECB)
Libro de código electrónico – Cada bloque de texto se cifra por separado,
utilizando la misma clave.
Funciona bien en canales ruidosos, pues la alteración de algún bit, sólo
corrompe el bloque que lo contiene.
No permite detectar cuando se han insertado o eliminado trozos de un
mensaje.
TEXTO – BLOQUE – ALGORITMO – BLOQUE – TEXTO
- Cipher Block Chainning (CBC)
Encadenamiento de bloques de cifrado – Los bloques se relacionan entre sí
por medio de funciones XOR. El texto en claro pasa primero por un XOR con el
valor cifrado del bloque previo, y el resultado se cifra posteriormente usando
la clave
- Cipher FeedBack (CFB)
Retroalimentación de cifrado – Estandarizado por el NIST (U.S. National
Institute for Standards and Technology) -
Este modo utiliza un registro de desplazamiento con una longitud de un
bloque y dividido en secciones.
Permite codificar la información en unidades inferiores al tamaño del bloque,
lo cual permite aprovechar totalmente la capacidad de transmisión del canal
de comunicaciones, manteniendo además un nivel de seguridad adecuado.
− Output FeedBack (OFB)
Retroalimentación de salidas – Se realiza un XOR entre caracteres o bits
aislados del texto y las salidas del algoritmo. El algoritmo utiliza como
entradas sus propias salidas, por lo que no depende del texto.
Algoritmos más utilizados:
DES
Es el más antiguo.
La NBS (National Bureau of Standard, hoy NIST) solicitó en 1973
propuestas para un estándar de cifrado de uso general. Recibió muy pocas
propuestas y de escasa consideración. Al segundo concurso efectuado en
1974, se presentó IBM con un criptosistema basado en un cifrado denominado
Lucifer, ideado por Horst Feistel, uno de sus técnicos. Ésta propuesta si se
consideró interesante, pero antes de su adopción, debía someterse a la
consideración de los expertos de la NSA. Así se hizo y recibió una evaluación
positiva.
El 23 de Noviembre de 1976, la versión de 56 bits de la cifra Lucifer de
Feistel, fue adoptada por la NBS como estándar de cifrado de la información
sensible “no clasificada”, con el nombre de Data Encryption Standard.
La norma exige que el DES se implemente mediante un circuito integrado
electrónico (Hardware). El chip DES es un producto estratégico U.S.A., no
está permitida su exportación sin un permiso especial, y no se permite
comercializar en el país chips fabricados en el exterior.
En 1981 ANSI (American National Standard Institute), adoptó el DES con el
nombre DEA (Data Encryption Algorithm), como norma en el sector
privado (ANSI X3.106) y para el cifrado en redes (ANSI X3.105). Para ésta
norma, no se exige la implementación en un circuito integrado y puede ser
implementado por software.
Las normas ISO relativas a DES son la ISO 8382, equivalente a ANSI X3.106,
ISO 9797, ISO 9798 e ISO 10118.
El cifrado DES consta de 19 etapas diferentes. La primera etapa es una
transposición, una permutación inicial del texto en claro de 64 bits,
independientemente de la clave. La penúltima etapa intercambia los 32 bits
de la izquierda con los 32 de la derecha. La última etapa es una transposición
exactamente inversa a la primera. Y las 16 etapas restantes, son una red de
Feistel de 16 rondas: se divide el bloque de datos en dos mitades, y en cada
vuelta de cifrado se trabaja con una de las dos mitades.
El análogo de DES en la antigua Unión Soviética, es Gost.
IDEA
Xuejia Lay y James L. Massey del Instituto Federal de Tecnología Suizo,
inventaron en 1990 el algoritmo PEES (Proposed European Encryption
Standard). Su segunda versión, se publicó en 1992 bajo el nombre de IDEA
(International Data Encryption Algorithm).
El algoritmo está libre de restricciones y permisos nacionales, y se distribuye
libremente por Internet. Se emplea comúnmente en Europa.
Tanto los datos en claro como los datos cifrados, están compuestos por
bloques de 64 bits, y su clave consta de 128 bits, lo que hace muy difícil que
lo rompan mediante ataques de fuerza bruta. El algoritmo consiste en ocho
vueltas de cifrado idénticas, seguidas de una transformación de salida.
PGP, conocido producto de seguridad para redes, incluye IDEA como
algoritmo de cifrado.
RC-2, RC-5 y RC-4
RC procede de Ron´s Code o de Rivest´s Cipher, pues su autor es Ron
Rivest, coautor del RSA.
RC-2 utiliza una longitud del bloque de cifrado de 64 bits, y una clave de
longitud variable entre 1 y 2048 bits, aunque las versiones exportadas están
limitadas a 40 bits.
Su diseño es secreto, por lo cual su seguridad es más dudosa que si fuese un
algoritmo de público conocimiento. (Si algo se publica su seguridad es mayor
porque todos hacen aportaciones, en cambio si es secreta depende de la
confianza que se pueda tener en la persona que lo ha creado)
RC-5 es una versión más moderna de RC-2, y sus características son que es
un criptosistema simétrico y de bloque, que opera con palabras de tamaño
variable y clave secreta de longitud variable. Se puede implementar tanto en
hardware como por software.
Por su parte, RC-4 es un cifrador de flujo, el único de ésa relación de
algoritmos, con clave variable entre 1 y 2048 bits, y donde se pueden
configurar muchos parámetros, lo que permite su adaptación a las
necesidades de cada aplicación.
AES
La NBS (National Bureau of Standard, hoy NIST) solicitó en 1997 propuestas
para un nuevo estándar de cifrado, habida cuenta que la seguridad de DES
estaba ya comprometida. El resultado se denominaría AES (Advanced
Encryption Standard), y el proceso sería mucho más transparente que el
que emplearon para con DES y que generara una gran polémica. En Octubre
del año 2000, se eligió el criptosistema de los belgas J. Daemen y V. Rijmen,
llamado Rijndael. Se utiliza en las comunicaciones oficiales y militares de
U.S.A, con información no clasificada.
…
GESTIÓN DE CLAVES SIMÉTRICAS
En cualquier red de comunicaciones es necesario establecer un procedimiento de
gestión de claves debido a que:
- Los sistemas criptográficos no pretenden conseguir la seguridad al 100%
solamente pretenden obtener un nivel adecuado de seguridad. Cada vez que
usamos una clave, ésta queda expuesta y cada vez que la reutilizamos el
problema se agrava, es decir, las claves se “desgastan” con el uso. Esto
implica que su duración sea limitada.
- Hay que anular las claves utilizadas por clientes que hayan finalizado su
misión o que hayan cambiado sus privilegios.
- Hay que emplear claves diferentes para cometidos diferentes:
o Autenticación
o Firma digital
o Transmisión de datos
o Almacenamiento…
- Es necesario dotar o asignar claves distintas a clientes distintos o grupos de
clientes distintos dentro de la red.
En general es conveniente utilizar una jerarquía de claves piramidal, es decir, las
claves de menor rango se cifran bajo claves de mayor rango de manera que, las
claves de mayor rango se utilicen el mínimo número de veces.
En el vértice de la pirámide estará la clave maestra. La clave maestra hay que
guardarla en un módulo de seguridad sin cifrar (texto en claro o texto llano) y se ha
de emplear en contadas ocasiones, utilizándola para cifrar información de pequeño
tamaño, por lo general de hasta 128 bits.
Un nivel más debajo de la pirámide están las “claves del segundo grado” que se
cifran con la clave maestra, es decir son claves que se utilizan para cifrar otras
claves, no para cifrar datos.
Debajo de las de segundo grado sigue habiendo niveles de número variable (tercer
grado, cuarto…) teniendo como mínimo 3.
La clave de generación de claves: Se usa para crear otras claves, que van a
controlar algún generador de claves ya sea Software o Hardware.
Clave de transporte de claves de sesión: Es una clave para cifrar y distribuir las
claves de sesión.
Claves de cifrado de claves de fichero: Esta clave se utiliza en el
almacenamiento de ficheros y suelen vivir mientras vivan los ficheros.
Clave de cifrado de claves maestras de cliente: Se utilizan para las claves de
las máquinas locales (clientes). Cada cliente va a disponer de su clave maestra
almacenada en claro (llano) en su propio armario de seguridad.
DISTRIBUCIÓN DE CLAVES SIMÉTRICAS
Para distribuir las claves existen varias técnicas que deben garantizar que ambos
extremos de una conexión dispongan de la clave. El IEEE 802.10 contempla tres
clases de técnicas de distribución de claves:
o A: Distribución manual de claves Utilizan métodos de entrega fuera de línea para establecer claves
criptográficas compartidas en parejas o en grupos.
Se suele realizar una vez por usuario, y para la distribución del material
adicional sobre las claves, se puede utilizar la clave distribuida como clave de cifrado de claves (Key Encryption Key)
o B: Distribución de claves basadas en centro
Se establecen claves criptográficas por parejas o en multidifusión entre
entidades de comunicación, a través de una tercera entidad de confianza, un
centro de distribución de claves (Key Distribution Center, KDC).
Existen dos paradigmas básicos para contactar con un KDC: - El modelo pull: Si A quiere comunicarse con B, A necesita una clave,
entonces A se dirige al KDC para solicitársela, el KDC le proporciona
dicha clave y A ya puede comunicarse con B. Ejemplo: Kerberos.
- El modelo push: Es el estándar americano. A quiere comunicarse con B, entonces A contacta con B para que B pida la clave a KDC. Se realiza de
esta forma para distribuir la carga de trabajo. Los KDC se suelen ubicar
cerca de los servidores.
o C: Distribución de claves basada en criptosistemas asimétricos
Cuando dos entidades desean comunicarse de manera segura a través de un
criptosistema asimétrico, pueden intercambiarse mensajes cifrados con sólo
conocer la clave pública de su interlocutor.
Hay dos modelos de distribución de claves basadas en criptosistemas asimétricos:
- Transferencia de claves: Supone utilizar un criptosistema público basado
en certificados para, con éste, cifrar una clave privada y protegerla durante su
distribución. - Intercambio de claves o acuerdo de claves: Consiste en generar de
forma colaborativa una clave en local y en la máquina remota. Ejemplo
Diffie-Hellman.
Por lo general los sistemas actuales utilizan técnicas mixtas.
ASIMÉTRICOS (O DE CLAVE PÚBLICA):
Le podemos llamar sistemas de clave asimétrica o de clave pública. El sistema
anterior, como ya se vio, presenta el problema de distribuir las claves. El uso de
claves pública supone una solución a dicho problema y consiste en emplear dos
claves, una pública (de conocimiento general) y una privada (que solo conoce la
persona que la utiliza). Con la clave pública se cifran los mensajes y con la clave
privada se descifran.
El proceso sería el siguiente:
- Cada usuario genera un par de claves que se van a utilizar para el cifrado y el
descifrado de los mensajes - Cada usuario publica una de las dos claves de cifrado situándola en un
registro o fichero público. Ésta es la clave pública. La clave compañera se
mantiene privada. Cada usuario mantiene una colección de claves públicas de
otros usuarios - El emisor de un mensaje, ha de cifrarlo utilizando la clave pública del receptor
- El receptor del mensaje, ha de descifrarlo utilizando su clave privada
Esto supuso una revolución en la criptología (criptografía+criptoanálisis). Se puede utilizar para conseguir la confidencialidad (lo mismo que en los simétricos) pero
también la autenticación y resolver el problema de distribución de claves.
Cada tipo de servicio lo vamos a cifrar de forma diferente:
o La confidencialidad: Para conseguir la confidencialidad el que emite va a cifrar con la clave pública del receptor y este lo descifra con su clave
privada. Esto vendría ser similar a un criptosistema simétrico.
o La integridad: Al cifrar el contenido estamos consiguiendo que la integridad
de lo enviado permanezca.
o Autenticación: En la autenticación no podemos aplicar lo dicho (cifrar clave
publica, descifrar privada), para ello empleamos la firma digital para
demostrar que realmente somos quién decimos ser. Vamos a cifrar con
nuestra clave privada y el que lea el documento lo descifrará con la clave
pública del emisor (en este caso nosotros).
o No-repudio: Lo haremos a través de la firma digital, al igual que en el caso
de la autenticación.
Por otra parte, para asegurar que la clave pública pertenece a un usuario
determinado, utilizaremos los certificados.
Algoritmos más utilizados: RSA Desarrollado en el MIT (Massachussetts Institute of Tecnology) en 1977 por
Ronald Rivest, Adi Shamir y Leonard Adleman, se publicó en 1978 en un
artículo titulado A method for obtaining digital signatures and public-key
cryptosystems, a pesar de los intentos de la NSA para que no se hiciese público un algoritmo que era de su interés y que deseaban controlar.
Se basa en la factorización de números muy grandes, y es de libre circulación
para claves de menos de 512 bits.
La clave pública y la privada, están compuestas por un exponente y un módulo que es un producto de dos números primos grandes.
Consta de tres partes:
Generación de claves: Cada usuario debe elegir sus claves (pública y
privada) mediante el siguiente protocolo: o 1- El usuario elige dos números primos grandes “P” y “Q” y se calcula
su producto n = p x q (n sería el módulo “mod”)
o 2- A continuación el usuario elige un entero positivo “e” tal que 2<e<
Φ ”phi”(n) / Φ es la función Φ de Euler, que nos dice la cantidad de
números que tiene un inverso para un módulo. El inverso se puede
denominar como inverso multiplicativo, recíproco o simplemente inverso. En
aritmética modular es un número “K” tal que multiplicado por el número “x” daría como resultado 1 si le aplicamos un determinado módulo. K*x (mod
n)= 1. Ejemplo: K * 3 (mod 11) = 1 donde K tendría que ser 12 para
que el módulo de 1. / de modo que el mcd (máximo común divisor)
(e, Φ(n))=1 donde “Φ” es el indicador de Euler que para el caso de un número producto de dos primos n = p x q tiene la expresión
siguiente: Φ (n)= Φ (p*q)= (p – 1)*(q - 1)
o 3- Para calcular “d” lo podemos llevar a cabo de dos maneras, la mas
sencilla sería decir que d = Φ (n) +1 / e (de forma que este cociente sea 0). Y la segunda forma sería mediante el algoritmo de
Euclides extendido el usuario calcula “d * e (mod Φ (n)) = 1”
verificando que 1 < d < Φ (n). “E” tiene que ser primo relativo con
Φ(n) para que tenga inversa “d”. Primo relativo: Un primo relativo es, que un número “X” tiene inversa
mod(n) si no existe ningún número (excepto 1) < “X” y < “n” que lo
divida de forma exacta (su mcd = 1).
o 4- La clave pública del usuario es la pareja “n, e” mientras que su
clave privada es “d ” han de permanecer secretos los números p q y
Φ (n)
Una vez que el usuario ha determinado su clave, la hace pública en un directorio de claves en el que cualquiera pueda acceder.
EJERCICIO: (A- Alicia, B - Bernardo) Alicia elige 2 números primos de
forma secreta que constan entre: p = 383 q = 521 En primer lugar se haya n que es igual a p*q = 383*521= 199543
Luego se haya Φ (n) = (p-1)*(q-1) = 382*520 = 198640
n = 199543
Φ (n) = 198640 Ahora habría que calcular “e”. 2<e< Φ (n) 2<e<198640
mcd (e, Φ (n))= 1
e = 3
mcd (3, 198640) = 1 A continuación calculamos “d”. d = Φ (n)/e 198640 (+1)/3 = 66213.6666
Entonces vemos que tendríamos que haber calculado “d” por el método 2 de Euclides (e * d = 1(mod Φ)) 3 * d (mod 198640) = 1 d = 132427
Cifrado información: Si un usuario “B” quiere mandar un mensaje “m” a un
receptor “A” ha de realizar:
o B obtiene la clave pública de A, conectándose al directorio público de
claves (nA, eA)
o B representa el mensaje “m” como un entero en el rango {0, 1, 2,
…nA-1 } y primo con nA
o B calcula el valor del criptograma c = meA (mod nA)
EJERCICIO (ANTERIOR):
c = meB (mod nB) c= m3(mod 199543) donde m es cada
letra del mensaje a enviar… Descifrado información: Una vez que el usuario A recibe el mensaje
cifrado, o sea el criptograma “c”, para recuperar el mensaje original “m”
utiliza su clave privada dA y calcula: cdA = (me
A)dA * (mod nA) =
meA
dA * (mod nA) == m * (mod nA)
EJERCICIO (ANTERIOR):
meA
dA * (mod nA) == m * (mod nA) M1 = C1
d (mod n)
EJERCICIO 2
Elegimos como valores de “p y q” por parte de Alicia el 5 y el 7 y por parte de
Bernardo 3 y 11. Alicia desea transmitir un mensaje a Bernardo, en concreto HOLA.
Alicia: p = 5 q = 7
N = p*q = 7 * 5 = 35 Φ (n) = (p-1)*(q-1) +1 24 +1 = 25
2<e< Φ (n) 5 d = Φ (n)/e 25/5 = 5
Clave pública = (n, e) = (35, 5)
Clave privada = d = 5
Bernardo: p=3 q =11
N = p*q = 3 * 11 = 33 Φ (n) = (p-1)*(q-1) +1 (2*10)+1 = 21
2<e< Φ (n) 3
d = Φ (n)/e 21/3 = 7
Clave pública = (n, e) = (33, 3)
Clave privada = d = 7
------ Mensaje: HOLA ------------
A (0) B (1) C (3) D… H = 7 M1
O = 15 M2
L = 11 M3 A = 0 M4
Alicia C1 = M1
e (mod n) = 73 (mod 33) se coge la “e” y la “n” de Bernardo = 13 (el
resto de la división entre 343/33) 13
C2 = M2e (mod n) = 153 (mod 33) 3375 (mod 33) 9
C3 = M3e (mod n) = 113 (mod 33) 11
C4 = M4e (mod n) = 03 (mod 33) 0
Bernardo
M1d (mod n) 137(mod 33) 7 (H)
M2d (mod n) 157(mod 33) 15 (0)
M3d (mod n) 117(mod 33) 11 (L)
M4d (mod n) 07(mod 33) 0 (A)
EJERCICIO 3. Los 2 métodos para comprobar “d”: Suponiendo que p = 5 y q = 11
n = 55
Φ(n) = 40
“e” y “d” tienen que ser primos relativos. Elijo e = 7
1er método
d = Φ (n)/e d = 40 (+1)/7 (no da entero, no vale)
2º método
(e * d = 1(mod Φ))
7 * d = 1 (mod 40)
d = 23
“e” debería ser primo relativo con Φ(n) mcd (7, 40)=1 (se cumple)
¿Por qué hay que cumplir todas estas relaciones? Supongamos que elegimos P= 3 y
q=11. Por tanto n = 33. Φ (n) = (3-1)*(11-1) = 20 (+1)
Este 33 y el 21 tienen una relación curiosa:
Cualquier número desde 0 hasta el 33 (no incluido), si lo elevamos al 21 obtendremos un número muy grande que al dividirlo por 33 nos va a dar como
resto el número que hemos utilizado. Ejemplo (elijo 2): 2 21 = 2.155.152 2.155.152/33 = 63.550 y el resto va a ser
2. Esto es consecuencia del teorema de Euler-Fermat
Diffie-Hellman
Whitfield Diffie y Martin Hellman, de la Universidad de Stanford, publicaron en
la revista IEEE Transactions on Information Theory de Noviembre de 1976, un
artículo titulado New Directions in Cryptography. En él presentan nociones básicas de la criptografía en clave pública, utilizaciones prácticas de la misma,
y describen el primer criptosistema de ésta rama. Recuerdan también el
trabajo de Ralph Merkle, de la Universidad de California en Berkeley, quién
había llegado a la misma idea de clave pública que ellos. Se utiliza para distribuir claves simétricas, pero no sirve para
confidencialidad, autenticación, ni firma digital.
DSA
En 1991, la relevancia del comercio electrónico provocó que las autoridades
federales estadounidenses, adoptasen a través del NIST (NBS) el estándar de cifrado DSA (Digital Signature Algorithm), que junto con un modo
particular de utilización, recibió, en Mayo de 1994 la calificación de estándar
de firma digital DSS.
El DSA utiliza más parámetros que el RSA para conseguir un mayor grado de seguridad.
Se suele emplear únicamente para firma digital. Para evitar el
problema de la lentitud en los algoritmos de clave pública, la firma
digital hace uso de las funciones hash. Una función hash es una operación que se realiza sobre un conjunto de datos de cualquier
tamaño, de tal forma que se obtiene como resultado otro conjunto de
datos, en ocasiones denominado resumen de los datos originales, de
tamaño fijo e independiente del tamaño original que, además, tiene la propiedad de estar asociado unívocamente a los datos iniciales. Por
ello es prácticamente imposible encontrar dos mensajes distintos que
tengan un resumen hash idéntico.
Distribución de claves:
La distribución de claves no resulta un problema ya que existe una clave pública
que se realiza con la función de ser distribuida, sin embargo se plantea la cuestión
que si la clave pública de una persona “X” es realmente de esa persona. Una forma
de resolver esta cuestión es haciendo uso de lo que se conoce como una tercera parte confiable (trusted third party “TTP”).
El proceso:
Suponemos que utilizamos dos individuos A (Emisor), B (Receptor).
“A” registra acudiendo a la TTP su clave pública, que en este caso, la TTP recibe el nombre de Autoridad de Certificación (AC o CA- Certification
Authority)
La AC genera un certificado que contiene una serie de campos y que será
utilizado cuando “A” desee efectuar una comunicación confidencial con “B”. Cuando “B” reciba esa comunicación confidencial podrá comprobar a través
de la AC la validez del certificado empleado.
Dejando al lado la distribución de claves… En la vida real no se suele utilizar solo un método, si no que se hacen mezclas, por ejemplo utilizando
métodos simétricos para conseguir la confidencialidad y los métodos
asimétricos utilizarlos para distribuir las claves simétricas para la
autenticación, para el no-repudio…
Ejemplo típico: A manda mensaje a B
A cifra mensaje mediante DES (privado), a su vez cifra la clave por RSA (público
“n, e”)
B lo recibe y primero tiene que descifrar la clave por RSA (con su clave privada
“d”), una vez obtenida descifra el mensaje.
Este ejemplo es llamado como envoltura digital sobre RSA.
PROTOCOLOS DE AUTENTICACIÓN:
El factor crítico de los protocolos de gestión de claves es su definición, su seguridad
no depende de los algoritmos criptográficos subyacentes, sino más bien, de la
estructura de los mensajes intercambiados. Las vulnerabilidades surgen de errores de diseño en los niveles superiores de los protocolos, no de debilidades en los
algoritmos criptográficos.
Para un atacante resulta mejor atacar a los protocolos que a los algoritmos de
cifrado, pues hacerlo a los algoritmos exige una ingente cantidad de cálculos,
mientras que un ataque a los protocolos solo exige sutileza. Ataques más frecuentes a un protocolo:
- Clave conocida – reutilización de claves ya conocidas y utilizadas en
anteriores transacciones
- Repetición – reproducción de mensajes anteriores, en su totalidad o en parte - Reflexión – consiste en contestar al autor de un mensaje con el mismo
mensaje, en lugar de dar la pertinente respuesta
- Suplantación – consiste en alegar una personalidad falsa
- Intermediario – suplantación doble, situándose en el medio de dos usuarios legales, e interviniendo activamente el tráfico de ambos
- Diccionarios – ataque usado contra los sistemas de cifrado que utilizan
funciones unidireccionales conocidas, tales como el fichero de contraseñas de
UNIX. Consiste en la confección de un diccionario de los nombres de usuarios
más probables y sus correspondientes contraseñas
Vamos a dividir los protocolos autenticación en dos grandes grupos: Protocolos de
autenticación con clave simétrica y Protocolos de autenticación y establecimiento de
claves de sesión: Protocolos de autenticación con clave simétrica
- Protocolo de identificación por desafío-respuesta
Es el protocolo más simple que se puede construir para verificar mutuamente la identidad de dos participantes en una comunicación. Ambas partes
comparten una clave secreta, distribuida mediante un procedimiento seguro.
El protocolo consiste en intercambiar dos números aleatorios.
Se puede atacar por doble reflexión, suplantando al destinatario e iniciando dos sesiones de comunicación con el emisor.
- Protocolo de autenticación con sello temporal
Es una forma de impedir el ataque por doble reflexión. Al recibir un mensaje,
se descifra y se comprueba que el sello temporal sea fresco, que el
identificador es el propio, y que el emisor conoce la clave, lo cual lo autentifica. El sello temporal evita un ataque por reenvío retardado y evita un
ataque inmediato por reflexión.
Éste protocolo requiere que los relojes locales sean seguros y estén
sincronizados con un reloj central, lo cual desvirtúa de alguna forma su supuesta sencillez.
- Protocolo de autenticación con números aleatorios
En vez de sellos temporales, se aumenta el número de mensajes
intercambiados, lo cual supone una mejora al protocolo de identificación por desafío-respuesta.
Éste protocolo requiere un generador de números aleatorios
criptográficamente seguro.
- Protocolo de autenticación con números aleatorios y funciones
unidireccionales Cuando no es deseable utilizar un algoritmo de cifrado y descifrado, éste se
puede sustituir por una función unidireccional dependiente de una clave. La
comprobación de identidad se lleva a cabo calculando un valor en recepción, a
partir de los datos recibidos y/o conocidos, y debe coincidir con el valor
equivalente recibido.
Protocolos de autenticación y establecimiento de claves de sesión
Cuando no es suficiente con garantizar la identidad de los comunicantes, sino que
se desea también una comunicación cifrada, es menester establecer y distribuir una
clave de sesión, que es la clave de cifrado que se utilizará durante la conexión con
el servidor. El proceso es sencillo si existe una autoridad que actúe como tercera parte
confiable, que comparta una clave particular con cada comunicante individual.
La desventaja de éste protocolo es que obliga a la tercera parte confiable a
abrir una sesión de comunicación con el receptor del mensaje, a que el
emisor deba crear claves aleatorias criptográficamente seguras, y además, que haya que mantener relojes seguros sincronizados.
Como ejemplo de protocolo de autenticación y de creación de claves de sesión, es
el desarrollado por Needham y Schroeder en 1978. Parte de la existencia de una tercera entidad de confianza que actúa como servidor de autenticación
(Authentication Server, AS).
Como ejemplo de protocolo de autenticación y de distribución de claves de sesión, está el llamado Kerberos, desarrollado por el MIT para proteger los servicios de
red que surgieron con el proyecto Athena.
El origen del nombre Kerbero (Cerbero) proviene de la mitología griega y significa
un perro de muchas cabezas, comúnmente tres, quizás con una cola de serpiente, el guardián de la entrada al reino de Hades, el infierno.
Las tres primeras versiones fueron de uso interno, siendo la primera versión pública
la versión 4 (V4), que adoptó su forma definitiva en Diciembre de 1992. Sólo
funciona con direcciones IP. En Septiembre de 1993 se especificó la versión 5 (V5).
El objetivo de Kerberos es permitir que un cliente ejecutándose en nombre de un usuario particular, pruebe su identidad a un servicio o al correspondiente servidor
de aplicaciones, sin necesidad de enviar datos por la red que podrían facilitar que
un atacante suplantase posteriormente al usuario.
Para conseguirlo, Kerberos requiere la existencia de una tercera entidad de confianza que actúe como centro de distribución de claves (KDC) en el reino de
Kerberos.
Después de que un cliente y un servidor se han autenticado mediante Kerberos,
cada servicio que se desee proporcionar, deberá implementar su propio sistema de autorización independientemente de la autenticación. El modelo de Kerberos se
basa en la suposición de que cada servicio sabe mejor que nadie que usuarios
deben estar y cuál es la forma de autorización más apropiada para ellos.
El sistema de autorización asume que el sistema de autenticación usuario/cliente es
fiable. Asimismo, después de la autenticación y la autorización, el cliente y el servidor pueden cifrar todas sus comunicaciones para asegurar la privacidad e
integridad de datos.
En lugar de construir protocolos de autenticación en cada servidor, Kerberos provee
un servidor de autenticación centralizado, KDC, que consta de dos componentes: - Un servidor de autenticación AS, cuya función es autenticar inicialmente a los
clientes y proporcionarles un ticket para que se comuniquen con el servidor de
emisión de tickets (Ticket Granting Server, TGS)
- Un conjunto de TGS, cuyas funciones son proporcionar a los clientes las credenciales necesarias para comunicarse con un servidor final, que es el que
realmente ofrece un servicio
La arquitectura de Kerberos se basa en cuatro objetos de seguridad:
Clave secreta: El “AS” conoce la clave de todos los usuarios y la almacena
en una base de datos. Hay dos tipos de clave secreta:
o Usuario/Cliente o Servidor
Clave de sesión: Las genera Kerberos para utilizar durante la sesión que se
establecen con un determinado servidor. No es necesario utilizarlas durante
toda la sesión, solo si el servidor me la pide. Se podrían utilizar otras claves pero es preferible usar la de sesión para minimizar la exposición de las
mismas.
Tickets: Un ticket es un testigo (token) que se le da al cliente para
garantizar que ha sido autenticado. El ticket incluye el nombre del cliente, un periodo de validez y una clave de sesión para que sea utilizada. Kerberos
siempre proporciona el ticket ya cifrado con la clave secreta del servidor al
que se entrega.
Autenticadores: Son también testigos que realiza/construye un cliente
para enviarlo a un servidor y de esta manera probar su identidad y que la comunicación es actual (timestamp). Solo se puede utilizar una vez para
evitar un ataque por réplica.
Ejemplo (Dibujos Excel): Un cliente desea acceder a un fichero que se encuentra en uno de los servidores no fiables del sistema. Los participantes en el proceso son: el
cliente que desea el fichero, el servidor que lo contiene y un AS.
La relación de acciones a ejecutar es la siguiente:
1. El cliente ha de firmar digitalmente el mensaje por medio del cual solicita el fichero. Para ello utilizará su clave privada de cifrado y la pública del AS, con
lo que se consigue que sólo el servidor fiable leerá el mensaje, y que éste
pueda comprobar su procedencia
2. El software del equipo del cliente se encarga de enviar el mensaje cifrado al AS
3. El AS, cuando proceda, analizará el mensaje, comprobará la identidad del
usuario a través de la firma digital, y comprobará si tiene acceso al fichero
solicitado, consultando la lista de permisos de acceso del mismo
4. Si es posible el acceso al servidor que contiene el fichero, y al propio fichero, el AS se pondrá en contacto con el servidor y le informará del fichero al que
se desea acceder
5. El AS le envía al cliente una copia del ticket, usando la clave pública del
usuario para cifrarlo (para evitar una interceptación). Y también envía una copia del ticket al servidor en el que se encuentra el
fichero solicitado, usando la clave pública del mismo para cifrarlo.
El contenido del ticket es información de acceso y la clave de sesión.
6. El ordenador del cliente y el servidor que contiene el fichero, se ponen en contacto y comparan sus copias del ticket para identificarse mutuamente. En
concreto, el software del ordenador del cliente cifra la copia del ticket con la
clave pública del servidor que contiene el fichero y se lo envía. El servidor
utiliza su clave privada para descifrar el ticket recibido. Si coincide con la
copia que ha recibido del AS, le permitirá establecer la conexión. En caso contrario, la denegará
7. Si los tickets coinciden, el trabajo del AS habrá terminado, el ordenador del
cliente podrá establecer la comunicación con el servidor que contiene el
fichero, y éste, dependiendo de la configuración del sistema, le enviará el fichero cifrado con la clave pública del cliente (que está en el servidor fiable) o
como texto en claro
8. Una vez finalizada la transmisión del fichero, el servidor envía al AS un
mensaje comunicándole tal acción. El servidor fiable descartará el ticket utilizado en la transmisión, para que no se pueda volver a utilizar por parte
del cliente.
CERTIFICADO DIGITAL
Un certificado digital es un documento digital, que da fe de la veracidad de una información mediante una entidad pública, a modo de notario electrónico, lo cual
permite resolver uno de los problemas que surge con los criptosistemas de clave
pública: la suplantación.
La información contenida en el certificado digital, puede hacer referencia a una persona, a un dispositivo hardware, a un software, etc.
La garantía de que la información contenida en el certificado es verídica, se
fundamenta en la seguridad de que quién firma el certificado es una tercera parte
de confianza (Trusted Third Party, TTP). Un certificado digital permite que un usuario firme digitalmente un documento
electrónico, lo que en España tiene la misma validez que la firma manuscrita (Ley
59/2003 de 19 de Diciembre de firma electrónica)
En general los certificados digitales contienen la siguiente información:
Identificación del certificado
Nombre de la TTP que emite el certificado (Ejemplo FNMT-Fabrica Nacional de
la Moneda y Timbre)
Nombre o identificación del usuario del certificado
Tipo de criptosistema de clave pública que emplea el usuario
Clave pública del usuario
Período de validez del certificado
Firma digital de la TTP que avala el certificado
Procedimiento (la forma en la que una TTP firma un certificado):
La forma en que una TTP firma digitalmente un certificado, es la siguiente: - La TTP utiliza la función resumen que se señala en el certificado, y determina
el resumen del mismo
- Firma digitalmente el resumen mediante su clave privada
- Añade su firma digital al final del certificado, como un campo más
Los usuarios pueden verificar la autenticidad de un certificado digital, por medio de
determinadas operaciones criptográficas elementales. En cualquier caso, para
convencerse de la autenticidad de los datos que contiene el certificado, sólo se ha de verificar que la firma digital de la TTP que lo avale, sea correcta.
En concreto, la forma en que un usuario puede verificar que el certificado es válido,
es la siguiente:
- El usuario calcula el resumen de los campos del certificado, con la función resumen que se indica en el mismo, sin incluir lo relativo a la firma de la TTP
- Descifra la firma digital de la TTP mediante la clave pública de la TTP
- Comprueba si ambos valores coinciden. Si la respuesta es afirmativa, el
certificado se considera auténtico e íntegro, pues sólo la TTP puede calcular la firma digital que añade al final del certificado, dado que es la única que posee
su clave privada.
Autoridades de certificación
Una autoridad de certificación, (Certification Authority, CA), es una entidad pública
local, nacional o internacional, o TTP, que elabora certificados digitales, garantiza la
veracidad de su contenido y mantiene información actualizada sobre el estado de
cada uno de los certificados que ha elaborado.
Además, ofrecen los siguientes servicios:
- Almacenamiento seguro de los certificados de los usuarios y su accesibilidad
para que otros usuarios puedan verificar su autenticidad
- Elaboración de las listas de certificados revocados, de modo que se mantenga
al día la información acerca de la validez o caducidad de un certificado
- Forma de distribución de certificados, ya sea de forma presencial o por
conexión a Internet
- Acceso a su política de certificación
- La ruta o cadena de certificación, que es una secuencia jerárquica de nodos
conectados entre sí que permiten a una aplicación conocer el camino que
debe seguir para validar un certificado
- Acceso a su certificado de clave pública, de modo que cualquier usuario pueda
comprobar la validez del certificado de cualquier otro usuario
Si una CA está muy extendida y abarca a una gran población o muy dispersa,
suelen utilizar agentes de registro locales (Local Registration Authorities).
Las CA deberán disponer de una clave pública y de su correspondiente clave privada, de un alto grado de seguridad para resistir los ataques conocidos. Por ello
se recomienda que la longitud de su clave, sea el doble que la longitud de las claves
contenidas en los certificados que elabora. Si una CA proporciona certificados con
clave pública RSA de 1024 bits entonces la longitud de la clave de la CA es habitual
que sea 2048 bits. Antes de emitir un certificado a solicitud de un usuario, la CA debe confirmar la
información que dicho usuario le facilita, para evitar suplantaciones que den lugar a
posibles actividades fraudulentas. Las medidas a adoptar, estarán en consonancia
con el nivel de seguridad del certificado: acceso a determinada base de datos de confianza, presencia física del usuario...
Tipos de CA: - Autoridad de certificación comercial
- Autoridad de certificación privada
La autoridad de certificación comercial, se utiliza cuando no se desea administrar
por sí mismo los certificados.
La autoridad de certificación privada, se utiliza cuando se desea administrar personalmente la entrega de los certificados, ya sea en el interior de la misma
empresa, ya sea cuando se trata con colaboradores.
Certificado X.509
Es un formato estándar de certificación, tanto del Sector de estándares de
telecomunicación de la Unión Internacional de Telecomunicaciones
(International Telecommunication Union – Telecomunication
Standarization Sector, ITU-T), como de la Comisión internacional de
Electrotecnia ISO (ISO / International Electrotechnical Commision, IEC).
La versión actual es la v3, y data de junio de 1996.
Campos:
Existen campos básicos y otros conocidos como extensiones.
Campos básicos:
- Versión: Hoy en día usamos la 3. - Número de serie del certificado: Es un número entero en hexadecimal único.
- Identificador del algoritmo de firma digital: Es el algoritmo que utiliza la CA
para firmar el certificado.
- Nombre del emisor: Es el nombre de la CA. - Período de validez: Por lo general para una clave RSA de 1024 bits suelen ser
2 años, porque es el tiempo que se estima que puede tardar en averiguar la
clave.
- Nombre del usuario: Es el nombre de la persona o entidad a quien pertenece
la clave pública que va a acompañar al certificado - Clave pública del usuario: Es el contenido de la clave pública, así como el
identificador del algoritmo con el que se obtuvo. En el caso del RSA aparecerá
RSA y un par de números (valor de “n” o módulo y valor de “e” o exponente
de cifrado) - Identificador único del emisor: Es opcional. Permite reutilizar nombres de
emisor.
- Identificador único del usuario: Es opcional. Permite reutilizar nombres de
usuario. - Extensiones: Es opcional.
- Firma digital de la CA: Es el resumen que se calcula con el “identificador del
algoritmo de firma digital”. A este resumen se le llama huella digital. Es lo
más importante del certificado
Campos de extensión:
Los campos de extensión tienen tres partes:
El tipo: Se utiliza para indicar si es un texto, una fecha, estructura de datos…
El indicador de criticidad: Se utiliza para indicar si es seguro o no ignorar el
campo de extensión
El valor de la extensión: Como valor de extensión pueden ser: o Restricciones básicas: Una restricción básica indica, si el usuario del
certificado es una CA.
o Política de certificación: Hace referencia a la política que utiliza la CA
y el propósito que persigue. o Uso de la clave: Indica que usos se puede dar y que restricciones
tiene la clave pública. Por lo general el uso que tiene es para firma
digital, para no repudio, para cifrar claves, para cifrar datos, para
cambiar claves, para firmar certificados, para cifrar y descifrar (o solo
cifrar y solo descifrar)…
En España para obtener un certificado debemos
realizar los siguientes pasos: Obtención de un certificado de la FNMT (Fabrica Nacional de la
Moneda y Timbre)
Solicitud del certificado
Acreditación de la identidad Descarga del certificado Copia de la clave privada
Solicitud del certificado CERTIFICADO DE USUARIO
Para obtener el certificado es necesario que realice una serie de configuraciones en su navegador.
IMPRESCINDIBLE:
No formatear el ordenador. Se debe realizar todo el proceso de obtención desde el mismo equipo, con el
mismo usuario y el mismo navegador. No realizar actualizaciones en el equipo mientras dure el proceso.
INTERNET EXPLORER Puede optar por una de las siguientes opciones:
- Configurador FNMT-RCM . Para instalar este software es necesario tener permisos de administrador.
Al instalarlo se realizan las siguientes tareas:
Instala todos los certificados de las CAs raíces e intermedias.
Instala la librería Capicom.
Realiza modificaciones en el registro de Windows para configurar las opciones de seguridad de
su navegador.
- O bien siga las FAQS correspondientes a su Sistema Operativo (Ejemplos con IE 8.x y 9.x):
En el navegador Internet Explorer, vaya a Herramientas/Opciones de Internet/Seguridad.
- Pulsar en "Sitios de Confianza".
- Pulsar en el botón "Sitios".
- Abajo, desmarcar la opción de "Requerir comprobación del servidor (https://) para todos los sitios de la
zona"
- En el cuadro de texto "Agregar este sitio Web a la zona": tendremos que agregar las siguientes URLs
http://*.fnmt.es y https://*.fnmt.es
- Cerrar la ventana
- En "Nivel de seguridad para esta zona" pulse el botón Nivel personalizado. Busque el apartado
"Controles y complementos de ActiveX" y Habilite todas las opciones.
- Aceptar los cambios.
- Cerrar el navegador para que se apliquen los cambios y solicitar de nuevo el código.
Realice su petición.
Después de realizar su petición y la descarga del certificado y si todo es correcto puede volver a
reestablecer las opciones de seguridad.
FIREFOX
Para Firefox es necesario instalar el certificado raíz de la FNMT-RCM, pulse aquí para obtener ayuda
para su descarga e instalación.
AVISO: El resto de navegadores no están soportados.
Acreditación de la identidad Con el código de solicitud del paso anterior, deberá personarse en una oficina de registro para acreditar su
identidad.
AVISOS IMPORTANTES
Durante el proceso de obtención del certificado:
No cambiar el navegador ni el sistema operativo.
No formatear el disco duro
DOCUMENTACIÓN NECESARIA
Si el titular es una persona física, deberá presentar:
DNI o tarjeta de residencia (NIE) para las ciudadanos extracomunitarios
Los ciudadanos comunitarios que no tengan la tarjeta de residencia, presentaran el "Certificado
de Registro de Ciudadanos de la Unión y su Pasaporte"
El registro físico para la obtención del certificado podrá realizarlo en las Oficinas que puede encontrar a través de
nuestro servicio de localización de las OFICINAS MÁS CERCANAS, y en las Oficinas Consulares de carrera de
España en el extranjero, no siendo posible en los registros aduaneros. Entre las oficinas de Registro están disponibles las oficinas de la Seguridad Social y las Delegaciones y
Administraciones de la AEAT. Estas últimas puede consultarlas directamente en el siguiente enlace. Delegaciones y Administraciones de la AEAT
Descarga del certificado Para descargar el certificado debe usar el mismo ordenador, el mismo navegador y el mismo usuario con el que realizó la Solicitud. Si usted ha extraviado su código de solicitud, por favor póngase en contacto con nuestro servicio de Soporte
FORMULARIO DE DESCARGA
Copia de la clave privada Una vez obtenido el Certificado de Usuario, ya puede hacer uso del mismo a través del
mismo equipo y navegador desde el que realizó el proceso. Sin embargo, es altamente recomendable que el usuario realice una copia de seguridad en un soporte extraíble.
Recuerde que al realizar la copia de seguridad se le pedirá un contraseña para proteger el
archivo. Debe custodiar dicho archivo y contraseña ya que en un futuro se le solicitará para
poder utilizar el certificado.
Instrucciones de exportación del Certificado
APLICACIONES PARA CERTIFICADOS
Un usuario puede intervenir en cualquiera de estas capas para conseguir mayor
seguridad:
RED: Si escogemos cableado apantallado ganaremos seguridad, incluso si usamos fibra
óptica evitamos el “pinchado” de la línea.
Podemos actuar en la tarjeta de red obteniendo más seguridad según el modelo
que elija.
PROTOCOLO DE RED: Por lo general los protocolos más seguros suelen ser los que más ralentizan las
transmisiones puesto que necesitan más recursos para ejecutarse.
PROTOCOLOS DE TRANSPORTE:
Tenemos los orientados a conexión o no orientados a conexión. APLICACIÓN:
Puede ayudar a hacer el proceso más o menos seguro. Ejemplo: en vez de usar
HTTP usar HTTPS.
Correo electrónico seguro (e-mail):
Hay que tener en cuenta que cuando escribimos un correo-e para enviar a otra
persona, ese correo va a viajar a través de internet tal y como lo hemos escrito,
con lo cual está expuesto a poder ser interceptado, modificado… Para evitar esto debemos utilizar un sistema de seguridad que por lo general es conocido como un
protocolo de envoltura digital. Estos protocolos me garantizan la confidencialidad
pero no la autenticidad, es decir, no garantiza que la persona que lo envía es quién
dice ser, para ello se recurre a la firma digital.
Por tanto necesitamos un protocolo de envoltura digital y una firma digital. En resumen, un mensaje de correo se puede enviar cifrado, firmado o cifrado y
firmado, usando protocolos como por ejemplo el PGP (Pretty Good Privacy).
¿Cómo lo hacemos? 1. Cada usuario debe solicitar e instalar en su programa de correo electrónico,
un certificado digital emitido por una CA
2. Cada usuario envía a los restantes miembros del grupo un correo de saludo
firmado digitalmente. No importa el contenido del mensaje, lo que pretendemos es simplemente que se reciba. Esto se puede llevar a cabo
porque cuando solicitamos el certificado digital se generó y se almacenó la
clave privada RSA correspondiente a la clave pública, que es la que se incluye
en el certificado X.509 v3. Hay que tener en cuenta que cuando firmamos un
correo, con él también va mi certificado digital que incluye la clave pública.
3. Cuando un usuario recibe el correo de otro usuario, su aplicación de mensajería electrónica se encarga de verificar si el certificado X.509 que lo
acompaña es válido. En caso afirmativo, verifica la firma digital del remitente
y comunica al destinatario el resultado de ambas verificaciones.
4. Si tanto el certificado como la firma son correctos, el usuario almacena en su programa de correo el certificado correspondiente al remitente
5. Cuando todos los usuarios han llevado a cabo los pasos anteriores, ya se
pueden enviar mensajes cifrados y firmados
Para firmar un correo, el cliente de correo tiene que tener acceso a la clave privada
del remitente, la cual estará almacenada de forma segura. Por otra parte si
queremos cifrar un correo, dicho programa debe conocer la clave pública del
destinatario que aparece en su certificado (el cual está instalado en mi ordenador).
En el caso de recibir un correo cifrado y firmado tenemos que tener acceso, para
verificar la firma a la clave pública del remitente. Y para descifrarlo necesitamos la clave privada.
ACCESO SEGURO A PÁGINAS DE INTERNET
El elemento principal en este caso es el navegador, puesto que cuando llamamos a
una página estamos enviando una información a través de internet. Por lo general,
la información que viaja es de público conocimiento pero también está el caso de
que utilicemos el navegador para entrar en algún lugar que requiera autenticarse y lógicamente no nos interesaría que nadie conociese dichos datos privados. En estos
casos nos interesa que la información viaje cifrada y para ello existen protocolos
que lo llevan a cabo. El más utilizado es el SSL (Secure Sockets Layer) (*El socket
es la unión de la dirección IP y el Número de puerto).
SSL ofrece confidencialidad, autenticación, integridad. Cuando navegamos por internet, en vez de poner “http:\” la utilización de este protocolo obligará a poner
“https:\\”. Una vez que se establece comunicación con este protocolo se llevan a
cabo las siguientes fases:
Saludo: Es una negociación entre el cliente y el servidor para ponerse de acuerdo en los algoritmos que se van emplear por debajo del protocolo de
envoltura digital. Por lo general ambas partes suelen elegir lo que resultaría
más seguro en el cliente, porque se supone que el cliente es el más
vulnerable. Este proceso es totalmente ajeno al cliente. Autenticación: Una vez decidido el criptosistema a emplear, el servidor le
envía al cliente su certificado x.509 con su clave pública RSA, si a su vez el
cliente tiene que autenticarse también el cliente envía al servidor el
certificado x.509.
Inicio de sesión/Fase de clave de sesión: El cliente envía al servidor la clave secreta que vayan utilizar si es un criptosistema de clave secreta. Esta
clave irá cifrada con la clave pública del servidor. Cuando el servidor la
recibe la descifra con su clave privada y de esta forma ambos pueden
utilizar la misma clave durante la sesión. Se recomienda que no sea inferior a 128 bits.
Fase de fin: Se trata de cerrar el protocolo SSL. A partir de ese momento el
cliente y el servidor pueden empezar a intercambiarse información sabiendo
que va ir cifrada con la clave de sesión. En ese momento aparece un candando en el navegador.
COMERCIO ELECTRÓNICO (Comercio-e / E-Commerce)
Hoy en día es una aplicación comúnmente utilizada que puede hacer referencia a
una forma de pago. El protocolo de comercio electrónico es muy sencillo, en primer
lugar la empresa que desea vender sus productos a través de internet pone a
disposición una página donde los publicita o presenta. En segundo lugar el usuario analiza esos productos dado que sus características están ahí ponibles y los que
elije los añade a su carro de la compra. Este carro de la compra va creciendo según
se añaden productos, y va indicando el importe de lo que debemos pagar por las
elecciones efectuadas. Una vez que termina de llenarse el carro hay que cubrir un formulario indicando si queremos que nos envíen el producto, si queremos que se
envíe algún sitio y sobre todo indicando la forma de pago.
Básicamente las formas de pago suelen ser:
Tarjetas virtuales
Las tarjetas virtuales son, como su propio nombre indica, tarjetas de pago que no
existen físicamente, y cuyo proceso de contratación no implica la emisión de
plástico.
Hay de dos tipos tarjetas virtuales: anónimas e identificadas. Las tarjetas anónimas no tienen un titular nominal asociado, las tarjetas identificadas sí.
Tienen como elementos identificativos el número de la tarjeta, el código valor de
validación o código valor de verificación (CCV), el PIN asociado y la fecha de
caducidad. Las tarjetas virtuales están exclusivamente orientadas al pago en Internet, y
funcionan en modalidad de prepago, es decir que se realiza una carga antes de su
utilización, y los consumos van siempre contra el saldo disponible, no pudiendo
sobrepasarlo en ningún caso.
TPV Virtual
Terminal punto de venta (en inglés "POS terminal" o "Point of sale terminal").
Consiste en que un establecimiento comercial de venta al público, cuente con sistemas informáticos especializados que ayuden en las tareas de gestión del punto
de venta, mediante una interfaz accesible para los vendedores que se
denomina terminal de punto de venta.
Los TPV permiten la creación e impresión del ticket de venta mediante las
referencias de productos, realizan diversas operaciones durante todo el proceso de venta, así como cambios en el inventario. También generan diversos reportes que
ayudan en la gestión del negocio. Los TPV se componen de una
parte hardware (dispositivos físicos) y de otra software (sistema operativo y
programa de gestión).
3D Secure
Es una forma de pago desarrollada por Visa y Mastercard, que posibilita la
realización de compras seguras en Internet y autentifica al comprador como legítimo titular de la tarjeta que está utilizando.
Para comprar se ha de introducir el PIN secreto usado en los cajeros automáticos, o
bien un nuevo PIN especial solicitado para comprar por Internet, que el banco le
facilitará por teléfono u on-line mediante su correspondiente banca electrónica.
Ya no será necesario el envío por fax de una copia del D.N.I. y del recibo de pago, para identificar al titular de la tarjeta.
PayPal
PayPal es una empresa estadounidense, propiedad de eBay, que permite la transferencia de dinero entre usuarios que tengan correo-e. PayPal es la forma
rápida y segura de utilizar la tarjeta de débito, crédito y cuenta bancaria en
Internet sin compartir los datos de la tarjeta o cuenta bancaria.
Secure Electronic Transaction SET
Si pagamos con tarjeta de crédito el protocolo más empleado es SET. Fue desarrollado por VISA y MASTERCARD. Este protocolo se inicia en el momento en
que se empieza a pagar la compra. Utiliza un criptosistema de clave pública que
incluye la firma digital y cuyos pasos son los siguientes:
1. El cliente rellena el formulario y da la orden de pago: En este apartado van intervenir los datos del pedido y la tarjeta de crédito lógicamente cifrados.
2. El comerciante envía la información de la tarjeta y del importe del pedido a su
banco
3. El banco del comerciante comprueba la validez de la tarjeta del cliente 4. El banco del cliente autoriza el pago de la compra contra la cuenta del cliente
y se lo comunica al banco del comerciante
5. El banco del comerciante autoriza la transacción cuando recibe del banco del
cliente la autorización 6. El comerciante completa la transacción y procesa la compra para que sea
servida al cliente, informando de tal hecho a su banco
7. El banco del comerciante ingresa el importe de la compra en la cuenta del
comerciante y se lo comunica al banco del cliente
8. El banco del cliente carga el importe de la compra en la cuenta del cliente y termina el proceso
DNI ELECTRÓNICO
El 13 de Febrero del 2004 el consejo de ministros aprobó la puesta en marcha en
España del DNI-e. Supone una tarjeta con un chip en el que irán almacenados los
datos del carnet original. La idea que se persigue es que el nuevo DNI sea un medio de identificación con todas las posibilidades de la tecnología digital.
OTROS.
Escaneo o certificado de documentos: Supone convertir ficheros de papel a un
fichero digital. Con garantías y opciones de seguridad. Para ello tenemos que
escanear los documentos, firmamos digitalmente y empleamos un generador de
resumen. Con la firma se consigue conocer quien generó dicho archivo pero no
podemos garantizar que no se ha modificado. Para demostrar que no ha sido
alterados, se emplea el generador de resumen.
Factura electrónica: En este caso, no se parte de un documento en papel. Aunque llamemos factura electrónica, la misma idea es aplicable a contratos-e,
albaranes-e, a memorandos-e, códigos informáticos, programas informáticos… Todo
aquello que sea susceptible de ser almacenado en un fichero electrónico.
Requisitos de todas las facturas-e:
Núm. Factura
Fecha expedición
Razón Social emisor y receptor
NIF emisor y “receptor”
Domicilio emisor y receptor
Descripción de las operaciones (base imponible)
Tipo impositivo
Cuota tributaria
Fecha prestación del servicio (si distinta a expedición)
FIRMA DIGITAL
La firma digital permite al receptor del mensaje verificar quién se lo mandó y que
no ha sido modificado. Autenticación e Integridad, así como el No-Repudio en origen.
Para la firma digital el emisor necesita dos claves (pública y privada), de las cuales
la pública es enviada al destinatario. En segundo lugar somete el mensaje a un
generador de resumen (función hash) no reversible. A continuación utiliza su clave privada para firmar y con ello ya tenemos la clave digital. Seguidamente se toma el
mensaje digital y se envía al destinatario ya firmado.
Cuando el destinatario recibe el mensaje, separa el resumen del mensaje y utiliza
la clave pública del emisor para descifrar el resumen. A continuación somete el
mensaje a la misma función hash para obtener un resumen y lo compara con el resumen que obtuvo con la que le envió el emisor. Si son iguales, tenemos
seguridad de la autenticidad e integridad del mensaje recibido.
El mensaje transmitido no va a proporcionar confidencialidad porque el mensaje
viajó sin cifrar. Si queremos conseguir la confidencialidad debemos cifrar el mensaje. Cuando lo ciframos también empleamos la firma digital y de esta forma
conseguimos el no-repudio.
Para llevar a cabo el proceso de firma partimos de un certificado que debemos
instalar y a continuación emplear un software de firma electrónica como puede ser el “ECOFIRMA”.
TEMA 5: TCP/IP Arquitectura del modelo TCP/IP
Al interconectar sistemas distintos existía el problema de hacer posible la
transmisión de información. Surgió la idea de crear un modelo que sirviese de nexo de unión de todos (Modelo OSI). Este modelo establece una estructura de 7 capas y
con ello se quería que dicho modelo se utilizase por todos.
OSI- Open System Interconnetion. Este modelo tardó mucho en salir a la luz (5
años). Simultáneamente se creó el modelo TCP/IP nacido de la investigación de las universidades. Cuando el modelo OSI estaba terminado, muchos decidieron no
cambiar y quedarse con el modelo TCP/IP.
TCP/IP surgió de ayudas a la investigación que proporcionaba ARPA (Advanced
Research Projects Agency) para poder solucionar los propios problemas que
surgieron en ARPA-NET con la pila de protocolos NCP. El nombre le viene de los 2 protocolos principales de la pila. El primero es el
principal de la capa de Transporte y el segundo, IP, sería el protocolo principal de la
capa de Red.
Principales características de TCP/IP:
Proporciona una serie de estándares de protocolos abiertos fácilmente
disponibles desarrollados independientemente del hardware y de sistemas
operativos específicos.
Independencia del hardware de red. TCP/IP lo podemos emplear sobre Ethernet, sobre ATM…
Esquema común de direccionamiento, de forma que cualquier dispositivo
tcp/ip se pueda comunicar inequívocamente en toda la red.
Ofrece protocolos estándares de alto nivel para servicios de usuarios
consistentes y ampliamente disponibles.
TCP/IP obliga a que la documentación sobre los estándares sea pública. Se definen
que forman TCP/IP en uno de los siguientes medios:
Estándares militares (MIL STD)
Las notas de ingeniería de internet (IEN, ya ha sido abandonada) Solicitud de comentarios (RFC-Request For Comments)
La arquitectura TCP/IP se basa en 4 capas (aunque hay fuentes que dicen que
constan de 5):
Nivel de acceso a la red: Es el nivel más bajo y por tanto el que está en
contacto con el medio de transmisión. Emite al medio de transmisión flujos de bits
y recibe los que de allí proceden. Define como usar la red para transmitir los
paquetes IP.
Las funciones que se realizan son:
Entramado:
Traducciones de direcciones IP y capa física.
Nivel de Internet: Nivel superior al de acceso a la red. Tiene como protocolo
más importante IP (RFC 791) y a continuación ICMP. +------+ +-----+ +-----+ +-----+
|Telnet| | FTP | | TFTP| ... | ... |
+------+ +-----+ +-----+ +-----+
| | | |
+-----+ +-----+ +-----+
| TCP | | UDP | ... | ... |
+-----+ +-----+ +-----+
| | |
+--------------------------+----+
| Protocolo Internet & ICMP |
+--------------------------+----+
|
+---------------------------+
| Protocolo de la Red Local |
+---------------------------+
IP: Ver el documento “Datagrama IPv4 v2”.El protocolo IP realiza las
siguientes soluciones: o Definir el datagrama (IP trabaja con paquetes):
o Definir el esquema de direccionamiento
o Mover la información entre la capa inferior y superior (Acceso
a la red/Transporte) de anfitrión a anfitrión
o Enrutar los datagramas hacia anfitriones remotos. o Fragmentar y resamblar datagramas.
Datagrama:
A continuación vemos un resumen del contenido de la cabecera internet.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Versión| IHL | Tipo Servicio | Longitud Total |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identificación |Flags| Posición |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Tiempo de Vida | Protocolo | Suma de Control de Cabecera |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Dirección de Origen |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Dirección de Destino |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Opciones | Relleno |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Ejemplo de Cabecera de un Datagrama Internet
ICMP: Internet Control error Menssage Protocol. La información nos la
facilita el RFC792. Se usa para enviar mensajes de error o de control, ya sea
a routers o anfitriones (sistema final o destinatario).
-Se va a utilizar para Control de flujo. Source Quench (Apaciguamiento de
la fuente). Se trata del momento en que el destino solicita que se envíen los
datos más despacio ya que se está colapsando el destino.
-Se va a utilizar para la Detección de destinos inalcanzables. Si se recibe este mensaje significa que no se ha podido llegar al destino deseado.
Si lo que es inalcanzable es una red o un anfitrión el mensaje lo envía al
router intermedio. Si lo que es inalcanzable es un puerto, lo que va a ocurrir
es que este mensaje va a ser enviado por el anfitrión de destino al emisor del mensaje.
-Se va a utilizar para Redireccionar mejores rutas. Nos indica que es
mejor utilizar otro router que el que realmente quiere ser utilizado. Solo se
va a usar este mensaje cuando el anfitrión fuente “vea” otro router. -Se va a utilizar para Verificación de anfitriones remotos. Esto es un
“ECHO”(fonéticamente ECO). Se está confirmando que un anfitrión remoto
está a la escucha. Se envía un paquete de “echo” si el destinatario lo recibe,
contesta con un paquete “echo”. -Se va a utilizar para Tiempo excedido. Este mensaje nos llega de parte
de un router indicando que el mensaje está ciclado (en un bucle). Para ver
el tiempo de vida TTL de un mensaje podemos usar el comando TRACERT.
Nivel de transporte: Provee comunicación de extremo a extremo. Desde
un programa de aplicación a otro. Los dos protocolos más importantes de esta capa son el TCP (CO) y UDP (CL).
TCP: (RFC793) *Ver documento adjunto “segmento TCP”.
Proporciona un servicio de envío de datos confiable (CO- Orientado a
conexión) con detección de errores de punta a punta.
El TCP se caracteriza por: o Confidencialidad: Nos da confidencialidad a través de un
mecanismo llamado Positive Acknowledgement with
Retransmision (Reconocimiento positivo con retransmisión). Un
sistema que lo utilice, reenvía la información salvo que el receptor me confirme que le llegó bien.
o Orientado a conexión (CO): Es decir, establece una conexión
entre los que desean transmitir, lo cual provoca una negociación
(handshake) o Orientado a cadena de bytes: TCP controla la secuencia de los
segmentos
TCP utiliza un proceso de negociación en 3 sentidos (three way handshake,
basado en el problema de los 2 ejércitos).
El establecimiento de la conexión sería:
Emisor Receptor
Si el último ACK no llega, estamos en una “conexión medio abierta”, que es
aprovechada para atacar. Este ataque es conocido como “ataque SYN”.
Transferencia de datos: Se mantiene viva la conexión enviando periódicamente un segmento
llamado “keep alive” (mantener vivo). Básicamente se trata de un segmento
ACK sin datos.
Emisor Receptor
Desconexión:
Emisor Receptor
UDP (CL- Conecction Less) RFC768: *Ver documento adjunto “mensaje
UDP”.
No está orientado a la conexión, por tanto no verifica que la información
llegue correctamente a su destino. UDP se utiliza cuando se transmite poca
información.
Nivel de aplicación: En la parte superior de la arquitectura TCP/IP se
encuentra este nivel donde están los protocolos de aplicación. Hay protocolos en los
que se necesita la participación del usuario (por ejemplo FTP) y otros en que no
(como por ejemplo RIP). Los protocolos FTP, TELNET, SMTP por ejemplo se basan en TCP. Otros como OSPF,
RIP… utilizan UDP. Luego hay otros como BGP que no utilizan la capa de transporte
y directamente utilizan los servicios IP.
Cuando me planteo comunicarme entre un anfitrión y otro anfitrión para conseguirlo, utilizamos las direcciones IP. Si lo que me planteo es ir de una red a
otra red, entonces tenemos que acudir a las políticas de
SYN
SYN -
ACK
ACK
FIN -
ACK
ACK
FIN
ACK
ACK
…
enrutamiento/encaminamiento. Si lo que quiero es contactar el software que está
en un anfitrión con el software de otro anfitrión, utilizaremos los socket (Protocolo
(IP) + Nº de puerto).
Direccionamiento IP
Si trabajásemos con Linux, siguiendo la misma estructura del caso anterior,
abriríamos la consola “runcommand / konsole”.
Medidas para solucionar el agotamiento de las
direcciones IP Asignación creativa de direcciones IP
Supongamos que queremos 260 direcciones, obviamente con una clase tipo C no
podemos obtener más que 254 host y me obligaría a comprar una dirección de
clase B (65534 host). Esto sería desaprovechar la red.
Para ello utilizaremos la asignación creativa utilizando la clase C:
Requisito de la Organización Asignación de dirección
Menos de 256 direcciones Una red de clase C
Más de 256 direcciones y menos de 512 2 Redes contiguas de clase C
Más de 512 y menos de 1024 4 Redes contiguas de clase C
Más de 1024 y menos de 2048 8 Redes contiguas de clase C
Más de 2048 y menos 4096 16 Redes contiguas de clase C
Más de 4096 y menos de 8192 32 Redes contiguas de clase C
Más de 8192 y menos 16384 64 redes contiguas de clase C
CIDR
Classless InterDomain Routing (RFC1518): El CIDR permite un uso más
eficaz del espacio de direcciones y para ello, una cosa que hasta ahora era una cosa
muy importante, ahora llega a ser insignificante.
Vamos usar unos prefijos que pondremos detrás de un slash (/) para saber cuál es
la porción de red de la dirección que estemos usando.
Los ISP (Internet Service Provider) realizan el siguiente proceso en tres pasos:
Tomar las direcciones de las que disponen y escribirlas en binario (Ejemplo:
172.20.0.0, 171.21.0.0, 172.22.0.0 , 172.23.0.0)
dirección 172 20 0 0
binario* 1010 1100 0001 0100 0000 0000 0000 0000
dirección 172 21 0 0
binario* 1010 1100 0001 0101 0000 0000 0000 0000
dirección 172 22 0 0
binario* 1010 1100 0001 0110 0000 0000 0000 0000
dirección 172 23 0 0
binario* 1010 1100 0001 0111 0000 0000 0000 0000
Identificar las posiciones que no varían entre todas las redes de las que
disponemos para así obtener el valor de “n”
Copiar los bits coincidentes y añadir 0
172.20.0.0/14 Máscara: 255.252.0.0
EJERCICIO:
El ISP dispone de dos direcciones 192.168.20.0 y 192.168.21.0
dirección 192 168 20 0
binario* 1100 0000 1010 1000 0001 0100 0000 0000
dirección 192 168 21 0
binario* 1100 0000 1010 1000 0001 0101 0000 0000
Dirección CIDR 192.168.20.0/23 Máscara: 255.255.254.0
A esto también se le llama superred o superneting, es una red resumida.
CIDR IPv4
CIDR No. de redes por clase Hosts* Máscara
/32 1/256 C 1 255.255.255.255
/31 1/128 C 2 255.255.255.254
/30 1/64 C 4 255.255.255.252
/29 1/32 C 8 255.255.255.248
/28 1/16 C 16 255.255.255.240
/27 1/8 C 32 255.255.255.224
/26 1/4 C 64 255.255.255.192
/25 1/2 C 128 255.255.255.128
/24 1/1 C 256 255.255.255.0
/23 2 C 512 255.255.254.0
/22 4 C 1,024 255.255.252.0
/21 8 C 2,048 255.255.248.0
/20 16 C 4,096 255.255.240.0
/19 32 C 8,192 255.255.224.0
/18 64 C 16,384 255.255.192.0
/17 128 C 32,768 255.255.128.0
/16 256 C, 1 B 65,536 255.255.0.0
/15 512 C, 2 B 131,072 255.254.0.0
/14 1,024 C, 4 B 262,144 255.252.0.0
/13 2,048 C, 8 B 524,288 255.248.0.0
/12 4,096 C, 16 B 1,048,576 255.240.0.0
/11 8,192 C, 32 B 2,097,152 255.224.0.0
/10 16,384 C, 64 B 4,194,304 255.192.0.0
/9 32,768 C, 128B 8,388,608 255.128.0.0
/8 65,536 C, 256B, 1 A 16,777,216 255.0.0.0
/7 131,072 C, 512B, 2 A 33,554,432 254.0.0.0
/6 262,144 C, 1,024 B, 4 A 67,108,864 252.0.0.0
/5 524,288 C, 2,048 B, 8 A 134,217,728 248.0.0.0
/4 1,048,576 C, 4,096 B, 16 A 268,435,456 240.0.0.0
/3 2,097,152 C, 8,192 B, 32 A 536,870,912 224.0.0.0
/2 4,194,304 C, 16,384 B, 64 A 1,073,741,824 192.0.0.0
/1 8,388,608 C, 32,768 B, 128 A 2,147,483,648 128.0.0.0
/0 33,534,432 C, 65,536 B, 256 A 4,294,967,296 0.0.0.0
Direccionamiento de IP privado y NAT
Ante la escasez de direcciones y los problemas de seguridad, las organizaciones
deciden no utilizar directamente direcciones públicas si no que utilizan las llamadas
direcciones privadas que nos vienen definidas en el RFC 1597. En concreto estamos
ante el uso de direcciones que encajan en uno de los tres siguientes bloques:
Para la Clase A: se utilizan como direcciones privadas la red 10.0.0.0
Para la Clase B: se utilizan de la 172.16.0.0 a la 172.31.0.0
Para la Clase C: se utilizan de la 192.168.0.0 a la 192.168.255.0
Estas direcciones no se pueden usar fuera de las redes privadas. En el RFC1627 nos
indican cómo solucionar esto. Es decir, si un sitio utiliza direcciones privadas y
quiere conectarse a otro sitio que también usa direcciones privadas a través de
internet, tendremos que dirigir nuestras conexiones a un proxy que se encargará de
relacionar estas direcciones privadas con la/las públicas.
La administración pública española hace exactamente lo mismo que los
particulares:
Rango de
direcciones IP Entidad u Organismo
10.1.0.0 Ministerio de Administraciones Públicas
10.2.0.0 Ministerio de Agricultura, Pesca y Alimentación
10.3.0.0 Ministerio de Asuntos Exteriores y de Cooperación
10.4.0.0 Ministerio de Trabajo y Asuntos Sociales
(Subsecretaría de Trabajo y Asuntos Sociales)
10.5.0.0 Ministerio de Industria, Turismo y Comercio
(Secretaría de Estado de Turismo y Comercio / Secretaría
General Técnica –DG Política Pequeña y Mediana Empresa-)
10.6.0.0 Ministerio de Cultura
10.7.0.0 Ministerio de Defensa
10.8.0.0 Ministerio de Economía y Hacienda
10.9.0.0 Ministerio de Educación y Ciencia
10.10.0.0 Ministerio de Industria, Turismo y Comercio
10.11.0.0 Ministerio del Interior
10.12.0.0 Ministerio de Justicia
10.13.0.0 Ministerio de Fomento
10.14.0.0 Ministerio de la Presidencia
10.15.0.0 Ministerio de Sanidad y Consumo
10.16.0.0 -
10.17.0.0
Ministerio de Trabajo y Asuntos Sociales
10.18.0.0 Ministerio de Igualdad
10.20.0.0 Ministerio de Ciencia e Innovación
10.21.0.0 Ministerio de Ciencia e Innovación
10.24.0.0 Reservado
10.25.0.0 -
10.29.0.0
Ministerio de Trabajo y Asuntos Sociales
(Servicio Público de Empleo Estatal)
10.30.0.0 Ministerio de Economía y Hacienda
(Agencia Estatal de Administración Tributaria)
10.31.0.0 Ministerio de Medio Ambiente
10.32.0.0 Ministerio de Economía y Hacienda
(Secretaría de Estado de Economía)
10.33.0.0 Ministerio de Economía y Hacienda
(Secretaría de Estado de Hacienda y Presupuestos)
10.34.0.0 Ministerio de Economía y Hacienda
(Subsecretaría de Economía y Hacienda)
10.35.0.0 Ministerio de Sanidad y Consumo (*) (ver tabla 2)
10.36.0.0 Ministerio de Sanidad y Consumo (*) (ver tabla 2)
10.37.0.0 Ministerio de Sanidad y Consumo
10.38.0.0-
10.38.63.255
Ministerio de Sanidad y Consumo
10.40.0.0 –
10.43.0.0
Ministerio de Defensa
10.44.0.0 Ministerio de Justicia
(Administración de Justicia)
10.45.0.0 Ministerio de Justicia
(Dirección General de los Registros y del Notariado)
10.46.0.0 Ministerio de Sanidad y Consumo (*) (ver tabla 2)
10.47.0.0 Ministerio de Administraciones Públicas
10.48.0.0 Ministerio del Interior
(Dirección General de Instituciones Penitenciarias)
10.50.0.0 Ministerio del Interior
(Dirección General de Tráfico)
10.51.0.0 -
10.54.0.0
Ministerio del Interior
(Dirección General de la Guardia Civil)
10.55.0.0 Ministerio de Industria, Turismo y Comercio
10.57.0.0 Ministerio de Economía y Hacienda
(Dirección General del Catastro)
10.58.0.0 -
10.59.0.0
Ministerio de Economía y Hacienda
(Instituto Nacional de Estadística)
10.60.0.0 Ministerio de Trabajo y Asuntos Sociales
(Servicio Público de Empleo Estatal)
10.61.0.0 Ministerio de Asuntos Exteriores y de Cooperación
10.62.0.0-
10.63.0.0
Ministerio de Defensa
10.64.0.0 Ministerio de Asuntos Exteriores y de Cooperación
10.65.0.0 Ministerio de Vivienda
10.66.0.0 Ministerio de Trabajo y Asuntos Sociales
(Servicio Público de Empleo Estatal)
10.67.0.0 Ministerio de Fomento
10.69.0.0 Ministerio de Asuntos Exteriores y de Cooperación
10.70.0.0 -
10.74.0.0
Ministerio de Defensa
10.75.0.0 IMSERSO
10.76.0.0 -
10.83.0.0
Ministerio de Defensa
10.96.00-10.99.00 Ministerio de Trabajo y Asuntos Sociales
(Tesorería General de la Seguridad Social)
10.120.0.0 Ministerio de Política Territorial
10.121.0.0 -
10.121.3.255
Agencia Española de Protección de Datos
10.121.8.0 Fábrica Nacional de Moneda y Timbre - Real Casa de la Moneda
10.121.16.0 -
10.121.31.255
Casa de S.M. el Rey
10.121.32.0 Defensor del Pueblo
10.121.48.0 –
10.121.63.255
Senado
10.121.64.0 -
10.121.95.255
Tribunal Constitucional
10.121.96.0 -
10.121.103.255
RedIRIS
10.127.0.0 Generalitat de Catalunya – Consorci Administració Oberta i Electrònica de
Catalunya (AOC)
10.128.0.0 -
10.135.0.0
Junta de Andalucía
10.136.0.0 -
10.145.0.0
Gobierno de Canarias
10.146.0.0 -
10.151.0.0
Junta de Castilla y León
10.152.0.0 -
10.157.0.0
Gobierno del Principado de Asturias
10.158.0.0 Consejo de Seguridad Nuclear
10.159.0.0 Junta de Comunidades de Castilla-La Mancha
10.160.0.0 -
10.165.0.0
Junta de Extremadura
10.166.0.0 Comunidad Autónoma de la Región de Murcia
10.167.0.0 Gobierno de La Rioja
10.168.0.0 Gobierno Vasco
10.169.0.0 Comunidad de Madrid
10.170.0.0-
10.171.0.0
Gobierno de Cantabria
10.172.0.0-
10.175.0.0
Consejo General del Poder Judicial
10.177.1.0 Consejo de Estado
10.178.0.0 Generalitat Valenciana
10.179.0.0 -
10.180.0.0
Xunta de Galicia
10.181.0.0 -
10.183.0.0
Comunidad Autónoma de la Región de Murcia
10.200.0.0 Gobierno de Navarra
10.208.0.0 Gobierno de Aragón
10.209.0.0 -
10.211.0.0
Gobierno Vasco
10.214.0.0 Gobierno de Canarias
10.215.0.0 -
10.218.0.0
Govern de les Illes Balears
10.248.0.0 –
10.250.0.0
Ministerio de Presidencia
10.251.0.0 Ministerio de Administraciones Públicas
10.252.0.0 Intranet de la Administración General del Estado
10.253.0.0 Red SARA
10.254.0.0 Ministerio de Administraciones Públicas (Red de Datos del RCP)
Fuente: http://www.csi.map.es/csi/pg3305.htm
Los proxys que van a hacer de intermediarios para poder salir a internet, tendrán
que efectuar lo que se llama “traducción de direcciones”, es decir, convertir esas
direcciones privadas en direcciones públicas. Esto es lo que se conoce como NAT.
El NAT (Network Address Translation) está definido en el RFC3022. Consiste en
cambiar la dirección IP de origen del paquete cuando ese paquete abandona la
organización y también la dirección de destino cuando la operación es la inversa.
Esto se puede conseguir de forma estática (asignación realizada por el
administrador de la red) o dinámica (realizado por el propio software a partir de un
almacén de direcciones).
Surge el problema de saber cuántos quieren salir a internet al mismo tiempo. Si
usamos el NAT estático, cada dirección IP privada tiene que tener una pública, y si
usamos el dinámico el problema estaría en cuantos quieren usar la IP pública
simultáneamente.
Para resolver el problema de acceso simultaneo, aparece el PAT (Port Adress
Traslator). Si se utiliza además del NAT el PAT, lo que se hace es utilizar los
números de puerto para distinguir las distintas peticiones.
EJEMPLO:
Supongamos que queremos establecer una comunicación con CISCO y que en el
router tenemos instalado el NAT.
El paquete a enviar presentará el siguiente contenido (entre otros):
Dirección de origen Puerto de origen (cliente) Dirección de destino Puerto de destino
192.168.1.241 44000 198.133.219.25 80
Recibido este paquete por el Router, se efectúa NAT. Para ello, toma una dirección
pública (ejemplo 70.14.1.1) y efectúa la siguiente conversión:
Dirección de origen Puerto de origen (router) Dirección de destino Puerto de destino
70.14.1.1 60000 198.133.219.25 80
Supongamos que justo en este momento, otra máquina también quiere entrar en
CISCO y le manda el siguiente paquete con el siguiente contenido:
Dirección de origen Puerto de origen (cliente) Dirección de destino Puerto de destino
192.168.1.230 55555 198.133.219.25 80
El router lo convierte:
Dirección de origen Puerto de origen (router) Dirección de destino Puerto de destino
70.14.1.1 50600 198.133.219.25 80
Cuando CISCO conteste, lo hará diciendo:
Tabla de traducción NAT
IP de origen Puerto de origen IP traducido Puerto traducido
192.168.1.241 44000 70.14.1.1 60000
192.168.1.230 55555 70.14.1.1 50600
Llega un paquete con destino al puerto 60000 y después de mirar la tabla, ve que
lo tiene que enviar al 44000 con IP 192.168.1.241
Cuando llega otro con destino al puerto 50600, ve que lo tiene que enviar al 55555
con IP 192.168.1.230
Dirección de origen Puerto de origen (router) Dirección de destino 198.133.219.25 80 70.14.1.1:60000
Los puertos elegidos son al azar.
IPv6 (RFC1983)
Se le conoce también como el “IP new generation” (IPng). Para obtener este
protocolo se formuló una petición de propuestas. Empezaron a cribarlas (eliminando
las menos interesantes) y se quedaron con 3. Tras muchas investigaciones se
seleccionó una de estas propuestas y le llamaron “protocolo simple de internet
mejorado” (SIPP- Simple Internet Protocol Plus), aunque es más conocido por IPv6
(el IPv5 fue un protocolo experimental sin éxito).
Novedades:
El espacio de direcciones pasa de 32bits a 128 bits. En estimación serán
unas 1500 direcciones por cada m2 del planeta.
Direcciones jerárquicas para conseguir tablas de enrutamiento más
pequeñas
Una cabecera con menos campos
Características mejoradas de seguridad e integridad de los datos,
incluyendo: Autenticación y Cifrado
Función de autoconfiguración. Permite que un ordenador obtenga una
dirección IP sin intervención de un humano.
Garantías de calidad de servicio.
Soporte para la computación móvil.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Prio. | Etiqueta de Flujo |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tamaño de los Datos | Next Header | Limite Saltos |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Dirección origen +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Dirección destino +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Cabecera Base Cabecer Opcional 1 … Cabecera opcional n Área de datos
40 Bytes Máximo 65535Bytes
Versión (4 bits-v6): 0110
Clase de tráfico (Prio. 8bits): Clase o tipo de servicio (TOS): Del 0 al 7 para el
tráfico de datos con control de congestión y del 8 al 15 para tráfico de vídeo y audio
sin control de congestión.
Etiqueta de flujo (En el RFC 2460 figuran 24bits pero se emplean 20 bits):
Una secuencia de paquetes desde un emisor a un destino que necesita acciones
especiales en los routers, se les denomina “flujo de paquetes”. La combinación de
la dirección fuente y de esta etiqueta define de forma única a los flujos de
paquetes.
Tamaño de los datos (16bits): Indican como su nombre indica, el tamaño total
incluyendo las cabeceras de extensión que tenemos a mayores de los 40 bytes (no
los 40). Como mínimo son 536 bytes y máximo 64 KB.
Next Header: Va a conducir hasta la cabecera que le sigue a continuación.
Límite de saltos (8 bits): Es lo que se denominaba en IPv4 TTL. Se trata del
número de saltos máximos que le queda al paquete.
Dirección origen (128 bits) y Dirección destino (128 bits)
Una implementación completa del IPv6 comprende la implementación de
las siguientes cabeceras de extensión:
Opciones de Salto a Salto
Enrutamiento (Tipo 0)
Fragmento
Opciones de Destino
Autenticación
Seguridad del Encapsulado de la Carga Útil
Las primeras cuatro están especificadas en este documento; las últimas
dos están especificadas en la [RFC-2402] y la [RFC-2406],
respectivamente.
*Detalladas en archivo adjunto Opciones IP v6.
NO EXAMEN
DIRECCIONAMIENTO DE RED
UNICAST: Identifican a una única interfaz.
MULTICAST: Identifican a un grupo de interfaces, que por lo
general están en diferentes localizaciones.
ANYCAST: Identifica a un grupo de interfaces, pero sin embargo
va a enviarse el paquete a una sola del grupo (por lo general es la más
cercana)
UNICAST (Esta parte no se exige en el examen):
Direcciones Unicast de uso local:
Enlace local
10 bits 54 bits 64 bits
1111111010 Todo 0 ID de la interfaz
Enlace local al sitio (privadas)
10 bits 38 bits 16 bits 64 bits
1111111011 Todo 0 ID de la subred ID de la interfaz
Direcciones Unicast reservadas (RFC 2373 define dos direcciones
reservadas):
Dirección no especificada 0::0 (usada mientras no se tiene
dirección, iniciando)
Dirección de loopback ::1 (equivalente a la 127 en IPv4)
Direcciones Unicast globales agregables:
Funcionan de forma similar al CIDR. Su formato está en el RFC2354:
Los TLA son los responsables del mantenimiento de los niveles superiores de la
jerarquía pública del enrutamiento.
Los NLA los usarán las empresas que tienen asignado un TLA para crear una
jerarquía interna de direccionamiento.
Los SLA permiten que las empresas creen una estructura interna de enrutamiento
independiente de las estructuras externas.
Estructuras de direcciones unicast transicionales:
Las transicionales se han definido para facilitar la transición entre las 2
infraestructuras (IPv4 y IPv6)
Existen 2 (EXÁMEN):
Dirección de Unicast IPv6 compatible con IPv4
80 bits 16 bits 32 bits
Todo 0 Todo 0 Dirección IPv4
Se utilizan en lo que se conoce como túneles dinámicos o automáticos que
consisten en el envío de paquetes de IPv6 sobre estructura de IPv4.
Dirección Unicast IPv6 asignada a IPv4
80 bits 16 bits 32 bits
Todo 0 Todo 1 Dirección IPv4
Estas direcciones están orientadas al túneling. Esto nos permite trasportar
paquetes a través de una región de la red que de otro modo sería imposible
de utilizar, por ello los paquetes que funcionen con IPv4 van a poder viajar a
través de una infraestructura de IPv6.
MULTICAST (RFC 2365)
8 bits 4 bits 4 bits 112 bits
Todo 1
Los 3 primeros reservados (a 0) y el 4º bit si es 0 se trata de una
asignación permanente y si es 1 es temporal (no asignada por la
IANA).
Ámbito: 0 y F reservados
1 Ámbito nodo local 2 Ámbito de enlace local
5 Ámbito de sitio local 8 Ámbito de la organización
E Ámbito global Resto de valores sin asignar
ID del grupo
*IANA- Internet Assigned Numbers Authority
ANYCAST (RFC 2526)
Su sintaxis no se distingue de las UNICAST. Podemos tomar una dirección UNICAST
y asignarla a varias máquinas convirtiéndola en ANYCAST.
ESPACIO DE DIRECCIONES IPv6
Asignación Prefijo
(binario)
Fracción del espacio de direcciones
Reservado 0000 0000 1/256
No asignado 0000 0001 1/256
Reservado para asignación NSAP 0000 001 1/128
Reservado para asignación IPX 0000010 1/128
No asignado 0000011 1/128
No asignado 0000 0 1/32
No asignado 00001 1/16
No asignado 001 1/8
Dirección unicast basada en proveedor 010 1/8
No asignado 011 1/8
Reservado para direcciones unicast basadas en regiones geográficas 100 1/8
No asignado 101 1/8
No asignado 110 1/8
No asignado 1110 1/16
No asignado 1111 0 1/32
No asignado 1111 10 1/64
No asignado 1111 110 1/128
No asignado 1111 1110 0 1/512
Direcciones para el uso del enlace local 1111 1110 10 1/1024
Direcciones para el uso del sitio local 1111 1110 11 1/1024
Direcciones multicast 1111 1111 1/256
REPRESENTACIÓN DE DIRECCIONES IPv6
Para representar las direcciones IPv6 se recurre al hexadecimal. La forma más
acertada de representación es X:X:X:X:X:X:X:X. Las X son valores
hexadecimales de dos octetos cada uno.
La segunda forma de representación es ir suprimiendo los 0 que estén en el medio
seguidos por “::”. Ejemplo: A105:4358:0:0:0:0:0:1843
A105:4358::1843. Esto solo se puede realizar una vez.
Si utilizamos mezclas IPv4 con IPv6 lo que se hace es poner ::IPv4.
NOMBRES SIMBOLICOS
Ante el hecho que las personas tenemos más facilidad para recordar nombres que
números, se establecieron unos nombres para identificar conexiones. Esto obliga a
establecer una equivalencia, es decir, este nombre corresponde a esta dirección.
En la época de ARPANET, esta relación se llevaba en un fichero en la que, por
medio de correos electrónicos, los usuarios daban a conocer los nombres elegidos y
se actualizaba el mismo. Este método se vio desbordado y se planteó el DNS.
El DNS es un sistema jerárquico de servidores que almacenan la información
anteriormente nombrada.
ARQUITECTURA DE ENCAMINAMIENTO DE INTERNET La arquitectura inicial de Internet se construyó a partir de ARPANET. En ARPANET
había una jerarquía de “compuertas de acceso” que suponían un envío centralizado,
lo que daba lugar a la existencia de un núcleo.
Cuando se emplea una estructura jerárquica, toda la información del enrutamiento
pasa a través de ese núcleo. Fuera del núcleo existen redes independientes que se
llaman los AS (Autonomous System) que realmente no son independientes si no
que, se trata de redes que tienen un mecanismo propio para recolectar información
de enrutamiento y pasársela a los otros AS. La información pasada es lo que se
conoce como información de alcance. Para hacer este intercambio de información
se usaba un protocolo que era EGP (Exterior Gateway Protocol).
La parte de Internet que utilizan los militares americanos, sigue utilizando este
modelo de núcleo pero, la parte que no, ha dejado esta filosofía y en vez de
emplear este protocolo utiliza BGP (Border Gateway Protocol) el cual, por medio de
los prefijos permite encaminar la información.
El “nuevo” modelo también se basa en los modelos autónomos pero prefiere
llamarle “dominios de enrutamiento”. Cada dominio intercambia información con los
otros dominios a través del BGP y no depende del núcleo para elegir cuales son las
mejores rutas, es decir, que cada dominio hace su propio procesamiento.
Esto ha permitido la escalabilidad y que Internet siga funcionando.
Lo que tenemos que distinguir, a la hora de hablar de protocolos de enrutamiento,
es entre:
Con clase
Sin clase
Si trabajamos con direccionamiento con clase, al observar el primer octeto
podremos saber a que clase pertenece dicha dirección. Así, si el primer bit del
primer octeto es un 0 sería clase A, con lo cual tendremos 7 bits para identificar la
red y 24 para identificar los equipos cliente/host. (Menos de 128)
Así, si el primer bit del primer octeto es un 10 sería clase B, con lo cual tendremos
14 bits para identificar la red y 16 para identificar los equipos cliente/host. (128 a
191)
Así, si el primer bit del primer octeto es un 110 sería clase C, con lo cual tendremos
21 bits para identificar la red y 8 para identificar los equipos cliente/host. (192 a
223)
Si los 4 primeros bits son 1110 es una dirección de clase D (multicast) y son
normalmente utilizadas por los enrutadores. (224)
Si utilizamos este tipo de direcciones, los protocolos de enrutamiento (con clase),
no necesitan las máscaras para las actualizaciones de las tablas y por lo tanto, no
las incluyen (puesto que analizando el primer octeto ya sabrían dicha información).
Ejemplo RIPv1
Si trabajamos sin clase (/16 /19 /24…), usamos otros protocolos como RIPv2,
OSPF, EIGRP…Éstos necesitan las máscaras (a diferencia de los anteriores) puesto
que, por mirar el primer octeto, no podemos determinar los bits que constituyen la
red.
Al usar subredes se ha mejorado mucho la arquitectura de direccionamiento de
internet pero con la limitación de no siempre adecuarnos a nuestras necesidades,
dicho de otra manera, el usar máscaras de longitud física no siempre permiten
cumplir todas nuestras expectativas, a viva cuenta que la necesidad de direcciones
no es algo que pueda establecerse de una forma homogénea. Por ejemplo, puedo
hacer una subred por cada departamento y eso ya es una mejora al hecho de tener
una red para toda la organización pero la cuestión es ¿todos los departamentos
tienen las mismas necesidades de direcciones? Esto podría solucionarse usando
máscaras de longitud variable: VARIABLE LENGTH SUBNET MASK (VLSM).
EJERCICIO
Una empresa tiene una serie de sucursales que identificaremos como: edificio 1,
edificio 2,.. hasta edificio 14. Las necesidades de direcciones para cada uno de los
mismos son las siguientes:
El edificio 1 necesita 2500 anfitriones
El edificio 2 necesita 450 anfitriones
El edificio 3 necesita 450 anfitriones
El edificio 4 necesita 450 anfitriones
El edificio 5 necesita 2900 anfitriones
El edificio 6 necesita 250 anfitriones
El edificio 7 necesita 250 anfitriones
El edificio 8 necesita 450 anfitriones
El edificio 9 necesita 450 anfitriones
El edificio 10 necesita 450 anfitriones
El edificio 11 necesita 450 anfitriones
El edificio 12 necesita 450 anfitriones
El edificio 13 necesita 250 anfitriones
El edificio 14 necesita 250 anfitriones
Dispone de una IP 172.16.0.0. Aplicando el VLSM, establezca la solución que le
parezca más oportuna
PROTOCOLOS, PUERTOS Y SOCKETS
Una vez que la información se enruta a través de la red para llegar a un anfitrión,
debe mandarse al usuario o al proceso correcto. El protocolo IP para hace esto,
utiliza los números de protocolo para identificar los protocolos de transporte, y
estos utilizan los números de puerto para identificar las aplicaciones.
Los números de protocolo nos aparecen dentro de la cabecera de los paquetes IP,
estos números identifican el protocolo de la capa de transporte a la que debemos
pasarle la información. En Linux, en la carpeta /etc/protocolos existe una tabla
donde, en cada línea aparece el protocolo, número y alias correspondiente.
Una vez que sabemos el número de protocolo, se lo envía a ese protocolo
consultando una tabla (por ejemplo, si le viene un 6 sabe que es TCP, si viene un
17 sabe que es UDP…) y a partir de ese momento toma control dicho protocolo.
Este protocolo lo que hace es mirar el número de puerto (16 bits) y si es el puerto
de origen sabe cuál es el proceso que envía la información, y si es el puerto de
destino, sabe a quién enviárselo. En el caso de UNIX, los números de puerto vienen
en /etc/services y como en el caso anterior, por cada línea tenemos su nombre,
número y alias.
En este momento ya tenemos toda la información necesaria para llegar a la
aplicación. La combinación de la dirección IP y número de puerto se llama socket.
Un socket identifica de modo inequívoco e único un proceso de red, dentro de toda
la INTERNET, y un par de sockets (uno del anfitrión receptor y otro del anfitrión
emisor) definen la conexión (en el caso de TCP).
Existen, dentro de los sockets (zócalos), dos campos:
Dirección IP
Número de puerto
Y dos tipos de sockets:
De corriente (stream): se utilizan con TCP
De datagrama: se utilizan con UDP
(*Aquí se podría hacer referencia al apartado de puertos de los apuntes. Puertos
bien conocidos…)
ESCANEO DE PUERTOS Una de las primeras actividades que realizará un atacante, será sin lugar a dudas,
un escaneo de puertos para así saber que servicios estamos ofreciendo, que
sistema operativo tenemos, que arquitectura de red…
Analizando los puertos que estén abiertos se pueden entonces buscar agujeros en
los servicios que ofrecemos.
Como herramientas para llevar a cabo esto, tenemos el NMAP o STROBE.
EXPLORAR PUERTOS TCP
o Métodos de rastreo estándar
Vainilla connect ( ): Es el más simple y conocido.
Comprueba todos los puertos del sistema. No es una forma
sigilosa (se sabría que lo estamos haciendo), pretendiendo
saber que servicios TCP son asequibles. Podemos emplear el
NMAP para dicha acción (nmap -sT)
Indicador SYN medio abierto: Para establecer una conexión
existe el protocolo de intercambio de 3 vías. Supone enviar un
SYN, responder con un SYN-ACK y contestar con ACK. En el
caso de este rastreo, cuando se encuentra un puerto que se
esté escuchando, se envía un paquete RST/ACK. El RST
provoca la reinicianilización brusca de la conexión y como no
completamos el intercambio de 3 vías, esa tentativa de
conexión, por lo general es aceptada por el servidor. Se puede
provocar con el NMAP (nmap -sS) y también se puede realizar
con el STROBE en sistemas UNIX.
o Métodos de rastreo TCP sigilosos
Rastreo de indicador TCP inverso: Por lo general los IDS
(Sistemas de detección de intrusos), detectan los paquetes
SYN que se envían a puertos sensibles. Utilizar indicadores
TCP mal formados para sondear un objetivo, es lo que se
conoce como técnica inversa, ya que las respuestas que
devuelve utilizan puertos cerrados. El RFC 793 nos dice que si
un puerto está cerrado en un equipo hay que enviar una
RST/ACK para reiniciar la conexión. Aprovechando esto, un
atacante envía paquetes de sondeo TCP mal formados para
provocar el establecimiento de una conexión de forma
indirecta. Se podría realizar utilizando NMAP (nmap -sF) que
provocaría un sondeo FIN o bien (nmap -sX) que provocaría
un sondeo Xmas con los indicadores FIN URG PSH, o bien
utilizar un sondeo sN (nmap -sN) que realizaría un NULL.
Rastreo de sondeo de indicador ACK: Tiene dos técnicas
principales:
Analizar el campo TTL: Lo que hace un atacante es
enviar miles de paquetes ACK a diferentes puertos
TCP. Analizando el valor de “Time To Live” de cada
paquete, puede ver el puerto por el que nos devuelve
la petición al determinar el tiempo que tomó en la
contestación. Con NMAP podríamos hacerlo (nmap -sK)
Si un puerto me contesta en menos tiempo que otro
puerto, esto nos sugiere que ese puerto está abierto.
Analizar el campo Ventana: El proceso es similar
enviándose miles de paquetes ACK a distintos puertos
analizando si en el campo “Windows” existe un valor
distinto de 0. Si es así, es que el puerto está abierto.
Con NMAP podríamos hacerlo (nmap -sW) o
herramientas como HPING2 (hping.org)
o Métodos de rastreo TCP desde terceras partes y con identidad
suplantada
Rastreo de rebote FTP: (FTP bounce) Existen equipos que
tienen el servicio FTP desactualizado. Este rastreo resulta
sumamente peligroso si existe un directorio con derecho de
escritura puesto que podríamos introducir en el una serie de
comandos u otros datos en un fichero y a continuación
transmitirlos a un puerto específico de esa máquina. Por
ejemplo si lo que se desea es introducir un mensaje de
correo-e tipo SPAM, lo que hacemos es poner ese mensaje en
un fichero y lo enviamos al puerto SMTP del servidor de
correo.
Para realizar este ataque, en primer lugar, contactamos con el
puerto 21 del servidor FTP vulnerable. En segundo lugar por
medio del comando “port” se le indica al servicio FTP que debe
conectar con un determinado puerto. En tercer y último lugar
usamos el comando “list” con lo que, el servidor FTP, va
intentar crear una conexión con el equipo que hemos indicado
en el punto 2, éste va a contestar y si lo hace con un 226
entonces significa que el puerto está abierto, si lo hace con un
425 es que está cerrado. Con NMAP lo haríamos con nmap –
P0 –b.
Rastreo de rebote en proxy: (proxy bounce) Este es un
ataque que se realiza a través de servidores proxy abiertos.
Suele llevar bastante tiempo hacerlo por lo que muchos
asaltantes, primero atacan el proxy y luego realizan los
ataques desde dentro. Con nmap no se podría realizar.
Rastreo de identidad suplantada basada en sniffer: Es un
método de rastreo de puertos SYM medio abiertos que coloca
la tarjeta de red en modo promiscuo. Se puede obtener
utilizando suplantaciones de identidad (spoofing)
redireccionando los ARP.
Rastreo de cabecera del identificador IP: (idle o dump)
Involucra a tres equipos, el equipo donde comenzamos el
rastreo, el equipo objetivo y el equipo “zombie” (también
llamado “idle”) que es un servidor conectado a internet que va
a realizar las consultas para averiguar los puertos abiertos.
Podemos realizar este rastreo con el VSCAN, HPING2 o el
NMAP por las opciones nmap –bO –sI.
EXPLORAR PUERTOS UDP
Debido a que UDP es un protocolo connection Less (CL- Sin conexión), para
poder enumerar los servicios accesibles tendríamos dos posibilidades:
Enviar paquetes de sondeo UDP a los 65535 puertos, esperar los
mensajes y analizar cuales nos vienen identificados por “no
alcanzables”, para así saber, los que si lo son.
Utilizar un programa como por ejemplo snmpwalk para enviar
datagramas a servicios específicos y esperar la respuesta.
Herramientas para puertos UDP: snmpwalk, nmap –sU, scanudp
ELUDIR IDS (Sistema de detección de intrusos) Para eludirlos (a los IDS), tendremos que utilizar una de las 2 tácticas siguientes:
Usar paquetes fragmentados de sondeo (ejemplo Echo): Muchos
IDS no son capaces de procesar grandes volúmenes de paquetes
fragmentados, porque al hacerlo supondría un ralentizamiento de todo el
sistema. Para hacerlo, tenemos herramientas como: fragroute, fragtest,
nmap –sS.
Suplantación de identidad (Spoofing: utilizar direcciones IP falsas):
consiste en suplantar la identidad para simular múltiples equipos falsos que
ejecutan rastreos de red. Cuando el IDS recibe numerosos intentos de
sondeo, al empezar a analizar, podríamos conseguir que alguno de ellos se
colase. Para hacerlo podríamos usar nmap –D
BURLAR EL FILTRADO Para burlar el filtrado se puede mandar paquetes mal formados o fragmentados,
porque muchas veces esas reglas de filtrado no saben qué hacer con ese tipo de
paquetes, sin embargo lo que más se emplea para burlar el filtrado es una o las dos
siguientes técnicas:
Uso del direccionamiento de origen: *Hay dos opciones en el
datagrama IPv4 que son: enrutamiento fuente débil y enrutamiento fuente
estricto. (documento adjunto “Datagrama_IP_v4_V2”)
En el caso del débil, estamos indicando por donde han de pasar los
paquetes, sin excluir otros enlaces, en cambio en el enrutamiento fuente
estricto, solamente pueden pasar por esos lugares, con lo cual esas redes
tienen que poder ver esas direcciones.
Si un atacante analiza esta opción, puede determinar por donde tendría que
ir el flujo de información y podría también alterarlo a su conveniencia. Para
hacerlo existen varias herramientas : LSNscan, LSNtunel
Uso de puertos TCP o UDP de origen específicos: En este caso la
técnica consiste en determinar unos puertos de origen que suelen ser el 53
(para DNS, tanto en TCP como UCP), el 20 (FTP, para TCP), el 80 (HTTP,
para TCP) y el 88 (Kerberos, tanto para TCP como para UDP).
Esta técnica analiza las respuestas obtenidas de dichos puertos. Para hacerlo
nmap –g “número de puerto”. Con ello podremos aprovechar para intentar
burlar el sistema utilizando sus respuestas.
CONTRAMEDIDAS CONTRA EL RASTREO DE REDES
- Filtrar los distintos tipos de mensaje ICMP de entrada en los routers y
firewalls con conexión al exterior - Filtrar todos los mensajes ICMP de entrada de tipo 3 (puerto destino no
alcanzable), en los routers y firewalls con conexión al exterior
- Configurar los firewalls de conexión a Internet de forma que se puedan
identificar rastreos de puertos y regular las conexiones
- Evaluar la forma en la que los firewalls e IDS (Sistema de detección de intrusos) gestionan los paquetes IP fragmentados, cuando se realizar
ejercicios de rastreo e investigación
- Garantizar que los mecanismos de direccionamiento y filtrado (routers y
firewalls), no puedan ser eludidos utilizando puertos de origen específicos o técnicas de direccionamiento del origen
- Si se albergan FTP accesibles públicamente, hay que comprobar que los
firewalls no son vulnerables a ataques relacionados con un mal formato de los
comandos PORT y PASV - Si se utiliza un firewall comercial, hay que asegurarse de que tenga instalado
el último service pack, y que tenga definidas correctamente reglas
antispoofing
- Evaluar por medio de servidores proxy inversos, si se precisa de un nivel de seguridad alto
- Por medio de rastreo de puertos TCP y UDP, y sondeos ICMP contra el espacio
de direcciones IP propio, conocer la configuración de la red y de los puertos
accesibles públicamente
TEMA 6: SEGURIDAD EN INTERNET INTRODUCCION A LA SEGURIDAD EN INTERNET
El gran impulso de la implantación de internet provino de las tres w. World Wide
Web. Las tres w permiten:
Acceder a recursos (Bases de Datos, Ficheros, fuentes de información…)
Abrir posibilidades de negocio (comercio-e)
Permitir la integración de los sistemas de información de la organización, a
través de las intranet, ahorrando costes de infraestructura.
Obviamente habrá personas que quieran hacer un mal uso de estas posibilidades y
que lo pueden hacer en gran número, por tanto debemos tomar medidas de
seguridad garantizando:
La seguridad de acceso (que solo puedan acceder a mis servicios, quien yo
quiera)
La seguridad de la información (que mientras viajan los datos no puedan ser
alterados, no se pierdan y que no se divulguen más allá de lo que yo tenga
previsto)
SERVICIOS Y AMENAZAS EN INTERNET
La mayoría de los servicios de internet se basan en el modelo cliente/servidor. Los
programas cliente se suelen ejecutar en los ordenadores personales y los
programas servidores se suelen ejecutar en ordenadores más potentes con
sistemas operativos multitarea con el fin de atender a todos los clientes. Pero una
misma máquina puede albergar muchos servidores. Realmente la palabra servidor
identifica un programa que da un servicio y siempre está escuchando las peticiones
de los clientes (daemons o demonios) por unos puertos. Los daemons son
programas que escuchan por los puertos para ver las peticiones de servicios.
Servicios que se suelen facilitar:
Servicio web
Correo-e
FTP
TelNet
Noticias
Información sobre personas
Servicios de conferencias
Servicios de nombres
Servicio para administración de redes
Servicios de hora
Sistemas de ficheros de red
Sistemas de ventanas
SERVICIO WEB: (World Wide Web – Telaraña mundial) El protocolo que se
utiliza, es un protocolo realizado nuevo para dicha función (HTTP). HTTP: Hyper
Text Transfer Protocol. Se trata de hiperenlaces o hipertextos. La web lo que hace
es analizar la pantalla y provocar el enlace con distintos tipos de documentos
(textos, imágenes, sonidos…). Cuando se habla de asegurar el servidor web,
debemos saber que los navegadores, y también los servidores, son muy difíciles de
asegurar ya que la web se basa en la flexibilidad, este hecho provoca que se
dificulte su control. Se dice que una de las cosas más peligrosas que se puede
hacer con un ordenador, es conectarse a internet, descargar un programa y
ejecutarlo.
Un servidor web confiable debe asegurar:
El servidor y los datos que contiene: que no nos alteren lo que tenemos
almacenado y el poder seguir trabajando a pesar de lo que pueda ocurrir
La información que viaja entre el servidor web y el cliente: La
información que proporciona el cliente al servidor (su nombre, claves, datos
financieros) no pueden ser modificados, ni siquiera leídos, por terceros.
Para ello utilizaremos protocolos criptográficos
Los sistemas de los usuarios: Que aquello que descarguen los usuarios
no les va a suponer ningún tipo de daño.
Para conseguir asegurar el servidor y los datos:
Garantizar que los usuarios autorizados para acceder al sistema puedan
realizar su trabajo y solo ese trabajo.
Restringir el acceso al servidor. Esto conlleva una parte física (donde está
situado) y otra lógica (quién puede iniciar sesión en él). Por ejemplo, si
permitimos realizar TelNet, usaremos el TelNet Kerberizado (Kerberos). Hay
que tener en cuenta que HTML y los navegadores, me permiten, a través de
la web, acceder a otros servicios, como por ejemplo FTP o TelNet. Esto
puede ser utilizado para saltarse elementos de seguridad como un Firewall o
un Router de protección.
Para conseguir asegurar la información:
La información que viaja al servidor suele ir en texto en claro y, si a esto le unimos
que no tenemos control sobre las rutas por las que va ir la información, vemos que
no es un problema sencillo. Entonces podemos hacer:
Asegurar físicamente la red (para que no se pueda “pinchar”)
Ocultar la información que tenga información que tenga importancia, dentro
de otra que no tenga importancia
Cifrar la información (Clave privada). Esta última opción, es la más práctica.
Otro riesgo que corre esta información es lo que se conoce como DoS (Denial of
Service-ataque de denegación de servicio). Se puede provocar:
Porque se corta un cable
Porque hay un fallo en las tablas de enrutamiento
Porque alguien bombardea a un servidor con miles de peticiones por
segundo, evitando que las peticiones buenas puedan pasar. Este último
aspecto, está derivado de la forma en que trabaja TCP/IP. Un atacante envía
un mensaje SYN solicitando una nueva conexión sobre un puerto, esto
supone que comience la negociación de los parámetros de conexión y por
tanto el servidor contesta con un SYN-ACK (recibió un SYN y continua
negociando), en este momento queda una conexión medio abierta y en
condiciones normales el cliente contestaría con un ACK terminando con el
periodo de negociación entrando en la fase de trasferencia de información
pero, nuestro atacante, no va a responder. El servidor va a esperar un
tiempo predeterminado y le va a volver a mandar otro SYN-ACK, así hasta 5
o 6 veces. Al acabar estos intentos, se cierra esta conexión. Si esto que ha
sucedido, se realiza miles de veces, desbordaremos al servidor haciéndolo
caer.
Para conseguir asegurar el usuario:
El uso de ficheros por sí solos, no constituyen una amenaza (salvo cuestiones
legales de derechos de autor), lo que ocurre, es que para que las web sean más
interactivas, se han promovido una serie de tecnologías como JavaScript, como los
Applets de Java, ActiveX y Plug-ins. Debemos tener en cuenta que hay elementos
que nosotros no podemos evitar utilizar, porque si no, no podríamos usar esas
aplicaciones. Para resolver eso, veremos los programas que realmente
necesitamos:
Script CGI (Common Gateway Interface): Los script son programas que
residen en el servidor y se ejecutan cuando el cliente ejecuta una cierta
petición (formularios, clientes de correo…). El problema estaría en que el
CGI no esté bien programado y que permita que el cliente acceda al
sistema,
Java: Funciona en los navegadores porque los programas se ejecutan en una
máquina virtual Java. Se podría decir que es como un pequeño ordenador
que ocupa muy poco (aprox. 220KB) y que suele venir incluido en un
navegador de internet. El problema es que cualquier programa se puede
ejecutar de la misma forma sin importar la plataforma de la que procede o
en la que se haya previsto instalar, es decir, Java convierte al navegador en
un sistema de ejecución de software y no en un simple visor de textos y
gráficos. Obviamente Java es consciente de esto y lo que hacen es, para
apaliar este problema, provoca la ejecución de sus programas en un sitio de
la memoria llamado “cajón de arena” (sandbox) y tiene una serie de
restricciones de seguridad, que limitan lo que los Applets pueden hacer,
como ser:
o Establecer que no se pueda trabajar con ficheros en la máquina del
cliente salvo que el cliente lo permita
o Solo poder conectar a través de internet con la máquina que envió el
Applet.
Si se pueden sufrir ataques a pesar de esto, pero está bastante controlado
ActiveX: Son como controles (OLE) muy específicos que permiten descargar
pequeños objetos ejecutables (fue creado por Microsoft en contra partida a
Java). La seguridad de ActiveX está basada en la firma digital. Nuestro
navegador nos dice que alguien quiere descargar algo y si accedemos a
realizar dicha acción. El problema está en el desconocimiento de quién envía
dicho objeto. Podemos comparar los ActiveX con los Applets de Java, lo que
pasa es que los Applets de Java se ejecutan en la sandbox, mientras que los
de ActiveX tienen acceso total al sistema operativo Windows. Eso supone
que tengan más poder y hacerlos más peligrosos.
Pluggins: Son trozos de código que tenemos que añadir a los navegadores
para obtener un servicio como por ejemplo el de Adobe.
CORREO-e: El correo electrónico es muy similar al postal, pero es muy fácil
falsificarlo. Usa el protocolo SMTP (Simple Mail Transfer Protocol), y en sí mismo,
no es un problema de seguridad. El problema está en los servidores SMTP porque
se le puede dañar al servidor para que ejecute un script que suponga por ejemplo:
tener entrada al archivo de contraseñas, tener una puerta trasera (backdoor)…
Los problemas más habituales con el correo-e son:
Inundaciones inadvertidas (Cadenas de cartas)
Inundaciones maliciosas (SPAM)
Envío de datos confidenciales
Que el correo contenga virus, caballos de troya, gusano
Cuando descargamos el correo, utilizamos además otros protocolos como POP3,
IMAP4 o HTTP. Cuando introducimos la contraseña para ver nuestro buzón de
correo, no se le envía al servidor SMTP porque es un protocolo muy antiguo que,
cuando se creó, no se tenía en cuenta la seguridad y se partía en la confianza sobre
el usuario. SMTP no verifica el usuario. Esto hace que los servidores SMTP usen
otros métodos para autenticar. Cuando se envía la contraseña a un servidor POP,
se envía el texto plano (suele haber asteriscos u otros elementos que la
enmascaran, pero viajan en formato que se pueda leer). Los correos electrónicos
también viajan en texto plano…
Si sumamos todo lo que acabamos de decir podemos ver que no se trata de un
método para nada seguro. Visto lo visto, nos tendríamos que plantear medidas
adicionales y pensar en los certificados digitales.
Los certificados digitales me van a permitir el no-repudio y la integridad de los
datos. A mayores, como medida de seguridad, lo que podemos hacer es cifrar el
correo. Lo que pasa es que en algunos casos puede llegar a ser ilegal dependiendo
de los países (por motivos de terrorismo).
FTP (File Transfer Protocol): También es uno de los protocolos más antiguos. Es
un servicio muy utilizado por la rapidez y facilidad para usarlo. El problema está en
la seguridad del sitio FTP. Lo que se recomienda es no acudir a sitios FTP no
reconocidos, y cuando se descargue algo, se guarde, se analice y después se
ejecute.
Existen los FTP anónimos (anonymous FTP) que permitan acceder a un área FTP
pública sin que podamos acceder al resto del sistema.
Además del protocolo FTP existen otros protocolos para transferir ficheros :
o TFTP (Tribial Fail Transfel Protocol): Se suele utilizar en estaciones que no
tienen disco duro, no soporta la autenticación, con lo cual es bastante habitual
que sufra ataques. En consecuencia, salvo que se tenga extrema necesidad,
no se recomienda su uso.
o UUCP (Unix to Unix Copy): Este es un protocolo muy antiguo que se utilizaba
para transferir ficheros a través de módems. Hoy en día se utiliza algo a
través de internet. Se emplea sobre todo en los servidores de noticias o
correo-e.
o FSP (File Service Protocol): Es un protocolo de transferencia de ficheros pero
que permite poder obviar algunas de las deficiencias del FTP. Por ejemplo, si
una transferencia se me bloquea por FTP, generalmente por el FSP se puede
pasar. A los administradores de red, este protocolo no les interesa (ya que si
es posible que salte algo bloqueado…)
o Rcp: Es un mecanismo que permite transferir ficheros entre sistemas. No se
considera apropiado para utilizarlo a través de internet puesto que la
autenticación que efectúa es validar o comprobar la dirección IP del que
genera la solicitud en lugar de validar el usuario en la máquina remota.
Telnet: Nos permite utilizar un equipo remoto como si fuese un equipo
directamente local. Telnet es un estándar de internet para el acceso remoto y la
limitación que tiene es que solo proporciona acceso a aplicaciones basadas en
caracteres. Inicialmente se consideraba un servicio seguro porque pide autenticarse
pero envía toda la información sin codificar (texto en claro), con lo cual es muy
vulnerable. Existen otros programas además de Telnet como por ejemplo rlogin
(remote login), rsh, on. El problema de estos tres es que solo los podemos utilizar
en un ambiente confiable, puesto que permite que los usuarios tengan acceso sin
tener que autenticarse.
Noticias (usenet): Usenet no es propia de internet, lo que ocurre es que utiliza
para el tráfico internet y por ello se acaba considerando un servicio de internet. Las
noticias se agrupan formando grupo de noticias o newsgroups y es similar al
correo- e pero con la filosofía de muchos a muchos. Hay quién lo compara con un
tablón de anuncios.
Los riesgos son similares a los del correo-e. El protocolo que se utiliza es el NNTP
(Network News Transfer Protocol).
Información sobre personas: En internet no tiene un sistema adecuado para
buscar información sobre las personas que están en la red. Es decir, no hay un
sitio, donde decir para esta persona, este es su correo-e. Sin embargo hay dos
servicios que me ayudan de cierta manera para hacerlo, que son:
Finger: Busca información sobre un usuario que tenga una cuenta en la
máquina que estamos consultando independientemente de que haya iniciado
sesión en ese mismo momento. No es necesario conocer exactamente el
nombre y apellidos. Por lo general permite hacer búsqueda por cadenas de
caracteres. Y, si ni siquiera sabemos eso, también ofrece información sobre
todas las personas que tengan cuenta en esa máquina. El problema de
finger es que puede dar información a los intrusos, por lo cual, muchas
veces finger se bloquea.
Whois : El whois es similar a finger pero lo que hace es obtener información
de anfitriones a lo largo de todo Internet y se podría comparar con las
páginas blancas de la compañía de teléfonos.
Servicios de conferencias en tiempo real: Tanto el correo-e como los servicios
de noticias, fueron diseñados para comunicaciones asíncronas, es decir, que
funcionan aunque no estemos conectados en ese momento. Los servicios de
conferencias están diseñados para funcionar en modo interactivo. Como ejemplo de
esos servicios tenemos talk, IRC, MBONE.
talk: Es el más antiguo de conferencias en tiempo real que se utilizan en
internet (talk es hablar y chat es conversación) y permiten que dos personas
mantengan una conversación. Una de las dos partes inicia una sesión talk
especificando la dirección de la otra persona, de la misma forma que una
dirección de correo electrónico. La otra persona recibirá un mensaje en
pantalla diciendo que cierta persona solicita una conversación, explicando
cómo hay que contestar. Cuando la otra parte contesta es cuando se
establece la conexión.
IRC: (Internet Relay Chat) Es muy similar a lo que realizan los
radioaficionados (en las que varias personas participan en la conversación).
Para hacerlo funcionar, tendríamos que instalar un cliente IRC o bien, a
través del Telnet, entrar en un sitio que tenga un servicio de cliente IRC. Los
servidores IRC blindan canales para que los usuarios se unan a ellos. La
diferencia con el talk, que son dos usuarios, en el IRC pueden participar un
gran número de personas.
El problema del IRC, lo mismo que con el talk, es quién lo usa.
MBONE (Multicast Backbone): Es un conjunto de servicios en internet, que
me permiten ampliar las posibilidades de talk y de IRC, para así poder incluir
audio, vídeo, etc. En este momento es un servicio bastante seguro. MBone
(IP Multicast Backbone) es una red virtual a nivel mundial que utiliza la
técnica multicast y cuyo principal uso es la transmisión de vídeo y audio de
forma óptima sobre Internet. A diferencia del sistema habitual de
transmisión unicast empleado en Internet, donde los paquetes se
intercambian entre dos estaciones extremo a extremo uno-a-uno, la
comunicación multicast permite el envío de paquetes de información de uno-
a-muchos optimizando la carga que reciben las estaciones transmisora y
receptoras así como el ancho de banda entre los enlaces que las unen. De
esta manera son habituales las transmisiones de conferencias desde
cualquier punto conectado al troncal y donde desde el equipo que se utiliza
para recibir la transmisión se puede intervenir, si se desea, en el turno de
preguntas, o bien mantener sesiones interactivas entre varios participantes.
Todo ello utilizando el mismo equipo que se utiliza para otras aplicaciones
ofimáticas en el trabajo.
Servicio de nombres: Se encargan de traducir los nombres que usan los humanos
a direcciones IP que usan las máquinas. Existe el servicio DNS (Domain Name
System). DNS no es un servicio a nivel de usuario pero da servicio a otros servicios
que utilizan las personas/usuarios. El riesgo de DNS radica en que muestre más
información de la que tenga que dar. Por ejemplo permite que muestre información
sobre el hardware y el software que se está utilizando, lo cual no interesa que lo
conozca un atacante.
Lo que tenemos que hacer es que esa información esté disponible para los
anfitriones internos y para los externos de forma controlada.
Debemos tener cuidado y utilizar un DNS interno, y luego utilizar nombres de
anfitrión para la autenticación, porque un atacante podría instalar un “DNS
mentiroso”. Para evitar esto se utilizan los siguientes métodos:
Usar direcciones IP en lugar de nombres cuando las personas tengan que
autenticarse.
Dar la autenticación a usuarios en lugar de anfitriones en los casos de los
servicios más sensibles, porque las direcciones IP también se pueden
falsear.
Algunos sitios utilizan las páginas amarillas de SUN que es el servicio de
información de red, yellow pages (NIS/YP- network information service/Yellow
Pages). Se utiliza para distribuir inernamente información de los nombres de
anfitrión. Este servicio es para UNIX. El servicio equivalente en Windows tenemos el
Active Directory.
Servicio para administración de redes: Existen diferentes servicios para
administrar redes, aunque no suelen ser servicios para que los usen usuarios
normales, si no que son servicios para ser utilizados por administradores de red.
Las dos herramientas más comunes de este tipo son:
PING
TRACER
Ambas utilizan el protocolo ICMP. ICMP se implementa a bajo nivel como parte
inseparable de los protocolos TCP/IP. En principio ni con PING ni con TRACER
existen riesgos de salida.
Se pueden utilizar para ataques DoS, aunque por lo general se suelen utilizar para
saber que anfitriones existen y a partir de ahí realizar otro tipo de ataques. Lo que
se suele hacer es limitar los paquetes entrantes de este tipo, por medio de un
filtrado de paquetes. Existe un protocolo (SNMP – Simple Network Management
Protocol) diseñado para facilitar la administración centralizada de los equipos de la
red. (Los sistemas servidores lo instalamos a través del panel de control/agregar o
quitar programas/herramientas de administración – En Windows 7 es cuestión de
activarlo)
Servicio de hora: Existe un protocolo de hora de red llamado NTP (Network Time
Protocol). Es un servicio de internet que pone en hora, con una gran precisión, los
relojes de un sistema. Esto es necesario para:
Cuando se examinan los ficheros de registro de distintas máquinas, poder
localizar accesos no deseados.
Evitar ataques de repetición (kerberos depende de la sincronización de la
hora para autenticar).
Utilizar NFS con éxito
Sistema de ficheros en red: Existen varios protocolos para montar sistemas de
ficheros que están en otros ordenadores, con lo cual, podemos acceder a ficheros
remotos y podemos organizar entradas simultáneas. Este establecimiento es
bastante sensible porque estamos leyendo datos de un fichero sin muchas veces
tener que realizar una autenticación adicional. Los sistemas de ficheros en red más
habituales son:
NFS (Network File System): Su característica más interesante es que
proporciona respuestas muy rápidas. Se suele usar más para redes de área
local.
ASF (Andrew File System): Es un sistema que ofrece gran confidencialidad,
respuestas rápidas y que tolera mejor el bajo rendimiento (trabaja muy bien
con máquinas lentas). Se suele usar más para redes WAN, de área amplia.
En cualquiera que sea la elección que usemos, es importante configurar el sistema
de forma adecuada, para que no puedan actuar en los ficheros, más allá de lo que
nosotros consideremos adecuado.
Sistema de ventanas: La mayoría de las máquinas UNIX, proporcionan un
sistema de ventanas basado en X11. El acceso a redes a través de X11, me
proporciona una interfaz gráfica de usuario, que es algo que no proporciona Telnet.
El problema es que lo lleva a cabo proporcionando acceso a todas las capacidades
igual que si estuviésemos sentados frente a la máquina. Un intruso que tiene
acceso a un servidor X11 podría:
Obtener descargas de pantallas
Leer las teclas que está pulsando el usuario (incluyendo contraseñas)
Inyectar pulsaciones de teclas
De forma predeterminada, los servidores X11, utilizan la autenticación basada en
direcciones (en el caso de que la empleen). Aunque es cierto que si quisiéramos,
podríamos obtener una autenticación más estricta (aunque rara vez se utiliza)
VIRUS EN INTERNET
Los virus es uno de los mayores problemas que existen en internet puesto que
miles de máquinas se pueden ver afectadas a gran velocidad. Otro peligro
multiplicado por internet, estriba en la facilidad de ejecutar programas sin que el
usuario se percate. Hasta hace poco, los virus solo se propagaban a través de los
programas ejecutables (.exe .com) y sabíamos a qué atenernos. Pero con la
aparición de los contenidos ejecutables en internet de la mano de Active X, Applets
de Java, Scripts o guiones, Plugins… esto ha cambiado y la frontera de lo que es un
programa ya se difuminó.
Esto ha permitido la creación de virus de html, es decir, virus cuya entrada al
sistema simplemente se producen por mirar una página. Los daños que pueden
ocasionar dependerán de lo que incluyan o para lo que estén programados.
La puerta de entrada más habitual para infectar a los equipos suele ser el correo-e.
Nuestro buzón es un foco de peligro potencial. A esto contribuye que haya
programas de clientes de correo que me permiten, no solamente redactar mensaje
de correo, si no también incluir botones, formularios y otros elementos que amplían
todavía más ese peligro. Tenemos que tener en cuenta lo siguiente:
Algunos clientes de correo me permiten descargar ficheros directamente de
la web.
Algunos clientes de correo me permiten incrustar objetos dentro del mensaje
en sí.
La posibilidad de lanzar automáticamente programas escritos en lenguaje de
Script profundizan más en el problema.
La capacidad de insertar mensajes dentro de otros mensajes (mensajes
anidados). El problema de éstos es que los antivirus suelen parar en el
primero y no siguen la cadena
…
Medidas de protección:
No abrir nada que resulte sospechoso, que venga de un destinatario
desconocido o sencillamente que no sea esperado. Es muy importante que
los “Asuntos” sean lo suficientemente indicativos de lo que muestra el
mensaje.
Cuando recibimos un fichero, no se debe abrir, primero se ha de almacenar
y analizar con un antivirus.
Si pese a que el antivirus no detecte nada, seguimos teniendo dudas,
conviene no ejecutarlo.
A mayores podemos complementar estas medidas:
Formando a los usuarios
Tener un antivirus actualizado
Tener copias de seguridad
Para la elección del antivirus nos podemos plantear:
Utilizarlo para proteger estaciones: estaremos consumiendo recursos en esa
estación, ir por cada máquina para hacerlo, no vamos a proteger
directamente el servidor y, por lo tanto, no suele ser una opción muy
utilizada.
Utilizarlo para proteger el servidor: controlando lo que sale del servidor.
Consume recursos en el servidor, no protege la información que esté
ubicada en las estaciones y, por lo tanto, tampoco suele ser la más
interesante
Utilizarlo para proteger las estaciones y los servidores: se trata de la
solución ideal pero supone un mayor esfuerzo y uso de recursos.
Finalmente hemos de ser conscientes que en los últimos tiempos es bastante
habitual recibir correos en los que nos hablan sobre un peligro potencial y sería
conveniente que lo remitiésemos a nuestros conocidos. Esto se conoce como hoax
(engaño), y se tratan de amenazas falsas, con propósito de crear miles de correos
ocupando el ancho de banda de los servidores de correo.
INGENIERÍA SOCIAL
Para proteger los sistemas, disponemos de una serie de medidas:
Firewalls
Discos espejo
Antivirus
Las redes privadas virtuales (VPN)
SAI o UPS
Sin embargo, la clave fundamental de la seguridad está en el usuario. Muchas
veces un exceso de confianza y otras veces el desconocimiento, pueden hacer
vulnerable un sistema independientemente de la protección hardware o software
que tengamos.
La ingeniería social es una técnica muy empleada por los hackers, crackers… y no
hacen uso de ningún elemento software ni hardware, si no que se basa en la
psicología y persuasión del que ataca. Así, detrás de la llamada de un técnico a un
empleado, o de otro empleado que necesita ayuda, o de un administrador que debe
modificar algún dato de un usuario, se puede esconder un atacante.
La ingeniería social no solo se limita a que alguien me pueda atacar, si no que
muchas veces es una forma de introducir troyanos. Existen los troyanos tipo “Back
Orifice” (Orificio trasero) que suelen entrar a través de los IRC en los que el
atacante le envía un troyano a su víctima haciéndole creer que es para su beneficio.
Hay otras técnicas que se utilizan para introducir virus con HTML que consisten en
que el navegador lance un mensaje preguntando si queremos ejecutar un código
necesario para ver correctamente la página web. Una de las últimas técnicas es
superponer una ventana encima del aviso del navegador y que deje al descubierto
solamente los botones de “Si” o “No”, esto es conocido como “Espartano” y se suele
realizar para mostrar un mensaje muy trivial ocultando el verdadero mensaje
advirtiendo el riesgo de aceptar.
Para protegernos de todo esto podremos recurrir principalmente a la desconfianza.
PROTOCOLOS DE SEGURIDAD
En las distintas capas de TCP/IP existe la posibilidad de establecer controles de
seguridad en función de los datos que vamos a manejar y en función de la
seguridad que se necesita.
Existe una serie de protocolos que integran mecanismos de seguridad ampliamente
utilizados para solucionar esos problemas:
Redes privadas virtuales (VPN) Protocolo de seguridad de IP (IPSec)
SSL
Secure HTTP (SHTTP)
SET
Redes privadas virtuales (VPN): Si internet es una nube y muchas estaciones están
conectadas a internet, podamos establecer conexiones privadas protegiéndolas
de posibles “escuchas”. Permite transmitir datos de manera segura por una red
no segura. Por ejemplo, permite que los empleados de una empresa se conecten a través de un ISP y enlazarse de forma segura con su organización. Las VPN transportan los datos a través de un túnel (tunneling). Existen tres tecnologías disponibles para crear redes privadas virtuales:
IPSeC (IPSP) : Internet Protocol Security. *Se muestra más
alante
PPTP: Point to Point Tunneling Protocol. Fue desarrollado por
Microsoft y se basa en el protocolo PPP, pero a diferencia de éste, permite crear un enlace virtual que atraviese redes públicas o redes
privadas. El cifrado de datos comienza justo después de la
autenticación PPP. Las conexiones PPTP utilizan un método de cifrado
basado en RSA. L2TP: Layer 2 Tunneling Protocol : Es también una herramienta para
túneles que se desarrollo como una mejora de PPTP por el propio
Microsoft con unión de Cisco, Ascent, IBM y 3Com. Una de sus
características más interesantes es su protocolo multienlace que permite conectarnos a 2 conexiones de ISP distintas. El cifrado de datos
empieza antes de la conexión PPTP y se suele utilizar en unión
IPSec para negociar una asociación de seguridad.
Para trabajar con L2TP se necesita: o PSK (Preshared Secrets- Secreto Compartido)
o Certificados tanto en el cliente como en el servidor (PKI-
Public Key Infraestructure)
o Hibrido como RADIUS
Las conexiones L2TP/IPSec utilizan DES (Data Encryption Service)
En el caso de utilizar certificados, debemos importarlos previamente a las
máquinas en las que los vamos a utilizar.
Ejemplo práctico:
Lanzamos la consola con MMC
Archivo: Agregar o quitar complementos/Certificados/Agregar
Se puede hacer un certificado desde Inicio/Todos los
programas/Microsoft Office/Herramientas de Microsoft/Crear Certificado
Digital Ahora crearemos una VPN:
Panel de control\Todos los elementos de Panel de control\Centro de
redes y recursos compartidos\Configurar una nueva conexión de red
Conectarse a un área de trabajo Usar mi conexión a Internet (VPN) Configurar más tarde
Poner la IP con quien conectarse y un nombre que lo identifique. Siguiente
Nombre de usuario y contraseña para conectarse. Siguiente
Me indicará que la conexión está lista para ser usada
Ahora en la lista de dispositivos de red (Panel de control\Redes e
Internet\Conexiones de red), pulsamos botón derecho propiedades
sobre la conexión: General: No hay nada que modificar
Opciones: se recomienda desmarcar “Incluir el dominio de inicio de
sesión de Windows”
Seguridad: Se escoge el tipo de VPN (nosotros L2TP/IPSeC o PPTP) Seguridad: Cifrado Opcional para ganar velocidad
Seguridad: Desactivar CHAP en caso de L2TP/IPSeC (Protocolo de
autenticación por desafío mutuo y se deja CHAP v2)
Seguridad Configuración Avanzada: podemos escoger que vaya por
certificado o a través de una clave escogida por nosotros por L2TP/IPSeC.
Protocolo de seguridad de IP (IPSec): IPv4 no contempla funciones ni mecanismos de seguridad. Desde 1992 existe un grupo de trabajo llamado
IPSeC que es el encargado de normalizar “Internet Protocol Security Protocol”
IPSP y el IKMP “Internet Key Mannagement Protocol”. Este grupo se creó para
incorporar sus resultados a IPv6 pero también se adaptaron a IPv4. IPSP me va a permitir establecer VPN a nivel de red. Lo más destacado en cuanto a la
seguridad que presenta se basa en la caducidad de las claves y su renovación.
Su objetivo es facilitar interoperactividad y seguridad criptográfica. Por
seguridad nos estaremos refiriendo a:
Control de acceso Integridad
Autenticación
Confidencialidad
Protección contra los ataques por repetición
Todos estos servicios se prestan a nivel IP (a nivel de la capa de red),
permitiéndonos no solamente seguridad para IP sino también para los
protocolos superiores (TCP, UDP, HTTP, FTP…).
Para llevarlo a cabo:
Garantiza que todos los mensajes que se reciban procedan de equipos
catalogados como “conocidos”
Garantiza la integridad de los datos (que no puedan ser modificados)
Identificará cada paquete IP mediante una firma digital impidiendo que otro usuario pueda reutilizar un mensaje para iniciar una sesión
(posiblemente utilizando credenciales robadas)
Garantizará la confidencialidad de forma opcional codificando los
paquetes para que viajen por la red de forma que, solamente el que
tenga la clave, podrá leerlo.
IPSeC tiene dos modos de funcionamiento:
Modo transporte: Protege los datos cuando viajan desde la capa de
transporte a la capa de red. Se suele utilizar para comunicar
ordenadores dentro de la misma red.
Modo túnel: Protege el paquete IP completo. Se usa
fundamentalmente para construir VPN. Para ello, toma el paquete IP y le antepone otra cabecera, autenticando y/o cifrando todo el paquete
IP.
IPSeC realiza sus funciones mediante dos mecanismos:
Cabecera de autenticación (AH- Authentication Header): Permiten
asegurar la autenticidad del origen de los datos. Así como la integridad
de los paquetes mientras se transmiten. En algunos casos también nos permiten garantizar el no-repudio en origen.
Los datos seguros encapsulados (ESP- Encapsulating Security Payload)
Ambos mecanismos o protocolos se pueden usar independientemente o de forma conjunta.
El ESP es un mecanismo que proporciona:
o Confidencialidad (Opcional)
o Autenticación e Integridad (Opcional) o Protección contra reproducción (Opcional por parte del receptor)
o Confidencialidad parcial del flujo de datos
Aunque la confidencialidad y Autenticación-Integridad son opcionales,
obligatoriamente debemos elegir una de las dos.
La parte central de IPSeC son las asociaciones de seguridad (Security
Associations-SA). Estas asociaciones de seguridad que definen las condiciones de seguridad que se van a usar en la conexión se almacenan en una base de
datos llamada SAD (Security Associations DateBase).
La asociación se inicia mediante el protocolo ISAKMP. ISAKMP establece un
marco para el establecimiento de claves y autenticación. Ejemplo para realizar un ping bajo un sistema de seguridad en Windows 7:
Panel de control\Todos los elementos de Panel de control\Firewall de
Windows
Configuración avanzada Reglas de seguridad de conexión/Nueva regla Tipo de regla: Personalizada. Siguiente Paso
Extremos: Agregaremos las máquinas involucradas. Siguiente Paso
Requisitos: Dejaremos que solicite autenticación para conexiones entrantes y salientes. Siguiente Paso
Método de autenticación: Propiedades avanzadas/Personalizar y
agregaremos en el primer campo una clave conocida por nosotros
Protocolos y puertos: ICMPv4 (ya que vamos a hacer un PING)
Perfil: Aquí indicamos a quien queremos que se realice esta regla (dejaremos por defecto todos marcados)
Nombre: El nombre dado a la regla creada y su descripción
La misma regla se debe crear en la otra máquina
En un servidor con este comando: netdiag /test:ipsec /v /debug se puede ver
por línea de comandos el funcionamiento. SSL
Secure Sockets Layer. Fue introducido por Netscape y trata de reconstruir o
ampliar el nivel de sockets añadiendo características de seguridad que permitan
que la relación cliente servidor se pueda establecer de una forma segura, a través de un canal inseguro como es internet.
Cuando un cliente y un servidor se comunican entre sí, cada uno de ellos
establece un socket SSL (socket del lado cliente y socket del lado servidor)
estableciendo así un canal seguro por encima de la capa de transporte. Hoy en día se está utilizando la v3 de SSL.
En resumen, lo que hace SSL es una nueva capa sobre la de transporte y por
debajo de la de aplicación, de forma que, cuando un servidor la utiliza, usa un
puerto distinto (443).
El propósito de SSL es que el usuario no tenga que preocuparse de la criptografía y así, en vez de mostrarse el protocolo HTTP se verá HTTPS.
Proporciona:
Confidencialidad (utiliza DES, RC2, RC4) Autenticación (RSA, DSS)
Integridad (MDM5, SHA1)
Además de estos servicios básicos también me proporciona:
Separación de responsabilidades: cada cosa que hace, la realiza un protocolo diferente y cada uno con sus propias claves
Eficiencia: cifrar y descifrar es algo costoso y que en el caso del SSL en
lugar de hacerlo por cada comunicación entre el cliente y el servidor,
almacena lo que se conoce como “secreto maestro, que conserva entre las conexiones
Autenticación en base a certificados: como el x.509
Proporciona protección de ataques de “hombre en el camino” (man in
the middle) y ataques de reproducción
Soporte de compresión: cuando los datos cifrados no pueden
comprimirse, la ventaja del SSL es que permite comprimirlos antes de cifrarlos
…
En el navegador podemos comprobar si es soportado por el.
Secure HTTP (SHTTP) Secure Hiper Text Transfer Protocol. Es una extension del HTTP desarrollado
por la IETF (Internet Engineering Task Force- Grupo de Trabajo de Ingenieros
de Internet). Nos ofrece a nivel de la capa de aplicación, servicios de seguridad
aplicables de forma independiente para:
Confidencialidad
Autenticación-integridad
No-repudio
Es un protocolo simétrico y totalmente compatible con HTTP. No es necesario
utilizar claves públicas (lo podemos utilizar con criptografía simétrica) y a diferencia de SSL, SHTTP solo afecta a HTTP sin poderse extender a otros
protocolos.
Las características:
Hizo surgir una nueva URL que es “shttp” Los servidores que reciban peticiones de clientes sin cifrar o con un nivel
de seguridad insuficiente, van a recibir el mensaje 401
Los mensajes los podemos proteger con firma digital, autenticación,
cifrado o cualquier combinación de los 3. El protocolo permite comprobar el tiempo de validez de los mensajes
…
SET Secure Electronic Transactions. Transacciones electrónicas seguras. Apareció en
1995 desarrollado por Master Card, VISA y el apoyo de compañías como
Netscape e IBM.
Las características de este protocolo son:
Es un protocolo abierto (open). No tiene cuestiones de licencias y llega a ser asumido como un estándar.
Utiliza el algoritmo RSA para cifrar, autenticar y para firma
digital.
Cuando se utiliza este protocolo participan:
El titular de la tarjeta de crédito proporcionada por un banco emisor
La entidad bancaria/banco emisor donde habrá una cuenta para el
titular de la tarjeta y garantizará que se paguen las transacciones
autorizadas por el titular El comerciante o vendedor de los artículos o servicios mediante pago
electrónico. Este comerciante debe tener relación con en el banco
adquiriente.
El banco adquiriente donde tiene una cuenta el comerciante donde
procesará las condiciones de pago Pasarela de pagos. Es un dispositivo que gestiona el banco adquiriente,
o bien un tercero designado a ese efecto, que proporciona un servicio de
comercio-e, para los comerciantes. Procesa los mensajes de pago
incluyendo las instrucciones de pago que proceden del titular de la
tarjeta.
La marca de la tarjeta de crédito. (VISA, MasterCard,...) Es la entidad
que ofrece el sistema de pago, dando nombre a la tarjeta Autoridad de certificación. Es el que creará y distribuirá los certificados
que utilizarán todos los involucrados.
SET utiliza técnicas criptográficas para proporcionar:
Autenticación de los comerciantes
Autenticación del titular de la tarjeta de crédito
Confidencialidad de la información
Integridad
SET contiene tres niveles de seguridad:
Primer nivel: Supone que solo los bancos que intervienen tienen claves
públicas/privadas.
Segundo nivel: Los bancos y los comerciantes tengan entre ellos
claves públicas/privadas. Los vendedores darán un recibo y este debe
tener validez.
Tercer nivel: Los bancos, los comerciantes y los clientes tengan sus
propias claves públicas/privadas.
TEMA 7: SEGURIDAD EN LENGUAJES Y
APLICACIONES PROGRAMACIÓN SEGURA
La programación segura, es una rama de la programación cuyo objetivo es
estudiar la seguridad del código fuente de un programa para encontrar
errores y solucionarlos.
Introduce una metodología, o conjunto de buenas prácticas, basada en una serie de
principios básicos que afectan a la arquitectura, diseño y desarrollo de programas.
La intención de dicha metodología es la de reducir la existencia de problemas de
seguridad en el código, garantizando los principios básicos.
Una política de seguridad se define en base a los siguientes conceptos de seguridad
de la información: confidencialidad, integridad y disponibilidad.
Confidencialidad: Es el hecho de que la información solamente sea accesible
por aquellos que deban tener acceso. (Norma ISO-17799)
Integridad: Es el hecho de que los datos no puedan ser
alterados/modificados, tanto cuando están almacenados como cuando están
viajando por la red.
Disponibilidad: Es el hecho de que “algo” este disponible cuando lo
deseamos. Los sistemas tienen fallos y periodos de inactividad planificados.
Los fallos son inevitables pero los periodos de inactividad planificados suelen
realizarse normalmente para instalar parches, reiniciar el sistema como
consecuencia de configuraciones que se han realizado.
Una vulnerabilidad es un error en un sistema que permite violar la política de
seguridad definida para el mismo. La ruptura de una política debido a la existencia
de una vulnerabilidad, se logra al utilizar un ataque o exploit que aprovecha dicha
vulnerabilidad para romper la política.
Los ataques o exploits suelen aprovechar desbordamientos de pila, errores en las
estructuras o flujo de datos y errores de software en general.
Si se analiza el aprovechamiento de la vulnerabilidad se definen dos tipos:
− Aprovechamiento remoto: permite a un atacante hacer uso de la
deficiencia de la vulnerabilidad, desde una máquina diferente a la
comprometida (aquella en la que está presente la vulnerabilidad)
− Aprovechamiento local: donde, un atacante, usuario de la máquina
comprometida, podría usar la vulnerabilidad para, por ejemplo, escalar
privilegios (convirtiéndose en administrador) o romper la licencia de un
programa protegido.
Otra característica de una vulnerabilidad son las consecuencias que puede acarrear
la existencia de la misma. Una vulnerabilidad puede desembocar en una denegación
de servicio que impida que la máquina comprometida atienda peticiones de otras
personas afectando a la disponibilidad de la máquina. La vulnerabilidad podría, por
otro lado, permitir la ejecución de código permitiendo al usuario, por ejemplo,
extraer datos comprometiendo la confidencialidad; modificar los datos violando la
integridad; o afectar a la disponibilidad de la máquina forzando un reinicio o
provocando su apagado.
Ciclo de vida de una vulnerabilidad:
Las vulnerabilidades se modelan con un ciclo de vida, o al menos, se intentan
modelar los eventos asociados a la vulnerabilidad y el impacto de las etapas en la
seguridad.
El término "ciclo de vida" sugiere la existencia de una progresión conocida y lineal
que permite pasar de un estado a otro, en cambio, el descubrimiento y la
explotación de una vulnerabilidad no siempre sigue un patrón ordenado.
Pese a esta falta de determinación, una vulnerabilidad atraviesa en general los
siguientes estados:
Nacimiento: momento en el que se comete el error en el código. Puede tratarse
de un error cometido al comienzo (al programar por primera vez la aplicación) o
puede aparecer como resultado de alguna modificación, actualización o aumento de
funcionalidades.
Descubrimiento: sucede cuando se descubre la vulnerabilidad. Esta etapa ocurre
cuando el software está desplegado. El descubrimiento puede producirse por
inspección del código, como parte de una auditoría o simplemente por terceras
personas que por casualidad o de forma sistemática encuentran la vulnerabilidad.
Publicación de la vulnerabilidad: la vulnerabilidad se publica en Internet. Si la
vulnerabilidad es descubierta por el creador del software puede posponer la
publicación hasta la existencia de un parche que la corrija, de forma que se
minimicen los riesgos. No obstante, muchas vulnerabilidades son descubiertas por
terceros que informan al mismo tiempo al creador como al resto del mundo.
Aparición de un parche: el creador del software, o un tercero en el caso de
código abierto, publica un parche que corrige el error de la vulnerabilidad.
Publicación de un parche: el parche se publica para que todos los sistemas
afectados se actualicen.
Automatización de la explotación: la vulnerabilidad se automatiza y se publican
exploits más sencillos de usar que atacan dicha vulnerabilidad. Estos programas
pueden hacer uso del ataque de forma automática.
Análisis de vulnerabilidades:
Un programa inseguro o vulnerable es aquél que contiene una o varias
vulnerabilidades. Un atacante hace uso de esas vulnerabilidades mediante un
exploit que genera una entrada maliciosa. Esa entrada maliciosa puede tener
diferentes consecuencias dependiendo de la vulnerabilidad como la manipulación de
otros sistemas o el envío al atacante de información sensible.
Uno de los ataques más conocidos que utilizan estos problemas es el
desbordamiento de buffer (buffer overflow). Se produce cuando un área de
memoria dónde se pretende almacenar la entrada de usuario no es lo
suficientemente grande para contenerlo y provoca que se sobrescriban regiones de
memoria adyacentes. La escritura en esta zona adyacente puede ser imprevisible,
pero bien realizado, este ataque puede permitir al atacante obtener acceso al
sistema, cerrar la aplicación o hacer que el sistema realice operaciones no
previstas.
DESARROLLO SEGURO
Hay varias técnicas para minimizar el impacto de las vulnerabilidades.
En términos generales, la seguridad debe estar incluida en el ciclo de vida de un
programa desde el diseño hasta su retirada.
Los principios básicos de deben seguirse en el desarrollo de una aplicación para
evitar estas vulnerabilidades son:
Mantener el diseño de la aplicación simple: porque es más fácil de
auditar y reparar.
Código abierto: siempre que sea posible, será recomendable proporcionar
el código para beneficiarnos del conocimiento común
Uso escalonado de los privilegios: hay que tomar como norma, el usar
siempre los menores privilegios posibles, elevándolos únicamente cuando
sea necesario y volviendo a la situación anterior cuando deje de serlo
Valores seguros por defecto: evitar, por ejemplo, que un usuario esté
autenticado hasta que verifiquemos la contraseña.
Reutilización de código: si un código se probó y se sometió a distintos
entornos, y funcionaba correctamente, esa es la mayor garantía para
volverla usar.
Elección del lenguaje de programación idóneo: existen lenguajes que
realizan controles en tiempo de ejecución para evitar un desbordamiento de
búfer. Por ejemplo ADA, dispone de comprobación en tiempo de ejecución, e
incluso, en tiempo de compilación. Por ejemplo Java, comprueba el tamaño
de todas las cadenas…
Utilización de librerías seguras: existen librerías (añadidos de
información) que me permiten comprobar si estamos dando pie a efectos
indeseados como desbordamientos.
Protección del espacio de ejecución: se refiere al hecho de ejecutar los
programas en un entorno, en el que si se produce una inserción de código
de forma no autorizada, que se genere una excepción.
...
SEGURIDAD EN LENGUAJES DE PROGRAMACIÓN
Cuando se utiliza un lenguaje de programación para llevar a cabo un desarrollo, es
necesario tener en cuenta cuáles son las características de seguridad que éste nos
proporciona. Actualmente existen lenguajes que incorporan un gran número de
funcionalidades, tales como gestión automática de memoria o comprobación de
tipos de datos; y otros lenguajes que no han sido diseñados teniendo en cuenta la seguridad de forma explícita y, por tanto, las opciones de seguridad que incorporan
son escasas.
Por otra parte, para desarrollar una aplicación segura no basta con entender y
conocer las funciones de seguridad del lenguaje utilizado. Como veremos, para ello hay que analizar la aplicación, su entorno y sus componentes e incorporar la
seguridad en todas las fases del proceso de desarrollo: desde la definición de la
aplicación, hasta su despliegue y durante su funcionamiento.
Un lenguaje de programación es un lenguaje artificial diseñado para dar instrucciones a una máquina (ordenador, teléfono móvil, etc.) La mayoría de estos
lenguajes tienen una especificación escrita que define su sintaxis y semántica.
Los lenguajes más populares son:
En lo que se refiere a seguridad, los lenguajes pueden clasificarse básicamente
atendiendo a si han sido diseñados considerando la seguridad o no. A los primeros
se les denomina lenguajes con seguridad incorporada (built-in security) y
proporcionan funciones tales como comprobación del código o prevención de accesos ilegales a memoria.
SEGURIDAD EN JAVA
Desde su creación, el entorno Java ha tenido presentes los problemas de seguridad
y ha definido un modelo para controlar y limitar el acceso a los recursos desde los
programas y aplicaciones. El modelo de seguridad ha ido evolucionando con las
distintas versiones del Entorno de Desarrollo Java (de aquí en adelante denominado
JDK, por sus siglas en inglés), pasando de un modelo muy sencillo y restrictivo, el
del JDK 1.0, a uno más complejo y flexible.
El proceso de despliegue de una aplicación en Java consta de varios pasos. Primero
se escribe el código del programa según la sintaxis del lenguaje. A continuación,
este código es compilado para generar ficheros en formato binario (Java bytecode)
que serán posteriormente interpretados y ejecutados. Durante el proceso se
realizan verificaciones en busca de problemas, tanto en tiempo de compilación
como en tiempo de ejecución, para asegurar que solamente se ejecuta código Java
legítimo y que cumple una serie de reglas.
Durante la compilación se efectúa la comprobación de tipos, que ayuda a detectar
errores lo antes posible en el ciclo de desarrollo. Java obliga, además, a la
declaración explícita de métodos, reduciendo así las posibilidades de error.
Los programas Java se ejecutan en un entorno protegido conocido como la máquina
virtual de Java o JVM. La JVM es una de las piezas fundamentales de la plataforma
Java y se sitúa en un nivel superior al Hardware del sistema sobre el que se
pretende ejecutar la aplicación, actuando como un puente que entiende tanto el
bytecode, como el sistema sobre el que se pretende ejecutar. Así, cuando se
escribe una aplicación Java, se hace pensando que será ejecutada en una máquina
virtual Java en concreto, siendo ésta la que en última instancia convierte de código
bytecode a código nativo del dispositivo final.
La seguridad en Java se basa en tres componentes fundamentales del entorno de
ejecución: el Cargador de Clases (Class Loader), el Verificador de Archivos de
Clases (Class File Verifier) comprueba el formato de los fragmentos de código y
aplica una serie de reglas para detectar fragmentos de código ilegal y el Gestor de
Seguridad (Security Manager) que controla el acceso a los recursos en tiempo de
ejecución.
Por otro lado, la arquitectura de seguridad de Java incluye una serie de librerías de
programación (Application Programming Interfaces, APIs), así como herramientas e
implementaciones de los mecanismos, protocolos y algoritmos de seguridad más
utilizados. Las APIs de Java abarcan criptografía, infraestructura de clave pública
(Public Key infraestructure, PKI), autenticación, comunicaciones seguras y control
de acceso.
SEGURIDAD EN C
El lenguaje de programación C, a diferencia de Java, no dispone de sistemas de
control automáticos y características de seguridad incorporadas en el lenguaje, sino
que la seguridad depende casi exclusivamente de la experiencia del programador.
De hecho, el lenguaje C ocupa un lugar especial en la historia de Internet porque
muchas de sus vulnerabilidades se deben al mismo motivo por el que es tan
popular: el acceso sin restricciones al hardware del equipo y el rendimiento que
esto conlleva.
Así, C no incluye mecanismos de gestión de memoria, verificación de código,
comprobación de tipos, etc. Sin embargo, para desarrollar programas seguros en C,
pueden utilizarse herramientas externas, como depuradores o implementaciones
libres de funciones criptográficas. Es decir, en lugar de un modelo de seguridad
implícito, pasamos a un modelo explícito. A continuación se describen algunas de
las herramientas más conocidas para estos propósitos:
Valgrind: herramientas de código abierto para depurar programas, mejorar
el rendimiento y detectar errores de memoria
OpenSSL: herramienta de código abierto que contiene una serie de herramientas de administración y de librerías relacionadas con la
criptografía.
…
SEGURIDAD EN OTROS LENGUAJES
Como mencionábamos al principio, existen lenguajes de programación que
incorporan la seguridad de forma implícita, incluyendo paquetes criptográficos,
funciones automáticas para asistir en la generación de código seguro, etc.; y otros
que no han sido diseñados teniendo en cuenta estas consideraciones. En el primer
grupo, además de Java, algunos ejemplos son:
Perl, en su capa de seguridad perlsec, incluye un modo automático
denominado Taint Mode que realiza comprobaciones de seguridad.
ADA, fue diseñado con la seguridad en mente y con una filosofía orientada a la reducción de errores comunes y difíciles de descubrir. Para ello se basa en
un tipado muy fuerte y en comprobaciones en tiempo de ejecución
(desactivables en beneficio del rendimiento).
Ruby, que incluye características de seguridad como parte de la
especificación del lenguaje para realizar comprobaciones de código externo.
.NET, que en realidad no es un lenguaje sino un framework (entorno de trabajo) de Microsoft que soporta varios lenguajes, proporciona un gran
número de clases y servicios útiles que permiten a los programadores
escribir de manera sencilla código de seguridad.
Estas clases y servicios permiten también que los administradores del sistema
personalicen el acceso del código a los recursos protegidos. Asimismo, el motor de
tiempo de ejecución y .NET Framework proporcionan clases y servicios útiles que
facilitan el uso de criptografía y la seguridad basada en funciones.
Por otro lado, como ejemplos de lenguajes que no incorporan seguridad de forma
implícita, podemos citar los siguientes:
C++.
Python.
Visual Basic.
En este último caso, no quiere decir que no se puedan crear programas seguros,
sino que hay que prestar más atención en la fase de implementación. Además,
existe una gran cantidad de recursos externos, como herramientas de depuración,
que pueden asistir al desarrollador en la tarea de escribir código seguro. El uso de
estos recursos, junto con una buena metodología de programación es importante
para evitar aplicaciones con carencias de seguridad. De hecho, existen numerosas
guías de "prácticas recomendadas" para la mayoría de los lenguajes de
programación.
SEGURIDAD EN APLICACIONES
Una aplicación es un programa informático que utiliza un usuario que permite
realizar una o más de una tarea específica. Dependiendo de la finalidad de esa
aplicación se las suele clasificar, así hay aplicaciones web, aplicaciones para correo
electrónico, etc.
La cuestión de la seguridad hay que tenerla en cuenta desde que se inicia el
proceso, dado que por lo general añadirlo a posteriori no es factible. Para entender
esto, veamos primero cual es el ciclo de desarrollo de una aplicación:
Fase 1.Pensar el diseño y análisis de los requisitos (Que va a hacer y
cómo). El resultado final de esta etapa es lo que se conoce como SRD
(Software Requeriments Document).
Fase 2.Diseño. Ya sabemos lo que queremos hacer y ahora tenemos que
plantear como hacerlo. Estructuras de datos a utilizar, módulos en los que
se van a dividir el sistema, interfaz con el usuario. Aquí se definen con
detalle entidades y relaciones de las bases de datos, se seleccionará el
lenguaje de programación, las librerías, configuraciones hardware, redes…
Fase 3.Desarrollo. En este momento es cuando se programa y se crea el
código fuente. Según se va realizando el código, se va depurando. Esta
etapa se suele solapar con la fase siguiente (fase de pruebas)
Fase 4.Fase de pruebas. Se testea la aplicación para comprobar errores de
diseño o programación.
Fase 5.Operación y mantenimiento. Una vez que la aplicación está en uso,
comienza una fase en la que debemos ir corrigiendo y mejorando aquellas
cuestiones de la aplicación, muchas veces típicas de su evolución.
Para que una aplicación sea segura, esta aplicación debe tener capacidad de
proporcionar seguridad tanto a la aplicación en sí, como en cuanto a los datos que
va a manejar.
Fase 1.Pensar el diseño y análisis de los requisitos: es donde se especifican
los requisitos de seguridad que se han de satisfacer. Para ello, se puede
utilizar un estándar que es el “CC” (Common Criteria.ISO/IEC 15408:1999).
Este estándar se suele emplear como base para redactar 2 documentos:
o Perfil de protección (Protection Profile o PP): Define las propiedades
de seguridad basándose en un análisis de riesgos
o Objetivo de seguridad (Security Target o ST): Describe los requisitos
de seguridad que desea alcanzar una aplicación como premisa para
combatir las amenazas.
Fase 2.Diseño: el hecho de que esté bien diseñado va a significar que
podemos reducir la probabilidad de que se produzca un ataque pero nunca
vamos a conseguir que sea invulnerable. Por lo general todos los datos
tienen algún valor, entonces habría que saber graduar ese valor (básico,
sensible…) para así darle el nivel de seguridad adecuado. Ese nivel de
seguridad se lo daremos eligiendo un protocolo de seguridad adecuado, un
algoritmo de cifrado adecuado o librerías que ya lo incluyan.
Fase 3.Desarrollo: En esta fase se programan los servicios de seguridad que
habíamos diseñado en la fase anterior. La programación hay que llevarla a
cabo teniendo en cuenta las características de seguridad del lenguaje que
hayamos elegido y sería recomendable:
o Efectuar un control de la entrada: validar todos los datos que son
el “imput” de la aplicación para verificar si no han sido alterados, o
incluso, si son legales.
o Controlar la gestión de memoria: controlar el desbordamiento de
búfer
o Controlar la estructura interna: es decir, trabajar con privilegios
mínimos, simplicidad en el diseño, considerar valores por defecto
seguros, facilitar el uso de esa aplicación…
o Controlar las llamadas a recursos externos: cuando la aplicación
tenga enlaces con información de otras procedencias
o Efectuar un control de la salida: que la participación del usuario
final sea amena y fácilmente legible.
Fase 4. Fase de pruebas: Las aplicaciones hay que probarlas y es la única
forma de comprobar que realmente están haciendo para lo que fueron
diseñadas. Existen muchas herramientas que me van a permitir comprobar
fallos potenciales de seguridad.
Fase 5. Operación y mantenimiento: Una vez que se utiliza la aplicación, es
cuando van apareciendo las carencias y las nuevas necesidades. Por ello
resulta interesante vigilar, recoger las opiniones de los usuarios, efectuar
auditorías y leerse los ficheros de eventos (log)
TEMA 8: ELEMENTOS DE SEGURIDAD EN REDES La seguridad perimetral se basa en proteger el sistema informático de una
empresa/organización de lo que venga de el exterior. Funciona como una coraza
para los elementos sensibles que puedan ser atacados. Lo más normal es que se
quiera unir una red interna (intranet) con una red pública que suele ser Internet,
pero añadiendo unos controles y unas limitaciones sobre que podemos o no hacer.
Para facilitar la administración, lo que se suele es establecer un único punto de
unión entre esas dos redes (Intranet- Internet), donde se aplicarán las políticas de
gestión y de control.
La seguridad perimetral se puede definir o entender como:
Poder rechazar conexiones a servicios sensibles
Supone permitir solo cierto tipo de tráfico, o solo entre ciertos nodos (host)
Proporcionar un único punto de conexión con el exterior
Redirigir el tráfico entrante a los sistemas adecuados dentro de la red
Ocultar sistemas o servicios comprometidos o vulnerables que no sean
fáciles de proteger
Ocultar información sobre la topología de la red, los dispositivos que
tenemos colgados, las cuentas de los usuarios, etc.
…
INTRODUCCIÓN A LOS CORTAFUEGOS (FIREWALL)
Un cortafuegos es un dispositivo que controlará el flujo de información entre dos o
más redes, permitiendo bloquear o no el tráfico en base a una serie de reglas.
Estas reglas estarán establecidas en función de la política de seguridad de la
empresa.
Un cortafuegos rara vez se basa en una sola técnica, por lo general se trata de
distintas técnicas para resolver distintos problemas. Así, lo normal es que un
cortafuegos emplee una combinación de filtrado de paquetes y de servidores proxy.
Los cortafuegos se instalan en el punto donde la red interna se conecta con
internet. Un cortafuegos no puede proteger contra todo, nos protege contra
amenazas de la red, pero siempre habrá una amenaza fuera de su control, por
ejemplo no nos va a poder proteger:
De un ataque interno
Conexiones que no pasan por el
Amenazas desconocidas
Los virus: aunque los cortafuegos revisan todo el tráfico que entra, la
revisión por lo general, se realiza a nivel de las direcciones lógicas y de los
números de puerto pero no se revisan los datos. Por ello, la protección de
los virus por un cortafuegos es muy pobre.
TIPOS DE CORTAFUEGOS
Una forma de clasificarlos es en función en que capas del modelo OSI funcionan:
Cortafuegos a nivel de red
o Trabajan en las capas 2, 3 y/o 4
o Suelen implementarse en los routers (Símil: Guarda urbano, deja
pasar según de donde viene y a donde va)
Cortafuegos a nivel de sesión
o Trabajan en las capas 3, 4 y/o 5: se conoce como filtrado de
paquetes. Permitirá detectar el establecimiento de una sesión (Por
ejemplo FTP) y mostrar una ventana para que se autorice o no, los
paquetes que se derivan de esa conexión.
Cortafuegos a nivel de aplicación
o Trabajan en las capas 5, 6 y/o 7: Determinan si a los paquetes de la
capa de aplicación les permiten efectuar una conexión, verificando
todos los segmentos que lo constituyen, su secuencia (si están
ordenados o no) y efectuando también un control de autenticación. .
La práctica totalidad de los cortafuegos suelen incluir el servicio de proxy
(intermediario/apoderado). Tanto es así que por lo general se suele confundir los
proxys con los cortafuegos.
Un proxy es una aplicación o servicio específico que controla el tráfico de un
determinado protocolo y lleva un registro detallado de todo lo relativo al mismo.
En función de que, en capa trabajen los cortafuegos, harán su trabajo de forma
más rápida. Por tanto si trabajan en una capa muy elevada, tardarán más al tener
que controlar un mayor número de controles.
FILTRADO DE PAQUETES
La unidad básica de información en TCP/IP son los paquetes:
Cabecera Área de Datos
El filtrado de paquetes me permite controlar que información puede fluir desde y
hacia una red. Por medio de filtros dejaré pasar o bloquearé un paquete. Para
realizar el filtrado de paquetes se establecen unas reglas en función de la política
de seguridad de la empresa. El filtrado de paquetes se puede hacer en un router o
en un anfitrión. Cuando se realiza en un router, hablamos de un “Enrutador de
protección” (Screening router). La información a filtrar se obtiene de la cabecera de
los paquetes.
La información que se vigila normalmente es:
Dirección de origen y destino del paquete de la capa 3
Enrutador de
protección
(Screening router)
Red interna
El protocolo (TCP/UDP/ICMP…De capas 3 y 4)
Puertos de origen y destino de la sesión
La interfaz física del cortafuegos, es decir, por donde va entrar o salir el
paquete
Para configurar el filtrado de paquetes lo que hacemos es elaborar un conjunto de
reglas que suelen ser de tres tipos:
Aceptar (Accept)
Rechazar (Deny o Drop)
Descartar (Discard o Stealth)
La regla Descartar se diferencia de la de Rechazar en que los paquetes afectados se
eliminan “silenciosamente” (sin enviar mensaje al origen), con el objetivo de que no
se revele la presencia del cortafuegos.
Con el filtrado de paquetes podemos permitir o negar un servicio pero lo que no
vamos a poder hacer es identificar a los usuarios, ni a los ficheros, ni tampoco
proteger operaciones individuales dentro de un servicio. Para configurar un router
con filtrado de paquetes, lo primero que debemos decidir es que servicios vamos a
permitir o negar y después, convertir las decisiones en reglas sobre los paquetes.
Hay que tener en cuenta que los protocolos, por lo general, son bidireccionales. Es
decir, que cuando alguien hace una petición, provoca una respuesta en el
destinatario. Entonces, cuando diseñemos las reglas, hay que tomarlo en
consideración porque de nada valdría permitir por ejemplo paquetes TelNet si no
permitimos también que esos paquetes regresen a la conexión con el despliegue
pantalla.
Por el contrario, de nada sirve bloquear media conexión. Muchos ataques pueden
llevarse a cabo si los atacantes pueden introducir los paquetes en nuestra red,
aunque no puedan producir respuesta. Esto es debido, a que muchas veces, las
respuestas son predecibles.
Las reglas de filtrado crean una especie de tabla en la que hay unas condiciones y
ante estas unas acciones.
Regla Dirección
de Origen
Puerto
de
Origen
Dirección
de Destino
Puerto
de
Destino
Acción Descripción
1 Cualquiera Cualquiera 192.168.1.0 >1023 Aceptar
Permite que pasen los
paquetes de retorno de
una conexión originada
en la red interna
2 192.168.1.1* Cualquiera Cualquiera Cualquiera Rechazar
Impide las conexiones
directas del
cortafuegos* con
cualquier host.
3 Cualquiera Cualquiera 192.168.1.1* Cualquiera Rechazar
Impide las conexiones
directas desde cualquier
host al cortafuegos
4 192.168.1.0 Cualquiera Cualquiera Cualquiera Aceptar Permite cualquier
conexión cara el exterior
desde un host de la red
interna
5 Cualquiera Cualquiera 192.168.1.2 SMTP Aceptar
Permite a cualquier
usuario externo acceder
al servicio de correo
electrónico interno
6 Cualquiera Cualquiera 192.168.1.3 HTTP Aceptar
Permite a cualquier
usuario externo acceder
al servicio web interno
7 Cualquiera Cualquiera Cualquiera Cualquiera Rechazar
Rechaza cualquier regla
que no haya sido
definida directamente
La regla número 7, se debería poner siempre como última regla en cualquier
configuración.
VENTAJAS E INCONVENIENTES FILTRADO DE PAQUETES
Ventajas:
Tener un Enrutador de protección (Screening router) puede ayudar a
proteger toda la red
El filtrado de paquetes no necesita conocimiento ni cooperación de los
usuarios, es decir, no tenemos que enseñarle como funciona
Inconvenientes:
Filtrado por dirección. Se suele filtrar por la dirección de origen pero éstas,
pueden ser falsas y tendríamos que tener algún método de autenticación a
mayores para saber si realmente se trata de quién dice ser.
Las reglas de filtrado suelen ser difíciles de configurar y de probar.
Las capacidades de filtrado están incompletas (hay cosas que queremos
hacer pero no podemos expresar)
Existen protocolos no diseñados para el filtrado de paquetes, sobre todo a
nivel de UNIX.
No se dispone de un sistema de monitorización.
Conclusión: El filtrado de paquetes no es efectivo como única medida de
seguridad, pero si es práctico como una primera barrera.
CORTAFUEGOS CON INSPECCIÓN DE ESTADO (STATEFUL INSPECTION
FIREWALL o CIRCUIT LEVEL FIREWALL)
Cuando queremos establecer una conexión con un host remoto, se establece un
proceso de conexión ya conocido anteriormente (SYN, SYN/ACK, ACK) y a su vez
hay una apertura de puerto en el host que solicita información > 1023 y < 16384,
así como el host destino utilizará para responder un puerto conocido < 1024.
Por esto, los cortafuegos que filtran paquetes deben permitir el tráfico entrante
para puerto > 1023 y < 16384 para conceder el retorno de la información
solicitada. Esto supone un gran riesgo y que un cortafuegos con inspección de
estado puede resolver.
Estos cortafuegos, además de filtrar paquetes, validan que las respuestas
correspondan a una petición o que las respuestas pertenecen a un circuito virtual
ya establecido entre el host interno y el host remoto. Para ello construyen una tabla
con la información de todas las sesiones abiertas y los puertos que utilizan dichas
sesiones. Tampoco van permitir tráfico entrante de paquetes que no correspondan
con esas sesiones y puertos.
En estas tablas se suele recoger la siguiente información:
Identificador de la sesión: Capa de sesión (5)
El estado de la conexión: Negociando (handshake), Establecida o
Cerrándose. Capa transporte (4)
Número de secuencia del último paquete: Capa de transporte (4)
La dirección IP de origen: Capa de red (3)
La dirección IP de destino: Capa de red (3)
La interfaz por la que van a llegar los paquetes: Capa Física (1)
La interfaz por la que van a salir los paquetes (si procede): Capa Física (1)
A la hora de configurar estos cortafuegos con inspección de estado, tendremos en
cuenta el protocolo con el que vamos a trabajar así:
Protocolo IP: En el caso del protocolo IP se examina el bit ACK para
determinar si se está iniciando una conexión o bien si es el paquete
siguiente una vez ya establecida. Desde el punto de vista del filtrado de
paquetes, el hecho de que se tengan que fragmentar, solo en el primer
fragmento se incorpora la información sobre el protocolo de la capa superior.
Por lo tanto, el filtrado solo se puede hacer en el primer paquete.
El destinatario guarda los fragmentos en memoria hasta que recompone el
paquete y es por ello por lo que los atacantes aprovechan esta característica
para realizar un ataque por negación de servicio.
Ante este ataque no hay nada que se pueda hacer. Lo que si se puede hacer
es filtrar los mensajes ICMP para que el atacante no reciba información de lo
que está ocurriendo.
Protocolo TCP: Reconocer los paquetes TCP de inicio de conexión me
permite aplicar una política para que un cliente interno se conecte a un
servidor externo, pero evitando lo contrario, es decir que un cliente externo
se conecte a un servidor interno. Para hacer esto se permite que los
paquetes de inicio de conexión solo salgan desde los clientes externos pero
no se va a permitir su entrada.
Protocolo UDP: Ya sabemos que los datagramas UDP son todos ellos
independientes (no forman parte de un circuito virtual y cada uno llega a su
destino como puede). Algunos cortafuegos tienen la capacidad de recordar
los paquetes UDP que salen para solo permitir entrar los paquetes de
respuesta correspondientes.
Protocolo ICMP: El protocolo ICMP se utiliza para controlar IP e informar
de todo lo que sucede. Los cortafuegos pueden filtrar los paquetes ICMP en
función de su tipo, por ejemplo, impedir que se divulgue un mensaje de
error..
SISTEMAS PROXY
Un servidor proxy es un programa que se ejecuta en el cortafuegos anfitrión. Este
programa recoge las solicitudes de los usuarios para salir y, si están acordes a la
política de seguridad del sitio, envían esa información al servidor (real). Los
servidores proxy, lo que realizan son conexiones substitutas y actúan como una
compuerta a los servicios, por esta razón también se les conoce como “compuertas
a nivel de aplicación” y a las máquinas en los que están instalados se les conoce
como “pasarelas de aplicación”.
Un servidor proxy es una solución software. Los servidores proxy solo son efectivos
cuando se utiliza algún método para restringir el tráfico entre clientes y servidores
como por ejemplo cuando se utiliza con un enrutador de protección.
Normalmente el servidor proxy se monta en lo que se conoce como un anfitrión
bastión.
VENTAJAS:
La principal ventaja es que vamos a poder monitorizar y contabilizar toda la
actividad del sistema de comunicaciones.
INCONVENIENTES:
Los servidores proxy no funcionan para algunos servicios como por ejemplo
un Talk o Chat.
Los servidores proxy no nos protegen de todas las acciones de los
protocolos, porque hay protocolos que proporcionan operaciones inseguras
Los servicios proxy puede requerir servidores diferentes para cada servicio
porque tiene que comprender el protocolo para decidir lo que permite y lo
que no permite.
Los servicios proxy aparecen con posterioridad a los servicios “no proxy”. Es
decir, que suele existir un retraso entre la aparición de un servicio y la
disponibilidad de un servidor proxy para él. Hasta que aparezca habría que
ponerlo fuera del cortafuegos, lo cual, es muy peligroso.
TIPOS DE SERVIDORES PROXY
Proxy a nivel de aplicación: “Sabe” sobre esa aplicación, es decir, conoce
los comandos, la operativa…
Proxy a nivel de circuito: Crean un circuito entre el cliente y el servidor y
no interpreta el protocolo de la aplicación
A menudo se suelen utilizar otros términos para definir a los proxy que acabamos
de ver, que son:
Dedicados: Cuando sirven para un solo protocolo
Genéricos: Cuando sirven para varios protocolos, lo cual equivaldría a nivel
de circuito
Existe también otro tipo de proxy llamados “inteligentes”, que permiten realizar
más cosas que simplemente transmitir peticiones (como por ejemplo, llevar una
caché). Es más normal que sea inteligente un proxy a nivel de aplicación que a
nivel de circuito.
El cortafuegos más utilizado a nivel empresarial es el “checkpoint firewall-1” y está
catalogado como cortafuegos de nivel de estado.
SERVICIOS ADICIONALES PROPORCIONADOS POR LOS
CORTAFUEGOS
NAT (Network Address Translation): Es una herramienta muy efectiva
para esconder las direcciones de la red interna y también para que los
equipos salgan a Internet con un mínimo de direcciones públicas.
Existen 3 estrategias para implementar el NAT: o Traducciones de direcciones de red estáticas: cada dirección IP
privada tiene su pública. En este caso el cortafuegos tiene una tabla
con esa información.
o Traducción de direcciones de red oculta: se muestra cuando
todos los equipos utilizan la misma dirección externa. Esto es un
problema para los cortafuegos porque tienen que utilizar su propia
dirección para proteger todos los paquetes, lo cual hace que quede
en evidencia.
o Traducción de puertos (PAT): A nivel de los cortafuegos es una
ventaja ya que evita utilizar su dirección. El cortafuegos lleva una
tabla en la cual se pone la dirección IP y los puertos involucrados que
se pueden generar aleatoriamente o de forma secuencial.
DHCP (Dynamic Host Configuration Protocol): Es un servicio de
asignación dinámica de direcciones IP y esto también lo pueden incluir los
cortafuegos.
VPN (Virtual Private Network): Permiten extender a las comunicaciones
externas la seguridad que tenemos en nuestra red. Existen diferentes
formas para construir una VPN:
o PPTP
o L2TP/IPSec
La razón para colocar una VPN en el cortafuegos es que, si no lo hiciésemos
así, el tráfico cifrado entrante y saliente que genera el VPN no podría ser
inspeccionado.
MODELADORES DEL ANCHO DE BANDA (Bandwidth Shapers o
Throttlers): Está muy de moda hoy en día y que supone ubicarlos entre la
red interna y la salida a internet (por ello se sitúan en un cortafuegos) para
realizar funciones por medio de una serie de reglas de organización del
tráfico. Genera unas colas donde va transfiriendo los distintos tipos de
tráfico en función de la prioridad. A la hora de dar salida a ese tráfico,
procesa primero los de la cola que tienen más prioridad.
INSPECCIÓN DE CONTENIDOS: Este es uno de los servicios más
interesantes que ofrecen los cortafuegos y consiste en realizar una
inspección de contenido en el tráfico HTTP y en el SMTP. Esto supone
controlar:
o Los Applets de Java
o Los ActiveX
o Los Scripts (guiones)
o Los virus
o El contenido de ciertos ficheros (sobre todo los
comprimidos)
o Bloqueo en función de las direcciones, de palabras claves o
determinados comandos de las aplicaciones.
BALANCEO DE CARGA: Uno de los mayores problemas de los cortafuegos
es la latencia (tiempo que consume de recursos por el simple hecho de
utilizarlo). A nivel empresarial se suele ofertar como solución el balanceo de
carga para mejorar el rendimiento y ofrecer alta disponibilidad. Ello se
consigue utilizando dos o más cortafuegos.
INCLUIR IDS (Intruder Detection System. Sistema de detección de
intrusos): Un IDS es un sistema que permite generar alertas y conocer
cuando alguien intenta penetrar en el sistema, o cuando ya lo ha
conseguido.
ARQUITECTURA DE CORTAFUEGOS
Cuando hablamos de tomar decisiones a la hora de diseñar o configurar un
cortafuegos, nos encontramos con dos términos:
Políticas: Nos planteamos la política de seguridad de la organización
que nos encaminará en este proceso, porque es donde estará explicito todo
lo que queremos conseguir. Otra cuestión relacionada con la política sería el
nivel de control que desea obtener la organización, es decir, como se va a
implementar las reglas en el cortafuegos (que se va a permitir y que se va a
denegar). Por otro lado está el hecho de cuanto queremos gastar
teniendo en cuenta lo que queremos proteger.
Técnicas: La primera decisión técnica a tener en cuenta es la localización
del cortafuegos. Una vez escogida, debemos pensar en qué elemento/s se
van utilizar como bastión*. Cuando más simple sea el host bastión y menos
servicios ofrezca, es más fácil su mantenimiento y por lo tanto será mayor
su seguridad.
*Por máquina o host bastión (también se denominan gates) se conoce a un
sistema especialmente asegurado, pero en principio vulnerable a todo tipo de
ataques por estar abierto a Internet, que tiene como función ser el punto de
contacto de los usuarios de la red interna de una organización con otro tipo de
redes. El host bastión filtra tráfico de entrada y salida, y también esconde la
configuración de la red hacia fuera.
Existen diversas formas de configurar un cortafuegos:
Arquitectura de anfitrión con doble acceso: una arquitectura de
anfitrión con doble acceso se construye alrededor de un ordenador anfitrión
que tiene por lo menos 2 interfaces de red. Al tener 2 interfaces de red
podría actuar como router pero se desactiva la función de enrutamiento.
Es tan sencillo que solo nos puede proporcionar servicios tipo proxy y
requiere mucho trabajo si queremos realmente aprovechar todas sus
posibilidades
Arquitectura de anfitrión de protección: Proporciona servicios en un
anfitrión conectado solo a la red interna, utilizando un router independiente
para el filtrado de paquetes.
El anfitrión bastión está colocado en la red interna y es el único con el que
los anfitriones en internet pueden abrir ciertas conexiones. La principal
desventaja de esta arquitectura es que si un atacante logra penetrar en el
anfitrión bastión, ya no hay más impedimento para que pueda llegar a los
elementos restantes de la red.
Arquitectura de subred de protección: Esta arquitectura también se
conoce como De-Militarize Zone (DMZ) o perímetro DMZ y es la más
empleada hoy en día. El término zona desmilitarizada hace referencia a esa
franja de terreno neutral que separa las dos Coreas y viene de la guerra de
Corea en 1953. Supone agregar una capa adicional de seguridad a la
arquitectura de anfitrión de protección.
La forma más sencilla es disponer de 2 Routers. Ambos Routers estarán
conectados a la red del perímetro. Al que llamamos exterior está conectado
a la red del perímetro y a una red exterior que por lo general es Internet. El
Router Interior está conectado a la red del perímetro y a la red interior. En
la red de perímetro vamos a poner al bastión y también podríamos poner
sistemas que requieran un acceso controlado como una batería de módems
o el servidor de correo, que son los únicos visibles desde fuera de nuestra
red.
Para que un atacante llegue a la red interna, tendría que ser capaz de pasa
por ambos routers.
o Red de perímetro: Es una capa adicional de seguridad que está
ubicada entre la red externa (por lo general Internet) y la red
interna. Como el tráfico de la red interna no pasa por la red de
perímetro, aunque lleguen al anfitrión bastión, no podrán pasar más
allá debido al segundo router de protección que tenemos
o Anfitrión bastión: Es el punto de contacto para lo que nos llega
desde la red externa, por ejemplo: las sesiones de correo-e que se
establecen para entregar mensajes, las conexiones FTP que entran
en el FTP que tengamos instalado, las consultas que llegan al DNS,...
La mayoría de funciones que realiza el bastión suele ser para actuar
como proxy para distintos servicios.
o Enrutador interior: Es conocido también como router de choque.
Protege a la red interna de la red de perímetro y de la red externa
(Internet). Este router es el que realiza la mayor parte del filtrado de
paquetes para el Firewall. Permite que ciertos servicios seleccionados
salgan de la red interna hacia fuera y limita los servicios entre el
bastión y la red interna para así también limitar el número de
máquinas que puedan ser atacadas.
o Enrutador exterior: Es conocido también como router de acceso.
Protege tanto a la red de perímetro como la red interna. En la
práctica estos routers tienden a permitir que casi cualquier cosa salga
a la red de perímetro, pero lo que protege es la entrada, es decir, lo
que va a ir a parar al host bastión y al router interno.
VARIACIONES EN LAS ARQUITECTURAS DE CORTAFUEGOS
Existen 2 grandes variaciones:
Utilización de múltiples anfitriones bastiones: Querríamos usar esta
opción por cuestiones de rendimiento, cuestiones de redundancia o por la
necesidad de separar datos o servidores por cuestiones de seguridad.
Para que el rendimiento no se vea mermado por las acciones de los usuarios
externos, podemos utilizar un anfitrión bastión para gestionar lo que es
importante para los usuarios internos como por ejemplo, el correo-e, proxy…
Mientras que en otro anfitrión bastión podríamos poner servicios que
proporciona internet (como un FTP anónimo…). También por razones de
rendimiento se pueden instalar varios anfitriones bastiones con los mismos
servicios.
Variantes:
o Función de Routers y Anfitrión bastión
1. Fusión Router interior y exterior: Tendríamos que disponer de
un Router con suficiente capacidad y flexibilidad para poderlos
hacer funcionar. Por cada interfaz habría que especificar las
reglas o filtros de entrada y los de salida. En una interfaz del
router se conecta la red del perímetro y en la otra, la red
interna. El hecho de tener un solo router lo hace más
vulnerable.
2. Fusión del anfitrión bastión y el router exterior: En este caso
no se crea una nueva vulnerabilidad significativa aunque se
expone más al anfitrión bastión que solo estaría protegido por
el filtrado, si es que lo hay, que realice en la interfaz.
3. Fusión del anfitrión bastión y router interior: Esta opción,
aunque es posible, no es buena idea ya que ponemos en
peligro la seguridad general
o Múltiples router interiores: Tampoco se considera buena idea si
tenemos varias redes internas, sobre todo si tenemos distintas
políticas que impidan compartir el mismo router.
1. Esta solución suele ser la que se emplea si tenemos más de
una red interna, lo cual, complica un poco la configuración del
router pero no supone ningún riesgo adicional. Si compartir un
router se considera inaceptable, o bien hay demasiadas redes
internas, o bien existen otras razones, acudiríamos a la
condición 2.
2. Solución 2:
o Utilización de varios Routers exteriores: ¿Por qué vamos a querer
conectar varios routers exteriores a la misma red de perímetro? Por
ejemplo:
1. Para tener redundancia (queremos varias conexiones a
Internet con distintos ISP)
2. Cuando queremos tener una conexión a Internet y otra
conexión a otra red diferente (suele denominarse red de
proveedor)
o Utilización de múltiples redes de perímetro: No parece muy lógico
tener varias conexiones a internet u a otras redes utilizando uno o
más Routers exteriores sobre la misma red de perímetro. No tiene
mucho sentido puesto que no garantizaríamos perfectamente la
confidencialidad. En estos casos lo que se suele tener es más de una
red de perímetro
Cortafuegos internos: Con frecuencia hay partes de la red interna que
puede precisar de un mayor nivel de seguridad, por ejemplo el
departamento de finanzas en una organización, los encargados de llevar a
cabo un proyecto en una universidad, los que están desarrollando un nuevo
producto en un laboratorio…