Сейчас будет офигенная инженерная история. Началось с обсуждения рекон

2025-01-27 12:50:24Z
Сейчас будет офигенная инженерная история. Началось с обсуждения реконсолидации человечьей памяти — когда каждое чтение требует перезаписи воспоминаний. Про человеков потом, сейчас про железяки. 

Оперативная память (которая DRAM) тоже требует перезаписи после чтения. Обычно так:
— Есть сеть ячеек. Каждая ячейка — это транзистор доступа плюс конденсатор. Если конденсатор заряжен до напряжения питания, это значение 1 у ячейки. Если разряжен — это значение 0.
— Ячейки сформированы в двухмерные матрицы. Условно по горизонтали приходят линии управления транзисторами доступа (word lines). По условной вертикали приходят линии чтения-записи (bit lines). Word line открывает строку таблицы для чтения и записи, а bit line получает значение из столбца.
— Для чтения битовая линия заряжается до половины напряжения питания. Потом к этой битовой линии подключается одна ячейка из строки, открытой для чтения. 
— Если после подключения битовой линии в ней падает заряд, значит, там был 0. Если растёт — значит, там был 1. 
— Заряд конденсатора никогда не равен точно 1, потому что конденсатор со временем разряжается. Условно, когда он не сможет дать половину напряжения питания, 1 превратится в 0. 
— По результату усилений и сравнений на выход подаётся либо 0, либо 1 — в контроллер памяти или процессор. 
— Поскольку происходит балансирование заряда между конденсатором и битовой линией, он разряжается в неё или заряжается от неё. И нужно восстановить заряд конденсатора. Пока вся строка ещё открыта, подаётся напряжение для регенерации. 
— Горизонталь закрывается для доступа. Битовая линия перезаряжается для следующего цикла. 

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

Есть ещё SRAM — статическая память. Там каждая ячейка хранится в виде триггера из 6 транзисторов. Во многих реализациях это быстрее, дороже, менее требовательно к питанию и занимает овердофига места на кристалле. Это может быть кэш-память процессора. 

Вернёмся к DRAM. Конденсаторы теряют заряд не только на чтении, но и просто так. Гарантированное удержание значения обычно около 60 мс. Это означает массовые операции на всю память — ничего нельзя хранить долго, нужно постоянно обновлять всё. 

И вот здесь и начинается настоящая история. 

Заряды не исчезают мгновенно при отключении питания! Если нештатно сорвать питание с памяти, то она не будет очищена. Если ещё и охладить чип, саморазряд замедлится и будет можно удержать заряд на минуты. 

В оперативной памяти хранятся ключи доступа к HDD (привет, Битлокер, Веракрипт), ключи SSL, пароли и прочие штуки, которые могут понадобиться замотивированному человеку. Для этого надо получить доступ к устройству, охладить его во время работы, потом резко выдернуть память и охладить дополнительно, а затем перенести на стенд, который в отличие от типовой BIOS не обнуляет всё на старте, а вычитывает.

Это и есть Cold Boot Attack. 

Вот работа 2008 года, где показали, что атака холодной перезагрузкой позволяет извлечь ключи шифрования жёсткого диска, сессионные ключи и пароли SSL/TLS (если повезёт подловить момент, пока они в оперативной памяти), данные пользователей (сами расшифрованные документы). Если нет шифрования самой оперативки в реальном времени, конечно. 

При -50°C 99% данных сохраняются больше пары минут в тогдашней памяти. Это можно сделать с помощью обычного баллончика со сжатым воздухом, применив его неправильно и распыляя жидкость прямо на чип при ещё подающемся питании. 

При температуре жидкого азота (-196°C) потери данных минимальны даже через час. Это делается при снятии модуля уже после отключения. 

Если снять горячий модуль и бросить его в ведро азота, а потом поставить на вычитывающий стенд, тоже будет работать в течение нескольких минут (только не вынимайте модуль из ведра руками). 

То есть это как спереть hybernate-дамп. 

#UDP 

-- 
Вступайте в ряды Фурье! Ну какой вы хакер без ведра и ноутбука?
custom: 1 🔥: 193 ❤: 70 👍: 57 ☃: 38 🆒: 15 😁: 14

← Назад к списку

Открыть в Telegram