Шифрование дисков по гост
До середины 60х годов прошлого века, в эпоху арифмометров и логарифмических линеек, криптографические системы разрабатывали инженеры. Тогда роль математиков сводилась к криптоанализу и внедрению в алгоритмы скрытых бэкдоров.
С появлением ЭВМ, математики полностью оккупировали тему криптографии, цифровое представление данных их вотчина.
Но прогресс не стоит на месте, появились квантовые вычислители и квантовая передача данных, и там данные представляются не в виде чисел, а в виде квантовых состояний, это означает приход в тему обработки информации физиков.
Пока реальные квантовые вычисления находятся в области «заоблачной дали», но это не значит, что к ним рано готовится, вполне возможно, что уже даже поздно. Но лучше поздно, чем никогда.
Пока же, математики слабо разбираются в тонкостях программирования, что-то выдумывают, а потом программист должен это реализовать в программном коде, что далеко не всегда возможно сделать эффективно.
Примером такого подхода является алгоритм симметричного шифрования «Кузнечик», реализовать его эффективно в программных кодах х86-64 невозможно.
Сделаем все наоборот и посмотрим, что получится…
Программист, знающий как работает процессор, займется разработкой алгоритма максимально эффективно реализуемого на современных процессорах, а физик подскажет как его сделать стойким к методам квантового криптоанализа.
Криптографы, как в старые добрые времена, пускай занимаются своей основной работой — криптоанализом получившегося решения.
Будем действовать осторожно, по принципу «Лучшее-враг хорошему», возьмем за основу «хорошее» — ГОСТ 28147-89. Затем по врачебному принципу «Не навреди» усилим его методами многопоточных вычислений.
Что значит «усилить» говорилось в статье «Многопоточные криптографические алгоритмы», вот что было сделано конкретно:
— Увеличен размер ключа до 256байт.
— Увеличен размер блока данных до 256байт.
— Улучшены статистические параметры шифротекста.
Увеличение размеров ключа и блока данных сводятся к повышению расчетной и алгоритмической сложности криптоанализа. Требование максимального соответствия шифротекста параметрам случайной последовательности ранее было вторичным, но в настоящее время это уже неприемлемо.
Статистические характеристики шифротекста в постквантовую эпоху становятся основными параметрами, определяющими криптостойкость.
Любые нарушения случайности это скрытые закономерности, которые криптографы могут свести к линейным функциям. А линейные функции любой сложности вскрываются квантовыми методами. Поэтому статистике уделялось основное внимание при разработке многопоточного алгоритма шифрования на основе ГОСТ 28147-89.
Было сделано следующее:
— Нелинейная операция подстановки тетрад заменена нелинейной операцией перестановки байт в блоке данных. Всего используется 16 фиксированных перестановок
— В линейном преобразовании циклического сдвига внедрена нелинейная операция инвертирования групп бит.
— Сеть Фейстеля модифицирована в кольцевую сеть собственного изготовления с сохранением базовых преобразований ГОСТ 28147-89. Это сделано для устранения обратимости преобразования.
— Ввод ключей выполнен в виде обратимого криптографического преобразования перестановки бит.
Преобразование перестановки бит осуществляет разбиение 256 байтового блока на куски произвольной длины (в соответствии с ключевой информацией) и перестановки их также в зависимости от ключевой информации. Ключи в этом преобразовании не влияют на содержимое блока данных (не меняют числа нулей и едениц), только перемешивают блок данных «внешним» воздействием.
Как анализировать данное преобразование не понятно. Математического аппарата для анализа произвольных перестановок в бинарных блоках, выполняемых над произвольными фрагментами этого блока, не существует…
Модифицированная сеть Фейстеля работает в режиме необратимого гаммирования. Это гарантирует, что даже зная ключи и некоторую последовательность блоков гаммы невозможно вычислить значения блоков гаммы за пределами этой известной последовательности блоков.
Для вычислений значений блока гаммы за пределами известной последовательности требуется провести вычисление из начальной точки гаммирования.
Практическая реализация
Пока все это было «сказкой» и благими пожеланиями, пора превратить их в «быль», и вот как она выглядит:
Это типичный результат тестов NIST нового криптопреобразования на основе ГОСТ 28147-89. Результаты тестов на любых случайных ключах и первоначальных заполнениях всегда укладываются в статистические параметры случайной последовательности.
Для сокращения времени тестирования, применялась упрощенная методика. Сначала проводился эксперимент на ста блоках длиной один миллион бит в гамме длинной 24мегабайт (используется первая половина гаммы).
В случае неуспешного эксперимента (выпадения из диапазона допустимых пропорций), та же гамма, уже в полном объеме, тестировалась на ста блоках длиной два миллиона бит. Для таких экспериментов все запуски теста были успешными (в серии из 100 экспериментов).
Понятно, что и тесты с блоком длиной два миллиона бит тоже должны приводить иногда к выпадению из диапазона пропорций, но из-за ограничений по числу экспериментов таких случаев не встретилось.
Эти статистические параметры гаммы гораздо лучше гаммы вырабатываемой классическим ГОСТ, в нем часто встречаются ключи, на которых тесты NIST не проходят в принципе. Шифр AES, в аналогичных экспериментах не сильно отличается от традиционного ГОСТ.
Полученные в экспериментах по нормам 8 байтного блочного шифра статистические параметры для блочного шифра с размером блока 256 байт это фантастика.
Это все равно что, к примеру, подбросив монетку 12 раз и получив равное выпадение «орла» и «орешки», требовать, чтобы кубик, тоже брошенный 12 раз, выпал на каждую грань обязательно по два раза…
Такое теоретически возможно только при очень высокой дифференциальной энтропии между смежными блоками и характеризует уровень сложности блочного шифра.
И самое интересное, эти параметры получены при одном раунде преобразования. Других блочных шифров удовлетворяющих требованиям случайности при использовании всего одного раунда больше не существует.
Максимальная криптографическая мощность этого шифра достигается уже на 16 раундах, но для текущего уровня криптоанализа это явно избыточно.
Теперь про скорость
Это скриншот реализации многопоточного криптопреобразования на основе ГОСТ 28147-89 в программе FastSecurityBoxes, тестирование проводилось по методике описанной в статье «Второе пришествие ГОСТ».
Как видно на скриншоте скорость копирования достигла предела для тестовых SSD дисков и составляет 453мБайт/сек. при загрузке процессора всего 6 процентов.
Теоретически, в тестах чистой криптографии, скорость шифрования для режима гаммирования составляет 12 ГигаБайт/сек. на одно физическое ядро процессора (моделей Skylake и выше) работающее на частоте от 3гГерц и выше.
Скорость шифрования определяется уже не частотой процессора, а пропускной способностью оперативной памяти вычислительной системы.
Русская Рулетка, 2017 и его будущее применение
В последнее время, с легкой руки ФСБ, шифры у нас стали получать звучные названия, типа «Магма», «Кузнечик», продолжим эту традицию.
Будем называть этот блочный шифр «Русская рулетка».
Почему «Русская», надеюсь всем понятно. А «рулетка», потому как шифр построен на вращениях (кольцевых сдвигах) бинарных последовательностей. Таких сдвигов там только в явном виде 192 штуки за один раунд.
Кстати, русские офицеры, игравшие в Русскую рулетку, были хоть и безбашенными, но далеко не глупцами. Они тщательно чистили свои наганы, и хорошо знали физику, а потому держали наган при вращении барабана строго горизонтально…
Барабан с одной/пятью пулями из шести становится несбалансированным, и всегда стремиться встать пустым патронником напротив ствола.
Так что случайностью была только возможности заклинивания барабана от разных соринок/волосинок, попадание на пустой патронник было «псевдослучайным» и имело строгий, прогнозируемый результат.
Ранее, при внедрении параллельного метода реализации ГОСТ 28147-89 пришлось его полностью описать, поскольку он проходил официальную сертификацию ФСБ.
Сейчас ситуация другая, никакого официоза не предполагается. Поэтому подробного описания алгоритма «Русская рулетка» не будет, это своеобразная копирайт защита. Если интересно станет профессионалам, пускай обращаются к своим коллегам, — реверс программистам. Вот кому придется поломать голову…
Короче говоря, алгоритм Русской рулетки будет проприетарным и скоро появится вот это: Русская Рулетка, 2017.
Закрытый от исследования алгоритм шифрования,- это конечно нонсенс, поскольку отсутствует доверие к надежности шифрования.
Но Русская рулетка не система шифрования, не нужны нам терки с регулятором. Пускай в меня первым кинет камень тот, кто скажет, что это шифр, это не система шифрования, легким движением руки сделан ход конем, и алгоритм превращен в скоростную систему хеширования и коррекции ошибок, ведь в первую очередь нужно заботится о целостности данных…
Самодельная циклическая сеть Фейстеля идеально удовлетворяет требованиям «турбокода» для исправления ошибок, я это не специально, «он сам пришел»…
Стандартное гаммирование с обратной связью превращается в Хеш функцию, если ключи связать с ранее обработанными данными…
Ну а то, что в результате данные будут еще и надежно защищены от просмотра и модификации, — так извините, побочный эффект работы системы хеширования и коррекции ошибок.
Пока представлен криптографический «движок» этой будущей системы, его можно оценить на тестовых гаммах с точки зрения статистики и криптостойкости.
В дальнейшем же предстоит сделать то, что не удалось сделать Крылову. С помощью Русской рулетки запряжем в «телегу» ответственного архивирования трех персонажей его басни,- «лебедя» приватности, «рака» достоверности и «щуку» надежности. При этом, заставим их тянуть «телегу» с бешеной скоростью…
Сложная задача, но решаемая.
Практическая реализация криптофункции
Алгоритм «Русская рулетка» встроен в демонстрационную версию программы FastSecurityBoxes в частично обрезанном виде. Пока, для тестирования, реализовано только базовое преобразование работающее в режиме гаммирования. Используется один раунд, этого достаточно для надежного прохождения тестов NIST и криптостойкости на уровне 2256*8 (вариант прямой атаки методом перебора).
Ключи пересчитываются после выдачи 64килобайт гаммы.
Сам алгоритм реализован на AVX командах с использованием YMM регистров, поэтому эффективно этот алгоритм может работать только на самых последних процессорах Интел (Skylake и выше).
На процессорах AMD, даже самых новых, алгоритм Русской рулетки будет работать медленно, поскольку операции использующие YMM регистры реализованы в них микропрограмно а не аппаратно.
Чтобы в дальнейшем программа FastSecurityBoxes была востребована для практической работы, она имеет «полезную нагрузку» в виде функции создания резервных копий логических дисков (естественно восстановление дисков там тоже есть).
Выбор прикладной задачи обусловлен с одной стороны актуальностью темы, а с другой стороны наглядностью результата. Создание резервных копий дисков естественно было «заточено» под скоростные SSD диски, которые уже сегодня на интерфейсе NVMe могут работать со скоростью 2-3 Гигабайта в секунду. На таких скоростях шифровать данные до сих пор никто не умел, но теперь это уже реальность.
Помимо нового, пока экзотического многопоточного алгоритма, FastSecurityBoxes реализует шифрование по классическому ГОСТ 28147-89 в 8 параллельных потоков (для старых процессоров) и 16 параллельных потоков (для «скайлейка» и выше). Эти паралельные методы шифрования сертифицированы ФСБ.
Шифрование в 8 и 16 потоков включены в состав программы для предметного сравнения результатов, чтоб чувствовалась разница…
Термин «независимое физическое устройство» применительно к процессору это понятие условное, в реальности у процессора имеется набор регистров, на которых одновременно (одной командой процессора) выполняются одинаковые преобразования. Но для простоты понимания будем считать их независимыми физическими устройствами, работающими строго параллельно и синхронно.
Многопоточный метод реализованный в алгоритме «Русская рулетка» существенно отличается от параллельного, вот его главные отличия:
1. Имеется единственный блочный раундовый преобразователь.
2. Длина блока (пока) 256байт и может масштабироваться.
3. Фрагменты блока (по два байта) обрабатываются в независимых потоках.
4. Объединение фрагментов производится в дополнительном преобразовании.
Многопоточный метод позволяет увеличить размер ключевых данных и размер входного блока данных. При этом изменение любого из 2048 бит входного блока приводит к гарантированному изменению всех 2048 выходных бит после десяти раундов преобразования.
Сейчас шифр содержит 128 потоков, когда появятся процессора с набором команд AVX-512, можно будет увеличить количество потоков до 512 (блок данных будет иметь размер 1Кбайт) и в два раза поднять скорость.
А пока, в сухом остатке..
Скорость на уровне 12 ГигаБайт в секунду для процессора с частотой 3гГерц, не с чем сравнивать. Скорость реализации алгоритма «Русская рулетка» в режиме гаммирования «несравненная». Это самый скоростной генератор псевдослучайных последовательностей из известных, удовлетворяющий требованиям тестов NIST.
Математическая сложность криптоанализа базового преобразования «Русская рулетка» определяется размерностью ключа, в нашем случае она равна 2256*8.
Алгоритмическая сложность криптоанализа с учетом известных методов взлома для базового преобразования «Русская рулетка» как минимум не меньше родительского преобразования ГОСТ 28147-89.
Больше статью не буду перегружать информацией об этом новом алгоритме, пока пускай заинтересованные лица проверят сказанное в тестовой программе.
Для тестирования в ней предусмотрена функция выдачи «чистой» гамммы. В этом режиме создаются тестовые псевдослучайные файлы для преобразований по ГОСТ 28147-89 и «Русской рулетки».
Программа FastSecurityBoxes (ФорсированныеСекретныеОбразы если по-русски) скоро превратится в пригодную для массового использования программу ответственного архивирования, а затем, надеюсь, в полнофункциональный коммерческий продукт. Соответственно интересно сравнить ее с корифеями рынка коммерческого резервного копирования по скорости копирования и загрузке процессора.
Скоростные параметры FastSecurityBoxes уже приводились в статье «Второе пришествие ГОСТ», посмотрим в качестве примера, что может сделать Акронис в тех же режимах работы, на той же самой аппаратной платформе.
Вот как он создает посекторный дамп без шифрования и сжатия:
Программа выполняет посекторное копирование на скорости 368 МБ/сек… Видимо используется синхронный однопоточный ввод-вывод с циклами ожидания окончания операции ввода/вывода. Иначе не объяснить слишком большой загрузки процессора на операциях ввода/вывода, составляющей 20%. Явно устаревшее решение из прошлого тысячелетия.
На этой же конфигурации оборудования тестовая программа FastSecurityBoxes обеспечивала скорость дампирования 450 МБ/сек. при загрузке процессора на уровне 6 процентов.
Вот что Acronis выдает на посекторном копировании (без сжатия) с шифрованием дампа по ГОСТ 28147-89:
Скорость снизилась почти в десять раз, до 42 МБ/сек. используя 17 процентов вычислительных ресурсов процессора, FastSecurityBoxes обеспечивала в этом режиме скорость 330 МБ/сек, при этом используя 10 процентов вычислительных ресурсов, думаю комментарии излишни…
А вывод очевиден, Acronis использует устаревшую классическую реализацию ГОСТ 28147-89 на РОН регистрах процессора, поэтому такая низкая скорость.
Вот что получается у Acronis с шифрованием дампа по самому «легкому» алгоритму AES -128, опять без сжатия. Этот алгоритм по криптостойкости хуже ГОСТ 28147-89, но реализация его самая скоростная из-за сокращенного количества раундов.
Скорость возросла до 80 МБ/сек, но все равно это катастрофически мало, BitLocker обеспечивал в этом режиме скорость около 360 МБ/сек. Очевидно используется устаревшая криптобиблиотека без поддержки аппаратного криптоускорителя Intel.
Защита информации от несанкционированного доступа (НСД) — комплексная задача, которая решается продуктами разных классов. В данной статье мы рассмотрим, как продукт, обеспечивающий криптографическую защиту хранимых данных, может применяться для защиты от НСД.
Методы получения несанкционированного доступа
Существует множество методов, с помощью которых злоумышленники получают несанкционированный доступ к конфиденциальной информации. В целом все способы можно разделить на четыре основные группы:
- Несанкционированный доступ внешним нарушителем при наличии физического доступа к компьютеру.
- Несанкционированный доступ к информации при ее передаче за пределы контролируемой зоны.
- Утечка информации, вызванная внутренним нарушителем, имеющим легитимный доступ к данным.
- Удаленное проникновение на компьютер и похищение данных с помощью эксплуатации уязвимостей или использования вредоносного программного обеспечения.
В первом случае нарушитель, не являющийся пользователем рабочего места, но имеющий физический доступ к компьютеру с конфиденциальной информацией, может выполнить различные локальные атаки, например, загрузку с внешнего носителя и копирование информации с жесткого диска, или совершить кражу носителей информации. Данная угроза имеет наибольшую актуальность для организаций, работающих в сфере услуг и обслуживания. В таких компаниях открыт свободный доступ для посетителей, и злоумышленник может отвлечь оператора или использовать один из свободных компьютеров для проведения атаки. Если же говорить о краже — от данной угрозы не защищена ни одна компания. Известно много случаев, когда ограбление планировалось с одной целью — похитить жесткие диски с ценными коммерческими данными.
Для защиты от нежелательных манипуляций злоумышленника с компьютерами можно использовать разные подходы. Классическим методом является физическая защита портов ввода-вывода, использование аппаратных плат доверенной загрузки и другие сложные меры, которые требуют существенных затрат и тормозят бизнес-процессы. Криптографические средства могут решить эту проблему проще, обеспечив полное шифрование данных на жестких дисках и предоставляя доступ пользователю только после надежной аутентификации. Дополнительно данный способ защиты позволит нивелировать угрозу кражи носителей — злоумышленник не сможет прочитать информацию с похищенного жесткого диска.
Второй случай — несанкционированный доступ при передаче информации за пределы контролируемой зоны — очень обширен из-за наличия большого числа возможных каналов передачи. Данные могут передаваться через глобальные сети по различным протоколам и через множество сервисов. Существует масса видов атак и угроз — перехват трафика, подделка адресов, взлом сервисов хранения файлов и так далее. Все эти угрозы находятся за пределами защищаемого периметра и средства защиты могут только блокировать передачу данных, но не могут обеспечить их безопасность. Кроме того, информацию за пределы периметра могут выносить с помощью съемных носителей — дисков, флеш-накопителей, внешних жестких дисков, — и эти данные также нельзя контролировать. Единственный способ сохранить конфиденциальные данные в тайне — использовать криптографические преобразования, чтобы защитить информацию от НСД и позволить работать с ней только легитимному получателю данных.
В остальных случаях криптографическая защита бессильна — шифрование не может обеспечить защиту от утечки информации со стороны пользователя, имеющего легитимный доступ к данным, и защитить данные от удаленного проникновения через уязвимости и вредоносное ПО, т. к. данные виды атак действуют от имени пользователя.
Особенности JaCarta-2 ГОСТ
По сравнению с предыдущим поколением средств ЭП от «Аладдин Р.Д.» (JaCarta ГОСТ) в JaCarta-2 ГОСТ были реализованы несколько новых возможностей, повышающих безопасность и удобство использования этих устройств в качестве средства аутентификации и ЭП. Одно из главных новшеств — использование СКЗИ, сертифицированного по новым требованиям ФСБ России. Это означает, что команды для встраивания криптографических функций в прикладное программное обесепчение описаны, проверены и включены в разрешенный белый список безопасных (сертифицированных) команд, не допускающих криптографически опасных последствий при неправильном встраивании и использовании. В результате встраивание JaCarta-2 ГОСТ в прикладное ПО при использовании функций из белого списка максимально упрощено, а обязательная в таких случаях проверка оценки влияния (корректности встраивания СКЗИ) становится простой формальной процедурой. Конкурирующие продукты сертифицированы как функционально законченные программно-аппаратные автоматизированные рабочие места (АРМы), не имеющие белых списков для встраивания в стороннее программное обеспечение. Поэтому встраивание таких СКЗИ нарушает правила пользования сертифицированного СКЗИ, при этом фактически создается новое СКЗИ, а это требует наличия лицензии ФСБ России на разработку шифросредств.
Другой важной особенностью является возможность построения защищенного канала между СКЗИ внутри JaCarta-2 ГОСТ и интерфейсной криптобиблиотекой (ИКБ), являющейся частью сертифицированного СКЗИ, но работающей на хосте (персональном компьютере, сервере, смартфоне или терминальным оборудовании). Это позволяет безопасно передавать информацию между JaCarta‑2 ГОСТ и хостом (например, PIN-коды, данные и управляющие команды), а также быстро вычислять хэш документа с помощью гораздо более производительного процессора хоста, благодаря чему скорость подписания документов значительно увеличивается.
Также в JaCarta-2 ГОСТ были реализованы новые механизмы защиты от атак на PIN-код и блокирования устройства — если USB-токен или смарт-карта JaCarta-2 ГОСТ заблокирована, можно попытаться разблокировать их через определенное время, ввести PUK-код, либо использовать одноразовый код, который удаленно сгенерирует администратор безопасности. Также появился отдельный PIN-код для операции формирования ЭП, применение которого позволяет снизить вероятность ошибочных действий пользователя при проведении крупных сумм в системах ДБО и подписании важных документов, а также защищает от атак, связанных с удаленным использованием состояния «залогиненности» устройства для подписи поддельных документов.
Стоит отметить, что во всех устройствах JaCarta-2 ГОСТ используются защищенные микроконтроллеры, имеющие встроенные механизмы от атак на аппаратном и программном уровне, включая физические, логические, переборные, статистические атаки, клонирование и другие. Применяемые микроконтроллеры соответствует профилю защиты для смарт-карт (Smart Card Security User Group — Smart Card Protection Profile — SCSUG-SCPP), что подтверждено результатами сертификации по методике Сommon Criteria. Также JaCarta-2 ГОСТ соответствуют международным требованиям к устройствам для создания усиленной квалифицированной ЭП (Qualified Signature Creation Device в соответствии с документом «Положение и регламент электронной идентификации и доверенных служб для электронных транзакций на внутреннем рынке ЕС № 910/2014»). Это позволяет говорить о значительно более высоком уровне защищенности JaCarta-2 ГОСТ по сравнению с продуктами других российских производителей, создающих свои продукты на основе более дешевых, но гораздо менее защищенных микроконтроллеров общего назначения, которые можно легко взломать или клонировать, создав угрозу всей инфраструктуре аутентификации и ЭП.
Защищенная энергонезависимая память (EEPROM), являющаяся частью микроконтроллера, также была изменена — теперь ее объем может быть увеличен до 144 КБ, что позволяет хранить гораздо большее число цифровых сертификатов и ключевых контейнеров программных СКЗИ.
Выводы
Продукт Secret Disk Enterprise выполняет максимум функций по защите информации от НСД на рабочих станциях для своего класса. Полный набор возможностей по шифрованию дисков, разделов, устройств и папок позволяют обеспечить эффективную защиту конфиденциальной информации от физического несанкционированного доступа. Возможность создания шифрованных контейнеров и работы с ними Secret Disk Enterprise обеспечивают защиту информации от НСД при ее передаче партнерам, заказчикам и другим внешним субъектам.
Криптографические средства, так же, как и другие виды средств защиты, не могут сами по себе обеспечить полную защиту от НСД к информации на рабочих станциях. Данная задача должна решаться в комплексе и требует применения средств защиты разных классов — антивируса, DLP-системы, классического СЗИ от НСД, средства криптографической защиты и других. Только при одновременной работе всех этих продуктов можно с уверенностью заявлять о реализации максимальной защиты от НСД. В качестве средства криптографической защиты Secret Disk Enterprise может с успехом применяться как один из элементов системы защиты любого уровня.
Набор средств криптографической защиты информации и электронной подписи JaCarta-2 ГОСТ может использоваться в прикладном и системном программном обеспечении и позволяет подписывать документы с использованием новых российских криптографических алгоритмов ГОСТ Р 34.11-2012 и ГОСТ Р 34.10-2012, в соответствии с сертификатом по новым требованиям ФСБ № СФ/124-3112, а также производить шифрование согласно ГОСТ 28147-89.
Введение
Несанкционированный доступ к конфиденциальной информации — основная угроза информационной безопасности, о которой следует помнить при построении системы защиты. Для защиты информации, обрабатываемой на рабочих станциях, от НСД должен применяться целый комплекс мер: обеспечение надежной аутентификации, реализация правил разграничения доступом, контроль утечек информации на съемные носители и по сети и многие другие. Классические методы защиты от НСД основаны на применении одного из продуктов класса СЗИ от НСД. Эти продукты разрабатываются в соответствии с руководящим документом «Средства вычислительной техники. Защита от несанкционированного доступа к информации. Показатели защищенности от несанкционированного доступа к информации», выпущенным Гостехкомиссией России (ныне ФСТЭК России) в 1992 году. С момента появления этого документа изменилось очень многое — возникли новые способы атак, новые каналы утечки информации, и в целом данный документ не охватывает весь спектр актуальных угроз безопасности. Современные реалии требуют от специалистов по информационной безопасности использовать широкий набор средств разных классов для обеспечения высокого уровня защиты. Обязательным дополнением к СЗИ от НСД являются средства шифрования информации.
Продукт Secret Disk Enterprise, подробный обзор которого мы публиковали ранее, является криптографическим средством защиты и позволяет реализовать ряд мер, снижающих угрозу НСД к информации.
Защита от хищения носителей информации
Функции Secret Disk Enterprise по полнодисковому шифрованию защищают данные в случае кражи жестких дисков, не позволяя злоумышленнику получить доступ к информации с украденного носителя. Но существует проблема хищения других носителей информации, используемых в работе любой организации. Для решения данной проблемы в продукте Secret Disk Enterprise реализованы функции по шифрованию файлов на внешних носителях — съемных дисках, флеш-накопителях и т. д. Шифрование выполняется прозрачно для пользователя, и работа с защищенными данными возможна с любого защищаемого компьютера в рамках сети при условии предоставления доступа пользователю данного компьютера.
Рисунок 3. Шифрованные диски, разделы и папки в Secret Disk Enterprise
Все преобразования в Secret Disk Enterprise выполняются по криптостойким алгоритмам с использованием сторонних служб криптографии (КриптоПро CSP и ViPNet CSP) или с помощью встроенной службы Microsoft Windows. Сторонние службы позволяют обеспечить соответствие криптографической защиты требованиям российских регуляторов, но требуют дополнительных затрат на лицензирование.
Дополнительные возможности
Помимо самих устройств, производитель JaCarta-2 ГОСТ предлагает пользователям широкий набор программных и аппаратно-программных продуктов для упрощения работы с JaCarta-2 ГОСТ или решения специфических задач.
Единый Клиент JaCarta
Для настройки PIN-кода, управления цифровыми сертификатами, получения подробной информации о JaCarta-2 ГОСТ, разблокировки устройства, а также ряда других функций используется специальная клиентская программа «Единый Клиент JaCarta», которую можно свободно скачать с сайта «Аладдин Р.Д.». Поддерживается работа с известными криптопровайдерами, такими как КриптоПро CSP, Signal-COM CSP, ViPNet CSP и др.
Рисунок 3. Окно программы «Единый Клиент JaCarta»
АРМ Администратора безопасности
Для инициализации устройств JaCarta-2 ГОСТ, ввода их в эксплуатацию, разблокирования, настроек доступа к журналам и параметров паролей может применяться сертифицированный АРМ администратора безопасности. Помимо описанных функций, АРМ администратора безопасности может применяться для изменения PIN- и PUK-кодов, новой инициализации устройств и работы с доверенными объектами. Покупать АРМ администратора безопасности не обязательно — производитель может инициализировать устройства JaCarta-2 ГОСТ на своем производстве.
JaCarta Management System
Организациям с большим количеством USB-токенов и смарт-карт JaCarta-2 ГОСТ целесообразно использовать корпоративную систему централизованного учета и управления JaCarta Management System (JMS). Она позволяет полностью автоматизировать все операции по выпуску, замене или отзыву устройств и цифровых сертификатов для любого количества пользователей. Так, выпуск тысячи сертификатов для тысячи географически распределенных пользователей с помощью JMS займет около минуты, сэкономив многие часы рабочего времени администраторам безопасности и самим пользователям. Также в системе реализована уникальная функциональность по автоматическому учету СКЗИ и ключевых документов с ведением электронного журнала по требованиям ФСБ.
JMS поддерживает все устройства JaCarta, включая встраиваемые модули безопасности, что позволяет использовать ее для централизованного управления цифровыми сертификатами на IoT-устройствах, а также устройствах других производителей.
JC-WebClient
JC-WebClient — программное обеспечение, предназначенное для решения задач строгой двухфакторной аутентификации, работы с электронной подписью и шифрования данных пользователей веб-приложений. JC-WebClient позволяет легко встроить в веб-сайты и облачные сервисы функции для работы с USB-токенами и смарт-картами JaCarta-2 ГОСТ. JC-WebClient работает со всеми популярными браузерами на всех платформах (Microsoft Windows, macOS, GNU/Linux) и легко устанавливается за несколько кликов при первом посещении защищаемого веб-ресурса, не требуя перезагрузки компьютера. Для встраивания в веб-приложения предлагается комплект разработки JC-WebClient SDK, который включает в себя JC-WebClient для различных платформ, подробное руководство по встраиванию и исчерпывающий перечень примеров с исходными кодами.
Secret Disk
Продукты линейки Secret Disk предназначены для защиты конфиденциальной информации и персональных данных от несанкционированного доступа, копирования, повреждения, кражи или принудительного изъятия. Они обеспечиваютзащиту информации на логических дисках, отдельных жестких дисках, дисковых массивах (SAN, программных и аппаратных RAID-массивах), а также на съемных носителях (дискетах, Flash-дисках, CD, DVD, картах памяти).
Защита дисков достигается за счет прозрачного шифрования данных — при записи на защищенный диск информация автоматически зашифровывается, при чтении — расшифровывается. Доступ к зашифрованной информации могут получить только авторизованные пользователи, имеющие USB-ключ или смарт-карту JaCarta и знающие PIN-код. Для остальных зашифрованный диск выглядит как неразмеченная область жесткого диска или файл, содержащий «мусор».
Продукты Secret Disk сертифицированы ФСТЭК России и внесены в Единый реестр отечественного ПО.
«Крипто БД»
JaCarta-2 ГОСТ также может выступать как средство аутентификации в уникальном для отечественного рынка решении — «Крипто БД» — системе предотвращения утечек из систем управления базами данных (СУБД) Oracle, Microsoft SQL Server, Tibero и PostgreSQL. «Крипто БД» сертифицирована ФСБ России как СКЗИ класса КС1 и КС2 (сертификат соответствия № СФ/124-3249), что позволяет использовать ее для защиты информации, не содержащей сведений, составляющих государственную тайну. Система также внесена в Единый реестр отечественного ПО.
Для предотвращения утечек информации в «Крипто БД» используется композитный метод защиты: шифрование таблиц баз данных с применением российских криптографических алгоритмов ГОСТ 28147-89 или ГОСТ Р 34.12-2015 дополняется использованием строгой двухфакторной аутентификации пользователей с помощью USB-токенов или смарт-карт JaCarta. У неавторизованных пользователей защищаемые данные маскируются (представлены в виде произвольных символов), а действия всех авторизованных пользователей персонализируются и протоколируются, что позволяет проводить аудиты и расследовать инциденты безопасности.
Защита от нештатной загрузки операционной системы
Средство криптографической защиты Secret Disk Enterprise обладает функцией полнодискового шифрования с собственным загрузчиком операционной системы, что позволяет реализовать гарантированную защиту от получения доступа к данным через загрузку нештатной операционной системы. Secret Disk Enterprise обеспечивает шифрование всех данных на локальных жестких дисках и позволяет получить доступ к информации и загрузить операционную систему только легитимному пользователю. Авторизация выполняется в собственном загрузчике, работающем до загрузки операционной системы.
Рисунок 1. Загрузчик Secret Disk Enterprise с поддержкой двухфакторной аутентификации
Дополнительная защита обеспечивается поддержкой двухфакторной аутентификации с помощью электронных ключей JaCarta и eToken. Синхронизация с Microsoft Active Directory делает управление системой по-настоящему удобным — администратору нет необходимости вести разные базы пользователей для средства защиты и операционной системы.
Рисунок 2. Управление учетными записями пользователей с поддержкой интеграции с Active Directory в Secret Disk Enterprise
Введение
Сегодня часто можно услышать о необходимости применения средств для аутентификации и электронной подписи (ЭП). В первую очередь, это обосновано требованиями российского законодательства — для того чтобы иметь возможность работать с некоторыми системами персональных данных или в государственных информационных системах, использование этих средств является обязательным. Указанные меры необходимы для безопасного доступа к информации, хранящейся и обрабатываемой в таких системах, подтверждения авторства документов и гарантирования их неизменяемости, а также для обеспечения неотказуемости действий пользователей. Кроме того, одним из требований регуляторов является возможность применения российских криптоалгоритмов, для чего необходимо использовать отечественные средства аутентификации и ЭП.
Если ничего не изменится, уже в 2019 году будут отменены ГОСТы на старые криптографические алгоритмы (ГОСТ Р 34.11-94 и ГОСТ Р 34.10-2001) и правомерным станет использование новых (ГОСТ Р 34.11-2012 и ГОСТ Р 34.10-2012). В связи с этим многие разработчики уже сейчас обновляют свои продукты с учетом перехода на новые стандарты хэширования и ЭП. Среди них — российская компания «Аладдин Р.Д.», выпустившая на рынок новое семейство средств аутентификации и ЭП — JaCarta-2 ГОСТ, реализованных в виде USB-токенов и смарт-карт. Также возможна поставка JaCarta-2 ГОСТ в виде модулей смарт-карт и модулей безопасности (SIM, MicroSD-карта или чипы для монтажа на печатную плату), актуальных для производителей оборудования.
Выводы
Средства аутентификации и ЭП JaCarta-2 ГОСТ от компании «Аладдин Р.Д.» отличаются как от своих предшественников (устройств JaCarta ГОСТ), так и от многих конкурирующих продуктов. Они хорошо защищены, работают с широким списком операционных систем, способны быстро формировать ЭП и доступны в большом количестве форм-факторов.
Для заказчиков доступны разные форм-факторы: USB-токены (в нескольких корпусах разного размера), смарт-карты, модули смарт-карт, а также модули безопасности (SIM, MicroSD-карта, чипы для монтажа на печатную плату). USB-токены и смарт-карты могут применяться в различных системах электронного документооборота и электронных сервисах, а модули безопасности — в промышленных и М2М-устройствах.
Обеспечена поддержка новых ГОСТов для формирования и проверки ЭП, что позволяет плавно перейти на них в течение 2018 года. Наличие «белого» списка криптографических функций позволяет встраивать JaCarta-2 ГОСТ в прикладное и системное программное обеспечение без прохождения длительной процедуры сертификации в ФСБ России. Еще одной особенностью является возможность построения защищенного канала между JaCarta-2 ГОСТ и хостом, что позволяет безопасно передавать данные, а также значительно быстрее формировать ЭП. Новые механизмы разблокирования, такие как использование PUK-кода, одноразового кода разблокировки и возможность повторного введения PIN-кода после временной блокировки значительно повышают удобство и безопасность эксплуатации JaCarta-2 ГОСТ. Возможность назначения отдельного PIN-кода для операций формирования ЭП позволяет гарантировать дополнительную защиту при подписании важных документов или совершении транзакций. Также стоит отметить использование защищенных микроконтроллеров, имеющих международные сертификаты и гарантирующие повышенный уровень защиты от возможных атак злоумышленников.
Дополнительные программные и аппаратно-программные продукты, разрабатываемые компанией «Аладдин Р.Д.», позволяют значительно повысить удобство применения JaCarta-2 ГОСТ, например, централизованно управлять всем парком устройств JaCarta-2 ГОСТ и цифровыми сертификатами на них, а также решать специфические задачи, например, шифровать диски или обеспечивать защищенный доступ к данным, хранящимся в СУБД.
Летом 2015 года перед нами, разработчиками «Кода безопасности», встала задача реализации защищенного хранилища под Android с шифрованием по стандартам, признанным российским законодательством. До этого у нас уже было решение на планшете, к которому имелись исходники Android. И это позволило нам выпустить обновленное ядерное шифрование (dm-crypt) под поддержку ГОСТ 89, добавить в /system/lib ГОСТ-библиотеки, пропатчить cryptofs подсистему демона vold. В итоге в нашем распоряжении оказалось решение, которое подходило лишь для определенной модели планшета, и не являлось универсальным. Узнав, что в Android версии 4.4 (API уровня 19) появился API, позволяющий осуществлять доступ к данным после регистрации и реализации своего кастомного DocumentsProvider, мы решили создать решение, использующее GOST-шифрование в userspace с использованием данного API, которое не зависело бы от модели устройства.
Для тех, кто заитересовался — добро пожаловать под кат.
Как в Android данные шифруются
Кратко опишу процесс шифрования Android-устройства. Активируется шифрование следующим образом: Settings → Security → Encrypt tablet/phone, реализуется средствами linux kernel → dev-mapper → dm-crypt. При активации данной функциональности устройство запросит пароль, а также попросит сохранить и зашифровать данные из /data (или просто удалит все данные по желанию пользователя). После перезагрузки устройства появится окно ввода пароля, в системных настройках переменная ro.crypto.state будет установлена в состояние encrypted.
Рис. 1: Логическая схема шифрования Android
На схеме представлена последовательность запроса Pin от ключевого контейнера и установки master-key через syscall ioctl в ядерную часть dm-crypt.
Access framework (SAF)
Итак, SAF появилась в Android версии 4.4 (API уровня 19) и она облегчает пользователям поиск и открытие документов, изображений и других файлов в хранилищах всех поставщиков. Стать поставщиком этих файлов мы можем, реализовав класс DocumentsProvider и использовав несколько его методов (об этом ниже).
Вся платформа SAF состоит из следующих элементов:
1) «Клиент» – приложение, которое хочет получить доступ к файлу или создать новый файл. Для всей Android-системы это возможно с помощью интентов с флагами ACTION_OPEN_DOCUMENT и ACTION_CREATE_DOCUMENT соответственно.
2) «Поставщик документов» – наше приложение, которое, как упоминалось выше, является подклассом класса DocumentsProvider и реализует доступ к файлам через API (об этом далее).
3) «Элемент выбора» – системный пользовательский интерфейс, обеспечивающий пользователям доступ к файлам всех поставщиков, удовлетворяющих критериям поиска.
Теперь подробнее. Поставщик документов предоставляет один или несколько корневых каталогов, являющихся отправными точками при обходе дерева документов. Каждый корневой каталог имеет уникальный идентификатор COLUMN_ROOT_ID и указывает на документ (каталог), представляющий содержимое на уровне ниже корневого. Корневые каталоги динамичны по своей конструкции, что обеспечивает поддержку различных вариантов использования: нескольких учетных записей, временных хранилищ на USB-накопителях, возможности входа/выхода в систему/из системы.
Каждый сервер хранилища показывает отдельные файлы и каталоги, ссылаясь на них с помощью уникального идентификатора COLUMN_DOCUMENT_ID (в нашем случае, это полный путь от корня файловой системы до самого файла). Идентификаторы документов должны быть уникальными и не меняться после присвоения, поскольку они используются для выдачи постоянных URI, не зависящих от перезагрузки устройства.
Документ – это либо открываемый файл (имеющий конкретный MIME-тип), либо каталог, содержащий другие документы (с MIME-типом MIME_TYPE_DIR). Каждый документ может иметь различные свойства, описываемые флагами COLUMN_FLAGS, такими как FLAG_SUPPORTS_WRITE, FLAG_SUPPORTS_DELETE и FLAG_SUPPORTS_THUMBNAIL.
Рис. 2: Модель данных поставщика документов
Модель данных поставщика документов основана на традиционной файловой иерархии. Однако физический способ хранения данных остается на усмотрение разработчика при условии, что к ним можно обращаться через API-интерфейс DocumentsProvider. Например, можно использовать для данных облачное хранилище на основе тегов.
Обратите внимание на следующий рисунок:
Рис. 3: Модель взаимодействия поставщика документов и клиента
На платформе SAF поставщики и клиенты не взаимодействуют напрямую. Клиент запрашивает разрешение на взаимодействие с файлами (на их чтение, редактирование, создание или удаление).
В Android версии 4.3 и ниже приложение для получения файла от другого приложения должно активировать намерение, например, ACTION_PICK или ACTION_GET_CONTENT. После этого пользователь должен выбрать одно из приложений, а оно должно предоставить пользователю интерфейс, с помощью которого он сможет выбирать и получать файлы.
Рис. 4: Диалог выбора поставщика документов
Рис. 5: Диалог выбора получателя документа
queryRoots ()
queryChildDocuments ()
queryDocument ()
OpenDocument ()
Реализация данных методов строго обязательна, однако для реализации полнофункционального приложения придется реализовать и другие. Подробности приводятся в описании класса DocumentsProvider.
JNI
Следующая логическая часть – это JNI-реализация прослойки между нашей реализацией SAF и открытой библиотекой файловой системы для встраиваемых систем FATFS. Последняя была пропатчена на чтение-запись на файл (в нашем случае он выступает томом) поблочно. Таким образом, на IO-запрос мы получаем номер сектора и количество секторов, отсюда можно вычислить IV и секторный ключ, а затем зашифровать и расшифровать конкретный блок на файле. В итоге у нас получается аналог dm-crypt в userspace.
Рис. 6: Проброс методов SAF в нативную часть и обратно
Далее мы реализовали методы для работы с томами и файлами. Для работы с томами используем следующие функции:
Java_com_securitycode_fatfslib_FatFs_createVolume (. );
Создает файл тома через библиотеку файловой системы и создает внутри этого файла пустую шифрованную FS.
Рис. 7: Создание защищенного хранилища
Java_com_securitycode_fatfslib_FatFs_getVolumeFreeSpace (. );
Передав в функцию определенный том, мы получаем количество свободного места в этом томе.
Java_com_securitycode_fatfslib_FatFs_mount (. );
При монтировании тома мы устанавливаем мастер-ключ, с помощью которого будет происходить шифрование-расшифрование блоков FS.
Рис.8: Монтирование защищенного хранилища
Java_com_securitycode_fatfslib_FatFs_unMount (. );
Очистка ресурсов и завершение операций ввода-вывода.
Для работы с файлами:
Java_com_securitycode_fatfslib_FatFs_createFile (. );
На нашей файловой системе создается объект пустого файла с заданными размером и типом (необходим для SAF).
Java_com_securitycode_fatfslib_FatFs_getFile (. );
Данная функция необходима для SAF-метода queryDocument (. ).
В функции мы возвращаем id файла, его тип, корневой узел, содержащий текущий файл и имя файла.
Java_com_securitycode_fatfslib_FatFs_readFile (. );
В данной функции создается Java-stream, который используется в SAF и в качестве URI передается потребителю.
Java_com_securitycode_fatfslib_FatFs_writeFile (. );
Аналогично предыдущей функции, только в данном случае потребителем становимся мы.
Рис.9: Общий экран приложения
Рис.10: Содержимое хранилища
Заключение
В результате всех вышеперечисленных действий мы получили криптодиск с поддержкой ГОСТ-шифрования и электронной подписи в userspace.
Будем рады ответить на ваши вопросы и более подробно рассказать обо всех этапах проекта.
1) Nikolay Elenkov. Android Security Internals, Chapter 10: Device Security.
Системные требования
Устройства JaCarta-2 ГОСТ сертифицированы для работы со следующими операционными системами:
Microsoft Windows — Microsoft Windows 10, Microsoft Windows 8.1, Microsoft Windows 8, Microsoft Windows 7, Microsoft Windows Vista SP2, Microsoft Windows XP SP3 (32-бит), Microsoft Windows XP SP2 (64-бит), Microsoft Windows Server 2012, Microsoft Windows Server 2008 R2, Microsoft Windows Server 2008, Microsoft Windows Server 2003 SP2.
Linux — Astra Linux Common и Special Edition, CentOS 7, Debian 8.4, Mandriva Enterprise Server 5, openSUSE 13.2, Leap 42.1, Oracle Linux 5 Update 5&6, Oracle Linux 6, Red Hat Enterprise Linux 5.6, 6.0, 7.0, 7.2, ROSA Enterprise Desktop X1 (Marathon), ROSA Enterprise Linux Server, SUSE Linux Enterprise Server 11 SP4, Ubuntu 14.04, МСВС 3.0, 5.0, МСВСфера, Ред ОС, РОСА DX КОБАЛЬТ 1.0, SX КОБАЛЬТ 1.0.
macOS — OS X Yosemite (версия 10.10), OS X El Capitan (версия 10.11).
Реализация защищенного обмена конфиденциальными данными
Рисунок 4. Автоматически сгенерированный пароль от шифрованного контейнера Secret Disk Enterprise
Работа с шифрованными контейнерами осуществляется прозрачно для пользователя на компьютере, где был создан контейнер. Для получателя контейнера работа с ним также не составляет большого труда — достаточно установить бесплатную программу Secret Disk Reader и ввести пароль к контейнеру.
В отличие от обычных файловых архивов, которые также поддерживают функции шифрования, файл-контейнер не предполагает сжатие данных внутри себя, а потому при монтировании его как виртуального логического тома не создаются временные файлы с незащищенными данными, которые злоумышленник сможет прочитать, анализируя содержимое компьютера.
Рисунок 5. Работа с шифрованными контейнерами в Secret Disk Enterprise
Secret Disk Enterprise позволяет использовать шифрованные контейнеры для двустороннего обмена информацией: получатель может не только читать файлы из контейнера, но также помещать в него новые файлы и модифицировать существующие, что позволяет наладить полностью защищенный обмен конфиденциальными данными по любым небезопасным каналам связи.
Модули безопасности (Secure Element)
JaCarta-2 ГОСТ в виде модуля безопасности предназначена для разработчиков навигационного и телематического оборудования, IoT-устройств, автоматизированных систем управления технологическими процессами (АСУ ТП) или устройств межмашинного взаимодействия (M2M). Разные исполнения (SIM, MicroSD-карта, чип для монтажа на печатную плату) позволяют подобрать оптимальный способ размещения модуля безопасности для обеспечения конфиденциальности, подлинности и юридической значимости информации и управляющих команд.
Рисунок 2. Модули безопасности (Secure Element)
Применение JaCarta-2 ГОСТ
Устройства JaCarta-2 ГОСТ сертифицированы ФСБ России как средство ЭП класса КС1 и КС2, а также как средство криптографической защиты информации (СКЗИ) класса КС1 и КС2. Это позволяет применять их для формирования и проверки ЭП, строгой двухфакторной аутентификации в электронных системах и сервисах, а также шифрования данных. Дополнительно JaCarta-2 ГОСТ можно использовать для хранения ключевых контейнеров популярных программных СКЗИ, например КриптоПро CSP или ViPNet CSP, цифровых сертификатов, паролей и лицензий — для этого предусмотрена защищенная энергонезависимая память (EEPROM), доступная только после ввода PIN-кода. Для обеспечения совместимости с существующими системами и плавного перехода на новые стандарты ЭП поддерживаются как старые, так и новые российские криптографические алгоритмы.
USB-токены и смарт-карты JaCarta-2 ГОСТ могут использоваться для работы со многими электронными сервисами, такими как портал Государственных услуг, различные торговые площадки, системы дистанционного банковского обслуживания, системы таможенного декларирования, системы для сдачи отчетности (Пенсионный фонд России, Федеральная налоговая служба, ЕГАИС и т. д.), а также с различными веб-приложениями, корпоративными порталами и облачными сервисами. Еще одна крупная сфера использования устройств JaCarta-2 ГОСТ — системы электронного документооборота и почтовые клиенты. Применение JaCarta-2 ГОСТ в качестве средства квалифицированной ЭП подразумевает, что у пользователя устройства есть сертификат открытого ключа, выданного в аккредитованном удостоверяющем центре.
Сфера применения модулей безопасности JaCarta-2 ГОСТ также обширна. Например, они используются для подписи кадров с камер видеонаблюдения, что позволяет гарантировать их подлинность в суде, или в промышленных контроллерах света и тепла, обеспечивая некорректируемость управляющих команд и поступающих данных.
Комбинированные модели
Комбинированные модели на базе JaCarta-2 ГОСТ обладают возможностями других устройств семейства JaCarta (JaCarta PKI, JaCarta PKI/BIO, JaCarta PRO). В JaCarta-2 PKI/ГОСТ дополнительно реализована зарубежная криптография, в JaCarta-2 PKI/BIO/ГОСТ — поддержка биометрической аутентификации пользователей по отпечаткам пальцев, а JaCarta-2 PRO/ГОСТ может работать в инфраструктуре для устройств eToken PRO (Java).
Варианты исполнения
USB-токены и смарт-карты
Наиболее распространенными программно-аппаратными средствами для обеспечения строгой двухфакторной аутентификации пользователей и формирования и проверки ЭП являются именно USB-токены и смарт-карты. В первую очередь, это обусловлено их защищенностью — программные СКЗИ, используемые для работы с ЭП, значительно легче скомпрометировать, поэтому их ключевые контейнеры часто записывают в защищенную память USB-токена и смарт-карты или используют встроенные в них СКЗИ.
Для своих технологических партнеров «Аладдин Р.Д.» также может поставлять модули для производства смарт-карт, которые могут быть использованы для создания многофункциональных смарт-карт, обладающих дополнительными функциями. Например, возможностями зарплатной карты (поддерживаются платежные системы МИР, VISA или MasterCard) или транспортной карты «Тройка».
Рисунок 1. USB-токены и смарт-карты JaCarta-2 ГОСТ
Читайте также: