## Seguridad en Java 2 SDK 1.2

En esta sección aprenderemos cómo las características de seguridad de JavaTM nos protegen frente a programas malévolos. Veremos cómo usar herramientas para controlar el acceso a recursos, para generar y chequear firmas digitales, y para crear y manejar las claves necesarias para generación y comprobación de firmas. También veremos como incorporar servicios decriptografia, como la genración y comprobacion de firmas digitales en nuestros programas.

Las características de seguridad proporcionadas por el Java Development Kit (JDKTM) 1.2 están pensadas para una gran variedad de audiencias:

- Usuarios de programas finales:

  > Las funcionalidades internas de seguridad nos protegen de programas malévolos (incluyendo virus), mantiene la privacidad de nuestros ficheros y de la información sobre nosotros, y autentifica la identidad de cada código proveedor de código. Por primera vez, podemos crear controles de seguridad para aplicaciones (como se hacía para los applets), cuando lo deseemos.

- Desarrolladores:

  > Podemos usar los métodos del API para incorporar funcionalidades de seguridad en nuestros programas, incluyendo servicios de criptografía y chequeo de seguridades. El marco de trabajo del API nos permite definir e integrar nuestros permisos (control de accesso a recursos específicos), implementación de servicios de criptografía, implementación de controladores de seguridad y de policias. Además, se proporcionan clases para el manejo de nuestra parejas de claves pública/privada y de certificados públicos de gente conocida.

- Administradores de Sistemas, Desarrolladores y Usuarios:

  > Las herramientas del JKD 1,2 manejan nuestro almacen de claves (base de datos de claves y certificados); generan firmas digitales para ficheros JAR, y verifica la autenticidad de dichas firmas y la integridad de los contenidos firmados; y crea y modifica los ficheros de policía que definen uestra política de seguridad.

> Nota: Casi todas las características de seguridad documentadas en esta sección fueron añadidas al JDK en su versión 1.2. Por eso, los ejemplos de código de las siguientes páginas sólo funcionan en plataformas Java que sean compatibles con el JDK 1.2. Los navegadores individuales podrían tener diferentes comportamientos a menos que usemos el Java Plug-in para descargar el último Entorno de ejcución de Java (JRETM) compatible con JDK 1.2.

## Páginas de la Sección

> Introducción a las Características de Seguridad describe brevemente las características de seguridad disponibles en el JDK 1.2.

> Visión Rápida para Controlar Applets proporciona una introducción a algunas de las nuevas caracterísitcas. Esta lección muestra cómo los accesos a recursos, como leer o escribir un fichero, no están permitidos para los applts a menos que lo permitamos expícitamente con un permiso en un fichero de policía.

> Visión Rápida para Controlar Aplicaciones basada en la lección anterior, muestra que cuando las aplicación se ejecutan bajo un controlador de seguridad, el acceso a recursos podría estar controlado de la misma forma que con los applets.

> API y Herramientas usadas para Código Seguro e Intercambio de Ficheros describe las firmas digitales, certificados y almacen de claves y explica por qué son necesarios. También proporciona información aplicable en las tres lecciones siguientes recordando los pasos necesarios para usar las herramientas el API para generar firmas, exportar/importar certificados, etc.

> Código Firmado y Concesión de Permisos ilustra el uso de todas las herramientas relacionadas con la seguridad. Muestra los pasos que un desarrollador debería seguir para firmar y distribuir código para que otros lo ejecuten. Esta lección también muestra cómo alguien que vaya a ejecutar el código (o un administrador de sistemas) puede añadir una entrada en el fichero de policía para conceder permisos al código para los accesos a los recursos que necesite.

> Intercambiar Ficheros muestra cómo usar las herramientas para que una persona firme un documento importante, como es un contrato, y para exporta el certificado de clave pública para la clave pública correspondiente a la clave privada usada para firmar el contrato. Luego esta lección muestra cómo otra persona, la que recibe el contrato, la firma y el certificado de clave pública, puede importar el certificado y verificar la firma.

> Generar y Verificar Firmas nos lleva paso a paso a través de un ejemplo de un programa Java que usa el API de seguridad del JDK para generar clave, una firma digital para datos que usan la clave privada, y para exportar los ficheros de la clave pública y la firma. Luego este ejemplo muestra cómo escribir un segundo programa, que podría ejecutarse en el ordenador de otra persona diferente, que importa la clave pública y verifica la autenticidad de la firma. Finalmente, el ejemplo explica debilidades potenciales de la aproximación usada por el programa básico y demuestra las posibles alternativas y métodos para suministrar e importar claves, incluyendo certificados.

> Implementar Nuestros Propios Permisos desmuestra cómo escribir una clase que defina nuestro permiso especial

> Sumarios proporciona un sumario de

> - seguridad general y seguridad específica del JDK, terminología y conceptos
> - el API de seguridad del JDK
> - herramientas relacionadas con la seguridad
> - ficheros relacionados con la seguridad

## Para más información

> La documentación sobre seguridad del JDK 1.2 puede encontrarse en http://java.sun.com/products/jdk/1.2/docs/guide/security/index.html .Aquí encontrarás información más detallada sobre las características de seguridad, incluyendo especificaciones de arquitectura, guías de uso, documentación del API, y documentación de herramientas.

> Esta sección no cubre encriptación ni desencriptación. Estas se suministran como parte del JCE (Java Cryptography Extension). Para más información , puedes ver la documentación para esta versión en http://java.sun.com/products/jce/index.html.

> Información sobre el uso del Java Plug-in para descargar la últiva versión del Java Runtime Environment compatible con JDK 1.2 puedes encontrarla aquí: http://java.sun.com/products/plugin/index.html .

Ozito