Voglio proteggere i dati strutturati

Le API Tink accettano come input blob binari arbitrari. Ciò significa che se vuoi criptare i dati strutturati, come i buffer di protocollo, devi prima codificare i dati.

Cripta un protobuf

Per eseguire la crittografia:

  1. Serializza il protobuf in un array di byte.
  2. Cripta i byte serializzati, quindi archivia o invia il testo crittografato risultante. Usa:

Per decriptare:

  1. Decripta il testo crittografato.
  2. Se il passaggio 1 ha esito positivo, deserializza il protobuf.

Proteggere un protobuf dalle manomissioni

Nella maggior parte dei casi, la crittografia di un protobuf è preferibile alla sola autenticazione.

Per proteggere un protobuf dalle manomissioni:

  1. Serializza il protobuf in un array di byte.
  2. Firma o autentica i byte serializzati. Usa:
  3. Archivia i byte serializzati insieme alla firma (o MAC).

Per eseguire la verifica:

  1. Ottieni il protobuf serializzato e la relativa firma (o MAC).
  2. Verifica la firma (o MAC).
  3. Deserializza il protobuf.

Tieni presente che una firma o un indirizzo MAC validi non garantiscono che i dati siano formattati correttamente. Un'implementazione che analizza i dati dovrebbe sempre aspettarsi che i dati siano corrotti.

Proteggi più elementi di dati

Per proteggere più elementi di dati, utilizza un metodo di serializzazione. Aggiungi tutti gli elementi di dati a un protobuf e criptalo (o autenticalo) come descritto sopra.

Puoi anche creare serie come segue:

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

Infine, cripta (o autentica) l'array di byte risultante.