Showing all 1 blog posts

Blog Navigation Instructions

Кибербезопасность Исследование

Помогите мне протестировать веб-криптографию: совместный исследовательский проект

Футуристическая панель управления, показывающая графики производительности для логотипов различных браузеров и названий криптографических алгоритмов.

Аннотация

Эта статья запускает исследовательский проект, основанный на сообществе, для анализа реальной производительности криптографического хеширования (SHA-256, SHA-384, SHA-512) в современных веб-браузерах. Я создал интеллектуальный инструмент для бенчмаркинга в один клик, который собирает анонимные данные о производительности браузера, ОС и оборудования. Предоставляя свои результаты, вы можете помочь количественно оценить влияние различных движков JavaScript (V8, SpiderMonkey, JavaScriptCore), оборудования (настольные ПК против мобильных устройств) и состояний питания на эти критически важные примитивы веб-безопасности. Цель состоит в том, чтобы создать наиболее полный и реалистичный набор данных о скорости веб-криптографии на сегодняшний день, все выводы и необработанные данные которого будут опубликованы в последующем анализе.

Предыстория

При реализации верификации хешей Content Security Policy для этого сайта я заметил существенную разницу в производительности между различными браузерами и устройствами. Простой хеш SHA-256, который занимал 2 мс на моём настольном ПК, требовал 15 мс на некоторых мобильных устройствах — этого достаточно, чтобы вызвать заметные задержки при загрузке страницы. Когда я искал данные о реальной производительности для понимания этих характеристик, я обнаружил только синтетические лабораторные тесты, которые не учитывали троттлинг, состояние батареи или разнообразие реальных пользовательских устройств. Я осознал, что сообществу веб-безопасности нужен комплексный краудсорсинговый набор данных, отражающий реальную производительность криптографических примитивов в продакшн-среде. Этот проект — моя попытка заполнить этот пробел, демонстрируя лучшие практики высокоточного бенчмаркинга в браузерах.

Я запускаю новый исследовательский проект, чтобы ответить на фундаментальный для веб-производительности и безопасности вопрос, и мне нужна ваша помощь. Насколько быстры современные браузеры в выполнении криптографического хеширования? Не в синтетической лаборатории, а на бесчисленных реальных устройствах, которыми пользуетесь вы и ваши пользователи каждый день.

Это исследование направлено на то, чтобы выйти за рамки простых тестов и создать «живой бенчмарк», основанный на данных от мирового технологического сообщества. Собранные нами данные прольют свет на практические вопросы, которые волнуют разработчиков, инженеров по безопасности и энтузиастов производительности.

Почему это важно?

Хеширование — это незаметный труженик веба. Это ключевой компонент Content Security Policy (CSP), основа для Subresource Integrity (SRI) и множества других механизмов безопасности. Но у этой безопасности есть своя цена в производительности. Моя цель — количественно оценить эту цену с максимально возможной точностью.

Это исследование призвано ответить на такие вопросы, как:

  1. Войны браузерных движков: Как соотносятся по производительности в чистой криптографии V8 от Chrome, SpiderMonkey от Firefox и JavaScriptCore от Safari?
  2. Влияние оборудования и платформы: Насколько новый MacBook серии M быстрее Android-смартфона среднего класса, учитывая реальные ограничения, такие как троттлинг?
  3. Вопрос о состоянии питания: Значительно ли снижается производительность при работе от аккумулятора для таких интенсивных задач?

Собирая данные с самых разных устройств, мы сможем создать публичную, основанную на данных картину реальной производительности криптографии в вебе.

Как вы можете внести свой вклад

Я создал простой и удобный инструмент для бенчмаркинга, чтобы участие было максимально лёгким. Всё, что нужно — это один клик.

Вот как это работает:

  1. Закройте другие ресурсоёмкие приложения и вкладки для наиболее точных результатов.
  2. Нажмите «Start Benchmark» ниже. Тест очень тщательный, и его длительность адаптируется к вашему устройству (примерно 30-40 секунд на мобильных, 90 секунд на десктопе).
  3. Просмотрите результаты, затем нажмите «Submit», чтобы анонимно отправить их нашему коллектору.

Тест скорости хеширования

Тест скорости хеширования: Будет выполнен краткий тест на вашем устройстве (SHA-256/384/512). Личные данные и cookie не собираются. Перед отправкой вы сможете просмотреть результаты.

Benchmark Controls
Таблица результатов бенчмарка
АлгоритмРазмерMoM (ms)95% ДИ (мс)Медиана (мс)IQR (ms)StableRemediation Attempts

Подсказка: прокрутите таблицу по горизонтали, чтобы увидеть все столбцы.

Вот и всё. Ваш вклад теперь является частью высококачественного публичного набора данных.

Методология лабораторного уровня

Для тех, кто интересуется техническими деталями, это не просто цикл. Бенчмарк спроектирован для получения исключительно точных и воспроизводимых результатов с низким уровнем шума.

  • Адаптация к среде выполнения: Бенчмарк интеллектуально адаптируется к вашему устройству. Он определяет мобильные окружения и применяет более консервативный профиль тестирования для предотвращения троттлинга. На мобильных устройствах он даже вставляет паузы для охлаждения между тяжелыми задачами, чтобы результаты отражали устойчивую производительность, а не только начальный всплеск.
  • Обязательная изолированная среда: Бенчмарк требует современный браузер и среду с «изоляцией между источниками» (cross-origin isolation). Это открывает доступ к таймерам высокого разрешения и более строгой изоляции процессов.
  • Канал данных без копирования: Все высокочастотные данные о времени передаются из Web Worker в основной поток через SharedArrayBuffer. Этот «бесшумный» канал связи устраняет помехи в измерениях.
  • Гарантии целостности данных: Тест автоматически прерывается, если вы переключаете вкладку, предотвращая сбор невалидных данных из замедленного процесса.
  • Робастная статистика: Итоговые цифры — это не простые средние значения. Мы используем робастные статистические оценки, такие как медиана средних (Median-of-Means) и Bootstrap доверительные интервалы, чтобы предоставить более точную картину производительности, устойчивую к системным шумам. Движок также интеллектуально перезапускает нестабильные тесты для улучшения качества данных.

Этот подход минимизирует распространенные ошибки при бенчмаркинге и нацелен на получение истинной картины пропускной способности хеширования в браузере.

Какие данные собираются?

Процесс спроектирован так, чтобы быть прозрачным и анонимным. Скрипт собирает только неидентифицируемые данные о производительности и оборудовании:

  • Метрики производительности: Операций в секунду, медиана средних, Bootstrap 95% доверительные интервалы и другие метрики качества.
  • Браузер и ОС: Строка User-Agent (например, Chrome 127, Windows 11).
  • Характеристики оборудования: Количество ядер ЦП (navigator.hardwareConcurrency), объём памяти устройства и высокоэнтропийные Client Hints, если они доступны (например, модель устройства, «iPhone 15 Pro»).
  • Состояние питания: Уровень заряда батареи и подключено ли устройство к зарядному устройству.
  • Анонимные метаданные запуска: Собираются уникальный, случайно сгенерированный идентификатор для вашего браузера (anonId) и для каждого конкретного запуска теста (runId). Также включается версия скрипта.

Сборщик данных спроектирован с приоритетом на конфиденциальность. Мы не храним IP-адреса и не используем файлы cookie. Отладочная информация с высокой энтропией удаляется из всех публичных отправок. Цель состоит исключительно в анализе тенденций программного и аппаратного обеспечения.

Полный исходный код, методология и политика безопасности доступны для публичного ознакомления в официальном репозитории на GitHub.

Текущие результаты

Это живой проект, и вы можете следить за нашим прогрессом в достижении исследовательских целей.

Всего получено результатов:

Полный анализ и загружаемый набор необработанных данных будут опубликованы, как только мы достигнем нашей первоначальной цели — примерно 200 результатов для каждого основного браузера (Chrome, Firefox, Safari) на десктопных и мобильных платформах. Спасибо, что помогаете нам этого достичь!

Конечная цель: публичный анализ

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

Кроме того, я сделаю полный анонимизированный набор необработанных данных доступным для скачивания, чтобы другие могли проводить собственные анализы и исследования.

Спасибо за участие в этом совместном исследовательском проекте. Давайте найдем ответы вместе!

Поддержать мою работу

Если этот материал сэкономил ваше время или вдохновил на новые идеи, поддержите мою работу.

Кофейчик на Ko-fi

Самый быстрый способ выразить благодарность

Для анонимных пожертвований вы можете поддержать меня с помощью криптовалюты. Нажмите на любой адрес, чтобы скопировать.

Bitcoin (BTC)

Сеть: Bitcoin

bc1q99evmn80nmfk8vyxs2emc9t4a4k2pdmkjlwah4
Ethereum (ETH)

Сеть: Ethereum

0x81bF6f880D0010F47830cbF01c0F3C8a6E825Cc3
BNB (Binance Coin)

Сеть: BNB Smart Chain (BSC)

0x81bF6f880D0010F47830cbF01c0F3C8a6E825Cc3
USDT (Tether)

Сеть: TRON

TWnLLRVX9NgZAwD5LhrzvnEfg69jxEAGgA
Monero (XMR)

Сеть: Monero

88MbtU2R1ufG2BcnCrkqmn3oYxvvKKR1u2yb6YeZZrQV8akocEnrHrrhzoGowkijRpLsAzTjGczfEPdL9wyzrotLTSXbEg6
Solana (SOL)

Сеть: Solana

BBTdnfdojXzifJaV4CG8LcsNiZpfvva5o9cCpbS3Esmg
Bitcoin Cash (BCH)

Сеть: Bitcoin Cash

bitcoincash:qqhv3qtsldf0w8cjzzqyame35urs0cf2xg92s2chf0
Litecoin (LTC)

Сеть: Litecoin

ltc1qy6wkwtlmzt0kngx8wrgt6x5v5nn2s7wqyvh23m
TRX (TRON)

Сеть: TRON

TWnLLRVX9NgZAwD5LhrzvnEfg69jxEAGgA
Portrait of David Osipov

Давид Осипов

Инновационный продуктовый лидер с в B2B SaaS, специализирующийся на решениях на базе ИИ, корпоративных IT-продуктах на основе данных и безопасных SaaS-платформах. Выпускник ВШМ СПбГУ. Активный картограф OpenStreetMap в Грузии и гражданский ученый. Wikidata: Q130604188, ISNI: 0000 0005 1802 960X.

David Osipov David Zurabovich Osipov MSc B2B Product Manager