Quando inizi a utilizzare Tink per la prima volta, ci sono alcuni concetti chiave che devi comprendere prima di iniziare il tuo percorso. Questi sono descritti nelle sezioni seguenti.
Primitive
Tink utilizza primitive come blocchi di costruzione crittografici che gestiscono un algoritmo sottostante in modo che gli utenti possano eseguire in sicurezza attività crittografiche. Un primitivo definisce i dettagli di un algoritmo crittografico e il tipo di chiave.
- Consulta Scegliere un elemento primitivo per una panoramica degli elementi primitivi supportati e dei relativi casi d'uso.
Per informazioni sulla compatibilità, consulta la sezione Primitive supportate per lingua.
Per informazioni di base dettagliate, consulta Progettazione primitiva.
Tipi di chiavi
Un tipo di chiave implementa una primitiva specifica. La maggior parte dei tipi primitivi ha diversi tipi di chiavi tra cui scegliere a seconda dei requisiti di sicurezza, runtime e spazio. Ad esempio, AES128_GCM è un AEAD veloce ed efficace per la maggior parte delle esigenze. Scopri di più in Tipi di tasti supportati per lingua.
Serrature e maniglie per serrature
Tink utilizza i keyset per gestire le chiavi. Un keyset è essenzialmente un insieme di chiavi che facilitano la rotazione delle chiavi. Le proprietà degne di nota di un keyset sono:
- Ogni chiave in un keyset ha un ID univoco, che è univoco all'interno di un keyset. Questo ID viene in genere aggiunto come prefisso a ogni testo cifrato, firma o tag prodotto per indicare quale chiave è stata utilizzata (per maggiori informazioni, consulta la sezione su come Tink tagga i testi cifrati).
- In un keyset, solo una chiave alla volta è principale. Una chiave primaria in un keyset è la chiave "in uso" al momento.
- Tutte le chiavi di un keyset devono essere implementazioni della stessa primitiva (ad esempio AEAD), ma possono avere tipi di chiavi diversi (ad esempio una chiave AES-GCM e XCHACHA20-POLY1305).
Ogni implementazione di Tink fornisce API per creare o modificare i keyset. Tuttavia, ti consigliamo di utilizzare Tinkey, il nostro strumento CLI.
Gli utenti operano su un keyset utilizzando gli handle del keyset. Un handle del keyset limita l'esposizione del materiale della chiave sensibile effettivo. Inoltre, astrae un keyset
consentendo agli utenti di ottenere una primitiva che "contiene" l'intero keyset. Ad esempio, puoi ottenere una primitiva AEAD di un keyset con N chiavi; la crittografia e la decrittografia con la primitiva ottenuta utilizzano quindi la chiave primaria nel keyset.
Per saperne di più, consulta la sezione Progettazione del keyset.