Comprendre les concepts clés de Tink

Lorsque vous commencez à utiliser Tink, vous devez comprendre certains concepts clés avant de vous lancer. Ils sont décrits dans les sections suivantes.

Primitives

Tink utilise des primitives comme composants cryptographiques qui gèrent un algorithme sous-jacent afin que les utilisateurs puissent effectuer des tâches cryptographiques en toute sécurité. Un élément primitif définit les détails d'un algorithme cryptographique et du type de clé.

Types de clés

Un type de clé implémente une primitive spécifique. La plupart des primitives proposent plusieurs types de clés au choix, en fonction de vos exigences en termes de sécurité, d'exécution et d'espace. Par exemple, AES128_GCM est un AEAD rapide et efficace pour la plupart des besoins. Pour en savoir plus, consultez Types de clés compatibles par langue.

Jeux de clés et poignées de jeux de clés

Tink utilise des ensembles de clés pour gérer les clés. Un keyset est un ensemble de clés qui facilite la rotation des clés. Voici les principales propriétés d'un trousseau de clés :

  • Chaque clé d'une collection de clés possède un ID unique au sein de cette collection. Cet ID est généralement ajouté en tant que préfixe à chaque texte chiffré, signature ou tag produit pour indiquer la clé utilisée (pour en savoir plus, consultez la section sur la façon dont Tink taggue les textes chiffrés).
  • Une seule clé à la fois dans un ensemble de clés est primaire. Dans un trousseau de clés, la clé primaire est celle qui est "en cours d'utilisation".
  • Toutes les clés d'un keyset doivent être des implémentations de la même primitive (comme AEAD), mais peuvent avoir des types de clés différents (par exemple, une clé AES-GCM et une clé XCHACHA20-POLY1305).

Chaque implémentation Tink fournit des API permettant de créer ou de modifier des ensembles de clés. Toutefois, nous vous recommandons d'utiliser Tinkey, notre outil CLI.

Les utilisateurs interagissent avec un ensemble de clés à l'aide de handles d'ensemble de clés. Un handle de keyset limite l'exposition du matériel de clé sensible réel. Il abstrait également un keyset, ce qui permet aux utilisateurs d'obtenir une primitive qui "encapsule" l'ensemble du keyset. Par exemple, vous pouvez obtenir une primitive AEAD d'une collection de clés avec N clés. Le chiffrement et le déchiffrement avec la primitive obtenue utilisent ensuite la clé principale de la collection de clés.

Pour en savoir plus, consultez la section Conception des ensembles de clés.