Programación de Seguridad en Java

Presentación

En este módulo estudiaremos los elementos de programación necesarios para incorporar mecanismos de seguridad a nuestras aplicaciones: encriptación (de clave secreta y de clave pública), firmas y certificados digitales, protocolo SSL. Estos mecanismos vienen implementados por diferentes APIs java (JCA, JCE, JAAS, JSSE) que estudiaremos en su momento. Veremos como aplicar estas ideas para encriptar bases de datos y proteger aplicaciones.

Número de horas

20

Profesor

Francisco Escolano Ruiz

Temario

1. Servicios Criptográficos en Java
    1.1. Overview: De qué trata este módulo
    1.2. JCA: Java Cryptography Architecture
    1.3. JCE: Java Cryptography Extension
2. Encriptación Simétrica
    2.1. Estrategias de clave secreta
    2.2. DESede y Blowfish en JCE
    2.3. Encriptación basada en passwords (PBE)
    2.4. Codificación de claves secretas
    2.5. Cifradores de "stream"
    2.6. Ejemplo de encriptación de ficheros
3. Encriptación Asimétrica
    3.1. Clave pública y clave privada
    3.2. Clases e interfaces en java
    3.3. Encriptación de "clave de sesión"
    3.4. Codificación de claves públicas y privadas
    3.5. Encriptación de ficheros con RSA
4. Firma y certificado digital
    4.1. Autentificación por firma digital
    4.2. Certificados digitales: contenidos
    4.3. Generando certificados: "keystores" y keytool
    4.4. Certificados en Java
    4.5. Crear nuestra propia CA
5. Integrando autorización y autentificación
    5.1. JAAS: Java Authentication and Authorization Service
    5.2. javax.security.auth.login: LoginContext y Configuration
    5.3. javax.security.auth.callback: Callback y CallbackHandler
    5.4. Interfaz javax.security.auth.spi.LoginModule
    5.5. Clase javax.security.auth.Subject
    5.6. Probando el ejemplo
    5.7. Autorización programática
6. Protocolo SSL
    6.1. SSL básico: Funcionamiento y HTTPS
    6.2. Instalando y configurando JSSE
    6.3. Cliente y servidor HTTPS
    6.4. Protegiendo "keystore" y password: com.sun.net.ssl
    6.5. Autentificación del cliente
7. Seguridad en Bases de Datos
    7.1. Encriptación de tarjetas de crédito
    7.2. Configuración de la base de datos
    7.3. Clase CreditFactory
    7.4. Modificando y consultando la base de datos
8. Seguridad en BEA WebLogic
    8.1. Ejemplos SSL
    8.2. Ejemplos JAAS
9. Seguridad en una aplicación completa

Sesiones

Número y nombre de sesión Materiales
1. Servicios Criptográficos en Java apuntes traspas ejercicios plantillas
2. Encriptación Simétrica apuntes traspas ejercicios plantillas
3. Encriptación Asimétrica apuntes traspas ejercicios plantillas
4. Firma y Certificado Digital apuntes traspas ejercicios plantillas
5. Integrando Autorización y Auntentificación apuntes traspas ejercicios plantillas
6. Protocolo SSL apuntes traspas ejercicios plantillas
7. Seguridad en Bases de Datos apuntes traspas ejercicios plantillas
8. Seguridad en BEA WebLogic apuntes traspas ejercicios plantillas
9. Seguridad en una Aplicación Completa apuntes traspas ejercicios plantillas
Dpto. de Ciencia de la Computación e Inteligencia Artificial (c) 2003