haazkypanky
Начинающий
- Регистрация
- Сообщения
- 6
- Реакции
- 0
Мне нравится исследовать, почему и как кого-то взломали, а еще думать, как сделать так, чтобы этого не происходило. В связи с COVIDом и прочими событиями гораздо больше важных данных все стали пересылать посредством электронной почты и мессенджеров. Соответственно, выросло и количество случаев кражи таких данных. И сегодня мы разберемся, как защищать важную информацию при передаче.
Понятно, что в мессенджерах, соцсетях и электронной почте есть уже необходимые инструменты ИБ. Но как быть с конфиденциальной корпоративной информацией? Ведь всегда существует риск утери устройства, перехвата пароля и другие векторы атак. Ниже мы опишем способы защиты данных при передаче, которые собрали за многолетнюю практику проведения аудитов ИБ, и покажем, какие из них более надежные, а какие – более быстрые. Сразу скажем, что излишняя паранойя в этом деле наверняка будет тормозить бизнес-процессы, поэтому предаваться ей не стоит, а лучше выбрать сбалансированный вариант самостоятельно.
1. Съемные носители и прочая классика
Первое, что может прийти в голову при необходимости обменяться конфиденциальной информацией, исключив риск компрометации, – обмен файлами через USB-накопитель, внешний жесткий диск, CD/DVD диск, дискету (привет, олд скул!) Но для этого нужно встречаться контрагентам (отправка по почте или курьером – явный риск). Это неудобно, поэтому способ приемлем для разового использования (частный случай нахождения аудитора и аудируемого в шаговой доступности не рассматриваем). А ведь информацию даже в рамках одного аудита приходится передавать часто.Интересен вариант с CD/DVD дисками: после копирования информации их можно просто сломать и выкинуть – не жалко. Правда следует отметить, что привод компакт-дисков на офисных компьютерах теперь встретишь не часто.
Плюсы и минусы съемных носителей
Плюсы: стороны могут непосредственно идентифицировать друг друга, информация гарантировано попадает только на авторизованный компьютер.Минусы: требует личного участия сторон.
2. Запароленные архивы и прочие облака
Использовать для передачи информации шифрование - очень хорошая идея. Криптография для этого и предназначена, ведь она преобразовывает осмысленное в бессмысленное и обратно.Что делаем? Собираем папку с файлами, архивируем ее с паролем. Что у нас обычно под рукой? Правильно, и 7-zip. Паролить архивы умеют все, а кто еще нет – смотрим картинки ниже. Опция Lock archive исключит изменение архива.
А вот вопрос с криптостойкостью стоит рассмотреть подробнее. Справка Winrar сообщает: «archives are encrypted with AES¹-256 algorithm in CBC mode for RAR 5.0 archives and AES-128 in CBC mode for RAR 4.x archives. RAR 5.0 key derivation function is based on PBKDF2²… ». Переводим: на базе пользовательского пароля по алгоритму PBKDF2 формируется ключ длиной 256 бит для использования в алгоритме шифрования AES-256 в режиме сцепления блоков (Cipher Block Chaining).
Справка по 7-zip не требуется. Интерфейс как бы намекает, что единственный вариант – AES-256 без указания режима.
Хорошо это или плохо? Passware Kit Forensic 2022 v2 (64-bit) на офисном Core i5-10400F 2.90 GHz оценивает брутфорс пароля из 10 цифр для RAR 4 в 6 месяцев, для RAR 5 – в 3 года, для 7-zip – в 1 год и 10 месяцев.
Неплохо… и только цифры! Использование грамотного пароля (не из словаря и из разных групп символов) информацию вполне обезопасит.
Такой зашифрованный архив уже можно передавать по открытым каналам, например, отправив по электронной почте или разместив на общедоступном ресурсе (облаке), или на своем FTP-сервере. И все бы хорошо, но возникает вопрос: «Как передать пароль?» Любой механизм (кроме «с глазу на глаз») рискован, но есть очевидно провальные: разместить на том же ресурсе, в том же или следующем письме/сообщении и т.п. Компромиссное решение состоит в передаче пароля по иному каналу и с другого устройства.
Хороший пример: сообщить пароль при личной встрече. Теперь его можно использовать для последующей переписки, что дает преимущество перед передачей нешифрованных файлов на носителе. Также можно договориться о правиле генерации паролей на конкретную дату.
Неплохой пример: архив переслать по емайл, пароль сообщить голосовым сообщением в мессенджере, которое потом удалить.
Плохой пример: указать пароль в том же письме, где ссылка на облако.
Плюсы и минусы архивации
Плюсы: можно передавать по открытым каналам.Минусы: проблема с передачей пароля.
А кстати, если уж заговорили про облака, там ведь тоже можно установить пароль. Да, но есть нюанс! Это может быть пароль на доступ к ресурсу, где хранятся данные, а не к самим данным. Другими словами, со стороны облака или FTP-сервера эта информация будет открыта. Доверять ли операторам облачных хранилищ или FTP-серверов, каждый решает сам, но в случае утечки данных такой способ передачи явно расширит круг подозреваемых…
К тому же далеко не все распространенные облачные хранилища позволяют закрывать доступ паролем (icloud.com, drive.google.com, cloud.mail.ru) – у некоторых функция доступна только для определенных тарифов.
Плюсы: удобство доступа.
Минусы: проблема с передачей пароля, доверия к хранилищам.
Очевидное невероятное с использованием протокола Диффи-Хеллмана
Ну и нужно отметить, что проблема генерации секретного ключа по открытым каналам давно уже решена У. Диффи, М. Хеллманом и Р. Мерклом (U.S. Patent 4200770 Apr. 29, 1980). И это протокол Диффи-Хеллмана, который оперирует возведением в степень и нахождением остатка от деления. За несколько итераций пересылки друг другу больших чисел лица, успешно освоившие школьный курс математики, вполне могут сформировать пароль, известный только им. Информации много, в Википедии есть пример³. Вперед, тем более, патента уже истек!3) Шифрованые обменники (Seafile, Mega)
Стороннее шифрованное облачное хранилище
Для особо недоверчивых защитников информации существуют облачные ресурсы, хранящие данные в шифрованном виде. Рассмотрим в качестве примера mega.io (функционирует с 2013 года, предоставляет 20 ГБ бесплатно). Mega шифрует весь контент в браузере при помощи javascript с помощью уже знакомого нам AES и незнакомого RSA (см.ниже).Ключ шифрования генерируется на основе пароля, поэтому для восстановления доступа к данным, в случае его утери, может помочь только предварительно сохраненный ключ восстановления.
Сервис неоднократно подвергался критике из-за используемых технологий обеспечения безопасности⁴, в 2018 году было скомпрометировано Chrome-расширение Mega⁵. При этом случаи компрометации пользовательских данных в свободном доступе отсутствуют, а Mega регулярно рапортует об устранении выявленных уязвимостей. Таким образом, если пренебречь угрозой намеренной атаки со стороны Mega для копирования/замены передаваемых данных, то сервис вполне рабочий.
Он позволяет отделить ссылку от ключа, что при пересылке по разным каналам может обеспечить дополнительный уровень безопасности. Платная версия позволяет защитить материалы паролем (тут уже 3 канала связи потребуется – ну очень надежно).
или
Важное про гибридную криптографию
RSA (Rivest-Shamir-Adleman) – один из алгоритмов асимметричной криптографии. Это революционное достижение криптографии 1970-х. Суть в генерации пары ключей (открытый – известен всем, закрытый – только владельцу). Ключи друг из друга вычислить нельзя, хотя они математически связаны и растут из одного корня. Шифруем открытым ключом - расшифровать можно только закрытым. Шифруем закрытым – открытым проверяем, кто зашифровал. Вкупе с контролем целостности получаем электронную подпись.Может возникнуть резонный вопрос, почему появление такой схемы не привело к отмиранию традиционной симметричной криптографии. Во-первых, привязываться к двум ключам не всегда удобно и не всегда нужно. Во-вторых, для обеспечения криптостойкости на уровне симметричных алгоритмов, асимметричным требуется гораздо более длинный ключ (например⁶, 3072 бит RSA против 128 бит AES), что приводит к бОльшим вычислительным затратам.
В настоящее время используется так называемая гибридная криптография, совмещающая преимущества асимметричной схемы с производительностью симметричных алгоритмов.
Она применяется и в Mega. В корне иерархии ключей находится пользовательский пароль. Из этого пароля Мega извлекает ключ аутентификации и ключ шифрования. Ключ аутентификации используется для последующих подключений пользователя к Mega. Ключ шифрования шифрует случайно сгенерированный мастер-ключ, который, в свою очередь, шифрует остальной «ключевой материал⁷»:
- ключевая пара RSA-2048 (для обмена данными с другими пользователями. Симметричный ключ доступа к общему ресурсу расшифровывается открытым ключом RSA);
- симметричный ключ узла для каждого файла или папки.
Пользователь на новом устройстве может ввести свой пароль, пройти аутентификацию в Mega, получить зашифрованный «ключевой материал» и расшифровать его с помощью ключа шифрования, полученного из пароля.
Плюсы и минусы стороннего шифрованного облачного хранилища
Плюсы:- Не требует затрат на обслуживание;
- Сервис не аффилирован с контрагентами (сторонами информационного обмена).
- Ограничения на объем и размер файла;
- Нет гарантии, что бесплатное не станет платным;
- Нужно доверять оператору хранилища.
Собственное шифрованное хранилище
Для тех, кто предпочитает самостоятельно реализовывать конфиденциальный обмен информацией с контрагентом, тоже есть решение – собственное шифрованное облачное хранилище. Пример – Open Source проект Seafile (www.seafile.com).Seafile имеет простой веб-интерфейс, поддерживает русский язык, можно заменить логотип и фон. Есть клиентcкие приложения под Windows, Mac, Linux. В Google Play и AppStore присутствуют соответствующие мобильные приложения Seafile. Главное – гибкая настройка доступности материалов и журналирования.
Установка клиента делает работу с хранилищем похожим на работу с Git в части синхронизации с сервером и хранения истории изменений (возможность загрузки любой версии файла).
Корневые папки называются библиотеками, к ним можно применить шифрование и разрешить доступ на чтение/запись или только чтение.
Есть нюансы! Шифрованную библиотеку можно сделать доступной только зарегистрированным пользователям (группам пользователей). Библиотека без шифрования позволяет организовать общий доступ для пользователей (групп пользователей), сформировать ссылку на доступ или загрузку, защитив ее паролем и сроком действия.
На момент написания статьи документация⁹ Seafile предупреждает, что шифрование на стороне клиента не поддерживается веб-клиентом.
Рассмотрим процедуры шифрования при использовании десктопного или мобильного клиента. Он генерирует 256-битную последовательность (file key) для шифрования библиотеки. Библиотека шифруется клиентом с помощью AES-256 CBC и отправляется для хранения на сервер.
File key шифруется 256-битной производной пользовательского пароля (key/iv pair) с помощью AES-256 CBC. Полученный зашифрованный ключ сохраняется на сервере.
При доступе к зашифрованной библиотеке зашифрованный ключ расшифровывается производной от пароля пользователя. В целях безопасности клиент в рамках сессии сохраняет только key/iv pair, который используется для расшифровки данных. Забыв пароль, пользователь не сможет восстановить его или получить доступ к своим данным на сервере. Для синхронизации зашифрованной библиотеки с клиентом используется "волшебный токен" (magic token). Он создается на основе пароля и идентификатора библиотеки и хранится в библиотеке на стороне сервера. Клиент использует этот токен для проверки пользовательского пароля перед синхронизацией библиотеки. Не очень понятно, правда? Тем более, что термин «токен» в последнее время практически стал синонимом термина jack (какая-то штука). Думается речь идет о токене аутентификации¹⁰…
Волшебный токен генерируется алгоритмом PBKDF2 с 1000 итерациями хэша SHA256.
Важное про хэш и производные от пароля:
Мы уже встречали аббревиатуру PBKDF в справке по WinRar, но ограничились переводом. Теперь рассмотрим подробнее. Как можно заметить, ключи, используемые для шифрования, гораздо длиннее пользовательских паролей. Задача password-based key derivation function получить из короткого пароля длинный ключ с помощью псевдослучайной функции, причем, чем быстрее, тем лучше. PBKDF2 сменил PBKDF1 с ограничением получаемого ключа 160 битами.
В реализации Seafile 1000 раз рекурсивно используется хэш-функция SHA-256. В свою очередь, хэш-функция реализует преобразование исходных данных в битовую строку фиксированной длины. Смысл хэш-преобразования в том, что получаемое значение очень чувствительно к изменению исходных данных. Так, изменение исходных даже на 1 бит приводит к существенному и, заранее непредсказуемому, изменению хэша. По этой причине хэш-значения используются в качестве дайджестов передаваемых данных при контроле целостности. Если отправленное и полученное сообщения имеют одинаковый хэш, делается вывод о неизменности данных при передаче.
Оценить интерфейс и попробовать поработать в Seafile без регистрации можно прямо в демонстрационном облаке https://demo.seafile.com/demo. Также можно зарегистрироваться на cloud.seafile.com (у меня получилось только в качестве организации), получить 1 Гб в облаке и потестировать функционал.
Плюсы и минусы собственного шифрованного облачного хранилища
Плюсы:- Объем ограничен собственным желанием;
- Есть клиенты под распространенные ОС;
- Ограничения на размер файла регулируются лишь технологиями;
- Безопасность и конфиденциальность под контролем.
- Нужно покупать сервер с дисками или хранилище;
- Требует затрат на обслуживание, железо, электричество.