Сообщество недовольно балансированием HTC на грани нарушения GPL

Компания HTC намерена отложить на 3-4 месяца публикацию исходных текстов, связанных с изменениями Linux-ядра, используемого на телефоне T-Mobile G2. Сообщество независимых разработчиков недовольно подобным шагом HTC, так как среди данных изменений ядра находится код, управляющий доступом к Flash-памяти, который помог бы обойти появившуюся в данной модели телефона низкоуровневую защиту от модификации прошивки. Так как Linux-ядро распространяется в рамках лицензии GPL, компания HTC обязана открыть все связанные с ядром изменения, но открытие кода даст возможность обойти внесенные ограничения, поэтому HTC заняла скользкую позицию - с одной стороны не отказываясь от соблюдения требований лицензии GPL, но с другой стороны максимально затягивая открытие кода.

Суть появившейся в телефоне G2 защиты сводится к блокированию на уровне iNAND-чипа записи в определенные области Flash, что приводит после перезагрузки телефона к сбросу в первоначальное состояние всех внесенных во системную память телефона изменений (например, невозможно поменять загрузчик и сменить прошивку, а модификация текущей прошивки и получение root-привилегий действует только до перезагрузки).

Исследование начинки телефона дало основание утверждать о том, что доступ к памяти может быть открыт на запись после отправки серии команд чипу Flash-памяти. Открытие кода изменений Linux-ядра сразу бы раскрыло какие именно команды должны быть отправлены. В настоящее время осуществляются попытки подбора данных команд наугад, но эффективность подобных действий близка к работе в полной темноте (необходимо определить содержимое расширенной 512-байтной команды для записи в EXT_CSD-регистр).

Изначально было предложено 7 типов атак, потенциально способных обойти внесенные ограничения. Уже рассмотрено 5 методов, которые не привели к успеху. В разработке остается два теоретических метода: сброс содержимого внутренней eMMC карты через загрузку специально подготовленного модуля ядра и получение доступа к HTCNV и установке supercid, что эквивалентно взлому привязки к оператору связи и отмене проверки сигнатуры прошивки, что позволит подставить свою прошивку под видом официального обновления.

К сожалению лицензия GPLv2 не останавливает производителей оборудования от блокирования загрузки сторонних прошивок через проверку загрузчиком сигнатуры. После нашумешей историей с компанией TiVo, одной из важнейших задач при создании лицензии GPLv3 стала защита от подобных злоупотреблений, но к сожалению перевести Linux-ядро на более новую лицензию нереально, для этого потребовалось бы получение письменного разрешение от тысяч разработчиков, код которых принимался в ядро с момента его появления.

©  OpenNet