## ¿Qué Proporciona el API de Seguridad del JDK

El API de Seguridad del JDK es una 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 incorportar 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 especificado un permiso personalizado (puedes ver Personalizar las Características de Seguridd).
> - marcar código como "privilegiado para que peuda 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 proveedore).
> - implementaciones de SecurityManager (para reemplazar al usado por defecto y que es cargadopor 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 liverá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.

Ozito