Sumario del API de Seguridad en Java 2
¿Qué Proporciona el API de Seguridad del JDK
El API de Seguridad del JDK es un API corazón de Java, construido alrededor del paquete java.security (y sus subpaquetes).
Métodos del API
Los clientes pueden llamar a los métodos dle API para incorporar funcionalidades de seguridad en sus aplicaciones, incluyendo.
- uso de servicios de criptografía implementada por el proveedor internet "SUN" y/o otros paquetes proveedores. Estos servicios incluyen firma digital, resumen de mensajes, generación de claves y algoritmos de generación de números aleatorios; creación de keystores y servicios de manejo; algoritmos de generación de parámetros y servicios de manejo; y "fábricas" de claves y certificados para la creacción de claves y certificados desde material existente (por ejemplo, codificados).
- añadir chequeos de seguridad para asegurarnos de que el llamador tiene concedido un permiso personalizado (puedes ver Personalizar las Características de Seguridad).
- marcar código como "privilegiado" para que pueda ejercitar más permisos que los del llamador.
- obtener o seleccionar valores para las propiedades de seguridad del sistema.
La lección Generar y Verificar Firmas muestra cómo escribir programas que usan los aspectos criptográficos del API de Seguridad del JDK para generar (o importar) claves, generar una firma digital para datos usando la clave privada, y verificar la autenticidad de una firma.
La lección Implementar Nuestros Propios Permisos ilustra la definición de nuestros propios permisos, añadiendo chequeos de seguridad a nuestro código para asegurarnos de que el llamado tiene el permiso específicado, y hacer código "privilegiado".
La lección Rápida Visión para Controlar Aplicaciones imcluye un programa GetProps que obtiene los valores de las propiedades "user.home" y "java.home".
Personalización de las Características de Seguridad
El API permite a los clientes definir e integrar sus propios
- nuevos Permisos.
- implementaciones de servicios de criptografía (en uno o más paquetes proveedores).
- implementaciones de SecurityManager (para reemplazar al usado por defecto y que es cargado por los applets, y por las aplicaciones cuya ejecución requerie tener un controlador de seguridad.
- implementaciones de Policy (para reemplazar la implementación interna por defecto).
La lección Implementar Nuestros Propios Permisos ilustra la definición de nuestros propios permisos y añadir chequeos de seguriad a nuestro código para asegurar que el llamador tiene el permiso específicado.
Añadir una implementación de un servicio de criptografía es algo que un gran número de desarrolladores espera hacer, pero es algo que se escapa al ámbito de este tutorial. Puedes ver
How to Implement a Provider for the Java Cryptography Architecture en la web pública de java.sun.com.
¿Qué pasa con la Encriptación y la Desencriptación?
Los APIs para encriptación y desencriptación de datos, junto con algunas implementaciones de algoritmos por defecto, se liberán de forma separada en un "Java Cryptography Extension" (JCE) como una paquete añadido al JDK, en concordancia con las regulaciones de control de exportaciones de los EE.UU. No se cubren en este tutorial.