V Amsterdamu probíhá Open Source Summit Europe. Organizace Linux Foundation představuje novinky. Pod svá křídla převzala open source dokumentovou databázi DocumentDB.
Přesně před 34 lety, 25. srpna 1991, oznámil Linus Benedict Torvalds v diskusní skupině comp.os.minix, že vyvíjí (svobodný) operační systém (jako koníček, nebude tak velký a profesionální jako GNU) pro klony 386 (486), že začal v dubnu a během několika měsíců by mohl mít něco použitelného.
86Box, tj. emulátor retro počítačů založených na x86, byl vydán ve verzi 5.0. S integrovaným správcem VM. Na GitHubu jsou vedle zdrojových kódů ke stažení také připravené balíčky ve formátu AppImage.
Vláda Spojených států získala desetiprocentní podíl v americkém výrobci čipů Intel. Oznámili to podle agentur americký prezident Donald Trump a ministr obchodu Howard Lutnick. Společnost Intel uvedla, že výměnou za desetiprocentní podíl obdrží státní dotace v hodnotě 8,9 miliardy dolarů (zhruba 186 miliard Kč). Částka podle Intelu zahrnuje dříve přislíbené subvence 5,7 miliardy dolarů z programu CHIPS na podporu výroby čipů v USA,
… více »Organizace Apache Software Foundation (ASF) vydala verzi 27 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Knihovna FFmpeg byla vydána ve verzi 8.0 „Huffman“. Přibyla mj. podpora hardwarově akcelerovaného kódování s využitím API Vulcan, viz seznam změn.
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) vydal Zprávu o stavu kybernetické bezpečnosti ČR za rok 2024 (pdf). V loňském roce NÚKIB evidoval dosud nejvíce kybernetických bezpečnostních incidentů s celkovým počtem 268. Oproti roku 2023 se však jedná pouze o drobný nárůst a závažnost dopadů evidovaných incidentů klesá již třetím rokem v řadě. V minulém roce NÚKIB evidoval pouze jeden velmi významný incident a významných incidentů bylo zaznamenáno 18, což oproti roku 2023 představuje pokles o více než polovinu.
Byl publikován aktuální přehled vývoje renderovacího jádra webového prohlížeče Servo (Wikipedie). Servo mimo jiné nově zvládne animované obrázky APNG a WebP.
Na chytré telefony a počítačové tablety v Rusku bude od začátku příštího měsíce povinné předinstalovávat státem podporovanou komunikační aplikaci MAX, která konkuruje aplikaci WhatsApp americké společnosti Meta Platforms. Oznámila to dnes ruská vláda. Ta by podle kritiků mohla aplikaci MAX používat ke sledování uživatelů. Ruská státní média obvinění ze špehování pomocí aplikace MAX popírají. Tvrdí, že MAX má méně oprávnění k přístupu k údajům o uživatelích než konkurenční aplikace WhatsApp a Telegram.
Společnost PINE64 stojící za telefony PinePhone nebo notebooky Pinebook publikovala na svém blogu srpnový souhrn novinek. Kvůli nedostatečnému zájmu byla ukončena výroba telefonů PinePhone Pro.
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.
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íš.
Se správcem „Všeho zla“ se pojí i zajímavý prsten.
Š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.
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 buf až buflen 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.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
return 4;