var SectionTitles=new Array( "IE Certificate Chain Vuln. û zakßzanΘ h" );
var SectionURLs=new Array( "217" );
var BrothersNames = new Array("Dφra v MSIE umo₧≥uje Φφst cookies","Krademe cookies v Exploreru : krok za krokem","Microsoft vydßvß megapatch","Horkß chyba v IE 5.5&6.0","Skrytß nastavenφ IE mohou nap°φklad pomoci filtrovat nebezpeΦn² obsah","IE Certificate Chain Vuln. û zakßzanΘ hrßtky s certifikßty","");
var BrothersIDs = new Array("77","80","102","109","166","217","");
//=====INFO======
ItemName='Article217';
InIFrame='No';
TableNum=2;
ItemID=217;
ArticleType='1';
Action='articles'
ItemTitle='IE Certificate Chain Vuln. û zakßzanΘ hrßtky s certifikßty';
ItemComment='IE Certificate Chain Vuln. û zakßzanΘ hrßtky s certifikßty';
ArticleHead('IE Certificate Chain Vuln. û zakßzanΘ hrßtky s certifikßty', 'Michal Till', 'Michal.Till_40Seznam.cz', '3.9.2002', '23:02:31', '╚lßnek');
Intro('Public Key Infrastructure je alfou a omegou asymetrickΘ kryptografie. Jak je vid∞t, Üpatnß implementace m∙₧e mφt nedozφrnΘ nßsledky, tentokrßt to \"schytal\" protokol SSL ve Windows. PopiÜme si poslednφ chybu Exploreru a systΘm certifikßt∙ obecn∞.');
K bezpeΦnΘmu ov∞°ovßnφ identity jednΘ nebo obou komunikujφcφch stran se na internetu pou₧φvß protokol SSL û Secure Socket Layer. Bez jeho pou₧itφ je veÜkerß komunikace neÜifrovanß a neautentizovanß. VeÜkerß hesla, kterΘ pou₧φvßme k p°ihlaÜovßnφ do r∙zn²ch WWW slu₧eb a ·Φt∙ se jinak posφlajφ v otev°enΘ podob∞.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Klient nejprve poÜle po₧adavek na bezpeΦnΘ p°ipojenφ (https) se sv²m ve°ejn²m klφΦem. Ten je generovßn p°φ instalaci p°φsluÜnΘho prohlφ₧eΦe. Server naoplßtku poΦle sv∙j ve°ejn² klφΦ a sv∙j certifikßt klientovi, obeje zaÜifrovanΘ pomocφ ve°ejnΘho klφΦe prohlφ₧eΦe. Nynφ klient prozkoumß platnost cerifikßtu. Pokud nenφ vystaven certifikaΦnφ agenturou, m∙₧e nabφdnout u₧ivateli ukonΦenφ spojenφ pop°φpad∞ ukonΦit spojenφ sßm.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Pokud chce sprßvce serveru pro svΘ nßvÜt∞vnφky zprovoznit SSL, nechß si (ke svΘmu ve°ejnΘmu klφΦi) vygenerovat certifikßt, kter² mu podepφÜe (certifikuje) tzv. certifikaΦnφ agentura. Ten musφ obsahovat URL serveru, kter² ho bude pou₧φvat. Autorita p°ed jeho vydßnφm ov∞°φ identitu ₧adatele û p°edevÜφm jeho vlastnictvφ danΘho serveru (domΘny).
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
V p°φpad∞ kdy klient zaΦne se serverem bezpeΦn∞ komunikovat, ov∞°φ aplikace shodnost domΘn (ta na certifikßtu musφ odpovφdat tΘ se kterou komunikuji) a d∙v∞ryhodnost certifikßtu, tj. zda je podepsßn n∞jakou znßmou certifikaΦnφ autoritou.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
N∞kterΘ situace jsou ale komplikovan∞jÜφ, nebo¥ nejv²Üe polo₧enß CA (root-CA) nemß v₧dy mo₧nost fyzickΘ kontroly toto₧nosti. Proto m∙₧e podepsat certifikßt jinΘ, lokßlnφ, CA, kterß takovou mo₧nost mß. Ve h°e jsou tak t°i subjekty : vydavatel, Intermediate CA a nejvyÜÜφ Root-CA. V moment∞, kdy klient takov²to certifikßt obdr₧φ, musφ ov∞°it n∞kolik v∞cφ. P°edevÜφm op∞t URL koncovΘho (nejni₧Üφho) certifikßtu, dßle pak podpisy a nakonec fakt, ₧e vÜechny mezi-certifikßty jsou skuteΦn∞ od certifikaΦnφcj autorit (pole äBasic Constraintô). No a to se prßv∞ ned∞je.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Nßsledky jsou skuteΦn∞ a₧ hrozivΘ : jeliko₧ jak²koliv platn² certifikßt tak bude pova₧ovßn jako certifikßt n∞jakΘ autority, m∙₧e kdokoliv, kdo n∞jak² vlastnφ vytvo°it jak²koliv jin² pro jakoukoliv domΘnu. V moment∞ kdy si jß nechßm podepsat nap°φklad certifikßt pro administraci Krypty, budou m∞ vÜechny produkty Microsoftu brßt jako Intermediate CA a vytvo°φm-li jß certifikßt k jakΘkoliv jinΘ domΘn∞, bude platn². S odvolßnφm na to, ₧e celou strukturu äpodepsalô nap°φklad VeriSign jako₧to root CA.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
VÜe se tedy toΦφ kolem polo₧ky CA Basic Constraint. VeriSign ji do certifikßtu neuvßdφ, Thwafte ano, pochopiteln∞ s hodnotou FALSE a s bitem CRTITCAL (n∞co jako zßsadnφ, neopomenuteln², d∙le₧it²à) nastaven²m na TRUE.
</DIV></FONT></b></i>
<FONT Size=2><DIV Align=Justify Class=Paragraph>
Jak je vid∞t, chyba skuteΦn∞ vß₧nß a jejφ zneu₧itφ lehkΘ. JedinΘ co ·toΦnφk pot°ebuje je platn² certifikßt od znßmΘ autority a pochopiteln∞ korespondujφcφ privßtnφ klφΦ na vytvo°enφ podpisu. Verze 5.0 a 5.5 Exploreru jsou chybnΘ vÜechny, podle zprßvy v BugTraqu 6.0 obvykle (zde hraje roli Critical bit, pokud je v²slovn∞ true a Constraint flase, chyba se neprojevφ). Explorer p°itom nezobrazφ jakΘkoliv varovnΘ hlßÜenφ a u₧ivatelΘ jsou odkßzßni jen vizußlnφ pohled na strom certifikßtu.