Проблема обеспечения целостности и достоверности электронных данных включает в себя решение основных взаимосвязанных задач: подтверждения их авторства и подлинности, контроль целостности данных. Решение этих задач продиктовано необходимостью защиты программного обеспечения от следующих злоумышленных действий:
- внедрение в авторскую программу РПС или полная заменена программы на программу-носитель РПС;
- изменение атрибутов (характеристик) программы;
- злоумышленник может выдать себя за настоящего владельца программы;
- отказ законного владельца программы от факта правообла-дания ею.
Наиболее действенными способами защиты от подобных злоумышленных действий предоставляют криптографические методы защиты. Это определено тем, что хорошо известные методы контроля целостности программ, основанные на контрольной сумме, продольном контроле и контроле на четность представляют сравнительно простые способы защиты от внесения изменений в код программ.
Для установления подлинности программ необходимо использовать более сложные способы, к которым относится аутентификация кода программ, с применением криптографических методов, которые выявляют следы, остающиеся после внесения преднамеренных искажений.
В первом случае аутентифицируемой программе ставится в соответствие некоторый аутентификатор, полученный при помощи стойкой криптографической функции, которой может быть криптографический стойкая хэш-функция или функция электронной цифровой подписи. И в том, и в другом случае доводами функции может быть как код аутентифицируемой программы, так и время и дата аутентификации, идентификатор программиста и/или организации- разработчика программного обеспечения, какой-либо случайный параметр и прочие. Также может использоваться любой симметричный шифр в режиме генерации имитовставки. Но, это потребует наличия секретного ключа при верификации программ на целостность, что бывает не всегда удобно и безопасно. А при использовании метода цифровой подписи при верификации необходимо иметь только некоторую общедоступную информацию, например открытый ключ подписи. То есть контроль целостности программного обеспечения может осуществить любое заинтересованное лицо, имеющий доступ к открытым ключам, используемой схемы цифровой подписи.
Криптографические средства контроля целостности и достоверности программ
В криптографии действует следующие требования:
- криптоаналитик имеет полный шифротекста;
- соблюдение правила Керкхоффа «стойкость шифра должна находить только секретностью его ключа».
В этом случае задача злоумышленника сводится к попытке раскрытия шифра на основе шифр текста. Если злоумышленник имеет к тому же некоторые отрывки открытого текста и соответствующие им элементы шифр текста, тогда он пытается выполнить атаку на основе открытого текста. Атака на основе выбранного открытого текста заключается в том, что злоумышленник, применяя свой открытый текст, получает правильный шифр и пытается в этом случае вскрыть шифр. Попытку обнаружения шифра можно осуществить, если злоумышленник подставляет свой ложный шифр текст, а при дешифровании получает необходимый для раскрытия шифра открытый текст. Такой способ раскрытия называется атакой на основе выбранного шифр текста.
Теоретически существует абсолютно стойкийкод, но единственным таким кодом является форма так называемой ленты однократного использования, в которой открытый текст «объединяется» с полностью случайным ключом такой же длины. Для абсолютной стойкости существенным является каждое из следующих требований к ленте однократного применения:
- полная случайность ключа;
- равенство длины ключа и длины открытого текста;
- однократность использования ключа.
Но именно эти условия и делают абсолютно стойкий код очень ресурсозатратным и непрактичным. Прежде чем пользоваться таким кодом, необходимо обеспечить всех абонентов достаточным запасом случайных ключей и исключить возможность их повторного применения. А это сделать необычайно трудно и дорого. Вопрос о существовании односторонней функции с секретом является столь же гипотетическим, что и вопрос о существовании односторонней функции. Для практических целей было построено несколько функций, которые могут оказаться односторонними, а это означает, что задача инвертирования эквивалентна некоторой давно изучаемой трудной математической задаче.
Применение односторонних функций в криптографии позволяет:
- организовать обмен шифрованными сообщениями с использованием только открытых каналов связи;
- решать новые криптографические задачи, такие как электронная цифровая подпись.
В большинстве схем электронной подписи используются хэш-функции. Это объясняется тем, что практические схемы электронной подписи не способны подписывать сообщения произвольной длины, а процедура, состоящая в разбиении сообщения на блоки и в генерации подписи для каждого блока по отдельности, крайне неэффективна. Под термином «хэш-функция» понимается функция, отображающие сообщения произвольной длины в значение фиксированной длины, которое называется хэш-кодом. К наиболее известным схемам цифровой подписи с прикладной точки зрения относятся схемы:
- RSA, схемы Рабина-Уильямса;
- Эль-Гамаля, Шнорра;
- Фиата-Шамира;
- схема электронной цифровой подписи отечественного стандарта СТ РК 34.006-2002.
Стойкость схемы цифровой подписи заключается в стойкости подписи в теоретико-сложностном смысле, указывающий на отсутствие эффективных алгоритмов ее подделки или раскрытия. Подразделяются атаки на следующие основные разновидности:
- атака с открытым ключом, когда злоумышленник знает только открытый ключ схемы;
- атака на основе известного открытого текста (известного кода программы), когда злоумышленник получает подписи для ограниченного количества известных ему кодов, но при этом злоумышленник никак не может повлиять на выбор этих кодов;
- атака на основе выбранного открытого текста, когда злоумышленник может получить подписи для некоторого ограниченного количества выбранных им кодов программы (предполагается, что коды выбираются независимо от открытого ключа, например, до того как открытый ключ станет известен);
- направленная атака на основе выбранного открытого текста, когда злоумышленнику доступны подписи для некоторых кодов программ, причем выбирая код программы злоумышленник, уже знает открытый ключ;
- адаптивная атака на основе выбранного открытого текста, когда злоумышленник выбирает коды программы последовательно, зная открытый ключ и зная на каждом шаге подписи для всех ранее выбранных кодов.
Разновидности атак приведены по возрастающей степени нанесения ущерба владельцу программы.
Угрозами для схем цифровой подписи являются раскрытие схемы или подделка подписи. Определяются следующие типы угроз:
- полного раскрытия, когда злоумышленник в состоянии вычислить секретный ключ подписи;
- универсальной подделки, когда злоумышленник находит алгоритм, функционально эквивалентный алгоритму вычисления подписи;
- селективной подделки, когда осуществляется подделка подписи для кода программы, выбранного злоумышленником априори;
- экзистенциональной подделки, когда осуществляется подделка подписи хотя бы для одного кода программы, когда злоумышленник не контролирует выбор этого кода, которое может быть вообще случайным или бессмысленным.
Разновидности угроз перечислены в порядке ослабления. Стойкость схемы электронной подписи определяется относительно типов атаки и угрозы.
Принимая вышеописанную классификацию атаки и угрозы, можно сделать вывод, что наиболее привлекательной является схема цифровой подписи, стойкая против самой слабой из угроз, но предполагая, что злоумышленник может провести самую сильную из всех атак. Тогда, такая схема должна быть стойкой против экзистенциональной подделки с адаптивной атакой на основе выбранного открытого текста.
Криптографические протоколы относятся к базовым объектам изучений в криптологии и относятся к сравнительно новому направлению в криптографии. Но криптографические протоколы являются достаточно нетривиальным объектом исследований, и даже их формализация на сегодняшний день выглядит весьма затруднительной. Под криптографическим протоколом неформально понимается распределенный алгоритм, т. е. совокупность алгоритмов для каждого из участников вычислений, включая спецификации форматов сообщений, пересылаемых между участниками, спецификации синхронизации действий участников и описание действий при возникновении сбоев.
Объектом изучения теории криптографических протоколов являются удаленные абоненты, взаимодействующие по открытым каналам прием-передачи. Целью взаимодействия абонентов является решение какой-то задачи. Имеется также злоумышленник, который преследует собственные цели. При этом злоумышленниками могут быть один или даже несколько абонентов, вступивших в сговор.
Список использованной литературы
- Корнеев И.К. Защита информации в офисе: учебник / И. К. Кор-неев. Гос. ун-т управления. - М.: Проспект, 2008. - 336 с.
- Кузнецов А.А. Защита деловой переписки (секреты безопасности). - М.: Экзамен, 2008. - 239 с. - (Технология успеха).
- Мельников В.П. Информационная безопасность и защита информации : учебное пособие. ред. С. А. Клейменов. - 2-е изд., стер. - М.: Академия, 2007. - 336 с.
- Шаньгин В.Ф. Комплексная защита информации в корпоративных системах: учебное пособие / В. Ф. Шаньгин. - М.: ФОРУМ, 2010. -592 с.
- О. А. Логачёв, А. А. Сальников, С. В. Смышляев, В. В. Ященко. Булевы функции в теории кодирования и криптологии. Изд. 2-е, доп. -М.: МЦНМО, 2012.
- Введение в криптографию. Под общей редакцией В. В. Ященко.Издание 4-е, доп. - М.: МЦНМО, 2012.