Морозная атака на шифрование в Android

Original author: h-online
  • Translation
Двое исследователей из Университета Эрлангена, в Германии, продемонстрировали способ получения зашифрованной информации смартфона под управлением Android, используя… морозилку :)



Для получения доступа к ключу шифрования, хранящемся в памяти телефона, исследователи поместили устройство в морозильную камеру на час, в последствии чего, сохранив содержимое памяти телефона — практически в буквальном смысле — заморозив. Получение ключа шифрования из устройства было осуществлено при помощи так называемой атаки через холодную загрузку.

Заморозив устройство до температуры ниже -10 градусов, можно обеспечить сохранение данных в энергозависимой памяти на короткий временной период без питания устройства. Тило Мюллер (Tilo Müller) и Майкл Шпрайценбарт (Michael Spreitzenbarth) воспользовались этой уязвимостью для отсоединения батареи устройства для последующей перезагрузки. Затем, запустив загрузчик, они перепрошили устройство своей прошивкой под говорящим названием «Frost». Для того, чтобы это сработало, загрузчик должен быть уже разблокирован, так как любая разблокировка приведет к удалению всех пользовательских данных смартфона. «Frost», затем проводит поиск в памяти ключа шифрования (среди прочей информации) для расшифровки пользовательских данных, хранящихся в энергонезависимой памяти устройства.

Начиная с версии 4.0, Android предоставляет возможность шифровать персональные данные (в случае активации пользователем соответствующего чекбокса в настройках). В дополнение к ключу шифрования, «Frost» также удалось получить другие типы персональных данных из замороженной памяти смартфона, в частности: текстовые данные доступа к Wi-Fi, историю переписки из приложения WhatsApp, книгу контактов устройства и фотографии сделанные с телефона.

image
image
image
Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 58

    +27
    Нетривиальный способ, весьма и весьма изящно, как мне кажется. Я бы не додумался до такого.
    • UFO just landed and posted this here
        +7
        Теперь буду знать. До этого момента даже не слышал.
      –27
      Это же пипец!
        +19
        Мария Кожевникова, перелогиньтесь!
        • UFO just landed and posted this here
            0
            Она вам даже больше скажет:

        –8
        Хехе, у меня в программе 10ти летней давности вся приватная информация зануляется перед удалением.
          +4
          Я думаю здесь все несколько иначе, андроид просто не успевает ничего удалить, так как батарею вынимают на живую.
            0
            Морально — критическим классам нужно наследовать SecureMemory :)
            +17
            а ее никто и не удалял
            работающий смартфон замораживают и вытаскивают батарею. потом грузят свою прошивку и ищут в памяти ключи доступа к данным, которые остались в памяти от старой прошивки.
            +2
            Что теперь? в андройд добавят датчик температуры который будет вычищать память и выключаться при критической температуре?
              +3
              Или очистку памяти хардварно перед запуском загрузчика.
                0
                не поможет, если после заморозки пересадить чип в другую микросхему, и уже через нее считать данные из памяти
                  +3
                  Отпаять чип = разморозить его. Разве что как-то в холодном виде отковыривать от платы, а потом цеплять подпружиненные контакты (в количестве 100+ штук). Технически осуществимо, но довольно муторно.
                    +1
                    Времени не хватит. Данные в замороженном виде несколько секунд хранятся, а не целую вечность.
                    0
                    Технически подпружиненные контакты это геморой. Плюс для нормального контакта у исследуемого чипа должны быть ровные ноги/шарики, а как этого добиться без отпайки я слабо себе представляю
                      0
                      Можно сначала (без охлаждения) отпаять, потом присоединить обратно на каком-нибудь разъемном соединении. После этого дать ему поработать, чтобы секретная информация оказалась в памяти, заморозить и быстро отсоединить.
                  0
                  Создавать write-only хранилище для сеансовых ключей, физически и протокольно отделённое от оперативной памяти и кэш-памяти процессора? Пока только для soft-микпропроцессоров, но если посмотреть на последние архитектуры Intel, то чем чёрт не шутит? AES уже давно поддерживают, осталось сделать блоки памяти, которые могут читать только кодирующие инструкции.
                    0
                    Да датчик температуры то есть практически в любом девайсе (темпераатура акб), осталось софтину написать)
                      +2
                      можно остудить один чип, например азотом. быстро и надолго.
                      потом -10 вполне нормальная температура окружающей среды. будет странно, если при такой температуре телефон превратится в тыкву будет паниковать, шифровать все данные и удалять ключи)
                        +1
                        окружающей среды, но не бытовой электроники. Датчик подразумевается внутри.
                        Но это в любом случае криво. Дальше нужно будет делать защиту от вскрытия и т.п.
                        Извините, но это бытовая техника а не шпионские штучки.
                        Кому надо серьезно шифроваться и при этом иметь мобильные устройства, да еще и оставлять их включенными возле злоумышленников, да еще и не использовать ключи/токены и прочие хардварные носители ключей — тот пусть делает себе особое железо.
                      0
                      К удивлению, но мой Nexus One в январе несколько раз на морозе так выключался (был во внешнем кармане), причём я не мог понять почему. После раза 3-го решил посмотреть температуру батарейки — было +0.3°C. Причём, когда он выключился на глазах, он это сделал с корректным завершением работы.

                      Не думаю, что это связано с шифрованием, но тогда это работало. Прошивка была последняя на тот момент от Evervolv.
                    • UFO just landed and posted this here
                      • UFO just landed and posted this here
                          +8
                          Злой вы. Человек включил не «что-нибудь», а шифрование, и теперь только уточняет, что _именно_ шифруется по умолчанию. Это совсем не то же самое, что «включил функцию которая делает неведомо-что».
                          • UFO just landed and posted this here
                          • UFO just landed and posted this here
                            • UFO just landed and posted this here
                                0
                                А можно и мне эту ссылку?
                              0
                              Кстати, это необратимая операция, я себе на планшете тоже включил шифрование. Потом думал отменить, да не тут то было, только через сброс к заводским настройкам.
                              0
                              А при чём тут конкертно Android? По идее с тем же подходом можно любую другую ОС ломануть. Я ошибаюсь?
                                +2
                                Именно так, этому способу уже лет 10, судя по всему: www.cl.cam.ac.uk/techreports/UCAM-CL-TR-536.html.
                                Но достаточно к чему-нибудь давно известному приписать «Android» — и опа, совершенно новое исследование!
                                  0
                                  вообще-то взломоустойчивось это свойство ПО. и метод атаки путем получения доступа к памяти процесса один из вожможных векторов атаки. ПО имеющее отношение к шифрованию должно обеспечивать устойчивость к подобным аттакам.
                                  Например, www.livehacking.com/2011/12/12/new-putty-release-fixes-password-not-wiped-vulnerability/
                                  +2
                                  Как выше уже говорилось — этой атаке много лет.
                                  Самая интересная реализация была в атаке на ноутбуки — ноутбук с включенным шифрованием (не важно чего) в режиме сна (S3 — Suspend to RAM) опускался в жидкий азот, охлаждался, после чего его модули памяти спокойно пересаживались в другой такой-же. Охлаждение ОЗУ позволяло особенно не торопиться, времени хватало на перестановку памяти и второй ноут прекрасно выходил из сна в ОС первого. Весь плюс такого способа атаки в том, что модули памяти можно переставить не в ноут, а в девайс, который их считает и сохранит содержимое на другой носитель, после чего у взломщика будет уйма времени, чтобы спокойно вытащить из ОЗУ все ключи шифрования и любимое порно с котятами. Тут увы ничем не поможешь — чтобы работать с защифрованной информацией ключ должен быть в ОЗУ, а оно слито полностью.
                                    +1
                                    Вот тут поможет вариант, когда ключ хранится в памяти процессора и не попадает в оперативку, точнее, попадает туда на короткое время. Но, как я понимаю, пока такой возможности в обычных процессорах нет.
                                      0
                                      Увы да. Для параноиков всегда остается внешний проходной шифратор с контролем вскрытия корпуса и прочих вариантов НСД. Главное вовремя будет уничтожить ключики.
                                      –1
                                      BitLocker удаляет ключи из памяти при отправке компьютера в сон, думаю и PGP с TrueCrypt поступают аналогично.
                                        +1
                                        Хехе, тут в эксперименте сон использовался для того, чтобы спокойно переставить планку памяти в другую машину, чтобы она потом запустилась нормально. В случае установки планки памяти в какой-нибудь считыватель сон уже не нужен. Заморозил, вынул и вперед
                                      0
                                      Вброс производителей Android'офонов против разлочивания бутлоадеров? 0_о

                                      Трудно поверить, производители смартфонов не заложили backdoor. Одна компания попыталась повыёживаться перед спецслужбами на этот счёт. Итог — едва ли не банкротство и мизерная доля рынка. Их попросту никуда не пустили… Банальный пример, наша горячо любимая Родина.

                                      Думаю серьезные производители неплохо усвоили этот урок. Соответствующие «компетентные» товарищи, если надо, всегда получат доступ. А там где один прошёл, всегда и второй сможет пройти…

                                      То, что они сделали это необратимое воздействие на аппарат. С тем же успехом для большинства SoC можно физически обеспечить отдельное питание для блоков памяти, чтобы при ребуте память не обнулялась, и передать управление на загрузчик обычным jump'ом.

                                      То, что эти ребята показали, это эффектно, но негарантированный метод… Время удержания данных в ящейках памяти на высоких техпроцессах весьма индивидуально для каждого чипа…
                                        0
                                        Гм.

                                        То есть если я в зимой в машине оставлю мобилку на андроиде и она замерзнет настолько, что сдохнет литий-ионный аккумулятор — и если я быстро вставлю новый аккум, то мне после этого девайс перезагружать не обязательно?
                                          +2
                                          Девайс принудительно перезагрузит схема POR (Power-On Reset), как только питание поступит.
                                            –1
                                            а если переткнуть быстрее чем за 0,00001 сек?
                                              +1
                                              А если бы у бабушки был бы [], то она была бы дедушкой…
                                          0
                                          Тонко
                                            0
                                            Вообще говоря, стоит обратить внимание на другую сторону этого эксперимента, а именно, на то, что, как оказалось, пароли и ключи хранятся в памяти в открытом виде. А важно это потому, что есть и другие способы атак для доступа к памяти процесса, и физический доступ к устройству даже не нужен.

                                            Вот, например, надавно найденая уязвимость в смартфонах Samsung точно также позволяет утащить ключи
                                            arstechnica.com/security/2012/12/developer-warns-of-critical-vulnerability-in-many-samsung-smartphones/
                                              +1
                                              А как можно осуществить шифрование/расшифрование, не имея где-нибудь ключа в открытом виде?
                                                0
                                                Тоже интересно, но не сильно.
                                                Лень гуглить но очевидно ключик защищается паролем вводимым пользователем или как-то подобно.
                                              0
                                              А как загрузчик обходится без ОЗУ?
                                              Здесь напрашивается пару вариантов, но может там что-то интереснее?
                                              Первое что приходит в голову это шаманства в стиле старых добрых PIC, где ценой роста кода в ПЗУ фактически обходились регистрами и ОЗУ размером в десяток байтов пользовались очень экономно. (Вспоминается как разрабатывали один девайс, и программист у меня получал за то, что использовал под переменную целый байт ОЗУ, когда с головой хватало полбайта.)

                                              Второй вариант который приходит в голову сразу за этим — просто делаем задержку и ждем пока она оттаит — по идее обнуляться то ей нет причин, питание ведь уже есть. Но в любом случае он должен это как-то предусматривать, или ожидание, или тестирование того разморозилась ли уже память?
                                              Хотелось бы подробностей :)
                                                +3
                                                Морозная история
                                                  +2
                                                  Прохладная былина
                                                  –2
                                                  Отлично! После прочтения статьи вспомнился ещё один не тривиальный способ получения всех ключей и паролей доступа. Способ называется «термо-ректальный криптоанализ». Когда за паролями придут двое-трое здоровенных криптоаналитиков, от них сложно будет уберечь информацию =)
                                                    –1
                                                    Параноик может сломать пополам флешку с ключами, в данном случае электронагревательный элемент в толстой кишке вряд-ли поможет работе криптоаналитика.
                                                    –2
                                                    Можно я напишу еще пару статей?
                                                    Морозная атака на шифрование в iOS
                                                    Морозная атака на шифрование в Windows
                                                    Морозная атака на шифрование в Linux
                                                    ;-)
                                                      +5
                                                      Напишите.
                                                      0
                                                      Старая, но по-прежнем актуальная тема.
                                                      Для Truecrypt так ключи можно подобрать.

                                                      ну и «FrozenCache Mitigating cold-boot attacks for Full-Disk-Encryption software»:
                                                      www.youtube.com/watch?v=Lh5vFKLbBbw&feature=player_embedded
                                                        +1
                                                        Для трукрипта можно подобрать прямым доступом к памяти через Firewire elcomsoft.ru/efdd.html

                                                      Only users with full accounts can post comments. Log in, please.