Электронные марки

Термины   28 мая 2013  Автор статьи:  
geekbrains.ru/

Здравствуйте, дорогие друзья. В данной статье я расскажу про инновационный способ борьбы со спамом — электронные марки.

Введение

Сегодня очень многие сервисы в сети предоставляются пользователям бесплатно, хотя провайдер сервиса вкладывает деньги в их поддержку. В ряде случаев такая щедрость привела к злоупотреблению.
Основным примером является электронная почта, где в результате вырос спам бизнес. Другими примерами злоупотребления служит отправка URL в индексирующие системы или создание бесплатных аккаунтов в Yahoo или Hotmail.
Чтобы оценить масштаб и сложность проблемы спама, оценим некоторые статистики. В феврале 2003 года AOL сообщил, что их система борьбы со спамом обнаруживала по 780 000 000 входящих спам-писем в день от 27 миллионов пользователей. В 2012 году mail.ru совместно с kaspersky заявляют о больших цифрах:
Статистика по спаму 2012
Сегодня рассылка спама особенно дешева для пользователей. Если набрать в Google «массовая рассылка», то можно найти организации, которые разошлют Ваше письмо по миллиону адресов за 6 тысяч рублей.
Таким образом, спам создает значительные убытки компаниям, которые предоставляют бесплатные сервисы, а электронные марки могут стать эффективным способ решение этой проблемы.

Основные принципы

Для простоты изложения, я буду рассматривать спам только для электронной почты, хотя методы применимы в той же степени и для других сервисов. Мы можем потенциально уменьшить количество спама, заставляя отправителей приложить к электронной почте доказательство того, что отправитель выполнял длительные вычисления. Однако лучше сделать нагрузку на память, что более удобно для людей с маломощными компьютерами. Также возможно использовать тест Тьюринга для доказательства того, что отправитель – человек. Кроме того, мы могли бы просто брать плату. Во всех этих случаях у нас были бы доказательства того, что отправитель понес некоторые затраты для отправки сообщения.
В данной курсовой работе назовем любые такие доказательства электронной маркой. Основная идея марок не зависит от того какой именно вид затрат понес отправитель. Во всех этих схемах важно, что отправитель не может использовать одну и ту же марку для нескольких сообщений. В прошлом это достигалось за счет того, что марка создавалась на основе сообщения. Например, на основе таких параметров как время отправки, имя получателя или тело сообщения. К сожалению, это означало, что отправитель должен понести расходы перед тем как отправить его в систему доставки. Таким образом, отправивший человек должен ждать перед тем, как письмо будет отправлено. Следовательно, он не может отключиться от сети, пока не выполнятся вычисления. Такой подход ограничивает сложность выполняемых вычислений, так как пользователь не может ждать слишком долго, следовательно, мы не сможем должным образом влиять на спамеров.
Для решения проблемы ожидания был придуман сервер электронных марок. Вводя такие сервера, мы даем возможность пользователям приобрести марки независимо от конкретного сообщения. На сервере электронных марок также содержится база данных марок, и получатель обращается к серверу, чтобы проверить марку или обновить ее состояние. Работа таких серверов напоминает обычные почтовые марки. Введение серверов позволяет обеспечить три ключевых преимущества:

  • Асинхронность: отправители могут нести расходы (например, выполнять вычисления) задолго до составления или отправки электронной почты (возможно, ночью). Это делает весь механизм гораздо менее навязчивым для пользователей, и, следовательно, более вероятно, будет приемлемым для сообщества пользователей.
  • Запасы: поскольку марки теперь не зависят от того, когда они будут применяться, то пользователи могут поддерживать запас электронных марок для использования в будущем. Они могли бы также приобрести такой запас из других источников, например, в комплекте с программным обеспечением.
  • Возврат: наличие серверов электронных марок позволяет ввести понятие «Счет» для пользователя. Это обеспечивает удобства для отправителя, а именно, позволяет управлять запасами марок. Кроме того, это также позволяет ввести особенность: если получатель такого письма считает (исключительно по своему личному усмотрению), что полученное им сообщение не является спамом, марка возвращается к отправителю. Возврат электронных марок является мощным инструментом. Если мы сможем добиться того, что большинство марок по электронной почте будет возвращено, то пользователям придется очень редко добывать новые марки, тогда можно будет еще больше увеличить цену электронной марки до уровня, сопоставимого с физической рассылкой нежелательной корреспонденции.
  • Сервер электронных марок

    В своей простой форме сервер электронных марок поддерживает две операции: получение марки и проверку марки. Кроме того, полезной является операция возврата марки. Операция получения марок не содержит аргументов. В качестве результата она возвращает набор для электронной марки. Каждый такой набор характеризуется одной или несколькими проблемами. Проблемы могут иметь различную форму: вычисления сложной функции, сдача теста Тьюринга или оплата по кредитной карточке. Отправитель решает, какую проблему он хочет сдать и отправляет ответ серверу. В результате у пользователя оказывается действительная электронная марка. После того, как пользователь получил марку, он может использовать ее по своему усмотрению.
    Получатель письма с прикрепленной электронной маркой может вызвать операцию проверки марки. Данная операция проверит как то, что такая марка действительно существует, так и то, что она не была использована до этого. После вызова операции проверки марки, марка считается использованной. В случае если марка была хорошей, функция проверки марки вернет, что действие было успешно завершено, в случае если марка не действительна или уже использовалась — что действие завершено с ошибкой.
    Теперь получатель письма с электронной маркой может вернуть ее отправителю, вызвав функцию возврата марки. В этом случае сервер электронных марок увеличивает баланс отправителя, а также сохраняет у себя в базе, что данная марка была возвращена отправителю. Пользователь с положительным балансом на аккаунте может получить электронную марку без решения проблем, но при этом его баланс уменьшится.
    Сервера электронных марок предназначены для того, чтобы гарантировать подлинность марок. Электронная марка может быть использована только в том случае, если до этого она была действительной, это будет гарантировать протокол, о котором пойдет речь чуть ниже. Как будет показано в детальном описании протокола, использование электронных марок обеспечивает некоторые преимущества. Марка идентифицирует получателя по анонимному аккаунту, созданному на сервере. Также к марке пользователя дается специальный криптографический ключ. Пользователь может использовать этот ключ для защиты материала, который он отправляет вместе с маркой, так как такой же ключ возвращается при применении операции проверки марки.

    Приложение для борьбы со спамом

    Чтобы использовать сервера электронных марок, пользователь должен получать только те письма, которые либо пришли от доверенных лиц, либо с действительной электронной маркой. Существует широкий набор возможностей для понятия «доверенных лиц», которые мы обсудим ниже. На рисунке 1 показан основной сценарий использования электронных марок без доверенных лиц.
    Опишем процесс при наличии «доверенных лиц». Предполагаемый пользователь получает набор для электронной марки, взаимодействуя с HTTP сервером электронных марок, затем решает одну из проблем и отправляет сообщение по SMTP с прикрепленной электронной маркой. Получатель или провайдер получателя проверяют марку и возможно возвращают ее отправителю. Естественно существует возможность в одном HTTP запросе проверить или приобрести любое количество марок. Существуют различные способы классификации отправителей как доверенных. Например, некоторые отправители могут быть доверенными для всех пользователей. Пользователь также может доверять всем контактам из своей записной книжки. Кроме того, пользователь мог бы доверять тем, кому до этого отправил письмо. Также должна быть возможность добавить любой аккаунт в «доверенные лица». В более широком смысле пользователь или его провайдер могут начать доверять какой-то группе отправителей, например, если провайдер ведет строгую политику борьбы с аккаунтами спамеров. Также можно доверять другому провайдеру, если он ведет аналогичную политику. Конечно, существует много вопросов, связанных с доверенными отправителями, например, большинство SMTP операций не проходят проверку по имени пользователя. С другой стороны провайдер всегда может проверять имя пользователя в рамках своего домена. Однако всегда есть подозрения о подлинности отправителя извне.
    Объясним, что происходит во всех вариантах основного сценария:
    1. Доверенное лицо без марки. Если письмо приходит без прикрепленной марки, но от доверенного лица, то сообщения появляются в почтовом ящике. В этом случае сервер электронных марок не участвует.
    2. Доверенное лицо с маркой. При получении письма с прикрепленной маркой от доверенного отправителя сообщения попадает в почтовый ящик. Кроме того, будет использоваться функция возврата марки и отправителю на счет придет некоторая сумма. Этот шаг может быть сделан автоматически провайдером, поэтому, для эффективности, операции проверки и возврата можно объединить в единый пакет.
    3. Неизвестный отправитель с маркой. При поступлении сообщения от недоверенного лица, пользователь должен вызвать функцию проверки марки. Если сервер возвращает ошибку, письмо не попадает в почтовый ящик, иначе — попадает. Когда получатель читает сообщения, то он решает должен ли отправитель платить или стоит вернуть марку. В случае если отправитель должен заплатить, то пользователю не нужно ничего делать. Если же он считает, что отправитель не спамер, то пользователь вызывает функцию возврата марки.
    4. Неизвестный отправитель без марки. Если сообщение пришло от неизвестного отправителя без марки можно пометить письмо как подозрительное и доставить его пользователю или проигнорировать его. Кроме того, провайдер может незаметно для пользователя удерживать такое сообщение и предложить отправителю прикрепить электронную марку или приобрести ее у сервера электронных марок.
    4.1 Если отправитель решил воспользоваться ранее приобретенными марками, он просто отправляет ее. Провайдер вызывает функцию проверки марки, и в случае успеха, доставляет сообщение пользователю.
    4.2 Если у отправителя нет марок, он обращается напрямую к серверу электронных марок и приобретает ее там. Для удобства ответ провайдера может содержать ссылку на сервер, перейдя по которой отправитель начинает выполнять какую-то алгоритмическую задачу, например с помощью Java или ActiveX. Также на этой странице отправителю может быть предложено пройти тест Тьюринга, например, ввести капчу.
    В любом случае, на выходе получается готовая марка и процесс отправки письма продолжается, как будто оно сразу было с маркой. Если сообщение находилось на удержании слишком долго, то оно отбрасывается провайдером. Тоже самое происходит, если отправитель реагирует на сообщение недействительной маркой или его обратный адрес не доступен.

    Протокол работы электронных марок

    Пусть A — отправитель, B — получатель.
    1. S — уникальный идентификатор электронной марки. На практике обычно используется уникальный идентификатор;
    2. KT, KA, KB, and KS — секретные ключи (для марок T, A, B и для сервера);
    3. IA — идентификатор A на сервере, IB — идентификатор B на сервере;
    4. TransIDA – идентификатор, выбранный A для функции получения марки;
    5. TransIDB – идентификатор, выбранный B для функции проверки марки;
    6. H(D) — секретный хэш некоторых данных D, H(K,D);
    7. H(K,D) – секретный хэш некоторых данных D на ключе K;
    8. K(D) — использует ключ K, чтобы защитить данные D при передачи;
    9. P — логический предикат. Используется в наборе для электронной марки, определяя такие частности, как то, какая задача будет решаться, может быть представлен целым числом;
    10. X — ответ на задачу. Может быть представлен как целое число или как короткая строка. Если конкретный набор содержит предикат P и если P(X) — истина, то X — это правильное значение для построения электронной марки. Другими словами, вся задача A сводится к нахождению X;
    11. F — функция, которую будет использовать сервер для проверки того, что марка содержит корректный X. Результат ее работы должен быть представлен как целое число. Также необходимо помнить, что F видна при запросе билета;
    12. С — некоторое секретное значение, которое помогает серверу проверять марки. Например, для всех действительных марок F(X)=C;
    13. M — сообщение, которому требуется электронная марка.
    Сервер поддерживает следующие состояния, в своем хранилище:
    Собственный секретный ключ KS;
    1. Наибольшее значение S, которое когда-либо выдал;
    2. Состояние для каждого идентификатора электронной марки;
    3. Баланс аккаунта для IA;
    4. Result(TransIDA) = результат последнего вызова функции запроса марки;
    5. Canceller(S) = TransIDB — результат функции проверки марки с идентификатором S;
    6. Refunded(S) = a — возвращена ли марка с идентификатором S.
    Основные обозначения:
    1. TK = ( S, P, F, IA, H(Ks, («Hash for T», S, F, C, IA) ) ) — набор для марки;
    2. T = ( S, X, F, IA, H(Ks, («Hash for T», S, F, C, IA) ) ) – марка;
    3. T.S — S, которая была использована при построении этой марки;
    4. KT = H(KS, («Hash for KT», T.S)) — секретный ключ, запрашивающийся для марки T;
    5. KT’ = H(KS, («Hash for KТ prime», T.S)) — секретный ключ, проверяющий марку;
    6. KA = H(KS, («Hash for KA», IА) ) — секретный ключ A;
    7. KB = H(KS, («Hash for KB», IВ) ) — секретный ключ B.
    Билет T является действительным тогда и только тогда, когда H(KS, (T.S, T.F, Y, T.IА)) = HT, где HT является ключевой хэш функцией и Y = T.F(T.X). Заметим, что такое определение включает в себя, кроме действительных, еще и использованные марки.
    Сервер электронных марок создает набор таким образом, что марка конструируется заменой TK.P на X. Таким образом, любой X для которого значение TK.P(X) будет истинной, образует собой действительную марку. Этот механизм обеспечивает достаточную гибкость, поэтому его можно использовать для разнообразных задач. Более того, сервер не тратит время на вычисления X, а только проверяет его. Это важно, так как если для его вычисления нужно потратить значительные ресурсы, то получается, что мы экономим их.
    Когда клиент A хочет приобрести новую марку, он выбирает новый TransIDА и обращается к серверу.
    A → server: IА, KА( «Request», TransIDА) (1)
    Сервер использует IА для вычисления KА, а также проверяет целостность и своевременность сообщения:
     Если Result(TransIDА) уже определен, он не обрабатывается;
     Если Balance(IА) > 0, баланс уменьшается и Result(TransIDА) устанавливается как новая действующая марка;
     Если Balance(IА) = 0, пользователю отправляется набор, в котором помещается Result(TransIDА) и State(TK.S) = «Действительна»;
    Сервер вычисляет KТ из TK.S или T.S и отправляет его вместе с Result(TransIDА)
    server → A: KА( «OK», Result(TransIDА), KТ, TransIDА (2)
    A проверяет, что сообщение не испорчено и не потеряно. Если это не так, просит сервер прислать копию сообщения. Если в результате был получен набор, а не готовая марка, то необходимо вычислить X и собрать из набора марку.
    Если A хочет использовать T для отправки B сообщения M, то:
    A → B: T, KТ(M) (3)
    Следует понимать, что B еще не знает KТ, поэтому B просит проверить состояние марки сервер, для этого он выбирает TransIDВ и отправляет:
    B → server: IВ, KВ( «Cancel», T, TransIDВ) (4)
    Если T не действителен или State(T.S) = «Cancelled» и Canceller(T.S) != TransIDВ, то результатом будет ошибка. В другом случае, сервер выставит состояние марки в использована, выставит Canceller(T.S) = TransIDВ, затем посчитает KТ и отправит его B:
    Ticket server → B: KВ( ( «Error» | («OK», KТ, KТ’ ) ), TransIDВ) (5)
    Если сообщение (5) было искажено, то B может переотправить (4), в результате сервер еще раз отправит (5). Теперь B может использовать KТ для проверки целостности (3) и может извлечь сообщение M из него, если M было зашифровано до этого. Ключ KТ может быть использован для возвращения марки отправителю в дальнейшем. В спам-фильтрах после прохождения этого этапа можно поместить письмо в почтовый ящик. Если получатель решит, что M должно быть принято без оплаты, то он посылает запрос на сервер электронных марок.
    B → server: T.S, KТ ‘(«Refund», T ). (6)
    Данная операция выполнится только в том случае, если вы знаете KТ’, так как сервер посчитает его из T.S. После этого сервер проверит, что марка до этого не возвращалась (Refunded(T.S) – ложь) и увеличить баланс пользователя T.IА. Независимо от результата операции, сервер возвращает что операция завершена.
    server → B: T.S, KТ'( «OK» ) (7)
    Некоторые дополнительные аспекты протокола:
    1. Идентификатор транзакции на шаге один применяется в случае, если ответ сервера (2) утерян. Поскольку сервер сохраняет Result(TransIDА), то может повторно отправить (2) Ключ KА известен только A, поэтому никто больше не может приобрести билеты с его счета;
    2. Так как IА встроен и в T и в хэш, то это полностью доказывает принадлежность данной марки A;
    3. Ключ KТ возвращается A на шаге (1) и позволяет ему сконструировать KТ(M). Другими словами, это дает возможность А использовать T для отправки сообщения M;
    4. Когда B получает сообщения, он не знает KТ, поэтому он не может повторно использовать марку для своих собственных целей. В получает ключ KТ только после того, как использует марку;
    5. Идентификатор транзакции, используемый в запросе (4) позволяет повторно отправить этот вызов серверу, если ответ теряется. Поскольку сервер записал Canceller(TS), то он поймет, что сообщение было утеряно и сможет отправить его снова. Таким образом, B получит положительный ответ, вместо отрицательного, хотя марка была уже использована до этого;
    6. Если результат (7) теряется, то B может повторить запрос. Так как на сервере уже сохранено, что марка возвращена, то баланс A не увеличится повторно;
    7. Использование KТ’ в сообщениях (6) и (7) не дает возможности повторно использовать марку. С помощью него вы можете только проверить и использовать марку.

    Оптимальная реализация сервера

    В этом разделе обсудим, как построить эффективный сервер электронных марок. Сервер использует целые числа при создания поля S для новой марки. Также сервер хранит номер наибольшего S в надежном хранилище, так как в случае его потери можем потерять пару марок. Поэтому сервер поддерживает в энергозависимой памяти фактический номер (Sused), а в энергонезависимой номер (Sbound), который всегда больше текущего. Когда фактическое число марок приближается к максимальному, то мы перезаписываем максимальное Sbound = Sused + K, где K выбирается так, чтобы сделать количество записей незначительным. В случае поломки сервера мы потеряем только K значений, но ни одно значение не будет повторно использовано.
    Сервер хранит 2 бита информации для каждой марки, один бит используется, чтобы показать, что марка использована, а другой бит, чтобы показать, что марка возвращена. Эта информация должна обязательно храниться в энергонезависимой памяти, так как она нужна серверу в случае холодного перезапуска. Тем не менее, при нормальной работе, сервер может поддерживать эти данные в энергозависимой памяти в массиве, индексированном по идентификатору марки. В случае, изменения значений в этом массиве, необходимо сделать выгрузку в постоянное хранилище.
    Вполне возможно, что сервер упадет при операции получения марок, но самое худшее, что при этом произойдет, A потеряет одну марку. Таким образом, нам не нужно сохранять логи в постоянном хранилище, чтобы помочь восстановить A марку после перезагрузку сервера.
    Значения P, X, F и С используются для представления заданий и доказательства того, что A сделал все надлежащим образом, а также помогают серверу проверить корректность. Это довольно сложный механизм, который предназначен для работы с различными проблемами, такими как тест Тьюринга, вычислительные и другие. Во всех случаях F — это маленькое целое число, которое показывает серверу, что он должен сделать, чтобы проверить, что марка имеет соответствующее значение X, таким образом, F(X)=C.
    Для вычислительных задач P описывает сам тест. Оно тоже может быть представлено как маленькое целое число Pi и параметр Pn. Тогда Pi выбирает функцию Pf, которая должна быть вычислена из списка известных для участников протокола функций. Задача для A — найти такое значение X, что Pf(Pn, X) = 0. В этом случае C всегда 0 и сервер реализует проверку F(X) вычислением Pf(Pn, X).
    Для теста Тьюринга, который требует восстановить слово из искаженного изображения P, определяет изображение. Например, P может как содержать само изображение, так и хранить ссылку на него.
    Задача для A найти такую строку X, которая была встроена в изображении. В этом случае C — это правильная строка, тогда F(X) просто сравнивает X и С.
    Конечно, нет полной уверенности, но даже слабый компьютер сможет обрабатывать столько запросов, сколько передается по каналу с пропускной способностью 100 Mb/sec:
    1. C точки зрения использования памяти такая реализация использует 2 бита для каждого неиспользованной марки. Тогда получается, что каждый гигабайт памяти может хранить 4 миллиарда марок, а это примерно недельный трафик в Hotmail.
    2. С точки зрения диска каждая операция (получение марки, проверка марки и возврат) требует записи на диск, тем не менее это не перегружает диск. Чтобы записать одну операцию на диск мы используем 16 байт — 8 байт на S и 8 байт в зависимости от операции. Мы можем накапливать в буфер по 4 кбайта, что составляет 256 операций и записывать их на диск. Такая запись занимает 16 миллисекунд, что позволит записать информацию о 16000 марок в секунду. Таким образом общая пропускная способность сервера не ограничена диском.
    3. С точки зрения производительности процессора большинство времени тратится на взаимодействие через TCP стек, а криптография и реализация самого протокола не ограничивают работу сервера в целом.
    Конечно, полное развертывание такой конструкции включает в себя создание системы взаимодействия таких серверов, с целью ее дальнейшего масштабирования. Если все будут использовать электронные марки, то это бы решило все проблемы, связанные со спамом. Мы можем установить правильную цену для отправки почты таким образом, что она сравнялась с физической, что сделает идею рассылки спама абсурдной. Как и в случае с физической почтой небольшой уровень нежелательной почты останется, но она будет иметь уже совсем другой размах. Тем не менее существует несколько проблем связанных с построением системы электронных марок. Разумеется, любые идеи, которые заставляют пользователя платить за почту тем или иным образом будут восприняты не очень доброжелательно. Вопрос здесь только в том, насколько велика выгода для пользователя от использования марок. Во-первых, большинство отправителей, с которыми вы будете общаться, очень быстро перекочуют в «доверенные лица». В итоге получается, что большинство пользователей будут использовать малое количество марок. Если мы вначале дадим каждому пользователю комплект из 1000 марок, то наверное никто так и не начнет выполнять различные задачи.
    Существует отдельный вопрос о пользователях КПК, телефонов и маломощных старых компьютеров. Один из вариантов — это использовать задачи на память вместо вычислительных задач. Тем более доступ к электронной почте часто осуществляется через посредника, с которым у пользователя есть договор о предоставлении услуг. Было бы разумно обеспечить таких пользователей дополнительном числом марок в рамках этого контракта. Наиболее навязчивая часть будет происходить в период, когда часть пользователей перейдут на электронные марки, а другая часть не станет их поддерживать. Тогда появится проблема: некоторые пользователи не смогут отправлять почту друг другу. Наиболее практичным вариантом было бы внедрить соответствующее программное обеспечение во все популярные почтовые клиенты, а затем делать переход на электронные марки. Нельзя точно сказать насколько это возможно.
    Схема электронных марок зависит от уровня доверия пользователей к серверам. Очевидно, что пользователи Hotmail будут доверять серверам Microsoft, но почему ему должны доверять другие пользователи. Hotmail может начать использовать марки в одностороннем порядке, но это не будет универсальным сервером, которым смогут пользоваться все. Таким образом, ни одна организация не сможет, а возможно и не захочет, обеспечить такой централизированный сервер. Равным образом, если несколько организаций, например, AOL, Hotmail и Yahoo начнут использовать сервера электронных марок, то это бы выглядело как почтовая система без взаимного признания иностранных почтовых марок. Наиболее вероятным вариантом развития событий будет объединение фирм в некоторую кооперацию, что связанно с многочисленными проблемами.
    Внедрение серверов электронных марок добавило бы новое звено отказа в систему работы почты. Конечно, мы можем построить сервер, который бы содержал ничтожно мало ошибок программирования, но этого не достаточно и нужно строить масштабируемые системы, которые распределяли бы нагрузки и не зависали от выхода из строя физических устройств.
    Еще большее беспокойство вызывает тот факт, что сервера электронных марок станут перспективной точкой нападения, но для большинства сервисов данная проблема приемлема: сервера электронных марок можно поставить в имеющиеся дата центры, которые уже имеют достаточный уровень защищенности. Роль серверов электронных марок не достаточно существенна, поэтому в случае атаки на один из них не произойдет ничего страшного. Например, в случае, если отправитель не может связаться с сервером и его запас марок пуст, то он может отправить письмо так, надеясь на то, что он не получает назад сообщение о том, что требуется марка. Если же получатель не может связаться с сервером, он может просто читать свою почту без фильтрации.
    Протокол сервера электронных марок предназначен для предотвращения возможных атак. Но существует одна модель поведения, которая может повредить системе, назовем ее ненадлежащее использование билетов: спамер может попросить у пользователей марки взамен на какие-то интересные сервисы, например, взамен на определенное время игры. Аналогичная модель может применима и к тесту Тьюринга, так как существуют страны, где стоимость рабочий силы настолько мала, что может сделать стоимость прохождения такого теста значительно меньше.

    Существующие аналоги

    Разработчики Yahoo! уже приступили к тестированию схемы CentMail, по которой за каждое отправленное сообщение с электронной почты с пользователя будет взиматься плата в 1 цент. Сама по себе идея сделать рассылку спама экономически невыгодной не нова. Однако на сей раз она, по мнению авторов, получит более значительную поддержку, поскольку коммерческой выгоды из этой схемы извлекаться не будет. Каждый потраченный пользователями цент будет направляться на благотворительность.
    Один из разработчиков Yahoo! Шарад Гоэль (Sharad Goel) считает, что именно CentMail станет спасением. По его мнению, передавая деньги на благотворительность и демонстрируя это наглядно – особой «маркой» в каждом письме – отправитель будет чувствовать большое удовлетворение, которое стоит потраченного цента. Кроме того, такая схема может стимулировать достойных граждан начать пользоваться ею еще до того, как она станет общепринята. Это своего рода «экономико-социальный» подход к решению проблемы спама.
    Стоит заметить, что похожую благотворительную схему пытались реализовать и в IBM, в ходе проекта Charity Seals. Однако она даже не была доведена до практической реализации: слишком уж тяжело заставить людей платить за то, что они всегда получали бесплатно. Один из разработчиков IBM Скотт Фальман (Scott Fahlman) говорит: «Некоторые считают, что любой барьер для пользования электронной почтой – это настоящее кощунство». Впрочем, он же и добавляет, что «барьер благотворительности» вполне может снизить накал этих страстей.
    Зато другой программист из IBM Барри Лейба (Barry Leiba) считает, что достоинство схемы CentMail может обернуться и ее недостатком. «Получая чье-то письмо, которое оплачено центом, пошедшим на благотворительность, я вынужден поддерживать выбор отправителя, — говорит он. – С моей помощью его средства направляются на то решение проблемы, с которым я вполне могу не соглашаться». Пока что CentMail проходит стадию закрытого бета тестирования, но вскоре должна быть открыта широкой публике. Скорее всего, воспользоваться ею смогут не только обладатели почты Yahoo!, но и пользователи других почтовых сервисов. Приобретать «марки» для отправки почты можно будет заранее, целыми «блоками».

    Заключение

    Система электронных марок – это новый инструмент, с помощью которого мы можем ограничивать или контролировать открытые сервисы. Она имеет значительные преимущества перед своими аналогами, одним из них, может стать низкая цена внедрения. Более того, клиенты могут иметь свой личный баланс и возвращать марки, что со временем приведет к стабилизации системы. Мы рассмотрели протокол, который позволит правильно функционировать серверу и защитит его от потенциальных взломщиков. Кроме этого, мы также разработали механизм взаимодействия данного протокола с электронной почтой через HTTP. Также мы рассмотрели, как сервер может быть реализован быстро и дешево.

Научиться программировать

  • на Delphi

  • на Java

  • на C++

geekbrains.ru/
geekbrains.ru/