Дата:  3.3.09 | Раздел: IT-security

История не самого большого клиента.

Лето 2005. Я, как молодой специалист, был принят на должность совсем не для начинающего – разработчик систем защиты. Цель разработки – защита комплекса САПР «Базис» (www.bazissoft.ru). В те далёкие времена, когда понятия «HASP» и «электронный ключ» большинством воспринимались как синонимы, разработчики из «Базис-Центра» решили не выделяться из общей массы и выбрали именно это программно-аппаратное средство для защиты своих творений… и, как и многие остальные разработчики вскоре обнаружили так называемые «кряки» к своему софту на специализированных сайтах. Так что первым этапом в построении новой системы защиты был выбор достойного «железа».

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

Несколько месяцев разработки и в свет появилась первая версия системы «Базис», защищённая с помощью новых ключей. Продажи резко пошли вверх – хакерам не по зубам оказались «алгоритмы-невидимки» второго поколения («Stealth» - (англ.) невидимка – прим. автора). Но, как водится, всё хорошее рано или поздно заканчивается.

В течение пары месяцев сгорело ещё несколько ключей из новой партии. Проблема выявилась после продолжительных консультаций с разработчиками. Заключалась она в недостаточной документированности поставляемых из-за границы микросхем и возникшей вследствие этого ошибки при программировании ключей на этапе предпродажной подготовки (другими словами – производственный брак).

Разработчики обещали в сжатые сроки найти выход из сложившейся ситуации, но очередное полугодие принесло новый урожай «погорельцев». При этом ключи не повреждались физически, а просто «портилась» их программная начинка. То есть ключи подлежали восстановлению, НО только непосредственно на производстве самой компании-разработчика. Это небольшое «но» вылилось в огромные затраты на транспортировку ключей от непосредственных пользователей до производителя и обратно. Так же это отразилось и на самих пользователях, ведь они не имели возможности использовать программный комплекс, пока к ним не прибудет новый ключ. А специфика «БАЗИСа» предполагает территориальную разрозненность предприятий, его использующих, по всей России и странам ближнего зарубежья.

Лето 2007. Я уже пол-года наблюдал за развитием недавно пришедшей на отечественный рынок американской компании “SafeNet” и её ключами “SHK” (Sentinel Hardware Keys). Представляет “SafeNet” в РФ компания “Rainbow Technologies” (www.rainbow.msk.ru). С ними и была налажена связь. Они предоставили все необходимые материалы для изучения, а так же вручили тестовый комплект разработчика, чтобы я мог вживую прикоснуться к их технологиям. А в это время к выходу готовились 2 новых модуля системы «БАЗИС» - «Салон» и «Склад». Было принято стратегическое, но рискованное решение испытать в реальных условиях импортную защиту. Рискованное по той причине, что первые версии любого ПО сами по себе содержат достаточное количество ошибок и недоработок, а проблемы с защитой, которая вообще не должна сказываться на работе конечного пользователя, могли отвернуть его от новых программ на долгие годы. Но решение было принято окончательное, и начались сначала этапы разработки, а затем и внедрения. Через некоторое время в usb-портах компьютеров новоиспечённых пользователей модулей «Салон» и «Склад» уже светились зелёненькие огоньки ключей SHK.

Лето 2008.  «Салон» и «Склад» всё глубже и глубже внедрялись в процессы производства мебели. При этом звонки в тех. поддержку, связанные с проблемами защиты по этим модулям были минимальны и ограничивались кругом начинающего пользователя (забыл установить драйверы, не добавил необходимые исключения в персональный firewall и т.п.).  А вот со «Стелсами» ситуация больше и больше склонялась в сторону тупиковой: ключи из новых партий горели уже по 2-3 штуки в неделю. Разработчики же из «Актива» разводили руками и говорили, что я один у них такой клиент, у которого ключи в больших объёмах выходят из строя.

Пришло время задуматься о переводе всего комплекса продаваемых «Базис-Центром» программ на защиту от “SafeNet”. Но шаг этот был не столько трудным, сколько дорогостоящим. Заменить огромному количеству пользователей все их “Stealth” на “SHK” просто не представлялось возможным – работать пришлось бы только на это. И хотя предыдущий опыт полной миграции с “HASP” принёс свои плоды, всё-равно необходимо было значительно растянуть во времени новый переход.

Точку в этом вопросе поставило последнее моё совещание с «активовцами», состоявшееся при передаче очередной партии «трупиков». На нём, коммерческий директор Дмитрий Горелов и руководитель технической поддержки Владимир Иванов, видимо не сдержавшись, открыто заявили мне, что моя фирма – не самый крупный их клиент, и «Стелсы» настолько дешевы что проще их выкидывать, чем тратить деньги на доставку для обмена. После этой встречи, стало очевидно, что решения проблемы не видно даже за линией горизонта.

По приезду был сделан соответствующий отчёт своему начальству, что дало старт полномасштабному, но плавному процессу полного перехода на новые ключи. Месяц доработки защиты и дописывания всех утилит для поддержки новых ключей, ещё столько же на тестирование и результат достигнут – полный отказ от каких-либо закупок продукции компании «Актив». Все новые пользователи начали получать ключи SHK в комплекте с комплексом САПР «Базис», старым тоже по возможности мы начали обновлять защиту. Ну и, конечно же, новых «погорельцев» мы заменяем на SafeNet’овские ключи. Поддержка двух версий защиты оказалась не столь трудным делом, как предполагалось в начале. Повозиться, конечно, пришлось, но оно того стоило. На момент написания статьи, соотношение используемых нашими пользователями ключей “Guardant” и “Sentinel” составило уже 50:50 и эта цифра неуклонно продолжает расти, естественно, в сторону SafeNet’a.

“Stealth” – ключи-невидимки, или что хотели скрыть разработчики.
Эта глава наверняка будет интересно тем, кто непосредственно имеет дело с ключами, API для них, тулкитами и прочим, то есть непосредственно для разработчиков защиты. Интересна потому, что в ней я постараюсь сравнить между собой два ключа: “SafeNet Sentinel” и “Guardant Stealth III”. Так же в это сравнение я постараюсь включить новые “Stealth III Sign”, но оговорюсь сразу, что в руках я их ни разу не держал и опираться буду, лишь на технические характеристики и слова их разработчиков. Итак, если все готовы, начнём.

Ключ “SHK”. Имеет на борту 16-разрядный микроконтроллер и ~1.7K перезаписываемой памяти под хранение пользовательских данных. Основные возможности – аппаратная реализация алгоритмов  AES и ECC. Имеет прочный пластиковый корпус со светодиодной индикацией. Специальная технология производства многослойных микросхем обеспечивает защиту от изучения ключа с помощью электронного микроскопа.

Ключ “Stealth III”. Имеет на борту 8-разрядный микроконтроллер и 2К памяти под хранения пользовательских данных. Основные возможности – аппаратная реализация фирменных алгоритмов GSII64, а так же так называемая технология «защищённых ячеек». Корпуса особой прочностью не отличаются и разваливаются не хуже чем у обыкновенных флешек (многие могут вспомнить, как на технических семинарах, г-н Иванов в буквальном смысле прыгал по своим ключам в подтверждение их «неубиваемости» – видимо допрыгался – прим. автора). Про структуру микросхем врать не буду, ибо сам не знаю.

Как видно из сказанного выше, основным отличием ключей являются используемые в них защитные алгоритмы. В случае “SHK” это открытый AES, надежность которого подтверждена многими независимыми лабораториями по всему миру. В другом случае – самодельный GSII64. Первый вопрос, приходящий на ум – а что же надёжнее. Если верить руководителю технической поддержки «Актива», то конечно GSII64, ибо он является закрытым алгоритмом. Однако в новой линейке “Stealth III Sign” заявлена поддержка «менее надёжных» AES и ECC. Обоснование её появления г-ном Ивановым – требование иностранных заказчиков. На мой взгляд, в этом вопросе всё гораздо проще. Если взять “Stealth III” и попробывать преобразовать данные с помощью вшитого в него GSII64, то будет заметна некоторая ощутимая задержка, которая не проявляется при выполнении той же операции AES’ом, реализованным в “SHK”. Объясняется она элементарной нехваткой производительности 8-разрядного RISC-процессора. Недаром в новой линейке «Актив» особо выделяет возросшую в 10 раз производительность. Что же касается непосредственно криптостойкости сравниваемых алгоритмов, то тут даже новичку понятно, что стоит информации о GSII64 просочиться наружу (например, уйдёт один из разработчиков), как тут же его разберут по кирпичикам и выложат на всеобщее обозрение по хакерским форумам. Такое произойдёт даже в случае, если кому-то удастся «выгрузить» микропрограмму из ключа. С AES, в силу его открытости, такого случиться ну никак не может. Выводы делайте сами.

Объёмы памяти ключей влияют разве что на количество модулей, которое с их помощью можно защитить, поэтому сравнивать тут особо нечего. Используемая в «Стелсах» технология «безопасного удалённого обновления», как само собой разумеющееся, присутствует и в ключах SHK. Выделили её отдельно по одной причине – раньше она была не столь безопасной.
Самое интересное! Я обнаружил в описании новых ключей “Stealth III Sign” следующий пункт: «Возможность работать в ОС Windows без установки драйверов Guardant, как устройство типа HID (Human Interface Device)». Вспомнилось мне сразу, как на выставке Softool’2008, обсуждали мы с Владимиром Ивановым недавно появившегося на ранке электронных средств защиты ПО производителя из Санкт-Петербурга. Увидев этот пункт в их рекламе, мой собеседник назвал его вздором, ибо такая реализация драйвера резко снижает надёжность всей защиты. Прошёл год и… как говорится, результат налицо.

Ещё одно интересное различие можно найти в драйверах. Если быть более точным, то не в самих драйверах, а сертификатах на них от компании Microsoft. Не знаю, как сейчас обстоит с этим дело в «Активе», но в процессе установки имеющейся у меня версии 5.20, защита Windows спрашивает, действительно ли я готов доверить целостность своей системы неизвестному разработчику? В-принципе, многие, включая меня, сочтут этот пункт невесомым, но если в “Microsoft” выдали такой сертификат для драйверов “SHK”, то это что-то да значит.

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

В качестве резюме.
«Актив»:  работает по принципу «что моё - то хорошо, что не моё – плохо». Положительное отношение к клиенту лишь на этапах, когда всё хорошо. В то же время грамотная техническая поддержка, быстрая реакция на возникающие проблемы, за что им огромное спасибо от меня лично. Ключи “Stealth III” – неплохой выбор для тех, у кого клиенты не разрознены территориально или их количество не выражается четырёхзначным числом. В то же время не стоит забывать пословицу: «Скупой платит дважды». И, конечно же, стоит обратить внимание на надёжность данной продукции, ибо по моим данным, «Базис-Центр» всё же не единственный несчастливый обладатель партии бракованных ключей.
“Rainbow Technologies” (“SafeNet”) – отзывчивые ребята, которые ни разу не пытались скрыть от меня «подводные камни» своей продукции. Не менее грамотная техническая поддержка. “SHK” – качественный продукт, одним словом «иномарка». Есть, конечно, свои недоработки, ввиду того, что продукт относительно новый, но производитель обещает всё это учесть в ближайших релизах своего программного обеспечения. Хорошее решение в сочетании цена-качество. Производственный брак мне, к счастью, не встречался. Отношение к любому из клиентов – уважительное.

Плетнёв Алексей (zix@bazissoft.ru)
Разработчик систем защиты ООО «Базис-Центр»
www.bazissoft.ru



Cтатья опубликована на сайте "Безопасность для всех":
http://www.sec4all.net

Адрес статьи:
http://www.sec4all.net/modules/myarticles/article.php?storyid=479