Portál AbcLinuxu, 21. května 2025 12:07
Aktuální verze jádra: 3.8-rc3. Citáty týdne: Alan Cox, Linus Torvalds. Podepisování binárek ELF.
Aktuální vývojová verze jádra je 3.8-rc3 vydaná 9. ledna. Nuže, máme tu další týden a další -rc. Jeho velikost je vcelku obvyklá. Do hlavní řady dále proudí změny; kromě běžných oprav je mezi nimi i nový ovladač pro WiFi karty Wilocity wil6210.
Stabilní aktualizace: 3.0.58, 3.4.25 a 3.7.2 vyšly 11. ledna; verze 3.2.37 vyšla 16. ledna. Masivní sada aktualizací, ze kterých bude 3.0.59, 3.4.26, 3.5.7.3 a 3.7.3, se stále reviduje; vydání lze očekávat 17. ledna nebo později.
IMHO bychom měli mít pravidlo, že všechno, co je důležité, by mělo mít *dva* nebo více správců [maintainers]. Pak bychom vždy měli někoho, kdo pomůže zvolit nového správce, když jeden odpadne, a nebudeme vydáni na milost událostem ze skutečného světa. Budeme také muset aktivněji dávat správcům padáka, pokud zmizí (a když budeme mít správce dva, tak se to bude pěkně vyvažovat).
-- Alan Cox
Nikdy neříkáme „uživatelský prostor by neměl“. Vážně. NIKDY. Uživatelský prostor to tak prostě *dělá* a my se s tím musíme vypořádat.
Jako součást snahy o podporu UEFI Secure Boot na Linuxu navrhl Matthew Garrett řadu omezení jaderných funkcí, aby podepsaná jádra nemohla být použita k obejití secure boot. Řada z nich byla vcelku nekontroverzní, ale vypnutí kexec() mezi ně nepatřilo, proto bylo později z patche vyřazeno. V té době se řešilo, jak by bylo kexec() možné ve světě secure boot podporovat; Vivek Goyal nedávno zaslal návrh patche, aby se na tom mohlo začít pracovat.
Systémové volání kexec() se používá k nahrazení běžícího jádra jiným programem. Je možné jej použít pro start nového jádra bez průchodu BIOSem nebo jiným firmwarem, což je právě problém kvůli secure boot. Běžící jádro ověřené mechanismem secure boot (a tedy důvěryhodné) by mohlo přes kexec() spustit jakékoliv nepodepsané, neověřené jádro. Obavy jsou o to, že by šlo použít ke startu Windows v nezabezpečeném prostředí, ačkoliv by věřily, že v něm jsou – přesně tomu má secure boot zamezit. To by mohlo vést k zařazení linuxových zavaděčů na černou listinu, což by znesnadnilo spouštění Linuxu na hardwaru certifikovaném pro Windows 8.
Goyalovy patche přidávají možnost kryptograficky podepisovat binárky ELF a pak je nechat jádrem ověřovat. Pokud je binárka podepsaná a podpis souhlasí, bude spuštěna. Ačkoliv patch toto zatím neimplementuje, myšlenka je taková, že podepsaná binárka by mohla mít zpřístupněny dodatečné možnosti, pokud projde ověřením – například možnost použít kexec(). Pokud je binárka nepodepsaná, bude vždy spuštěna. K zablokování spuštění by vedl jen neplatný podpis.
Patche obsahují nástroj signelf, jenž umisťuje podpis na bázi soukromého klíče z argumentu do ELF sekce .signature. Podpis je vypočítán z hashe obsahu segmentů PT_LOAD, který je následně kryptograficky podepsán. Je založený na kódu pro podepisování modulů, který byl před nedávnem přidán do jádra, ale místo připojení podpisu na konec binárky jej dává do sekce .signature.
Protože nelze věřit sdíleným knihovnám používaným binárkou (zatím neexistuje žádný mechanismus pro jejich ověření), lze podepisovat jen statické binárky. Patche nemohou zabránit binárkám přímo volat dlopen(), ale Goyal říká, že takové binárky by neměly být podepisovány. Zaměřuje se na binárku /sbin/kexec, jež lze použít ke spuštění kdump, aby se uživatelé stále mohli dostat ke crash dumpům i na systému se secure boot, ale celá věc má i jiná užití.
Jakmile loader binfmt_misc detekuje binárku se sekcí .signature, uzamkne stránky binárky do paměti a ověří podpis. Goyal se snaží zabránit situacím, kdy je binárka upravena po svém ověření, což je důvod uzamykání do paměti. Pokud podpis nesedí, proces je zabit; nepodepsané binárky se spouští jako obvykle.
Kromě přidání možnosti spouštět kexec() ještě zbývají další věci, které patch neřeší. Největším z nich je zákaz ptrace() na podepsaných binárkách. Jinak by bylo možné bezpečnostní mechanismus všelijak podkopávat – například změnit to, jaká binárka se předává do kexec(). Kromě toho jsou na TODO listu taktéž nějaké další věci týkající se klíčů a klíčenky.
V jádře už ale je mechanismus pro ověřování podpisů u různých typů souborů. V jádře verze 3.7 bylo přidáno rozšíření IMA (Integrity Measurement Architecture), které dělá většinu z toho, co Goyal potřebuje, na což ostatně poukázal jeho správce Mimi Zohar. Ačkoliv IMA cílí na ověřování integrity celého systému, poskytuje většinu operací, které chtěl Goyal doplňovat. Na druhou stranu jsou tu funkce jako zákaz ptrace(), uzamknutí binárky do paměti a nastavování povolených funkcí na základě ověřeného podpisu, což už je mimo obor integritního subsystému. Goyal se aktuálně zajímá o nabalení používání integritních funkcí a přidání funkcí specifických pro secure boot.
Přijít o možnost používat kexec() na systémech se secure boot by bylo docela bolestivé. Ačkoliv Garrettovy patche tuto změnu zatím neprovádějí (kvůli stížnostem ostatních jaderných vývojářů), pravděpodobně tak učiní všechny distribuce, co se o podporu secure boot zajímají. Je dobré hledat řešení, aniž bychom riskovali zlobu ze strany Microsoftu, jež by mohla vést k zařazení na černou listinu.
tak proc by to pro vas nekdo vyrabel?vyrobci obvykle vyrabi veci aby vydelali
vyrobci obvykle vyrabi veci aby vydelaliAle k tomu musi byt relevantni market.
tak si proste vytvorim vlastni.Good Luck
a par korun je treba Raspberry Pi.Za par korun ze soucastek z GM, ano?
Vyrobit si PCB neni zase takovej problem.Jiste, ctyrvstve PCB, kusovka, s peti prototypy nez to bude stabilni, no problem. A navic se to vyplati!
Jiste, ctyrvstve PCB, kusovka, s peti prototypy nez to bude stabilni, no problem. A navic se to vyplati!Nerikam ze je to levny, ale zase to neni nic na co bys poterboval $10000000... Jinak nevim jestli jsme se pochopili. Nerikam ze je to levny nebo jednoduchy, ale ze je v dnesni dobe realny aby si jednotlivec navrhl a postavil vlastni plnohodnotny pocitac (i kdyz pomalejsi nez high-end). A pokud bude na vyber mezi vlastni navrh a locked-down platforma nad kterou nemas zandnou kontrolu, tak verim ze se do toho pusti hodne nadsencu a zacnou to i prodavat...
ale zase to neni nic na co bys poterboval $10000000...To je fakt. Bude vam stacit jen $10000. A neni jednoduzsi jen upravit CoreBoot a vymenit flashku?
Sovičko, tady jste příliš ve vleku vlastní omezené zkušenosti.Bavime se kusove vyrobe z elektronickych soucastek, vcetne navrhu PCB a srovnavat to se stavbou PC z nakoupenych komponentu nekde v Alze skutecne muze asi jen zkuseny borec jako vy.
Předně, i velcí výrobci vyrábějí z dílů, které někdo prodáváBezesporu. Jenze ti velci si je dokazi koupit v pripade komponent klidne i tricetkrat levneji nez chudak bastlir kupujici v GM/Farnellu, o cene kusove vyroby PCB radsi nemluve.
"nabootovat a byt pseudo-secure az po ouska".Tadle cast uz je, ted delaji na tom, aby to prave pokud mozno nebylo pseudo-secure, ale secure.
Ach jo, neorezava. Funkcionalita tam zustava. Stejne tak muzes rict ze FIPS mod je spatny, protoze nedovoli nacist modul, ktery nema spravny kontrolni soucet. A nejsou to funkce, ktery by se MS nemusely libit, jde o "neovereny" pristup (mimo jine) do kernel pameti.Skutečně není hlavní motivací nedat Microsoftu příčinu ke zneplatnění podpisu?
Jde o to, ze kdyz uz se bootuje overene, tak je zbytecny mit "neovereny" system, ktery si dela co chce, to uz se rovnou muze bootovat neoverene (vypnout secure boot).Pokud si dobře pamatuju, tak se převážně bootuje ověřeně, protože to chce Microsoft, ne protože to chtějí linuxáci.
Dokud pujde vypnout Secure boot, tak podle me neni nikde problem.Což jsem ale pochopil, že ne vždy půjde.
Navic muze i uzivatel sam si podepisovat moduly, bootloadery a vsechno mozny.Ditto.
V dusledku pokud chce, tak si muze i nabootovat podepsany (pre)bootloader a zavest nepodepsane jadro.Což by dělalo z celého secure bootu pouhou frašku.
Zadny lock tu zatim neni.Skutečně mi na základě všech těchto informací připadá, že se nedná o tradiční microsoftí přístup k bezpečnosti. Není důležité, aby to skutečně pomohlo, ale aby to bylo vidět a psalo se o tom.
Což jsem ale pochopil, že ne vždy půjde.Pak není problém s SB, ale v tom, že někdo vyrábí počítač, na kterém lze spustit jen a pouze Windows. A je jedno, jestli toho dosahuje kryptografickou onanií (SB) nebo třeba obfuskovanými windows-only ovladači na všechen HW.
Skutečně není hlavní motivací nedat Microsoftu příčinu ke zneplatnění podpisu?Rekl bych ze jo, ale vidim to tak, ze se to da i vyuzit a nevidim to v soucasne situaci az tak spatne. On treba FIPS take chce podepsany kernel a moduly a nikdo nekrici. Jenom proto ze to neni HW vec a neni implicitne zapnuta.
Pokud si dobře pamatuju, tak se převážně bootuje ověřeně, protože to chce Microsoft, ne protože to chtějí linuxáci.To jsem momentalne vubec neresil.
Což jsem ale pochopil, že ne vždy půjde.Potom na to budu taky nadavat.
Což by dělalo z celého secure bootu pouhou frašku.No, pokud to beres takto, tak to fraska je. Uzivatel si muze dat vlastni klice do UEFI pameti a pomoci tohoto klice se muze overit bootloader, ktery si tam clovek sam dal a pak si muze bootovat cokoliv. Na upravu tedle pameti ze systemu je potreba bezet v systemu, ktery nabootal pomoci SB, nebo (neni imho soucasti specifikace) muze uzivatel vlozit klic v setupu.
Skutečně mi na základě všech těchto informací připadá, že se nedná o tradiční microsoftí přístup k bezpečnosti. Není důležité, aby to skutečně pomohlo, ale aby to bylo vidět a psalo se o tom.Jo to je mozny, do hlavy jim nevidim. Nejsem ani bezpecnosti expert. V kazdym pripade Secure boot resi (jak nazev rika) jen bootovani, ten zbytek je implementace toho, aby nebyl Secure boot zbytecny (at uz kvuli MS, nebo nekomu jinymu), bez tohoto zbytku je Secure boot fraska.
On treba FIPS take chce podepsany kernel a moduly a nikdo nekrici.Nevím úplně kdo a proč by měl kvůli tomu křičet, pokud to nepředstavuje pro vlastníky počítačů žádný závažný problém.
No, pokud to beres takto, tak to fraska je.A jak jinak bych to měl brát. Pokud jde bezpečnostní řetěz takhle lehce přerušit, tak tam prostě nemusí být.
Uzivatel si muze dat vlastni klice do UEFI pameti a pomoci tohoto klice se muze overit bootloader, ktery si tam clovek sam dal a pak si muze bootovat cokoliv.Ale to s tím nijak nesouvisí a navíc v případě zabezpečení je vždy nutné rozlišovat uživatele a administrátora (popřípadě vlastníka).
implementace toho, aby nebyl Secure boot zbytecnyCož je velmi komické, vzhledem k tomu, že secure boot dosud nebyl vnímaný jako nezbytný. Až nutnost ho implementovat kvůli MS mu přinesla větší publicitu.
Tam si myslim ze by meli lidi rvat a poukazovat na to co se deje a co se muze stat na Intelu, ale lidi se s tim smirili a ted jen krici ze na intelu todle a tamto, pritom tam neni tak velky problem jako na ARMu.To je velký omyl. Pro uživatele intelu je svým způsobem mnohem důležitější malý problém na intelu než velký problém na armu. Zvlášť když se ten malý problém může velmi lehce ve velký obrátit a pravděpodobně i za tím účelem vznikl.
Jde o to, ze kdyz uz se bootuje overene, tak je zbytecny mit "neovereny" systemA tohleto „ověřování“ má na starosti kdo? Microsoft? Sakra, snad já jsem vlastníkem paměti a můžu si na libovolnou adresu zapsat co chci, ne? To abych mohl nabootovat ten nejúžasnější systém od jisté společnosti se musím krom podepsání smlouvy pomalu s ďáblem vzdát i vlastnictví své vlastní paměti? No s tim nech jdou laskavě do
Dokud pujde vypnout Secure boot
Zadny lock tu zatim neni.Jo, jo. Přesně. „Dokud“ a „zatím“. A až vypnout nepůjde a lock tu bude, tak co?
To je totiž kámen úrazu všech DRM technologií. Přijde mi že Microsoft se nesnaží vůbec o nic jiného než kolegové z pornoprůmyslu filmové branže. Tak nech rovnou udělají stráženou místnost s jedním stolkem, jednou židličkou, jednou ozámkovanou ostnatou černou krabičkou, kulomety, samostříly a vařícím olejem, vše namířené na židličku a nad dveře nalepí ceduli „Wow! Here you can experience amazing Windows® Operating System™.“ Aspoň tím přestanou otravovat život lidem, kteří na jejich nejúžasnější OS kašlou podobně jako já. Že ten systém už má pomalu stejnou váhu jako čerstvě vykakaný psí bobek a že jim na to taky bílí tesák sere autoři samozřejmě vůbec neřeší, hlavně aby se k jeho vlastnictví nedostal někdo jiný než oni. No vypatlanci, co víc říct.
A tohleto „ověřování“ má na starosti kdo? Microsoft?Stará se o to ten, na koho jsi tuto starost delegoval. Třeba ty sám.
Sakra, snad já jsem vlastníkem paměti a můžu si na libovolnou adresu zapsat co chci, ne?Ano, můžeš. V čem je problém?
Jo, jo. Přesně. „Dokud“ a „zatím“. A až vypnout nepůjde a lock tu bude, tak co?Az tu bude tak bude sakra problem. Ale ted ta situace neni a mam pocit, ze vsichni kdyz slysi Secure boot, tak mysli ze je to nejaky black box, ktery je nedotknutelny a dovoluje uzivateli jen boot, toho, co posvetil (podepsal) Microsoft. Jasne prisel s tim Microsoft, ale ten prisel taky (spolu s ostatnimi) s USB a dalsima vecma.
a Linux se teď ořezává o funkce které by se jim mohli nelíbitJaké funkce máš na mysli? Úprava kexec popsaná v článku pochopitelně jde vypnout.
tedy především všechna mobilní zařízeníNebo tím myslíš jako backdoor přímo v systému? Nemyslím si, že by to třeba na N900 bylo nějak jednodušší než na desktopu.
Teoreticky. Nie kazdemu vyrobcovi fimware sa to podarilo.Pak je to bug srovnatelný třeba s domrveným ACPI, kvůli kterému se Linux zasekne.
A s prichodom Windows 9 staci mala uprava a uz nepojde spustit nic ine.Tímto způsobem se dá argumentovat třeba proti procesorům nebo pevným diskům.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.