WS-SecurityWS-Security (Web Services Security, röviden WSS) egy nagyon rugalmas és funkciókban gazdag kiegészítése a SOAP-nak, amellyel a webszolgáltatások biztonságát határozhatjuk meg. Az ún. WS-* (webszolgáltatások) családjába tartozik, melyet az OASIS fogadott el szabványként. Ez a protokoll az üzenetek integritását és titkosítását határozza meg. Sokféle biztonsági tokent támogat, mint például a SAML, Kerberos, és X.509. A fő hangsúly ennél a protokollnál az XML Signature és az XML-kódolás használatán van. FunkciókA WS-Security három fő mechanizmust ír le:
A tokenek formátumát és szemantikáját a profilhoz tartozó dokumentumban definiálják.
<?xml version='1.0' encoding='UTF-8'?><br />
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"><br />
<soapenv:Header>
<wsse:Security xmlns:wsse="..." soapenv:mustUnderstand="1">
<xenc:EncryptedKey Id="EncKeyId-229902">
<xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<ds:KeyInfo xmlns:ds="...">
<wsse:SecurityTokenReference>…</wsse:SecurityTokenReference>
</ds:KeyInfo>
<xenc:CipherData>
<xenc:CipherValue>PpAOXj5P0W8ukm...</xenc:CipherValue>
</xenc:CipherData>
<xenc:ReferenceList>
<xenc:DataReference URI="#EncDataId-30957433" />
</xenc:ReferenceList>
</xenc:EncryptedKey>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"Id="Signature-17764792">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm=…/>
<ds:SignatureMethod Algorithm=… />
<ds:Transforms>…/ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<ds:DigestValue>+ECkM6R4GQ7AQ=...</ds:DigestValue>
</ds:SignedInfo>
</ds:Signature>
<wsu:Timestamp../>
<soapenv:Body xmlns:wsu="..." wsu:Id="id-30957433">
<xenc:EncryptedData Id="EncDataId-30957433”….>
</soapenv:Body>
A fentebb említett mechanizmusok nem adnak teljes körű megoldást a web-szolgáltatások biztonságára. Inkább csak alap építőeleme a biztonságnak, amelyre sok egyéb magasabb szintű biztonsági protokoll építhető. Általában a WS-Security önmagában még nem elegendő a megfelelő biztonság biztosításához.
Használati esetekÁtviteli réteg biztonsága (WS-Security nélkül)A tipikus SOAP kommunikáció használata esetén két megbízható fél között (HTTPs protokollt használva) egyáltalán nincs is szükség WS-Security használatára. Vég-vég biztonságHA egy SOAP közvetítőre van szükség és a közvetítő egyáltalán nem vagy csak kevésbé megbízható, akkor szükséges az üzenetek megjelölése/címkézése és esetleg titkosítása. LetagadhatatlanságAz általános módszer egy üzenete letagadhatatlanságának biztosítására, az ha tranzakciókat írunk, amely segítségével visszakövethető az üzenet. Ha ez nem lenne elegendő, akkor a digitális aláírás használata is lehet egy másik módszer. Alternatív adatátviteli kötésekHabár majdnem minden SOAP szolgáltatás a HTTP protokoll implementációja, elméletben lehetséges más protokollokon alapuló szolgáltatás is, mint pl.: JMS vagy SMTP-n alapuló. Ezekben az esetekben szükséges a vég-vég biztonság meghatározása. Fordított proxy/Általános biztonsági tokenMég ha a web-szolgáltatás az adatátviteli rétegen megvalósított biztonságra támaszkodik is, lehetséges hogy szükséges a túloldali felhasználóval tudatni, hogy milyen szolgáltatást is használunk. A WSS-fejléc tartalmazhat tokeneket a másik oldali felhasználó számára. Problémák
TeljesítményA WS-Security jelentősen túlterhelhet egy SOAP eljárást, mivel nagyon megnöveli az üzenetek számát. Az XML és a titkosítási eljárások gyorsabb CPU-t, több memóriát és nagyobb sávszélességet követelnek. Egy 2005-ben készített mérés[1] alapján, melyben 25 különböző nagyságú és komplexitású SOAP üzenet feldolgozását vizsgálták WS-Security és WS-SecureConversition által egy Pentium 4/2,8 GHz processzorral szerelt gépen, a következő megállapításokat lehet tenni:
Egy másik 2006-os[2] mérésen a következő eredmények születtek:
TörténetEredetileg az IBM, a Microsoft, és a VeriSign fejlesztette ki a protokollt, most viszont már az OASIS közösség által fejlesztett nyílt szabvány lett belőle. 2002-ben az OASIS technikai bizottsága elfogadta a WS-Security szabványt. Ennek következtében a következő verziók kerültek kiadásra:
Kapcsolódó szabványokKapcsolódó szócikkek
További információk
Jegyzetek
|