Естественно-языковый интерфейс был наиболее привлекателен для общения с ЭВМ с момента ее появления. Это позволило бы исключить необходимость обучения конечного пользователя языку команд или другим приемам формулировки своих заданий для решения на компьютере, поскольку естественный язык является наиболее приемлемым средством общения для человека. Поэтому работы по созданию такого рода интерфейса начались с середины 20-го века. Однако, несмотря на весь энтузиазм исследователей и проектировщиков, эта задача не решена и по сей день из-за огромных сложностей, связанных с пониманием предложений естественного языка и связного текста в целом. Некоторые программные продукты, которые появлялись на рынке, носили скорее экспериментальный характер, имели множество ограничений и не решали задачу кардинально. Тем не менее, несмотря на кажущийся застой в этой сфере, данная проблема остается актуальной и по сей день и вошла в состав проблематики, связанной с проектом ЭВМ пятого поколения.
Экспертные системы впервые появились в области медицины. Возникла идея интеграции знаний экспертов в области медицины или ее отдельных разделов в некоторую электронную форму, которая позволила бы начинающему врачу иметь своеобразного электронного советника при принятии решений по тому или иному врачебному случаю. Выбор области медицины объясняется слишком большой ценой ошибок, которые касаются жизни и здоровья людей. Постепенно от области медицины эта технология распространилась и на другие сферы деятельности человека, например, производство. Технология использования экспертных систем предполагает первоначальное "обучение" системы, т. е. заполнение ее конкретными знаниями из той или иной проблемной области, а потом уже эксплуатацию наполненной знаниями экспертной системы для решения прикладных задач. Эта идеология проявила себя в проекте ЭВМ пятого поколения в части привлечения конечного пользователя к решению своих задач и связана с проблемой автоформализации знаний.
Интеллектуальные пакеты прикладных программ позволяют, аналогично экспертным системам, предварительно создавать базу знаний, включающую совокупность знаний из той или иной области деятельности человека, а затем решать практические задачи с привлечением этих знаний. Различие этих видов пакетов состоит в том, что экспертные системы, в отличие от интеллектуальных ППП, позволяют интегрировать знания из так называемых слабо формализуемых предметных областей, в которых сложно определить входные и выходные параметры задачи, а также невозможно сформировать четкий алгоритм ее решения. Кроме того, экспертные системы не формируют алгоритм решения задачи как в случае интеллектуальных ППП, а лишь выдают "советы" пользователю на основании его запроса.
Системы программирования
Современные системы программирования обычно предоставляют пользователям мощные и удобные средства разработки программ[5]. В них входят:
· компилятор или интерпретатор;
· интегрированная среда разработки;
· средства создания и редактирования текстов программ;
· обширные библиотеки стандартных программ и функций;
· отладочные программы, т. е. программы, помогающие находить и устранять ошибки в программе;
· "дружественная" к пользователю диалоговая среда;
· многооконный режим работы;
· мощные графические библиотеки; утилиты для работы с библиотеками
· встроенный ассемблер;
· встроенная справочная служба;
другие специфические особенности.
Популярные системы программирования – C++, Turbo Pascal, Turbo C.
В последнее время получили распространение системы программирования, ориентированные на создание Windows-приложений:
· пакет Borland Delphi (Дельфи) — блестящий наследник семейства компиляторов Borland Pascal, предоставляющий качественные и очень удобные средства визуальной разработки.[29] Его исключительно быстрый компилятор позволяет эффективно и быстро решать практически любые задачи прикладного программирования.
· пакет Borland C
· пакет Borland C++ – одно из самых распространённых средств для разработки DOS и Windows приложений.
Язык Паскаль был разработан в 1970г. Никласом Виртом как язык обучения студентов программированию.
Паскаль вырабатывает навыки соблюдения хорошего строгого стиля программирования (называемого структурным программированием), упрощающего разработку сложных программ.
В своем первоначальном виде Паскаль имел довольно ограниченные возможности, но расширенный вариант этого языка – Turbo Pascal, является очень мощным языком программирования.
Язык Си[6] (разработан Деннисом Ритчи в 1972 г.) соединяет свойства языка высокого уровня с возможностями эффективного использования ресурсов компьютера, которые обычно достигаются только при программировании на языке Ассемблера.
Си не очень прост в изучении и требует тщательности в программировании, но позволяет создавать сложные и весьма эффективные программы.
Си создавался программистами и для программистов, круг которых был бы ненамного шире круга разработчиков языка. Несмотря на это, область использования языка значительно шире задач системного программирования.
Си создавался с одной важной целью: сделать более простым написание больших программ с минимумом ошибок по правилам процедурного программирования, не добавляя лишних накладных расходов на итоговый код программы компилятором.
Язык Си++ возник в начале 1980-х годов, когда сотрудник фирмы Bell Laboratories Бьёрн Страуструп придумал ряд усовершенствований к языку Си под собственные нужды.
Си++ (англ. C++) – универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей C++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, C++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы.
В C++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т. п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем.
C++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из C++ программ можно использовать C библиотеки, и с C++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C.
Borland C++ Builder - среда быстрой разработки (RAD - Rapid Application Development). Предназначена для написания программ на языке программирования C++. C++ Builder объединяет библиотеку визуальных компонентов и среду программирования (IDE), написанную на Delphi с компилятором C++. Цикл разработки аналогичен Delphi, но с существенными улучшениями, добавленными в C++ Builder. Большинство компонентов, разработанных в Delphi, можно использовать и в C++ Builder без модификации, но, к сожалению, обратное утверждение не верно[7].
C++ Builder содержит инструменты, которые позволяют осуществлять настоящую визуальную разработку Windows-приложений методом drag-and-drop, упрощая программирование благодаря редактору интерфейса, встроенному в его среду разработки. Среда разработки показана на рисунке 4 (Приложение Г).
Система содержит Библиотеку из более 100 повторно используемых визуальных компонент, которые перетаскиваются мышью на форму и сразу становятся элементами управления прототипа вашей программы. Помимо известных элементов управления Windows (кнопки, линейки прокрутки, поля редактирования, простые и комбинированные списки и т. д.) Библиотека содержит новые компоненты поддержки диалогов, обслуживания баз данных и многие другие.
Благодаря графическим средствам интегрированной среды C++Builder, новички смогут быстрее освоить стиль объектно-ориентированного программирования на C++, чем при использовании традиционного программно-текстового интерфейса других систем.
Методы защиты информации
, выпускник НФ СГА 2009 года
Криптографические методы защиты информации. Криптография - наука о защите информации от прочтения ее посторонними. Защита достигается шифрованием, т. е. преобразованием, которое делает защищенные входные данные труднораскрываемыми по выходным данным без знания специальной ключевой информации - ключа. Под ключом понимается легко изменяемая часть криптосистемы, хранящаяся в тайне и определяющая, какое шифрующие преобразование из возможных выполняется в данном случае. Криптосистема-семейство выбираемых с помощью ключа обратимых преобразований, которые преобразуют защищаемый открытый текст в шифрограмму и обратно.
Желательно, чтобы методы шифрования обладали минимум двумя свойствами: законный получатель сможет выполнить обратное преобразование и расшифровать сообщение, криптоаналитик противника, перехвативший сообщение, не сможет восстановить по нему исходное сообщение без таких затрат времени и средств, которые сделают эту работу работу нецелесообразной.
По характеру использования ключа известные криптосистемы можно разделить на два типа: симметричные (одноключевые, с секретным ключом) и несимметричные (с открытым ключом)[8].
В шифраторе отправителя и дешифраторе получателя используется один и тот же ключ. Шифратор образует шифртекст, который является функцией открытого текста, конкретный вид функции шифрования определяется секретным ключом. Дешифратор получателя сообщения выполняет обратное преобразование аналогичным образом. Секретный ключ хранится в тайне и передается отправителем сообщения получателя по каналу, исключающему перехват ключа криптоаналитиком противника. Обычно предполагается правило Кирхгофа: стойкость шифра определяется только секретностью ключа, т.е. криптоаналитику известны все детали процесса шифрования и дешифрования, кроме секретного ключа.
Открытый текст обычно имеет произвольную длину: если его размер велик и он не может быть обработан вычислительным устройством шифратора целиком, то он разбивается на блоки фиксированной длины, и каждый блок шифруется в отдельности, независимо от его положения во входной последовательности.
Такие криптосистемы называются системами блочного шифрования.
На практике обычно используют два общих принципа шифрования: рассеивание и перемешивание. Рассеивание заключается в распространении влияния одного символа открытого текста на много символов шифртекста: это позволяет скрыть статистические свойства открытого текста. Развитием этого принципа является распространение влияния одного символа ключа на много символов шифрограммы, что позволяет исключить восстановление ключа по частям. Перемешивание состоит в использовании таких шифрующих преобразований, которые исключают восстановление взаимосвязи статистических свойств открытого и шифрованного текста. Распространенный способ достижения хорошего рассеивания состоит в использовании составного шифра, который может быть реализован в виде некоторой последовательности простых шифров, каждый из которых вносит небольшой вклад в значительное суммарное рассеивание и перемешивание. В качестве простых шифров чаще всего используют простые подстановки и перестановки. Известны также методы аналитического преобразования, гаммирования, а также метод комбинированного шифрования [15].
В реальности шифрование производится в двоичном коде с использованием коротких ключей - в DES длиной 64 бита, в ГОСТ 28147бит, что обеспечивает существенно большую криптостойкость. На основании короткого ключа компьютер создает длинный ключ - гамму, используя один из нескольких алгоритмов, изложенных в стандартах шифрования DES или ГОСТ. Алгоритмы создания гаммы - гаммирования - основаны на серии замен и сдвигов, возможно, с использованием шифртекста. Например, шифртекст в двоичном коде, полученный после шифрования первых 256 бит текста, можно подвергнуть нескольким циклическим сдвигам ("выталкиваемые" биты вставляются в начало), использовать в качестве ключа для шифрования следующих 256 бит и т. д. Алгоритмы шифрования не секретны, секретны только ключи. Для распространения ключей по сетям общего пользования используется следующая технология: через курьеров передаются ключи первого ранга, на их основе шифруются и передаются по сетям ключи второго ранга, используемые для шифрования документов. Сложность секретной передачи ключей привела к разработке технологии шифрования с открытым ключем - RSA (названа по инициалам авторов).
В асимметричных криптосистемах (криптосистемах с открытым ключом) в алгоритмах шифрования и дешифрования используются различные ключи, каждый из которых не может быть получен из другого с приемлемыми затратами временных и других ресурсов. Один ключ - открытый - используется для шифрования информации, другой – секретный - для дешифрования, т. е. прочесть сообщение может только тот, кому оно предназначено, например, глава фирмы, получающий сообщения от своих многочисленных агентов.
Системы электронной подписи основаны на асимметричном шифровании, но секретный ключ хранится у отправителя сообщений, а открытым ключем, созданном на основе секретного путем математического преобразования, располагают многие. Открытый ключ может быть передан вместе с сообщением. Но в этом случае шифруется не само сообщение, а его хэш-функция, получаемая из сообщения путем его преобразования по определенному алгоритму и занимающая всего несколько байт. Изменение хотя бы одного бита в тексте сообщения приводит к существенному изменению хэш-функции. Получатель сообщения может расшифровать зашифрованную хэш-функцию, переданную вместе с сообщением, создать хэш-функцию полученного сообщения, используя известный алгоритм, и сравнить расшифрованную и воссозданную хэш-функции. Их совпадение гарантирует целостность полученного документа, т. е. отсутствие в нем искажений. Получатель не может внести изменений в полученный документ, так как не может зашифровать новую хэш-функцию. Поэтому электронная подпись имеет такую же юридическую силу, как и обычная подпись и печать на бумаге. Секретные и открытые ключи, программы и аппаратура для систем электронной подписи поставляют лицензированные ФСБ фирмы, которые в случае необходимости могут представить в суд копии ключей.
Методы защиты информации в Интернет. Для выработки действенной методики защиты информации циркулирующей по каналам сети Интернет необходимо акцентировать внимание на основных проблемах с которыми придется столкнутся. Проблема сохранности: вы должны быть уверены, что ваши данные не повредятся и не исчезнут по причине чьего либо злонамеренного воздействия.
Проблема секретности: понятно, что вы не захотели бы сообщать конфиденциальную информацию (номер вашей кредитной карты или т. п.), если бы знали, что эта информация может попасть в чужие руки? Проблема целостности: вы должны иметь возможность определить, не была ли посланная вам информация изменена злоумышленником (хакером). Проблема подлинности: вы должны быть уверены в том, что компания, получающая вашу информацию, имеет хорошую репутацию. Проблема отказа от обязательств: как вам иметь возможность доказать, что сообщение было действительно послано. Для решения этих проблем применяется ряд средств, которые будут рассмотрены ниже.
Шифрование данных. Требования успешного, безопасного обмена информацией (транзакции) могут быть учтены с помощью такого популярного механизма защиты электронного обмена информацией, как шифрование с открытым ключом. Каждый использующий Сеть, например, для электронной торговли должен понимать важность проблемы безопасности персональной информации. Существуют несколько протоколов, которые обеспечивают защиту данных при выполнении транзакции. Речь идет о протоколах Secure Sockets Layer (SSL - уровень защищенных гнезд, протокол безопасных соединений) и SET - протокол защищенных электронных транзакций.
Каналы, по которым передаются данные в Интернет, не защищены. Следовательно, любая частная информация, которая передается по этим каналам, должна передаваться с использованием каких-либо средств защиты. Чтобы гарантировать защиту информации, данные можно зашифровать. Эту задачу решает криптография, с помощью которой данные трансформируются с использованием ключа шифрования. Зашифрованные данные становятся недоступными для всех, за исключением получателей этой информации. Нешифрованные данные называются открытым текстом; шифрованные данные называются зашифрованным текстом. Только получатели данных должны иметь соответствующий ключ, позволяющий им перевести шифрованный текст в открытый текст. В прошлом, организации, желающие работать в безопасной вычислительной среде, использовали симметричные криптографические алгоритмы, также известные под именем шифрования с закрытым ключом, в которых один и тот же закрытый ключ использовался и для шифрования и для расшифровки сообщений. В этом случае отправитель шифровал сообщение, используя закрытый ключ, затем посылал зашифрованное сообщение вместе с закрытым ключом получателю. Такая система имела недостатки. Во-первых, секретность и целостность сообщения могли быть скомпрометированы, если ключ перехватывался, поскольку он передавался от отправителя к получателю вместе с сообщением по незащищенным каналам. Кроме того, так как оба участника транзакции используют один и тот же ключ для шифрования и дешифрования сообщения, вы не можете определить, какая из сторон создала сообщение. В заключение нужно сказать, что для каждого получателя сообщений требуется отдельный ключ, а это значит, что организации должны иметь огромное число закрытых ключей, чтобы поддерживать обмен данными со всеми своими корреспондентами[9].
Для электронной торговли требуется высокая степень защиты. Шифрование с открытым ключом - асимметричное шифрование - является более безопасным методом. В этом подходе используются два связанных ключа - открытый ключ и закрытый ключ. Закрытый ключ сохраняется в секрете его владельцем, открытый ключ распространяется свободно. Если открытый ключ используется для шифрования сообщения, то только соответствующий ему закрытый ключ может расшифровывать это сообщение. И наоборот. Каждая сторона транзакции имеет как открытый, так и закрытый ключ. Чтобы передавать сообщение с большей надежностью, отправитель при шифровании сообщения использует открытый ключ получателя. Получатель расшифровывает сообщение, используя свой уникальный закрытый ключ получателя. Поскольку никто не знает закрытого ключа, то сообщение не может быть прочитано никем другим, кроме как получателем сообщения. Таким образом, гарантируется секретность сообщения.
Цифровая подпись, электронный эквивалент традиционной подписи, была разработана для использования в алгоритмах шифрования с открытым ключом для решения проблемы подлинности и целостности. Цифровая подпись позволяет получателю быть уверенным в том, что послание действительно было послано отправителем. Цифровая подпись, подобно рукописной сигнатуре, служит доказательством подлинности письма и ее также трудно подделать. Чтобы создать цифровую подпись, отправитель должен пропустить первоначальное открытое сообщение через функцию хеширования, которая выполняет математические вычисления, в результате выполнения которых вычисляется значение хэш-функции. Хэш-функция может быть очень простой, и, например, может выполнять сложение всех единиц в двоичном представлении текста сообщения, хотя обычно эти функции выполняют более сложные вычисления. Вероятность того, что два различных сообщения будут иметь одно и то же значение хэш-функции, статистически ничтожна. Отправитель использует свой закрытый ключ, чтобы зашифровать значение хэш-функции, создавая, таким образом, цифровую подпись и подтверждая подлинность сообщения, потому что только владелец закрытого ключа мог выполнить такое шифрование. Первоначальное сообщение, зашифрованное открытым ключом получателя, цифровая подпись и значение хэш-функции посылается получателю [23]. Получатель использует открытый ключ отправителя, чтобы декодировать цифровую подпись и получить значение хэш-функции. Получатель затем использует свой собственный закрытый ключ, чтобы декодировать первоначальное сообщение. В заключение получатель применяет хэш-функцию к первоначальному сообщению. Если полученное значение хэш-функции для исходного сообщения соответствует значению, включенному в цифровую подпись, это служит свидетельством целостности сообщения, то есть того, что оно не было изменено в процессе передачи по каналам связи.
Одна из проблем шифрования с открытым ключом состоит в том, что кто-либо, обладающий набором ключей, потенциально может попытаться изобразить из себя отправителя сообщения. Предположим, что заказчик хочет поместить заказ в электронном магазине. Как заказчик может узнать, что Web-сайт, на который он обращается, действительно принадлежит этому торговцу, а не некоему третьему лицу, которое маскируется под сайт торговца с целью получить информацию о кредитных картах? Инфраструктура открытого ключа (Public Key Infrastrukture — PKI) позволяет решить этот вопрос с помощью цифровых сертификатов, удостоверяющих подлинность сообщений. Цифровые сертификаты распределяются специальной организацией — certification authority (CA) — и подписываются закрытым ключом этой организации. Цифровой сертификат включает имя участника (организации или человека), его открытый ключ, серийный номер, срок годности сертификата, разрешение от поставщика сертификатов и любую другую информацию, имеющую отношение к теме. В качестве CA может выступать финансовая организация или другая организация, например VeriSign, которая выдает сертификаты и открытые ключи своим клиентам, для опознания этих клиентов. CA берет на себя ответственность за сертификат, поэтому сведения о получателе сертификата тщательно проверяются перед выдачей цифрового сертификата. Доступ к цифровым сертификатам открыт, а содержатся они в архивах сертификатов.
Компания VeriSign, Inc. - один из лидеров защиты электронных данных. VeriSign разрабатывает PKI и решения для цифровых сертификатов.
Многие люди по прежнему считают электронную торговлю опасным занятием, нескольку им кажется, что данные в этой технологии не защищены. На самом деле транзакции, использующие PKI и цифровые сертификаты, защищены лучше, чем информация, передаваемая по телефонным линиям, по почте или при проведении платежей с помощью кредитной карты. Алгоритмы шифрования с ключом, используемые в большинстве транзакций, почти невозможно скомпрометировать. По некоторым оценкам, алгоритмы шифрования с ключом, используемые в криптографической защите с открытым ключом, настолько безопасны, что даже миллионы компьютеров, работающих параллельно, не смогут раскрыть шифр даже за сто лет работы.
RSA Security, Inc. — признанный лидер средств защиты электронных данных. RSA была основана в 1982 году тремя профессорами MIT (Rivest, Shamir и Adleman) — изобретателями системы криптографической защиты RSA Public Key Cryptosystem. Их технологии шифрования и идентификации используются большинством ведущих компаний и компаниями, занимающимися электронной торговлей. С появлением Интернет и Всемирной паутины их работа, связанная с защитой, стала более значимой, а в приложениях электронной торговли — играет определяющую роль. Их программы шифрования встраиваются больше чем в 450 миллионов копий популярных приложений Интернет, включая браузеры, коммерческие серверы и системы электронной почты. Безопасные транзакции электронной торговли и безопасная связь в Интернет реализуются, в основном, с помощью программ RSA [19].
Парольные методы защиты. По функциональному назначению парольный вход, как правило, используется для контроля загрузки системы, контроля функционирования, с целью блокировки и контроля доступа. Для ввода пароля используется клавиатура или более современные методы, такие как голосовой набор или интерактивный набор пароля.
С целью контроля загрузки может устанавливаться процедура идентификации и аутентификации пользователя перед началом загрузки системы, например, встроенными средствами BIOS. В этом случае выполнить загрузку системы сможет только санкционированный пользователь.
Идентификация.
Идентификация призвана каждому пользователю (группе пользователей) сопоставить соответствующую ему разграничительную политику доступа на защищаемом объекте. Для этого пользователь должен себя идентифицировать – указать своё «имя» (идентификатор). Таким образом проверяется, относится ли регистрирующийся пользователь к пользователям, идентифицируемым системой. И в соответствии с введённым идентификатором пользователю будут сопоставлены соответствующие права доступа.
Аутентификация.
Аутентификация предназначена для контроля процедуры идентификации. Для этого пользователь должен ввести пароль. Правильность вводимого пароля подтверждает однозначное соответствие между регистрирующимся пользователем и идентифицированным пользователем.
Для решения задачи контроля функционирования вычислительной системы при помощи пароля выделяются:
1. Контроль пользователя при доступе в систему. Реализуется в том числе штатными средствами ОС.
2. Контроль при запуске процесса. Благодаря этому при запуске некоторых приложений может быть установлена парольная защита. Прежде всего, здесь интерес представляет установка пароля ответственного лица.
3. Контроль при доступе к локальным ресурсам. Например, при доступе к локальному принтеру и т. д. также может использоваться аутентификация ответственного лица[10].
4. Контроль при доступе к сетевым ресурсам. Реализуется, в том числе штатными средствами ОС. Например, доступ к ресурсам можно разделить паролем.
В качестве реакции на несанкционированные действия пользователя системой защиты может устанавливаться блокировка некоторых функций: загрузки системы, доступа в систему, учётных записей пользователя, запуска определённых приложений. Для снятия блокировки необходима авторизация администратора безопасности или ответственного лица. Кроме того, пользователь может сам выставит блокировку на доступ к системе и к приложениям, и т. д., чтобы доступ в систему и к этим приложениям в его отсутствии был блокирован. Для разблокировки приложения в его отсутствии был блокирован. Для разблокировки приложения необходимо авторизоваться текущему пользователю. При этом администратор безопасности может блокировать учетные записи пользователей для входа в систему в нерабочее время.
С учётом введенной классификации может быть сделан вывод о функциональном назначении применения механизмов парольной защиты:
1. С целью контроля загрузки может устанавливаться возможность контроля пользователя перед началом загрузки системы. Кроме того, контроль пользователя может осуществляться при задании способа и при доступе к заданию режима загрузки.
2. С целью контроля доступа выделяется контроль пользователя при доступе в систему. Также могут иметь место контроль при запуске процесса (прежде всего, здесь интерес представляет установка пароля ответственного лица) и контроль при доступе к локальным и сетевым ресурсам.
3. С целью снятия блокировки используется контроль администратора безопасности. Кроме того, пользователь может выставить блокировку на некоторые приложения и т. д. Для их снятия существует контроль пользователя.
Особенности парольной защиты, исходя из принадлежности пароля. С точки зрения принадлежности пароля в классификации выделены «пользователь», к которому относится прикладной пользователь системы и администратор, а также «ответственное лицо», в качестве которого может, например, выступать начальник подразделения. Авторизация ответственного лица может устанавливаться для реализации физического контроля доступа пользователя к ресурсам, прежде всего, к запуску процесса. При этом особенностью здесь является то, что авторизация ответственного лица осуществляется не при доступе в систему, а в процессе функционирования текущего пользователя. Например: требуется обеспечить физически контролируемый доступ к внешней сети. На запуск соответствующего приложения устанавливается механизм авторизации ответственного лица (его учётные данные хранятся в системе защиты). Тогда при запуске соответствующего приложения появится окно авторизации ответственного лица, и
приложение может быть запущено только после его успешной авторизации. При этом приложение запускается только на один сеанс.
Таким образом, приложение физически запускается ответственным лицом с локальной консоли защищаемого объекта. В результате ответственное лицо будет знать, кто и когда запросил доступ в сеть lntemet, так как сам принимает решение - разрешать доступ или нет. Если доступ разрешается, ответственное лицо может полностью контролировать данный доступ, т. к. запуск приложения возможен только в его присутствии. В соответствии с классификацией принадлежности учетной записи введена и классификация способов задания учетных данных (идентификаторов и паролей). Соответсвенно назначение учетных данных могут осуществлять как владелец учетной записи, так и администратор (принудительно) [14].
Реализация механизмов парольной защиты.
Ввод идентификатора и пароля может осуществляться, как с применением штатных средств компьютера - клавиатуры, устройств ввода (например, дисковод - с дискеты), так и с использованием специализированных устройств аутентификации - всевозможных аппаратных ключей, биометрических устройств ввода параметров и т. д. Естественно, что для сравнения вводимой и эталонной информации, эталонные учетные данные пользователей должны где-то храниться. Возможно хранение эталонных учётных данных непосредственно на защищаемом объекте. Тогда при вводе учётных данных из памяти считываются эталонные значения и сравниваются с вводимыми данными. Кроме того, эталонные данные могут располагаться на сервере. Тогда эталонные значения на защищаемом объекте не хранятся, а вводимые данные передаются на сервер, где и сравниваются с эталоном. При этом именно с сервера разрешается или запрещается доступ субъекту, который ввел учетные данные. Очевидно, что хранить эталонный пароль как на защищаемом объекте, так и на сервере в открытом виде недопустимо. Поэтому для хранения пароля используется необратимое преобразование (Хеш-функция), позволяющая создавать некий образ пароля - прямое преобразование. Этот образ однозначно соответствует паролю, но не позволяет осуществить обратное преoбразoвание - из образа восстановить пароль. Образы паролей уже могут храниться на защищаемом объекте, т. к. их знание не позволяет злоумышленнику восстановить исходный пароль.
Угрозы преодоления парольной защиты.
Данная классификация вводится как в соответствии со статистикой известных угроз, так и в соответствии с потенциально возможными угрозами. Кроме того, при построении данной классификации учитывался анализ принципов работы механизмов идентификации и аутентификации. Рассмотрим представленные угрозы. Наиболее очевидными явными угрозами являются физические – хищение носителя (например, дискеты с паролем, электронного ключа с парольной информацией и т. д.), а также визуальный съём пароля при вводе (с клавиатуры, либо с монитора). Кроме того, при использовании длинных сложных паролей пользователи подчас записывают свой пароль, что также является объектом физического хищения (см. Приложение Б, рисунок 4).
Технические угрозы.
К техническим явным угрозам можно отнести подбор пароля – либо автоматизированный (вручную пользователем), либо автоматический, предполагающий запуск пользователем специальной программы подбора паролей. Кроме того, для сравнения вводимого и эталонного значений пароля, эталонное значение пароля должно храниться на защищаемом объекте (либо на сервере в сети). Это эталонное значение без соблюдения соответствующих мер по хранению паролей (хеширование, разграничение доступа к области памяти или реестра, где хранятся пароли), может быть похищено злоумышленником[11].
Естественно, что наиболее опасными являются скрытые угрозы, например:
1. Технический съем пароля при вводе;
2. Модификация механизма парольной защиты;
3. Модификация учетных данных на защищаемом объекте.
Первая группа скрытых угроз наиболее очевидна. Пароль должен быть каким-либо образом введен в систему - с клавиатуры, со встроенного или дополнительного устройства ввода, из сети (по каналу связи). При этом злоумышленником может быть установлена соответствующая программа, позволяющая перехватывать поступающую на защищаемый объект информацию. Развитые подобные программы позволят автоматически фильтровать перехватываемую информацию по определенным признакам - в том числе, с целью обнаружения паролей. Примером таких программ могут служить сниферы клавиатуры и канала связи. Например, снифер клавиатуры позволяет запоминать все последовательности нажатий кнопок на клавиатуре (здесь пароль вводится в явном виде), а затем фильтровать события по типам приложений.
Злоумышленник, установив подобную программу, и задав режим ее запуска при входе в систему какого-либо пользователя, получит его пароль в открытом виде. Затем, например, троянская программа может выдать этот пароль по сети на другую рабочую станцию. Таким образом, если в системе зарегистрировано несколько пользователей, то один пользователь может узнать пароль другого пользователя, а затем осуществить доступ в систему с правами последнего и т. д.
Второй тир скрытых угроз предполагает возможность отключить механизм парольной защиты злоумышленником, например, загрузить систему с внешнего носителя (дисковода или CD-ROM). Если механизм парольной защиты представляет собой некий процесс (в добавочной системе защиты), то выполнение данного процесса можно остановить средствами системного монитора, либо монитора приложений, например, встроенными средствами в оболочку Far. Подобная возможность существует для ОС Windows 9Х/Ме.
Третья группа скрытых угроз заключается в модификации учетных данных на защищаемом объекте. Это осуществляется либо путем их замены, либо путем сброса в исходное состояние настроек механизма защиты. примером может служить известная программная атака на BIOS - сброс настроек BIOS в исходное состояние посредством изменения контрольных сумм BIOS.
Из сказанного может быть сделан весьма важный вывод, подтверждающий, сделанные ранее: каким бы ни был механизм парольной защиты, он сам по себе в отдельности, без применения иных механизмов защиты, не может обеспечить, сколько-нибудь высокого уровня безопасности защищаемого объекта.
Другой вывод состоит в том, что невозможно сравнивать между собою альтернативные подходы к реализации механизма защиты (в частности, механизма парольной защиты), так как можно оценивать лишь уровень защищенности, обеспечиваемый всей системой защиты в целом, то есть обеспечиваемый совокупностью механизмов защиты (с учетом их реализации), комплексированных в системе.
Виртуальные частные сети. Виртуальная частная сеть (VPN). Технология виртуальных частных сетей помогает решить многие проблемы безопасности. В результате ее применения фактически весь поток информации, проходящий между сегментами корпоративной сети по открытым каналам связи, передается в шифрованном виде. Доступ легальных пользователей из открытой сети во внутреннюю корпоративную сеть осуществляется на основе процедур аутентификации и авторизации. Виртуальные частные сети предоставляют довольно высокий уровень защиты информации, однако они же могут быть источником серьезной угрозы. В случае использования виртуальных частных сетей основной интерес злоумышленника будет проявлен к тем местам в сети, где информация, представляющая для него интерес, вероятно, не является защищенной, то есть к узлам или сетям, с которыми установлены доверительные отношения. Соответственно основные усилия злоумышленник будет прилагать для установления таких доверительных отношений с системой. Сделать это можно даже только с помощью пассивных средств, например, перехватывая сеанс аутентификации легального пользователя (см. Приложение А, рисунок 2). Кроме того, в случае компрометации доверенной системы эффективность его дальнейших атак будет крайне высока, поскольку зачастую требования по безопасности к доверенным узлам и сетям намного ниже всех остальных узлов. Злоумышленник сможет проникнуть в доверенную сеть, а уж затем из нее осуществлять несанкционированные действия по отношению к цели своей атаки.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 |


