LINUX.ORG.RU

Plausible deniability (вопрос к специалистам)


0

0

У меня есть один крайне сложный вопрос по безопасности, я уже не раз пытался поднимать его на ряде форумов, но удовлетворительного ответа никто дать не мог, в основном же оставалось всё без комментариев.

Суть проблемы заключается в следующем:
У нас есть жёсткий диск на домашнем компьюторе с установленном на нём unix-like ОС. Требуется защитить данные на нём так, чтобы даже не было следов того, что я что-то от кого-то скрываю.

Для конкретизации уточню обстановку: к вашему компьютеру подходят спецслужбы в лице грамотных специалистов, которые прекрасно разбираются во всех современных средствах защиты. Эти же службы с вероятностью, близкой к 100%, будут уверены в том что я храню на диске некие вещи, существование которых у меня на диске они сильно захотят доказать. Сделаем сильное допущение, что спецслужбы не будут использовать противозаконные методы стиля "найти подставных свидетелей", "спец. воздействие на психику подследственного", "ложных доказательств" или "просто собственноручного записывания на диск нужного <доказательства>".
В таком случае нужно не только надёжно зашифровать информацию, но и скрыть само наличие того, что я что-то в принципе шифрую.

Могу предложить один метод реализации данной идеи для начала:
Я создаю файл с криптофс на нём, или просто физический раздел на диске с криптофс на нём, или же использую официально несипользуемое системой место на диске как криптоФС. Данный ресурс с криптофс маунтится как хоумдир и дальше спокойно работает в системе. Всё защищено. В конце работы файл с криптоФС удаляется с запоминанием физического места на диске где он был, а так же происходит слежка за логами в /var. Криптографию своп-раздела можно включить уже после загрузки или на ходу для текущего сеанса, чтоб она не была отражена нигде в конфигурационных файлах. Перед же началом каждого сеанса работы файл с криптофс будет "восстанавливаться", то есть "ределититься" ручными методами, а потом маунтиться с пассфразой как хоум-дир.
В момент, когда сенас завершён, диск для спецслужб будет выглядеть как диск, на котором, возможно, что-то когда-то и было, но всё это удалили, к тому же средств шифрования или следов того, что что-то недавно старательно скрывали обнаружить при грамотной настройке будет трудно.
Но есть одно "но": есть случаи, когда нужно отвлечься от компьютера на несколько минут - для таких случаев удалять и ремаунтить криптораздел крайне неудобно, к тому же при внезапном отключении питания весь криптораздел целиком как есть засветится на диске. Это и есть зло (далее в ход идёт паяльник с выколачиванием пассфразы и т.д. ). Соответственно, для решения проблемы требуется, чтобы система сама работала с криптофс, на храня физически нигде на диске информацию о том, где расположен этот самый криптофс-файл. Частично это делается посредством tmpFS, в случае которой хранится в оперативной памяти всё, и ничего на диске, нужно же: всю информацию о части дерева фс хранить в оперативке, а данные - в зашифрованном виде на диске.

Есть stegFS, но система, его использующая, уже не чиста, так как не скрывается сам факт использования stegfs, к тому же она крайне ненадёжна и легко может прийти в негодность. Аналогичное замечание справедливо и для TrueCrypt - спецслужбы прекрасно знают о системе контейнеров. Информация о том, что таковые инструменты используются в системе послужат только дополнительным доводом в пользу аргумента: "шифрует, значит - не зря...". В идеале же на диске не должно быть вообще никаких следов какого-либо шифрования за исключением того, которое совершенно безопасно можно открыть при случае ареста, не наводя подозрений на свою персону (например, могут содержаться в зашифрованном виде часть ключей для аутентификации по ssh на соседнем хосте или пароли к некритичным ресурсам, и т.п.).

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

Может ли кто-нибудь подвергнуть критике или предложить более логичное решение для проблемы?

P.S: использование внешнего носителя нежелательно, тем более что это всего-навсего переносит проблему с одного носителя на другой, но не решает её. Речь идёт о скрываемых объёмах в несколько гигабайт.

Ответ на: РЕШЕНИЕ - 2 от secure_crolik

> Но это уже усложнит задачу службам - ещё надо восстановить файл с криптофс, а не получить его существование нахаляву.

ерунда это. трудность восстановления файла и трудность его расшифровки - несравнимы.

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

> Думаю, если б судили и у нас, то аргумент о применении шифрования в суде играл бы не в мою пользу. Не говорю уже о проблеме выпытывания пассфраз...

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

> Будет ли виден сам факт, что программа "трукрипт" установлена?

Разумеется. Ну, хотите, скачивайте из интернета каждый раз, а потом удаляйте.

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

> Они бы сделали её "внутрисистемной" - вот это был бы класс. То есть контейнеры мы должны создавать НЕ НА СВОБОДНОМ месте на диске, а на той его части, которая официально принадлежит файловой системе. Причём с точки зрения файловой системы это никак не должно выглядеть - просто всякие осколки и мусор на диске. И вообще, могли бы ребята продумать чуть получше трукрипт - так, чтоб не видно было само то, что этот самый трукрипт используется.

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

Я вам уже предложил простой вариант. Возьмите пачку фильмов. В каком-нибудь файле оставьте заголовок, а по смещению, скажем, килобайт 30, пусть там будет криптоконтейнер. Я не знаю, какой из существующего софта это умеет, но функциональность тут минимальная, дописать это несложно, если что.

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

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

у них есть договор типа что они этого делать небудут и что их продукт чист от вещей подобного рода ?

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

Надо быть реалистом с ИБП.
Я вообще комп никогда не выключаю без надобности.
Если мне чай надо отойти сделать - мне что, делать дизмаунты с удалением и выключением компа? Не пойдёт. Надо пользоваться блокиратором экрана. Но ресет должен всё возвращать в исходное состояние.

secure_crolik
() автор топика
Ответ на: комментарий от saper

2 saper

По поводу alladin.
Я погуглю.
Но оперативники будут знать о том, что alladin таким свойством обладает... Да и что они дураки что ли - мою систему грузить??
Они перво-наперво сделают образ диска (!!!), как положено на следственном
деле, а потом будут, со своей системы загрузившись, разбираться с моим диском.
Так что такое свойство по-серьёзному только для лохов сгодится.



secure_crolik
() автор топика
Ответ на: комментарий от saper

2 ivlad

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

Поидее после загрузки системы налету ей нужно указать куда лазить не надо, и писать куда не надо. Если этого не указать - то никаких псевдоблоков как бы и не существует... Так оно должно поидее работать.

***************

Ещё я подумал, теперь так получается:
пока единственный способ, - это ставить трукрпт или нечто схожее в tmpFS и монтировать всё потом. После перезагрузки прийдётся снова ставить трукрипт в tmpFS
:(

Можно было бы поставить его куда-нить в конейнер для стеги, но сама прога, которая стегу делает останется засвеченной. Таким образом, задача свелась рекурсивно к предыдущей.
То есть как ни крути - начало цепочки будет видно. Либо это начало цепочки ставить в опративку и так каждый раз...

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

secure_crolik
() автор топика
Ответ на: комментарий от MiracleMan

2 MiracleMan

А как тот чел сделал, что модуль грузился после перезагрузки? Я правильно понимаю? Где тот модуль лежал и откуда он его грузил?

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

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

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

А вот ИМХО TrueCrypt можно на удаленном серваке держать...
а лучше на нескольких, и в случайном порядке подгружать с однго из них.

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

Цель:
полностью правдоподобное отрицание наличия укрывательства информации какой бы то ни было. Анализ диска и данных с точки зрения компетентных лиц и спецслужб не должен содержать косвенных сколько-нибудь обоснованных улик наличия скрываемой информации.

Условия:
1) Объём скрываемых данных - 10 гигабайт, которые смонтированы как криптофс в домашний каталог.
2) Кнопка ресет в любой момент времени превращает содержимое диска в состояние, описанное выше как "цель", то есть моё присутствие за компьютером в момент когда всё смонтировано, но экран залочен, не обязательно. При этом, при нажатии ресета с хорошей надёжностью не происходит уничтожения скрываемой информации, и впоследствии данная информация может быть легко восстановлена вплоть до состояния, которое было до "ресет".
3) По возможности, желательно не использовать для реализации посторонние носители информации (кроме жёсткого диска компьютера), так как все посторонние носители так же легко могут быть приобщены к судебному следствию как и сам жёсткий диск.
4) Скорость работы с укрываемыми данными должна быть настолько быстрой, чтобы можно было использовать в реальном времени эти данные как содержимое домашнего каталога, конфигурационные файлы из которого читаются и пишутся соответствующими десктопными программами.

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

> А вот ИМХО TrueCrypt можно на удаленном серваке держать...
а лучше на нескольких, и в случайном порядке подгружать с однго из них.

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

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

Конституция РФ:

Статья 49 1. Каждый обвиняемый в совершении преступления считается невиновным, пока его виновность не будет доказана в предусмотренном федеральным законом порядке и установлена вступившим в законную силу приговором суда. 2. Обвиняемый не обязан доказывать свою невиновность. 3. Неустранимые сомнения в виновности лица толкуются в пользу обвиняемого.

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

> Они перво-наперво сделают образ диска (!!!), как положено на следственном деле, а потом будут, со своей системы загрузившись, разбираться с моим диском.

Конечно, нужно исходить из этого, но на деле они не всегда это делают. Были преценденты.

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

А как же раскрываемость преступлений повышать если не пытками?
А звонки путину и слоник где тут? Разве можно без этого?
А где детектор лжи и всякие психовоздействия с помощью "разбалтывающих" препаратов?
Мы будем как с террористами бороться? УК соблюдать или мочить в сортире? Я не террорист, но применение ук будет таким же, думаю.
И вообще это всё написано для быдла, реально никого этот ук не волнует уже давно. Для выяснения подробностей достоточно погуглить и прочитать "катехизис еврея в ссср" - там хорошо про всё это написано.
Так что про законность прийдётся забыть :(

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

> Поидее после загрузки системы налету ей нужно указать куда лазить не надо, и писать куда не надо. Если этого не указать - то никаких псевдоблоков как бы и не существует... Так оно должно поидее работать.

Ты себе представляешь размер этой информации? Ее нужно или доставлять в систему, или хранить в ней.

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

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

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

Пока я решаю по максимум чтоб лучшую секъюрность получить.
А в реале... Можно начать с того, что, "а найдут ли меня за тором и прайвокси" если я не ошибся в настройке? Захотят ли меня искать если сети я не взламываю, правительственные сайты не обгаживаю, на форумах фсб угрожающие посты не пишу... Но предположим, что захотят.

Стелим соломку на самый ужасный случай, а если падать не прийдётся - тем уж лучше :) Всё ж понятно.

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

> А как же раскрываемость преступлений повышать если не пытками?

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

#define MODERATORIAL

Поэтому, тему терморектального криптоанализа предлагаю тут не обсуждать.

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

> Пока я решаю по максимум чтоб лучшую секъюрность получить.

Я же тебе показал, что твой метод не добавляет надежности.

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

> Ты себе представляешь размер этой информации? Ее нужно или доставлять в систему, или хранить в ней.

> Если ты будешь при загрузке системы вводить список блоков fs, которые не нужно использовать, это будет работать, но тогда тебе где-то придется хранить список блоков. И еще возиться с его расширением, если что.

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

*********************

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

secure_crolik
() автор топика
Ответ на: комментарий от ivlad

Пояснение по поводу пыток, если я не внятно выразился:
Отличие здесь вот в чём:

В стандартной схеме: тебя пытают и говорят "ты вот здесь так-то и так-то зашировал инфу, подводят тебя к компу когда там уже есть приглашение для ввода пароля, и говрят "вводи пас" а то будет плохо".

В моей схеме: тебя будут пытать таким образом: "скажи нам каким образом ты запрятал инфу на этом диске, иначе будет плохо".

Это разные вещи.
Предполагается, что 2-м путём спецслужбы пойдут с намного меньшей вероятностью чем 1-м путём. Тем более, что они сами до конца не будут уверены в том, что я действительно что-то скрываю и и в чём-то виновен.
А то так можно любого с улицы взять и всё что хочешь на него повесить под пытками.

Если же схемы 1 и 2 равновероятны, то тогда вообще не нужна стега, берём и шифруем стандартным образом и через криптофс и наличие пряток шифрования вообще не критично. Моя интуиция подсказывает что тем не менее это не так.

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

IMHO, без модуля ядра не обойтись... Скорее всего самописного...

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

И раз уж надо писать модуль, туда можно напихать чего угодно, весь вопрос где его хранить... Можно ли штатными средствами dd, tar, crypt и т.д. извлечь из файлов типа mp3 бинарник размером хотя бы 100 кбайт?

Секрет --- это когда знает один человек... В данном случае секретом является сама возможность организации подобного хранилища... Врядли подобные решения есть в открытом доступе...

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

> Можно ли штатными средствами dd, tar, crypt и т.д. извлечь из файлов типа mp3 бинарник размером хотя бы 100 кбайт?

штатными - нет, но есть N вариантов с стеганографией.

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

2 ivlad
> штатными - нет, но есть N вариантов с стеганографией.

нет :)
Каждый вариант со стеганографией подразумевает наличие стеганографической проги которую надо прятать так же как и сам файл с криптоFS. Таким образом проблема рекурсивно сводится к предыдущей.
Единственный выход который я пока вижу - вообще не ставить спецсофт на комп. Соответствующие программы прийдётся каждый раз скачивать из инета или откуда-либо, ставить их в tmpFS в памяти, а после с помощью их уже монтировать контейнеры. Вот.

secure_crolik
() автор топика
Ответ на: комментарий от mky

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

> И раз уж надо писать модуль, туда можно напихать чего угодно, весь вопрос где его хранить... Можно ли штатными средствами dd, tar, crypt и т.д. извлечь из файлов типа mp3 бинарник размером хотя бы 100 кбайт?

Плохой вариант, не чистый - могут попалить с палёной mp3шкой.

> Секрет --- это когда знает один человек... В данном случае секретом является сама возможность организации подобного хранилища... Врядли подобные решения есть в открытом доступе.

Майкрософт наверное думает, что оупенсорс - идиотизм :)
Ни для кого не секрет, что такую систему, с полной plausible deniability, создать можно - при этом она будет полностью открытой и прозрачной для всех, а сложность диагностики наличия скрытой информации будет стремиться к сложности проблем стегоанализа. Создана ли уже такая система - не знаю. В какой-то степени, похоже, многие для себя данную проблему как-то решают.

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

2 secure_crolik (*) (06.03.2006 14:28:30)

А как вы думаете? Там же где и все остальные в Linux, текущем ядре.. Впрочем, в BSD по аналогии, без принципиальной разницы.. Можно так - появляется якобы новое устройство в системе, а этот модуль - якобы драйвер для этого устройства.. Теперь понятно? ;-)

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

2 secure_crolik (*) (07.03.2006 21:56:59)

Извините, но при вашей постановке задачи без модульностей и модификаций обойтись не удасться.. Если для вас это неприемлемо, то прислушайтесь к тому, что говорил ivlad..

>В какой-то степени, похоже, многие для себя данную проблему как-то решают.

Так или иначе, по мере надобности, конечно.. Просто, далеко не каждый об этом будет открыто писать..

Удачи вам в ваших изысканиях.. ;-)

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

а откуда у тебя столько действительно секретной _важной_ информации на 10Г. или это -- деццкое порно?

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

> а откуда у тебя столько действительно секретной _важной_ информации на 10Г. или это -- деццкое порно?

А, вот и отдел "К" подтянулся. Запаздываете... ;)

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

Специально для онанимуса:

> а откуда у тебя столько действительно секретной _важной_ информации на 10Г. или это -- деццкое порно?

Да, конечно, речь идёт о нескольких гигабайтах детской порнографии.

> А, вот и отдел "К" подтянулся. Запаздываете... ;)

Да :)))
Отдел "K" жжот :)
Пришёл один человек, и всё опошлил :)

2 saper

> http://newsru.com/crime/09mar2006/bank.html

Ага, только что прочитал перед лором :)
Всё думаю, что же за это "сверхсекретные методы" по их описанию что они применили? Или это всё журналисты...
И интересно как это они так умудрились вынести его с машины "вместе с креслом" :) И чтоб он, сидя в машине, в момент отправки письма (!)
не смог воспользоваться методом скрытия информации нажатием одной кнопки... Или он ламер, или журналисты перевоали всё. Или об неудачных методах отлова фсб не любит оглашать свои неудачи?

secure_crolik
() автор топика

Если ити законными методами, то ты можешь "забыть пароль" и не вспомнить его.

Если же нет:

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

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

Можно конечно поиграться с чем-то вроде Phonebook имеющим несколько уровней. Набить в пару уровней дезу и выдавать ее по требованию.

MrKooll ★★★
()

Дарю способ штатными средствами скрыть 100-200 kb. (для ядерного модуля и ключей к нему - позаглаза)

что потребуется:

1. большой файл с мусором (~ 100 метров). лучше всего взять реальный свопник, понахратить его немного (чтоб по нарушенной структуре не отследили), положить в tmp, назвать пострашнее и поставить дату модификации год назад.

2. выбрать два случайных смещения внутри файла. запомнить их. придумать пасс.

3. взять требуемую инфу, и ДВАЖДЫ поксорить сначала данными из файла с первого смещения, затем паролем (или наоборот). полученную белиберду записать по адресу второго смещения.

4. теперь главное - тщательно покурив маны по dd и awk (sed), создать такой pipeline, чтобы на входе был мусорный файл, два смещения и пароль, а на выходе - исходная инфа. ВНИМАНИЕ: этот pipeline выучить как "отче наш" и тщательно следить, чтобы он случайно не попал в .bash_history.

5. полученные данные скидывать на ram-disk (предварительно неплохо бы отключить свопник - мало ли).

PS в качестве мусорного файла можно использовать фильм. при небольшом объёме данных они будут видны просто как секундная помеха.

PPS Лучше заготовить две поксоренных области с разными смещениями и паролями.

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

> взять требуемую инфу, и ДВАЖДЫ поксорить сначала данными из файла с первого смещения, затем паролем (или наоборот)

если пароль состоит только из печатных символов, распределение его слишком мало, что бы его можно надежно использовать в качестве входа в XOR. Нужно сначала преобразовать.

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

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

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

> пароль собсно нужен только для невозможности взлома перебором смещений.

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

ivlad ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.