e-tinglysning Digital signering



Relaterede dokumenter
e-tinglysningsprojektet

e-tinglysning Sektorstandardisering 12. april 2007

Den Gode Webservice Bilag Version

Specifikationsdokument for OCSP

E-BUSINESS SOLUTIONS FROM CSC. 4 Systemgrænseflader. 4 Systemgrænseflader

Digitaliseringsstyrelsen

Specifikationsdokument for OCSP

Snitfladebeskrivelse mellem Mit Sygefravær og KSD

1.1 Formål Webservicen gør det muligt for eksterne parter, at fremsøge informationer om elevers fravær.

System til System grænseflader

Kald af PingService via SOAPUI

STS Designdokument. STS Designdokument

Specifikationsdokument for OCSP

E-BUSINESS SOLUTIONS FROM CSC! "

DataHub Forbrugeradgangsløsning Spørgsmål og svar

Den Gode Webservice. En fælles webserviceprofil for sundhedsvæsenet Version Den Gode Webservice

Ivan Overgaard 11/29/2012

DAVAR Omdøbt til SagDokumentFormat. Attention er skilt ud i et selvstændigt format, AttentionFormat.

Security Token Service. Snitflade OIO WS Trust

DKAL Snitflader REST Register

OIOUBL Guideline. OIOUBL Guideline

DataHub Forbrugeradgangsløsning NemID Quick Guide

DIGITAL SIGNATUR l OUTLOOK 2010

Finanstilsynets indberetningssystem. Vejledning til indsendelse af xml-filer via sikker e- mail (signeret og krypteret )

Det Danske Vaccinationsregister. IDWS - Snitfladebeskrivelse. Version 1.4.0

Finanstilsynets indberetningssystem. FAQ Ofte stillede spørgsmål

Digitaliseringsstyrelsen

Nemhandel infrastruktur. Morten Hougesen Christian Uldall Pedersen 8. April 2010

Typografidefinition: Typografi1: Skrifttype: 10 pkt, (intet) DKAL Snitflader REST Afhentningssystem

FESD standardisering Udveksling Version 1.0

Ansøgeren klikker på søg videregående uddannelse

Brugervejledning. Optagelse.dk. Brugeroprettelse Første login for medarbejdere

BESTILLING AF NEMID. For at bestille ny NemID vælger du Vælg Bestil NemID medarbejdersignatur.

Generelt Udtræk leveres som Zip-filer indeholdende udtræk i det format, som man som kunde har valgt.

Guide til kravspecifikation

Digital post Snitflader Bilag A2 - REST Register Version 6.3

OBJECT IDENTIFICERES OID PHMR

OS2faktor. Windows Credential Providers. Version: Date: Author: BSG

FORSLAG TIL MASSEAFSENDELSE

Det Fælles Medicinkort. IDWS - Snitfladebeskrivelse. Version

Digital Signatur Infrastrukturen til digital signatur

SOSI STS Testscenarier

NemHandel infrastruktur. Lars Houe Heinrich Clausen 4. November 2010

Brugeroprettelse Første login. Brugervejledning - Optagelse.dk

Indberetning af afregninger teknik

DeIC tilbyder servercertifikater i et samarbejde med TERENA og COMODO

Digital post er ikke det samme som almindelig . Digital post er modsat s en sikker digital forsendelsesform.

Notat om metadata om grunddata

Certifikatpolitik for NemLog-in

Nets - Medarbejder Signatur

Sikring af netværkskommunikation

Konsekvenser Ændringen bør ikke have de store konsekvenser for brugen af schematronen.

ELEKTRONISK INDBERETNING BØRNEDATABASEN VIA DGWS 13/ VERSION 1.02

Termer og begreber i NemID

/05/2013 Tilføjet dokumentation af bvn input for GetEngagementDetailed

Du får adgang til din uddannelsesplan og ansøgning i Optagelse.dk ved at logge ind med dit UNI-login fra forsiden af Optagelse.dk. Se figur 1.

Termer og begreber i NemID

Tilføjelse af administrator for myndighed

Digital post Integration for virksomheder Via sikker og REST Version 6.4

NemID JS Developer site vejledning

Udgivelsen er beskyttet af Creative Commons license, Navngivning 2.5


Vejledning. til. RA-administrator

GLOBETEAM. Danmarks Miljøportal (DMP) Vejledning til fagsystemejere omkring tilkobling af Java Metrobaseret. Version 1.2

EG Data Inform. Byggebasen. WCF og webservices. Jens Karsø

Public Key Crypto & Gnu Privacy Guard & CaCert

DKAL Snitflader Afsendelse og modtagelse af meddelelser via S/MIME

SOSI Gateway Komponenten (SOSI GW)

AuthorizationCodeService

På nedenstående billede skal du finde den figur som optræder nøjagtig 3 gange.

e-boks mobilløsninger, tovejskommunikation og øvrige produktnyheder

Digital post Snitflader Bilag B - Afsendelse og modtagelse af meddelelser via S/MIME Version 6.3

Kapitel 1. Formular til vælgererklæringer. 1. Vælgererklæringer skal afgives på en formular, der er udformet af social- og indenrigsministeren.

ADGANGSSTYRING. 26. Februar 2019

Digitale Videnssystemer: Notater

Anbefaling til unik Id-nøgle

Vejledning til digital indberetning til Energitilsynet

3 Tryk på Besvar. Trin for trin 3 Digital underskrift - Fuldmagt

Guide til integration med NemLog-in / Signering

Vejledning til digital underskrift af lejekontrakt

Brugervejledning. Optagelse.dk Vejledning til forældre til elever i grundskolen

OFFENTLIGT KMD A/S EJ 0.0 NUMMERERET SLIDE 1 CCM USER GROUP KMD einvoicing. v/ Ole Sixhøi

Brugermanual til udfyldelse af formularen Indberetning af elsalg og elpriser for erhvervskunder til brug for Eurostat.

Digital Signatur OCES en fælles offentlig certifikat-standard

Transkript:

e-tinglysning Digital signering Søren Gjesse Business Systems Architect e-mail: sgjesse@csc.com Bjarne Hansen Business Systems Architect e-mail: bhansen4@csc.com

Indledning Digital Signering i e-tinglysning XML Signature standarden Elementer i en anmeldelse (<etl:anmeldelse> </etl:anmeldelse>) Elementer i en kuvert (<etl:kuvert> </etl:kuvert>) Principper for brug af XML Signature (i e-tinglysning) Kanonisering Signatur metode Referencer KeyInfo Eksempel: Opbygning og underskrift af anmeldelse (Java) Slide 2

XML-Signature på én side (http://www.w3.org/tr/xmldsig-core/) <Signature ID?> <SignedInfo> <CanonicalizationMethod/> <SignatureMethod/> (<Reference URI? > <Transforms> <DigestMethod> <DigestValue> </Reference>)+ </SignedInfo> <SignatureValue> (<KeyInfo>)? (<Object ID?>)* </Signature> Det man rent faktisk underskriver I hovedsagen en beskrivelse af hvordan underskriften er foretaget, samt en række referencer til det som underskrives, f.eks. et tinglysningsdokument. Referencen indeholder digest af det som refereres for at sikre at det refererede ikke kan ændres efterfølgende. Referencerne kan pege på XML elementer i <Object> tag et, XML elementer andre steder i dokumentet eller ressourcer som ikke er inkluderet i dokumentet, men som kan nås via f.eks. HTTP. Den digitale signatur Den digitale signatur af <SignedInfo> elementet. Dette er den egentlige underskrift. Det man har underskrevet med Der er forskellige muligheder i XML-Signature for at underskrive et dokument i e-tinglysning vil dette være et X509 Certificate. Data som underskrives Her kan være de data som underskrives (digest) eller f.eks. ekstra attributter som vedrører underskriften, som f.eks. tidsstempel eller lignende. Slide 3

XML Signature eksempel Eksempel på XML Signature (taget fra XML Signature standarden) <Signature Id="MyFirstSignature" xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-sha1"/> <Reference URI="http://www.w3.org/TR/2000/REC-xhtml1-20000126/"> <Transforms> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>j6lwx3rvEPO0vKtMup4NbeVu8nk=</DigestValue> </Reference> </SignedInfo> <SignatureValue>MC0CFFrVLtRlk=...</SignatureValue> <KeyInfo> <KeyValue> <DSAKeyValue> <P>...</P><Q>...</Q><G>...</G><Y>...</Y> </DSAKeyValue> </KeyValue> </KeyInfo> </Signature> Slide 4

En anmeldelse <etl:anmeldelse> <etl:tinglysningsdokument> </etl:tinglysningsdokument> <etl:bilag /> <etl:bilag /> <etl:underskrifter> <ds:signature /> <ds:signature /> </etl:underskrifter> </etl:anmeldelse Selve tinglysningsdokumentet Det tinglysningsdokument som anmeldelsen vedrører. Tinglysningsdokumentet følger et fastlagt skema. På grund af digest i <xs:reference> elementet kan tinglysningsdokumentet ikke ændres efter første underskrift (ude at det opdages) Bilag til anmeldelsen Meta-data og de binære data (base64) for eventuelle bilag til anmeldelsen Underskrifter for anmeldelsen Her findes en eller flere underskrifter (XML-Signature), som underskriver Tinglysningsdokumentet samt evt. bilag. Hvad der konkret underskrives udpeges gennem referencer (<xs:reference>) i <xs:signatureinfo> elementet. Antallet af underskrifter i <etl:underskrifter> kan udvides uden at den øvrige del af dokumentet berøres. Således kan en anmeldelse underskrives af flere parter inden det sendes til tinglysning. Denne del af en anmeldelse er den som udfyldes i overensstemmelse med XML Signature standarden. Slide 5

En kuvert <etl:kuvert> <etl:anmeldelse /> <etl:anmeldelse /> <etl:følgeseddel /> <etl:underskrifter> <ds:signature /> </etl:underskrifter> </etl:kuvert> Anmeldelser De enkelte anmeldelser som er indeholdt i kuverten. Hver anmeldelse indeholder i sig selv underskrifter fra forskellige parter. Følgeseddel Følgeseddel som angiver rækkefølge for behandling, samt forskellige egenskaber ved behandlingen. Underskrift(er) af følgeseddel Hvis det er nødvendigt kan vi her have underskrifter af selve følgesedlen. Underskriften af følgesedlen er en kvittering for at den som har indsendt kuverten ønsker de anmeldelser som forefindes I kuverten behandlet som specificeret i følgesedlen. Der er således ikke (nødvendigvis) nogen sammenhæng mellem underskriften af følgesedlen og underskrifterne på anmeldelsen. Denne del af en anmeldelse er den som udfyldes i overensstemmelse med XML Signature standarden. Slide 6

Principper for brug af XML Signature XML Signature er en generel standard som sætter vide rammer for digital signatur af XML dokumenter/elementer Metode (algoritme) til dannelse af kanonisk repræsentation (canonicalization) af <SignatureInfo> elementet Metode (algoritme) til underskrift Transformationer på data inden der beregnes digest Digest algoritme Hvilken slags KeyInfo (f.eks. certifikat) der bruges ved underskrift Formålet med at fastsætte principper for anvendelse af XML Signature i forbindelse med e-tinglysning er at begrænse muligheder til en fornuftig delmængde som understøtter det behov der er i forbindelse med e-tinglysning gennem denne begrænsningen at gøre det mere enkelt at udvikle og anvende digital signatur i forbindelse med e-tinglysning Slide 7

Kanonisering Angivelse af algoritme til kanonisering af <SignedInfo> elementet <CanonicalizationMetod Algorithm= /> Der findes to algoritmer som udgangspunkt i XML signature, en som medtager XML kommentarer og en som udelader XML kommentarer Der er beskrevet 2 algoritmer i XML Signature standarden Kanonisk XML uden kommentarer (required) http://www.w3.org/tr/2001/rec-xml-c14n-20010315 Kanonisk XML med kommentarer (optional) http://www.w3.org/tr/2001/rec-xml-c14n-20010315#withcomments e-tinglysning anbefaling Kanonisering uden kommentarer http://www.w3.org/tr/2001/rec-xml-c14n-20010315 Slide 8

Signatur metode Algoritme for signering af <SignedInfo> elementet <SignatureMethod Algorithm= /> Der er beskrevet 2 algoritmer i XML Signature standarden DSA med SHA1 (required) http://www.w3.org/2000/09/xmldsig#dsa-sha1 RSA med SHA1 (optional) http://www.w3.org/2000/09/xmldsig#rsa-sha1 Ifølge standarden skal DSA understøttes, mens RSA er optionel, men da de nøgler som er indeholdt i OCES certifikaterne er RSA nøgler anvendes RSA algoritmen i forbindelse med signering i e-tinglysning e-tinglysning anbefaling Algorithm = http://www.w3.org/2000/09/xmldsig#rsa-sha1 Slide 9

Referencer Elementet <SignedInfo> kan indeholde et antal referencer <Reference> til elementer / data som underskrives En reference er kendetegnet ved URI Udpeger de data der skal med i underskriften Transforms Angiver transformeringer som skal udføres på data inden hash funktionen beregnes på data DigestMethod Angivelse af den hash algoritme som anvendes SHA1 http://www.w3.org/2000/09/xmldsig#sha1 (required) DigestValue Den beregnede værdi fra hash funktion e-tinglysning anbefaling URI Se efterfølgende sider Transforms Det foreslås at der kun tillades Canonicalization og Base64. DigestMethod SHA1 Slide 10

Referencer (URI) Eksempler på URI er http://example.com/data/test.xml Reference til en ekstern data strøm, ie. man kan underskrive noget som ikke er med i selve dokumentet, f.eks. et bilag. (tom streng) Refererer til hele dokumentet som signaturen er indeholdt i #dokument Reference til det XML element som har ID= dokument XPointer/XPath udtryk, f.eks. #xpointer(id( someid )) #xpointer(id( hæftelse )/child::hovedstol) URI en kan således udpeges lokale eller eksterne dokumenter/fragmenter e-tinglysning anbefaling Brug af #en-id-på-et-element til at udpege element i anmeldelsen Det overvejes hvorvidt det kan tillades at bruge referencer til eksterne ressourcer, i.e. http://... Slide 11

Flere referencer vs. flere signaturer Underskrift <SignedInfo> er det som rent teknisk underskrives <SignedInfo> indeholder referencer <Reference> til elementer, der er en del af underskriften Hver <Reference> indeholder hash af indhold <Signature> <SignedInfo> <Reference /> <Reference /> </SignedInfo> </Signature> VS. <Signature> <SignedInfo> <Reference /> </SignedInfo> </Signature> <Signature> <SignedInfo> <Reference /> </SignedInfo> </Signature> Forskellige måder at håndtere flere underskrifter på En samlet underskrift af flere elementer En signatur per element Slide 12

KeyInfo Angiver den nøglering som er anvendt ved underskrift af dokumentet http://www.w3.org/2000/09/xmldsig#dsakeyvalue http://www.w3.org/2000/09/xmldsig#rsakeyvalue http://www.w3.org/2000/09/xmldsig#x509data http://www.w3.org/2000/09/xmldsig#pgpdata http://www.w3.org/2000/09/xmldsig#spkidata http://www.w3.org/2000/09/xmldsig#mgmtdata e-tinglysning anbefaling Der anvendes X509Data, da vi ønsker underskrift med OCES certifikat (generelt X509 certifikat) Slide 13

Sammendrag Egenskab CanonicalizationMethod SignatureMethod DigestMethod KeyInfo e-tinglysning anbefaling http://www.w3.org/tr/2001/rec-xml-c14n-20010315 http://www.w3.org/2000/09/xmldsig#rsa-sha1 http://www.w3.org/2000/09/xmldsig#sha1 http://www.w3.org/2000/09/xmldsig#x509data Slide 14

Opbygning af <etl:anmeldelse> - step 1 Eksempel baseret på brug af Apache XML Security library // Opret nyt XML dokument dbf = DocumentBuilderFactory.newInstance(); dbf.setnamespaceaware(true); db = dbf.newdocumentbuilder(); doc = db.newdocument(); // Tilføj XML rod element <etl:anmeldelse> anmeldelse = doc.createelementns("http://www.tinglysning.dk/schema/2007/01", "etl:anmeldelse"); anmeldelse.setattributens(constants.namespacespecns,"xmlns:etl", ETLNS); doc.appendchild(anmeldelse); // Tilføj XML element <etl:tinglysningsdokument> tinglysningsdokument = doc.createelement("etl:tinglysningsdokument"); tinglysningsdokument.setattribute("id", "dokument"); tinglysningsdokument.setidattribute("id", true); tinglysningsdokument.appendchild(doc.createtextnode("...")); anmeldelse.appendchild(tinglysningsdokument); // Tilføj XML element <etl:bilag> for bilag nr. 1 bilag = doc.createelement("etl:bilag"); bilag.setattribute("id", "bilag1"); bilag.setidattribute("id", true); bilag.appendchild(doc.createtextnode("...")); anmeldelse.appendchild(bilag); Slide 15

Opbygning af <etl:anmeldelse> - step 2 // Tilføj XML element <etl:underskrifter> underskrifter = doc.createelement("etl:underskrifter"); underskrifter.setattribute("id", "underskrifter"); underskrifter.setidattribute("id", true); anmeldelse.appendchild(bilag); // Opret XML Signature element (<ds:signature>) og tilføj den til elementet <etl:underskrifter> signature = new XMLSignature(doc, baseuri, XMLSignature.ALGO_ID_SIGNATURE_DSA); signature.getsignedinfo().addresourceresolver(new ResolverFragment()); underskrifter.appendchild(signature.getelement()); // Definer transformationer for <ds:reference> elementer transforms = new Transforms(doc); transforms.addtransform(transforms.transform_c14n_omit_comments); // Tilføj reference (<ds:reference>) for tinglysningsdokumentet og bilag signature.adddocument("#dokument", transforms, Constants.ALGO_ID_DIGEST_SHA1); signature.adddocument("#bilag1", transforms, Constants.ALGO_ID_DIGEST_SHA1); signature.adddocument("#bilag1", transforms, Constants.ALGO_ID_DIGEST_SHA1); Slide 16

Opbygning af <etl:anmeldelse> - step 3 // Indlæs Java keystore ks = KeyStore.getInstance(keystoreType); fis = new FileInputStream(keystoreFile); ks.load(fis, keystorepass.tochararray()); // Get private key for signing privatekey = (PrivateKey) ks.getkey(privatekeyalias, privatekeypass.tochararray()); // Tilføj certifikatet til <ds:keyinfo> elementet certificate = (X509Certificate) ks.getcertificate(certificatealias); signature.addkeyinfo(certificate); // Underskriv tinglysningsdokument og bilag signature.sign(privatekey); Slide 17

Referencer Standarder X.509 Certificate (http://www.ietf.org/rfc/rfc2459.txt) XML Signature (http://www.w3.org/tr/xmldsig-core/) Java Apache XML Security (http://xml.apache.org/security/).net http://www.c-sharpcorner.com/uploadfile/lsitaraman/xmlsignatures11232005051727am/xmlsignatures.aspx http://msdn2.microsoft.com/en-us/library/ms229950(vs.80).aspx Slide 18

Udestående Features i XML Signature som er under overvejelse Brug af<manifest> som samlemappe for referencer <SignatureProperties>? Har vi meta-data som vi gerne vil have embedded i signaturen? Hvordan ses en evt. anvendelse af eksterne referencer (HTTP) i <Reference> elementer? Vil vi tillade generelle HTTP referencer?...og i så fald hviken betydning har det?...og hvad med sikkerheden? Slide 19

Experience. Results.