Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O gerenciamento efetivo de chaves é fundamental para otimizar o desempenho, a segurança e a eficiência do HSM de Nuvem do Azure. Este artigo fornece práticas recomendadas e recomendações para lidar com limites de armazenamento de chaves, segurança de encapsulamento de chaves, atributos de chave e estratégias de cache.
Gerenciar o limite de armazenamento de chaves
Os HSMs (módulos de segurança de hardware) têm limites no número máximo de tokens e chaves de sessão que podem ser armazenadas em um único momento. Para obter detalhes sobre esses limites, consulte os limites de serviço do Azure Cloud HSM.
Para evitar exceder os limites de serviço do HSM na Nuvem do Azure, considere usar uma ou mais das seguintes estratégias para o gerenciamento eficiente de chaves:
- Rotação de chaves: gire as teclas com frequência para garantir que as chaves mais antigas sejam substituídas e que o espaço seja liberado para as novas. A rotação frequente ajuda a manter o HSM dentro dos limites de armazenamento, mantendo a segurança.
- Hierarquia de chaves: use uma hierarquia de chaves na qual você usa chaves primárias para criptografar outras chaves. Essa hierarquia reduz o número de chaves que precisam ser armazenadas diretamente no HSM.
- Compartilhamento de chaves e reutilização: para aplicativos com várias sessões ou tokens, considere compartilhar chaves ou reutilizá-las para reduzir o número total armazenado.
- Exclusão de chave: depois que você não precisar mais de uma chave (por exemplo, após o término de uma sessão), verifique se ela é excluída com segurança para liberar espaço para novas chaves.
Observação
Aguarde 24 horas depois de criar uma chave para garantir que a sincronização e os backups em sua implantação do Azure Cloud HSM estejam concluídos.
Gerenciar encapsulamento de chave
Use o atributo EXTRACTABLE no HSM de Nuvem do Azure para marcar as chaves como extraíveis ou não extraíveis. Por padrão, as chaves HSM são definidas como extraíveis. Você pode exportar chaves extraíveis do HSM por meio de encapsulamento de chave, que criptografa as chaves. Em seguida, as chaves precisam ser desembrulhadas com a mesma chave de proteção antes do uso.
Por outro lado, chaves não rastreáveis não podem ser exportadas do HSM de Nuvem do Azure em nenhuma circunstância. Depois de definir as chaves como não rastreáveis, não há como alterá-las para extraíveis. É crucial considerar cuidadosamente se você precisa que suas chaves sejam extraíveis e defina o atributo de chave adequadamente.
Se o aplicativo precisar de encapsulamento de chave, aconselhamos que você use o encapsulamento de chave confiável. Essa abordagem restringe os usuários do HSM a encapsular e desembrulhar somente as chaves que um administrador designou explicitamente como confiável:
EXTRACTABLE=0: as chaves criadas com oEXTRACTABLEatributo definido como0não podem ser exportadas, exceto como objetos mascarados. Eles são ideais para chaves que você nunca quer que saiam do HSM.WRAP_WITH_TRUSTED=1: por padrão, as chaves extraíveis criadas por meio do SDK do HSM na Nuvem do Azure usam encapsulamento de chave confiável. No entanto, a especificação do PKCS#11 defineWRAP_WITH_TRUSTEDparaCK_FALSE (0)por padrão. Sem encapsulamento de chave confiável, um usuário de criptografia pode exportar o material privado de uma chave sem nenhuma autorização. Qualquer pessoa que tenha acesso a um aplicativo cliente e use essas chaves pode exportá-las em texto sem formatação.
Suporte a atributos principais para provedores de HSM na Nuvem do Azure
| Provedor de HSM na Nuvem do Azure | Atributos padrão para chaves privadas e simétricas | Dá suporte a EXTRACTABLE=0 | Dá suporte à configuração de WRAP_WITH_TRUSTED no provedor | Valor de WRAP_WITH_TRUSTED padrão |
|---|---|---|---|---|
azcloudhsm_util |
EXTRACTABLE, !WRAP_WITH_TRUSTED |
Sim | Sim | 1 (0 pode ser definido por meio de parâmetros) |
| PKCS nº 11 | EXTRACTABLE, !WRAP_WITH_TRUSTED |
Sim | Sim | 0 (especificado na especificação PKCS#11, mas pode ser definido para 1 na API) |
| CNG/KSP | EXTRACTABLE, !WRAP_WITH_TRUSTED |
Não | Não | 1 |
| Mecanismo OpenSSL | EXTRACTABLE, !WRAP_WITH_TRUSTED |
Não | Não | 1 |
| JCE | !EXTRACTABLE, !PERSISTANT, !WRAP_WITH_TRUSTED |
Sim | Não | 1 |
As chaves criadas usando a API de Criptografia: provedor de CNG (Próxima Geração) sempre são definidas como EXTRACTABLE. Você pode usar a ferramenta CavImportKey.exe para importar chaves de outras ferramentas do Azure Cloud HSM para o provedor de CNG por meio de seus identificadores de chave. Essa importação cria uma chave no KSP (provedor de armazenamento de chaves) a partir de identificadores de chave existentes.
Para autoridades de certificação que usam CNG ou KSP como provedor, todas as chaves geradas no provedor de CNG ainda são marcadas como extraíveis. Se uma chave estiver marcada como TRUSTED no HSM (como uma chave de criptografia gerada pelo usuário), ela poderá ser usada para extrair o texto em claro da chave privada correspondente, mesmo após a alteração WRAP_WITH_TRUSTED.
Nesses casos, é recomendável usar azcloudhsm_util para gerar a chave se você não quiser que ela seja marcada como EXTRACTABLE. Recomendamos que você use getAttribute para verificar se as chaves geradas têm os atributos desejados.
Empregar atributos de chave para gerenciar permissões de chave
Use os principais atributos para gerenciar os principais recursos, como permissões. Ao gerar uma chave, use atributos de chave para especificar permissões que permitam ou restrinjam operações específicas para essa chave. Recomendamos que você gere chaves apenas com os atributos necessários para a finalidade pretendida.
Por exemplo, uma chave AES (Advanced Encryption Standard) usada para criptografia não deve ter a capacidade de encapsular chaves fora do HSM. Para obter mais informações sobre atributos para o SDK do HSM na Nuvem do Azure, consulte os guias de integração.
Otimizar a latência armazenando objetos de chave em cache
Para reduzir a latência, considere armazenar objetos de chave em cache sempre que possível. Nas buscas por chaves, cada HSM no seu cluster de HSM de Nuvem do Azure é consultado. Essa operação é dispendiosa e não é dimensionada com eficiência. O método para pesquisas de chave depende do provedor:
- Para PKCS nº 11, as pesquisas de chave usam a
C_FindObjectsAPI. - Para a JCE (Extensão de Criptografia Java), as pesquisas de chave usam o
KeyStorevalor.
Para obter um desempenho ideal, aconselhamos que você use comandos de localização de chave (como findKey e key list) apenas uma vez durante a inicialização do aplicativo. Armazene o objeto de chave retornado na memória do aplicativo. Quando você precisar desse objeto de chave mais tarde, recupere-o do cache em vez de consultá-lo com cada operação. Fazer consultas para isso gera uma sobrecarga significativa de desempenho.