26
Copyright 2007, Computer Sciences Corporation e-tinglysning Teknikgruppemøde 09.02.2007 Bjarne Hansen Business Systems Architect e-mail: [email protected]

e-tinglysning Teknikgruppem øde 09.02.2007

  • Upload
    vondra

  • View
    29

  • Download
    3

Embed Size (px)

DESCRIPTION

e-tinglysning Teknikgruppem øde 09.02.2007. Bjarne Hansen Business Systems Architect e-mail: [email protected]. Indholdsfortegnelse. Digital signering af tinglysningsdokumenter… Vedhæftning af (store) bilag… Præsentationsservices…. Digital signering af tinglysningsdokumenter. - PowerPoint PPT Presentation

Citation preview

Page 1: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation

e-tinglysningTeknikgruppemøde 09.02.2007

Bjarne Hansen

Business Systems Architect

e-mail: [email protected]

Page 2: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 2

Indholdsfortegnelse

Digital signering af tinglysningsdokumenter… Vedhæftning af (store) bilag… Præsentationsservices…

Page 3: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 3

Digital signering af tinglysningsdokumenter

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)

Page 4: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 4

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.

Page 5: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 5

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>

Page 6: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 6

En anmeldelse…

<etl:Anmeldelse> <etl:Tinglysningsdokument> … </etl:Tinglysningsdokument>

<etl:Bilag … /> <etl:Bilag … /> …

<etl:Underskrifter> <ds:Signature … /> <ds:Signature … /> … </etl:Underskrifter></etl:Anmeldelse

Underskrifter for anmeldelsenHer 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.

Selve tinglysningsdokumentetDet 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 anmeldelsenMeta-data og de binære data (base64) for eventuelle bilag til anmeldelsen

Denne del af en anmeldelse er den som udfyldes i overensstemmelse med XML Signature standarden.

Page 7: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 7

En kuvert…

<etl:Kuvert> <etl:Anmeldelse … /> <etl:Anmeldelse … />

… <etl:Følgeseddel … /> … <etl:Underskrifter> <ds:Signature … /> </etl:Underskrifter></etl:Kuvert>

Underskrift(er) af følgeseddelHvis 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.

FølgeseddelFølgeseddel som angiver rækkefølge for behandling, samt forskellige egenskaber ved behandlingen.

AnmeldelserDe enkelte anmeldelser som er indeholdt i kuverten. Hver anmeldelse indeholder i sig selv underskrifter fra forskellige parter.

Denne del af en anmeldelse er den som udfyldes i overensstemmelse med XML Signature standarden.

Page 8: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 8

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

Page 9: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 9

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

Page 10: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 10

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

Page 11: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 11

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

Page 12: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 12

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://...

Page 13: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 13

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>

<Signature> <SignedInfo> <Reference /> </SignedInfo></Signature><Signature> <SignedInfo> <Reference /> </SignedInfo></Signature>

VS.

Forskellige måder at håndtere flere underskrifter på En “samlet” underskrift af flere elementer… En signatur per element…

Page 14: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 14

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)

Page 15: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 15

Sammendrag

Egenskab e-tinglysning anbefaling

CanonicalizationMethod http://www.w3.org/TR/2001/REC-xml-c14n-20010315

SignatureMethod http://www.w3.org/2000/09/xmldsig#rsa-sha1

DigestMethod http://www.w3.org/2000/09/xmldsig#sha1

KeyInfo http://www.w3.org/2000/09/xmldsig#X509Data

Page 16: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 16

Opbygning af <etl:anmeldelse> - step 1

// 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);

Eksempel baseret på brug af Apache XML Security library

Page 17: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 17

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);

Page 18: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 18

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);

Page 19: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 19

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

Page 20: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 20

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?

Page 21: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 21

Vedhæftning af (store) bilag

Bilag i anmeldelsen Kan indlejres i <etl:Anmeldelse> som Base64 og refereres fra

tinglysningsdokumentet Der vil være en grænse for størrelsen af sådanne bilag Grænsen er ikke undersøgt endnu (Mb)…

Refererede bilag XML Signature åbner op for at referere bilag eksternt i forhold til det

dokument som indeholder underskriften Referencen kan være alt muligt – men er ”typisk” på formen http(s)://www.eksempel.dk/dokumenter?docid=12345

Dokumentet indeholder underskreven hash-værdi af det refererede dokument

Ved check af underskrift skal referencen kunne opløses således at det originale dokument er tilgængelig

Det er vigtigt at det originale dokument ”i al evighed” vil kunne refereres via denne reference (ellers vil signaturen ikke kunne verificeres)

Page 22: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 22

Mulige eksterne referencer

”Pull” model Anmelder inkluderer underskrevet reference til dokument på egen web server e-tinglysning henter dokumentet via referencen… Eksempel: http://www.billigeskøder.dk/bilag/sag1614/deklaration.pdf

”Push” model Anmelder beregner hash-værdi Anmelder indsender dokument (bilag) til e-tinglysning e-tinglysning svarer tilbage med reference + hash-værdi Eksempel:https://www.e-tinglysning.dk/bilag/id=D074A20F-8C5B-49b9-9B3F-E484399ADBE3

Anmelder checker hash-værdi Anmelder inkluderer reference i anmeldelsen

”push” modellen foretrækkes, da dokumenter således opbevares hos e-tinglysning (i al evighed) og der er ikke afhængigheder til eksterne systemer i det initielle check af anmeldelsen

Page 23: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 23

Konsekvenser af ”push” modellen

”Opløsning” af reference sker nemt hos e-tinglysning Der laves unik reference til dokumentet som opbevares i tinglysningssystemet e-tinglysning kan altid checke underskrift

Ingen afhængighed af eksterne systemer ved initielt check af anmeldelse Da dokumentet er ”indsendt” på forhånd er der ikke tilgængelighedsproblemer som

time-out etc.

Samme bilag kan ”genbruges” e-tinglysning garanterer at dokumentet forefindes ”i al evighed” – dermed kan

”standard” bilag refereres igen og igen (f.eks. forretningsbetingelser eller lignende)

Sikkerhed(?) Hvis eksterne skal kunne validere signaturen skal de have adgang til bilaget – er det

altid OK?? Eksterne skal implementere ”opløsning” af e-tinglysningsreferencen i deres check af

signaturer…

Page 24: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 24

Præsentationsservices

XSLT transformationer e-tinglysning stiller XSLT transformationer til rådighed Referencer til disse XSLT stylesheets kan hentes via WebService Selve XSLT stylesheet’et kan downloades eller refereres direkte hos e-

tinglysning WebService tillader at der hentes stylesheets til brug for forskellige typer af

præsentation (medier) WebService tillader at der altid hentes nyeste ”standard” stylesheet

XSLT kan bruges af eksterne parter til præsentation Brug XSLT til transformation gennem XML library Vis output via browser eller lignende

Page 25: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation Slide 25

WSRP Portlets

Information fra e-tinglysning kan udstilles som WSRP Portlets Hvad er behovet? Hvordan tænkes Portlets anvendt i eksterne systemer?

Hvilken funktionalitet anvendes?...hvordan tænkes integration med evt. lokalt sagsbehandlingssystem

Granularitet Inkludering af større mænge samlet funktionalitet på egen portal… Portlets med begrænset funktionalitet…

Sikkerhed SSO sammenhæng mellem ekstern portal og e-tinglysning

Kræver OCES login på ekstern portal …eller login i selve portlet skærmbilledet

Sikkerhed og ”federation” er ikke præcist defineret i standarden… Der kan være ”interoperability” problemer… Hvilke konkrete portal produkter anvendes til intra- / internet?

Page 26: e-tinglysning Teknikgruppem øde 09.02.2007

Copyright 2007, Computer Sciences Corporation

Experience. Results.