Использование фильтра цветения в Google Chrome

Я читал статью в Википедии об использовании фильтров Блума. В статье упоминалось, что фильтры Блума используются Google Chrome для определения того, является ли введенный URL-адрес вредоносным. Из-за наличия ложного срабатывания

Веб-браузер Google Chrome использует фильтр Блума для выявления вредоносных URL-адресов. Любой URL-адрес сначала проверяется на соответствие локальному фильтру Блума, и только при попадании выполняется полная проверка URL-адреса.

Я предполагаю, что полная проверка означает, что Google хранит жесткую таблицу со списком вредоносных URL-адресов, а URL-адрес хешируется для проверки, присутствует ли он в таблице. Если это так, не лучше ли иметь хеш-таблицу вместо хеш-таблицы + фильтр цветения ??

Пожалуйста, просветите меня по этому поводу, верна ли моя версия полной проверки ???


person Computernerd    schedule 26.08.2013    source источник


Ответы (4)


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

person adrian.budau    schedule 26.08.2013

Фильтр Блума не только намного меньше и быстрее, чем веб-запрос, он также защищает API вредоносных URL-адресов Google от того, что в противном случае было бы огромной рабочей нагрузкой.

person Robin    schedule 22.01.2014

Фильтр Блума - это вероятностная структура данных, которая сообщает нам, что элемент определенно отсутствует в наборе или может быть в наборе. Фильтр Блума занимает меньше места (зависит от настроенных хэш-функций и количества ошибок) по сравнению с Hashmap. Hashmap может определить, существует элемент или нет, тогда как bloomfilter может только детерминированно проверять отсутствие элемента.

Давайте посмотрим на пример использования Google Chrome. Когда пользователь вводит URL-адрес, он должен проверить, является ли URL-адрес безопасным или нет. Чтобы проверить URL-адрес, Chrome может вызвать службу Google (внутри Google может поддерживать любую структуру данных, чтобы выяснить это). Однако проблема с этим подходом состоит из нескольких частей. Для каждого запроса URL, обслуживаемого в Chrome, проверка URL происходит через сервер Google, что добавляет дополнительную зависимость от серверов Google, время возврата сети и требование поддерживать высокую доступность для проверки URL-адресов для всех URL-адреса, запущенные из браузеров Chrome по всему миру.

Поскольку эти данные меняются не очень часто (могут быть обновлены примерно через час), Chrome мог подумать о том, чтобы объединить все данные вредоносных сайтов в качестве фильтра цветения, и Google может периодически синхронизировать эти данные с клиентами (вредоносные сайты меньше по сравнению с полномасштабные веб-сайты.). Когда пользователь открывает URL-адрес в Chrome, он проверяет фильтр цветения, если URL-адрес не существует, это безопасно. Если он существует, то фильтр Блума не уверен в этом, поэтому трафик идет на сервер Google для проверки (этот трафик будет намного меньше по сравнению с маршрутизацией всего трафика).

person Aditya    schedule 15.08.2020

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

Чтобы убедиться в ложных срабатываниях, Google либо использует хеширование, либо отправляет эти URL-адреса на свои серверы, чтобы перепроверить URL-адрес, устраняя нагрузку на отправку всех URL-адресов на свои серверы.

person Aditya    schedule 09.02.2014