Текущие проблемы с Linux и fTPM от AMD — TPM на основе встроенного программного обеспечения — похоже, действуют на нервы куратору ядра Линусу Торвальдсу, который предложил полностью отключить генератор случайных чисел модуля.
«Давайте просто отключим этот дурацкий fTPM hwrnd», — сказал Торвальдс в списке рассылки разработчиков ядра с открытым исходным кодом. «Возможно, используйте его для сбора энтропии из разных источников во время загрузки, но явно не следует использовать его во время выполнения».
Доверенные платформенные модули, встроенные или аппаратные, используются для безопасного создания и хранения криптографических ключей, сертификатов и паролей. Модули также, среди прочего, генерируют случайные числа для использования программным обеспечением.
В случае AMD fTPM модуль может вызывать периодические зависания, в зависимости от того, какой процессор Ryzen вы используете. Он появился, когда fTPM использовался, он обращался к своему флэш-хранилищу через последовательный интерфейс и при этом задерживал активность остальной части системы. Если fTPM использовался часто, например, программным обеспечением для генерации потоков случайных чисел, то конечным результатом для пользователей затронутых систем было резкое снижение производительности.
Как AMD указала в прошлогодней записи базы знаний, «некоторые конфигурации системы AMD Ryzen могут периодически выполнять расширенные транзакции памяти, связанные с fTPM, во флэш-памяти SPI («SPIROM»), расположенной на материнской плате, что может привести к временным паузам в работе системы. интерактивность или отзывчивость, пока транзакция не будет заключена».
Проблема возникла на ПК под управлением Microsoft Windows и была решена в обновлении BIOS, которое исправило fTPM, чтобы обеспечить его лучшую работу. Проблема также затронула Linux, и, хотя казалось, что патч на уровне ядра устранил ошибку, замедление снова возникло, вызвав гнев Торвальдса.
Насколько мы понимаем, этот февральский патч ядра пытался определить, использует ли ПК ошибочную версию AMD fTPM, и отключил генератор случайных чисел, если это так. Обоснование заключается в том, что не все установили необходимое обновление BIOS или могут его установить, поскольку они полагаются на производителей материнских плат для распространения исправления.
Перенесемся в этот месяц, и оказалось, что патч не улавливает все итерации ошибочной прошивки или что прошивка не полностью исправлена, поэтому у некоторых пользователей заикание сохраняется. Отсюда предложение руководителя ядра просто отключить генератор чисел fTPM независимо от версии.
Аргумент Торвальдса довольно прост и сводится к следующему: если fTPM вызывает так много проблем, почему бы просто не использовать инструкцию rdrand процессора, чтобы вместо этого предлагать случайные числа. В лучшем случае fTPM можно использовать во время запуска системы для обеспечения энтропии для службы генерации случайных чисел ядра, где неравномерная производительность может не так сильно раздражать, но при обычном использовании fTPM не следует использовать в качестве источника случайных чисел, предположил он. .
«Зачем кому-то использовать эту хрень, когда любая машина, на которой она предположительно исправлена — что, по-видимому, в конце концов оказалось неправдой — также будет иметь инструкцию CPU rdrand, у которой нет проблемы», — написал Торвальдс. «Я не вижу ничего плохого в том, чтобы просто сказать, что fTPM не работает. Даже если в будущем это заработает, есть альтернативы, которые ничем не хуже».
Торвальдс признал, что rdrand может быть медленным, но по сравнению с заиканием, которое пользователи видят в результате fTPM, это кажется лучшей альтернативой. «Поэтому rdrand — и rdseed в частности — может быть довольно медленным, но я думаю, что мы говорим о сотнях циклов ЦП — может быть, несколько тысяч. Ничего похожего на отчеты о заиканиях, которые мы видели от fTPM», — написал он.
Фактическая причина ошибки на данный момент не ясна, хотя Торвальдс предложил несколько теорий относительно того, что может происходить.
«Я легко могу представить код BIOS fTPM, использующий какую-то абсолютно ужасную глобальную блокировку синхронизации EFI или что-то еще, что затем может вызвать случайные проблемы только из-за каких-то совершенно не связанных действий», — написал он. «Я не удивлюсь, например, если [it] был не сам код fTPM hwrnd, который решил прочитать какое-то случайное число из SPI, а то, что он просто был сериализован с чем-то другим, с чем был связан BIOS».
«Не то чтобы специалисты по BIOS славились своим полностью параллельным масштабируемым кодом», — добавил он.
Вы можете найти полные комментарии Торвальдса здесь.
Регистр обратился к AMD, чтобы прокомментировать проблему и получить более полное представление о последствиях, связанных с отключением генератора случайных чисел fTPM.
fTPM можно отключить в BIOS, однако это может ограничить функциональность системы, особенно в отношении аппаратного шифрования и безопасности. С учетом сказанного функциональность TPM, вероятно, более актуальна для пользователей Windows 11. Независимо от того, используют ли они на самом деле какие-либо службы, которые полагаются на TPM, последняя операционная система Redmond технически требует этого.
AMD ранее предлагала использовать физический модуль TPM в качестве альтернативы встроенному TPM, используемому многими материнскими платами. Конечно, вы сначала захотите отключить любое шифрование, основанное на TPM, и вам также понадобится материнская плата с соответствующим заголовком для приема такого модуля, что не гарантируется. ®