Kif is-sinkronizzazzjoni tal-ħin saret sigura

Kif is-sinkronizzazzjoni tal-ħin saret sigura
Kif tiżgura li l-ħin per se ma jaqax jekk għandek miljun apparat kbir u żgħir li jikkomunika permezz tat-TCP/IP? Wara kollox, kull wieħed minnhom għandu arloġġ, u l-ħin għandu jkun korrett għalihom kollha. Din il-problema ma tistax tiġi evitata mingħajr ntp.

Ejja nimmaġinaw għal minuta li f'segment wieħed tal-infrastruttura tal-IT industrijali hemm diffikultajiet fis-sinkronizzazzjoni tas-servizzi maż-żmien. Immedjatament il-munzell tal-clusters tas-softwer Enterprise jibda jfalli, id-dominji jiddiżintegraw, il-kaptani u n-nodi Standby jistinkaw mingħajr suċċess biex jirrestawraw l-istatus quo.

Huwa possibbli wkoll li attakkant jipprova deliberatament ifixkel il-ħin permezz ta 'attakk MiTM jew DDOS. F'sitwazzjoni bħal din, kollox jista 'jiġri:

  • Il-passwords tal-kont tal-utent se jiskadu;
  • Iċ-ċertifikati X.509 se jiskadu;
  • L-awtentikazzjoni b'żewġ fatturi TOTP se tieqaf taħdem;
  • backups se jsiru skaduti u s-sistema se tħassarhom;
  • DNSSec se jinkiser.

Huwa ċar li kull dipartiment tal-IT huwa interessat fl-operat affidabbli tas-servizzi ta 'sinkronizzazzjoni tal-ħin, u jkun sabiħ li kieku kienu affidabbli u sikuri fl-operat industrijali.

Kisser NTP f'25 minuta

Protokolli tan-netwerk - millennials għandhom partikolarità waħda, kienu skaduti u m’għadhom tajbin għal xejn, imma li jissostitwixxuhom mhux daqshekk faċli anke meta tkun akkumulata massa kritika ta’ dilettanti u fondi.

L-ilment ewlieni dwar l-NTP klassiku huwa n-nuqqas ta 'mekkaniżmi affidabbli għall-protezzjoni kontra attakki minn intrużi. Saru diversi tentattivi biex tissolva din il-problema. Biex niksbu dan, l-ewwel implimentajna mekkaniżmu ta’ pre-shared key (PSK) għall-iskambju ta’ ċwievet simmetriċi.

Sfortunatament, dan il-metodu ma ħallasx għal raġuni sempliċi - ma jiskalax tajjeb. Konfigurazzjoni manwali hija meħtieġa fuq in-naħa tal-klijent skont is-server. Dan ifisser li inti sempliċiment ma tistax iżżid klijent ieħor eżatt hekk. Jekk xi ħaġa tinbidel fuq is-server NTP, il-klijenti kollha għandhom jiġu kkonfigurati mill-ġdid.

Imbagħad ħarġu b'AutoKey, iżda immedjatament skoprew numru ta 'vulnerabbiltajiet serji fid-disinn tal-algoritmu innifsu u kellhom jabbandunawha. Il-ħaġa hija li ż-żerriegħa fiha biss 32-bit, hija żgħira wisq u ma fihax biżżejjed kumplessità komputazzjonali għal attakk frontali.

  • ID taċ-ċavetta - ċavetta simetrika ta '32-bit;
  • MAC (kodiċi ta' awtentikazzjoni tal-messaġġi) - checksum tal-pakkett NTP;

Autokey huwa kkalkulat kif ġej.

Autokey=H(Sender-IP||Receiver-IP||KeyID||Cookie)

Fejn H() hija funzjoni hash kriptografika.

L-istess funzjoni tintuża biex tikkalkula l-checksum tal-pakketti.

MAC=H(Autokey||NTP packet)

Jirriżulta li l-integrità kollha tal-kontrolli tal-pakketti tistrieħ fuq l-awtentiċità tal-cookies. Ladarba jkollokhom, tista 'terġa l-autokey u mbagħad spoof-MAC. Madankollu, is-server NTP juża żerriegħa meta jiġġenerahom. Dan huwa fejn tinsab il-qabda.

Cookie=MSB_32(H(Client IP||Server IP||0||Server Seed))

Il-funzjoni MSB_32 taqta 'l-aktar 5 bit sinifikanti mir-riżultat tal-kalkolu tal-hash md32. Il-cookie tal-klijent ma tinbidilx sakemm il-parametri tas-server jibqgħu ma jinbidlux. Imbagħad l-attakkant jista 'biss jirrestawra n-numru inizjali u jkun jista' jiġġenera cookies b'mod indipendenti.

L-ewwel, għandek bżonn tikkonnettja mas-server NTP bħala klijent u tirċievi cookies. Wara dan, bl-użu ta 'metodu ta' forza bruta, l-attakkant jirrestawra n-numru inizjali wara algoritmu sempliċi.

Algoritmu għall-attakk tal-kalkolu tan-numru inizjali bl-użu tal-metodu tal-forza bruta.

   for i=0:2^32 − 1 do
        Ci=H(Server-IP||Client-IP||0||i)
        if Ci=Cookie then
            return i
        end if 
    end for

L-indirizzi IP huma magħrufa, għalhekk kulma jibqa 'huwa li toħloq 2 ^ 32 hashes sakemm il-cookie maħluqa taqbel ma' dik riċevuta mis-server NTP. Fuq stazzjon tad-dar regolari b'Intel Core i5, dan jieħu 25 minuta.

NTS - Autokey ġdid

Kien impossibbli li tpoġġi toqob ta 'sigurtà bħal dawn f'Autokey, u fl-2012 deher verżjoni ġdida protokoll. Sabiex jikkompromettu l-isem, iddeċidew li jibdlu l-marka, għalhekk Autokey v.2 ġie msejjaħ Network Time Security.

Il-protokoll NTS huwa estensjoni tas-sigurtà NTP u bħalissa jappoġġja biss il-mod unicast. Tipprovdi protezzjoni kriptografika qawwija kontra l-manipulazzjoni tal-pakketti, tipprevjeni snooping, tiskala tajjeb, hija reżistenti għat-telf tal-pakkett tan-netwerk, u tirriżulta fl-inqas ammont ta 'telf ta' preċiżjoni mġarrab matul is-sigurtà tal-konnessjoni.

Konnessjoni NTS tikkonsisti f'żewġ stadji li jużaw protokolli ta 'saff aktar baxx. Fuq l-ewwel F'dan l-istadju, il-klijent u s-server jaqblu dwar diversi parametri ta 'konnessjoni u jiskambjaw cookies li fihom ċwievet mas-sett tad-dejta kollu li jakkumpanjahom. Fuq it-tieni F'dan l-istadju, is-sessjoni NTS protetta attwali sseħħ bejn il-klijent u s-server NTP.

Kif is-sinkronizzazzjoni tal-ħin saret sigura

NTS jikkonsisti f'żewġ protokolli ta' saff aktar baxx: Network Time Security Key Exchange (NTS-KE), li jibda konnessjoni sigura fuq TLS, u NTPv4, l-aħħar inkarnazzjoni tal-protokoll NTP. Ftit aktar dwar dan hawn taħt.

L-ewwel stadju - NTS KE

F'dan l-istadju, il-klijent NTP jibda sessjoni TLS 1.2/1.3 fuq konnessjoni TCP separata mas-server NTS KE. Matul din is-sessjoni jiġri dan li ġej.

  • Il-partijiet jiddeterminaw il-parametri AEAD algoritmu għat-tieni stadju.
  • Il-partijiet jiddefinixxu t-tieni protokoll ta' saff aktar baxx, iżda bħalissa NTPv4 biss huwa appoġġjat.
  • Il-partijiet jiddeterminaw l-indirizz IP u l-port tas-server NTP.
  • Is-server NTS KE joħroġ cookies taħt NTPv4.
  • Il-partijiet estratt par ċwievet simmetriċi (C2S u S2C) mill-materjal tal-cookie.

Dan l-approċċ għandu l-vantaġġ kbir li l-piż kollu tat-trażmissjoni ta 'informazzjoni sigrieta dwar il-parametri tal-konnessjoni jaqa' fuq il-protokoll TLS ippruvat u affidabbli. Dan jelimina l-ħtieġa li tivvinta mill-ġdid ir-rota tiegħek għal handshake NTP sigur.

It-tieni stadju - NTP taħt protezzjoni NTS

Fit-tieni pass, il-klijent jissinkronizza b'mod sikur il-ħin mas-server NTP. Għal dan il-għan, jittrasmetti erba' estensjonijiet speċjali (oqsma ta' estensjoni) fl-istruttura tal-pakkett NTPv4.

  • L-Estensjoni tal-Identifikatur Uniku fiha nonce każwali biex jipprevjeni attakki mill-ġdid.
  • NTS Cookie Extension fiha waħda mill-cookies NTP disponibbli għall-klijent. Peress li l-klijent biss għandu ċ-ċwievet AAED simetriċi C2S u S2C, is-server NTP għandu estratthom mill-materjal tal-cookie.
  • NTS Cookie Placeholder Extension hija mod kif klijent jitlob cookies addizzjonali mis-server. Din l-estensjoni hija meħtieġa biex jiġi żgurat li r-rispons tas-server NTP ma jkunx ħafna itwal mit-talba. Dan jgħin biex jipprevjeni attakki ta 'amplifikazzjoni.
  • NTS Authenticator u Encrypted Extension Fields Estensjoni fiha ċ-ċifra AAED biċ-ċavetta C2S, header NTP, timestamps, u l-EF ta 'hawn fuq bħala data ta' akkumpanjament. Mingħajr din l-estensjoni huwa possibbli li jiġu spoof timestamps.

Kif is-sinkronizzazzjoni tal-ħin saret sigura

Malli jirċievi talba minn klijent, is-server jivverifika l-awtentiċità tal-pakkett NTP. Biex tagħmel dan, huwa għandu jiddeċifra l-cookies, estratt l-algoritmu AAED u ċwievet. Wara li jiċċekkja b'suċċess il-pakkett NTP għall-validità, is-server jirrispondi lill-klijent fil-format li ġej.

  • Unique Identifier Extension hija kopja mera tat-talba tal-klijent, miżura kontra l-attakki mill-ġdid.
  • NTS Cookie Extension aktar cookies biex tkompli s-sessjoni.
  • NTS Authenticator u Encrypted Extension Fields Estensjoni fiha ċ-ċifra AEAD b'ċavetta S2C.

It-tieni handshake jista 'jiġi ripetut ħafna drabi, billi jinjora l-ewwel pass, peress li kull talba u tweġiba tagħti lill-klijent cookies addizzjonali. Dan għandu l-vantaġġ li l-operazzjonijiet TLS relattivament intensivi fir-riżorsi tal-kompjuters u t-trażmissjoni tad-dejta tal-PKI huma diviż bin-numru ta 'talbiet ripetuti. Dan huwa speċjalment konvenjenti għal timekeepers speċjalizzati tal-FPGA, meta l-funzjonalità ewlenija kollha tista 'tiġi ppakkjata f'diversi funzjonijiet mill-qasam tal-kriptografija simmetrika, it-trasferiment tal-munzell TLS kollu għal apparat ieħor.

NTPSec

X'inhu speċjali dwar NTP? Minkejja l-fatt li l-awtur tal-proġett, Dave Mills, ipprova jiddokumenta l-kodiċi tiegħu bl-aħjar mod possibbli, huwa programmatur rari li se jkun kapaċi jifhem l-intricacies tal-algoritmi tas-sinkronizzazzjoni tal-ħin li għandhom 35 sena. Xi wħud mill-kodiċi nkitbu qabel l-era POSIX, u l-API Unix imbagħad kienet differenti ħafna minn dak li jintuża llum. Barra minn hekk, l-għarfien ta 'l-istatistika huwa meħtieġ biex jitneħħa s-sinjal minn interferenza fuq linji storbjużi.

NTS ma kienx l-ewwel tentattiv biex jiffissaw NTP. Ladarba l-attakkanti tgħallmu jisfruttaw il-vulnerabbiltajiet NTP biex jamplifikaw l-attakki DDoS, deher ċar li kienu meħtieġa bidliet radikali. U filwaqt li l-abbozzi tal-NTS kienu qed jitħejjew u ffinalizzati, il-Fondazzjoni Nazzjonali tax-Xjenza tal-Istati Uniti fl-aħħar tal-2014 allokat b'mod urġenti għotja għall-immodernizzar tal-NTP.

Il-grupp ta’ ħidma kien immexxi mhux minn kulħadd, imma Eric Steven Raymond - wieħed mill-fundaturi u l-pilastri tal-komunità Open Source u awtur tal-ktieb Katidral u Bazaar. L-ewwel ħaġa li ppruvaw jagħmlu Eric u l-ħbieb tiegħu kienet li jċaqalqu l-kodiċi NTP mill-pjattaforma BitKeeper għal git, iżda ma ħadmitx hekk. Il-mexxej tal-proġett Harlan Stenn kien kontra din id-deċiżjoni u n-negozjati waqfu. Imbagħad ġie deċiż li l-kodiċi tal-proġett jinforma, u twieled NTPSec.

Esperjenza soda, inkluż xogħol fuq GPSD, sfond matematiku u s-sengħa maġika tal-qari tal-kodiċi tal-qedem - Eric Raymond kien eżattament il-hacker li seta 'jiġbed proġett bħal dan. It-tim sab speċjalista tal-migrazzjoni tal-kodiċi u f'10 ġimgħat biss NTP issetiljafuq GitLab. Ix-xogħol kien fl-aqwa tiegħu.

It-tim ta’ Eric Raymond ħa l-inkarigu bl-istess mod kif għamel Auguste Rodin bi blokka tal-ġebel. Billi neħħew 175 KLOC ta 'kodiċi antik, setgħu jnaqqsu b'mod sinifikanti l-wiċċ tal-attakk, u jagħlqu ħafna toqob tas-sigurtà.

Hawnhekk hawn lista mhux kompluta ta' dawk inklużi fid-distribuzzjoni:

  • Refclock mhux dokumentat, skadut, skadut jew miksur.
  • Librerija ICS mhux użata.
  • libopts/autogen.
  • Kodiċi antik għall-Windows.
  • ntpdc.
  • Autokey.
  • Il-kodiċi C ntpq inkiteb mill-ġdid f'Python.
  • Il-kodiċi C sntp/ntpdig inkiteb mill-ġdid f'Python.

Minbarra t-tindif tal-kodiċi, il-proġett kellu kompiti oħra. Hawnhekk hawn lista parzjali tal-kisbiet:

  • Il-protezzjoni tal-kodiċi kontra l-overflow tal-buffer tjiebet b'mod sinifikanti. Biex jipprevjenu l-overflows tal-buffer, il-funzjonijiet kollha ta' string mhux sikuri (strcpy/strcat/strtok/sprintf/vsprintf/gets) ġew sostitwiti b'verżjonijiet sikuri li jimplimentaw limiti tad-daqs tal-buffer.
  • Miżjud appoġġ NTS.
  • Il-preċiżjoni tal-pass tal-ħin imtejba għaxar darbiet billi torbot hardware fiżiku. Dan huwa dovut għall-fatt li l-arloġġi tal-kompjuter moderni saru ħafna aktar preċiżi minn dawk meta twieled NTP. L-akbar benefiċjarji ta' dan kienu GPSDO u radjijiet tal-ħin iddedikati.
  • In-numru ta 'lingwi ta' programmar tnaqqas għal tnejn. Minflok skripts Perl, awk u anke S, issa huwa Python kollu. Minħabba dan, hemm aktar opportunitajiet għall-użu mill-ġdid tal-kodiċi.
  • Minflok noodles ta 'skripts autotools, il-proġett beda juża sistema ta' bini ta 'softwer waf.
  • Dokumentazzjoni tal-proġett aġġornata u riorganizzata. Minn ġabra ta’ dokumenti kontradittorja u kultant arkajka, ħolqu dokumentazzjoni pjuttost passabbli. Kull swiċċ tal-linja tal-kmand u kull entità ta 'konfigurazzjoni issa għandha verżjoni waħda tal-verità. Barra minn hekk, il-paġni man u d-dokumentazzjoni tal-web issa huma maħluqa mill-istess fajls ewlenin.

NTPSec huwa disponibbli għal numru ta' distribuzzjonijiet Linux. Bħalissa, l-aħħar verżjoni stabbli hija 1.1.8, għal Gentoo Linux hija dik ta' qabel tal-aħħar.

(1:696)$ sudo emerge -av ntpsec
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild   R    ] net-misc/ntpsec-1.1.7-r1::gentoo  USE="samba seccomp -debug -doc -early -gdb -heat -libbsd -nist -ntpviz -rclock_arbiter -rclock_generic -rclock_gpsd -rclock_hpgps -rclock_jjy -rclock_local -rclock_modem -rclock_neoclock -rclock_nmea -rclock_oncore -rclock_pps -rclock_shm -rclock_spectracom -rclock_trimble -rclock_truetime -rclock_zyfer -smear -tests" PYTHON_TARGETS="python3_6" 0 KiB
Total: 1 package (1 reinstall), Size of downloads: 0 KiB
Would you like to merge these packages? [Yes/No]

Kronika

Kien hemm tentattiv ieħor biex l-NTP il-qadim jiġi sostitwit b'alternattiva aktar sigura. Chrony, b'differenza minn NTPSec, hija miktuba mill-bidu u hija mfassla biex topera b'mod affidabbli taħt firxa wiesgħa ta 'kundizzjonijiet, inklużi konnessjonijiet ta' netwerk instabbli, disponibbiltà jew konġestjoni parzjali tan-netwerk, u bidliet fit-temperatura. Barra minn hekk, il-krony għandha vantaġġi oħra:

  • chrony jistgħu jissinkronizzaw l-arloġġ tas-sistema aktar malajr bi preċiżjoni akbar;
  • chrony hija iżgħar, tikkonsma inqas memorja, u taċċessa s-CPU biss meta jkun meħtieġ. Dan huwa vantaġġ kbir għall-iffrankar tar-riżorsi u l-enerġija;
  • chrony jappoġġja timestamps tal-ħardwer fuq Linux, li jippermetti sinkronizzazzjoni estremament preċiża fuq netwerks lokali.

Madankollu, chrony m'għandhiex xi wħud mill-karatteristiċi tal-NTP l-antik, bħax-xandir u l-multicast client/server. Barra minn hekk, NTP klassika jappoġġja numru akbar ta 'sistemi operattivi u pjattaformi.

Biex tiddiżattiva l-funzjonalità tas-server u t-talbiet NTP għall-proċess chronyd, ikteb biss port 0 fil-fajl chrony.conf. Dan isir f'każijiet fejn ma jkunx hemm bżonn li jinżamm ħin għall-klijenti NTP jew sħabhom. Mill-verżjoni 2.0, il-port tas-server NTP huwa miftuħ biss meta l-aċċess ikun permess minn direttiva allow jew kmand xieraq, jew peer NTP jiġi kkonfigurat, jew tintuża direttiva tax-xandir.

Il-programm jikkonsisti f'żewġ moduli.

  • chronyd huwa servizz li jaħdem fl-isfond. Jirċievi informazzjoni dwar id-differenza bejn l-arloġġ tas-sistema u s-server tal-ħin estern u jaġġusta l-ħin lokali. Jimplimenta wkoll il-protokoll NTP u jista 'jaġixxi bħala klijent jew server.
  • chronyc hija utilità tal-linja tal-kmand għall-monitoraġġ u l-kontroll tal-programm. Użat biex jirfina diversi parametri tas-servizz, pereżempju li jippermettilek li żżid jew tneħħi servers NTP waqt li chronyd ikompli jaħdem.

Mill-verżjoni 7 ta 'RedHat Linux użi chrony bħala servizz ta' sinkronizzazzjoni tal-ħin. Il-pakkett huwa wkoll disponibbli għal distribuzzjonijiet Linux oħra. L-aħħar verżjoni stabbli hija 3.5, tipprepara għar-rilaxx ta 'v4.0.

(1:712)$ sudo emerge -av chrony
These are the packages that would be merged, in order:
Calculating dependencies... done!
[binary  N     ] net-misc/chrony-3.5-r2::gentoo  USE="adns caps cmdmon ipv6 ntp phc readline refclock rtc seccomp (-html) -libedit -pps (-selinux)" 246 KiB
Total: 1 package (1 new, 1 binary), Size of downloads: 246 KiB
Would you like to merge these packages? [Yes/No]

Kif twaqqaf is-server chrony remot tiegħek stess fuq l-Internet biex tissinkronizza l-ħin fuq netwerk tal-uffiċċju. Hawn taħt hemm eżempju ta 'twaqqif ta' VPS.

Eżempju tat-twaqqif ta' Chrony fuq RHEL / CentOS fuq VPS

Ejja issa nipprattikaw ftit u waqqaf is-server NTP tagħna stess fuq VPS. Huwa sempliċi ħafna, agħżel biss it-tariffa xierqa fuq il-websajt RuVDS, ikseb server lest u ikteb tużżana kmandi sempliċi. Għall-iskopijiet tagħna, din l-għażla hija pjuttost adattata.

Kif is-sinkronizzazzjoni tal-ħin saret sigura

Ejja ngħaddu għat-twaqqif tas-servizz u l-ewwel ninstallaw il-pakkett chrony.

[root@server ~]$ yum install chrony

RHEL 8 / CentOS 8 jużaw maniġer tal-pakketti differenti.

[root@server ~]$ dnf install chrony

Wara li tinstalla chrony, għandek bżonn tibda u tattiva s-servizz.

[root@server ~]$ systemctl enable chrony --now

Jekk mixtieq, tista 'tagħmel bidliet għal /etc/chrony.conf, billi tissostitwixxi s-servers NPT ma' dawk lokali eqreb biex tnaqqas il-ħin tar-rispons.

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.ru.pool.ntp.org iburst
server 1.ru.pool.ntp.org iburst
server 2.ru.pool.ntp.org iburst
server 3.ru.pool.ntp.org iburst

Sussegwentement, waqqafna sinkronizzazzjoni tas-server NTP ma 'nodi mill-grupp speċifikat.

[root@server ~]$ timedatectl set-ntp true
[root@server ~]$ systemctl restart chronyd.service

Huwa wkoll meħtieġ li tiftaħ il-port NTP għal barra, inkella l-firewall jimblokka l-konnessjonijiet deħlin min-nodi tal-klijenti.

[root@server ~]$ firewall-cmd --add-service=ntp --permanent 
[root@server ~]$ firewall-cmd --reload

Min-naħa tal-klijent, huwa biżżejjed li tissettja ż-żona tal-ħin b'mod korrett.

[root@client ~]$ timedatectl set-timezone Europe/Moscow

Il-fajl /etc/chrony.conf jispeċifika l-IP jew l-isem tal-host tas-server VPS tagħna li jmexxi NTP server chrony.

server my.vps.server

U fl-aħħarnett, bidu tas-sinkronizzazzjoni tal-ħin fuq il-klijent.

[root@client ~]$ systemctl enable --now chronyd
[root@client ~]$ timedatectl set-ntp true

Id-darba li jmiss ngħidlek x'għażliet hemm għas-sinkronizzazzjoni tal-ħin mingħajr l-Internet.

Kif is-sinkronizzazzjoni tal-ħin saret sigura

Kif is-sinkronizzazzjoni tal-ħin saret sigura

Sors: www.habr.com

Żid kumment