Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы2.doc
Скачиваний:
136
Добавлен:
20.08.2019
Размер:
6.7 Mб
Скачать
  1. Общая схема подписывания и проверки подписи с использованием хэш-функции. Основные свойства хэш-функций. Схема вычисления хэш-функции.

Хеширование (иногда хэширование, англ. hashing) — преобразование входного массива данных произвольной длины в выходную битовую строку фиксированной длины. Такие преобразования также называются хеш-функциями или функциями свёртки, а их результаты называют хешем, хеш-кодом или дайджестом сообщения (англ. message digest).

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

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

Контро́льная су́мма — некоторое значение, рассчитанное из последовательности данных путём применения определённого алгоритма, используемое для проверки правильности передачи данных (для исключения влияния каких-либо помех при передаче).

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

Алгоритм вычисления контрольной суммы (англ. Cyclic redundancy code, CRC — циклический избыточный код) — способ цифровой идентификации некоторой последовательности данных, который заключается в вычислении контрольного значения её циклического избыточного кода.

Для того, чтобы хеш-функция H считалась криптографически стойкой, она должна удовлетворять трем основным требованиям, на которых основано большинство применений хеш-функций в криптографии:

Необратимость или стойкость к восстановлению прообраза: для заданного значения хеш-функции m должно быть вычислительно невозможно найти блок данных X, для которого H(X) = m.

Стойкость к коллизиям первого рода или восстановлению вторых прообразов: для заданного сообщения M должно быть вычислительно невозможно подобрать другое сообщение N, для которого H(N) = H(M).

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

Данные требования не являются независимыми:

  • Обратимая функция нестойка к коллизиям первого и второго рода.

  • Функция, нестойкая к коллизиям первого рода, нестойка к коллизиям второго рода; обратное неверно.

Использование хеш-функций

Поскольку подписываемые документы — переменного (и как правило достаточно большого) объёма, в схемах ЭЦП зачастую подпись ставится не на сам документ, а на его хэш. Для вычисления хэша используются криптографические хэш-функции, что гарантирует выявление изменений документа при проверке подписи. Хэш-функции не являются частью алгоритма ЭЦП, поэтому в схеме может быть использована любая надёжная хэш-функция.

Использование хэш-функций даёт следующие преимущества:

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

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

  • Целостность. Без использования хеш-функции большой электронный документ в некоторых схемах нужно разделять на достаточно малые блоки для применения ЭЦП. При верификации невозможно определить, все ли блоки получены и в правильном ли они порядке.

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

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

    КриптоПро CSP

Назначение: 

Криптопровайдер КриптоПро CSP предназначен для:

  • авторизации и обеспечения юридической значимости электронных документов при обмене ими между пользователями, посредством использования процедур формирования и проверки электронной цифровой подписи (ЭЦП) в соответствии с отечественными стандартами ГОСТ Р 34.10-94, ГОСТ Р 34.11-94, ГОСТ Р 34.10-2001;

  • обеспечения конфиденциальности и контроля целостности информации посредством ее шифрования и имитозащиты, в соответствии с ГОСТ 28147-89; обеспечение аутентичности, конфиденциальности и имитозащиты соединений TLS;

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

  • управления ключевыми элементами системы в соответствии с регламентом средств защиты.

Особенности: 

  • Встроенная поддержка Winlogon

  • В состав КриптоПро CSP 3.6 входит Revocation Provider, работающий через OCSP-ответы

  • Реализована поддержка для платформы x64 Обеспечена реализация протокола EAP/TLS

  • Расширен внешний интерфейс СКЗИ для обеспечения работы с функциональным ключевым носителем (ФКН), согласования ключей для использования в реализациях протокола IPSec, работы с другими приложениями

  • Исключена возможность использования стандарта ГОСТ Р 34.10-94

Реализуемые алгоритмы: 

Алгоритм выработки значения хэш-функции реализован в соответствии с требованиями ГОСТ Р 34.11 94 "Информационная технология. Криптографическая защита информации. Функция хэширования". Алгоритмы формирования и проверки ЭЦП реализованы в соответствии с требованиями:

  • ГОСТ Р 34.10 94 "Информационная технология. Криптографическая защита информации. Система электронной цифровой подписи на базе асимметричного криптографического алгоритма";  

  • ГОСТ Р 34.10 94 и ГОСТ Р 34.10-2001 "Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи".  

Алгоритм зашифрования/расшифрования данных и вычисление имитовставки реализованы в соответствии с требованиями ГОСТ 28147 89 "Системы обработки информации. Защита криптографическая". При генерации закрытых и открытых ключей обеспечена возможность генерации с различными параметрами в соответствии с ГОСТ Р 34.10-94 и ГОСТ Р 34.10-2001. При выработке значения хэш-функции и шифровании обеспечена возможность использования различных узлов замены в соответствии с ГОСТ Р 34.11-94 и ГОСТ 28147-89.

СКЗИ "Верба"

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

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

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

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

При зашифровании исходными данными будет сообщение, а результирующими - зашифрованное сообщение. При расшифровании они меняются местами.

Ключ - конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования данных. В данном случае термин "ключ" означает уникальный битовый шаблон. Считается, что правила криптографического преобразования известны всем, но, не зная ключа, с помощью которого пользователь закрыл смысл сообщения, требуется потратить невообразимо много усилий на восстановление текста сообщения. Длина ключа, согласно ГОСТ 28147-89, равна 256 бит.

В средствах криптографической защиты информации (СКЗИ) "Верба" ключевая система организована по принципу полной матрицы. Это означает, что формируется матрица, которая содержит все секретные ключи связи, и каждый j-ый абонент получает j-ую строку из этой матрицы, и использует i-ый элемент этой строки при зашифровании/расшифровании в качестве секретного ключа связи с i-ым абонентом.

В СКЗИ "Верба" используется определенный ГОСТ 28147-89 симметричный алгоритм криптографического преобразования данных в режиме гаммирования, который подразумевает процесс наложения по определенному закону гаммы шифра на открытые данные (под гаммой понимается псевдослучайная двоичная последовательность, вырабатываемая по заданному алгоритму). ГОСТ 28147-89 также определяет процесс выработки имитовставки, который единообразен для любого из режимов шифрования данных. Имитовставка - это последовательность данных фиксированной длины, которая вырабатывается по определенному правилу из открытых данных и ключа либо перед шифрованием сообщения, либо параллельно с шифрованием. Имитовставка передается по каналу связи или в память ЭВМ после зашифрованных данных. Выработка имитовставки обеспечивает защиту от навязывания ложных данных, вероятность необнаружения которого зависит от длины имитовставки и равна 10-9. Поступившие зашифрованные данные расшифровываются, и из полученных блоков данных вырабатывается новая имитовставка, которая затем сравнивается с имитовставкой, полученной из канала связи или из памяти ЭВМ. В случае несовпадения имитовставок все расшифрованные данные считаются ложными.

Программно-аппаратная защита с использованием электронных ключей

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

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

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

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

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

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

Какие бывают электронные ключи

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

Итак, чаше всего используются электронные ключи, предназначенные для защиты локальных и сетевых Windows и DOS-приложений. Основную массу ключей составляют устройства для параллельного и USB-портов. Однако встречаются ключи и для COM-порта, или выполненные в виде PCMCIA-карты.

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

По устройству электронные ключи делятся на

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

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

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

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

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

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

Смарт-карты

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

  • карты памяти

  • микропроцессорные карты

  • карты с криптографической логикой

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

  1. Системы управления ключами: генерация, хранение и распределение ключей. Рассылка симметричных ключей центром распределения ключей, с помощью электронного цифрового конверта, по схеме Диффи-Хеллмана. Сертификаты открытых ключей и схема их рассылки.

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

Различают следующие виды функций управления ключами: генерация, хранение, и распределение ключей.

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

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

Распределение - самый ответственный процесс в управлении ключами. Этот процесс должен гарантировать скрытность распределяемых ключей, а также быть оперативным и точным. Между пользователями сети ключи распределяют двумя способами:

с помощью прямого обмена сеансовыми ключами;

используя один или несколько центров распределения ключей.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]