Problemy bezpieczeństwa w architekturze SOA 1



Podobne dokumenty
Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

Języki definiowania polityki bezpieczeństwa dla SOA

Web Services. Wojciech Mazur. 17 marca Politechnika Wrocławska Wydział Informatyki i Zarządzania

Web Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services

Ministerstwo Finansów

Komunikacja i wymiana danych

VPN Virtual Private Network. Użycie certyfikatów niekwalifikowanych w sieciach VPN. wersja 1.1 UNIZETO TECHNOLOGIES SA

Część I -ebxml. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Problematyka bezpieczeństwa usług Web Services. Witold Andrzejewski

INTERNET - Wrocław Usługi bezpieczeństwa w rozproszonych strukturach obliczeniowych typu grid

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

ZAŁOŻENIA TECHNICZNO-TECHNOLOGICZNE SYSTEMU BUDOWANEGO W RAMACH PROJEKTU

Dokumentacja techniczna. Młodzieżowe Pośrednictwo Pracy

Rozproszone systemy internetowe

Języki definiowania polityki bezpieczeństwa

INFORMATYKA Pytania ogólne na egzamin dyplomowy

EXSO-CORE - specyfikacja

Kielce, dnia roku. HB Technology Hubert Szczukiewicz. ul. Kujawska 26 / Kielce

Zdalne logowanie do serwerów

Automatyzacja procesów biznesowych Andrzej Sobecki. ESB Enterprise service bus

Stan zaawansowania prac dotyczących zamówienia na opracowanie i wdrożenie rdzenia systemu e Urząd.

Bezpieczny dostęp do usług zarządzania danymi w systemie Laboratorium Wirtualnego

Architektura bezpieczeństwa informacji w ochronie zdrowia. Warszawa, 29 listopada 2011

Serwery. Autorzy: Karol Czosnowski Mateusz Kaźmierczak

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Modele bezpieczeństwa logicznego i ich implementacje w systemach informatycznych / Aneta Poniszewska-Marańda. Warszawa, 2013.

Projektowanie zabezpieczeń Centrów Danych oraz innych systemów informatycznych o podwyższonych wymaganiach bezpieczeństwa

TWÓJ BIZNES. Nasz Obieg Dokumentów

Wprowadzenie do PKI. 1. Wstęp. 2. Kryptografia symetryczna. 3. Kryptografia asymetryczna

Multi-wyszukiwarki. Mediacyjne Systemy Zapytań wprowadzenie. Architektury i technologie integracji danych Systemy Mediacyjne

PRACA INŻYNIERSKA IMPLEMENTACJA MOBILNEGO KLIENTA BANKU ZABEZPIECZONEGO TOKENEM

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

Metodyka projektowania komputerowych systemów sterowania

Zastosowania PKI dla wirtualnych sieci prywatnych

1. Wymagania dla lokalnej szyny ESB

CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI

Podpis elektroniczny dla firm jako bezpieczna usługa w chmurze. mgr inż. Artur Grygoruk

JTW SP. Z OO. Zapytanie ofertowe. Zewnętrzny audyt jakościowy projektu technicznego dedykowanego systemu B2B Platforma Integracji Serwisowej

Rozproszone systemy Internetowe

2016 Proget MDM jest częścią PROGET Sp. z o.o.

Wybrane działy Informatyki Stosowanej

11. Autoryzacja użytkowników

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

WYMAGANIA TECHNOLOGICZNE W ODNIESIENIU DO SYSTEMÓW TELEKOMUNIKACYJNYCH I TELEINFORMATYCZNYCH W OBSZARZE SIŁ ZBROJNYCH

Podstawy Secure Sockets Layer

Programowanie komponentowe

Internetowe Konto Pacjenta

Serwery LDAP w środowisku produktów w Oracle

Platforma epuap. Igor Bednarski kierownik projektu epuap2 CPI MSWiA. Kraków, r.

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

ZiMSK. Konsola, TELNET, SSH 1

Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA. Dlaczego DNS jest tak ważny?

OfficeObjects e-forms

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Oracle COREid Federation Przegląd

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

ROZPORZĄDZENIE MINISTRA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI 1) z dnia 29 kwietnia 2004 r.

Tom 6 Opis oprogramowania

SOA Web Services in Java

Audyt oprogramowania systemu B2B oprogramowanie umożliwiające zarządzanie informacjami o produktach:

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

1 Wprowadzenie do J2EE

Opis wdrożenia Platformy Technologicznej epodreczniki.pl na zasobach Poznańskiego Centrum Superkomputerowo-Sieciowego

Automatyzacja procesu tworzenia i zarządzania Wirtualnymi Organizacjami w oparciu o wiedzę w zastosowaniu do architektur zorientowanych na usługi

SMB protokół udostępniania plików i drukarek

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Wykład I. Wprowadzenie do baz danych

Promotor: dr inż. Krzysztof Różanowski

Część I Dostęp do danych oraz moŝliwości programowe (silnik bazy danych)

Bezpieczeństwo Systemów Komputerowych. Wirtualne Sieci Prywatne (VPN)

Specyfikacja techniczna interfejsu do obsługi Profilu Kandydata na Kierowcę.

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Ministerstwo Finansów

GML w praktyce geodezyjnej

ROZPORZĄDZENIE MINISTRA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI (1) z dnia 29 kwietnia 2004 r.

SIMON SAYS ARCHITECTURE! Usługi zdalne. Technologie, techniki i praktyki implementacji

AUREA BPM Oracle. TECNA Sp. z o.o. Strona 1 z 7

Bazy danych 2. Wykład 1

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Rozproszone systemy internetowe. Bezpieczeństwo usług WWW

System zarządzający grami programistycznymi Meridius

System sprzedaŝy rezerwacji

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

O-MaSE Organization-based Multiagent System Engineering. MiASI2, TWO2,

Programowanie Komponentowe WebAPI

TWÓJ BIZNES. Nasze rozwiązanie

POLITYKA PRYWATNOŚCI SERWIS:

1. Zakres modernizacji Active Directory

Wyjaśnienia treści Specyfikacji Istotnych Warunków Zamówienia

Szczegółowy opis przedmiotu zamówienia:

* 1. Rozporządzenie określa szczegółowe wymagania techniczne i organizacyjne

PetroManager NET jest programem sterującym automatyką stacji paliw z funkcją zdalnego zarządzania.

System DiLO. Opis interfejsu dostępowego v. 2.0

Wspólna propozycja w ramach porozumienia z dnia

Transkrypt:

Problemy bezpieczeństwa w architekturze SOA 1 Bartosz Brodecki Piotr Sasak Jerzy Brzeziński Michał Szychowiak Politechnika Poznańska, Instytut Informatyki Piotrowo 2, 60-965 Poznań {bbrodecki,brzezisnki,psasak,mszychowiak}@csputpoznanpl Streszczenie W ostatnich latach spopularyzował się w systemach rozproszonych model przetwarzania zorientowany na usługi, powszechnie dziś kojarzony z architekturą SOA Model ten, szczególnie atrakcyjny w środowiskach heterogenicznych, umożliwia realizację przetwarzania w potencjalnie dużej skali rozproszenia Bezpieczeństwo, co współcześnie jest oczywiste, zostało potraktowane jako jeden z najistotniejszych wymogów wdrażania koncepcji SOA Mimo przygotowanych wielu rekomendacji dobrych praktyk oraz podjętych prób standaryzacji mechanizmów podnoszenia bezpieczeństwa, rozwiązania te wciąż nie są w pełni satysfakcjonujące Jednym z kluczowych problemów pozostaje np definicja i realizacja spójnej dla całego środowiska przetwarzania polityki bezpieczeństwa Niniejszy artykuł przybliża tę problematykę i wskazuje aktualne obszary badawcze w jej obszarze oraz przedstawia przykłady proponowanych rozwiązań 1 Wprowadzenie Architektura SOA (ang Service Oriented Architecture [13]) odwzorowuje koncepcję przetwarzania rozproszonego zorientowanego na usługi, która zyskuje coraz szersze zainteresowanie w środowisku naukowym i, co równie doniosłe, na rynku informatycznym, czego dobitnym wyrazem jest wsparcie niewątpliwych potentatów tego rynku, jak IBM, Oracle, Microsoft, Apache oraz wielu innych Mnogość dostępnych technologii i trudności w ich wzajemnej współpracy rodzą potrzebę wypracowania i rozpropagowania standardowych rozwiązań Organizacje, które podjęły się tego zadania, w tym W3C (World Wide Web Consortium), OASIS (Organization for the Advancement of Structured Information Standards) czy WS-I (Web Services Interoperability Organization), opracowały już obszerny zbiór standardów łącznie z szeregiem rekomendacji i scenariuszy wykorzystania (ang profiles) Paradygmat SOA jest obecnie powszechnie implementowany poprzez zbiór technologii określanych wspólnie jako Web Services (WS) Architektura Web Services [3] dostarcza koncepcyjnego modelu realizacji usług WS i definiuje relacje pomiędzy komponentami danego modelu Społeczność WS (w tym w szczególności organizacje W3C, OASIS i WS-I) dostarcza standardy i profile służące tworzeniu współoperatywnych aplikacji WS działających na różnych platformach Przykładowo, przyjmuje się że interfejs serwisu WS jest opisany w formacie WSDL [7], a komunikacja odbywa się poprzez protokół SOAP [9] bazujący na składni XML [4], w połączeniu z innymi standardowymi mechanizmami usług WWW Język XML oferuje standardowy, elastyczny format danych, kluczowy dla technologii WS Z kolei protokół SOAP dostarcza standardowych mechanizmów do wymiany wiadomości XML Natomiast WSDL pozwala na opis interfejsu serwisu łącznie z abstrakcyjnym opisem wymiany wiadomości pomiędzy agentami (aplikacjami) i powiązaniem z konkretnym protokołem transportowym oraz formatem wiadomości W przypadku systemów rozproszonych problematyka bezpieczeństwa przetwarzania danych i komunikacji od wielu lat odgrywa jedną z kluczowych ról w konstrukcji i implementacji zarówno samych aplikacji, jak i środowiska ich pracy Trudność rozwiązywania problemów bezpieczeństwa rośnie wraz ze skalą rozproszenia systemu i jego heterogenicznością Dodatkowym czynnikiem, współcześnie zyskującym na wadze, są coraz częstsze przypadki realizacji przetwarzania w środowisku obejmującym różne domeny administracyjne Rodzi to na ogół potrzebę zdefiniowania wymagań odnośnie bezpieczeństwa, niezależnie od samego przetwarzania, w postaci polityki bezpieczeństwa Przypadek ten dotyczy w szczególności systemów rozproszonych zorientowanych na usługi, w których przetwarzanie jest realizowane przy pomocy kompozycji (o strukturze 1 Badania, których wyniki są przedstawione w tym artykule, były częściowo sfinansowane przez Ministerstwo Nauki i Szkolnictwa Wyższego z Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Innowacyjna Gospodarka projekt nr OIG010301-00-008/08 1/10

niekiedy bardzo złożonej) wielu niezależnych usług, podlegających pod oddzielne domeny administracyjne posiadające odmienne wymagania odnośnie bezpieczeństwa Struktura niniejszej pracy jest następująca W punkcie 2 pokrótce omówiono podstawową problematykę bezpieczeństwa bezpośrednio związaną ze specyfiką architektury SOA, a w szczególności zagadnienia dotyczące definicji i realizacji polityki bezpieczeństwa W kolejnym punkcie przedstawiono przykład rozwiązania części omawianych problemów środowisko ORCA Punkt 4 zawiera krótkie podsumowanie rozważań 2 Bezpieczeństwo w architekturze SOA Architektura SOA to paradygmat tworzenia rozproszonych aplikacji w formie usług (serwisów) w luźno powiązanym środowisku rozproszonym obejmującym wiele różnych domen Serwis jest abstrakcyjną jednostką, która reprezentuje pewną funkcjonalność (lub zasoby) i komunikuje się poprzez wysyłanie i odbieranie wiadomości Udostępnienie serwisu dla klientów sprowadza się do dostarczania interfejsu oraz wymagań dotyczących zarówno żądań dostępu do serwisu jak i jego odpowiedzi Niezbędne jest, aby forma tych informacji zarówno syntaktyczna jak i semantyczna, była szeroko dostępna i zrozumiała Klient odwołuje się tylko do interfejsu danego serwisu całkowicie abstrahując od jego implementacji, a komunikacja jest sterowana serią interakcji Oczywiście, odpowiednia polityka zawierać będzie (lub przynajmniej powinna) zbiór ograniczeń i wymagań dotyczących interakcji SOA Polityka dotyczyć może w istocie wielu aspektów, zarówno biznesowych jak i technicznych Należą do nich między innymi: zarządzanie i nadzorowanie systemu, bezpieczeństwo i ochrona, gwarancja jakości usług, godziny pracy i wiele innych Podczas gdy lokalna polityka opisuje punkt widzenia każdej ze stron biorących udział w komunikacji, kontrakt określa wspólne uzgodnienia obu stron interakcji dotyczące nawiązywania połączenia, ustalone w zakresie wyspecyfikowanym przez ich polityki bezpieczeństwa (lub globalną politykę) Na kontekst interakcji składa się zatem zestaw informacji na temat jednostek interakcji, aspektów technicznych połączenia (infrastruktury) i zawartego kontraktu 21 Specyfika SOA w kontekście wymagań bezpieczeństwa Usługi w architekturze SOA muszą zachowywać następujące własności paradygmatu SOA, w szczególności [2,11]: wysoką współoperatywność, niezależnie od możliwej wielorakości środowisk i technologii implementacji poszczególnych usług, co osiągnięte może być poprzez jednoznaczne wyspecyfikowanie wymagań i oczekiwań stron komunikacji na poziomie interfejsu usługi; niezależność od infrastruktury komunikacyjnej przy zachowaniu zgodności z szerokim zakresem dotychczas przyjętych standardów komunikacji, zarządzania, opisu interfejsów, realizacji polityki itp; dostępność efektywnego mechanizmu dynamicznego uzgodnienia parametrów realizacji interakcji, niezbędnych do jej przeprowadzenia (kontraktu); możliwość budowania złożonych aplikacji (usług) poprzez kompozycję usług złożonych z usług elementarnych, dając w efekcie zagnieżdżenie interakcji, być może wielopoziomowe; możliwość integracji luźno powiązanych aplikacji o szerokiej skali rozproszenia obejmującej potencjalnie wiele odrębnych domen administracyjnych (federacja) Własności te stanowią wyróżnik technologii implementujących usługi w architekturze SOA również w kontekście bezpieczeństwa, co będzie się przekładać na konieczność dostarczenia zabezpieczeń dobrze wyprofilowanych dla SOA i odpowiadających możliwym zagrożeniom, i to nie wyłącznie specyficznym dla przetwarzania zorientowanego na usługi, ale również tym dotyczącym wszelkich systemów przetwarzania rozproszonego 22 Zagrożenia i zabezpieczenia Interakcje w środowisku SOA, jako oparte na wymianie wiadomości, narażone są na wiele różnych rodzajów zagrożeń typowych dla takiej komunikacji Należą do nich min: podszywanie się pod tożsamość stron interakcji, polegające na nadużywaniu relacji zaufania (określonej w kontrakcie interakcji); 2/10

naruszenie poufności i integralności interakcji wiadomości mogą zostać podsłuchane i/lub zmodyfikowane częściowo lub w całości (np atakujący może zmienić strukturę wiadomości lub np dołączyć nieautoryzowane załączniki); ataki typu man in the middle, które mogą powodować zakłócenie interakcji poprzez osobę pośredniczącą w komunikacji niezauważalnie dla końcowych uczestników interakcji; ataki typu DoS (Denial of Service) i DDoS (Distributed Denial of Service) na usługę sieciową w celu naruszenia jej dostępności; luźne powiązanie komponentów aplikacji i wysoka skala ich rozproszenia utrudnia spójne zarządzanie bezpieczeństwem i egzekwowanie polityki bezpieczeństwa zarówno w samej komunikacji, jak i przetwarzaniu danych w poszczególnych komponentach Aplikacje SOA zatem wymagają zapewnienia: wzajemnego uwierzytelniania uczestników interakcji np poprzez użycie tokenów bezpieczeństwa zawartym w wymienianych wiadomościach, a generowanych być może za pośrednictwem zaufanych trzecich stron, ochrony informacji zawartych w wiadomości przed nieautoryzowanym dostępem w trakcie transmisji (poufność), weryfikacji autentyczności i integralności określonego zakresu wiadomości (np całości, każdego załącznika z osobna itp), wprowadzenia wymienionych wyżej mechanizmów i sterowania nimi niezależnie od samej aplikacji (usługi i jej klienta), np poprzez pośredniczące w interakcji moduły egzekwujące politykę bezpieczeństwa, realizacji tych mechanizmów zgodnie z przyjętymi standardami, tj przy wykorzystaniu powszechnie dostępnych protokołów komunikacyjnych, algorytmów kryptograficznych, formatów certyfikatów itp Ponieważ szczegółowe omówienie sposobów spełnienia wszystkich powyższych wymagań znacznie wykroczyłoby poza ramy niniejszego artykułu, przedstawimy w tym miejscu tylko przykład popularnych metod ochrony komunikacji pomiędzy rozproszonymi aplikacjami Typowo, w celu ochrony komunikacji, spotyka się dwa schematy zabezpieczeń: Transport-level security oraz Message-level security Transport-level security Jedną z możliwych metod ochrony komunikacji pomiędzy dwoma uczestnikami (point-to-point) jest schemat Transport-level security (Rysunek 1) W schemacie tym komunikacja odbywa się poprzez szyfrowany tunel ustanowiony pomiędzy uczestnikami interakcji (tu: klientem C i serwerem S) Ustanowienie takiego tunelu wymaga najpierw procesu wzajemnego uwierzytelnienia obu stron Tunel może zapewniać zarówno poufność danych poprzez szyfrowanie całej transmisji jak i ich integralności poprzez podpis cyfrowy C S sieć publiczna tunel Rysunek 1 Schemat Transport-level security Najbardziej znaną implementacją mechanizmu Transport-level security jest protokół SSL (Secure Socket Layer) i jego następca TLS (Transport-Layer Security) Tunelowanie poprzez SSL/TLS ruchu HTTP jest 3/10

powszechnie określane nazwą HTTPS (HTTP Secured) Protokół SSL realizuje on kilka funkcji dotyczących bezpieczeństwa: kryptograficzne uwierzytelnianie obu stron komunikacji, poufność i integralność danych zapewniona dzięki szyfrowaniu, wymianę kluczy Istotną cechą Transport-level security jest praktyczne uniemożliwienie działania jakiekolwiek pośrednika w komunikacji Przetwarzanie informacji możliwe jest bowiem jedynie poza tunelem Ponadto schemat ten nie oferuje podmiotowi interakcji kontroli nad realizacją zabezpieczeń w przypadku zagnieżdżenia wywołań, ani nie pozwala na selektywne aplikowanie zabezpieczeń do wybranych elementów wiadomości aplikacyjnych Zaletą tego podejścia jest jednakże możliwość wykorzystania wspomagania sprzętowego do zwiększenia wydajności Message-level security Schemat Message-level security polega na zabezpieczaniu komunikacji na poziomie każdej wiadomości oddzielnie (Rysunek 2) Wszelkie mechanizmy ochrony włączane są bezpośrednio w ciało wiadomości, pozostawiając jednak czytelne informacje sterujące, jak np adresowe Dzięki temu możliwe jest przetwarzanie wiadomości również przez pośredników komunikacji bez naruszenia ochrony C M 1 M 6 S sieć M 5 M 4 M 3 M 2 Rysunek 2 Schemat Message-level security Należy zauważyć, że zastosowanie tego schematu może w ogólności odznaczać się mniejszą wydajnością w porównaniu z Transport-level security, ponieważ każda wiadomość z osobna jest szyfrowana i podpisywana powyżej poziomu transportu Jednakże istnieje możliwość ograniczenia kosztu operacji kryptograficznych poprzez selektywne zabezpieczanie jedynie części wiadomości Przykładami znanych realizacji schematu Message-level security mogą być Secure Multipurpose Internet Mail Exchange (S/MIME) czy Pretty Good Privacy dla usługi poczty elektronicznej Możliwość stosowania elementów pośredniczących w komunikacji (w szczególności do samego wprowadzania zabezpieczeń) oraz możliwość selektywnego stosowania zabezpieczeń w odniesieniu do wybranych fragmentów komunikatów, czyni ze schematu Message-level security bardziej odpowiedni wybór dla środowiska SOA Zgodnie z tą obserwacją, zaproponowano zbiór standardów zabezpieczeń komunikacji w modelu WS obejmujący min WS-Security, WS-SecureConversations, WS-Trust, WS-Federation, SOAP Messages with Attachments, WS-Policy, WS-PolicyAttachment, WS-SecurityPolicy oraz Security Assertion Markup Language (SAML) Standard WS-Security (WSS [16]) definiuje sposoby podpisywania cyfrowego i szyfrowania wiadomości protokołu SOAP, wykorzystując w tym celu istniejące rekomendacje XML DSIG, XML Encryption, XML Key Management Specification (XKMS) Rekomendacje te pozostawiają implementacjom duży margines swobody, co w praktyce stało się istotnym utrudnieniem w osiągnięciu zamierzonego stopnia współoperatywności, toteż zaproponowano dodatkową rekomendację WS-I Basic Security Profile [14] ograniczającą zakres standardu WSS do możliwie minimalnego zbioru mechanizmów potencjalnie wspólnych dla bieżących i przyszłych implementacji Token bezpieczeństwa (ang security token) Token bezpieczeństwa to specjalny element nagłówka dotyczący bezpieczeństwa (Rysunek 3) Może on zawierać np niezbędne klucze, dane uwierzytelnienia czy certyfikat poświadczający tożsamość podmiotu interakcji W modelu WS strukturę tokenów bezpieczeństwa definiuje standard WSS Przykładowo, w celu 4/10

przekazania parametrów uwierzytelniających, podmiot interakcji może dołączyć do swojego żądania SOAP tzw username token zawierający identyfikator podmiotu (np nazwę użytkownika) oraz hasło, bądź przekazać opisujący jego tożsamość certyfikat X509 wystawiony przez urząd certyfikujący zaufany przez drugą stronę interakcji SOAP Envelope SOAP Header Security Header SOAP Body Dane zabezpieczone przez WSS (o jawnej lub zaszyfrowanej treści) Security Header Timestamp Token Certificate Token Signature Token Encryption Key Token Rysunek 3 Schemat koperty SOAP z przykładowymi nagłówkami WSS 23 Model przetwarzania polityki bezpieczeństwa W celu umożliwienia definiowania i przetwarzania polityki bezpieczeństwa należy wprowadzić pewien model funkcjonalny, dostosowany do specyfiki SOA Fundamentalne pojęcia stosowane w tym modelu to: przedmiot polityki np serwis lub zasób; podmiot polityki np klient uzyskujący dostęp do przedmiotu polityki; reguły polityki definiujące wymagania dotyczące zabezpieczeń zastosowane wobec podmiotu; mechanizmy egzekwowania polityki bezpieczeństwa Rysunek 4 przedstawia graficznie architekturę modelu polityki bezpieczeństwa, uwzględniając przepływ danych pomiędzy komponentami odpowiedzialnymi za definicję i realizację reguł polityki Rozróżnienie tych podstawowych elementów związanych z polityką bezpieczeństwa pozwala na efektywne oddzielenie samych danych polityki od jej implementacji Nazwy jednostek widoczne na rysunku oznaczają: PAP Policy Administration Point, wykorzystywany jest do zdefiniowania reguł dostępu do zasobów, PIB Policy Information Base, zawiera zasady określone przez PAP, PDP Policy Decision Point, podejmuje decyzje o zatwierdzeniu żądania dostępu do zasobu w oparciu o reguły zawarte w PIB, Policy Enforcement Point, generuje prośbę o decyzję do PDP i podejmuje odpowiednią akcję w związku konkretną otrzymaną odpowiedzią; moduły, jakkolwiek dostarczane niezależnie do aplikacji (usług i ich klientów) muszą być w takim stopniu zintegrowane z aplikacjami, aby mogły pośredniczyć w komunikacji między nimi Rdzeniem tego modelu jest współpraca PDP (który decyduje o kontroli dostępu na podstawie reguł polityki) z (który przechwytuje żądania dostępu do usługi S składane przez klientów i egzekwuje decyzje PDP, dopuszczając lub odmawiając żądanego dostępu) Typowo przyjmuje się, że w przypadku gdy z powodu braku odpowiednich reguł zawartych w PIB jednostka PDP nie potrafi podjąć decyzji o autoryzacji dostępu do zasobów, może zamiast tego zwrócić informację o błędzie 5/10

PAP PIB PDP S C Rysunek 4 Architektura modelu przetwarzania polityki bezpieczeństwa Federacje i koncepcja rozproszonego zaufania W scenariuszu federacji istnieją co najmniej dwie współpracujące w pewnym kontekście odrębne organizacje (domeny): A oraz B tworząc razem tzw wirtualną organizację Przyjmijmy że organizacja B posiada zasoby (usługi), do których klient z organizacji A chce uzyskać dostęp W klasycznym podejściu organizacja B wymaga od użytkownika dostarczenia prawidłowych danych uwierzytelniających Dodatkowo zapewne będzie wymagać, aby użytkownik jawnie uzyskał autoryzację dostępu do określonych zasobów Podejście to ma istotne wady w SOA Organizacja B musi bowiem dodatkowo zarządzać danymi uwierzytelniającymi także użytkowników organizacji A Użytkownicy z organizacji A muszą z kolei utrzymywać dodatkowy zbiór danych uwierzytelniających dla domeny B W efekcie architektura taka jest mało skalowalna Alternatywnie, można wykorzystać mechanizm rozproszonego zaufania, dzięki któremu klienci z organizacji A przesyłają wraz z żądaniem dostępu do zasobów organizacji B, poświadczenia potwierdzające ich przynależność do zaufanej przez organizację B domeny Uwierzytelnienie dostępu w domenie B odbywa się poprzez weryfikację prawidłowości samego poświadczenia i jest niezależne od procesu uwierzytelniania klienta w jego oryginalnej domenie A Zatem nie potrzeba utrzymywać zduplikowanych danych uwierzytelniających, co istotnie upraszcza zarządzanie nimi w każdej z domen Pozostaje jedynie do rozwiązania problem określania zaufania i weryfikacji poświadczeń Najbardziej reprezentatywnym rozwiązaniem jest tu certyfikacja 24 Języki definicji polityk bezpieczeństwa Zbiór mechanizmów, nawet poddany skutecznej próbie standaryzacji, to jeszcze zbyt mało dla efektywnego wprowadzenia polityki bezpieczeństwa w środowisku rozproszonym Potrzebny jest jeszcze język definicji polityki bezpieczeństwa, który pozwoli na wyspecyfikowanie reguł polityki i ich automatyczne aplikowanie do konkretnych interakcji W środowiskach rozproszonych spotyka się wiele języków definicji polityki bezpieczeństwa, często dedykowanych do odmiennych zastosowań i wykazujących różne możliwości, min XACML, Ponder i Ponder2, SecPAL, Cassandra, PERMIS oraz języków wykorzystujących UML UMLsec i SecureUML Najbardziej reprezentatywne przykłady pokrótce przedstawimy poniżej Język XACML (Extensible Access Control Markup Language, [15]) wykorzystuje do zapisu reguł polityki składnię XML Sposób zapisu polityki, wiąże się z łatwością zrozumienia reguł polityki, integracją z istniejącymi systemami i późniejszą modyfikacją reguł Wybór języka XML do zapisu reguł polityki bezpieczeństwa pociąga za sobą istotne konsekwencje Język XML jest podstawowym formatem reprezentacji danych w modelu WS, zatem XACML łatwo będzie integrować się z istniejącymi rozwiązaniami w tym modelu Elementy składniowe języka przekładają się na nazwy struktur XML, co potencjalnie zwiększa czytelność reguł Z drugiej strony zastosowanie języka XML niesie za sobą istotną niedogodność: format XML powoduje, że nawet proste definicje reguł zawierają dużo znaczników oraz atrybutów Przy budowie bardziej skomplikowanych reguł narażamy się na utratę kontroli nad całością tworzonej polityki, zatem paradoksalnie gubimy jej czytelność Język Ponder [8] to opracowany na potrzeby definicji polityki bezpieczeństwa całkowicie nowy język zorientowany obiektowo, z pełną gramatyką, składnią, podstawowymi klasami oraz wyrażeniami W przeci- 6/10

wieństwie do języka XACML, zrozumienie znaczenia poszczególnych elementów bez znajomości gramatyki języka jest niemożliwe W zamian otrzymujemy zwięzłe zapisy polityki, które umożliwiają zapisanie nawet rozbudowanej polityki w sposób dużo bardziej dokładny i przejrzysty niż w języku XACML W przypadku języka SecPAL [1] stworzono deklaratywny język, który przypomina języki naturalne, dzięki czemu jest prosty do ogarnięcia i może być łatwo odczytany nie tylko przez wykwalifikowanego oficera bezpieczeństwa W przeciwieństwie do pozostałych przedstawionych języków, SecPAL nie wymaga znajomości skomplikowanej składni, ani użycia rozbudowanego zapisu do budowania polityki bezpieczeństwa 2 Co ciekawe, gramatyka języka SecPAL oparta jest na języku logiki Datalog [12], co ułatwia przeprowadzenie procesu decyzyjnego w zbiorze reguł oraz formalnej weryfikacji poprawności tego zbioru Oczywiście język definicji polityki bezpieczeństwa dla środowiska SOA powinien maksymalnie wspierać wymagania dla środowisk SOA określone w pkt 21 Istniejące języki, w tym te przedstawione wyżej, służą głównie do realizacji kontroli dostępu i w większości przypadków oferują dobre wsparcie dla przykładowo federacji domen, delegacji uprawnień (również interdomenowej) oraz rozproszonego zaufania Jednakże, zgodnie z naszą wiedzą, tylko jeden z dotychczas zaproponowanych języków przedstawiony dalej umożliwia automatyczną negocjację zabezpieczeń komunikacji (kontraktu bezpieczeństwa), co jest niezbędne przy dynamicznej kompozycji usług SOA W odróżnieniu od powszechnie dotąd spotykanego lokalnego definiowania wymaganych zabezpieczeń na poziomie konkretnej aplikacji (usługi) lub jej platformy aplikacyjnej 3 jako część definicji interfejsu usługi, wymagania te powinny być specyfikowane i kontrolowane przez politykę bezpieczeństwa (uosabianą przez oficera bezpieczeństwa), nie natomiast przez projektanta aplikacji czy administratora platformy aplikacyjnej (co w rzeczywiście rozproszonym środowisku jest nieakceptowane) To właśnie polityka bezpieczeństwa jest powołana by decydować o obowiązkach stron (i to obu nie tylko klienta wobec usługi) w kontekście bezpieczeństwa Zatem język definicji polityki bezpieczeństwa oraz środowisko jej egzekwowania powinno dostarczać niezbędnego wsparcia i w tym zakresie Taki język i środowisko, pod nazwą ORCA, zostały opracowane w ramach projektu IT-SOA [10] Poniższa część niniejszego artykułu przedstawia je pokrótce 3 Środowisko ORCA Istotnym wyróżnikiem języka ORCA (Obligations-Restrictions-Capabilities-Audit [5]) jest obecność specjalnych typów reguł umożliwiających dynamiczne ustanowienie kontraktu bezpieczeństwa Oprócz typowych dla języków polityki bezpieczeństwa reguł kontroli dostępu (Restrictions), ORCA pozwala wyspecyfikować każdej stronie interakcji wymagania stawiane stronie drugiej (w postaci reguł Obligations) oraz jawnie określić jakie dozwolone mechanizmy zabezpieczeń strona może zaoferować tej drugiej, aby spełnić jej wymagania (poprzez reguły Capabilities) Interakcja SOA może zostać zrealizowana przez środowisko wyłącznie jeśli jednocześnie pozwalają na to ograniczenia dostępu oraz udało się wynegocjować kontrakt (istnieje niepusta część wspólna Obligations klienta usługi i Capabilities dostawcy usługi oraz niepusta część wspólna Obligations dostawcy i Capabilities klienta) Ponadto, realizacja interakcji może być obwarowana koniecznością rejestracji wskazanych zdarzeń (np faktu wywołania usługi, tożsamości podmiotów, rodzaju faktycznie wykorzystanych zabezpieczeń itp) na podstawie reguł Audit 31 Architektura środowiska Realizacją polityki zajmuje się rozproszone środowisko o architekturze będącej rozszerzeniem rozproszonego modelu, który przedstawiał Rysunek 4 Rozszerzenie dotyczy przede wszystkim wsparcia dla interakcji międzydomenowych oraz audytu zdarzeń związanych z egzekwowaniem polityki bezpieczeństwa Widoczne na poniższym schemacie modelu rozszerzonego (Rysunek 5) nowe elementy środowiska to: PIP (ang Policy Information Point) dostarcza w bieżącej domenie wszystkich informacji nieobecnych w lokalnym PIB i związanych z interakcjami międzydomenowymi, np w obrębie domen sfederowanych w wirtualnej organizacji, 2 należy jednak zaznaczyć, iż w istocie wersja 2 środowiska Ponder oferuje na poziomie interfejsu użytkownika również język wzorowany na naturalnym 3 Przykładowo, platforma Microsoft WCF pozwala na statyczne określenie wymaganych zabezpieczeń w definicji tzw dowiązania (ang binding), którym posługiwać się będzie usługa (parametry dowiązania można określić w kodzie aplikacji lub w zewnętrznym pliku konfiguracyjnym) Podobnie wygląda to na innych platformach z dokładnością do stosowanej terminologii (np w przypadku IBM WebSphere mówi się o deployment descriptor) wszystkie te mechanizmy pozwalają jedynie na lokalne określenie wymagań poszczególnych aplikacji 7/10

PAL (ang Policy Audit Log) rejestrator zdarzeń dotyczących bezpieczeństwa interakcji, PDP cache replikowana pamięć podręczna decyzji PDP usprawniająca efektywność realizacji rozproszonej polityki SOA Istotną cechą środowiska ORCA jest fakt, że komponenty PDP, PIB, PIP i PAL są usługami Stąd też interakcje z tymi komponentami same mogą podlegać regułom polityki SOA I tak przykładowo, rolę klientów usługi PDP pełnią oczywiście moduły, dowiązane do dostawców usług (S) i aplikacji klienckich (C) Sposób owego dowiązania jest zależny od konkretnej platformy aplikacyjnej i musi umożliwiać takie obudowanie aplikacji, aby nie mogła ona realizować w systemie SOA komunikacji z pomięciem pośrednictwa Moduły w środowisku ORCA nie tylko egzekwują decyzje kontroli dostępu do usług, ale pobierają i realizują zdefiniowane dla podmiotów (zarówno S, jaki i C) Obligations i Capabilities One również zajmują się realizacją kontrolowanej przez politykę delegacji uprawnień w przypadku zagnieżdżenia usług Podobnie, moduł PIB (pełniący rolę repozytorium reguł polityki) jest w środowisku ORCA usługą, z której korzystają PDP (do pozyskiwania reguł polityki pasujących do kontekstu żądania dostępu zgłoszonego przez, w tym nie tylko reguł Restrictions ale również Obligations, Capabilities i Audit) oraz PAP (będący aplikacją kliencką służącą do edycji reguł polityki bezpieczeństwa, wzbogaconą o mechanizmy weryfikacji poprawności polityki) PIP PAP PIB PAL PDP PDP cache PDP cache S C Rysunek 5 Architektura środowiska ORCA 32 Język ORCA Środowisko ORCA jest uzupełnione nowym językiem definicji polityki bezpieczeństwa, którego wyróżnikiem jest obecność reguł Obligations i Capabilities, niezbędnych do automatycznego negocjowania zabezpieczeń interakcji w trakcie dynamicznej kompozycji usług Język ORCA cechuje również: prostota składniowa (oferująca dużą intuicyjność definicji reguł) osiągnięta poprzez zastosowanie ograniczonej składni języka naturalnego; formalna weryfikowalność polityk (np detekcję redundancji polityki czy konfliktu reguł itp); modularność i rozszerzalność, poprzez takie mechanizmy jak agregacja reguł, czy predykaty (budowane i samodzielnie definiowane) Szczegółowe omówienie składni języka wykracza poza ramy artykułu, dlatego poniżej przedstawiony zostanie jedynie prosty przykład ilustrujący wybrane cechy języka W tym celu posłużymy się bardzo uproszczoną, ale kompletną polityką bezpieczeństwa dla pojedynczego zbioru usług w hipotetycznej domenie administracyjnej, którą przedstawia Listing 1 Dla przejrzystości przykładu nie zawarto w polityce reguł typu Audit 8/10

Pierwsze dwie linie przykładu zawierają reguły języka ORCA dotyczące podmiotu przyszłych interakcji, użytkownika JBond Reguła 1 to Capability i specyfikuje ona dwa dopuszczane sposoby uwierzytelniania żądań zlecanych przez użytkownika Natomiast w linii 2 mamy regułę Obligation, która narzuca partnerom interakcji z użytkownikiem (zatem będą to wywoływane przez niego usługi) obowiązek cyfrowego podpisywania oczywiście ich odpowiedzi (atrybut xmlsig#hmac-sha1 jest nazwą stosowaną przez standard WSS) W dalszej części polityki mamy reguły dotyczące usług: Obligation uwierzytelniania klientów (w linii 3), oraz składane deklaracje Capabilities odnośnie możliwego (tj na żądanie klienta) szyfrowania (linia 4) i podpisywania cyfrowego (linia 5) komunikacji Listing 1 Przykładowa polityka bezpieczeństwa w języku ORCA 1 User JBond can authenticate with {username, X509certificate} 2 User JBond requires to sign with xmlsig#hmac-sha1 3 Service http://secret/* requires to authenticate with X509certificate 4 Service http://secret/* can encrypt with {xmlenc#tripledes-cbc, xmlenc#aes128-cbc} 5 Service http://secret/* can sign with {xmlsig#hmac-sha1} 6 User JBond can access service http://secret/service1 for invocation 7 Role manager can access service http://secret/* for full access, from local_network 8 User JBond can delegate to service http://secret/service1 any_access for service http://secret/* 9 Service http://secret/service1 can access service http://secret/* for invocation, on behalf of user JBond Typowo dotąd spotykanym zastosowaniem polityki bezpieczeństwa jest autoryzacja dostępu do zasobów środowiska w przypadku SOA będą nimi głównie usługi Przykład służącej do tego celu w języku ORCA reguły typu Restriction widzimy w linii 6, gdzie definiujemy uprawnienie użytkownika JBond do bezpośredniego wywoływania wybranej usługi (service1) Dla uzupełnienia przykładu, podmiotem następnej reguły Restriction (linia 7) jest nie pojedynczy użytkownik, lecz rola manager (do której przynależność użytkowników jest określana dynamicznie, w trakcie decydowania przez PDP o dopuszczeniu lub odrzuceniu konkretnego żądania dostępu) Tym razem, reguła jest obwarowana warunkiem będzie zastosowana jeśli spełniony zostanie predykat from local_network, który reprezentuje prosty przypadek ograniczenia lokalizacji, z jakiej dopuszczalne jest przyjęcie żądania dostępu Ostatnia część polityki zawiera przykład definicji delegacji uprawnień, mechanizmu powszechnie wykorzystywanego w przetwarzaniu zorientowanym na usługi I tak, zgodnie z regułą 8, użytkownik ma prawo oddelegować posiadane uprawnienia dostępu do zasobów innemu podmiotowi usłudze service1, którą będzie wywoływał, a która będzie realizować dalej pewne operacje (np dostęp do innych usług) w jego imieniu W tym przypadku, polityka zezwala użytkownikowi JBond na oddelegowanie usłudze service1 dowolnych swoich uprawnień (any_access), chociaż omawiana reguła mogłaby śmiało ograniczyć zbiór delegowanych uprawnień Co więcej, w języku ORCA delegacja podlega również ograniczeniom poprzez warunkową regułę Restriction linia 9 zawiera przykład, w którym zawężamy usłudze service1 zbiór uprawnień otrzymanych w drodze delegacji od użytkownika JBond, do jedynie operacji wywołania (invocation) i, wobec tego, tylko taki dostęp będzie respektowany w przypadku posługiwania się przez service1 delegacją (on behalf of) 4 Podsumowanie Jakkolwiek przetwarzanie zgodne z paradygmatem SOA jest bardzo obiecującym i intensywnie rozwijającym się obszarem rynku informatycznego, to jednak pełne wykorzystanie jego zalet wymaga rozwiązania wielu problemów, w szczególności tych związanych z bezpieczeństwem Wśród nich jedną z niewątpliwie pierwszorzędnych kwestii jest zarządzanie polityką bezpieczeństwa, w tym jej definiowanie i egzekwowanie O ile implementacja zabezpieczeń przez różne platformy aplikacyjne w sposób umożliwiający uzyskanie pełnej współoperatywności usług jest coraz bliższa, a to dzięki zaawansowaniu w standaryzacji będącemu efektem prac takich organizacji jak W3C, OASIS czy WS-I, o tyle wciąż brakuje standardów i środowisk realizacji polityki bezpieczeństwa dla SOA Istniejące propozycje, często adaptowane z innych obszarów, nie wypełniają tej luki Język definicji polityki bezpieczeństwa dla SOA musi bowiem umożliwiać określanie wymagań stawianych stronom interakcji niezbędnych do ustanowienia kontraktu, czyli dynamicznego wynegocjowania zbioru obopólnych wymagań w ramach, wcześniej określonych, dopuszczalnych możliwości obu stron Środowisko ORCA opracowane w ramach projektu IT-SOA, jest pierwszym krokiem na drodze do uzyskania niezbędnej funkcjonalności języka definicji polityki dla SOA 9/10

Wiele dalszych kierunków pozostaje do zgłębienia Przykładowo, praktyka pokazuje iż opracowanie dobrej polityki dla dużego systemu jest niezwykle trudne Poprawność polityki jest zagadnieniem badanym od szeregu lat i nadal czeka na zadowalające rezultaty Środowiska realizacji polityki często uciekają się do języków formalnych w celu przeprowadzenia wnioskowania o wystąpieniu w danej polityce znanych perturbacji (np reguł, które w trakcie ewaluacji polityki okazują się być wzajemnie konfliktowe) Również w kontekście SOA, ta problematyka nie doczekała się jeszcze pełnego rozpoznania i nie zaproponowano dotychczas satysfakcjonujących rozwiązań Podobnie kontrola nad danymi przesyłanymi w czasie interakcji (ang Information Flow Control) jest zagadnieniem dotąd nie eksploatowanym dostatecznie w kontekście architektury SOA Z innej strony można zaobserwować, że pojęcie polityki jest w istocie szerokie i jej zakres może naturalnie wykraczać poza kwestie samego bezpieczeństwa Niewątpliwie równie interesującą płaszczyzną definicji wymagań na poziomie polityki może być niezawodność Być może zatem takie środowiska jak ORCA warto rozszerzyć o obsługę reguł opisujących także niezawodność, jako kolejny kluczowy element kontraktu interakcji SOA Literatura: 1 Becker MY, Fournet C, Gordon AD, SecPAL: Design and Semantics of a Decentralized Authorization Language, Technical Report MSR-TR-2006-120, Microsoft Research, Cambridge, 2006 2 Bertino, E, Martino, L, Paci, F, Squicciarini, A, Security for Web Services and Service-Oriented Architectures, Springer, 2010 3 Booth David, Haas Hugo, McCabe Francis, Newcomer Eric, Champion Michael, Ferris Chris, Orchard David, Web Services Architecture, W3C Working Group Note, 2004 4 Bray T, Paoli J, Sperberg-McQueen CM, Maler E, Extensible Markup Language (XML) 10 (Second Edition), W3C Recommendation, 2000 5 Brodecki B, Sasak P, Szychowiak M, Security Policy Definition Framework for SOA-based systems, Proceedings of the 10 th Int l Conference on Web Information Systems Engineering, LNCS 5802, Springer-Verlag, 2009 6 Cantor S, Kemp J, Philpott R, Maler E, Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V20, OASIS Open, 2005 7 Chinnici R, Gudgin M, Moreau J-J, Schlimmer J, Weerawarana S, Web Services Description Language Version 20: Core Language, W3C Working Draft, 2003 8 Damianou N, Dulay N, Lupu E, Sloman M: Ponder: A language for specifying security and management policies for distributed systems, Technical Report, Imperial College, London, 2000 9 Gudgin M, Hadley M, Mendelsohn N, Moreau J-J, Nielsen H, SOAP Version 12 Part 1: Messaging Framework, W3C Recommendation, 2003 10 IT-SOA, Nowe technologie informacyjne dla elektronicznej gospodarki i społeczeństwa informacyjnego oparte na paradygmacie SOA, Projekt realizowany w ramach Programu Operacyjnego Innowacyjna Gospodarka: Działanie 131, http://wwwsoaedupl 11 Kanneganti Ramarao, Chodavarapu Prasad: SOA Security, Manning Publications Co, 2008 12 Li N and Mitchell J C, Datalog with constraints: A foundation for trust management languages In Proc 5 th Int l Symp Practical Aspects of Declarative Languages, 2003 13 MacKenzie C M, Laskey K, McCabe F, Brown P, Metz R, Reference Model for Service Oriented Architecture, OASIS Committee Draft 10, OASIS Open, 2006 14 McIntosh M, Gudgin M, Morrison S K, Barbir A, Basic Security Profile Version 10, WS-I organization, 2007 15 Moses T, extensible Access Control Markup Language (XACML) version 20, OASIS Open, 2005 16 Nadalin A, Kaler Ch, Monzillo R, Hallam-Baker P, Web Services-Security: SOAP Message Security 11 (WS- Security 2004), OASIS Open, 2006 10/10