
- •1. Доступ к данным. Этапы идентификации и аутентификации, реализуемые ос Windows. Разграничение доступа к устройствам.
- •2. Идентификация и аутентификация субъекта "процесс" при запросах на доступ. Замкнутая программная среда. Вопросы корректности идентификации пользователя.
- •4. Электронные увип. Приборы на базе iButton. Смарт-карты.
- •5. Биометрическая идентификация пользователей. Идентификация по манере работы по клавиатуре. Идентификация по голосу. Распознавание пользователей по лицу.
- •6. Идентификация по отпечатку пальцев
- •7. Технологии аутентификации. Аутентификации по многоразовым паролям.
- •8. Технологии аутентификации. Аутентификация на основе одноразовых паролей.
- •9. Технологии аутентификации. Аутентификация по предъявлению цифрового сертификата. Использование смарт-карт и usb-ключей.
- •10. Принципы организации контроллера зи.
- •11. Принципы организации контролера зи.
- •12. Характеристики сзи.
- •13. Аппаратные системы разграничения доступа. Использование архитектур, отличных от фоннеймановской.
- •14. Аппаратные системы разграничения доступа. Системы перлюстрации запросов на обращение к данным. Защита от считывания со сменных носителей.
- •15. Программно-аппаратные криптосистемы. Алгоритмы шифрования.
- •16. Общие сведения об аппаратных криптосистемах. Механизмы аппаратной шифрации. Криптографический контроль целостности.
- •18. Варианты реализации криптосистем. Сравнение аппаратных и прогаммных шифраторов.
- •19. Виды защиты от несанкционированного копирования программ. Программно-аппаратная защита от копирования программ.
- •20. Защита программ от изучения. Цели, методы, средства изучения программ.
- •21. Защита программ от дизассемблирования.
- •22. Борьба с трассировкой программы пошаговыми отладчиками.
- •23. Ошибки в созданных и предлагаемых защитах от копирования.
- •24. Виды деструктивных программ. Компьютерные вирусы и их классификация.
- •25. Шпионские программы. Общая характеристика.
- •26. Программные кейлогеры.
- •27. Варианты реализации программных кейлогеров
- •28. Аппаратные кейлогеры.
- •29. Методы противодействия программам-шпионам и аппаратным кейлогерам.
23. Ошибки в созданных и предлагаемых защитах от копирования.
Ошибки в созданных и предлагаемых защитах от копирования. Серийные номера. Самая распространенная защита делится на три части. Первые самые ранние и легкие варианты этой защиты, которые, правда, встречаются и по сей день, это просто ввод некоей последовательности символов, которую программа сверяет с эталоном.
Ставится брейк на функцию GetWindowText и запускаем программу. Когда брейк сработает, жмем F11 - выполняем функцию, потом ставим брейк на область памяти, куда это все записалось. Далее смотрим данные в сверочной строке и выписываем на бумажку. Другой, более железный, способ. Поставить брейк на MessageBox - BPX MESSAGEBOX. Когда брейк сработает, мы поднимаемся вверх до ближайшего условного перехода. Далее, для совсем уж безграмотных. Так же этот способ подойдет, если программа не сообщает о неправильной регистрации. Те, кто придумал это, считают себя слишком умными. А если действительный покупатель программы опечатался? Но все-таки: вводим рег-ную инфу, переключаемся в отладчик и ставим на место, где эта инфа хранится брейк по чтению. Когда брейк срабатывает, смотрим условные переходы. Там, где идет сверка с эталоном или контрольная сумма, мы выписываем нужный серийный номер! Ввод имени владельца и вычисления эталонного номера. Также это может вычисляться из серийного номера ЖМД, из версии биоса, из версии видео-биоса, ну и т. д. Не так много вариантов. Но самое главное! При событийной отладке не ищется правильный пароль, реагируют на событие сверки с введенным паролем! А как вычисляетется эталон, никого не мучает, он перехватывается на 100%. Вы ограничены в этом методе защиты. Ваша программа уязвима. Зарубежом ставят такую защиту, чтобы не оставлять дверь открытой. Чтобы не каждый сумел бы использовать программу. Пользователям на западе проще заплотить, чем каждый раз дрожать запуская взломанную программу. Промежуточные итоги и советы. • Никогда не пишите функции типа CheckPassword : boolean • Никогда не храните, и не вычисляйте ключевых слов в программе только лишь для того, чтобы произвести банальную проверку. • Никогда явно сразу после проверок нужных вам флагов и обнаружения несоответствия, не обнаруживайте этого в коде прогрнаммы. • Не проводите проверку введённой строки посимвольно и в случае первого символа несовпадения выдавайте результат – это существенно повышает длина пароля вместо возведенияскорость подбора (количество символов количества символов в степень длины пароля) – лучше вычислять имитоприставку строки • Не используйте стандартных методов сверки, как то if EnterPassword=NeedPassword, или цикл и составление некоей контрольной суммы и проверки ее, или произведения неких операций, операндами которых служат введенный и эталонный пароли и т.д. • Старайтесь вообще избегать проверок. Используйте возможность работать с данными, как с кодом и наоборот. Например, такой прием. Содержалась таблица адресов процедур или джампов, а программа к введенному паролю добавляла константу, получая смещение в таблице переходов. И переход туда! Использование серийных номеров не годится для построения полноценной защиты от копирования. Используйте этот метод, как ловушку для невнимательного кракера. Когда вы четко будете знать, что если запускается какая-то процедурка, программа взломана. Элементарной ловушкой может быть условный переход, под ним MessageBox, сообщающий "Вы завершили регистрацию!", а затем вызов загадочной процедуры. Некоторые сразу подумают, что именно в это место программы нужно попасть, и попадаются. Только неявностью вы можете победить кракера. Давайте сомнительные подтверждения на действия пользователя. Например, регистрация завершилась, а программа выдает ошибку, предлагая позвонить Продавцу. Какой-нибудь торопыга будет спешить и подумает, что это неверный ход программы. И действительно, программа после этого закрывается. На самом же деле, этот ACCESS VIOLATION 00000:7632621 не что иное, как неявный замаскированный вывод идентификационного номера машины. Честный покупатель звонит в магазин, сообщает номер своей лицензии (или товарного чека) и говорит о чудовищной ошибке. А вы ему говорите, нажмите CTRL+ALT+S. Опа, и программа побежала дальше. Ограничения на время исполнения или количество запусков. Примеры ломки: Ставится 2010 год. Ставится программу и возвращается дата на место. Существуют "пускалки", которые удерживают заданную дату при пуске какой-нибудь программы. И возвращают её на место при выходе из программа. Используя инструменты МОНИТОР REGISTRY и МОНИТОР ФАЙЛОВ, легко определяется, где и что вы прячете. Контрмеры для этих трех шагов обнаруживаются также элементарно и теми же средствами. Итак, вы получили представление о мифе "достаточной защищенности регистрационных и шареварных программ". Не используйте эти методы по прямому назначению, т.е. для "защиты", а лишь для расстановки ловушек.