Protección y seguridad
Niveles de seguridad
1. Nivel físico: no permitir el acceso al hardware a personal no autorizado
2. Nivel de usuario: educar a los usuarios para no dar información (aparentemente irrelevante) de los sistemas a terceros. Evitar la ingeniería social
3. Nivel de red: firewalls bien configurados para permitir sólo los ingresos autorizados
4. Nivel de aplicación: los procesos y programas propios de la organización deben contar con sus propias medidas de seguridad, como usuarios independientes del sistema operativo, encriptación de las bases de datos, etc.
5. Nivel de sistema operativo: tener en cuenta las configuraciones de los sistemas operativos para no utilizar las de instalación simple (por omisión)
Amenazas de seguridad
1. Intrusos
2. Virus
3. Gusanos
4. Caballos de troya
5. Bombas lógicas
6. Trampas
7. Desbordamiento de buffer
8. Ataques genéricos
Principio del menor privilegio
Un usuario debe tener acceso a todo lo que necesita y sólo lo que necesita para realizar su trabajo.
Criptografía
1. Clave secreta (simétrica)
2. Clave pública (asimétrica)
3. Firmas digitales
Componentes de seguridad
Autenticación
1. Saber: Contraseña
2. Tener: Por objeto físico
3. Ser: Biométrica
Autorización
1. derecho de acceso: la habilidad de ejecutar una operación sobre un objeto
2. Dominio: colección de derechos de accesos, en pares (Objeto, derecho)
3. Asociación estática o dinámica (cambio de dominio)
4. Implementaciones
- Dominio por usuario
- Dominio por proceso: definición de roles, que son la asociación de un programa con un conjunto de derechos de acceso.
- Dominio por procedimiento: nivel de lenguajes de programación.
5. Matriz de acceso: es la forma de ver los diferentes dominios, en la cual se especifica en columnas los objetos y en las filas los dominios, y en cada celda el acceso.
6. Implementaciones
1. Listas de control de accesos
2. Capacidades
3. SELinux
7. Políticas de seguridad
- Política militar
- Políticas comerciales
- Modelos de seguridad
Auditoría
- Post mortem
- Oportunidad de mejoras al realizar análisis de bitácoras
- Una auditoría constante permite detectar posibles ataques al sistema
- ej: tripwire
Kerberos
1. 1983 en el M.I.T.
2. Elimina la necesidad de tener contraseñas por servicios
3. Cumple con las tres funciones de seguridad
Arquitectura
Un servidor Kerberos se denomina KDC (Kerberos Distribution Center), y provee de dos servicios fundamentales:
1. Autenticación (AS, Authentication Service): Autenticar y proporcionar un ticket , que certifica la autenticidad del usuario
2. Tickets (TGS, Ticket Granting Service): Basado en el ticket, determina el acceso del usuario a los diferentes servicios
Se tiene tres componentes básicos de seguridad:
1. La clave de sesión: es una clave secreta generada por Kerberos y expedida a un cliente para uso con un servidor durante una sesión; no es obligatorio utilizarla en toda la comunicación con el servidor, sólo si el servidor lo requiere (porque los datos son confidenciales) o si el servidor es un servidor de autenticación. Se suele denominar a esta clave , para la comunicación entre un cliente C y un servidor S. Las claves de sesión se utilizan para minimizar el uso de las claves secretas de los diferentes agentes: éstas últimas son válidas durante mucho tiempo, por lo que es conveniente para minimizar ataques utilizarlas lo menos posible.
2. El ticket: es un testigo expedido a un cliente del servicio de tickets de Kerberos para solicitar los servicios de un servidor; garantiza que el cliente ha sido autenticado recientemente. A un ticket de un cliente C para acceder a un servicio S se le denomina. Este ticket incluye el nombre del cliente C, para evitar su posible uso por impostores, un periodo de validez y una clave de sesión asociada para uso de cliente y servidor. Kerberos siempre proporciona el ticket ya cifrado con la clave secreta del servidor al que se le entrega.
3. El autenticador: es un testigo construido por el cliente y enviado a un servidor para probar su identidad y la actualidad de la comunicación; sólo puede ser utilizado una vez.
Funcionamiento
1. Un usuario ingresa su nombre de usuario y password en el cliente
- El cliente genera una clave hash a partir del password y la usará como la clave secreta del cliente
- El cliente envía un mensaje en texto plano al AS solicitando servicio en nombre del usuario.
2. El AS comprueba si el cliente está en su base de datos. Si es así, el AS envía dos mensajes al cliente:
- Mensaje A: Client/TGS session key cifrada usando la clave secreta del usuario
- Mensaje B: Ticket-Granting Ticket (que incluye el ID de cliente, la dirección de red del cliente, el período de validez y el Client/TGS session key) cifrado usando la clave secreta del TGS.
3. Una vez que el cliente ha recibido los mensajes, descifra el mensaje A para obtener el client/TGS session key. Esta session key se usa para las posteriores comunicaciones con el TGS. (El cliente no puede descifrar el mensaje B pues para cifrar éste se ha usado la clave del TGS). En este momento el cliente ya se puede autenticar contra el TGS. Entonces el cliente envía los siguientes mensajes al TGS:
- Mensaje C: Compuesto del Ticket-Granting Ticket del mensaje B y el ID del servicio solicitado.
- Mensaje D: Autenticador (compuesto por el ID de cliente y una marca de tiempo), cifrado usando el client/TGS session key.
4. Cuando recibe los mensajes anteriores, el TGS descifra el mensaje D (autenticador) usando el client/TGS session key y envía los siguientes mensajes al cliente:
- Mensaje E: Client-to-server ticket (que incluye el ID de cliente, la dirección de red del cliente, el período de validez y una Client/Server session key) cifrado usando la clave secreta del servicio.
- Mensaje F: Client/server session key cifrada usando el client/TGS session key.
5. Cuando el cliente recibe los mensajes E y F, ya tiene suficiente información para autenticarse contra el SS. El cliente se conecta al SS y envía los siguientes mensajes:
- Mensaje E del paso anterior.
- Mensaje G: un nuevo Autenticador que incluye el ID de cliente, una marca de tiempo y que está cifrado usando el client/server session key.
6. El SS descifra el ticket usando su propia clave secreta y envía el siguiente mensaje al cliente para confirmar su identidad:
- Mensaje H: la marca de tiempo encontrada en el último Autenticador recibido del cliente más uno, cifrado el client/server session key.
- El cliente descifra la confirmación usando el client/server session key y chequea si la marca de tiempo está correctamente actualizada. Si esto es así, el cliente confiará en el servidor y podrá comenzar a usar el servicio que este ofrece.
7. El servidor provee del servicio al cliente.
Ventajas:
- Cubre las tres funciones de seguridad
- La contraseña nunca viaja por la red en el proceso de autenticación
Desventajas:
- Uso intensivo de la red
- Uso intensivo de encripción
- Punto único de fallo
- Punto único de ataque