Всю інформацію людини можна розділити за ступенем важливості, приблизно так:
- системные бэкапы (важность 1/10);
- текущие рабочие файлы (3);
- личный архив: фотографии, видео (6);
- копии бумажных документов (8);
- секреты: ключи, пароли, кошельки (10/10).
Втрачати файли завжди неприємно. Тому ми робимо резервні копії. Ностепень параноидальности усилий по защите информации зависит от важности. Є категорія файлів, яку не можна втрачати за жодних обставин, даже в случаеБП. Это нашиглавные секреты, то есть ключи, пароли и кошельки.
Как мырассказывали в прошлой статье, холодные кошельки желательно продублировать на разных накопителях и хранить физически удалённо друг от друга, чтобы минимизировать риск потери в одном событии.
0. Защищённые флешки
Популярный вариант для хранения холодных криптокошельков — флешки с шифрованием типа Digital Bitbox, Trezor, Ledger и KeepKey. Они автоматически шифруют файлы и оснащены красивым дисплеем.
Такие флешки (леджеры, трезоры) обеспечивают дополнительную защиту криптокошелька. Здесь у нас добавляется как минимум один уровень защиты:
- пин-код для доступа к флешке;
Это вдобавок к стандартным:
- сид-фраза (восстановление доступа к средствам в случае потери кошелька);
- пароль (в дополнение к сид-фразе).
При этом у защищённых флешек есть несколько недостатков по сравнению с обычными:
- они дороже;
- их сложнее дублировать для надёжности;
- меньше объём хранимой информации;
- они привлекают внимание злоумышленников.
По последнему пункту. Наприклад, на обычную потерянную флешку никто не обратит внимания. А вот когда на дороге валяется Trezor, то нашедший может обратиться кхакерам, которые подбирают пин-код за вознаграждение. И/или постарается найти владельца, который сразу становится потенциальной жертвой вымогательства. Если «леджер» нашли у человека в личных вещах, на связке ключей (наприклад, во время обыска) — жди беды. Это лишние риски, которых можно избежать. Особенно в трудные времена, которые наступают сейчас.
Преимущества такой красивой флешки — скорее в удобстве и «статусности» в мирное время. Но на самом деле может получиться так, что человек жертвует своей безопасностью ради удобства.
По сути, продавцы таких товаров зарабатывают на страхе людей потерять кошелёк. Бизнес-модель чем-то похожа на продавцов антивирусных программ. Чем больше нагнать страху — тем выше продажи.
С другой стороны, обычная дешёвая флешка ни у кого не вызывает никаких подозрений. Чем она дешевле и грязнее, тем лучше.
Многое из вышесказанного относится к «менеджерам паролей», которые представляют собой удобный GUI для зашифрованного хранилища случайно сгенерированных символов (LastPass, BitWarden, 1Password, KeePass). Так, это удобно. Но генерацию случайных символов и шифрование можно выполнять самостоятельно с помощью специализированных инструментов. Как и в случае с защищёнными флешками, приходится искать компромисс между удобством, безопасностью и сложностью процедур, то есть жертвовать чем-то одним ради другого.
1. Шифрование
В реальности самая лучшая защита — это не какой-то волшебный гаджет, а банальная математика, которую мы проходили в школе. Невозможность разложить на множители произведение больших простых чисел. Уникальность координат пересечения прямой линии и эллиптической кривой. То есть современная криптография и шифрование.
Говорят, что всё лучшее в мире — бесплатно. Любовь, дружба, честность и др. Введение финансовых расчётов зачастую портит искренние отношения. То же правило действует для криптографических инструментов. Надёжные инструменты часто распространяются с открытым исходным кодом, хотя тут тоже бывают исключения. Вот некоторые программы для шифрования файлов и дисков под Linux и Windows:
- GnuPG
- VeraCrypt
- Cascade Encryptor
- WinSesame
- AutoKrypt
- Softwinter
- Invisible Secrets
- ccrypt, утилита командной строки
Берём секретные файлы — ключи, пароли, кошельки — шифруем их и закрываем надёжным паролем с максимальной энтропией.
Затем прячем под видом обычных фотографий/видео, чтобы никто не догадался о наличии секретов. Это стеганография — опциональный шаг для дополнительной защиты.
2. Стеганография + обфускация
Стеганография и обфускация — сокрытие зашифрованных файлов в массиве другой информации. Наприклад, в видеофайлах или фотографиях.
В идеальной ситуации никто не сможетдоказать факт существования скрытой информации, пока не узнает механизм стеганографии. Это как азбука Морзе в моргании человека на экране ТВ. Невозможно доказать, что там присутствует полезный сигнал, пока мы не узнаем схему кодирования, о которой человек с экрана заранее договорился с сообщником.
Предположим, что байты ваших секретных файлов записываются в разные пиксели видеокадров домашнего видеофильма, маскируясь под окружающие цвета. Наприклад, каждый байт секретного файла можно кодировать путём добавления/вычитания небольших значений R, G, B из соседних пикселей. В первом кадре это может быть один пиксель, во втором кадре — другой и так далее. Можно вносить незначительные искажения в канал яркости, звуковую дорожку и другие медиаданные. В обычном контейнере MKV огромное количество мест, куда легко записать свою информацию совершенно незаметно.
Не зная алгоритма распределения данных в информационном контейнере, злоумышленник не сможет предположить скрытие там дополнительных данных. Більш того, даже наличие такой идеи ничем не поможет злоумышленнику, потому что вариантов обфускации бесчисленное множество. Практически невозможно угадать конкретную схему и случайно выбранные коэффициенты. Даже в случае извлечения секретных данных их невозможно будет расшифровать без пароля, так что это двойная защита.
Для оптимальной защиты лучше придумать собственный вариант стеганографии/обфускации — и реализовать его своим уникальным способом. Наверняка у каждого человека есть много идей, в каких файлах лучше спрятать секретные биты, чтобы их никто не нашёл. Это не обязательно могут быть статические файлы. В качестве носителя можно использовать открытый интернет-трафик. Наприклад, добавлять по несколько бит полезной информации в каждом пятом пакете с веб-камеры, примерно как делали авторы продвинутого трояна SolarWinds.
Некоторые инструменты стеганографии:
- Steghide (JPEG, BMP, WAV, AU).
- Exiftool (запись метаданных в заголовки файлов, поддерживается196 форматов файлов).
- WavSteg (WAV).
- OpenStego (PNG).
- mp3stegz (MP3).
После шифрования и обфускации наступает следующий этап — резервное копирование.
3. Резервное копирование (разные континенты, разные облака)
Если файлы надёжно зашифрованы и защищены паролями, то можно относительно безопасно хранить их даже в публичных облаках типа Google Drive, Яндекс.Облако, Apple iCloud или неограниченное по размеру облачное хранилище Telegram (файлы до 2 ГБ).
Разумеется, с дополнительными мерами безопасности, включая стеганографию. То есть секретная информация хранится под видом видеофайлов или фотографий, растворившись среди бит медиаконтента.
Как мы писали в прошлый раз, при дублировании информации применяются обычные техники резервного копирования, когда каждый элемент резервирования уменьшает вероятность отказа узла в соответствии с формулой:
- где m — число резервных элементов (кратность резервирования);
- q_{i} — вероятность отказа элемента i;
- Q — вероятность отказа узла из n элементов (вероятность отказа всех элементов).
Каждый выбирает уровень надёжности в зависимости от своей параноидальности: от 99% до 99,(9)%.
Несколько стратегий дублирования, некоторые из которых можно сочетать друг с другом:
- Разные облака: на случай если один или несколько облачных хостингов выйдут из строя, обанкротятся, станут недоступны в вашей стране, удалят файлы по какой-то причине (зачастую хостинг имеет полное право удалять файлы пользователя, согласно ToS).
- Разные носители: SSD, флешки, CD, DVD и другие, с периодическим обновлением носителей, наприклад, каждые 5–10 лет.
- Разные локации: схроны и закладки в разных городах, странах и континентах. Кто знает, куда судьба забросит вас или ваших наследников спустя столетия.
4. Разделение секрета
Последний уровень защиты файлов —схема разделения секрета Шамира. Она предусматривает разделение ключа на определённое количество фрагментов.
При составлении секрета мы можем разбить его на произвольное количество фрагментов (n) и установить минимальное количество фрагментов, которые собирают функциональный ключ (k). Наприклад, n=4, k=3.
Схема разделения секрета удовлетворяет ряду условий, в том числе:
- Потеря нескольких фрагментов не влияет на сохранность информации.
- Злоумышленник не получает никакой информации от обладания одним фрагментом ключа или любым количеством фрагментов, меньше необходимого (k-1).
Улучшенный вариант —проверяемые схемы разделения секрета, такие как схема Фельдмана и схема Бенало. Они дополнительно защищены от атаки с подделкой фрагментов секрета. То есть алгоритм способен верифицировать подлинность любого фрагмента, что бывает полезно.
На практике в блокчейне можно использовать мультиподписи, то есть мультисиг-адреса. Это такие адреса, где для совершения транзакции требуется предъявить несколько ключей. Наприклад, 2 из 3 або 3 из 5.
Поскольку ни один человек не является единоличным владельцем секрета, мультиподпись повышает уровень безопасности, защищая членов коллектива от захвата или смерти одного из них.
Dark Crystal
В качестве одного из практических вариантов разделения секрета можно упомянутьDark Crystal. Это набор протоколов, библиотек и техник для безопасного управления секретными файлами, такими как ключи, кошельки и приватные подписи.
Dark Crystal создан для внедрения в сторонние программы и поддерживает любые транспортные протоколы. Разработаны справочные имплементации наJava, Javascript іRust. Справочные имплементации реализованы на основе конвенций из криптографической библиотекиlibsodium ібиблиотеки разделения секрета Шамира от Даана Шпренкля. В каждой имплементации есть список модулей, которые можно свободно использовать.
Корневой групповой ключ для надёжности разделяется на части (семья, друзі, единомышленники)
Один из модулей Dark Crystal — пиринговый мессенджер Briar, который работает в отсутствие интернета (Bluetooth, WiFi) и поддерживает мультиподпись с разделением секрета. Собственно, эти функции для него реализованыблагодаря интеграции модулей Dark Crystal.
Организация социального бэкапа, выбор пользователей для хранения фрагментов секретного ключа. На правом скриншоте меню активации дистанционного удаления аккаунта
Протокол Dark Crystal Key Backup прошёл независимую аудиторскую проверкуInclude Security, см.итоговый отчёт по результатам проверки.
На фото вверху — процедура восстановления аккаунта и генерации нового ключа. Для инициации требуется сбор в одном месте пользователей, получивших от вас фрагменты секрета во время социального бэкапа. Это могут быть члены семьи, друзья или единомышленники, наприклад, четыре из шести человек (фото из отчётаDark Crystal — Briar Project Case Report).
Разделение ключа между родственниками позволяет сохранить ценные файлы, в том числе после смерти владельца. Кроме реализации воли умершего, у разделения ключей есть другие варианты применения. Унаучной статье с описанием Dark Crystal указаны следующие:
- Социальный бэкап.
- Дистанционное удаление секретов (в случае если товарищ арестован или похищен). Поддерживается в Briar.
- Коллективное управление (принятие решений, голосования, референдумы).
- Повторная генерация индивидуального ключа в случае потери, через коллективное голосование.
Процедура выдачи нового ключа
Заключение
Подведём итог. Надёжное хранение секретных файлов допускает несколько уровней защиты:
- Шифрование.
- Стеганография и обфускация (скрытие самого факта существования зашифрованных файлов).
- Дублирование на физических накопителях.
- Дублирование на разных хостингах.
- Разделение ключа.
Можно использовать отдельные уровни защиты и комбинировать их практически в любых сочетаниях, в зависимости от необходимой параноидальности в конкретной ситуации.