LINUX.ORG.RU

Очистка оперативной памяти перед выключением

 ,


2

3

Добрый день. Попал на статейку, и появился вопрос. Как правильно и надежно очищать оперативную память перед выключением компьютера, чтобы нельзя было сделать дамп памяти? Желательно чтобы это было автоматически.

★★

Последнее исправление: TheLinuxUser (всего исправлений: 1)

Ответ на: комментарий от anonymous

Коребутные настройки: при начале работы с coreboot можно взять за основу чужой / близкий к дефолтному конфиг для твоей платы, убедиться что он работает, а дальше плясать от него - вдумчиво читая описания опций в menuconfig нажатием кнопки ? на интересующем пункте меню и постепенно изменяя конфиг под себя, периодически проверяя что он пока ещё рабочий. А для настроек вроде таймингов оперативки: если лень много раз пересобирать / перепрошивать, можно подобрать их и в проприетарном БИОСе перед переходом на коребут; хотя, у меня и такой подбор не занял много времени, раза с пятого получил что хотел.

SakuraKun ★★★★★
()
Ответ на: комментарий от Deleted

SRAM как основная память давно уже не используется.

XoFfiCEr ★★☆☆
()
Ответ на: комментарий от Deleted

вы таки будет смеяться, но состояние SRAM после прекращения питания практически сразу теряется, ибо транзисторы маленькие и заряд держат мелкий.
в отличии от DRAM где заряд накапливается на специальном «большом» носителе. :)

pfg ★★★★★
()
Ответ на: комментарий от ValdikSS

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

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

после чего этот диск подключаем к компу и сливаем данные между заголовком и окончанием в файл. будет практически полный дамп DRAM за исключение кода твоего загрузчика и ошметков от работы биоса.
фсе, профит.

pfg ★★★★★
()
Ответ на: комментарий от XoFfiCEr

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

pfg ★★★★★
()
Ответ на: комментарий от XoFfiCEr

це ж логический блок :) он не описывает физическую работу своего содержимого. я именно про физические состояния ячейки памяти SRAM на кмоп транзисторах.
https://ru.wikipedia.org/wiki/SRAM_(%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D1%8C)

pfg ★★★★★
()
Ответ на: комментарий от pfg

Практически все современные материнские платы сделаны с учетом стандартов Trusted Computing Group, и умеют обнулять память при включении компьютера либо всегда, либо если компьютер был нештатно выключен. Это также регулируется софтово, ядром или юзерспейсом. В Ubuntu, например, эта опция включена по умолчанию (CONFIG_RESET_ATTACK_MITIGATION).

ValdikSS ★★★★★
()
Ответ на: комментарий от XoFfiCEr

в ТТЛ биполярный транзистор управляется током, т.е. состояние определяется текущим током. при отключении питания ток мгновенно теряется и состояние триггера исчезает :)

хотя можно сказать в ТТЛ таки накапливается объемный заряд в режиме насыщения транзистора.
модификация в виде ТТЛШ уменьшило накопления заряда насыщения и потому имела большую скорость переключения при тех же условиях.
еще можно вспомнить ЭСЛ, где вообще режим насыщения был исключен, что давало бешеную скорость переключения в 2 ГГц в те времена, когда ТТЛ работал на единицах-десятках мегагерц.

pfg ★★★★★
()
Ответ на: комментарий от ValdikSS

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

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 1)
Ответ на: комментарий от ValdikSS

вот только контроллера памяти давно нет на материнской плате, он в процессоре

anonymous
()
Ответ на: комментарий от pfg

контроллер формирует сигналы обновления ras, cas. Не сама микросхема памяти

XoFfiCEr ★★☆☆
()
Ответ на: комментарий от XoFfiCEr

какой заряд накапливается тупо не помню, но его перезарядка все равно требует времени. почитай основы ТТЛШ.

гонять гигабайты информации впустую туда-сюда на большое расстояния между DRAM и контроллером или процом как минимум глупо. тем более что это надо делать каждые 50-100 мс…
но спорить не буду. подробностей не знаю.

контроллер может издалека управлять этим процессом, не вмешиваясь в непосредственно процесс обновления.

pfg ★★★★★
()
Ответ на: комментарий от Vsevolod-linuxoid

ОС упадёт раньше чем перезапишет всю ОЗУ. Плюс если туда маппятся адресные пространства устройств, то последствия вообще непредсказуемы.

KivApple ★★★★★
()
Ответ на: комментарий от pfg

гонять гигабайты информации впустую туда-сюда на большое расстояния между DRAM и контроллером....

этого нет только синхронизирующие ras cas

XoFfiCEr ★★☆☆
()

Это прикол? У вам оперативка помнит о ....:))

Bootmen ☆☆☆
()
Ответ на: комментарий от Vsevolod-linuxoid

Это очень плохой совет. Один арчевод чем-то подобным затёр себе переменные EFI, тут даже целая драма вроде была.

В безопасной ОС ни один пользователь не должен иметь возможности писать в этот файл напрямую. В новейших ядрах для этого ввели lockdown

SM5T001
()

TheLinuxUser, выше описал решения. Разработчики Tails активно экспериментировали, на данном этапе уже есть вполне неплохое и рабочее решение. Адаптировать можно под любой дистрибутив.

SM5T001
()
Ответ на: комментарий от anonymous

Ну всё предусмотреть невозможно. В конечном итоге можно просто отвинтить бок у гроба и залить банки азотом. Впрочем, тот же Tails рассчитан на работу с ноутбука, а там с этим ситуация получше - вырубить энергию в помещении для «резервации» машины не получится - не даст АКБ, а времени(и удобства) выдернуть флешку будет больше. Выдернул - нет памяти.

Есть, правда, разработки для шифрования непосредственно содержимого ОЗУ, вроде RamCrypt, только он не соберётся с новым ядром, а обновлений не будет - это лишь университетская работа для «доказательства концепции».

SM5T001
()
Последнее исправление: SM5T001 (всего исправлений: 1)
Ответ на: комментарий от SM5T001

Можно просто сделать так, чтобы корпус компьютера был герметичен (нельзя залить жидким азотом через щели), а на его вскрытие в полевых условиях требовалось больше тех минут, которые RAM хранит своё содержимое (надо понимать, что мы не в супергеройском фильме живём и даже спецслужбы не могут за долю секунды распилить толстый слой стали каким-нибудь карманным мега-лазером, а взрыв уничтожит содержимое). Наиболее наивная реализация - запереть компьютер в сейфе и наружу вывести провода для монитора и клавиатуры, при этом надёжно загерметизировать их. Так же, очевидно, не стоит экономить на дверях и что-нибудь сделать с окнами. Я читал, что хорошая дверь может до получаса держаться любым попыткам вскрытия (хотя в США вроде могут применить взрывчатку, но если поставить две двери на манер шлюза, то опять же будет как минимум несколько минут, потому что хорошую дверь с правильным расстоянием одним взрывом не выбить, либо взрыв уничтожит весь дом вместе с тобой и твоим компьютером, так что опять же уничтожать данные будет уже не актуально). За это время можно успеть хоть кувалдой всё расфигачить.

KivApple ★★★★★
()
Последнее исправление: KivApple (всего исправлений: 5)
Ответ на: комментарий от SakuraKun

В опенсорсном БИОСе coreboot для многих плат, в том числе AMD-шных

Спасибо конечно за инфу, но у меня древний комп со старым биосом и DDR-2 ))

MRX256
()
Ответ на: комментарий от TheLinuxUser

К сожалению нет.

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

MRX256
()
Ответ на: комментарий от MRX256

Может и твой древний комп поддерживается опенсорсным БИОСом - или достаточно всего лишь матплату сменить на поддерживаемую, если лень портировать. Или это повод проапгрейдиться на коребутное железо - самое время посмотреть авито ;-)

SakuraKun ★★★★★
()
Последнее исправление: SakuraKun (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.