Международные стандарты информационного обмена

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

Рубрика Программирование, компьютеры и кибернетика
Вид учебное пособие
Язык русский
Дата добавления 15.11.2012
Размер файла 229,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

- Иметь автоматическое управление. Может ли антивирусный продукт обнаружить и удалить вирусы без вмешательства пользователя? Может ли продукт запускаться автоматически через определенные промежутки времени (ежечасно, ежедневно, еженедельно)? Если да - можно включить эту функцию в сценарий входа в сеть или в AUTOEXEC.ВАТ.

- Обеспечивать установку привилегий. Можно ли так установить продукт, чтобы пользователь не мог изменить параметры без пароля?

- Обеспечивать регистрацию событий. Может ли продукт вести главный журнал сети, обновлять его при каждом запуске и записывать идентификатор рабочей станции?

- Обеспечивать хранение сигнатур в файле, а не внутри кода сканера

- Обеспечивать вывод на уровне ERRORLEVEL DOS. Это желательно для использования его в командных файлах

Антивирусное программное обеспечение

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

- Интегрированные контроллеры (integrity checkers) или программы проверки контрольной суммы (checksum programs) могут определить, изменилась ли ваша программа с момента последнего запуска программы проверки контрольной суммы. Любое заражение вирусом изменяет зараженную программу, и если вируса нет в памяти - значит, это изменение должна обнаружить программа контрольной суммы.

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

- Резидентные (TSR) программы и драйверы устройств могут быть установлены для наблюдения за вирусами или их действиями, а также для учета подозрительных действий (или предупреждения о них).

- Программы очистки (фаги) могут удалять зараженные файлы при их обнаружении или вирус из этих файлов

При использовании сканера для обнаружения вируса выполните следующее.

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

2. Запустите сканер с того диска, с которого вы загрузились, и сделайте это до запуска других программ, особенно если эти программы расположены не на том диске, с которого вы только что загрузились. Любой драйвер устройства, вызванный в CONFIG.SYS вашего жесткого диска, может содержать вирус. Просканируйте диск, с которого вы только что загрузились, и убедитесь, что он не заражен.

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

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

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

- Тест здравого смысла №1. Сколько файлов по сообщению вашего сканера заражено: один или много? Поскольку вирус, скорее всего, заражает более одного файла - любое "однофайловое" предупреждение, наверняка ложное. Обратитесь к пункту "Последний тест", где указаны шаги для дублирующей проверки результатов работы вашего сканера.

- Тест здравого смысла №2. Если ваш антивирусный продукт сообщает, что вирус находится в памяти, а не на диске, вспомните, запускали ли вы перед этим другой антивирусный продукт? Большинство антивирусных продуктов для обнаружения вируса используют строки сканирования Строки сканирования - часть кода вируса. Антивирусный продукт ищет файлы с этими строками. Некоторые антивирусные продукты не зашифровывают строки сканирования, оставляя некоторые строки сканирования в памяти. Если вы запустили антивирусный продукт А (который не зашифровывает свои строки сканирования) и следом запустите антивирусный продукт В - продукт В, вероятно, обнаружит оставленную строку сканирования в памяти и выдаст предупреждение.

- Последний тест. Выполните перезагрузку с чистой (незараженной), защищенной от записи дискеты. (Когда будете создавать эту спасательную дискету, убедитесь, что она содержит незараженную копию вашего антивирусного продукта). При перезагрузке память очистится так, что любая оставленная строка сканирования исчезнет. Теперь запустите незараженный антивирусный продукт и просканируйте снова Если сканер не нашел вирус, - запустите и протестируйте тот файл, который сначала вызывал у вас подозрение.

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

1. Ваш сканер утверждает, что может удалить вирус.

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

- Если сканер может переименовать файл, сделайте это.

- Если сканер не может переименовать файл, введите имя файла и переименуйте его вручную.

- Скопируйте переименованный файл на дискету.

- Позвольте сканеру уничтожить вирус из копии на дискете.

- Проверьте результаты:

- файл стал меньше, чем был в начале? Если это так, то файл поврежден. Вам нужно восстановить его из резервной копии, но перед тем убедитесь, что резервная копия не заражена;

- файл все еще запускается? Если нет, восстановите его из незараженной резервной копии;

- сообщает ли другой сканер о проблемах с этим файлом? Если второй сканер все еще находит часть вируса в программе, из которой вы пытались его удалить, вирус будет преследовать вас до тех пор, пока вы не замените программу резервной копией. Тщательное удаление не оставляет ни одного байта вируса в вашем очищенном файле.

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

2. Ваш сканер утверждает, что вирус нельзя удалить.

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

- Возьмите другой сканер и повторите сканирование. Делайте это до тех пор, пока не найдете сканер, который сможет удалить вирус.

- Если вы не можете найти сканер, который может удалить этот вирус, удалите этот файл и восстановите его из незараженной резервной копии.

- Постарайтесь больше узнать о вирусе. Попытайтесь определить, какие еще файлы он мог заразить и каким образом.

15. Характеристики средств защиты информации, создаваемые аппаратно-программными средствами

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

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

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

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

Рассмотрим некоторые программные средства защиты программного обеспечения от копирования.

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

Привязка к местоположению на диске

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

Запись ключа за логическими пределами файла

Как известно, DOS выделяет место под файлы целыми кластерами, в результате чего за логическим концом файла практически всегда имеется свободное пространство (до конца кластера). При копировании файла на другой диск реально переносятся только байты, соответствующие самому файлу, так как число копируемых байтов определяется логической длиной файла. Байты последнего кластера файла, находящиеся за логическими пределами файла, не копируются. Если в них записать ключ, то при копировании ключ исчезнет. Методика работы с программой не отличается от уже описанной. После записи рабочей программы на жесткий диск, она устанавливается с помощью специальной установочной программы (хранящейся на дискете). Установочная программа открывает файл с рабочей программой, перемещает указатель файла на его конец и записывает ключ (одно или несколько слов) за прежними пределами файла. Затем с помощью средств DOS файл укорачивается до прежней длины. В результате ключ оказывается физически прилегающим к файлу, но логически за его пределами. При использовании этого метода установочная программа должна перед записью ключа проанализировать длину файла. Если файл занимает целое число кластеров, его предварительно следует удлинить так, чтобы он занял часть следующего кластера, иначе некуда будет записать ключ. То же получится, если, скажем, при длине ключа 2 байта файл занимает целое число кластеров минус 1 байт. В этом случае файл также требует удлинения.

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

Ключевая дискета с нестандартным форматом

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

Такая ключевая дискета подготавливается специальной установочной программой, которая с помощью функции 05h прерывания BIOS 13h, форматирует, например, дорожку номер 40 (или 80) с размером сектора 256 байт вместо 512 и записывает на неё заданный ключ.

Рабочая программа перед началом осуществляет чтение нестандартной дорожки и при отсутствии самой дорожки или ключа на ней аварийно завершается.

Привязка к параметрам среды

Можно осуществлять защиту файла (т. е. выявлять факт незаконного копирования файла на другой компьютер) используя так называемую "привязку к параметрам среды" (т.е. к определенным характеристикам аппаратной и программной части ЭВМ). Для реализации этого метода обычно используют так называемый "пристыковочный модуль" (ПМ).

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

Требования к ПМ:

- подключение к файлу любого размера;

- исходный текст (код) защищаемого файла после подключения ПМ трудно отделить от защиты;

- ПМ не должен накладывать ограничений на защищаемый файл.

Характеристики, проверяемые ПМ:

- динамические;

- статические.

Динамические характеристики - это, например, скорость вращения жесткого диска (HDD), точная частота работы микропроцессора (CPU).

Недостаток динамических характеристик: сильная зависимость этих характеристик от температуры, влажности, напряжения, частоты сети, износа отдельных частей ЭВМ.

Статические характеристики - это, например:

- тип микропроцессора в совокупности с разрядностью шины данных;

- тип сопроцессора для работы с плавающей точкой;

- тактовая частота работы микропроцессора (с точностью до единиц мегагерц);

- тип ПЭВМ;

- дата регистрации BIOS;

- сигнатура производителя BIOS и её адрес в оперативной памяти, контрольная сумма байтов BIOS;

- размер основной оперативной памяти;

- размер расширенной памяти;

- размер дополнительной отображаемой памяти;

- тип клавиатуры;

- тип видеоадаптера;

- тип и интерфейс "мыши";

- число параллельных (LPT) портов;

- число последовательных (RS232) портов;

- тип и число НЖМД;

- тип и число НГМД.

Защита программного обеспечения от копирования с помощью электронных ключей

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

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

Интеллектуальные и физические возможности ключа во многом определяются той базой, на которой собран ключ. Современные ключи собирают на базе микросхем энергонезависимой электрически перепрограммируемой памяти, так называемой EEPROM-памяти (Electrically Erasable Programmable Read Only Memory); на базе заказных ASIC - чипов (Application Spesific Integrated Circuit) с памятью или без; на базе микропроцессоров.

Ключи на базе EEPROM

Это самые простые и недорогие ключи, выпускаемые для параллельного порта CENTRONICS. Для обеспечения каскадирования дополнительно используется мультиплексор. Количество ключей, которые могут работать каскадно, обычно не превышает трех. Из-за типовых схемотехнических решений эти ключи имеют "прозрачность" только для принтеров, работающих в стандартном протоколе CENTRONICS. Двунаправленный протокол, в котором работают современные лазерные и струйные принтеры (HP LJ, Stylus-850) обычно ими не поддерживаются, что сильно ограничивает перспективы их использования в будущем.

Размер памяти ключа, доступной на чтение/запись составляет примерно 128 байтов. Часть этой памяти используется для унификации ключа. В ней хранится некоторая служебная информация, тип ключа, идентификатор пользователя (Customer's code), серийный номер ключа (ID-number).

Ключи на базе ASIC- чипа

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

Перед изготовлением ключа под конкретного заказчика сначала специальным образом с помощью специальной аппаратуры программируется ASIC-чип. Как минимум в него заносится уникальный код, присвоенный этому заказчику, и может быть уникальный серийный номер изготавливаемого ключа. Количество комбинаций для кода заказчика составляет порядка 240-250. Эта информация будет доступна в дальнейшем только на чтение и ее нельзя будет изменить никакими средствами. Одним из главных критериев качества защиты является устойчивость к эмуляции. Эмуляторы электронного ключа могут быть как программные, так и аппаратные. При этом эмулироваться может не только протокол обмена ключа с портом, но и сам ключ. Ключи, построенные на базе EEPROM-памяти, используют для защиты от эмуляции так называемые "плавающие" или изменяемые и "зашумленные" протоколы обмена с портом. Ключи на базе ASIC-чипа имеют дополнительную защиту от эмуляции, реализованную в виде сложнейшей функции, статистический анализ которой не возможно провести за приемлемое время.

ASIC-чип обычно реализует некоторую сложную функцию y = f(x), где х - данные, передаваемые ключу из программы, у - данные, возвращаемые ключом в программу, f(х) - функция преобразования входных данных в выходные. Рассмотрим типичные представители ключей на базе ASIC-чипов.

Activator

Выполнен на базе запатентованного компанией Software Security ASIC-чипа, имеющего постоянную память (18 разрядов), однократно программируемую память (24 разряда) и реализующего некоторую функцию. Структурно функция реализуется с помощью восьми элементов: трех счетчиков, четырех селекторов и фиксатора.

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

Селекторы - шестиразрядные регистры, предназначенные для управления счетчиками. Операция "+1"/"-1" выполняется счетчиком в том случае, когда на вход селектора подано значение, прошитое в него при изготовлении. Так же производится и изменение направления счета.

Фиксатор - это входной накапливающий регистр, который подает данные на вход всех селекторов при поступлении управляющей команды.

Сигнал на выходе формируется либо как логическое "И", либо как логическое "ИЛИ" от всех счетчиков.

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

Wibu-Key

Ключ Wibu-Key выпускает немецкая компания WIBU Systems. Основа ключа - программируемый с помощью специального адаптера ASIC-чип. ASIC-чип имеет режим шифрования байта или блока с заданного адреса с одним из 65536 выбранных алгоритмов. Алгоритмы кодирования различны для производителей или пользователей. Ключ обеспечивает скорость шифрования порядка 50 Кбайтов за 500 мс на PC с тактовой частотой 10мГц. В одном ключе может быть записано до 10 кодов различных производителей или пользователей. Код производителя или код фирмы (24 бита) задается производителем ключей и не может быть изменен, код пользователя (24 бита) и номер кодирующего алгоритма (16 бит) программируется перед поставкой защищенного программного обеспечения.

HASP

Новое поколение ключей HASP (версия R3) выполнено на заказном ASIC-чипе, разработанном инженерами компании ALLADIN. Этот чип производится по 1,5-микронной технологии и содержит порядка 2500 вентилей на кристалле. Кристалл обеспечивает более высокий уровень защиты и полностью совместим с предыдущей версией, на основе которой производились ключи HASP. Ключ HASP (R3) имеет существенно меньшие размеры, чем его предшественник. Его длина составляет всего 39 мм.

Ключи на базе микропроцессоров

Электронные ключи, выполненные на базе микропроцессора, в основном предназначены для работы в открытых системах для защиты UNIX - приложений. Обычно микропроцессорные ключи подсоединяются к последовательному порту RS-232/432 рабочей станции и поддерживают платформы IBM RS6000, SUN, DEC Alpfa, Silicon Grapfics, HP, IBM-PC. Эти ключи выполняются как платформонезависимые.

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

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

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

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

Схемы построения защиты

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

- защитный "конверт" (Envelope);

- библиотечные функции обращения к ключу (API - Application Program Interface).

Оба способа обеспечения защиты имеют свое назначение и, по возможности, должны применяться совместно.

Защита с использованием пристыковочного механизма (Envelope)

Системы автоматической защиты (automatic implementation systems) предназначены для защиты уже готовых программ (DOS- или WINDOWS-приложений) без вмешательства в исходный код программы. Таким способом могут быть защищены COM и EXE-файлы, в том числе и содержащие внутренние оверлеи. Для встраивания защитного модуля внутрь готовой программы используется "вирусная" технология вживления и перехвата на себя управления после загрузки.

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

- проверяется наличие электронного ключа и считывание из него требуемых параметров;

- проверка "ключевых" условий и выработка решения.

В случае TRUE производится загрузка, расшифровка и настройка на выполнение тела защищенной программы и передача на нее управления после выгрузки защитного модуля из памяти.

В случае FALSE загрузка и расшифровка тела защищенной программы в память не производится. Обычно после этого выполняются некоторые маскирующие действия (типа Plug not found), и защищенное приложение заканчивает свое выполнение.

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

Преимущества этого способа:

- простота и легкость установки;

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

- наличие профессионального модуля антитрассировки и противодействия отладчикам.

Недостатки:

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

- использование только защитной оболочки не обеспечивает надежной защиты.

Защита с использованием функций API

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

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

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

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

Концепция многоуровневой защиты приложений с использованием API

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

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

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

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

- необходимость потенциальному взломщику детально разбираться в логике работы приложения, чтобы взломать защиту (а это иногда не под силу даже разработчику);

- автоматическое обеспечение идеологии разнесения "во времени" и "в пространстве" операций получения значений из ключа и их обработки по цепочке "основная программа" - "высокоуровневые процедуры" - "низкоуровневые процедуры".

16. Этапы управления доступом. Система управления доступом. Способы аутентификации личности

17. Парольная система аутентификации личности пользователя. Пароль пользователя. Вероятность подбора пароля. Атаки на парольную систему. Требования к парольной системе. Минимальная длина пароля. Издержки "человеческого фактора". Рекомендации по выбору паролей

Аутентификация: пароли и их современные разновидности

Личная ответственность - это ключ к управлению и защите любой системы, обрабатывающей информацию в интересах какого-либо лица или группы лиц. Такая ответственность требует идентификации (identification) (производимой обычно с помощью регистрационного имени, регистрационного идентификатора/идентификатора пользователя) и аутентификации (authentication) пользователя (обычно выполняемой с помощью пароля). Если аутентификация завершается неудачно, идентификация недействительна. Пароль - самый популярный метод аутентификации. И, как следствие, - самое слабое место в сети для успешного несанкционированного проникновения в нее.

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

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

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

Методы разрушения системы парольной защиты

Средства обхода парольной защиты

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

- Закройте все файл-серверы в комнате, в которую имеет доступ только администратор.

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

- Блокируйте клавиатуру, используя ключ на системном устройстве для закрытия сервера, когда он не используется.

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

Взлом системы парольной защиты путем перебора комбинаций

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

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

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

Рассмотрим ряд способов борьбы с перебором комбинаций.

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

В таблице 1. показано, как длина пароля влияет на продолжительность перебора всех комбинаций.

Табл. 1. Как длина пароля влияет на время перебора всех комбинаций

Длина

Кол-во комб.

Время перебора

1

36

36 сек

2

1296 (362)

21 мин

3

46656 (363)

12,96 ч

4

1679616 (364)

19,44 дней

5

365

1,9 г

6

366

69 л

7

367

2484 л

8

368

89456 л

Конечно, через 89456 лет компьютеры будут работать быстрее. Однако за это время бюджет, на который покушается злоумышленник, может устареть.

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

- Пользователи предпочитают короткие пароли потому, что они лучше запоминаются и при их вводе крайне редко встречаются ошибки. Чрезмерно длинные пароли занимают много времени при вводе и при этом увеличивается частота появления ошибок и сообщений INCORRECT PASSWORD ("Неверный пароль") или Access to server denied and you have been logged out ("Вам отказано в доступе к серверу, и вы отключены от системы"), что не слишком радует взор пользователя или посетителя.

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

Табл. 2. Как размер алфавита влияет на время перебора всех комбинаций

Длина пароля

Кол-во комбинаций (36 симв)

Кол-во комбинаций (256 симв)

1

36

256

2

1296 (362)

65536 (2562)

3

46656 (363)

16777216 (2563)

4

1679616 (364)

4294967000 (2564)

5

60466176 (365)

109951200000 (2565)

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

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

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

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

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

- Просматривайте локальные диски пользователей для того, чтобы убедиться в отсутствии программ взлома.

Проникновение в систему с помощью словарей

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

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

Попытка использования имени пользователя, не имеющего пароля

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

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

Предотвращение угадывания пароля

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

- Используйте пароли, которые генерируют компьютер. Затем позвольте каждому пользователю выбрать легкозапоминаемый пароль из списка сгенерированных паролей. Если по какой-то причине вы не можете этого сделать, используйте пароли, сгенерированные из фраз, которые легко запоминаются. Пользователь, который может запомнить "Now Is The Time For All Good Men То Come То The Aid Of Their Party", сможет запомнить и NITTFAGMTCTTAOTP.

- Войдите в систему как администратор и определите, какие пользователи не имеют пароля. (например, в NetWare выполните SECURITY.) Немедленно установите пароли для этих пользователей.

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

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

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

Предотвращение совместного использования пароля

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

- Убедите пользователей не вводить свои пароли, когда кто-то наблюдает за их руками или за экраном.

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

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

Проникновение в систему с помощью резидентных программ

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

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

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

- Изменяйте пароли всякий раз, когда подозреваете присутствие самозванца. Убедитесь, что пользователи знают, как в вашей сети изменить пароль.

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

- Проверяйте содержимое памяти.

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

Проникновение в систему во время длительных заседаний

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

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

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

- Убедите своих сотрудников отключать машины после работы.

Проникновение в систему с помощью LOGIN-троянского коня

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

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

Некоторые общие решения по проблеме паролей

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

Парольная защита приложений

Многие системы управления доступом к ПК требуют ввода паролей для доступа. Поищите такого рода программное и аппаратное обеспечение и попытайтесь преодолеть его парольную систему (например, на уровне операционной системы) перед тем, как его купить.

Сигнатуры в паролях

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

Модемы с обратным дозвоном

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

Опознавательные знаки

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

Интеллектуальные карты могут быть утеряны или украдены, но это не столь уж серьезная проблема. Банки решили эту проблему для банкоматов, требуя, кроме того, ввода запоминаемого пароля - персонального идентификационного номера (PIN - Personal Identification Number). Интеллектуальная карта не работает без PIN, а PIN не работает без интеллектуальной карты. Вы можете использовать тот же подход для защиты компьютера.

Персональные данные и устройства биометрического управления доступом

Термин 6иометрия происходит от греческих слов, означающих жизнь и измерение. Биометрическое управление доступом (BAC - Biometric Access Control) - это использование одной или более уникальных индивидуальных особенностей строения человеческого тела для того, чтобы убедиться, что вы - это вы, а не самозванец. Самый известный метод - дактилоскопия отпечатков пальцев. Но, кроме него, может, использоваться геометрия руки, глазное давление, степень нажатия при написании имени, а также образцы голоса. Устройство BAC идентифицирует человека по уникальным характеристикам его тела и на основании этого разрешает или ограничивает доступ к системе.

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

Использование устройства ВАС - двухэтапный процесс.

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

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

К сожалению, устройства ВАС имеют следующие недостатки:

- Они очень дороги.

- Устройства BAC несовершенны.

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

Основные принципы управления парольным доступом. Обязанности руководителя службы безопасности

Пароли в устанавливаемой системе

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

Допуск на изменение пароля

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

Идентификаторы групп

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


Подобные документы

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

    дипломная работа [354,2 K], добавлен 15.12.2012

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

    дипломная работа [2,4 M], добавлен 16.04.2014

  • Шифрование и дешифрование с помощью сети Фейстеля. Процесс блочного преобразования открытой информации в зашифрованную информацию. Таблица перевода чисел и букв. Криптостойкость шифра как показатель его эффективности. Подстановки и перемещение битов.

    курсовая работа [475,6 K], добавлен 30.12.2013

  • Конструкция, общее устройство и принцип действия накопителей на жестких магнитных дисках. Основные характеристики винчестеров: емкость, среднее время поиска, скорость передачи данных. Наиболее распространенные интерфейсы жестких дисков (SATA, SCSI, IDE).

    презентация [324,3 K], добавлен 20.12.2015

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

    курсовая работа [72,1 K], добавлен 22.05.2015

  • Изучение истории разработки компакт-диска. Версия Джеймса Рассела. Объем хранимых данных. Информационная структура накопителя. Физические принципы считывания, записи и перезаписи информации. Кодирование информации. Этапы производства компакт-дисков.

    контрольная работа [1,3 M], добавлен 08.12.2013

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

    курсовая работа [3,0 M], добавлен 24.11.2013

  • Семиуровневая архитектура, основные протоколы и стандарты компьютерных сетей. Виды программных и программно-аппаратных методов защиты: шифрование данных, защита от компьютерных вирусов, несанкционированного доступа, информации при удаленном доступе.

    контрольная работа [25,5 K], добавлен 12.07.2014

  • Запоминающие устройства на жестких магнитных дисках. Устройство жестких дисков. Интерфейсы жестких дисков. Интерфейс ATA, Serial ATA. Тестирование производительности накопителей на жестких магнитных дисках. Сравнительный анализ Serial ATA и IDE-дисков.

    презентация [1,2 M], добавлен 11.12.2013

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

    контрольная работа [2,9 M], добавлен 23.01.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.