r   e   k   l   a   m   a
r   e   k   l   a   m   a

10 lat głupoty FreeBSD? Twórca OpenBSD wyśmiał obawy przed sprzętowymi furtkami NSA

Strona główna AktualnościOPROGRAMOWANIE

Spore zainteresowanie zarówno wśród ludzi zajmujących się systemami operacyjnymi, jak i ekspertów od bezpieczeństwa wywołała deklaracja deweloperów FreeBSD, którzy ogłosili, że dziesiąta wersja ich OS-a nie będzie już ufała generatorom liczb losowych (RNG) wbudowanych w procesory Intela i VIA. Po aferze wokół działań NSA nie można już zagwarantować, że generatory te nie zostały odpowiednio „zmodyfikowane”, tak by niepostrzeżenie osłabić stosowane dziś technologie kryptograficzne – więc FreeBSD 10 będzie dopuszczało dane z tych RNG tylko po przetworzeniu ich przez specjalne algorytmy. Jako pierwszy zareagował na to Theo De Raadt, legendarny twórca OpenBSD – systemu, którego leitmotivem jest bezpieczeństwo ponad wszystko.

OpenBSD nie pójdzie w kwestii zaufania do sprzętowej kryptografii w ślady FreeBSD, z jednego, ale bardzo prostego powodu. Zrobiło to już w 2003 roku, od tamtego czasu wprowadzając obsługę kolejnych elementów sprzętowych jako generatorów losowości, jednak nigdy bezpośrednio. W 2012 roku w jądrze OpenBSD pojawiła się obsługa intelowego zestawu instrukcji rdrand, było to jednak po prostu kolejne źródło entropii, obok takich źródeł jak ruchy myszy, I/O pamięci masowych czy opóźnienia między pakietami. Danymi tymi „karmi” się cały podsystem losowości, który po przetworzeniu ich zwraca wyniki w pseudourządzeniu /dev/random.

De Raadt wyjaśnia, że dla jego projektu intelowy RNG nie jest ani dobry, ani zły – to po prostu kolejne źródło danych dla podsystemu, który został zaprojektowany tak, by zagwarantować silną losowość na wyjściu i spełnia w tym wszystkie dobre praktyki, opisane w literaturze przez autorów takich jak jeden z głównych deweloperów Linuksa, Ted T'so. W ten sposób NSA może sobie majstrować przy RNG tyle, ile chce – równie dobrze mogłoby majstrować przy myszkach, tak by ich przesunięcia były bardziej przewidywalne.

Ogłoszenie w 2013 roku, że system przestaje ufać sprzętowemu RNG, jest więc wg Theo de Raadta przyznaniem się do tego, że przez co najmniej dziesięć lat tkwiło się w błędzie. Przede wszystkim to 10 lat głupoty FreeBSD. Oni niczego nie wiedzą o bezpieczeństwie. Ignorują wszelkie istotne dla dziedziny badania, nie tylko nasze, ale też wszystkich innych – podkreśla twórca OpenBSD. Teraz zaś widzimy pochwały za odejście od złej metody, niemal tak jakby było to jakąś innowacją – dodaje.

Nie jest to jedyna kwestia bezpieczeństwa, w której FreeBSD pozostaje z tyłu. W ciągu tych dziesięciu lat głupoty w konkurencyjnym systemie z rodziny BSD, OpenBSD zdołało przeprowadzić na szeroką skalę zakrojone prace nad technikami ochrony systemów operacyjnych przed exploitami. Opracowane techniki zostały wykorzystane w Windows, Linuksie i w pewnym stopniu w OS-ie X, tymczasem FreeBSD dopiero w wersji 10 wprowadzi niektóre z opisanych przez de Raadta rozwiązań – jednak domyślnie będą one wyłączone.

Wielu naszych Czytelników interesuje zapewne kwestia, jak sprzętowe RNG są traktowane przez najpopularniejszy desktopowy system operacyjny – Windows. Tu trudno udzielić jednoznacznej odpowiedzi. Zbiór kryptograficznych bibliotek programistycznych Microsoftu zawiera funkcję CryptGenRandom, będącą bezpiecznym generatorem liczb pseudolosowych. Jego stosowanie zalecane jest dla wszystkich aplikacji win32. Problem jednak w tym, że nie do końca wiadomo, jak on działa. Przedstawiono jedynie generalny zarys algorytmu, z którego wynikałoby, że jako źródła entropii wykorzystywane są identyfikatory procesów i wątków, czas od uruchomienia sprzętu i czas aktualny, różne liczniki stanów systemu oraz wewnętrzne liczniki procesora. Microsoft otrzymał oczywiście wszystkie niezbędne certyfikaty dla CryptGenRandom, ale realnych, matematycznych, a nie politycznych gwarancji nikt tu dać nie może. W 2007 roku izraelskim badaczom udało się znaleźć za pomocą technik odwrotnej inżynierii poważne słabości w implementacji CryptGenRandom na Windows 2000 i Windows XP (które później zostały poprawione dla XP w Service Packu 3).

Z Linuksem, mimo że na psucie sprzętowego generatora jest odporny (a Theodore T'so chwali się, że nie uległ naciskom Intela, by /dev/random polegało tylko na instrukcjach rdrand), też nie musi być tak wspaniale. W październiku Bruce Schneier donosił o nowym artykule, wskazującym na słabości w pseudolosowych generatorach tego systemu. Jego autorzy – informatycy z USA i Francji – nie wiedzą jednak, czy słabości te można wykorzystać do skonstruowania ataków. Twórcy Linuksa potraktowali jednak dokument poważnie: jądro 3.14 przynieść ma zmiany chroniące przed przedstawionymi scenariuszami ataków.

r   e   k   l   a   m   a
© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.