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

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

Chiffrer un tampon de protocole

Pour chiffrer:

  1. Sérialiser le protobuf dans un tableau d'octets
  2. Chiffrez les octets sérialisés, puis stockez ou envoyez le texte chiffré obtenu. Utilisation: <ph type="x-smartling-placeholder">

Pour déchiffrer:

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

Protéger un 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 protobuf contre la falsification:

  1. Sérialiser le protobuf dans un tableau d'octets
  2. Signez ou authentifiez les octets sérialisés. Utilisation: <ph type="x-smartling-placeholder">
  3. Stockez les octets sérialisés avec la signature (ou MAC).

Pour effectuer la validation, procédez comme suit :

  1. Obtenir le tampon de protocole sérialisé et sa signature (ou MAC)
  2. Validez la signature (ou MAC).
  3. Désérialiser le protobuf

Notez qu'une signature ou un MAC valides 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 les données peuvent être 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. Ajouter toutes les données des éléments dans un tampon de protocole, puis le chiffrent (ou l'authentifient) comme décrit ci-dessus.

Vous pouvez également effectuer une 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.