Помощь в написании студенческих работ
Антистрессовый сервис

Программные интерфейсы. 
Обзор и анализ бухгалтерских технологий

РефератПомощь в написанииУзнать стоимостьмоей работы

Для большинства семейств аппаратных ключей разработаны автоматические инструменты (входящие в SDK), позволяющие защитить программу «за несколько кликов мыши». При этом файл приложения «оборачивается» в собственный код разработчика. Реализуемая этим кодом функциональность варьируется в зависимости от производителя, но чаще всего код осуществляет проверку наличия ключа, контроль лицензионной… Читать ещё >

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

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

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

Интерфейс прикладного программирования англ. Application Programming Interface, API — набор готовых констант, структур и функций, используемых при программировании пользовательских приложений и обеспечивающих правильное взаимодействие между пользовательским приложением и операционной системой.

Программные компоненты, необходимые для функционирования приложения:

  • а) операционная система — Windows98 и выше;
  • б) «1С: Предприятие 8.2»;
  • в) аппаратный ключ HASP.

HASP — мультиплатформенная аппаратно-программная система защиты программ и данных от нелегального использования и несанкционированного распространения разработанная компанией Aladdin Knowledge Systems Ltd. По утверждению www.softkey.info на 2005 год являлся одним из самых широкоприменяемых аппаратных средств для защиты ПО.

Защита HASP включает в себя:

  • а) электронный ключ HASP;
  • б) специальное программное обеспечение для «привязки» к электронному ключу, защиты приложений и для кодирования данных;
  • в) схемы и методы защиты программ и данных, обнаружения и борьбы с отладчиками, контроля целостности программного кода и данных.

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

Электронные ключи HASP выпускаются в различных исполнениях:

  • а) USB-брелок;
  • б) LPT-ключ с возможностью «прозрачного» подключения других ключей и устройств;
  • в) PCMCIA-карта;
  • г) внутренняя плата стандарта PCI и ISA.

Существуют средства обхода аппаратной защиты — битхак (например Sable) или программное эмулирование как самого ключа, так и, например, USB-шины с виртуальным ключом, их используют не только нелегальные пользователи, но и легальные — в ситуации, когда использование аппаратной защиты невозможно или нежелательно. В любом случае использование методов обхода защиты нелегально с точки зрения лицензионных соглашений и карается уголовной отвественностью в соответствии с местным законодательством.

Электронный ключ (также аппаратный ключ, иногда донгл от англ. dongle) — аппаратное средство, предназначенное для защиты программного обеспечения (ПО) и данных от копирования, нелегального использования и несанкционированного распространения.

Электронный ключ — небольшое по размерам аппаратное устройство.

Основой данной технологии является специализированная микросхема ASIC, либо специализированный защищённый микроконтроллер, имеющие уникальные для каждого ключа алгоритмы работы. Донглы также имеют защищённую энергонезависимую память небольшого объёма, более сложные устройства могут иметь встроенный криптопроцессор (для аппаратной реализации шифрующих алгоритмов), часы реального времени. Аппаратные ключи могут иметь различные форм-факторы, но чаще всего они подключаются к компьютеру через USB-, LPTили PCMCIA-интерфейсы.

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

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

Многие компании, работающие в области защиты информации, предлагают свой взгляд на то, каким должен быть электронный ключ. На российском рынке наиболее известны следующие линейки продуктов (в алфавитном порядке): Guardant от компании «Актив», HASP от Aladdin, LOCK от Astroma Ltd., Rockey от Feitian, SenseLock от Seculab, Sentinel от SafeNet и др.

Технология защиты от несанкционированного использования ПО построена на реализации запросов из исполняемого файла или динамической библиотеки к ключу с последующим получением ответа (и, если предусмотрено, анализом этого ответа). Вот некоторые характерные запросы:

  • а) проверка наличия подключения ключа;
  • б) считывание с ключа необходимых программе данных в качестве параметра запуска;
  • в) запрос на расшифрование данных или исполняемого кода, необходимых для работы программы (предварительно разработчик защиты шифрует часть кода программы и, понятно, непосредственное выполнение такого зашифрованного кода приводит к ошибке);
  • г) проверка целостности исполняемого кода путём сравнения его текущей контрольной суммы с оригинальной контрольной суммой, считываемой с ключа;
  • д) запрос к встроенным в ключ часам реального времени (при их наличии) и т. д.

Стоит отметить, что некоторые современные ключи (ключи Senselock от Seculab, Rockey6 Smart от Feitian) позволяют разработчику хранить отдельные части кода приложения (например, недетерминированные специфические алгоритмы разработчика, получающие на вход большое число параметров) и исполнять их в самом ключе на его собственном микропроцессоре. Помимо защиты ПО от нелегального использования такой подход позволяет защитить используемый в программе алгоритм от изучения и клонирования конкурентами.

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

Алгоритм шифрования может быть секретным или публичным. Секретные алгоритмы разрабатываются самим производителем средств защиты, в том числе и индивидуально для каждого заказчика. Главным недостатком использования таких алгоритмов является невозможность оценки криптографической стойкости. С уверенностью сказать, насколько надёжен алгоритм, можно было лишь постфактум: взломали или нет. Публичный алгоритм, или «открытый исходник», обладает криптостойкостью несравнимо большей. Такие алгоритмы проверяются не случайными людьми, а рядом экспертов, специализирующихся на анализе криптографии. Примерами таких алгоритмов могут служить широко используемые ГОСТ 28 147–89, AES, RSA, Elgamal и др.

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

Для большинства семейств аппаратных ключей разработаны автоматические инструменты (входящие в SDK), позволяющие защитить программу «за несколько кликов мыши». При этом файл приложения «оборачивается» в собственный код разработчика. Реализуемая этим кодом функциональность варьируется в зависимости от производителя, но чаще всего код осуществляет проверку наличия ключа, контроль лицензионной политики (заданной поставщиком ПО), внедряет механизм защиты исполняемого файла от отладки и декомпиляции (например, сжатие исполняемого файла) и др.

Важно то, что для использования автоматического инструмента защиты не требуется доступ к исходному коду приложения. Помимо использования автоматической защиты, разработчику ПО предоставляется возможность самостоятельно разработать защиту, интегрируя систему защиты в приложения на уровне исходного кода. Для этого в SDK включены библиотеки для различных языков программирования, содержащие описание функциональности API для данного ключа. API представляет собой набор функций, предназначенных для обмена данными между приложением, системным драйвером (и сервером в случае сетевых ключей) и самим ключом. Функции API обеспечивают выполнение различных операций с ключом: поиска, чтения и записи памяти, шифрования и расшифрования данных при помощи аппаратных алгоритмов, лицензирования сетевого ПО и т. д.

Умелое применение данного метода обеспечивает достаточно высокий уровень защищённости приложений. Нейтрализовать защиту, встроенную в приложение, достаточно трудно вследствие её «размытости» в теле программы.

Показать весь текст
Заполнить форму текущей работой