Автор VPN WireGuard випустив нове оновлення RDRAND

Джейсон А. Доненфельд, автор VPN WireGuard дав про це знати кілька днів тому нова реалізація оновлено з генератора випадкових чисел RDRAND, який відповідає за пристрої /dev/random і /dev/urandom в ядрі Linux.

Наприкінці листопада Джейсон був внесений до списку супроводжувача випадкових контролерів і тепер опублікував перші результати своєї роботи по переробці.

У повідомленні зазначено, що нова реалізація примітна перемикання на використання хеш-функції BLAKE2s замість SHA1 для операцій змішування ентропії.

BLAKE2s сам по собі має хорошу властивість внутрішньо базуватися на
Перестановка ChaCha, яку ГСЧ вже використовує для розширення, отже
не повинно бути проблем з новизною, оригінальністю або дивовижним процесором
поведінка, оскільки вона базується на чомусь, що вже використовується.

Крім того, зазначається, що зміни також покращено безпеку генератора псевдовипадкових чисел позбувшись проблемного алгоритму SHA1 та уникнувши перезапису вектора ініціалізації ГСЧ. Оскільки алгоритм BLAKE2s випереджає SHA1 за продуктивністю, його використання також позитивно вплинуло на продуктивність генератора псевдовипадкових чисел (тести на системі з процесором Intel i7-11850H показали збільшення швидкості на 131%). .

Ще однією перевагою, яка виділяється, є перенесення суміші ентропій у BLAKE2 є уніфікацією використовуваних алгоритмів: BLAKE2 використовується в шифрі ChaCha, який вже використовується для вилучення випадкових послідовностей.

BLAKE2s, як правило, швидший і, безумовно, безпечніший, Він був дійсно дуже зламаний. Крім того, поточна збірка в ГСЧ не використовує повну функцію SHA1, як визначає і дозволяє певним чином перезаписувати IV вихідним сигналом RDRAND недокументований, навіть якщо RDRAND не налаштовано як "довірений", що що означає можливі зловмисні варіанти IV.

А значить його коротка довжина зберігати лише половину секрету під час подачі назад до змішувача це дає нам лише 2^80 біт прямого секретності. Іншими словами, не тільки вибір хеш-функції застарів, але її використання також не дуже добре.

Крім того, було внесено вдосконалення в генератор псевдовипадкових чисел CRNG, що використовується під час виклику getrandom.

Також згадується, що покращення зводяться до обмеження виклику генератора RDRAND повільно витягує ентропію, яка може покращити продуктивність у 3,7 раза. Джейсон продемонстрував, що виклик RDRAND Це має сенс лише в ситуації, коли CRNG ще не повністю ініціалізовано, але якщо ініціалізація CRNG завершена, його значення не впливає на якість згенерованого потоку, і в цьому випадку це можна зробити без виклику RDRAND.

Цей компроміс спрямований на вирішення цих двох проблем і, в той же час, підтримання загальна структура і семантика максимально наближені до оригіналу.
Зокрема:

а) Замість того, щоб перезаписувати хеш IV на RDRAND, ми вводимо в задокументовані BLAKE2 поля «сіль» та «особисті», які є створений спеціально для цього типу використання.
b) Оскільки ця функція повертає результат повного хешування до колектора ентропії, ми повертаємо лише половину довжини хеш, як це було зроблено раніше. Це збільшує створити секретний секрет від 2^80 до 2^128 набагато зручніше.
в) Замість того, щоб просто використовувати необроблену функцію "sha1_transform", замість цього ми використовуємо повну та правильну функцію BLAKE2s із завершенням.

Заплановано включення змін до ядра 5.17 і вже були розглянуті розробниками Тедом Цо (другий супроводжувач випадкового драйвера), Грегом Кроа-Хартманом (відповідальний за стабільність ядра Linux) і Жаном-Філіппом Амассоном (автор алгоритмів BLAKE2 /3).

Нарешті, якщо ви зацікавлені в тому, щоб дізнатися більше про це, ви можете ознайомитися з деталями в наступне посилання.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.