TGViewer
Марков цепи пропил Марков цепи пропил @markovdrankthechains · 3.31K subscribers
Post #340 2.78K
В общем, забавный факт. Как мы знаем, у кварцевых часов есть погрешность, которой обычно можно пренебречь, но у каждого кристалла она своя.

В операционной системе есть TCP-часы, по которым считают задержку до собеседника, и, в отличие от системных, они должны расти монотонно, иначе получатель начнёт выкидывать свежие пакеты как старые. В 2005-м вышла статья [Remote Physical Device Fingerprinting]. Её авторы показали, что по таймстемпам из TCP можно удалённо посчитать погрешность часов и использовать её как отпечаток машины.

Первым делом они проверили, зависит ли погрешность от того, откуда машина подключена. Для этого взяли ноутбук и подключали его к одному и тому же серверу из разных мест: из дома на обоих побережьях США, из университета, из публичной библиотеки, через wifi, провод и модем. Часы ноутбука отставали примерно на 58 микросекунд за каждую секунду, и во всех местах оценки разошлись меньше чем на микросекунду в секунду. Следующий вопрос был, зависит ли результат от того, кто измеряет. Тот же ноутбук измеряли одновременно с машин по всему миру, от Калифорнии до Кембриджа и Сингапура, и цифры снова сошлись. Выбилась только машина в Индии, до которой пакет шёл туда-обратно больше 300 мс. Оставалось понять, отличаются ли между собой одинаковые компьютеры. В университетском компьютерном классе 38 дней мерили 69 машин с одинаковым железом и одинаковой Windows. У каждой погрешность держалась на своём уровне, и у разных машин она лежала в диапазоне от −6 до +49 микросекунд в секунду. Само по себе это не даёт уникального идентификатора, но вместе с другими признаками, в теории, помогает отслеживать устройство.

В статье есть мысль, которую авторы не довели до конца. Если на погрешность влияет температура, то по ней можно узнать что-то об окружении машины. Проверили это только мимоходом: летом перенесли ноутбук из серверной с кондиционером в комнату без него и разницы почти не увидели.

Стивен Мёрдок из Кембриджа [обнаружил влияние температуры случайно]. Он пытался улучшить результаты той самой статьи 2005-го и вытаскивал время из начальных номеров TCP-соединений, куда Linux подмешивает системные часы с точностью до микросекунды. Точность выросла настолько, что в измерениях проявился странный пик. По времени он примерно совпал с моментом, когда cron раскручивал жёсткий диск на тестовой машине, и, как следствие, появилась новая статья.

В 2006-м Мёрдок опубликовал работу [Hot or Not: Revealing Hidden Services by their Clock Skew], в ней шла речь о скрытых сервисах Tor. Годом раньше уже была атака, где ноду Tor вычисляли по тому, как у неё растёт задержка под нагрузкой, и против неё предложили изоляцию: каждому соединению фиксированная доля ресурсов. Мёрдок заметил, что изоляция не спасает - когда соединение простаивает, процессор меньше работает и остывает, а от температуры меняется частота кварца.

Он проверил это на приватной сети Tor - скрытый сервер два часа нагружали, скачивая с него файл на 10 МБ по анонимному каналу, потом два часа не трогали, а отдельная машина всё это время напрямую собирала с сервера TCP-таймстемпы. Температура менялась всего на 1–1.5 °C, но погрешность часов менялась синхронно с нагрузкой. Изменение было в доли микросекунды в секунду, как раз в тех пределах, которые в 2005-м сочли незначительными. Разглядеть его удалось, потому что Мёрдок вычитал постоянную погрешность и знал, когда именно сервер грелся.

Чтобы убедиться, что дело именно в температуре, машину отдельно грели снаружи, и перепады в 3 °C тоже читались по таймстемпам. Так же читался и суточный ход температуры в комнате. Короче говоря, догадка из статьи 2005-го подтвердилась, и по погрешности стало видно, что происходит вокруг машины.

В 2016-м в Linux [к TCP-таймстемпам стали прибавлять случайное число] в рамках одного соединения, чтобы по ним нельзя было следить за машиной и считать компьютеры за NAT. Разные соединения одной машины так уже не связать, но внутри одного длинного соединения часы идут с той же скоростью, и погрешность [в принципе еще можно посчитать]
  • 🔥 45
  • 😁 4
  • 👻 2
More from @markovdrankthechains
  1. Sep 23, 2026photo post
  2. Sep 21, 2026https://www.educate.elsevier.com/book/details/9780443439001
  3. Sep 21, 2026Ладно, пойду траву потрогаю
  4. Sep 16, 2026"Я устал от корпорейт мемфиса и минималистичного дизайна, скорее бы этот тренд закончился"
  5. Sep 13, 2026Некоторое время аутирую над фингерпринтами, через которые ТСПУ может блокировать кастомные…
  6. Sep 9, 2026photo post
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →