Zabezpieczenia NTP z uwierzytelnianiem i zaufanymi referencjami dotyczącymi czasu
Wysłane przez Richard N Williams on Stycznia 16th, 2008
NTP (Network Time Protocol) synchronizuje sieci z jednego źródła czasu za pomocą znaczników czasu do reprezentowania aktualny czas w ciągu dnia, jest to niezbędne do transakcji wrażliwych czasowych i wielu aplikacji systemowych, takich jak e-mail.
NTP jest więc podatny na zagrożenia bezpieczeństwa, zarówno ze strony złośliwego hakera, który chce zmienić sygnaturę czasową w celu popełnienia oszustwa, jak i ataku DDoS (Rozproszona odmowa usługi - zwykle spowodowana złośliwym złośliwym oprogramowaniem, które zalewa serwer z ruchem), który blokuje dostęp do serwera.
Jednakże, będąc jednym z najstarszych protokołów internetowych i opracowanym przez ponad 25 lat, NTP jest wyposażony w własne zabezpieczenia w postaci uwierzytelniania.
Uwierzytelniania sprawdza, czy każdy timestamp ma pochodzić od zamierzonego czasu odniesienia poprzez analizę zestawu uzgodnionych kluczy szyfrujących, które są wysyłane wraz z informacją o czasie. NTP, przy użyciu szyfrowania Message Digest (MD5) un-szyfrowania klucza, analizuje je i potwierdza, czy ma ona pochodzić z zaufanego źródła czasu, sprawdzając go na zestaw zaufanych kluczy.
Klucze zaufanych uwierzytelniania się w pliku konfiguracji serwer NTP (ntp.conf) i są zapisane w pliku ntp.keys. Plik klucza jest zwykle bardzo duże, ale zaufane klucze powiedzieć serwer NTP, który zestaw podzbioru kluczy jest aktualnie aktywne, a które nie. Różne podzbiory mogą być aktywowane bez edycji pliku ntp.keys używając polecenia config-zaufanych kluczy.
Uwierzytelnienie jest zatem bardzo ważne w ochronie serwera NTP przed złośliwym atakiem; jednak istnieje wiele odniesień czasowych, których nie można zaufać uwierzytelnieniu.
Microsoft, który zainstalował wersję NTP w swoich systemach operacyjnych od czasu Windows 2000, zdecydowanie zaleca, aby źródło sprzętu było używane jako odniesienie czasowe, ponieważ źródła internetowe nie mogą być uwierzytelniane.
NTP ma zasadnicze znaczenie dla synchronizacji sieci, ale równie ważne jest zapewnienie bezpieczeństwa systemów. Podczas gdy administratorzy sieci wydają tysiące na oprogramowanie antywirusowe / złośliwe, wielu nie zauważa luki w ich serwerach czasu.
Wielu administratorów sieci wciąż powierza źródła internetowe dla ich odniesienia do czasu. Podczas gdy wiele z nich zapewnia dobre źródło czasu UTC (Coordinated Universal Time - międzynarodowy standard czasu), takie jak nist.gov, brak uwierzytelniania oznacza, że sieć jest otwarta na nadużycia.
Inne źródła czasu UTC są bardziej bezpieczne i mogą być wykorzystane przy stosunkowo niskich kosztach sprzętu. Najprostszą metodą jest użycie specjalistycznego serwera czasu NTP GPS, który można podłączyć do anteny GPS i otrzymać uwierzytelnioną znacznika czasu przez satelitę.
Serwery czasu GPS mogą zapewnić dokładność czasu UTC w ciągu kilku nanosekund, o ile antena ma dobry widok na niebo. Są one stosunkowo tanie, a sygnał jest uwierzytelniany, zapewniając bezpieczne odniesienie do czasu.
Alternatywnie istnieje kilka transmisje krajowe, które przekazują do czasu odniesienia. W Wielkiej Brytanii ten nadawany jest przez National Physics Laboratory (NPL) w Cumbrii. Podobne systemy funkcjonują w Niemczech, Francji i USA. Podczas gdy ten sygnał jest uwierzytelniona, te transmisje radiowe są podatne na zakłócenia i mieć skończony zakres.
Uwierzytelnianie NTP został opracowany, aby zapobiec złośliwym manipulowanie synchronizacji systemu tak jak firewalle zostały opracowane w celu ochrony sieci przed atakiem, ale jak w każdym systemie bezpieczeństwa działa tylko wtedy, gdy jest ona wykorzystywana.