## Sumario de Ficheros Relacionados con las Seguridad

Los ficheros relacionados con la seguridad que se encuentran dentro del JDK 1.2 son:

> - El fichero de Propiedades de Seguridad java.security.
> - El fichero de policía del Sistema java.policy.
> - El Keystore de Certificados cacerts.
> Estos ficheros internos residen en el directorio de propiedades de seguridad del JRE,

>     java.home/lib/security/    (Solaris)
>     java.home\lib/security\    (Windows)

> (Observa: java.home indica el directorio en el que se instaló el JRE.)

Los ficheros relacionados con la seguridad que opcionalmente nosotros podríamos crear son:

> - El fichero de policía del Usuario .java.policy.
> - Keystores

Cada uno de estos ficheros se describe más abajo.

### El fichero de Propiedades de Seguridad java.security

> En este fichero se configuran varias propiedades de seguridad para usarlas con las clases del paquete java.security.

> Este fichero especifica

> - nombres de paquetes provider, localizaciones y ordén de precedencia.
> - La clase a ejemplafizar como el objeto Policy cuyo permiso estará disponible para el código de varias fuentes.
> - URLs para los ficheros de policía a ser cargados y utilizados cuando se tomen decisiones de seguridad (si el objeto Policy ejemplarizado es uno que utiliza ficheros de policía).
> - si se debe permitir o no la expansión de propiedades en el fichero de policía, por ejemplo expandir ${java.home} al valor de la propiedad "java.home".
> - si se puede especificar o no un fichero de policía adicional en la línea de comandos con -Djava.security.policy=somefile.
> - el tipo de keystore por defecto (inicialmente llamado "jks", el tipo de keystore propietario de Sun Microsystems)

> Para ver más detalles, el fichero se encuentra en:

>     java.home/lib/security/java.security    (Solaris)
>     java.home\lib/security\java.security    (Windows)

> (java.home indica el directorio en el que se instaló el JRE.)

### El fichero de Policía del Systema java.policy

> Un fichero de policía especifica qué permisos están disponibles para el código de varias fuentes.

> A este fichero nos referimos como fichero de policía del "sistema" porque se utiliza para conceder grandes permisos del sistema. El fichero java.policy instalado con el JDK conceder todos los permisos a las extensiones estándards, permite a cualquier escuchar en un puerto no-privilegiado, y permite a cuaqluier código leer ciertas propiedades "estándard" como las propiedades "os.name" y "file.separator".

> Si es necesario, el fichero de policía del sistema puede ser modificado, con un editor de texto, o con la herramienta policytool. Este último nos requiere que conozcamos el formato del fichero de policía, usándolo nos ahorramos teclear y evita errores.

> El fichero java.policy por defecto está localizado en:

>     java.home/lib/security/java.policy	(Solaris)
>     java.home\lib/security\java.policy	(Windows)

(java.home indica el directorio en el que instalamos el JRE.)

Las localizaciones d elos ficheros de policía realmente se especifican el fichero de propiedades de seguridad como los valores cuyos nombres tienen la forma:

    policy.url.n=URL

donde "n" es un número. El fichero de policía del sistema está definido en el fichero de propiedades de seguridad como:

    policy.url.1=file:${java.home}/lib/security/java.policy

### El KeyStore de Certificados cacerts

> El fichero cacerts representa un keystore certificados de Autoridades de Certificación (CA).

> Los administradores de sistemas pueden configurar y manejar el fichero cacerts usando keytool, especificando "JKS" como el tipo de keystore (un tipo propietario definido por Sun Microsystems).

> En este momento, el fichero cacerts viene con cinco certificados de CA de VeriSign.

> El fichero cacerts se encuentra en:

>     java.home/lib/security/cacerts (Solaris)
>     java.home\lib/security\cacerts (Windows)

> (java.home indica el directorio donde instalamos el JRE.)

### El fichero de Policía de Usuario.java.policy

> Si queremos crear uno o más ficheros de policía para nuestro propio uso, podríamos hacerlo usando un editor de texto, o la herramienta policytool.

> El fichero propiedades de seguridad incluido con el JDK contiene una línea "libre" que especifica un nombre por defecto y localización para un fichero de policía de usuario:

>     policy.url.2=file:${user.home}/.java.policy

> Donde ${user.home} será reemplazado por el directorio "home" del usuario en el momento de la ejecución, determinado por el valor de la propiedad "user.home".

> E fichero especificado no tiene porqué existir. Pero si creamos un fichero con ese nombre, en esa localización, el sistema lo cargará cuando tome decisiones de seguridad.

> Si queremos crear un fichero de policía de usuario pero con otro nombre o localización, simplemneten editamos esa línea en el fichero de propiedades de seguridad de la forma apropiada.

> Si también queremos añadir ficheros de policía adiciones, añadinos para cada uno una línea con la forma:

>     policy.url.n=URL

> donde n sea 3, 4, 5, etc., y URL es la dirección del fichero.

## Keystores

> Un keystore es una base de datos de claves. Las Claves Privadas de un keystore tienen asociada una cadena de certificados, que autentifican la correspondiente Clave Pública. Un keystore también contiene certificados de autoridades verdaderas. Necesitamos un keystore si:
> - queremos generar claves públicas y privadas nosotros mismos.
> - queremos usar nuestra clave privada para firmar ficheros digitalmente.
> - queremos exportar nuestro certificado de clave pública para que otros puedan verificar firmas digitales creadas con nuestra correspondiente clave privada.
> - quermeos generar una Petición de Certificado (CSR) para enviarlo a una Autoridad de Certificación (CA).
> - queremos importar claves de otros (por ejemplo, podemos verificar sus firmas) o una respuesta de certificado desde un CA.
> Usamos la herramienta keytool para crear y manejar nuestro keystore.

Ozito