Certifikáty - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Seriály

Více seriálů



Software

Certifikáty

15. srpna 2006, 00.00 | Dnes si konečně vysvětlíme, co to jsou (digitální) certifikáty a k čemu slouží. Vysvětlíme si také několik souvisejících pojmů, jako je "kořenový certifikát" či "certifikační autorita".

V minulém dílu našeho seriálku, věnovaného bezpečnosti systému Mac OS X, jsme se seznámili s typickým útokem na šifrování s veřejným kódem – s útokem "třetího", nejčastěji označovaným anglickým termínem "middleman" (také často "man-in-the-middle"). Řekli jsme si také, jak se proti tomuto útoku lze bránit – potřebujeme někoho, komu důvěřujeme, a kdo nám potvrdí, že ten, s kým komunikujeme, je skutečně ten, za koho jej považujeme (rozumíte této větě? To je dobře, já skorem nikoli :))

Právě k tomu obecně slouží certifikáty; řekněme si tedy o nich trochu více.

Co je to certifikát?

Certifikát (či lépe digitální certifikát, ale v kontextu našich článků je to zřejmé) je datový soubor, obsahující údaje, jež umožňují rozpoznat a ověřit identitu jeho majitele (samozřejmě v rámci možností a s omezeními, danými matematickými principy, jež jsme rozebírali minule). Různé certifikáty mohou obsahovat různé skupiny údajů; typicky však certifikát obsahuje

  • jméno majitele (a další podobné údaje – název jeho firmy apod.);
  • veřejný klíč majitele certifikátu – jak jsme si ukázali minule, ten právě slouží k ověření digitálních podpisů majitele (a jak víme od předminula, také jeho prostřednictvím můžeme majiteli posílat šifrované zprávy);
  • dobu platnosti certifikátu;
  • seznam omezení a konkrétních práv, upřesňujících, v jakých situacích a za jakých podmínek lze certifikát použít;
  • identifikaci toho, kdo certifikát vystavil;
  • signaturu (digitální podpis) toho, kdo certifikát vystavil, a kdo jím ověřuje, že certifikát obsahuje korektní a nezměněné údaje;
  • další technické údaje – ty zahrnují např. sériové číslo certifikátu, jeho versi, identifikaci algoritmů, jejichž prostřednictvím lze signaturu ověřit, a podobně.

Stojí za to si hned uvědomit, že certifikát "se týká" nejméně dvou identit: jednou z nich je jeho vlastník; jemu certifikát umožňuje užívat digitální podpis a přijímat zašifrované zprávy. Druhou z nich je ten, kdo certifikát vystavil – jemu certifikát nijak neslouží; on sám však ručí za správnost certifikátu. Tomuto "výstavci" (fuj, existuje vůbec takové slovo?) říkáme certifikační autorita.

To je přesně to, o čem jsme psali v úvodu (a minule): "někdo, kdo nám potvrdí, že ten, s kým komunikujeme, je skutečně ten, za koho jej považujeme": certifikační autorita je právě tím "někým".

Použití certifikátů

Ačkoli je to vzhledem k výše popsanému obsahu certifikátu celkem zřejmé, pojďme se jen v rychlosti podívat na to, kterak certifikátů můžeme použít pro šifrování i ověření podpisu:

Šifrování je jednodušší: certifikát přímo obsahuje veřejný klíč svého majitele. Chceme-li tedy pro někoho sestavit šifrovanou zprávu, prostě si najdeme jeho certifikát, a veřejný klíč z něj použijeme pro šifrování. (Malý kvíz pro pozorné čtenáře – jakpak asi vyřešíme problém s šifrováním téže zprávy více různým příjemcům? Vše potřebné jsme si již v našem seriálu řekli; těm, kdo na to nepřijdou, odpovíme příště.)

Ověření platnosti podepsaného dokumentu je jen malinko složitější – v podstatě jsme si jeho postup popsali minule:

  • vezmeme certifikát toho, kdo nám dokument poslal;
  • pomocí patřičného algoritmu, na nějž je v certifikátu odkaz (nejspíše to bude jeden ze standardních algoritmů MD5 či SHA) spočteme "signaturu" (také se někdy užívá pojem "hash") dokumentu – údaj, jehož obsah je víceméně jednoznačný pro konkrétní dokument, a který v podstatě nemůže být pro různé dokumenty týž;
  • pomocí veřejného klíče z certifikátu rozšifrujeme digitální podpis dokumentu – a srovnáme jej s "hashem", jenž jsme spočetli sami.

Je zřejmé, že jsou-li obě hodnoty stejné, pochází dokument od majitele certifikátu a od nikoho jiného (s takovou jistotou, jakou dávají matematické základy celého systému šifer a signatur – a ta je značná).

(Jen pro úplnost – psali jsme, že hash je "víceméně" jednoznačný a "v podstatě" nemůže být týž pro různé dokumenty: samozřejmě, je evidentní, že je-li hash mnohem kratší než dokument, prostě musejí existovat dva – či přesněji, mnoho – různých dokumentů s týmž hashem. Promyšlené algoritmy jako MD5 či SHA však prakticky znemožňují, abychom takový dokument – jenž by měl jiný obsah, ale totožný hash – skutečně dokázali nalézt.)

Řetězení certifikátů a jejich platnost; kořenový certifikát

Vraťme se nyní k certifikátům samotným: ačkoli jsme to explicitně neuvedli, je celkem zřejmé, jak ověříme platnost daného certifikátu – přesně stejně, jako u kteréhokoli jiného dokumentu, opatřeného digitálním podpisem. Potřebujeme tedy pouze mít k dispozici druhý certifikát – jeho vlastníkem bude certifikační autorita; jeho prostřednictvím můžeme ověřit, že obsah našeho certifikátu je správný (to jest takový, jaký mu certifikační autorita dala).

Nejsme-li si jisti, zda nám nějaký "middleman" nehraje roli samotné certifikační autority, můžeme týmž způsobem ověřit její certifikát – a tak dále. Certifikáty se nám tak řetězí: nejprve ten, který používáme k šifrování (či k ověření podpisu); pak jeho certifikační autorita; pak její certifikační autorita...

Je ovšem zřejmé, že takto nemůžeme pokračovat donekonečna: dříve nebo později musíme skončit s certifikátem, jemuž věříme implicitně, bez další kontroly. Takový certifikát nazýváme kořenovým (a jeho vlastníka někdy kořenovou certifikační autoritou). Samozřejmě; abychom mohli kořenovému certifikátu věřit, musíme jej získat speciálním způsobem, který vyloučí útok "man-in-the-middle" – Mac OS X kupříkladu obsahuje standardně množství kořenových certifikátů, jimž věří firma Apple; nám tedy zbývá jen se rozhodnout, zda věříme firmě Apple :)

Mimochodem, samozřejmě, že kořenový certifikát sám je také podepsaný, aby se vyloučila možnost manipulovat jeho obsahem; na rozdíl od běžných certifikátů však je podepsán přímo svým vlastníkem. Jinými slovy, u kořenového certifikátu je táž identita vlastníkem i certifikační autoritou. To ilustruje následující obrázek:

Kořenové certifikáty v Mac OS X

Mac OS X považuje certifikát za kořenový – tedy implicitně správný – pro vyšší bezpečnost pouze pod podmínkou, že je uložen ve speciální "klíčence" "X509Anchors" ve složce "/System/Library/Keychains"; jakýkoli jiný certifikát z jakéhokoli jiného zdroje Mac OS X za implicitně správný považovat nebude, ať již jsou v něm uloženy údaje jakékoli. O tomhle si ale řekneme více zanedlouho, až se budeme zabývat klíčenkami a aplikací Keychain Access.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Tipy a Triky  

 » Rubriky  » Software  

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: