Zabezpečenie webových služieb
Obsah
Zabezpečenie webových služieb
V tejto kapitole sa budeme venovať spôsobom a technikám zabezpečenia webových služieb ASP.NET založených na autentifikácii, autorizácii, dôvernosti a integrity komunikácie.
Webová služba môže byť zabezpečená na týchto troch úrovniach [16]:
- na úrovni transportu, respektíve platformy,
- a na úrovni správ,
- na úrovni aplikácie.
Prvé dve vymenované možnosti zabezpečujú komunikáciu medzi dvoma koncovými bodmi, pri poslednej variante sa jedná o vlastný model zabezpečenia.
Zabezpečenie na úrovni transportu alebo platformy
Tento model sa slúži na vytvorenie bezpečnej komunikácie medzi dvoma koncovými bodmi, webovou službou a klientskou aplikáciou. Pri tomto spôsobe sa využíva zabezpečený transportný kanál na prenos SOAP správ.
- Bezpečnosť je zaistená platformou a transportným protokolom. Autentifikácia je realizovaná webovým serverom, buď s využitím základnej, digestívnej, integrovanej Windows autentifikácie alebo overovaním pomocou certifikátov. Integrita a dôvernosť komunikácie je zabezpečená napríklad pomocou protokolov SSL a IPSec.
K hlavnou výhodou tohto zabezpečenia je, že sa jedná jednoduchý, a výhodný model pre veľa scenárov v intranete, kde máme kontrolu nad konfiguráciou koncových komunikačných bodov a tak isto aj nad transportným mechanizmom.
Medzi hlavné nevýhody patrí [13]:
- Nie sú zabezpečené rôzne presmerovania v aplikačných uzloch, zabezpečené sú len koncové body komunikácie.
- Pri tomto spôsobe vzniká tesná väzba na transportný mechanizmus, nadradenú platformu a tak isto na poskytovateľa zabezpečenia (NTLM, Kerberos a iný).
Architektúra zabezpečenia na úrovni platformy
Volanie webovej služby klientom spúšťa nasledovnú sekvenciu udalostí [14], [16] :
1. Klient volá webovú službu. Predáva SOAP požiadavku.
2. Služba IIS môže vykonať autentifikáciu klienta na základe autentifikačných metód, ako sú základná, digestívna, integrovaná Windows autentifikácie alebo autentifikácia založená na certifikácii. Následne sa môže vykonať autorizácia klienta, obmedzenie niektorých IP adries, NTFS oprávnenie.
3. Pokiaľ overovanie a autorizácia klienta prebehne úspešne, služba IIS predá prístupový token overeného užívateľa do prostredia ASP.NET.
4. ASP.NET vykoná autentifikáciu klienta a následne prebehne autorizácia klienta k webovej službe ( k súboru .asmx). Autorizačný mechanizmus môže autorizácia na základe URL alebo autorizácia prístupu k súborom.
5. Následne webová služba môže použiť nejaký vzdialený prostriedok.
Webové služby nepoužívajú zosobnenie, implicitne používajú konfiguračný účet ASP.NET, v prípade potreby môžeme využiť impersonáciu (zosobnenie) kódu, a použiť identitu užívateľa, ktorý volá webovú službu.
Celý mechanizmus overovanie a autorizácie je znázornený na Obr. 7.2.
Zabezpečenie na úrovni správ
Zabezpečenie na úrovni správ predstavuje najflexibilnejší a najvýkonnejší spôsob zabezpečenia. Integrita XML správ je realizovaná pomocou digitálnych podpisov a utajenie komunikácie je zabezpečené kryptovaním.
Tento spôsob je napríklad implementovaní GXA pomocou špecifikácie WS – Security.
Výhody tohto modelu zabezpečenia sú [16]:
- bezpečnosť komunikácie je zaistená aj pri presmerovaní v aplikačných uzloch,
- nezávislosť na transportnom mechanizme,
- možnosť použiť viac typov kryptovacích technológii,
- podporuje nepopierateľnosť.
Zabezpečenie na úrovni aplikácie
Pri tomto type zabezpečenia je autentifikácia, autorizácia, poprípade zaistenie integrity a dôvernosti komunikácie ponechané na samotnej aplikácií. Tento spôsob je vhodné použiť, ak máme k dispozícii databázu existujúcich užívateľov a rolí. Ďalšou výhodou je selektívne kryptovanie prenášaných informácii, nie celej komunikácie. Nakoľko proces kryptovania je sám o sebe z časového hľadiska náročný.