Кулхацкеры всех стран — соединяйтесь!

Если у вас паранойя, это не значит, что за вами не следят.

В этой статье я расскажу как сделать так, чтобы ваша линуксовая машинка выглядела невинной игрушкой, но при вводе нескольких команд превращалась в настоящую боевую единицу. Конечно, у вас могут найти на диске сектора с необычно высокой энтропией, несколько подозрительных системных настроек, но никаких явных зашифрованных разделов, файлов, или сторонних шифровалок. Конечно, вас могут спросить - "а для чего тебе cryptsetup, сынок?", на что вы ответите - "это же Linux Mint, это всё искаропки!" Хуже, если бы вас спросили: зачем ты используешь LUKS, или, что ещё хуже, зачем ты поставил VeraCrypt или Shufflecake.

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

Главное в системе с двойным дном - это, конечно же, секретные зашифрованные разделы, которые нигде не отсвечивают. Мой способ - это cryptsetup поверх losetup. Особенность losetup в том, что он может создать устройство в любом месте - даже на примонтированной файловой системе, и при этом не станет возмущаться, как dm, что устройство уже используется. Способ не работает на слабых машинках с диском, подключенным через USB, таких как, например, NanoPI Zero, у которых 32-битный Allwinner H3, но начиная с 64-битных H6 или Rockchip RK3328 и выше, а тем более на всяких ваших Intel и AMD никаких проблем я не наблюдаю уже несколько лет.

Но! Проблемы появляются, если объединить много loop устройств в одно с помощью dm. То есть, использовать все более-менее крупные свободные блоки файловой системы ext4. Даже мой i3 такое не вытянул. Я не помню точно, какие ошибки были в dmesg, но что-то связанное с асинхронной обработкой внутри ядра. На слабеньких 32-битных Allwinner - то же самое даже с одним loop. Глубоко в проблему я не нырял, просто перестал использовать проблемный подход.

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

Ext4 гораздо хуже, там сильная фрагментация свободного места, тем не менее, для небольших оверлейных разделов /etc, /var, и т.п. вполне годится.

Вы, конечно, спросите, а как найти нетронутое свободное место на просторах файловой системы, да и вообще на диске? Возможно, есть готовое решение, но для себя я всё привык делать сам, и у меня для этого есть несложный скрипт. Идея простая: заполняем весь диск случайными данными из /dev/urandom, вычисляем и сохраняем в файле хэши секторов, устанавливаем систему, а потом снова вычисляем хэши, смотрим, какие сектора изменились, и таким образом находим нетронутые блоки.

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

Тут, конечно, стоит упомянуть о маркерах. В алгоритмах шифрования могут быть намеренные изъяны, которые приводят к определённым сигнатурам в зашифрованных данных. То есть, вы можете скачать какую-нибудь порнуху на зашифрованный раздел и на этом попасться. Так что, поаккуратнее. Защититься от этого можно двойным шифрованием, cryptsetup поверх cryptsetup, желательно разными алгоритмами. При необходимости вы сами сможете запросто это реализовать.

Готовимся шифроваться

Вам понадобится мой тулкит, который автоматизирует всю рутину. Скачайте его, только сразу на флешку, которую, впоследствии надо будет хорошенько затереть из /dev/urandom. Следов оставлять нельзя.

Вы сейчас наверняка используете незащищённую систему. Не лезьте на мой гитхаб из браузера - это осядет в истории и будет работать против вас. То, что вы читаете эту статью, ещё можно объяснить любопытством, но скачивание тулкита - это уже намерение и +1 к подозрениям. Допустим, флешка у вас примонтирована в /mnt/flash. Первая команда - отключение записи истории (если у вас не bash, используйте свои методы):

HISTFILE=
swapoff
cd /mnt/flash
git clone git@github.com:amateur80lvl/pdt.git

Инициализируем диск (к примеру, /dev/sdc) случайными данными:

dd if=/dev/urandom of=/dev/sdc bs=4K status=progress

и вычисляем хэши секторов:

python3 secha.py compute /dev/sdc original-sector-hashes

original-sector-hashes - это имя файла для хэшей. Для экономии места я использовал 64-битный blake2s, с которым я не наблюдал коллизий на 128GB SSD - лично мне больше и не надо. Для анализа диска размер хэша не особо критичен, но с 48 битным коллизии уже наблюдаются. Я их искал простой программкой на C++ (на питоне такое не напишешь - сожрёт всю память). Для верности, конечно, можете подкрутить размер хэша до 96 или 128 бит, поправив исходник secha.py.

Подготовка диска

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

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

Да, не забываем про UEFI раздел, если нужен.

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

TRIM надо отключить обязательно. Сначала на этапе форматирования раздела опцией nodiscard:

mkfs -t ext4 -E nodiscard /dev/sdc1

А потом периодический TRIM, сразу после установки. То есть, надо будет сделать что-то подобное:

systemctl disable fstrim.timer

Отключение TRIM - это палево. Запишите его в столбец рисков. Способ обойтись без этого только один - использовать старые добрые жужжащие HDD. Интернеты рекомендуют выключить TRIM и для них, но по крайней мере это обосновано и вопросов не вызывает.

Установка Linux

Берёте свой любимый дистрибутив, в котором cryptsetup уже есть по умолчанию - и устанавливаете на предварительно отформатированный раздел. Linux Mint в этом отношении идеален, насчёт других ничего не знаю. Ну, кроме Armbian, разве что. В Debian netinstall cryptsetup по умолчанию отсутствует.

Когда система установлена, выключаем комп, достаём диск для анализов, или загружаем какой-нибудь live дистрибутив с флешки и смотрим, какие области у нас остались нетронутыми:

python3 secha.py find-intact /dev/sdc original-sector-hashes

В принципе, чтобы не анализировать весь диск и пропустить системный раздел, можно задать начальный и конечный секторы и размер сектора, который по умолчанию 512. Эти параметры должны быть одинаковами для secha.py compute и secha.py find-intact.

Скрипт выдаёт размер нетронутых областей, начальный и конечный секторы. Выберите которые вам больше нравятся и запишите. Номера секторов понадобятся для создания скрытых разделов.

Следующий обязательный шаг - настроить использование tmpfs для /tmp и /var/log. В логах, например, можно увидеть факт использования cryptsetup, ну а в /tmp тоже может утечь всякое. Добавляем в /etc/fstab:

tmpfs  /tmp      tmpfs  nosuid,nodev,mode=1755,size=32M       0 1
tmpfs  /var/log  tmpfs  nosuid,noexec,nodev,mode=755,size=4M  0 1

Размер можете указать на свой вкус.

Эти строчки в fstab - тоже палево. Отметьте у себя.

Установка тулкита

Нам понадобится маленький секретный раздел для конфигурации и тулкита, который бутстрапит систему. Достаточно 360K, как пятидюймовая дискета, но на самом деле размер должен быть такой, который лучше запоминается и выровнен по границе сектора. Самое простое - 512000. Где его расположить - ваша забота. Я могу рекомендовать начало диска, сразу после GPT. Там, начиная от сектора 34 и до начала первого раздела обычно есть по крайней мере один свободный мегабайт. Можно разместить его в конце диска, только имейте ввиду, что там, в последних 34 секторах, находится копия GPT. В случае с MBR проще, - занят только первый сектор диска. А ещё можно оставить дырку между разделами, но тогда у стороннего наблюдателя возникнет вопрос - зачем?

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

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

Допустим, размер сектора у нас 512 байт и наш бутстрапный раздел будет находиться начиная с сектора 40 и занимать следующие 1000 секторов. Умножаем номера на 512 и создаём loop устройство:

losetup --offset 20480 --sizelimit 512000 -f /dev/sda

Кстати, историю команд не забыли отключить? Можно это сделать перманентно в .bashrc или что вы там используете вместо него, но это +1 к подозрениям.

Следующая команда открывает шифрованный раздел:

cryptsetup open /dev/loop0 bootstrap -y --type plain

Вводим свой заковыристый бутстрапный пароль.

Далее форматируем раздел:

mkfs -t ext2 /dev/mapper/bootstrap

Создать ext4 на таком маленьком разделе у вас не получится, поэтому используем ext2. Можно и fat, конечно же, но я не пробовал.

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

cryptsetup close bootstrap
cryptsetup open /dev/loop0 bootstrap --type plain

Теперь смотрим, показывает ли blkid UUID для /dev/mapper/bootstrap. Если нет, вы ввели пароль неправильно. Попробуйте переоткрыть раздел заново. Если ничто не помогает - начинаем снова с команды форматирования. Повторяем, пока успех не настигнет вас окончательно.

Получилось? Тогда создаём точку монтирования в /tmp и монтируем:

mkdir /tmp/bootstrap
mount /dev/mapper/bootstrap /tmp/bootstrap

Копируем файлы тулкита с флешки на бутстрапный раздел, а флешку тщательно затираем.

Конфигурация тулкита

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

{
    "devices": {
        "S23SNEAG516433Y": "ssd",
        "WD-WX61BA51RF6A": "hdd"
    },
    "volumes": {
        "my-data": {
            "device": "ssd",
            "start":  "128664014 * 512",
            "end":   "(((488397168 - 34) * 512) // 4096) * 4096",
            "sector_size":  4096,
            "key": "KbQbEe9XZ4hPbYEWzZ3XZlbydGnkV0yLCoPSZVIP0cgyxTYC",
            "mount_point": "/mnt/my-data"
        },
        "my-archive": {
            "device": "hdd",
            "start":  "838186828 * 512",
            "end":   "((1465149168 * 512) // 4096) * 4096",
            "sector_size":  4096,
            "key": "DtgVIyikwY5rTUvmQwFpzfm6Fze2TvaV9iLbWp2W5eps64TF",
            "mount_point": "/mnt/my-archive"
        }
    },
    "containers": [
        "devapps",
        "safedns"
    ]
}

Секция devices определяет имена устройств по их серийным номерам. Эти номера можно посмотреть командой

lsblk -d -o NAME,SERIAL

В нашем примере у нас в системе два диска и в секции devices мы говорим, что диск с серийным номером S23SNEAG516433Y у нас будет называться ssd, а второй - hdd. Неважно, какие имена для них вы придумаете.

Секция volumes определяет наши секретные разделы - тома. В нашем случае том my-data у нас расположен на устройстве с именем ssd, а том my-archive - на hdd.

Параметры start и end определяют начальную и конечную позицию раздела в байтах, и могут быть как числами, так и строками-формулами, чтобы не считать байтовые позиции вручную. Например, формула параметра end для раздела my-data вычисляет конечную позицию раздела исходя из размера диска 488397168 секторов по 512 байт минус 34 сектора копии GPT, и выравнивает её по границе 4096-байтного сектора для loop-устройства. Размеры секторов не обязательно должны совпадать. В нашем примере везде используются 4096-байтные сектора, хотя сектора физических устройств - 512 байт.

Параметр key задаёт пароль для losetup и может быть сгенерирован скриптом pdt_genkey.

Вы уже определились, где будете создавать свои секретные разделы? Тогда создадим каталог конфигурации для нашего компа - так удобнее, чтобы не мешать файлы в кучу. К тому же, вы можете добавить каталоги для других машин и бутстрапить их по SSH.

mkdir /tmp/bootstrap/my-hidden-system

Создаём файл конфигурации:

nano /tmp/bootstrap/my-hidden-system/config.json

Ну или vi, если вам так привычнее. Ах да, забыл упомянуть про секцию containers - это для запуска секретных LXC контейнеров. Если они у вас будут, конечно же.

Создание разделов

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

Итак, конфигурация есть, - создаём тома. Кстати, давайте перейдём в каталог /tmp/bootstrap чтобы не писать его каждый раз:

cd /tmp/bootstrap

Для нашего примера команды будут такими:

./pdt_create_volume my-hidden-system my-data
./pdt_create_volume my-hidden-system my-archive

В общем случае команда создания тома выглядит так:

pdt_create_volume config-dir volume-name [remote-hostname]

Но это вы уже и сами поняли, когда провели аудит кода. Не так ли?

Секретная система

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

Нам нужно подменить следующие каталоги:

  • в /etc монтируем overlayfs чтобы скрыть дополнительных пользователей, ну и всякую другую конфигурацию, которой в нормальной системе не должно быть. Исключение - /etc/apt, его подмонтируем заново через bind. Вообще, в /etc накапливается много лишних изменений, которые время от времени приходится мержить вручную. Я это делал каждый раз при обновлении системы.

  • в /home монтируем tmpfs и в неё уже монтируем через bind оригинальные пользовательские каталоги, плюс каталоги дополнительных пользователей с секретного раздела. Либо, можно смонтировать в /home каталог с секретного раздела и уже в него через bind - оригинальные пользовательские каталоги.

  • в /root через bind монтируем каталог с секретного раздела. Обычно я там держал совершенно другие ключи для SSH.

  • также, overlayfs используем для /var/tmp и /usr/local

  • если используется LXC, то в /var/lib/lxc монтируем каталог с секретного раздела

Соответственно, вам надо создать все необходимые каталоги на секретных разделах. А потом подготовить bootstrap-скрипт. Вот пример скрипта для маленького сервера с секретным разделом в /mnt/hidden, который бутстрапится через SSH:

#!/usr/bin/env python3

import os
base_dir = os.path.dirname(os.path.abspath(__file__))

import sys
sys.path.insert(0, os.path.dirname(base_dir))

from pdt_base import read_config, setup, Invoke
from pdt_tasks import *

# читаем конфигурацию и создаём экземпляр Invoke
config = read_config(base_dir)
invoke = Invoke(remote='myserver')
invoke.set_devices(config)  # обрабатываем секцию devices

invoke.run('systemctl stop nfs-kernel-server')

setup(
    config, invoke,

    TmpfsMounts('/mnt'),  # монтируем tmpfs в /mnt
    MountRoot,            # монтируем оригинальную корневую
                          #   файловую систему в /mnt/root
    MountVolumes,         # монтируем все тома
    BindMounts(           # заменяем /root
        ('/mnt/hidden/root', '/root')
    )
)

# ключи для SSH для доступа к серверу поменялись
# после замены /root, надо пересоздать экземпляр Invoke
invoke = Invoke(remote='myserver', ssh_key='~/.ssh/secret_id_ecdsa')

# продолжаем
setup(
    config, invoke,

    # перемонтируем в overlayfs следующие каталоги:
    OverlayMounts(
        ('/mnt/root/etc',       '/mnt/hidden/etc',       '/mnt/hidden/etc.workdir',       '/etc'),
        ('/mnt/root/var/tmp',   '/mnt/hidden/var/tmp',   '/mnt/hidden/var/tmp.workdir',   '/var/tmp'),
        ('/mnt/root/usr/local', '/mnt/hidden/usr/local', '/mnt/hidden/usr/local.workdir', '/usr/local')
    ),
    BindMounts(
        # секретные контейнеры LXC
        ('/mnt/hidden/lxc',   '/var/lib/lxc'),
        # восстанавливаем некоторые перекрытые каталоги
        ('/mnt/root/etc/apt', '/etc/apt')
    )
)

# из-за изменений в /etc надо:
invoke.run('systemctl daemon-reexec')
invoke.run('systemctl start nfs-kernel-server')

# запускаем секретные контейнеры LXC
for container_name in config['containers']:
    invoke.run(f'lxc-start {container_name}')

Но вы же наверняка хотите десктоп, поэтому создаём скрипт в нашем каталоге:

nano my-hidden-system/bootstrap

Вот как он может выглядеть:

#!/usr/bin/env python3

import os
base_dir = os.path.dirname(os.path.abspath(__file__))

import sys
sys.path.insert(0, os.path.dirname(base_dir))

from pdt_base import read_config, setup, Invoke
from pdt_tasks import *

# можем бутстрапить наш комп этим скриптом по SSH:
if len(sys.argv) > 1:
    remote = sys.argv[1]
else:
    remote = None

# читаем конфигурацию и создаём экземпляр Invoke
config = read_config(base_dir)
invoke = Invoke(remote=remote)
invoke.set_devices(config)  # обрабатываем секцию devices

setup(
    config, invoke,

    TmpfsMounts('/mnt'),  # монтируем tmpfs в /mnt
    MountRoot,            # монтируем оригинальную корневую
                          #   файловую систему в /mnt/root
    MountVolumes,         # монтируем все тома
    TmpfsMounts(          # перемонтируем в tmpfs эти каталоги:
        '/home',
        '/var/lib/lxc'
    ),
    BindMounts(           # заменяем /root
        ('/mnt/my-data/root', '/root')
    )
)

if remote:
    # ключи для SSH поменялись после замены /root,
    # поэтому надо пересоздать экземпляр Invoke
    invoke = Invoke(remote=remote, ssh_key='~/.ssh/secret_id_ecdsa')

# продолжаем
setup(
    config, invoke,

    # добавляем секретных пользователей в /home
    BindMounts(
        ('/mnt/my-data/work',     '/home/work'),
        ('/mnt/my-data/browsing', '/home/browsing'),
        ('/mnt/my-data/sans-vpn', '/home/sans-vpn')
    ),
    # перемонтируем в overlayfs следующие каталоги:
    OverlayMounts(
        ('/mnt/root/etc',       '/mnt/my-data/etc',       '/mnt/my-data/etc.workdir',       '/etc'),
        ('/mnt/root/var/tmp',   '/mnt/my-data/var/tmp',   '/mnt/my-data/var/tmp.workdir',   '/var/tmp'),
        ('/mnt/root/usr/local', '/mnt/my-data/usr/local', '/mnt/my-data/usr/local.workdir', '/usr/local')
    ),
    # восстанавливаем некоторые перекрытые каталоги
    BindMounts(
        ('/mnt/root/etc/apt',   '/etc/apt'),
        # допустим, в базовой системе у нас только один пользователь user
        # - восстанавливаем его каталог в /home
        ('/mnt/root/home/user', '/home/user')
    ),
    # перезапускаем сервисы
    RestartServices(
        'syslog',
        'systemd-journald',
        'autofs',
        'display-manager'
    )
)

# создаём необходимые каталоги в /mnt, который теперь tmpfs
invoke.run('mkdir -p /mnt/myserver')
invoke.run('mkdir -p /mnt/usb')
invoke.run('mkdir -p /mnt/temp')

# если в секретной системе другой /etc/nftables.conf, то надо:
invoke.run('systemctl restart nftables')

# а если есть секретная конфигурация для VPN, то:
invoke.run('ip link add dev wg0 type wireguard')
invoke.run('ip address add 10.0.0.2 dev wg0 peer 10.0.0.1')
invoke.run('/bin/bash -c "wg setconf wg0 <(wg-quick strip /etc/wireguard/wg0.conf)"', shell=True)
invoke.run('ip link set up dev wg0')
invoke.run('ip route replace default dev wg0')
# (лично я не использую wg-quick, своим современным подходом
# с fwmark он ломает мне всю маршрутизацию)

# добваляем маршрут к VPN серверу
invoke.run('ip route add 1.2.3.4 via 192.168.0.1')

# для пользователя sans-vpn VPN не нужен (uid, к примеру, 1003):
invoke.run('ip rule add uidrange 1003-1003 table 1 pref 100')
invoke.run('ip route add default via 192.168.0.1 table 1')

# размонтируем бутстрапный раздел:
if not remote:
    invoke.locrypt_unmount('/tmp/bootstrap')

Делаем скрипт исполняемым:

chmod +x my-hidden-system/bootstrap

Запускаем, создаём пользователей с помощью adduser или useradd, перезапускаем display-manager. Надеюсь, у вас всё получилось?

Таким образом, вы можете запустить свои иксы для каждого секретного пользователя и переключаться между ними по ALT-F7, ALT-F8, и т.д. Не забывайте проявлять активность в основном, несекретном аккаунте. Котиков иногда разглядывайте, что-ли.

Для бутстрапа системы после перезагрузки надо запомить последовательность команд:

HISTFILE=
losetup --offset 20480 --sizelimit 512000 -f /dev/sda
cryptsetup open /dev/loop0 bootstrap --type plain
mkdir /tmp/bootstrap
mount /dev/mapper/bootstrap /tmp/bootstrap
cd /
/tmp/bootstrap/my-hidden-system/bootstrap

Это если вы не придумали ничего лучшего. Я тоже пока нет.

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

Комментарии (72)


  1. aborouhin
    23.07.2023 17:46
    +15

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

    Ну и с практической т.зр. вся эта затея рушится о требование "Не забывайте проявлять активность в основном, несекретном аккаунте" ...


    1. 13werwolf13
      23.07.2023 17:46
      +1

      согласен со всем кроме

      достаточно просто зашифрованного диска и базовой осмотрительности в выборе и хранении ключа/пароля

      обычно наличие шифрованного раздела усиливает подозрения, лично мне хватило сказать что это рабочая необходимость (что кстати правда) и даже не пришлось объяснять почему именно, но не всем так везёт. правда большинство сотрудников органов (по крайней мере в наших краях) не вкурсе что бывает что-то кроме винды и ntfs и подключив шифрованный диск к компу и не увидя нового "диска" в "мой компуктер" решат что диск мёртв и уберут в сторону. другой вопрос если человеком заинтересуются более "прошаренные" органы, но там будет как уже сказано выше терморектальный криптоанализ от которого не спасёт никакое программное или аппаратное ухищрение.


      1. aborouhin
        23.07.2023 17:46
        +2

        Я про полнодисковое шифрование, естественно, при котором без ключа/пароля не загрузиться. А ключ/пароль в описанном мной кейсе ("без беспредела") никто силой не выбивает (слава Богу, пока по экономическим составам так).

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


        1. Areso
          23.07.2023 17:46
          +2

          А ключ/пароль в описанном мной кейсе ("без беспредела") никто силой не выбивает (слава Богу, пока по экономическим составам так).

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

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


          1. aborouhin
            23.07.2023 17:46
            +2

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


            1. Areso
              23.07.2023 17:46
              +11

              Великобритания. Кейсы на эту тему и само британское законодательство уже расписывали здесь, на Хабре, лень повторятся.
              Но легко загуглить.


              1. 0xd34df00d
                23.07.2023 17:46
                +4

                Там сейчас, кстати, один Борис забыл пароль от своего айфона с перепиской ковидных времён, который у него потребовали в рамках следствия. Интересно, арестуют и посадят, как с плебсом, или все будет как обычно?


                1. event1
                  23.07.2023 17:46
                  +3

                  Зная традиции британской монархии, рискну предположить, что будет так же как со штрафами за нарушение социальной дистанции. Всё-таки Борис в Итоне учился. Понимать надо.


            1. DrMefistO
              23.07.2023 17:46
              -2

              Думается мне, что и в Беларуси КейДжиБи действуют точно такими же способами, а то и жёстче.


    1. amateur80lvl Автор
      23.07.2023 17:46
      +3

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


      1. aborouhin
        23.07.2023 17:46
        +6

        В моей практике, товарищи майоры скорее подкинут "всякого" в карман при задержании, чем на диск. Что им туда кидать-то? Какие-то компрометирующие документы / переписку убедительно создать - это само по себе нетривиальная задача.
        А при полнодисковом шифровании (а я только за него) им придётся вообще всю систему с нуля установить и создать убедительную картинку, что пользователь сам там работал - это вообще как?..
        Я, конечно, больше про бизнес-споры, где надо защищать коммерческую информацию от слива конкурентам через заказную уголовку, а не про 272, 273 и вот это всё - там, наверняка, своя специфика. Но опять же, если у нас зашифрован вообще весь диск - попытки что-то там дополнительно "подкинуть" я слабо представляю.


        1. Areso
          23.07.2023 17:46
          +3

          Диск могут попросить расшифровать тупо при прохождении погранконтроля в ряде стран. И далее три сценария:
          1) вежливо отказать и прокатит

          2) вежливо отказать:
          2а) попросят отдать устройство перед проходом погранконтроля

          2б) откажут в прохождении погранконтроля вообще. с устройством или без - уже не важно.

          UPD: в этот раз отличились США и Канада, но вероятно есть и другие страны.


          1. aborouhin
            23.07.2023 17:46
            +3

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

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


            1. Areso
              23.07.2023 17:46
              +2

              Ну вот простой случай. У вас есть ноут (рабочий или личный, не особо важно), он цельношифрован, вы летите в СШиК, вас просят предоставить ключ, ваши действия?
              Отмечу, что это происходит выборочно, когда случайно, когда нет, но чтобы попасть*, не обязательно быть террористом и врагом государства.
              Достаточно написать в соцсети, например, что хотели бы найти работу или подработку в указанных странах, а лететь по бизнес или турист визе =)


              1. aborouhin
                23.07.2023 17:46
                +1

                Ну вот поэтому я в Штаты (про Канаду надо почитать, не слышал раньше, впрочем, специально не искал) или в Китай с основным своим ноутом и не поеду, что я принципиальный и вынужден буду выбрать вариант 2б. Хотя понимаю, что информация о внутрироссийских корпоративных разборках, которую единственно есть смысл защищать на моём ноуте, этим странам по барабану, но я ж на принцип пойду, билеты/брони зря сгорят, визу аннулируют... Ну в пень, просто исключу такой шанс заранее.


                1. Areso
                  23.07.2023 17:46
                  +2

                  информация о внутрироссийских корпоративных разборках

                  имеет интересную особенность. В РФ есть традиция к ним подключать органы, и тогда по наускиванию нападающей стороны возбуждает уголовное дело, а там маски-шоу и сбор улик с обороянющихся в рамках уголовного дела + сопротивление следствию (в случае непредоставления данных).
                  Посмотрите последнее дело против nginx =)


                  1. aborouhin
                    23.07.2023 17:46
                    +2

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


                1. Areso
                  23.07.2023 17:46

                  Окей, вы взяли с собой пустой ноут, но у вас должен быть смартфон с ОТП генератором к нужным аккаунтам?)
                  Или вы возьмёте пустой ноут, пустой смартфон, и дальше ... как?


                  1. aborouhin
                    23.07.2023 17:46
                    +1

                    У меня OTP выдаёт (и пароли хранит) Vaultwarden на моём собственном сервере, на который я зайду по тому единственному длинному и сложному паролю, который я помню наизусть :)


                    1. Areso
                      23.07.2023 17:46
                      +1

                      Vaultwarden на моём собственном сервере

                      снимаю шляпу.


                  1. dartraiden
                    23.07.2023 17:46
                    +1

                    • Экспорт секретов из OTP-генератора в файл
                    • Помещение их в архив с паролем (пароль запоминаем)
                    • Помещение их в облачный аккаунт (любое бесплатное облако) без 2FA (логин пароль запоминаем)
                    • Обнуление смартфона
                    • После прохождения границы всё повторяем в обратном порядке (заходим в облако по паролю, достаём архив, из него достаём бэкап, ставим OTP-приложение и импортируем в него секреты)


                    1. Areso
                      23.07.2023 17:46

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

                      Вопрос, сколько людей их реально проделают.


                      1. select26
                        23.07.2023 17:46

                        DUO все это умеет из коробки.
                        Достаточно задать пароль шифрования в облако, сделать синк и удалить приложение.
                        По прилёту - повторить в обратной последовательности.


                      1. Areso
                        23.07.2023 17:46

                        Прошу прощения, который DUO? В голову приходит под этим названием только недочат от Гугла.


                      1. select26
                        23.07.2023 17:46

                        DUO mobile.
                        Screenshot добавить с мобильного не могу


                  1. Hardcoin
                    23.07.2023 17:46
                    +2

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


        1. 0xd34df00d
          23.07.2023 17:46
          +1

          В моей практике

          Интересные у вас занятия :]


          Какие-то компрометирующие документы / переписку убедительно создать — это само по себе нетривиальная задача.

          Что нетривиального в заливании ЦП на диск?


          В этих наших Штатах некоторые трёхбуквенные так и работают, это даже на слушаниях всплывало.


          1. aborouhin
            23.07.2023 17:46
            +1

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


            1. 0xd34df00d
              23.07.2023 17:46
              +2

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

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


              И то, что отдельно взятый исполнитель уедет в места не столь отдалённые хоть с ЦП на компе, хоть с пакетиком нехорошего порошка в кармане, — никак эту задачу не решает?

              Ну про порошок уже всем известно и никого не напрягает, а ЦП — это что-то новенькое. На зоне, опять же, говорят, ЦПшных меньше любят (ну или больше, смотря с какой стороны посмотреть).


              Но эти случаи — капля в море, и они в целом нерешаемы — не найдут одного, так притянут другое.

              Да, с этим я полностью согласен. Поэтому либо мы обсуждаем небеспредельные дела, либо беспредельные, но во втором случае не задаёмся вопросом «а как же правдоподобно подделать-то?»


              1. aborouhin
                23.07.2023 17:46
                +2

                Так я с этого и начал. Что все описанные в статье фокусы в небеспредельных делах избыточны, а в беспредельных всё равно не помогут :)

                А соотношение первых ко вторым в разных странах в разное время разное, ну и тут у каждого свой опыт. Я делюсь своим (только Россия, 23 года опыта корпоративным юристом / руководителем юристов / сопровождения деятельности юристов).


          1. 3ycb
            23.07.2023 17:46
            +1

            Что нетривиального в заливании ЦП на диск?

            Что такое ЦП?


            1. madcatdev
              23.07.2023 17:46
              +24

              Центральный Процессор


    1. Nnnnoooo
      23.07.2023 17:46
      +1

      Ну и с практической т.зр. вся эта затея рушится о требование "Не забывайте проявлять активность в основном, несекретном аккаунте" ...

      Как бы да, все об этом забывают. Поэтому вся эта "супер пупер безопасность" идет лесом при столкновении с реальным миром


      1. aborouhin
        23.07.2023 17:46
        +6

        Так дело не только в том, что забывают, а в том, что это вообще нереально обеспечить.

        Допустим, пользователь юрист. Ежу понятно, что он как минимум несколько часов в день должен работать с юридическими документами, причём по заранее известным делам, вести переписку (по заранее известному адресу) и т.п. И если увидят, что он в основной системе вместо всего этого только по 10 минут в день смотрит котиков, - грош цена такой легенде. А разделить всю работу на секретную и несекретную часть (и заранее угадать, что может стать секретным в будущем), при этом умудрившись ни разу не ошибиться и не оставить следов секретной деятельности в несекретной системе, - ну фантастика это.


        1. Nnnnoooo
          23.07.2023 17:46

          так отож… вот она реальность, а не теория


        1. pbludov
          23.07.2023 17:46

          Почему? Допустим, я юрист, но сейчас-то я в отпуске. Рабочий ноут оставил дома, с собой ноут который когда-то подарили, я там посмотрел котиков 10 минут и больше не включал. С собой взял именно его из-за того что он маленький и потерять не жалко. Использовать буду только для Зума и Скайпа.


      1. madcatdev
        23.07.2023 17:46

        Можно отключить историю.


    1. Hardcoin
      23.07.2023 17:46

      Это форма стеганографии. Нельзя всю работу вести на спрятанном разделе - ведите 90% на открытом, а пароль от второй, зарубежной базы с бухгалтерией храните скрыто (конечно пароль можно просто запомнить, но иногда данных нужно спрятать больше).

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

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


      1. Nnnnoooo
        23.07.2023 17:46

        В том то и дело что не работает на практике.
        Данные должны быть свежие, месячной или годовалой давности


    1. event1
      23.07.2023 17:46

      не вполне представлял себе те жизненные сценарии, при которых оно необходимо.

      Если есть пристрастие к просмотру детской порнографии, то такой раздел очень пригодится


  1. IRS
    23.07.2023 17:46
    +2

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


    1. dartraiden
      23.07.2023 17:46
      +5

      Да. парни из ФСБ не будут копаться в секторах. Они просто и незатейливо будут пытать током. После чего я признаюсь и в том, что у меня есть, и в том, чего нет, и убийство Кеннеди на себя возьму.


      1. aborouhin
        23.07.2023 17:46
        +3

        Это ещё надо заслужить :) По обычным экономическим делам никто никого не пытает.

        Хотя именно с ФСБ была у меня интересная история... мой родственник, которому я настраивал его личный, он же рабочий (он владелец мелкого бизнеса) ноут. Ну и я, как обычно, настроил шифрование Bitlocker и ключик на USB-флэшке с аппаратным шифрованием. А ключ восстановления Bitlocker сохранил у себя на всякий случай. И вот звонит мне этот родственник как-то вечером и говорит, мол, беда, флэшку посеял, ноут загрузить не могу. Ну я ему надиктовал ключ восстановления и говорю, что новую флэшку купим, поменяем ключ... И ровно на следующее утро к нему в офис приходят ребята из УФСБ (там история была хоть и мелкая, но с оборонным заказом, так что их тема) и изымают как ноут, так и листочек, на который он записал ключ восстановления. Потом, когда вернули, посмотрел логи - с первого раза загрузили, ввели этот ключ, сняли образ диска. Дело потом закрылось, слава Богу, а что это было - я до сих пор не понял, но в такие совпадения не верится.


        1. Daddy_Cool
          23.07.2023 17:46
          +1

          "...И вот звонит мне этот родственник ...". Кто-то сказал - вау, давайте шустро, еще и комп посмотрим. И не поленились!


        1. kt97679
          23.07.2023 17:46

          Как вы поняли, что сняли образ диска?


          1. strvv
            23.07.2023 17:46

            с любыми носителями работу должны бы вести через снятие образа и потом работу с ним. т.к. сам носитель может быть при смерти.
            съем, скорее всего будут делать через аналоги pc3000, чтобы штатное состояние диска было видно — не отличается ли от типового заводского?


    1. 0xd34df00d
      23.07.2023 17:46
      +1

      Ник у вас подходящий.


  1. Actaeon
    23.07.2023 17:46

    Если вы попадаете в оперативную разработку, то как это поможет от телекамер дома или от аппаратного кейлоггера ??


    1. vanxant
      23.07.2023 17:46

      На камере будет видно, что пациент постоянно вставляет скажем SD карту. И...?


  1. powerman
    23.07.2023 17:46
    +1

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

    Разумеется, диск ноута/сервера должен быть полностью зашифрован (любым штатным средством, без описанных в статье попыток это скрыть), ключ шифрования должен быть длинным и храниться на флешке, которую легко уничтожить. По завершению работы ноут/сервер надо выключать. Плюс бэкап ключа где-то в другом облаке, только придётся помнить url и пароль к нему (создавать этот бэкап только с этого отдельного устройства, разумеется).

    Товарищу майору:

    • Наличие флешки с ОС загружаемой в память легко объяснить тем, что это флешка для установки/ремонта основной ОС.

    • Наличие отдельного ноута без ключа расшифровки объяснить тем, что флешка с ключом случайно сломалась на днях.

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

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

    Описанное же в статье - это вариант "для бедных", когда денег на отдельный ноут/сервер нет, зато есть много лишнего времени и готовность к лишним сложностям. Вопрос только, зачем заниматься активностями, которые необходимо так серьёзно скрывать, если это даже денег на отдельный сервер не приносит…


    1. vanxant
      23.07.2023 17:46

      Вот тоже подумал, что в наших широтах RDP на личный VDS у травокуров решает проблему намного проще. А тем абсолютно пофиг что на пиратскую винду, что на чипи


  1. vagon333
    23.07.2023 17:46
    +2

    Любопытно - зачем?
    Отдельная VM где угодно с ограничением доступа по IP + промежуточная VM-ка выделенным IP и сбросом состояния на чистый snapshot при перезагрузке (чтоб никаких логов).
    Заходите на промежуточную и через нее на секретную
    А если не знать, как подключиться из промежуточной к секретной VM, то тупик.
    Все.


    1. Hlad
      23.07.2023 17:46

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


      1. anzay911
        23.07.2023 17:46

        Но удаленное хранилище защищает хотя бы от изъятия или воровства устройства.


  1. Sunrise357
    23.07.2023 17:46

    Не легче ли использовать Битлокер с AES-4096 и ключ на SD-карте, находящейся в USB-переходнике. В случае опасности просто уничтожить SD-карту с помощью зубов (это легко), и расшифровать диск станет невозможно никаким образом. А главное, всё прозрачно, и пытать человека не будет никакого смысла.


    1. LaserPro
      23.07.2023 17:46
      +1

      SD-карте, находящейся в USB-переходнике

      SD карты штука ненадежная, они и сами мрут, без зубов. А значит у вас будет бэкап ключа (образ карточки)

      всё прозрачно, и пытать человека не будет никакого смысла

      И всем будет понятно, что бэкап ключа где-то должен быть - поэтому есть смысл попытать(ся)


      1. Sunrise357
        23.07.2023 17:46

        SD карты штука ненадежная, они и сами мрут, без зубов.

        Мрут при интенсивных чтении/записи. Если с неё просто читается ключ раз в сутки - они практически вечные. У меня до сих пор жива sd(не micro) карта из начала нулевых.


        1. mpa4b
          23.07.2023 17:46
          +2

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


          1. Harwest
            23.07.2023 17:46

            Хорошо. Ну а если это будет u2f токен + рядом лежат плоскогубцы?


  1. funca
    23.07.2023 17:46
    +1

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


    1. powerman
      23.07.2023 17:46
      +1

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


  1. maikuss
    23.07.2023 17:46
    +2

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


  1. Aelliari
    23.07.2023 17:46
    +2

    Эта ссылка просто обязана быть здесь

    https://habr.com/ru/companies/ruvds/articles/563394/


  1. maxwolf
    23.07.2023 17:46

    А ext2/3/4 reserved blocks — они на каком уровне reserverd? Можно среди них раздел положить, чтобы его случайно не затёрло?


    1. amateur80lvl Автор
      23.07.2023 17:46

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

      В тулките, кстати, через filename можно задать, а не через device.

      И, кстати filename удобно использовать для карт памяти которые всегда /dev/mmcblk0, например:

      "volumes": {
          "microsd": {
              "filename": "/dev/mmcblk0",
              "start":  1024000,
              "end":   "(3840000 * 512 // 4096) * 4096",
              "sector_size":  4096,
              "key": "xOnffLGiRcq0PgZz5WprwZhhEECZjRzJ4SmRUayZo24t0HM",
              "mount_point": "/mnt/microsd",
              "mount_options": ["commit=600"]
          }
      }

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

      pdt_mount config-dir


  1. nikto_b
    23.07.2023 17:46
    +1

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

    Но и то, навряд это сильно больше имеет смысла чем полное шифрование диска


  1. kompilainenn2
    23.07.2023 17:46
    +1

    Вам понадобится мой тулкит, который автоматизирует всю рутину.

    спасибо, тов.полковник, но не надо


  1. knstqq
    23.07.2023 17:46

    Кстати, историю команд не забыли отключить? Можно это сделать перманентно в .bashrc или что вы там используете вместо него, но это +1 к подозрениям.

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

    # don't put duplicate lines or lines starting with space in the history.
    # See bash(1) for more options
    HISTCONTROL=ignoreboth


  1. NicolyaLS
    23.07.2023 17:46

    И тут паранойя сделала стойку на словосочетание "Вам понадобится мой тулкит"...


    1. Mingun
      23.07.2023 17:46

      Да ладно, неужели не видно, что пост насквозь сквозит сарказмом?


  1. Tuxman
    23.07.2023 17:46

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

    Статья про то, как автор прячет CP?


  1. Tuxman
    23.07.2023 17:46
    +1

    Хуже, если бы вас спросили: зачем ты используешь LUKS, или, что ещё хуже, зачем ты поставил VeraCrypt или Shufflecake.

    Тёмная история с TrueCrypt таки случилась, и почему надо было срочно выпустить "правильную" VeraCrypt. Вот бы лучше тему какую раскрыли!

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