Разработка информационно-вычислительной системы имитозащиты объектов железнодорожного транспорта

Создано admin . Опубликовано в Для диплома

03

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

Если Вам нужна для ознакомления полная версия проекта с исходниками, презентациями, выступлениями и т.д., то пишитеigwt@mail.ru. Проект (диплом) предоставляется только по взаимовыгодным условиям, которые обсуждаются индивидуально. Это может быть например: совместная работа над этим сайтом, участие в написании контента для сайта, разработка для этого проекта модулей, плагинов и.д. (всего, что приведет к продвижению или улучшению проекта). А также готовы выслушать ваши предложения.

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

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

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

 

Проектная часть

Описание моделей угроз

 

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

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

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

Ложный объект распределенной ВС.

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

 

Внедрение в распределенную ВС ложного объекта путем навязывания ложного маршрута.

Реализация данной типовой удаленной атаки состоит в несанкционированном использовании протоколов управления сетью для изменения исходных таблиц маршрутизации.

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

Внедрение в распределенную ВС ложного объекта путем использования недостатков алгоритмов удаленного поиска.

В распределенной ВС часто оказывается, что ее удаленные объекты изначально не имеют достаточно информации, необходимой для адресации сообщений. Обычно такой информацией являются аппаратные (адрес сетевого адаптера) и логические (IP-адрес, например) адреса объектов РВС. Для получения подобной информации в распределенных ВС используются различные алгоритмы удаленного поиска, заключающиеся в передаче по сети специального вида поисковых запросов, и в ожидании ответов на запрос с искомой информацией. После получения ответа на запрос, запросивший субъект РВС обладает всеми необходимыми данными для адресации. Руководствуясь полученными из ответа сведениями об искомом объекте, запросивший субъект РВС начинает адресоваться к нему. Примером подобных запросов, на которых базируются алгоритмы удаленного поиска, могут служить SAP-запрос в ОС Novell NetWare, ARP – и DNS-запрос в сети Internet.

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

Использование ложного объекта для организации удаленной атаки на распределенную ВС.

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

Селекция потока информации и сохранение ее на ложном объекте РВС.

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

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

Модификация информации.

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

Далее рассмотрим два вида модификации информации:

— модификация передаваемых данных;

— модификация передаваемого кода.

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

Другим видом модификации может быть модификация передаваемого кода. Ложный объект, проводя семантический анализ проходящей через него информации, может выделять из потока данных исполняемый код. Известный принцип неймановской архитектуры гласит, что не существует различий между данными и командами. Следовательно, для того, чтобы определить, что передается по сети – код или данные, необходимо использовать определенные особенности, свойственные реализации сетевого обмена в конкретной распределенной ВС или некоторые особенности, присущие конкретным типам исполняемых файлов в данной локальной ОС.

Подмена информации.

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

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

 

 

Организация имитозащиты

 

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

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

Схемы основных криптосистем с точки зрения обеспечения целостности сообщений:

Побитное шифрование потока данных:

— с обратной связью по шифрованному сообщению;

— с обратной связью по исходному сообщению.

Поблочное шифрование с обратной связью.

Шифрование блоками:

— с обратной связью по шифрованному сообщению;

— с обратной связью по исходному сообщению.

Попытаемся найти универсальные подходы к построению защиты. Прежде всего, в распоряжении получателя информации должна быть процедура проверки илиаутентификации A(T), позволяющая проверить подлинность полученного массива данных T. На выходе указанная процедура должна выдавать одно из двух возможных булевых значений – массив данных опознается как подлинный, либо как ложный: A(T)Î{0,1} для любого допустимого T. Условимся, что значение 1 соответствует подлинному массиву данных, а значение 0 – ложному. Процедура аутентификации должна обладать следующими свойствами, ограничивающими возможность злоумышленника подобрать массив данных T1, отличающийся от подлинного массива T (T¹T1), который бы тем не менее был бы этой процедурой опознан как подлинный (A(T1)=1):

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

Вероятность успешно пройти проверку на подлинность у случайно выбранного сообщения T* не должна превышать заранее установленного значения p.

Теперь вспомним про универсальность конструируемой схемы защиты, которая, в частности, означает, что схема должна быть пригодной для защиты любого массива данных T из достаточно широкого класса. Однако если реализовать схему буквально, т.е. использовать для проверки в точности то сообщение, которое отправитель должен передать получателю, принцип универсальности может придти в противоречие со вторым требованием к процедуре проверки. Действительно, исходя из этого принципа, мы можем потребовать, чтобы все возможные сообщения T были допустимыми, что совершенно явно нарушит второе требование к функции проверки. Для того чтобы их примирить, в схему необходимо ввести дополнительные шаги – преобразование данных отправителем и обратное преобразование получателем. Отправитель выполняет преобразование данных с использованием некоторого алгоритма F: T’=F(T). Тогда, помимо процедуры аутентификации, в распоряжении получателя должна быть процедура G восстановления исходных данных: T=G(T’). Весь смысл этих преобразований заключается в том, чтобы множество преобразованных сообщений {T’}, взаимно однозначно отображающееся на множество допустимых исходных сообщений {T}, было неизвестно злоумышленнику, и вероятность случайно угадать элемент из этого множества была достаточно мала для того, чтобы ее можно было не принимать во внимание.

Последнее требование в сочетанием с принципом универсальности однозначно приводит к необходимости внесения определенной избыточности в сообщение, что означает попросту тот факт, что размер преобразованного сообщения должен быть больше размера исходного сообщения на некоторую величину, как раз и составляющую степень избыточности: |T’|–|T|=D. Очевидно, что чем больше эта величина, тем меньше вероятность принять случайно взятое сообщение за подлинное – эта вероятность равна 2–D. Если бы не требование внесения избыточности, в качестве функций преобразования F и G данных могли бы использоваться функции зашифрования и расшифрования данных на некотором ключе K: F(T)=EK(T), G(T’)=DK(T’). Однако при их использовании размер массива зашифрованных данных T’ равен размеру массива исходных данных T: |T’|=|T|, поэтому метод здесь не подходит.

Наиболее естественно реализовать алгоритм преобразования с внесением избыточности простым добавлением к исходным данным контрольной комбинации фиксированного размера, вычисляемой как некоторая функция от этих данных: T’=F(T)=(T,C), C=f(T), |C|=D. В этом случае выделение исходных данных из преобразованного массива заключается в простом отбрасывании добавленной контрольной комбинации C: T=G(T’)=G(T,C)=T. Проверка на подлинность заключается в вычислении для содержательной части T полученного массива данных T’ значения контрольной комбинации C’=f(T) и сравнении его с переданным значением контрольной комбинацией C. Если они совпадают, сообщение считается подлинным, иначе – ложным.

Теперь рассмотрим свойства, которым должна удовлетворять функция выработки контрольной комбинации f:

1. Эта функция должна быть вычислительно необратимой, то есть не должно существовать способа подобрать массив данных T под заданную контрольную комбинацию C иначе как перебором по пространству возможных значений T.

2. Эта функция не должна быть известна злоумышленнику – у него не должно быть способа вычислить контрольную комбинацию C ни для какого массива данных T. Это требование по сути означает, что функция f должна быть секретной, рассмотрим его подробнее:

— во-первых, в соответствии с общепризнанным в криптографии принципом Кирхгоффа требование секретности функции выработки контрольной комбинации следует заменить на применение открытой функции, использующей вектор секретных параметров (ключ) – точно так же, как это делается при построении шифров: C=f(T)=fK(T);

— во-вторых, оказывается, что в отдельных случаях это требование можно существенно ослабить. Дело в том, что истинная цель этого пункта – исключить для злоумышленника возможность отправить ложное сообщение T1, снабдив его корректно вычисленной контрольной комбинацией C1=f(T1). Этого можно достичь двумя следующими способами:

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

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

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

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

 

если T=(T1,T2,…,Tm), то C=f(T)=(T1+T2+…+Tm)mod2N,

 

где N=|T1|=|T2|=…=|Tm| – размер блоков сообщения.

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

во-первых, и это самое главное – оно не исключает возможность подбора данных под заданную контрольную комбинацию. Действительно, пусть отправитель информации передал по ненадежному каналу сообщение T и контрольную сумму C для него, вычисленную по приведенной выше формуле. В этом случае все, что потребуется злоумышленнику для навязывания получателю произвольно взятого ложного массива данных T’=(T’1,T’2,…,T’m’) – это дополнить его еще одним блоком, вычисленным по следующей формуле: T’m’+1=C–(T’1+T’2+…+T’ m’)mod2N.

Все блоки ложного сообщения, кроме одного, не обязательно последнего, злоумышленник может установить произвольными.

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

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

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

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

— достаточная криптостойкость (надежность закрытия данных);

— простота процедур шифрования и расшифрования;

— незначительная избыточность информации за счет шифрования;

— нечувствительность к небольшим ошибкам шифрования и др.

В той или иной мере этим требованиям отвечают:

— шифры перестановок;

— шифры замены;

— шифры гаммирования;

— шифры, основанные на аналитических преобразованиях шифруемых данных.

ГОСТ 28147-89 – блочный шифр с 256-битным ключом и 32 циклами преобразования, оперирующий 64-битными блоками. Основа алгоритма шифра – Сеть Фейстеля. Базовым режимом шифрования по ГОСТ 28147-89 является режим простой замены (определены также более сложные режимы гаммирование, гаммирование с обратной связью и режим имитовставки).

Если внимательно изучить оригинал ГОСТ 28147–89, можно заметить, что в нем содержится описание алгоритмов нескольких уровней. На самом верхнем находятся практические алгоритмы, предназначенные для шифрования массивов данных и выработки для них имитовставки. Все они опираются на три алгоритма низшего уровня, называемые в тексте ГОСТа циклами. Эти фундаментальные алгоритмы упоминаются в данной статье как базовые циклы, чтобы отличать их от всех прочих циклов. Они имеют следующие названия и обозначения, последние приведены в скобках и смысл их будет объяснен позже:

— цикл зашифрования (32-З);

— цикл расшифрования (32-Р);

— цикл выработки имитовставки (16-З).

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

Таким образом, чтобы разобраться в ГОСТе, надо понять три следующие вещи:

— что такое основной шаг криптопреобразования;

— как из основных шагов складываются базовые циклы;

— как из трех базовых циклов складываются все практические алгоритмы ГОСТа.

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

Ключ является массивом из восьми 32-битовых элементов кода, далее в настоящей работе он обозначается символом K:  В ГОСТе элементы ключа используются как 32-разрядные целые числа без знака: 0<=Ki<232. Таким образом, размер ключа составляет 32·8=256 бит или 32 байта.

Таблица замен является вектором, содержащим восемь узлов замены. Каждый узел замены, в свою очередь, является вектором, содержащим шестнадцать 4-битовых элементов замены, которые можно представить в виде целых чисел от 0 до 15, все элементы одного узла замены обязаны быть различными. Для языков программирования, в которых двумерные массивы расположены в оперативной памяти по строкам, естественным является первый вариант (8×16), его-то мы и возьмем за основу. Тогда узлы замены будут строками таблицы замен. В настоящей статье таблица замен обозначается символом H: . Таким образом, общий объем таблицы замен равен: 8 узлов x 16 элементов/узел x 4 бита/элемент = 512 бит = 64 байта.

 

Алгоритм и блок-схема алгоритма криптопреобразования

 

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

Безымянный

Рисунок 2.1 – Схема основного шага криптопреобразования алгоритма ГОСТ 28147-89

 

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

Шаг 0.

Определяет исходные данные для основного шага криптопреобразования:

N – преобразуемый 64-битовый блок данных, в ходе выполнения шага его младшая (N 1) и старшая (N 2) части обрабатываются как отдельные 32-битовые целые числа без знака. Таким образом, можно записать N=(N 1,N 2).

X – 32-битовый элемент ключа;

Шаг 1.

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

Шаг 2.

Поблочная замена. 32-битовое значение, полученное на предыдущем шаге, интерпретируется как массив из восьми 4-битовых блоков кода: S=(S 0, S 1, S 2, S 3, S 4, S 5, S 6, S 7), причем S 0 содержит 4 самых младших, а S 7 – 4 самых старших бита S.

Далее значение каждого из восьми блоков заменяется новым, которое выбирается по таблице замен следующим образом: значение блока Si меняется на Si -тый по порядку элемент (нумерация с нуля) i-того узла замены (т.е. i-той строки таблицы замен, нумерация также с нуля). Другими словами, в качестве замены для значения блока выбирается элемент из таблицы замен с номером строки, равным номеру заменяемого блока, и номером столбца, равным значению заменяемого блока как 4-битового целого неотрицательного числа. Отсюда становится понятным размер таблицы замен: число строк в ней равно числу 4-битовых элементов в 32-битовом блоке данных, то есть восьми, а число столбцов равно числу различных значений 4-битового блока данных, равному как известно 24, шестнадцати.

Шаг 3.

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

Шаг 4.

Побитовое сложение: значение, полученное на шаге 3, побитно складывается по модулю 2 со старшей половиной преобразуемого блока.

Шаг 5.

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

Шаг 6.

Полученное значение преобразуемого блока возвращается как результат выполнения алгоритма основного шага криптопреобразования [1].

Базовые циклы криптографических преобразований.

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

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

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

Цикл зашифрования (рисунок 2.2) 32-З:

K 0,K 1,K 2,K 3,K 4,K 5,K 6,K 7,K 0,K 1,K 2,K 3,K 4,K 5,K 6,K 7,K 0,K 1,K 2,K 3,K 4,K 5,K 6,K 7,K 7,K 6,K 5,K 4,K 3,K 2,K 1,K 0.

Безымянный

Рисунок 2.2 – Схема цикла зашифрования 32-З

 

Цикл расшифрования 32-Р (рисунок 2.3):

K 0,K 1,K 2,K 3,K 4,K 5,K 6,K 7,K 7,K 6,K 5,K 4,K 3,K 2,K 1,K 0,K 7,K 6,K 5,K 4,K 3,K 2,K 1,K 0,K 7,K 6,K 5,K 4,K 3,K 2,K 1,K 0.

Безымянный

Рисунок 2.3 – Схема цикла расшифрования 32-Р

 

Цикл выработки имитовставки 16-З:

K 0,K 1,K 2,K 3,K 4,K 5,K 6,K 7,K 0,K 1,K 2,K 3,K 4,K 5,K 6,K 7

Безымянный

Рисунок 2.4 – Схема цикла выработки имитовставки 16-З

 

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

Каждый из циклов принимает в качестве аргумента и возвращает в качестве результата 64-битовый блок данных, обозначенный на схемах N. Символ Шаг(N,X) обозначает выполнение основного шага криптопреобразования для блока данных N с использованием ключевого элемента X. Между циклами шифрования и вычисления имитовставки есть еще одно отличие, не упомянутое выше: в конце базовых циклов шифрования старшая и младшая часть блока результата меняются местами, это необходимо для их взаимной обратимости [1].

Для решения задачи обнаружения искажений в зашифрованном массиве данных с заданной вероятностью в ГОСТе предусмотрен дополнительный режим криптографического преобразования – выработка имитовставки. Имитовставка – это контрольная комбинация, зависящая от открытых данных и секретной ключевой информации. Целью использования имитовставки является обнаружение всех случайных или преднамеренных изменений в массиве информации. Проблема, изложенная в предыдущем пункте, может быть успешно решена с помощью добавления к шифрованным данным имитовставки. Для потенциального злоумышленника две следующие задачи практически неразрешимы, если он не владеет ключом [1]:

— вычисление имитовставки для заданного открытого массива информации;

— подбор открытых данных под заданную имитовставку.

В качестве имитовставки берется часть блока, полученного на выходе, обычно – 32 его младших бита. При выборе размера имитовставки надо принимать во внимание, что вероятность успешного навязывания ложных данных равна величине 2–| I | на одну попытку подбора, если в распоряжении злоумышленника нет более эффективного метода подбора, чем простое угадывание. При использовании имитовставки размером 32 бита эта вероятность равна .

Схема алгоритма выработки имитовставки приведена на рисунке 2.5.

Безымянный

Рисунок 2.5 – Алгоритм выработки имитовставки для массива данных

 

Кроме этого, имитозащиту можно обеспечивать использованием хэш-функции ГОСТ 34.11-94 или ЭЦП ГОСТ 34.10-94/ГОСТ 34.10-2001.

В общем, хеш-функция предназначена для отображения сообщения M произвольной длины в хеш значение h=H(M) с небольшой фиксированной длиной, например 256 бит, как в нашем случае. Так же хеш-функция должна удовлетворять следующим требованиям безопасности:

Трудно найти два сообщения M и M*, таких, чтоб M!=M*, и удовлетворяющему условию H(M)!= H(M*).

Для заданного сообщения M трудно найти второе сообщение M*!= M и такое чтоб H(M) = H(M*).

Для заданного значения хеш-функции h трудно найти сообщение M такое, чтоб H(M) = h.

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

Т.к. значение хеш-функции h может принимать 2256 различных значений, то в среднем надо перебрать 2255 различных сообщений M, чтоб найти сообщение, имеющее наперёд заданное значение хеш-функции.

Основой описываемой хеш-функции является шаговая функция хеширования Hout = f(Hin, m), где Hout, Hin, m — блоки по 256 бит.

Входное сообщение M разделяется на блоки m1, m2, m3, … , mn по 256 бит. В случае если размер последнего блока mn меньше 256 бит, то к нему приписываются нули слева для достижения заданной длины блока.

Каждый блок сообщения, начиная с первого, подаётся на шаговую функцию для вычисления промежуточного значения хэш-функции: Hi+1 = f(Hi, mi). Значение H1 можно выбрать произвольным.

После вычисления Hn+1 конечное значение хэш-функции получают следующим образом:

Hn+2 = f(Hn+1, Длина сообщения M в битах по модулю 2256)

h = f(Hn+2, Контрольная сумма сообщения M: m1 + m2 + m3 + … + mn, где + обозначает сложение по модулю 2256), где h – значение хэш-функции сообщения M (рисунок 2.6)

Безымянный

Рисунок 2.6 – Вычисление значения хэш-функции сообщения M

Алгоритм вычисления шаговой функции хеширования делится на три части:

— генерирование ключей K1, K2, K3, K4;

— шифрующее преобразование – шифрование Hin с использованием ключей K1, K2, K3, K4;

— перемешивающее преобразование результата шифрования.

Генерация ключей

В алгоритме генерации ключей используются:

Два преобразования блоков длины 256 бит:

— преобразование A(Y) = A(y4 || y3 || y2 || y1) = (y1  y2) || y4 || y3 || y2, где y1, y2, y3, y4 — подблоки блока Y длины 64 бит;

— преобразование P(Y) = P(y32 || y31 || … || y1) = yφ(32) || yφ(31) || … || yφ(1), где φ(i + 1 + 4(k — 1)) = 8i + k, i = 0 … 3, k = 1 … 8, а y32, y31, … , y1 — подблоки блока Y длины 8 бит.

Три константы:

C2 = 0;

C3 = 0xf0ff000ff00f0ff00f0f0f0ff0f0f0f0;

C4 = 0.

Алгоритм: U := Hin, V := m, W := U  V, K1 = P(W). Для j = 2 … 4 выполняем следующее:  U := A(U)   Cj, V := A( A( V ) ), W := U  V, Kj = P(W).

Шифрующее преобразование.

После генерирования ключей происходит шифрование Hin по ГОСТ 28147-89  в режиме простой замены, процедуру шифрования обозначим через E (функция шифрования E по ГОСТ 28147-89 шифрует 64 битные данные 256 битным ключом). Для шифрования Hin разделяют на четыре блока по 64 бита: Hin = h4 || h3 || h2 || h1 и зашифровывают каждый из блоков:

s1 = E(h1, K1);

s2 = E(h2, K2);

s3 = E(h3, K3);

s4 = E(h4, K4).

После этого блоки собирают в 256 битный блок: S = s4 || s3 || s2 || s1.

Перемешивающее преобразование. На последнем этапе происходит перемешивание Hin, S и m в результате чего получают Hout [2].

Для описания процесса преобразования сначала необходимо определить функцию ψ, которая производит элементарное преобразование блока длиной 256 бит в блок той же длины: ψ(Y) = ψ(y16 || y15 || … || y2 || y1) = (y16  y15  …  y2  y1) || y16 || y15 || … || y3 || y2, где y16, y15, … , y2, y1 – подблоки блока Y длины 16 бит (рисунок 2.7).

Безымянный

Рисунок 2.7 – Принцип работы функции ψ

Перемешивающее преобразование имеет вид Hout = ψ61(Hin  ψ(m   12(S))), где ψi означает i-ую степень преобразования ψ [2] (рисунок 2.8).

Безымянный

Рисунок 2.8 – Перемешивающее преобразование

 

Описание модулей программы

 

Для обеспечения имитозащиты данных передаваемых по каналу связи между двумя контролируемыми объектами может использоваться схема, представленная на рисунке 2.2.

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

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

— синхронизация тактовой частоты передатчика и приемника;

— преобразование последовательности битов в электрический сигнал;

— уменьшение частоты спектра электрического сигнала с помощью фильтров;

— передача урезанного спектра по каналу связи;

— усиление сигнала и восстановление его формы приемником;

— преобразование аналогового сигнала в цифровой.

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

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

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

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

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

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

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

Безымянный

Рисунок 2.9 – Двухуровневый код Манчестер II

 

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

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

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

Следует также отметить, что даже в случае отсутствия сигнала от второго контролируемого объекта к первому будет подан сигнал тревоги, так как проверка на заключительном этапе не даст правильного результата. Фактически поставленная задача будет выполнена.

В качестве первого контролируемого объекта будет выступать система видеорегистрации, второго – видеокамера. Если в результате действий злоумышленника произойдет либо подмена изображения снимаемого камерой в данный момент другим, либо камера непосредственно будет приведена в негодное состояние, то такое действие будет тотчас же обнаружено и подан сигнал тревоги. Схема работы устройства показана на рисунке 2.10.

Безымянный

Рисунок 2.10 – Общая схема работы устройства

 

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

Простота реализации.

Относительно небольшая стоимость.

Злоумышленник не получит никакой выгоды в случае перехвата данных  передаваемых от одного контролируемого объекта к другому.

Отсутствие необходимости контролировать среду передачи сообщений.

Безымянный

Рисунок 2.11 – Схема модели угроз

Анализ области применения программы

 

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

Безымянный

Рисунок 2.12 – Схема потенциальных угроз конфиденциальности информации

 

Для анализа этих каналов при помощи специальных устройств проводятся следующие мероприятия:

— применение системы видеонаблюдения, датчиков движения;

— контроль радиоэфира;

— проверка электронных приборов;

— обнаружения средств подслушивания с помощью теста-имитатора.

 

Предложение алгоритма ПСП

 

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

Безымянный

Рисунок 2.13 – Блок-схема алгоритма генератора ПСП

Описание блок-схемы алгоритма.

В блок-схеме используются следующие обозначения:

b, c, k – параметры генерации случайных чисел линейным конгруэнтным методом;

b=134775813, c=1, k=232 – значения, используемые стандартным генератором случайных чисел в Delphi;

l – длина блока последовательности случайных чисел (равна длине блока данных);

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

 

Проектирование устройства имитозащиты

 

Общая схема работы проектируемого устройства имитозащиты представлена на рисунке 2.2. Распишем её в более подробном виде. В качестве главного контролирующего объекта будет выступать персональный компьютер, являющийся пунктом сбора данных и устройством, принимающим решения. Именно компьютер программно запускает систему имитозащиты. Для ограничения доступа в программе предусмотрена аутоинтефикация пользователей. У неё есть два зарезервированных типа пользователей: администратор и пользователь. Администратор создаёт учетные записи и пароли доступа к ним. Все учётные записи хранятся в базе данных в зашифрованном виде. Программный код модуля шифрования представлен в приложении А. После входа в программу пользователь запускает систему имитозащиты, настроив, если необходимо, параметры работы.

В качестве контролируемого объекта выбираем видеокамеру, записывающую информацию контролируемого ею объекта. Информация с неё непосредственно должна передаваться на компьютер по специальному интерфейсу, для чего на компьютере должна быть установлена плата видео регистрации и специальный софт. Для применения системы имитозащиты к видеокамере необходимо прикрепить устройство, содержащее в своём составе микроконтроллер, интерфейс приёма – передачи информации. В данном случае был выбран микроконтроллер фирмы «Microchip». Он необходим для приёма ПСП-1,программной реализации алгоритма генерации псевдослучайных чисел (ПСП-2), суммирования ПСП-1 и ПСП-2, а также передачи результатов суммирования в блок вычитания.

Для передачи и приёма сообщений, в зависимости от возможностей использования микроконтроллером того или иного интерфейса, может быть выбрана одна из следующих схем (рисунок 2.15):

Безымянный

Рисунок 2.15 – Схемы передачи информации

 

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

Безымянный

Рисунок 2.16 – Наиболее распространенные коды передачи информации

 

Код NRZ (Non Return to Zero – без возврата к нулю) – это простейший код, представляющий собой практически обычный цифровой сигнал (правда, возможно преобразование на обратную полярность или изменение уровней, соответствующих нулю и единице). К несомненным достоинствам кода NRZ относятся его очень простая реализация (исходный сигнал не надо ни кодировать на передающем конце, ни декодировать на приемном конце), а также минимальная среди других кодов пропускная способность линии связи, требуемая при данной скорости передачи.

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

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

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

Безымянный

Рисунок 2.17 – Интерфейс программы

 

Предложение алгоритма работы устройства

 

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

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

Шаг 1. После запуска программы на компьютере поступает сигнал формирования ПСП-1 и ПСП-2.

Шаг 2. Формируем сообщение, исходя из протокола обмена, установленного разработчиками верхнего и нижнего уровня программного обеспечения. Первым символом может идти SOH (начало заголовка). Затем следуют служебные данные. После них следуют STX(начало данных), символы ПСП-1, ETX (окончание данных). Завершает цепочку CRC (контрольная сумма).

Шаг 3. Посылаем сообщение контролируемому устройству.

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

Шаг 5. Принятая с сообщения ПСП-1 и сгенерированная ПСП-2 отправляются на сумматор, результат суммирования сохраняется.

Шаг 6. Формируем сообщение по протоколу обмена, включая в него результат суммирования, и оправляем его компьютеру.

Шаг 7. Компьютер разбирает сообщение, выполняет необходимую последовательность действий, сравнивает ПСП-2 сгенерированную и полученную после разности. Если результат удовлетворяет условиям, то компьютером генерируется сигнал начала нового цикла.

Составим полный алгоритм работы устройства (рисунок 2.18).

Безымянный

Безымянный

Безымянный

Безымянный

Рисунок 2.18 – Алгоритм работы устройства (Часть 4)

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

 

Если Вам нужна для ознакомления полная версия проекта с исходниками, презентациями, выступлениями и т.д., то пишитеigwt@mail.ru. Проект (диплом) предоставляется только по взаимовыгодным условиям, которые обсуждаются индивидуально. Это может быть например: совместная работа над этим сайтом, участие в написании контента для сайта, разработка для этого проекта модулей, плагинов и.д. (всего, что приведет к продвижению или улучшению проекта). А также готовы выслушать ваши предложения.

С ув. Эдуард Тихонов

Похожие материалы:

Понравилась статья? - поделитесь ею со своими друзьями!

Хотите Быть В Курсе Всех Новинок Сайта?!

Подпишитесь прямо сейчас, и получайте обновления на свой E-Mail:

Ваш E-Mail в безопасности

Есть что сказать? - Комментируй!

Комментарии Facebook

А Вы что думаете?