2. Índice de contenidos
Introducción.
Criptografía con Java.
Infraestructura con PKI con Java.
Control de acceso.
Aplicaciones con Java SSL.
Seguridad en aplicaciones WEB.
3. Introducción
¿Qué es la seguridad?
Seguridad Java.
Evolución en el modelo de seguridad.
Características J2EE.
4. ¿Qué es la seguridad?
El término seguridad puede ser distinto en
función del contexto en el que hablamos.
Se pueden esperar resultados distintos de la
palabra seguridad en función de dicho contexto:
Protección frente a programas potencialmente
peligrosos: un programa no debe atacar el sistema de
un usuario.
No intrusismo: los programas no deben acceder a
información privada de un ordenador.
Autenticación: identificación de los distintos elementos
que componen un programa.
5. ¿Qué es la seguridad?
Cifrado: los datos que un programa envía y recibe
deben estar cifrados.
Comportamiento correcto: los programas no deben
consumir demasiados recursos de sistema.
Sólo los dos primeros apartados se incluyen en
el modelo de seguridad por defecto de Java 1.0
Otros puntos fueron incluidos en versiones
posteriores, tales como, cifrado.
6. Seguridad Java
La conexión a Internet obliga a una protección
de nuestros sistemas frente a posibles virus.
Descarga de programas a través de la red y
ejecución de dichos programas en otras
máquinas.
La aparición de Java multiplica los problemas,
dado que Java tiene la cualidad de llevar
programas al usuario.
7. Seguridad Java
El éxito de Java radica en solucionar el
problema de los virus.
Gran parte de los esfuerzos en el desarrollo de
Java se focalizó en este tema.
Los programas Java se consideran seguros
porque no pueden causar ningún daño al
usuario.
La protección de la información de usuario y la
prevención de virus es un tema muy
importante.
8. Evolución del modelo de seguridad
Aislamiento de virus: todas las versiones.
Autenticación y cifrado: versión 1.1 o
posteriores.
Si se necesita un conjunto de operaciones
auditadas se deberá implementar dentro de la
aplicación.
9. Características JavaEE
Una aplicación J2EE es segura gracias a:
Clases fundamentales de Java.
Máquina virtual.
Lenguaje de programación.
Una aplicación J2EE tiene muchos niveles y es
posible implementar características de
seguridad en cada uno de los niveles.
10. Características JavaEE
La plataforma proporciona las siguientes
funcionalidades:
Vigilancia de seguridad configurable.
Generación de digest message.
Generación de firma digital.
Sistema de gestión de claves.
11. Características JavaEE
La seguridad es un balance entre protección
máxima y la utilización.
El nivel adecuado de seguridad que se debe
aplicar se determina de acuerdo con los
factores percibidos de riesgo y utilización.
El modelo de seguridad de Java es una
especificación abierta.
La especificación del modelo está disponible
para que la comunidad Java lo estudie, valide e
introduzca mejoras para hacerlo más seguro.
12. Introducción
Definición de Criptografía.
Confidencialidad e integridad.
Sistemas criptográficos.
Sistemas simétricos y asimétricos.
13. Definición de criptografía
Rama inicial de las Matemáticas y en la actualidad
también de la Informática y la Telemática, que hace uso
de métodos y técnicas con el objeto principal de cifrar, y
por tanto proteger, un mensaje o archivo por medio de
un algoritmo, usando una o más claves.
Esto dará lugar a diferentes tipos de sistemas de cifra,
que nos permiten asegurar al menos tres de los cuatro
aspectos básicos de la seguridad informática: la
confidencialidad o secreto del mensaje, la integridad del
mensaje y autenticidad del emisor, así como el no
repudio mutuo entre emisor (cliente) y receptor
(servidor).
14. Confidencialidad e integridad
Confidencialidad:
intercepción del mensaje por un intruso.
Integridad:
usurpación de identidad por un intruso.
Estos dos aspectos básicos de la seguridad
informática, el de la confidencialidad y el de
integridad (además de la disponibilidad del
sistema y el no repudio) serán muy importantes
en un entorno de intercambio de información
segura a través de Internet.
15. Sistemas criptográficos
Según el tratamiento del mensaje se dividen
en:
Cifrado en bloque (IDEA, AES, RSA* ...) 64 ó 128 bits.
Cifrado en flujo (A5, RC4, SEAL ...) cifrado bit a bit.
Según el tipo de claves se dividen en:
Cifrado con clave secreta (sistemas simétricos).
Cifrado con clave pública (sistemas asimétricos).
16. Sistemas criptográficos
Criptosistemas simétricos:
Existirá una única clave (secreta) que deben compartir
emisor y receptor. Con la misma clave se cifra y se
descifra por lo que la seguridad reside en mantener
dicha clave en secreto.
Criptosistemas asimétricos:
Cada usuario crea un par de claves, una privada y otra
pública, inversas dentro de un cuerpo finito. Lo que se
cifra en emisión con una clave, se descifra en
recepción con la clave inversa. La seguridad del
sistema reside en la dificultad computacional de
descubrir la clave privada a partir de la pública. Para
ello, usan funciones matemáticas de un solo sentido o
con trampa.