Код документа: RU2678643C1
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к области компьютерной технологии и, более конкретно, к способу и устройству ограничения пакетных запросов на услугу.
УРОВЕНЬ ТЕХНИКИ
Поставщик услуг имеет выгоды от мощных возможностей поддержки бизнеса, обеспечиваемых посредством Интернета, в то же время сталкиваясь с агрессивными злонамеренными атаками из открытой сети. Большой класс атак среди таких атак осуществляет доступ к услугам посредством быстрых и повторяющихся исполнений с использованием программ пакетной обработки, таких как пакетная регистрация, пакетное размещение постов, 'лакировка' рейтингов, внесение путаницы и копирование web-сайтов с использованием поискового робота, тем самым имперсонифицируя ряд поведений пользователей с помощью таких пакетных операций. Взяв программы пакетной регистрации в качестве примера, если поставщики услуг не реализуют ограничения, программа пакетной регистрации может зарегистрировать тысячи подложных пользователей за один час посредством параллельного исполнения на персональном компьютере. Эти подложные пользователи могут затем использоваться для получения незаконных выгод.
Запросы на такие пакетные операции потребляют большое количество вычислительных ресурсов поставщиков услуг, при этом привнося неэффективность потоков данных, снижение производительности обслуживания и затруднение доступа со стороны нормальных пользователей. Для того чтобы гарантировать надлежащее функционирование услуг, поставщикам услуг приходится учитывать то, как ограничить такие виды пакетных операций (что часто упоминается как "anti-brush"), с тем чтобы ресурсы услуг могли служить нормальным пользователям.
На текущий момент, общие решения для ограничения пакетных операций (anti-brush) включают в себя следующие методы:
1. Ограничения на сетевом уровне: реализация контроля согласно политикам в отношении частоты запросов на сетевом уровне, например,
(1) Определяют конкретные ограничения согласно условиям доступа для IP-адресов и портов, такие как количество разрешенных доступов в единицу времени;
(2) Определяют политики и правила согласно заголовку HTTP, такие как ограничение количества IP-адресов, с которых к URL осуществляется доступ, в единицу времени, и оценивают информацию, такую как куки-файл (cookie).
(3) Изменяют настройки терминала-браузера для блокирования повторяющихся запросов, используя такие технологии, как Cookie change и Javascript, например, ограничение на http_referer на предмет противодействия навязчивости (anti-leech), ограничение на http_user_agent на предмет противодействия поисковому роботу (anti-crawler), ограничение на request_method на предмет метода и ограничение на http_cookie на предмет запрещения посетителей, которые не несут корректные куки-файлы.
2. Ограничения на прикладном уровне: активный контроль поведения при доступе через программы, например,
(1) Ограничение на количество доступов в единицу времени;
(2) Задание временного интервала между доступами;
(3) Задание времени блокировки;
(4) Задание черного списка и/или белого списка;
3. Защита доступов от автоматических программ посредством обратного теста Тюринга (CAPTCHA, верификационный код и т.п.). В общем случае, ставится открытый вопрос, который может быть без труда распознан людьми, но навряд ли будет разгадан машиной. Пакетные запросы из программ ограничиваются обязательными требованиями, чтобы люди отвечали на вопросы. На текущий момент, популярные тесты с верификационным кодом включают в себя распознавание изображений, ответ на произвольные вопросы, верификация голоса и т.п.
4. Верификация с помощью коротких сообщений (SMS), заключающаяся в том, что верификационный код посылается от услуги на мобильный телефон пользователя, и от пользователя требуется правильно ввести этот верификационный код для завершения запроса.
В вышеперечисленных методах имеется много недостатков, и далее они вкратце анализируются:
Ограничения на частоту доступов, реализованные на сетевом уровне, могут быть легко обойдены, и, в то же время, для них характерен очень высокий показатель ложного блокирования. Например, на текущий момент имеется большое количество архитектур трансляции сетевых адресов (NAT), и IP-адреса посетителей, собираемые на сервере, являются одними и теми же; таким образом, не является осуществимым реализовать ограничения на основе частоты доступов. Ограничения можно легко обойти, используя технологию прокси (proxy), либо посредством подлога http_cookie и IP-адреса. Кроме того, правила контроля должны быть сконфигурированы для активного контроля доступа через программы, и является трудным контролировать корректность правил и задавать подходящие черный список и/или белый список. Ненадлежащие правила контроля могут снизить полезность услуги. Например, полезность услуги может быть снижена в некоторой степени, когда задается количество доступов в единицу времени.
Проверка по верификационному коду является наиболее общепринятым и проработанным решением в настоящее время, и она широко используется. В то же время, допустимость верификационного кода зависит от того, может ли машина эффективно распознавать вопросы и отвечать на них. Делание задачи переусложненной приводит к неудобствам для пользователя. Однако, с эволюцией машинного интеллекта задачи с низкой сложностью не могут быть эффективным препятствием выполнению машиной автоматического распознавания. Прогресс технологии оптического распознавания символов (OCR) снижает эффективность вида тестов на основе распознавания изображений для искаженных символов. Прогресс машинного интеллекта уменьшает надежность тестов в плане автоматического ответа на вопросы машиной. Кроме того, верификационный код понижает качество пользовательского восприятия и вызывает огромные неудобства для людей, страдающих дальтонизмом, или пожилых людей.
Основывающаяся на SMS аутентификация имеет очень высокую надежность и, в то же время, имеет много ограничений, которыми от пользователя требуется привязка его/ее мобильного телефона и которые могут привести к дополнительным затратам, связанным с посылкой сообщений, и выполнению пользователем обременительных операций.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В виду вышесказанного, настоящим изобретением предлагаются способ и устройство для ограничения пакетных запросов на услугу, обеспечивающие ограничение на запрашивание услуги пакетным образом и способствующие преодолению некоторых из недостатков, имеющихся в уровне техники.
Для достижения цели, поставленной выше, согласно аспекту настоящего изобретения предложен способ ограничения пакетных запросов на услугу.
Способ ограничения пакетных запросов на услугу согласно изобретению содержит этапы, на которых: принимают посредством сервера информацию о запросах услуги, посланную терминалом; отправляют посредством сервера на терминал расчетный вопрос, причем расчетный вопрос требует большее количество вычислительных ресурсов терминала, чем вычислительных ресурсов сервера; принимают посредством сервера от терминала результат расчета по расчетному вопросу и верифицируют результат расчета; если результат расчета является правильным, предоставляют услугу на терминал, в противном случае, отклоняют предоставление услуги на терминал.
В необязательном порядке, расчетный вопрос включает в себя расчетный вопрос касаемо потребления памяти терминала.
В необязательном порядке, сервер посылает на терминал данные множества сегментов данных в памяти сервера перед отправкой расчетного вопроса на терминал. Расчетный вопрос включает в себя запрашивание терминала предоставить данные в заданном сегменте данных из множества сегментов данных.
В необязательном порядке, расчетный вопрос включает в себя расчетный вопрос касаемо потребления сетевых ресурсов терминала.
В необязательном порядке, сервер сохраняет множество сетевых адресов, для каждого из которых поддерживается файл, и сохраняет значение цифрового дайджеста такого файла из множества сетевых адресов перед отправкой расчетного вопроса на терминал. Расчетный вопрос включает в себя запрашивание терминала предоставить значение цифрового дайджеста файла исходя из заданного сетевого адреса во множестве сетевых адресов.
Согласно другому аспекту настоящего изобретения предложено устройство для ограничения пакетных запросов на услугу.
Устройство для ограничения пакетных запросов на услугу согласно изобретению содержит: модуль приема для приема информации о запросах услуги, посланную терминалом; модуль составления вопросов для отправки на терминал расчетного вопроса, причем расчетный вопрос требует большее количество вычислительных ресурсов терминала, чем вычислительных ресурсов сервера; модуль верификации ответа для того, чтобы принимать от терминала результат расчета по расчетному вопросу и верифицировать результат расчета, если результат расчета является правильным, возвращать на терминал информацию, указывающую, что верификация пройдена, в противном случае, возвращать на терминал информацию, указывающую, что верификация не пройдена.
В необязательном порядке, расчетный вопрос включает в себя расчетный вопрос касаемо потребления памяти терминала.
В необязательном порядке, устройство дополнительно содержит модуль передачи данных памяти для передачи на терминал данных множества сегментов данных в памяти сервера. Расчетный вопрос включает в себя запрашивание терминала предоставить данные в заданном сегменте данных из множества сегментов данных.
В необязательном порядке, расчетный вопрос включает в себя расчетный вопрос касаемо потребления сетевых ресурсов терминала.
В необязательном порядке, устройство дополнительно содержит модуль сохранения сетевых адресов для сохранения множества сетевых адресов, для каждого из которых поддерживается файл, и для сохранения значения цифрового дайджеста такого файла из множества сетевых адресов. Расчетный вопрос включает в себя запрашивание терминала предоставить значение цифрового дайджеста файла исходя из заданного сетевого адреса во множестве сетевых адресов.
В соответствии с техническим решением согласно настоящему изобретению, сервером, предоставляющим услугу, ставится расчетный вопрос терминалу, запрашивающему эту услугу. Вычислительные ресурсы, требующиеся для расчетного вопроса, являются асимметричными для сервера и терминала. Для терминала необходимо выдать решение по вопросу перед дальнейшим получением услуги согласно предложенному способу, каковое ограничение не может быть обойдено. Не слишком много вычислительных ресурсов будет потребляться для легитимного терминала, который просто запрашивает услугу один раз или несколько раз, так что доступность услуги не будет снижена. С другой стороны, вычислительные ресурсы будут эффективно пожираться для терминала, который использует программу для выполнения злонамеренных пакетных запросов, так что для терминала становится затруднительным продолжать запрашивание. Кроме того, настоящее техническое решение также избегает недостатков, связанных с проверкой или аутентификацией терминала с помощью верификационного кода, SMS и т.п. в предшествующем уровне техники.
ПЕРЕЧЕНЬ ФИГУР ЧЕРТЕЖЕЙ
Фигуры чертежей используются для лучшего понимания настоящего изобретения и не налагают ненадлежащих ограничений на настоящее изобретение.
Фиг. 1 - блок-схема основных этапов способа ограничения пакетных запросов на услугу согласно варианту осуществления настоящего изобретения;
Фиг. 2. - блок-схема основных модулей устройства для ограничения пакетных запросов на услугу согласно варианту осуществления настоящего изобретения;
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Иллюстративные примеры настоящего изобретения будут описываться ниже со ссылкой на сопровождающие чертежи, на которых различные подробности примеров изобретения включены для облегчения понимания, и их следует считать просто иллюстративными. Соответственно, специалисту должно быть понятно что различные изменения и модификации могут быть выполнены по отношению к описанным здесь вариантам осуществления, не выходя при этом за рамки объема и существа изобретения. Помимо этого, в целях ясности и краткости изложения, описания известных функций и структур опущены в нижеследующем описании.
В примерах настоящего изобретения ряд запросов, выполняемых инициатором пакетных запросов в единицу времени, естественным образом ограничиваются посредством увеличения потребления ресурсов для одиночного ресурса из программы инициатора пакетных запросов. В способе ограничения пакетных запросов на услугу согласно настоящему варианту осуществления поставщик услуг задает вопрос запросчику услуги, и программа запросчика услуги должна потреблять вычислительные ресурсы (CPU, память, сетевые ресурсы и т.д.), чтобы ответить на вопрос. Было бы предпочтительно, чтобы сложность вопроса проектировалась в пределах разумного диапазона, с тем чтобы потребление ресурсов на клиенте контролировалось в приемлемом диапазоне, учитывающем вычислительный масштаб отдельного одиночного нормального пользователя, чтобы, в то же время, было трудно выполнять пакетные запросы, поскольку потребность в ресурсах возрастает в несколько раз, особенно в отношении параллельных пакетных запросов. Вычислительные ресурсы, требующиеся для созданного вопроса, являются асимметричными для запросчика (стороны, которая отвечает на вопрос) и сервера (стороны, которая выполняет проверку), при том что потребление ресурсов для проверки является малым, чтобы производительность сервера не снижалась. Вышеуказанные асимметричные вопросы могут проектироваться на основе асимметричного алгоритма (такого как факторизация больших чисел) или асимметрии информации (например, от запросчика услуги требуется скачать и вычислить значение дайджеста файла, которое известно поставщику услуг).
Беря в качестве примера пользовательскую регистрацию, выполняемую пакетным образом, злонамеренная регистрационная программа может без труда выполнить 256 пакетов потоков обработки параллельно на персональном компьютере в обычной конфигурации, где каждый поток потребляет 1 Мбайт памяти, каждая регистрация потребляет 8 кбайт передачи сетевого трафика, каждый поток регистрирует одного пользователя в одну секунду и, соответственно, регистрирует 256 × 60=15360 новых пользователей в одну минуту. Потребление ресурсов составляет 256 × 1 Мбайт памяти и 256 × 8 кбайт=2 Мбайт сетевого трафика, соответственно.
С помощью данного способа, поставщик услуг требует, чтобы запросчик ответил на вопрос для каждой регистрации, и требующееся потребление ресурсов вычисляется равным 100% нагрузки на CPU на 2 секунды, 1 Гбайт памяти и 1 Мбайт передачи сетевого трафика. Касаемо же вышеприведенного примера, если атакующая сторона по-прежнему инициирует 256 потоков, лишь максимум 30 пользователей могут быть успешно зарегистрированы за 1 минуту, и потребление ресурсов будет составлять 100% нагрузки на CPU, 256 Гбайт памяти и 256 Мбайт передачи сетевого трафика, соответственно.
Фиг. 1 - блок-схема основных этапов способа ограничения пакетных запросов на услугу согласно варианту осуществления настоящего изобретения. Способ выполняется сервером, имеющимся у поставщика услуг, описанного выше.
Этап S11: Сервер принимает информацию запроса услуги, отправленную терминалом. Здесь терминал есть клиентское программное обеспечение, используемое пользователем. Информация запроса услуги может посылаться нормальным пользователем или злонамеренным пользователем.
Этап S12: Сервер посылает расчетный вопрос на терминал. Как описывалось выше, расчетный вопрос требует большего количества вычислительных ресурсов терминала, чем количество вычислительных ресурсов сервера, чтобы реализовать надлежащее потребление вычислительных ресурсов терминала.
Этап S13: Сервер принимает от терминала результат расчета по вопросу.
Этап S14: Сервер верифицирует, является ли принятый результат расчета правильным. Если он правильный, процесс переходит на этап S15, на котором услуга предоставляется на терминал. В противном случае, процесс переходит на этап S16, и предоставление услуги терминалу отклоняется. Очевидно, соответствующая информация указания будет послана на терминал, вне зависимости от того, является ли результат правильным.
Чтобы гарантировать асимметрию потребности в ресурсах для ответа на вопрос и проверки, верификационный вопрос должен быть аккуратно составлен, что описывается исходя их трех аспектов потребления ресурсов.
Потребление вычислительных ресурсов CPU: есть различные асимметричные алгоритмы, такие как факторизация больших чисел, так чтобы вычислительная сложность для ответа на вопрос могла контролироваться посредством количества разрядов целевого числа. Потребности в вычислительных ресурсах являются асимметричными для ответа на вопрос и проверки, и расходы на проверку являются совершенно малыми (выполняется ограниченное число операций умножения). В фактической системе могут попеременно использоваться несколько алгоритмов для дополнительного повышения безопасности.
Потребление ресурсов памяти: асимметрия потребности в ресурсах может достигаться на основе асимметрии информации посредством следующего способа: для поставщика услуг необходимо произвольным образом выбрать только один сегмент данных в качестве вопроса, а также только этот сегмент данных необходимо сохранить (и даже только дайджест этого сегмента данных требуется сохранить); в то же время, для запросчика услуги нужно будет сохранять все из сегментов данных без знания о содержимом данных, исходя из которого поставщиком услуги запрашивается разгадать сегмент данных. Таким путем, сервер может посылать разные сегменты данных, содержащиеся в его памяти, на терминал несколько раз, и затем содержанием вопроса, который ставится перед терминалом, может быть "какие данные из сегмента X", где X представляет заданный сегмент. Можно видеть, что благодаря предлагаемому способу потребление ресурсов памяти является асимметричным для сервера и терминала, запрашивающего услугу.
Потребление сетевых ресурсов: может быть создана база данных, в которой хранятся ряд ссылок на общедоступные файлы в Интернете, и цифровое значение дайджеста каждого файла вычисляется заблаговременно и сохраняется. Поставщик услуг выбирает файл произвольным образом во время верификации, и от запросчика услуги требуется скачать данный файл и вычислить его значение дайджеста, чтобы пройти верификацию.
Фиг. 2 является блок-схемой основных модулей устройства для ограничения пакетных запросов на услугу согласно варианту осуществления настоящего изобретения. Данное устройство может быть размещено в вышеупомянутом серверном устройстве в качестве программного обеспечения. Как показано на Фиг. 2, устройство 20 для ограничения пакетных запросов на услугу, главным образом, содержит: модуль 21 приема, модуль 22 составления вопросов и модуль 23 верификации ответа. Модуль 21 приема используется для приема информации запроса услуги, посланной терминалом; модуль 22 составления вопросов используется для отправки на терминал расчетного вопроса, причем расчетный вопрос требует большее количество вычислительных ресурсов терминала, чем вычислительных ресурсов сервера; и модуль 23 верификации ответа используется для того, чтобы принимать от терминала результат расчета по вопросу и верифицировать этот результат, если результат расчета является правильным, возвращать на терминал информацию, указывающую, что верификация пройдена, в противном случае, возвращать на терминал информацию, указывающую, что верификация не пройдена.
Расчетный вопрос может включать в себя расчетный вопрос для потребления памяти терминала. Вследствие этого, устройство 20 дополнительно содержит модуль передачи данных памяти для передачи в терминал данных множества сегментов данных в памяти серверного устройства. Расчетный вопрос может включать в себя запрашивание терминала предоставить данные в заданном сегменте данных из множества сегментов данных.
Расчетный вопрос может включать в себя расчетный вопрос для потребления сетевых ресурсов терминала. Вследствие этого, устройство 20 дополнительно содержит модуль сохранения сетевых адресов для сохранения множества сетевых адресов, для каждого из которых поддерживается файл, и для сохранения значения цифрового дайджеста такого файла из множества сетевых адресов перед отправкой расчетного вопроса на терминал. Расчетный вопрос может включать в себя запрашивание терминала предоставить значение цифрового дайджеста файла исходя из заданного сетевого адреса во множестве сетевых адресов.
В соответствии с техническим решением согласно настоящему изобретению сервером, предоставляющим услугу, ставится расчетный вопрос терминалу, запрашивающему эту услугу. Вычислительные ресурсы, требующиеся для расчетного вопроса, являются асимметричными для сервера и терминала. Для терминала необходимо выдать решение по вопросу перед дальнейшим получением услуги согласно предложенному способу, каковое ограничение не может быть обойдено. Не слишком много вычислительных ресурсов будет потребляться для легитимного терминала, который просто запрашивает услугу один раз или несколько раз, так что доступность услуги не будет снижена. С другой стороны, вычислительные ресурсы будут эффективно пожираться для терминала, который использует программу для выполнения злонамеренных пакетных запросов, так что для терминала становится затруднительным продолжать запрашивание. Кроме того, настоящее техническое решение также избегает недостатков, связанных с проверкой или аутентификацией терминала с помощью верификационного кода, SMS и т.п. в предшествующем уровне техники.
Базовый принцип настоящего изобретения был описан выше с комбинированием конкретных вариантов осуществления. В устройстве и способе по настоящему изобретению должно быть очевидно, что соответственные компоненты или этапы могут быть разложены на составляющие и/или перекомбинированы. Эти разложения или рекомбинации следует рассматривать в качестве эквивалентных решений по настоящему изобретению. Более того, этапы выполнения вышеописанной последовательности процесса могут естественным образом выполняться в вышеописанном порядке на временной шкале, но их выполнение в такой временной последовательности не является строго необходимым. Некоторые этапы могут выполняться параллельно или независимо друг от друга.
Вышеописанные варианты осуществления не накладывают ограничений на объем охраны изобретения. Специалистам должно быть понятно, что различные модификации, комбинации, подкомбинации и замены могут иметь место в зависимости от проектных требований и прочих факторов. Любые модификации, эквивалентные замены и усовершенствования в рамках существа и принципов изобретения следует считать включенными в объем охраны настоящего изобретения.
Изобретение относится к области компьютерной технологии. Технический результат - ограничение пакетных запросов на услугу, обеспечивающих ограничение на запрашивание услуги пакетным образом. Для этого предусмотрены этапы, на которых: принимают посредством сервера информацию о запросах услуги, посланную терминалом (S11); отправляют посредством сервера на терминал расчетный вопрос, причем расчетный вопрос требует большего количества вычислительных ресурсов терминала, чем вычислительных ресурсов сервера (S12); принимают посредством сервера от терминала результат расчета по расчетному вопросу (S13) и верифицируют результат расчета (S14), и если результат расчета является правильным, предоставляют услугу на терминал (S15), в противном случае, отклоняют предоставление услуги на терминал (S16). 2 н. и 8 з.п. ф-лы, 2 ил.