Разработчик Wireguard серьезно ускорил вызов getrandom() в Linux

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3243
Зарегистрирован: 20.08.2022

#

Разработчик Wireguard серьезно ускорил вызов getrandom() в Linux
Дата публикации:Fri, 05 Jul 2024 08:17:25 +0300




Джейсон Доненфилд (Jason A. Donenfeld), автор VPN WireGuard, представил патчи, значительно ускоряющие получение случайных чисел от системы через функцию getrandom(), реализованную через соответствующий системный вызов Linux. Преимуществом такого решения по сравнению с использованием /dev/random или /dev/urandom является неподверженность атакам на исчерпание файловых дескрипторов, которые могут привести к неинициализированным и неслучайным криптографическим ключам.



Предложенная оптимизация основана на использовании механизма vDSO (virtual dynamic shared object), дающего возможность перенести обработчик системного вызова из ядра в пространство пользователя и избежать переключений контекста. В случае с getrandom(), в виде vDSO оформлена реализация связанного с данной функцией системного вызова, код которой заранее загружается в адресное пространство процесса непосредственно ядром. Такой подход позволил ускорить получение случайных чисел в некоторых ситуациях в 15 раз и более.


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=61494

Жизнь за Нер'зула!

Ответить