Вы не поверите, но проблему спама можно решить! Более того — для этого не нужно менять структуру Интернета, вводить новые почтовые протоколы или принимать решения о борьбе с нежелательной почтой на законодательном уровне. Достаточно использовать одну простую, но эффективную идею. О ней-то и пойдет речь.
На мой адрес приходят десятки спамерских писем ежедневно. Я не получаю ни одного из них. Вместо этого они складываются в особый каталог на сервере, называемый карантинной зоной, и на каждое сообщение отправляется автоматический ответ (так называемый запрос подтверждения), выглядящий примерно так:
Ваше сообщение, датированное 20.06.2003, 00:18:31, не было доставлено. Для того, чтобы произвести доставку, Вам следует отправить пустое письмо на адрес voyager@noo.ru, содержащее в поле «Тема:» строку «SEND_12345#». Это одноразовая процедура — в дальнейшем (после подтверждения) Ваши письма будут проходить без задержек.
Вот, собственно, и все. При получении письма с указанной строкой специальная программа (почтовый робот) извлекает сообщение из карантинной зоны и отправляет мне, а адрес отправителя автоматически добавляется в «список разрешенных» — теперь вся почта, приходящая с него, будет доставляться без лишних вопросов, и подтверждать доставку повторно не потребуется. А спам фильтруется почти на 100%. Почему? Очень просто — во-первых, спамеры почти никогда не указывают настоящих обратных адресов в своих сообщениях, так что моих запросов они даже не получают; во-вторых, если и получают, то ленятся отвечать — у меня система работает уже почти год, за это время подтверждено было два или три спамерских письма. Это достаточно понятно — когда рассылаешь сотни тысяч сообщений в день, заботиться о доставке ОДНОГО просто невыгодно — время дороже.
Полагаю, идея ясна. Дальнейшее изложение проще вести в форме «Вопрос-Ответ» (FAQ), к которой я и перехожу.
Допустим, я пишу со своего защищенного адреса на другой защищенный. Антиспамовая система получателя генерирует запрос подтверждения и отправляет его на мой адрес. Но мой-то адрес тоже защищен! Он создаст свой запрос подтверждения и отправит его на адрес получателя… И так далее до бесконечности — а письмо так и не будет доставлено. Что за ерунда?
Действительно, есть такая потенциальная проблема, которая решается двумя путями: нужно либо сделать так, чтобы при отправке любого сообщения адрес получателя автоматически заносился в «список разрешенных», либо использовать в качестве обратного незащищенный (приватный) адрес. Это относительно безопасно, так как вряд ли вы будете сами писать спамеру. Второй способ удобен тем, что приватный адрес можно сообщать своим знакомым, не заставляя их возиться с доставкой сообщений, да и вообще вести по нему всю свою переписку. Однако в этом случае существует опасность, что приватный адрес все-таки как-то попадет в руки к спамерам, и они смогут обходить фильтрацию. Что, впрочем, тоже не столь страшно — можно завести новый приватный адрес, а старый тоже поставить на защищенный режим.
А не произойдет ли аналогичное зацикливание, если в ответ на автоматический запрос придет также автоматическое сообщение «нет такого адреса»?
Не должно — ответ антиспамовой системы на сообщение об ошибке будет отправлен почтовому серверу (а не несуществующему получателю), а он его с гарантией проигнорирует, ибо почтовые сервера — существа неразговорчивые.
Впрочем, на всякий случай можно сделать так, чтобы обратный адрес запроса подтверждения указывал на какой-нибудь ящик, сообщения с которого автоматически удаляются. Создать такой ящик можно на каком-нибудь бесплатном почтовом сервере, соответствующим образом настроив фильтры.
Что делать с санкционированными массовыми рассылками — например, с рассылками Subscribe.Ru?
Это тоже легко решается — можно либо подписать свой приватный адрес (если вы доверяете службе, осуществляющей рассылку), либо настроить систему фильтрации на пропускание писем по каким-то ключевым словам — скажем, обратному адресу службы или названию рассылки. Последнее может быть опасным, если система рассылок широко известна — когда-то мне пришло несколько спам-писем, прошедших через фильтр, поскольку их обратные координаты копировали координаты Subscribe.Ru. Но сейчас Subscribe.Ru ввел уникальные идентификаторы пользователей , так что этого можно не бояться — главное, правильно настроить систему.
Ну, допустим, ваша идея получит распространение. Что тогда помешает спамерам автоматически обрабатывать запросы подтверждения?
Дело в том, что сам вид запросов может легко меняться (от письма к письму и от пользователя к пользователю). Вытаскивать из него нужную информацию (код, вроде вышеприведенного SEND_12345#) с помощью какой-нибудь программы не так просто — методы анализа текста еще не столь развиты, да и вряд ли получат достаточное развитие в ближайшее время. К тому же, в случае обнаружения такого противодействия, можно перейти на передачу кода в виде картинки, на которой он написан искаженным, но читаемым (для человека) шрифтом. Эта технология используется сейчас многими почтовыми службами для защиты от автоматического создания почтовых ящиков. Да и вообще — не все действия можно автоматизировать!
А что если какой-нибудь спамер в качестве обратного адреса для своих рассылок подставит e-mail своего соседа — его же завалит запросами подтверждения! Вам его не жалко?
А зачем спамеру подставлять чей-то реальный адрес? Неужели он надеется на то, что сосед подтвердит все 100000 доставок? Так или иначе, от отправки сотни тысяч сообщений на один адрес каким-нибудь сумасшедшим никто не застрахован. Но если адрес защищен, то вы не получите ни одного письма из этой сотни тысяч. Пустячок, а приятно!
Мои корреспонденты — люди занятые и не очень компьютерно-грамотные, им некогда разбираться с вашими запросами и всякие подтверждения слать! Время — деньги, и лишние задержки никому не нужны.
Во-первых, процедура подтверждения, как уже отмечалось, разовая, и применяется только в том случае, если неизвестный ранее человек пишет вам письмо по адресу, взятому из открытых источников. Ваш начальник или партнер по бизнесу, скорее всего, с ней даже не столкнется — если вы дадите ему приватный адрес или заранее пропишете его координаты в «список разрешенных». Во-вторых, она не такая уж и сложная — что может быть проще перенести строчку из письма в «тему» и отправить результат по указанному адресу?
Что касается времени доставки сообщения, которое действительно увеличивается — здесь следует заметить, что e-mail — это принципиально асинхронная система связи, не предполагающая срочного ответа — тем более на письма от неизвестных людей. Мне кажется, что это приемлемая плата за полное решение проблемы спама.
Впрочем, я сталкивался с еще одной трудностью — многие люди просто ленились производить подтверждение. Мне сложно объяснить логику человека, которому было не лень набивать письмо в несколько килобайт, а потом лень подтверждать его доставку (учитывая элементарность этой операции), но с этим тоже можно бороться — например, я отправляю ДВА запроса — один сразу по получении, а другой — через несколько дней. Помогает!
Ну, убедили. Хочу такую систему! Где взять?
Вот с этим — основная проблема. Несмотря на простоту идеи, ее достойных реализаций довольно мало. Но некоторые все же имеются.
Так, например, в статье Александра Никитина (MetaMal’а) «Эффективный способ борьбы со спамом» рассказывается, как реализовать очень близкую к описанной систему, не используя вообще никакого дополнительного софта, кроме почтового клиента (или веб-интферфейса бесплатных почтовых служб). Довольно удобно и не очень сложно.
Далее, не так давно появилась программа WinAntiSpam, реализующая ту же идею на стороне пользователя. Она встраивается между почтовым клиентом и сервером и автоматически осуществляет фильтрацию, ведет «список разрешенных» и т.д. Когда-то программа распространялась бесплатно, сейчас она продается за 5 долларов, триальную версию можно найти на сайте программы, а ее обзор, написанный Сергеем Голубицким, можно прочитать здесь.
Существует несколько веб-сервисов, работающих по той же схеме, например, spamarrest и goodbyespam. Они предоставляют тридцатидневный бесплатный триал, а потом просят некоторое количество денег — порядка трех долларов в месяц.
Если есть возможность направить почту через какой-нибудь сервер, на котором можно запускать собственные скрипты, то несложно написать программу, которая будет заниматься фильтрацией на стороне этого сервера. Моя собственная разработка так и функционирует, однако сделать этот подход массовым не представляется возможным — сервера есть далеко не у всех. Впрочем, если кого-нибудь моя поделка заинтересует — пишите, вышлю исходники (это Perl-скрипт), хотя ввиду его сырости и сложности в настройке, на мой взгляд, проще написать свою программу, чем мучаться с моей.
Было бы здорово, если бы началась разработка аналогичной системы для пользователя на принципах open source, но пока я о подобном не слышал. Также хочется надеяться, что в ближайшем будущем Интернет-провайдеры и серверы бесплатной почты будут предоставлять подобные услуги, но пока этого нет. Возможно, они просто еще не знают об этой идее?
Так или иначе, фильтрация с запросом подтверждения постепенно реализуется в самых различных формах. Уже сейчас есть из чего выбирать и с помощью чего можно реально решить эту «неразрешимую» проблему. Добро пожаловать в мир, свободный от спама!
Против спама нет приема?..