16.05.2017

Скопировать Usb Ключ

Anti. HASP: эмулируем ключ аппаратной защиты HASPВ этой статье описаны способы обхода аппаратных систем защиты. В качестве примера рассмотрена технология HASP (Hardware Against Software Piracy), разработанная компанией Aladdin Knowledge Systems Ltd. В прошлом данная технология являлась одной из самых популярных аппаратных систем защиты ПО. Мощью аппаратной защиты HASP пользуются многие серьезные разработчики софта, которые не хотят, чтобы их продукт несанкционированно распространялся.

Скопировать Usb Ключ

Копирование ЭЦП с Рутокена или другого носителя на USB флешку может. USB флешка на которую будем копировать ключ; Программа КриптоПРО . Есть флэшка, идёт как ключ к программе. Снимаешь посекторный образ программой USB Image Tool, . Создание USB ключа для блокировки компьютера стандартными средствами Windows. Ссылка на этот ролик: .

Хаспом, например, защищаются пакеты «1. С. Бухгалтерия» или «1. С. Предприятие», без которых не может прожить ни одно более или менее организованное дело.

Совет 3: Как скопировать usb ключ. Многие платные программы выпускаются с ключами доступа. При покупке программы у производителя или его .

Популярный юридический справочник «Консультант. Плюс» также защищает доступ к данным с помощью электронных ключиков. Чтобы воспользоваться вышеупомянутым или другим не менее дорогостоящим софтом, не платя никому ни копейки, недостаточно просто полазить по Сети в поисках txt’шника с ключиками. Однако хакер всегда разберется, что делать с защитой, пусть и аппаратной. И паяльник ему для этого не понадобится. Взглянем. Утрируя, можно сказать, что HASP состоит из двух частей: аппаратной и программной.

Аппаратная часть — это электронный ключик в виде USB- брелка, PCMCIA- карты, LTP- девайса или вообще внутренней PCI- карты. Установленный софт будет работать только на той машине, в которую воткнут электронный ключ. Собственно, неплохо было бы отучить софт от такой неприятной для кошелька привычки. Программная часть — это драйвера электронного ключа и различный софт, привязывающий электронные ключи с их драйверами непосредственно к защищаемому продукту или к каким- то зашифрованным данным. В статье мы рассмотрим и обойдем защиту, использующую USB- брелок — наверное, наиболее популярный электронный ключ на сегодня. Механизм системы защиты.

Сам брелок нас почти не интересует, в отличие от ПО в его комплекте. Для нас наибольший интерес представляет модуль hardlock. Не углубляясь в подробности, отмечу, что этот драйвер отвечает за взаимодействие с аппаратным ключом. Он имеет два объекта устройства, один из которых обладает символьным именем Device.

FNT0. Используя этот объект, защищенное приложение посредством диспетчера ввода- вывода проверяет лицензию на использование данного ПО. Главным недостатком такой системы защиты является возможность перехвата вызовов диспетчера ввода- вывода и эмулирования аппаратного ключа. Существует также вариант разработки драйвера виртуального ключа, но это гораздо более сложная техническая задача, нежели перехват вызовов. Как тебе известно, модель драйвера описывается в структуре DRIVER. Она хранит массив обработчиков сообщений. Программа Записи Голоса. Причем никто не мешает переписать эти адреса и получить управление, выполнив наш код.

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

Скопировать Usb Ключ

Папку с закрытым ключом (и, если есть, файл сертификата — открытый ключ) поместите в корень дискеты / flash-накопителя (если поместить не в .

Перехват и эмуляция. Как уже отмечалось, идея перехвата состоит в перезаписи обработчиков IRP- пакетов. Для этого необходимо иметь возможность изменять поля структуры DRIVER. К счастью, существует функция Io. Get. Device. Pointer, которая возвращает указатель на объект вершины стека именованных устройств и указатель на соответствующий файловый объект. Вот фрагмент кода функции, устанавливающей ловушку: NTSTATUS Hook. Device(LPWSTR lp.

Device)UNICODE. Теперь заменим адреса обработчиков и функций выгрузки драйвера на свои: NTSTATUS Hook. Device(LPWSTR lp. Device)g. Driver.

Object = Device. Object- > Driver. Object; g. Device.

Control = g. Driver. Object- > Major. Function. Это необходимо делать для корректной выгрузки драйвера, чтобы не было утечки ресурсов и аналогичных ошибок. Так как указатель на объект драйвера защиты сохранeн, то чтобы снять ловушку, нужно просто восстановить прежние обработчики IRP- пакетов: void Unhook. Device(void)g. Driver. Object- > Major.

Function. Так как система защиты по каким- либо причинам может закончить свою работу раньше нашего драйвера, то чтобы избежать краха системы из- за неверных указателей, обработаем это событие в функции Hook. Unload: void Hook. Unload(PDRIVER. Только нужно высвободить захваченные ресурсы и не вызывать сохранeнный g. Hook. Unload. Принцип работы эмулятора. Перехватчик. Зная основные принципы простейшего перехвата IRP- пакетов, приступим к реализации пока только самого перехватчика для дальнейшего анализа. Для этого создадим объект драйвера, который содержит символьное имя (например Dos.

Devices. Hook) и точки входа CREATE, CLOSE, READ. Io. Create. Device(Driver.

Object, 0, & us. Device. Name, FILE.

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

Код Hook. Dispatchif (idl. Tail- > Irp. Data. Input. Length). Так как пакет содержит буферы, чье содержимое представляет интерес, то размер сообщений заранее не известен. Поэтому поступим следующим образом: при первом чтении получаем общую информацию о пакете и размере буферов; при повторном читаем содержимое, удаляем звено из списка пакетов и не забываем про спиновые блокировки для последовательной работы с данными: Код Driver.

Dispatch. Length = Io. SL- > Parameters. Read. Length; if (Length == sizeof(IRP. Из полученных логов становится видно, какие управляющие коды посылаются и их результаты. Также можно видеть, что запросы и ответы на два различных кода (9c. Казалось бы, можно построить табличный эмулятор, но после серии запусков убеждаемся, что это невозможно, так как содержимое буферов различно, и неизвестно, как оно образуется.

Перехваченные пакеты без ключа. Перехваченные пакеты с ключом. Mp3 Плеер Драйвер Transcend Mp 330 подробнее. Затем возможны несколько вариантов дальнейших действий: изучать дебри драйвера защиты; воспользоваться информацией самих разработчиков системы.

Оба варианта дают необходимую информацию. Итак, оказывается, содержимое пакетов шифруется публичным симметричным алгоритмом AES (Advanced Encryption Standard). Логичной целью является получение ключа шифрования. Но если еще больше углубиться в изучение устройства системы защиты, то окажется, что аппаратный ключ имеет уникальный номер и содержит всю необходимую информацию, но для доступа к нему требуются программные ключи. Пример дампа ключа. Поэтому первое, что нужно сделать, это получить ключ.

Поставленную задачу может решить обычный брутфорс: unsigned short Key; unsigned char Ref. Key. Для этого есть функции, определенные разработчиками. Функции HL. Это прототипы старых версий HASP SDK, но работают они и с новыми типами ключей, так как разработчики обеспечили обратную совместимость. Новый API мало отличается от старого, и это никак не сказывается на принципе работы брутфорса. Подробную документацию Hasp API, готовые реализации брутфорса и дампера ключей можно найти на диске. Обработчик. Теперь есть все необходимое для корректной работы модуля.

Осталось реализовать подстановку лицензионной информации. Причем можно перехватывать лишь некоторые IRP- пакеты. Здесь все уже зависит от конкретной версии ключа и защищаемой программы.

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

Извлечение ключа из токена с неизвлекаемым ключом / Хабрахабр. Довольно часто при оформлении сертификатов ключей электронной подписи можно наблюдать навязчивый пиар токенов с неизвлекаемым ключом.

Продавцы из удостоверяющих центров уверяют, что, купив у них СКЗИ Крипто. ПРО CSP и токен с неизвлекаемым ключом (Рутокен ЭЦП или Ja. Carta ГОСТ), мы получим сертифицированные СКЗИ, обеспечивающие 1. Но так ли это на самом деле?

Для ответа на этот вопрос проведем простой эксперимент. Версия: v. 4. 1. 0. WHQL- certified. Единый Клиент Ja.

Carta и Ja. Carta Secur. Logon. Версия 2. 9. Крипто. АРМ Стандарт Плюс 5. Версия 5. 2. 0. 8.

Версия 1. 9. 0. 2. Ja. Carta ГОСТ. Номер модели JC0.

F0. 9 v. 2. 1. Методика тестирования. Смоделируем типовой процесс подготовки Администратором информационной безопасности ключевых документов для организации ЭДО: генерируется контейнер закрытого ключа и запрос на сертификат открытого ключа; после прохождения в удостоверяющем центре процедуры сертификации из запроса получается сертификат; сертификат в совокупности с контейнером закрытого ключа образует готовую для использования ключевую информацию. Данную ключевую информацию, записанную на носителе, будем называть исходным ключевым документом; с исходного ключевого документа изготавливаются копии, которые записываются на отчуждаемые носители (далее будем называть их рабочими ключевыми документами) и передаются уполномоченным пользователям; после изготовления необходимого количества рабочих ключевых документовисходный ключевой документ уничтожается или депонируется на хранение в орган криптографической защиты информации. Затем скопируем ключевую информацию на Рутокен ЭЦП и Ja.

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

Скопируем ключевую информацию из рабочих ключевых документов. Как мы видим, ключевая информация успешно скопирована или, другим языком, извлечена из токенов с неизвлекаемым ключом.

Получается, что производители токенов и СКЗИ врут? На самом деле нет, и ситуация сложнее, чем кажется на первый взгляд.

Исследуем матчасть по токенам. Матчасть. То, что на рынке принято называть токеном с неизвлекаемым ключом, правильно называется функциональным ключевым носителем (ФКН) (доп. В то время как при использовании обычных токенов закрытый ключ копируется с токена в память комптьютера. Использование ФКН требует особой организации взаимодействия между прикладным криптографическим ПО и библиотекой СКЗИ (криптопровайдером или, по- другому, CSP). Здесь важно увидеть, что программная часть библиотеки СКЗИ должна знать о существовании на токене апплета, реализующего криптографический функционал (например, генерация ключа, подпись данных и т. По- новому взглянем на наш тестовый стенд. В качестве одного из ключевых носителей использовался Рутокен ЭЦП.

Через «Панель управления Рутокен» о нем можно получить следующую информацию: В последней строке указана фраза «Поддержка Крипто. ПРО ФКН: Нет», а это значит, что на токене нет апплета, с которым умеет работать СКЗИ Крипто.

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

Carta ГОСТ. ОС Windows 7 обнаружит токен Ja. Carta ГОСТ как «Устройство чтения смарт- карт Microsoft Usbccid (WUDF)». Весь функционал СКЗИ успешно отработает. Как сделать, чтобы все было хорошо?

Купить специальную версию библиотеки СКЗИ: — для Рутокен ЭЦП — СКЗИ Крипто. ПРО Рутокен CSP. Одновременно с библиотекой СКЗИ необходимо приобрести специально подготовленные токены, содержащие в себе программные части (апплеты), с которыми умеет работать Крипто. ПРО Рутокен CSP или Крипто. Про ФКН CSP соответственно. Получается, что Рутокен ЭЦП и Ja. Carta ГОСТ не являются токенами с неизвлекаемым ключом?

Данные устройства могут реализовывать функционал ФКН (но, возможно, в меньшем объеме, чем при использовании их совместно с СКЗИ Крипто. ПРО), но для этого нужен софт, который умеет работать с апплетами размещенными на токенах.

Таким софтом может быть Крипто. АРМ Стандарт 5 Плюс. Он это умеет. При генерации ключевой пары в мастере Крипто.

АРМ можно выбрать криптопровайдер, который будет использоваться, например, Rutoken ECP или e. Token GOST. Это и позволит использовать токен как ФКН. Выводы. Не верьте продавцам, чушь вам городящим. Использование обычных версий криптопровайдера Крипто. ПРО CSP и обычных Рутокен ЭЦП или Ja. Carta ГОСт не позволяют реализовать технологию ФКН. Для использования технологии ФКН совместно с продуктами ООО «КРИПТО- ПРО» необходимы как специально подготовленные токены, содержащие апплет, с которым умеет работать СКЗИ, так и специальные версии криптопровайдера Крипто.

ПРО CSP, которые умеют работать с апплетом на токенах. Рутокен ЭЦП и Ja.

Carta ГОСТ умеет самостоятельно реализовывать технологию ФКН, но для этого необходим специальный софт.