Entenda os principais conceitos no Tink

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.

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.