шифрование (аппаратное и программное);
Шифрование – это процесс преобразования информации из читабельной формы в нечитабельную. Коммерчески доступны несколько криптографических пакетов, где шифрование реализовано аппаратно или программно. Аппаратное шифрование значительно быстрее программного; однако это достоинство может обернуться и недостатком, так как криптографические устройства могут стать объектом атаки злоумышленника, пожелавшего расшифровать вашу информацию методом грубой силы.
Преимущество криптографических методов состоит в том, что даже после компрометации других средств управления доступом (паролей, прав доступа к файлам и т. п.) информация остается для злоумышленника бесполезной. Естественно, ключи шифрования и аналогичные атрибуты должны защищаться не менее тщательно, чем файлы паролей.
Передаваемую по сети информацию могут перехватить. Для защиты от этой угрозы существует несколько методов, начиная от простого шифрования файлов перед передачей (шифрование из конца в конец) и кончая использованием специального сетевого оборудования, шифрующего всю передаваемую информацию без вмешательства пользователя (секретные каналы). Интернет в целом не использует секретные каналы, поэтому, если возникает необходимость, приходится использовать шифрование из конца в конец.
стандарт шифрования данных (Data Encryption Standard, DES);
Пожалуй, на сегодняшний день DES является наиболее употребительным механизмом шифрования. Существует ряд аппаратных и программных реализаций этого механизма, а некоторые компьютеры поставляются вместе с программной версией. DES преобразует обычный текст в шифрованный посредством специального алгоритма и «затравки», называемой ключом. До тех пор пока пользователь хранит (или помнит) ключ, он может вернуть текст из шифрованного состояния в обычное.
Одна из потенциальных опасностей любой системы шифрования состоит в необходимости помнить ключ, с помощью которого текст был зашифрован (это напоминает проблему с паролями, обсуждаемую в других разделах). Если ключ записать, он станет менее секретным. Если его забыть, расшифровка становится практически невозможной.Большинство вариантов ОС UNIX предоставляют команду des, позволяющую шифровать данные с помощью DES-алгоритма.
crypt;
Как и команда des, команда crypt ОС UNIX позволяет шифровать информацию. К сожалению, алгоритм, использованный в реализации crypt, весьма ненадежен (он заимствован из шифровального устройства Enigma времен Второй мировой войны), так что файлы, зашифрованные данной командой, нетрудно расшифровать за несколько часов. Пользоваться командой crypt не рекомендуется, за исключением особо тривиальных случаев.
конфиденциальная почта (Privacy Enhanced Mail, РЕМ).
Обычно электронная почта передается по сети в открытом виде (то есть прочитать ее может каждый). Такое решение, конечно, нельзя назвать идеальным. Конфиденциальная почта предоставляет средства для автоматического шифрования электронных сообщений, так что лицо, осуществляющее прослушивание в узле распределения почты, не сможет (легко) эти сообщения прочитать. В настоящее время разрабатывается и распространяется по Интернету несколько пакетов конфиденциальной почты.
Группа по конфиденциальности интернет-сообщества разрабатывает протокол, предназначенный для использования в реализациях конфиденциальной почты.
Аутентификация источника данных. Обычно мы принимаем на веру, что в заголовке электронного сообщения отправитель указан правильно. Заголовок, однако, нетрудно подделать. Аутентификация источника данных позволяет удостоверить подлинность отправителя сообщения или другого объекта, подобно тому, как нотариус заверяет подпись на официальном документе. Цель достигается с помощью систем шифрования с открытыми ключами.
Шифрование с открытыми ключами отличается от систем с секретными ключами несколькими моментами. Во-первых, в системе с открытыми ключами применяются два ключа – открытый, который каждый может использовать (иногда такой ключ называют публичным), и секретный, известный только отправителю сообщения. Отправитель использует секретный ключ для шифрования сообщения (как и в случае DES). Получатель, располагая открытым ключом отправителя, может впоследствии расшифровать сообщение.
В подобной схеме открытый ключ позволяет проверить подлинность секретного ключа отправителя. Тем самым более строго доказывается подлинность самого отправителя. Наиболее распространенной реализацией схемы шифрования с открытыми ключами является система RSA. Она использована и в стандарте Интернета на конфиденциальную почту (РЕМ).
Целостность информации. Говорят, что информация находится в целостном состоянии, если она полна, корректна и не изменилась с момента последней проверки «цельности». Для разных организаций важность целостности данных различна. Например, для военных и правительственных организаций сохранение режима секретности гораздо важнее истинности информации. С другой стороны, для банка важна прежде всего полнота и точность сведений о счетах своих клиентов.
На целостность системной информации влияют многочисленные программно-технические и процедурные механизмы. Традиционные средства управления доступом обеспечивают контроль над тем, кто имеет доступ к системной информации. Однако не всегда эти механизмы сами по себе достаточны для обеспечения требуемого уровня целостности. Рассмотрим некоторые дополнительные средства:
контрольные суммы;
В качестве простейшего средства контроля целостности можно использовать утилиту, которая подсчитывает контрольные суммы для системных файлов и сравнивает их с предыдущими известными значениями. В случае совпадения файлы, вероятно, не изменились; при несовпадении можно утверждать, что кто-то изменил их некоторым неизвестным способом.
Оборотной стороной простоты и легкости реализации является ненадежность механизма контрольного суммирования. Целенаправленный злоумышленник без труда добавит в файл несколько символов и получит требуемое значение суммы.
Особый тип контрольных сумм, называемый циклическим контролем (Cyclic Redundancy Check, CRC), обладает гораздо большей надежностью. Его реализация лишь немногим сложнее, зато обеспечивается более высокая степень контроля. Тем не менее и он может не устоять перед злоумышленником.
Контрольные суммы можно использовать для обнаружения фактов изменения информации, однако они не обеспечивают активной защиты от внесения изменений. По этой причине следует применять другие механизмы, такие, как управление доступом и криптография.
криптографические контрольные суммы.
Криптографические контрольные суммы (называемые также имитовставками) вычисляются следующим образом. Файл делится на порции, для каждой из них подсчитывается контрольная сумма (CRC), а затем эти частичные суммы складываются. При подходящей реализации данный метод гарантирует практически стопроцентное обнаружение изменений файлов, несмотря на возможное противодействие злоумышленника. Недостаток метода состоит в том, что он требует значительных вычислительных ресурсов, так что его разумно применять лишь тогда, когда требуется максимально возможный контроль целостности.
Другой сходный механизм, называемый односторонней хеш-функцией (или кодом обнаружения манипуляций – Manipulation Detection Code, MDC), может быть использован также для уникальной идентификации файлов. Идея состоит в том, что никакие два разных исходных файла не дадут одинаковых результатов, так что при модификации файла хеш-функция изменит значение. Односторонние хеш-функции допускают эффективную реализацию на самых разных системах, что превращает стопроцентное обнаружение изменений файлов в реальность. (Одним из примеров эффективной односторонней хеш-функции является Snefru, доступная по USENET и Интернету.)
Заметим, что помимо обсуждаемых имеются и другие механизмы обеспечения целостности, такие, как совместный контроль со стороны двух лиц и процедуры проверки целостности. К сожалению, их рассмотрение выходит за рамки данного документа.Ограничение сетевого доступа. Протоколы, доминирующие в Интернете, – IP (RFC 791), TCP (RFC 793) и UDP (RFC 768) – предусматривают наличие управляющей информации, которой можно воспользоваться для ограничения доступа к определенным хостам или сетям организации.
Заголовок IP-пакета содержит сетевые адреса как отправителя, так и получателя. Далее, протоколы TCP и UDP поддерживают понятие «порта», идентифицирующего оконечную точку коммуникационного маршрута (обычно это сетевой сервер). В некоторых случаях может быть желательным запретить доступ к конкретным TCP– или UDP-портам, а быть может, даже к определенным хостам или сетям.
К управляющей информации относятся:
шлюзовые маршрутные таблицы;
Один из простейших способов предотвращения нежелательных сетевых соединений состоит в удалении определенных сетей из шлюзовых маршрутных таблиц. В результате хост лишается возможности послать пакеты в эти сети. (В большинстве протоколов предусмотрен двусторонний обмен пакетами даже при однонаправленном информационном потоке, поэтому нарушения маршрута с одной стороны, как правило, бывает достаточно.)
Подобный подход обычно применяется в экранирующих системах, чтобы не открывать локальные маршруты для внешнего мира. Правда, при этом зачастую запрещается слишком много (например, для предотвращения доступа к одному хосту закрывается доступ ко всем системам сети).
фильтрация пакетов маршрутизатором.
Многие коммерчески доступные шлюзовые системы (которые более правильно называть маршрутизаторами) предоставляют возможность фильтрации пакетов, основываясь не только на адресах отправителя или получателя, но и на их комбинациях. Этот подход может быть использован, чтобы запретить доступ к определенному хосту, сети или подсети из другого хоста, сети или подсети. Шлюзовые системы некоторых поставщиков (например, Cisco Systems) поддерживают еще более сложные схемы, допуская более детальный контроль над адресами отправителя и получателя. Посредством масок адресов можно запретить доступ ко всем хостам определенной сети, кроме одного. Маршрутизаторы Cisco Systems реализуют также фильтрацию пакетов на основе типа IP-протокола и номеров TCP– или UDP-портов.