Программно-аппаратные методы защиты

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

Решение этих задач в системах защиты обеспечивается следующими спо­собами:

1) защитой от несанкционированного доступа (НСД) к ресурсам со сторо­ны пользователей и программ;

2) защитой от несанкционированного использования (НСИ) ресурсов при наличии доступа;

3) защитой от некорректного использования ресурсов;

4) внесением структурной, функциональной и информационной избыточ­ности;

5) высоким качеством разработки программно-аппаратных средств.
Рассмотрим перечисленные способы более подробно и укажем методы их реализации.

1. Для защиты от НСД прежде всего необходима эффективная система регистрации попыток доступа в систему со стороны пользователей и про­грамм, а также мгновенная сигнализация о них отвечающим за безопасность ВС лицам. Именно отсутствие надежной системы регистрации и сигнализа­ции при НСД, а также наличие обходных путей или «дыр» в ВС, является причиной незаконного проникновения в систему. Чтобы регистрировать со­бытия подключения к системе, в ВС обычно ведется специальный журнал

или база данных.

Защита от НСД со стороны пользователей в современных системах в ос­новном реализуется двумя основными способами: парольной защитой, а так­же путем идентификации и аутентификации.

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

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

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

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

§ запрос секретного пароля;

§ запрос какой-либо информации сугубо индивидуального;

§ проверка наличия физического объекта, представляющего собой элект­ронный аналог обычного ключа (электронный ключ);

§ применение микропроцессорных карточек;

§ активные средства опознавания;

§ биометрические средства.

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

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

Существуют различные варианты реализации жетонов. Одним из первых довольно удачных решений является жетон SecurlD американской фирмы Security Dynamics, появившийся в 1987 году. В нем генерируемая случайным образом буквенно-цифровая последовательность (пароль) меняется пример­но раз в минуту синхронно с паролем в центральной части системы защиты. Это значит, что каждый новый пароль имеет ограниченное время действия. Сами пароли постоянно изменяются, усложняя подбор со стороны зло­умышленников. Каждый пароль при этом пригоден для однократного входа в систему. Жетоны SecurlD популярны и в настоящее время как средства аутентификации пользователей. Другим интересным решением является устройство фирмы SmartDisk Security, использующее 3.5-дюймовый диско­вод и дискеты в качестве жетонов.

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

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

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

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

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

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

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

2. Обеспечение защиты от НСИ ресурсов, как и от НСД, требует примене­ния средств регистрации запросов защищаемых ресурсов ВС и сигнализации в случаях попыток незаконного их использования. Заметим, что речь ведется о важнейших с точки зрения защиты ресурсах. Если постоянно регистриро­вать все события обо всех запросах на ресурсы в ВС, на остальную работу не хватит процессорного времени.

Для защиты информационно-программных ресурсов ВС от несанкциони­рованного использования применяются следующие варианты защиты: от копирования, исследования (программ), просмотра (данных), модификации и удаления. Приведем примеры их применения.

Для защиты программы от несанкционированного копирования можно в исполняемом коде выполнить привязку к оборудованию. Тогда копия про­граммы не будет работать на другом компьютере.

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

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

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

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

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

Шифрование данных осуществляется в темпе поступления информации (On-Line) и в автономном режиме (Off-Line). Первый способ применяется в основном в системах приема-передачи информации, а второй - для засекре­чивания хранимой информации.

В современных системах защиты в основном применяется два алгоритма: DES и RSA. Коротко их рассмотрим.

Стандарт шифрования данных - Data Encryption Standard (DES) разра­ботан фирмой IBM в начале 70-х годов, рекомендован Ассоциацией Амери­канских Банкиров и является правительственным стандартом цифрового шифрования.

В алгоритме DES используется ключ длиной 56 бит и 8 бит проверки на четность. Он обеспечивает высокую степень защиты при небольших расхо­дах на шифрование, требуя для подбора ключевой комбинации перебора 72 квадриллионов вариантов.

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

Другой алгоритм - RSA (сокращение по фамилиям авторов) предложен Ривестом, Шамиром и Альдеманом в 1976 году. Алгоритм является более со­вершенным и принят в качестве стандарта Национальным Бюро Стандартов.

В алгоритме RSA используются различные ключи для шифрования и де­шифрования, т. е. он является асимметричным. Поскольку ключ для шифро­вания не годится для дешифрации, его можно смело передавать по сети, а поэтому ключ шифрования часто называют открытым ключом.

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

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

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

3. Защита от некорректного использования ресурсов традиционно выпол­няется программами ОС. Функции защиты от некорректного использования ресурсов ВС предусматривают, по крайней мере, следующие действия: изо­лирование друг от друга участков оперативной памяти, выделенных различ­ным программам, защиту системных областей внешней памяти и контроль допустимости команд ЦП.

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

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

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

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

Информационное резервирование используется для предотвращения пол­ной потери информации и реализуется путем одноразового или периодиче­ского копирования и архивирования наиболее ценной информации. К ней прежде всего можно отнести прикладные программы пользователя, а также данные различных видов: документы, БД, файлы и т. д., а также основные программы ОС, типовое ПО (СУБД, текстовые, табличные и графические процессоры и т. п.).

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

Примером архиватора, позволяющего создавать защищенные паролем ар­хивные файлы, являются программы pkzip и pkunzip фирмы PKWARE Inc. Основной функцией первой из них является создание архива (при этом не­обходимо указать пароль), а вторая - выполняет полное или частичное вос­становление в первоначальный вид.

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

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

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

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

Например, при проектировании программного обеспечения широко при­меняются методы объектно-ориентированного и визуального программи­рования.