Integrita a dôvernosť komunikácie: Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Riadok 44: Riadok 44:
 
* Digitálny podpis CA.
 
* Digitálny podpis CA.
  
[[Súbor:tempDp_09.png|framed|center|Obr. 4.1 Proces vydania certifikátu]]
+
[[Súbor:dp_2010_jm_5.png|framed|center|Obr. 4.1 Proces vydania certifikátu]]
  
  

Verzia zo dňa a času 12:25, 8. apríl 2010

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.
Obr. 4.1 Proces vydania certifikátu


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.

Súbor:TempDp 77710.png
Obr. 4.2 Proces vytvorenia SSL spojenia