Archive for augustus, 2008

Webservice Security en PKI

Steeds meer organisaties communiceren onderling via webservices. Een goede algemene presentatie over SOA, Webservices en security las ik van Arthur Donkers.

Rondom webservice security zijn ondermeer de volgende zaken van belang:

  1. Identiteit van de webservice requestor ( Proces/ organisatie dat de webservice aanroept)
  2. Identiteit van de webservice provider (Proces/ organisatie dat de webservice aanbiedt)
  3. Vertrouwelijkheid van het webservice verzoek

Er zijn verschillende niveau’s waar PKI ingezet wordt om bovenstaande zaken te waarborgen.

In veel gevallen beschikt de webservice provider over een SSL servercertificaat om de webservice over https:// aan te bieden. Zo gaan de webservice calls over een beveiligde lijn en zijn de volgende twee zaken gewaarborgd:

  1. Identiteit van de webservice provider
  2. Beveiliging/ vertrouwelijkheid vanĀ  de webservice verzoeken

In 9 van de 10 gevallen is het alleen mogelijk om een webservice aan te roepen door “geautoriseerde” requestors. Soms wordt dit afgedwongen door een shared secret/ wachtwoord in de webservice call, maar in veel gevallen dient de requestor te beschikken over een Client certificaat om zich te authenticeren, waarop de requestor de autorisatie kan afhandelen.

Er bestaat nog weleens verwarring over het type certificaat dat noodzakelijk is voor de requestor.

Indien de requestor ook zelf een webservice provider is dan kan hij een SSL servercertificaat gebruiken voor zowel het beveiligen/ authenticeren van zijn eigen webservice als het gebruik voor client authenticatie richting een andere webservice provider.

In veel gevallen heeft de requestor niet een eigen webservice of is het niet praktisch om beide processen te combineren. Probleem is ook vaak dat de requestor geen domeinnaam/ extern IP adres tot zijn beschikking heeft dat ALTIJD opgegeven moet worden bij een SSL server aanvraag. In veel gevallen volstaat dan de aanvraag van een organisatiegebonden client certificaat. Hierbij identificeer je alleen de organisatie en de applicatie en is verder geen extern IP adres noodzakelijk. Voorbeelden van dergelijke certificaten zijn het PKIOverheid organisatieservices certificaat of een organisatieservices certificaat.

Voor het bewaken van de integriteit van het bericht en vertrouwelijkheid is het ook nog mogelijk om op bericht niveau PKI toe te passen. Op deze wijze worden XML bestanden digitaal ondertekend of versleuteld met het certificaat van de WS provider. Dit gebeurd vaak alleen indien er hoge beveiligingseisen gesteld worden aan de webservice transacties en discussies over inhoud en tijd een rol kunnen spelen.