Integrita a dôvernosť komunikácie: Rozdiel medzi revíziami
() |
|||
(5 medziľahlých úprav od rovnakého používateľa nie je zobrazených.) | |||
Riadok 2: | Riadok 2: | ||
{{Praca_uvod|4|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|4|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__ | ||
− | + | =Integrita a dôvernosť komunikácie= | |
− | |||
V tejto kapitole sa budeme venovať spôsobom, akým môžeme vytvoriť bezpečný a dôverný komunikačný kanál medzi webovým serverom a klientskou aplikáciou volajúcou napríklad webovú službu. Najrozšírenejším spôsobom je použitie technológie SSL, aj keď tento spôsob má aj svoje negatíva, o ktorých sa dozvieme neskôr. SSL nie je funkciou ASP.NET, čiže nie je realizované samotnou webovou službou, ale webovým serverom. V našom prípade službou IIS. | V tejto kapitole sa budeme venovať spôsobom, akým môžeme vytvoriť bezpečný a dôverný komunikačný kanál medzi webovým serverom a klientskou aplikáciou volajúcou napríklad webovú službu. Najrozšírenejším spôsobom je použitie technológie SSL, aj keď tento spôsob má aj svoje negatíva, o ktorých sa dozvieme neskôr. SSL nie je funkciou ASP.NET, čiže nie je realizované samotnou webovou službou, ale webovým serverom. V našom prípade službou IIS. | ||
− | + | ==Služba IIS a technológia SSL== | |
Ako už bolo spomenuté technológia SSL šifruje HTTP komunikáciu medzi klientskou aplikáciou a webovým serverom. SSL pracuje na nižšej vrstve, preto neovplyvňuje spracovanie HTTP požiadavky. Kryptovanie a dekryptovanie je realizované webovým serverom a komunikácia prebieha štandardne na porte 443. Pre korektné využívanie SSL, je nutné mať nainštalovaný certifikát X.509 <nowiki>[</nowiki>15<nowiki>]</nowiki>. Skôr ako si vysvetlíme samotné princíp SSL, je nutné sa oboznámiť s certifikátmi. | Ako už bolo spomenuté technológia SSL šifruje HTTP komunikáciu medzi klientskou aplikáciou a webovým serverom. SSL pracuje na nižšej vrstve, preto neovplyvňuje spracovanie HTTP požiadavky. Kryptovanie a dekryptovanie je realizované webovým serverom a komunikácia prebieha štandardne na porte 443. Pre korektné využívanie SSL, je nutné mať nainštalovaný certifikát X.509 <nowiki>[</nowiki>15<nowiki>]</nowiki>. Skôr ako si vysvetlíme samotné princíp SSL, je nutné sa oboznámiť s certifikátmi. | ||
− | + | ===Princíp certifikátov a certifikát X.509=== | |
+ | |||
Certifikáty predstavujú mechanizmus na distribúciu verejného kľúča. Sú založené na asymetrickom šifrovaní. Používajú dva kľúče, verejný a súkromný. Tie sú matematicky prepojené. Súkromných kľúč je udržiavaný v tajnosti, verejný kľúč je voľne dispozícii Certifikát jeho vlastníkovi poskytuje dôkaz, že: | Certifikáty predstavujú mechanizmus na distribúciu verejného kľúča. Sú založené na asymetrickom šifrovaní. Používajú dva kľúče, verejný a súkromný. Tie sú matematicky prepojené. Súkromných kľúč je udržiavaný v tajnosti, verejný kľúč je voľne dispozícii Certifikát jeho vlastníkovi poskytuje dôkaz, že: | ||
Riadok 17: | Riadok 17: | ||
* K verejnému kľúču vlastní aj zodpovedajúci súkromný kľúč. | * K verejnému kľúču vlastní aj zodpovedajúci súkromný kľúč. | ||
− | + | ====Proces vystavenia certifikátu==== | |
Proces vystavanie certifikátu je nasledovný <nowiki>[</nowiki>35<nowiki>]</nowiki> : | Proces vystavanie certifikátu je nasledovný <nowiki>[</nowiki>35<nowiki>]</nowiki> : | ||
Riadok 44: | Riadok 44: | ||
* Digitálny podpis CA. | * Digitálny podpis CA. | ||
− | [[Súbor: | + | [[Súbor:dp_2010_jm_5.png|framed|center|Obr. 4.1 Proces vydania certifikátu]] |
Riadok 54: | Riadok 54: | ||
* Digitálny podpis CA. | * Digitálny podpis CA. | ||
− | + | ===Princíp komunikácie prostredníctvom SSL=== | |
Proces vytvorenia bezpečného HTTPS kanála je nasledovný <nowiki>[</nowiki>1<nowiki>]</nowiki>, <nowiki>[</nowiki>7<nowiki>]</nowiki>: | Proces vytvorenia bezpečného HTTPS kanála je nasledovný <nowiki>[</nowiki>1<nowiki>]</nowiki>, <nowiki>[</nowiki>7<nowiki>]</nowiki>: | ||
Riadok 76: | Riadok 76: | ||
9. Server a klient majú rovnaký tajný kľúč pre symetrické kryptovanie. Komunikácia je symetricky šifrovaná rovnakým kľúčom počas celej doby spojenia. | 9. Server a klient majú rovnaký tajný kľúč pre symetrické kryptovanie. Komunikácia je symetricky šifrovaná rovnakým kľúčom počas celej doby spojenia. | ||
− | [[Súbor: | + | [[Súbor:dp_2010_jm_6.png|framed|center|Obr. 4.2 Proces vytvorenia SSL spojenia]] |
Aktuálna revízia z 19:46, 11. jún 2010
Obsah
Integrita a dôvernosť komunikácie
V tejto kapitole sa budeme venovať spôsobom, akým môžeme vytvoriť bezpečný a dôverný komunikačný kanál medzi webovým serverom a klientskou aplikáciou volajúcou napríklad webovú službu. Najrozšírenejším spôsobom je použitie technológie SSL, aj keď tento spôsob má aj svoje negatíva, o ktorých sa dozvieme neskôr. SSL nie je funkciou ASP.NET, čiže nie je realizované samotnou webovou službou, ale webovým serverom. V našom prípade službou IIS.
Služba IIS a technológia SSL
Ako už bolo spomenuté technológia SSL šifruje HTTP komunikáciu medzi klientskou aplikáciou a webovým serverom. SSL pracuje na nižšej vrstve, preto neovplyvňuje spracovanie HTTP požiadavky. Kryptovanie a dekryptovanie je realizované webovým serverom a komunikácia prebieha štandardne na porte 443. Pre korektné využívanie SSL, je nutné mať nainštalovaný certifikát X.509 [15]. Skôr ako si vysvetlíme samotné princíp SSL, je nutné sa oboznámiť s certifikátmi.
Princíp certifikátov a certifikát X.509
Certifikáty predstavujú mechanizmus na distribúciu verejného kľúča. Sú založené na asymetrickom šifrovaní. Používajú dva kľúče, verejný a súkromný. Tie sú matematicky prepojené. Súkromných kľúč je udržiavaný v tajnosti, verejný kľúč je voľne dispozícii Certifikát jeho vlastníkovi poskytuje dôkaz, že:
- Daný verejný kľúč patrí jemu.
- K verejnému kľúču vlastní aj zodpovedajúci súkromný kľúč.
Proces vystavenia certifikátu
Proces vystavanie certifikátu je nasledovný [35] :
1. Žiadateľ o vystavenie certifikátu si vygeneruje dvojicu kľúčov, verejný a súkromný. Žiadosť o certifikát predstavuje dátovú štruktúru obsahujúcu:
- Identifikačné údaje vlastníka,
- Verejný kľúč,
- Poprípade iné informácie.
Takúto štruktúru vlastník digitálne podpíše pomocou príslušného súkromného kľúča. To predstavuje dôkaz o vlastníctve súkromného kľúča.
2. Takáto žiadosť sa predá certifikačnej autorite. Certifikačné autority predstavujú všeobecne dôveryhodnú entitu. Medzi dve najväčšie CA v súčasnosti patrí Thawte ( http://www.thawte.com ) a VeriSign ( http://www.verisign.com ). Certifikačná autorita overí totožnosť žiadateľa, verifikuje digitálny podpis na žiadosti o vystavenie certifikátu, a aby overila vlastníctvo súkromného kľúča. Pokiaľ je žiadosť v poriadku certifikačný úrad vytvorí z užívateľskej žiadosti správu a podpíše ju pomocou súkromného kľúča, týmto vytvorí samotný digitálny podpis a správu zašle späť užívateľovi.
3. Použitie certifikátu je nasledovné. Užívateľ pošle web serveru svoj certifikát, ktorý je mechanizmom na distribúciu jeho verejného kľúča.
4. Web server pomocou verejného kľúča certifikačného úradu, overí podpis certifikátu. Po zistení jeho platnosti príjme verejný kľuč, ktorý sa použije na vytvorenie SLL spojenia.
Celý proces vystavenia certifikátu je znázornení na Obr. 4.1 Certifikát X.509 predstavuje medzinárodný štandard pre digitálne certifikáty používaný na autentifikáciu digitálnych podpisov. Obsahuje tieto základné informácie [35]:
- Názov certifikačnej autority,
- Sériové číslo certifikátu,
- Identifikačné údaje vlastníka (meno držiteľa certifikátu, názov firmy a jej adresu),
- Platnosť certifikátu,
- Verejný kľúč,
- Dáta na overenie platnosti certifikátu,
- Digitálny podpis CA.
Pri verifikácii certifikátu sa overujú nasledovné informácie [35]:
- Verzia, sériové číslo certifikátu, CA, platnosť, predmet,
- Verejný kľúč,
- Digitálny podpis CA.
Princíp komunikácie prostredníctvom SSL
Proces vytvorenia bezpečného HTTPS kanála je nasledovný [1], [7]:
1. Klient požiada server o spojenie.
2. Webový server podpíše certifikát a zašle ho klientovi.
3. Klient overí, či certifikát vydala CA (certifikačná autorita). Klient si overí platnosť serverového certifikátu a či bol vydaní CA. Pokiaľ certifikát nebol vzdaný CA, klient je na to upozornení. Sám sa rozhodne, či bude pokračovať v komunikácii alebo ju ukončí.
4. Klient príjme komunikáciu.
5. Klient povie serveru aké podporuje kryptovacie kľúče.
6. Server vyberie ten najsilnejší a informuje o tom klienta.
7. Klient si vygeneruje náhodný kľúč symetrickej šifry a zašifruje ho verejným kľúčom servera, ktorý získa z serverového certifikátu.
8. Server ho dešifruje súkromným kľúčom.
9. Server a klient majú rovnaký tajný kľúč pre symetrické kryptovanie. Komunikácia je symetricky šifrovaná rovnakým kľúčom počas celej doby spojenia.