Gestión de cifrado y certificados en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Septiembre de 2014
 
 

Cómo cifrar y descifrar un archivo

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 relacionados con el comando encrypt, consulte sección que aparece a continuación de los ejemplos.


Notas -  Cuando el cifrado y el descifrado de archivos, intente usar algoritmos aprobados por FIPS con las longitudes de clave aprobadas, siempre que sea posible. Consulte la lista en FIPS 140 Algorithms in the Cryptographic Framework de Using a FIPS 140 Enabled System in Oracle Solaris 11.2 . Ejecute el comando encrypt -l para ver los algoritmos disponibles y sus longitudes de clave.
  1. Cree una clave simétrica de la longitud adecuada.

    Puede proporcionar una frase de contraseña a partir de la cual se generará una clave o 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.

  2. Cifre un archivo.

    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]
    –a algorithm

    El algoritmo que se utiliza para cifrar el archivo. Escriba el algoritmo tal como aparece en el resultado del comando encrypt -l. Siempre que sea posible, seleccione un algoritmo aprobado por FIPS, de la lista ubicada en FIPS 140 Algorithms in the Cryptographic Framework de Using a FIPS 140 Enabled System in Oracle Solaris 11.2 .

    –k keyfile

    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 la salida del comando encrypt -l.

    –K key-label

    Es la etiqueta de la clave en el almacén de claves PKCS #11.

    –T token

    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.

    –i input-file

    El archivo de entrada que desea cifrar. Este archivo no es modificado por el comando.

    –o output-file

    El archivo de salida, que es el formato cifrado del archivo de entrada.

Ejemplo 3-8  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
No.      Key Type      Key Len.      Key Label
----------------------------------------------------
Symmetric keys:
1        AES           256           MyAESkeynumber1

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 3-9  Cifrado y descifrado con AES y una frase de contraseña

En el siguiente ejemplo, 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 3-10  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

Errores más frecuentes

Los siguientes mensajes indican que el algoritmo que está utilizando no permite la clave que proporcionó para el comando encrypt.

  • 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 con uno de los siguientes métodos:

  • Utilice una frase de contraseña. La estructura proporciona una clave que cumple con los requisitos.

  • Utilice 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.