Ao começar a trabalhar com a Tink pela primeira vez, há alguns conceitos importantes que você precisa entender antes de iniciar sua jornada. Eles são descritos nas seções a seguir.
Primitivos
O Tink usa primitivos como elementos criptográficos que gerenciam um algoritmo subjacente para que os usuários possam realizar tarefas criptográficas com segurança. Uma primitiva define os detalhes de um algoritmo criptográfico e o tipo de chave.
- Consulte Escolher um primitivo para uma visão geral dos primitivos compatíveis e seus casos de uso.
Consulte Primitivos compatíveis por linguagem para mais informações.
Consulte Design primitivo para informações detalhadas.
Tipos de chaves
Um tipo de chave implementa uma primitiva específica. A maioria das primitivas tem vários tipos de chaves para escolher, dependendo dos requisitos de segurança, tempo de execução e espaço. Por exemplo, AES128_GCM é um AEAD rápido e eficaz para a maioria das necessidades. Saiba mais em Tipos de chaves compatíveis por idioma.
Conjuntos de chaves e maçanetas
O Tink usa conjuntos de chaves para gerenciar chaves. Um keyset é basicamente um conjunto de chaves que facilitam a rotação de chaves. As propriedades importantes de um conjunto de chaves são:
- Cada chave em um conjunto de chaves tem um ID exclusivo, que é exclusivo dentro de um conjunto de chaves. Normalmente, esse ID é adicionado como um prefixo a cada texto criptografado, assinatura ou tag produzido para indicar qual chave foi usada. Saiba como o Tink marca textos criptografados para mais informações.
- Apenas uma chave por vez em um conjunto de chaves é primária. Uma chave primária em um conjunto de chaves é a chave "em uso" no momento.
- Todas as chaves em um conjunto de chaves precisam ser implementações da mesma primitiva (como AEAD), mas podem ter tipos de chaves diferentes (por exemplo, uma chave AES-GCM e XCHACHA20-POLY1305).
Cada implementação do Tink fornece APIs para criar ou editar conjuntos de chaves. No entanto, recomendamos usar o Tinkey, nossa ferramenta de linha de comando.
Os usuários operam em um conjunto de chaves usando identificadores de conjunto de chaves. Um identificador de conjunto de chaves limita a
exposição do material sensível da chave. Ele também abstrai um conjunto de chaves
permitindo que os usuários obtenham uma primitiva que "encapsula" todo o conjunto de chaves. Por exemplo, é possível receber uma primitiva AEAD de um conjunto de chaves com chaves N. A criptografia e a descriptografia com a primitiva obtida usam a chave primária no conjunto de chaves.
Para mais informações, consulte design de conjunto de chaves.