abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 10:44 | Zajímavý článek

    Alyssa Rosenzweig se v příspěvku na svém blogu Vulkan 1.3 na M1 za 1 měsíc rozepsala o novém Vulkan 1.3 ovladači Honeykrisp pro Apple M1 splňujícím specifikaci Khronosu. Vychází z ovladače NVK pro GPU od Nvidie. V plánu je dále rozchodit DXVK a vkd3d-proton a tím pádem Direct3D, aby na Apple M1 s Asahi Linuxem běžely hry pro Microsoft Windows.

    Ladislav Hagara | Komentářů: 2
    dnes 01:00 | Nová verze

    Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.90 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.90 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    dnes 00:44 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová verze 2024.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | IT novinky

    Počítačová hra Tetris slaví 40 let. Alexej Pažitnov dokončil první hratelnou verzi 6. června 1984. Mezitím vznikla celá řada variant. Například Peklo nebo Nebe. Loni měl premiéru film Tetris.

    Ladislav Hagara | Komentářů: 10
    včera 10:44 | Nová verze

    MicroPython (Wikipedie), tj. implementace Pythonu 3 optimalizovaná pro jednočipové počítače, byl vydán ve verzi 1.23.0. V přehledu novinek je vypíchnuta podpora dynamických USB zařízení nebo nové moduly openamp, tls a vfs.

    Ladislav Hagara | Komentářů: 0
    včera 10:22 | Nová verze

    Canonical vydal Ubuntu Core 24. Představení na YouTube. Nová verze Ubuntu Core vychází z Ubuntu 24.04 LTS a podporována bude 12 let. Ubuntu Core je určeno pro IoT (internet věcí) a vestavěné systémy.

    Ladislav Hagara | Komentářů: 2
    včera 01:00 | Nová verze Ladislav Hagara | Komentářů: 0
    4.6. 19:55 | IT novinky

    Intel na veletrhu Computex 2024 představil (YouTube) mimo jiné procesory Lunar Lake a Xeon 6.

    Ladislav Hagara | Komentářů: 0
    4.6. 13:44 | IT novinky

    Na blogu Raspberry Pi byl představen Raspberry Pi AI Kit určený vlastníkům Raspberry Pi 5, kteří na něm chtějí experimentovat se světem neuronových sítí, umělé inteligence a strojového učení. Jedná se o spolupráci se společností Hailo. Cena AI Kitu je 70 dolarů.

    Ladislav Hagara | Komentářů: 0
    4.6. 13:22 | Nová verze

    Byla vydána nová verze 14.1 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Jaderné noviny – 24. 7. 2014: Spolehlivější cesta k jaderné entropii

    12. 8. 2014 | Luboš Doležel | Jaderné noviny | 5532×

    Aktuální verze jádra: 3.16-rc6. Citáty týdne: Mike Galbraith, Konrad Rzeszutek Wilk. Chybovost Linuxu 2.6. Systémové volání pro náhodná čísla: getrandom().

    Obsah

    Aktuální verze jádra: 3.16-rc6

    link

    Aktuální vývojová verze jádra je 3.16-rc6 vydaná 20. července. Linus začíná mít obavy, že je okolo -rc moc velký šrumec:

    rc6 sice pořád není až *tak* veliké, proto nemám vyloženě strach, ale dostávám se do fáze, kdy lidem nadávám a křičím na ně, když mi posílají věci, které do pozdních rc nepatří. Tím neříkám, že to tak někdo dělal: i když je rc6 větší, než bych doufal, není tam nic až tak nesmyslného. Budu na to ale dávat pozor a začnu být nevrlý (nebo nevrLEJŠÍ), pokud zaznamenám, že má slova o uklidňování neberou vážně.

    Stabilní aktualizace: verze 3.15.6, 3.14.13, 3.10.49 a 3.4.99 vyšly 17. července.

    Citáty týdne: Mike Galbraith, Konrad Rzeszutek Wilk

    link

    Pokud si s chráněnou věcí nemůžeme pohrávat z víc míst najednou, pak víš, co dělat, a pokud můžeme, tak také víš, co dělat. Pokud na to nemůžeš přijít, pak pokračuj v boji s dalšími větrnými mlýny, dokud všechny na naší planetě neporazíš.

    -- Mike Galbraith

    Se správcem „Všeho zla“ se pojí i zajímavý prsten.

    -- Konrad Rzeszutek Wilk

    Chybovost Linuxu 2.6

    link

    Šestice vývojářů právě zveřejnila dokument, který zkoumá selhání v Linuxu 2.6. V srpnu 2011 Linux vstoupil do své třetí dekády. Před deseti lety Chou et al. vydali studii o chybách aplikováním statické analýzy kódu na verze Linuxu od 1.0 po 2.4.1. Významným výsledkem jejich práce bylo to, že adresář drivers obsahoval až 7krát více chyb určitého druhu než jiné adresáře. Tento výsledek vedl ke snahám o zvýšení spolehlivosti kódu ovladačů. Dnes je Linux používán ve větším množství prostředí, nabízí širší paletu služeb a přijal nový způsob vývoje a vydávání. Jaký je dopad těchto změn na kvalitu kódu? Abychom zodpověděli tuto otázku, přenesli jsme experimenty od Choua et al. na Linux 2.6; verze vydané mezi léty 2003 a 2011. Přišli jsme na to, že velikost Linuxu se za tuto dobu více než zdvojnásobila, ale počet chyb na řádek se snižuje. Chybovost ovladačů je teď navíc nižší než u jiných adresářů jako arch. Tyto výsledky mohou napovědět dalšímu vývoji a výzkumu v nadcházejícím desetiletí. Abychom usnadnili tvorbu dalších výsledků, jak se bude Linux vyvíjet, tak jsme připravili definici našeho protokolu pro experimenty a zpřístupnili jsme své kontrolní nástroje.

    Systémové volání pro náhodná čísla: getrandom()

    link

    Linuxové jádro již poskytuje několik způsobů, jak získávat náhodná čísla, každý z nich má svá omezení. Tato omezení však mohou procesům znemožnit získání náhodných dat, když je právě potřebuje. Projekt LibreSSL si v poslední době stěžoval, že na Linuxu není žádný „spolehlivý“ způsob získání náhodných dat na Linuxu. To vedlo Teda Ts'o k navržení nového systémového volání getrandom(), které by LibreSSL poskytlo to, co potřebuje, a současně by to vyřešilo nějaké další problémy s náhodnými čísly.

    Jádro spravuje úložiště náhodných čísel („pooly“), do kterých jsou dodávána data z nepředvídatelných zdrojů (např. prodlevy mezi stisky kláves). Obsah entropie, kterým každá z těchto událostí přispěje, je odhadnut a sledován. Na datech v poolech se používá kryptograficky bezpečný pseudonáhodný generátor čísel (PRNG), který pak dodává data do dvou zařízení: /dev/urandom a /dev/random.

    Standardním způsobem, jak získat náhodná čísla od jádra, je číst zařízení /dev/urandom. Je tu ale i zařízení /dev/random, které blokuje tak dlouho, než je nashromážděn dostatek entropie pro obsluhu volání read(). /dev/urandom by se v zásadě mělo používat pro všechna náhodná čísla, avšak /dev/random se někdy používá např. pro velmi citlivé, dlouho používané klíče (např. GPG) nebo jednorázové tabulkové šifry. Aby mohla aplikace kterýkoliv z těchto zdrojů použít, musí dokázat použít open() na souboru, což znamená, že musí mít dostupné popisovače. Také to znamená, že aplikace musí mít schopnost vidět soubory v /dev, což někdy nemusí v případě kontejnerů v chroot() platit.

    LibreSSL používá /dev/urandom, má ale nouzové řešení pro případ vyčerpání počtu popisovačů (o které se útočník může postarat) nebo jiné selhání, kdy nelze otevřít soubor. Nouzovým řešením je použít zastaralé systémové volání sysctl() pro přečtení hodnoty /proc/sys/kernel/random/uuid, aniž by bylo nutné tento soubor otevřít (jelikož LibreSSL ví, že /dev/urandom otevřít nejde). sysctl() může jednoho dne zmizet – některá distribuční jádra toto volání už nemají – a někdy způsobuje varování v logu jádra. Pokud sysctl() selže, pak má LibreSSL ještě jedno záložní řešení v podobě děsivě vzhlížející funkce, jež se snaží vygenerovat vlastní náhodná čísla z různých (doufejme) nepředvídatelných hodnot dostupných v uživatelském prostoru (např. časová razítka, čísla PID apod.).

    Vše je možné vidět v dobře okomentovaném kusu kódu v souboru getentropy_linux.c v LibreSSL. Poslední komentář v této sekci obsahuje prosbu:

    * Doufáme, že toto stačí jako důkaz, že by Linux buď měl zachovat své
    * sysctl ABI, nebo zvážit poskytnutí nového nouzového API, které funguje
    * v chrootu nebo v případě vyčerpání popisovačů.
    */
    

    Toto nové API je právě to, co Ts'o navrhl. Systémové volání getrandom() je v jeho patchi dobře popsáno (nyní ve verzi 4). Má následující deklaraci:

    #include <linux/random.h>
    
    int getrandom(void *buf, size_t buflen, unsigned int flags);
    

    Toto volání naplní buffer bufbuflen náhodnými bajty, které je možné použít pro kryptografické účely, a vrátí počet uložených bajtů. Asi už správně hádáte, že flags ovlivňuje chování volání. V případě, že flags == 0, pak getrandom() bude blokovat, dokud nebude pool /dev/urandom inicializován. Pokud je flags nastaveno na GRND_NONBLOCK, pak getrandom() vrátí -1 s chybou EAGAIN, pokud pool ještě není připraven.

    Příznak GRND_RANDOM lze použít pro přepnutí na pool /dev/random, což s sebou nese požadavky na entropii používané v tomto poolu. To znamená, že volání bude blokovat, dokud nedosáhne pool požadované entropie, leda by bylo ve flags přítomno i GRND_NONBLOCK; v takovém případě by volání vrátilo tolik bajtů, jak je jen aktuálně možné; pokud není k dispozici žádná entropie, pak vrátí -1 s chybou -EAGAIN. Volání vrátí počet bajtů uložených do buf (nebo -1 v případě chyby). Ke krátkému čtení (tzn. je přečteno méně, než je požadováno) může dojít kvůli nedostatku entropie v /dev/random nebo pokud bylo volání přerušeno signálem v případě /dev/urandom a při čtení po 256 bajtech nebo méně je po inicializaci tohoto poolu dávána záruka, že bude obsloužen celý požadavek.

    V navrhované manuálové stránce připojené k patchi Ts'o ukazuje kód, kterým lze emulovat systémové volání getentropy() z OpenBSD pomocí getrandom(). Jedna ze stížností na patch přišla od Christopha Hellwiga, kterému vadilo, že Ts'o neimplementuje to samé systémové volání jako OpenBSD. Dále řekl: Mít trochu odlišná jména a sémantiku pro tu samou funkčnost je dost k zlosti. Jenže Ts'o se snaží vyřešit víc než jen problém LibreSSL, jak sám říká. getrandom() má být nadmnožinou getentropy() na OpenBSD – glibc může snadno vytvořit kompatibilní implementaci getentropy(), jak ukázal ve svém patchi.

    To, že /dev/urandom musí být inicializováno dříve, než getrandom() vrátí jakákoliv data z tohoto poolu, je jednou z nových funkcí poskytovaných tímto systémovým voláním. V současnosti nemají aplikace jak zjistit, jestli bylo od bootu systému nashromážděno alespoň 128 bitů entropie (což je pro inicializaci /dev/urandom nezbytné). Nyní může aplikace buď čekat zablokovaná, než se tak stane, nebo to opakovaně zkoušet s příznakem GRND_NONBLOCK. Jelikož je chování /dev/urandom součástí jaderného ABI, není možné jej upravit, ale přidání blokování do nového systémového volání je naprosto v pořádku.

    Systémové volání také nabízí způsob, jak číst /dev/random bez blokování a dostat jen část požadovaných dat, pokud se entropie nedostává. Je trochu těžké si představit, k čemu to lze doopravdy využít – pokud nepotřebujete plný buffer náhodných čísel z kvalitní entropie, pak proč o něj žádat? Pravdou je, že toto nové volání nabízí různé způsoby, jak zneužívat náhodný generátor čísel v jádře (např. tím, že požádáte o INT_MAX bajtů), ale v tomto ohledu se to od stávajících rozhraní neliší.

    Tedovy patche vyvolaly spousty komentářů různých druhů, ale jen málo stížností. Celá myšlenka účastníkům diskuze dává smysl. Některé změny byly provedeny na základě komentářů, hlavně pak přechod na blokování ve výchozím módu. Poslední revize už ale vyvolala jen komentáře ohledně překlepů. Pokud se toto nezmění, pak bychom mohli getrandom() v jádře očekávat brzo, možná už v Linuxu 3.17.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    12.8.2014 03:17 Tassadar | skóre: 11 | blog: Lorris | Brno
    Rozbalit Rozbalit vše Re: Jaderné noviny – 24. 7. 2014: Spolehlivější cesta k jaderné entropii
    Velmi se mi líbí překlad "The Maintainer of 'All Evil' has an interesting ring to it" do češtiny :)
    return 4;
    12.8.2014 09:04 jehovista
    Rozbalit Rozbalit vše Re: Jaderné noviny – 24. 7. 2014: Spolehlivější cesta k jaderné entropii
    Akorat by tam melo byt "se spravcem"
    12.8.2014 11:05 Roger
    Rozbalit Rozbalit vše Re: Jaderné noviny – 24. 7. 2014: Spolehlivější cesta k jaderné entropii
    To je, bohužel, ten menší problém...
    12.8.2014 11:07 Roger
    Rozbalit Rozbalit vše Re: Jaderné noviny – 24. 7. 2014: Spolehlivější cesta k jaderné entropii
    Teď koukám, že i překlad "one-time pad" je velmi... nekonvenční :)
    14.8.2014 19:08 Vladimír Čunát | skóre: 19
    Rozbalit Rozbalit vše Re: Jaderné noviny – 24. 7. 2014: Spolehlivější cesta k jaderné entropii
    Eh, já vůbec nepochopil co se tím překladem myslí :-) Až z diskuze.
    Luboš Doležel (Doli) avatar 12.8.2014 20:37 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Jaderné noviny – 24. 7. 2014: Spolehlivější cesta k jaderné entropii
    Přeložit to jako "dobře to zní" bylo moc nudné :-)
    13.8.2014 11:11 Roger
    Rozbalit Rozbalit vše Re: Jaderné noviny – 24. 7. 2014: Spolehlivější cesta k jaderné entropii
    A ten one-time pad? Taky nuda?
    14.8.2014 12:55 MMN
    Rozbalit Rozbalit vše Re: Jaderné noviny – 24. 7. 2014: Spolehlivější cesta k jaderné entropii
    Správně je samozřejmě „jednorázová vložka“ :-)
    14.8.2014 20:47 Lol Phirae | skóre: 23
    Rozbalit Rozbalit vše Re: Jaderné noviny – 24. 7. 2014: Spolehlivější cesta k jaderné entropii
    S křidélky. Doporučuje 20 z 10 gynekologů.
    12.8.2014 09:15 David Jaša | skóre: 44 | blog: Dejvův blog
    Rozbalit Rozbalit vše Re: Jaderné noviny – 24. 7. 2014: Spolehlivější cesta k jaderné entropii
    Lidi z libressl by mohli osamostatnit vlastní generování čísel z haveged do samostatné knihovny. Vzhledem k době vývoje tipuju, že těžko vymyslí něco lepšího.
    18.8.2014 22:24 zde
    Rozbalit Rozbalit vše Re: Jaderné noviny – 24. 7. 2014: Spolehlivější cesta k jaderné entropii
    Tak se kurva /dev do kontejneru nabinduje, no.. zase se řeší důsledek místo příčiny.. inu Linux.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.