Criptografía en aplicaciones Java
Í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.
Introducción

   ¿Qué es la seguridad?
   Seguridad Java.
   Evolución en el modelo de seguridad.
   Características J2EE.
¿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.
¿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.
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.
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.
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.
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.
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.
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.
Introducción

   Definición de Criptografía.
   Confidencialidad e integridad.
   Sistemas criptográficos.
   Sistemas simétricos y asimétricos.
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).
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.
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).
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.

1. introduccioìn a la seguridad

  • 1.
  • 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 laseguridad?  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 laseguridad? 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  Laconexió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 modelode 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  Unaaplicació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  Laplataforma 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  Laseguridad 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únel 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  Criptosistemassimé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.