Наши технологии
Криптографические алгоритмы
Алгоритм шифрования
В качестве алгоритма шифрования используется симметричный алгоритм шифрования гарантированной стойкости Tiger, являющийся собственной разработкой компании.
Длина ключа составляет 256 бит.
Алгоритм относится к классу синхронных потоковых шифров гаммирования. Синхронизация осуществляется с помощью вектора инициализации (синхропосылки), который передается (или хранится) в открытом виде вместе с шифротекстом. Длина синхропосылки варьируется от 4 до 12 байт и определяется контекстом использования шифратора.
Для приведения шифратора в рабочее состояние выполняется процедура его инициализации, на вход которой подается секретный ключ и синхропосылка. Выходом процедуры инициализации являются значения всех элементов состояния шифратора, определяющих его функционирование.
Обеспечение целостности данных
Алгоритмы, обеспечивающие проверку целостности данных, необходимы для их защиты от случайного или намеренного искажения. В качестве таких данных могут выступать данные, хранимые в защищаемой памяти шифратора, смартфона, персонального компьютера, или зашифрованные данные, которыми обмениваются абоненты.
Аутентификации данных производится с помощью вычисления односторонней функции, на вход которой подаются сами данные и секретный ключ. Результат вычисления односторонней функции, который называется кодом аутентификации данных (или имитовставкой), хранится или передается вместе с данными. При изменении данных меняется код аутентификации, подобрать который, при правильно подобранных свойствах односторонней функции, без знания секретного ключа практически невозможно.
В системах Stealthphone и Stealthphone Tell в качестве базового алгоритма вычисления кода аутентификации данных используется алгоритм HMAC-SHA256.
Код аутентификации данных вычисляется и проверяется во всех решениях для всех видов шифруемых данных: речи, SMS, мгновенных сообщений, сообщений электронной почты, всех видов файлов и мультимедийной информации при их передаче, а также при хранении данных в защищенной памяти шифратора, смартфона, персонального компьютера или на SD-карте. Таким образом, для всех шифруемых данных осуществляется проверка целостности.
Вычисления в группе точек эллиптической кривой для аутентификации абонентов и согласования сеансовых ключей
Асимметричные криптографические алгоритмы, базирующиеся на эллиптических кривых (ECC), используются в протоколах согласования общих сеансовых ключей для шифрования речи в системах Stealthphone и Stealthphone Tell, а также в протоколах аутентификации абонентов в системе Stealthphone Tell.
Криптостойкость систем, базирующихся на эллиптических кривых, основана на задаче логарифмирования в группах точек эллиптической кривой (Elliptic Curve Discrete Logarithm Problem, сокращенно ECDLP). В настоящее время наилучшие известные алгоритмы решения ECDLP имеют экспоненциальную сложность, в то время как задачи разложения целых чисел на множители и логарифмирования в конечных полях, на которых основаны известные альтернативные асимметричные криптографические алгоритмы RSA и El-Gamal, имеют субэкспоненциальное время работы. Это означает, что требуемый уровень безопасности в системах на эллиптических кривых достигается при значительно меньшей длине ключа, чем, например, в системе RSA. Для сравнения, 384-битный ключ в ECC обеспечивает тот же уровень безопасности, что и 7680-битный ключ в RSA. Меньшая длина ключа в ECC по сравнению с альтернативными вариантами позволяет реализовывать более технологичные решения, так как при одинаковом уровне криптостойкости достигается существенное увеличение скорости вычислений и уменьшение объема передаваемой информации.
Агентство национальной безопасности США одобрило использование асимметричных криптографических алгоритмов на эллиптических кривых с длиной ключа 384 бита для обработки совершенно секретных документов.
В системах Stealthphone и Stealthphone Tell также используются эллиптические кривые длиной 384 бита. Криптографическая стойкость криптосистем на основе ECC базируется не только на длине, но и на ряде математических параметров группы точек эллиптической кривой, в которой реализованы вычисления.
Параметры группы точек эллиптической кривой, вычисления в которой реализованы в системах Stealthphone и Stealthphone Tell, полностью обеспечивают необходимые криптографические характеристики.
Криптографические алгоритмы шифрования речи VoGSM
Для защиты речи в каналах передачи голоса GSM используется частотно-временное преобразование речевого сигнала гарантированной стойкости, устойчивое к двойному вокодерному преобразованию.
Основными элементами преобразования являются:
- Разбиение речевого сигнала на элементарные отрезки;
- Нелинейное преобразование над элементарными отрезками;
- Перестановка отрезков речи между собой;
- Обработка полученного сигнала для передачи через речевой кодек AMR и канал GSM.
Параметры преобразований (количество и длина отрезков речевого сигнала) зависят от ключа.
Параметры нелинейного преобразования также определяются криптографическим ключом.
Суммарная алгоритмическая и системная (вносимая сотовой сетью) задержка не превышает 2.5 секунды.
Криптографические алгоритмы шифрования речи для программ IP-телефонии
Для обеспечения защиты речевой информации при использовании приложений IP-телефонии, включая Skype и Viber, используется частотно-временное преобразование речевого сигнала гарантированной стойкости, преобразующее передаваемую речь в речеподобный сигнал.
Преобразование включает:
- Гребёнку из N фильтров (банк фильтров);
- Дисперсионную линию задержки (фильтр со случайной фазочастотной характеристикой);
- Подстановку длины N.
Параметры преобразований (количество фильтров, параметры линии задержки) зависят от ключа.
Перестановка спектральных полос в гребёнке фильтров задаётся сеансовым ключом при установлении соединения.
Для динамического преобразования перестановка полос происходит 1 раз в 3–5 секунд.
Алгоритмическая задержка не превосходит 1 секунды. Полоса обрабатываемого речевого сигнала 300 – 3400 Гц. Минимальная длина подстановки N равна 24.
В зависимости от пропускной способности интернет-соединения, допускается несколько преобразований. Допустимая предельная задержка составляет 2 секунды. При неустойчивом или низкоскоростном интернет-соединении возможно использование алгоритма, не требующего синхронизации. Это обеспечивает быстрое вхождение в связь и устойчивость криптосоединения.
Управление ключами
Управление ключами является одной из сложнейших задач прикладной криптографии, возникающей при построении и функционировании криптографических систем защиты информации. Слабости в различных компонентах системы управления ключами – генерации, хранении, использовании, распределении, а также протоколах обмена и других – являются, по нашей оценке, главными причинами компрометации реальных систем защиты информации. В виду этого, в системах Stealthphone и Stealthphone Tell управлению жизненным циклом ключей, начиная от генерации и заканчивая удалением или сменой, уделено особое внимание. Укажем ряд наиболее существенных аспектов.
Контроль качества ключей
При генерации ключей как аппаратным (Stealthphone Hard, Stealthphone KeyHard), так и программным (Stealthphone Soft, Stealthphone Tell, Stealthphone Key) образом, производится постоянный контроль качества ключей с точки зрения их статистических параметров и отсутствия каких-либо закономерностей.
Аппаратные генераторы используют датчики случайных чисел, основанные на физических процессах, чьи характеристики были подтверждены специальными лабораторными исследованиями.
Программные генераторы построены на принципе постоянного накопления энтропии – действительно случайной последовательности – и дальнейшего ее использования при выполнении процедуры генерации ключей. Источником энтропии могут выступать различные события, которые происходят со смартфоном, планшетом или персональным компьютером. Например, таким событием может быть ввод символа при наборе текста. Если система генерации ключей считает объем исходной энтропии для генерации ключей недостаточным, то пользователю может быть предложено произвести какие-либо действия с устройством для ее пополнения. Процедуры накопления энтропии, используемые в программных генераторах ключей, были тщательно протестированы и подтвердили свои отличные характеристики.
При всех видах генерации выполняется несколько различных процедур динамического контроля статистических характеристик вырабатываемых ключей.
Хранение ключей
Все ключи, в том числе и в аппаратном шифраторе Stealthphone Hard, хранятся в зашифрованном виде, либо не хранятся вовсе, а генерируются «на лету» из пароля и некоторых дополнительных данных. Расшифрование зашифрованных ключей производится только при их использовании для шифрования, при этом, будучи расшифрованным на время выполнения операции, в памяти устройства ключи также находятся в защищенном виде под маской.
Классификация ключей
Ключевые системы Stealthphone и Stealthphone Tell – несмотря на принципиальные различия их построения – опираются на общие принципы классификации ключей, четко регламентирующие правила их использования:
- Все ключи шифрования делятся на ключи шифрования данных и ключи шифрования ключей. Это значит, что каждый ключ шифрования используется либо исключительно для шифрования данных (включая речь), либо исключительно для шифрования ключей, в частности тех, на которых шифруются данные и речь.
- Все ключи делятся на долговременные и одноразовые. Долговременные ключи используются неоднократно в течение определенного периода времени; одноразовые ключи используются один раз для шифрования фрагмента данных или речи. К долговременным ключам относятся все ключи шифрования ключей, а также ключи шифрования данных внутри смартфона или компьютера; для долговременных ключей предусмотрены процедуры их замены, плановой или внеплановой – в случае утери или компрометации.
- Кроме того, ключи шифрования могут быть выстроены в определенную иерархию:
- На самом верху находится ключ аутентификации, который нигде не хранится и вырабатывается в результате выполнения процедуры аутентификации абонента устройством на основе пароля
- Далее располагается зашифрованный с использованием ключа аутентификации мастер-ключ. С помощью мастер-ключа шифруются:
- все ключи шифрования ключей шифрования данных
- все ключи шифрования данных, хранящиеся в Stealthphone Hard, смартфоне, планшете или компьютере
- Следующий уровень составляют ключи шифрования ключей шифрования данных, которые шифруются при помощи мастер-ключа и предназначены для шифрования одноразовых ключей шифрования данных и ключей, использующихся для выработки сеансовых ключей шифрования речи
- На нижнем уровне располагаются ключи, при помощи которых шифруются данные. Каждый такой ключ шифруется
- Для шифрования речи используются только одноразовые сеансовые ключи, которые уничтожаются в конце разговора; объем речевых данных, зашифрованных с помощью одного сеансового ключа, ограничен
- Для шифрования передаваемых данных используются только одноразовые ключи; объем данных, зашифрованных с помощью одного одноразового ключа, ограничен
Особенности ключевой системы Stealthphone
В системе Stealthphone защищенный обмен информацией возможен исключительно в рамках одной криптосети (сети Stealthphone). Абоненты криптосети могут обмениваться зашифрованными данными четырех видов:
- Голосовые данные (шифрование речи)
- SMS-сообщения
- Email-сообщения
- Текстовые сообщения и файлы (криптомессенджер)
Голосовые данные шифруются с помощью сеансового ключа, который вырабатывается в результате комбинирования ключа, полученного с помощью метода ECDH, и общего для двух абонентов секретного ключа парной связи для шифрования речи.
Остальные 3 вида данных шифруются одноразовыми ключами, которые случайно и равновероятно вырабатываются на стороне абонента-отправителя данных. Для того чтобы абонент-получатель смог расшифровать данные, одноразовый ключ, как и сами данные, шифруется с помощью симметричного алгоритма шифрования Tiger и передается вместе с зашифрованными данными. При этом шифрование одноразовых ключей производится на общем для двух абонентов секретном ключе парной связи, соответствующем виду шифруемых данных.
Таким образом, каждая пара абонентов одной криптосети имеет общий набор из 4-х различных ключей парной связи, каждый из которых соответствует одному виду шифрования данных.
Ключ парной связи шифрования речи используется в процедуре генерации сеансового ключа шифрования речи.
Ключ парной связи SMS используется для шифрования одноразовых ключей, при помощи которых шифруются SMS-сообщения.
Ключи парной связи Email и мессенджера используются аналогично ключу парной связи SMS для своих видов данных.
Общее количество ключей парной связи каждого абонента для обмена шифрованной информацией со всеми остальными абонентами сети равно 4 × (N – 1), где N — число абонентов сети.
Ключи парной связи шифрования речи для всех абонентов сети Stealthphone можно расположить в квадратной таблице (матрице) размера N × N по следующему правилу:
- диагональ матрицы остается незанятой (содержит нулевые элементы)
- на пересечении строки A и столбца B располагается общий секретный ключ парной связи для шифрования речи абонентов с криптономерами A и B.
Аналогичным образом можно сформировать матрицы ключей парной связи для остальных видов данных. Все 4 матрицы являются симметричными относительно диагонали.
Совместив 4 матрицы, мы получим симметричную относительно диагонали полную матрицу ключей парной связи сети Stealthphone (полную матрицу ключей), содержащую все необходимые ключи парной связи для всех видов защищенного обмена информацией между каждой парой абонентов. На пересечении строки A и столбца B данной матрицы располагается полный набор из 4 секретных ключей парной связи абонентов с криптономерами A и B.
Строка матрицы с номером A образует множество всех ключей парной связи для обмена шифрованной информацией абонента с криптономером A с остальными абонентами криптосети. Общее количество ключей в строке равно 4 × (N – 1).
Матрица ключей парной связи сети Stealthphone, а также все остальные ключи абонентов, вырабатывается администратором сети с помощью комплекса StealthKey. Запись ключей в абонентские устройства производится на рабочем месте администратора с помощью комплекса StealthKey, либо самим абонентом с помощью персонального компьютера, с использованием предварительно подготовленного для него администратором массива ключей.
Для поддержания максимального уровня безопасности и упрощения администрирования системы управления ключами сети Stealthphone, в ней предусмотрена возможность первичной единовременной загрузки ключей в абонентские устройства без необходимости их перезаписывания при изменении структуры сети (в случае удаления/добавления или изменения прав доступа абонентов), компрометации ключей других абонентов и плановой смены ключей всех абонентов криптосети.
Таким образом, начальной загрузки ключей в абонентские устройства может хватить на несколько лет эксплуатации без перезаписи ключей в устройства.