Je souhaite protéger les données structurées

Les API Tink acceptent des blobs binaires arbitraires en entrée. Cela signifie que si vous souhaitez chiffrer des données structurées, telles que des tampons de protocole, vous devez d'abord les encoder.

Chiffrer un tampon de protocole

Pour chiffrer:

  1. Sérialiser le protobuf en un tableau d'octets.
  2. Chiffrer les octets sérialisés, puis stocker ou envoyer le texte chiffré obtenu Utilisez :

Pour le déchiffrer:

  1. Déchiffrez le texte chiffré.
  2. Si l'étape 1 a réussi, désérialisez le tampon de protocole.

Protéger une mémoire tampon de protocole contre la falsification

Dans la plupart des cas, le chiffrement d'un tampon de protocole est préférable à l'authentification seule.

Pour protéger un tampon de protocole contre la falsification, procédez comme suit:

  1. Sérialiser le protobuf en un tableau d'octets.
  2. Signez ou authentifiez les octets sérialisés. Utilisez :
  3. Stockez les octets sérialisés avec la signature (ou MAC).

Pour effectuer la validation, procédez comme suit :

  1. Obtenez le tampon de protocole sérialisé et sa signature (ou MAC).
  2. Vérifiez la signature (ou MAC).
  3. Désérialiser le tampon de protocole

Notez qu'une signature ou un MAC valide ne garantit pas que les données sont correctement formatées. Une implémentation qui analyse les données doit toujours s'attendre à ce que celles-ci soient corrompues.

Protéger plusieurs éléments de données

Pour protéger plusieurs éléments de données, utilisez une méthode de sérialisation. Ajoutez tous les éléments de données à un protobuf et chiffrez-le (ou authentifiez-le) comme décrit ci-dessus.

Vous pouvez également effectuer la sérialisation comme suit:

serialize(data1 , data2 , …, datan) = 4-byte-data1's length || data1 || 4-byte-data2's length || data2 || … || 4-byte-dataN's length || dataN

Enfin, chiffrez (ou authentifiez) le tableau d'octets obtenu.