Обычная SIM-карта представляет собою небольшой встраиваемый компьютер (SoC). Документация на эти устройства в свободном доступе отсутствует, а исходные тексты операционных систем для них закрыты. Рядовым пользователям это безразлично, но создателей полностью свободного стека GSM подобный подход не устраивает. Разработчик ядра Linux и основатель gpl-violations.org Харальд Вельте (Harald Welte) намерен создать открытую ОС для чипов смарт-карт.
В конце прошлого года Харальд Вельте объявил об изменении направления развития OsmocomBB. Теперь целью проекта является создание мобильного телефона, все программные модули которого, включая прошивку модуля GSM, будут открытыми. По его словам, единственным проприетарным компонентом системы на сегодняшний день остаётся SIM-карта.
Главная сложность задачи состоит в невозможности получить подробные спецификации устройства. Кроме того, операционная система записывается в ПЗУ микрокомпьютера, и для смены прошивки, по словам Вельте, приходится делать «её копию в кремнии». «Если вы не планируете выпуск миллионов подобных чипов, экономическая целесообразность их штучного производства стремится к нулю», — заявляет эксперт.
Он также отметил появление относительно недорогих чипов SDR (вроде Atmel AT90SC7272) с флэш-памятью, но проблема доступности документации к ним сохраняется. По тем же причинам чипы используются, например, в смарт-картах абонентских устройств зашифрованных спутниковых каналов, и отрасль опасается взломщиков.
Сложившаяся ситуация может измениться: в Китае недавно наладили выпуск собственных чипов для смарт-карт, которые намного дешевле имеющихся на рынке. Самое главное — китайские товарищи не чинят препятствий в получении спецификаций и не требуют подписывать договор о неразглашении.
Харальд Вельде считает, что эти чипы позволят создать массу свободного софта для смарт-карт и свободные SIM-карты. Как долго продлится «халява», он не знает и предлагает разработчикам поторопиться с созданием собственной CardOS. Особых технических проблем эксперт не видит: карты SIM/USIM достаточно просты, и сосредоточиться придётся в основном на чтении/записи файловой системы и связанных с аутентификацией операциях.