Portál AbcLinuxu, 7. května 2025 20:51
Oracle vydal Javu SE 7u25. Opraveno je 40 bezpečnostních chyb, z nichž 37 je zneužitelných vzdáleně. Bezpečnostní chyba byla nalezena i v nástroji pro generování dokumentace Javadoc (VU#225657, frame injection). Je-li dokumentace přístupná pomocí webového serveru, měla by být opětovně vygenerována pomocí opravené verze Javadoc.
Tiskni
Sdílej:
Už by mohli dať bezpečnosť javy do poriadku. Vypnúť javu nie je riešenie, pretože veĺa stránok ani nefunguje bez povolenej javy.
Já si nebudu instalovat speciální aplikace banky, pojišťovny, finančního úřadu, pošty a bůhvíkoho ještě jenom proto, abych jim jednou za rok něco elektronicky poslal…Ona by stačila jednoduchá GUI aplikace pod svobodnou licencí pro vyplňování a podepisování formulářů. Výstupem by byl buď podepsaný soubor (ten by uživatel sám odeslal e-mailem nebo třeba přes web) nebo by ho ta aplikace rovnou odeslala na nějakou webovou službu. Vstupem by byla definice formuláře + volitelně adresa webové služby. Stejná aplikace by šla použít pro víc institucí. Alternativou je akceptovat data podepsaná GPG nebo OpenSSL a dodat jen nějaký skript, který podpis usnadní.
Každopádně bych podporu pro elektronický podpis ve „standardním webovém API“ uvítal mnohem víc, než spoustu z mého pohledu spoustu zbytečností, které se do HTML5 dostávají.Souhlas, tohle by se hodilo. Jen je otázka, jak zajistit, aby uživatel podepsal skutečně to, co si myslí, že podepisuje – aby mu web nepodstrčil k podepsání jiná data, než se zobrazjí ve formuláři. Např. by tam bylo pomocí CSS skryté políčko „chci od vás dostávat spam e-mailem“ nebo „zavazuji se odebírat vaše služby příštích deset let“.
Řešením je rozdělit podepisování a aplikaci (webovou nebo jakoukoliv jinou). Tedy aplikace dá uživateli data jako soubor, uživatel si je podepíše ve svém důvěryhodném nástroji a podpis nebo podepsáná data uživatel opět dodá aplikaci.
Jaký na to bude API (jestli soubor, socket, nebo volání funkcí), je už celkem jedno.
Nebude to sice tak jednoduché jako stisk jednoho tlačítka, ale aspoň se začnou uživatelé dožadovat, aby se podepisovaly otevřené a snadno čitelné dokumenty. To vůbec není případ obecného (třeba s vestavěným SWF objektem) PDF nebo jakýsi stovky kilobajtů dlouhý ad-hoc XML dokument (jako dnes vypadá daňové přiznání) nebo nějaký blob (jako dělají banky).
buď to bude na jedno tlačítko přímo na webu, nebo uživatelé e-maily podepisovat nebudouV tom případě je lepší, když podepisovat nebudou – vytvářelo by to pouze falešný pocit bezpečí a více zmatků. To bude lepší, když e-mail podepíše na serveru poskytovatel pomocí DKIM a na straně příjemce se to ověří. Protože ve skutečnosti by to byl poskytovatel, kdo by měl nad podepisováním moc – nikoli uživatel. Ten by pouze stiskl to jedno tlačítko a JavaScript (právě stažený ze serveru poskytovatele) by cosi poslal na podepisovací API prohlížeče a nechal to podepsat uživatelem. Ale kdo zaručí, že to „cosi“ bylo totéž, co psal uživatel do HTML formuláře? Oproti tomu podepisování na serveru je celkem rozumné řešení – většinou ti totiž stačí vědět, že e-mail pochází od nějaké organizace (domény) a nemusíš mít ověřenou identitu konkrétního odesílatele (osoby). Výhodou je, že koncový uživatel nemusí dělat vůbec nic, resp. dělá věci stejně jako dřív a je to bezpečnější. Pokud potřebuješ „end-to-end“ bezpečnost mezi konkrétními osobami, tak to vyžaduje trošku víc úsilí, znalostí a technického vybavení.
To bude lepší, když e-mail podepíše na serveru poskytovatel pomocí DKIM a na straně příjemce se to ověří.Leda v případě, že se c2s smtp nahradí něčím jiným, co bude schopno zaručit pravost odesilatelovy emailové adresy.
Odesílatel: franta@example.com (neověřeno) Odesláno přes: example.net (ověřeno)A víš, na čem jsi.
Třeba se jednou dopracujeme k tomu, že to tak1 bude, ale zatím je mezi nimi značný rozdíl. JS se stahuje pokaždé znova2 a server mu může podstrčit, co chce a i to průběžně měnit3. Desktopovou aplikaci si jednou stáhneš, jednou si zkontroluješ elektronické podpisy, hashe, pročteš si její zdrojáky nebo si necháš udělat audit (dle svého uvážení) a pak ji používáš a aplikace funguje pořád stejně. V případě aktualizace si uděláš diff zdrojáků, nový audit nebo věříš autorům aplikace, každopádně to máš pod kontrolou a věci se dějí podle tvého.
[1] což vyžaduje určitou infrastrukturu, ne až tak složitou, ale zatím to prostě chybí
[2] případně se bere z mezipaměti, ale to uživatel neovlivní – naopak server si dle svého uvážení může vynutit tichou aktualizaci aplikace – uživatel nic nepozná
[3] webová aplikace, která jednou fungovala dobře a spolehlivě může najednou začít uživateli škodit, aniž by uživatel něco udělal (např. nainstaloval novou verzi)
P.S. já bych tedy Googlu ani Microsoftu jakožto americkým firmám nevěřil.
Tohle je celkem jednoduchý a funkční obchodní model:
Vláda poskytuje:
Firma vyvíjející uzavřený software poskytuje
V EU nikoho nezajímá, že jsem poslal e-mail přes GMail. Když ale ten e-mail bude podepsaný mým kvalifikovaným certifikátem, má v rámci EU právní platnost jako vlastnoručně podepsaný.Pokud ale ten soukromý klíč svěříš Googlu[nebo jinému „cloudovému“ poskytovateli – a to takovým způsobem, že si ho klidně může poslat na svůj server, aniž by sis toho všiml], tak to ztrácí smysl a vypovídací hodnota takového podpisu je stejná, jako hodnota DKIM podpisu.
Ty opravdu nevidíš rozdíl mezi tím když:
[1] nebo nějaký MITM s přístupem k jeho důvěryhodným certifikátům
[2] selektivně jenom tobě – nikdo jiný se o tom dnes nedozví a nejde to zpětně dohledat
Navíc autor tvé distribuce taky může selektivně jenom tobě poslat podvržený balíček s webovým prohlížečem, který ukradne privátní klíč a vzápětí se nahradí standardním balíčkem.
To není zdaleka tak jednoduché: neví, ze kterého zrcadla stahuji, jestli nepoužívám nějakou proxy resp. jakou mám IP adresu (nemluvě o tom, že za jednou IP může být X dalších uživatelů nebo celé sítě), nikam nepíšu jméno a heslo. Naopak u webové aplikace je ta identita uživatele jasně svázaná s HTTP relací (cookie). Co se týče zpětné dohledatelnosti, je to taky úplně jinde: po podvrženém balíčku zůstanou soubory + digitální podpis, po podvržené HTTPS komunikaci nezbude nic (pokud ji explicitně nezachytáváš a nearchivuješ).
Na každý váš případ spiknutí lze nalézt protiopatření.Stejně jako pro ten podpis e-mailu v prohlížeči.
Pokud jste tak paranoidní, tak si binutils, gcc, glibc, linux a openssl můžete stáhnout a zkompilovat sám.Jak ověřím pravost zdrojáků, které stahuji? Ne, srsly, můj ISP automaticky analyzuje stahované tarbally a když je v něm Makefile, tak do něj přidá exec jeho backdooru. Co s tím můžu dělat?
A pokud jde o binární distribuce, tak si myslíte, že třeba Red Hat vyhodí milióny za certifikaci, a pak bude distribuovat poškozenou binárku?Ano, myslím. A nemusí to být RedHat, může to být kterýkoli z jeho zaměstnanců, který má nad podepisováním kontrolu, může to být kterákoli vláda, která má nad RH moc, a může to být kterýkoli hacker, který naboural kteréhokoli z těchto zaměstnanců nebo vlád. Vy si vážně myslíte, že když DigiNotar vyhodí milióny za certifikaci, tak pak bude prodávat MITM certifikáty?
Ne, srsly, můj ISP automaticky analyzuje stahované tarbally a když je v něm Makefile, tak do něj přidá exec jeho backdooru. Co s tím můžu dělat?
Chytří pánové vymysleli hashovací funkce a asymetrickou kryptografii. Mně třeba FTP GNU ukazuje takové soubory s příponou sig. Mně třeba rsyncová zrcadla Gentoo ukazují soubory Manifest. Mně třeba stejné soubory nabízí look-a-side cache Fedory nebo podepsané zdrojové balíčky Red Hat Enterprise Linuxu nebo GNU/Debianu. A dokonce ty soubory vypadají stejně z různých sítí a přes různé protokoly.
Řekl bych, že možnostem, jak si ověřit původnost zdrojáků toolchainu, může kdejaký notář či tak zvaně důvěryhodná instituce závidět.
Ano, myslím. A nemusí to být RedHat, může to být kterýkoli z jeho zaměstnanců, který má nad podepisováním kontrolu,
Zrovna z pozice podepisujícího zaměstnance to tak snadné není. Zdrojáky musí někdo nacpat do verzovacího systému, zdrojáky musí nějaký systém zkompilovat, někdo musí balíček otestovat, někdo jej musí podepsat, po podpisu jej musí vrátit do systému, a tak dále. A různé kroky dělají různí lidé. Ti lidé často ani nemají přímý přístup k daným systémům, pouze s nimi komunikují. A všude se táhnou kontrolní součty, logy a zálohy. Z tohoto pohledu útočit na konci řetězce je čiré bláznovství. To už je rozumnější nechat se zaměstnat jako vývojář, který stojí na úplném začátku, protože ten už v podstatě vaří z vody. I když ani ten to nemá bez rizika, protože toho křížově kontroluje jiný vývojář a vedle toho ještě bezpečností tým se baví pročítáním kódu a různé systémy v různých fázích dělají rozdílové testy.
může to být kterákoli vláda, která má nad RH moc,
Myslíte vlády, které brečí, jak jim firmy utíkají s daněmi za hranice? Myslíte nad firmou, která sice má vedení v Severní Karolíně, ale v podstatě veškerý provoz je rozprostřen po celé planetě?
a může to být kterýkoli hacker, který naboural kteréhokoli z těchto zaměstnanců nebo vlád.
Jistě, že jednorázový incident se může přihodit. Proto ale máme logy a zálohy, abychom mohli rozsah útoku odhalit, oběti varovat a učinit protiopatření.
Vy si vážně myslíte, že když DigiNotar vyhodí milióny za certifikaci, tak pak bude prodávat MITM certifikáty?
Však taky skončil. Jenom to ukazuje, že nelze bezmezně věřit jedné straně, ale je třeba křížově kontrolovat. Přesně tak, jako lze ověřit zdrojáky toolchainu.
Popisovany proces sa zrejme netykal upstreamu, ale RHELu.
proč by úplně ten samý mechanismus nešlo použít pro stažení JavaScriptu GMailu?
Velmi omezeně. Kód Gmailu distribuuje jenom Gmail. Nikdo jej nearchivuje, nepodepisuje, ani neredistribuuje. Navíc samotný Gmail vám nedistribuuje zdroják, ale až výsledek překladu. Minimálně je prohraný všelijakými kompresory a zatemňovači. Taky se kód liší pro různé uživatele nebo země. A taky pro různé user agenty. Nehledě na to, že se mění jako ponožky (prohlédněte si třeba druhou stránku výsledků vyhledávače Googlu – samotná data se dodávají jako javascript – v HTML nejsou).
Ad podepisování distribučních balíčků -- nezapomněl jste napsat, že nepopisujete Linux, ale Hurd 1.0?
Popisoval jsem změnu kódu v komerční distribuci. Konkrétně v RHEL, když si ho předchozí komentář vzal na mušku.
Se správou distribučního balíčku osobní zkušenost nemám
Já ano.
balíček má v distribuci správce jednoho nebo žádného
V nadšeneckých distribucích tomu tak bohužel je. Očividně je mezi linuxáky málo lidí ochotných něco dělat. To je asi důvod, proč existují distribuce jako CentOS nebo Scientific Linux nebo nakonec Ubuntu.
Tohle platí možná pro OpenSSL, neplatí to ani pro jádro nebo glibc
Přijďte se podívat příští jaro na den otevřených dveří do brněnského Red Hatu. Návštěvníci přicházejí s mylnou představou, že je to jeden hacker vedle druhého, co se hrabe v jádře.
Už to psal Petr, je to trochu shrnu:
data (xhtml + css: pro opakovatelnou prezentaci a zároveň rozšiřitelnost) k podepsání.A o tom to je
XHTML je stále hodně zaměřené na prezentaci informace, ne až tolik na sémantiku.Což je v pořádku. Uživatel podepisuje to co vidí on - co si tam pro zjednodušení (strojovou čitelnost) přidá webový program je jen její problém ...
Bylo by potřeba podporovat další jmenné prostorykterý je velmi jednoduše řešitelný právě jmennými prostory. Pointa: podepisovaná data mají být statická a jednoznačná. XSLT je stejně jako JS turingovsky úplný jazyk, proto bych ho v takovém místě viděl jen velmi nerad.
*) tím nemyslím tu knihovnu, ale JS, který mi přijde z webu, který ji používá
Tohle JavaScript skutečně jednoduše nahradí.Možná by stálo za to se při tom nahrazování na chvíli zastavit a zamyslet se, jaký má tohle „řešení“ smysl. Kryptografie při takovém použití nemá smysl a stejně dobře by posloužilo jméno a heslo nebo libovolný soubor (plnící funkci dlouhého hesla), který bych jen přiložil k odesílaným datům. Efekt by byl stejný.
Ještě než se rozjede další kolo flamu, tak bych rád poznamenal, že je potřeba rozlišovat dva případy:
První případ je tragický a kontraproduktivní (falešný pocit bezpečí), kryptografie je zde zcela zbytečná a zavádějící a soukromý klíč plní jen roli jakéhosi dlouhého hesla.
Druhý případ by mohl být užitečný, pokud by ho někdo standardizoval a napsal potřebné nástroje – je to jen otázka vhodného API a GUI.
ja sa na OpenJDK pozeram ako na Javu druhej kategorieA to proč?
Odstranit tu sračku ze všech prohlížečů je práce na zbytek dne.Tohle jsem tu zahlédl už dřív - on u toho už nefunguje odinstalátor? Mně zatím vždycky, když jsem na tuhle mrchu u někoho narazil, stačilo otevřít v Ovládacích panelech panel pro odebrání programů a ty dvě položky týkající se Ask Toolbaru prostě odinstalovat...
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.