Błąd sprzętowy w niektórych procesorach AMD. Wadliwe działanie generatora liczb losowych

Strona główna Aktualności

O autorze

Wybrane procesory AMD mają problem z działaniem generatora liczb losowych, RdRand – RNG. Okazuje się ze generator przestaje funkcjonować poprawnie po wybudzeniu maszyny z uśpienia. Szczęśliwie usterką są objęte jedynie starsze układy, takie jak Excavator i jego poprzednicy (mikroarchitektura Bulldozer i pochodne). Nowy Zen działa jak należy.

Przypadłość zdiagnozował i opisał programista Red Hata, Lennart Poettering. W przykładzie użył czipu A6-6310, ale ustalono już, że problem jest szerszy i obejmuje znaczną część mikroarchitektur modułowych AMD – od czerwca 2015 r., gdyż starsze jednostki instrukcji nie wspierają.

RdRand wykorzystywany jest do generowania kluczy dla OpenSSL. Jednak domyślnie jądro Linux forsuje rozwiązanie programowe, a Windows kompletnie pomija RdRand w ACPI.

Czasem tylko w Linuksie tworzy się tym sposobem unikatowe identyfikatory UUID dla identyfikatorów wywołania, czego próbował zespół Red Hata. I wtedy właśnie dochodzi do zawieszenia komputera, gdy platforma wykorzystuje jeden z dotkniętych błędem procesorów. Oczywiście można to obejść, stosując czysto programowy RNG. Tak też zapewne postąpią w Red Hacie.

NSA? Nie ma tego złego, co by...

Jest też ciekawostka. Trochę paradoksalnie, niektórzy użytkownicy mogą się z kaprysów RdRand ucieszyć. W 2013 r. Linus Torvalds otrzymał petycję z prośbą o usunięcie funkcji z /dev/random. Dlaczego? Bo opiera się ona na standardzie NIST SP800-90, współtworzonym przez NSA.

Autor postulatu obawiał się, że w RdRand zaszyty jest jakiś backdoor. – Używamy rdrand jako jednego z wielu źródeł losowości i jest on sposobem na polepszenie losowości. Nawet jeśli w rdrand znajduje się tylna furtka NSA, to jego użycie poprawia jakość losowych wartości otrzymywanych z /dev/random – tłumaczył Torvalds. Na tyle skutecznie, że śmiałek zrezygnował z roszczenia. Ale być może porzucenie RdRand komuś jeszcze samopoczucie poprawi.

© dobreprogramy