Uploaded by ZW XU

Аппаратные ключи защита

advertisement
Аппаратные ключи защита
Аппаратные ключи защита хранят информацию для проверки
подлинности на отдельном оборудовании и используются вместо
паролей или обеспечивают механизм двухфакторной проверки
подлинности.
После того, как пользователь введет пароль, необходимо снова
подтвердить ключ подключения для нормального входа в систему.
Этот механизм обеспечивает дополнительный уровень защиты
учетных записей.
Аппаратные ключи защита подключаются к вашему устройству
через USB-A, USB-C, Lightning, NFC и Bluetooth, и они достаточно
портативны, чтобы их можно было носить на цепочке для ключей. Как
правило, они основаны на протоколе FIDO, и веб-сайты могут
использовать API WebAuthn для доступа к ключам. FIDO и WebAuthn
являются открытыми стандартами.
Двухфакторной проверки подлинности
для
ключей
безопасности очень похожа на одноразовый код, который вы
получаете в текстовом или электронном письме при входе на
определенные веб-сайты, или на отпечаток пальца или
биометрическое сканирование лица, используемое для разблокировки
вашего ноутбука или смартфона. Однако вместо того, чтобы
отправлять себе код или сканировать часть тела, вам нужно
подключить устройство к компьютеру и нажать на него датчик, чтобы
он мог получить доступ к тому, что вы защищаете.
Основные средства и методы
Электронные ключи
Электронный ключ представляет собой специальное
устройство, которое содержит в себе лицензионные данные,
обеспечивающие возможность полноценного использования софта.
Без получения этих данных программа работать не будет или
будет работать с ограниченным функционалом.
Электронный ключ предназначается для подключения к
одному из интерфейсов компьютера, через который происходит
считывание требуемой информации.
Ключи бывают трех видов:
•
•
•
Специализированный электронный чип.
Микросхема перепрограммируемой памяти,
собственные источники электропитания.
Ключ на базе микропроцессора.
имеющая
Среди электронных ключей, которые обеспечивают
аппаратные методы защиты информации, используются устройства:
•
•
•
для чтения записи информации для разблокирования
программы;
с
криптографическими
алгоритмами
шифрования/дешифрования лицензионных данных;
на основе микропроцессора, способного обрабатывать
специальные алгоритмы разработчика софта, блокирующие
работу ПО.
К основным преимуществам электронных ключей относятся:
•
•
•
возможность использования на любом компьютере с
соответствующим интерфейсом;
с
помощью
этих
ключей
могут
выполняться
криптографические преобразования;
посредством ключей может выполняться произвольный код,
встроенный разработчиком софта.
Смарт карты
Эти аппаратные средства представляют собой специальные
электронные ключи, которые надежно защищают программные
продукты от пиратства и неправомерного использования.
Они выполнены в виде устройств, владеющих встроенным
чипом,
который
может
реализовывать
произвольный
информационный код и хранить любую информацию.
Для хранения этих данных и различных кодов смарт карта
владеет энергонезависимой памятью.
К основным преимуществам смарт карт относятся:
•
•
•
•
более высокая система защиты данных от неправомерного
использования;
возможность обработки информации с помощью встроенного
чипа и ее хранения в энергонезависимой памяти;
поддержка бесконтактной формы чтения/записи данных;
большой эксплуатационный период.
Защита ПО с помощью электронного ключа
Комплект разработчика ПО
Донгл относят к аппаратным методам защиты ПО, однако
современные электронные ключи часто определяются как
мультиплатформенные аппаратно-программные инструментальные
системы для защиты ПО. Дело в том, что помимо самого ключа
компании, выпускающие электронные ключи, предоставляют SDK
(Software Developer Kit — комплект разработчика ПО). В SDK входит
все необходимое для начала использования представляемой
технологии в собственных программных продуктах — средства
разработки, полная техническая документация, поддержка различных
операционных систем, детальные примеры, фрагменты кода,
инструменты для автоматической защиты. Также SDK может
включать в себя демонстрационные ключи для построения тестовых
проектов.
Технология защиты
Технология защиты от несанкционированного использования ПО
построена на реализации запросов из исполняемого файла или
динамической библиотеки к ключу с последующим получением и,
если предусмотрено, анализом ответа. Вот некоторые характерные
запросы:
• проверка наличия подключения ключа;
• считывание с ключа необходимых программе данных в качестве
параметра запуска (используется, в основном, только при
поиске подходящего ключа, но не для защиты);
• запрос на расшифрование данных или исполняемого кода,
необходимых для работы программы, зашифрованных при
защите программы (позволяет осуществлять «сравнение с
эталоном»; в случае шифрования кода, выполнение
нерасшифрованного кода приводит к ошибке);
• запрос на расшифрование данных, зашифрованных ранее самой
программой (позволяет отправлять каждый раз разные запросы
к ключу и, тем самым, защититься от эмуляции библиотек API
/ самого ключа)
• проверка целостности исполняемого кода путём сравнения его
текущей контрольной суммы с оригинальной контрольной
суммой, считываемой с ключа (к примеру, путём выполнения
ЭЦП кода или других переданных данных алгоритмом ключа и
проверки этой ЭЦП внутри приложения; так как ЭЦП всегда
разная — особенность криптографического алгоритма — то это
также помогает защититься от эмуляции API/ключа);
• запрос к встроенным в ключ часам реального времени (при их
наличии; может осуществляться автоматически при
ограничении времени работы аппаратных алгоритмов ключа по
его внутреннему таймеру);
Защита с помощью автоматических средств
Для большинства семейств аппаратных ключей разработаны
автоматические инструменты (входящие в SDK), позволяющие
защитить программу «за несколько кликов мыши». При этом файл
приложения «оборачивается» в собственный код разработчика.
Реализуемая этим кодом функциональность варьируется в
зависимости от производителя, но чаще всего код осуществляет
проверку наличия ключа, контроль лицензионной политики
(заданной поставщиком ПО), внедряет механизм защиты
исполняемого файла от отладки и декомпиляции (например, сжатие
исполняемого файла) и др.
Важно то, что для использования автоматического инструмента
защиты не требуется доступ к исходному коду приложения. Например,
при локализации зарубежных продуктов (когда отсутствует
возможность вмешательства в исходный код ПО) такой механизм
защиты незаменим, однако он не позволяет использовать весь
потенциал электронных ключей и реализовать гибкую и
индивидуальную защиту.
Реализация защиты с помощью функций API
Помимо использования автоматической защиты, разработчику
ПО предоставляется возможность самостоятельно разработать
защиту, интегрируя систему защиты в приложение на уровне
исходного кода. Для этого в SDK включены библиотеки для
различных языков программирования, содержащие описание
функциональности API для данного ключа. API представляет собой
набор функций, предназначенных для обмена данными между
приложением, системным драйвером (и сервером в случае сетевых
ключей) и самим ключом. Функции API обеспечивают выполнение
различных операций с ключом: поиска, чтения и записи памяти,
шифрования и расшифрования данных при помощи аппаратных
алгоритмов, лицензирования сетевого ПО и т. д.
Download