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

С нежелательными письма борются по разному: обработкой содержания по
ключевым словам можно добиться определенных успехов, но точно определить
нужное письмо может только человек; большинство ISP обладают
blacklist'ами, но в основном эти листы уже потеряли свою актуальность,
зато часто обновляемые черные списки помогут уменьшить спам, но все это
зависит только от вашего провайдера; комплексные системы борьбы со
спамом - хороший выбор, но далеко не всегда эффективное значит бесплатное.

Хотелось бы обратить ваше внимание на свежие разработки на поле борьбы с
нежелательной почтой. Одним из свежих решений является Hashсash (см.ссылку в конце статьи), речь о этой технологии пойдет сегодня.

Общие сведения

Hashcash - это технология призванная решить проблему нелегальных массовых
рассылок. Она позволяет сделать электронную почту более надежной.
Hashcash - дружественная технология, которая должна использоваться
совместно с другими анти-спам технологиями для увеличения общего КПД
такой комплексной системы. Для повышения эффективности работы такой
системы необходимо, что бы после подтверждения hashcash письма другие
анти-спам технологии (например, обработка по ключевым словам) пропускали
данное сообщения, т.к. уже максимально гарантировано его надежность. В
свою очередь, для вас как отправителя использование hashcash
гарантирует прохождение вашего сообщения через остальные фильтры.

Технология HashCash реализуется в виде plugin'ов к почтовым клиентам,
которые добавляют hashcash-отметки к отправляемой почте. ПО hashcash
добавляет поле X-Hashcash: к заголовку исходящего письма. Далее следует
пример письма с hashcash-отметкой в заголовке:

From: Someone
To: Adam Back
Subject: test hashcash
Date: Thu, 26 Jun 2003 11:59:59 +0000
X-Hashcash: 0:030626:adam@cypherspace.org:6470e06d773e05a8

blah blah

-Someone

Конечно, спамеры тоже могут использовать hashcash, но рассылать массовые
письма уже не смогут, т.к. для генерации каждой hashcash-отметки уходит
некоторое процессорное время. Вам, как обычному пользователю, обладающему
настольным компьютером или ноутбуком, нет необходимости волноваться, что
ваша корреспонденция будет отправляться часами или днями, т.к. вы не
отсылаете "много" писем, ваша почта перед отправкой задержится максимум
на несколько секунд даже на старом железе. Тем не менее, это остановит
спамеров: они хотят отправлять свыше 10000 писем в минуту по DSL каналу,
оплаченному ворованной кредитной картой до того как аккуант прикроют.
Одна из причин неуловимости и эффективности массовых рассылок -
кратчайшие промежутки времени, необходимые для реализации, и это
преимущество отбирается у спамеров.

Принцип действия

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

Криптографические хэш-функции, такие как SHA1, разрабатываются
максимально защищенными от взлома. Это означает, что очень тяжело
найти SHA1(x) == SHA1(y), где x != y. Достоверно известно, что для SHA1 возможно 2^160 (2 в 160 степени)
комбинаций различных значений y до того пока SHA1(y) == SHA1(x) для
заданного значения x. Hashcash использует для своих целей побочный эффект
хэш-функций - ресурсоемкость.

Примеры

На сайте проекта можно скачать ПО hashcash, с помощью которого можно
опробовать технологию.

# tar xvzf hashcash-32.tar.gz
# cd hashcash

Теперь мы можем создать отметку для какого-либо получателя:

# ./hashcash -m -r test@test.org
time estimate: 1 seconds (732 milli-seconds)
hashcash token: 0:040725:test@test.org:5caa5a9499427871e6bec8b3

В данном случае '-m' означает создать отметку, а '-r' указывает адрес
получателя. Как видите, на генерацию (по умолчанию, 20 бит) было
затрачено менее секунды. Так же можно
рассчитать сколько будет генерироваться n-битная отметка.

# ./hashcash -s -b 32
time estimate: 2929 seconds (49 minutes)

32 бита будут считаться уже 50 минут.

Для проверки отметки, используются следующие команды:

# ./hashcash -cd -r test@test.org
enter stamps to check one per line:
0:040725:test@test.org:5caa5a9499427871e6bec8b3

matched token: 0:040725:test@test.org:5caa5a9499427871e6bec8b3
check: ok

Все отлично, отметка верна. Если вы попробуете проверить отметку еще
раз, то получите 

skipped: spent token

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

Некоторые аспекты

Одна отметка не может быть использована для множества получателей, т.к.
каждая отметка верна только один раз и только для одного получателя.
Отметка подобна подписи, которая идентифицирует получателя. Если
отметка сгенерирована для joe@foo.com, тогда все получатели отличные от
joe@foo.com отвергнут письмо, т.к. оно фактически не адресовано им.

Спамеры не могут изменить адрес получателя для которого была
сгенерирована метка, потому что сама метка генерируется на основе адреса
получателя. Если просто изменить поле 'To:' письма, то такое сообщение
просто не пройдет этап подтверждения метки.

Так же не возможно использовать одну и ту же отметку что бы отсылать
множество писем на один адрес: для выполнения этого правила каждый
получатель сохраняется в специальной базе данных, если новое сообщение
будет с уже полученной меткой оно отвергается.

Спамеры не могут использовать и "старые" отметки, которые были
сгенерированы за ранее и еще не разу не использовались, т.к.
hashcash-отметки имеют срок жизни. По этому у спамеров нет возможности
сгенерировать метки для всего спам-листа за ранее потратив на это
одну-две недели, а потом разослать письма за несколько десятков минут по
DSL каналу. Такие письма будут отвергнуты, т.к. у hashcash-отметок истек
срок.

Технические особенности

При видимой гибкости и эффективности технологии hashcash, она обладает
четкой сферой применения. Существует множество сервисов, где применение
технологии невозможно, например, легальные тематические рассылки от
сабскрайба или мэйллиста. Здесь возникает аналогичная проблема как и у
спамеров, нет возможности генерировать сотни
миллионов отметок, поэтому заверить с помощью hashcash массовые рассылки вообще невозможно, что
скорее не минус, а особенность технологии.

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

Практически аналогичные проблемы с USENET, но при всем этом, hashcash и
не имел цели быть панацеей от спама, которая работает при любых
условиях. Сами разработчики, говорят что, например, в USENET существует
более эффективный способ защиты от спама - NoCeM (см. ссылки в конце
статьи).

Поддержка

Hashcash поддерживается SpamAssassin начиная с версии 2.70. SpamAssassin
- популярная пользовательская и ISP'шная анти-спам система для
проверки hashcash-отметок вашей корреспонденции. SpamAssassin
так же поддерживает фильтрацию по ключевым словам (и другие техники) для
отсеивания спама. Если в заголовках ваших писем есть поле
'X-Spam-Checker-Version', значит это письмо было обработано системой
SpamAssassin.

Hashcash так же поддерживается TMDA и CAMRAM. Все это означает,
что использование hashcash в ваших письмах теоретически уменьшит вероятность
того, что ваше сообщение не будет доставлено, или будет доставлено в
папки для "подозрительной" почты, которые используются
SpamAssassin, TMDA и CAMRAM. Количество систем поддерживающих hashcash постоянно
увеличивается.

Выводы

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

Ссылки:

http://hashcash.org - официальный сайт проекта, хорошая документация,
как для пользователей, так и для разработчиков. Приемы реализации
технологии.

http://camram.org
http://wiki.tmda.net/TmdaHashCashHowto

http://nocem.org
- технология для борьбы со спамом в USENET

Check Also

Стойкий админ. Строим отказоустойчивые сети в Linux с keepalived

VRRP, несмотря на неясную ситуацию с патентами Cisco, остается стандартным протоколом для …

Оставить мнение