---
title: "Repositórios de chaves - Amplia"
description: "Onde guardar as chaves das ACs do Amplia (banco de dados, HSM, token USB ou Azure Key Vault) e as vantagens e desvantagens de cada repositório de chaves."
canonical: "https://docs.lacunasoftware.com/articles/amplia/on-premises/key-stores"
locale: "pt-BR"
product: "Amplia"
last_updated: "2026-10-08"
---

# Repositórios de chaves - Amplia

As chaves das suas Autoridades Certificadoras (ACs) podem ficar em vários locais, chamados *repositórios de chaves* (key stores). A escolha de
onde guardar as chaves das ACs é uma das decisões mais importantes no planejamento de uma AC ou de uma Infraestrutura de Chaves Públicas (ICP).

Alguns dos locais em que você pode guardar chaves são:

* O banco de dados
* Um *Hardware Security Module* (HSM)
* Um token criptográfico USB
* Um [Azure Key Vault](https://azure.microsoft.com/en-us/services/key-vault/)

Cada opção tem vantagens e desvantagens.

Chaves guardadas no **banco de dados** não têm custo e exigem o mínimo de configuração, mas é difícil controlar o acesso a elas. Embora as
chaves sejam armazenadas com criptografia de 256 bits, pode ser difícil restringir o acesso à "chave mestra" usada para criptografá-las.

Do ponto de vista de segurança e confiabilidade, talvez a melhor opção seja guardar as chaves em um **HSM**. Esses dispositivos permitem gerar
chaves dentro de um ambiente protegido criptograficamente, de modo que elas nunca saiam desse ambiente, mas ainda assim possam ter backup
(normalmente com dois HSMs). A desvantagem é o custo, que costuma ir de alguns a vários milhares de dólares por unidade, dependendo do
fabricante e dos recursos do dispositivo escolhido. Manter HSMs também pode ser caro, já que em geral exige pessoal especializado.

Um **token criptográfico USB** é bem mais barato, custa cerca de 10 dólares por unidade e também gera chaves dentro de um ambiente protegido
criptograficamente, do qual elas nunca saem. No entanto, as chaves geradas dentro de tokens criptográficos normalmente não podem ter backup, o
que deixa a AC vulnerável à perda das chaves, um evento grave para uma AC.

Uma opção que reúne o melhor dos repositórios de chaves em HSM com custo relativamente baixo é o **[Azure Key Vault](https://azure.microsoft.com/en-us/services/key-vault/)**,
que pode ser visto como um HSM em nuvem. As chaves ficam em HSMs validados FIPS 140-2 nível 2, por um custo relativamente baixo, de cerca de 5
dólares por mês por chave. Esse serviço da Microsoft viabilizou o uso de HSMs em projetos que, de outra forma, não teriam orçamento para isso.

> **Dica**
>
> A instância do Amplia em nuvem da Lacuna Software (oferta SaaS) guarda todas as chaves de AC no Azure Key Vault, e recomendamos fortemente
> essa opção tanto para instâncias instaladas em nuvem quanto em servidores locais.

## Tipos de repositório de chaves

Independentemente de onde você decidir guardar as chaves, os repositórios de chaves normalmente oferecem suporte a um ou mais protocolos de
comunicação. O Amplia se comunica com os repositórios de chaves por esses protocolos, que definem os **tipos de repositório de chaves**
compatíveis com o Amplia.

Os tipos de repositório de chaves compatíveis são:

* [Banco de dados](https://docs.lacunasoftware.com/articles/amplia/on-premises/key-stores/database)
* [PKCS #11](https://docs.lacunasoftware.com/articles/amplia/on-premises/key-stores/pkcs11)
* [Windows CryptoAPI (CAPI)](https://docs.lacunasoftware.com/articles/amplia/on-premises/key-stores/capi)
* [Windows Cryptography API - Next Generation (CNG)](https://docs.lacunasoftware.com/articles/amplia/on-premises/key-stores/cng)
* [Azure Key Vault](https://docs.lacunasoftware.com/articles/amplia/on-premises/key-stores/azure)
* [HSM Dinamo](https://docs.lacunasoftware.com/articles/amplia/on-premises/key-stores/dinamo)
* [HSM Kryptus](https://docs.lacunasoftware.com/articles/amplia/on-premises/key-stores/kryptus)

## Configuração dos repositórios de chaves

Na seção **KeyStores** do arquivo de configuração, cada subseção tem o nome de um repositório de chaves e contém a configuração dele. Por
exemplo:

Exemplo (arquivo de configuração *.ini* ou *.conf*):

```ini
[KeyStores:Store1]
Type=...
Setting1=...
Setting2=...

[KeyStores:Store2]
Type=...
Setting1=...
Setting2=...
Setting3=...
```

Exemplo (variáveis de ambiente):

```sh
KeyStores__Store1__Type=...
KeyStores__Store1__Setting1=...
KeyStores__Store1__Setting2=...

KeyStores__Store2__Type=...
KeyStores__Store2__Setting1=...
KeyStores__Store2__Setting2=...
KeyStores__Store2__Setting3=...
```

Exemplo (arquivo de configuração *.json*):

```json
...
"KeyStores": {
  "Store1": {
    "Type": "...",
    "Setting1": "...",
    "Setting2": "..."
  },
  "Store2": {
    "Type": "...",
    "Setting1": "...",
    "Setting2": "...",
    "Setting3": "..."
  },
}
...
```

A configuração **Type** de cada repositório de chaves define o tipo do repositório, e as demais configurações dependem do provider escolhido.

Veja o artigo de cada tipo de repositório de chaves para as instruções de configuração (links acima).
