Автор работы: Пользователь скрыл имя, 19 Декабря 2011 в 17:53, реферат
В соответствии с Доктриной информационной безопасности Российской Федерации, утвержденной Президентом Российской Федерации 9 сентября 2000 года № Пр-1895, одна из составляющих национальных интересов Российской Федерации в информационной сфере включает в себя «развитие современных информационных технологий, отечественной индустрии информации, в том числе индустрии средств информатизации, телекоммуникации и связи, обеспечение потребностей внутреннего рынка ее продукцией и выход этой продукции на мировой рынок, а также обеспечение накопления, сохранности и эффективного использования отечественных информационных ресурсов».
Существуют два основных общепринятых подхода к обеспечению качества программного обеспечения (ПО) от угрозы отказа функционирования, которые применимы, в том числе, и к программам, реализующим криптографические алгоритмы. Это отказоустойчивость (fault tolerance) и предотвращение неисправностей (fault avoidance).
Отказоустойчивость предусматривает, что ошибки, которые не удалося выявить на этапе разработки и тестирования ПО, обнаруживаются во время выполнения программы и парируются за счет использования программной, информационной и временной избыточности. Предотвращение неисправностей связано с анализом природы ошибок, возникающих на разных фазах этапа разработки ПО, и причин их возникновения.
Рассмотрим эти два подхода подробнее и определим, как они могут использоваться при разработке программ, реализующих криптографические алгоритмы.
Из-за
невозможности обеспечения
Для обеспечения высокой надежности и безопасности функционирования ОС необходимы вычислительные ресурсы для максимально быстрого обнаружения проявления дефектов, возможно точной классификации типа уже имеющихся и вероятных последствий искажений, а также для автоматизированных мероприятий, обеспечивающих быстрое восстановление нормального функционирования. В любых ситуациях, прежде всего должны исключаться катастрофические последствия дефектов и длительные отказы или в максимальной степени смягчаться их влияние на результаты, выдаваемые пользователю.
Временная
избыточность состоит в использовании
некоторой части
Так, например, в состав ОС может быть введена процедура периодического контроля. Для борьбы с сбоями возможно применить процедуры периодического контроля, которые сводятся к выполнению предопределенных детерминированных тестовых процедур (для функций шифрования это может быть, например, прогон тестовых примеров).
Информационная избыточность состоит в дублировании накопленных исходных и промежуточных данных, обрабатываемых программами. Избыточность используется для обеспечения достоверности данных при проведении криптографических преобразований и обычно реализуется в виде вычисления имитовставок. Так, многие популярные программы, реализующие функции шифрования, как правило, в заголовке зашифрованного файла хранят два значения: контрольную сумму шифрованного текста, которая используется для проверки его целостности, и контрольную сумму открытого текста, использующуюся для проверки правильности расшифрования данных.
Программная
избыточность используется для контроля
и обеспечения достоверности
наиболее важных решений по управлению
и обработке информации. Она заключается
в сопоставлении результатов
обработки одинаковых исходных данных
разными программами и
Последовательный
характер исполнения программ центральным
процессором приводит к тому, что
средства оперативного программного контроля
включаются после исполнения прикладных
и сервисных программ. Поэтому
средства программного контроля обычно
не могут обнаруживать возникновение
искажения вычислительного
Вместе с тем, обеспечение отказоустойчивости программной реализации ОС, хотя и направлено в целом на повышение надежности, не может решить такую проблему как обеспечение соответствия программной реализации заданной спецификации. Для решения этой проблемы используют методы предотвращения неисправностей в ПО.
Основные подходы к предотвращению неисправностей, как уже было отмечено выше, связаны с анализом природы возникновения ошибок, возникающих при разработке программного обеспечения, что в свою очередь подразумевает, анализ самого процесса разработки.
Процесс разработки ПО принято описывать моделями жизненного цикла программ различных классов и назначения. В модели жизненный цикл структурируется рядом крупных фаз или этапов, каждый из которых характеризуется достаточно определенными целями и результатами. Анализ существующих наработок в данной области позволяет сделать вывод о том, что основными фазами создания ПО являются:
Рассмотрим содержание каждой из фаз, в контексте решения задачи предотвращения неисправностей ПО.
Стремление к достижению большей надёжности ПО привлекает значительное внимание к самым ранним фазам цикла создания программ. Новейшая и наименее разработанная область обеспечения программной надежности ¾ область спецификаций требований. Анализ всей совокупности требований к системе ¾ технического задания (ТЗ) выполняется на начальной фазе создания программ. ТЗ составляется на основании перечня требований, предъявленных к системе заказчиком (классы решаемых задач, их характеристики и особенности, режим работы АС, сопряжение с внешними объектами, пропускная способность, время ответа и т.п. при заданных ограничениях на стоимость, длительность разработки и др.). Цель создания ТЗ ¾ уточнить и сформулировать задачи, возлагаемые на систему, согласовать требования заказчика и возможности исполнителя, составить техническое задание на ПО. Это делается для того, чтобы удостовериться в том, что от программ требуются только те системные требования, которые могут быть достигнуты.
Успехи в теории программирования и вычислений обеспечили начало использования формальных методов при разработке ПО. Формальный метод разработки систем состоит из трёх основных компонент:
Достоинство формальных методов заключается в том, что системы, разработанные с использованием подобного подхода, имеют принципиально высокое качество. При этом повышение качества достигается двумя путями:
Термин «верификация» используется для обозначения процедур, показывающих, что каждый шаг разработки является точным представлением предшествующего, и что окончательная программа является следствием своей спецификации.
Разработка формальной спецификации требует значительных усилий. Однако, как показывает практика, большинство ошибок, обнаруживаемых в конце жизненного цикла программ, и, следовательно, наиболее дорогих и сложных для исправления, возникает из-за ошибок в спецификации. Таким образом, для предотвращения неисправностей ПО рассмотренной фазе создания необходимо уделять особое внимание.
Представляется, что разработка формальных спецификаций наиболее адекватна процессу разработки ОС.
Основная
задача системного проектирования ПО
заключается в том, чтобы на основании
технического задания и детализирующего
его эскизного проекта
Теории
и общей методологии
Фаза исполнения включает в себя кодирование, интегрирование, а также тестирование и отладку.
С
каждой из фаз создания ПО связаны
свои специфические ошибки. С фазой
анализа и спецификацией
Системные ошибки определяются прежде всего неполной информацией о реальных процессах, происходящих в источниках и потребителя информации. Применительно к реализации криптографических алгоритмов можно говорить о неверном понимании, либо трактовке элементов алгоритма.
К алгоритмическим прежде всего относят ошибки, обусловленные некорректной постановкой задач, решаемых отдельными частями ПО. К ним также относят ошибки связей модулей и функциональных групп программ. В большинстве случаев их также можно свести к ошибкам в спецификациях.
Программные ошибки по количеству и типам, в первую очередь, определяются степенью автоматизации программирования и глубиной формализованного контроля текстов программ. Программные ошибки сильно зависят от выбранного языка программирования. Имеющаяся статистика показывает, что наибольший вес имеют ошибки неполной программной реализации функций алгоритма или неверный порядок реализации функций.
Таким образом, на основании анализа фаз создания ПО и допускаемых на них ошибок можно сделать вывод о том, что двумя основными разновидностями ошибок являются:
Предотвращение данных ошибок ¾ путь к обеспечению защиты от сбоев и неисправностей ПО, а также обеспечение точного соответствия программы заданному криптографическому алгоритму.
Процесс создания надежных программ должен быть подчинен определенным правилам, которые описываются методологией разработки. Из данных правил для программ, реализующих криптографические алгоритмы, наиболее подходящими являются:
Информация о работе Основные подходы к обеспечению качества программного обеспечения