Содержание к диссертации
Введение
1. Методы проектирования программного обеспечения и систем автоматизированного тестирования 11
1.1. Введение 11
1.2. Принципы и методы проектирования программного обеспечения 14
1.3. Современные проблемы разработки программного обеспечения 25
1.4. Классификация типов тестирования ПО 25
1.5. Обзор методов подготовки тестовых данных 28
1.6. Обзор моделей, применимых к построению тестирующих программ.33
1.7. Постановка задачи исследований 48
1.8. Выводы 49
2. Моделирование тестирующих программ 51
2.1. Определение структурных составляющих сети Петри-Маркова в терминах задач тестирования 51
2.2. Взаимосвязь между пространством параметров и тестирующей моделью 53
2.3. Тестирование ввода данных 55
2.4. Последовательный и параллельный подход к тестированию линейной последовательности операторов 58
2.5. Тестирование предикатных функций 63
2.6. Тестирование итераций в программе 69
2.7. Свойства полумарковских процессов в однопереходных СПМ, моделирующих тестирующие программы 71
2.8. Исследование процессов в типовых подсетях Петри-Маркова, используемых при моделировании тестирующих программ 79
2.9. Выводы 85
3. Построение моделей тестирования для сложных программных комплексов с помощью сетей Петри-Маркова 87
3.1 Построение тестирующей модели с формированием дерева покрытия .87
3.2 Комплексная модель тестирующей программы 94
3.3 Методика имитационного моделирования работы тестируемого ПО с применением аппарата СПМ 100
3.4 Моделирование распределенного тестирования программных комплексов (ПК) 107
3.5 Общая методика применения сетей Петри-Маркова к задаче тестирования 110
3.6 Аппроксимация композиции плотностей законом распределения 112
4. Система автоматизированного тестирования программного комплекса обеспечения электронных расчетов 116
4.1. Структура тестируемого комплекса 116
4.2. Схема тестирующего комплекса 119
4.3. Тестирование информационной безопасности 123
4.4. Комплексное автоматизированное тестирование 126
Заключение 131
Литература 133
Приложение 143
- Принципы и методы проектирования программного обеспечения
- Взаимосвязь между пространством параметров и тестирующей моделью
- Методика имитационного моделирования работы тестируемого ПО с применением аппарата СПМ
- Тестирование информационной безопасности
Введение к работе
Актуальность темы.
Уровень сложности математического и программного обеспечения цифровых вычислительных систем на современном этапе предъявляет соответствующие требования к способам установления адекватности реальных функциональных характеристик технических систем и задаваемых в техническом задании на проектировании.
В этой связи главенствующую роль в процессе создания программных средств начинает играть система их тестирования. Фактически, автоматизированная тестирующая система на отдельный программный продукт может значительно превосходить его по набору и сложности решаемых задач. Кроме этого, специфичность проблем, возникающих на этапе тестирования, обуславливает создание новых подходов к их формализации и математических методов их решения. [7, 16, 24] С другой стороны все это усиливает потребность в формировании новых подходов в технологиях проектирования программного обеспечения (ПО).
Особое место в технологии создания тестирующих систем занимают методы моделирования различных классов программных продуктов. Возникает потребность в более детальной классификации программных средств и формализации их признаков. В информационных системах можно выделить следующие классы программ: вычислительной математики, программы систем реального времени, программы с событийным управлением, программные средства распределенной обработки информации. [27]
Параметрами программных средств, подлежащими тестированию, являются: область значений, область определения, быстродействие, объемы памяти, устойчивость, изменяемость, масштабируемость, переносимость, надежность и защищенность. [99,106]
Традиционные методы тестирования, основанные на субъективном подходе, не обеспечивают решение задач тестирования для современных сложных систем по причинам вычислительной сложности.
Приведенные утверждения показывают необходимость построения математической модели системы автоматизированного тестирования [82], покрывающей большую часть (до 80 %) процессов, реализованных с помощью программных средств, что существенно повысит качество программного обеспечения.
Математическая модель должна иметь высокую степень приближения к тестируемой системе [29]. Кроме того, если назначение тестируемой системы заключается в обработке некоторого потока данных, то для повышения производительности целесообразно использовать метод распараллеливания входного потока, следовательно, исследуемая система обладает свойством параллелизма [8]. Параллелизм может наблюдаться при распределенном тестировании одного программного комплекса при проведении испытаний, при проверке многопользовательской работы с тестируемым продуктом, а также при проведении нагрузочных испытания для оценки устойчивости программного комплекса к нагрузкам [77, 85].
Существующие подходы, используемые при построении систем автоматизированного тестирования позволяют формализовать структуру тестирующих алгоритмов, но обладают существенным недостатком. Ввиду больших объемов данных, обрабатываемых с помощью вычислительных систем, одним из важнейших критериев качества разработки программного обеспечения является время обработки входного потока данных и формирования адекватных результатов [37, 48]. Все разработанные модели тестирования не имеют в своем составе параметрических составляющих, позволяющих оценивать временной аспект функционирования ПО.
Таким образом, необходимость реализации тестовых проверок для программных комплексов, позволяющих помимо отражения структурных особенностей исследуемой системы анализировать также параметрические (времен ные характеристики), делает задачу построения системы автоматизированного тестирования на основе математического моделирования каждого соответствующего процесса актуальной.
Объектом исследования данной работы является комплекс программного обеспечения, который реализует функционирование множества параллельных вычислительных процессов. Данный комплекс состоит из двух подсистем: совокупность программных модулей и система тестирования. При этом на основе аппроксимации статистических данных, полученных в результате тестовых испытаний на эталонных наборах входных параметров, у программного модуля выявляются характеристические свойства, зависящие от временных параметров [93].
Предметом исследования является способ представления системы автоматизированного тестирования с помощью математической модели, структура и параметры которой формируются в виде функциональной и логической зависимостей от параметров тестируемой системы.
В качестве математического аппарата диссертационной работы выбрана структурно-параметрическая модель, называемая сетью Петри-Маркова [25, 26, 40, 41, 42, 43, 45], которая позволяет оценить временные характеристики параллельных процессов и построить программу и методику испытаний для сравнения ожидаемых и полученных в результате тестирования выходных данных. Кроме того, данная модель позволяет не только строить алгоритм работы тестируемой системы, но и исследовать свойства случайных процессов, протекающего в ней.
Целью диссертационной работы является увеличение процента обнаруженных ошибок в программном обеспечении. Для достижения этого применяется аппарат сетей Петри-Маркова, при использовании методологии которого производится анализ параллельных процессов, протекающих в описываемой системе [5]. В результате использования данного подхода увеличивается степень приближения тестируемой системы к условиям функционирования, а так же возрастает степень определенности изменения характеристик тестируемой системы при обработке входного потока данных.
Фундаментальной научной основой данной диссертации послужили работы К. Петри, Дж.Питерсона, В.Е. Котова в области моделирования, А.А. Маркова, Д. Кнута в области теории алгоритмов, Е.С. Вентцель в области исследования случайных процессов, Б. Бейзера и Дж. Майерса в области тестирования.
Задачи исследований.
1. Анализ общих свойств и способов построения программного обеспечения с целью их классификации, обоснование выбора типа моделей для тестирующих систем.
2. Описание особенностей и свойств случайных процессов, протекающих в тестируемой системе для определения ее параметрических характеристик.
3. Создание методов, позволяющих представить взаимодействие моделируемых процессов в тестируемой системе в виде сети Петри-Маркова, расчет характеристик модели, исследование структурно-параметрических свойств построенной модели.
4. Разработка математических моделей в виде сетей Петри-Маркова, отображающих структуру и задающих параметры процесса автоматизированного тестирования программных комплексов.
5. Определение состояний модели, имитирующих обнаружение ошибки в исследуемой системе, построение траекторий, приводящих к ошибке по результатам работы сети.
6. Реализация системы автоматизированного тестирования на основе разработанной модели в виде программного продукта.
Научная новизна диссертации заключается в следующем. 1. Разработан метод моделирования систем автоматизированного тестирования программного обеспечения с применением математического аппарата сетей Петри-Маркова, позволяющий оценивать параметрические (временные) характеристики процессов, протекающих в исследуемой системе. 2. Разработаны математические модели, дающие возможность формализовать процессы, протекающие в параллельных вычислительных системах, системах управления базами данных, системах распределенных вычислений, проведен расчет параметрических характеристик построенных моделей.
3. Исследовано эргодическое свойство случайного процесса, протекающего в тестируемых системах, сформулированы требования к модели системы для обеспечения эргодичности.
4. Разработан метод тестирования программных комплексов в виде «черного ящика» и «стеклянного ящика» на основании модели в виде сети Петри-Маркова.
Практическая ценность работы заключается в том, что методы анализа систем с конечным множеством состояний ориентированы на использование при проектировании как вновь разрабатываемых, так и модернизации существующих систем автоматизированного тестирования. Это позволяет существенно повысить качество разрабатываемого программного обеспечения при сокращении сроков разработки, а также возрастают процентные показатели обнаруженных в процессе тестирования ошибок.
Методы моделирования апробированы на примере системы автоматизированного тестирования электронных расчетов, которая реализована в виде конечного программного продукта на платформе Microsoft .Net 2.0.
Достоверность полученных теоретических результатов подтверждается результатами опытной эксплуатации предложенных методов при решении практических задач разработки систем автоматизированного тестирования. Положения, выносимые на защиту.
1. Метод моделирования систем автоматизированного тестирования на основе СПМ для сложных программных систем распределенных вычислений, отличающийся от известных методов параметрической составляющей, позволяющей анализировать свойства случайного процесса в исследуемой системе. 2. Формализация моделей тестирующих компонент в виде СПМ применительно к элементам схем алгоритмов программ, а также к сложным программным комплексам, таким как СУБД и многопользовательские системы обработки информации.
3. Алгоритм исследования эргодического свойства полумарковского процесса, протекающего в типовых СПМ, моделирующих тестирование исследуемых систем.
4. Метод применения математических моделей сетей Петри-Маркова к компонентам систем автоматизированного тестирования, реализующих про- верки указанных классов приложений.
Реализация и внедрение результатов. Предложенные в диссертации методы реализованы автором при разработке системы автоматизированного тестирования учетно-операционной системы региональной автоматизированной банковской информационной системы РАБИС-2.
Результаты внедрены в учебный процесс на кафедре «Робототехника и автоматизация производства» Государственного образовательного учреждения высшего профессионального образования «Тульский государственный университет» при преподавании следующих дисциплин: дискретная математика, информатика.
Апробация работы. Основные положения диссертации докладывались на конференциях и семинарах профессорско-преподавательского состава кафедры «Робототехника и автоматизация производства» ГОУ ВПО «Тульский государственный университет» в период с 2005 по 2008 год, на Всероссийской конференции инновационных проектов аспирантов и студентов по приоритетному направлению «Информационно-телекоммуникационные системы (Москва, ГНИЙ ИТТ «Информика», 2005).
По теме диссертации опубликовано 10 работ, включенных в список литературы, в том числе: тезисы докладов на всероссийской конференции, 9 статей.
Структура и объем работы. Диссертационная работа состоит из введения, четырех разделов и заключения, изложенных на 133 страницах машино писного текста и включающих 39 рисунков, 3 таблицы, списка использованной литературы из 118 наименований и 2 приложений.
Во введении определен объект и предмет исследования, методы, используемые в диссертации.
В первом разделе произведен анализ объектов исследования, их свойств и существующих моделей, реализующих формальное описание систем автоматизированного тестирования. Дана постановка задачи.
Во втором разделе описан подход к моделированию структурных составляющих системы автоматизированного тестирования с использованием сетей Петри-Маркова.
Третий раздел содержит описание способов применения аппарата сетей Петри-Маркова в задачах тестирования, а также возможность применения сетей Петри-Маркова для имитационного моделирования.
Четвертый раздел содержит экспериментальное подтверждение положений диссертации.
В заключении сделаны выводы по работе в целом.
Принципы и методы проектирования программного обеспечения
Программа, как математический объект, есть множество S = {svS2,...,Sj} правил, каждое из которых имеет вид: S} =B0 r-Bl A...ABm(m o),j = LJ. Элементы множества {в0,Ви...,Вт} являются атомами. Атом имеет следующий вид: p(tvt2,...,tn), где Р - предикатный символ, а г,,/ = 0 - термы. Терм - это либо переменная, либо константа, либо составной терм f{tx,...,tk); где / — функциональный символ, a tj,j = \Ji -термы [29,30, 53, 55, 74, 90]. Атом В0 является левой частью правила (заголовком), конъюнкция В{ л...лВт - правой частью правила (телом правила). Тело правила может быть пустым, в таком случае правило является фактом (факты имеют смысл аксиом программы). В общем случае правило - есть продукция, посылкой которой является конъюнкция атомарных предикатов, а заключением - один атомарный предикат. Совокупность правил с одним и тем же предикатом в заголовке называется процедурой. Переменными программы называются объекты, которые могут принимать значения других объектов, таких как строки символов и числа. Множество переменных программы обозначается символом X. Запрос является целью выполнения программы. Запрос является атомарным предикатом или конъюнкцией атомарных предикатов и имеет синтаксис: г-Су л...лСт(т 6), где C,,i = hjn - атомарные предикаты.
Обозначение переменных запроса несущественно, и при переобозначении каждой переменной запрос не изменяется. Если запрос не имеет переменных, то ответом на запрос является значение "Истина" в случае, когда истинность конъюнкции предикатов запроса следует из истинности конъюнкции фактов и правил программы, и значение "Ложь" в противном случае. Каждая программа фиксирует множество употребленных в ней предикатных символов. Только они могут использоваться в запросах к ней. Семантика программы определяется через подстановки. Подстановка -это функция, действующая из множества X переменных в множество Т термов программы: 0: X - Т, при этом каждой переменной х, є X ставится в соответствие терм t, є Т. Подмножество /с[/Л) где Uh - множество атомов без переменных, т. е. фактов, называется интерпретацией программы. Интерпретация I называется моделью программы S, если для любого правила (В0 -В} л...лВт)є S и любой подстановки 0, где (в0) - атом без переменных, имеет место: {(#,) л... л @(Вт)} с / - 0(яо) є /. Пусть М(5") - множество всех моделей программы S: Пересечение двух любых моделей программы S также является моделью этой программы. Действительно, пересечение двух моделей (и потому интерпретаций) как множеств фактов без переменных также представляет собой множество фактов без переменных, а потому интерпретацию.
Так как для исходных моделей подстановка превращает некоторое правило в правило без переменных, то атом без переменных в заголовке правила принадлежит обеим интерпретациям, а, следовательно, их пересечению, что и требуется для подтверждения выполнения условия модели. Наименьшая из всех моделей множества M(s) называется основной моделью Is. Пусть для некоторого запроса -С,Л...ЛС,. х1,...,хк- все его переменные, и для некоторой подстановки 0 и интерпретации / имеет место включение: {0(С,)Л...Л0(СГ)}С/ (то есть формула (с1)л...л э(Сг) истинна в /). Тогда кортеж термов (/,,...,/ .), где /, =0(х,),(/ = 1..к), называется ответом на запрос интерпретации /. Ответ называется правильным, если он является ответом основной модели (также как и для любой другой модели из множества). Множество всех правильных ответов - это к -арное отношение на множестве Th - термов без переменных, т. е. на множестве всех объектов. Если к = О, то при {0(С,)Л...А0(СГ)}С/5 - ответ «Истина», а иначе - ответ «Ложь» (0-арное отношение). Шаг вычислений определяется следующим образом. Пусть запрос Q имеет вид: 2= -С, л... л С, л...лСг и в нем выделен атом С, и правилоSj = B0 - Bv...,Bm{m o), которое является вариантом правила Sj программы (все переменные отличны от переменных запроса Q). Если результат подстановки 0 одинаков для С} и В0, то запрос 0 = -(с, Л...ЛС7_І лВх л...лВт лС7+1 л...лС,) называется выводимым из Q (с помощью правила S; и подстановки 0). Получение Q из О - элементарный шаг вычислений. Пространством вычислений называется множество возможных запросов с заданным отношением выводимости. При вычислении запроса Q формируется последовательность запросов: р = Qx,Q2,...,Qn так, что QX=Q и Ql+l является выводимым из Qt,(i = 1,2,...). Если из Qn ни один запрос не является выводимым, то вычисления закончены (в некоторых случаях процесс вычислений может идти неограниченно). При окончании вычислений возможны два случая: Qn - непустой запрос, тогда вычисление тупиковое (неудачное). Qn - пустой запрос, тогда В - успешное вычисление.
Взаимосвязь между пространством параметров и тестирующей моделью
Исходя из потребностей в тестировании можно выделить следующие классы, подлежащие моделированию: моделирование тестирования потока управления, моделирование тестирования циклов, моделирование тестирования потока данных и потока транзакций.
Управляемым с точки зрения системы тестирования процессом при проведении тестирования является процесс подготовки тестовых данных. Определение значений входных параметров представляет собой существенную задачу при моделировании тестирующих программ.
Пространством W параметров тестирующей программы называется гиперпространство, ортогональными измерениями которого являются значения входных параметров at = {all,an,...,aiJ,...,ajN}. Для позитивных тестов значения параметров принадлежат их области определения, формируемой исходя из спецификации программы: a0 eD(a,),j = l..N. В случае негативных тестов
Эу:а,7. ё («,),_/є {l,2,...N}. Здесь D(a,) область определения параметра а(. Пространство FT является дискретным. Дискретизация значений входных параметров производится с помощью разбиения на конечное число интервалов аи є{ау,тт ау ш ) Для каждого из входных параметров. Вид данного дискретного гиперпространства представлен на рис. 2.1.
Вектор состояний А,(,К) = {ab,a2j,...,aNk }, где i,j,k - индексы для значений каждого из входных параметров тестируемой программы, а N - общее число входных параметров, определяет некоторую траекторию в алгоритме тестируемой программы.
Выбор данного вектора и запуск тестируемой программы с данными значениями входных параметров моделирует одну тестовую проверку. Траектория Aw ={AX(WyA2{W),...,Aj(W}) в пространстве состояний параметров тестирующей программы определяет план тестирования.
Количество значений //(а,) каждого из входных параметров определяется в зависимости от использования данного параметра в предикатных функциях алгоритма, в итерационных процессах и в вычислениях. В частности, если параметр используется при вычислении значения логической предикатной функции, соответствующее измерение пространства состояний будет содержать только два значения - для тестирования разных результатов вычисления предикатной функции и /І(«()=2.
Для тестирования множества значений входного параметра а, = \ал,аа,...,ац,...,ам\ используется вероятностный подход с применением закона распределения. Например, в случае полного отсутствия данных о работе алгоритма в зависимости от параметра используется равномерное распределение:
После проведения тестирования параметры закона могут быть скорректированы в зависимости от собранной при тестировании статистики. Обрабатываемые данные генерируются тестирующей программой в соответствии с выбранным законом распределения.
Для операторов и линейных участков программного кода тестированию подлежат ввод данных и выполнение операторов в условиях, не определённых спецификацией программы.
Ввод данных моделируется с помощью однопереходной сети Петри-Маркова, состоящей из стартового/конечного перехода и единственной позиции. Данная сеть представлена на рис. 2.2. Переход, обозначенный пунктирной линией, моделирует обнаружение ошибки в тестируемой программе. Траектория тестирования представляет собой ЭППМ, упрощенную до позиции.
Позиции и переходы имеют следующий физический смысл. Позиции ап моделируют проверку ввода набора входных параметров для данного фрагмента алгоритма.
Переход zb является стартовым и моделирует запуск процесса тестирования. Переход ze является конечным и моделирует обнаружение ошибки в тестируемой программе при данном наборе входных параметров. Вследствие малости времени выполнения оператора допускается упрощение, что тестирование каждого набора входных параметров происходит в течение равных малых промежутков времени А.
В течение времени Д тестирование программы завершится и будет обнаружена ошибка с вероятностью q, вероятность того, что тестирование компонента будет завершено без обнаружения ошибки p = l-q. Приведенная СПМ отражает независимость событий обнаружения ошибки в тестируемой программе в каждый последующий момент времени от предыстории процесса.
Утверждение (2.1). Плотность распределения времени возникновения ошибочной ситуации при тестировании ввода данных с ростом числа тестовых проверок приближается к зависимости:
Методика имитационного моделирования работы тестируемого ПО с применением аппарата СПМ
В контексте решаемой задачи указанное время будет являться средним временем до завершения деятельности одним из субъектов. 4. Определение дисперсии случайной величины t по зависимости:
Следующей задачей, которая может быть решена при применении имитационного моделирования, является задача аппроксимации гистограммы (3.14) аналитическим законом распределения. Указанную аппроксимацию целесообразно производить в том случае, если результаты имитационного моделирования по анализируемой модели являются промежуточными и будут использоваться при аналитическом решении задачи моделирования построения систем автоматизированного тестирования более высокого иерархического уровня, где рассматриваемая система является элементом. Вследствие того, что в рассматриваемом случае производится хотя и машинный, но эксперимент, сглаживание плотности аналитическим законом распределения, рассмотренное в предыдущем подразделе, неприменимо. В данном случае целесообразно аппроксимировать гистограмму (3.14) по критерию %2 Пирсона.
Для этого необходимо построить гистограмму (3.14) графически и подобрать аналитический закон /(/), в наибольшей степени повторяющий форму гистограммы, у которого математическое ожидание совпадает с параметром Т, рассчитанным по формуле (3.15), а дисперсия совпадает с величиной D, рассчитанной по зависимости (3.16).
Обозначим величины плотностей вероятностей аналитического закона Тогда критерий %2 для гистограммы (3.14) и аналитического закона f{t) будет иметь вид: В соответствии с критерием, по кривой распределения определяется вероятность того, что закон распределения f{t) удовлетворяет критерию близости полученной с помощью имитационного моделирования гистограммы. Если вероятность достаточно велика, то принятая гипотеза о виде и параметрах аппроксимирующего закона распределения не противоречит результатам имитационного моделирования.
Таким образом, СПМ являются универсальным математическим аппаратом, позволяющим получать как теоретические, так и квазиэкспериментальные данные о статистических параметрах процесса, протекающего в тестируемой системе.
В реальных задачах тестирования модель, показанная на рис. 3.6, является одной из составляющих распределенного программного комплекса.
Модель, описывающая процесс организации тестирования, будет выглядеть, как показано на рис. 3.8.
Каждый функциональный компонент тестируемого программного комплекса моделируется с помощью ЭППМ, имеющей следующую структуру: U = ЭППМ вида (3.19) обведена на рис. 3.8 штриховой рамкой. Позиция af ЭППМ (3.19) моделирует выполнение операторов тестируемого компонента при функциональном тестировании, позиция аГ - регрессионное тестирование, позиция as - стохастическое тестирование.
Позиция ае моделирует выполнение операторов завершения работы тестируемого компонента при обнаружении ошибки.
СПМ, представленная на рис. 3.8, моделирует параллельное выполнение процессов тестирования функциональных компонентов всего программного комплекса. Физический смысл непримитивного перехода ze состоит в завершении комплексных проверок и переход к опытной эксплуатации тестируемого ПО. Логическим условием его открытия будет являться где Aj,j = 1..J условие выполнения полушага из позиции asj в переход Ze .
Условие (3.20) накладывает жёсткие ограничения на процесс тестирования, так как оно требует успешного завершения тестовых проверок каждого модуля. В реальных же условиях эксплуатации ПО условие (3.20) принимает вид:
В тестируемом комплексе выбирается К модулей, которые необходимо протестировать и сформировать модификацию ПО. Таким образом Л К) = Xj,jG{I,2,...,J], если модуль с индексом j необходимо протестировать и Лд ) = 1 в противном случае.
Позиция аЕП моделирует выполнение модулей тестируемого программного комплекса при опытной эксплуатации. Позиция аЕТ2 моделирует выполнение модулей программного комплекса при промышленной эксплуатации.
Данные позиция являются упрощением типовой сети (3.4) и ее параметрические характеристики рассчитываются в соответствии с выражением (3.6).
В случае взаимодействия нескольких модулей в процессе тестирования подсети вида (3.19) преобразуются в подсеть, представленную на рис. 3.9.
Тестирование информационной безопасности
При обработке сообщений большое значение имеют компоненты, реализующие подсистему информационной безопасности. Данная подсистема обеспечивает проверку кодов аутентификации электронных сообщений и хранит базу данных электронных подписей для проверки сообщений и заверения их кодами аутентификации.
На этапе проверки корректности кодов аутентификации выполняется помещение сообщений в архивную базу данных для анализа возможных сбойных ситуаций. Компонент работы с архивной базой данных представляет собой отдельную подсистему.
Поскольку с помощью программного обеспечения можно совершать финансовые операции, например, электронные расчеты, то проблема защиты информации играет отдельную и очень сущемтвенную роль при разработке. Тестирование информационной безопасности предусматривает все возможные варианты проникновения в логику работы системы извне.
В настоящее время обеспечение безопасности производится с использованием систем криптографической защиты информации (СКЗИ). Каждый пользователь помимо своего пароля имеет уникальную электронную цифровую подпись (ЭЦП), с помощью которой он авторизуется в системе и которую он может ставить на электронные документы для заверения их защитным ключом. Кроме заверения данных ЭЦП может применяться для их шифрования и дешифрования, если данные передаются от пользователя к пользователю по открытым каналам и недопустимо проникновение в них извне.
Для минимизации риска проникновения в систему на каждый документ, содержащий секретную информацию, ставится 2 ЭЦП. Это делается с целью разнесения зон ответственности за обеспечение целостности информации. С этой же целью в систему проверок ЭЦП обычно входят два контура, каждый из которых должен проверять ЭЦП на документе, снимать их, заверять документы собственной ЭЦП и проверять ЭЦП другого контура.
Элементарная сеть Петри-Маркова, реализующая процесс проверки ЭЦП, представлена на рис. 4.6.
Сообщение, заверенное двумя ЭЦП, попадает на вход к первому контуру. Позиция sl у ЭППМ определяет время обработки сообщения первым контуром. На данном этапе проверяется целостность двух ЭЦП, установленных на сообщение и целостность данных после подписания сообщения. Если результат проверки положителен, то сохраняется эталон сообщения, кроме этого с него снимаются две подписи и устанавливается подпись первого контура. Эталонное сообщение и сообщение, подписанное первым контуром, передается на вход ко второму контуру .У2 .
Если в процессе проверок обнаружены ошибки, сообщение попадает в архив ошибочных сообщений, а маркер из позиции попадает в позицию ех, что означает выявление ошибок на первом шаге проверки. Ошибки первого шага могут быть следствием вредоносного проникновения в каналы передачи сообщений или следствием сбоев в передаче данных к первому контуру.
В позиции s2 проверяются ЭЦП на эталонном сообщении, а также ЭЦП на сообщении, подписанном первым контуром. В случае обнаружения ошибок маркер попадает в позицию е2. Если маркер находится в позиции е2, то это говорит о внутреннем проникновении в систему, поскольку либо подпись sl недостоверна, либо ЭЦП на эталонном документе ошибочны, хотя во время проверки jj этой ошибки выявлено не было. Ситуация в данном случае представляет существенную угрозу для безопасности ПО.
Если проверки прошли успешно, сообщение, заверенное первым ключом сверху заверяется ключом контролера, а также с исходного сообщения снимаются обе подписи и эти два сообщения подаются повторно на первый контур. В СПМ это состояние характеризует позиция s3.
В этой позиции происходит проверка ЭЦП второго контура. Кроме того с сообщения, подписанного двумя контурами снимаются обе подписи и побитно проверяются данные с эталона и этого сообщения. Если данные совпадают бит в бит и проверка прошла успешно, то электронное сообщение считается достоверным. Если в результате проверки обнаружены ошибки, то маркер попадает в позицию е3.
Для того, чтобы СПМ, реализующая описанный процесс, была элементарной, в ее структуру введена служебная позиция п, с помощью которой процесс после обработки сообщения возвращается в исходное состояние.
Параметрические характеристики ЭППМ, представленной на рис. 4.6, рассчитываются в соответствии с выводами раздела 2 диссертации.