Expand description
Сбор сырых измерений времени отклика.
Ключевое требование методологии: классы запросов (например, “верный префикс” / “неверный префикс”) должны чередоваться в случайном порядке, а не идти блоками “сначала все A, потом все B” — иначе на результат повлияет прогрев сервера, фоновая нагрузка или дрейф сети во времени, а не сама утечка. См. dudect / Crosby-Wallach методологию.
Structs§
- Http
Target - HTTP-цель: URL и точка, в которую подставляется тестовое значение.
- Plain
Samples - Результат простого сбора замеров для
sidecheck doctor— без деления на классы, нас интересует только форма распределения RTT до цели. - RawSamples
Enums§
- Injection
Point - Куда подставляется тестовое значение. Header — самый частый случай для API-ключей, Query — для legacy-эндпоинтов с токеном в URL, JsonBody — для типичных JSON-логинов (POST /login {“password”: “…”}).
Functions§
- collect_
plain - Собирает n последовательных замеров одного и того же запроса. В отличие от run_interleaved — не прерывается на потерях пакетов, а считает их: для doctor-режима сам процент потерь и есть часть диагноза, а не повод остановиться.
- random_
wrong_ value - Генерирует заведомо неверное значение той же длины, что и реальный секрет — чтобы длина payload не была отдельной переменной, искажающей измерение (см. предупреждение в CLI про разную длину value_a/value_b). Принимает внешний RNG, чтобы весь прогон был воспроизводим по одному seed.
- run_
interleaved - Прогоняет n_per_class измерений на каждый класс, чередуя их случайными блоками, чтобы усреднить влияние дрейфа во времени. Одиночные сбои сети не прерывают весь прогон — считаются и репортятся отдельно, но если доля сбоев превышает max_failure_ratio, прогон останавливается: на таком нестабильном канале доверять таймингам нельзя.