Giunsa pagsiguro nga ang oras matag usa dili mamakak kung ikaw adunay usa ka milyon nga dagko ug gagmay nga mga aparato nga nakigsulti pinaagi sa TCP / IP? Human sa tanan, ang matag usa kanila adunay usa ka orasan, ug ang oras kinahanglan nga husto alang kanilang tanan. Kini nga problema dili malikayan kung wala ang ntp.
Hunahunaa sa usa ka minuto nga sa usa ka bahin sa industriyal nga imprastraktura sa IT adunay mga kalisud sa pag-synchronize sa mga serbisyo sa paglabay sa panahon. Diha-diha dayon ang cluster stack sa Enterprise software nagsugod sa pagkapakyas, ang mga domain nabungkag, ang mga masters ug Standby nodes wala molampos sa pagpaningkamot sa pagpasig-uli sa status quo.
Posible usab nga ang usa ka tig-atake tinuyo nga mosulay sa pagsamok sa oras pinaagi sa usa ka pag-atake sa MiTM o DDOS. Sa ingon nga sitwasyon, ang bisan unsa mahimong mahitabo:
- Ang mga password sa user account mo-expire;
- Ang X.509 nga mga sertipiko ma-expire;
- Ang TOTP two-factor authentication mohunong sa pagtrabaho;
- ang mga backup mahimong karaan ug ang sistema magwagtang niini;
- Ang DNSSec maguba.
Klaro nga ang matag departamento sa IT interesado sa kasaligan nga operasyon sa mga serbisyo sa pag-synchronize sa oras, ug maayo kung sila kasaligan ug luwas sa operasyon sa industriya.
Bungkaga ang NTP sa 25 minutos
Mga protocol sa network - ang mga milenyo adunay usa ka talagsaon, sila kaniadto ug dili na maayo alang sa bisan unsa, apan ang pag-ilis niini dili kaayo sayon bisan kung ang usa ka kritikal nga masa sa mga mahiligon ug pondo natipon.
Ang panguna nga reklamo bahin sa klasiko nga NTP mao ang kakulang sa kasaligan nga mga mekanismo sa pagpanalipod batok sa mga pag-atake sa mga manunulong. Nagkalainlain nga mga pagsulay ang gihimo aron masulbad kini nga problema. Aron makab-ot kini, una namong gipatuman ang pre-shared key (PSK) nga mekanismo para sa pagbayloay og simetriko nga mga yawe.
Ikasubo, kini nga pamaagi wala makabayad alang sa usa ka yano nga rason - kini dili maayo nga sukod. Gikinahanglan ang manual configuration sa kilid sa kliyente depende sa server. Kini nagpasabot nga dili ka makadugang og laing kliyente nga sama niana. Kung adunay mausab sa NTP server, ang tanan nga mga kliyente kinahanglan nga i-configure pag-usab.
Unya sila miabut uban sa AutoKey, apan sila diha-diha dayon nakadiskobre sa usa ka gidaghanon sa mga seryoso nga kahuyang sa disenyo sa algorithm sa iyang kaugalingon ug sila kinahanglan nga biyaan kini. Ang butang mao nga ang binhi naglangkob lamang sa 32-bits, kini gamay ra kaayo ug wala'y igong computational complexity alang sa frontal attack.
- Key ID - simetriko 32-bit nga yawe;
- MAC (message authentication code) - NTP packet checksum;
Ang autokey gikalkula sama sa mosunod.
Autokey=H(Sender-IP||Receiver-IP||KeyID||Cookie)Diin ang H() usa ka cryptographic hash function.
Ang parehas nga function gigamit sa pagkalkulo sa checksum sa mga pakete.
MAC=H(Autokey||NTP packet)Kini nahimo nga ang tibuuk nga integridad sa mga pagsusi sa pakete nagsalig sa pagkatinuod sa mga cookies. Kung naa na nimo sila, mahimo nimong ibalik ang autokey ug dayon i-spoof ang MAC. Bisan pa, ang server sa NTP naggamit usa ka liso sa paghimo niini. Dinhi nahimutang ang kuha.
Cookie=MSB_32(H(Client IP||Server IP||0||Server Seed))Ang MSB_32 function nagputol sa 5 ka labing mahinungdanong mga tipik gikan sa md32 hash nga resulta sa kalkulasyon. Ang cookie sa kliyente dili mausab basta ang mga parameter sa server magpabilin nga wala mausab. Unya ang tig-atake mahimo ra ibalik ang inisyal nga numero ug makahimo nga independente nga makamugna og cookies.
Una, kinahanglan nimo nga makonektar sa NTP server isip kliyente ug makadawat og cookies. Pagkahuman niini, gamit ang brute force nga pamaagi, gipahiuli sa tig-atake ang inisyal nga numero pagkahuman sa usa ka yano nga algorithm.
Algorithm sa pag-atake sa kalkulasyon sa inisyal nga numero gamit ang brute-force nga pamaagi.
for i=0:2^32 − 1 do
Ci=H(Server-IP||Client-IP||0||i)
if Ci=Cookie then
return i
end if
end forAng mga adres sa IP nahibal-an, mao nga ang nahabilin mao ang paghimo sa 2^32 nga mga hash hangtod nga ang gihimo nga cookie motugma sa usa nga nadawat gikan sa NTP server. Sa usa ka regular nga istasyon sa balay nga adunay Intel Core i5, molungtad kini og 25 minuto.
NTS - bag-ong Autokey
Imposible nga ibutang ang ingon nga mga lungag sa seguridad sa Autokey, ug sa 2012 kini nagpakita protocol. Aron makompromiso ang ngalan, nakahukom sila nga i-rebrand, mao nga ang Autokey v.2 gitawag nga Network Time Security.
Ang NTS protocol kay extension sa NTP security ug sa pagkakaron nagsuporta lang sa unicast mode. Naghatag kini og lig-on nga panalipod sa cryptographic batok sa pagmaniobra sa pakete, pagpugong sa pag-snooping, pagtimbang og maayo, lig-on sa pagkawala sa packet sa network, ug moresulta sa pinakagamay nga pagkawala sa katukma nga mahitabo sa panahon sa seguridad sa koneksyon.
Ang koneksyon sa NTS naglangkob sa duha ka yugto nga naggamit sa mga protocol sa ubos nga layer. Sa ang una Niini nga yugto, ang kliyente ug server nagkauyon sa lainlaing mga parameter sa koneksyon ug nagbinayloay sa mga cookies nga adunay mga yawe sa tanan nga kauban nga set sa datos. Sa ikaduha Niini nga yugto, ang aktuwal nga gipanalipdan nga sesyon sa NTS mahitabo tali sa kliyente ug sa NTP server.

Ang NTS naglangkob sa duha ka lower-layer protocols: Network Time Security Key Exchange (NTS-KE), nga nagpasiugda og luwas nga koneksyon sa TLS, ug NTPv4, ang pinakabag-o nga pagpakatawo sa NTP protocol. Usa ka gamay nga dugang mahitungod niini sa ubos.
Unang yugto - NTS KE
Niini nga yugto, ang kliyente sa NTP nagsugod sa usa ka sesyon sa TLS 1.2/1.3 sa usa ka bulag nga koneksyon sa TCP sa NTS KE server. Atol niini nga sesyon mahitabo ang mosunod.
- Ang mga partido nagtino sa mga parameter algorithm alang sa ikaduhang yugto.
- Ang mga partido naghubit sa usa ka ikaduha nga lower-layer protocol, apan sa pagkakaron ang NTPv4 lang ang gisuportahan.
- Ang mga partido nagtino sa IP address ug pantalan sa NTP server.
- Ang NTS KE server nag-isyu og cookies ubos sa NTPv4.
- Gikuha sa mga partido ang usa ka parisan nga simetriko nga yawe (C2S ug S2C) gikan sa materyal nga cookie.
Kini nga pamaagi adunay dako nga bentaha nga ang tibuuk nga palas-anon sa pagpadala sa sekreto nga kasayuran bahin sa mga parameter sa koneksyon nahulog sa napamatud-an ug kasaligan nga protocol sa TLS. Giwagtang niini ang panginahanglan sa pag-imbento pag-usab sa imong kaugalingong ligid alang sa luwas nga NTP handshake.
Ikaduha nga yugto - NTP ubos sa proteksyon sa NTS
Sa ikaduhang lakang, ang kliyente luwas nga nag-synchronize sa oras sa NTP server. Alang niini nga katuyoan, nagpadala kini upat ka espesyal nga mga extension (mga natad sa extension) sa istruktura sa pakete sa NTPv4.
- Ang Unique Identifier Extension adunay sulud nga random nonce aron mapugngan ang mga pag-atake sa replay.
- Ang NTS Cookie Extension adunay usa sa mga NTP cookies nga magamit sa kliyente. Tungod kay ang kliyente lamang ang adunay C2S ug S2C nga simetriko nga AAED nga mga yawe, ang NTP server kinahanglan nga mokuha niini gikan sa cookie nga materyal.
- Ang NTS Cookie Placeholder Extension usa ka paagi alang sa usa ka kliyente nga mangayo ug dugang nga cookies gikan sa server. Kini nga extension gikinahanglan aron maseguro nga ang tubag sa NTP server dili mas taas kay sa hangyo. Makatabang kini nga malikayan ang mga pag-atake sa amplification.
- Ang NTS Authenticator ug Encrypted Extension Fields Extension naglangkob sa AAED cipher nga adunay C2S key, NTP header, timestamp, ug sa ibabaw nga EF isip kaubang datos. Kung wala kini nga extension posible nga mag-spoof sa mga timestamp.

Sa pagdawat sa usa ka hangyo gikan sa usa ka kliyente, ang server nagpamatuod sa pagkatinuod sa NTP packet. Aron mahimo kini, kinahanglan niyang i-decrypt ang cookies, i-extract ang AAED algorithm ug mga yawe. Human sa malampuson nga pagsusi sa NTP packet alang sa balido, ang server motubag sa kliyente sa mosunod nga format.
- Ang Unique Identifier Extension usa ka salamin nga kopya sa hangyo sa kliyente, usa ka sukod batok sa mga pag-atake sa replay.
- NTS Cookie Extension dugang nga cookies aron ipadayon ang sesyon.
- Ang NTS Authenticator ug Encrypted Extension Fields Extension naglangkob sa AEAD cipher nga adunay S2C key.
Ang ikaduha nga paglamano mahimong balik-balikon sa daghang mga higayon, nga molapas sa unang lakang, tungod kay ang matag hangyo ug tubag naghatag sa kliyente og dugang nga cookies. Kini adunay bentaha nga ang medyo resource-intensive nga operasyon sa TLS sa pag-compute ug pagpadala sa datos sa PKI gibahin sa gidaghanon sa gibalikbalik nga mga hangyo. Labi na kini nga kombenyente alang sa mga espesyalista nga timekeeper sa FPGA, kung ang tanan nga panguna nga pag-andar mahimong ma-package sa daghang mga gimbuhaton gikan sa natad sa simetriko nga kriptograpiya, pagbalhin sa tibuuk nga stack sa TLS sa lain nga aparato.
NTPSec
Unsa ang espesyal bahin sa NTP? Bisan pa sa kamatuoran nga ang tagsulat sa proyekto, si Dave Mills, misulay sa pagdokumento sa iyang code kutob sa mahimo, kini usa ka talagsaon nga programmer nga makahimo sa pagsabut sa mga kakuti sa mga algorithm sa pag-synchronize sa panahon nga 35 ka tuig ang panuigon. Ang pipila sa mga code gisulat sa wala pa ang panahon sa POSIX, ug ang Unix API kaniadto lahi kaayo sa gigamit karon. Dugang pa, gikinahanglan ang kahibalo sa estadistika aron malimpyohan ang signal gikan sa pagpanghilabot sa mga saba nga linya.
Ang NTS dili ang unang pagsulay sa pag-ayo sa NTP. Sa diha nga ang mga tig-atake nakakat-on sa pagpahimulos sa mga kahuyangan sa NTP aron sa pagpadako sa mga pag-atake sa DDoS, nahimong tin-aw nga gikinahanglan ang mga radikal nga kausaban. Ug samtang ang mga draft sa NTS giandam ug gitapos, ang US National Science Foundation sa katapusan sa 2014 dinalian nga gigahin ang usa ka grant alang sa modernisasyon sa NTP.
Ang grupo nga nagtrabaho gipangulohan dili ni bisan kinsa, kondili - usa sa mga nagtukod ug mga haligi sa Open Source nga komunidad ug tagsulat sa libro . Ang unang butang nga gisulayan ni Eric ug sa iyang mga higala mao ang pagbalhin sa NTP code gikan sa BitKeeper nga plataporma ngadto sa git, apan wala kini molampos. Ang lider sa proyekto nga si Harlan Stenn supak niini nga desisyon ug nahunong ang negosasyon. Unya nakahukom nga i-fork ang code sa proyekto, ug natawo ang NTPSec.
Solid nga kasinatian, lakip ang pagtrabaho sa GPSD, usa ka background sa matematika ug ang mahika nga kahanas sa pagbasa sa karaang code - si Eric Raymond mao gyud ang hacker nga makahimo sa ingon nga proyekto. Ang team nakakaplag ug code migration specialist ug sulod lang sa 10 ka semana NTP sa GitLab. Ang trabaho naglihok.
Gibuhat sa team ni Eric Raymond ang tahas sa parehas nga paagi nga gihimo ni Auguste Rodin gamit ang usa ka bloke nga bato. Pinaagi sa pagtangtang sa 175 KLOC sa daan nga code, nakahimo sila sa pagkunhod sa pag-atake sa nawong pinaagi sa pagsira sa daghang mga lungag sa seguridad.
Ania ang usa ka dili kompleto nga lista sa mga nalakip sa pag-apod-apod:
- Dili dokumentado, karaan, karaan o guba nga refclock.
- Wala magamit nga librarya sa ICS.
- libopts/autogen.
- Daang code alang sa Windows.
- ntpdc.
- Autokey.
- Ang ntpq C code kay gisulat na usab sa Python.
- Ang sntp/ntpdig C code kay gisulat na usab sa Python.
Gawas pa sa paglimpyo sa code, ang proyekto adunay ubang mga buluhaton. Ania ang usa ka partial nga listahan sa mga kalampusan:
- Ang proteksyon sa code batok sa pag-awas sa buffer labi nga gipauswag. Aron mapugngan ang pag-awas sa buffer, ang tanan nga dili luwas nga mga function sa string (strcpy/strcat/strtok/sprintf/vsprintf/gets) gipulihan sa luwas nga mga bersyon nga nagpatuman sa mga limitasyon sa gidak-on sa buffer.
- Gidugang ang suporta sa NTS.
- Gipauswag ang katukma sa lakang sa oras napulo ka pilo pinaagi sa pag-link sa pisikal nga hardware. Kini tungod sa kamatuoran nga ang modernong mga orasan sa kompyuter nahimong mas tukma kaysa niadtong dihang natawo ang NTP. Ang pinakadako nga benepisyaryo niini mao ang GPSDO ug dedicated time radios.
- Ang gidaghanon sa mga programming language gipakunhod ngadto sa duha. Imbis nga Perl, awk ug bisan ang mga script sa S, kini tanan Python. Tungod niini, adunay daghang mga oportunidad alang sa paggamit pag-usab sa code.
- Imbis nga mga noodles sa autotools scripts, ang proyekto nagsugod sa paggamit sa usa ka software build system .
- Gi-update ug gi-organisar pag-usab ang dokumentasyon sa proyekto. Gikan sa usa ka nagkasumpaki ug usahay karaan nga koleksyon sa mga dokumento, naghimo sila og medyo mapasa nga dokumentasyon. Ang matag switch sa command line ug ang matag configuration entity karon adunay usa ka bersyon sa kamatuoran. Dugang pa, ang mga panid sa tawo ug dokumentasyon sa web nahimo na karon gikan sa parehas nga panguna nga mga file.
Ang NTPSec anaa alang sa daghang mga distribusyon sa Linux. Sa pagkakaron, ang pinakabag-o nga stable nga bersyon mao ang 1.1.8, para sa Gentoo Linux kini ang penultimate.
(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]
Chrony
Adunay laing pagsulay sa pag-ilis sa daan nga NTP sa usa ka mas luwas nga alternatibo. Ang Chrony, dili sama sa NTPSec, gisulat gikan sa sinugdanan ug gidesinyo nga molihok nga kasaligan ubos sa usa ka halapad nga kahimtang, lakip ang dili lig-on nga koneksyon sa network, partial nga pagkaanaa sa network o paghuot, ug pagbag-o sa temperatura. Dugang pa, ang chrony adunay ubang mga bentaha:
- Ang chrony makahimo sa pag-synchronize sa sistema sa orasan nga mas paspas nga adunay mas tukma;
- mas gamay ang chrony, gamay ra ang memorya, ug ma-access lang ang CPU kung gikinahanglan. Kini usa ka dako nga dugang alang sa pagtipig sa mga kahinguhaan ug kusog;
- Gisuportahan sa chrony ang mga timestamp sa hardware sa Linux, nga gitugotan ang labi ka tukma nga pag-synchronize sa mga lokal nga network.
Bisan pa, ang chrony kulang sa pipila ka mga bahin sa daan nga NTP, sama sa broadcast ug multicast client/server. Dugang pa, ang klasiko nga NTP nagsuporta sa daghang mga operating system ug platform.
Aron ma-disable ang functionality sa server ug NTP requests sa chronyd process, isulat lang ang port 0 sa chrony.conf file. Gihimo kini sa mga kaso diin wala na kinahanglana ang pagmentinar sa oras para sa mga kliyente sa NTP o mga kaedad. Sukad sa bersyon 2.0, ang NTP server port bukas lamang kung ang pag-access gitugotan sa usa ka pagtugot nga direktiba o angay nga mando, o usa ka NTP peer ang gi-configure, o usa ka direktiba sa broadcast ang gigamit.
Ang programa naglangkob sa duha ka modules.
- Ang chronyd usa ka serbisyo nga nagdagan sa background. Nakadawat kini og kasayuran mahitungod sa kalainan tali sa sistema sa orasan ug sa eksternal nga server sa oras ug nag-adjust sa lokal nga oras. Nagpatuman usab kini sa NTP protocol ug mahimong molihok isip kliyente o server.
- Ang chronyc kay usa ka command line utility para sa pagmonitor ug pagkontrol sa programa. Gigamit sa pag-ayo sa lain-laing mga parameter sa serbisyo, pananglitan nagtugot kanimo sa pagdugang o pagtangtang sa mga NTP server samtang ang chronyd nagpadayon sa pagdagan.
Sukad sa bersyon 7 sa RedHat Linux chrony isip serbisyo sa pag-synchronize sa oras. Ang pakete magamit usab alang sa ubang mga distribusyon sa Linux. Ang pinakabag-o nga stable nga bersyon mao ang 3.5, nga nangandam alang sa pagpagawas sa 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]
Giunsa ang pag-set up sa imong kaugalingon nga hilit nga chrony server sa Internet aron ma-synchronize ang oras sa usa ka network sa opisina. Sa ubos usa ka pananglitan sa pag-set up sa usa ka VPS.
Pananglitan sa pag-set up sa Chrony sa RHEL / CentOS sa VPS
Magpraktis ta ug gamay ug magbutang sa kaugalingon natong NTP server sa VPS. Yano ra kaayo, pilia lang ang angay nga taripa sa website sa RuVDS, pagkuha usa ka andam nga server ug i-type ang usa ka dosena nga yano nga mga mando. Alang sa among mga katuyoan, kini nga kapilian angay.

Magpadayon kita sa pag-set up sa serbisyo ug una nga i-install ang chrony package.
[root@server ~]$ yum install chronyAng RHEL 8 / CentOS 8 naggamit ug lahi nga manager sa package.
[root@server ~]$ dnf install chronyHuman ma-install ang chrony, kinahanglan nimo nga sugdan ug i-aktibo ang serbisyo.
[root@server ~]$ systemctl enable chrony --nowKung gusto, makahimo ka og mga pagbag-o sa /etc/chrony.conf, ilisan ang mga NPT server sa labing duol nga lokal aron makunhuran ang oras sa pagtubag.
# 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
Sunod, gipahimutang namon ang pag-synchronize sa NTP server nga adunay mga node gikan sa piho nga pool.
[root@server ~]$ timedatectl set-ntp true
[root@server ~]$ systemctl restart chronyd.service
Kinahanglan usab nga ablihan ang NTP port sa gawas, kung dili ang firewall mag-block sa umaabot nga mga koneksyon gikan sa mga node sa kliyente.
[root@server ~]$ firewall-cmd --add-service=ntp --permanent
[root@server ~]$ firewall-cmd --reload
Sa bahin sa kliyente, igo na nga itakda ang time zone sa husto.
[root@client ~]$ timedatectl set-timezone Europe/MoscowAng /etc/chrony.conf file nagtino sa IP o host name sa among VPS server nga nagpadagan sa NTP server chrony.
server my.vps.serverUg sa katapusan, pagsugod sa pag-synchronize sa oras sa kliyente.
[root@client ~]$ systemctl enable --now chronyd
[root@client ~]$ timedatectl set-ntp true
Sa sunod isulti ko kanimo kung unsang mga kapilian ang adunay alang sa pag-synchronize sa oras nga wala ang Internet.
Source: www.habr.com
