Защита программного обеспечения от несанкционированного использования Методом симметричного автоматизированного разделения Java-программ Докладчик Алергант Дмитрий Маркович Научный руководитель Гуляев Анатолий Викторович
Необходимость нового подхода к защите ПО Ежегодные потери индустрии от пиратства $57 млрд Любая защита в рамках существующей платформы (PC) может быть взломана Trusted computing – еще не скоро. И тоже может быть подвержен риску ошибки в проектировании платформы (пример – Symbian 9)
Предлагаемый подход Вынос части приложения на защищенную платформу – Сервер на площадке разработчика – Защищенный мини-сервер на площадке корпоративного заказчика – Микро-сервер, инсталлируемый в качестве модуля PC (USB, PCI-E) Привлекательность возможности автоматизированного прозрачного разделения программы.
Вынос части кода на защищенную машину Защищенная машина Программа на PC Простая защита (проверка серийного номера)
Принцип заглушек Уже применяется в других существующих решениях Разделение на уровне деревьев наследования. Три варианта размещения: Машина A, Машина B, Обе машины – Заглушки первого и второго рода Классы JRE делятся вместе с классами проекта Будет наложен ряд ограничений (доступ к полям и т.п.)
Схема работы заглушки Класс A Заглушка B Класс B Splitter Runtime вызов Протокол взаимодействия NEW CALL RET EXC LOAD FREE SHUTDOWN
Компоненты решения Среда Splitter Runtime, обеспечивающая функционирование и взаимодействие заглушек Автоматический генератор заглушек Утилита для настройки границы, и осуществления разделения проекта
Выводы Автоматизированное разделение Java- проекта возможно, подход перспективен. Все проблемы решаемы Возможно применение наработок в смежных проблемных областях: – Высокопроизводительные кластерные вычисления – Инструментарий для отладки программ