Den Gode Webservice 1.1
-Profilen for webservicebaseret kommunikation i sundhedssektoren
Ivan Overgaard, io@silverbullet.dk
Udfordringen
Service-Orienteret Arkitektur (SOA) er den moderne
måde at lave system integration på …
… internt i en virk- somhed, på tværs af afdelinger og enheder
…
… og eksternt mellem samarbejdspartnere
Behov for profil!
Hvilken sikkerhed
&
hvordan?
Hvilke fælles oplys- ninger?
Hvilke formater?
Hvordan anvendes standarder
?
Forudsætninger
Beskyttet,
lukket netværk, Sundheds-
datanettet
Sundhedsstyrelsens nationale it-strategi Dansk certifikat
standard, OCES
Certifikat autoritet (CA)
OIO & en underskov af internationale WS-*
standarder
Den Gode Webservice
Specifikation for webservice anvendelse i sundhedssektoren
• Brugeridentifikation
• Systemidentifikation
• Beskedidentifikation
• Adressering
Webservice kuvert (SOAP)
• Guidelines til snitflader (WSDL)
• Timeout niveauer
Hjælp til serviceudbydere
• Forespørgseler
• Meddelelser
• Signon og single-signon
• Retransmission
Brugsmønstre
• Internationale (WS-*)
• Nationale (OCES, OIO, ...)
Anvendelse af standarder
Baseret på standarder
Den Gode Webservice
OWSA-T OCES
OIO-XML OIO-WSDL
WSI Basic Profile
SAML
WSDL XML
Schema SOAP HTTP(S) X509
WS-Trust XML Signature
WS-Security WS-
Addressing
Nationale
standarder
Internationale
standarder
Kommunikationsarketyper
Forespørgsel
Klient-system Webservice udbyder
Request
Response
Header GetLab Results
Header
Lab- Results
Meddelelse
OIO-XML & OIO-WSDL
Klient-system Webservice udbyder
Request
Response
Header Kvit- tering Header
Hen- visning
OIO-WSDL OIO-XML
Schema OIO-XML
Schema
Infostrukturbasen
Bor hos
It- og Telestyrelsen
Beskriver datastrukturer
Beskriver
(gode) webservices
Adressering
• Angivelse af afsender, modtager, besked-id
• WS-Addressing standard benyttes
Klient-system Webservice udbyder
Request
Response
<wsa:To>
<wsa:ReplyTo>
Header
Header
<wsa:MessageID>
<wsa:MessageID>
<wsa:RelatesTo>
Fejl
<faultcode>
<faultstring>
<detail>
<faultcode> Beskrivelse
dgws:AuthenticationLevel Det medsendte id-kort var på et for lavt niveau i forhold til den af servicen krævede
AuthenticationLevel. Details angiver det nødvendige niveau.
dgws:IdCardTooOld Id-kortet er udløbet eller for gammelt for den pågældende service. Details angiver hvor gammelt
id-kortet må være i minutter.
dgws:IDCardType Det medsendte id-kort var ikke af den forventede type. Den type, der forventes angives i Details elementet.
… …
”Formatet af input er ikke gyldigt:
PersonInformationStructure må ikke være tom”
<![CDATA[<PersonInformationStructure>
</PersonInformationStructure>]]>
Pålidelig kommunikation
• Webservicen
opdager dublet og gensender svaret
ELLER
Klient-system Webservice udbyder
Request
Response
Header
request
Response Response
Response Header
Re- sponse
• Webservicen
opdager dublet MessageId og sender fejl.
Klient-system Webservice udbyder
Request
Response
Header
request
Header
Fault!!
MessageId 367abd892...
f36bd6323...
...
Sikkerhedsegenskaber
DGWS Sikkerhed
Autentifikation (Login)
Autorisation (Rettigheder)
Konfidentialitet (Kryptering) Uafviselighed
Integritet
Sikkerhedsoplysninger
Version: 1.0 ID: QYZ1234 Gyldig: 25/10-2006 - 26/10/2006 Udsteder: EPJQ 3.0 Type: User
Indehaver: S.Miley Autorisationsnr: 5678 Rolle: Kirurg CPR: 0101121234 Email: s.miley@abc.dk Stilling: Læge
SOSI ID-Kort
System: EPJQ 3.0
Organisation: Region X Organisation ID: 1234
• Medsendes på alle beskeder
Risikoanalyse
Risiko i forhold til sikkerhedsniveau
Kategorier af konsekvenser ved fejl i forbindelse med autenticitetssikring
1 2 3 4
Ulempe, kval eller tab af anseelse Lille Moderat Moderat Stor
Økonomisk tab eller ansvarspådragelse Lille Moderat Moderat Stor
Skade på myndighedsaktiviteter eller andre offentlige interesser
- Lille Moderat Stor
Ikke-autoriseret frigivelse af sensitiv information - Lille Moderat Stor
Fysisk personskade - - Lille Moderat
Mulighed for at begå/modvirke opklaring af ulovligheder
- Lille Moderat Stor
Autentifikation
Autent. niveau Akkreditiv
1 2 3
Intet
Brugernavn & password Digital signatur
Niveauerne svarer til de 3 nederste NIST niveauer.
Niveau 4 er ikke pt. understøttet
Brugertyper
Id-kortet identificerer
et it-system Version: 1.0 ID: QYZ1234 Gyldig: 25/10-2006 - 26/10/2006 Udsteder: EPJQ 3.0 Type: System
SOSI System Id-kort
System: EPJQ 3.0 Organisation: Region X Organisation ID: 1234
ELLER
Id-kortet identificerer en sundhedsfaglig
Version: 1.0 ID: QYZ1234 Gyldig: 25/10-2006 - 26/10/2006 Udsteder: EPJQ 3.0 Type: User
Indehaver: S.Miley Autorisationsnr: 5678 Rolle: Kirurg CPR: 0101121234 Email: s.miley@abc.dk Stilling: Læge
SOSI User Id-kort
System: EPJQ 3.0 Organisation: Region X Organisation ID: 1234
Ekstra oplysninger
Signon (SO)
Klient- system Certifikat
Autoritet (CA)
Autorisations- service
3 2
Webservice Udbyder 4
1
Single-signon (SSO)
5
5 Certifikat
Autoritet (CA)
Autorisations- service
Security Token Service (STS)
3 2
Klient- system
Webservice Udbyder
Webservice Udbyder
4 1
6
7
Autorisation
Version: 1.0 ID: QYZ1234 Gyldig:25/10-2006 - 26/10/2006 Udsteder:EPJQ 3.0 Type: User
Indehaver:S.Miley Autorisationsnr:5678 Rolle:Kirurg CPR:0101121234 Email: s.miley@abc.dkStilling: Læge
SOSI ID-Kort
System:EPJQ 3.0 Organisation:Region X Organisation ID: 1234
Udløbet?
(timeout)
Valid Rolle?
Auto- risations-
nr?
Gyldig Organi-
sation?
Konfidentialitet
• DGWS kræver krypteret transport
• Sundhedsdatanettet (VPN)
• Internettet (SSL)
Konfidentialitet: SSL
Konfidentialitet: VPN
Linje-integritet
• At data ikke er blevet modificeret under transporten
Sikkerhedsniveau Integritet
1 2 3
Krypteret transportlag
Krypteret transportlag
Krypteret transportlag
Identitetstyveri
Id-kortet stjæles
Besked-integritet
Id-kort
Service specifik OIO XML
SOAP EnvelopeSOAP Header
SOAP Body
VOCES
eller MOCES signatur til autentifikation af afsenderen
VOCES signatur til beskedautentifikation Ws-addressing
Andre headere
• At beskeden ikke er blevet modificeret
• Kræver VOCES signatur
• Altid på niveau 3, tilladt på 1 og 2
Uafviselighed
• Det kan verificeres at afsenderen er den, der hævder at have sendt data
• Kræver besked-integritet
Sikkerhedsniveau Uafviselighed
1 2 3
VOCES signatur tilladt
VOCES signatur tilladt
VOCES signatur påkrævet!
Hele beskeden
Version: 1.0 ID: QYZ1234 Gyldig: 25/10-2006 - 26/10/2006 Udsteder: EPJQ 3.0 Type: User
Indehaver: S.Miley Autorisationsnr: 5678 Rolle: Kirurg CPR: 0101121234 Email: s.miley@abc.dk Stilling: Læge
SOSI ID-Kort
System: EPJQ 3.0 Organisation: Region X Organisation ID: 1234
Besked ID
Digital VOCES Signatur Addressingsinformation Tidsstempel
Header
Body
Service-specifikt data eller fejl
Timeouts
• Hvor gammelt et id-kort maksimalt må være hos en given service udbyder
• Styres af service udbyder
Niveau Timeout
1 2 3
Efter 24 timer
Efter 8 timer
Efter 30 minutter
Tidssynkronisering
• Tid er afgørende for sikkerheden
• Alle ure i føderationen skal være synkroniserede
• Benytter en central tidsserver
NTP Server Webservice
Udbyder
Webservice Klient
Tid?
Tid?
Den Gode Webservice opsummering
• En profil for webservice anvendelse i Sundhedsvæsenet
• Standardiserer
sikkerhedselementer herunder digital signatur
• Udstikker fælles logistikregler &
brugsmønstre
• Baseret på fælles infrastruktur
Spørgsmål
Molestien 11 DK-2450 København SV, Denmark
Molestien 11 DK-2450 København SV, Denmark
Testcenteret Dækker
• Værktøj til udviklig af WSDL
• .Net framework til eksekvering af DGWS
• Miljø til udstilling af testservices
• Testværktøjer til verificering af Soap Request/Response
• Generering af dokumentation
Molestien 11 DK-2450 København SV, Denmark