Omitir Vínculos de navegación | |
Salir de la Vista de impresión | |
Administración de Oracle Solaris 11.1: servicios de seguridad Oracle Solaris 11.1 Information Library (Español) |
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. Servicio de análisis de virus (tareas)
5. Control de acceso a dispositivos (tareas)
6. Verificación de la integridad de archivos mediante el uso de BART (tareas)
7. Control de acceso a archivos (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. Atributos de seguridad en Oracle Solaris (referencia)
Parte IV Servicios criptográficos
11. Estructura criptográfica (descripción general)
12. Estructura criptográfica (tareas)
Protección de los archivos con la estructura criptográfica (tareas)
Protección de archivos con la estructura criptográfica (mapa de tareas)
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 (tareas)
Administración de la estructura criptográfica (mapa de tareas)
Cómo mostrar los proveedores disponibles
Cómo agregar un proveedor de software
Cómo utilizar la estructura criptográfica en modo FIPS-140
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 desactivar funciones y mecanismos del proveedor de hardware
Cómo actualizar o reiniciar todos los servicios criptográficos
13. Estructura de gestión de claves
Parte V Servicios de autenticación y comunicación segura
14. Uso de módulos de autenticación conectables
17. Uso de autenticación simple y capa de seguridad
18. Autenticación de servicios de red (tareas)
19. Introducción al servicio Kerberos
20. Planificación del servicio Kerberos
21. Configuración del servicio Kerberos (tareas)
22. Mensajes de error y resolución de problemas de Kerberos
23. Administración de las políticas y los principales de Kerberos (tareas)
24. Uso de aplicaciones Kerberos (tareas)
25. El servicio Kerberos (referencia)
Parte VII Auditoría en Oracle Solaris
26. Auditoría (descripción general)
27. Planificación de la auditoría
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.
La estructura criptográfica puede ayudar a proteger los archivos. En el siguiente mapa de tareas se hace referencia a los procedimientos para mostrar los algoritmos disponibles y para proteger los archivos criptográficamente.
|
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.
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. La instrucción de uso muestra los argumentos.
% pktool genkey keystore=file ...genkey keystore=file outkey=key-fn [ keytype=aes|arcfour|des|3des|generic ] [ keylen=key-size (AES, ARCFOUR or GENERIC only)] [ print=y|n ]
El nombre de archivo donde se almacena la clave.
Para una clave simétrica de cualquier longitud, el valor es generic. 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.
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. La instrucción de uso muestra los argumentos. Los corchetes alrededor del argumento del almacén de claves indican que cuando el argumento de almacén de claves no estás especificado, la clave se almacena en el almacén de claves PKCS #11.
$ pktool genkey ...genkey [ keystore=pkcs11 ] label=key-label [ keytype=aes|arcfour|des|3des|generic ] [ keylen=key-size (AES, ARCFOUR or GENERIC only)] [ token=token[:manuf[:serial]]] [ sensitive=y|n ] [ extractable=y|n ] [ print=y|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 una clave simétrica de cualquier longitud, el valor es generic. 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. La instrucción de uso muestra los argumentos.
$ pktool genkey keystore=nss ...genkey keystore=nss label=key-label [ keytype=aes|arcfour|des|3des|generic ] [ keylen=key-size (AES, ARCFOUR or GENERIC only)] [ token=token[:manuf[:serial]]] [ dir=directory-path ] [ prefix=DBprefix ]
Es una etiqueta especificada por el usuario para la clave. La clave se puede recuperar del almacén de claves por su etiqueta.
Para una clave simétrica de cualquier longitud, el valor es generic. 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.
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 12-1 Creación de una clave simétrica con el comando pktool
En el siguiente ejemplo, un usuario crea un almacén de claves PKCS #11 por primera vez y, a continuación, genera una clave simétrica de gran tamaño para una aplicación. Por último, el usuario verifica que la clave se encuentre en el almacén de claves.
# pktool setpin Create new passphrase:Type easily-remembered-hard-to-detect-password Re-enter new passphrase:Retype password Passphrase changed. % pktool genkey label=specialappkey keytype=generic keylen=1024 Enter PIN for Sun Software PKCS#11 softtoken :Type password % pktool list objtype=key Enter PIN for Sun Software PKCS#11 softtoken :Type password Found 1 keys. Key #1 - symmetric: specialappkey (1024 bits)
Ejemplo 12-2 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
Ejemplo 12-3 Creación de una clave simétrica para las asociaciones de seguridad IPsec
En el siguiente ejemplo, el administrador crea manualmente el material clave para las asociaciones de seguridad de IPsec y las almacena en archivos. A continuación, el administrador copia las claves al archivo /etc/inet/secret/ipseckeys y destruye los archivos originales.
En primer lugar, el administrador crea y muestra las claves que la política IPsec requiere:
# pktool genkey keystore=file outkey=ipencrin1 keytype=generic keylen=192 print=y Key Value ="294979e512cb8e79370dabecadc3fcbb849e78d2d6bd2049" # pktool genkey keystore=file outkey=ipencrout1 keytype=generic keylen=192 print=y Key Value ="9678f80e33406c86e3d1686e50406bd0434819c20d09d204" # pktool genkey keystore=file outkey=ipspi1 keytype=generic keylen=32 print=y Key Value ="acbeaa20" # pktool genkey keystore=file outkey=ipspi2 keytype=generic keylen=32 print=y Key Value ="19174215" # pktool genkey keystore=file outkey=ipsha21 keytype=generic keylen=256 print=y Key Value ="659c20f2d6c3f9570bcee93e96d95e2263aca4eeb3369f72c5c786af4177fe9e" # pktool genkey keystore=file outkey=ipsha22 keytype=generic keylen=256 print=y Key Value ="b041975a0e1fce0503665c3966684d731fa3dbb12fcf87b0a837b2da5d82c810"
A continuación, el administrador crea el siguiente archivo /etc/inet/secret/ipseckeys:
## SPI values require a leading 0x. ## Backslashes indicate command continuation. ## ## for outbound packets on this system add esp spi 0xacbeaa20 \ src 192.168.1.1 dst 192.168.2.1 \ encr_alg aes auth_alg sha256 \ encrkey 294979e512cb8e79370dabecadc3fcbb849e78d2d6bd2049 \ authkey 659c20f2d6c3f9570bcee93e96d95e2263aca4eeb3369f72c5c786af4177fe9e ## ## for inbound packets add esp spi 0x19174215 \ src 192.168.2.1 dst 192.168.1.1 \ encr_alg aes auth_alg sha256 \ encrkey 9678f80e33406c86e3d1686e50406bd0434819c20d09d204 \ authkey b041975a0e1fce0503665c3966684d731fa3dbb12fcf87b0a837b2da5d82c810
Después de verificar que la sintaxis del archivo ipseckeys sea válida, el administrador destruye los archivos de claves originales.
# ipseckey -c /etc/inet/secret/ipseckeys # rm ipencrin1 ipencrout1 ipspi1 ipspi2 ipsha21 ipsha22
El administrador copia el archivo ipseckeys al sistema de comunicación mediante el comando ssh u otro mecanismo seguro. En el sistema de comunicación, las protecciones se revierten. La primera entrada en el archivo ipseckeys protege los paquetes entrantes y la segunda entrada protege los paquetes salientes. No se generan claves en el sistema de comunicación.
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 sha224 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 12-4 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 12-5 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 sha224_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. Puede utilizar el comando pktool. Para conocer el procedimiento y algunos ejemplos, consulte Cómo generar una clave simétrica con el comando pktool.
Proporcione una clave y utilice un algoritmo de clave simétrico con el comando mac.
% mac [-v] -a algorithm [-k keyfile | -K key-label [-T token]] 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 la etiqueta de la clave en el almacén de claves PKCS #11.
Es el nombre del token. De manera predeterminada, el token es Sun Software PKCS#11 softtoken. Sólo se utiliza cuando la opción -K key-label se utiliza.
Es el archivo de entrada para el MAC.
Ejemplo 12-6 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 12-7 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 12-8 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
Ejemplo 12-9 Cálculo de un MAC con SHA1_HMAC y una etiqueta de clave
En el ejemplo siguiente, el manifiesto de directorio se autentica con el mecanismo SHA1_HMAC y una clave secreta. Los resultados se ubican en el almacén de claves PKCS #11 del usuario. El usuario creó inicialmente el almacén de claves y la contraseña para el almacén de claves mediante el comando pktool setpin.
% mac -a sha1_hmac -K legaldocs0507 docs/* Enter pin for Sun Software PKCS#11 softtoken:Type password
Para recuperar el MAC desde el almacén de claves, el usuario utiliza la opción detallada y proporciona la etiqueta de clave y el nombre del directorio que se ha autenticado.
% mac -v -a sha1_hmac -K legaldocs0507 docs/* Enter pin for Sun Software PKCS#11 softtoken:Type password 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. Puede utilizar el comando pktool. Para conocer el procedimiento y algunos ejemplos, consulte Cómo generar una clave simétrica con el comando pktool.
Proporcione una clave y utilice un algoritmo de clave simétrico con el comando encrypt.
% encrypt -a algorithm [-v] \ [-k keyfile | -K key-label [-T token]] [-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 la etiqueta de una clave en el almacén de claves PKCS #11.
Es el nombre del token. De manera predeterminada, el token es Sun Software PKCS#11 softtoken. Sólo se utiliza cuando la opción -K key-label se utiliza.
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 12-10 Creación de una clave AES para cifrar los archivos
En el siguiente ejemplo, un usuario crea y almacena una clave AES en un almacén de claves PKCS #11 existente para utilizar en el cifrado y descifrado. El usuario puede comprobar que la clave existe y puede usar la clave, pero no puede verla.
% pktool genkey label=MyAESkeynumber1 keytype=aes keylen=256 Enter PIN for Sun Software PKCS#11 softtoken :Type password % pktool list objtype=key Enter PIN for Sun Software PKCS#11 softtoken :<Type password> Found 1 key Key #1 - Sun Software PKCS#11 softtoken: MyAESkeynumber1 (256)
Para utilizar la clave para cifrar un archivo, el usuario recupera la clave por su etiqueta.
% encrypt -a aes -K MyAESkeynumber1 -i encryptthisfile -o encryptedthisfile
Para descifrar el archivo encryptedthisfile, el usuario recupera la clave por su etiqueta.
% decrypt -a aes -K MyAESkeynumber1 -i encryptedthisfile -o sameasencryptthisfile
Ejemplo 12-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 12-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 12-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 12-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.