Bezpečnost pro webové služby

Jestliže zaslechnete, že bezpečnost v oblasti webových služeb stále ještě představuje chybějící část "skládačk...


Jestliže zaslechnete, že bezpečnost v oblasti webových služeb stále ještě
představuje chybějící část "skládačky" nebo nedořešenou otázku, zřejmě budete
následně konfrontováni s množstvím používaných standardů i rozpracovaných
specifikací nových protokolů.
Pravděpodobně pak budete v souvislosti se zmíněnou problematikou zataženi do
diskuse o komplexních SOA architekturách (Service Oriented Architecture), které
vyžadují hypermoderní bezpečnostní protokoly, jež je třeba předložit
standardizačním komisím. V současnosti však větší část komunikace
prostřednictvím web services odráží aktuální stav prostředí webu jako takového:
Klienti a servery jsou ve vzájemné interakci víceméně v reálném čase s tím, že
zabezpečení je kontrolováno serverem.

Více než SSL
Takové jednoduché interakce se typicky opírají o uživatelská jména a hesla pro
autentizaci a o technologii SSL pro šifrování zpráv i zajištění jejich
integrity. Komplexnější požadavky, jako je například autorizace či zajištění
proti chybnému odmítnutí, mohou být realizovány přímo v rámci samotných
aplikací, které webové služby zpracovávají. Jedním z dobrých příkladů je systém
S3 firmy Salesforce.com CRM aplikace, která je založena na protokolech webových
služeb a vystačí si právě s SSL přes HTTP.
Vše se ovšem zkomplikuje, jestliže platí jedna z následujících podmínek:
Architektura zahrnuje a využívá "zprostředkovatele" (tzn. zprávy jsou k cílové
aplikaci přenášeny v několika krocích).
Zprávy jsou ukládány a musejí být tedy zabezpečeny déle než po dobu jejich
přenosu.
Více než jedna strana chce mít kontrolu nad některými aspekty bezpečnosti
(například uživatelská jména a hesla definovaná klientem musejí být využívána
pro přístup na server, který využívá nezávislý koncept autentizace).
To vše jsou případy, kdy do hry vstupují nové bezpečnostní standardy a
protokoly. WS-Security je prvním standardem webových služeb, který komplexněji
řeší autentizaci, důvěryhodnost a integritu pro SOAP zprávy. Podporuje použití
hesel, Kerberos, digitální certifikáty (X.509) a prakticky i kterékoliv jiné
autentizační schéma. Jde o specifikaci technické komise Oasis, která zatím v
podstatě nemá vážnějšího konkurenta zřejmě i proto, že už byla implementována
firmami jako BEA Systems, Microsoft, IBM a dalšími.
Avšak WS-Security představuje pouze framework, v jehož rámci je autentizace a
autorizace zajištěna, a to nejčastěji pomocí tvrzení o bezpečnosti. Tvrzením se
rozumí formální vyjádření nějaké informace (třeba zda je uživatel autentizován
nebo do jaké skupiny patří), která slouží jako jakási plná moc. Tvrzení může
kupříkladu deklarovat, že je klient autorizován pro použití webové služby,
namísto přenosu skutečného jména a hesla nebo digitálního certifikátu. WS-Trust
je také jedním z navrhovaných standardů pro komunikaci prostřednictvím takových
tvrzení, avšak není tak vyspělý, jako WS-Security. Na druhé straně SAML
(Security Assertion Markup Language), který je staršího data a do jisté míry se
s WS-Trust překrývá, už našel široké využití.
SAML si lze představit tak, že se skládá ze dvou částí: z reprezentace
samotných tvrzení a protokolu, který zajišťuje jejich přenos. Jestliže tyto
části oddělíme, první z nich by mohla být využita podobně jako jakýkoliv
bezpečnostní token (digitální certifitkát), spolu s WS-Trust. V praxi vlastně
mnozí z těch, kdo tento standard mezi prvními adoptovali, uvedenou kombinaci
také využívají což přináší i některé výhody plynoucí z obecnější struktury
WS-Trustu. Kombinace WS-Trust a SAML je natolik běžná, že bude v průběhu
následujícího roku pravděpodobně i standardizována.

Automatická politika
Pomocí těchto protokolů mohou dvě i více stran realizovat bezpečné schéma pro
komunikaci prostřednictvím webových služeb, nicméně konečným cílem je, aby
jejich systémy tuto funkci zajistily samy. Aby bylo možno takovou vizi
uskutečnit, je nezbytné najít způsob, jakým přenášet bezpečnostní politiky mezi
jednotlivými SOA architekturami za účelem vyjádření bezpečnostních požadavků a
nalezení možností pro jejich splnění na obou stranách komunikace a to bez toho,
aby se před tím musel tyto detaily řešit samotný uživatel.
To už je doménou WS-SecurityPolicy, což je doplněk obecnější specifikace
WS-Policy. Například toolkit Web Services Enhancement firmy Microsoft už
WS-SecurityPolicy implementuje, takže daná služba může například specifikovat,
že bude přijímat pouze požadavky, které jsou digitálně podepsány s využitím
X.509 certifikátu. Kompatibilní klient bude tomuto požadavku rozumět a
automaticky mu vyhoví.
WS-SecurityPolicy se opět částečně překrývá s další specifikací XACML
(Extensible Access Control Markup Language), za níž stojí Oasis. XACML je sice
o něco vyspělejší, ale stále ještě čeká na své přijetí v širším měřítku.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.