XML-signering är en process som innebär att en digital signatur läggs till i ett XML-dokument för att säkerställa dess integritet, äkthet och obestridlighet. Genom att tillämpa en digital signatur på ett XML-dokument intygar signeraren informationens äkthet och integritet, vilket gör det möjligt att verifiera dokumentets ursprung och säkerställa att det inte har ändrats under transport eller lagring.
Den digitala signaturen skapas med hjälp av asymmetriska krypteringstekniker , vanligtvis baserade på PKI (public key infrastructure) . Signeraren genererar en privat nyckel som förvaras säkert och en motsvarande offentlig nyckel som kan delas med andra. Den privata nyckeln används för att kryptera en hash eller digest av XML-dokumentet, vilket skapar den digitala signaturen. Den krypterade digesten fungerar som en unik representation av informationen och läggs till i XML-dokumentet.
XML-signering är avgörande inom olika områden, inklusive e-handel, elektronisk fakturering, leveranskedjehantering och myndighetsapplikationer. Det möjliggör säker elektronisk dokumentutbyte, fastställer datas äkthet och säkerställer obestridlighet, vilket innebär att undertecknaren senare inte kan förneka sin inblandning eller dokumentets integritet.
En översikt över XML-signeringsprocessen:
- En passande kryptografisk algoritm, Såsom RSA, DSA, eller ECDSA, väljs av XML-signeraren för att skapa den digitala signaturen.
- XML-dokumentet som ska signeras förbereds. Detta innebär att säkerställa att dokumentet följer den erforderliga XML-syntaxen och -strukturen.
- XML-kanonisering tillämpas på dokumentet, vilket säkerställer att eventuella variationer i blanksteg, attributordning eller namnrymdsprefix inte påverkar signaturens giltighet. Kanonisering producerar en standardiserad form av XML-dokumentet för signering.
- En sammanfattning, även känd som en hash, beräknas över det kanoniserade XML-dokumentet. Sammanfattningen fungerar som ett unikt fingeravtryck av dokumentet och används i signeringsprocessen.
- Sammanfattningen krypteras med undertecknarens privata nyckel, vilket skapar den digitala signaturen. Den privata nyckeln förvaras säkert av undertecknaren och ska inte vara tillgänglig för obehöriga parter.
- Den digitala signaturen infogas i XML-dokumentet, vanligtvis som ett ytterligare element eller attribut. Detta gör att signaturen kan associeras med de signerade uppgifterna.
Encryption Consulting har en kodsigneringslösning , ” CodeSign Secure ”, som kan hjälpa dig med manipulationssäker förvaring av nycklar och fullständig insyn och kontroll över kodsigneringsaktiviteter. De privata nycklarna till kodsigneringscertifikatet kan lagras i en HSM för att eliminera riskerna med stulna, skadade eller missbrukade nycklar. Inom denna lösning erbjuder vi ett verktyg, XML Signer, som kan signera XML-filer. Stegen nedan hjälper dig att enkelt använda vårt verktyg.
Förutsättning
För att kunna använda XML Signer måste användarna först ange miljövariabler för SSL Client Authentication Certificate- sökvägen och certifikatlösenordet. Fråga krypteringskonsultteamet om du inte redan har det.
Obs! SSL-klientautentiseringscertifikatet ska vara i PKCS12-formatet (.p12 eller .pfx)
Kör följande kommandon för att ställa in miljövariabler:
Mac eller Linux
$ export SIGNER_SSL_CERT_PFX=path_to_ssl_certificate
$ export SIGNER_SSL_CERT_PFX_PASS=your_client_certificate_password
Windows
$ set SIGNER_SSL_CERT_PFX=path_to_ssl_certificate
$ set SIGNER_SSL_CERT_PFX_PASS=your_client_certificate_password
Hur använder man XML Signer-verktyget?
Hämta versionen av XML Signer Utility
Kör kommandot nedan
Mac eller Linux
$./xmlsigner -v
Windows
$ xmlsigner.exe -v
Få hjälp av XML Signer Utility
Kör kommandot nedan
Mac eller Linux
$./xmlsigner -h or $./xmlsigner --help
Windows
$ xmlsigner.exe -h or $ xmlsigner.exe --help
Signera ett XML-dokument
Signer-verktyget genererar det signerade dokumentet med samma namn och postfixet "_signed"
Använd underkommandot signera för att signera ett XML-dokument
./xmlsigner -S <file_to_be_signed> -u <user_name> -k <key_name> -a <algorithm> -c <key_certificate> -q
-S : XML-dokument som ska signeras.
-u : Användarnamn. Ett användarnamn på Encryption Consulting-servern. Fråga Encryption Consulting-teamet om du inte redan har det.
-k : Nyckel-/certifikatnamn för signering/verifiering tillhandahållet av Encryption Consulting-servern. Fråga Encryption Consulting-teamet om du inte redan har det.
-a : Algoritm som ska användas för signering. Ett av följande alternativ bör användas:
- SHA224
- SHA256 (Standard)
- SHA384
- SHA512
Om algoritmen inte anges kommer SHA256 att användas som standard.
-c : Certifikatfil tillhandahållen av Encryption Consulting-servern.
-q : Kör tyst.
-h : Visa hjälp
Exempel
Mac eller Linux
./xmlsigner -h
./xmlsigner -S file.xml -u admin -k SignCertificateName -a SHA256 -c
<path /to/certificate>
Windows
xmlsigner.exe -h
xmlsigner.exe -S file.xml -u admin -k SignCertificateName -a SHA256 -c
<path /to/certificate>
Slutsats
XML-signering säkerställer integriteten, äktheten och oavvisligheten hos XML-dokument. Den lägger till en digital signatur som verifierar dokumentets ursprung och förhindrar manipulation. XML-signering är avgörande för säkert datautbyte, främjar förtroende för elektroniska transaktioner och tillförlitlig kommunikation. Den används inom e-handel, fakturering, leveranskedjehantering med mera. Genom att använda verktyg och bibliotek förenklas XML-signeringsprocessen och kan integreras i olika miljöer. För att få tillgång till vårt verktyg som kan hjälpa dig med XML-signeringsprocessen, vänligen kontakta oss på [email protected]
