?

Log in

No account? Create an account
о памяти - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

о памяти [фев. 22, 2008|10:15 am]
Anatoly Vorobey
Cold Boot Attacks on Disk Encryption (англ.) - очень интересная запись о новом виде взлома зашифрованных дисков (обычно использующихся для защиты данных в ноутбуках). Оказывается, вопреки наивным предположениям, при выключении компьютера современная память (DRAM) обнуляется не сразу, а только через несколько секунд; если же ее охладить, то и намного дольше.

Подход простой: отключаем ноутбук от электричества, тут же включаем его снова и загружаем свою операционную систему (например, через USB-диск), записываем все содержимое памяти, и потом анализируем его. Где-то там находится криптографический ключ для расшифровки исходного диска (которым пользовалась программа-драйвер), и есть эффективные способы довольно быстро его найти, проверить и расшифровать содержимое диска. Если память стирается слишком быстро, можно перед отключением электричества ее охладить с помощью специального спрея.

(по ссылке есть больше подробностей и интересное обсуждение в комментариях)
СсылкаОтветить

Comments:
Страница 1 из 2
<<[1] [2] >>
[User Picture]From: aalien
2008-02-22 08:38 am
Ну не такого уж и специального, надо заметить, спрея.
(Ответить) (Thread)
[User Picture]From: avva
2008-02-22 08:39 am
Хорошо, пусть будет самого обыкновенного, неоригинального, будничного спрея широкого назначения :)
(Ответить) (Parent) (Thread)
[User Picture]From: dimaniko
2008-02-22 08:46 am
Чорт, никогда не доверял "быстрым" перезагрузкам.
(Ответить) (Thread)
[User Picture]From: crazy_lionheart
2008-02-22 08:51 am
Идея конечно красивая, но ведь с та система под которой будешь "тащить" память будет в неё же грузиться.
(Ответить) (Thread)
[User Picture]From: avva
2008-02-22 08:53 am
Почему? Можно загрузить что-то свое через USB-штучку какую-то. Если в BIOSе выставлено, что с USB не грузится, тогда придется охладить память и переставить в свой компьютер.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: djuffin
2008-02-22 08:51 am
А как загрузить свою операционную систему не испортив память?
(Ответить) (Thread)
[User Picture]From: avva
2008-02-22 08:54 am
См. выше.
(Ответить) (Parent) (Thread)
[User Picture]From: side_effect
2008-02-22 09:19 am
а почему просто не перезагрузить с флэшки? тогда и дополнительное охлаждение, скорее всего, не понадобится.
(Ответить) (Thread)
[User Picture]From: avva
2008-02-22 09:25 am
Ну да, они это и предлагают.
(Ответить) (Parent) (Thread)
[User Picture]From: amarao_san
2008-02-22 09:47 am
звучит как утка.

Кроме того, "несколько секунд" на перезагрузку и загрузку своей ос не достаточно.
(Ответить) (Thread)
[User Picture]From: avva
2008-02-22 09:49 am
Вообще-то это серьезные люди пишут. А несколько секунд надо всего лишь, чтобы подключить свой USB-драйв и подключить опять к электричеству - после этого память получит подпитку, а обнуляться специально не будет.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: begemotv2718
2008-02-22 10:09 am
Красиво!

Казалось бы, эту дырку можно существенно уменьшить, если шифровать только пользовательскую partition (/home) и не требовать от системы грузиться с зашифрованного диска, а ключ от зашифрованой partition привязать к паролю пользователя.

Тогда, атакующий сможет что-то сделать только если получит доступ к "горячему", уже полностью загруженному компутеру, в коем случае его пользователь ССЗБ.
(Ответить) (Thread)
From: baca6u
2008-02-22 10:40 am
если ключ не привязан к паролю, а хранится на диске - не вижу препятствий для того чтобы там его найти без всяких выкрутасов. ДискЭдитом.
(Ответить) (Parent) (Thread) (Развернуть)
From: baca6u
2008-02-22 10:35 am
уверен, есть и более простой способ вызвать сбой и заставить сделать дамп памяти на диск без выключения компьютера и перезагрузки.
Главный вопрос состоит в том, как найти в этой многомегабайтной куче мусора ключ для расшифровки.
Ну и еще вопросы остаются. Должна сложиться такая ситуация - у нас в руках есть ноут с запущеной операционной системой и запущенным драйвером для расшифровки, то есть кто-то включил ноут, ввел пароль для доступа к зашифрованным данным и отдал этот ноут мне для эксперимента...
что то с логикой тут не так...
(Ответить) (Thread)
From: noknow
2008-02-22 05:46 pm
Найти ключ не сложно - число мест, где может быть (начинаться) ключ - 2^32, существенно меньше, чем число возможных ключей - 2^256 (для 256-битового ключа)
(Ответить) (Parent) (Thread)
[User Picture]From: alll
2008-02-22 10:45 am
Совершенно непонятно, зачем такие сложности, если "программа-драйвер" уже имеет ключ для расшифровки.
(Ответить) (Thread)
[User Picture]From: avva
2008-02-22 10:49 am
предполагается, что у вас нет пароля пользователя или другой возможности добраться до памяти этой программы, пока она бежит внутри родной ОС ноутбука.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: msh
2008-02-22 01:59 pm
А где взять работающий лаптоп с расшифрованным диском?

На самом деле я бы просто сделал дивайс с "BIOS", запихнул его на ходу компьютеру в PCI (через док, например, для лаптопа), после чего с дивайса сделал бы reset, его "BIOS" бы стал исполняться первым и задампил всю память куда надо

Решает проблему с запретом загрузки с USB и использованием памяти тем, что мы загружаем
(Ответить) (Thread)
[User Picture]From: dyak
2008-02-22 03:35 pm
Но это тривиально лечится, если при "нормальном" выключении компьютера занулять или зарандомизировать RAM.

А если "подловить" юзера, когда он к зашифрованному диску подключен и отобрать у него комп, то зачем же все эти трюки для добывания ключа, когда все содержание диска и так доступно.
(Ответить) (Thread)
[User Picture]From: alll
2008-02-22 04:34 pm
Однозначно! Да ещё и сам юзер вполне доступен для терморектального криптоанализа.
(Ответить) (Parent) (Thread)
[User Picture]From: faceted_jacinth
2008-02-22 04:57 pm
Я вначале долго не понимал и думал, что все разработчики энкрипторов типа глупые. А потом, кажется, понял, но, может быть не до конца:
Имеется в виду, что зашифрованный диск расшифровывается в два этапа, вначале берётся пользовательский ключ с которым производится computationally expensive (чтобы усложнить брутфорс) расшифровка другого, более длинного ключа, который скармливается драйверу. Далее, если нам в руки попал незалоченный ноутбук, то ничего придумывать не надо, бери и читай. Если нам в руки попал выключенный ноутбук, который был выключен пользователем более чем пять секунд назад, то мы ничего сделать не можем. Однако остаётся случай залоченного ноутбука, на котором запущена шифровалка, написанная не очень умными людьми, которые забыли по локу стереть (физически, при помощи какой-нибудь АПИ типа SecureZeroMemory) из памяти и закэшированный расшифрованный длинный ключ.

Если так, то понятно, что делать, я это как бы написал уже =)

Правда, ещё было бы неплохо на уровне оси скидывать все программы, имеющие дело с зашифрованными данными, в специальный зашифрованный своп (или хотя бы шифровать всю их память). Ну, там, эвристику какую придумать, или вообще запускать их на специальной виртуальной машине, у которой вся память всё время зашифрована (или достаточно быстро шифруется/дешифруется при локе/анлоке). Потому что предлагаемое мной решение замечательно ограничивает доступ ко всему зашифрованному диску, но довольно много sensitive information всё равно может попасть в руки Нехороших (или, наоборот, Хороших) Людей.
(Ответить) (Thread)
From: (Anonymous)
2008-02-23 06:27 am
не забываем что во время лока система продолжает работать и ключ может понадобиться
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: iratus
2008-02-22 07:34 pm
Да, я читал эту статью. В принципе они правы, но тут есть несколько ньюансов.
Во-первых, большинство DDR/SDRAM контроллеров имеют возможность инициализировать память паттерном при инициалиазации контроллера. я сам этим часто пользовался при отладке разного железа. достаточно из опционального сделать такое поведение обязательным, и данный метод перестает работать.
Кроме того, как скажет любой кто в теме, в серьезном криптовании вообще не пользуются софтверным методом. единственное более или менее защищенное место для ключей это специальное железо, откуда этот ключ не может выйти никаким другим способом кроме как специализированный электронный микроскоп и другие многомиллионные игрушки.

Помимо этого, есть еще способы усилить защиту ключа в оперативной памати с помощью различных методов. например XORить его с каким-нить рандомальным значением которое практически невозможно узнать post-mortem.
(Ответить) (Thread)
[User Picture]From: avva
2008-02-23 11:12 am
Ну как сказать - смотря что такое "серьезное криптование". Достаточно много весьма серьезных компаний опираются только на софтверное криптование ноутбуков своих работников.

Насчет XORа ты прав, это стоящая мера, и наверное нужно ожидать, что ей начнут пользоваться после этой статьи.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: malaya_zemlya
2008-02-23 02:30 am
Если ключ при этом находится по фиксированному адресу, то даже спрея не надо - RAM будет иметь тенденцию при рестарте инициализироваться прямо в него. Не помню как эта атака называется (и не факт, что все еще работает)

теперь вот не могу найти ссылку, потому что весь гугль уже забит ссылками на нынешнюю атаку :(

(Ответить) (Thread)
From: (Anonymous)
2008-02-23 05:26 am
Всё это бред. P=NP
(Ответить) (Thread)
Страница 1 из 2
<<[1] [2] >>