Jason Donenfeld, autor da VPN WireGuard, apresentou patches que aceleram consideravelmente a obtenção de números aleatórios do sistema através da função getrandom(), implementada por meio da respectiva chamada de sistema Linux. A vantagem dessa solução em comparação com o uso de /dev/random ou /dev/urandom é a resistência a ataques de exaustão de descritores de arquivos, que podem levar à geração de chaves criptográficas não inicializadas e não aleatórias.
A otimização proposta baseia-se na utilização do mecanismo vDSO (objeto compartilhado dinâmico virtual), permitindo transferir o manipulador da chamada de sistema do núcleo para o espaço do usuário e evitar mudanças de contexto. No caso do getrandom(), foi implementada como vDSO uma chamada de sistema relacionada a essa função, cujo código é carregado previamente no espaço de endereço do processo diretamente pelo núcleo. Essa abordagem permitiu acelerar a obtenção de números aleatórios em algumas situações em até 15 vezes ou mais.
Fonte: opennet.ru
