Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Filip Jirsák

Stran: 1 ... 371 372 [373] 374 375
5581
Vývoj / Re:Easy password a html5, sifrovanie/security
« kdy: 27. 11. 2013, 22:24:38 »
Přesně tímhle naivním přístupem k bezpečnosti vznikají systémy, které uživatele neskutečně otravují a pro útočníka jsou prakticky nezabezpečené.

Například to heslo. Heslo můžete použít v případě, lze zjistit jen informaci ano/ne (heslo je správně/špatně) a neexistuje nějaký boční kanál, kterým by mohl útočník získat nějaké další informace. Pak je heslo tak silné, jak dlouho by odolávalo útoku hrubou silou (zkoušení jednotlivých možností -- samozřejmě s využitím heuristik typu nejprve zkusím často používaná hesla, známá slova apod.). Pokud budete mít kilobajty a více dat a chtěl byste je zašifrovat obyčejným XORem, bude vám i to dvousetznakové heslo k ničemu, protože útočník může využít bočních informačních kanálů jako třeba různé opakující se vzory "prosvítající" i ze zašifrovaného textu.

Heslo tedy můžete použít třeba pro přihlášení k vzdálenému systému (který útočníkovi odpoví přihlášen/nepřihlášen a žádnou jinou informaci ze systému nedostane), nebo třeba k zašifrování šifrovacího klíče (který je sám o sobě náhodný, takže po rozšifrování heslem útočník neví, zda má správný klíč nebo jen náhodné znaky, a dozví se to teprve po pokusu rozšifrovat tím klíčem šifrovaná data).

Podle toho, kolik pokusů o uhádnutí hesla může útočník udělat za jednotku času pak musíte nastavit požadovanou délku hesla. Dnešní procesory jsou taktovány v jednotkách GHz, buďme optimisté a počítejme 10 GHz, 10 jádrový procesor a ověření hesla na jeden takt procesoru. Takový procesor by tedy dokázal za jednu sekundu ověřit 10^10 hesel. Když budeme brát v úvahu jen číselná hesla, uhodl by takové heslo průměrně za půl vteřiny, nejdéle za vteřinu. Když místo číslic použijete jen malá písmena anglické abecedy, bude průměrný čas na rozlousknutí skoro dvě hodiny; když použijete malá písmena, velká písmena a číslice, bude to přes rok.

Zatím měl útočník k dispozici jeden takový procesor. Předpokládejme, že jeden takový procesor má každý obyvatel Země, a útočník je všechny ovládne, takže těch procesorů má 10 miliard. Prodloužíme to číselné heslo na 20 číslic, a útočníkovi to zase bude trvat průměrně půl sekundy. Nebo použijeme místo 20místného PINu 12místné heslo z malých a velkých písmen anglické abecedy a číslic, to je silnější než ten 20místný PIN. Když místo toho 20místného PINu použijeme 25místný, bude to trvat půl dne, u 30místného 150 let, u 40místného je to přes bilion let, což je poněkud déle, než trvá současný vesmír. Při použití malých a velkých písmen a číslic se při použití 21 znaků dostanete někam na polovinu odhadovaného současného stáří vesmíru.

Na louskání 200znakového hesla byste tedy potřeboval celkem dost paralelních vesmírů.

A ta vaše navržená řešení? Mapování ze znaku nebo bodu na řetězec útočník zná a děje se v konstantním čase. Můžeme si ten výše uvedený vytuněný procesor rozšířit o koprocesor, který bude tohle mapování provádět paralelně s hlavním procesorem také na jeden takt. Takže zadáte Xmístné heslo, koprocesor ho v jednom taktu převede na vaše dvousetznakové heslo a hlavní procesor v témže taktu zjistí, zda je to heslo správné nebo chybné. takže počet vyzkoušených hesel za sekundu odpovídá stále tomu původnímu krátkému heslu, ta šaráda s prodlužováním na 200 znaků na to nemá vůbec žádný vliv. Vliv by měla, pokud by to mapování trvalo dostatečně dlouho, a prodlužovalo tedy celkový čas na ověření jednoho hesla. Například byste to heslo tisíckrát zahashoval nějakou pomalejší hashovací funkcí -- takovéhle pokusy některé systémy opravdu dělají. Má to dvě nevýhody. Ta menší je, že současné běžně používané hashovací funkce k tomuhle pokud vím nebyly navrženy, takže nikdo neví, zda je takovéhle použití neoslabuje. Nezapomeňte, že od druhého kroku dále počítáte hash z hashe, tedy z řetězce pevně dané délky. Čím déle budete hashovat, tím pravděpodobnější je, že narazíte na hash, který jste už jednou spočítal, a od té doby už se budou hashe už jen pravidelně opakovat. Ta větší nevýhoda je, že aby to mělo nějaký smysl, musíte ten čas prodloužit znatelně -- ale tu samou dobu bude muset čekat i uživatel, který zadá správné heslo. Výše jsem počítal s ověřením hesla na jeden takt procesoru. Když se vám to tím mapováním podaří prodloužit na jednu sekundu, je to stejné, jako byste k tomu číselnému PINu přidal 10 číslic. Ve skutečnosti to bude mnohem méně, protože dnešní procesory jsou řádově pomalejší, než to, co jsem uvedl nahoře -- takže při použití hesla z písmen a číslic dostanete to samé zlepšení přidáním odhadem dvou až třech znaků hesla.

Při navrhování zabezpečení přestaňte přemýšlet o klíčích, heslech a jiných termínech, pod kterými si nic nepředstavíte. Místo toho si zkuste představit, proti jakému druhu útoku má to vaše zabezpečení chránit a jakým způsobem by ho bylo možné obejít. Na pokročilejší věci jako frekvenční analýza zašifrovaného textu takhle nepřijdete, ale aspoň si uvědomíte třeba co přesně znamená délka hesla (ve skutečnosti jde jen o počet možných kombinací) a jaký význam má pro zabezpečení (prodloužení hesla o pár znaků prodlužuje dobu nutnou pro útok hrubou silou ze sekund na hodiny, ze dní na desetiletí).

5582
Server / Re:Proč je Java špatná na server?
« kdy: 24. 11. 2013, 09:47:34 »
Ta Java SE Embedded je zajímavá, věděl jsem, že existuje pro ARM platformy, ale nenapadlo mne, že je i pro x86. Ale koukám, že pro amd64 není... Jinak myslím, že je to novinka, v době Javy 6 nic takového nebylo.

K tomu porovnání by ještě bylo dobré porovnat třeba -client a -server mód.

Bůhví, jak ta implementace unixových utilit v Javě vypadá, předpokládám, že se tam používají streamy nebo dokonce převod na text a žádné NIO.

5583
Sítě / Re:Další poskytovatel připojení v domě
« kdy: 22. 11. 2013, 15:52:41 »
Kdosi mi říkal, že je jistý zákon o telekomunikacích, který tvrdí, že mi výběr operátora internetu (asi?) nemůže nikdo limitovat a tudíž, i když máme v paneláku jednoho operátora, mi nikdo "nemůže" zakazovat zřízení jiného.
Je to tak, jde o § 104 odst. 15 zákona č. 127/2005 Sb.:

Citace
Vlastník domu, bytu nebo nebytového prostoru je povinen umožnit uživateli tohoto domu, bytu nebo nebytového prostoru

b) zřízení vnitřního komunikačního vedení veřejné komunikační sítě včetně rozvaděče a koncového bodu sítě.
Vznikne-li tím škoda na stavbě, je ten, kdo škodu způsobil, povinen ji nahradit; této odpovědnosti se nemůže zprostit. …

5584
Server / Re:preco je java na serveri zla?
« kdy: 22. 11. 2013, 13:01:04 »
No a pro kterou Javu to vlastne psát? Oracle, Icetea, ...., kazdá se chová trochu jinak. To se u přeložené binárky nebo bash, perl, python skriptu neděje.
Zrovna v případě jednoúčelových skriptů byste na rozdíly v implementaci Javy asi nenarazil. Zato na rozdíly v sh, bash, zsh, ksh, csh, tcsh narazíte každou chvíli, to samé Python 2 vs Python 3. To nebyl moc dobrý argument.

5585
Server / Re:preco je java na serveri zla?
« kdy: 21. 11. 2013, 09:39:36 »
Systémové utility jsou psané v C nejčastěji z toho důvodu, že jsou mnohem starší, než Java. V případě těch mladších se pak C, shell, Python apod. používají z tradice. Java by v případě malých utilit nebyla příliš vhodná, protože JVM je optimalizovaná pro větší aplikace, takže samotný start JVM by v případě malých utilit trval déle a spotřeboval více paměti, než pak vlastní aplikace. Python má asi jinak uspořádanou VM, takže nemá tak velkou režii při startu (ale pak asi zase nebude tak výkonný u déle běžících aplikací).

Jinak ale pro serverové aplikace (které běží dlouho a poskytují služby po síti) se Java používá velmi často -- záleží na přesném způsobu měření, ale C, C++, C# a Java budou v čele, pak bude odstup a pak teprve další technologie.

5586
Teď už mi to funguje také… Vyplnil jsem na přihlašovací stránce forum.root.cz OpenID identifikátor, jméno a heslo nechal prázdné, zaškrtl trvalé přihlášení a zvolil přihlásit. Stránka se vůbec nepřesměrovala na OpenID poskytovatele, ale vrátil se tam znovu přihlašovací formulář forum.root.cz s chybou, že musí být zadáno uživatelské jméno (formulaci si přesně nepamatuju).

5587
Vývoj / Re:XPath dotaz na obsah XML
« kdy: 11. 11. 2013, 14:13:07 »
Kód: [Vybrat]
/knihovna/titul

Vrací to celý element titul, ale v kontextu, kde se očekává text, se to automaticky zkonvertuje na text tak, že se sloučí textový obsah všech vnořených elementů a přímo vložené texty. Pokud chcete získat explicitně jen textové uzly přímo vložené v elementu, bude to

Kód: [Vybrat]
/knihovna/titul/text()

a pokud byste chtěl textové uzly přímo vnořené i vnořených elementů (tedy ekvivalent té zkratky uvedené výše), bude to

Kód: [Vybrat]
/knihovna/titul//text()

5588
Software / Re:OpenSSL CA a podepisovani souboru
« kdy: 11. 11. 2013, 08:18:57 »
Ověřuješ sice že adný soubor byl korektně podepsán daným klíčem, ale neověřuješ, že daný klíč je skutečně platným klíčem toho subjektu, jehož klíčem se tvrdí že je. Problém je v tom, že při extrakci klíče z certifikátu se (afaik!) platnost certifikátu neověřuje. Čili když si vytvořím self-signed certifikát, tak ho tímhle postupem ochotně přijmeš.
Podle původního popisu to vypadalo, že bude mít někde seznam důvěryhodných certifikátů, a proti nim bude ten podpis ověřovat. Tedy  že o certifikátu user1.crt ví, že je to certifikát důvěryhodného uživatele. Pak je vlastně CA v tom procesu zbytečná a je to stejný způsob použití, jako s PGP. Pokud by soubor user1.crt dodával uživatel, pak je samozřejmě nutné ten certifikát ověřit.

5589
Software / Re:OpenSSL CA a podepisovani souboru
« kdy: 11. 11. 2013, 07:08:35 »
Ještě jednodušeji. Každý uživatel si vytvoří svou dvojici klíčů, a vy budete jen udržovat jednu autoritativní klíčenku, na které bude jen seznam důvěryhodných klíčů uživatelů. Při podpisu pak budete ověřovat, zda je klíč podepsán jedním z klíčů v té klíčence. Je to podobné, jako byste u X.509 certifikátů neověřoval CA, ale měl byste přímo seznam důvěryhodných koncových certifikátů.

5590
Vývoj / Re:Arduino vs android
« kdy: 10. 11. 2013, 11:57:41 »
Co se týče programu tak ho mam udělany ale prostě nevím jak udělat to abych odeslal ten příkaz :(
Prostě při stisknutí toho tlačítka v samostatném vlákně zavoláte ten HTTP GET požadavek. Android SDK má HTTP klienta už přímo v sobě -- android.net.http.AndroidHttpClient. Ale pořád si myslím, že udělat na tohle i hezkou a uživatelsky přívětivou aplikaci je pořád řádově jednodušší v HTML5 než jako nativní aplikaci.

Pokud se ten server na Arduinu chová špatně při ovládání z více míst, bude se to chovat úplně stejně i když to budete ovládat z nativní Androidí aplikace. Problém není v klientovi, ale v serveru.

5591
Software / Re:OpenSSL CA a podepisovani souboru
« kdy: 10. 11. 2013, 11:41:53 »
Certifikát není jen veřejný klíč, je to veřejný klíč + informace o vlastníkovi + to celé podepsané certifikační autoritou. Nevím, zda v openssl neexistuje nějaká zkratka pro použití veřejného klíče z certifikátu při ověřování. Každopádně to dgst je nízkoúrovňová operace, a moc se nepočítá s tím, že ji budou uživatelé používat přímo -- proto asi nebude mít podporu pro nějaké zkratky. Navíc by použití certifikátu bylo trochu matoucí, protože příkaz dgst pouze ověří, že podpis byl vytvořen privátním klíčem příslušným k zadanému veřejnému klíči. Ale neověřuje, že certifikát byl vydán důvěryhodnou CA, že nebyl odvolán ani nic dalšího.

Pro samotné podepsání souboru by asi bylo jednodušší na použití PGP -- pokud vím, tam se operace "podpis souboru" používá a existují pro to postupy. Při použití X509 (OpenSSL) samozřejmě můžete využít pro podpis souboru nízkoúrovňové operace, jak jste to udělal, ale pak si sám musíte nadefinovat, jak se vážou data podpisu k původnímu souboru, v jakém formátu jsou uložená atd.

Ve světě X509 se místo samotného podpisu souboru používá vytvoření kontejneru, který může obsahovat víc objektů (i soubory), následně se podepíše celý kontejner a k tomu se mohou připojit další objekty (např. certifikát příslušný k privátnímu klíči, kterým to celé bylo podepsáno). To popisují standardy PKCS#7, S/MIME a CMS. OpenSSL tyhle standardy podporuje, je ale zaměřené na e-maily, kde se to nejčastěji používá. Můžete ale vyzkoušet, jak se to bude chovat, když mu místo e-mailu podstrčíte váš podepisovaný soubor.

5592
Vývoj / Re:Arduino vs android
« kdy: 09. 11. 2013, 21:54:52 »
Je nutné mít pro to na Androidu samostatnou aplikaci? Připadalo by mi nejjednodušší na ten web server na Arduinu přidat ještě statickou stránku, kde budou velké obrázkové odkazy "Obývák zapnout", "Obývák vypnout" atd. s příslušnými adresami. Na Androidu pak akorát přidáte na plochu záložku vedoucí na tuhle statickou stránku.

5593
Vývoj / Re:Problém s řetězením volání metod v PHP
« kdy: 06. 11. 2013, 14:33:03 »
Ty metody musejí vracet nějaký objekt, na kterém zavoláte tu další metodu – ve vašem případě tedy $this. Ten váš kód totiž dělá jakoby následující (akorát ty návratové hodnoty nejsou přiřazeny do žádné pojmenované proměnné):

Kód: [Vybrat]
$obj = new Test();

$obj2 = $obj->vaha();
$obj3 = $obj2->cena();
$obj4 = $obj3->sklad();
$obj5 = $obj4->dph();

5594
Sítě / Re:Levné zařízení pro Wi-Fi komunikaci
« kdy: 06. 11. 2013, 13:22:03 »
Proc me nejaky "Ucednik" vysvetluje co potrebuji k PoE, jak se tem zarizenim rika a ... ? Co neni jasne na vyrazu "modul-dongle, LAN, nejlepe s PoE"?
Vysvětluje to proto, protože z formulace vašich dotazů se zdá, že to nevíte. V jednom komentáři jste napsal, že přijdete k nějaké (libovolné) LAN, připojíte tam požadované zařízení, a ono začne fungovat (a napájet se z PoE). Takže jsem upozornil na to, že v běžné LAN se PoE v každé zásuvce nevyskytuje, naopak větev LAN, ve které je zároveň napájení, je dost vzácná záležitost, a je zpravidla určená pro jedno konkrétní zařízení. Na výrazu dongle není jasný jeho význam, konkrétně není jasný vám. Normálně se slovem dongle označuje nějaké malé elektronické zařízení, které se připojuje k jinému zařízení, typicky počítači. Jenže vy vzápětí napíšete, že se to zařízení nemá připojovat k počítači, ale do sítě, tedy to vlastně žádný dongle být nemá. No a pak víme, že se má připojit do LAN a mít něco společného s WiFi, později jste to upřesnil na „udělat WiFi“. „Udělat WiFi“ je první informace, kterou lze interpretovat jako pokus o popis funkce požadovaného zařízení. Asi se má přeložit jako WiFi router nebo WiFi AP. Přičemž to nejspíš má být malé, to se asi snažíte vyjádřit tím „dongle“. No a přesně takové zařízení jsem vám poradil v mém prvním komentáři. Další WiFi routery/AP vám poradili i ostatní, takže dotaz asi dekódovali podobně.

Jinak adminem jsem byl už v době, kdy vy jste ještě nejspíš za sebou tahal kačera. Dotazů, kdy tazatel nevěděl, co chce, ale trval na tom, že musí být po jeho, jsem zodpověděl tisíce. Vedlo to ke dvěma typům řešení. Buď tazatel prozradil, čeho se snaží docílit, pak mu bylo možné říci, že řešení se nazývá tak a tak, používá se naprosto běžně a je dostupné jedním příkazem nebo za pár korun. Tazatel odcházel spokojen a jeho původní neřešitelný problém se scvrkl na trivialitu. A nebo tazatel pořád trval na tom, že chce čtverhranné kolečko, a odcházel s tím, že všichni jsou úplně hloupí, když mu nechtějí poradit, jenom on je nejchytřejší, a proto neví, jak svůj problém vyřešit.

5595
Sítě / Re:Levné zařízení pro Wi-Fi komunikaci
« kdy: 05. 11. 2013, 14:06:19 »
Nemusíte to komentovat, stačí, když si jedno z těch zařízení vyberete. Všechna splňují požadavky, které jste tady napsal.

Možná chcete něco jiného, nebo si myslíte, že chcete něco jiného, ale to těžko zjistíme, když to nechcete prozradit (prý aby se nerozpoutal flamewar – ten ale nerozpoutá dobře položená otázka, nýbrž právě naopak špatně položený dotaz). Zatím jste dostal odpověď přesně na to, na co jste se zeptal.

Stran: 1 ... 371 372 [373] 374 375