Как проверить происхождение почты? - PullRequest
3 голосов
/ 08 апреля 2010

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

Я проверю список разрешенных адресов электронной почты, чтобы убедиться, что никто неавторизованный не отправит команду на сервер, но как мне убедиться, что, скажем, электронное письмо, отправленное "mrzombie @ thezombie" .net "действительно происходит от" thezombie.net "?

Я думал о проверке заголовка IP-адреса исходного сервера электронной почты и проверке домена, чтобы убедиться, что он совпадает, но будет ли это надежным?

Пример:

Сервер получает команду от mrzombie@thezombie.net mrzombie@thezombie.net авторизован, продолжайте проверку Сервер проверяет IP "thezombie.net" из шапки: W.X.Y.Z Сервер пингует «thezombie.net» по его IP: A.B.C.D IP-адреса не соответствуют, не обрабатывают команду

Есть ли лучший способ сделать это?

Ответы [ 3 ]

2 голосов
/ 08 апреля 2010

Если вы можете решить эту проблему для обычной электронной почты, вы решили проблему СПАМА.

Учитывая, что почтовые заголовки представляют собой текст произвольной формы, в котором любой может требовать чего-либо, вы не можете выполнять какие-либо авторизацию или аутентификацию на основе почтовых заголовков. Лучше всего аутентифицировать контент, и для этого есть протоколы, такие как S / MIME или PGP . Они используют криптографию для аутентификации, и ваш сервер сможет проверить, что контент подписан сертификатом, которому вы доверяете. Но вы перекладываете бремя на отправителя почты, который должен будет отправлять правильно подписанное сообщение. Большинство читателей почты, тем не менее, поддерживают добавление цифровых подписей к контенту.

1 голос
/ 08 апреля 2010

но как мне убедиться, что, скажем, электронная почта отправлена "mrzombie@thezombie.net" действительно приходит с "thezombie.net"?

Возможно, вы также захотите взглянуть на Sender Policy Framework , так как он хотя бы частично пытается обеспечить способ проверки того, что электронная почта была отправлена ​​с авторизованных серверов домена.

Кроме того, serverfault.com может дать вам несколько полезных ответов, поскольку это вопрос, связанный с сетью и сервером.

0 голосов
/ 08 апреля 2010

Вы можете использовать SPF , чтобы проверить, что данный IP-адрес авторизован / не разрешен для отправки электронной почты от имени определенного домена (конечно, при условии, что в этом домене реализован SPF), но это только приводит вас далеко. Например, это не может помешать другому пользователю в исходном домене выдавать себя за авторизованного пользователя.

Аутентификация контента с помощью цифровой подписи - действительно лучший способ.

...