Дипломный проект «Защита ПО цифровой видео-приставки фирмы General DataComm от несанкционированного использования» Выполнил студент гр. 6085/2 Руководитель, к.т.н., доцент Глушков П.В. Сальников В.Ю.
Цели работы Основная цель: Создание механизма защита ПО для охраны исключительных авторских прав разработчиков ПО Назначение: Защита ПО от несанкционированного копирования/модификации с целью последующего переиспользования и тиражирования Конечное устройство ПО Аналог устройства Копия
Задачи работы 1) Постановка задачи и формирование ТЗ 2) Обзор существующих методов защиты программного кода 3) Исследование и выбор методов, применимых для поставленной цели 4) Разработка структурной схемы защиты 5) Реализация. Разработка модулей защиты в соответствии с предложенной схемой 6) Тестирование разработанных модулей 7) Составление технической документации
Описание объекта защиты аппаратная платформа разработки: - SoC Sti7105, ST Microelectronics программная платформа разработки: - STLinux-2.3 (ОС) - STAPI 2.0 (Набор библиотек) - u-Boot (Загрузчик) НЕ АВТОРСКАЯ РАЗРАБОТКА Основное операционное ПО устройства АВТОРСКАЯ РАЗРАБОТКА Сеть Передачи данных IPTV Server STB пользователя TV пользователя
Требования к защите Ядро ОС ОПО Загрузчик ОС PROTECTIONPROTECTION UPDATE Flash-память Защищенная Flash-память Debug Copy Устройство Modify ОСНОВНЫЕ ТРЕБОВАНИЯ 1) Интеграция защитного механизма в firmware устройства (firmware = ОС+Ядро+Загрузчик) 2) Контроль целостности firmware устройства 3) Возможность сакнционированного обновления OS и SW 4) Работа firmware только на чипах GDC 5) Низкая стоимость защиты 6) Удобство работы пользователя 7) Удобство работы оператора IPTV услуг ДОПОЛНИТЕЛЬНЫЕ ТРЕБОВАНИЯ Минимальное использование аппаратных средств Отсутсвие Internet-соединения при эксплуатации
Обзор методов защиты Устройство Защитное устройство RAM Исполняемый код Защитный код CPU Физические средства защиты + вывод устройства из строя при взломе + надежность - удобство работы с устройством - цена производства Аппаратные средства защиты + незнание взломщиком принципа работы + производительность - усложнение разработки на всех уровнях - цена производства Программные средства защиты + цена + простота внедрения - возможность полного детального анализа вывод 1) Неприменимость физических методов (удобство использования) 2) Максимально ограниченное применение аппаратных средств (цена, сложность) 3) Программные средства защиты предпочтительны
Анализ возможных атак ОПО Ядро ОС Загрузчик ОС Устройство Пользователь Провайдер IPTV Производитель Имеет: весь исполняемый код Цель: модификация Средства: аппаратный программатор Имеет: образ ядра ОС, образ OSW Цель: модификация, тиражирование Средства: аппаратный программатор, аналогичное устр-во, средства физического чтения памяти Имеет: часть исполняемого кода, вероятнее всего только Boot Loader Цель: модификация, тиражирование Средства: аппаратный программатор, аналогичное устр-во, средства физического чтения памяти
Структурная схема защиты Загрузчик ОС Ядро ОС Операционное ПО Распределенный механизм защиты Загрузочный модуль Модуль настройки ПО Модуль ПО Внешняя локальная сеть Серверный модуль Преимущества: + возможность независимой разработки отдельных модулей + большой объем кода для поиска при взломе + защита работает разнесенно по времени + цена + удобство
Процедура активации Схема работы защиты Загрузочный модуль Серверный модуль Загрузочный модуль Сервер обновления передача уникального идентификатора Проверка данных передача рабочих данных Сохранение данных Получение рабочего кода Запрос рабочего кода Настройка рабочего кода с помощью рабочих данных ЭТАП ПРОИЗВОДСТВА ЭТАП ЭКСПЛУАТАЦИИ
Тестирование Хост серверного модуля (ОС Windows ) Sti 7105 STMicro 2.0 (аппаратный отладчик) Локальная сеть Машина сборки кода (ОС Linux ) RS 232
GUI Серверного модуля
Экономическое обоснование Основная цель: Себестоимость устройства не должна возрасти более чем на 2-3% Цена 1 устр-ва: 3130 руб Кол-во устр-в в пробной партии: штук (515688,62 / 10000) / 3130 = 0,016 ИТОГ: Дорожание 1 устр-ва На 1.6 % Статьи затрат Затраты (руб.) Материалы, покупные изделия Основная заработная плата разработчиков Дополнительная заработная плата Отчисления на социальные нужды Затраты на электроэнергию для технологических целей 464,62 Прочие затраты 1676 Накладные расходы Общая сметная стоимость ,62
Результаты работы 1) Исследованы различные методы защиты ПО 2) Разработана структурная схема защиты, одобренная General DataComm 3) Разработаны программные модули реализующие функции: - Серверного модуля - Загрузочного модуля НАПИСАННЫЕ МОДУЛИ ПОЛНОСТЬЮ ПРОТЕСТИРОВАНЫ НА РАБОТОСПОСОБНОСТЬ 4) Протестированы механизмы внедрения модуля настройки ПО и модуля ПО 5) Проведен экономический анализ разработки. РАЗРАБОТКА ПОЛНОСТЬЮ УКЛАДЫВАЕТСЯ В ПОСТАВЛЕННЫЕ РАМКИ
Спасибо за внимание
Подробнее о процедуре активации Активируемое Устройство Серверный модуль Соединение Данные об устройстве Разрыв соединения функция подписи Модификация функции подписи ВЫХОД Подписывание данных Проверка данных Этап завершен Обмен ключами сессии Проверка не успешна Проверка успешна Проверка не успешна Проверка успешна Проверка данных Подписанные данные Разрыв соединения ВЫХОД Передача необходимых данных
Серверный модуль Начало Получение сообщения о начале соединения Сообщение получено? Нет Да Обмен ключами Идентификация клиента Устройство есть в базе? Отправка данных Конец Разрыв соединения В начало Да Нет STB Ядро ОС ПО Загрузчик Удаленный сервер Серверный модуль
Загрузочный модуль Процедура активации Начало Соединение с сервером Активировано ли устройство? Подсчет КС кода ядра Загрузка образа ядра ОС с сервера обновлений Конец Обмен ключами Аутентификация на сервере Получение и сохранение данных Конец Нет Да STB Ядро ОС ПО Загрузчик Удаленный сервер Серверный модуль
Модуль настройки ПО Начало Подсчет КС операционного ПО КС верна? Нет Да Реакция Конец Модификация операционного ПО Чтение загрузочной информации из RAM Конец STB Ядро ОС ПО Загрузчик Удаленный сервер Серверный модуль
Модуль ПО Начало Периодическая проверка исполняемого кода Проверка успешна? Нет Да Реакция Конец STB Ядро ОС ПО Загрузчик Удаленный сервер Серверный модуль