Тема 5. Архитектура безопасности
5.1 Конфиденциальность
5.2 Целостность
5.3 Доступность
5.4 Приложения архитектуры безопасности данных
5.5 Вирусы и антивирусы
Конфиденциальность
С момента начала использования компьютерных технологий во всех сферах деятельности человека, появилось много проблем, связанных с защитой конфиденциальности. Главным образом это связано с обработкой документов с применением компьютерных технологий. Многие административные меры по защите конфиденциальности частных лиц и организаций утратили свою силу в связи с переходом документооборота в абсолютно новую среду.
При получении личных писем, при заключении договоров, во время деловой переписки, при телефонных разговорах со знакомыми и незнакомыми людьми, человек пользовался различными средствами аутентификации. Личные письма отправлялись с указанием существующего почтового адреса или имели штамп именно тех почтовых отделений, где проводилась обработка таких писем. При заключении договоров применялись бланки, произведенные на типографиях, на которых с использованием пишущих машинок, имевших уникальные серийные номера, печатался текст, который затем подписывался должностным лицом и заверялся печатью организации. При разговорах по телефону, достоверно было известно, что разговор ведется именно с тем человеком, голос которого был ранее известен. Многие сотни административных мер были направлены на защиту конфиденциальности при общении людей.
С внедрением компьютерных технологий в жизнь человека многое изменилось. При использовании, например, электронной почты появилась возможность указания несуществующего обратного адреса или имитации получения письма от знакомого человека. При повседневном общении через сеть Интернет многие признаки, идентифицирующие того или иного человека в обычной жизни (пол, возраст, степень образования), перестали быть таковыми. Появилась так называемая «виртуальная реальность».
Быстро и эффективно решить проблемы связанные с защитой конфиденциальности в компьютерных системах невозможно. Появилась необходимость в комплексном подходе к решению данных проблем. Этот подход должен предполагать использование организационных и правовых мер, а также программно-аппаратных средств, обеспечивающих защиту конфиденциальности, целостности и доступности.
Было время, когда содержание данных в секрете не представляло особых сложностей. Сотни лет назад, когда грамотными были лишь немногие люди, письменная информация уже сама по себе была секретной. Для хранения секрета нужно было знать, для кого доступна информация, и предотвращать возможность посторонних лиц обучаться чтению. Это звучит слишком примитивно, однако, согласитесь, что сложно понять суть документа, если он написан на незнакомом языке.[30]
История показывает, что важные секреты содержались посредством их записи и оберегания от попадания в руки грамотных людей. Персидские пограничники в IV веке до н.э. позволили передать пустые восковые таблички, в которых, на самом деле, были скрыты сообщения грекам о предстоящей атаке на их страну, заполированные тонким слоем свежего воска. Переписчики также татуировали бритые головы курьеров, нанося на них сообщения. Когда волосы отрастали, курьеры могли инкогнито преодолевать вражеские территории, после чего в пункте назначения их головы брили и, таким образом, обнаруживали сведения. Однако судьба государств не могла слишком долго зависеть от подобных методов сокрытия информации. Прошло еще немного времени, и древние военачальники разработали и начали использовать более сложные подходы.
Появилась концепция сокрытия смысла сообщения. Народы древних цивилизаций, как известно, любили сложные загадки. Что может быть интереснее, чем скрыть сообщение с использованием последовательности шагов? Если не знать, какие шаги были предприняты для сокрытия информации (т.е. какой алгоритм использовался для создания шифра - имени замаскированного сообщения), нельзя раскрыть сообщение без приложения больших усилий. Удивительно, но каждый знает, что разгадка неразрешаемой задачи требует привлечения лучших умов для ее разрешения. В конечном счете, каждый код был взломан и каждый секрет был раскрыт. Вскоре появились создатели кода и его взломщики, работающие на всех сторонах-оппонентах. Началась своеобразная «игра».[31]
Первые попытки шифрования основывались на методе перестановки. В словах сообщений просто изменялся порядок букв. Разумеется, для этого был необходим определенный алгоритм, иначе получатель не смог бы расшифровать сообщение. Использование шифра «Сцитала» спартанцами в V веке до н. э. является первым упоминанием о схеме шифрования посредством перестановки. На ветку наматывали лист бумаги с сообщением, после чего бумага разматывалась и занесенная на нее информация становилась нечитабельной. Если курьер попадал в плен, то передаваемое им сообщение враг не мог расшифровать. Если он успешно добирался до пункта назначения, то сообщение наматывалось на точно такую же ветвь и прочитывалось.
В других ранних криптографических попытках (современная криптография наука о защите данных посредством шифрования) использовался метод подстановки. В алгоритме подстановки каждый символ сообщения просто заменяется другим, как в шифре Цезаря. Аналогичные шифры используют школьники, чтобы скрыть от преподавателя то, что на самом деле написано на бумаге. Для создания таких сообщений следует совместить с текстом алфавит соответствующего языка и согласовать с получателем начальную букву. Предположим, абоненты договорились начать с четвертой буквы латинского алфавита D. Начиная с этой буквы, под старым алфавитом записывается новый алфавит.
Для записи зашифрованного сообщения следует просто каждый раз подставлять букву во втором ряду, соответствующую каждой букве из первого ряда. Таким образом, сообщение «The administrator password is password* примет вид «Wkh dgplqlvwudwru sdwzrug lv sdwzrug*. Очевидно, чтобы расшифровать сообщение, нужно просто взять соответствующие буквы зашифрованного сообщения во второй строке и заменить их буквами в первой строке.
Такие коды интересны, но в действительности их довольно просто взломать. Возможно, ваш код никогда не был взломан, однако, в XVI веке шифр, используемый королевой Шотландии Марией, был успешно раскрыт. Мария зашифровала текст, в котором говорилось о свержении королевы Англии Елизаветы, однако ее планы были обнаружены и раскрыты, после чего она была казнена.[32]
Использовать коды, в которых единственным залогом сохранности сообщения является знание алгоритма шифрования, не рекомендуется. Рано или поздно кто-то все равно расшифрует алгоритм, и все усилия окажутся напрасными. Моноалфавитные алгоритмы шифрования (алгоритмы, в которых используется один алфавит), такие как описанный выше шифр, легко взломать посредством статистического анализа. Он основан на том, что некоторые буквы в письменном языке встречаются чаше.
При наличии достаточно большого фрагмента шифрованного текста можно применить эти статистические знания для взлома кода. Статистический анализ является примером криптоанализа (анализ криптографических алгоритмов).
В итоге появились различные вариации алгоритмов подстановки. В них использовалось несколько алфавитов, которые нельзя было взломать посредством простого статистического анализа. В одном из таких шифров, называемом «квадратом Вигенера», использовалось 26 копий алфавита и ключевое слово для определения того, какая уникальная подстановка должна использоваться для каждой буквы сообщения. Этот сложный полиалфавитный алгоритм, разработанный в XVI веке французским дипломатом Блэз де Виженер, не могли взломать на протяжении 300 лет.
þпример
Шифрование используется для зашиты сообщений не только в правительственных структурах и частных компаниях. Во время «сухого закона» (конец 1920 - начало 1930-х гг.) в США было запрещено продавать алкогольные напитки, и все же имели случаи нелегального провоза и продажи алкоголя. Многие компании и объединения, занимавшиеся продажей алкоголя, шифровали сообщения, чтобы правительственные службы не узнали об их нелегальных действиях. В целях соблюдения закона береговая охрана США наняла на работу криптографа Элизабет Фридман, которая возглавила группу по расшифровке сообщений контрабандистов. Элизабет Фридман взломала код компании Consolidated Exporters Corporation, после чего эта компания была арестована, а персонал осужден и приговорен к 2 годам заключения.[33]
Одной из причин успешного применения этого кода являлось бесконечное множество различных ключей, т.е. используемое в шифре ключевое пространство. Сам по себе ключ, представлявший собой слово или случайную комбинацию символов, мог иметь переменную длину, и можно было использовать любую вероятную комбинацию символов. Вообще, чем больше ключевое пространство, тем сложнее взломать шифр.
В современных поточных и блочных шифрах применяются сложные алгоритмы шифрования, работающие на высокопроизводительных компьютерных системах, однако, их прародителями являются простые физические устройства, которые применялись еще давным-давно. Примером такого устройства является шифрующий диск. Шифрующий диск на самом деле состоял из двух дисков, на каждом из которых по краю были нанесены алфавиты. Так как диаметры дисков были различны, совмещение алфавитов было различным от одного набора к другому. Чтобы еще больше усложнить шифр, также указывался отступ, или начальная точка. Только владелец дубликата шифровального диска, знающий это смещение, мог воспроизвести идентичный «поток» символов.
В 1918 году в немецкой шифровальной машине «Энигма» был использован тот же принцип, однако при этом существовало 15 000 возможных настроек. Даже сам факт владения шифровальной машиной не давал никаких гарантий взлома кода, так как необходимо было знать стартовые параметры. Представьте себе набор вращающих элементов и перемещателей, которые изменяют их положение при использовании шифровального аппарата. Введя букву D, почти сразу получаем на выходе букву F. Введем еще раз букву D, в результате чего получим букву G или U. Хотя данное шифрование может показаться случайным, оно может быть воспроизведено, если имеется в наличии идентичная шифровальная машина, настроенная точно так же. Эта шифровальная машина широко использовалась во время Второй Мировой войны, однако, ее шифр был взломан при помощи математических, статистических и вычислительных методов. Ее ранние версии производились как коммерческие продукты, и еще задолго до прихода к власти Гитлера их шифр был взломан замечательным польским математиком Марианом Режевски. Во время Второй Мировой войны использовалась другая версия этой шифровальной машины. Алан Турннг и британские криптологи в Bletchley Park использовали машину «Энигма», предоставленную поляками, и снова взломали ее код.
Также были разработаны и другие устройства шифрования, которые применялись в то время. «Большая машина», разработанная в Правительстве США, выглядит как ранняя печатная машинка, напичканная различными устройствами. Этот шифровальный аппарат, известный под названием «Сигаба», является единственной известной шифровальной машиной, код которой не был взломан во время Второй Мировой войны. Также существовали другие шифровальные машины: Турех, разработанная для обеспечения безопасности соединений между Британией и США, American Tunney и Sturgeon, которые были способны как к шифрованию, так и к передаче данных, а также машины Japanese Purple и Jade.[34]
В современном шифровании аналогичным образом часто разрабатываются поточные шифры, такие как RC4. Программные поточные шифры используют ключ для создания таблицы ключей, после чего ее байт и байт открытого текста подвергаются операции XOR со следующим байтом сообщения в открытом тексте. После полного шифрования сообщения и образования шифра происходит его доставка. Операция XOR — исключительная операция OR — является логическим оператором, посредством которого могут добавляться единицы и нули. Так как функция XOR является обратимой, если известен исходный ключ и алгоритм составления таблицы, то текст может быть расшифрован.
В то время как поточный шифр обрабатывает единовременно только один символ, в блочных шифрах происходит одновременная обработка блоков из множества бит. При этом используется нелинейная функция Boolean. В отличие от поточных шифров в ранних блочных шифрах не предусматривалось изменение ключа, поэтому взломать их было относительно просто, так как шифрование одинаковых комбинаций символов приводило к образованию идентичных шифров. Для взлома кода можно было с успехом использовать частотный анализ. В более поздних блочных шифрах были введены дополнительные функции для обработки шифрованного текста с целью сокрытия какого-либо повторения данных. Алгоритм DES, являвшийся в одно время стандартным алгоритмом шифрования правительства США, представляет собой блочный шифр, в котором используется 16 циклов обработки 64-битного блока данных, причем с каждым никлом степень сложности обработки возрастает. Он хорошо известен, однако, без секретного ключа (длиной 40 или 56 бит) его взломать достаточно сложно. Действительно, алгоритм DES считался настолько безопасным, что для его взлома потребовался бы миллион лет. Однако ученые, используя вычислительное оборудование стоимостью менее 10 000 долл., взломали этот алгоритм всего за несколько часов.[35]
Triple DES (Тройной DES) — это усовершенствованный алгоритм DES; при этом шифруемый текст просто подвергается троекратному действию алгоритма DES с использованием до трех ключей. Стандарт Advanced Encryption Standard (AES) был разработан взамен DES и стал новым федеральным стандартом шифрования в США. AES (являющийся на самом деле алгоритмом Rijndael) представляет собой блочный алгоритм шифрования, в котором используются блоки размером 128, 192 и 256 бит и ключ длиной 128 бит. Блочными шифрами также являются RSA Data Security RC2 и RC5, Entrust CAST и Counterpane System Blowfish. В отличие от DES в этих алгоритмах могут использоваться большие ключи переменной длины.
Описанные выше алгоритмы шифрования основываются на использовании одного секретного ключа. Этот ключ может использоваться для создания других ключей, однако, принцип здесь будет идентичен. Одноключевые симметричные алгоритмы правильно функционируют, если ключ каким-либо образом может быть передан от одного абонента другому. В прошлом передача осуществлялась через курьера, при личной встрече или иным способом, также не предусматривающим какого-либо соединения. Со временем потребности в шифровании росли, и появилась необходимость в частой смене ключей, чтобы предотвратить их раскрытие или снизить ущерб, который может быть причинен в случае раскрытия ключа злоумышленником. Люди не всегда могли передать ключи из рук в руки или каким-либо образом масштабировать внешний метод передачи. Проблема становится особенно актуальной, когда требуется применить шифрование в отношении тысяч генерируемых компьютером соединений.
Решение данной проблемы было впервые предложено Уитфилдом Диффи и Мартином Хеллманом. Протокол согласования ключей Диффи-Хеллмана предусматривает использование двух наборов математически связанных ключей и сложное математическое уравнение, использующее данное взаимоотношение. Если каждый из двух компьютеров вычисляет свой собственный набор соответствующих ключей (ни один из наборов при этом не связан с другим) и сообщает один из ключей другому компьютеру, то каждый из них сможет независимо вычислить третий секретный ключ, который будет идентичен третьему секретному ключу, вычисленному на другом компьютере. Этот секретный ключ независимо используется для генерирования последовательности симметричных ключей, с помощью которых на двух компьютерах будет происходить расшифровка передаваемых данных.
Еще одним методом обмена сеансовым ключом является шифрование на открытом ключе. Данный алгоритм асимметричен - в нем используется набор связанных ключей. Если один ключ применяется для шифрования сообщения, то другой - для расшифровки, и наоборот. Это означает, что, если у каждой стороны есть один из ключей, то может быть успешно реализован защищенный обмен сеансовым ключом. Обычно каждая сторона обладает своим собственным набором асимметричных ключей. Один ключ в паре ключей называется секретным, а другой — открытым.
Помимо обмена ключами шифрование с открытым ключом применяется для создания цифровых подписей. Как правило, эти алгоритмы задействуют очень большие ключи, и, хотя можно было бы использовать их для шифрования всех сообщений целиком или блоков данных на диске, скорость данного процесса была бы очень низка в сравнении с шифрованием на симметричном ключе.
Следующие примеры решения криптографических задач иллюстрируют время, которое потребовалось для определения ключа, использованного для шифрования одного сообщения.
· 1997 г. 56-битный шифр RC5 был взломан группой Bovine с применением десятков тысяч компьютеров (пользователи-добровольцы в Интернете) за 256 дней.
· 1997 г. 56-битный шифр DES был взломан за 96 дней Роком Версером и его группой из Колорадо.
· 1998 г. 56-битный шифр DES был взломан с привлечением оборудования стоимостью 250000$ (DES Cracker) компанией Electronic Frontier Foundation (EFF) за три дня.
· 1999 г. 56-битный алгоритм DES, задача DES Challenge III, была решена посредством EEF Deep Crack посредством совмещения мощности 100 000 компьютеров в Интернете. Решение заняло 22 часа 15 минут; в процессе решения было перебрано огромное число - 245 миллиардов — ключей, пока не был найден нужный.
· 2002 г. Задача RC5-64 Secret- Key Challenge была решена командой distributed.net примерно за 4 года с привлечением 331252 добровольцев. (Обратите внимание, что было предложено 12 различных задач RC5, и в каждой из них использовался свой размер ключа. Однако RC5 представляет собой алгоритм секретного ключа с переменой длиной ключа и переменным размером блока, и в нем может использоваться переменное число циклов. В научных целях данная информация была обнародована, однако в реальном мире она умышленно являлась недоступной).
Чем больше - тем лучше, однако этот тезис может быть верен не во всех случаях. Большая часть систем безопасности, как в Интернете, так и вне его, основывается на алгоритмах с открытыми ключами, такими как RSA Security. Шифрование на открытом ключе базируется частично на недоступности факторизации больших чисел.
С 1991 года RSA представлялись задачи факторизации, математические проблемы, с помощью которых проверялась возможность участников факторизовать большие числа. В 1999 году за семь месяцев группа, возглавляемая Арьсном К. Ленстрой, с помощью 300 компьютеров смогла факторизовать RSA-155, число с 155 знаками. Это 512-битное число является замечательным фактом, так как 512 бит — это размер ключа по умолчанию для большей части открытых ключей, применяемых в электронной коммерции. В RSA говорят, что данный факт означает возможность взлома группой сотрудников с распределенными компьютерными ресурсами 512-битного ключа всего за несколько часов.
В RSA полагают, что стоимость использования распределенной сети для взлома ключей шифрования по-прежнему является слишком большой с точки зрения штрафных санкций, однако, интересно, имеют ли место открытые распределенные сети, или атаки, осуществляемые на компьютерах без разрешения пользователя, не могут использоваться для взлома шифра. Существует несколько схем распределенных сетей, например сети, в которых распространяется музыка через Интернет в обмен на разрешение использования времени простоя вашего компьютера в собственных целях провайдера. Если вам подходит такая схема, следует прежде всего разобраться, что при этом будет происходить. Злоумышленник или группа злоумышленников могут инициировать такую программу «взаимодействия» и использовать время простоя вашего компьютера для взлома кода. Очевиден факт, что для запуска распределенных атак на отказ в обслуживании (DDoS) осуществляется незаконное проникновение и злоумышленные действия в отношении большого числа компьютеров. Мощь распределенных сетей может быть незаконным образом использована для осуществления криптографических действий, противоречащих этическим нормам. Это не значит, что работа организаций с распределенными сетями направлена на выполнение злонамеренных действий; многие из выполняемых таким образом функций являются очень полезными. Однако перед вступлением в такую программу следует все проверить, чтобы обезопасить себя и свой компьютер.
Обмен ключами. Для обмена сеансовыми ключами используются пары открытых/секретных ключей. Каждая сторона, которой необходим обмен, генерирует пару ключей. Открытые ключи либо распространяются среди абонентов, либо содержатся в базе данных. Секретные ключи содержатся в секрете. Чтобы произвести обмен, одна сторона может зашифровать его с помощью открытого ключа другой стороны. Затем зашифрованный ключ передается другой стороне. Так как только у законного получателя сообщения есть секретный ключ, соответствующий открытому ключу, использованному для шифрования сеансового ключа, то только он сможет расшифровать сеансовый ключ.
Целостность
Целостность - это состояние данных, при котором информация гарантированно не может быть изменена случайным образом. Изменять данные могут лица, обладающие соответствующими полномочиями. Залогом целостности информации является ряд следующих процессов.
· Использование качественного ПО. Вычисления программируются корректным образом, и процессы выполняются в соответствии с установленным порядком.
· Использование соответствующего оборудования. Применение соответствующего по своим свойствам и качеству оборудования позволяет снизить риск повреждения данных и предупредить администраторов о возможности причинения ущерба.
· Следование корректным административным процедурам. Использование корректных алгоритмов резервного копирования и средств управления доступом.
· Защита от злонамеренного управления данными. Использование корректных средств обеспечения безопасности доступа к компьютерам, доступа к данным, а также проверка данных на наличие дополнительных записей.[36]
В ранних системах компьютерной связи главной задачей было обеспечение того, чтобы потенциальные ошибки при передаче данных не вызвали изменения информации. Данные передавались с одного компьютера на другой в разных городах в виде наборов электрических импульсов, и ошибки могли вызываться помехами на линии. Для обнаружения таких ошибок вычислялась контрольная сумма, присоединяемая к концу передаваемых данных. Контрольная сумма представляет собой численное значение, основанное на числе битов в сообщении. После принятия сообщения вычисляется другая контрольная сумма, получаемая на основе полученного сообщения, и если две контрольные суммы совпадают, то целостность данных считается сохраненной. Современное оборудование является более совершенным, однако данные по-прежнему могут подвергаться воздействию температуры, магнитных волн, скачков электроэнергии и даже пыли.
Использование шифрования - важный фактор целостности данных, так как может использоваться даже в том случае, если не требуется обеспечить конфиденциальность информации. С помощью шифрования можно просто убедиться, что данные не изменились, например, в процессе передачи. Если банковские записи хранятся на диске в зашифрованном виде и в таком же виде передаются в другое место, то дополнительным образом обеспечивается их целостность. Так как явные на диске зашифрованы, для изменения данных у соответствующего лица не только должны быть нужные для этого полномочия, но также и соответствующий ключ шифрования, что позволяет снизить вероятность несанкционированного изменения данных.
Следующие шаги описывают процедуру использования алгоритма хэширования для обеспечения целостности данных при передаче сообщения между двумя компьютерами - А и Б. Сообщение само по себе не шифруется. Если нужно сохранить в секрете само сообщение, его можно зашифровать посредством какого-либо другого алгоритма.
1. Данные кэшируются на А перед отправкой для получения результата хэширования - небольшого фрагмента данных, представляющего сообщение.
2. Открытое (незашифрованное) сообщение и результат хэш-функции передаются Б.
3. Б получает данные и с помощью такого же алгоритма создает свой собственный результат хэш-функции для сообщения.
4. Бсравнивает собственный результат с полученным от А. Если результаты впадают, это означает, что данные не были изменены в процессе передач. Если совпадения нет, то данные были изменены.[37]
Чтобы гарантировать идентичность отправленного сообщения полученному компьютером Б необходимо выполнить дополнительное действие. После подготовки результат хэширования компьютером А, А шифрует сообщение и результат хэш-функции использованием сеансового ключа, известного компьютеру Б. Когда Б получает сообщение, он расшифровывает его для получения сообщения в открытом виде и результата хэш-функции А. После этого Б может создать свой собственный результат хэш-функции и сравнить его с полученным от А. Если злоумышленник захочет внедрить ложное сообщение, ему сначала понадобится взломать шифр. SHA1 и MD5 являются примерами алгоритмов обеспечения целостности.
Доступность
Основной задачей информационной безопасности является обеспечение доступности данных для уполномоченных лип. Конфиденциальность, секретность и целостность играют очень важную роль, однако, безопасность информации не является единственным элементом, обеспечивающим доступность данных. Также имеют большое значение корректное управление системой и ее поддержание в должном состоянии.
Безопасность информации снижает уровень ее доступности. Если средства контроля не настроены должным образом, то санкционированные пользователи могут не получить нужную информацию. Если поддержка ключей шифрования осуществляется неправильно, то даже лица, обладающие правом доступа к информации, могут потерять возможность расшифровать информацию. Если пароли слишком длинны, пользователи не смогут их запомнить, и на восстановление паролей может потребоваться большое количество времени и денег.[38]
Шифрующая файловая система (EFS) — это бесплатная утилита шифрования в Microsoft Windows. По умолчанию обычные пользователи могут шифровать файлы и настраивать папки так, чтобы каждый записываемый в них файл шифровался. При этом используется как симметричный ключ, так и пара ключей «открытый/секретный». Симметричный ключ применяется для шифрования файла, а открытый ключ пользователя - для защиты симметричного. Ключевая пара ассоциируется с личностью пользователя, и только он имеет доступ к секретному ключу.
Еще одной проблемой является отказ от авторства. Для ее решения используется цифровая подпись.
Цифровые подписи создаются посредством шифрования на открытом ключе. В данном случае, секретный ключ отправителя используется для шифрования сообщения, а открытый ключ отправителя — для расшифровки. Если сообщение расшифровывается с помощью соответствующего открытого ключа, его отправитель подлинный.
В следующих шагах описывается процесс, выполняемый на компьютере А для отправки сообщения компьютеру Б с цифровой подписью.
1. А создает результат хэширования сообщения.
2. А использует свой секретный ключ дня шифрования результата хэширования.
3. А отправляет сообщение и зашифрованный результат хэширования компьютеру Б.
4. В использует открытый ключ пользователя А для расшифровки результата хэширования. Если с помощью открытого ключа удается расшифровать результат хэширования, то секретный ключ А использовался для его шифрования. (Если один ключ из пары применяется для шифрования данных, то только с помощью другого ключа из этой пары можно расшифровать их.) Так как секретный ключ пользователя А доступен только пользователю А, то можно утверждать, что зашифрованный результат хэширования поступил именно от компьютера А.
5. Б использует тот же алгоритм, что и А, для создания нового результата хэширования сообщения.
6. Б сравнивает два результата хэширования сообщений. Если они совпадают, то сообщение не было изменено (подтверждение целостности). В случае совпадения можно утверждать, что сообщение поступило от пользователя А и только от него, так как в шаге 4 было выяснено, что результат хэширования получен от А (это гарантирует невозможность отказа от авторства).[39]
Цифровая подпись не только подтверждает отправителя сообщения. Она также гарантирует, что ПО было разработано компанией, которой вы доверяете. Таким образом, подписаны сценарии Microsoft ActiveX, макросы Office и проверенные драйверы оборудования. Если секретные ключи надежно связаны с производителями ПО и содержатся в секрете, и вы доверяете разработчикам, то можно автоматизировать принятие ПО, в то же время предотвращая выполнение на вашем компьютере постороннего неизвестного кода.
Это не значит, что программа не содержит уязвимостей, а также вредоносный код. Вирус или «троянский конь» могут быть подписаны владельцем ключа подписи точно так же, как и остальные программы. Данный подход лишь позволяет с точностью знать, кто именно является автором кода. Вам решать, какие подписи вы будете считать приемлемыми; это зависит от того, насколько вы доверяете производителям ПО.
Ключевым аспектом в реализации и использовании шифрования с открытым ключом является уверенность в том, что секретные ключи в действительности содержатся в секрете и что присвоение ключей личности происходит с прохождением аутентификации. В современной криптографии с открытым ключом при присвоении ключей личности применяется сертификат. Он содержит информацию о владельце ключей и центре сертификации, а также копию открытого ключа, и подписан центром сертификации.
Сертификаты издаются самими организациями посредством внутренних центров сертификации либо приобретаются в открытых центрах сертификации, таких как VeriSign. Microsoft приобретает сертификаты для подписи ПО VeriSign, и однажды два сертификата Microsoft на программное обеспечение по ошибке были присвоены другой организации. Очевидно, система аутентификации VeriSign дала сбой. К счастью, аудиторы компании обнаружили ошибку и быстро оповестили Microsoft и пользователей.
Вирусы и антивирусы
Слово «вирусы» давно и хорошо знакомо пользователям компьютеров. Оно давно переросло свое первоначальное значение и теперь часто употребляется для обозначения любых вредоносных программ, способных «размножаться», распространяясь с компьютера на компьютер и заражая подчас целые компьютерные сети - вплоть до глобальных эпидемий в интернете.
Это «классические» вирусы, сетевые и почтовые черви, «троянские кони», backdoor-программы и др.
Результатом работы вируса может быть:
· относительно безвредное вмешательство в работу компьютера - например, злая шутка, когда экран гаснет и выдается сообщение, что ваш жесткий диск отформатирован;
· нанесение реального вреда - когда винчестер действительно форматируется, или стираются важные файлы;
· настоящее преступление - когда с помощью троянских программ злоумышленники крадут номера ваших кредитных карт, пароли доступа, другую конфиденциальную информацию.
Первый интернет-вирус, которому удалось нанести ущерб, назывался Morris, но его последствия не были особенно ужасными.. С другой стороны, в мае 2000 года было положено начало значительным переменам в компьютерной индустрии, касающимся вирусов. Один филиппинец написал вирус, концепция которого была неизвестна. Это был скрипт, который сам себя распространял посредством электронной почты. Этот вирус был отнюдь не первым Интернет-червем, но стал самым известным. Назывался он «Love letter*, но также был известен как «I love you».
Этот вирус был не смертелен (т.е. он не уничтожал систему инфицированного компьютера), но серьезен, потому что активировался, как только пользователь открывал инфицированное приложение. После запуска он рассылал себя по всем адресам, указанным в контактах почтового клиента пользователя. Таким образом, он задействовал большой объем ресурсов (некоторые почтовые серверы были испорчены, потому что не смогли справиться с такой нагрузкой), и это означало начало новой эры вирусов, которые становятся все более опасными и сложными. Тем не менее, основные свойства вирусов не меняются и остаются общими для всех. Они смертельны, потому что ничего пользователи видят письмо от друга и не боятся его открыть, но как только открывают его, вирус поражает их компьютер и распространяется дальше.
Вирусы становятся все более и более опасными, и теперь они вполне в силах причинить ущерб общемирового масштаба. Первый вирус, который получал доступ к документам компьютера пользователя, назывался Sircam. Он инфицировал их и рассылал по адресам, занесенным в книгу контактов пользователя.
Червь представляете собой вредоносный код, который копирует себя с помощью известных средств. Таким образом, ему не нужно распространяться через электронную почту. Червь Red Code был одним из первых, кто использовал дефект в ПО Информационного Сервера Интернета компании Microsoft и побил рекорд скорости инфицирования. Red Code был разработан, чтобы в определенный день атаковать веб-сайт Белого Дома. Существовали версии, согласно которым к его созданию приложило руку правительство Китая. В качестве меры предосторожности сайт был закрыт на реконструкцию в тот день, чтобы избежать атаки. [40]
Хотя эти вирусы и черви были пионерами своего дела, известны и другие: KJez, SQL Slammer, Goner и В. Trans.
Кто же создает вирусы?
1. Хакеры. Фактически большинство вирусов пишут хакеры. Обычно они создают вирусы, чтобы прославиться или показать, что они умнее, чем те, в чьи обязанности входит, зашита от вирусов.
2. Правительства. Известно, что правительства также принимают участие в создании вирусов. Вернитесь к разделу «Эволюция вирусов» чуть выше, в котором упоминается вирус Red Code. Или есть еще один известный факт: вирус «Волшебный фонарь» был создан ФБР. Предполагалось, что инфраструктура Америки подвержена риску кибер-атак.
3. Рассерженные сотрудники. Меньшую часть создателей вирусов составляют рассерженные сотрудники. Однако и они вносят свою лепту в это нелегкое дело. Обычно они не хотят в открытую саботировать работу корпоративной сети, потому что боятся быть пойманными. Вместо этого они пишут вирусы и распространяют их по офису.
Создать вирус (или получить готовый) не так сложно, как можно подумать. Многие генераторы вирусов свободно доступны в Интернете. Также существует множество компаний, которые предлагают вирусы с определенными возможностями. Такие компании даже дают гарантию, что если их вирус будет определен антивирусным ПО в течение года, они переделают код так, чтобы обойти программу.
После каждой волны поражений вирусами антивирусные компании обвиняются в том, что не могут своевременное средство защиты.
В настоящее время панацеи от вирусов не существует. Каждый новый вирус легко поражает свои цели, пока не найден способ борьбы с ним; по этой причине, даже если обновление антивирусного ПО становится доступным всего через нескольких часов после того, как вирус начал распространяться, оно вам не поможет, если ваша система уже поражена.
Как узнать, что вирус - это вирус? Казалось бы, простой вопрос, но следующая история заставляет задуматься.
þпример
ФБР подозревало некоего Никодемо С. Скарфо-мл. в ростовщичестве и проведении незаконных азартных игр. Однако агенты не могли этого доказать, потому что он зашифровал все свои документы с помощью средств PGP. Чтобы разрешить это затруднение, был установлен небольшой разработанный ФБР «троян», который назывался «Волшебный фонарь». Чтобы сделать историю не такой долгой, они украли его пароли и предъявили обвинение.
Антивирусная программа (антивирус) — изначально программа для обнаружения и лечения других программ, заражённых компьютерными вирусами, а также для профилактики — предотвращения заражения файла вирусом (например, с помощью вакцинации).
Многие современные антивирусы позволяют обнаруживать и удалять также троянские программы и прочие вредоносные программы. И напротив — программы, создававшиеся как файрволы, также получают функции, роднящие их с антивирусами.
Первые наиболее простые антивирусные программы появились почти сразу после появления вирусов. Сейчас разработкой антивирусов занимаются крупные компании. Как и у создателей вирусов, в этой сфере также сформировались оригинальные приёмы — но уже для поиска и борьбы с вирусами. Современные антивирусные программы могут обнаруживать десятки тысяч вирусов.
Антивирусное программное обеспечение состоит из компьютерных программ, которые пытаются обнаружить, предотвратить размножение и удалить компьютерные вирусы и другие вредоносные программы.
Антивирусные программы следует обновлять ежедневно или через определенный администратором период времени. Однако только поставщик ПО решает, как часто будут выпускаться новые базы данных сигнатур. Устаревшее ПО не будет эффективно против новых вирусов.
В настоящее время новые технологии пытаются бороться с вирусами более эффективно. Большинство из них уделяет особое внимание «стратегии песочницы» (описанной ниже), причем некоторые используют в качестве «песочницы» процессы, а часть — ОС в целом.
«Стратегия песочницы» представляет собой изолирование ПО путем помещения его в четко определенную среду. К примеру, Java - это «песочница». Если за ее пределами был запущен вирус, она должна определить, что он пытается инфицировать либо удалить файлы, или выйти в Интернет. Наиболее вероятно, что настройки «песочницы» не позволят вирусу сделать этого, таким образом, она будет обращаться с программным обеспечением как с враждебным элементом, удаляя его или ограничивая его возможности.
Некоторые продукты уже используют различные варианты «песочницы». Один из примеров — программа Storm Watch, разработанная компанией Okena.[41]
Антивирусное программное обеспечение обычно использует два отличных друг от друга метода для выполнения своих задач:
· Сканирование файлов для поиска известных вирусов, соответствующих определению в антивирусных базах
· Обнаружение подозрительного поведения любой из программ, похожего на поведение заражённой программы.
Метод «Обнаружение, основанное на сигнатурах». Это когда антивирусная программа, просматривая файл, обращается к антивирусным базам, которые составлены производителем программы-антивируса. В случае соответствия какого либо участка кода просматриваемой программы известному коду (сигнатуре) вируса в базах, программа-антивирус может по запросу выполнить одно из следующих действий:
· Удалить инфицированный файл.
· Заблокировать доступ к инфицированному файлу.
· Отправить файл в карантин (то есть сделать его недоступным для выполнения с целью недопущения дальнейшего распространения вируса).
· Попытаться «вылечить» файл, удалив вирус из тела файла.
Для того, чтобы такая антивирусная программа успешно работала на протяжении долгого времени, в базу сигнатур вирусов нужно периодически загружать (обычно, через Интернет) данные о новых вирусах. Если бдительные и имеющие склонность к технике пользователи определят вирус по горячим следам, они могут послать зараженные файлы разработчикам антивирусной программы, а те затем добавляют информацию о новых вирусах в свои базы.
Для многих антивирусных программ с базой сигнатур характерна проверка файлов в тот момент, когда операционная система создаёт, открывает, закрывает или посылает файлы по почте. Таким образом, программа может обнаружить известный вирус сразу после его получения. При этом системный администратор может установить в антивирусной программе расписание для регулярной проверки (сканирования) всех файлов на жёстком диске компьютера.
Хотя антивирусные программы, созданные на основе поиска сигнатур, при обычных обстоятельствах могут достаточно эффективно препятствовать вспышкам заражения компьютеров, авторы вирусов стараются держаться впереди таких программ-антивирусов, создавая «олигоморфические», «полиморфические» и, самые новые, «метаморфические» вирусы, в которых некоторые части шифруются или искажаются так, чтобы было невозможно обнаружить совпадение с определением в словаре вирусов.
Контрольные вопросы
1. Что означает термин «конфиденциальность информации»?
2. В чем отличие «Triple DES» от «DES»?
3. Что означает термин «целостность информации»?
4. Что означает термин «доступность информации»?
5. Что означает аббреиатура «EFS»?
6. Что означает аббреиатура «SAN»?
7. Как назывался первый вирус?
8. По какому принципу работает антивирусное ПО?
Библиографический список
Основная литература:
1. Ярочкин В.И. Информационная безопасность: учебник для студентов высших учеб. заведений, обучающихся по гуманитарным и социально-экономическим специальностям / В. И. Ярочкин. - М.: Акад. проект, 2008. – C.112-117.
Дополнительная литература:
1. Брэгг Р. Безопасность сетей / Р. Брэгг, М. Родс-Оусли, К. Страссберг; [пер. с англ.] – М.: Издательство «ЭКОМ», 2006.
2. Мэйволд Э. Безопасность сетей: практическое пособие / Э. Мэйволд; [пер. с англ.] – М.: «СП ЭКОМ», 2005.
3. Щеглов А.Ю. Защита компьютерной информации от несанкционированного доступа / А. Ю. Щеглов. - СПб.: Наука и техника, 2004. – С.48-145.
Тема 6. Межсетевые экраны
6.1 Понятие межсетевого экрана
6.2 Классификация МЭ
6.3 Шлюзы приложений и контурного уровня
6.4 Межсетевые экраны с адаптивной проверкой пакетов