База знаний
Часы компьютера расходятся с точным временем
Где это видно
При каждом запуске программа берёт точное время из ответа своего сервера, отдельного обращения наружу для этого нет. Если часы расходятся больше чем на 30 секунд, в уведомлениях программы появляется строка об этом, не чаще раза в сутки.
Точный замер делает «Диагностика сети»: строка «Часы компьютера» сверяет два источника, наш сервер и Cloudflare. Если они не согласны между собой, строка так и говорит и показывает оба.
Что ломают сбитые часы
От 30 секунд коды двухфакторной защиты профилей могут не подойти: сайт принимает код около 30 секунд.
От 5 минут сайты видят время, не совпадающее с их часами. От суток сайты по HTTPS не открываются: сертификаты кажутся недействительными.
Признаки сбитых часов
Код двухфакторной защиты профиля не подходит, хотя ключ верный. Сайты по HTTPS открываются с предупреждением о сертификате.
Сперва загляните в диагностику сети: строка «Часы компьютера» скажет, насколько часы расходятся с точным временем.
Как поставить точное время
Кнопка «Открыть настройки даты и времени» в строке часов открывает настройки системы. На Windows и macOS включите там автоматическую установку времени, на Windows ещё нажмите синхронизацию.
На Linux кнопка показывает команду для терминала: timedatectl set-ntp true.
Коды 2FA при сбитых часах
Если два замера согласны, точный замер диагностики или замеры двух запусков подряд, программа считает коды двухфакторной защиты профилей по точному времени. Если часы сбиты больше чем на 2 секунды, у кода стоит строка о поправке.
Время, которое видят страницы профилей, программа не подменяет: подмена сама стала бы приметой. Поэтому часы стоит поправить в системе.
Чего эта статья не разбирает
- Перевод часов самой программой. Для этого нужны права администратора.
- Часовой пояс. Пояс машины против страны адреса сверяет соседняя строка диагностики.
- Коды двухфакторной защиты вашего аккаунта ARMANOS. Их сверяет сервер по своим часам.
Где это решается
Каждое утверждение выше это одно место в коде и один стенд.
- Поправка по середине запроса, согласие двух замеров, пороги 30 секунд, 5 минут и сутки, уведомление раз в сутки
- apps/desktop/test/часы.js
- Живая программа с часами, спешащими на 4 минуты: уведомление, строка диагностики и код 2FA по точному времени
- apps/desktop/test/часы-живьём.js
- Код с поправкой сверен с образцом RFC 6238
- apps/desktop/src/lib/часы.js
Вопросы
- Почему не поправить время страниц профиля?
- Подмену времени сайт может заметить. Верные часы системы надёжнее.
- Сколько живёт поправка кодов?
- До перезапуска программы. При следующем запуске она считается заново.
- Куда программа ходит за точным временем?
- В ответы своего сервера при запуске, а в диагностике ещё к Cloudflare, по тому же адресу, где диагностика меряет задержку.