Greška u GPSD-u ove nedjelje znači promjenu vremena od prije 19 godina

U GPSD paketu, koji se koristi za izdvajanje preciznih podataka o vremenu i poziciji sa GPS uređaja, identifikovan je kritičan problem, zbog čega će se vrijeme 24. oktobra pomjeriti za 1024 sedmice, tj. vrijeme će biti promijenjeno u mart 2002. Problem se pojavljuje u izdanjima od 3.20 do uključujući 3.22 i riješen je u GPSD 3.23. Svi korisnici sistema koji koriste GPSD moraju odmah instalirati ažuriranja ili biti spremni za kvar.

Efekat greške može dovesti do nepredvidivih kvarova na različitim sistemima, uključujući i one koji ne koriste direktno GPSD, budući da se ova aplikacija koristi za dobijanje tačnih podataka o vremenu na nekim NTP serverima koji se koriste za vremensku sinhronizaciju. Kada dođe do vremenskih pomaka u sistemima, mogu nastati problemi s autentifikacijom (na primjer, jednokratne lozinke, Kerberos i drugi mehanizmi za provjeru pristupa koji imaju datum isteka više neće raditi), s verifikacijom certifikata i s proračunima koji manipuliraju vremenskim rasponima ( na primjer, izračunavanje vremena sesije korisnika) . GPSD je također dostupan na raznim ugrađenim i mobilnim uređajima, od kojih mnogi više ne primaju ažuriranja firmvera.

GPS protokol uključuje brojač sedmica koji broji sedmice od 5. januara 1980. godine. Problem je u tome što se tokom emitovanja za ovaj brojač dodeljuje samo 10 bitova, što znači da se on preliva svake 1023 nedelje (19.7 godina). Prvi preliv dogodio se 1999. godine, drugi 2019. godine, a treći će se desiti 2038. godine. Ove događaje prate proizvođači i za njih su obezbeđeni posebni rukovaoci. Trenutno je paralelno uveden novi format GPS poruka (CNAV), u kojem je 13 bitova dodijeljeno brojaču (tj. prelivanje se očekuje tek u 2137).

U GPSD-u, u logici za podešavanje izgleda dodatne sekunde (dodate radi sinhronizacije svjetskih referentnih atomskih satova sa Zemljinim astronomskim vremenom), napravljena je greška zbog koje će 24. oktobra 2021. godine 1024 biti prerano oduzeto od brojač sedmica. Prema autoru šifre, pomak je trebalo da se dogodi 31. decembra 2022. godine, ali prevod ovog datuma u broj sedmica nije pravilno izvršen i zapravo je broj sedmica dat u čeku bio ispod oktobra 2021. (naznačena vrijednost je 2180 umjesto 2600). /* broj sedmice provjere razuma, GPS epoha, u odnosu na prijestupne sekunde * Ne radi dobro s regresijama jer leap_sconds * mogu biti od primaoca ili od BUILD_LEAPSECONDS. */ if (0 < session->context->leap_seconds && 19 > session->context->leap_seconds && 2180 < sedmica) { /* pretpostavimo preskočnu sekundu = 19 do 31. decembra 2022. * tako da je sedmica > 2180 daleko u budućnosti , ne dozvoli to */ sedmica -= 1024; GPSD_LOG(LOG_WARN, &session->context->errout, "GPS sedmična konfuzija. Prilagođena sedmica %u za skok %d\n", sedmica, sesija->kontekst->leap_seconds); }

izvor: opennet.ru

Dodajte komentar