Отечественные средства аппаратной защиты программного обеспечения и двухфакторной аутентификации

Компания «Актив» уже несколько лет занимается проектированием, разработкой и продажей электронных ключей Guardant и электронных идентификаторов Рутокен. Именно об этих продуктах сегодня пойдет речь. На наши вопросы отвечает Дмитрий Горелов, коммерческий директор компании «Актив».

Отечественные средства аппаратной защиты программного обеспечения и двухфакторной аутентификации

Дмитрий Горелов, коммерческий директор компании Актив. Родился в 1970 году, женат, воспитывает дочь. Окончил МЛТИ по специальности прикладная математика.

Алексей Доля: Дмитрий, расскажите, пожалуйста, о своей компании.

Дмитрий Горелов: Основа нашего коллектива сформировалась в далеком 1989 году. Я и большинство сегодняшних топ-менеджеров компании учились тогда на третьем курсе института. Назывался наш институт — Московский Лесотехнический. Мы получили образование на факультете Электроники и Системотехники (ФЭСТ). К лесному хозяйству наши специальности не имеют никакого отношения, факультет создавался исключительно для нужд ракетно-космической промышленности. ЦУП находится в 15 минутах ходьбы от института, видимо, поэтому появился такой непрофильный факультет.

Компания «Актив», как юридическое лицо, появилась в 1994 году. Летом мы будем справлять сразу два юбилея: 15 лет коллектива и 10 лет компании «Актив». Все эти годы мы разрабатывали и развивали собственные технологии.

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

Алексей Доля: Насколько я знаю, компания «Актив» представлена на рынке двумя своими основными продуктами: электронными ключами Guardant и электронными идентификаторами Рутокен. Охарактеризуйте вкратце эти продукты.

Дмитрий Горелов: Правильней будет сказать, что у нашей компании есть два направления деятельности: системы защиты от нелегального копирования (продукты под торговой маркой Guardant) и средства аутентификации (торговая марка Рутокен). Системами защиты от нелегального копирования мы занимаемся уже пятнадцать лет. Средства аутентификации — относительно новое направление, широкие продажи идентификаторов Рутокен начались в 2003 году.

Мы не сразу начали заниматься производством электронных устройств. В самом начале был программный продукт с именем File_Рrotection, он защищал программное обеспечение при помощи привязки к ключевой дискете. Потом были другие программные защиты, электронные ключи на основе EEPROM-памяти (EEPROM — Electrically Erasable Programmable Read-Only Memory, электронно-перепрограммируемая постоянная память или электрически-стираемое программируемое ПЗУ), позже были разработаны электронные ключи на основе микроконтроллера, появилась торговая марка Guardant.

Продукция Guardant это: собственно электронные ключи Guardant, программное обеспечение Guardant и сервис. ПО Guardant — очень важная часть. Без драйверов, утилит, библиотек API Guardant, электронные ключи — просто «железки». Сервис — это техническая поддержка, online-обновление комплекта разработчика, удобные механизмы заказа и получения продукции. Продукция Guardant предназначена для разработчиков коммерческого программного обеспечения, круг возможных потребителей Рутокен значительно шире и разнообразней. Продукция Рутокен — это идентификаторы Рутокен, ПО Рутокен, готовые решения и сервис. Готовые решения — это программное обеспечение, полностью решающее какую-либо задачу, связанную с безопасностью. Так, например, нашими специалистами разработан модуль поддержки Рутокен в CSP КриптоПро. Теперь пользователи этого средства криптографической защиты информации могут хранить ключевую информацию в защищенной памяти Рутокен.

Алексей Доля: Давайте остановимся в начале на электронных ключах Guardant. Для чего они предназначены, какие в них реализованы возможности, какова их структура?

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

Все ключи Guardant построены на базе микроконтроллера и имеют 256 байт энергонезависимой памяти. Память может быть защищена от доступа путем наложения аппаратных запретов на чтение и запись. При этом доступ программными средствами к защищенным данным будет невозможен. Ключи Guardant являются активными устройствами, они могут сами преобразовывать данные, для этого предназначены аппаратные алгоритмы. Аппаратные алгоритмы — достаточно сложный, но очень действенный защитный механизм. Можно очень долго про них рассказывать, но, наверное, не сейчас. В конце концов, это интервью, а не лекция по нашим технологиям.

Алексей Доля: Есть ли какие-нибудь другие более эффективные защитные технологии, пусть даже они намного дороже аппаратных ключей?

Дмитрий Горелов: Да, человек с автоматом, приставленный к каждому пользователю «защищенного» ПО. Это, конечно, шутка… Если серьезно, то очень эффективный способ защиты от взломщика — перенести существенную часть программного кода внутрь аппаратного устройства. Чтоб взломщик не мог прямыми методами исследовать эту часть кода. Но для этого нужно аппаратное устройство сопоставимое по возможностям с современными компьютерами и при этом имеющее полностью закрытую архитектуру и недоступное для анализа извне. Чтоб взломать такую защиту, нужно полностью «угадать», что за код работает внутри аппаратного устройства. Если код большой и сложный, это практически невозможно. Идея красивая, но со многими недостатками. Это дорого, не понятно как поступать, если нужно поменять часть кода внутри аппаратного устройства. Чтобы реализовать такую защиту, нужна высокая программистская квалификация. На данный момент мне неизвестны тиражируемые решения для защиты ПО предлагающие более эффективные технологии, чем современные электронные ключи. Но время не стоит на месте, — может быть, в ближайшие годы что-нибудь появится.

Алексей Доля: Расскажите, пожалуйста, какие технологии реализованы в ключах Guardant. Как эти ключи работают?

Дмитрий Горелов: Во всех ключах Guardant реализована оригинальная технология Stealth, сочетающая в себе высокий защитный уровень и удобство для пользователя защиты. В большой степени защитные свойства обеспечиваются микропрограммной ключа, которая, в сочетании с дескрипторами, реализует несколько типов аппаратных алгоритмов. И чем больше таких алгоритмов реализовано, тем более надежную защиту можно построить. В ключах Guardant количество аппаратных алгоритмов может быть от 8 (для младшей модели), до 18 (в ключах Stealth и Net, в этих ключах пользователь защиты сам может конструировать алгоритмы). Есть возможность привязки аппаратных алгоритмов к переменным (значения внутренних счетчиков) и постоянным (ID ключа) величинам.

Для доступа к ключу используется три 32-битных пароля: по одному для чтения, записи и специальных операций. Большое значение в обеспечении высокого уровня защиты, обеспечиваемого ключом, играет надежный протокол обмена между ключом и защищенным приложением. Технология Stealth подразумевает такие оригинальные свойства протокола обмена, как непрерывное кодирование данных (причем метод кодирования постоянно меняется), зашумленность (то есть засорение протокола ничего не значащим случайным мусором), автоматическая верификация при каждой попытке записи в память.

Кроме того, в ключах семейства Guardant реализована аппаратная блокировка отладочных средств — ключ анализирует интервалы времени между поступлениями данных и если распознает, что работает в среде отладчика — мгновенно засыпает. Вот основные характеристики технологии Stealth.

Что касается работы принципов защиты на основе электронных ключей, то в упрощенном виде все выглядит следующим образом:

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

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

Алексей Доля: Дмитрий, вы часто упоминаете, что ваши ключи поддерживают несколько алгоритмов (от 8 до 18). Речь идет о криптографических алгоритмах (алгоритмах шифрования/расшифровывания, получения хэшей и цифровой подписи) или имеются в виду какие-то другие алгоритмы? Вы не могли бы перечислить эти алгоритмы?

Дмитрий Горелов: Термин аппаратный алгоритм мы придумали, когда разрабатывались электронные ключи Guardant Stealth. В документации, входящей в комплект разработчика, аппаратным алгоритмам посвящен целый раздел. Аппаратный алгоритм — это необратимая функция преобразования, «черный ящик». Если говорить в терминах криптографии — то, что делают аппаратные алгоритмы, больше всего похоже на функции хэширования, только у них значительно больше параметров настройки.

Алексей Доля: Как количество алгоритмов влияет на стойкость и надежность создаваемой защиты?

Дмитрий Горелов: На этот вопрос ответить просто. Чем больше аппаратных алгоритмов используется при построении защиты, тем сложнее взломщику анализировать защищенную программу, а значит — выше стойкость к взлому. Еще очень важно, чтоб эти алгоритмы правильно использовались.

Алексей Доля: Какие знания и навыки требуются пользователю, чтобы использовать ключи Guardant на практике?

Дмитрий Горелов: Быстро защитить готовое приложение может даже пользователь, не обладающий какими-либо специальными навыками. Для этого существует специальный мастер автоматической защиты. Используя подсказки, буквально за несколько шагов можно установить довольно надежную защиту — пользователю необходимо расставить галочки, все остальное утилита сделает сама. Она проанализирует исполняемый файл, установит привязку к ключу, обеспечит защиту от отладчиков и дизассемблеров, закодирует тело приложения и защитит его от модификации различными способами контроля целостности.

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

Возможности защиты с использованием функций API Guardant гораздо шире и ограничены исключительно «полетом фантазии» разработчика, поэтому ее грамотная реализация требует определенных навыков — по меньшей мере, пользователь должен обладать квалификацией программиста и понимать, как работает защищаемое приложение. Кстати, в состав комплекта разработчика входит уникальный инструмент — Генератор исходных текстов. Это наша оригинальная, не имеющая аналогов, разработка. С ее помощью конструирование надежной API-защиты существенно облегчается — генератор делает за программиста практически всю черную работу, позволяя ему сосредоточиться на грамотном распределении готового защитного года по исходному тексту приложения. И, конечно же, мы снабжаем наших клиентов необходимыми рекомендациями, по построению защиты.

Алексей Доля: Можно ли узнать парочку таких рекомендаций и нашим читателям? Пусть даже самых общих.

Дмитрий Горелов: Самая главная рекомендация — нужно всегда помнить, что взломщик умен и изобретателен. И не нужно откладывать создание защиты до самого последнего момента, лучше чтоб защитные механизмы разрабатывались вместе с основным кодом.

Алексей Доля: Можно ли как-то проверить эффективность ключей Guardant?

Дмитрий Горелов: Прежде всего, хотелось бы отметить, что оценивать следует не ключи, а технологию в целом. Непосредственно ключ, как аппаратная составляющая защитного комплекса, очень надежно защищен от анализа. Поэтому следует говорить о конкретных реализациях защиты на базе программно-аппаратного комплекса Guardant. Защита — вообще понятие субъективное. Очень много зависит от разработчика, эту защиту установившего — от его квалификации, от потраченного времени, от творческого подхода. Установка примитивной защиты, как, например, единственный вопрос «есть ключ — нет ключа» при старте программы, может послужить преградой обычному пользователю, но вряд ли защитит от квалифицированного взломщика.

Кроме того, неразумно, единожды создав защитный механизм, успокоиться и пожинать плоды. При определенном уровне агрессивности пользовательской среды, необходимо периодически вносить в защиту изменения (например, от версии к версии).

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

Для ознакомления со всеми возможностями продукции Guardant можно приобрести у нас демонстрационный комплект разработчика, мы гарантируем возврат денег в течение трех месяцев, если вам что-то не понравится или вы решите пока отложить применение электронных ключей.

Алексей Доля: Понимаю, что ответ на мой вопрос может расцениваться как явная реклама (или антиреклама :)), но все-таки: были ли случаи, когда пользователь возвращает комплект разработчика (ему что-то не понравилось или он решил отложить применение данной технологии)?

Дмитрий Горелов: Не знаю, что получится. Реклама или антиреклама? Конечно, такие случаи бывают. Редко, но бывают. Мы продаем несколько комплектов разработчика каждый день. В прошлом году, если мне не изменяет память, нам вернули два или три комплекта. Если нужна точная цифра, могу уточнить в отделе продаж.

Алексей Доля: Наверное, не стоит. Намного интереснее то, чем ваши ключи отличаются от конкурентов HАSP и Sеntinеl?

Дмитрий Горелов: Мы предпочитаем не сравнивать публично наши ключи и ключи конкурентов. Это некорректно. Такие анализы обычно проводят независимые эксперты. Наши ключи были разработаны чуть позже, чем ключи HАSP и Sеntinеl SupеrPrо. Они, если так можно выразиться, более современные. Глупо было бы, при разработке, не учитывать сильные и слабые стороны продукции конкурентов. То, что разработки и производство расположены в Москве, делает нашу продукцию ближе к потребителю. Мы находимся в постоянном диалоге с нашими клиентами и делаем именно то, что сейчас необходимо российскому рынку.

Алексей Доля: Скажите, пожалуйста, а в чем специфика именно нашего, российского, рынка средств аппаратной защиты ПО?

Дмитрий Горелов: В отличие от США и западной Европы, в нашей стране значительно больше мелких софтверных компаний (конечно, в процентном соотношении). Процесс укрупнения идет, но появляются совершенно новые компании, новые вертикальные рынки. Мы одинаково внимательно относимся к нуждам всех наших клиентов — тех, кто покупает 10 шт. и несколько тысяч. Высокий уровень академического образования дает не только хороших программистов, но и хороших взломщиков. Нужно оперативно совершенствовать защитные технологии, «держать руку на пульсе».

Алексей Доля: Расскажите, пожалуйста, о вашем продукте Рутокен. На каких пользователей он рассчитан, что умеет и из чего состоит?

Дмитрий Горелов: Рутокен — это персональный электронный идентификатор, выполненный в виде USB-брелока. Функционально это смаркарт-ридер и смарт-карта в одном флаконе. Порты USB сейчас есть на любом современном компьютере, безопасности и, в частности, аутентификации уделяется большое внимание, поэтому такие продукты как Рутокен востребованы. Рутокен может применяться в любых приложениях, где традиционно используются пароли, смарт-карты и другие идентификаторы. Это надежное и удобное средство двухфакторной аутентификации. Рутокен — это наш совместный проект с компанией Анкад, широко известной благодаря своим аппаратным шифраторам Криптон. Анкад отвечает в проекте Рутокен за все вопросы, связанные с криптографией.

Алексей Доля: Расскажите, пожалуйста, как устроен ваш электронный идентификатор?

Дмитрий Горелов: Это должен быть очень длинный ответ. Когда такой вопрос задают нашей службе технической поддержки, они отвечают, что правильней всего прочитать документацию Рутокен. Кстати она есть в свободном доступе на нашем веб-сайте. Попробую рассказать о Рутокен в «легкой форме». Думаю, что те, кому нужны строгие технические термины и исчерпывающая информация могут позвонить в нашу службу тех. поддержки или обратиться к документации.

Рутокен — это устройство, имеющее свою собственную операционную систему. Как у любой ОС в ней есть своя файловая система. Директории, файлы, специфические файлы, которые называются объекты безопасности. Доступ к объектам файловой системы и возможностям токена осуществляется при предъявлении пароля (PIN-кода). Внутри токена можно хранить секретные ключи, пользовательские данные, логины и пароли. Токен может осуществлять шифрование и дешифрование внешних данных, при этом ключ шифрования никогда не будет покидать устройство. OC Рутокен предусматривает три уровня доступа к устройству: гость, пользователь, администратор. Например, при создании объекта безопасности можно установить такие права доступа, что пользоваться этим объектом сможет только администратор. Гость не вводит PIN-код и может читать только те файлы, в атрибутах которых стоит флаг «доступ на чтение для всех». Например, в корневой директории находится в файл, в котором записано имя и координаты пользователя, если токен утерян, легко узнать, кому он принадлежит, но пользоваться им для аутентификации сможет только сам владелец, который знает соответствующий PIN-код.

Так как размер файловой системы составляет от 8 до 128Кб, то в одном токене можно хранить всю информацию необходимую для аутентификации в самых разных системах. Для доступа к необходимым ресурсам пользователь должен иметь Рутокен и помнить PIN-код.

Алексей Доля: Чем Рутокен отличается от своего конкурента eToken?

Дмитрий Горелов: eToken — достойный продукт. Один из первых USB-токенов, появившихся на мировом рынке. Этот идентификатор успешно продвигается на российском рынке дистрибьютором компании Аlаddin Knоwlеdge Systеms, Ltd — российской компанией Aлaддин Р.  Д. Ранее я говорил, что USB-токены сделаны на основе стандартов, пришедших из мира смарт-карт. Функционально наши идентификаторы во многом схожи, т. к. сделаны по одним стандартам. Основные отличия Рутокен от западных аналогов: полностью российское происхождение, аппаратная реализация российских криптографических алгоритмов, более низкие розничные цены.

Алексей Доля: Какие компании в России и за ее пределами вы бы выделили в качестве своих основных конкурентов?

Дмитрий Горелов: И в России, и за ее пределами у нас два самых главных конкурента. Компания с израильскими корнями Aladdin Knowledge Systems, Ltd и американская компания Rainbow Technology. Кстати, Rainbow является самым крупным производителем и электронных ключей и USB-токенов, хотя это вполне объяснимо, рынок информационных технологий США — самый крупный. Конечно, трудно конкурировать на равных с такими крупными международными компаниями. Но у нас это получается.

Алексей Доля: Какую поддержку вы оказываете своим пользователям?

Дмитрий Горелов: Мы оказываем полный комплекс технической поддержки: это консультации по телефону и электронной почте, любой пользователь наших продуктов может подъехать к нам в офис и получить необходимую помощь. Услуги технической поддержки для наших клиентов полностью бесплатны.

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

Алексей Доля: Вы не могли бы рассказать о ценах на свою продукцию?

Дмитрий Горелов: Это открытая информация, цены нашу продукцию опубликованы на наших сайтах. Стоимость локальных электронных ключей Guardant, в зависимости от типа и размера партии, от 9 до 15 $ за штуку. Программное обеспечение Guardant приобретается один раз в составе комплекта разработчика, все новые версии ПО Guardant наши клиенты получают бесплатно. Комплект разработчика Рутокен стоит 70$. Стоимость идентификаторов Рутокен зависит от объема энергонезависимой памяти и размера закупаемой партии. В среднем, розничная цена одного идентификатора Рутокен около 20$.

Цены на нашу продукцию в среднем на 20-30% ниже, чем цены на продукцию наших западных конкурентов. Причин у этого две: во-первых, наши разработки и производство расположены в России, во-вторых, мы не используем многоуровневую систему продаж (Вендор-Дистрибьютер-Дилер-Потребитель), а продаем большинство своей продукции напрямую.

Алексей Доля: Где можно приобрести ваши продукты в России?

Дмитрий Горелов: Продукцию Guardant можно приобрести у нас в московском офисе и у наших региональных дилеров. Все координаты наших дилеров есть на сайте проекта Guardant. Продукция Рутокен продается сейчас только напрямую, в данный момент формируется сеть партнеров.

Алексей Доля: Большое спасибо, что так обстоятельно ответили на все наши вопросы. Мы очень рады, что рынок отечественных средств аппаратной защиты ПО и средств двухфакторной аутентификации не только существует, но и развивается. Удачи вам и вашим продуктам!