Asymmetrische Schlüsselverschlüsselung: Ein kryptografisches System, das gekoppelte Schlüssel (öffentlich und privat) verwendet, um Daten zu verschlüsseln und zu entschlüsseln. Öffentliche Schlüssel werden zum Verschlüsseln von Daten verwendet und können gemeinsam genutzt werden. Private Schlüssel werden zum Entschlüsseln von Daten verwendet und sind nur dem Inhaber bekannt.
Ciphertext: Das Ergebnis der Verschlüsselung, die für Klartext mithilfe eines Algorithmus durchgeführt wurde. Geheimtext ist erst verständlich, nachdem er mit einem Schlüssel wieder in Klartext konvertiert wurde.
Konsistenz: Bedeutet, dass Tink sich in allen Programmiersprachen gleich verhält. Tink bietet beispielsweise Bewertungskonsistenz. Das bedeutet, dass sich die Primitiven für ein bestimmtes Keyset gleich verhalten, wenn die primitive Erstellung in zwei Sprachen erfolgreich ist.
Schlüssel: Eine Information (z. B. ein String), die zum Verschlüsseln oder Entschlüsseln von Daten erforderlich ist. Informationen zur Darstellung finden Sie unter Schlüsselobjekte.
Keyset- und Keyset-Handle: Tink verwendet Keysets zur Verwaltung von Schlüsseln. Ein Keyset ist im Wesentlichen ein Satz von Schlüsseln, die die Schlüsselrotation ermöglichen. Wichtige Eigenschaften eines Schlüsselsatzes sind:
- Jeder Schlüssel in einem Keyset hat eine eindeutige ID, die innerhalb eines Keyset eindeutig ist. Diese ID wird normalerweise jedem erzeugten Geheimtext, jeder Signatur oder jedem Tag als Präfix hinzugefügt, um anzugeben, welcher Schlüssel verwendet wurde. Weitere Informationen dazu, wie Tink Geheimtexte taggt, finden Sie hier.
- In einem Schlüsselsatz ist jeweils nur ein Schlüssel als primärer Schlüssel festgelegt. Ein Primärschlüssel in einem Schlüsselsatz ist der Schlüssel „in Verwendung“.
- Alle Schlüssel in einem Schlüsselsatz müssen Implementierungen derselben Primitive (z. B. AEAD) sein, können jedoch unterschiedliche Schlüsseltypen haben (z. B. einen AES-GCM- und einen XCHACHA20-POLY1305-Schlüssel).
Jede Tink-Implementierung stellt APIs zum Erstellen oder Bearbeiten von Schlüsselsätzen bereit. Wir empfehlen jedoch die Verwendung von Tinkey, unser CLI-Tool.
Nutzer bedienen einen Schlüsselsatz mithilfe von Schlüsselsatz-Handles. Ein Keyset-Handle schränkt die Offenlegung des tatsächlichen vertraulichen Schlüsselmaterials ein. Außerdem wird ein Schlüsselsatz abstrahiert, mit dem Nutzer ein Primitive abrufen können, das das gesamte Schlüsselsatz „umschließt“. Sie können beispielsweise eine AEAD-Primitive eines Schlüsselsatzes mit N
-Schlüsseln abrufen. Bei der Verschlüsselung und Entschlüsselung mit der abgerufenen Primitiven wird dann der Primärschlüssel im Schlüsselsatz verwendet.
Schlüsselverwaltungssystem (KMS): Ein System zur Verwaltung kryptografischer Schlüssel, einschließlich der Generierung, Speicherung, Verwendung, Rotation, Löschung und des Ersetzens.
Schlüsseltyp: Ein Schlüsseltyp implementiert eine bestimmte Primitive. Für die meisten Primitiven stehen mehrere Schlüsseltypen zur Auswahl, je nach Ihren Anforderungen an Sicherheit, Laufzeit und Speicherplatz. AES128_GCM ist beispielsweise ein AEAD, der für die meisten Anforderungen schnell und effektiv ist. Weitere Informationen finden Sie unter Unterstützte Schlüsseltypen nach Sprache.
Parameter: Enthält die Informationen, die zum Erstellen eines Schlüssels erforderlich sind, mit Ausnahme des Schlüsselmaterials und der Schlüssel-ID. Informationen zur Darstellung finden Sie unter Parameterobjekte.
Klartext: Die verständliche Eingabeform eines verschlüsselten Textes oder seiner Elemente.
Einfach: Tink verwendet Primitive als kryptografische Bausteine, die einen zugrunde liegenden Algorithmus verwalten, sodass Nutzer kryptografische Aufgaben sicher ausführen können. Ein Primitive definiert die Details eines kryptografischen Algorithmus und den Schlüsseltyp.
Primitives mit Unterstützung von Tink:
- Authenticated Encryption with Assigned Data (AEAD): Die gängigste Primitive für die Datenverschlüsselung; für die meisten Verschlüsselungsanforderungen geeignet. AEAD bietet Klartextvertraulichkeit und ermöglicht die Überprüfung seiner Integrität und Authentizität. Siehe Authenticated Encryption with Assigned Data (AEAD).
- Deterministische Verschlüsselung:Eine primitive Verschlüsselung, die immer denselben Geheimtext für einen bestimmten Klartext und Schlüssel erzeugt. Dies kann riskant sein, da ein Angreifer nur herausfinden muss, welcher Geheimtext einer bestimmten Klartexteingabe entspricht, um ihn zu identifizieren. Siehe Deterministisches AEAD.
- Digitale Signatur: Eine asymmetrische (siehe Asymmetrische Schlüsselverschlüsselung) Primitive zur Bestätigung der Authentizität und Integrität von signierten Daten. Weitere Informationen finden Sie unter Digitale Signatur.
- Hybridverschlüsselung: Eine Primitive, die asymmetrische Schlüsselverschlüsselung und symmetrische Schlüsselverschlüsselung kombiniert (siehe Asymmetrische Schlüsselverschlüsselung und Symmetrische Schlüsselverschlüsselung). Die Hybridverschlüsselung kombiniert die Effizienz der symmetrischen Verschlüsselung mit der Bequemlichkeit der Verschlüsselung mit öffentlichem Schlüssel. Zum Verschlüsseln einer Nachricht wird ein neuer symmetrischer Schlüssel generiert und zum Verschlüsseln der Klartextdaten verwendet. Der öffentliche Schlüssel des Empfängers wird hingegen nur zum Verschlüsseln des symmetrischen Schlüssels verwendet. Der endgültige Geheimtext besteht aus dem symmetrischen Geheimtext und dem verschlüsselten symmetrischen Schlüssel. Siehe Hybridverschlüsselung.
- Message Authentication Code (MAC): Eine symmetrische Primitive (siehe Symmetrische Schlüsselverschlüsselung) zur Bestätigung der Authentizität und Integrität von Daten. Siehe Nachrichtenauthentifizierungscode (MAC).
- Streaming-AEAD: Ein Primitiv, der eine authentifizierte Verschlüsselung für Streamingdaten bereitstellt. Nützlich, wenn die zu verschlüsselnden Daten zu groß sind, um in einem einzigen Schritt verarbeitet zu werden. Siehe Streaming AEAD.
Informationen zur Kompatibilität finden Sie unter Unterstützte Primitive nach Sprache.
Registry: Eine globale Entität in Tink, die neue Schlüssel und Primitive generieren kann. Weitere Informationen finden Sie unter Fehlerbehebung bei Registrierungsfehlern.
Symmetrische Schlüsselverschlüsselung: Ein kryptografischer Algorithmus, der denselben Schlüssel zum Verschlüsseln von Klartext und zum Entschlüsseln von Geheimtext verwendet.