«Сверить часы»: что известно о новом протоколе синхронизации времени серверов +23
Разработка систем связи, Блог компании VAS Experts
Рекомендация: подборка платных и бесплатных курсов Java - https://katalog-kursov.ru/
Рассказываем о причинах появления Roughtime и особенностях его работы.
/ Unsplash / Djim Loic
Зачем нужен новый протокол
Работа сетей с переменной латентностью основана на протоколах, подобных
NTP (Network Time Protocol). Он синхронизирует внутренние часы вычислительных систем. Но с работой NTP связан ряд проблем — последние версии протокола предусматривают возможность аутентификации запросов от сервера, но на практике эту функцию
используют редко. Большинство компьютеров безоговорочно доверяет ответу сервера точного времени при настройке системных часов. В результате злоумышленник может провести MITM-атаку и контролировать часы жертвы, нарушив работу криптографических протоколов и получив возможность повлиять на «свежесть» ключей. Также NTP имеет ряд уязвимостей, которые злоумышленники используют
для проведения DDoS-атак.
Инженеры из Бостонского университета совместно с коллегами из Google и Cloudflare представили иной подход для «сверки часов» —
Roughtime — протокол с криптографической защитой на базе UDP. В основу технологии легла система установки временных меток для блокчейна, которую еще в 2011 году
описал криптограф Бен Лори (Ben Laurie) — основатель Apache Software Foundation и ведущий разработчик OpenSSL. К слову, сам Бен
также участвовал в проектировании Roughtime.
Как он устроен
Ответ сервера по протоколу Roughtime
состоит из трех частей. Первая представляет собой метку времени с числом микросекунд, прошедших с «
эпохи Unix». Вторая называется радиус — это погрешность передаваемого значения. Третьей компонентой ответа является одноразовый код (nonce) с цифровой подписью. Значение nonce генерирует клиент при запросе временной метки. Такой подход позволяет убедиться, что передаваемая информация актуальна.
О других протоколах из нашего блога на Хабре:
Если по какой-то причине клиент не доверяет полученным данным, он может послать запрос другим серверам. Но в этом случае nonce генерируют путем хеширования ответа, полученного от предыдущего сервера. Так клиент запоминает последовательность, в которой поступают временные метки, и может убедиться в их правильности. При этом он получает возможность выявить скомпрометированные или неправильно настроенные машины — предоставленное ими значение времени будет серьезно отличаться.
Перспективы протокола
В марте прошлого года Инженерный совет интернета (IETF)
представил черновик спецификации Roughtime. На этой неделе в сети появилась
его обновленная версия. В перспективе Roughtime могут сделать полноценным интернет-стандартом и оформить в RFC. Но старший научный сотрудник и криптограф облачного провайдера Cloudflare Ник Салливан (Nick Sullivan) говорит, что Roughtime
нельзя считать прямой заменой NTP. У него нет механизмов компенсации латентности в сети, что может создать проблемы при «сверке часов» между двумя удаленными узлами (погрешность будет очень высокой). Трудностей добавляет криптография — в частности, функция SHA512, на реализацию алгоритмов которой тратятся дополнительные вычислительные ресурсы.
/ PD / Free-Photos
В связи с этим эксперты говорят, что одним из ключевых применений протокола будет проверка срока действия SSL-сертификатов в браузерах, поскольку для этой задачи не нужна высокая точность. Первую реализацию такого решения уже представил один из западных облачных провайдеров.
Также интерес к технологии
выражает компания SpiderOak. Она разрабатывает одноименное программное обеспечение для резервного копирования данных. Roughtime планируют использовать для безопасной передачи сообщений в другом продукте компании — мессенджере Semaphor.
О чем мы пишем в корпоративном блоге VAS Experts: