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 integrite komunikácie.
Webová služba môže byť zabezpečená na týchto troch úrovniach [16]:
- na úrovni transportu, respektíve platformy,
- na úrovni správ,
- na úrovni aplikácie.
Prvé dve vymenované možnosti zabezpečujú komunikáciu medzi dvoma koncovými bodmi, pri poslednom variante ide o vlastný model zabezpečenia.
Zabezpečenie na úrovni transportu alebo platformy
Tento model 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.
Hlavnou výhodou tohto typu zabezpečenia je, že ide o 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 takisto 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 takisto na poskytovateľa zabezpečenia (NTLM, Kerberos a iný).
Architektúra zabezpečenia na úrovni platformy
Volanie webovej služby klientom spúšťa nasledovný súbor udalostí [14], [16] :
1. Klient volá webovú službu. Pošle 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ácia 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 poskytne 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 vykonať autorizáciu na základe URL alebo autorizáciu 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 overovania a autorizácie je znázornený na Obr. 7.1.
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ógií,
- podporuje nepopierateľnosť.
Zabezpečenie na úrovni aplikácie
Pri tomto type zabezpečenia sú autentifikácia, autorizácia, poprípade zaistenie integrity a dôvernosti komunikácie ponechané na samotnej aplikácii. 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ácií, nie celej komunikácie, kedže proces kryptovania je sám o sebe z časového hľadiska náročný.