Seguridad en Java 

Qué es Java 

Barreras de seguridad 

Prohibido 

Agujeros 

Cómo firmar applets 

Consejos 

Recursos 

Líneas futuras de seguridad en Java

Evolución del modelo de seguridad de Java

Futuro
JDK 1.1
JDK 1.2

En vista de las restricciones impuestas por el modelo de seguridad de Java, muchos desarrolladores de software se encuentran ante la impotencia de escribir aplicaciones realmente útiles, puesto que se les niega la capacidad de leer/escribir en disco o de abrir conexiones a otras máquinas. Si se quiere que las applets sean algo más que dibujos animados para realzar el impacto visual de una página y lleguen a convertirse en verdaderas aplicaciones productivas y realmente útiles, los usuarios de la aplicación Java necesitan garantizarle el acceso a los recursos, y antes de concederle estos privilegios, necesitan de un mecanismo que les permita saber de dónde (de quién) proviene la applet a la que le van a permitir acceso a su sistema.

La evolución lógica del modelo anterior llegó a través del JDK 1.1.x, al introducir el concepto de applet firmada. En este modelo extendido, una applet con firma digital válida se trata como si fuera código de confianza cargado localmente siempre y cuando la firma digital sea reconocida como de confianza por el sistema final que recibe la applet. Estas applets firmadas, junto con sus firmas, son enviadas en formato JAR (Java Archive). Se puede ver una representación gráfica de este nuevo modelo en la simpática figura de Li Gong.

La primera edición de Seguridad en Java, disponible con el JDK 1.1, contenía API’s para:

  • Firmas digitales: algoritmos de firma digital, como DSA. Su funcionalidad incluía generación de pares de clave pública/privada, así como firma y verificación de datos digitales arbitrarios.
  • Resúmenes de mensajes: resúmenes de mensajes criptográficamente seguros, tales como MD5 y SHA-1. Estos algoritmos, también llamados algoritmos de hash unidireccional, son útiles para producir "resúmenes digitales" de los datos, usados frecuentemente en firmas digitales y otras aplicaciones que requieren identificadores únicos e infalsificables de datos digitales.
  • Gestión de claves: conjunto de abstracciones para gestionar principales (entidades tales como usuarios individuales o grupos), sus claves y sus certificados. Permite a las aplicaciones diseñar sus propios sistemas de gestión de claves e interoperar con otros sistemas a alto nivel.
  • Listas de control de acceso: conjunto de abstracciones para gestionar principales y sus permisos de acceso.

Asimismo, se desarrolló de forma paralela una Extensión Criptográfica de Java (JCE) con API’s que incluían algoritmos para cifrado y descifrado de datos.

Si estás interesado, puedes obtener el kit de desarrollo de Java, versión 1.1.

 

Copyright © 1997-1999 Gonzalo Álvarez Marañón, CSIC. Todos los derechos reservados.

Criptonomicón es un servicio ofrecido libremente desde el Instituto de Física Aplicada del CSIC. Para información sobre privacidad, por favor consulte la declaración de política sobre privacidad. Para sugerencias, comentarios o quejas, acuda al libro de visitas. Para contribuir al Criptonomicón, lea la página de contribuciones.