A GPSD hibája ezen a vasárnapon 19 évvel ezelőtti időváltozást jelent

Kritikus problémát azonosítottak a GPSD-csomagban, amely a pontos idő- és helyzetadatok kinyerésére szolgál a GPS-eszközökből, ami miatt az idő október 24-én 1024 héttel visszacsúszik, i. az idő 2002 márciusára módosul. A probléma a 3.20-tól a 3.22-ig terjedő kiadásokban jelenik meg, és a GPSD 3.23-as verziója oldja meg. A GPSD-t használó rendszerek minden felhasználójának azonnal telepítenie kell a frissítéseket, vagy fel kell készülnie a hibákra.

A hiba hatása kiszámíthatatlan meghibásodásokhoz vezethet különféle rendszereken, beleértve azokat is, amelyek nem közvetlenül használják a GPSD-t, mivel ez az alkalmazás pontos időadatok beszerzésére szolgál egyes, az időszinkronizáláshoz használt NTP-kiszolgálókon. Amikor időeltolódások lépnek fel a rendszerekben, problémák adódhatnak a hitelesítéssel (például az egyszeri jelszavak, a Kerberos és más hozzáférés-ellenőrző mechanizmusok, amelyeknek lejárt a dátuma, már nem működnek), a tanúsítványok ellenőrzése és az időtartományokat manipuláló számítások ( például a felhasználó munkamenetének idejének kiszámítása) . A GPSD számos beágyazott és mobileszközön is elérhető, amelyek közül sok már nem kap firmware-frissítést.

A GPS protokoll tartalmaz egy hétszámlálót, amely 5. január 1980. óta számolja a heteket. A probléma az, hogy a sugárzás során ehhez a számlálóhoz csak 10 bit van lefoglalva, ami azt jelenti, hogy 1023 hetente (19.7 év) túlcsordul. Az első túlcsordulás 1999-ben, a második 2019-ben, a harmadik pedig 2038-ban következik be. Ezeket az eseményeket a gyártók felügyelik, és speciális kezelőket biztosítanak számukra. Jelenleg ezzel párhuzamosan egy új GPS üzenetformátum (CNAV) is bevezetésre került, amelyben 13 bit van lefoglalva a számláló számára (azaz csak 2137-ben várható túlcsordulás).

A GPSD-ben az extra másodperc megjelenésének beállításának logikájában (amely a világ referencia atomóráinak a Föld csillagászati ​​idejével való szinkronizálására szolgál) hiba történt, ami miatt 24. október 2021-én 1024-et idő előtt levonnak a heti számláló. A kód írója szerint az eltolódásnak 31. december 2022-én kellett volna megtörténnie, de ennek a dátumnak a hetek számára történő fordítása nem történt megfelelően, és valójában a csekken megadott hetek száma 2021 októbere alá esett. (a feltüntetett érték 2180 helyett 2600). /* józanság-ellenőrzés hét száma, GPS korszak, szökőmásodpercek ellen * Nem működik jól regresszióval, mert a leap_sconds * a vevőtől vagy a BUILD_LEAPSECONDS-tól származhat. */ if (0 < session->context->leap_seconds && 19 > session->context->leap_seconds && 2180 < hét) { /* tegyük fel a szökőmásodpercet = 19 31. december 2022-ig * tehát a hét > 2180 a jövőbe kerül , ne engedje */ hét -= 1024; GPSD_LOG(LOG_WARN, &session->context->errout, "GPS-hét zavar. A hét %u a %d ugráshoz igazítva\n", hét, session->context->leap_seconds); }

Forrás: opennet.ru

Hozzászólás