Bezpečnosť v počítačových sieťach a distribuovaných systémoch
späť na zoznam
V súčasnej dobe rapídne rastie počet jednotlivcov a firiem pripojených na internet. Dôsledkom takéhoto obrovského záujmu o internetové služby, je v dnes veľmi obľúbené aj elektronické podnikanie. Realita Internetu a distribuovaných informačných systémov vo všeobecnosti je taká, že sú extrémne zraniteľné na kompromitáciu rôznymi spôsobmi. Z tohto dôvodu sa neustále zvyšujú aj nároky na bezpečnosť v počítačových sieťach a distribuovaných systémoch. Medzi najpoužívanejšie nástroje bezpečnosti v počítačových sieťach a distribuovaných systémoch patria v súčasnej dobe digitálne podpisy. V prednáške sú bližšie analyzované vlastnosti digitálneho podpisu a jeho použitie v niektorých typických bezpečných protokoloch sieťovej architektúry TCP/IP.
Najprv si vysvetlíme niektoré pojmy súvisiace z bezpečnosťou v počítačových sieťach.
-
Autentifikácia – je opatrenie na potvrdenie proklamovanej identity entity [ISO/IEC 10181-2].
-
Autentifikácia pôvodu údajov – je potvrdenie, že zdroj prijatých údajov je taký ako je proklamovaný [ISO/IEC 7498-2].
-
Autentifikácia rovnocenných entít – je potvrdenie, že rovnocenná entita, s ktorou je entita v spojení je tá entita, za ktorú sa vyhlasuje [ISO/IEC 7498-2]
-
Integrita údajov – je vlastnosť, ktorá hovorí, že údaje neboli zmenené alebo zničené neoprávneným spôsobom [ISO/IEC 7498-2].
-
Odmietnutie – je odmietnutie jednej z entít zúčastnených v časti alebo celej komunikácii [ISO/IEC 7498-2].
-
Neodškriepiteľnosť pôvodu. Táto služba je určená na ochranu proti nepravdivému odmietnutiu odosielateľa, že vytvoril obsah správy a že správu poslal [ISO/IEC 13888-1].
-
Neodškriepiteľnosť. Táto služba je určená na zber, údržbu, vytvorenie dostupnosti a platnosti neodškriepiteľného dôkazu týkajúceho sa proklamovanej udalosti alebo aktivity s cieľom vyriešiť spor o výskyte alebo nevýskyte udalosti alebo akcii [ISO/IEC 10181-4].
Digitálny podpis predstavuje vo všeobecnosti mechanizmus, ktorý slúži na zabezpečenie bezpečnosti a platnosti pôvodu a integrity elektronických údajov. Podľa normy [ISO 7498-2], digitálny podpis je údaj pripojený k údajovej jednotke alebo kryptografická transformácia z údajovej jednotky, ktorý umožňuje príjemcovi údajovej jednotky preukázať zdroj údajovej jednotky a ochrániť údajovú jednotku pred sfalšovaním.
Podľa direktívy [EC 1993/93] je elektronický podpis definovaný ako údaje v elektronickej podobe, ktoré sú pripojené alebo logicky spojené s inými elektronickými údajmi a ktoré slúžia ako metóda autentifikácie. Zaručený elektronický podpis je elektronický podpis splňujúci tieto požiadavky:
-
Je jednoznačne spojený s podpisovateľom
-
Je schopný identifikovať podpisovateľa
-
Je vytvorený použitím prostriedkov, ktoré má podpisovateľ výlučne pod kontrolou
-
Je pripojený k údajom a má k nim taký vzťah, že každá následná zmena údajov je detekovateľná.
Elektronický podpis sú údaje pripojené alebo logicky zviazané s inými elektronickými údajmi. Elektronický podpis má funkciu zriadiť spojenie medzi podpísanými údajmi a osobou. Toto spojenie môže slúžiť iba na stanovenie prítomnosti vzťahu k údajom, znalosti údajov, akceptovateľnosti údajov, deklarácie údajov a a/alebo vzniku/vytvorenia údajov. Elektronický podpis je takto digitálna procedúra zriadená na potvrdenie možnej právnej dôležitosti údajov pre určitú osobu alebo skupín osôb.
Pravdepodobne najznámejším typom digitálnych certifikátov v súčasnosti je X.509. Bol pôvodne navrhnutý v roku 1988 a využíva sa v spojitosti so štandardom X.500. Definujú adresárové služby. Adresár je vlastne server, alebo distribuovaná množina serverov, na ktorom sa nachádza databáza informácií o používateľoch. Tieto informácie predstavujú predovšetkým mapovanie používateľských mien na sieťové adresy. X.509 definuje rámec pre opatrenia autentifikačných služieb pomocou adresára X.509 pre svojich používateľov. Adresár môže slúžiť ako sklad certifikátov verejných kľúčov. Každý certifikát obsahuje verejný kľúč používateľa, ktorý je podpísaný privátnym kľúčom dôveryhodnej certifikačnej autority. Navyše X.509 definuje alternatívne autentifikačné protokoly založené na využití certifikátoch verejného kľúča. X.509 je dôležitý štandard, pretože štruktúra certifikátu a autentifikačné protokoly definované v X.509 sú využívané v rôznych súvislostiach. Napríklad štruktúra certifikátu podľa X.509 je využívaná v protokoloch IPSec, SSL/TLS, S/MIME a SET.
Základom X.509 je kryptografia s verejným kľúčom a digitálny podpis. Pri používaní X.509 nie je predpísané používanie špecifického algoritmu, ale odporúča sa používať RSA. Ďalej sa využíva hashovacia funkcia, ktorej algoritmus takisto nie je striktne určený.
Jadrom schémy X.509 je certifikát verejného kľúča, ktorý je pridelený každému používateľovi. Predpokladá sa, že certifikát bol vytvorený dôveryhodnou certifikačnou autoritou.
Štruktúra certifikátu X.509 je nasledujúca:
-
Verzia. Rozlišuje medzi následnými verziami formátu certifikátu. Preddefinovaná hodnota je 1. Ak sú v certifikáte položky Jedinečný identifikátor vydavateľa alebo Jedinečný identifikátor subjektu, potom hodnota Verzia musí byť 2. Ak sú v certifikáte jedno alebo viacero Rozšírení, potom hodnota Verzia musí byť 3.
-
Sériové číslo. Celé číslo, ktoré je jedinečné v rámci vydávajúcej certifikačnej autority a je jednoznačne zviazané s týmto certifikátom.
-
Identifikátor podpisovacieho algoritmu. Algoritmus použitý na podpis certifikátu spolu s ďalšími parametrami. Pretože táto informácia je zopakovaná na konci certifikátu v položke Podpis, má táto položka malý význam.
-
Meno vydavateľa. X.500 meno certifikačnej autority, ktorá vytvorila a podpísala certifikát.
-
Obdobie platnosti. Pozostáva z dvoch dátumov, z prvého a posledného dňa platnosti certifikátu.
-
Meno subjektu. Meno používateľa, ktorému bol certifikát vydaný. To znamená, že certifikát potvrdzuje verejný kľúč subjektu, ktorý vlastní odpovedajúci privátny kľúč.
-
Informácia o verejnom kľúče subjektu. Verejný kľúč subjektu, identifikácia šifrovacieho algoritmu a jeho ďalšie parametre.
-
Jedinečný identifikátor vydavateľa. Voliteľné pole bitového reťazca na jednoznačnú identifikáciu vydávajúcej certifikačnej autority v prípade, že meno X.500 bolo použité pre inú entitu.
-
Jedinečný identifikátor subjektu. Voliteľné pole bitového reťazca na jednoznačnú identifikáciu subjektu v prípade, že meno X.500 bolo použité pre inú entitu.
-
Rozšírenia. Skupina jednej alebo viacerých položiek. Rozšírenia bolo definované vo verzii 3.
-
Podpis. Obsahuje hašovaciu hodnotu zašifrovanú privátnym kľúčom certifikačnej autority. Hašovacia hodnota je vypočítaná zo všetkých položiek certifikátu Toto pole tiež obsahuje identifikátor podpisovacieho šifrovacieho algoritmu a jeho parametre.
Štruktúra Zoznamu odvolaných certifikátov je takáto:
-
Identifikátor podpisovacieho algoritmu. Algoritmus použitý na podpis zoznamu spolu s ďalšími parametrami. Pretože táto informácia je zopakovaná na konci zoznamu v položke Podpis, má táto položka malý význam.
-
Meno vydavateľa. Meno X.500 certifikačnej autority, ktorá zoznam vytvorila a podpísala.
-
Dátum tejto aktualizácie. Pozostáva z dátumu tejto aktualizácie zoznamu
-
Dátum nasledujúcej aktualizácie. Pozostáva z dátumu nasledujúcej aktualizácie zoznamu.
-
Pole odvolaných certifikátov. V tomto poli je uvedený zoznam odvolaných certifikátov, pričom pre každý odvolaný certifikát je uvedené sériové číslo odvolaného používateľského certifikátu a dátum jeho odvolania. Toto pole má toľko položiek koľko je odvolaných certifikátov.
-
Podpis. Zahrňuje všetky položky certifikátu. Obsahuje hašovaciu hodnotu zo všetkých položiek zašifrovanú privátnym kľúčom certifikačnej autority. Táto položka tiež obsahuje identifikátor podpisovacieho šifrovacieho algoritmu a jeho parametre.
X.509 tiež poskytuje tri alternatívne autentifikačné procedúry, ktoré sa dajú použiť na rôznych úrovniach a v rôznych aplikáciách. Tieto autentifikačné procedúry sú jednocestné, dvojcestné alebo trojcestné a predstavujú silné autentifikačné procedúry. Všetky tieto procedúry využívajú podpis s verejným kľúčom. Predpokladá sa, že obe strany poznajú verejný kľúč partnera. Verejný kľúč partnera môžu poznať z certifikátu verejného kľúča partnera z adresára certifikátov alebo svoje certifikáty si partneri vymenia v iniciálnej správe pri komunikácii.
Jednocestná autentifikácia obsahuje jediný prenos informácie od používateľa A k používateľovi B a zaručuje, že:
-
Používateľ A vytvoril a odoslal správu
-
Správa bola vytvorená pre používateľa B
-
Je zabezpečená integrita a originalita správy (správa nebola poslaná viackrát).
Treba poznamenať, že pri jednocestnej autentifikácii je overená iba inicializujúca strana (používateľ A).
Správa, ktorou sa strana A autentifikuje, obsahuje minimálne časovú značku TS-A, náhodné číslo RND-A a identitu používateľa B. Tieto tri položky sú podpísané privátnym kľúčom D-A používateľa A. Časová značka správy pozostáva z časového údaja vytvorenia správy a doby expirácie správy a zabraňuje oneskorenému dodaniu správy. Náhodné číslo môže byť použité na detekciu útoku opakovaním. Hodnota náhodného čísla musí byť jedinečná počas platnosti správy (platnosť správy je daná časom jej vydania a expiračnou dobou). Používateľ B si môže náhodné číslo správy odložiť a počas doby platnosti tejto správy odmietať všetky nové správy s rovnakým náhodným číslom. Súčasťou autentifikačnej správy môžu byť aj ďalšie informácie, ktoré budú následne použité. Tieto informácie sú označené sgnData. Zvyčajne súčasťou autentifikačnej správy býva aj tajný relačný kľúč K-AB na následnú komunikáciu medzi používateľmi A a B. Tento relačný kľúč musí byť zašifrovaný verejným kľúčom E-B používateľa B.
Dvojcestná autentifikácia obsahuje dva prenosy informácie, a to jeden prenos od používateľa A k používateľovi B (ako pri jednocestnej autentifikácii) a druhý prenos od používateľa B k používateľovi A. Tento druhý prenos pridáva ďalšie tri (k trom vyššie uvedeným vlastnostiam jednocestnej autentifikácii) vlastnosti a zaručuje, že:
-
Používateľ B vytvoril a odoslal správu ako odpoveď na správu používateľa A
-
Správa bola vytvorená pre používateľa A
-
Je zabezpečená integrita a originalita správy odpovede.
Dvojcestná autentifikácia tak umožňuje obom komunikujúcim stranám navzájom si verifikovať identitu (autentifikovať sa).
Správa odpovede obsahuje náhodné číslo RND-A na identifikáciu správy, ktorej sa odpovedá. Tiež obsahuje časovú značku TS-B a náhodné číslo RND-B. Podobne ako pri jednocestnej autentifikácii správa odpovede môže obsahovať ďalšie podpísané informácie a relačný kľúč K-BA šifrovaný verejným kľúčom E-A používateľa A.
Pri trojcestnej autentifikácii je k dvom prenosom informácie dvojcestnej autentifikácie pridaný tretí prenos informácie, a to od používateľa A k používateľovi B. Táto správa obsahuje iba podpísané náhodné číslo RND-B. Je to v tom prípade, keď nie je potrebné kontrolovať časovú značku. Pretože obe náhodné čísla sú echované naspäť komunikujúcou stranou, každá strana si môže skontrolovať vrátené náhodné číslo a tak detekovať útoky znovupoužitia správy (replay attacks). Tento prístup sa aplikuje v prípade, keď nie sú dostupné synchronizované hodiny.
