Полный курс лекций 2009-го года (1130357), страница 79
Текст из файла (страница 79)
В былыевремена протоколы создавались прежде всего с учетом минимизации затрат пропускной способности дляслужебных целей: поля делали маленькими, насколько это было возможно, упаковывали их плотно вбайты. Сегодня есть большой запас пропускной способности. Проблема – сложность сетевогопрограммного обеспечения.Одна из возможных идей – создание сетевого сопроцессора, на который можно возложитьисполнение только сетевого программного обеспечения. Однако по своей мощности он будет примерноравен основному процессору, что существенно удорожит систему.
Кроме этого, что центральный процессорбудет чем-то загружен, пока сетевой работает, - это миф. Если центральный и сетевой процессоры будутпримерно равны по мощности, то их синхронизация и взаимодействие, в свою очередь, превратится всамостоятельную проблему, решение которой потребует самостоятельных накладных расходов.Важные последствия гигабитные скорости несут для проблемы обратной связи в сетевых протоколах.Например, ожидание подтверждений, даже групповых, как в протоколе скользящего окна, теперь оченьневыгодно. Куда выгоднее заранее оговорить допустимую скорость и время, в течение которого этаскорость должна выдерживаться.Другой пример обратной связи – протокол медленного старта.
В этом протоколе многократно ведетсяиспытание пропускной способности сети. На гигабитных скоростях каждое испытание – это огромныенакладные расходы. Теперь куда выгоднее заранее договориться о допустимой максимальной пропускнойспособности и заранее ее зарезервировать на все время сеанса.Теперь несколько слов об организации структуры пакета для гигабитной сети.
Полей должно бытькак можно меньше, чтобы сократить время обработки заголовка. Поля должны быть достаточно длинными– это значит, что они должны обеспечивать решение проблемы адресации, контроля времени жизни пакетав сети и т.п. Поля должны быть выровнены по слову, чтобы облегчить их обработку в процессоре.Поле данных должно быть переменной длины и достаточно большим, чтобы поддерживатьэффективность операций, загрузку канала. Чем длиннее поле данных, тем короче заголовок при прочихравных условиях.
Об этом не стоит забывать.Заголовок и поле данных должны иметь раздельные контрольные суммы. Во-первых, для того, чтобыможно было проверять корректность заголовка, не трогая данных. Во-вторых, чтобы можно былопроверить заголовок до того, как начнется копирование данных в приложение. В третьих, копированиеданных можно совместить с проверкой контрольной суммы для данных. Если же контрольные суммысовмещены, то совмещать копирование и проверку было бы не рационально, так как, если начатьпроверку вместе с копированием, то при ошибке в заголовке копирование будет ненужным.7.1. Сетевая безопасностьПока сети использовались лишь в университетах для научных исследований, а в крупныхорганизациях для совместного использования устройств, например, принтеров, вопросы безопасностисетей просто не возникали.
Теперь, когда сетью пользуется обыватель для управления банковским счетом,покупки, уплаты налогов, когда в сети организации хранят критическую для своей деятельностиинформацию – безопасность становится серьезной проблемой.Проблема безопасности сети очень многогранна и охватывает широкий спектр вопросов. Большую ихчасть можно разделить на следующие группы:1.Секретность§Конфиденциальность – только санкционированный доступ к информации (никто не может прочесть вашиписьма без вашего ведома).§Целостность - только санкционированное изменение информации (никто без вашего разрешения неможет изменить данные о вашем банковском счете).2.Идентификация подлинности пользователей§Имея с кем-то дело через сеть, вы должны быть уверены, что это тот, за кого он себя выдает (если выполучили сообщение от налоговой инспекции уплатить определенную сумму денег, вы должны бытьуверены, что это не шутка).3.Идентификация подлинности документа§Получив через сеть электронную версию документа, как определить, что он подлинный и не былфальсифицирован?4.Надежность управления§Несанкционированное использование ресурсов (если вы получите счет за телефонные переговоры,которые вы не делали, вам это вряд ли понравится).§Обеспечение доступности ресурсов для авторизованных пользователей.Разные люди по разным мотивам пытаются нарушить безопасность сети.
В таблице 7-1 приведенсписок категорий людей и их возможная мотивация.Таблица 7-1. Кто и с какими целями вызывает проблемы с безопасностьюсетиЗлоумышленникЦельСтудентПоразвлечься, читая чужую почтуХакерПроверить чью-либо систему безопасности; украсть данныеТорговый представительЗаявить, что он представляет всю Европу, а не только АлбаниюБизнесменУзнать о маркетинговых планах конкурентаБывший сотрудникОтомстить за недавнее увольнениеБухгалтерПрисвоить себе деньги компанииБрокерОтказаться от обещания, сделанного по электронной почтеМошенникУкрасть номера кредитных карточек для их продажиШпионИзучить военный потенциал противникаТеррористУзнать секрет бактериологического оружияГлядя на эти четыре группы проблем, нетрудно увидеть, что и в обычных системах людям приходитсяиметь дело с таким проблемами: распознание подделки документов, ограничение доступа к информации(уровни секретности), опознание людей (биометрические методы) и т.д.Прежде чем приступить к рассмотрению методов решений перечисленных проблем, подумаем о том,где, в каком месте стека протоколов должно располагаться обеспечение безопасности, защита сети.Одного такого места нет! Каждый уровень способен внести свой вклад.
Например, на физическом уровне,чтобы контролировать доступ к физическому каналу, можно поместить кабель в опечатанную трубу,заполненную газом под давлением. Любая попытка просверлить трубу приведет к падению давления газаи срабатыванию датчика давления. Это, в свою очередь, включит сигнал тревоги.На канальном уровне данные могут быть зашифрованы на одной машине и расшифрованы на другой.Об этом шифре верхние уровни могут ничего не знать. Однако, поскольку пакет дешифруется на каждоммаршрутизаторе, то в памяти маршрутизатора он может стать предметом атаки.
Тем не менее, припередаче данных этот метод, называемый шифрованием канала, часто применяется в сетях.На сетевом уровне распространенным решением является брандмауер (firewall). Напомним, что этосредство, которое позволяет фильтровать как входящие, так и исходящие пакеты на сетевом уровне (см.главу 5). На транспортном уровне проблему секретности данных при передаче решают шифрованием всехсегментов транспортного соединения. Однако в сети до сих пор нет удовлетворительного решенияпроблемы идентификации пользователя и идентификации документа.7.1.1. Обычное шифрованиеИстория шифрования богата и разнообразна. Традиционно ее развивали четыре группы людей –военные, дипломаты, любители вести дневники и любовники.Стандартная схема шифрования такова (см. рисунок 7-2).
Исходный текст, называемый такжеоткрытым текстом (plain text), обрабатывают специальной функцией со специальным параметром,называемым ключом. В результате этой обработки получают так называемый шифр-текст (ciphertext), иликриптограмму. Злоумышленник аккуратно копирует все шифр-тексты. Однако, в отличие от получателя, унего нет ключа, и он не может быстро прочесть сообщение. Иногда злоумышленник может не толькокопировать сообщение, но позже отправлять свои, имитируя настоящего отправителя, чьи сообщения онкопировал. Такого злоумышленника называют активным.
Искусство создания шифра называюткриптографией, а вскрытия – криптоанализом. Обе эти дисциплины образуют криптологию.Рисунок 7-2. Схема шифрованияОсновное правило шифрования - криптоаналитик знает основные приемы шифрования. Другимисловами, создавать шифр, предполагая, что какие-то приемы шифрования криптоаналитик не знает, былобы самонадеянностью и непростительной ошибкой.
Смена метода шифрования, его создание,тестирование, внедрение - всегда сопровождаются огромными затратами. Эти организационные моментывсегда являлись точками уязвимости любого шифра. Людей, отвечающих за применение и использованиешифра всегда мучили вопросы, типа: как часто надо менять шифр? Как определить, что шифр уже вскрыт?Один из способов повышения надежности шифра - шифрование на основе ключа.
Ключ относительно короткая строка текста, которая используется при шифровании и расшифровке сообщений.При этом, сама процедура, алгоритм шифрования могут быть известными. Тогда вся схема шифрованиявсем хорошо известна, менять ничего не надо, надо лишь время от времени изменять ключи.Естественно возникает вопрос, создав новый алгоритм шифрования, как проверить его устойчивостьк взлому? Для этого сам алгоритм публикуют. Публикуя алгоритм шифрования, его автор получает даромконсультации многих исследователей в этой области. Если ни один из них в течение 5 лет не объявил, чтоон вскрыл алгоритм, то такой алгоритм можно считать вполне надежным.Основа секретности – ключ.