Presentación

Este módulo introduce la seguridad de aplicaciones desde la programación en Java. Partiendo de los API que soportan los servicios criptográficos básicos (JCA y JCE), estudiaremos: los mecanismos simétricos (clave secreta) y asimétricos (clave pública, clave privada) y su aplicación a la encriptación de claves y ficheros; las firmas y certificados digitales; la integración de autentificación y autorización (JAAS); la comunicación segura (HTTPS, SSL y JSSE); la encriptación del contenido de las bases de datos y finalmente los servicios de seguridad que proporciona la plataforma BEA WebLogic 7.0, a través de ejemplos de SSL y JAAS.

Número de horas: 17,5

Sesiones del curso

Recursos

Profesores

Francisco Escolano Ruiz
sco@dccia.ua.es

Temario

Tema 1: Servicios criptográficos en Java

1.1: JCA: Java Cryptography Architecture.
1.2: JCE: Java Cryptography Extension.

Tema 2: Encriptación simétrica

2.1: Estrategias de clave secreta.
2.2: DESede y Blowfish en JCE.
2.3: PBE: Encriptación basada en password.
2.4: Codificación de claves secreta.
2.5: Cifradores de stream.
2.6: Ejemplo de encriptación de ficheros.

Tema 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 claves de sesión.
3.4: Codificación de claves públicas y privadas.
3.5: Encriptación de ficheros con RSA.

Tema 4: Firma digital y certificado digital

4.1: Autentificación por firma digital.
4.2: Certificados digitales: contenidos.
4.3: Generando certificados: keystores y keytool.
4.4: Crear certificados en Java.
4.5: Crear nuestra propia CA.

Tema 5: Integrando autentificación y autorizació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.

Tema 6: Protocolo SSL (Secure Sockets Layer)

6.1: SSL básico: Funcionamiento y HTTPS
6.2: Instalando y configurando JSSE (Java Secure Sockets Extension).
6.3: Cliente y servidor HTTPS.
6.4: Protegiendo keystore y password: com.sun.net.ssl.
5.5: Autentificación del cliente.

Tema 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 CreditCardFactory.
7.4: Protegiendo keystore y password: com.sun.net.ssl.
7.5: Modificando y consultando la base de datos.

Tema 8: Seguridad en BEA WebLogic

8.1: Ejemplos SSL en WebLogic.
8.2: Ejemplos JAAS en WebLogic.