Richtlinien für PKCS#11/Smart-Card-Unterstützung
Diese Richtlinien sind relevant für die Betreuer von Paketen mit Smartcard-Treibern (PKCS#11-Modulen) oder Smartcard-bezogenen Werkzeugen. Ihr Ziel ist die Vereinheitlichung der Smartcard-Verwaltung im Betriebssystem. Hintergrundinformationen und Motivation finden Sie im aktuellen Status von PKCS#11 in Fedora.
Systemweite Registrierung der Module
Jedes Paket in Fedora, das ein PKCS#11-Provider-Modul enthält und außerhalb dieses Pakets verwendet werden soll, MUSS unter p11-kit registriert werden. Beispielsweise legt das Modul OpenSC, das die meisten gängigen Hardware-Smartcards unterstützt, automatisch eine Konfigurationsdatei im entsprechenden Verzeichnis ab. Anschließend wird das Modul automatisch in kompatibler Software verwendet, die in die Plattform integriert ist und p11-kit korrekt nutzt. Das entsprechende Verzeichnis in Fedora kann mit pkg-config p11-kit-1 --variable p11_module_configs oder %{_datadir}/p11-kit/modules/ ermittelt werden. Die abgelegte Datei sollte die Endung .module haben und einen ähnlichen Inhalt wie das unten stehende Beispiel (OpenSC) aufweisen.
# Diese Datei beschreibt Laden des opensc-Moduls # Siehe: https://p11-glue.freedesktop.org/doc/p11-kit/config.html
# Dies ist ein relativer Pfad, d. h. es wird aus dem # Standardpfad von p11-kit geladen, der üblicherweise $(libdir)/pkcs11 # lautet. Auf diese Weise können Paketersteller OpenSC für # 32-Bit- und 64-Bit-Systeme paketieren und parallel installierbar # machen. module: opensc-pkcs11.so
Das Provider-Modul sollte, wie im folgenden Beispiel erwähnt, unter %{_libdir}/pkcs11/ installiert werden.
Sobald ein Modul registriert ist, sollten die von ihm bereitgestellten Token/HSMs in der Ausgabe von p11tool mithilfe des folgenden Befehls aufgelistet werden:
$ p11tool --list-tokens
Die Pakete SOLLTEN NICHT die *.pc-Dateien (von pkgconfig) für die PKCS#11-Module bereitstellen, da die Anwendungen nicht direkt mit diesen Bibliotheken verknüpft werden sollen. Das gemeinsam genutzte Objekt des PKCS#11-Moduls SOLLTE sich auch NICHT im Teilpaket -devel befinden.
Wie Anwendungen die Vorteile registrierter Anbietermodule nutzen
Pakete, die potenziell PKCS#11-Token verwenden können, SOLLTEN automatisch die in der p11-kit-Konfiguration des Systems vorhandenen Token nutzen, anstatt einen PKCS#11-Anbieter explizit angeben zu müssen. Dies kann durch Anwendungen erreicht werden, die die p11-kit-Bibliothek verwenden, um die Modulliste abzurufen, oder durch Anwendungen, die standardmäßig das p11-kit-Proxy-Modul (%{_libdir}/p11-kit-proxy.so) verwenden, falls kein PKCS#11-Anbietermodul vom Benutzer angegeben wurde. Das Proxy-Modul ist ein einzelnes Modul, das alle verfügbaren registrierten Module kapselt.
Angabe einer spezifischen SmartCard/HSM
RFC 7512 definiert einen „PKCS#11-URI“ als Standard zur Identifizierung von Token und Objekten. Fedora folgt diesem Standard, und Anwendungen, die auf Token wie Smartcards oder HSMs verweisen, müssen RFC 7512 verwenden. Anwendungen dürfen die URI-Elemente „module-name“ und „module-path“ nicht benötigen. Anwendungen, die dieser Richtlinie entsprechen, sollten URIs ohne diese Elemente anhand der registrierten Anbietermodule auflösen. Anwendungen dürfen das Attribut „slot“ weder benötigen noch ausgeben, da es sich um eine spezielle PKCS#11-Modul-Implementierungsinformation handelt, die für Endbenutzer bedeutungslos ist und deren Wert in einigen Modulen nicht garantiert eindeutig ist (und sich beispielsweise nach einem Systemneustart ändern kann).
Angeben eines auf einer Smartcard/einem HSM gespeicherten Objekts
RFC 7512 definiert einen „PKCS#11-URI“ als Standard zur Identifizierung von Token und Objekten. Fedora folgt diesem Standard, und Anwendungen, die auf Objekte in Smartcards oder HSMs zugreifen, müssen RFC 7512 verwenden, um Zertifikate und private Schlüssel zu referenzieren.
Insbesondere dann, wenn PKCS#11-Objekte in einer für den Benutzer sichtbaren Textform angegeben werden (z.B. in der Befehlszeile oder in einer Konfigurationsdatei), SOLLTEN die Objekte in Form eines PKCS#11-URI angegeben werden, wie in RFC7512 beschrieben.
Dieses Format wird bereits von einigen Programmen wie dem OpenConnect VPN-Client akzeptiert. Das in den obigen Beispielen verwendete Zertifikat kann einfach als Client-Authentifizierungszertifikat verwendet werden, indem die Befehlszeilenoption -c 'pkcs11:manufacturer=piv_II;id=%01' hinzugefügt wird.
Want to help? Learn how to contribute to Fedora Docs ›