Автор работы: Пользователь скрыл имя, 01 Февраля 2014 в 16:00, дипломная работа
С конца 80-ых, начала 90-ых годов проблемы связанные с защитой информации беспокоят как специалистов в области компьютерной безопасности, так и многочисленных пользователей персональных компьютеров. Это связано с глубокими изменениями, вносимыми компьютерной технологией в нашу жизнь. Изменился сам подход к понятию «информация». Этот термин сейчас больше используется для обозначения специального товара, который можно купить, продать, обменять на что-то другое и т.д. При этом стоимость информации часто превосходит стоимость самой вычислительной системы, в рамках которой она хранится, в десятки, а то и в сотни раз.
САНКТ-ПЕТЕРБУРГСКИЙ
Математико-механический факультет
Кафедра системного программирования
РАЗРАБОТКА АППАРАТНОЙ ЧАСТИ КОМПЛЕКСА ЗАЩИТЫ КОММЕРЧЕСКОГО ПО ОТ НЕСАНКЦИОНИРОВАННОГО КОПИРОВАНИЯ
Дипломная работа студента 544 группы
Теплых Дарьи Анатольевны
Научный руководитель |
……………… |
ведущий инженер, Ланит-Терком Татищев В.В. |
Рецензент |
……………… |
старший преподаватель Баклановский М.В. |
“Допустить
к защите” |
……………… / подпись / |
д.ф.-м.н., проф. Терехов А.Н. |
Санкт-Петербург
2010
SAINT PETERSBURG STATE UNIVERSITY
Mathematics & Mechanics Faculty
Software Engineering Chair
DEVELOPMENT OF THE HARDWARE COMPONENT OF THE COMMERCIAL SOFTWARE PROTACTION SYSTEM AGAINST ILLEGAL COPYING
by
Daria, Teplykh
Master’s thesis
Supervisor |
……………… |
chief engineer , Lanit Tercom |
Reviewer |
……………… |
associate teacher |
“Approved by” |
……………… |
Professor A. N. Terekhov |
Saint Petersburg
2010
Оглавление
С конца 80-ых, начала 90-ых годов проблемы связанные с защитой информации беспокоят как специалистов в области компьютерной безопасности, так и многочисленных пользователей персональных компьютеров. Это связано с глубокими изменениями, вносимыми компьютерной технологией в нашу жизнь. Изменился сам подход к понятию «информация». Этот термин сейчас больше используется для обозначения специального товара, который можно купить, продать, обменять на что-то другое и т.д. При этом стоимость информации часто превосходит стоимость самой вычислительной системы, в рамках которой она хранится, в десятки, а то и в сотни раз.
Естественно, возникает желание защитить информацию от несанкционированного доступа, кражи, уничтожения и других преступных действий. Но есть и такие пользователи, которые не осознают, что постоянно рискуют безопасностью и личными тайнами. Другие хоть каким-то образом защищают свои данные. Пользователи компьютеров регулярно оставляют полностью незащищенными даже такие данные как налоговая и банковская информация, деловая переписка и электронные таблицы. Проблемы значительно усложняются, когда вы начинаете работать или играть в сети, так как хакеру намного легче в это время заполучить или уничтожить информацию, находящуюся на вашем компьютере.
Содержание проблемы защиты информации специалистами интерпретируются следующим образом. По мере развития и усложнения средств, методов и форм автоматизации процессов обработки информации повышается ее уязвимость.
Основными факторами, способствующими повышению этой уязвимости, являются:
- Резкое увеличение объемов информации, накапливаемой, хранимой и обрабатываемой с помощью ЭВМ и других средств автоматизации;
- Сосредоточение в единых базах данных информации различного назначения
и различных принадлежностей;
- Резкое расширение круга пользователей, имеющих непосредственный доступ к ресурсам вычислительной системы и находящимся в ней данных;
- Усложнение режимов функционирования технических средств вычислительных систем: широкое внедрение многопрограммного режима, а также режимов разделения времени и реального времени;
- Автоматизация межмашинного обмена информацией, в том числе и на больших расстояниях.
И так, современная информационная система представляет собой сложную
систему, состоящую из большого числа компонентов различной степени
автономности, которые связаны между собой и обмениваются данными. Практически каждый компонент может подвергнуться внешнему воздействию или выйти из строя.
Угрозы информационной безопасности могут быть разделены на угрозы, не зависящие от деятельности человека (естественные угрозы физических воздействий на информацию стихийных природных явлений), и угрозы, вызванные человеческой деятельностью (искусственные угрозы), которые являются гораздо более опасными.
Искусственные угрозы, исходя из их мотивов, разделяются на непреднамеренные (случайные) и преднамеренные (умышленные) угрозы.
К непреднамеренным угрозам относятся:
К умышленным угрозам относятся:
В зависимости от целей преднамеренных угроз безопасности информации в вычислительной системе угрозы могут быть разделены на три основные группы:
Опосредованной угрозой безопасности информации в вычислительной системе является угроза раскрытия параметров подсистемы защиты информации, входящей в состав системы.
Результатом реализации угроз безопасности информации в вычислительной системе может быть утечка (копирование) информации, ее утрата (разрушение) или искажение (подделка), блокирование информации. Поскольку сложно заранее определить возможную совокупность угроз безопасности информации и результатов их реализации, модель потенциальных угроз безопасности информации в системе должна создаваться совместно собственником (владельцем) и специалистами по защите информации на этапе проектирования системы.
Взлом программного обеспечения (англ. software cracking) - действия, направленные на устранение защиты программного обеспечения, встроенной разработчиками для ограничения функциональных возможностей. Последнее необходимо для мотивации покупки такого ПО, то есть которое является частной собственностью авторов или правообладателей и не удовлетворяет критериям свободного ПО, и после этого ограничения снимаются.
Крэк (англ. crack) - программа, позволяющая осуществить взлом программного обеспечения. Как правило, крэк пригоден для массового использования. По сути, крэк является воплощением одного из видов взлома.
Кейген (англ. keygen, key generator) - генератор ключа или серийного номера.
Крэкер (англ. cracker) - человек, который занимается созданием крэков.
Взломщик - это человек, который взламывает программу при помощи уже готового крэка или без такового.
|
Виды взлома
Практически любой взлом сводится к использованию одного из следующих способов:
При взломе сложных защит, а также при необходимости достичь максимального эффекта, применяется комбинация вышеперечисленных способов. В редких случаях, это происходит при недостаточной квалифицированности взломщика.
Это наиболее встречаемые способы взлома, но существуют и другие.
Вид взлома, в большинстве случаев, обусловлен видом защиты. Для некоторых защит возможно использовать различные виды взлома, для других - способ может быть единственным. Но есть и такие способы организации защиты, взломать которые невозможно
Принципы взлома
Как правило, в основе работы крэкера лежит исследование ассемблерного кода, полученного из машинных инструкций с помощью специально предназначенной для этого программы - дизассемблера. В зависимости от выбранного способа взлома, результат исследования может использоваться, например, для построения генератора ключей или для внесения необходимых изменений в исполняемый файл. Последний способ в большинстве случаев наиболее лёгкий, так как не требует изучения алгоритма проверки правильности ключа: зачастую взлом сводится к поиску проверки нескольких условий (наподобии «ВведённоеЧисло равно ЭталонномуЧислу») и замене такого условия на безусловный переход (jmp), или, реже, на противоположное (то есть для данного примера на «ВведённоеЧисло не равно ЭталонномуЧислу»).
Кроме того, внесение изменений в исполняемый файл (патч) может производиться с целью отключения нежелательных действий со стороны программы (например, напоминание о необходимости регистрации), сокращения функциональности программы. В этих случаях, часто, соответствующие команды процессору заменяются на байты со значением 90h (в шестнадцатеричной системе счисления), что соответствует ассемблерной команде nop (No Operation), то есть «пустой команде», не выполняющей никаких действий. Если таких команд много, то применяется безусловный переход (перепрыгивание ненужного кода). Возможно также расширение возможностей программы написанием дополнительного кода, но, как правило, это слишком трудоёмкий и проблематичный процесс (из за того, что размеры секции кода ограничены), не оправдывающий временных затрат.
Между тем, патч возможен, как правило, в том случае, когда отсутствует навесная защита, то есть исполняемый файл программы не защищён специальными «пакерами» и «протекторами» - программами, скрывающими реальный код исполняемого файла. Для последнего типа программ зачастую используется самая интеллектуальная часть обратной разработки (англ. reverse engineering) - исследование кода программы при помощи отладчика и создание генератора ключей, но возможны и другие решения, например, создание загрузчика.