Network Time Protocol Security
Sobota, październik 25th, 2008Protokół używany przez większość serwerów czasu w sieci jest NTP (Network Time Protocol) i istnieje od dość dawna, ale ciągle jest aktualizowany i rozwijany, oferując coraz wyższy poziom dokładności i bezpieczeństwa.
Synchronizacja jest istotną częścią nowoczesnych sieci komputerowych i jest niezbędna do zapewnienia bezpieczeństwa systemu. Bez NTP i synchronizacji czasu sieć komputerowa może być podatna na złośliwe ataki, a nawet oszustwa.
Nawet z doskonale zsynchronizowanym zabezpieczeniem sieci nadal może być problem, ale istnieje kilka kluczowych kroków, które można podjąć w celu zapewnienia bezpieczeństwa sieci.
Zawsze używaj dedykowanego Network Time Server. Podczas gdy źródła czasu internetowego są powszechne, są źródłem czasu znajdującym się poza zaporą. Będzie to miało oczywiste luki w zabezpieczeniach, ponieważ złośliwy użytkownik może skorzystać z "dziury" pozostawionej w zaporze sieciowej, aby komunikować się z serwerem NTP. Dedykowany Serwer NTP otrzyma sygnał czasu ze źródła zewnętrznego.
Zwykle tego typu dedykowane serwery czasu będą wykorzystywać sieć GPS (Global Positioning System) lub specjalistyczne krajowe transmisje radiowe w czasie i częstotliwości. Oba te źródła czasu oferują dokładną i niezawodną metodę czasu UTC (skoordynowanego czasu uniwersalnego), a jednocześnie są bezpieczne.
Innym sposobem na zapewnienie bezpieczeństwa jest skorzystanie z wbudowanego mechanizmu bezpieczeństwa NTP - uwierzytelniania. Uwierzytelnianie to zestaw zaszyfrowanych kluczy, które służą do ustalenia, czy źródło czasu pochodzi z miejsca, z którego pochodzi.
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.
Zaufane klucze uwierzytelniające są wymienione w pliku konfiguracyjnym serwera NTP (ntp.conf) i przechowywane w pliku ntp.keys. Plik klucza jest zwykle bardzo duży, ale zaufane klucze informują serwer NTP, który zestaw podzbiorów kluczy jest obecnie aktywny, a który nie. Różne podzestawy można aktywować bez edytowania pliku ntp.keys za pomocą polecenia config zaufanych kluczy.
Uwierzytelnianie jest bardzo ważne w ochronie Serwer NTP od złośliwego ataku; nie można jednak uwierzytelnić źródeł czasu w Internecie, co podwaja ryzyko korzystania z internetowego odniesienia do czasu.