Network Time Protocol
Network Time Protocol (NTP) – protokół komunikacyjny służący do synchronizacji zegarów komputerów i innych urządzeń w sieciach komputerowych o zmiennych opóźnieniach transmisji. NTP rozprowadza czas odniesiony do UTC, używa zwykle UDP na porcie 123 i jest jednym z najstarszych protokołów internetowych pozostających w powszechnym użyciu. Protokół został zaprojektowany przez Davida L. Millsa i jest rozwijany od pierwszej połowy lat 80. XX wieku; aktualną podstawową specyfikacją jest NTPv4 opisana w RFC nr 5905[1][2][3].
NTP nie przesyła informacji o lokalnej strefie czasowej ani o zasadach czasu letniego; jego zadaniem jest utrzymanie zgodnego czasu systemowego, a przeliczenie UTC na czas lokalny pozostaje funkcją systemu operacyjnego albo aplikacji. W dobrze zaprojektowanych sieciach lokalnych NTP może osiągać dokładność lepszą niż milisekunda, natomiast w publicznym Internecie wynik zależy od tras pakietów, asymetrii opóźnień, przeciążenia i jakości źródeł czasu[1][4].
Sam protokół NTP należy odróżniać od konkretnych implementacji – serwerów i klientów, które realizują jego algorytmy. Do szeroko stosowanych implementacji należą klasyczna referencyjna usługa ntpd rozwijana w ramach NTP Project, niezależnie napisany chrony oraz utwardzony pod kątem bezpieczeństwa fork NTPsec; uproszczonymi klientami SNTP są m.in. usługa Windows Time w systemach Microsoft Windows oraz wbudowany w systemd komponent systemd-timesyncd[3][5].
Historia i wersje
[edytuj | edytuj kod]Prace, z których wywodzi się NTP, rozpoczęły się przed formalną specyfikacją protokołu w badaniach Davida L. Millsa nad synchronizacją zegarów w sieciach pakietowych. Wczesne rozwiązania zostały opisane między innymi w IEN 173 oraz w RFC nr 778 dotyczącym DCNET Internet Clock Service. Pierwsza specyfikacja Network Time Protocol, oznaczana później jako NTPv0, ukazała się w RFC nr 958 w 1985 roku i zawierała format pakietu oraz wzory na opóźnienie i przesunięcie zegarów używane także w późniejszych wersjach[6][7][8].
NTPv1 został opisany w RFC nr 1059 z 1988 roku, NTPv2 w RFC nr 1119 z 1989 roku, a szeroko stosowana wersja NTPv3 w RFC nr 1305 z 1992 roku. Wersja trzecia wprowadziła bardziej rozwinięte procedury wyboru zegara i analizy błędów, a specyfikacja NTPv4 z 2010 roku zastąpiła wcześniejsze dokumenty podstawowe i zintegrowała w jednym standardzie także uproszczony wariant SNTPv4[9][10][11][1].
Po RFC nr 5905 publikowano dalsze rozszerzenia i zalecenia, między innymi dotyczące pól rozszerzeń, zmian w kodzie uwierzytelniania wiadomości, najlepszych praktyk operacyjnych, losowania portu źródłowego klienta, rejestrów IANA i trybów z przeplatanymi znacznikami czasu. Nadal jednak za podstawowy protokół produkcyjny uznaje się NTPv4, a kolejne prace rozwojowe są prowadzone w ramach dokumentów aktualizujących i projektów roboczych IETF[12][13][14][15][16][17].
Zasada działania
[edytuj | edytuj kod]
NTP jest zwykle opisywany w modelu klient–serwer: klient okresowo odpytuje jeden lub kilka serwerów czasu, oblicza przesunięcie swojego zegara i stopniowo koryguje częstotliwość zegara systemowego. Ten sam protokół może jednak pracować także w trybach symetrycznych między równorzędnymi węzłami, a w sieciach lokalnych dopuszcza również rozgłaszanie lub multicast, w których klienci nasłuchują ogłoszeń czasu po wcześniejszym oszacowaniu opóźnienia ścieżki[1][18][19].
Pomiar opóźnienia i przesunięcia
[edytuj | edytuj kod]Podstawowa wymiana klienta z serwerem wykorzystuje cztery znaczniki czasu: chwilę wysłania zapytania przez klienta, chwilę odebrania zapytania przez serwer, chwilę wysłania odpowiedzi przez serwer oraz chwilę odebrania odpowiedzi przez klienta. Na ich podstawie klient oblicza opóźnienie w obie strony oraz przesunięcie zegara względem serwera, a następnie przekazuje próbki do filtrów i algorytmów wyboru źródeł czasu[1].
- t0 – czas wysłania zapytania przez klienta.
- t1 – czas odebrania zapytania przez serwer.
- t2 – czas wysłania odpowiedzi przez serwer.
- t3 – czas odebrania odpowiedzi przez klienta.
Przy założeniu w przybliżeniu symetrycznej ścieżki sieciowej przesunięcie czasu θ i opóźnienie rundy δ są obliczane ze wzorów stosowanych w specyfikacji NTPv4[1]:
Wartości te nie są zwykle stosowane bezpośrednio jako pojedyncza korekta. Implementacja porównuje próbki z wielu zapytań i, jeśli korzysta z wielu serwerów, odrzuca źródła odstające, wybiera najlepszych kandydatów oraz dyscyplinuje zegar lokalny przez zmianę jego częstotliwości lub – przy dużym błędzie początkowym – przez skokowe ustawienie czasu[1][20].
Skokowa zmiana czasu a dyscyplinowanie zegara
[edytuj | edytuj kod]NTP rozróżnia dwa sposoby korekcji zegara systemowego. Skokowe ustawienie czasu, czyli operacja typu step, polega na bezpośrednim przesunięciu wartości zegara do nowej chwili. Jest stosowane zwykle przy starcie usługi i przy bardzo dużym błędzie zegara, ponieważ skokowy ruch w czasie może zaburzyć działanie aplikacji wrażliwych na monotoniczność znaczników czasu, w tym mechanizmów kryptograficznych i niektórych baz danych. Dyscyplinowanie zegara, czyli operacja typu slew albo strojenie częstotliwości, polega na delikatnym przyspieszaniu lub spowalnianiu zegara systemowego, dzięki czemu czas pozostaje monotoniczny, a różnica względem źródła jest stopniowo niwelowana[1][20].
W typowych implementacjach próg między tymi dwoma trybami można konfigurować, a po długim okresie odłączenia od sieci czas bywa najpierw ustawiany skokowo, a następnie utrzymywany przez dyscyplinowanie. W referencyjnej implementacji ntpd domyślnym progiem skoku jest błąd zegara o 128 ms; mniejsze różnice są niwelowane przez dyscyplinowanie zegara, a dopiero większe powodują skokowe ustawienie czasu. Część implementacji potrafi też dostroić częstotliwość zegara sprzętowego komputera, co poprawia stabilność czasu w okresach bez kontaktu z serwerami[20][21].
Interwał zapytań klient–serwer w NTP jest opisywany wykładniczo jako 2τ sekund. Protokół dopuszcza wartości τ od 4 (16 s) do 17 (około 36 h), a typowy klient korzysta z interwału rzędu kilkudziesięciu sekund do kilkunastu minut; sugerowane przez RFC nr 5905 domyślne granice minimalnego i maksymalnego interwału odpytywania wynoszą odpowiednio 6 i 10, czyli 64 s i 1024 s[1][20].
Algorytmy wyboru i kombinacji źródeł
[edytuj | edytuj kod]Specyfikacja NTPv4 opisuje wieloetapowy proces decydujący o tym, którym serwerom warto zaufać i jaki jest wynikowy ofset zegara. Algorytm selection wykorzystuje wariant algorytmu przedziałów pewności znanego jako algorytm Marzullo, aby z deklarowanych przedziałów dokładności kandydatów wybrać największy zbiór wzajemnie zgodnych truechimers i odrzucić wyraźnie odstające falsetickers. Następujący po nim algorytm grupowania (clustering) zacieśnia ten zbiór, a algorytm łączenia (combine) wylicza wynikowe przesunięcie jako średnią ważoną z najlepszych źródeł[1][20].
Wybrane próbki czasu trafiają do filtru, który dla każdego skojarzenia wybiera najlepsze próbki z ostatniego okna i ogranicza wpływ chwilowych skoków opóźnienia w sieci. Wynikowe przesunięcie i częstotliwość są podawane na clock discipline – pętlę sterującą zegarem systemowym, opisaną w specyfikacji jako rozszerzenie klasycznej pętli fazowo-częstotliwościowej. Dzięki takiej strukturze NTP może utrzymać stabilny czas także wtedy, gdy jedno ze źródeł chwilowo zawiedzie albo zacznie zgłaszać oczywiście nieprawdziwy czas[1][4].
Hierarchia stratum
[edytuj | edytuj kod]

NTP używa półhierarchicznego modelu źródeł czasu. Odległość logiczna od zegara odniesienia jest określana numerem stratum, ale numer ten nie jest sam w sobie gwarancją jakości: dobry serwer stratum 3 może w praktyce dawać stabilniejszy czas niż przeciążony lub źle skonfigurowany serwer stratum 1 albo 2[1][4].
- Stratum 0 obejmuje bezpośrednie wzorce czasu i częstotliwości, na przykład zegary atomowe, masery wodorowe, odbiorniki systemów GNSS takich jak GPS lub naziemne odbiorniki sygnałów czasu typu DCF77; urządzenia takie nie ogłaszają się jako serwery NTP w sieci, lecz są podłączane do hostów stratum 1.
- Stratum 1 to komputery lub serwery czasu bezpośrednio podłączone do źródła stratum 0, na przykład przez odbiornik GNSS, sygnał 1PPS, łącze szeregowe RS-232 przekazujące znacznik czasu albo przemysłowy kod czasu, taki jak IRIG-B.
- Stratum 2 i kolejne tworzą warstwy serwerów synchronizowanych przez sieć z serwerami wyższej warstwy; mogą one jednocześnie służyć jako klienci i jako źródła czasu dla kolejnych hostów.
- Stratum 16 oznacza w protokole stan niesynchronizowany, a wartości od 1 do 15 są używane do budowania drzewa zależności i unikania pętli synchronizacji.
Oprócz numeru stratum pakiet NTP zawiera identyfikator źródła odniesienia, czyli reference identifier lub refid. Dla serwerów bezpośrednio związanych ze źródłem odniesienia refid może wskazywać typ źródła, na przykład GPS, PPS albo DCF77; dla dalszych warstw może być kodowaną informacją o serwerze nadrzędnym. Specjalne wartości pola refid są używane także w komunikatach kiss-o'-death, którymi serwer może poprosić klienta o ograniczenie albo wstrzymanie zapytań[1][22].
Format komunikatu i znaczniki czasu
[edytuj | edytuj kod]Podstawowy nagłówek NTPv4 ma 48 bajtów, po których mogą wystąpić pola rozszerzeń oraz dane uwierzytelniające. Pierwsze pola określają między innymi ostrzeżenie o sekundzie przestępnej, wersję protokołu, tryb pracy, stratum, interwał odpytywania i precyzję lokalnego zegara, a dalsze pola przenoszą informacje o opóźnieniu do źródła odniesienia, dyspersji, identyfikatorze źródła oraz cztery 64-bitowe znaczniki czasu[1].
| Pole | Długość | Znaczenie |
|---|---|---|
| LI, VN, Mode | 2 + 3 + 3 bity | wskaźnik sekundy przestępnej, numer wersji i tryb asocjacji |
| Stratum | 8 bitów | odległość od źródła odniesienia albo stan niesynchronizowany |
| Poll, Precision | po 8 bitów | interwał zapytań i deklarowana precyzja zegara lokalnego |
| Root Delay | 32 bity | całkowite opóźnienie rundy do źródła odniesienia |
| Root Dispersion | 32 bity | oszacowana dyspersja względem źródła odniesienia |
| Reference ID | 32 bity | identyfikator źródła synchronizacji albo kod stanu |
| Reference, Origin, Receive, Transmit Timestamp | po 64 bity | znaczniki czasu używane do wyliczenia przesunięcia i opóźnienia |
Znacznik czasu NTP ma postać liczby stałoprzecinkowej: 32 bity opisują sekundy, a 32 bity ułamek sekundy. Epoka tej skali zaczyna się 1 stycznia 1900 roku, co powoduje przepełnienie 32-bitowego pola sekund po 232 sekundach, czyli 7 lutego 2036 roku. Pojęcie ery wprowadzone w NTPv4 oraz 128-bitowy format daty mają służyć rozróżnianiu kolejnych okresów po przepełnieniu, choć standardowy pakiet w sieci pozostaje oparty na 64-bitowych znacznikach[1][23].
NTP potrafi rozgłaszać ostrzeżenie o nadchodzącej sekundzie przestępnej, ale samo wykonanie korekty zależy od implementacji systemu i konfiguracji. Niektóre infrastruktury zamiast skokowego wstawienia sekundy stosują rozsmarowanie sekundy przestępnej w dłuższym przedziale czasu, co opisano osobno w sekcji poświęconej sekundom przestępnym[1].
SNTP
[edytuj | edytuj kod]Simple Network Time Protocol (SNTP) jest uproszczonym sposobem używania tego samego formatu pakietu i tego samego portu, a nie odrębnym, niezgodnym protokołem. Wczesne SNTPv3 opisano w RFC nr 1361, a SNTPv4 w RFC nr 2030 i RFC nr 4330; w RFC nr 5905 uproszczony wariant został włączony do głównej specyfikacji NTPv4 jako profil dla prostych serwerów i klientów[24][25][1].
SNTP może pomijać stałe przechowywanie stanu, zaawansowane filtrowanie, korelowanie wielu źródeł i dyscyplinowanie częstotliwości zegara typowe dla pełnych implementacji NTP. Dzięki temu nadaje się do prostych urządzeń lub środowisk, w których wymagana jest tylko podstawowa zgodność czasu, ale nie zastępuje pełnego NTP tam, gdzie potrzebna jest redundancja, wykrywanie błędnych serwerów i stabilna praca przez długi czas[25][1].
Implementacje
[edytuj | edytuj kod]Sam protokół NTP nie jest tym samym co konkretna usługa systemowa go realizująca. W obiegu pozostaje równolegle kilka niezależnych implementacji o różnym zakresie funkcji, modelu bezpieczeństwa i typowych zastosowaniach[5][14].
ntpd – implementacja referencyjna
[edytuj | edytuj kod]Klasyczna implementacja referencyjna NTP Project działa jako usługa systemowa o nazwie ntpd. Jest rozwijana od początku lat 90. XX wieku, była portowana na większość rodzin systemów operacyjnych, w tym Linux, FreeBSD i inne warianty uniksowe oraz Microsoft Windows, i obsługuje zarówno zdalne serwery czasu, jak i lokalne zegary odniesienia. Jej algorytmy dyscyplinowania zegara i selekcji źródeł stały się punktem odniesienia dla większości opisów protokołu, dlatego dokumentacja ntpd bywa traktowana jako uzupełnienie specyfikacji[3][20][26].
chrony
[edytuj | edytuj kod]chrony jest niezależną implementacją NTP rozwijaną od 1997 roku, sponsorowaną głównie przez firmę Red Hat i ustawioną jako domyślny demon czasu w jej dystrybucjach Linuxa. Napisany od zera kod bazowy jest mniejszy niż w referencyjnej implementacji, co według raportów bezpieczeństwa firmy Cure53 oraz inicjatywy Core Infrastructure Initiative ułatwia audyt i poprawia odporność na błędy. Chrony szybko synchronizuje się także w środowiskach, w których referencyjna implementacja zachowuje się gorzej: na hostach z niestabilnym zegarem, na maszynach wirtualnych oraz przy przerywanej łączności internetowej, a od wersji 4.0 obsługuje Network Time Security i sprzętowe znaczniki czasu na kartach sieciowych[5][21][27][28].
NTPsec
[edytuj | edytuj kod]NTPsec jest odgałęzieniem referencyjnej implementacji powstałym w 2015 roku jako odpowiedź na serię podatności wykrytych w 2014 roku, a pierwsze wydanie produkcyjne opublikowano w 2017 roku. Projekt systematycznie usuwał z bazy kodu wsparcie dla przestarzałego sprzętu, niewspieranych wariantów systemów uniksowych oraz uznane za niebezpieczne funkcje historyczne, co pozwoliło ograniczyć rozmiar kodu o około trzy czwarte i ułatwiło audyt bezpieczeństwa. Niezależny audyt Cure53 z 2017 roku wykazał, że część dawnych problemów zniknęła, choć pojawiła się też wąska klasa podatności niewystępujących w wersji referencyjnej[29][30][31].
ntpd-rs
[edytuj | edytuj kod]ntpd-rs jest implementacją NTP w języku Rust, rozwijaną w ramach inicjatywy Prossimo prowadzonej przez Internet Security Research Group. Główne cele projektu to bezpieczeństwo pamięci i zmniejszenie powierzchni ataku w infrastrukturze synchronizacji czasu; ntpd-rs obsługuje Network Time Security i jest wdrażane między innymi przez urząd certyfikacji Let’s Encrypt. Częścią projektu Pendulum jest również implementacja Precision Time Protocol o nazwie statime[32][33].
OpenNTPD
[edytuj | edytuj kod]OpenNTPD wywodzi się z projektu OpenBSD i powstał w 2004 roku z myślą o prostocie kodu, rozdzieleniu uprawnień oraz odpornym domyślnym profilu bezpieczeństwa. Świadomie rezygnuje z części złożoności pełnego ntpd kosztem dokładności, którą uznano za nadmierną dla typowych zastosowań użytkowników OpenBSD. Wersja przenośna jest dostępna w wielu dystrybucjach Linuksa[34].
systemd-timesyncd
[edytuj | edytuj kod]systemd-timesyncd jest wbudowanym w systemd klientem SNTP – nie pełną implementacją NTP. Ogranicza się do synchronizacji zegara komputera z grupą serwerów wskazanych w konfiguracji i nie udostępnia usług NTP innym hostom. Bywa preferowany na stacjach roboczych i urządzeniach o ograniczonych zasobach; w dystrybucji Debian bywa używany jako lekka usługa synchronizacji czasu w instalacjach domyślnych, gdy nie jest wymagana pełna funkcjonalność osobnego demona NTP. Z założenia ustępuje pełnym demonom NTP pod względem precyzji i zaawansowania algorytmów[35][36].
Windows Time
[edytuj | edytuj kod]W systemach Microsoft Windows synchronizację czasu zapewnia usługa Windows Time, początkowo zaprojektowana z myślą o obsłudze Kerberosa w środowisku domenowym, gdzie wymagana jest zgodność czasu w granicach kilku minut. Od wersji Windows Server 2003 i Windows Vista usługa obsługuje znaczący podzbiór NTPv3, a od Windows 10 1607 i Windows Server 2016 producent dokumentuje konfiguracje pozwalające osiągnąć dokładność rzędu 1 s, 50 ms lub nawet 1 ms w określonych warunkach. Microsoft jednoznacznie zaznacza, że dla wyższej dokładności należy rozważyć inną implementację NTP[37][38].
Wybór implementacji
[edytuj | edytuj kod]W praktyce wybór implementacji zależy od celu wdrożenia. Serwery publiczne i infrastruktura przedsiębiorstwa wymagają zwykle kilku niezależnych źródeł czasu, kontroli obciążenia oraz monitorowania jakości synchronizacji, dlatego sięga się po pełne demony NTP, takie jak ntpd, chrony, NTPsec albo ntpd-rs. Stacje robocze i urządzenia wbudowane mogą korzystać z lżejszych klientów, w tym SNTP albo usług systemowych jak Windows Time lub systemd-timesyncd, ale ich możliwości w zakresie redundancji i dokładności są ograniczone[1][14][5].
Publiczne serwery i pula NTP
[edytuj | edytuj kod]Większość użytkowników korzysta z czasu udostępnianego przez publicznie dostępne serwery NTP, którymi opiekują się instytucje metrologiczne, dostawcy usług internetowych albo wolontariusze. W Polsce szczególne znaczenie ma usługa Głównego Urzędu Miar, która przez Internet udostępnia synchronizację systemów komputerowych z czasem urzędowym obowiązującym w kraju. Według informacji GUM serwery e-CzasPL znajdują się w Laboratorium Czasu i Częstotliwości, są synchronizowane z państwowego wzorca jednostek miar czasu i częstotliwości, używają NTP, a usługa jest dostępna całodobowo i bezpłatnie[39].
| Nazwa DNS | Adres IPv4 podany przez GUM | Charakterystyka |
|---|---|---|
| tempus1.gum.gov.pl | 194.146.251.100 | publiczny serwer czasu urzędowego GUM |
| tempus2.gum.gov.pl | 194.146.251.101 | publiczny serwer czasu urzędowego GUM |
Największą i najpowszechniej używaną publiczną pulą serwerów NTP jest projekt NTP Pool, dostępny pod domeną pool.ntp.org. System DNS rozprowadza zapytania klientów między dużą liczbą serwerów wolontariuszy, dzięki czemu pojedyncze hosty nie są obciążane całością ruchu, a klienci nie muszą sami szukać dobrych źródeł czasu[40].
Pula udostępnia także podzbiory regionalne, na przykład europe.pool.ntp.org, oraz strefy krajowe takie jak pl.pool.ntp.org, co pozwala ograniczyć opóźnienia związane z trasami międzykontynentalnymi. W typowej konfiguracji klienta wskazuje się kilka nazw z prefiksami 0–3, co dla każdej domeny daje inną listę losowo wybranych serwerów; w dokumentacji projektu zaleca się używanie nie więcej niż czterech adresów oraz unikanie agresywnych opcji takich jak burst czy bardzo krótkich interwałów odpytywania[40].
NTP Pool prowadzi oddzielny program dla producentów urządzeń, tzw. vendor zone. Producent rejestruje własną nazwę domeny, na przykład 0.vendor.pool.ntp.org, i powinien wpisać ją w domyślną konfigurację swoich urządzeń zamiast głównych nazw puli. Twardo wpisywanie adresów pool.ntp.org albo konkretnych serwerów stratum 1 w masowo produkowanych urządzeniach jest uznawane za nadużycie serwerów NTP; historyczne incydenty, w których pojedynczy producent zalał ruchem serwery wolontariuszy, doprowadziły do powstania właśnie programu vendorów[41].
Projekt publikuje bieżące statystyki aktywnych serwerów według regionów i stref krajowych; wartości te zmieniają się w czasie wraz z dołączaniem i odłączaniem się wolontariuszy. Polska strefa puli pl.pool.ntp.org utrzymywała w 2026 roku kilkadziesiąt aktywnych serwerów IPv4 oraz mniejszą liczbę serwerów IPv6[42][43].
Projekt nie udziela gwarancji jakości ani dostępności; regulamin używania puli wprost zaznacza, że usługa jest świadczona przez wolontariuszy bez żadnych gwarancji, może w pojedynczych przypadkach dostarczyć całkowicie błędny czas i nie powinna być używana w zastosowaniach, w których błędny czas mógłby zaszkodzić życiu, działalności albo społeczności użytkownika – w takich scenariuszach zaleca się własne serwery stratum 1 albo wyspecjalizowane usługi metrologiczne[44]. Mimo tego zastrzeżenia NTP Pool jest ważnym źródłem czasu dla wielu systemów i urządzeń sieciowych; według strony projektu korzystają z niego setki milionów systemów. Badanie Beverly'ego i Rye'a z 2026 roku zebrało dziewięć miesięcy danych o puli, odnalazło ponad 15 tys. serwerów aktywnych i nieaktywnych oraz wskazało, że tylko 19,7% aktywnych serwerów było w pełni niezależnych po uwzględnieniu kont, aliasów adresowych i powiązań sieciowych, co ma znaczenie dla odporności puli na przejęcie dużej części ruchu przez jeden podmiot[40][42][45].
Sekundy przestępne i leap smear
[edytuj | edytuj kod]NTP sygnalizuje sekundy przestępne w nagłówku pakietu w polu Leap Indicator. Wartości tego pola informują klienta, że ostatnia minuta bieżącego dnia trwa 61 sekund (dodatnia sekunda przestępna) albo 59 sekund (ujemna sekunda przestępna), pozwalają też sygnalizować stan niesynchronizowany. To, jak system operacyjny i aplikacje obsłużą tę informację, zależy od ich implementacji – wymóg ścisłej monotoniczności znaczników czasu sprawia, że niektóre systemy zatrzymują, powtarzają albo lekko spowalniają zegar w okolicy sekundy przestępnej[1][46][47].
Alternatywą wobec skokowej obsługi sekundy przestępnej jest leap smear, czyli rozsmarowanie korekty na dłuższy okres. Klasyczne wdrożenie Google Public NTP rozkłada dodatkową sekundę liniowo w oknie 24 godzin, od południa do południa czasu UTC: w tym okresie zegar serwerów puli Google biegnie o około 11,6 µs na sekundę wolniej niż czas referencyjny, a po zakończeniu okna czas znów pokrywa się z UTC. Z podobnego podejścia korzystają między innymi usługi Amazon AWS i Meta (dawniej Facebook), które samodzielnie publikują dokumentację swoich okien rozsmarowania[48][49].
Rozsmarowanie sekundy przestępnej nie jest częścią standardu NTP i nie jest jedną, uniwersalną skalą czasu – różni operatorzy mogą stosować różne okna i tempo korekty. Z tego powodu dokumentacja zarówno NTP Project, jak i implementacji chrony przestrzega przed mieszaniem w jednej konfiguracji serwerów stosujących leap smear z serwerami publicznej puli NTP, które stosują klasyczną obsługę sekund przestępnych: klient otrzymuje wówczas wewnętrznie sprzeczne wskazania czasu i jego algorytm wyboru źródeł może wprowadzić błąd zamiast go zmniejszyć[48][27][47].
Bezpieczeństwo
[edytuj | edytuj kod]Poprawny czas systemowy jest elementem bezpieczeństwa wielu usług, ponieważ wpływa na ważność certyfikatów, mechanizmy uwierzytelniania, dzienniki zdarzeń, odtwarzanie kolejności incydentów, TLS, DNSSEC, usługi katalogowe i protokoły routingu takie jak Border Gateway Protocol. Fałszywe lub zmanipulowane odpowiedzi NTP mogą pośrednio osłabiać systemy zależne od poprawnej chronologii i terminów ważności kluczy[14][50].
Klasyczne mechanizmy uwierzytelniania
[edytuj | edytuj kod]Klasyczne mechanizmy uwierzytelniania NTP obejmowały tryby z kluczami współdzielonymi oraz system Autokey opisany dla NTPv4 (RFC nr 5906), wzorowany na rozwiązaniach z IPsec. Późniejsze analizy wykazały jednak istotne wady projektowe Autokey, a w aktualnych zaleceniach najlepszych praktyk wprost nie poleca się go do nowych wdrożeń. Tryb z kluczami współdzielonymi pozostaje praktyczny w sieciach lokalnych, w których strony i tak ustalają wspólną tajemnicę, ale słabo skaluje się do publicznego Internetu[51][14][13].
Microsoft opracował dodatkowo własne rozszerzenie MS-SNTP, w którym klient i serwer wykorzystują tożsamość z domeny Windows Server do uwierzytelnienia pakietów NTP. Mechanizm działa w implementacji referencyjnej ntpd i w chrony przy współpracy z usługą Samba i jest stosowany głównie w środowiskach Active Directory[52][5].
Network Time Security (NTS)
[edytuj | edytuj kod]Network Time Security (NTS), zdefiniowane w RFC nr 8915, jest aktualnie podstawową nowoczesną metodą ochrony klienta przed podszyciem się pod serwer. Mechanizm rozdziela kosztowne uzgodnienie kluczy od bieżącej wymiany pakietów czasu: klient najpierw nawiązuje połączenie TLS z usługą NTS-KE (klucz: Key Establishment) zwykle na porcie 4460, negocjuje parametry kryptograficzne i otrzymuje pulę krótkotrwałych cookies wraz z materiałem kluczowym. W kolejnych krokach klient przesyła zwykłe pakiety NTP, ale opatruje je polami rozszerzeń zawierającymi unikalny identyfikator zapytania, jeden ze świeżych cookies oraz pole uwierzytelniające z wynikiem działania szyfrowania uwierzytelnianego (AEAD)[53][54].
Dzięki tej konstrukcji serwer NTP może pozostać bezstanowy, a koszt operacji asymetrycznych przenoszony jest na osobną usługę NTS-KE i ponoszony rzadziej niż przy każdej wymianie czasu. Projekt NTS świadomie dobiera wielkości pól rozszerzeń tak, aby odpowiedź serwera nie była istotnie większa niż zapytanie, co przeciwdziała wykorzystywaniu serwerów NTP w atakach wzmacniających. NTS nie eliminuje fizycznego problemu opóźniania pakietów przez napastnika, ale skutecznie utrudnia podszywanie się pod źródło czasu i modyfikowanie odpowiedzi w locie. Publiczne usługi NTP z obsługą NTS udostępniają między innymi Cloudflare i Netnod, a po stronie klienta NTS obsługują chrony, NTPsec i ntpd-rs[53][54][55][5].
Ataki wzmacniające i nadużycia
[edytuj | edytuj kod]Serwery NTP bywały wykorzystywane w atakach odbiciowych i wzmacniających typu DRDoS, zwłaszcza gdy publicznie dostępne implementacje odpowiadały na kosztowne zapytania administracyjne, takie jak komenda monlist w starszych wersjach ntpd. W 2014 roku tego rodzaju ataki wygenerowały rekordowe wówczas wolumeny ruchu rzędu setek gigabitów na sekundę i doprowadziły do wyłączenia niektórych usług ofiar. Ograniczanie takich nadużyć wymaga aktualizacji oprogramowania, wyłączenia historycznie problematycznych poleceń monitorujących, filtrowania ruchu z fałszowanym adresem źródłowym (BCP 38), rate limitingu oraz właściwej konfiguracji serwerów publicznych i prywatnych[56][57][58].
W 2017 roku Linux Foundation w ramach Core Infrastructure Initiative zleciła równoległy audyt trzech głównych implementacji NTP. Raport wskazywał mniej istotnych problemów bezpieczeństwa w chrony niż w klasycznym ntpd i w NTPsec; chrony jest też domyślnym demonem czasu w części dystrybucji systemów linuksowych. Spójność czasu pozostaje krytyczna także dla aplikacji odległych od tradycyjnej administracji systemów – atak Malhotry i in. (2015) pokazał na przykład, jak przesunięcie czasu o godziny lub doby może zostać użyte przeciwko mechanizmom HSTS, DNSSEC i nawet BGP[59][50].
Dokładność i ograniczenia
[edytuj | edytuj kod]Dokładność NTP jest ograniczona przede wszystkim przez zmienność opóźnień sieciowych, asymetrię tras w obu kierunkach oraz jakość lokalnego zegara. Jeśli pakiety klient–serwer i serwer–klient nie pokonują ścieżek o podobnym opóźnieniu, połowa różnicy między tymi opóźnieniami pojawia się jako błąd systematyczny oszacowania czasu. Z tego powodu protokół wymaga zwykle wielu kolejnych próbek i wielu niezależnych źródeł, aby błąd systematyczny mógł zostać uśredniony albo wykryty[1][4].
W publicznym Internecie NTP jest projektowany raczej do stabilnej synchronizacji rzędu milisekund niż do ekstremalnej precyzji pomiarowej, a praktyczna dokładność zależy od trasy do serwera, przeciążenia łączy oraz konfiguracji firewall i NAT na drodze pakietów. W kontrolowanej sieci lokalnej, przy dobrych serwerach i niewielkiej zmienności opóźnień, NTP osiąga zwykle dokładności submilisekundowe, a wraz z dyscyplinowaniem sprzętowym i znacznikowaniem czasu na karcie sieciowej – nawet poniżej kilkunastu mikrosekund[1][27][4].
Osobnym wyzwaniem jest synchronizacja w środowiskach wirtualizacji. Maszyny wirtualne mogą doświadczać dryfu zegara wynikającego z planowania pracy hosta, zatrzymywania i wznawiania maszyn oraz migracji między hostami; w takich środowiskach demony NTP wymagają zazwyczaj specjalnej konfiguracji, a niektóre implementacje – jak chrony – świadomie projektowano z myślą o tego rodzaju niestabilnych zegarach[21][14].
Rozwój i przyszłość
[edytuj | edytuj kod]W ramach grupy roboczej NTP w IETF prowadzone są prace nad NTPv5. Wersja opisana w marcu 2026 roku jako aktywny Internet-Draft draft-ietf-ntp-ntpv5-08 nie była jeszcze standardem produkcyjnym, lecz roboczym projektem, który zgodnie z zasadami IETF mógł zostać zmieniony, zastąpiony albo wygasnąć. Projekt definiuje przede wszystkim format protokołu przesyłanego w sieci, a nie konkretne algorytmy filtrowania pomiarów, wyboru źródeł czasu ani dyscyplinowania zegara[60].
Najważniejsze kierunki zmian w projekcie NTPv5 można traktować jako odpowiedź na wieloletnie problemy NTPv4: historyczne tryby pracy trudne do zabezpieczenia, niejednoznaczności pól rozszerzeń, ograniczenia identyfikatorów źródeł i 64-bitowych znaczników czasu oraz słabą prywatność części informacji wysyłanych przez klienta. Projekt przewiduje zachowanie kompatybilności przez negocjację wersji: serwer obsługujący wiele wersji odpowiada wersją wskazaną przez klienta, jeśli ją wspiera[60].
| Obszar zmian w NTPv5 | Kierunek projektowy |
|---|---|
| tryby pracy | pozostają tylko tryby klienta i serwera; usunięto tryby symetryczne, broadcast, control i private |
| zakres specyfikacji | dokument opisuje protokół „na drucie”, a algorytmy klienta pozostawia implementacjom |
| format i rozszerzenia | nowy format komunikatu, pola rozszerzeń jako jedyny mechanizm opcjonalnych danych, MAC przeniesiony do pola rozszerzenia |
| skale czasu i era | obsługa UTC, TAI, UT1 i UTC z leap smear; przesyłanie numeru ery wydłuża jednoznaczny przedział czasu z 136 lat do około 35 tys. lat |
| dokładność | pole korekty pozwalające przenosić zmienne opóźnienia wprowadzane przez urządzenia pośrednie, a rozdzielczość pól root delay/root dispersion ma wzrosnąć z około 15 µs do około 4 ns |
| bezpieczeństwo i prywatność | jawniejsze użycie NTS i MAC oraz ograniczenie wycieku informacji o zegarze klienta, takich jak lokalne znaczniki czasu lub szacowana dokładność |
Równolegle rozwija się infrastruktura dystrybucji czasu, a nie tylko sam protokół. W Polsce projekt e-CzasPL2, zaplanowany przez Główny Urząd Miar na lata 2025–2028, ma rozbudować kanały dostarczania czasu urzędowego m.in. o zapasowe centrum utrzymania czasu, co najmniej dwa fizycznie niezależne klastry serwerów pl.ntppool.org, bazę i monitoring krajowych źródeł czasu oraz autoryzowany sygnał czasu nadawany drogą radiową. Projekt jest uzasadniany między innymi zależnością systemów IT i OT od wiarygodnych źródeł czasu oraz ryzykiem ataków destabilizujących synchronizację[61].
Relacja do innych metod synchronizacji
[edytuj | edytuj kod]NTP jest projektowany jako protokół ogólnego przeznaczenia dla heterogenicznych sieci, w tym publicznego Internetu. W zastosowaniach wymagających większej precyzji albo silniejszych gwarancji synchronizacji uzupełnia się go innymi technikami, a w niektórych obszarach zastępuje protokołami wyspecjalizowanymi[1][62].
- Precision Time Protocol (IEEE 1588) działa zwykle w kontrolowanej domenie sieciowej i wykorzystuje sprzętowe znacznikowanie czasu w przełącznikach oraz kartach sieciowych. Pozwala osiągać dokładności rzędu pojedynczych mikrosekund lub lepszej, ale wymaga współpracy infrastruktury sieciowej, co czyni go raczej uzupełnieniem niż prostym zastępnikiem NTP w sieci internetowej[62].
- Sygnał 1PPS (ang. pulse per second) dostarcza dokładny impuls raz na sekundę, używany do dyscyplinowania zegara o znacznie wyższej rozdzielczości niż osiąga sam NTP. Sygnał PPS bywa łączony z odbiornikiem GNSS lub innym wzorcem, a NTP używany jest wtedy do rozpropagowania czasu w sieci.
- Systemy GNSS, takie jak GPS, są w praktyce najpowszechniejszym źródłem stratum 0 dla serwerów stratum 1 na całym świecie; udostępniają zarówno znacznik czasu, jak i sygnał 1PPS. Wymagają jednak niezakłóconej widoczności anteny i są narażone na celowe zakłócanie albo spoofing sygnału satelitarnego.
- White Rabbit jest specjalistycznym rozszerzeniem PTP, dostarczającym synchronizację o dokładności rzędu pojedynczych nanosekund poprzez precyzyjny pomiar opóźnień włókna światłowodowego. Jest używany m.in. w fizyce wysokich energii i w infrastrukturach metrologicznych; w sieciach ogólnego przeznaczenia takie poziomy precyzji nie są potrzebne, a NTP pozostaje wystarczający.
- Klasyczne lokalne zegary referencyjne, na przykład odbiorniki sygnału DCF77 albo masery wodorowe, są używane jako stratum 0 tam, gdzie GNSS jest niedostępne albo niewystarczająco wiarygodne; NTP udostępnia czas z takich źródeł komputerom w sieci[20][62].
Z punktu widzenia czytelnika encyklopedycznego znaczenie ma zwłaszcza odróżnienie NTP od dwóch sąsiednich światów. Z jednej strony rośnie znaczenie skal czasu o rygorystycznie zdefiniowanej jednostce, takich jak Międzynarodowy czas atomowy (TAI), które nie zawierają sekund przestępnych – NTP rozprowadza standardowo UTC, więc wszelkie problemy z sekundami przestępnymi i leap smear dotyczą tej skali, nie samej fizyki pomiaru czasu. Z drugiej strony należy odróżniać czas systemowy od zegara monotonicznego używanego przez aplikacje do pomiaru upływu czasu między zdarzeniami – NTP odpowiada za pierwszy, ale nie zmienia drugiego[20][14].
Pokrewne standardy synchronizacji
[edytuj | edytuj kod]Oprócz NTP i samego protokołu PTP istnieją profile i normy dostosowane do konkretnych zastosowań. Podstawową specyfikacją PTP jest IEEE 1588; aktywną wersją standardu jest IEEE 1588-2019, która zastąpiła IEEE 1588-2008, choć część starszych profili nadal odwołuje się do wersji z 2008 roku[63]. IEEE 802.1AS-2025 opisuje synchronizację czasu w sieciach lokalnych i metropolitalnych dla zastosowań wrażliwych czasowo z rodziny Time-Sensitive Networking[64]. Sektor telekomunikacyjny korzysta z profili PTP opisanych w zaleceniach ITU-T serii G.8275 – wariant G.8275.1 jest stosowany przy pełnym wsparciu sieci dla precyzyjnego znacznikowania czasu[65], a G.8275.2 w sieciach z częściowym wsparciem[66]. W energetyce profil IEEE C37.238 opisuje użycie IEEE 1588/PTP w aplikacjach ochrony, sterowania, automatyki i komunikacji systemów elektroenergetycznych[67]. NTP nie jest profilowany w ten sam sposób; pozostaje ogólnym mechanizmem synchronizacji o szerokim zastosowaniu w sieciach pakietowych.
Zastosowania
[edytuj | edytuj kod]NTP jest używany w serwerach, stacjach roboczych, urządzeniach sieciowych, systemach wirtualizacji, klastrach obliczeniowych, usługach monitoringu i infrastrukturze internetowej. Spójny czas jest potrzebny do korelacji logów, poprawnej pracy mechanizmów kryptograficznych, harmonogramów zadań, replikacji baz danych, rozliczania transakcji oraz diagnozowania awarii w systemach rozproszonych[3][14].
Poza środowiskiem klasycznych centrów danych NTP jest typowym mechanizmem synchronizacji w urządzeniach Internetu rzeczy, sprzęcie telekomunikacyjnym, infrastrukturach przemysłowych, monitoringu energetyki i sieciach telekomunikacji mobilnej. W bardziej wymagających scenariuszach, jak telekomunikacja 5G, energetyka czy systemy transakcyjne, NTP zwykle współpracuje z PTP, GNSS albo dedykowanymi wzorcami czasu, dystrybuując mniej precyzyjny, ale szerzej dostępny czas do systemów ogólnego przeznaczenia[3][62].
W sieciach zarządzanych źródła czasu mogą być ustawiane ręcznie, przez konfigurację systemową, przez usługę katalogową albo automatycznie przez mechanizmy konfiguracji sieci. DHCPv4 przewiduje osobną opcję przekazującą klientom listę serwerów NTP, natomiast same dane strefy czasowej są zagadnieniem oddzielnym od synchronizacji zegara do UTC[68][69].
Najbardziej niezawodne wdrożenia nie opierają się na pojedynczym serwerze czasu. Typowa dobra praktyka polega na użyciu kilku niezależnych źródeł, kontrolowaniu obciążenia publicznych serwerów, monitorowaniu odchylenia i stratum, odróżnieniu wewnętrznych serwerów czasu od klientów końcowych oraz unikaniu konfiguracji, które tworzą pętle synchronizacji albo zależność od jednego dostawcy czasu[14][1][40].
Zobacz też
[edytuj | edytuj kod]- serwer czasu
- Precision Time Protocol
- sygnał PPS
- uniwersalny czas koordynowany
- sekunda przestępna
- międzynarodowy czas atomowy
- DCF77
Przypisy
[edytuj | edytuj kod]- ↑ a b c d e f g h i j k l m n o p q r s t u v w x David L. Mills, Jim Martin, Jack Burbank, William Kasch: RFC nr 5905: Network Time Protocol Version 4: Protocol and Algorithms Specification. Internet Engineering Task Force, 2010-06. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-03)]. (ang.).
- ↑ Service Name and Transport Protocol Port Number Registry. IANA. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-17)]. (ang.).
- ↑ a b c d e Welcome to the home of the Network Time Protocol (NTP) Project. The NTP Project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-15)]. (ang.).
- ↑ a b c d e David L. Mills: Executive Summary: Computer Network Time Synchronization. The NTP Project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-02-23)]. (ang.).
- ↑ a b c d e f Comparison of NTP implementations. chrony project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-11)]. (ang.).
- ↑ David L. Mills: IEN 173: Time Synchronization in DCNET Hosts. Internet Experiment Note, 1981-02-25. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2025-09-22)]. (ang.).
- ↑ David L. Mills: RFC nr 778: DCNET Internet Clock Service. Internet Engineering Task Force, 1981-04. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-30)]. (ang.).
- ↑ David L. Mills: RFC nr 958: Network Time Protocol (NTP). Internet Engineering Task Force, 1985-09. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-02-19)]. (ang.).
- ↑ David L. Mills: RFC nr 1059: Network Time Protocol (Version 1) Specification and Implementation. Internet Engineering Task Force, 1988-07. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2025-12-28)]. (ang.).
- ↑ David L. Mills: RFC nr 1119: Network Time Protocol (Version 2) Specification and Implementation. Internet Engineering Task Force, 1989-09. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-03-30)]. (ang.).
- ↑ David L. Mills: RFC nr 1305: Network Time Protocol (Version 3) Specification, Implementation and Analysis. Internet Engineering Task Force, 1992-03. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-07)]. (ang.).
- ↑ RFC nr 7822: Network Time Protocol Version 4 Extension Fields. Internet Engineering Task Force, 2016-03. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-20)]. (ang.).
- ↑ a b RFC nr 8573: Message Authentication Code for the Network Time Protocol. Internet Engineering Task Force, 2019-06. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-20)]. (ang.).
- ↑ a b c d e f g h i RFC nr 8633: Network Time Protocol Best Current Practices. Internet Engineering Task Force, 2019-07. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-03)]. (ang.).
- ↑ RFC nr 9109: Network Time Protocol Version 4: Port Randomization. Internet Engineering Task Force, 2021-08. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2025-12-11)]. (ang.).
- ↑ RFC nr 9748: Updating the NTP Registries. Internet Engineering Task Force, 2025-02. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-01-07)]. (ang.).
- ↑ RFC nr 9769: NTP Interleaved Modes. Internet Engineering Task Force, 2025-05. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-01-07)]. (ang.).
- ↑ Association Management. The NTP Project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2025-08-14)]. (ang.).
- ↑ Automatic Server Discovery Schemes. The NTP Project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-03-05)]. (ang.).
- ↑ a b c d e f g h David L. Mills: Computer Network Time Synchronization: The Network Time Protocol on Earth and in Space. CRC Press, 2011. ISBN 978-1-4398-1464-2. (ang.).
- ↑ a b c chrony – Introduction. chrony project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-04)]. (ang.).
- ↑ Event Messages and Status Words. NTPsec documentation. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-17)]. (ang.).
- ↑ David L. Mills: The NTP Era and Era Numbering. The NTP Project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2025-12-13)]. (ang.).
- ↑ RFC nr 1361: Simple Network Time Protocol (SNTP). Internet Engineering Task Force, 1992-08. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-02-19)]. (ang.).
- ↑ a b RFC nr 4330: Simple Network Time Protocol (SNTP) Version 4 for IPv4, IPv6 and OSI. Internet Engineering Task Force, 2006-01. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-20)]. (ang.).
- ↑ Cure53: Pentest-Report NTP 01.2017. 2017. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-07)]. (ang.).
- ↑ a b c chrony – Frequently Asked Questions. chrony project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-21)]. (ang.).
- ↑ Mario Heiderich: Pentest-Report Chrony 08.2017. 2017-08. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-07)]. (ang.).
- ↑ The Secure Network Time Protocol (NTPsec) Distribution. NTPsec project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-03)]. (ang.).
- ↑ Eric S. Raymond: NTPsec: a Secure, Hardened NTP Implementation. Linux Journal, 2017-03-30. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-02-16)]. (ang.).
- ↑ Cure53: Pentest-Report NTPsec 01.2017. 2017. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-07)]. (ang.).
- ↑ ntpd-rs documentation. Pendulum project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-18)]. (ang.).
- ↑ Josh Aas: More Memory Safety for Let's Encrypt: Deploying ntpd-rs. Let's Encrypt, 2024-06-24. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-13)]. (ang.).
- ↑ ntpd(8). OpenBSD manual pages. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-03-22)]. (ang.).
- ↑ systemd-timesyncd.service. freedesktop.org. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-18)]. (ang.).
- ↑ systemd (Debian Wiki). Debian Wiki. [dostęp 2026-05-18]. [zarchiwizowane z tego adresu (2026-05-14)]. (ang.).
- ↑ Windows Time service tools and settings. Microsoft Learn. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-12)]. (ang.).
- ↑ Support boundary to configure the Windows Time service for high-accuracy environments. Microsoft Learn. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-10)]. (ang.).
- ↑ O e-CzasPL. Główny Urząd Miar. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-27)]. (pol.).
- ↑ a b c d Jak używać puli serwerów NTP. NTP Pool Project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-25)]. (pol.).
- ↑ Information for vendors. NTP Pool Project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-11)]. (ang.).
- ↑ a b pool.ntp.org: public ntp time server for everyone. NTP Pool Project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-15)]. (ang.).
- ↑ Poland — pl.pool.ntp.org. NTP Pool Project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-15)]. (ang.).
- ↑ NTP Pool Project — Terms of Service. NTP Pool Project. [dostęp 2026-05-18]. [zarchiwizowane z tego adresu (2026-04-25)]. (ang.).
- ↑ Robert Beverly, Erik Rye: On Borrowed Time: Measurement-Informed Understanding of the NTP Pool's Robustness to Monopoly Attacks. arXiv, 2026-02-12. [dostęp 2026-05-17]. (ang.).
- ↑ David L. Mills: The NTP Timescale and Leap Seconds. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-18)]. (ang.).
- ↑ a b Leap Second Processing. The NTP Project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-11)]. (ang.).
- ↑ a b Google Public NTP – Leap Smear. Google Developers. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-07)]. (ang.).
- ↑ Oleg Obleukhov: Building a more accurate time service at Facebook scale. Engineering at Meta, 2020-03-18. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-03-12)]. (ang.).
- ↑ a b Aanchal Malhotra, Isaac E. Cohen, Erik Brakke, Sharon Goldberg: Attacking the Network Time Protocol. Boston University, 2015. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-02)]. (ang.).
- ↑ RFC nr 5906: Network Time Protocol Version 4: Autokey Specification. Internet Engineering Task Force, 2010-06. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-20)]. (ang.).
- ↑ [MS-SNTP: Network Time Protocol (NTP) Authentication Extensions]. Microsoft Learn. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-03-31)]. (ang.).
- ↑ a b RFC nr 8915: Network Time Security for the Network Time Protocol. Internet Engineering Task Force, 2020-09. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-03)]. (ang.).
- ↑ a b Network Time Security. Cloudflare Docs. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-03)]. (ang.).
- ↑ How to use NTS. Netnod. [dostęp 2026-05-18]. [zarchiwizowane z tego adresu (2026-05-03)]. (ang.).
- ↑ Dan Goodin: New DoS attacks taking down game sites deliver crippling 100Gbps floods. Ars Technica, 2014-01-13. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2017-01-20)]. (ang.).
- ↑ NTP Security Notice. The NTP Project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2022-02-06)]. (ang.).
- ↑ NTP contains multiple vulnerabilities. CERT/CC Vulnerability Notes Database. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-02)]. (ang.).
- ↑ CII Audit Identifies Most Secure NTP Implementation. The Linux Foundation, 2017-09-28. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2022-08-15)]. (ang.).
- ↑ a b Miroslav Lichvar, Tal Mizrahi: Network Time Protocol Version 5. Internet Engineering Task Force, 2026-03-02. [dostęp 2026-05-17]. (ang.).
- ↑ e-CzasPL2 – nowe kanały dystrybucji czasu urzędowego obowiązującego na obszarze RP w celu poprawienia i wzmocnienia cyberbezpieczeństwa kraju i obywateli. Główny Urząd Miar. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-27)]. (pol.).
- ↑ a b c d IEEE 1588 Precision Time Protocol (PTP). The NTP Project. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2025-12-02)]. (ang.).
- ↑ IEEE 1588-2019: IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems. IEEE Standards Association. [dostęp 2026-05-18]. [zarchiwizowane z tego adresu (2026-04-04)]. (ang.).
- ↑ IEEE 802.1AS-2025: IEEE Standard for Local and Metropolitan Area Networks – Timing and Synchronization for Time-Sensitive Applications. IEEE Standards Association. [dostęp 2026-05-18]. [zarchiwizowane z tego adresu (2026-02-09)]. (ang.).
- ↑ ITU-T Recommendation G.8275.1: Precision time protocol telecom profile for phase/time synchronization with full timing support from the network. International Telecommunication Union. [dostęp 2026-05-18]. [zarchiwizowane z tego adresu (2023-12-13)]. (ang.).
- ↑ ITU-T Recommendation G.8275.2: Precision time protocol telecom profile for phase/time synchronization with partial timing support from the network. International Telecommunication Union. [dostęp 2026-05-18]. [zarchiwizowane z tego adresu (2026-03-09)]. (ang.).
- ↑ IEEE C37.238-2017: IEEE Standard Profile for Use of IEEE 1588 Precision Time Protocol in Power System Applications. IEEE Standards Association. [dostęp 2026-05-18]. [zarchiwizowane z tego adresu (2026-01-05)]. (ang.).
- ↑ RFC nr 2132: DHCP Options and BOOTP Vendor Extensions. Internet Engineering Task Force, 1997-03. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-05-11)]. (ang.).
- ↑ RFC nr 4833: Timezone Options for DHCP. Internet Engineering Task Force, 2007-04. [dostęp 2026-05-17]. [zarchiwizowane z tego adresu (2026-04-30)]. (ang.).
Linki zewnętrzne
[edytuj | edytuj kod]- The NTP Project
- NTP Pool Project – wersja polska
- Dokumenty grupy roboczej NTP w IETF
- D.L. Mills, DCNET Internet Clock Service, RFC 778, IETF, kwiecień 1981, DOI: 10.17487/RFC0778, ISSN 2070-1721, OCLC 943595667 (ang.).
- D.L. Mills, DCN Local-Network Protocols, STD 44, RFC 891, IETF, grudzień 1983, DOI: 10.17487/RFC0891, ISSN 2070-1721, OCLC 943595667 (ang.).
- D.L. Mills, Algorithms for synchronizing network clocks, RFC 956, IETF, wrzesień 1985, DOI: 10.17487/RFC0956, ISSN 2070-1721, OCLC 943595667 (ang.).
- D.L. Mills, Network Time Protocol (NTP), RFC 958, IETF, wrzesień 1985, DOI: 10.17487/RFC0958, ISSN 2070-1721, OCLC 943595667 (ang.).
- D. Mills, Network Time Protocol (Version 3) Specification, Implementation and Analysis, RFC 1305, IETF, marzec 1992, DOI: 10.17487/RFC1305, ISSN 2070-1721, OCLC 943595667 (ang.).
- D. Mills, Simple Network Time Protocol (SNTP) Version 4 for IPv4, IPv6 and OSI, RFC 4330, IETF, styczeń 2006, DOI: 10.17487/RFC4330, ISSN 2070-1721, OCLC 943595667 (ang.).
- D. Mills, J. Martin, J. Burbank, W. Kasch, Network Time Protocol Version 4: Protocol and Algorithms Specification, RFC 5905, IETF, czerwiec 2010, DOI: 10.17487/RFC5905, ISSN 2070-1721, OCLC 943595667 (ang.).
- B. Haberman, D. Mills, Network Time Protocol Version 4: Autokey Specification, RFC 5906, IETF, czerwiec 2010, DOI: 10.17487/RFC5906, ISSN 2070-1721, OCLC 943595667 (ang.).
- H. Gerstung, C. Elliott, B. Haberman, Definitions of Managed Objects for Network Time Protocol Version 4 (NTPv4), RFC 5907, IETF, czerwiec 2010, DOI: 10.17487/RFC5907, ISSN 2070-1721, OCLC 943595667 (ang.).
- R. Gayraud, B. Lourdelet, Network Time Protocol (NTP) Server Option for DHCPv6, RFC 5908, IETF, czerwiec 2010, DOI: 10.17487/RFC5908, ISSN 2070-1721, OCLC 943595667 (ang.).
- J-M. Combes, S. Krishnan, G. Daley, Securing Neighbor Discovery Proxy: Problem Statement, RFC 5909, IETF, lipiec 2010, DOI: 10.17487/RFC5909, ISSN 2070-1721, OCLC 943595667 (ang.).
- D. Reilly, H. Stenn, D. Sibold, Network Time Protocol Best Current Practices, BCP 223, RFC 8633, IETF, lipiec 2019, DOI: 10.17487/RFC8633, ISSN 2070-1721, OCLC 943595667 (ang.).
- D. Franke, D. Sibold, K. Teichel, M. Dansarie, R. Sundblad, Network Time Security for the Network Time Protocol, RFC 8915, IETF, wrzesień 2020, DOI: 10.17487/RFC8915, ISSN 2070-1721, OCLC 943595667 (ang.).
