Какие способы защиты от шитпостинга существуют для децентрализованных систем?
Допустим, существует некоторый p2p чат, участники которого общаются между собой.
Атакующий автоматически заполняет чат огромнейшей кучей бессмысленной информации, мешая общению.
В случае, если бы это был централизованный чат, достаточно было бы просто добавить в эту систему капчу, что серьёзно усложнило бы такую задачу.
А что делать в деентрализованной системе? Существует ли какая-нибудь криптографическая капча, которая могла бы остановить поток бессмысленной информации? Как работают такие алгоритмы?
Во-первых, каждый узел может принимать не все сообщения (или не от всех узлов), а только от узлов с рейтингом не ниже заданного (например, выше 0.1) в сети доверия.
Во-вторых, допускать от одного узла не более 1 сообщения в 5 секунд (сделать защиту на уровне протокола, например 5, 10, 15 секунду и т.д.). Если юзер пишет чаще, то ПО должно придерживать до следующих 5-секунд. Если узел шлёт чаще допустимого протоколом, то назначать штрафные баллы (в автоматическом режиме) и игнорить, либо уведомлять юзеров, чтобы они снижали рейтинг узла-нарушителя. Т.е. лучше комбинировать оба метода.
Третьим методом может быть обязательство задавать соль (например md5-хэш) сообщения, и находить хэш-загадку (например, искать 10-байтный нонсенс при к-м sha1-отгадка будет в виде первых 2-3х нулей). Принимать только те мессаги, у к-х в комплекте прилагается правильные загадка, нонсенс и отгадка (или только нонсенс). Но тут нужно придумывать сбалансированную формулу, чтобы слабые клиенты не пострадали.
ixon, Конечно, указывайте критерии.
Например, не более 1 сообщения в 2 секунды и не более 1 линка в текстах сообщений на протяжении 10 секунд - считаем как нормального.
Иначе - автоматически в чёрный список на 1 минуту.
Каждый повтор события - умножаем ожидание на 2,3,5,8,11,перманентный бан.
Доработать клиент чата, чтобы несколько сообщений от одного пользователя склеивались в интерфейсе в одно.
Длинные сообщения (включая склееные) сворачивать до определенной высоты.
У свернутых сообщений показывать счетчик числа реальных сообщений, что в них влезли.
Недавно же на хабре один "погромист" любящий писать примерно вот так:
ну я понял
сейчас я тебе скажу
что я думаю об этом
потому что я дурак
и не хочу переучиваться
и писать по другому
ты должен страдать!
читая мой поток мыслей