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

Kerberos («Цербер») является более хитрым протоколом аутентификации. Здесь Алиса должна иметь долгосрочный ключ, используемый совместно с надежным сервером в сети, называемым Kerberos- сервером. Чтобы войти во взятый наугад сервер в сети – назовем его сервером Боба, – выполняется следующая процедура:

1. Алиса запрашивает разрешение у сервера Kerberos для входа на сервер Боба.

2. Сервер Kerberos проверяет, допускается ли Алиса на сервер Боба. (Примечание: серверу Kerberos не нужно знать, что Алиса – та, кем она себя назвала. Если это не она, протокол прервется на шаге 6.)

3. Сервер Kerberos высылает Алисе «билет», который она обязана отдать серверу Боба, и ключ к сеансу, который она может использовать, чтобы доказать Бобу, что она Алиса.

4. Алиса использует ключ к сеансу с сервера Kerberos для создания «удостоверения», которое она будет использовать, чтобы убедить Боба, что она Алиса.

5. Алиса посылает Бобу и билет, и удостоверение.

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

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

И у этого протокола есть несколько приятных свойств. Долгосрочные ключи Алисы и Боба, которые похожи на пароли, никогда не посылались по сети. Отрицательная сторона в том, что системе для работы нужен сервер Kerberos. Сервер Kerberos является доверенной третьей стороной. Это может стать «узким местом» в системе в 9:00 утра, когда каждый пытается войти в свой компьютер.

Kerberos был изобретен Массачуссетским технологическим институтом в 1988 году и с того времени используется в мире UNIX. Kerberos является частью Windows 2000, но исполнение Microsoft отличается от стандартного и несовместимо с остальным миром Kerberos. Я могу только предполагать, что это было сделано намеренно по соображениям, связанным с рынком, но сделано таким образом, что ослабило защиту. Нельзя всего лишь изменить протокол безопасности и предполагать, что измененный протокол так же надежен.

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

Однократная регистрация

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

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

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

Глава 10

Безопасность компьютеров в сети

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

Разрушительные программы

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

К разрушительным программам кроме вирусов относятся так называемые «троянские кони» и «черви». Они обычно состоят из двух частей: «полезной нагрузки» и механизма распространения. «Полезная нагрузка» – это та составляющая, которая, собственно, и вызывает сбои. Традиционно нагрузка была не очень разнообразна – прототипы вирусов выводили на экран какое-либо надоедливое сообщение, переформатировали жесткий диск компьютера жертвы либо не делали вообще ничего. Но в некоторых случаях нагрузка способна причинить и большие неприятности: изменить установки контроля доступа компьютера, украсть секретный ключ и отправить его по электронной почте и т. п. Результат таких действий может оказаться опасным, и я считаю, что следует ожидать появления более коварных нагрузок в ближайшие годы[30]. В этой книге для нас наибольший интерес будут представлять механизмы распространения, по которым мы и классифицируем разрушительные программы.

Компьютерные вирусы

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

В 1983 году студент Фред Коэн (Fred Cohen) написал первый компьютерный вирус. Он сделал это, только чтобы создать прецедент (удивительно, но большинство людей не верили, что это возможно). Многие скопировали этот вирус, большинство этих людей хотели просто досадить окружающим. В настоящее время насчитывают от 10 000 до 60 000 вирусов (в зависимости от критериев подсчета), большинство которых написаны для IBM-совместимых персональных компьютеров. По некоторым оценкам, которые мне встречались, ежедневно создаются шесть новых вирусов, но я считаю, что это – ложь и паникерство. Всего несколько сотен вирусов встречаются «в диком виде» (имеется в виду «на жестком

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ОБРАНЕ

0

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

Отметить Добавить цитату