Wichtige Konzepte in Tink verstehen

Wenn Sie zum ersten Mal mit Tink arbeiten, sollten Sie einige wichtige Konzepte kennen, bevor Sie beginnen. Diese werden in den folgenden Abschnitten beschrieben.

Primitive Typen

Tink verwendet Primitive als kryptografische Bausteine, die einen zugrunde liegenden Algorithmus verwalten, damit Nutzer kryptografische Aufgaben sicher ausführen können. Ein Primitiv definiert die Details eines kryptografischen Algorithmus und des Schlüsseltyps.

Schlüsseltypen

Ein Schlüsseltyp implementiert eine bestimmte Primitive. Die meisten Primitiven haben mehrere Schlüsseltypen, aus denen Sie je nach Ihren Anforderungen an Sicherheit, Laufzeit und Speicherplatz auswählen können. AES128_GCM ist beispielsweise ein AEAD, das schnell und für die meisten Anforderungen effektiv ist. Weitere Informationen

Keysets und Keyset-Handles

Tink verwendet Schlüsselsätze zum Verwalten von Schlüsseln. Ein Schlüsselsatz ist im Wesentlichen eine Gruppe von Schlüsseln, die die Schlüsselrotation erleichtern. Wichtige Eigenschaften eines Schlüsselsatzes:

  • Jeder Schlüssel in einem Keyset hat eine eindeutige ID, die innerhalb eines Keyset eindeutig ist. Diese ID wird in der Regel als Präfix für jeden erstellten Geheimtext, jede Signatur oder jedes Tag hinzugefügt, um anzugeben, welcher Schlüssel verwendet wurde (weitere Informationen finden Sie unter Geheimtexte mit Tink taggen).
  • In einem Schlüsselsatz ist jeweils nur ein Schlüssel primär. Ein Primärschlüssel in einem Schlüsselsatz ist der Schlüssel, der gerade verwendet wird.
  • Alle Schlüssel in einem Schlüsselsatz müssen Implementierungen desselben primitiven Vorgangs (z. B. AEAD) sein, können aber unterschiedliche Schlüsseltypen haben (z. B. ein AES-GCM- und ein XCHACHA20-POLY1305-Schlüssel).

Jede Tink-Implementierung bietet APIs zum Erstellen oder Bearbeiten von Schlüsselsätzen. Wir empfehlen jedoch, unser CLI-Tool Tinkey zu verwenden.

Nutzer arbeiten mit Keyset-Handles. Ein Schlüsselsatz-Handle begrenzt die Offenlegung des eigentlichen sensiblen Schlüsselmaterials. Außerdem wird ein Keysets abstrahiert, sodass Nutzer ein Primitiv erhalten können, das das gesamte Keysets „umschließt“. Sie können beispielsweise ein AEAD-Primitive eines Schlüsselsatzes mit N-Schlüsseln abrufen. Bei der Verschlüsselung und Entschlüsselung mit dem abgerufenen Primitive wird dann der primäre Schlüssel im Schlüsselsatz verwendet.

Weitere Informationen finden Sie unter Schlüsselsatzdesign.