abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 16:11 | Komunita

Vývojáři relačního databázového systému PostgreSQL oznámili, že schválili svůj Code of Conduct (CoC) aneb kodex chování vývojářů PostgreSQL.

Ladislav Hagara | Komentářů: 2
dnes 14:44 | Nová verze

Byla vydána verze 1.0 poštovního serveru Courier (Wikipedie). Aktualizovány byly také související balíčky jako Courier authentication library, Courier-IMAP, SqWebMail, maildrop nebo Cone.

Ladislav Hagara | Komentářů: 0
dnes 02:22 | Zajímavý software

Společnost ​Versity Software otevřela svůj archivační souborový systém ScoutFS. Zdrojové kódy jsou k dispozici na GitHubu (kernel space, user space) pod licencí GPLv2.

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

Byla vydána verze 4.2 programovacího jazyka Swift (Wikipedie). Zdrojové kódy jsou k dispozici na GitHubu. Ke stažení jsou oficiální binární balíčky pro Ubuntu 18.04, Ubuntu 16.04 a Ubuntu 14.04. Přehled novinek ve videozáznamu přednášky z WWDC 2018.

Ladislav Hagara | Komentářů: 1
včera 17:55 | Nová verze

Po třech a půl letech od vydání verze 3.4.1 byla vydána nová verze 3.4.2 programu pro filtrování spamu Apache SpamAssassin (Wikipedie). Z novinek lze zmínit 4 nové pluginy. Pravidla budou ověřována pomocí SHA-256 a SHA-512 místo SHA-1. Řešeny jsou také 4 bezpečnostní chyby. Například chyba CVE-2018-11780 v pluginu PDFInfo zneužitelná ke vzdálenému spuštění kódů (RCE).

Ladislav Hagara | Komentářů: 0
včera 16:22 | Pozvánky

Díky openSUSE Video Teamu lze sledovat živý přenos většiny prezentací z letošní SUSE Labs Conference. Záznamy proběhlých prezentací budou postupně přidávány na kanál SUSE Labs na YouTube.

Michal Kubeček | Komentářů: 0
včera 10:22 | Pozvánky

Na webových stránkách konference LinuxDays byl zveřejněn program přednášek a workshopů. Současně byla spuštěna registrace. Konference proběhne o víkendu 6. a 7. října 2018 v Praze v areálu ČVUT v Dejvicích na Fakultě informačních technologií.

Ladislav Hagara | Komentářů: 0
včera 02:22 | Komunita

Linus Torvalds se v oznámení o vydání 4. rc verze Linuxu 4.19 omlouvá za své chování. Posledním commitem před zvýšením rc3 na rc4 bylo odstranění souboru s Code of Conflict a přidání souboru s Contributor Covenant Code of Conduct vycházejícího z Contributor Covenant. Vývoj Linuxu 4.19 dokončí Greg Kroah-Hartman. Linus Torvalds si bere volno a bude pracovat na svém chování. Pravděpodobně vylepší svého poštovního klienta, aby mu nedovolil odesílat emaily obsahující nadávky.

Ladislav Hagara | Komentářů: 40
16.9. 11:33 | Nová verze

Byla vydána verze 1.23 open source nástroje pro on-the-fly šifrování (OTFE) dat VeraCrypt. Přehled novinek v nejnovější verzi tohoto nástupce TrueCryptu v poznámkách k vydání.

Ladislav Hagara | Komentářů: 0
15.9. 11:11 | Nová verze

Byly vydány verze 3.0.3 a 3.16 softwaru Wine (Wikipedie), tj. softwaru vytvářejícího aplikační rozhraní umožňující chod aplikací pro Microsoft Windows také pod GNU/Linuxem. Stabilní verze 3.0.3 je třetí opravnou verzí verze 3.0 vydané v lednu. Opravuje 52 chyb. Z novinek vývojové verze 3.16 lze zmínit například počáteční implementaci OPC Services (Open Packaging Conventions).

Ladislav Hagara | Komentářů: 1
Na optické médium (CD, DVD, BD aj.) jsem naposledy vypaloval(a) data před méně než
 (13%)
 (15%)
 (21%)
 (23%)
 (24%)
 (3%)
 (1%)
Celkem 351 hlasů
 Komentářů: 33, poslední 16.9. 11:55
Rozcestník

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

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

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.