Schlüsselkategorien erzeugen und editieren

Sie können in Kleopatra das Aussehen von Schlüsseln auf der Basis eines Konzepts namens Schlüsselkategorien verändern. Schlüsselkategorien werden auch benutzt, um die Liste der Zertifikate zu filtern. In diesem Abschnitt beschreiben wir, wie Sie die verfügbaren Kategorien editieren und neue hinzufügen können.

Um herauszufinden, zu welcher Kategorie ein Schlüssel gehört, versucht Kleopatra, den Schlüssel mit einer Folge von Schlüsselfiltern abzugleichen, die in der Datei libkleopatrarc konfiguriert sind. Der erste passende Filter definiert die Kategorie, basierend auf dem später erläuterten Konzept der Genauigkeit.

Jeder Schlüsselfilter ist in einer Konfigurationsgruppe namens Key Filter #n definiert, wobei n eine Zahl ist, beginnend bei 0.

Die einzigen obligatorischen Schlüssel in einer solchen Key Filter #n-Gruppe sind der Name, der den Namen der Kategorie enthält, wie er im Einrichtungsdialog angezeigt wird und id, die als Verweis auf Filter in anderen Abschnitten der Einrichtungsdatei dient, wie zum Beispiel View #n.

Tabelle 6.1, „Schlüsselfilter-Konfigurationsschlüssel, die Anzeigeeigenschaften definieren“ führt alle Schlüssel auf, die die Anzeigeeigenschaften von Schlüsseln dieser Kategorie definieren (d. h. die Schlüssel, die im Einrichtungsdialog editiert werden können), wohingegen Tabelle 6.2, „Schlüsselfilter-Konfigurationsschlüssel, die Filterkriterien definieren“ alle Schlüssel auflistet, die die Kriterien definieren, anhand denen Filter mit Schlüsseln verglichen werden.

Tabelle 6.1. Schlüsselfilter-Konfigurationsschlüssel, die Anzeigeeigenschaften definieren

KonfigurationsschlüsselTypBeschreibung
background-colorFarbeDie zu verwendende Hintergrundfarbe. Wenn dieser Schlüssel nicht vorhanden ist, wird als Vorgabe die global definierte Hintergrundfarbe für Listenansichten verwendet.
foreground-colorFarbeDie zu verwendende Vordergrundfarbe. Wenn dieser Schlüssel nicht vorhanden ist, wird als Vorgabe die global definierte Vordergrundfarbe für Listenansichten verwendet.
fontZeichensatzDer zu verwendende benutzerdefinierte Zeichensatz. Der Zeichensatz wird auf die für Listenansichten konfigurierte Größe skaliert, und mit Zeichensatzattributen (siehe unten) versehen.
font-boldBoolescher WertWenn dieser Schlüssel den Wert true hat und font nicht gesetzt ist, dann wird der Standard-Listen-Zeichensatz in Fettschrift (so verfügbar) verwendet. Wenn auch font vorhanden ist, wird dieser Schlüssel ignoriert.
font-italicBoolescher WertAnalog zu font-bold, aber für kursiven Schriftstil anstelle von fettem.
font-strikeoutBoolescher WertWenn dieser Schlüssel den Wert true hat, dann wird eine zentrierte Linie durch den Zeichensatz gezogen. Wird auch dann verwendet, wenn font gesetzt ist.
iconTextDer Name eines Icons, das in der ersten Spalte angezeigt wird. Noch nicht implementiert.

Tabelle 6.2. Schlüsselfilter-Konfigurationsschlüssel, die Filterkriterien definieren

KonfigurationsschlüsselTypWenn dieser Schlüssel angegeben ist, passt der Filter, wenn ...
is-revokedBoolescher Wertder Schlüssel widerrufen worden ist.
match-contextKontext[a] der Kontext der auf diesen Filter passt.
is-expiredBoolescher Wertder Schlüssel abgelaufen ist.
is-disabledBoolescher Wertder Schlüssel vom Benutzer deaktiviert worden ist (nicht mehr benutzt werden soll). Wird bei S/MIME-Schlüsseln ignoriert.
is-root-certificateBoolescher Wertder Schlüssel ein Wurzelzertifikat ist. Wird bei OpenPGP-Schlüsseln ignoriert.
can-encryptBoolescher Wertder Schlüssel zum Verschlüsseln verwendet werden kann.
can-signBoolescher Wertder Schlüssel zum Signieren verwendet werden kann.
can-certifyBoolescher Wertder Schlüssel zum Signieren (Zertifizieren) anderer Schlüssel verwendet werden kann.
can-authenticateBoolescher Wertder Schlüssel zur Authentifikation (etwa als TLS-Client-Zertifikat) verwendet werden kann.
is-qualifiedBoolescher Wertder Schlüssel kann benutzt werden, um qualifizierte Signaturen zu erzeugen, wie sie im deutschen Signaturgesetz ((Gesetz über Rahmenbedingungen für elektronische Signaturen) definiert sind.
is-cardkeyBoolescher Wertder Schlüssel wird auf einer Chipkarte und nicht auf dem Rechner gespeichert.
has-secret-keyBoolescher Wertder geheime Schlüssel zu diesem Schlüsselpaar zur Verfügung steht.
is-openpgp-keyBoolescher Wertder Schlüssel ein OpenPGP-Schlüssel (true) oder ein S/MIME-Schlüssel (false) ist.
was-validatedBoolescher Wertder Schlüssel überprüft worden ist.
präfix-ownertrustGültigkeit[b] der Schlüssel hat genau (präfix = is), hat alle außer (präfix = is-not), hat mindestens (präfix = is-at-least), oder hat höchstens (präfix = is-at-most) das Eigentümer-Vertrauen, das als Wert des Konfigurationsschlüssels angegeben ist. Wenn mehr als ein präfix-ownertrust-Schlüssel (mit unterschiedlichen präfix-Werten) in einer einzigen Gruppe steht, ist das Verhalten undefiniert.
präfix-validityGültigkeitEntsprechend präfix-ownertrust, aber für die Gültigkeit von Schlüsseln anstelle vom Eigentümer-Vertrauen.

[a] Kontext besteht aus einer Aufzählung der folgenden zulässigen Werte: appearance, filtering und any.

[b] Die Gültigkeit ist eine (geordnete) Aufzählung mit den folgenden zulässigen Werten: unknown, undefined, never, marginal, full und ultimate. Eine vollständige Beschreibung finden Sie in den Handbüchern zu GPG und GpgSM.


Anmerkung

Einige der interessanteren Kriterien wie is-revoked oder is-expired funktionieren nur bei validierten Schlüsseln, weswegen standardmäßig nur überprüfte Schlüssel auf Widerruf oder Ablauf geprüft werden, auch wenn es Ihnen frei steht, diese zusätzlichen Abfragen zu entfernen.

Zusätzlich zu den oben genannten Konfigurationsschlüsseln kann ein Schlüsselfilter auch noch die Attribute id und match-contexts haben.

Mit der id des Filters ist überall in der Konfiguration der Zugriff auf den Schlüsselfilter möglich, z. B. in Kleopatras Konfiguration des Erscheinungsbilds. Der Standardwert der id ist der Name der Gruppe in der Konfigurationsdatei, falls nicht anders angegeben. Der Wert darf auch nicht gesetzt sein. Die id wird durch Kleopatra nicht verarbeitet und kann daher einen beliebigen Text enthalten, der aber eindeutig sein muss.

Das Attribut match-contexts begrenzt die Anwendungsmöglichkeit des Filters. Es sind zurzeit zwei Kontexte definiert: appearance wird benutzt zur Definition von Farben und Schriften für die Anzeige. Mit filtering werden Zertifikate in der Ansicht ein- oder ausgeblendet. any kann zur Kennzeichnung aller aktuell definierten Kontexte verwendet werden. Dies ist die Voreinstellung, wenn match-contexts nicht definiert ist oder sich ansonsten kein Kontext ergibt. Damit wird sichergestellt, dass es keinen Filter ohne Kontext gibt.

Ein Eintrag besteht aus einer Liste von Zeichengruppen, getrennt durch Leerzeichen. Jeder Zeichengruppe kann ein Ausrufungszeichen (!) vorangestellt werden, damit wird der Ausdruck verneint. Die Zeichengruppen werden der Reihe nach auf eine interne Liste von Kontexten angewendet, die zu Beginn leer ist. Das lässt sich am Besten an einem Beispiel erklären: any !appearance entspricht filtering, und appearance !appearance ebenso wie !any ergeben eine leere Menge. Die letzten beiden Ergebnisse werden intern durch any ersetzt, da sie keinerlei Kontext ergeben.

Nicht angegebene Kriterien (Kriterien, deren Konfigurationsschlüssel nicht angegeben ist), werden nicht abgefragt. Wenn ein Kriterium angegeben ist, dann wird es abgefragt und muss zutreffen, damit der Filter als Ganzes zutrifft; die einzelnen Kriterien werden also UND-verknüpft.

Jeder Filter beinhaltet eine Genauigkeit, die alle passenden Filter bewertet. Der genauere Filter wird dem weniger genauen vorgezogen. Haben zwei Filter die gleiche Genauigkeit, wird der zuerst in der Konfigurationsdatei aufgeführte benutzt. Die Genauigkeit entspricht der Anzahl der Kriterien des Filters.

Beispiel 6.1. Beispiele für Schlüsselfilter

Um alle abgelaufenen, aber nicht widerrufenen Wurzel-Zertifikate abzufragen, würden Sie den folgenden Schlüsselfilter verwenden:

[Key Filter #n]
Name=abgelaufen, aber nicht widerrufen
was-validated=true
is-expired=true
is-revoked=false
is-root-certificate=true
; ( specificity 4 )

Um alle deaktivierten OpenPGP-Schlüssel (derzeit noch nicht von Kleopatra unterstützt) mit einem Eigentümer-Vertrauen von mindestens marginal abzudecken, verwenden Sie:

[Key Filter #n]
Name=deaktivierte OpenPGP-Schlüssel mit einem Ownertrust von marginal oder besser
is-openpgp=true
is-disabled=true
is-at-least-ownertrust=marginal
; ( specificity 3 )