Jason Donenfeld, autor VPN WireGuard, představil patche, které výrazně zrychlují získávání náhodných čísel ze systému pomocí funkce getrandom(), implementované prostřednictvím příslušného systémového volání Linuxu. Výhodou takového řešení oproti použití /dev/random nebo /dev/urandom je odolnost vůči útokům na vyčerpání deskriptorů souborů, které mohou vést k neinicializovaným a nenáhodným kryptografickým klíčům.
Navrhovaná optimalizace je založena na využití mechanismu vDSO (virtual dynamic shared object), který umožňuje přesunout obsluhu systémového volání z jádra do prostoru uživatele a vyhnout se přepínání kontextu. V případě getrandom() je implementace souvisejícího systémového volání zabalena do vDSO, jejíž kód je předem načten do adresového prostoru procesu přímo jádrem. Takový přístup umožnil zrychlit získávání náhodných čísel v některých situacích až 15krát a více.
Zdroj: opennet.ru
