Aladdin knowledge systems что это
eToken жил, eToken жив, eToken будет жить
В последнее время меня часто спрашивают, что случилось с ключами eToken и почему их перестали продавать. Так же наблюдается некоторая паника по этому поводу, ввиду того, что большинство мировых вендоров поддерживает данные ключи в своих продуктах, а заменить их, получается нечем.
Ключи eToken никуда не исчезли, они продолжают выпускаться и продаваться на российском рынке. Да, они поменяли своё название и немного по-другому выглядят, но это всё те же eToken.
А теперь немного подробнее.
Знаменитый и самый узнаваемый ключ SafeNet eToken Java 72k, в простонародии «рыбка» теперь называется Gemalto SafeNet eToken 5100 и выглядит немного иначе:
Было | Стало |
Однако, это тот же самый ключ и он точно так же поддерживается и работает во всех решениях, которые поддерживали SafeNet eToken Java 72k.
Смарт-карты eToken теперь тоже называются Gemalto SafeNet eToken 4100, но выглядит так же как и раньше – белый пластик с чипом:
Было | Стало |
Выглядит так же, но называется по-другому.
При этом, сохранилась возможность имплантировать RFID-метки в карту для интеграции со СКУД.
Комбинированные SafeNet eToken NG-Flash так же в строю, и называются теперь Gemalto SafeNet eToken 7300. Внешний вид так же претерпел изменения:
Было | Стало |
Так что, если Вам кто-то скажет, что eToken больше не продаётся, не расстраивайтесь и не верьте, eToken есть, только он называется теперь по-другому.
Почему так произошло?
Во всём виноваты…. Да никто на самом деле не виноват. Просто таков бизнес.
После 2010 года израильская компания Aladdin Knowledge Systems была приобретена компанией SafeNet. Все продукты и решения, а также команда разработчиков из Aladdin Knowledge Systems перешли SafeNet и теперь там поддерживают и развивают решения по аутентификации. Естественно после приобретения был запущен процесс ребрендинга, который на российском рынке прошёл совсем незаметно.
Вот и получается, что ключи те же, а выглядят и называются по-другому.
Что нового?
После поглощения (или кому-то больше нравится слово слияние) и ребрендинга, компания SafeNet выпустила облачный продукт для аутентификации по одноразовым паролям, который пока является единственным решением, сертифицированным ФСТЭК. Данный продукт называется Gemalto SafeNet Authentication Service и доступен как в виде сервиса, так и в виде standalone сервера для развёртывания в корпоративной сети.
Теперь для OTP аутентификации доступны не только SafeNet eToken PASS, но и множество других аппаратных и программных генераторов:
Система управления жизненным циклом ключей и смарт-карт SafeNet Authentication Manager так же продолжает поддерживаться и развиваться компанией Gemalto (Safenet). В текущем году нас ожидает выпуск новой версии продукта Gemalto Safenet Authentication Manager 10.
Так же стоит упомянуть, что в конце 2015 года произошло слияние компаний Safenet и Gemalto. Так что в ближайшее время ключ eToken постигнет очередной ребрендинг, но сам ключ останется той же «рыбкой» eToken Pro.
Системы знаний Аладдина (ранее NASDAQ: ALDN и ТАЗА: ALDN) была компанией, которая производила программное обеспечение для управление цифровыми правами и Интернет-безопасность. Компания была приобретена Safenet Inc, в 2009 году. Штаб-квартира компании находится в Белкампе, штат Мэриленд.
Содержание
История
Компания Aladdin Knowledge Systems была основана в 1985 г. Яков (Янки) Маргалит, когда ему было 23 года; Вскоре к нему присоединился брат Дэни Маргалит, который взял на себя ответственность за разработку продукта в возрасте 18 лет, одновременно получив степень математики и информатики в Тель-авивский университет. В первые годы своего существования компания разработала две производственные линии: искусственный интеллект пакет (который был удален на раннем этапе) и аппаратный продукт для предотвращения несанкционированного копирования программного обеспечения, аналогичного управлению цифровыми правами. Янки привлек всего 10 000 долларов в качестве начального капитала для компании. [2]
В управление цифровыми правами продукт стал успешным и к 1993 году выручил 4 000 000 долларов от продаж. В том же году у этой компании был первичное публичное размещение акций на NASDAQ собрав 7 900 000 долларов. [3] В 2004 году акции компании также котировались на Тель-авивская фондовая биржа. [4] К 2007 году годовая выручка компании составила более 105 миллионов долларов.
В середине 2008 года Vector Capital пыталась купить Aladdin. Первоначально Vector предлагала 14,50 долларов за акцию, но основатель Aladdin Маргалит отклонил предложение, аргументируя это тем, что компания стоит дороже. Акционеры Aladdin договорились о слиянии в феврале 2009 года по цене 11,50 долларов за акцию наличными. В марте 2009 года Vector Capital приобрела Aladdin и официально объединила его с SafeNet. [5]
Корпоративный график
Товары
Аладдина HASP линейка продуктов управление цифровыми правами (DRM) пакет программного обеспечения для защиты и лицензирования, занимающий 40% мирового рынка и используемый более чем 30 000 издателей программного обеспечения. Он используется на многих платформах (Windows, Linux, Mac). [6]
HASP, что означает Оборудование против компьютерного пиратства, был первым продуктом компании и превратился в полный пакет управления цифровыми правами, который включает только программную опцию и приложение для управления бэк-офисом, в последние годы также программное обеспечение как сервис возможности.
Интернет-безопасность
В конце 1990-х компания начала диверсифицировать и предлагать Интернет-безопасность и сетевая безопасность продукты, предлагая две продуктовые линейки:
Управление цифровой идентификацией
eToken, портативное устройство для двухфакторная аутентификация, pasdigital управление идентификацией, в основном развернутый как USB токен.
Сетевая безопасность
eSafe линия интегрированных сетевая безопасность и фильтрация содержимого продукты, защищающие сети от взломанного и пиратского программного обеспечения из Интернета.
Системы знаний Аладдина (ранее NASDAQ: ALDN и ТАЗА: ALDN) была компанией, которая производила программное обеспечение для управление цифровыми правами и Интернет-безопасность. Компания была приобретена Safenet Inc, в 2009 году. Штаб-квартира компании находится в Белкампе, штат Мэриленд.
Содержание
История
Компания Aladdin Knowledge Systems была основана в 1985 г. Яков (Янки) Маргалит, когда ему было 23 года; Вскоре к нему присоединился брат Дэни Маргалит, который взял на себя ответственность за разработку продукта в возрасте 18 лет, одновременно получив степень математики и информатики в Тель-авивский университет. В первые годы своего существования компания разработала две производственные линии: искусственный интеллект пакет (который был удален на раннем этапе) и аппаратный продукт для предотвращения несанкционированного копирования программного обеспечения, аналогичного управлению цифровыми правами. Янки привлек всего 10 000 долларов в качестве начального капитала для компании. [2]
В управление цифровыми правами продукт стал успешным и к 1993 году выручил 4 000 000 долларов от продаж. В том же году у этой компании был первичное публичное размещение акций на NASDAQ собрав 7 900 000 долларов. [3] В 2004 году акции компании также котировались на Тель-авивская фондовая биржа. [4] К 2007 году годовая выручка компании составила более 105 миллионов долларов.
В середине 2008 года Vector Capital пыталась купить Aladdin. Первоначально Vector предлагала 14,50 долларов за акцию, но основатель Aladdin Маргалит отклонил предложение, аргументируя это тем, что компания стоит дороже. Акционеры Aladdin договорились о слиянии в феврале 2009 года по цене 11,50 долларов за акцию наличными. В марте 2009 года Vector Capital приобрела Aladdin и официально объединила его с SafeNet. [5]
Корпоративный график
Товары
Аладдина HASP линейка продуктов управление цифровыми правами (DRM) пакет программного обеспечения для защиты и лицензирования, занимающий 40% мирового рынка и используемый более чем 30 000 издателей программного обеспечения. Он используется на многих платформах (Windows, Linux, Mac). [6]
HASP, что означает Оборудование против компьютерного пиратства, был первым продуктом компании и превратился в полный пакет управления цифровыми правами, который включает только программную опцию и приложение для управления бэк-офисом, в последние годы также программное обеспечение как сервис возможности.
Интернет-безопасность
В конце 1990-х компания начала диверсифицировать и предлагать Интернет-безопасность и сетевая безопасность продукты, предлагая две продуктовые линейки:
Управление цифровой идентификацией
eToken, портативное устройство для двухфакторная аутентификация, pasdigital управление идентификацией, в основном развернутый как USB токен.
Сетевая безопасность
eSafe линия интегрированных сетевая безопасность и фильтрация содержимого продукты, защищающие сети от взломанного и пиратского программного обеспечения из Интернета.
SafeNet и Aladdin Knowledge Systems Ltd. теперь работают под общим управлением
Балтимор (США). 25 марта BUSINESS WIRE – Компания SafeNet, Inc. – глобальный лидер в области информационной безопасности – объявила сегодня о том, что она сформирует с Aladdin Knowledge Systems Ltd. общее руководство в результате покупки компании Aladdin инвестиционной фирмой Vector Capital, владеющей SafeNet. Это создаст глобального лидера в сфере решений для управления правами на программное обеспечение (Software Rights Management, SRM) и аутентификации. Предполагается, что компания Aladdin в будущем будет полностью интегрирована в SafeNet.
Объединение опыта этих двух ведущих компаний приведет к ускоренной разработке продуктов и выводу на рынок интегрированных решений с лучшими в своем классе техническими возможностями, которые необходимы для решения клиентами все более сложных вопросов обеспечения безопасности.
Ведущие в отрасли продукты компании Aladdin для аутентификации и фильтрования контента усилят портфель решений SafeNet для защиты корпоративных данных коммерческих и государственных клиентов. Решения для управления правами на программное обеспечение расширят портфель продуктов SafeNet для борьбы с пиратством, а также позволят SafeNet расширить линию своих решений по управлению предоставлением прав для нужд молодых софтверных компаний. Линия продуктов компании Aladdin перейдет под начало Пракаша Панджвани (Prakash Panjwani), старшего вице-президента и генерального менеджера SafeNet. Клиентская служба и функции поддержки компании Aladdin объединяться с глобальными структурами обслуживания и поддержки SafeNet под управлением Фила Саундерса (Phil Saunders), старшего вице-президента SafeNet по международному сбыту и обслуживанию клиентов.
Губернатор штата Мериленд Мартин О‘Mалли (Martin O‘Malley) так прокомментировал сделку и обширные связи между компаниями штата Мериленд и Израиля: «SafeNet является примером того, как компания из штата Мериленд может добиться глобального лидерства в важнейших сферах. Поскольку теперь она идет на рынок вместе с Aladdin, мы со всем основанием можем ожидать создания большего количества рабочих мест в штате. Я горжусь 17-летним крепким партнерством с центром разработок Maryland/Israel Development Center, который ежедневно ведет работу по налаживанию связей между компаниями штата Мериленд и Израиля ради наращивания объемов бизнеса, что повышает экономическую активность и создает рабочие места».
Примечание: SafeNet является зарегистрированным товарным знаком SafeNet, Inc. Все остальные товарные знаки являются собственностью соответствующих владельцев.
С оригиналом данного пресс-релиза можно ознакомиться по адресу: http://www.businesswire.com/news/home/20090324006235/en.
Donna St. Germain, 443-327-1454
Gregg Lampf, 443-327-1532
Оригинальный текст данного сообщения на языке источника является официальной, аутентичной версией. Перевод предоставляется исключительно для удобства и должен рассматриваться в привязке к тексту на языке источника, который является единственной версией, имеющей правовое значение.
***ПРЕСС-РЕЛИЗ Материал публикуется на коммерческих условиях.
Интерфакс не несет ответственности за содержание материала.
Товары и услуги подлежат обязательной сертификации
AntiHASP: эмулируем ключ аппаратной защиты HASP
Содержание статьи
В этой статье описаны способы обхода аппаратных систем защиты. В качестве примера рассмотрена технология HASP (Hardware Against Software Piracy), разработанная компанией Aladdin Knowledge Systems Ltd. В прошлом данная технология являлась одной из самых популярных аппаратных систем защиты ПО.
Мощью аппаратной защиты HASP пользуются многие серьезные разработчики софта, которые не хотят, чтобы их продукт несанкционированно распространялся. Хаспом, например, защищаются пакеты «1С.Бухгалтерия» или «1С.Предприятие», без которых не может прожить ни одно более или менее организованное дело. Популярный юридический справочник «КонсультантПлюс» также защищает доступ к данным с помощью электронных ключиков. Чтобы воспользоваться вышеупомянутым или другим не менее дорогостоящим софтом, не платя никому ни копейки, недостаточно просто полазить по Сети в поисках txt’шника с ключиками. Однако хакер всегда разберется, что делать с защитой, пусть и аппаратной. И паяльник ему для этого не понадобится.
Взглянем
Утрируя, можно сказать, что HASP состоит из двух частей: аппаратной и программной. Аппаратная часть — это электронный ключик в виде USB-брелка, PCMCIA-карты, LTP-девайса или вообще внутренней PCI-карты. Установленный софт будет работать только на той машине, в которую воткнут электронный ключ. Собственно, неплохо было бы отучить софт от такой неприятной для кошелька привычки.
Программная часть — это драйвера электронного ключа и различный софт, привязывающий электронные ключи с их драйверами непосредственно к защищаемому продукту или к каким-то зашифрованным данным. В статье мы рассмотрим и обойдем защиту, использующую USB-брелок — наверное, наиболее популярный электронный ключ на сегодня.
Механизм системы защиты
Сам брелок нас почти не интересует, в отличие от ПО в его комплекте. Для нас наибольший интерес представляет модуль hardlock.sys. Не углубляясь в подробности, отмечу, что этот драйвер отвечает за взаимодействие с аппаратным ключом. Он имеет два объекта устройства, один из которых обладает символьным именем DeviceFNT0. Используя этот объект, защищенное приложение посредством диспетчера ввода-вывода проверяет лицензию на использование данного ПО.
Главным недостатком такой системы защиты является возможность перехвата вызовов диспетчера ввода-вывода и эмулирования аппаратного ключа. Существует также вариант разработки драйвера виртуального ключа, но это гораздо более сложная техническая задача, нежели перехват вызовов.
Как тебе известно, модель драйвера описывается в структуре DRIVER_OBJECT при загрузке модуля. Она хранит массив обработчиков сообщений. Причем никто не мешает переписать эти адреса и получить управление, выполнив наш код. Таким образом, можно перехватывать и подменять IRP-пакеты, подставляя лицензионные данные. Другими словами, имея дамп ключа защиты, можно передать его программе, проверяющей верность лицензионных данных!
Для эксплуатации другого метода также требуется дамп ключа, но подстановка данных осуществляется иначе, а именно — в программной эмуляции. То есть драйвер защиты сможет обращаться с виртуальным ключом так же, как и с физическим.
Перехват и эмуляция
Как уже отмечалось, идея перехвата состоит в перезаписи обработчиков IRP-пакетов. Для этого необходимо иметь возможность изменять поля структуры DRIVER_OBJECT. К счастью, существует функция IoGetDevicePointer, которая возвращает указатель на объект вершины стека именованных устройств и указатель на соответствующий файловый объект. Вот фрагмент кода функции, устанавливающей ловушку:
NTSTATUS HookDevice(LPWSTR lpDevice)
UNICODE_STRING DeviceName;
PDEVICE_OBJECT DeviceObject;
PFILE_OBJECT FileObject;
Получив указатель на структуру DEVICE_OBJECT, имеем указатель на DRIVER_OBJECT. Теперь заменим адреса обработчиков и функций выгрузки драйвера на свои:
NTSTATUS HookDevice(LPWSTR lpDevice)
gDriverObject = DeviceObject-> DriverObject;
gDeviceControl = gDriverObject-> MajorFunction[IRP_MJ_DEVICE_CONTROL];
gDriverObject-> MajorFunction[IRP_MJ_DEVICE_CONTROL] = HookDispatch;
gInternalDeviceControl = gDriverObject-> MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL];
gDriverObject-> MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = HookDispatch;
gDriverUnload = gDriverObject->DriverUnload;
gDriverObject->DriverUnload = HookUnload;
В последней строчке вызывается функция ObfDereferenceObject, которая уменьшает количество ссылок на файловый объект. Это необходимо делать для корректной выгрузки драйвера, чтобы не было утечки ресурсов и аналогичных ошибок.
Так как указатель на объект драйвера защиты сохранeн, то чтобы снять ловушку, нужно просто восстановить прежние обработчики IRP-пакетов:
gDriverObject-> MajorFunction[IRP_MJ_DEVICE_CONTROL] = gDeviceControl;
gDriverObject-> MajorFunction[IRP_MJ_INTERNAL_DEVICE_CONTROL] = gInternalDeviceControl;
gDriverObject->DriverUnload = gDriverUnload;
Конечно, надо добавить соответствующие проверки на валидность указателей и прочее.
Теперь необходимо реализовать правильную выгрузку драйверов. Так как система защиты по каким-либо причинам может закончить свою работу раньше нашего драйвера, то чтобы избежать краха системы из-за неверных указателей, обработаем это событие в функции HookUnload:
void HookUnload(PDRIVER_OBJECT DrvObj)
Здесь происходит восстановление полей структуры DRIVER_OBJECT, и передаeтся управление на оригинальный код выгрузки драйвера перехваченного устройства.
Аналогично поступаем, если наш драйвер завершает работу раньше системы защиты. Только нужно высвободить захваченные ресурсы и не вызывать сохранeнный gHookUnload.
Принцип работы эмулятора
Перехватчик
Зная основные принципы простейшего перехвата IRP-пакетов, приступим к реализации пока только самого перехватчика для дальнейшего анализа. Для этого создадим объект драйвера, который содержит символьное имя (например DosDevicesHook) и точки входа CREATE, CLOSE, READ.
DriverObject->MajorFunction[IRP_MJ_CREATE] = DriverDispatch;
DriverObject->MajorFunction[IRP_MJ_CLOSE] = DriverDispatch;
DriverObject->MajorFunction[IRP_MJ_READ] = DriverDispatch;
DriverObject->DriverUnload = DriverUnload;
Это нужно для того, чтобы работать с нашим перехватчиком как с файлом, используя функции CreateFileReadFileCloseHandle. При такой реализации обмена данными между приложением и перехватчиком невозможно сразу же отправить их пользовательской программе, поэтому необходимо создать некоторую структуру для хранения необходимых данных о пойманном пакете. Например односвязный список, как это реализовано мной. Теперь следует определиться, какую информацию нужно буферизировать. Это общая информация о пакете (тип, флаги, прочее) и, конечно, буферы. Также можно добавить время перехвата. При копировании содержимого буферов нужно помнить об их типе, иначе — крах. Забегая вперед, отмечу, что драйвер защиты использует буферизированный ввод-вывод, это немного упрощает код.
if (idlTail->IrpData.InputLength)
<
idlTail->InputBuffer = ExAllocatePool(NonPagedPool, idlTail->IrpData.InputLength);
RtlCopyMemory(idlTail->InputBuffer, Irp->AssociatedIrp.SystemBuffer, idlTail->IrpData.InputLength);
>
if (IoSL->MajorFunction == IRP_MJ_DEVICE_CONTROL)
Status = pHookedDriverDispatch[IRP_MJ_DEVICE_CONTROL]( DeviceObject, Irp);
if (idlTail->IrpData.OutputLength)
<
idlTail->OutputBuffer = ExAllocatePool(NonPagedPool, idlTail-> IrpData.OutputLength);
RtlCopyMemory(idlTail->OutputBuffer, lpBuffer, idlTail->IrpData.OutputLength);
>
Осталось реализовать чтение из драйвера. Так как пакет содержит буферы, чье содержимое представляет интерес, то размер сообщений заранее не известен. Поэтому поступим следующим образом: при первом чтении получаем общую информацию о пакете и размере буферов; при повторном читаем содержимое, удаляем звено из списка пакетов и не забываем про спиновые блокировки для последовательной работы с данными:
idlTemp = idlHead->ldlNext;
ExFreePool(idlHead);
idlHead = idlTemp;
if (!idlTemp)
idlTail = NULL;
>
Когда перехватчик готов, запускаем сначала его, а затем — защищенное приложение с ключами и без. Из полученных логов становится видно, какие управляющие коды посылаются и их результаты. Также можно видеть, что запросы и ответы на два различных кода (9c402450, 9c4024a0) не изменяются. Казалось бы, можно построить табличный эмулятор, но после серии запусков убеждаемся, что это невозможно, так как содержимое буферов различно, и неизвестно, как оно образуется.
Перехваченные пакеты без ключа
Перехваченные пакеты с ключом
Затем возможны несколько вариантов дальнейших действий:
Оба варианта дают необходимую информацию. Итак, оказывается, содержимое пакетов шифруется публичным симметричным алгоритмом AES (Advanced Encryption Standard). Логичной целью является получение ключа шифрования.
Но если еще больше углубиться в изучение устройства системы защиты, то окажется, что аппаратный ключ имеет уникальный номер и содержит всю необходимую информацию, но для доступа к нему требуются программные ключи.
Пример дампа ключа
Поэтому первое, что нужно сделать, это получить ключ. Поставленную задачу может решить обычный брутфорс:
unsigned short Key;
unsigned char RefKey[8], VerKey[8];
for (Key = 0; Key WORD HL_LOGIN(WORD ModAd, Word Access, Byte *RefKey, Byt *VerKey);
WORD HL_LOGOUT(void);
Первая функция служит для открытия сессии работы с ключом защиты посредством драйвера, вторая – завершает сессию. Это прототипы старых версий HASP SDK, но работают они и с новыми типами ключей, так как разработчики обеспечили обратную совместимость.
Новый API мало отличается от старого, и это никак не сказывается на принципе работы брутфорса. Подробную документацию Hasp API, готовые реализации брутфорса и дампера ключей можно найти на диске.
Обработчик
Теперь есть все необходимое для корректной работы модуля. Осталось реализовать подстановку лицензионной информации. Причем можно перехватывать лишь некоторые IRP-пакеты. Здесь все уже зависит от конкретной версии ключа и защищаемой программы.
Дамп ключа лучше не встраивать в драйвер, а загружать динамически из реестра. Лучше основываться на уже готовом перехватчике запросов, так будет проще отладить драйвер, отправляя перехваченные/подставленные пакеты на анализ пользовательскому приложению. Принципиально логика перехватчика будет иметь такой вид:
Пакет запроса к драйверу находится в криптованном виде, поэтому для доступа к его содержимому требуется расшифровать, а затем зашифровать. Возникает вопрос: каким алгоритмом и каким ключом выполнено шифрование? Покопавшись в исходниках от создателей системы, можно получить следующий первичный алгоритм шифрования пакета:
void Encrypt(BYTE * Buffer)
<
WORD Seed = ((WORD)Buffer + 0x5e);
WORD Ver = ((WORD)Buffer + 0xba);
if (Ver)
<
for (int i = 0; i > 15) | (Seed > 15) | (Seed void Decrypt(BYTE* Buffer)
<
WORD Seed = ((WORD)Buffer + 0x5e);
WORD Ver = ((WORD)Buffer + 0xba);
Затем следует ещe один этап преобразования данных, более сложный и уже полностью зависящий от структуры запроса. Тут не обойтись без дизассемблера, придется покопаться в бине и позаимствовать немного кода у создателей. Это непросто, так как код драйвера защиты сильно обфусцирован, но он не отличается разнообразием уловок. Достаточно будет декомпилировать драйвер не полностью, а только лишь некоторые кусочки кода.
В заключение отмечу, что построение табличного эмулятора, основанного на перехвате DeviceIoControl, — достаточно трудная задача. Но такой принцип эмулятора можно использовать и на другом уровне взаимодействия: создать виртуальную USB-шину.
Заключение
Это не единственный способ избавиться от системы защиты. Существуют и другие, более совершенные методы. Изложенные в статье принципы можно использовать и для анализа работы драйверов, перехватывая IRP-пакеты. Таким образом можно добавить неплохой инструмент в свой сделанный на коленке набор. Удачи!
- Aladdin ifd handler что это
- Aladdin monitor что это