tokenauthenticatie en xml signature in detail

33
Tokenauthenticatie & XML Signature in detail

Upload: marc-de-graauw

Post on 03-Jul-2015

595 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Tokenauthenticatie en xml signature in detail

Tokenauthenticatie&

XML Signaturein detail

Page 2: Tokenauthenticatie en xml signature in detail

Tokenauthenticatie

signedData SignedInfo SignatureValue

Certificaat

RSA / SHAsig maken

Bericht maken

SOAP bericht

QURX_EX990011NL

token makenSignedInfomaken

smartcard metprivate key

Page 3: Tokenauthenticatie en xml signature in detail

Transformatie XML 2 SignedData

Verstrekkings-Lijstquery

signedData.xsl

signedData

QURX_IN990111NL_01.xml

QURX_IN990111NL_01_signedData.xml

Page 4: Tokenauthenticatie en xml signature in detail

VerstrekkingsLijstquery

Page 5: Tokenauthenticatie en xml signature in detail

signedData

• X.509 Strong Authentication– message id

• nonce• unieke indentificatie van bericht• (if duplicate removal has already taken place)

– notBefore & notAfter• time to live• security semantics can expire• time to store & check nonce

– addressedParty• replay against other receivers

• Koppeling met bericht– BSN

• voor patiëntgerelateerde berichten

– Trigger Event Id• versieonafhankelijk, itt. InteractionId

Page 6: Tokenauthenticatie en xml signature in detail

signedData.xml (pretty print)

Page 7: Tokenauthenticatie en xml signature in detail

Token versus bestand

Page 8: Tokenauthenticatie en xml signature in detail

Whitespace eruit

signedData

remove-whitespace-between-elements.xsl

signedData QURX_IN990111NL_01_signedData.xml

QURX_IN990111NL_01_signedData.xml

Page 9: Tokenauthenticatie en xml signature in detail

Exclusive Canonicalization

signedData

excc14n(Oxygen gebruikt)

signedDataexcc14n

signedData_ excc14n.xml

QURX_IN990111NL_01_signedData.xml

Page 10: Tokenauthenticatie en xml signature in detail

Exclusive Canonicalization

Page 11: Tokenauthenticatie en xml signature in detail

Exclusive Canonicalization

• Dubbele quotes ipv. enkele

• Namespace declaraties vóór attributen

• Namespaces alfabetisch rangschikken

• Linefeed, geen carriage return of CR/LF

• Geen Byte Order Mark

• UTF-8

Page 12: Tokenauthenticatie en xml signature in detail

Signed Info element

signedDataexcc14n

Base64

SignedInfo

signedData_ excc14n.xml

SignedInfotemplate

maken SignedInfo

SignedInfo.xml

SHA1 hash

bits

160 bits

karakters

wsu Id

Page 13: Tokenauthenticatie en xml signature in detail

SHA: Cryptographic hashWikipedia: A cryptographic hash function is a deterministic procedure that

takes an arbitrary block of data and returns a fixed-size bit string, the (cryptographic) hash value, such that an accidental or intentional change to

the data will change the hash value.

Page 14: Tokenauthenticatie en xml signature in detail

SHA

• SHA1 ... SHA256

– 1995: SHA-1 NSA

– 2005: zwaktes in SHA-1 ontdekt

– 2001: SHA-2 (225, 256, 384, 512)

– 2008 – 12: SHA-3, open competitie

• SHA-1

– input: message maximum (264 − 1) bits

– output: 160 bits

Page 15: Tokenauthenticatie en xml signature in detail

Base 64

• UTF-8: niet alle octets zijn toegestaan!

• Ergo: binaire data kunnen niet zomaar in XML / UTF-8

• Oplossing: bits -> karakters

• RFC2045 (MIME) alfabet: [A-Z][a-z][0-9]+/

Page 16: Tokenauthenticatie en xml signature in detail

SHA + Base64

4vBP5K5M5llABaWYzxCrKIdjS2I=

Input (bits)

SHA1 (160 bits)

Base 64

Page 17: Tokenauthenticatie en xml signature in detail

SignedInfo

Page 18: Tokenauthenticatie en xml signature in detail

RSA with SHA

SignedInfo(exc c14n)

ASN.1 DERformaat

SHA1 hash

bits

160 bits

400 bits

Base64

SignatureValue

RSA

408 bits

karakters

3021300906052b0e03021a05000414

3031300d060960864801650304020105000420

SHA 256 -> 464 bits

private key

Page 19: Tokenauthenticatie en xml signature in detail

“Hello world”

SHA-1 hash:5llABaWYzxCrKIdjS...

RSA sig value:c9fVK7vYAdvs2DRZVtS...

Private key:shhhh.....

Public key:MIICHzCCAYygAwIBAgI.....

“Hello world”

RSA sig value:c9fVK7vYAdvs2DRZVtS...

OK

Sender Receiver

Page 20: Tokenauthenticatie en xml signature in detail
Page 21: Tokenauthenticatie en xml signature in detail

Security Services (X.800)

• Authentication

• Authorization

• Data Confidentiality

• Data Integrity

• Non-repudiation

Page 22: Tokenauthenticatie en xml signature in detail

Security services

Secure connection

Authentication Token

Digital

Signature

Authentication √ √ √

Authorization

Confidentiality √

Integrity √ √

Non-repudiation √

Page 23: Tokenauthenticatie en xml signature in detail

Naam Key Usage omschrijving

Toepassing Key usage hexadecimaal

authenticiteit-certificaat

digitalSignature tokenauthenticatie

0x80

handtekening-certificaat

NonRepudiation elektronische handtekening

0x40

vertrouwelijkheidcertificaat

keyEncipherment, dataEncipherment, keyAgreement

0x38

(OR'ed 0x20, 0x10, 0x08)

Key usage

Page 24: Tokenauthenticatie en xml signature in detail

SOAP bericht

signedData SignedInfo

Header maken

SignatureValueCertificaatverwijzing

authenticationTokens

Header maken

wss:Security

Bericht maken

SOAP bericht

QURX_EX990011NL

Page 25: Tokenauthenticatie en xml signature in detail

SOAP bericht

Page 26: Tokenauthenticatie en xml signature in detail

Functie Algoritme URI

Signature RSA+SHA-1 <SignatureMethod Algorithm=

"http://www.w3.org/2000/09/xml

dsig#rsa-sha1"/>

Digest SHA-1 <DigestMethod Algorithm=

"http://www.w3.org/2000/09/xml

dsig#sha1"/>

Signature RSA+SHA-256 <SignatureMethod Algorithm=

"http://www.w3.org/2001/04/xml

dsig-more#rsa-sha256"/>

Digest SHA-256 <DigestMethod Algorithm=

"http://www.w3.org/2001/04/xml

enc#sha256"/>

Page 27: Tokenauthenticatie en xml signature in detail

Transformatie XML 2 SignedData

Verstrekkings-Lijstquery

signedData.xsl

signedData

QURX_IN990111NL_01.xml

QURX_IN990111NL_01_signedData.xml

Page 28: Tokenauthenticatie en xml signature in detail

Whitespace eruit

signedData

remove-whitespace-between-elements.xsl

signedData QURX_IN990111NL_01_signedData.xml

QURX_IN990111NL_01_signedData.xml

Page 29: Tokenauthenticatie en xml signature in detail

Exclusive Canonicalization

signedData

excc14n(Oxygen gebruikt)

signedDataexcc14n

signedData_ excc14n.xml

QURX_IN990111NL_01_signedData.xml

Page 30: Tokenauthenticatie en xml signature in detail

Signed Info element

signedDataexcc14n

Base64

SignedInfo

signedData_ excc14n.xml

SignedInfotemplate

maken SignedInfo

SignedInfo.xml

SHA1 hash

bits

160 bits

karakters

wsu Id

Page 31: Tokenauthenticatie en xml signature in detail

RSA with SHA

SignedInfo(exc c14n)

ASN.1 DERformaat

SHA1 hash

bits

160 bits

400 bits

Base64

SignatureValue

RSA

160 bits

karakters

3021300906052b0e03021a05000414

3031300d060960864801650304020105000420

SHA 256 -> 464 bits

private key

Page 32: Tokenauthenticatie en xml signature in detail

SOAP bericht

signedData SignedInfo

Header maken

SignatureValueCertificaatverwijzing

authenticationTokens

Header maken

wss:Security

Bericht maken

SOAP bericht

QURX_EX990011NL

Page 33: Tokenauthenticatie en xml signature in detail

Tokenauthenticatie

signedData SignedInfo SignatureValue

Certificaat

RSA / SHAsig maken

Bericht maken

SOAP bericht

QURX_EX990011NL

token makenSignedInfomaken

smartcard metprivate key