8. Digitale Signaturen
Szenarien: 4
FFI-Funktionen: ~30
Status: ⏳ Geplant
Diese Kategorie umfasst alle Szenarien zur Erstellung und Verifikation digitaler Signaturen. Dokument-Signierung, Code-Signing und Zeitstempel mit ML-DSA.
Szenarien
| ID | Szenario | Beschreibung | Komplexität | Status |
|---|---|---|---|---|
| 8.1 | Dokument signieren | PDF, XML, JSON signieren | ⭐⭐⭐ | ⏳ |
| 8.2 | Code signieren | Executables, DLLs, Packages | ⭐⭐⭐ | ⏳ |
| 8.3 | Zeitstempel | Trusted Timestamp (RFC 3161) | ⭐⭐⭐⭐ | ⏳ |
| 8.4 | Signatur verifizieren | Signaturen prüfen | ⭐⭐ | ⏳ |
Signatur-Workflow
flowchart LR
subgraph SIGN["✍️ Signieren"]
DOC[Dokument/Code]
HASH[Hash berechnen]
SIG[Signatur erstellen]
end
subgraph VERIFY["✅ Verifizieren"]
VHASH[Hash berechnen]
VSIG[Signatur prüfen]
VCERT[Zertifikat validieren]
end
DOC --> HASH --> SIG
DOC --> VHASH
SIG --> VSIG
VSIG --> VCERT
style SIG fill:#e8f5e9
style VCERT fill:#e3f2fd
Signatur-Algorithmen
| Modus | Algorithmus | Signaturlänge | Standard |
|---|---|---|---|
| PostQuantum | ML-DSA-65 | 3309 Bytes | NIST FIPS 204 |
| Hybrid | ECDSA P-384 + ML-DSA-65 | ~3400 Bytes | Composite Signatures |
| Classic | ECDSA P-384 | 96 Bytes | NIST FIPS 186-5 |
Empfehlung: Für Langzeit-Archivierung Hybrid-Signaturen verwenden. Beide Signaturen müssen gebrochen werden.
Signaturformate
| Format | Anwendung | Enthält |
|---|---|---|
| CMS/PKCS#7 | Allgemein, E-Mail | Signatur + Zertifikat + optionale Timestamp |
| XML-DSig | SOAP, SAML | Signatur in XML-Struktur |
| JWS | REST APIs, JWT | JSON Web Signature |
| Authenticode | Windows PE | Code-Signing für EXE/DLL |
Branchenspezifische Anforderungen
| Branche | Signaturtyp | Anforderungen |
|---|---|---|
| Healthcare | Qualifizierte Signatur (QES) | eIDAS-konform, gematik |
| Automotive | Code-Signing | UNECE R156, Secure Boot |
| Energie | Dokument + Timestamp | Audit-Anforderungen, NIS2 |
| Industrie 4.0 | Firmware-Signing | IEC 62443 |
Code-Schnellstart
Dokument signieren
using WvdS.Security.Cryptography.Signatures.Extensions.PQ; // Signaturschlüssel laden var signingKey = ctx.LoadPrivateKey("signing.key.pem", password); var signingCert = ctx.LoadCertificate("signing.crt.pem"); // Dokument signieren (CMS/PKCS#7) byte[] document = File.ReadAllBytes("vertrag.pdf"); var signature = ctx.SignData( data: document, privateKey: signingKey, certificate: signingCert, mode: CryptoMode.Hybrid, options: new SignatureOptions { IncludeCertificate = true, AddTimestamp = true, TimestampServer = "http://timestamp.example.com" } ); File.WriteAllBytes("vertrag.pdf.p7s", signature);
Signatur verifizieren
// Signatur laden byte[] signature = File.ReadAllBytes("vertrag.pdf.p7s"); byte[] document = File.ReadAllBytes("vertrag.pdf"); // Verifizieren var result = ctx.VerifySignature( data: document, signature: signature, trustStore: trustStore ); if (result.IsValid) { Console.WriteLine($"Signiert von: {result.SignerCertificate.Subject}"); Console.WriteLine($"Zeitstempel: {result.Timestamp}"); }
Verwandte Kategorien
| Kategorie | Beziehung |
|---|---|
| 3. Zertifikate ausstellen | Code-Signing-Zertifikate |
| 5. Validierung | Signaturzertifikat validieren |
| 9. Authentifizierung | Signatur als Authentifizierungsmethode |
« ← 7. Verschlüsselung | ↑ Szenarien | 9. Authentifizierung → »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional
Zuletzt geändert: den 29.01.2026 um 15:13