Redactionele noot Dit artikel is eerder verschenen in het blad Informatiebeveiliging van het Genootschap van Informatie Beveiligers (GvIB - editie 1 februari 2004). Het artikel is op een aantal punten geactualiseerd en verrijkt met extra illustraties en bronvermelding bij figuren die ontleend zijn van derden.
Over de auteur
Ing. Vincent Alwicher MSIT CISSP is als information security consultant werkzaam bij LogicaCMG. Hij heeft een Master graad in Informatiebeveiliging, toegekend door TU Eindhoven en een ingenieursgraad in Informatica. Hij heeft ruime ervaring met netwerk-, systeem- en applicatiebeveiliging, cryptografische toepassingen en implementaties van complexe identity & access management infrastructuren. Vincent is te bereiken op vincent.alwicher@logicacmg.com. Dit artikel is op persoonlijke titel geschreven.
Inleiding
De opkomst van de Webservices hype zal niemand ontgaan zijn. De afgelopen jaren is er veel geschreven en gesproken over deze nieuwe technologie en velen voorspellen een grote toekomst voor dit concept. Er is echter geregeld onduidelijkheid over wat dit concept nu eigenlijk precies betekent en hoe het technisch werkt en geïmplementeerd wordt. Fabrikanten, analisten en andere belanghebbenden verschillen regelmatig van mening. Daarnaast brengt Webservices nieuwe uitdagingen met zich mee op het gebied van informatiebeveiliging. Dit artikel gaat in op de nieuwe bedreigingen en uitdagingen van Webservices technologie en behandelt van daaruit de lopende beveiligingsinitiatieven. Hierbij is getracht om het Webservices security landschap zo breed mogelijk te beschouwen en het artikel toegankelijk te houden voor een groot lezerspubliek waarvan wel enige ICT kennis wordt verwacht. Het artikel is derhalve dan ook niet alomvattend en alleen de belangrijkste nieuwe security standaarden worden belicht, zonder daarbij te veel in details te treden. Voor de precieze werking van de verschillende standaarden wordt dan ook verwezen naar de officiële specificaties van de verschillende consortiums en fabrikanten (zie appendix Referenties).
Introductie Webservices technologie
Webservices hebben alles te maken met de servicegeoriënteerde gedachte. Webservices is een op XML-gebaseerde technologie die een Service Oriented Architecture (SOA, zie figuur 1) mogelijk maakt. Het idee achter SOA is dat het voor organisaties mogelijk moet zijn om op een eenvoudige en flexibele manier diensten en producten van derden af te nemen in een open markt situatie op een open netwerk (Internet). De keuze voor leveranciers wordt dynamisch vastgesteld, partnerships worden automatisch opgezet en er vindt veel meer machine-naar-machine interactie plaats dan nu het geval is. Algemeen wordt dit gezien als een logische volgende stap in de evolutie van het Web. Deze derde generatie toepassingen maakt informatie beschikbaar in een machineleesbaar formaat wat een revolutie zal betekenen voor nieuwe toepassingen in B2B omgevingen.
Figuur 1. Service Oriented Architecture
Om dit te bereiken moeten organisaties elkaar kunnen vinden. Hiervoor zijn publiekelijk zogenaamde UDDI (Universal Description Discovery and Integration) databases beschikbaar. UDDI is de Gouden Gids van Webservices. Iedereen die een Webservice aanbiedt, publiceert (publish) de details van zijn service in deze database. Dit kunnen onder meer zakelijke, contractuele en technische gegevens zijn. Het dynamische karakter van Webservices maakt het mogelijk om een organisatie een voor haar geschikte service op te laten zoeken (discover), automatisch een koppeling te maken (invoke) en de diensten of producten vervolgens af te nemen. Deze “losjes-gekoppelde” benadering met als doel om gedistribueerde applicaties te bouwen en om eenvoudiger applicaties te laten integreren, wordt gezien als de volgende fase om business processen verder te automatiseren op een marktplaats waar voornamelijk applicatie-naar-applicatie interactie plaatsvindt. Commerciële argumenten zijn er voldoende: kortere time-to-market, minder menselijke interventie, dynamische keuze voor partners, voorkomen van lange migratietrajecten, reductie van onderhoudskosten, lagere ontwikkelingskosten en –inspanning, et cetera.
Figuur 2. Webservices als abstractielaag voor .NET en J2EE platformen
Webservices is eigenlijk alleen maar een op XML-gebaseerde abstractielaag (figuur 2) voor applicaties waarbinnen XML berichten worden uitgewisseld. Webservices is platform- en programmeertaalonafhankelijk en gebruikt open en gestandaardiseerde protocollen en interfaces. Technisch gezien omvat Webservices de volgende componenten: 1) een XML processor, 2) een XML bericht, 3) een SOAP envelop en 4) een protocolbinding. SOAP (Simple Object Access Protocol) is de lijm die Webservices aan elkaar koppelt. SOAP werkt via het principe van encapsulatie: het inpakken van berichten in een envelop. Deze berichten kunnen XML berichten zijn, maar ook RPC’s (Remote Procedure Call) bevatten. SOAP is niet afhankelijk van de transportlaag en kan dus worden vervoerd over bestaande transportprotocollen, zoals: HTTP, FTP of SMTP. Op dit moment is HTTP de meest voorkomende transportbinding voor SOAP. Andere bindingdefinities zijn in ontwikkeling.
Om Webservices goed te kunnen begrijpen is kennis van nog een begrip noodzakelijk: WSDL (Web Services Description Language). WSDL kan gezien worden als de technische handleiding waarin de functies en interfaces van een SOAP endpoint worden beschreven. Bijvoorbeeld de beschikbare functies die aangeroepen kunnen worden, welke invoerparameters verwachten worden en het formaat hiervan (integer, binair, string, etc.) en welke uitvoer terugkomt. De WSDL beschrijving van een Webservice wordt in UDDI gepubliceerd. Op deze manier kan een andere organisatie, nadat zij een geschikte leverancier in de UDDI database heeft gevonden, eenvoudig een technische koppeling maken met de partner’s Webservice.
Morgen het vervolg op dit artikel, en gaat Vincent Alwicher dieper in op nieuwe bedreigingen en uitdagingen.
Deze posting is gelocked. Reageren is niet meer mogelijk.