Omitir V�nculos de navegaci�n | |
Salir de la Vista de impresi�n | |
Guía de administración del sistema: servicios de seguridad |
Parte I Descripción general de la seguridad
1. Servicios de seguridad (descripción general)
Parte II Seguridad de sistemas, archivos y dispositivos
2. Gestión de seguridad de equipos (descripción general)
3. Control de acceso a sistemas (tareas)
4. Control de acceso a dispositivos (tareas)
5. Uso de la herramienta básica de creación de informes de auditoría (tareas)
6. Control de acceso a archivos (tareas)
7. Uso de la herramienta automatizada de mejora de la seguridad (tareas)
Parte III Roles, perfiles de derechos y privilegios
8. Uso de roles y privilegios (descripción general)
9. Uso del control de acceso basado en roles (tareas)
10. Control de acceso basado en roles (referencia)
Parte IV Servicios criptográficos
13. Estructura criptográfica de Oracle Solaris (descripción general)
14. Estructura criptográfica de Oracle Solaris (tareas)
Uso de la estructura criptográfica (mapa de tareas)
Protección de archivos con la estructura criptográfica de Oracle Solaris (mapa de tareas)
Protección de los archivos con la estructura criptográfica (tareas)
Cómo generar una clave simétrica con el comando dd
Cómo generar una clave simétrica con el comando pktool
Cómo calcular un resumen de un archivo
Administración de la estructura criptográfica (mapa de tareas)
Administración de la estructura criptográfica (tareas)
Cómo mostrar los proveedores disponibles
Cómo agregar un proveedor de software
Cómo evitar el uso de un mecanismo de nivel de usuario
Cómo evitar el uso de un proveedor de software de núcleo
Cómo mostrar proveedores de hardware
Cómo deshabilitar funciones y mecanismos del proveedor de hardware
Cómo actualizar o reiniciar todos los servicios criptográficos
15. Estructura de gestión de claves de Oracle Solaris
Parte V Servicios de autenticación y comunicación segura
16. Uso de servicios de autenticación (tareas)
19. Uso de Oracle Solaris Secure Shell (tareas)
20. Oracle Solaris Secure Shell (referencia)
21. Introducción al servicio Kerberos
22. Planificación del servicio Kerberos
23. Configuración del servicio Kerberos (tareas)
24. Mensajes de error y resolución de problemas de Kerberos
25. Administración de las políticas y los principales de Kerberos (tareas)
26. Uso de aplicaciones Kerberos (tareas)
27. El servicio Kerberos (referencia)
Parte VII Auditoría de Oracle Solaris
28. Auditoría de Oracle Solaris (descripción general)
29. Planificación de la auditoría de Oracle Solaris
30. Gestión de la auditoría de Oracle Solaris (tareas)
En esta sección, se describe cómo generar claves simétricas, cómo crear sumas de comprobación para la integridad de archivos y cómo proteger los archivos contra intrusos. Los comandos incluidos en esta sección pueden ser ejecutados por usuarios comunes. Los desarrolladores pueden escribir secuencias de comandos que utilicen estos comandos.
Se necesita una clave para cifrar archivos y generar el MAC de un archivo. La clave se debería obtener de una agrupación aleatoria de números.
Si su sitio cuenta con un generador de números aleatorios, utilícelo. De lo contrario, puede utilizar el comando dd con el dispositivo /dev/urandom de Oracle Solaris como entrada. Para obtener más información, consulte la página del comando man dd(1M).
% encrypt -l Algorithm Keysize: Min Max (bits) ------------------------------------------ aes 128 128 arcfour 8 128 des 64 64 3des 192 192 % mac -l Algorithm Keysize: Min Max (bits) ------------------------------------------ des_mac 64 64 sha1_hmac 8 512 md5_hmac 8 512 sha256_hmac 8 512 sha384_hmac 8 1024 sha512_hmac 8 1024
Divida los tamaños de clave mínimo y máximo por 8. Cuando los tamaños de clave mínimo y máximo son diferentes, es posible utilizar tamaños de clave intermedios. Por ejemplo, el valor 8, 16 o 64 pueden transferirse al comando dd para las funciones sha1_hmac y md5_hmac.
% dd if=/dev/urandom of=keyfile bs=n count=n
Es el archivo de entrada. Para una clave aleatoria, utilice el archivo /dev/urandom.
Es el archivo de salida que contiene la clave generada.
Es el tamaño de la clave en bytes. Para obtener la longitud en bytes, divida la longitud de la clave (en bytes) por 8.
Es el recuento de los bloques de entrada. El número para n debe ser 1.
El archivo de claves sólo debe ser legible para el usuario.
% chmod 400 keyfile
Ejemplo 14-1 Creación de una clave para el algoritmo AES
En el siguiente ejemplo, se crea una clave secreta para el algoritmo AES. La clave también se almacena para el descifrado posterior. Los mecanismos AES utilizan una clave de 128 bits. La clave se expresa en 16 bytes en el comando dd.
% ls -al ~/keyf drwx------ 2 jdoe staff 512 May 3 11:32 ./ % dd if=/dev/urandom of=$HOME/keyf/05.07.aes16 bs=16 count=1 % chmod 400 ~/keyf/05.07.aes16
Ejemplo 14-2 Creación de una clave para el algoritmo DES
En el siguiente ejemplo, se crea una clave secreta para el algoritmo DES. La clave también se almacena para el descifrado posterior. Los mecanismos DES utilizan una clave de 64 bits. La clave se expresa en 8 bytes en el comando dd.
% dd if=/dev/urandom of=$HOME/keyf/05.07.des8 bs=8 count=1 % chmod 400 ~/keyf/05.07.des8
Ejemplo 14-3 Creación de una clave para el algoritmo 3DES
En el siguiente ejemplo, se crea una clave secreta para el algoritmo 3DES. La clave también se almacena para el descifrado posterior. Los mecanismos 3DES utilizan una clave de 192 bits. La clave se expresa en 24 bytes en el comando dd.
% dd if=/dev/urandom of=$HOME/keyf/05.07.3des.24 bs=24 count=1 % chmod 400 ~/keyf/05.07.3des.24
Ejemplo 14-4 Creación de una clave para el algoritmo MD5
En el siguiente ejemplo, se crea una clave secreta para el algoritmo MD5. La clave también se almacena para el descifrado posterior. La clave se expresa en 64 bytes en el comando dd.
% dd if=/dev/urandom of=$HOME/keyf/05.07.mack64 bs=64 count=1 % chmod 400 ~/keyf/05.07.mack64
Algunas aplicaciones requieren una clave simétrica para el cifrado y el descifrado de las comunicaciones. En este procedimiento, se crea una clave simétrica y se la almacena.
Si su sitio cuenta con un generador de números aleatorios, puede utilizar el generador para crear un número aleatorio para la clave. Este procedimiento no utiliza el generador de números aleatorios de su sitio.
En su lugar, puede utilizar el comando dd con el dispositivo /dev/urandom de Oracle Solaris como entrada. El comando dd no almacena la clave. Para conocer el procedimiento, consulte Cómo generar una clave simétrica con el comando dd.
Utilice uno de los métodos siguientes.
La ventaja de almacenar una clave en un archivo es que se puede extraer la clave de este archivo para usarla en el archivo de claves de una aplicación, como el archivo /etc/inet/secret/ipseckeys o IPsec.
% pktool genkey keystore=file outkey=key-fn \ [keytype=specific-symmetric-algorithm] [keylen=size-in-bits] \ [dir=directory] [print=n]
El valor file especifica la ubicación de almacenamiento de tipo archivo para la clave.
Es el nombre de archivo cuando se especifica keystore=file.
Para un algoritmo determinado, especifique aes, arcfour, des o 3des.
Es la longitud de la clave en bits. El número debe ser divisible por 8. No especificar para des ni 3des.
Es la ruta del directorio a nombre_archivo_claves. De manera predeterminada, el valor de directorio es el directorio actual.
Imprime la clave en la ventana de terminal. De manera predeterminada, el valor de print es n.
La ventaja del almacén de claves PKCS #11 es que se puede recuperar la clave por su etiqueta. Este método es útil para las claves para cifrar y descifrar archivos. Debe completar el Paso 1 antes de utilizar este método.
% pktool genkey label=key-label \ [keytype=specific-symmetric-algorithm] [keylen=size-in-bits] \ [token=token] [sensitive=n] [extractable=y] [print=n]
Es una etiqueta especificada por el usuario para la clave. La clave se puede recuperar del almacén de claves por su etiqueta.
Para un algoritmo determinado, especifique aes, arcfour, des o 3des.
Es la longitud de la clave en bits. El número debe ser divisible por 8. No especificar para des ni 3des.
Es el nombre del token. De manera predeterminada, el token es Sun Software PKCS#11 softtoken.
Especifica la sensibilidad de la clave. Cuando el valor es y, la clave no se puede imprimir utilizando el argumento print=y. De manera predeterminada, el valor de sensitive es n.
Especifica que la clave se puede extraer del almacén de claves. Especifique n para evitar que se extraiga la clave.
Imprime la clave en la ventana de terminal. De manera predeterminada, el valor de print es n.
Debe completar el Paso 1 antes de utilizar este método.
% pktool keystore=nss genkey label=key-label \ [keytype=[keytype=specific-symmetric-algorithm] [keylen=size-in-bits] [token=token] \ [dir=directory-path] [prefix=database-prefix]
El valor nss especifica la ubicación de almacenamiento de tipo NSS para la clave.
Es una etiqueta especificada por el usuario para la clave. La clave se puede recuperar del almacén de claves por su etiqueta.
Para un algoritmo determinado, especifique aes, arcfour, des o 3des.
Es la longitud de la clave en bits. El número debe ser divisible por 8. No especificar para des ni 3des.
Es el nombre del token. De manera predeterminada, el token es el token interno NSS.
Es la ruta de directorio a la base de datos NSS. De manera predeterminada, el valor de directorio es el directorio actual.
Es el prefijo de la base de datos NSS. El valor predeterminado es sin prefijo.
Imprime la clave en la ventana de terminal. De manera predeterminada, el valor de print es n.
Utilice uno de los siguientes comandos, según dónde haya guardado la clave.
% pktool list keystore=file objtype=key infile=key-fn Found n keys. Key #1 - keytype:location (keylen)
$ pktool list objtype=key Enter PIN for keystore: Found n keys. Key #1 - keytype:location (keylen)
Ejemplo 14-5 Creación de una clave DES con el comando pktool
En el siguiente ejemplo, se crea una clave secreta para el algoritmo DES. La clave se almacena en un archivo local para un posterior descifrado. El comando protege el archivo con 400 permisos. Cuando se crea la clave, la opción print=y muestra la clave generada en la ventana de terminal.
Los mecanismos DES utilizan una clave de 64 bits. El usuario que posee el archivo de claves recupera la clave mediante el comando od.
% pktool genkey keystore=file outkey=64bit.file1 keytype=des print=y Key Value ="a3237b2c0a8ff9b3" % od -x 64bit.file1 0000000 a323 7b2c 0a8f f9b3
Cuando se calcula un resumen de un archivo, se puede comprobar que el archivo no haya sido alterado comparando los resultados del resumen. Un resumen no modifica el archivo original.
% digest -l md5 sha1 sha256 sha384 sha512
Proporcione un algoritmo con el comando digest.
% digest -v -a algorithm input-file > digest-listing
Muestra el resultado en el siguiente formato:
algorithm (input-file) = digest
Es el algoritmo que se utilizará para calcular un resumen del archivo. Escriba el algoritmo tal como aparece en el resultado del Paso 1.
Es el archivo de entrada para el comando digest.
Es el archivo de salida para el comando digest.
Ejemplo 14-6 Cálculo de un resumen con el mecanismo MD5
En el ejemplo siguiente, el comando digest usa el mecanismo MD5 para calcular un resumen de un anexo de correo electrónico.
% digest -v -a md5 email.attach >> $HOME/digest.emails.05.07 % cat ~/digest.emails.05.07 md5 (email.attach) = 85c0a53d1a5cc71ea34d9ee7b1b28b01
Cuando no se utiliza la opción -v, el resumen se guarda sin información adicional:
% digest -a md5 email.attach >> $HOME/digest.emails.05.07 % cat ~/digest.emails.05.07 85c0a53d1a5cc71ea34d9ee7b1b28b01
Ejemplo 14-7 Cálculo de un resumen con el mecanismo SHA1
En el ejemplo siguiente, el comando digest usa el mecanismo SHA1 para proporcionar una lista de directorios. Los resultados se colocarán en un archivo.
% digest -v -a sha1 docs/* > $HOME/digest.docs.legal.05.07 % more ~/digest.docs.legal.05.07 sha1 (docs/legal1) = 1df50e8ad219e34f0b911e097b7b588e31f9b435 sha1 (docs/legal2) = 68efa5a636291bde8f33e046eb33508c94842c38 sha1 (docs/legal3) = 085d991238d61bd0cfa2946c183be8e32cccf6c9 sha1 (docs/legal4) = f3085eae7e2c8d008816564fdf28027d10e1d983
Un código de autenticación de mensajes, o MAC, calcula un resumen del archivo y utiliza una clave secreta para proteger aún más el resumen. Un MAC no modifica el archivo original.
% mac -l Algorithm Keysize: Min Max ----------------------------------- des_mac 64 64 sha1_hmac 8 512 md5_hmac 8 512 sha256_hmac 8 512 sha384_hmac 8 1024 sha512_hmac 8 1024
Dispone de dos opciones. Puede proporcionar una frase de contraseña a partir de la cual se generará una clave. O bien, puede proporcionar una clave.
Si proporciona una frase contraseña, deberá almacenarla o recordarla. Si almacena la frase de contraseña en línea, sólo usted debe poder leer el archivo de frases de contraseña.
Si proporciona una clave, ésta debe ser del tamaño correcto para el mecanismo. Para conocer el procedimiento, consulte Cómo generar una clave simétrica con el comando dd.
Proporcione una clave y utilice un algoritmo de clave simétrico con el comando mac.
% mac -v -a algorithm [ -k keyfile ] input-file
Muestra el resultado en el siguiente formato:
algorithm (input-file) = mac
Es el algoritmo que se utiliza para calcular el MAC. Escriba el algoritmo tal como aparece en el resultado del comando mac -l.
Es el archivo que contiene una clave con la longitud especificada por el algoritmo.
Es el archivo de entrada para el MAC.
Ejemplo 14-8 Cálculo de un MAC con DES_MAC y una frase de contraseña
En el ejemplo siguiente, el anexo de correo electrónico se autentica con el mecanismo DES_MAC y una clave que se obtiene a partir de una frase de contraseña. La lista de MAC se guarda en un archivo. Si la frase de contraseña se almacena en un archivo, el usuario debe ser la única persona que pueda leer el archivo.
% mac -v -a des_mac email.attach Enter passphrase: <Type passphrase> des_mac (email.attach) = dd27870a % echo "des_mac (email.attach) = dd27870a" >> ~/desmac.daily.05.07
Ejemplo 14-9 Cálculo de un MAC con MD5_HMAC y un archivo de claves
En el ejemplo siguiente, el anexo de correo electrónico se autentica con el mecanismo MD5_HMAC y una clave secreta. La lista de MAC se guarda en un archivo.
% mac -v -a md5_hmac -k $HOME/keyf/05.07.mack64 email.attach md5_hmac (email.attach) = 02df6eb6c123ff25d78877eb1d55710c % echo "md5_hmac (email.attach) = 02df6eb6c123ff25d78877eb1d55710c" \ >> ~/mac.daily.05.07
Ejemplo 14-10 Cálculo de un MAC con SHA1_HMAC y un archivo de claves
En el ejemplo siguiente, el manifiesto de directorio se autentica con el mecanismo SHA1_HMAC y una clave secreta. Los resultados se colocarán en un archivo.
% mac -v -a sha1_hmac \ -k $HOME/keyf/05.07.mack64 docs/* > $HOME/mac.docs.legal.05.07 % more ~/mac.docs.legal.05.07 sha1_hmac (docs/legal1) = 9b31536d3b3c0c6b25d653418db8e765e17fe07a sha1_hmac (docs/legal2) = 865af61a3002f8a457462a428cdb1a88c1b51ff5 sha1_hmac (docs/legal3) = 076c944cb2528536c9aebd3b9fbe367e07b61dc7 sha1_hmac (docs/legal4) = 7aede27602ef6e4454748cbd3821e0152e45beb4
Al cifrar un archivo, el archivo original no se elimina ni modifica. Se cifra el archivo de salida.
Para ver las soluciones a los errores comunes del comando encrypt, consulte sección que aparece a continuación de los ejemplos.
Existen dos opciones. Puede proporcionar una frase de contraseña a partir de la cual se generará una clave. O bien, puede proporcionar una clave.
Si proporciona una frase contraseña, deberá almacenarla o recordarla. Si almacena la frase de contraseña en línea, sólo usted debe poder leer el archivo de frases de contraseña.
Si proporciona una clave, ésta debe ser del tamaño correcto para el mecanismo. Para conocer el procedimiento, consulte Cómo generar una clave simétrica con el comando dd.
Proporcione una clave y utilice un algoritmo de clave simétrico con el comando encrypt.
% encrypt -a algorithm [ -k keyfile ] -i input-file -o output-file
Es el algoritmo que se utiliza para cifrar el archivo. Escriba el algoritmo tal como aparece en el resultado del comando encrypt -l.
Es el archivo que contiene una clave con la longitud especificada por el algoritmo. La longitud de la clave para cada algoritmo se muestra, en bits, en el resultado del comando encrypt -l.
Es el archivo de entrada que desea cifrar. Este archivo no es modificado por el comando.
Es el archivo de salida, que es el formato cifrado del archivo de entrada.
Ejemplo 14-11 Cifrado y descifrado con AES y una frase de contraseña
En el ejemplo siguiente, se cifra un archivo con el algoritmo AES. La clave se genera a partir de una frase de contraseña. Si la frase de contraseña se almacena en un archivo, el usuario debe ser la única persona que pueda leer el archivo.
% encrypt -a aes -i ticket.to.ride -o ~/enc/e.ticket.to.ride Enter passphrase: <Type passphrase> Re-enter passphrase: Type passphrase again
El archivo de entrada, ticket.to.ride, todavía existe en su formato original.
Para descifrar el archivo de salida, el usuario utiliza la misma frase de contraseña y el mismo mecanismo de cifrado que utilizó para cifrar el archivo.
% decrypt -a aes -i ~/enc/e.ticket.to.ride -o ~/d.ticket.to.ride Enter passphrase: <Type passphrase>
Ejemplo 14-12 Cifrado y descifrado con AES y un archivo de claves
En el ejemplo siguiente, se cifra un archivo con el algoritmo AES. Los mecanismos AES utilizan una clave de 128 bits o 16 bytes.
% encrypt -a aes -k ~/keyf/05.07.aes16 \ -i ticket.to.ride -o ~/enc/e.ticket.to.ride
El archivo de entrada, ticket.to.ride, todavía existe en su formato original.
Para descifrar el archivo de salida, el usuario utiliza la misma clave y el mismo mecanismo de cifrado que utilizó para cifrar el archivo.
% decrypt -a aes -k ~/keyf/05.07.aes16 \ -i ~/enc/e.ticket.to.ride -o ~/d.ticket.to.ride
Ejemplo 14-13 Cifrado y descifrado con ARCFOUR y un archivo de claves
En el ejemplo siguiente, se cifra un archivo con el algoritmo ARCFOUR. El algoritmo ARCFOUR acepta una clave de 8 bits (1 byte), 64 bits (8 bytes) o 128 bits (16 bytes).
% encrypt -a arcfour -i personal.txt \ -k ~/keyf/05.07.rc4.8 -o ~/enc/e.personal.txt
Para descifrar el archivo de salida, el usuario utiliza la misma clave y el mismo mecanismo de cifrado que utilizó para cifrar el archivo.
% decrypt -a arcfour -i ~/enc/e.personal.txt \ -k ~/keyf/05.07.rc4.8 -o ~/personal.txt
Ejemplo 14-14 Cifrado y descifrado con 3DES y un archivo de claves
En el ejemplo siguiente, se cifra un archivo con el algoritmo 3DES. El algoritmo 3DES requiere una clave de 192 bits o 24 bytes.
% encrypt -a 3des -k ~/keyf/05.07.des24 \ -i ~/personal2.txt -o ~/enc/e.personal2.txt
Para descifrar el archivo de salida, el usuario utiliza la misma clave y el mismo mecanismo de cifrado que utilizó para cifrar el archivo.
% decrypt -a 3des -k ~/keyf/05.07.des24 \ -i ~/enc/e.personal2.txt -o ~/personal2.txt
Errores más frecuentes
Los siguientes mensajes indican que la clave proporcionada al comando encrypt no está permitida por el algoritmo que está utilizando.
encrypt: unable to create key for crypto operation: CKR_ATTRIBUTE_VALUE_INVALID
encrypt: failed to initialize crypto operation: CKR_KEY_SIZE_RANGE
Si utiliza una clave que no cumple con los requisitos del algoritmo, debe proporcionar una clave mejor.
Una opción es utilizar una frase de contraseña. La estructura proporciona una clave que cumple con los requisitos.
La segunda opción es utilizar un tamaño de clave que sea aceptado por el algoritmo. Por ejemplo, el algoritmo DES requiere una clave de 64 bits. El algoritmo 3DES requiere una clave de 192 bits.