Voglio proteggere i dati strutturati

Le API Tink prendono come input BLOB binari arbitrari. Ciò significa che se vuoi crittografare i dati strutturati, buffer di protocollo, è necessario prima di codificare i dati.

Cripta un protobuf

Per crittografare:

  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 sua firma (o MAC).
  2. Verifica la firma (o l'indirizzo MAC).
  3. Deserializza il protobuf.

Tieni presente che una firma o un MAC validi non garantiscono che i dati siano corretti. formattato. Un'implementazione che analizza i dati deve sempre aspettarsi che i dati potrebbero essere danneggiati.

Proteggi più elementi di dati

Per proteggere più elementi di dati, utilizza un metodo di serializzazione. Aggiungi tutti i dati di crittografia (o autenticazione) a un protobuf e di criptarlo (o autenticarlo) come descritto sopra.

Puoi anche serializzare 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.