При прошивке смартфона или чтении дампа eMMC через программатор в списке разделов часто встречается RPMB — и попытка записать туда обычный дамп завершается ошибкой, а иногда и полной потерей загрузки устройства. RPMB (Replay Protected Memory Block) — это специальная область микросхемы eMMC, защищённая от подмены и повторной записи данных на аппаратном уровне, и работать с ней по правилам обычных разделов нельзя.
В этой статье разберём, что представляет собой RPMB eMMC, какие данные там хранятся, почему раздел недоступен для обычной записи и как безопасно проверить его состояние при диагностике устройства.
Что такое RPMB в eMMC простыми словами
Микросхема eMMC (embedded MultiMediaCard) — это флеш-память со встроенным контроллером, которая устанавливается в смартфоны, планшеты, телевизоры, автомагнитолы и одноплатные компьютеры. Внутри неё помимо основной пользовательской области (User Data Area) существуют служебные разделы: два загрузочных (boot1 и boot2) и RPMB.
RPMB — это область памяти, запись в которую возможна только с криптографической аутентификацией и счётчиком записи, что исключает подмену или «откат» данных. Название расшифровывается как Replay Protected Memory Block — блок памяти с защитой от атак повторного воспроизведения.
Проще говоря, это сейф внутри флешки: прочитать содержимое можно только зная секретный ключ, а записать — лишь увеличивая внутренний счётчик, поэтому подсунуть старую сохранённую копию данных не получится.
Как устроена защита RPMB
Механизм защиты строится на трёх элементах, заданных стандартом eMMC (спецификации JEDEC):
- 🔑 Authentication Key — 32-байтовый секретный ключ, который однократно программируется в чип и больше не может быть прочитан наружу.
- 🔢 Write Counter — монотонно возрастающий счётчик записей; контроллер отклоняет команду записи, если счётчик в запросе не совпадает с текущим.
- 🛡️ HMAC-SHA256 — каждый запрос на чтение или запись подписывается криптографическим хешем, вычисленным с использованием ключа.
- 🎲 Nonce — случайное число при чтении, защищающее от подмены ответа.
Благодаря счётчику атака класса replay становится бессмысленной: даже если злоумышленник перехватил корректный пакет записи и попытался отправить его повторно, контроллер eMMC отвергнет команду из-за несовпадения счётчика.
Размер области RPMB определяется производителем чипа и обычно составляет от 128 КБ до нескольких мегабайт — этого достаточно, ведь хранятся там не файлы, а компактные ключи и счётчики.
💡RPMB защищён не шифрованием содержимого как таковым, а невозможностью незаметно перезаписать или «откатить» данные без секретного ключа.