Базовые технологии

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

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

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

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

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

Операционная система отвечает за обработку команд, работу с файловой системой, оперативной памятью, выполнение «приложений». Приложениями в данном случае, например, можно считать криптографические алгоритмы. Для обеспечения совместимости с приложениями операционные системы смарт-карт должны соответствовать определенным стандартам, регламентирующим систему команд, файловую систему и т. п. Основной международный стандарт ISO/IEC 7816-4, которому соответствует и операционная система Рутокен.

Карточная операционная система Рутокен включена в Единый реестр российских программ для электронных вычислительных машин и баз данных.

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

Команды и ответы составляют протокол, который называется APDU (Application Protocol Data Unit). Стандарт APDU определен в ISO/IEC 7816-4. Протоколы карт различных производителей как правило составляют определенное подмножество этого стандарта.

Как и любая другая, файловая система Рутокен является частью ОС, предназначенной для хранения данных и обеспечения доступа к ним, а также разграничения прав. Файловая система регламентируется тем же стандартом ISO/IEC 7816-4.

Особенность файловой системы токена состоит в том, что различные виды данных хранятся в различных типах объектов, содержащих кроме всего прочего атрибуты безопасности. Окружение безопасности (Security Environment) используется для удобной настройки параметров криптографических операций.

Для хранения ключевой информации: ключей шифрования, сертификатов и т. п. используются файлы Rutoken Special File (RSF-файлы). Разные виды ключевой информации хранятся в предопределенных папках с автоматическим выбором нужной папки при создании и использовании RSF-файлов.

  • Поддержка 3-х категорий владельцев: Администратор, Пользователь, Гость.
  • Поддержка 2-х Глобальных PIN-кодов: Администратора и Пользователя.
  • Поддержка Локальных PIN-кодов для защиты конкретных объектов (например, контейнеров сертификатов) в памяти устройства.
  • Поддержка комбинированной аутентификации: по схеме «Администратор или Пользователь» и аутентификация по Глобальным PIN-кодам в сочетании с аутентификацией по Локальным PIN-кодам.
  • Индикация факта смены Глобальных PIN-кодов по умолчанию на оригинальные.

Настраиваемые аппаратные политики качества PIN-кодов, обрабатываются микропрограммой при соответствующих операциях. Устанавливаются при форматировании, опционально могут изменяться позднее по PIN-коду Администратора.

Варианты политик:

  • Ограничение минимальной длины PIN-кода.
  • Ограничение использования PIN-кода по умолчанию.
  • Запрет PIN-кода, состоящего из одного повторяющегося символа.
  • Независимые требования по наличию в PIN-коде: прописных, строчных букв латинского и русского алфавитов; цифр; специальных символов.
  • Запоминание до 10 устанавливаемых значений PIN-кода, и возможность запрета установки ранее использованного PIN-кода.

Современные модели аппаратных устройств Рутокен кроме хранения данных и ключевой информации способны выполнять ряд криптографических алгоритмов, в число которых входят:

  • Поддержка алгоритмов ГОСТ Р 34.10-2012 и ГОСТ Р 34.10-2001: генерация ключевых пар, формирование и проверка электронной подписи.
  • Поддержка алгоритмов ГОСТ Р 34.11-2012 и ГОСТ Р 34.11-94: вычисление значения хэш-функции данных, в том числе с возможностью последующего формирования электронной подписи.
  • Поддержка алгоритмов ГОСТ Р 34.12-2015/ГОСТ 34.12-2018 (Кузнечик, Магма), ГОСТ 28147-89: генерация и импорт ключей шифрования, шифрование данных в режимах простой замены, гаммирования и гаммирования с обратной связью, вычисление и проверка криптографической контрольной суммы данных (имитовставки ГОСТ).
  • Поддержка алгоритма ГОСТ 28147-89: генерация и импорт ключей шифрования, шифрование данных в режимах простой замены, гаммирования и гаммирования с обратной связью, вычисление и проверка криптографической контрольной суммы данных (имитовставки ГОСТ).
  • Выработка сессионных ключей (ключей парной связи) по схемам VKO GOST R 34.10-2001 (RFC4357) и VKO GOST R 34.10-2012.
  • Генерация последовательности случайных чисел требуемой длины.
  • Поддержка алгоритма RSA с ключам 1024, 2048, 4096 бит.
  • Поддержка алгоритма ECDSA с кривыми secp256k1 и secp256r1

Рутокен ЭЦП позволяет осуществлять механизм электронной подписи так, чтобы закрытый ключ подписи никогда не покидал пределы токена. Таким образом, исключается возможность компрометации ключа и увеличивается общая безопасность информационной системы.

Одно из основных применений USB-токенов и смарт-карт — строгая двухфакторная аутентификация, в процессе которой используются аутентификационные факторы нескольких типов. В случае с USB-токенами Рутокен или TrustScreen-устройствами первым фактором аутентификации выступает сам токен или устройство, а вторым фактором PIN-код, который необходим для доступа к ним.

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

В нашем случае к middleware можно отнести:

  • библиотеки, реализующие интерфейс с Рутокен по стандарту PKCS#11 в различных операционных системах (подробнее о PKCS#11 можно прочитать на Портале документации Рутокен);
  • Рутокен CSP и Рутокен MiniDriver, дающие возможность задействовать Microsoft Crypto API (MS CAPI) и стандартные функции Windows для работы со смарт-картами.
  • Рутокен Плагин — кроссплатформенный и мультибраузерный плагин, который позволяет работать с аппаратной реализацией российских криптоалгоритмов в устройствах Рутокен из контекста браузера.

Поддержка различных стандартов middleware позволят производителям систем информационной безопасности и интеграторам легко встраивать технологии Рутокен в свои решения.

USB на сегодняшний день является основным способом подключения всевозможных устройств к компьютерам. Надежность, простота использования, высокая скорость, универсальность и возможность «горячего» переподключения устройств определяют широчайшую распространенность этого интерфейса: от серверов до мобильных устройств.

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

  • USB CCID Спецификация USB CCID (Chip Card Interface Devices) широко используется для считывателей смарт-карт, подключаемых через интерфейс USB. Большое количество приложений использует драйверы USB CCID, входящие в состав операционных систем, что решает проблемы совместимости и поддержки пользователей. Реализации этого драйвера имеются практически во всех широко используемых операционных системах. Основные модели Рутокен работают на основе этой спецификации.
  • USB HID Интерфейс USB HID не типичен для токенов и считывателей смарт-карт, но поскольку драйвер USB HID присутствует практически во всех современных операционных системах, он был использован для идентификаторов Рутокен Web. Применение этого интерфейса позволяет сделать Рутокен Web работоспособным почти на любых платформах. Пользователю не нужно беспокоиться об установке каких-либо дополнительных драйверов, что снижает риски возникновения технических проблем и сильно удешевляет техническую поддержку.

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

Как подбирают пароли

Стойкость пароля — это способность противостоять угадыванию с помощью специальных программ. Эти программы систематически перебирают все возможные комбинации символов до тех пор, пока не будет найдена правильная.

Такой перебор может занять очень много времени, поэтому злоумышленники сначала запускают подбор по парольным базам. Однако такой метод сработает только в том случае, когда кто-то использовал обычное слово или часто используемые сочетания в качестве пароля. Поэтому задача «сильного» пароля — настолько усложнить взломщику жизнь, чтобы он потерял интерес к цели и переключился на другую, более доступную мишень.

Стойкость пароля определяется его длиной, непредсказуемостью и уникальностью.

Эксперты из Национального института стандартов и технологий США (NIST) в документе, рассматривающем разнообразные аспекты безопасности цифровых профилей, утверждают, что пароли повышенной сложности (стойкие к перебору) должны состоять минимум из 8 символов, цифр, букв в разных регистрах и служебных символов, чтобы иметь хорошую стойкость.

NIST о длине паролей: «…SHALL be at least 8 characters in length if chosen by the subscriber.» Раздел 5.1.1.1.

Verifiers SHOULD offer guidance to the subscriber, such as a password-strength meter, to assist the user in choosing a strong memorized secret. Раздел 5.1.1.2.

Почему PIN-код лучше пароля

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

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

Недостатки в длине или случайности PIN-кода компенсируются требованием физического владения устройством и ограничениями на перебор PIN-кода. После определенного количества неудачных попыток ввода PIN-кода Рутокен блокируется до момента его разблокировки Администратором. Таким образом операционная система Рутокен защищает от множества известных и потенциальных атак, в том числе от атак методом подбора PIN-кода.

Мы рекомендуем для защиты информации низкой и средней степени секретности использовать PIN-коды, состоящие не менее чем из 6 цифр.

Математически высчитать вероятность угадывания довольно просто.

Вероятность угадывания PIN-кода: P= i / mn, где:

  • i — число попыток угадывания,
  • m — число возможных символов на позиции,
  • n — число позиций в PIN-коде.

К примеру, если PIN-код состоит из 6 цифр, то n = 6, m = 10 (каждая цифра имеет значение от 0 до 9). Тогда число возможных комбинаций mn = 106 = 1 000 000. Если количество неудачных попыток ввода PIN-кода, i = 10, то вероятность его угадывания составляет 0,0001%.

Если исключить самые очевидные комбинации (11111, 123456, 123123, дату рождения, телефонный номер), то вероятность угадать PIN-код, состоящий из 6 цифр, со стандартными ограничениями в 10 попыток, составляет 0,0001%. Такая вероятность угадывания считается достаточно хорошей для обеспечения личной безопасности и широко применяется в финансовой сфере. Например, стандартная длина PIN-кода банковской карты составляет 4 символа при трех попытках подбора.

Подведем итог:

  • Чтобы пароль был безопасным, он должен быть сложным. Если он сложный, то его трудно запомнить. Поэтому программы-запоминалки паролей еще никогда не были так популярны. Но нельзя забывать, что они защищаются точно таким же паролем.
  • PIN-код может быть простым для запоминания, в сочетании с использованием токена или смарт-карты. Их конечно надо будет держать при себе. Карту легко хранить с обычным пропуском или использовать вместо него. Токен можно носить как брелок. А если оснастить смарт-карту Рутокен RFID-меткой, то ее можно использовать как электронный ключ от двери.