~~NOTOC~~
====== 8. Digitalni podpisi ======
**Scenariji:** 4 \\
**FFI-funkcije:** ~30 \\
**Status:** ⏳ Načrtovano
Ta kategorija zajema vse scenarije za ustvarjanje in verifikacijo digitalnih podpisov. Podpisovanje dokumentov, podpisovanje kode in časovni žigi z ML-DSA.
----
===== Scenariji =====
^ ID ^ Scenarij ^ Opis ^ Kompleksnost ^ Status ^
| [[.:dokument_signieren|8.1]] | Podpisovanje dokumentov | Podpisovanje PDF, XML, JSON | ⭐⭐⭐ | ⏳ |
| [[.:code_signieren|8.2]] | Podpisovanje kode | Izvršljive datoteke, DLL-ji, paketi | ⭐⭐⭐ | ⏳ |
| [[.:timestamp|8.3]] | Časovni žig | Zaupanja vreden časovni žig (RFC 3161) | ⭐⭐⭐⭐ | ⏳ |
| [[.:signatur_verifizieren|8.4]] | Verifikacija podpisa | Preverjanje podpisov | ⭐⭐ | ⏳ |
----
===== Potek dela pri podpisovanju =====
flowchart LR
subgraph SIGN["Podpisovanje"]
DOC[Dokument/Koda]
HASH[Izračun zgoščene vrednosti]
SIG[Ustvarjanje podpisa]
end
subgraph VERIFY["Verifikacija"]
VHASH[Izračun zgoščene vrednosti]
VSIG[Preverjanje podpisa]
VCERT[Validacija certifikata]
end
DOC --> HASH --> SIG
DOC --> VHASH
SIG --> VSIG
VSIG --> VCERT
style SIG fill:#e8f5e9
style VCERT fill:#e3f2fd
----
===== Podpisni algoritmi =====
^ Način ^ Algoritem ^ Dolžina podpisa ^ Standard ^
| **PostQuantum** | ML-DSA-65 | 3309 bajtov | NIST FIPS 204 |
| **Hibridni** | ECDSA P-384 + ML-DSA-65 | ~3400 bajtov | Kompozitni podpisi |
| **Klasični** | ECDSA P-384 | 96 bajtov | NIST FIPS 186-5 |
**Priporočilo:** Za dolgoročno arhiviranje uporabite hibridne podpise. Oba podpisa morata biti prelomljena.
----
===== Formati podpisov =====
^ Format ^ Uporaba ^ Vsebuje ^
| **CMS/PKCS#7** | Splošno, e-pošta | Podpis + certifikat + opcijski časovni žig |
| **XML-DSig** | SOAP, SAML | Podpis v XML strukturi |
| **JWS** | REST API-ji, JWT | JSON Web Signature |
| **Authenticode** | Windows PE | Podpisovanje kode za EXE/DLL |
----
===== Panožne zahteve =====
^ Panoga ^ Tip podpisa ^ Zahteve ^
| **Zdravstvo** | Kvalificiran podpis (QES) | Skladen z eIDAS, gematik |
| **Avtomobilska industrija** | Podpisovanje kode | UNECE R156, Secure Boot |
| **Energetika** | Dokument + časovni žig | Revizijske zahteve, NIS2 |
| **Industrija 4.0** | Podpisovanje strojne programske opreme | IEC 62443 |
----
===== Hiter začetek s kodo =====
==== Podpisovanje dokumenta ====
using WvdS.Security.Cryptography.Signatures.Extensions.PQ;
// Nalaganje podpisnega ključa
var signingKey = ctx.LoadPrivateKey("signing.key.pem", password);
var signingCert = ctx.LoadCertificate("signing.crt.pem");
// Podpisovanje dokumenta (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);
==== Verifikacija podpisa ====
// Nalaganje podpisa
byte[] signature = File.ReadAllBytes("vertrag.pdf.p7s");
byte[] document = File.ReadAllBytes("vertrag.pdf");
// Verifikacija
var result = ctx.VerifySignature(
data: document,
signature: signature,
trustStore: trustStore
);
if (result.IsValid)
{
Console.WriteLine($"Podpisal: {result.SignerCertificate.Subject}");
Console.WriteLine($"Časovni žig: {result.Timestamp}");
}
----
===== Povezane kategorije =====
^ Kategorija ^ Povezava ^
| [[.:zertifikate:start|3. Izdaja certifikatov]] | Certifikati za podpisovanje kode |
| [[.:validierung:start|5. Validacija]] | Validacija certifikata podpisa |
| [[.:authentifizierung:start|9. Avtentikacija]] | Podpis kot metoda avtentikacije |
----
<< [[sl:int:pqcrypt:szenarien:verschluesselung:start|← 7. Šifriranje]] | [[sl:int:pqcrypt:szenarien:start|↑ Scenariji]] | [[.:authentifizierung:start|9. Avtentikacija →]] >>
----
//Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional//
{{tag>kategorija podpisi podpisovanje cms časovni-žig}}