Как да проверя, че адресът на изпращача на имейл не е подправен? [затворено]

Според този въпрос По-рано попитах в Google App Engine, ако имам достъп до цялата информация в стандартен имейл, не само до полетата From, To, Subject, Body, но и до всички заглавки и MIME информация, как мога да проверя, че два входящи имейла с един и същи From адрес всъщност са от един и същ подател.

Какво съм обмислил досега:

  • Проверете IP адреса на изпращащия имейл сървър
  • Проверете DNS записите на изпращащия имейл сървър
  • Проверете изпращащия агент на имейла (т.е. уеб интерфейс, Outlook, Thunderbird и т.н.)
  • Проверете полето за отговор
  • и т.н.

Осъзнавам, че това е сложен въпрос (сигурен съм, че компании като Posterous са отделили много време за този проблем). Просто търся няколко критерия, за да започна предварително. Благодаря!

Актуализация:

Отговорите досега наистина помагат, но само за да им помогна, контекстът на моя проект е, че ще получавам тонове и тонове имейл като уеб приложение от моите потребители. Те биха използвали своя имейл като основен начин за въвеждане на данни в моята система. Ето защо направих аналогията с Posterous. Случаят на използване е много подобен.


person daveslab    schedule 04.12.2009    source източник
comment
Едно нещо, което трябва да се има предвид - използвам лаптоп и изпращам имейли от редица различни IP адреси и SMTP сървъри през деня.   -  person Scott Saunders    schedule 04.12.2009
comment
Да, благодаря, Скот, обмислих това, поради което ми е интересно да видя други подходи.   -  person daveslab    schedule 04.12.2009
comment
Току-що попаднах на този въпрос и се опитвам да направя нещо подобно. Можеш ли да споделиш какво направи в крайна сметка?   -  person    schedule 18.11.2010


Отговори (5)


Прав сте, че всички заглавки заедно и „известно добър“ имейл за сравнение могат да помогнат при идентифицирането на вероятно фалшиви имейли.

Това, което разработвате, вероятно ще бъде в най-добрия случай евристика, а не алгоритъм.

Бих обмислил претегляне на полетата по време на деня и колко близо до времето на деня за „известно добри“ имейли ...

Също така, ако „известно добрите“ имейли са структурирани по различен начин от заподозрения; т.е. вградени изображения, html, съкратени URL адреси и т.н.

person John Weldon    schedule 04.12.2009

Защо не пуснете имейлите през spamassassin или някакъв подобен филтър, който ще прикачи резултат на Bayes. След това можете просто да прочетете този резултат. Това ще ви спести преоткриването на колелото.

Бихте могли да сравните имейла на Bayes с база данни с всички предишни имейли от лицето.

Има и търсене на Sender Permitted Framework и DomainKeys, което SpamAssassin може да направи за вас.

person Phil Hannent    schedule 04.12.2009

Вероятно не е практично, но нещо, което ще работи:

Когато пристигне входяща поща, разполагайте с функция „отговор на подателя“ и просто попитайте дали са я изпратили. Това може да бъде под формата на връзка за потвърждение, която се генерира автоматично или нещо подобно.

Но тъй като не познавам спецификата на проекта, това може да не е практично... например, ако трябва да правите това няколко пъти за всеки потребител, никой няма да се примири с това.

person Travis    schedule 04.12.2009

Само да похваля моите братя, които публикуваха по-рано:

Не знаейки контекста, в който искате да анализирате това, и като съм много общ, бих предложил първият ви порт да бъде SPF или DomainKeys, за да ограничите възможността имейлът, идващ от фалшив източник, да бъде приет. Бих препоръчал също да използвате само един SMTP сървър с SSL защита. Правя това и пътувайки по света, рядко съм попадал в ситуация, в която не мога да изпратя поща и в тези случаи единственото нещо, което работеше, беше уеб пощата (без безопасен локален SMTP).

В допълнение към това: ако проверявате, че пощата наистина идва от вас, можете също да използвате PGP инструменти, за да подпишете пощата си при изпращане и след това да филтрирате всяка поща, която не е имала валиден подпис. Enigmail в Thunderbird е добър източник за автоматично подписване и има плъгини и за Outlook.

След това, ако наистина искате да извършите по-криминалистична работа по имейл, можете да използвате Spam Bayes, за да оцените имейла спрямо база данни от предишни имейли. Ще изградите база данни от токени около неуникалните данни (с изключение на записи като „До:“) и след това ще оцените имейла за вероятността да е като предишните имейли. На теория трябва да получите много висока оценка за всяка поща.

Очевидно не познавам вашата ситуация, но мисля, че има много техники, но понякога е по-лесно да отидете до корена на проблема, отколкото да се опитате да го поправите надолу по линията.

Актуализация

Въз основа на предоставения контекст:

Бих обмислил използването на „Address Extensions“ – това е мястото, където вашият потребител може да изпрати имейл до адрес, който съдържа препратка, използвайки имейл адреса: [email protected] GMail и много други сървъри поддържат доставка на имейл с +extension@ чрез до правилния [email protected] без hi-jinx. Можете да накарате потребителя да доставя поща с уникален идентификатор като разширение и по този начин ще разберете, че е дошло от него и той ще се почувства по-специален. Очевидно някой може да открадне техния уникален код, като подуши изходящата или вашата входяща поща, но това винаги е възможно и ако някой може да направи това, вероятно може да инжектира и поща.

Ако наистина искате просто да преминете по пътя на анализа, тогава бих предложил просто да използвате обратното на SpamAssassin съвпадение на Bayes за всеки потребител. Където сравнявате всеки имейл с база данни от имейли от подател (вместо традиционното съпоставяне на имейли „до“ акаунт). Не забравяйте, че след като вашата база данни бъде замърсена с фалшиво положително, ще трябва да премахнете фалшивото положително или рискувате целостта на съвпадението за този подател.

person Bob Hannent    schedule 04.12.2009

Може би помислете за използването на Рамка за правила за податели. Може да не е точно това, което търсите, но може да помогне.

Накратко, предназначението на SPF записа е да позволи на получаващия MTA (агент за прехвърляне на съобщения) да разпита сървъра за имена на домейна, който се появява в имейла (подателя) и да определи дали първоначалният IP адрес на имейла (източника) е упълномощен да изпраща поща за домейна на подателя.

Извлечено от wikipedia:

Рамката за политика на изпращача (SPF), както е дефинирана в RFC 4408, е система за валидиране на електронна поща, предназначена да предотвратява спама по имейл чрез адресиране на често срещана уязвимост, подправяне на адрес на източник. SPF позволява на администраторите на електронна поща възможността да определят на кои интернет хостове е разрешено да изпращат електронна поща, твърдейки, че произхожда от този домейн, чрез създаване на конкретен DNS SPF запис в публичния DNS запис. След това обменниците на поща използват DNS записа, за да проверят самоличността на подателя спрямо списъка, публикуван от администратора на електронната поща.

person Peter D    schedule 04.12.2009