The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

В некоторых процессорах AMD Zen 5 генератор случайных чисел RDSEED выдаёт 0 в 10% случаев

17.10.2025 09:53

Инженер из компании Meta* в списке рассылки разработчиков ядра Linux обратил внимание на проблему с работой инструкции RDSEED в процессорах AMD на базе микроархитектуры Zen 5. В проведённых тестах инструкция RDSEED, предоставляющая доступ к аппаратному генератору энтропии, в 10% случаев возвращала значение 0 с успешным флагом завершения операции (CF=1). Так как значение 0 также возвращается в случае невозможности вернуть корректное случайное число и подобное состояние выделяется иным значением флага завершения операции (CF=0), предполагается, что в процессорах AMD имеется ошибка, приводящая к неверному определению состояния операции.

В ядре Linux инструкция используется как один из элементов для формирования энтропии в программном генераторе псевдослучайных чисел. Источников энтропии несколько, поэтому проблема в RDSEED не влияет на общее качество выдаваемых ядром случайных чисел. Для ядра предложен патч, отключающий применение инструкции RDSEED на системах с некоторыми процессорами AMD на базе микроархитектуры Zen 5.

Изначально проблема была выявлена в CPU AMD EPYC Turin, но позднее повторена на другой модели CPU AMD с той же микроархитектурой, поэтому предложено вместо выборочной блокировки прекратить использование RDSEED на всех процессорах семейства AMD Zen 5. Примечательно, что тестирование корректности работы RDSEED на разных процессорах проведено в ходе разбора другой проблемы с RDSEED, возникшей в CPU Zen2 Cyan Skillfish и приводящей в некоторых ситуациях к возвращению только значения 0xffffffff. До этого в процессорах AMD возникали проблемы c нарушением работы инструкции RDRAND после возвращения из спящего режима.

  1. Главная ссылка к новости (https://www.phoronix.com/news/...)
  2. OpenNews: Критическая уязвимость в генераторе случайных чисел GnuPG и Libgcrypt
  3. OpenNews: Уязвимость в генераторе случайных чисел ядра Linux
  4. OpenNews: Выявлена проблема с генерацией предсказуемых случайных чисел на процессорах MIPS
  5. OpenNews: Опубликован прототип бэкдора в генераторе псевдослучайных чисел Dual_EC_DRBG, входившем в стандарт NIST
  6. OpenNews: Google опубликовал инструментарий для анализа и изменения микрокода AMD
Лицензия: CC BY 3.0
Наводку на новость прислал Kerr
Короткая ссылка: https://opennet.ru/64066-amd
Ключевые слова: amd, random
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (51) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, iPony128052 (?), 09:52, 17/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Если это происходит в рандомных экземплярах, то выходит нормально?
     
     
  • 2.31, 12yoexpert (ok), 11:29, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +6 +/
    а если в псевдорандомных? атас
     
  • 2.32, Аноним (32), 11:32, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Если целенаправленная закладка работает и её туда специально заложили это нормально. В этом и смысл.
     

  • 1.2, Аноним (2), 09:52, 17/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    >выдаёт 0 в 10% случаев

    Как страшно жить. Неужели это прям так плохо?

     
     
  • 2.7, Alladin (?), 10:05, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    да, ты ухцдшаешь качество генерируемых хэшей, эьо опасно
     
  • 2.10, Аноним (10), 10:07, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если энтропия берется только отсюда, то отвратительно плохо. Много криптоалгоритмов становятся бессмысленными с плохим ГПСЧ.
     
  • 2.11, Аноним (11), 10:07, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну даже не знаю, представь что ты запрашиваешь 256 битный рандомный ключ для шифрования, у которого диапазон значений 0 .. 2^256-1, а тебе с вероятностью 10% выпадает ноль, а вероятность нуля должна быть = 1 / 2^256
    Это буквально "КРИТИЧЕСКАЯ НЕУДАЧА" для твоего биткоин-кошелька (точнее программы, которая держит твой кошель), а если на таком процессоре сервер биткоин-кошельков, типа какого-нибудь бинанс...
    Ну короче последствия надеюсь ты понял...
     
     
  • 3.18, Аноним (18), 10:38, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Инструкция возвращает 16/32/64 битное значение, а не 256. Так что вероятность того, что пр и 64 бит тебе 4 раза подряд вернется значение 0 равно 1*10-4. Во всех остальных случаях  вернется таки достаточно случайное число (как минимум, 64 битное). Аккуратней надо быть с циферками.
     
     
  • 4.26, Анонисссм (?), 11:09, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >как минимум, 64 битное

    64 битную энтропию в биткоин адресах щелкают как орехи, несколько часов и готово

     
  • 3.19, Аноним (19), 10:43, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Согласно документации, разрядность регистра 16, 32, 64 бита. Так что всё ещё хуже.
     
     
  • 4.34, Аноним (32), 11:34, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да в 8086 была 16 бит. Только это было при царе горохе.
     
  • 2.20, Аноним (19), 10:45, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Всего лишь бракованный процессор, неужели это прям так плохо?
     
     
  • 3.35, Аноним (32), 11:35, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Откуда ты знаешь. Может переведен в специальный режим при помощи недокументированных возможностей?
     
  • 3.42, Николай Тесла (?), 12:05, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > неужели это прям так плохо?

    Всё зависит от того, где стоит этот процессор и при выполнении какой конкретно задачи будет выдан ноль.

     
  • 2.27, leap42 (ok), 11:10, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Как страшно жить. Неужели это прям так плохо?

    Неа, эта инструкция является лишь одним из (обычно "худшим") источников энтропии в системе. Можно совмещать с другими или вообще не использовать (скорее всего отключением по умолчанию и кончится, по крайней мере при наличии другого качественного источника вроде TPM2).

     
     
  • 3.38, Аноним (38), 11:49, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    TPM2 - в большинстве случаев, чисто софтовый. Как ты думаешь, откуда он берет энтропию?
     
  • 3.61, Аноним (61), 13:23, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А как вы определили качество энтропии TPM2? Он работает под управлением отдельной ОС - с закрытым и обфусцированным исходным кодом, с защитой от анализа. Что туда насовал дорогой Интел/АМД можно только догадываться. Или тратить кучу оплачиваемых человекочасов на обратную разработку для каждой отдельной железки.
     
     
  • 4.69, anonymous (??), 14:30, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Гугли fTPM
     
  • 4.70, Аноним (70), 14:32, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    https://en.wikipedia.org/wiki/Trusted_Platform_Module#Open_source
     

  • 1.3, гитарист (?), 09:57, 17/10/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +2 +/
     

  • 1.6, BlackRot (ok), 09:59, 17/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    и что? мне теперь выбросить мой Ryzen 5 9600X?
     
     
  • 2.37, Аноним (37), 11:42, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сначала прогони небольшой тестик на ASMе. N раз вызывай эту RDSEED и смотри, возвращает ли 0 с флагом 1.
     

  • 1.15, Аноним (15), 10:12, 17/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Тото мне в онлайн играх лут с шансом упасть 50% выпадает с 20й попытки, а лут с шансом упасть 20% надо гриндить 4 дня без остановки. Это оказывается AMD виноваты, а не жадные разрабы, желающие развести меня на оплаченное игровое время.
     
     
  • 2.24, Аноним (24), 10:56, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну лут с шансом 0.02 выпадает с шансом 75% же. Причём, знаешь, когда 4 раза на рейдбосса завалишься (это там где толпа конкурентов помимо вероятности того что вообще что-то выпадет) и 3 раза забираешь лучший предмет. Секрет в том, чтобы играть раз в неделю, вот вам и "шанс".
     

  • 1.22, Аноним (22), 10:50, 17/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Зачем полностью отключать использование, если можно в случае выпадения 0 сделать ретрай?
     
     
  • 2.23, Аноним (23), 10:55, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Выпадет 0xFFFFFFFF, годится?
     
  • 2.30, Аноним (30), 11:28, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Спорный костыль
     
     
  • 3.48, Аноним (22), 12:46, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Предложи неспорный.
     
     
  • 4.59, Аноним (15), 13:12, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вполне себе рабочий костыль: если не равно 0 или 0xffffffff, то все норм. Во времена NES такой костыль использовали для считывания с геймпада, т.к. DPCM из за аппаратных косяков мог загадить шину. Надо было считать состояние геймпада 3 раза. И все было норм только если все 3 раза совпадали.
     
  • 4.60, Аноним (60), 13:13, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вероятность выпадения нуля должна оставаться ненулевой. То есть иногда ноль -- это нормально, если он выпадает раз в N итераций. Ты же предлагаешь, чтобы ноль не возвращался никогда. Это плохо. Отсутствие нуля -- это неслучайность: кто-то явно вписал if (result == 0) continue. Как ты догадываешься, неслучайностям нет места там, где требуется именно случайность.
     
     
  • 5.63, Аноним (22), 13:30, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Спорно.
     

  • 1.25, Аноним (25), 11:03, 17/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    На Fedora вот такое выдает FALSE через несколько случайных циклов

    set -euo pipefail
    x=0
    while ldconfig -p | grep -q 'libc.so.6'; do
        echo "$((x++))"
    done
    echo "FALSE"

     
     
  • 2.41, Аноним (60), 12:02, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    По твоему мнению, что этот бессвязный набор букв делает?
     

  • 1.28, Аноним (28), 11:11, 17/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Квантовые технологии. Просто побольше количество попыток выполнить и можно будет подразумевать,что всё на самом деле хорошо с энтропией.
     
     
  • 2.29, Аноним (24), 11:28, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Бекдоры, ослабляющее генераторы случайных чисел определённым образом, вещь не то чтобы новая. Думаешь, с квантовыми технологиями не получится мухлевать?
     
     
  • 3.33, Аноним (28), 11:32, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    По-моему квантовые как бв вычисления и есть мухлёж.
     
     
  • 4.56, Самый Лучший Гусь (?), 13:08, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Требуем криминализировать злоупотребление квантовой запутанностью!
     
  • 4.58, Аноним (58), 13:12, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    нет!!!
     

  • 1.39, Аноним (38), 11:50, 17/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    AMD упорно наступает на одни и те же грабли.
     
  • 1.62, Аноним (62), 13:23, 17/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    может быть просто проц ещё не прогрелся и шума маловато
     
     
  • 2.65, почти админ (?), 13:36, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Плохая пайка. Китайцы.
     
  • 2.68, Аноним (68), 14:16, 17/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > шума маловато

    Шума вентилятора? Случайные числа надо получать считая количество пыли на кулере. Броуновское движение пылинок.

     

  • 1.64, почти админ (?), 13:34, 17/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Странно, что не в 2,02% ака 4.
     
  • 1.66, Xasd9 (?), 14:10, 17/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    если значение из RDSEED уже и так рано 0

    то можно не отключать использование RDSEED для инотропии…

    зачем его отключать(?) если «0» (либо другое одно и тоже число) можно уже и так считать что «RDSEED не работает».

    отключение RDSEED не даст ровным счётом ни чего — кроме ухудшения энтропии для тех 90% случаев когда оно не «0».

     
  • 1.67, Аноним (67), 14:12, 17/10/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру