Дипломная работа




Скачать 148.49 Kb.
НазваниеДипломная работа
Дата публикации03.07.2013
Размер148.49 Kb.
ТипДиплом
lit-yaz.ru > Информатика > Диплом
Московский Государственный Университет им. М.В. Ломоносова

Факультет Вычислительной Математики и Кибернетики

Кафедра АСВК

Дипломная работа

Удостоверение подлинности участников интернет-голосований на основе анализа сетевых объектов

студент 522 гр. Студеникин Р.В.
Научные руководители:

д.ф.-м.н., проф. Смелянский Р.Л.

Гамаюнов Д.Ю.

Москва, 2007 г.

Аннотация
В данной работе исследуется альтернативный метод обнаружения повторных голосов в системах анонимных интернет-голосований. Вводится понятие «сетевого объекта», который используется, как единица анализа. Показываются достоинства и недостатки предлагаемого метода и производится сравнение с существующими методами. В работе строится набор параметров, описывающих сетевой объект, приводится описание разработанной системы анализа, результаты проведенного эксперимента и выводы о применимости системы.

Оглавление

1. Введение 4

2. Постановка задачи. 9

Параметры, входящие в профиль 10

Прикладной уровень 10

Транспортный уровень 11

Сетевой уровень 12

Литература 13


1. Введение


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

Также, интересен тот факт, что в последние несколько лет Интернет приобретает несколько иную форму, нежели это было раньше. Раньше всю доступную в Интернете информацию публиковали организации, имеющие в своем распоряжении Интернет сайт, а пользователи могли лишь заходить и просматривать эту информацию. Чуть позднее появились форумы и чаты, где люди могли обсуждать интересующие их вопросы, знакомиться и всячески выражать свои мысли. Сейчас же, Интернет представляет собой нечто большее, и основное отличие в том, что каждый его пользователь может создать свой сайт(притом совершенно бесплатно) и размещать на нем любую информацию. И более того, есть сайты, содержимое которых полностью сформировано посетителями этого сайта. То есть создатель сайта может не участвовать в заполнении его содержимым. Яркими примерами таких сайтов могут служить YouTube.com и Wikipedia.org, а из русскоязычных habrahabr.ru. Но, список таких сайтов, разумеется, не ограничивается только ими и количество им подобных стремительно растет. Всё содержимое(далее - контент) этих сайтов сформировано их посетителями и задача владельца сайта состоит лишь в том, чтобы остальные посетители могли как можно удобнее добраться до самой интересной информации. Разумеется, «интересность» контента должна определяться также не владельцем сайта а его пользователями. Зачастую это делается при помощи голосований следующим образом: каждый пользователь, заходя на сайт, имеет возможность отметить некоторую часть контента как наиболее интересную, т.е. оценить её со своей субъективной точки зрения. Но, поскольку посетителей сайта много, и каждый выбирает наиболее интересную на его взгляд информацию, то общая оценка контента стремится к объективной с увеличением числа посетителей. Однако, при такой схеме, возникает опасность, что некто попытается поднять рейтинг какой-то части контента, проголосовав за неё несколько раз.

Другой пример применения анонимных голосований в сети Интернет – проведение социологических и политических исследований и опросов. Примеры таких голосований можно обнаружить на сайтах rbc.ru, !!!!!!!!!!найти!!!!!!!!. Результаты этих голосований зачастую цитируются в сми, что может оказывать довольно сильное влияние на взгляды и мнения населения страны. Очень вероятно, что фальсификация результатов подобных голосований может быть кому-то очень выгодна.

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


  1. Ограничения по IP адресу. В этом случае, во время голосования разрешается проголосовать лишь один раз с каждого IP адреса. Это очень простой метод, в чем и заключается его преимущество. Но, у него есть несколько недостатков. Если пользователь имеет динамический IP-адрес, т.е. меняющийся при каждом подключении, то этот пользователь, отключаясь и подключаясь к сети снова, может сделать несколько голосов. Также, если несколько пользователей имеют в сети один IP-адрес, к примеру работают через NAT, Proxy-Server, или же просто на одном компьютере, то проголосовать сможет лишь один из них. На практике обычно используют этот метод не в чистом виде. Используются методы, основанные на анализе распределений голосов по IP-адресам и по времени поступления голоса(назовем эти методы IP-методами).




  1. Использование Cookie. Использование механизма Cookie позволяет любому Web-ресурсу оставить на стороне пользователя файл, содержащий некоторую информацию, такую как числа, строки, даты и т.п. парами КЛЮЧ=ЗНАЧЕНИЕ. Этот механизм по-умолчанию поддерживается всеми современными браузерами, если его специально не отключить. Таким образом, можно записывать в файл Cookie информацию о голосовании, в котором поучаствовал пользователь и не учитывать его голос при повторном участии. В сравнении с первым, этот метод действительно позволяет поставить ограничения таким образом, чтобы каждый пользователь имел возможность проголосовать лишь один раз, даже если это пользователи одного компьютера. В этом случае, Cookie создастся для каждого пользователя отдельно. Но недостаток этого метода в том, что вся информация хранится на стороне пользователя и, следовательно, нельзя быть полностью уверенным в её целостности и доступности. Более того, легко написать программу, имитирующую голосование пользователя и постоянно удаляющую оставленные сервером Cookie.




  1. Регистрация пользователей. В данном случае возможность голосования предоставляется только зарегистрированным пользователям. Тут возможны варианты закрытой регистрации, т.е. ограниченному кругу лиц, либо открытой регистрации, когда зарегистрироваться в системе может каждый желающий. И сложность фальсификации голосования будет напрямую зависеть от реализации процесса регистрации.




  1. Использование «тестов на человечность». В этом случае каждому пользователю предлагается ответить на простой вопрос (к примеру, «какого цвета трава?», «напишите название нашей планеты»), либо распознать число, или текст, написанные на выведенной картинке. Такие меры предосторожности позволяют ограничить возможности программных роботов, которые могли бы использовать злоумышленники в целях фальсификации результатов голосования.


Для достижения наилучшего результата возможно применение комбинации нескольких методов. Но, чем сильнее мы хотим усложнить задачу злоумышленникам, тем сильнее усложняем процесс голосования для обычных пользователей. И, следует отметить, что для среднего пользователя могут быть не очевидны все принятые меры предосторожности проведения голосования. То есть, сильно повысив уровень защиты против повторного голосования, может получиться так, что большинство пользователей сочтут процедуру голосования слишком сложной и просто не захотят принимать в нем участие. Здесь следует находить «золотую середину», учитывая следующие параметры:


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




  • Заинтересованность пользователя. От заинтересованности пользователя в участии в голосовании, зависит сколько времени он готов потратить на процесс регистрации и подачу голоса. То есть, если у человека есть мотив, к примеру, возможность выиграть автомобиль, то он, вероятно, с большей охотой пройдет регистрацию и все остальные необходимые процедуры, чем при отсутствии возможности личной выгоды от участия.


В общем же, каждая система интернет-голосований в идеале должна включать в себя решения следующих задач[1]:


  1. Аутентификация пользователей.

  2. Анонимность голосования.

  3. Целостность бюллетеня голосования.

  4. Надежность передачи и хранение результатов голосования.

  5. Предотвращение повторного голосования.

  6. Защита против атак на системы передачи данных.

  7. Защита против атак на систему проведения голосования.


В данной дипломной работе рассматривается решение задачи 5 для анонимных интернет-голосований, расположенных на страницах в сети Интернет, следующего содержания:

  1. Вопрос.

  2. Несколько вариантов ответа.

  3. Кнопка «Проголосовать».


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

  1. Прочитать вопрос.

  2. Выбрать один, или несколько вариантов из предложенного списка ответов.

  3. Нажать на кнопку «Проголосовать».


Определимся с терминами:

Идентификация – процесс, используемый информационной системой для распознания сущности[2].

В контексте решаемой задачи, задача идентификации разбивается на два этапа:

  1. Заполнение базы образцов.

  2. Сопоставление нового поступившего образца с каждым из существующей базы и определение вероятности вхождения его в эту базу с указанием ближайшего по выбранной метрике образца из базы.


Для системы интернет-голосования указанного вида, очередной пришедший голос является HTTP-запросом внутри некоторой TCP-сесии. Таким образом, пользователь виден для системы как набор(сетевое устройство; ОС+ПО, установленные на этом устройстве; настройки ПО, измененные пользователем устройства). Такой набор мы будем называть сетевым объектом.

В настоящее время существует несколько методик определения некоторых характеристик удаленного устройства[3], операционной системы, установленной на удаленном устройстве[4,5,6,7,8], а также программных средств удаленного устройства, используемых пользователем, и их настроек[9]. Каждый из этих методов, позволяет получить параметры, описывающие сетевой объект.

Также, существует возможность составить некоторый поведенческий «портрет» пользователя, проанализировав трафик, порождаемый устройством в процессе работы этого пользователя, и идентифицировать пользователя по его поведению(этот вопрос был изучен в рамках курсовой работы за 4 курс). Но, в общем случае, организатор голосования такой возможности не имеет по причине отсутствия доступа ко всему трафику пользователя.

Далее, под профилем сетевого объекта мы будем понимать область пространства, в пределах которой может располагаться вектор параметров, описывающих данный сетевой объект.

Итак, проанализировав вышеописанные методы удаленного сканирования, можно в контексте рассматриваемой в работе области, выдвинуть гипотезу о возможности применения сетевого объекта в качестве единицы анализа в IP-методах, подобно IP-адресу. То есть, вместо разбиения всех голосов на группы по IP-адресам, предлагается разбить их на группы по профилям сетевых объектов, ассоциированных с этими голосами.

У предложенного метода, как и у вышеизложенных, существуют свои достоинства и недостатки. К достоинствам относится прозрачность для пользователя – при использовании данного метода, как и при использовании IP-методов, от пользователя не требуется никаких дополнительных усилий для участия в голосовании, следовательно использовать метод можно для любых голосований. К недостаткам относится предположение о соответсвии каждого пользователя системы интернет-голосования одному сетевому объекту. Это ограничение пользователь может обойти при наличии нескольких сетевых устройств, либо при наличии на одном сетевом устройстве нескольких аккаунтов с различными программными настройками.
^

2. Постановка задачи.


Задачей дипломной работы является разработка и исследование эффективности метода разбиения голосов при помощи профилей сетевых объектов в системах интернет-голосований, по сравнению с IP-методами, а также, разработка макета системы для тестирования разработанного метода для операционной системы Debian Linux Etch и веб-платформы Ruby On Rails.

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

  • Провести исследование и определить параметры, входящие в профиль.

  • Создать и запустить общедоступный веб-сервис для получения базы профилей.

  • Определить функцию близости для сравнения двух профилей.

  • Провести эксперименты по разбиению голосов с использованием базы профилей.

  • Привести результаты экспериментов и сделать выводы о применимости методики.



^

Параметры, входящие в профиль


Поскольку мы рассматриваем системы анонимного интернет-голосования, располагающиеся в сети Интернет, а протоколом взаимодействия пользователя с системой интернет-голосования является HTTP, работающий в рамках стека протоколов TCP/IP, то для удобного его рассмотрения, разложим его работу по уровням модели TCP/IP и на каждом уровне выделим параметры, описывающие сетевой объект. Для каждого параметра укажем предполагаемые область изменения и степень значимости в рамках профиля сетевого объекта.
^

Прикладной уровень


На этом уровне осуществляется работа программы, с помощью которой пользователь просматривает содержимое веб-страниц(веб-браузер). Здесь и далее будем называть сторону пользователя клиентом, а противоположную сторону, с системой интернет-голосования, – сервером. Когда пользователь хочет просмотреть некоторую веб-страницу, он сообщает это своему браузеру(вводит адрес страницы, или кликает на ссылку), после чего браузер отправляет на сервер запрос(GET, или POST), содержащий адрес интересуемой страницы, свою версию, а так же некоторую информацию о системе. Типовой пример запроса (запрос перехвачен при помощи дополнения Live HTTP Headers к браузеру Mozilla Firefox):

GET /ig HTTP/1.1

Host: www.google.ru

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13

Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip,deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive: 30

Connection: keep-alive

Cookie: <...>
Как мы видим, это GET запрос к ресурсу, расположенному на сервере www.google.com и имеющему относительный адрес /ig, и, помимо указания адреса запрашиваемого русурса, здесь указаны некоторые параметры браузера и представлены Cookies, принадлежащие домену google.com.

Среди параметров, находящихся в запросе, самым интересным для решения задачи сбора информации об удаленном хосте, является строка User-Agent: она содержит тип и версию браузера, а также, может содержать название операционной системы, язык браузера и что-либо еще. Во время прохождения преддипломной практики в компании Яндекс, было проведено исследование о количестве возможных модификаций строки User-Agent в запросах. За один день набралось <<КОЛИЧЕСТВО>> уникальных значений данной строки. Стоит отметить, что строка User-Agent в современных браузерах изменяется лишь при изменении версии операционной системы, изменении версии браузера, либо при добавлении новых дополнений, т.е. имеет продолжительные периоды сохранения значения.

Получив запрос на получение веб-страницы, сервер, в случае наличия таковой, высылает её клиенту. Страница может содержать текст, изображение, Java-script код, каскадную таблицу стилей, или что-то еще. После получения запрошенной страницы, браузер пользователя начинает интерпретировать полученное содержимое – отрисовывает текст и графику в соответствии с заложенным в странице форматированием, а также, выполняет необходимые JavaSript’ы. JavaScript, по-омолчанию, включен во всех современных браузерах, и с его помощью можно получить некоторую информацию о клиенте.
^

Транспортный уровень


На транспортном уровне происходит установление TCP-соединения. В начале соединения, инициирующий соединение хост, посылает на 80-й порт хоста, с которым требуется установить соединение, TCP пакет с установленным флагом SYN и некоторым Sequence number = x. Если получатель ожидает вызовов на соединение и готов удовлетворить запрос – он посылает TCP пакет с установленными флагами ACK+SYN и Acknowledgement number = x+1, а также некоторым своим Sequence number = y. Первый хост, получив такой пакет, должен отправить в ответ пакет с установленным флагом ACK, Sequence number = x+1 и Acknowledgement number = y+1. Такая процедура называется «тройным рукопожатием» и после её удачного прохождения, соединение считается установленным.

Описанная процедура является обязательной для установления TCP соединения, указанные флаги и номера должны принимать строго указанные значения. Но на остальные поля TCP пакетов эта строгость не распространяется, и, благодаря этому, разные операционные системы заполняют TCP пакеты во время соединения по-разному. В таблице 1 представлена структура заголовка TCP пакета.

^ TCP header (IPv4)

Bit offset

0–3

4–7

8–15

16–31

0

Source port

Destination port

32

Sequence number

64

Acknowledgement number

96

Data offset

Reserved

Flags

Window

128

Checksum

Urgent pointer

160

Options (optional)

Таблица 1. Формат TCP заголовка.

Source port и Destination port – порты отправляющего хоста и хоста назначения соответственно.

Sequence Number – порядковый номер пакета,

Acknowledgement number – порядковый номер ожидаемого пакета,

Data Offset – смещение начала данных.

Reserved – зарезервировано для будущего использования. Согласно стандарту, это поле должно быть равно нулю, однако не все операционные системы следуют этому стандарту и могут заполнять его не нулевым значением.

Flags – флаги TCP пакета(URG, ACK, PSH, RST, SYN, FIN).

Window – число байт данных, которые готов принять отправитель пакета.

Checksum – контрольная сумма пакета.

Urgent Pointer – содержит смещение «неотложно важных»(urgent) данных.

Options – поле переменной длины со списком опций TCP пакета. Всего возможных опций 9 штук. <<МОЖНО НАВЕРНОЕ ОПИСАТЬ ОПЦИИ>>
^

Сетевой уровень


На этом уровне находится IP адресация, идентификатором каждой стороны является IP-адрес. В зависимости от типа подключения пользователя системы интернет-голосования к сети Интернет, IP-адрес устройства пользователя может быть либо всегда постоянным, либо меняться в пределах некоторого пула IP-адресов, выделенного провайдеру Интернет. Также, IP-адрес может меняться, если пользователь подключается через различные прокси-серверы, или анонимные сети[ссылка на TOR].

^ IP header (IPv4)

Bit offset

0–3

4–7

8–15

16-18

19–31

0

Version

IHL

Type Of Service

Total Length

32

Identification

Flags

Fragment Offset

64

Time To Live

Protocol

Header Checksum

96

Source address

128

Destination address

160

Options

^ Таблица 2. Формат IP заголовка.

Литература


[1]
California Secretary of State Bill Jones, «California Internet Voting Task Force» // January, 2000

[2] National Information Assurance(IA) Glossary // June 2006

[3] Tadayoshi Kohno, Andre Broido, K.C. Claffy, “Remote physical device fingerprinting” //May 2005

[4] Lance Spitzner, “Passive Fingerprinting” // May 2000

[5] Michal Zalewski, “P0f Project Information” // 2006-09-06

http://lcamtuf.coredump.cx/p0f.shtml

[6] Ofir Yarkin, Fyodor Yarochkin, “Xprobe v2.0. A “Fuzzy” Approach to Remote Active Operating System Fingerprinting” // August 2002

[7] Ofir Arkin, “A Remote Active OS Fingerprinting Tool Using ICMP”

[8] Федор Ярочкин, Алексей Волков, «Определение операционной системы удаленного хоста» // 1997-2000

[9] J. Treurniet, «An Overview of Passive Information Gathering Techniques for Network Security», Defence R&D Canada - Ottawa // May 2004


Добавить документ в свой блог или на сайт

Похожие:

Дипломная работа iconНазвание организации
Заголовок «Дипломная работа» или «Курсовая работа»: Times New Roman, 14 (вопреки П. 113), по центру. Затем – 2 пустые строки

Дипломная работа iconДипломная работа
Степень удовлетворенности пользователей в документах по музыкальному искусству 25

Дипломная работа iconДипломная работа
Состояние, тенденции и проблемы развития народного образования в Новом Уренгое

Дипломная работа iconДипломная работа
Разработка анализатора системы обнаружения атак, основанного на методах кластерного анализа”

Дипломная работа iconДипломная работа
Удостоверение подлинности участников интернет-голосований на основе анализа сетевых сессий

Дипломная работа iconДипломная работа
Удостоверение подлинности участников интернет-голосований на основе анализа сетевых объектов

Дипломная работа iconДипломная работа
Удостоверение подлинности участников интернет-голосований на основе анализа сетевых объектов

Дипломная работа iconДипломная работа
Повышение качества результатов анонимного интернет-голосования методом анализа сетевых объектов

Дипломная работа iconДипломная работа
Использование средств olap-технологий для построения системы Бизнес Интеллекта факультета

Дипломная работа iconДипломная работа
Умение ладить с реальным положением дел, перекрывая выходы: отказ от бегства, сопротивление и осуждение



Образовательный материал



При копировании материала укажите ссылку © 2013
контакты
lit-yaz.ru
главная страница