Veröffentlicht: Dezember 2024 | Aktualisiert: August 2026
Das Signieren von XML-Dateien mit XMLSec und PKCS#11 bedeutet, dass das Open-Source-Befehlszeilenprogramm xmlsectool verwendet wird, um eine digitale Signatur auf ein XML-Dokument anzuwenden, während der private Schlüssel in einem Hardware-Sicherheitsmodul (HSM) oder -Token verbleibt. Der PKCS#11-Wrapper von EC ermöglicht die Kommunikation zwischen xmlsectool und HSM, sodass der Schlüssel die zertifizierte Hardware niemals verlässt.
Das globale Datenvolumen wächst so rasant, dass eine manuelle Vertrauensprüfung in großem Umfang praktisch unmöglich wird: Laut dem IDC-Bericht „Global DataSphere Forecast, 2026–2030“ (veröffentlicht im Juni 2026) wird das weltweite Datenvolumen bis 2030 die Marke von 700 Zettabyte (ZB) überschreiten . Zum besseren Verständnis: Ein Zettabyte entspricht einer Billion Gigabyte (GB). Der Großteil dieser Daten ist unstrukturiert und benötigt eine Struktur, die ihnen Bedeutung verleiht. Hier kommen XML-Dateien ins Spiel.
eXtensible Markup Language (XML) ist eine Auszeichnungssprache, die Regeln festlegt und Daten organisiert. Sie beschreibt außerdem, wie Daten gespeichert und über das Internet transportiert werden. XML verwendet Auszeichnungssymbole oder Tags, die moderne Browser und Datenverarbeitungsanwendungen zur Verarbeitung dieser Informationen verwenden.
XML-Signierung
XML-Dateien werden in großer Zahl verwendet und sind daher ein integraler Bestandteil unserer webbasierten Anwendungen und Technologien. Doch kann man jeder XML-Datei vertrauen? Wie kann man sich von der Authentizität einer XML-Datei überzeugen? Zur Authentifizierung und Überprüfung ihrer Quelle benötigen Sie einen digitalen Nachweis oder eine Signatur.
Die XML-Signatur hilft Ihnen, Ihre digitalen Anmeldeinformationen hinzuzufügen, wodurch der Empfänger dem Inhalt der Datei voll und ganz vertrauen kann. Um diesen Prozess zu vereinfachen, bietet Ihnen Encryption Consulting den PKCS#11 Wrapper an. Diese Softwarebibliothek stellt eine Java-Schnittstelle zur Interaktion mit PKCS#11-kompatiblen Geräten wie Hardware-Sicherheitsmodulen (HSMs) , Smartcards oder beliebigen Schlüsseltresoren bereit.
Zusammen mit dem PKCS#11 Wrapper verwenden wir das XMLSec-Tool, ein Befehlszeilentool zum Signieren, Überprüfen, Verschlüsseln und Entschlüsseln von XML-Dokumenten.
Ubuntu vs. macOS: Ein kurzer Vergleich
Diese Anleitung behandelt Ubuntu und macOS; eine Einrichtung unter Windows ist für dieses Tool derzeit nicht dokumentiert. Hier ein kurzer Überblick über die Unterschiede zwischen den beiden unterstützten Systemen.
| Aspekt | Ubuntu | macOS |
|---|---|---|
| Getestete Betriebssystemversion | Ubuntu 24.02 | macOS 15.1 Sequoia |
| Wrapper-Abhängigkeiten | liblog4cxx12, curl (geeignet) | liblog4cxx, curl (Selbstgebraut) |
| Java-Distribution | Amazon Corretto 17 über apt repo | Amazon Corretto 17 über .pkg-Installationsprogramm |
| Shell-Konfiguration für JAVA_HOME | ~/.bashrc | ~/.zshrc |
| XMLSec Tool-Quelle | shibboleth.net (xmlsectool-3.0.0-bin.zip) | shibboleth.net (xmlsectool-3.0.0-bin.zip) |
Konfiguration des PKCS#11 Wrappers unter Ubuntu
Voraussetzungen:
Bevor wir uns mit dem Prozess der XML-Signierung mit dem XMLSec-Tool und unserem PKCS11-Wrapper auf einer Linux-Maschine (Ubuntu) befassen, stellen Sie sicher, dass Folgendes bereit ist:
- Ubuntu-Version: Ubuntu Version 22.04 oder höher (getestete Umgebung ist Ubuntu 24.02)
- Abhängigkeiten: Installieren Sie liblog4cxx12 und curl.
Um die Abhängigkeiten zu installieren, führen Sie die folgenden Befehle aus
- sudo apt-get installieren locken
- sudo apt-get installiere liblog4cxx12
Installieren des PKCS#11-Wrappers von EC
Schritt 1: Gehen Sie in EC CodeSign Secure v3.02 zum Abschnitt „Signierungstools“ und laden Sie den PKCS#11 Wrapper für Ubuntu herunter.

Schritt 2: Generieren Sie anschließend ein P12-Authentifizierungszertifikat über das Dropdown-Menü System Setup > Benutzer > Authentifizierungszertifikat generieren.

Schritt 3: Gehen Sie zu Ihrem Ubuntu-Clientsystem und bearbeiten Sie die Konfigurationsdateien ( ec_PKCS#11client.ini und PKCS#11properties.cfg ), die im PKCS#11 Wrapper heruntergeladen wurden.

XMLSec-Tool installieren
Schritt 1: Installieren Sie die neueste Version des XMLSec Tools (xmlsectool-3.0.0-bin.zip) über diesen Link.

Schritt 2: Sie können die ZIP-Datei in ein Verzeichnis Ihrer Wahl extrahieren.

Laden Sie Java herunter und installieren Sie es auf Ihrem Ubuntu-Computer.
Schritt 1: Laden Sie Amazon Corretto 17 Java herunter (Weitere unterstützte Java-Versionen können Sie hier mit dem XMLSec-Tool überprüfen. )
wget -O – https://apt.corretto.aws/corretto.key | sudo gpg –dearmor -o /usr/share/keyrings/corretto-keyring.gpg && \ echo „deb [signed-by=/usr/share/keyrings/corretto-keyring.gpg] https://apt.corretto.aws stable main“ | sudo tee /etc/apt/sources.list.d/corretto.list
Schritt 2: Java-Paket installieren
sudo apt-get update; sudo apt-get install -y java-17-amazon-corretto-jdk
Schritt 3: Überprüfen Sie, ob Java ordnungsgemäß installiert wurde oder nicht
Java-Version

Java zur Umgebungsvariablen hinzufügen
Schritt 1: Amazon Corretto 17 Java als aktive Version festlegen
update-alternatives –config java

Schritt 2: Fügen Sie die Variable „JAVA_HOME“ in die Datei ~/.bashrc ein
echo „export JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto“ >> ~/.bashrc

Schritt 3: Überprüfen Sie die Datei ~/.bashrc
tail -3 ~/.bashrc

Schritt 4: Laden Sie die Umgebungsvariablen neu
Quelle ~ /. Bashrc

Schritt 5: Überprüfen Sie den Wert der Variable JAVA_HOME
echo $JAVA_HOME

Unterzeichnung
Schritt 1: Wechseln Sie im Terminal in den Ordner, der Ihre Datei „ec_pkcs11client.ini“ enthält.

Schritt 2: Führen Sie den Signaturbefehl aus diesem Verzeichnis aus.
–sign –pkcs11Config –keyAlias –keyPassword KEINE –inFile –outFile
Nachfolgend finden Sie einen Beispielbefehl:
../xmlsectool-3.0.0-bin/xmlsectool-3.0.0/xmlsectool.sh –sign –pkcs11Config pkcs11properties.cfg –keyAlias DemoCertificate –keyPassword NONE –inFile ../xmlSample.xml –outFile ../out-xmlSample.xml
Verification
Führen Sie den Überprüfungsbefehl aus
–verifySignature –pkcs11Config –keyAlias –keyPassword KEINE –inFile
Nachfolgend finden Sie einen Beispielbefehl:
../xmlsectool-3.0.0-bin/xmlsectool-3.0.0/xmlsectool.sh –verifySignature –pkcs11Config pkcs11properties.cfg –keyAlias gpg2 –keyPassword NONE –inFile ../out-sample.xml
Konfiguration des PKCS#11 Wrappers unter MacOS
Voraussetzungen:
Bevor wir uns mit dem Prozess der XML-Signierung mit dem XMLSec-Tool und unserem PKCS#11-Wrapper auf einem MacOS-Computer befassen, stellen Sie sicher, dass Folgendes bereit ist:
- MacOS-Version: MacOS Version 13 (Ventura) oder höher (getestete Umgebung ist MacOS 15.1 Sequoia)
- Abhängigkeiten: Installieren Sie liblog4cxx und curl.
Um die Abhängigkeiten zu installieren, führen Sie die folgenden Befehle aus
- brew install log4cxx
- brew installieren curl
Installieren des PKCS#11-Wrappers von EC
Schritt 1: Gehen Sie in EC CodeSign Secure v3.02 zum Abschnitt „Signierungstools“ und laden Sie den PKCS#11 Wrapper für Mac herunter.

Schritt 2: Generieren Sie anschließend ein P12-Authentifizierungszertifikat über das Dropdown-Menü System Setup > Benutzer > Authentifizierungszertifikat generieren.

Schritt 3: Gehen Sie zu Ihrem MacOS-Clientsystem und bearbeiten Sie die Konfigurationsdateien ( ec_PKCS#11client.ini und PKCS#11properties.cfg ), die im PKCS#11 Wrapper heruntergeladen wurden.

XMLSec-Tool installieren
Schritt 1: Laden Sie die neueste Version des XMLSec Tools (xmlsectool-3.0.0-bin.zip) über diesen Link herunter.

Sie benötigen diese Shell-Datei, um die XML-Signierung durchzuführen

Laden Sie Java herunter und installieren Sie es auf Ihrem MacOS-Computer.
Schritt 1: Laden Sie Amazon Corretto 17 Java herunter (Sie können hier mit dem XMLSec-Tool nach anderen unterstützten Java-Versionen suchen ).
Über diesen Link können Sie die .pkg-Datei für die MacOS-Umgebung herunterladen.
Schritt 2: Java-Paket installieren
Beginnen Sie die Installation mit der heruntergeladenen Datei.

Schritt 3: Überprüfen Sie, ob Java ordnungsgemäß installiert wurde.
Java-Version

Java zur Umgebungsvariablen hinzufügen
Schritt 1: Ermitteln Sie den vollständigen Installationspfad von Amazon Corretto 17 Java.
/usr/libexec/java_home –verbose

Schritt 2: Fügen Sie die Variable „JAVA_HOME“ in die Datei ~/.zshrc ein
echo 'export JAVA_HOME=”/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home”' >> ~/.zshrc

Schritt 3: Laden Sie die Umgebungsvariablen neu
Quelle ~/.zshrc

Schritt 4: Überprüfen Sie den Wert der Variable JAVA_HOME
echo $JAVA_HOME

Unterzeichnung
Schritt 1: Wechseln Sie im Terminal in den Ordner, der Ihre Datei „ec_pkcs11client.ini“ enthält.

Schritt 2: Führen Sie den Signaturbefehl aus diesem Verzeichnis aus.
–sign –pkcs11Config –keyAlias –keyPassword KEINE –inFile –outFile
Nachfolgend finden Sie einen Beispielbefehl:
../xmlsectool-3.0.0/xmlsectool.sh –sign –pkcs11Config pkcs11properties.cfg –keyAlias DemoCertificate –keyPassword NONE –inFile ../xmlSample.xml –outFile ../SignedSample.xml
Verification
Führen Sie den Überprüfungsbefehl aus
–verifySignature –pkcs11Config –keyAlias –keyPassword KEINE –inFile
Nachfolgend finden Sie einen Beispielbefehl:
../xmlsectool-3.0.0/xmlsectool.sh –verifySignature –pkcs11Config pkcs11properties.cfg –keyAlias gpg2 –keyPassword NONE –inFile ../Signedsample.xml
Fazit
Angesichts der zunehmenden Menge unstrukturierter Daten ist die XML-Dokumentsignierung unerlässlich . Die nahtlose Integration unseres PKCS#11-Wrappers und des XMLSec-Tools bietet eine flexible und effiziente Lösung für die XML-Dokumentsignierung.
Mit der CodeSign Secure- Lösung von Encryption Consulting können Sie das Vertrauen Ihrer Kunden stärken und ausbauen. Sie bietet Funktionen wie clientseitiges Hashing, rollenbasierte Zugriffskontrolle und Anwendungsmanagement zum Schutz Ihrer Daten. Die Lösung ermöglicht die Integration verschiedener DevOps CI/CD- Pipelines für die vollautomatische Codesignierung. Dieser rollenbasierte, HSM-gestützte Schutz gewinnt jährlich an Bedeutung: Laut dem GitGuardian-Bericht „State of Secrets Sprawl 2026“ wurden allein im Jahr 2025 28.65 Millionen neue, fest codierte Geheimnisse auf öffentlichen GitHub-Plattformen offengelegt – ein Anstieg von 34 % gegenüber dem Vorjahr. Die durchschnittliche Zeit, die ein Team benötigt, um ein durchgesickertes Geheimnis zu beheben, beträgt laut dem Verizon-Bericht „Data Breach Investigations Report 2025“ 94 Tage. Dieser Zeitraum ist lang genug, um den zusätzlichen Einrichtungsaufwand für die vollständige Speicherung der Signaturschlüssel auf der Festplatte zu rechtfertigen.
Häufig gestellte Fragen
Was ist XMLSec (xmlsectool) und was bewirkt es?
XMLSec (xmlsectool) ist ein Open-Source-Befehlszeilentool zum Signieren, Verifizieren, Verschlüsseln und Entschlüsseln von XML-Dokumenten. Es wird vom Shibboleth-Projekt gepflegt und arbeitet mit dem PKCS#11-Wrapper von EC zusammen, um die eigentliche Signieroperation an ein Hardware-Sicherheitsmodul zu delegieren.
Warum sollte man eine XML-Datei mit PKCS#11 signieren anstatt mit einem lokalen Keystore?
Ein lokaler Schlüsselspeicher speichert den privaten Schlüssel auf der Festplatte, wo er bei einer Kompromittierung des Dateisystems angreifbar ist. PKCS#11 ermöglicht es xmlsectool, die Signierung an ein Hardware-Sicherheitsmodul oder einen Token zu delegieren, sodass der Schlüssel vollständig in Hardware generiert, gespeichert und verwendet und niemals exportiert wird.
Welche Plattformen werden vom PKCS#11-Wrapper von EC für die XML-Signatur unterstützt?
Diese Anleitung beschreibt die Verwendung von Ubuntu und macOS. Im Gegensatz zu den Anleitungen von EC für OpenSSL und Jarsigner PKCS#11, die auch Windows abdecken, ist die Einrichtung unter Windows derzeit nicht für die XMLSec-Signierung unter Windows dokumentiert.
Welche Java-Version benötigt xmlsectool?
Diese Anleitung verwendet Amazon Corretto 17 unter Ubuntu und macOS. Andere Java-Distributionen und -Versionen werden ebenfalls unterstützt; die aktuelle Kompatibilitätsliste finden Sie auf der Seite „Java-Distributionen“ im Shibboleth-Wiki, bevor Sie von Corretto 17 abweichen.
Wie lautet der genaue xmlsectool-Befehl zum Signieren einer XML-Datei?
Der Kernbefehl lautet: xmlsectool.sh --sign --pkcs11Config pkcs11properties.cfg --keyAlias <key alias> --keyPassword NONE --inFile <input.xml> --outFile <output.xml>Führen Sie das Skript aus dem Ordner aus, der die Konfigurationsdatei Ihres Wrappers enthält. Es ist unter Ubuntu und macOS identisch.
Wie kann ich eine signierte XML-Datei überprüfen?
Führen Sie xmlsectool.sh --verifySignature --pkcs11Config pkcs11properties.cfg --keyAlias <key alias> --keyPassword NONE --inFile <signed.xml>Hierbei wird die Signatur anhand des Dateiinhalts mit derselben PKCS#11-Konfiguration überprüft, die zum Signieren der Datei verwendet wurde.
Ist eine Windows-Konfiguration für die XMLSec + PKCS#11-Signierung verfügbar?
Nicht in diesem Leitfaden. Falls Ihr Workflow Windows erfordert, unterstützt der PKCS#11-Wrapper von EC Windows für andere Tools wie OpenSSL und Jarsigner, jedoch sind die XMLSec-spezifischen Windows-Schritte hier derzeit nicht dokumentiert.
Welche Version von CodeSign Secure enthält aktuell diesen PKCS#11-Wrapper?
CodeSign Secure v3.02, das neben der bestehenden PKCS#11-basierten Tool-Unterstützung auch native LMS- und ML-DSA-Post-Quantum-Signierung, GPG2-Integration und Debian/RPM-Paketsignierung hinzufügte.
Wie viele Daten werden weltweit tatsächlich generiert, und warum ist das für die XML-Signatur relevant?
Laut dem im Juni 2026 veröffentlichten IDC-Bericht „Global DataSphere Forecast, 2026-2030“ wird das weltweite Datenvolumen bis 2030 700 Zettabyte übersteigen. Da immer mehr dieser Daten in XML-basierten Formaten und Integrationen verarbeitet werden, wird die Überprüfung von Authentizität und Integrität in großem Umfang ohne automatisierte, hardwaregestützte Signatur anstelle manueller Vertrauensprüfungen praktisch unmöglich.
- XML-Signierung
- Ubuntu vs. macOS: Ein kurzer Vergleich
- Konfiguration des PKCS#11 Wrappers unter Ubuntu
- Konfiguration des PKCS#11 Wrappers unter MacOS
- Fazit
- Häufig gestellte Fragen
- Was ist XMLSec (xmlsectool) und was bewirkt es?
- Warum sollte man eine XML-Datei mit PKCS#11 signieren anstatt mit einem lokalen Keystore?
- Welche Plattformen werden vom PKCS#11-Wrapper von EC für die XML-Signatur unterstützt?
- Welche Java-Version benötigt xmlsectool?
- Wie lautet der genaue xmlsectool-Befehl zum Signieren einer XML-Datei?
- Wie kann ich eine signierte XML-Datei überprüfen?
- Ist eine Windows-Konfiguration für die XMLSec + PKCS#11-Signierung verfügbar?
- Welche Version von CodeSign Secure enthält aktuell diesen PKCS#11-Wrapper?
- Wie viele Daten werden weltweit tatsächlich generiert, und warum ist das für die XML-Signatur relevant?
