Точное время

Меж­ду ком­пью­те­ра­ми, обща­ю­щи­ми­ся в сети, не долж­но быть слиш­ком боль­шой раз­ни­цы во вре­ме­ни. Раз­ные про­то­ко­лы под­ра­зу­ме­ва­ют раз­ную чув­стви­тель­ность к это­му рас­хож­де­нию. Напри­мер, HTTPS почти пофи­гу, раз­ве что если совсем боль­шая раз­ни­ца (меся­цы), то могут быть эффек­ты с сер­ти­фи­ка­та­ми, кото­рые могут счи­тать­ся нера­бо­чи­ми, так как уже про­тух­ли (или наобо­рот, ещё не всту­пи­ли в дей­ствие).

А вот про­то­кол Кер­бе­рос уже намно­го стро­же — пять минут раз­ни­цы и всё, при­вет, никто нику­да не логи­нит­ся. Ну, оно понят­но, зачем — что­бы нель­зя было пере­хва­тить ста­рый ответ и при­тво­рит­ся кли­ен­том (т.н. replay attack).

Но тре­бо­ва­ния к часам ста­но­вят­ся исклю­чи­тель­но жёст­ки­ми, когда поверх Кер­бе­ро­са ещё ездит 2FA. Теперь у нас 30 секунд раз­ни­цы явля­ют­ся кри­ти­че­ски­ми. Чуть что — и в рыло при­ле­та­ет Invalid Timestamp, а это зна­чит надо лезть в CMOS и выстав­лять вре­мя там, так как зай­ти на ком­пью­тер уже невоз­мож­но.

К сожа­ле­нию, часы на ком­пью­те­рах — это про­сто ЖОПЬ какая-то, мои ста­рые квар­це­вые Касио за пять дол­ла­ров ходи­ли намно­го точ­нее. Хотя вро­де тут тоже кварц сто­ит, всё как у боль­ших. А вот накось — разой­тись на 10 минут за два меся­ца? Да нам и 11 не пре­дел!

При этом уже дав­но умные люди при­ду­ма­ли NTP (Network Time Protocol). Но на вин­де оно рабо­та­ет обыч­но так: жмёшь «син­хро­ни­зо­вать­ся», Вин­да радост­но рапор­ту­ет, что она син­хро­ни­зи­ро­ва­лась с time.windows.com, но вре­мя на часах них­ре­на не меня­ет­ся! Как бороть­ся — непо­нят­но. Я уж и груп­по­вые поли­ти­ки менял, и что толь­ко не делал — всё рав­но вре­мя посто­ян­но рас­хо­дит­ся. Что за жопь.