Inak sorry, ze som sa o den oneskoril, ale vcera mi net trucoval a neslo mi postnut prispevok.
Vlastne na vsetky otazky uz v podstate odpovede zazneli, tak to zhrniem (hromadna odpoved ;-)).
Komu je clanok urceny:
Pytal som sa pred napisanim niekolkych ludi (programatorov), ci o takom vedeli. Myslim, ze cela technika nie je nijak extra svetoborna, kazdy, kto si precita manual iptables a stunnelu, na to pride. Ale prave preto som tam nedal priamo zdrovoje kody (parriadkove skripty), len obrazok. Kto to chape, ten to vie zrekonstruovat. Myslim si, ze pri bezpecnosti clovek musi vediet techniky utocnikov - "know your enemy", pozrite aj Sun Tzu security strategies, co su spominane vo vcerajsich (22.8.) bezpecnostnych stripkoch.
Inteligentne riesenie bez komercneho certifikatu:
Zavisi od konkretneho pripadu. Ked mam server, kde bude pouzivat SSL len par ludi (napr. pomocni admini), tak by som si vytvoril vlastnu certifikacnu autoritu a kazdemu cloveku jej korenovy certifikat donesiem osobne.
Ak je urceny pre viac ludi a stale nechcem platit za komercny certifikat, na hlavnej stranke uvediem, kde sa da certifikat zohnat a jeho fingerprint. Najidealnejsie, ked je korenovy certifikat na fyzicky jednom serveri a fingerprint zverejneny fyzicky na druhom serveri - je tazsie zautocit na dva servery sucasne a zmenit aj certifikat aj fingerprint.
Ako postupovat pri prvom pripojeni na ssh/ssl, ked kluc/certifikat nemozem overit:
Toto je dost tazke, az skoro nemozne. Ale vzdy je lepsie vediet o nebezpecenstve ako mat pocit falosnej bezpecnosti. Takze situacia:
Logujeme sa prvy krat cez ssh na server a nevieme overit jeho kluc, pretoze sme ho este nikdy nevideli a nikde nie je zverejneny jeho fingerprint. Najlepsie je samozrejme vypytat fingerprint kluca od admina. Ina moznost na znizenie rizika (ked nejde hned zohnat fingerprint):
1. iniciujeme spojenie na server, pozrieme sa na fingerprint kluca, zrusime spojenie
2. nalogujeme sa cez ssh na uplne iny server (ktoreho kluc uz pozname) a z neho tiez iniciujeme spojenie na server s neznamym klucom, pozrieme fingerprint kluca. Podmienka je, aby iny server bol na uplne inej trase (prechod paketov inymi routermi).
3. ak v oboch pripadoch je fingerprint kluca rovnaky, je velka pravdepodobnost, ze tam ziadny man-in-the-middle nesedi (ak nesedi na poslednych hopoch, ktore su pre obe cesty rovnake). Je mozne pre istotu opakovat s viacerymi pocitacmi.
4. fingerprint kluca si niekde ulozime. Pokial to zrovna nepotrebujeme, tak sa na server s neznamym klucom nelogujeme, inak tam aspon neposielame citlive informacie. Za par dni (opakovane) skontrolujeme, ci sa fingerprint nezmenil. Ak sa zmenil, je to dost podozrive.
5. pokusime sa fingerprint kluca od admina vypytat (a porovnat), lepsie je to samozrejme pred prvym pripojenim, ale nie vzdy to ide
6. je dobre nosit known_hosts subor napr. na usb klucenke
Tento popisovany sposob tiez nie je samozrejme 100% bullet-proof, ale je sanca utocnika odhalit, takze vieme, ze napr. treba zmenit heslo alebo ze informacie, ktore sme na server poslali, mozu byt kompromitovane. Inak kludne skritizujte, ale zatial to je asi najlepsi sposob, co poznam, ked sa neda zohnat fingerprint kluca. Obdobne sa to da spravit so SSL.
Nerozumiem ako sa overuj fingerprint dakeho certifikatu?
1. Prihlasujem sa do banky
2. Browser otvori stranku, dole vidim zamocek.
3. Poklikam po nom a mam info o certifikate a je MD5 a SHA1 fingerprint. Ale s cim ho mam porovnat? Kde ho mam porovnat? Pozeral som stranku VeriSign a nikde som tam nenasiel zoznam fingerprintov.
A ked uz bude daky utocnik odchytavat moju komunikaciu na routeri, nebude pravdepodobne, ze mi podstrci aj stranku www.verisign.com?
Pytam sa preto, lebo velke nebezpecenstvo utokov je na Wifi hotelovych sietach. Kde daky dobrodinec - dalsi host podstrkuje pakety a tvari sa ako AP.