Atributos clave compatibles con la biblioteca PKCS #11 - AWS CloudHSM

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Atributos clave compatibles con la biblioteca PKCS #11

Un objeto de clave puede ser una clave pública, privada o secreta. Las acciones permitidas en un objeto de clave se especifican mediante atributos. Los atributos se definen cuando se crea el objeto de clave. Cuando se utiliza la biblioteca PKCS #11, asignamos los valores predeterminados que se especifican en el estándar PKCS #11.

AWS CloudHSM no admite todos los atributos enumerados en la especificación PKCS #11. Seguimos esta especificación en todos los atributos que admitimos. Estos atributos se indican en sus respectivas tablas.

Las funciones criptográficas como C_CreateObject, C_GenerateKey, C_GenerateKeyPair, C_UnwrapKey y C_DeriveKey que crean, modifican o copian objetos toman una plantilla de atributos como uno de sus parámetros. Para obtener más información acerca de cómo pasar una plantilla de atributos durante la creación de objetos, consulte el ejemplo Generar claves mediante la biblioteca PKCS #11.

Interpretación de la tabla de atributos de la biblioteca PKCS #11

La tabla de la biblioteca PKCS #11 contiene una lista de atributos que difieren por tipo de clave. Indica si un atributo determinado es compatible con un tipo de clave concreto cuando se utiliza una función criptográfica específica con. AWS CloudHSM

Leyenda

  • ✔ indica que CloudHSM admite el atributo para el tipo de clave específico.

  • ✖ indica que CloudHSM no admite el atributo para el tipo de clave específico.

  • R indica que el valor del atributo se establece en de solo lectura para el tipo de clave específico.

  • S indica que GetAttributeValue no puede leer el atributo porque distingue entre mayúsculas y minúsculas.

  • Una celda vacía en la columna Valor predeterminado indica que no hay ningún valor predeterminado específico asignado al atributo.

Atributo

Tipo de clave

Default Value (Valor predeterminado)

 

EC privada

EC pública

RSA privada

RSA pública

 

CKA_CLASS

CKA_KEY_TYPE

CKA_LABEL

CKA_ID

CKA_LOCAL

R

R

R

R

True

CKA_TOKEN

False

CKA_PRIVATE

1

1

1

1

True

CKA_ENCRYPT

False

CKA_DECRYPT

False

CKA_DERIVE

False

CKA_MODIFIABLE

1

1

1

1

True

CKA_DESTROYABLE

True

CKA_SIGN

False

CKA_SIGN_RECOVER

 

CKA_VERIFY

False

CKA_VERIFY_RECOVER

 

CKA_WRAP

False

CKA_WRAP_TEMPLATE

 

CKA_TRUSTED

False

CKA_WRAP_WITH_TRUSTED

False

CKA_UNWRAP

False

CKA_UNWRAP_TEMPLATE

 

CKA_SENSITIVE

1

1

True

CKA_ALWAYS_SENSITIVE

R

R

 

CKA_EXTRACTABLE

True

CKA_NEVER_EXTRACTABLE

R

R

 

CKA_MODULUS

 

CKA_MODULUS_BITS

2

 

CKA_PRIME_1

 

CKA_PRIME_2

 

CKA_COEFFICIENT

 

CKA_EXPONENT_1

 

CKA_EXPONENT_2

 

CKA_PRIVATE_EXPONENT

 

CKA_PUBLIC_EXPONENT

2

 

CKA_EC_PARAMS

2

 

CKA_EC_POINT

 

CKA_VALUE

 

CKA_VALUE_LEN

 

CKA_CHECK_VALUE

R

R

R

R

 

Atributo

Tipo de clave

Default Value (Valor predeterminado)

 

AES

DES3

Secreto genérico

 

CKA_CLASS

CKA_KEY_TYPE

CKA_LABEL

CKA_ID

CKA_LOCAL

R

R

R

True

CKA_TOKEN

False

CKA_PRIVATE

1

1

1

True

CKA_ENCRYPT

False

CKA_DECRYPT

False

CKA_DERIVE

False

CKA_MODIFIABLE

1

1

1

True

CKA_DESTROYABLE

True

CKA_SIGN

True

CKA_SIGN_RECOVER

 

CKA_VERIFY

True

CKA_VERIFY_RECOVER

 

CKA_WRAP

False

CKA_WRAP_TEMPLATE

 

CKA_TRUSTED

False

CKA_WRAP_WITH_TRUSTED

False

CKA_UNWRAP

False

CKA_UNWRAP_TEMPLATE

 

CKA_SENSITIVE

True

CKA_ALWAYS_SENSITIVE

 

CKA_EXTRACTABLE

True

CKA_NEVER_EXTRACTABLE

R

R

R

 

CKA_MODULUS

 

CKA_MODULUS_BITS

 

CKA_PRIME_1

 

CKA_PRIME_2

 

CKA_COEFFICIENT

 

CKA_EXPONENT_1

 

CKA_EXPONENT_2

 

CKA_PRIVATE_EXPONENT

 

CKA_PUBLIC_EXPONENT

 

CKA_EC_PARAMS

 

CKA_EC_POINT

 

CKA_VALUE

 

CKA_VALUE_LEN

2

2

 

CKA_CHECK_VALUE

R

R

R

 

Atributo

Tipo de clave

Default Value (Valor predeterminado)

 

EC privada

EC pública

RSA privada

RSA pública

AES

DES3

Secreto genérico

 

CKA_CLASS

2

2

2

2

2

2

2

CKA_KEY_TYPE

2

2

2

2

2

2

2

CKA_LABEL

CKA_ID

CKA_LOCAL

R

R

R

R

R

R

R

False

CKA_TOKEN

False

CKA_PRIVATE

1

1

1

1

1

1

1

True

CKA_ENCRYPT

False

CKA_DECRYPT

False

CKA_DERIVE

False

CKA_MODIFIABLE

1

1

1

1

1

1

1

True

CKA_DESTROYABLE

True

CKA_SIGN

False

CKA_SIGN_RECOVER

False

CKA_VERIFY

False

CKA_VERIFY_RECOVER

 

CKA_WRAP

False

CKA_WRAP_TEMPLATE

 

CKA_TRUSTED

False

CKA_WRAP_WITH_TRUSTED

False

CKA_UNWRAP

False

CKA_UNWRAP_TEMPLATE

 

CKA_SENSITIVE

True

CKA_ALWAYS_SENSITIVE

R

R

R

R

R

 

CKA_EXTRACTABLE

True

CKA_NEVER_EXTRACTABLE

R

R

R

R

R

 

CKA_MODULUS

2

2

 

CKA_MODULUS_BITS

 

CKA_PRIME_1

 

CKA_PRIME_2

 

CKA_COEFFICIENT

 

CKA_EXPONENT_1

 

CKA_EXPONENT_2

 

CKA_PRIVATE_EXPONENT

2

 

CKA_PUBLIC_EXPONENT

2

2

 

CKA_EC_PARAMS

2

2

 

CKA_EC_POINT

2

 

CKA_VALUE

2

2

2

2

 

CKA_VALUE_LEN

 

CKA_CHECK_VALUE

R

R

R

R

R

R

R

 

Atributo

Tipo de clave

Default Value (Valor predeterminado)

 

EC privada

RSA privada

AES

DES3

Secreto genérico

 

CKA_CLASS

2

2

2

2

2

CKA_KEY_TYPE

2

2

2

2

2

CKA_LABEL

CKA_ID

CKA_LOCAL

R

R

R

R

R

False

CKA_TOKEN

False

CKA_PRIVATE

1

1

1

1

1

True

CKA_ENCRYPT

False

CKA_DECRYPT

False

CKA_DERIVE

False

CKA_MODIFIABLE

1

1

1

1

1

True

CKA_DESTROYABLE

True

CKA_SIGN

False

CKA_SIGN_RECOVER

False

CKA_VERIFY

False

CKA_VERIFY_RECOVER

 

CKA_WRAP

False

CKA_UNWRAP

False

CKA_SENSITIVE

True

CKA_EXTRACTABLE

True

CKA_NEVER_EXTRACTABLE

R

R

R

R

R

 

CKA_ALWAYS_SENSITIVE

R

R

R

R

R

 

CKA_MODULUS

 

CKA_MODULUS_BITS

 

CKA_PRIME_1

 

CKA_PRIME_2

 

CKA_COEFFICIENT

 

CKA_EXPONENT_1

 

CKA_EXPONENT_2

 

CKA_PRIVATE_EXPONENT

 

CKA_PUBLIC_EXPONENT

 

CKA_EC_PARAMS

 

CKA_EC_POINT

 

CKA_VALUE

 

CKA_VALUE_LEN

 

CKA_CHECK_VALUE

R

R

R

R

R

 

Atributo

Tipo de clave

Default Value (Valor predeterminado)

 

AES

DES3

Secreto genérico

 

CKA_CLASS

2

2

2

CKA_KEY_TYPE

2

2

2

CKA_LABEL

CKA_ID

CKA_LOCAL

R

R

R

True

CKA_TOKEN

False

CKA_PRIVATE

1

1

1

True

CKA_ENCRYPT

False

CKA_DECRYPT

False

CKA_DERIVE

False

CKA_MODIFIABLE

1

1

1

True

CKA_DESTROYABLE

1

1

1

True

CKA_SIGN

False

CKA_SIGN_RECOVER

 

CKA_VERIFY

False

CKA_VERIFY_RECOVER

 

CKA_WRAP

False

CKA_UNWRAP

False

CKA_SENSITIVE

R

R

R

True

CKA_EXTRACTABLE

True

CKA_NEVER_EXTRACTABLE

R

R

R

 

CKA_ALWAYS_SENSITIVE

R

R

R

 

CKA_MODULUS

 

CKA_MODULUS_BITS

 

CKA_PRIME_1

 

CKA_PRIME_2

 

CKA_COEFFICIENT

 

CKA_EXPONENT_1

 

CKA_EXPONENT_2

 

CKA_PRIVATE_EXPONENT

 

CKA_PUBLIC_EXPONENT

 

CKA_EC_PARAMS

 

CKA_EC_POINT

 

CKA_VALUE

 

CKA_VALUE_LEN

2

2

 

CKA_CHECK_VALUE

R

R

R

 

Atributo

Tipo de clave

 

EC privada

EC pública

RSA privada

RSA pública

AES

DES3

Secreto genérico

CKA_CLASS

CKA_KEY_TYPE

CKA_LABEL

CKA_ID

CKA_LOCAL

CKA_TOKEN

CKA_PRIVATE

1

1

1

1

1

1

1

CKA_ENCRYPT

CKA_DECRYPT

CKA_DERIVE

CKA_MODIFIABLE

CKA_DESTROYABLE

CKA_SIGN

CKA_SIGN_RECOVER

CKA_VERIFY

CKA_VERIFY_RECOVER

CKA_WRAP

CKA_WRAP_TEMPLATE

CKA_TRUSTED

CKA_WRAP_WITH_TRUSTED

CKA_UNWRAP

CKA_UNWRAP_TEMPLATE

CKA_SENSITIVE

CKA_EXTRACTABLE

CKA_NEVER_EXTRACTABLE

CKA_ALWAYS_SENSITIVE

R

R

R

R

R

R

R

CKA_MODULUS

CKA_MODULUS_BITS

CKA_PRIME_1

S

CKA_PRIME_2

S

CKA_COEFFICIENT

S

CKA_EXPONENT_1

S

CKA_EXPONENT_2

S

CKA_PRIVATE_EXPONENT

S

CKA_PUBLIC_EXPONENT

CKA_EC_PARAMS

CKA_EC_POINT

CKA_VALUE

S

CKA_VALUE_LEN

CKA_CHECK_VALUE

Notas de atributo

  • [1] Este atributo es parcialmente compatible con el firmware y debe configurarse de forma explícita únicamente en el valor predeterminado.

  • [2] Atributo obligatorio.

Modificación de atributos

Algunos atributos de un objeto se pueden modificar una vez creado el objeto, mientras que otros no. Para modificar los atributos, utilice el comando setAttribute de cloudhsm_mgmt_util. También puede generar una lista de atributos y las constantes que los representan mediante el comando listAttribute de cloudhsm_mgmt_util.

En la siguiente lista se muestran los atributos que se pueden modificar después de crear un objeto:

  • CKA_LABEL

  • CKA_TOKEN

    nota

    La modificación solo se permite para cambiar una clave de sesión por una clave de token. Utilice el comando setAttribute de key_mgmt_util para cambiar el valor del atributo.

  • CKA_ENCRYPT

  • CKA_DECRYPT

  • CKA_SIGN

  • CKA_VERIFY

  • CKA_WRAP

  • CKA_UNWRAP

  • CKA_LABEL

  • CKA_SENSITIVE

  • CKA_DERIVE

    nota

    Este atributo admite la derivación de claves. Debe ser False para todas las claves públicas y no puede establecerse en True. Para las claves secretas y privadas de EC, se puede establecer en True o False.

  • CKA_TRUSTED

    nota

    Este atributo se puede establecer en True o False solo mediante Crypto Officer (CO).

  • CKA_WRAP_WITH_TRUSTED

    nota

    Aplique este atributo a una clave de datos exportable para especificar que solo puede encapsular esta clave con claves marcadas como CKA_TRUSTED. Una vez establecido CKA_WRAP_WITH_TRUSTED como true, el atributo pasa a ser de solo lectura y no se puede cambiar ni eliminar.

Interpretación de los códigos de error

La especificación en la plantilla de un atributo que no es compatible con una clave específica produce un error. La siguiente tabla contiene los códigos de error que se generan cuando se infringen las especificaciones:

Código de error Descripción
CKR_TEMPLATE_INCONSISTENT Este error aparece cuando se especifica un atributo en la plantilla de atributos que cumple la especificación PKCS #11, pero no es compatible con CloudHSM.
CKR_ATTRIBUTE_TYPE_INVALID Recibirá este error cuando recupere un valor de un atributo que cumple la especificación PKCS #11, pero no es compatible con CloudHSM.
CKR_ATTRIBUTE_INCOMPLETE Este error aparece cuando no se especifica el atributo obligatorio en la plantilla de atributos.
CKR_ATTRIBUTE_READ_ONLY Este error aparece cuando se especifica un atributo de solo lectura en la plantilla de atributos.