Atributos-chave suportados pela biblioteca PKCS #11 - AWS CloudHSM

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Atributos-chave suportados pela biblioteca PKCS #11

Um objeto pode ser uma chave pública, privada ou secreta. As ações permitidas em um objeto de chave são especificadas por meio de atributos. Os atributos são definidos quando o objeto de chave é criado. Quando você usa o SDK do PKCS #11 do CloudHSM, atribuímos valores padrão conforme especificado pelo PKCS #11 padrão.

AWS CloudHSM não suporta todos os atributos listados na especificação PKCS #11. Estamos em conformidade com a especificação de todos os atributos aos quais oferecemos suporte. Esses atributos estão listados nas respectivas tabelas.

Funções criptográficas como C_CreateObject, C_GenerateKey, C_GenerateKeyPair, C_UnwrapKey, e C_DeriveKey que criam, modificam ou copiam objetos usam um modelo de atributo como um de seus parâmetros. Para obter mais informações sobre como passar um modelo de atributo durante a criação do objeto, consulte o exemplo para Gerar chaves por meio da biblioteca PKCS #11.

Interpretar a tabela de atributos do PKCS #11

A tabela do PKCS #11 contém uma lista de atributos que diferem por tipos de chaves. Ele indica se um determinado atributo é compatível com um determinado tipo de chave ao usar uma função criptográfica específica com AWS CloudHSM.

Legenda:

  • ✔ indica que o CloudHSM oferece suporte ao atributo para o tipo de chave específico.

  • ✖ indica que o CloudHSM não oferece suporte ao atributo para o tipo de chave específico.

  • R indica que o valor do atributo é definido como somente leitura para o tipo de chave específico.

  • S indica que o atributo não pode ser lido pelo GetAttributeValue pois ele é confidencial.

  • Uma célula vazia na coluna Valor padrão indica que não há nenhum valor padrão específico atribuído ao atributo.

Atributo

Tipo de chave

Valor padrão

 

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

Verdadeiro

CKA_TOKEN

Falso

CKA_PRIVATE

1

1

1

1

Verdadeiro

CKA_ENCRYPT

Falso

CKA_DECRYPT

Falso

CKA_DERIVE

Falso

CKA_MODIFIABLE

1

1

1

1

Verdadeiro

CKA_DESTROYABLE

Verdadeiro

CKA_SIGN

Falso

CKA_SIGN_RECOVER

 

CKA_VERIFY

Falso

CKA_VERIFY_RECOVER

 

CKA_WRAP

Falso

CKA_WRAP_TEMPLATE

 

CKA_TRUSTED

Falso

CKA_WRAP_WITH_TRUSTED

Falso

CKA_UNWRAP

Falso

CKA_UNWRAP_TEMPLATE

 

CKA_SENSITIVE

1

1

Verdadeiro

CKA_ALWAYS_SENSITIVE

R

R

 

CKA_EXTRACTABLE

Verdadeiro

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 chave

Valor padrão

 

AES

DES3

Segredo genérico

 

CKA_CLASS

CKA_KEY_TYPE

CKA_LABEL

CKA_ID

CKA_LOCAL

R

R

R

Verdadeiro

CKA_TOKEN

Falso

CKA_PRIVATE

1

1

1

Verdadeiro

CKA_ENCRYPT

Falso

CKA_DECRYPT

Falso

CKA_DERIVE

Falso

CKA_MODIFIABLE

1

1

1

Verdadeiro

CKA_DESTROYABLE

Verdadeiro

CKA_SIGN

Verdadeiro

CKA_SIGN_RECOVER

 

CKA_VERIFY

Verdadeiro

CKA_VERIFY_RECOVER

 

CKA_WRAP

Falso

CKA_WRAP_TEMPLATE

 

CKA_TRUSTED

Falso

CKA_WRAP_WITH_TRUSTED

Falso

CKA_UNWRAP

Falso

CKA_UNWRAP_TEMPLATE

 

CKA_SENSITIVE

Verdadeiro

CKA_ALWAYS_SENSITIVE

 

CKA_EXTRACTABLE

Verdadeiro

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 chave

Valor padrão

 

EC privada

EC pública

RSA privada

RSA pública

AES

DES3

Segredo 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

Falso

CKA_TOKEN

Falso

CKA_PRIVATE

1

1

1

1

1

1

1

Verdadeiro

CKA_ENCRYPT

Falso

CKA_DECRYPT

Falso

CKA_DERIVE

Falso

CKA_MODIFIABLE

1

1

1

1

1

1

1

Verdadeiro

CKA_DESTROYABLE

Verdadeiro

CKA_SIGN

Falso

CKA_SIGN_RECOVER

Falso

CKA_VERIFY

Falso

CKA_VERIFY_RECOVER

 

CKA_WRAP

Falso

CKA_WRAP_TEMPLATE

 

CKA_TRUSTED

Falso

CKA_WRAP_WITH_TRUSTED

Falso

CKA_UNWRAP

Falso

CKA_UNWRAP_TEMPLATE

 

CKA_SENSITIVE

Verdadeiro

CKA_ALWAYS_SENSITIVE

R

R

R

R

R

 

CKA_EXTRACTABLE

Verdadeiro

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 chave

Valor padrão

 

EC privada

RSA privada

AES

DES3

Segredo 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

Falso

CKA_TOKEN

Falso

CKA_PRIVATE

1

1

1

1

1

Verdadeiro

CKA_ENCRYPT

Falso

CKA_DECRYPT

Falso

CKA_DERIVE

Falso

CKA_MODIFIABLE

1

1

1

1

1

Verdadeiro

CKA_DESTROYABLE

Verdadeiro

CKA_SIGN

Falso

CKA_SIGN_RECOVER

Falso

CKA_VERIFY

Falso

CKA_VERIFY_RECOVER

 

CKA_WRAP

Falso

CKA_UNWRAP

Falso

CKA_SENSITIVE

Verdadeiro

CKA_EXTRACTABLE

Verdadeiro

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 chave

Valor padrão

 

AES

DES3

Segredo genérico

 

CKA_CLASS

2

2

2

CKA_KEY_TYPE

2

2

2

CKA_LABEL

CKA_ID

CKA_LOCAL

R

R

R

Verdadeiro

CKA_TOKEN

Falso

CKA_PRIVATE

1

1

1

Verdadeiro

CKA_ENCRYPT

Falso

CKA_DECRYPT

Falso

CKA_DERIVE

Falso

CKA_MODIFIABLE

1

1

1

Verdadeiro

CKA_DESTROYABLE

1

1

1

Verdadeiro

CKA_SIGN

Falso

CKA_SIGN_RECOVER

 

CKA_VERIFY

Falso

CKA_VERIFY_RECOVER

 

CKA_WRAP

Falso

CKA_UNWRAP

Falso

CKA_SENSITIVE

R

R

R

Verdadeiro

CKA_EXTRACTABLE

Verdadeiro

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 chave

 

EC privada

EC pública

RSA privada

RSA pública

AES

DES3

Segredo 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

Anotações de atributos

  • [1] Este atributo tem suporte parcial do firmware e deve ser explicitamente definido apenas como o valor padrão.

  • [2] Atributo obrigatório.

Modificar atributos

Alguns atributos de um objeto podem ser modificados depois que o objeto foi criado, enquanto alguns não podem. Para modificar atributos, use o comando setAttribute do cloudhsm_mgmt_util. Você também pode derivar uma lista de atributos e as constantes que os representam usando o comando listAttribute command de cloudhsm_mgmt_util.

A lista a seguir exibe os atributos cuja modificação é permitida após a criação do objeto:

  • CKA_LABEL

  • CKA_TOKEN

    nota

    A modificação é permitida somente para alterar uma chave de sessão para uma chave de token. Use o comando listAttribute command de cloudhsm_mgmt_util para alterar o valor do atributo.

  • CKA_ENCRYPT

  • CKA_DECRYPT

  • CKA_SIGN

  • CKA_VERIFY

  • CKA_WRAP

  • CKA_UNWRAP

  • CKA_LABEL

  • CKA_SENSITIVE

  • CKA_DERIVE

    nota

    Esse atributo oferece suporte à derivação de chaves. Ele deve ser False para todas as chaves públicas e não pode ser definido como True. Para chaves privadas EC e secretas, ele pode ser definido como True ou False.

  • CKA_TRUSTED

    nota

    Esse atributo pode ser definido como True ou False somente pelo Responsável pela criptografia (CO)

  • CKA_WRAP_WITH_TRUSTED

    nota

    Aplique esse atributo a uma chave de dados exportável para especificar que você só pode agrupar essa chave com chaves marcadas como CKA_TRUSTED. Depois que CKA_WRAP_WITH_TRUSTED for definido como verdadeiro, o atributo se torna somente para leitura e não é possível alterar ou remover o atributo.

Interpretar códigos de erro

Especificar no modelo um atributo que não tenha suporte de uma chave específica resultará em um erro. A tabela a seguir contém códigos de erro que são gerados quando as especificações são violadas:

Código de erro Descrição
CKR_TEMPLATE_INCONSISTENT Você receberá esse erro quando especificar um atributo no modelo de atributo, em que o atributo está em conformidade com a especificação do PKCS #11, mas não tem suporte do CloudHSM.
CKR_ATTRIBUTE_TYPE_INVALID Você receberá esse erro quando recuperar o valor de um atributo, que está em conformidade com a especificação do PKCS #11, mas não tem suporte do CloudHSM.
CKR_ATTRIBUTE_INCOMPLETE Você receberá esse erro quando não especificar o atributo obrigatório no modelo de atributo.
CKR_ATTRIBUTE_READ_ONLY Você receberá esse erro quando especificar um atributo somente leitura no modelo de atributo.