1. Закон: площадка для торгов должна обеспечить доступ любому аккредитованному участнику.
2. Практика: один из участников регистрирует какое-нибудь ООО «Ромашка», получает электронную подпись и начинает флудить тяжёлыми запросами площадку. Запросы включают криптографию, причём не самую быструю.
3. Стандартное противодействие: отключить его или временно заблокировать.
Как видите, пункты 1 и 3 — взаимоисключающие.
А мы так живём.
Итак, если аккредитованному участнику приходит блокирование доступа — при жалобе возникает большой штраф. Один запрос из миллиона заблокируем — сразу штраф за работу файрвола. Если это был пакет с юридически значимым действием.
Это логично, но идёт вразрез с вопросами защиты информации. Все существующие средства работают по принципу определения вредоносной составляющей трафика и её блокирования. Когда участники приходят на площадку и участвуют в аукционах — нельзя доверять системе фильтрацию, кого пустить, кого — нет. Все должны попасть на торги. Никакие алгоритмы не имеют права решить, кого не допускать на площадку. Подпись — это огромная криптограмма на 10 килобайт. По меркам веб-трафика — это одно из самых тяжёлых входящих сообщений (кроме закачки файлов). Используются стойкие алгоритмы, прожорливые на производительность.
Есть правила площадки. И если пользователи используют клиент-серверное приложение, и если они это делают в рамках регламента, то всё хорошо. Система может обрабатывать много торгов сразу.
Мы имеем право блокировать работу небраузерных клиентов. Они не соответствуют регламенту площадки. Находятся умельцы, которые создают альтернативное ПО, которое имитирует работу живого пользователя с помощью браузера, — и оно может создавать серию высокочастотных запросов серверу. [...]
Вторая идея: блокировать таким товарищам подпись. Есть подписи, выданные удостоверяющими центрами с быстрой связью, есть такими, которые сотрудничать не захотят. Но даже если удостоверяющий центр заблокирует подпись, это будет проблемой, потому что дальше ляжет жалоба в ФАС. А они вас за блокировку без технической экспертизы сильно накажут. Аккредитация на площадке тоже не может быть приостановлена — она по закону на три года, и нельзя её приостановить никак. Просто нет процедуры.
Теперь — почему надо с трудом обрабатывать каждый запрос. Дело в том, что запросы на цену или мониторинг ставятся в очередь обработки на горячую базу. Из-за одной десятитысячной секунды может возникнуть спор до суда. Запрос расшифровывается, дальше идёт исключительная блокировка, потом изменение в нескольких таблицах, потом обработка следующего запроса. Если ценовое предложение принять нельзя, то идёт процедура откатывания изменений (например, если предложение было больше текущей цены аукциона). Каждое решение имеет юридический статус.
Надо иметь полноценные логи каждого ценового предложения. Это накладывает ограничения на инфраструктуру, в частности — на возможность дробления базы и инкапсуляции её отдельных участков.
Анонимные запросы можно отбрасывать.
Подписанные надо обрабатывать.
Если они подписаны — это подача ценовых предложений, например. Первая идея — давать сессионные ключи, чтобы каждый раз не обрабатывать сложную аутентификацию. Пережили волну, борьба эскалировалась.