Webservices Security – Moving up the stack! - 3
13-05-2005,13:33 door
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.
Deel 1: Webservices Security - Inleiding
Deel 2: Webservices Security - Nieuwe bedreigingen en uitdagingen
SAML en XACML
Een tweede belangrijke standaardisatie organisatie is OASIS (Organization for the Advancement of Structured Information Standards). Het eerste belangrijke initiatief van OASIS is SAML (Security Assertions Markup Language). Dit is een op XML-gebaseerd modulair raamwerk dat Webservices in staat stelt om security gerelateerde gegevens uit te wisselen. Deze gegevens hebben betrekking op authenticatie- en autorisatiegebeurtenissen die eerder hebben plaatsgevonden. De werking bestaat hieruit dat met behulp van vertrouwde verklaringen (trusted statements) zogenaamde beweringen (assertions) over eindgebruikers, Webservices of andere entiteiten met een digitale identiteit, in XML beschreven en vervolgens, via bijvoorbeeld SOAP berichten, worden uitgewisseld. Figuur 10 geeft het conceptuele model van SAML weer, waarbij opgemerkt moet worden dat de afgebeelde Authorities gecombineerd kunnen worden in een product of dienst.
Voorbeeld van een authenticatiebewering:
“subject Alice was authenticated by means X.509 certificate at time 12.00 o’clock”.
Voorbeeld van een autorisatiebeslissingbewering:
“subject Alice for action Read on resource file index.html given evidence authentication assertion A”.
Figuur 10. SAML domein model
De vertrouwelijkheid en integriteit van SAML assertions kunnen worden gegarandeerd door gebruik te maken van de basisbouwblokken XML Encryption en XML Signature.
Op dit moment bieden fabrikanten leverancierseigen single sign-on oplossingen die niet met elkaar kunnen samenwerken en die vaak cookie-gebaseerd zijn. Het gebruik van dit soort oplossingen blijft vaak beperkt tot enkelvoudige domeinen, omdat cookies in de regel domeingebonden zijn en niet makkelijk uitwisselbaar zijn met andere DNS domeinen. SAML adresseert deze uitdaging door applicaties af te schermen van de complexiteit van de onderliggende authenticatie- en autorisatiesystemen. SAML maakt single sign-on zonder cookies mogelijk door op een gestandaardiseerde manier gebeurtenissen te beschrijven en deze op een gestandaardiseerde manier uit te wisselen, onafhankelijk van de onderliggende applicaties. SAML assertions kunnen worden uitgewisseld met behulp van diverse technieken, waaronder een SAML-binding voor SOAP over HTTP en pull en push (HTTP POST) methoden. Ook is het gebruik van cookies, om SAML assertions in op te slaan, mogelijk.
Het is belangrijk te onderkennen dat SAML géén authenticatieprotocol is. SAML beperkt zich uitsluitend tot het uitwisselen van beweringen over bepaalde authenticatie- en autorisatiegebeurtenissen die hebben plaatsgevonden. Het authenticatieproces en –mechanisme valt buiten de scope van het SAML protocol.
XACML (XML Access Control Markup Language) is een XML taal om policies met betrekking tot toegangscontrole gedetailleerd te beschrijven en uit te wisselen. Het is ontworpen om naadloos te integreren met SAML. XACML levert flexibiliteit waarmee het mogelijk is om selectief te kunnen definiëren welke entiteiten (bijv. gebruikers, Webservices) bepaalde privileges hebben op documenten. Deze documenten hoeven niet noodzakelijkerwijs XML documenten te zijn. In de praktijk zal het veel vaker voorkomen dat het documenten betreft van verschillende gangbare formaten zoals HTML, Word of PDF. Net zoals de andere protocollen schrijft XACML geen specifiek communicatieprotocol voor en zouden XACML berichten via verschillende transportprotocollen uitgewisseld kunnen worden.
Figuur 11. XACML domein model
Figuur 11 geeft het conceptuele model weer van XACML. Merk hierbij op dat SAML in dit plaatje een belangrijke rol speelt. Een aantal aspecten uit de SAML en XACML specificaties is conceptueel. Er zijn verschillende ontwerpen en implementaties mogelijk en in de praktijk zal blijken dat fabrikanten deze oplossingen op verschillende manieren zullen implementeren. Het is cruciaal dat hierbij interoperabiliteit niet uit het oog wordt verloren om acceptatie door de markt niet te frustreren. SAML en XACML zijn overigens op zichzelf staande standaarden die niet noodzakelijkerwijs in een Webservices omgeving gebruikt hoeven te worden.
SAML en XACML
Een tweede belangrijke standaardisatie organisatie is OASIS (Organization for the Advancement of Structured Information Standards). Het eerste belangrijke initiatief van OASIS is SAML (Security Assertions Markup Language). Dit is een op XML-gebaseerd modulair raamwerk dat Webservices in staat stelt om security gerelateerde gegevens uit te wisselen. Deze gegevens hebben betrekking op authenticatie- en autorisatiegebeurtenissen die eerder hebben plaatsgevonden. De werking bestaat hieruit dat met behulp van vertrouwde verklaringen (trusted statements) zogenaamde beweringen (assertions) over eindgebruikers, Webservices of andere entiteiten met een digitale identiteit, in XML beschreven en vervolgens, via bijvoorbeeld SOAP berichten, worden uitgewisseld. Figuur 10 geeft het conceptuele model van SAML weer, waarbij opgemerkt moet worden dat de afgebeelde Authorities gecombineerd kunnen worden in een product of dienst.
Voorbeeld van een authenticatiebewering:
“subject Alice was authenticated by means X.509 certificate at time 12.00 o’clock”.
Voorbeeld van een autorisatiebeslissingbewering:
“subject Alice for action Read on resource file index.html given evidence authentication assertion A”.
Figuur 10. SAML domein model
De vertrouwelijkheid en integriteit van SAML assertions kunnen worden gegarandeerd door gebruik te maken van de basisbouwblokken XML Encryption en XML Signature.
Op dit moment bieden fabrikanten leverancierseigen single sign-on oplossingen die niet met elkaar kunnen samenwerken en die vaak cookie-gebaseerd zijn. Het gebruik van dit soort oplossingen blijft vaak beperkt tot enkelvoudige domeinen, omdat cookies in de regel domeingebonden zijn en niet makkelijk uitwisselbaar zijn met andere DNS domeinen. SAML adresseert deze uitdaging door applicaties af te schermen van de complexiteit van de onderliggende authenticatie- en autorisatiesystemen. SAML maakt single sign-on zonder cookies mogelijk door op een gestandaardiseerde manier gebeurtenissen te beschrijven en deze op een gestandaardiseerde manier uit te wisselen, onafhankelijk van de onderliggende applicaties. SAML assertions kunnen worden uitgewisseld met behulp van diverse technieken, waaronder een SAML-binding voor SOAP over HTTP en pull en push (HTTP POST) methoden. Ook is het gebruik van cookies, om SAML assertions in op te slaan, mogelijk.
Het is belangrijk te onderkennen dat SAML géén authenticatieprotocol is. SAML beperkt zich uitsluitend tot het uitwisselen van beweringen over bepaalde authenticatie- en autorisatiegebeurtenissen die hebben plaatsgevonden. Het authenticatieproces en –mechanisme valt buiten de scope van het SAML protocol.
XACML (XML Access Control Markup Language) is een XML taal om policies met betrekking tot toegangscontrole gedetailleerd te beschrijven en uit te wisselen. Het is ontworpen om naadloos te integreren met SAML. XACML levert flexibiliteit waarmee het mogelijk is om selectief te kunnen definiëren welke entiteiten (bijv. gebruikers, Webservices) bepaalde privileges hebben op documenten. Deze documenten hoeven niet noodzakelijkerwijs XML documenten te zijn. In de praktijk zal het veel vaker voorkomen dat het documenten betreft van verschillende gangbare formaten zoals HTML, Word of PDF. Net zoals de andere protocollen schrijft XACML geen specifiek communicatieprotocol voor en zouden XACML berichten via verschillende transportprotocollen uitgewisseld kunnen worden.
Figuur 11. XACML domein model
Figuur 11 geeft het conceptuele model weer van XACML. Merk hierbij op dat SAML in dit plaatje een belangrijke rol speelt. Een aantal aspecten uit de SAML en XACML specificaties is conceptueel. Er zijn verschillende ontwerpen en implementaties mogelijk en in de praktijk zal blijken dat fabrikanten deze oplossingen op verschillende manieren zullen implementeren. Het is cruciaal dat hierbij interoperabiliteit niet uit het oog wordt verloren om acceptatie door de markt niet te frustreren. SAML en XACML zijn overigens op zichzelf staande standaarden die niet noodzakelijkerwijs in een Webservices omgeving gebruikt hoeven te worden.









