Меню

Электронный ключ - файл Электронный ключ.doc

Двери

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

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

Электронный ключ - это компактный прибор, который подсоединяется к параллельному или последовательному портам компьютера и не влияет на взаимодействие компьютера с внешними устройствами. Идея защиты с использованием электронного ключа состоит в применении в защищаемой программе специального алгоритма взаимодействия с ключом, который не позволяет исполнять программу без него. В этом случае каждый экземпляр программы поставляется вместе с электронным ключом. Критерии оценки качества электронного ключа: ключ должен представлять собой некоторый генератор функций, а не просто память для констант; ключ должен быть выполнен на базе заказной интегральной схемы, что исключает возможность его законного воспроизведения.

Электронные ключи могут использоваться для решения следующих задач:

  • защита программ от несанкционированного распространения;
  • защита данных от раскрытия содержащейся в них информации;
  • защита компьютеров от доступа к ним посторонних лиц

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

2. Защита данных от раскрытия содержащейся в них информации достигается путем шифрования. Существуют достаточно эффективные методы шифрования, например алгоритм DES. Однако надежность шифрования не может быть выше надежного хранения и передачи шифровального ключа. В этом случае шифровальный ключ не надо запоминать или записывать и, что очень важно, вводить в компьютер с клавиатуры. Хранящиеся в компьютере данные могут быть дешифрованы только при наличии ключа. Кроме того, для повышения надежности сама программа шифрования - дешифрования может быть защищена с помощью того же самого ключа.


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

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

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

Вопросы для самопроверки

  1. Что подразумевают по понятием «угроза» информации
  2. Характеристики случайных и преднамеренных угроз
  3. Каналы преднамеренного доступа к информации
  4. Источники нарушений информации
  5. Основные каналы утечки информации
  6. Классификация мер по защите информации и их характеристики
  7. В чем заключается стратегия и тактика защиты информации на этапе проектирования и эксплуатации систем
  8. Концепция аутентификации. Виды аутентификации
  9. Методы и средства защиты информации в каналах связи
  10. Назначение цифровой подписи и методы их построения
  11. Области применения цифровой подписи
  12. Назначение и классификация паролей. Достоинства и недостатки каждой из групп паролей
  13. Биометрические средства защиты. Их характеристики и области применения
  14. Достоинства и недостатки биометрических средств защиты
  15. Назначение электронных ключей. Сферы его применения.

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

Список значений может быть задан либо фиксированным набором зна­чений, которые вводятся пользователем при создании поля, либо спис­ком значений из ссылочной таблицы или запроса.

Индекс - средство Microsoft Access, ускоряющее поиск и сортировку в таблице. Ключевое поле таблицы индексируется автоматически. Не допускается создание индексов для полей типа MEMO и «Гипер­ссылка» или полей объектов OLE.

Уникальный индекс - индекс, определенный для свойства Индекси­рованное поле значением «Да (Совпадения не допускаются)». При этом ввод в индексированное поле повторяющихся значений становится невозможным. Для ключевых полей уникальный индекс создается автоматически.

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

Аппаратные решения:

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

Аппаратное шифрование

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

Достоинства аппаратного шифрования

Аппаратные шифраторы имеют ряд достоинств:

  • формируют надёжные ключи шифрования и ЭЦП - аппаратный датчик случайных чисел создаёт действительно случайные числа,
  • сохраняют целостность алгоритма - она гарантируется аппаратной реализацией,
  • шифруют и хранят ключей осуществляются в самой плате шифратора - это затрудняет доступ,
  • загружают ключей в шифрующее устройство с электронных ключей Touch Memory (i-Button) и смарт-карт напрямую, а не через системную шину компьютера и ОЗУ - это исключает возможность перехвата ключей,
  • позволяют реализовать системы разграничения доступа к компьютеру,
  • применяют специализированный процессор для выполнения всех вычислений - это разгружает центральный процессор компьютера,
  • предусматривают возможность использования парафазных шин - это исключает угрозу чтения ключевой информации по колебаниям электромагнитного излучения при создании шифрпроцессора.
  • могут использоваться необученным человеком - шифровальное устройство элементарно подключается к компьютеру или модему, в то время как незаметное внедрение функций шифрования в ОС - достаточно трудоёмкий процесс, осуществляемый профессионалами.

Аппаратные средства поддержки криптографических механизмов

Существуют различные устройства, поддерживающие криптографические механизмы.

Устройства аппаратного шифрования

Современный рынок предлагает 3 разновидности аппаратных средств шифрования информации потенциальным покупателям.

Блоки шифрования

Представляют собой встраиваемые в каналы связи оконечные устройства - шифрующие аппаратные средства.

Самодостаточные шифровальные модули

Самодостаточные шифровальные модули самостоятельно выполняют всю работу с ключами. Например, usb-устройство ruToken, ПСКЗИ ШИПКА.

Шифровальные платы расширения

Рисунок 1 - Структура реальной шифровальной платы расширения

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

Дополнительные возможности аппаратных шифраторов

Достаточно часто аппаратным шифраторам добавляют дополнительные функции, чтобы отчасти оправдать их высокую стоимость.
Например:

  • Генератор случайных чисел. Он необходим в основном для генерации криптографических ключей, но и не только - например, при вычислении подписи в соответствии с ГОСТ Р 34.10 - 2001 используется каждый раз новое случайное число.
Представляет собой контроль входа на компьютер. Каждый раз, когда пользователь включает персональный компьютер, устройство будет требовать от него ввода персональной информации - например, вставить токен. Загрузка системы продолжится только в случае, если устройство распознает предоставленные ключи и сочтёт их «своими».
  • Контроль целостности файлов операционной системы. Шифратор хранит в своей памяти перечень всех важных файлов с заранее посчитанными для каждого контрольными суммами (или хэш-значениями), и компьютер будет заблокирован, если при очередной загрузке не совпадёт контрольная сумма хотя бы одного из файлов .
  • Смарт-карты

    Смарт-карты - это пластиковые карты со встроенной микросхемой. Часто обладают возможностью проводить криптографические вычисления. В большинстве случаев смарт-карты содержат:

    • микропроцессор,
    • операционную систему, контролирующую устройство и доступ к объектам в его памяти.

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

    Виды смарт-карт

    Смарт-карты можно разделить по способу обмена со считывающим устройством на:

    • контактные смарт-карты с интерфейсом ISO 7816,
    • контактные смарт-карты с USB-интерфейсом,
    • бесконтактные (RFID) смарт-карты.

    Существуют карты, которые включают в себя как контактные, так и бесконтактные интерфейсы.

    Смарт-карты можно разделит по функциональности на: карты памяти (содержат некоторое количество данных и механизм разграничения доступа к ним), интеллектуальные карты (содержат микропроцессор и возможность управлять данными на карте).

    Контактные смарт-карты с интерфейсом ISO 7816

    Контактные смарт-карты имеют зону соприкосновения, содержащую несколько небольших контактных лепестков. Когда карта вставляется в считыватель, чип соприкасается с электрическими коннекторами, и считыватель может считать и/или записать информацию с чипа.
    Наиболее массовые контактные смарт-карты - это SIM-карты, некоторые банковские карточки.

    Контактные смарт-карты с USB-интерфейсом

    Обычно представляют собой микросхему обычной ISO 7816 карты, совмещенную с USB-считывателем в одном миниатюрном корпусе. Такой вид очень удобен для компьютерной аутентификации.

    Бесконтактные смарт-карты

    В бесконтактных смарт-картах общение со считывателем происходит с помощью технологии RFID - требуется подносить карточки достаточно близко к считывателю. Они часто применяются в областях, где необходимо провести операцию быстро - например, в общественном транспорте. Стандарт для бесконтактных смарт-карт - ISO/IEC 14443, реже ISO/IEC 15693. Как и контактные смарт-карты, бесконтактные не имеют батареек. В них встроена катушка индуктивности, чтобы запасти энергию для начального радиочастотного импульса, который затем выпрямляется и используется для работы карточки. Примеры широко используемых бесконтактных смарт-карт - это проездные в метрополитене и наземном транспорте, электронные («биометрические») паспорта, некоторые виды карт в системах контроля доступа (СКУД).

    Карты памяти

    Содержат некоторое количество данных и фиксированный механизм разграничения доступа к ним. Как правило, это карты для микроплатежей на транспорте, в парках отдыха, карты лояльности клиентов и др. В качестве механизма ограничения доступа могут выступать как очень простые (однократная запись, пароль, уникальный номер), так и посложнее (взаимная аутентификация с использованием стандартных симметричных криптоалгоритмов AES, DES). Это наиболее распространённый вид смарт-карт.

    Интеллектуальные карты

    Содержат микропроцессор и возможность загружать алгоритмы его работы. Возможные действия таких карт включают в себя комплексные действия при аутентификации, сложные протоколы обмена, регистрация фактов доступа и др. Помимо симметричной криптографии (AES, DES), знают асимметричную (RSA), алгоритмы инфраструктуры открытых ключей (PKI), имеют аппаратные генераторы случайных чисел, усиленную защиту от физической атаки. Как правило, функционируют под управлением операционной системы (например, JCOP или MULTOS) и снабжены соответствующим пакетом сертификатов. Примеры - электронные («биометрические») паспорта и визы, SIM-карты .

    Токены

    Токен (также аппаратный токен, USB-ключ, криптографический токен) - компактное устройство, предназначенное для обеспечения информационной безопасности пользователя, также используется для идентификации его владельца, безопасного удаленного доступа к информационным ресурсам и др. Как правило, это физическое устройство, используемое для упрощения аутентификации.
    Токены предназначены для электронного удостоверения личности, при этом они могут использоваться как вместо, так и вместе с паролем. Как правило, аппаратные токены небольшого размера и легко умещаются в кармане в виде брелка. Некоторые предназначены для хранения криптографических ключей, таких как электронная подпись или биометрические данные (например, детали дактилоскопического узора). В одни встроена защита от взлома, в другие - мини-клавиатура для ввода PIN-кода или же просто кнопка вызова процедуры генерации и дисплей для вывода сгенерированного ключа. Токены обладают разъёмом USB, функциями RFID или беспроводным интерфейсом Bluetooth для передачи сгенерированной последовательности ключей на клиентскую систему.

    Типы паролей

    Все токены содержат некоторые секретные сведения, которые используются для подтверждения личности. Есть несколько способов использования этой информации:

    • Токен со статическим паролем. Устройство содержит пароль, который физически скрыт (не виден обладателю), но который передается для каждой аутентификации. Этот тип уязвим для атак повторного воспроизведения.
    • Токен с синхронно динамическим паролем. Устройство генерирует новый уникальный пароль с определенным интервалом времени. Токен и сервер должны быть синхронизированы, чтобы пароль был успешно принят.
    • Токен с асинхронным паролем. Одноразовый пароль генерируется без использования часов, с помощью шифра Вернама или другого криптографического алгоритма.
    • Токен вызов-ответ. Используя криптографию с открытым ключом, можно доказать владение частным ключом, не раскрывая его. Сервер аутентификации шифрует вызов (обычно случайное число или по крайней мере, данные с некоторыми случайными частями) с помощью открытого ключа. Устройство доказывает, что обладает копией соответствующего частного ключа, путем предоставления расшифрованного вызова.
    • Одноразовые пароли, синхронизированные по времени. Синхронизированные по времени одноразовые пароли постоянно меняются в установленное время, например, раз в минуту. Для этого должна существовать синхронизация между токеном клиента и сервером аутентификации. Для устройств, не подключенных к сети, эта синхронизация сделана до того, как клиент приобрел токен. Другие типы токенов синхронизируются, когда токен вставляется в устройство ввода.
    • Одноразовые пароли на основе математического алгоритма. Другой тип одноразовых паролей использует сложный математический алгоритм, например, хэш-цепи, для создания серии одноразовых паролей из секретного ключа. Ни один из паролей нельзя отгадать, даже тогда, когда предыдущие пароли известны. Существует общедоступный, стандартизированный алгоритм OATH; другие алгоритмы покрыты американскими патентами. Каждый новый пароль должен быть уникальным, поэтому неавторизованный пользователь не сможет догадаться, что новый пароль может быть, на основе ранее использованных паролей.

    Типы токенов

    Токены без подключения

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

    Токены с подключением

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

    Токены с использованием технологии смарт-карт

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

    Беспроводные токены

    В отличии от токенов с подключением, беспроводные токены формируют логическую связь с компьютером клиента и не требуют физического подключения. Отсутствие необходимости физического контакта делает их более удобными, чем токены с подключением и токены без подключения. В результате данный тип токенов является популярным выбором для систем входа без ключа и электронных платежей, таких как Mobil Speedpass, которые используют RFID, для передачи информации об аутентификации от токена брелока. Тем не менее существуют различные проблемы безопасности, после исследований в Университете имени Джона Хопкинса, и Лаборатории RSA обнаружили, что RFID метки могут быть легко взломаны. Еще одной проблемой является то, что беспроводные токены имеют относительно короткий срок службы (3-5 лет), в то время как USB-токены могут работать до 10 лет.

    Bluetooth-токены

    Bluetooth-токены часто включают в себя USB-штекер, т.е. при отсутствии возможности bluetooth-подключения можно использовать USB-вход. Bluetooth-аутентификация работает на расстоянии около 10 метров .

    Генераторы псевдослучайных двоичных последовательностей

    Для решения проблемы генерирования непредсказуемых двоичных последовательностей большой длины с применением короткого случайного ключа широко используются соответствующие генераторы. Они используются в большинстве алгоритмов шифрования, в особенности потоковых.
    Генератор ключевой последовательности выдает поток битов, который выглядит случайными, но в действительности является детерминированным и может быть в точности воспроизведен на стороне получателя. Чем больше генерируемый поток похож на случайный, тем больше времени потребуется криптоаналитику для взлома шифра. Однако, если каждый раз при включении генератор будет выдавать одну и ту же последовательность, то взломать криптосистему будет просто. Например, в случае использования потокового шифрования, перехватив два шифрованных текста, злоумышленник может сложить их по модулю 2 и получить два исходных текста, сложенных также по модулю 2.
    Все генераторы случайных последовательностей имеют зависимость от ключа.

    Структура генератора

    Структуру генератора ключевой последовательности можно представить в виде конечного автомата с памятью, состоящего из трех блоков:

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

    В настоящее время насчитывается несколько тысяч различных вариантов генераторов псевдослучайных чисел.

    Методы получения псевдослучайных последовательностей

    Линейный конгруэнтный генератор (ЛКГ) – это последовательность чисел от 0 до m −1, удовлетворяющая следующему рекуррентному выражению , X0 - начальное значение, a – множитель, b – приращение, m – модуль. У такого генератора период меньше m . Если a , b , m правильно выбраны, то генератор является генератором максимальной длины и имеет период m (например gcd(m, b) = 1). Основным преимуществом линейных конгруэнтных генераторов является их быстрота, за счет малого количества операций на байт и простота реализации. К сожалению, такие генераторы в криптографии используются достаточно редко, поскольку являются предсказуемыми. К сожалению, ЛКГ не может быть использованы для построения поточных шифров – они предсказуемы, впервые были взломаны Joan Boyar. Она также взломала квадратичные генераторы. Нелинейные конгруэнтные генераторы Иногда используют квадратичные и кубические конгруэнтные генераторы, которые обладают большей стойкостью к взлому. Квадратичный конгруэнтный генератор имеет вид . Аналогично задается кубический генератор. Для увеличения размера периода повторения конгруэнтных генераторов часто используют их объединение (суперпозицию) посредством нелинейного преобразования (функции). При этом криптографическая безопасность не уменьшается, но такие генераторы обладают лучшими характеристиками в некоторых статистических тестах. Линейный регистр с обратной связью (LFSR) состоит из двух частей: регистра сдвига и последовательностью ответвления (tap sequence). Регистр сдвига есть последовательность битов. Как только нам нужен следующий бит, все биты регистра сдвига сдвигаются направо и LFSR выдает наиболее значимый бит. При этом наименьший значимый бит определяется посредством вычисления XOR от прочих битов регистра, согласно последовательности ответвления. Теоретически, n -битный LFSR может сгенерировать псевдослучайную последовательность длиной 2n −1 бит перед зацикливанием. Для этого регистр сдвига должен побывать во всех 2n −1 внутренних состояниях (количество состояний именно 2n −1 , а не 2n , т.к. регистр сдвига, состоящий из нулей, вызовет бесконечную последовательность нулей, что не особо удобно). Только некоторые tap sequences проходят через все 2n −1 состояний, LFSR с такими tap sequences называются LFSR максимальной длины.

    Использование физических датчиков случайных процессов

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

    Биологический датчик

    Случайным элементом являются моменты времени, зафиксированные в моменты использования устройств ввода. Занимает много времени.

    Датчик шума

    Случайным элементом являются последовательности импульсов электронных приборов, шума радиофона и др .

    Криптографические сопроцессоры

    Сопроцессор - специализированный процессор, расширяющий возможности центрального процессора компьютерной системы, но оформленный как отдельный функциональный модуль. Физически сопроцессор может быть отдельной микросхемой или может быть встроен в центральный процессор. Безопасность, а особенно сетевая безопасность, является еще одной областью, в которой широко используются сопроцессоры. Когда между клиентом и сервером устанавливается соединение, обычно требуется их взаимная аутентификация. По установленному таким образом безопасному (шифруемому) соединению можно передавать данные и не думать о злоумышленниках, прослушивающих линию. Проблема здесь в том, что безопасность обеспечивается средствами криптографии, а эта область требует весьма объемных вычислений. В криптографии сейчас рассмотрены два основных подхода к защите данных: шифрование с секретным ключом и шифрование с открытым ключом. Первый основан на очень тщательном перемешивании битов. В основе второго подхода лежит умножение и возведение в степень больших чисел (1024-разрядных), что требует исключительно больших временных затрат.

    Шифрование с секретным ключом

    Шифрование с закрытым ключом основано на том, что доступ к ключу имеет только авторизованный персонал.
    Этот ключ должен держаться в секрете. Если конфиденциальность не соблюдается, посторонний сможет получить несанкционированный доступ к зашифрованной информации.
    Наиболее широко используемым алгоритмом с закрытым ключом является стандарт Data Encryption Standard (DES). Этот алгоритм, разработанный компанией IBM в семидесятых годах прошлого века, принят в качестве американского стандарта для коммерческих и несекретных правительственных коммуникаций. Современные скорости вычислений на порядок превышают скорости вычислений в семидесятых годах, поэтому алгоритм DES считается устаревшим как минимум с 1998 года. Другие известные системы шифрования с закрытым ключом - это RC2, RC4, RC5, тройной DES (triple DES) и IDEA. Тройной DES-алгоритм обеспечивает достаточную степень защиты. Этот алгоритм использует тот же метод шифрования, что и DES, но применяет его трижды, используя при этом до трех разных ключей. Открытый текст шифруется с использованием первого ключа, дешифруется при помощи второго ключа, а затем шифруется с применением третьего ключа.
    Явный недостаток алгоритмов с закрытым ключом состоит в том, что для отправки кому-то защищенного сообщения необходимо располагать безопасным способом передачи этому лицу закрытого ключа.

    Шифрование с открытым ключом

    Шифрование с открытым ключом базируется на двух различных ключах - открытом и закрытом. Открытый ключ используется для шифрования сообщений, закрытый - для их дешифрования. Преимущество этого подхода состоит в том, что, как следует из его названия, открытый ключ можно свободно распространять. Любой человек, которому вы передали свой открытый ключ, может отправить вам защищенное сообщение. Но поскольку закрытым ключом обладаете только вы, только вы и сможете дешифровать сообщение.
    Наиболее известный алгоритм с открытым ключом - это алгоритм RSA, который был разработан Ривестом, Шамиром и Адельманом в Мичиганском технологическом институте (MIT) и опубликован в 1978 году.
    Часто можно встретить гибридные системы. В таких системах алгоритм с открытым ключом применяется для передачи закрытого ключа, который используется для обмена данными до конца связи. Эта дополнительная сложность компенсируется тем, что алгоритмы с закрытым ключом работают на три порядка быстрее алгоритмов с открытым ключом.
    Многими компаниями выпущены криптографические сопроцессоры, позволяющие шифровать данные для их безопасной передачи и потом расшифровывать их. Зачастую они представляют собой карты расширения, вставляемые в PCI-разъем. Благодаря специальному аппаратному обеспечению, эти процессоры могут выполнять необходимые криптографические вычисления намного быстрее, чем центральный процессор .

    Заключение

    Основные выводы:

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

    Где находится дверь

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

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

    Одним из наиболее эффективных и удобных способов защиты является применение именно аппаратных ключей - небольших микроэлектронных устройств, без которых и программа не запустится, и данные не расшифруются.

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

    Работать с электронными «заглушками» можно как в локальном, так и в сетевом варианте. При использовании сетевого ключа нет необходимости устанавливать локальные ключи на каждое рабочее место. Лицензирование в данном случае осуществляется одним ключом с программного сервера, обрабатывающего запросы защищенных приложений. Например, если на сервер устанавливается ключ и обслуживающий его драйвер (небольшую программу, обслуживающую ключ, удобно регистрировать в Windows NT/2000/XP как сервис, запускаемый при загрузке, а в Windows 95/98/Me как резидентную программу), то любая удаленная программа может запросить с сервера лицензию и только в случае ее получения продолжить работу. Число лицензий для каждого ключа может быть специально задано, и в зависимости от того, на какое количество одновременно запущенных копий рассчитана приобретенная вами программа, она или запустится, или нет. При этом распределение лицензий, как правило, осуществляется по простому принципу: «один компьютер - одна лицензия». Это означает, что если на конкретном компьютере запущено несколько копий приложения, то на это будет отведена всего одна лицензия. Таким образом, здесь налагается ограничение на количество рабочих мест, с которых возможно одновременное использование программы.

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

    Естественно, защищать свою программу или данные подобным образом следует только в том случае, если их стоимость (или нематериальная ценность) сравнима с ценой ключа аппаратной защиты (даже самый примитивный подобный ключ для параллельного порта стоит около 10 долл.).

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

    Что такое электронный ключ

    лектронный ключ - это устройство, предназначенное для защиты программ и данных от несанкционированного использования, копирования и тиражирования. Он представляет собой, как правило, небольшое микроэлектронное устройство, которое имеет два разъема: один из них предназначен для подключения к параллельному или последовательному порту компьютера, а другой служит для подключения принтера, модема или других устройств, работающих с этим портом. При этом ключ не должен влиять на работу порта и должен быть полностью «прозрачным» для подключаемых через него устройств (то есть не должен мешать их нормальной работе). Существуют, впрочем, и другие виды ключей для разных портов и в различном исполнении (внутренние, внешние, в виде брелока, в виде PCMCIA или смарт-карты и т.д.). Ключи могут работать каскадно, когда к одному порту одновременно подключается несколько ключей, в том числе и разных типов. Протокол обмена данными ключа с портом, как правило, динамически изменяется, кодируется и «зашумляется» для защиты от эмуляции.

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

    Исходя из аппаратной базы современные ключи можно подразделить на следующие типы:

    • с использованием микросхем энергонезависимой электрически перепрограммируемой памяти (EEPROM);
    • построенные на заказных конфигурациях ASIC (Application Specific Integrated Circuit);
    • с использованием чипов с памятью или без;
    • построенные на базе полнофункциональных микропроцессоров (микроконтроллеров).

    По своему внешнему исполнению наиболее популярны ключи, выпускаемые в виде брелоков, для подключения к USB-портам.

    Дополнительную информацию по устройству и эксплуатации ключей защиты можно найти на русском Web-сайте (http://www.aladdin.ru/) компании Aladdin Knowledge Systems (http://www.aks.com/) - разработчика системы защиты HASP.

    Защита программного обеспечения и данных

    аким образом можно защитить приложение при помощи электронного ключа?

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

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

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

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

    Http://glasha.zap.to/ всем предлагаются эмуляторы ключей HASP).

    Так что если речь идет о программном обеспечении, то для борьбы с пиратством значительно эффективнее наладить хорошую службу технической поддержки, а секретные данные держать в сейфе…

    КомпьютерПресс 3"2002

    Алгоритмов), часы реального времени. Аппаратные ключи могут иметь различные форм-факторы , но чаще всего они подключаются к компьютеру через USB . Также встречаются с LPT - или PCMCIA -интерфейсами.

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

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

    Энциклопедичный YouTube

      1 / 4

      Arduino NFC EEPROM электронный ключ RC522 Card Read Module RFID OLED LCD Display

      Arduino NFC билет Метро электронный ключ RC522 Card Read Module RFID Servo

      А. Пурнов. Зачем нужен электронный ключ от терминала? (трейдинг, биржевая торговля, игра на бирже)

      Как оплатить и активировать электронный ключ в PRAV.TV

      Субтитры

    История

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

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

    Защита ПО с помощью электронного ключа

    Комплект разработчика ПО

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

    Технология защиты

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

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

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

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

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

    Защита с помощью автоматических средств

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

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

    Реализация защиты с помощью функций API

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

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

    Обход защиты

    Информации о полной эмуляции современных ключей Guardant не встречалось. Существующие табличные эмуляторы реализованы только для конкретных приложений. Возможность их создания была обусловлена неиспользованием (или неграмотным использованием) основного функционала электронных ключей разработчиками защит.

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

    Взлом программного модуля

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

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

    Дизассемблирование - способ преобразования кода исполняемых модулей в язык программирования, понятный человеку - Assembler . В этом случае злоумышленник получает распечатку (листинг) того, что делает приложение.

    Декомпиляция - преобразование исполняемого модуля приложения в программный код на языке высокого уровня и получение представления приложения, близкого к исходному коду. Может быть проведена только для некоторых языков программирования (в частности, для.NET приложений, создаваемых на языке C# и распространяемых в байт-коде - интерпретируемом языке относительно высокого уровня).

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

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