# TEMA 1: Introducción a la Seguridad ## 1. Conceptos Fundamentales ### Seguridad Informática e Información Seguridad informática protege infraestructuras tecnológicas y de comunicación, mientras que la seguridad de la información abarca cualquier soporte y las personas que la gestionan. El activo más importante es la información, que debe ser clasificada y protegida. ### Gestión y Estrategias Defensa en profundidad emplea capas de salvaguardas. La seguridad por oscuridad usa el secreto en los detalles. Security by design asume que el diseño puede ser conocido y la clave es el único secreto. Moving-target defense incrementa la dificultad introduciendo cambios continuos en la configuración. ### Consecuencias de Mala Gestión La falta de gobierno en seguridad implica riesgos legales, pérdida de datos, perjuicio reputacional, bloqueo de servicios y delitos como fraude, sabotaje, chantaje o suplantación de identidad. ## 2. Requisitos de la Seguridad - Integridad: evitar cambios no autorizados o accidentales. - Confidencialidad: solo los autorizados acceden a información. - Disponibilidad: acceso garantizado a usuarios legítimos. - Identificación, autenticación y autorización como pilares del control de acceso. - No repudio y auditoría para asegurar responsabilidades. # TEMA 2: Integridad de la Información ## 1. Definición y Objetivos Prevenir, detectar y responder a ataques que comprometan la información. Implementar medidas para monitorización y respuesta en caso de incidentes. ## 2. Hash y Funciones Resumen Las funciones hash crean resúmenes únicos para detectar alteraciones. Los algoritmos clásicos incluyen MD5, SHA-1 y los más robustos: SHA-224, SHA-256, SHA-384, SHA-512 y SHA-3. MD5 y SHA-1 son vulnerables frente a colisiones hoy día. ### Propiedades de un Hash Seguro - Fácil cálculo - Unidireccionalidad - Resistencia a colisiones e inversión ## 3. Implementación Práctica Lenguajes modernos (Java, Python) proveen librerías para generar y verificar hashes. Ejemplos: MessageDigest en Java, hashlib en Python. ## 4. Integridad en Almacenamiento La monitorización de integridad de ficheros (Tripwire, VeriSys, Nikto) es clave para detectar cambios no autorizados. Se recomienda almacenar los resúmenes en lugares protegidos. ## 5. Contraseñas y Salting El uso de salt (valor aleatorio añadido a la contraseña antes del hash) previene ataques de diccionario y rainbow tables. Se recomienda salt variable. Funciones de key stretching como PBKDF2, Bcrypt y Scrypt aumentan la seguridad. ## 6. Aplicaciones y Utilidades - Cadena de custodia en análisis forense. - Identificación rápida de archivos (Git, Dropbox). - Antivirus y descarga segura de software. - Blockchain y sellado de documentos digitales. - Limpieza segura y recuperación de datos (Eraser, Data Shredder, Photorec). # TEMA 3: Confidencialidad de la Información ## 1. Cifrado Simétrico Usa una clave secreta compartida. Ejemplos: DES, 3DES, Blowfish, AES, Camellia. AES es el estándar moderno, eficiente y robusto. Existen cifradores de bloque y flujo. ### Modos de Operación ECB cifra bloques independientemente (menos seguro), CBC usa XOR con el bloque anterior (más seguro), CFB y OFB adecuados para streaming. Los modos de relleno permiten cifrar mensajes no múltiplos del tamaño de bloque. ## 2. Cifrado Asimétrico Emplea un par de claves pública/privada (RSA, DSA, ElGamal, ECC). La clave pública puede ser divulgada libremente; la clave privada debe mantenerse secreta. ### Características del Cifrado Asimétrico - Más seguro para intercambio de claves, pero más lento y requiere claves más largas. - Problemas: autenticidad de claves públicas, compromiso de la clave privada, pérdida y lentitud. ## 3. Acuerdo de Claves y Protocolos Protocolos como Diffie-Hellman permiten que dos partes acuerden una clave común sin compartirla explícitamente por el canal. Usados en VPN y otros entornos seguros. ## 4. Protocolos Criptográficos SSL/TLS y SSH combinan criptografía simétrica y asimétrica para autenticación y transmisión segura. WS utilizan XML Encryption para proteger mensajes a nivel de aplicación. ### Implementación en Java y OpenSSL Java proporciona clases específicas (Cipher, KeyPairGenerator, SecureRandom). OpenSSL es el toolkit estándar para SSL/TLS. ## 5. Esteganografía Técnica para ocultar información dentro de otros contenidos. Puede emplearse junto a la criptografía para incrementar la confidencialidad.