Zabezpečenie webových služieb: Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
()
 
Riadok 2: Riadok 2:
 
{{Praca_uvod|7|Návrh a implementácia bezpečnostnej technológie pre webové služby|XML a webové služby |XML ASP.NET webové služby|Zabezpečennie webových aplikácií|Integrita a dôvernosť komunikácie|Autentifikácia|Autorizácia webových služieb|Zabezpečenie webových služieb|XML security|SOAP Security Enhancement  pre ASP.NET webové služby}}
 
{{Praca_uvod|7|Návrh a implementácia bezpečnostnej technológie pre webové služby|XML a webové služby |XML ASP.NET webové služby|Zabezpečennie webových aplikácií|Integrita a dôvernosť komunikácie|Autentifikácia|Autorizácia webových služieb|Zabezpečenie webových služieb|XML security|SOAP Security Enhancement  pre ASP.NET webové služby}}
 
__TOC__
 
__TOC__
= =
+
=Zabezpečenie webových služieb=
==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.
+
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 <nowiki>[</nowiki>16<nowiki>]</nowiki>:
 
Webová služba môže byť zabezpečená na týchto troch úrovniach <nowiki>[</nowiki>16<nowiki>]</nowiki>:
  
 
* na úrovni  transportu, respektíve platformy,
 
* na úrovni  transportu, respektíve platformy,
* a na úrovni správ,
+
* na úrovni správ,
 
* na úrovni aplikácie.
 
* 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.
+
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===
+
==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.
+
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.
+
: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.
+
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í <nowiki>[</nowiki>13<nowiki>]</nowiki>:
 
Medzi hlavné nevýhody  patrí <nowiki>[</nowiki>13<nowiki>]</nowiki>:
  
 
* Nie sú zabezpečené  rôzne presmerovania v aplikačných uzloch, zabezpečené sú len koncové body komunikácie.
 
* 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ý).
+
* 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===
  
====Architektúra zabezpečenia na úrovni  platformy====
+
Volanie webovej služby klientom spúšťa nasledovný súbor udalostí <nowiki>[</nowiki>14<nowiki>]</nowiki>, <nowiki>[</nowiki>16<nowiki>]</nowiki> :
  
Volanie webovej služby klientom spúšťa nasledovnú sekvenciu udalostí <nowiki>[</nowiki>14<nowiki>]</nowiki>, <nowiki>[</nowiki>16<nowiki>]</nowiki> :
+
1. Klient volá webovú službu. Pošle SOAP požiadavku.
  
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á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.
  
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 poskytne prístupový token overeného užívateľa do prostredia ASP.NET.
  
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 vykonať autorizáciu na základe URL alebo autorizáciu prístupu k súborom.
  
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.
  
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.
  
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.
  
Celý mechanizmus overovanie a autorizácie je znázornený na Obr. 7.2.
 
  
 
[[Súbor:dp_2010_jm_11.png|framed|center|Obr. 7.2 Architektúra zabezpečenia na úrovni platformy]]
 
[[Súbor:dp_2010_jm_11.png|framed|center|Obr. 7.2 Architektúra zabezpečenia na úrovni platformy]]
  
===Zabezpečenie na úrovni správ===
+
==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.
 
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.
+
Tento spôsob je napríklad implementovaný GXA pomocou  špecifikácie WS – Security.
  
 
Výhody tohto modelu zabezpečenia sú <nowiki>[</nowiki>16<nowiki>]</nowiki>:
 
Výhody tohto modelu zabezpečenia sú <nowiki>[</nowiki>16<nowiki>]</nowiki>:
Riadok 58: Riadok 57:
 
* bezpečnosť komunikácie je zaistená aj pri presmerovaní v aplikačných uzloch,
 
* bezpečnosť komunikácie je zaistená aj pri presmerovaní v aplikačných uzloch,
 
* nezávislosť na transportnom mechanizme,
 
* nezávislosť na transportnom mechanizme,
* možnosť použiť viac typov kryptovacích technológii,
+
* možnosť použiť viac typov kryptovacích technológií,
 
* podporuje nepopierateľnosť.
 
* podporuje nepopierateľnosť.
  
===Zabezpečenie na úrovni aplikácie===
+
==Zabezpečenie na úrovni aplikácie==
 
+
Pri tomto type zabezpečenia 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ý.
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ý.
 

Aktuálna revízia z 14:22, 11. jún 2010

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.


Obr. 7.2 Architektúra zabezpečenia na úrovni platformy

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ý.