Delphi World - Определяем отправителя
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Определяем отправителя

Оформил: DeeCo

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

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

Ваши умные друзья могли легко изменить поле From в отправленном сообщении, поставив туда вместо своего обратного адреса хорошо известный вам адрес вашей жены, например vasya@super.net. Как это делается, можно прочесть ниже, в разделе "Отправка". Так что стоящая перед нами задача сводится к следующему: соответствует ли указанный адрес отправителя адресу, с которого в действительности было отправлено сообщение.

Итак, каждое электронное сообщение содержит заголовок (header), представляющий из себя служебную информацию о дате отправления сообщения, названии почтовой программы, IP адресе машины, с которой было отправлено сообщение, и т.п. Большинство почтовых программ по умолчанию не отражают эту информацию, но ее всегда можно просмотреть, либо открыв файл, содержащий входящую почту, с помощью любого текстового редактора, либо использовав функцию почтовой программы, позволяющую просматривать служебные заголовки, которая, как правило, называется Show all headers. В почтовой программе Eudora это делается простым нажатием на кнопку Blah-Blah-Blah, в Outlook Express наводим курсор мыши на заголовок, кликаем правой кнопкой. На экране появляется примерно такая информация:
Received: by geocities.com(8.8.5 / 8.8.5)with ESMTP id JAA16952
for ;
Tue, 18 Nov 1997 09: 37: 40 - 0800(PST)
Received: from vasya.super.net(really[209.50.60.79])
by endeavor.super.net(8.8.7 / 8.8.5)with SMTP id LAA20454
  for ;
Tue, 18 Nov 1997 11: 37: 38 - 0600(CST)
Message - ID: < 3471 D27E.69 A9@super.net >
Date: Tue, 18 Nov 1997 11: 38: 07 - 0600
From: vasya@super.net
X - Mailer: Mozilla 3.02(Win95; U)
MIME - Version: 1.0
to : petya@geocities.com
Subject: I don’t love you any more, you fool !!!!
Заголовки Received сообщают о пути, который прошло сообщение в процессе пересылки по сети. Имена машин (geocities.com, endeavor.super.net) указывают на то, что сообщение, скорее всего, пришло к вам в geocities.com из домена super.net. Если имена машин не имеют ничего общего с super.net (например, mailrelay.tiac.net), это повод задуматься о подлинности сообщения. Но самая главная строка для нас - последняя из строк, начинающихся со слова Received:
Received: from vasya.super.net (really [209.50.60.79])
Она отражает имя машины (vasya.super.net) и уникальный IP адрес, с которого было отправлено сообщение. Мы видим, что домен (super.net) соответствует адресу. Впрочем, можно подделать и строку vasya.super.net (в Windows 95 это делается через через Control Panel=>Network=>TCP/IP Properties=>DNS Configuration, указав vasya и super.net в полях Host и Domain соответственно), поэтому для нас важно определить имя, соответствующее данному IP адресу: 209.30.69.99.
Для определения имени, соответствующего цифровому адресу, можно воспользоваться одной из доступных программ, например CyberKit, Shadow Scan. Набрав цифровой адрес, мы даем команду NS LookUp (Name Server Lookup) и смотрим на полученный результат. Если имя определилось, то дальше все просто: если вы получили что-нибудь вроде ppp303.super.net или p28-dialup.super.net, то сообщение отправлено другом (или кем-то, имеющим счет в Supernet, но тут вы уже бессильны что-либо выяснить). Если нечто весьма далекое от super.net - он его скорее всего не посылал.

Бывают ситуации, когда адрес не определяется. Не отчаивайтесь: воспользуйтесь функцией TraceRoute из той же программы. Эта функция поможет проследить путь от вашей машины до указанного IP адреса. Этот адрес (он будет последним в списке узлов, через которые сигнал прошел от вашего компьютера до компьютера с указанным IP адресом) снова не определится, но последний из определившихся по имени узлов все-таки укажет на примерное географическое положение компьютера отправителя. Можно спец программу и не заводить. Выполнить вышеописанную процедуру можно на http://www.all-nettols.com/ . Что письмо отправлено из Гондураса? И друзей у Вас там нет? Тогда все понятно. Вам просто пудрят мозги.
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования