Varovani je v pohode. Ale co kdyz prijde den, kdy to rovnou zakazou.
Problemem jsou embedded zarizeni s webovym rozhranim. Do nich nedostanete zadny certifikat, maximalne tak self-signed. Proste z tiho duvodu, ze nemaji predem znamu adresu na kterou certifikat vydat. To se da resit, ale neresitelny problem je certifikat s platnosti 10 a vice let. Proste proto, ze se casto jedna o stroje, ktere tak dliuho nekdo provozuje. Napriklad v prumyslu, nebo takova lokomotiva. Navic takove stroje nebyvaji nikam z bezpecnostnich duvodo pripojeny a pokud ano tan ne to konfiguracni rozhrani. Specielni konfiguracni SW uz se nepouziva, proto tam je to s vyprsenim moznosti jeho pouziti jeste horsi.
Až ten den přijde, tak si pro to uděláš třeba na apachi proxy, abys na to lezl přes https a apache ti z toho udělá LOKÁLNĚ http. Je to opruz, ale pořád stokrát lepší, než konfigurovat lokomotivu z internetu přes http. Já rozumím tomu, že všechny zařízení se nedají lusknutím prstu vyměnit za jiná, ale to neznamená, že stará zařízení se nemusí, nebo dokonce nesmí zabezpečit. Ba právě naopak.
Právě že neuděláš. Už teď se musí patchovat aby to fungovalo. Osobně to vidím na nějaké používání stařičké distribuce ve virtuálu. A časem budou potřeba ty virtuály dva, jeden z SSL3 udělá TLS1.2 a druhý z TLS1.2 udělá TLS-co-bude-podporované ;).
Self-signed certifikát pro embedded zařízení mi nepřijde až jako takový problém, naše síťové prvky to používají, ale jsou určeny pro ISP. Admin od ISP princip TOFU (trust on first use) pochopí, nevím ale, jak by se to dalo vysvětlit běžným uživatelům, že je to OK pro jejich router na lokální síti, ale ne třeba pro banku.
Self-signed certifikat je u konfigurace bezna vec. Jenze:
1) FF jej muze "zitra" kvuli bezpecnosti zakazat.
2) predstavte si, ze zarizeni pouziva nejakou zastaralou a tim padem zakazanou verzi nektere casti protokolu. Zadny problem, aktualizujete FW v zarizeni, ale ouha, aktualizace je pomoci browseru, ktery vas tam nepusti.
Firmware/software těchhle embedded zařízení obvykle nestojí za nic a má spoustu bezpečnostních děr – problémy s certifikáty, šifrováním a HTTPS jsou pouze jedním z projevů tohohle problému. Holt je potřeba výrobce dotlačit k tomu, aby na bezpečnost přestali kašlat, protože do internetové sítě není možné připojovat nezabezpečená zařízení (a nezáleží na tom, zda ta síň je opravdu plně otevřená do internetu, nebo si majitel myslí, že není otevřená, nebo je dokonce opravdu dobře chráněná firewallem nebo dokonce od internetu fyzicky oddělená). A pokud to nějaký výrobce takhle udělat neumí, není žádný důvod, proč ke konfiguraci jeho zařízení používat ten samý program, který používám pro přístup k internetovému bankovnictví, k e-mailům a ke spoustě dalších webů. Dříve k takovým zařízením výrobci dodávali svůj vlastní konfigurační software, ať k tomu znovu začnou dodávat třeba upravený Firefox s vypnutými aktualizacemi a hlavně ať to napíšou do specifikace. Aspoň bude každý předem vědět, co kupuje za … nespolehlivý výrobek.
No právě. Takže to zařízení stejně musí být schopné aktualizací – čímž se řeší podpora šifrovacích standardů a algoritmů.
Když mají ta zařízení nějakou formu webové administrace, připojují se k internetu. Nevím o tom, že by nějaký dnešní webový prohlížeč umožňoval zobrazit web jinak než přes IP protokol, tedy přes internet.
Mam tu krabice za 1/2M kus, a "aktualnim" firefoxem se na ne nepripojim. Protoze prej pouzivaj nebezpecny sifrovani ... takze az mi posles tak 20M, muzu je vymenit za novejsi, ktery budou delat presne totez, vydrzej pulku, a pak si budu moc spokojene rikat, jak je to bombacky, ze muzu pouzivat aktualni browser.
99,9999% tehle zarizeni se nikdy k internetu nepripoji, nechapes, ze internet == verejna adresa a neomezenej pristup do verejne routovany site.
A nevychází celé ta konstrukce o zařízení za 20Mega na vyhazov z toho, že někomu křišťálová koule ukázala, že jednou browsery pojedou úplně jenom na HTTPS? Vždyť žádání explicitního povolení právě může být ona přijatelná hranice . . . .
Vůbec nechápu proč by to nemohlo být třeba tak, že browser se prostě nikdy peřipojí bez HTTPS, pokud v nastavení, třeba jako about:config nenastaví uživatel (lehce pokročilý a se zájmem o tuto funkci - a o to jde), že může při normálním HTTP jenom varovat . . . problém je vyřešen a pro normální uživatele zůsává jenom HTTPS, pro ty co chtějí tak jenom upozornění - ono je to skutečně k něčemu, protože tuna podvodů se děje MITM kdy donutí prohlížeč poslat nejprve HTTP a pak to až MITM valí s ceritfikáty a to by se někomu, i když má doma potřebu lézt někam bez HTTPS, šeredně nevyplatit . . .
Pak by si i mohl člověk nechat jeden browser na kritické věci (opravdu nutno vždy HTTPS - např. banka, FB (dehonectace, zneužití - taky nic příjemného)) a druhý na brouzdání po domácím železe a ne se tu hádat že to má zakázat vždycky a nebo nikdy . . .
@Lol Phirae
Vůbec jsi to nepochopil. Facebook je prostě služba, kde je člověk tak nějak oficiálně, má tam nějaký profil, projený se skutečnými lidmi, přátely, spolužáky, spolusportovce . . . a je absolutně nežádoucí, aby ti třeba někdo ukradl profil a začal tvým jménem tvým skutečným kamarádům něco posílat - to samé je i mail, LinkedIn, Twitter a další a k tomu je dost podstatné přistupovat k takovému webu přes HTTPS
- nehrajme si jako v družině: Júúúúú, on mááá fejsbůk, huú heé ukažme si prstem, my ho nemáme a jsme trďáci prďáci, posledních pár husťáků jako . . .
Ne akorát nemá smysl dělat z Facebooku nějakou UserHydru. Ano pro spoustu lidí, troufnu si říct že pro většinu lidí, je to prostě jenom zábava a taky jakási částečná forma sociální interakce a taky je to pro ně třeba zábava - pro někoho více, pro někoho méně. Extrémem je nějaké nadužívání nebo snad dokonce závislost. To co předvádíš ty je druhý extrém, pritipól tomu prvnímu.
> A nevychází celé ta konstrukce o zařízení za 20Mega na vyhazov z toho, že někomu křišťálová koule ukázala, že jednou browsery pojedou úplně jenom na HTTPS?
Ne, nevychází. Již dnes prohlížeče nepodporují SSL3 a dokonce ani openssl v distribucích to nemá zapnuté, takže si musíš zkompilovat vlastní openssl, přilinkovat ho k vlastnímu socatu a vrazit to mezi browser a zařízení.
@Jenda
A co telnet? A SSL1? A co za 20 let? Každopádně byla řeč o podpoře HTTP a povolení jenom HTTP. Ne o starých ceritikátech.
Bavil jsem se o tom, že by se mělo najít řešení, jak to pro některé případy povolit, jinak zakázat a ne se handrkovat, jestl to všecho povolit nebo zakázat - to je nonsense a řešení se nikdy nenajde - přidat podporu třeba adonem
2NULL: Hromada pouzivanyho HW umi https, jenze uz holt neumi ty ubermoderni "bepecne" algoritmy, a umi jen ty, ktery se soudruzi rozhodli vyhodit. A vis co udela ten BFU s tou svou krabkou za 3 kila? Kdyz ho browser nejdriv zacne prudit a pak mu znemozni se pripojit na https? No pripoji se pres http. Protoze tam to neprudi!
At zije bezpecnost ...
A vis co udela presne stejnej BFU kdyz ho zacne browser vopruzovat (a posleze mu znemozni) http? No bude hledat po internetu jak tomu zakazat se aktualizovat aby mu zustala ta verze co funguje a nevotravuje ....
To bude teprve krasa co?
No tak bod 1) je dobrá kravina... A kořenové certifikáty jsou asi co? Ty podepsal bůh? Nebo LO? Nebo jak někoho může vůbec napadnout, že by se daly self-signed zakázat?
K bodu 2 snad jen... je to pronlém, ano, ale je třeba ho řešit LOKÁLNĚ, pokud na to už teda potřebuju přistupovat zvenku, tak to musím stejně zabezpečit. Nebo má snad někdo ještě pocit, že se různým malým krabičkám dá věřit, zcela nezávisle na tom, jestli v konfiguraci mají klikátko http/https?
> Dnes, keď nie je problém nasadiť letsencrypt
Je to problém, třeba pokud se jmenuješ Pepa a nějaká banka v zemi, o které jsi nikdy v životě neslyšel, se jmenuje PEPA.
https://community.letsencrypt.org/t/name-is-blacklisted-on-renew/9012/6
Samozrejme. Bude to tradicni salamova metoda. Neprve na to budes mit checkbox v nastaveni. Ten pak zmizi, ale budes mit radek v about:config. Ten pak take zmizi, takze pouzijes addon. Nakonec zmizi addony, ale to uz ti bude jedno, protoze budes mit Chrome a spolecnost Google te prihlasi automaticky.
Takže místo toho, aby implementovali způsob přihlašování, při kterém se heslo nepřenáší, raději udělají upozornění, které se ale nebude zobrazovat v případech, kdy heslo může být zneužité jen vzdáleným serverem?
Výborně.
Ahoj.
Toto by ma zaujímalo!
Na serveri mám heslá uložené ako solené hashe. Ako mám urobiť prihlasovanie, aby sa heslo nemuselo prenášať na server?
Našiel som iba SCRAM, ale implementovať ho v javascripte....
O vhodnej podpore v prehliadačoch zatiaľ neviem.
Môžeš ma, prosim, nasmerovať?
Díky!
Ve standardu HTTP je definována hlavička Authorization
, která se může posílat s každým požadavkem. Všechny dnešní prohlížeče podporují typ autentizace Basic a Digest. Při Basic se přenáší jméno a heslo nešifrovaně, při Digest se používá MD5 hash. V prvním kole se vytvoří hash jména, hesla a popisu serveru (realm) – tenhle hash můřže mít uložený server, nemusí vůbec znát heslo v otevřeném tvaru. Tenhle hash se pak spolu s výzvou použije jako vstup pro druhé kolo MD5 a odešle se na server. Server zná první hash a výzvu, takže ověří, že druhý hash sedí.
Nevýhodou je, že pro to prohlížeče nemají moc dobré UI a chybí jim podpora pro odhlášení. A standard vůbec neřeší registraci uživatele a změnu hesla, takže nastavení hesla musíte pořád řešit přes klasický formulář a hash spočítat javascriptem, nebo heslo odeslat (při jeho nastavení) na server a až tam zahashovat. (Což vám samozřejmě uživatel nemusí věřit, že si heslo neuložíte.) Výhodou je, že je autentizovaný každý jednotlivý požadavek, takže odpadají všechny problémy s únosem session apod.
Osobně by se mi víc líbila metoda podobná SSH. Já bych měl třeba klíč v password manageru, kdo by chtěl mít heslo, generoval by si klíč deterministicky z hesla.
> Ako mám urobiť prihlasovanie, aby sa heslo nemuselo prenášať na server?
Momentálně nijak, protože prohlížeče to buď nepodporují, nebo je GUI nepoužitelné.
> Našiel som iba SCRAM, ale implementovať ho v javascripte....
To je samozřejmě nesmysl, protože nikdo nezaručí, že ten JS není podvodný (uživatel asi nebude při každém načtení stránky kontrolovat všechny zdrojáky). Tohle právě musí implementovat prohlížeč a heslo se ke stránce nesmí vůbec dostat.
Jasne, to je kriticky dulezite prihlasovat se na kazdy blog pepicka z horni dolni pres https a nejlepe jeste z vpn pres 8 anonymizacnich proxy - aby nekdo neodposlechul heslo k nejake uzasne bezvyznamne sluzbe jako koment pod clankem, atd. A to si jeste kdekdo mysli, ze jeho web je tak dulezity, ze musim mit v hesle minimalne 4 specialni znaky, 8 velkych a 8 malych pismen, krev panny a 12 cisel z nic nesmi za sebou nasledovat vice nez 4 :)
Takze kdyz to nekdo odposlechne, tak nevi, jestli je to hash, nebo heslo :D
Přesně tak. Jedna věc je ta, že všude vyžadovat HTTPS na přihlášení je nesmysl, je spousta stránek, kde když to někdo odposlechne, tak je mi to naprosto jedno, protože se jedná stejně o jednorázové registrace.
Druhá věc je přesně to, že nějakej yinteligent se snaží být moc chytrý a asi chce ukázat, že zná regulární výrazy, tak nastaví do hesla takový podmínky, že by se z toho jeden posral. Já opravdu kvůli jednorázové registraci například pro stažení nějakého souboru, protože autor webu je ynteligent a pro stažení souboru ji vyžaduje, nebudu vymýšlet heslo podle nějakých vymaštěných požadavků. Takže to nakonec končí tak, že se použije desetiminutý email s univerzálním heslem Passw0rd%, které splní většinu těchotravných regulárů. Beztak když na té stránce budu chtít stáhnout za půl roku zase něco znova, tak udělám novej účet, protože si už ten login nebudu pamatovat. Ale majitel je asi rád, že mu rostou počty registrací.
Hlavne, kdyby konecne prisli s prepinacem "DISABLE ALL FUCKING SSL WARNING MESSAGES"! To je fakt tragedie. Vnitrni system, stara java a pres firefox se tam clovek proste nedostane! Mrdanim se s about:config se akorat rozesere ten zbytek, ktery jeste jel .... navic od dob, co firefox bezi na enginu z androidu, tak je proste pomaly, seka se, je nepouzitelny. Aby se mi sekaly videa na nejnovejsi i7, tak to je fakt napovazenou. A kazdych par dni jej restartovat, protoze ..... hm .... treba ted, zapnuty pred 26 hodinama a 3.5h procesoroveho casu a to tam mam par desitek zalozek (samozrejme neaktivnich) a nic jsem na tom nedelal. JE TO PROSTE SRACKAAAAAA! Ale co jineho pouzit? Pak uz je tu jen IE, ktere nema poradne doplnky nebo EDGE, ktere nema skoro zadne a spoustu toho neumi. Nejake opery a podobne nesmysly, to bych ani nezkousel ......
Prohlížeče samozřejmě podporu nových protokolů a algoritmů přidávají a zastaralé zase odebírají. Například certifikáty používající MD5 už nepovažují za důvěryhodné dost dlouho, koncové certifikáty používající SHA-1 jsou považovány za nedůvěryhodné od začátku roku 2017. SSLv3 je v aktuálních prohlížečích také zakázané, o SSLv2 nemluvě. Stejné je to i s algoritmy, aktuální prohlížeče nepodporují třeba rodinu algoritmů TLS_RSA_with_RC4 a mnohé další.
Další... tak znova... self-signed se nedají zakázat!!! Nešiřte prosím bludy, když nemáte nejmenší tušení o tom, jak to celé funguje. Root CA jsou a budou self signed, protože je nemá kdo podepsat. Jediný rozdíl mezi trusted root a vaším vygenerovaným certifikátem je v tom, že ten trusted někdo přidal do systému za vás, ale to samé můžete udělat se svým a ve většině případů bude tento cert pro vás to nejdůvěryhodnější, co si umíte představit. V podnikové sféře je zcela běžné, že pro interní služby se používá vlastní root, kterým se podepisuje všechno a tohle prostě NELZE změnit