В процессе работы над развитием проекта CAMBridge возникла простая и изящная идея - самоактивирующийся лоадер. Пока решил потренироваться "на кошках" и реализовать его на старой платформе (PIC18F1320). Если все пойдет ОК, то аналогичная система будет использована и в новом, готовящемся к релизу, проекте (на PIC18F67J60).
Принцип работы следующий: Прошивка лоадера и программа-менеджер доступны в паблике. Пользователь прошивает контроллер (обязательно с той конфигурацией, которая определена в прошивке - биты защиты от чтения установлены!) и запускает в макете бриджа. При первом запуске генерится уникальный ID и сохраняется в памяти, при последующих этот ID выдается наружу и виден в программе-менеджере. Пользователь отсылает ID мне, и, если бридж был зашит верно, получает активационный ключ. С помощью программы-менеджера бридж активируется полученным ключем и в дальнейшем готов к многократному вливанию различных прошивок.
Криптофайлы прошивок вместе со своими конфигураторами также доступны в паблике (пока имеется последняя версия софта для OpenBox, в течение пары дней подготовлю софты для Globo (HSIC) и GoldenInterstar) и будут постоянно обновляются. В любой момент пользователь может изменить прошивку бриджа на новую с помощью той же программы-менеджера.
При этом решаются сразу три проблемы CAMBridge:
- нет необходимости пересылки прошитых контроллеров для изготовления бриджа самим пользователем. Пересылается только информация;
- пользователь может обновлять софт однажды активированного бриджа многократно, не выпаивая контроллер и не используя программатор (процесс обновления софта занимает секунды и эквивалентен конфигурированию);
- пользователь может выбирать софт бриджа из имеющегося в паблике для различных ресиверов, что практически равнозначно выбору протокола ресивера при конфигурировании.
О защите: имея горький опыт взломанных серийных номеров, особое внимание уделил криптостойкости. Используются три различных математически обоснованных криптоалгоритма: для шифрования файлов прошивки, обработки активационного ключа и хеширования кода лоадера. Обилие математики вместе с использованием приемов неявной блокировки отладчиков (как симуляторов, так и внутрисхемных эмуляторов, основанные на недокументированных тонкостях работы реального чипа) существенно затрудняет анализ и отладку кода лоадера, приближая затраты на взлом к стоимости защищаемого софта (что, собственно, является основой криптостойкости любой системы). И тем не менее, для фанатов (луганских, китайских и т.п.) хочу предложить конкурс на взлом. Кроме автоматического получения всех прошивок, взломавший от меня лично бонусом получит исходники системы защиты, ну и респект-уважуху пожизненно.
PS: успешным взломом будт считаться возможность прошивки неограниченного количества чипов любым криптософтом из имеющихся в паблике.