Skip to main content

Module stats

Module stats 

Source
Expand description

Статистическое ядро sidecheck.

Методология основана на Crosby, Wallach, Riedi, “Opportunities and Limits of Remote Timing Attacks” (ACM TISSEC, 2009): сеть может только добавлять задержку, никогда не убирать её, поэтому нижние перцентили выборки несут значительно меньше шума, чем среднее или даже минимум по сырым данным. На этом строится “box test” — сравнение низких перцентилей двух выборок.

Structs§

BoxTestResult
Результат box test: разница между низкими перцентилями двух выборок плюс доверительный интервал, полученный бутстрэпом (без предположений о нормальности распределения сетевых задержек).

Constants§

BOOTSTRAP_ITERATIONS
Число итераций bootstrap resampling для доверительного интервала. Вынесено в константу, чтобы её можно было честно указать в отчёте — не просто “confidence: 95%”, а явно “bootstrap confidence на N итерациях”.

Functions§

box_test
Box test по методологии Crosby-Wallach: сравнивает низкий перцентиль (по умолчанию p10) двух выборок времени отклика, доверительный интервал строится через bootstrap resampling.
estimate_jitter
Оценка джиттера сети по пилотной выборке. Раньше считалась как стандартное отклонение вокруг низкого перцентиля — но дисперсия (квадраты отклонений) крайне чувствительна к единичным выбросам (первый запрос после установки соединения, GC-пауза, шедулинг ОС): один медленный запрос из трёхсот мог задрать оценку в разы, из-за чего два независимых замера одного и того же канала расходились в разы.
percentile
Возвращает значение p-го перцентиля отсортированной выборки (p в [0.0, 100.0]).
required_samples
Оценка минимального числа запросов на класс, необходимого для обнаружения утечки заданного размера при данном уровне шума сети. Формула из мощностного анализа (power analysis) для сравнения средних: n ≈ 2 * (z_alpha/2 + z_beta)^2 * sigma^2 / delta^2