Анализ системы безопасности Microsoft Windows 2000 Advanced Server и стратегий ее использования
печатается зашифрованный документ, файл расшифровывается исходным
приложением и отправляется в виде простого текста диспетчеру очереди
печати. Если диспетчер печати сконфигурирован так, чтобы буферизовать
документы (как в большинстве случаев), печатаемые данные будут
записываться в файл, который может быть после удаления восстановлен для
доступа к вашим зашифрованным данным.
Не рекомендуется использовать EFS кроме как на однопользовательских
компьютерах, которые нельзя по-другому физически защитить. Ее простота
использования является лишь видимостью безопасности, а не настоящей
безопасностьюEFS имеет смысл применять для компьютеров, подверженных
кражам, таких как портативные компьютеры, которые сконфигурированы с
шифрованием каталога буфера печати, временных папок и каталога My Documents
(Мои документы).
6. Сетевая безопасность Windows 2000 Advanced Server
Сетевая безопасность Windows 2000 основана на нескольких основных
службах:
• Active Directory;
• Group Policy;
• Kerberos;
• Share Security;
• IPSec.
Каждая из этих служб работает вместе с остальными, образуя единое
целое: IPSec определяется групповыми политиками, которые хранятся в Active
Directory и могут быть сконфигурированы для использования Kerberos для
автоматического обмена закрытыми ключами. Share Security основывается на
идентификационных данных пользователя, подтвержденных Kerberos на основе
хэшированных паролей, хранимых в Active Directory. Управление политикой
безопасности через Active Directory позволяет администраторам создавать
политики, которые могут быть автоматически применены ко всей организации.
Active Directory не является службой безопасности, но практически все
встроенные в Windows 2000 механизмы безопасности полагаются на Active
Directory как на механизм хранения информации безопасности, такой как
иерархия доменов, доверительные отношения, ключи криптографии, сертификаты,
политики и основные учетные записи безопасности.
Все механизмы безопасности Windows 2000 интегрированы с Active
Directory.
Хотя Active Directory не является службой безопасности, ее можно
сделать безопасной: контейнеры и объекты Active Directory имеют списки
контроля доступа (ACL), так же как файлы NTFS. Разрешения в Active
Directory можно применять во многом аналогично NTFS. В отличие от
разрешений файловой системы NTFS, можно устанавливать разрешения для полей
внутри конкретных объектов так, чтобы различные пользователи групп
безопасности были ответственны за части данных объекта.
6.1. Аутентификация Kerberos и безопасность домена
Аутентификация Kerberos была разработана Массачусетским
технологическим институтом (Massachusetts Institute of Techology, MIT) для
реализации межкомпьютерной доверительной системы, способной проверять
подлинность принципалов безопасности (таких, как пользователь или
компьютер) через открытую небезопасную сеть. Kerberos не зависит от
аутентификации, осуществляемой участвующими компьютерами, или сохранности
данных при передаче по сети. По этой причине Kerberos идеальна для
аутентификации через Интернет или в больших сетях.
Kerberos действует как надежная служба аутентификации третьей фирмы,
используя общие секретные ключи.. В Windows 2000 общий секретный ключ
генерируется при входе компьютера в домен. Поскольку обе стороны сеанса
Kerberos доверяют KDC, они доверяют друг другу. На практике это доверие
реализовано как безопасный обмен зашифрованными ключами, которые
подтверждают участникам взаимодействия идентификационные данные другой
стороны.
Аутентификация Kerberos работает следующим образом.
1. Клиент запрашивает возможный набор идентификационных данных для
данного сервера у KDC, отправляя запрос в простом текстовом формате,
содержащий имя клиента (идентификатор).
2. KDC ищет секретные ключи, как клиента, так и сервера в своей базе
данных (Active Directory) и создает билет (ticket), содержащий случайный
ключ сеанса, текущее время KDC, заданное политикой время окончания, и, в
зависимости от параметров, любую другую информацию, хранимую в базе данных.
В случае Windows 2000 в билете содержатся идентификаторы SID.
3. Билет зашифровывается с использованием секретного ключа клиента.
4. Создается второй билет, называемый билетом сеанса (session ticket),
содержащий ключ сеанса и необязательные данные аутентификации, которые
зашифровываются с использованием секретного ключа сервера.
5. Соединенные билеты передаются обратно клиенту. Серверу
аутентификации нет необходимости явным образом проверять подлинность
клиента, потому что только обладающий полномочиями клиент может
расшифровать билет.
6. После того как клиент получил в свое распоряжение допустимый билет
и ключ сеанса для сервера, он инициирует взаимодействие непосредственно с
сервером. Для этого клиент конструирует удостоверение (authenticator),
состоящее из текущего времени, имени клиента, по желанию — зависящую от
приложения контрольную сумму и случайным образом сгенерированный начальный
номер последовательности и/или подключ сеанса, используемые для извлечения
уникального идентификатора сеанса для требуемой службы. Удостоверения
действуют только для одной попытки и не могут применяться повторно или
использоваться в атаках воспроизведения, потому что они зависят от текущего
времени. Удостоверение шифруется при помощи ключа сеанса и передается
вместе с билетом сеанса серверу, у которого запрашивается служба.
7. Когда сервер получает билет от клиента, он расшифровывает билет
сеанса при помощи общего секретного ключа сервера (если существует более
одного ключа, нужный ключ указывается в части билета в простой текстовой
форме).
8. Затем сервер извлекает из билета ключ сеанса и использует его для
расшифровки удостоверения. Способность сервера расшифровать билет
подтверждает, что он был зашифрован при помощи секретного ключа сервера,
известного только KDC и самому серверу, таким образом, подлинность клиента
подтверждается. Удостоверение используется для гарантии того, что
взаимодействие недавнее и не является атакой на основе повторного запроса.
Билеты могут повторно использоваться в течение периода, определяемого
политикой безопасности домена, но не превышающего восьми часов. Клиенты
кэшируют свои билеты сеанса в безопасном месте, расположенном в оперативной
памяти, и уничтожают их по истечению срока действия.
Kerberos сокращает предоставление билетов, во время первого контакта с
клиентом предоставляя билет сеанса самому себе так же, как и запрашиваемому
серверу. КОС отвечает на этот первоначальный запрос — сначала предоставляя
билет сеанса для последующих запросов о билетах, называемый Ticket-Granting
Ticket (билет на предоставление билетов, TGT), и затем — билет сеанса для
запрашиваемого сервера. TGT устраняет потребность в дальнейшем проводимом
Active Directory поиске клиента, осуществляя предварительную аутентификацию
последующих запросов о билетах точно таким же способом, каким Kerberos
осуществляет аутентификацию всех остальных запросов. Как и любой билет
сеанса, билет TGT действителен до истечения срока действия, который зависит
от политики безопасности домена.
Kerberos технически делится на две службы: службу TGT (единственную
службу, которая действительно осуществляет аутентификацию в Active
Directory) и службу предоставления билетов, выдающую билеты сеансов по
получении допустимого TGT.
6.1.2. Доверительные отношения между доменами
Kerberos работает через границы домена (домены в терминологии Kerberos
называются сферами (realm), эти термины эквивалентны).
Имя домена, к которому принадлежит принципал безопасности, является
частью имени принципала безопасности. Членство в одном дереве Active
Directory автоматически создаст междоменные ключи Kerberos между
родительским доменоми его дочерними доменами.
Обмен междоменными ключами регистрирует контроллеры домена одного
домена в качестве принципалов безопасности в доверенном домене. Эта простая
концепция дает возможность любому принципалу безопасности в домене получить
билет сеанса в чужом КОС.
1. Когда принципал безопасности в одном домене хочет обратиться к
принципалу безопасности в соседнем домене (один из доменов родительский,
другой дочерний), он отправляет запрос о билете сеанса своему локальному
КОС.
2. КОС определяет, что сервер назначения не находится в локальном
домене, и отвечает клиенту, отправляя ему билет направления (referral
ticket), который является билетом сеанса, зашифрованный при помощи
междоменного ключа.
3. Клиент использует билет направления для запроса билета сеанса
непосредственно у чужого KDC.
4. Чужой KDC расшифровывает билет направления, потому что обладает
междоменным ключом, подтверждающим, что доверенный контроллер домена
доверяет клиенту (иначе он не предоставил бы ключ направления).
5. Чужой KDC предоставляет билет сеанса, допустимый для чужого сервера
назначения.
Для более удаленных доменов этот процесс просто повторяется. Для
доступа к принципалу безопасности в домене, расположенном на расстоянии
двух узлов в иерархии доменов Active Directory, клиент запрашивает билет
сеанса для сервера назначения в своем KDC, который в ответ пересылает ему
билет направления к следующему домену в пути. Затем клиент запрашивает
билет сеанса, используя только что полученный билет назначения. Этот сервер
просто ответит билетом назначения, допустимым для следующего сервера в
цепочке. Этот процесс будет продолжаться до тех пор, пока не будет
достигнут локальный домен для принципала безопасности назначения. В этот
момент ключ сеанса (технически — TGT и ключ сеанса) предоставляется
запрашивающему клиенту, который затем сможет пройти аутентификацию
непосредственно у принципала безопасности назначения.
Последняя важная концепция в аутентификации Kerberos — делегирование
аутентификации. Делегирование аутентификации (delegation of authentication)
— это механизм, посредством которого принципал безопасности дает
возможность другому принципалу безопасности, с которым у него установлен
сеанс, запрашивать аутентификацию от своего имени у третьего принципала
безопасности. Этот механизм важен в многозвенных приложениях, таких как web-
узел с поддержкой базы данных. При помощи делегирования аутентификации
клиент—web-браузер может пройти аутентификацию у web-cepвера и затем
предоставить web-серверу специальный билет TGT, который сервер сможет
использовать для запроса билетов сеансов от своего имени, web-сервер сможет
затем использовать передаваемые web-клиентом идентификационные данные для
аутентификации на сервере баз данных.
6.1.3. Групповые политики
Групповая политика (Group Policy) — это основной механизм Windows 2000
при управлении конфигурацией клиентских рабочих станций для контроля за
безопасностью и для администрирования. Политики (policy) — это, в общем
случае, просто наборы изменений в установках компьютера по умолчанию.
Политики обычно организуются так, чтобы отдельные политики содержали
изменения, реализующие конкретную цель — например, отключение или включение
шифрования файловой системы или контроль за программами, которые разрешено
запускать пользователю.
Групповые политики (Group Policies) применяются к элементам контейнера
Active Directory (таким, как домен или Organizational Unit
(Подразделение)). Группы безопасности могут быть использованы для
фильтрации групповых политик, но политики нельзя применять к группам
безопасности. Групповая политика Windows 2000 не является только механизмом
безопасности — ее основное предназначение состоит в управлении изменениями
и конфигурацией, — но она позволяет администраторам создавать
дополнительные системы безопасности, ограничивая свободу действий
пользователей. Групповые политики можно применять для управления следующими
элементами политик компьютера (computer policy):
. настройки реестра, связанные с конфигурацией и управлением
безопасности;
. установка программного обеспечения;
. сценарии, выполняющиеся при загрузке-завершении работы и входе-
выходе из системы;
. запуск служб;
. разрешения реестра;
. разрешения NTFS;
. политики открытого ключа;
. политики IPSec;
. настройки системы, сети и компонентов Windows.
Групповые политики можно применять для управления следующими
элементами политик пользователя (user policy):
. установка программного обеспечения;
. настройки Internet Explorer;
. сценарии входа-выхода в систему;
. настройки безопасности;
. Remote Installation Service (служба удаленной установки);
. перенаправление папок;
. компоненты Windows;
. настройки стартового меню, панели задач, рабочего стола и
Control Panel (Панель управления);
. сетевые настройки;
. настройки системы.
Объекты групповой политики (Group Policy Objects) по существу являются
настраиваемыми файлами реестра (и файлами поддержки, такими, как пакеты
.msi и сценарии), определяемыми настройками политики, которые загружаются и
применяются к входящим в домен клиентским компьютерам при начальной
загрузке компьютера (конфигурация компьютера) и при входе пользователя в
систему (конфигурация пользователя). Объекты групповой политики и все файлы
поддержки, требуемые для групповой политики, хранятся на контроллерах
домена в общей папке SysVol. К одному компьютеру могут применяться
несколько групповых политик, при этом каждая политика будет перезаписывать
настройки предыдущей политики в соответствии со сценарием «действует
последняя примененная» — если только определенная политика не
сконфигурирована так, чтобы ее нельзя было перезаписать.
Каждый объект групповой политики состоит из двух частей: конфигурации
компьютера и конфигурации пользователя. Можно сконфигурировать настройки и
пользователя, и компьютера в одном объекте групповой политики, а в окне
свойств политики можно отключить часть объекта, относящуюся к пользователю
или компьютеру.
Политики компьютера применяются во время начальной стадии работы
системы перед входом пользователя в систему (и во время периодических
восстановлений). Политики компьютера регулируют операционную систему,
приложения (включая Windows Explorer) и сценарии, выполняющиеся при
загрузке-завершении работы. В случае конфликта политики компьютера обычно
имеют преимущества над политиками пользователя.
Политики пользователя применяются после того, как пользователь вошел в
систему, но перед тем, как ему будет разрешено работать на компьютере, а
также во время цикла периодических обновлений. Политики пользователя
регулируют поведение операционной системы, настройки рабочего стола,
настройки приложений, перенаправление папок и пользовательские сценарии
входа-выхода в систему.
Групповые политики называются групповыми политиками потому, что они
применяются к группам пользователей, а именно к членам контейнеров Active
Directory, таких как домены или контейнеры OU. Групповые политики
иерархичны по своей природе: многие политики могут быть применены к одному
компьютеру или пользователю, они применяются в порядке иерархии. Кроме
того, последующие политики могут перекрыть настройки предыдущих политик.
Это означает, что отдельные элементы политики можно детализировать при
переходе от применяемых к большим группам, таким как домены, политик
широкого действия, к узконаправленным политикам, применяемым к меньшим
группам, таким как контейнеры OU.
Групповые политики конфигурируются на следующих уровнях в следующем
порядке.
Локальный компьютер. Групповая политика применяется первой, поэтому
она может быть перекрыта политикой домена. У каждого компьютера существует
одна применяемая к нему локальная групповая политика. Нелокальные групповые
политики загружаются из Active Directory в зависимости от месторасположения
пользователя и компьютера в Active Directory.
Офис. Эти групповые политики уникальны тем, что они управляются из
оснастки Active Directory Sites and Services (Сайты и службы). Политики
офисов применяются к офисам, поэтому их следует применять для вопросов,
связанных с физическим расположением пользователей и компьютеров, а не с
участием в безопасности домена.
Домен. Групповые политики применяются ко всем пользователям и
компьютерам в домене, и именно здесь следует реализовывать глобальные
политики организации.
Контейнер OU (Organizational Unit). Групповые политики применяются к
входящим в них пользователям и компьютерам. Групповые политики применяются
сверху вниз (родитель, затем потомок) иерархии OU.
Группа безопасности. Группы безопасности функционируют по-другому, чем
настоящие контейнеры доменов. В этом случае не определяются групповые
политики, применяемые к группе безопасности, а фильтруются (разрешаются или
запрещаются) применяемые к пользователю групповые политики на основе
вхождения пользователя в группы безопасности.
Групповые политики применяются только целиком, нельзя указать, чтобы
применялась только часть политики.
Одна групповая политика может быть применена более чем к одному
контейнеру в Active Directory, потому что групповые политики не хранятся в
Active Directory месте их применения. Хранится только ссылка на объект
групповой политики, сами объекты на самом деле хранятся в реплицируемой
общей папке SysVol на контроллерах домена в домене.
Групповая политика домена управляется через оснастку Active Directory
Sites and Services для групповых политик офисов или оснастку Active
Directory Users and Computers (Пользователи и компьютеры) для всех
остальных нелокальных групповых политик.
Одна политика может быть применена к нескольким контейнерам Active
Directory, хотя нет необходимости явно применять политику к детям
контейнера, к которому уже применена политика, потому что политика будет
уже применена к принципалу безопасности.
6.4. Безопасность общих папок
Общие папки (shares) — это каталоги или тома на рабочей станции или
сервере, к которым имеют доступ другие компьютеры в сети. Доступ к общим
папкам может быть либо открытым, либо контролироваться разрешениями. Общие
папки используют безопасность уровня общих папок (share-level security),
которая управляет разрешениями общих папок, но не конкретных объектов
внутри папки. Безопасность уровня файлов преобладает над безопасностью
уровня общих папок, но может применяться только на томах NTFS.
Хотя при помощи общих папок можно установить приемлемую безопасность в
маленькой сети, техника безопасности общих папок в действительности плохо
масштабируется для обеспечения безопасности больших сетей и окружений.
Основная причина для установки сети — это совместное использование
файлов. Любой каталог на любой рабочей станции или сервере в сети может
быть определен как общий каталог. Хотя общие папки не обладают тем же
уровнем безопасности, как каталоги NTFS на выделенном сервере, Windows 2000
предоставляет простой набор возможностей безопасности для общих каталогов.
Доступ к общим папкам. На сервере может быть сконфигурировано
несколько общих папок — тома целиком, каталоги на более глубоких уровнях, —
все они видятся пользователям как единый список под именем сервера.
Пользователи могут получить доступ к папке с именем сервера через значок My
Network Places (Мое сетевое окружение) и затем открыть ее, чтобы отобразить
список общих папок.
Общие папки по умолчанию. В Shared Folder Manager (диспетчер общих
папок), несколько общих папок с именами, заканчивающимися знаком доллара:
С$, ADMIN$ и т. п. Это административные общие папки (administrative shares)
— общие папки, автоматически конфигурируемые Windows 2000 и доступные
только для администраторов и самой операционной системы. Эти общие папки
используются для удаленного администрирования и взаимодействия между
системами.
Административные общие папки представляют определенный риск с точки
зрения безопасности. Хакер, получивший доступ к учетной записи
Administrator на одной рабочей станции в рабочей группе, сможет получить
доступ к системным дискам других рабочих станций, легко получая доступ
уровня администратора ко всей рабочей группе.
Можно повысить безопасность, отключив автоматические административные
общие папки, созданные для корневых каталогов дисков жесткого диска (С$, 0$
и т. д.).
Безопасность уровня общих папок аналогична безопасности файловой
системы, но далеко не так разнообразна (или безопасна), потому что записи
управления доступом общих папок могут применяться только к общей папке как
к единому целому. Безопасность нельзя настроить внутри общей папки.
У безопасности уровня общих папок есть одно существенное преимущество:
она работает с любым общим каталогом, находится ли он на томе NTFS или FAT.
Безопасность уровня общих папок — единственный способ обеспечить
безопасность каталогов FAT. Однако установленные разрешения для общей папки
влияют только на удаленных пользователей. Пользователи, локально вошедшие в
систему компьютера, имеют доступ ко всем папкам на томе FAT, независимо от
того, общие они или нет. Безопасность уровня общих папок также не применима
к пользователям, вошедшим в систему локально, или клиентам Terminal
Services (службы терминала).
Разрешения общих папок. Для общих папок возможны следующие разрешения,
каждое из которых может быть разрешено или запрещено:
• Read (Чтение) — позволяет пользователям просматривать содержимое
каталога, открывать и читать файлы и запускать программы;
• Change (Изменение) — разрешает все, что и разрешение Read
(Чтение). Плюс к этому пользователи могут создавать, удалять и изменять
файлы;
• Full Control (Полный доступ) — разрешает все, что и разрешения
Read (Чтение) и Change (Изменение). Плюс к этому пользователи могут
изменять разрешения и менять владельца файлов.
6.5. Шифрование сетевого уровня
Виртуальные частные сети (virtual private network, VPN) это
высокозатратный способ расширить локальную сеть через Интернет до удаленных
сетей и удаленных клиентских компьютеров. Сети VPN используют Интернет для
передачи трафика локальной сети из одной частной сети в другую,
инкапсулируя трафик локальной сети в IP-пакеты. Зашифрованные пакеты не
могут быть прочитаны промежуточными компьютерами Интернета и могут
содержать любой вид взаимодействий локальной сети, включая доступ к файлам
и принтерам, электронную почту локальной сети, вызовы удаленных процедур и
клиент-серверный доступ к базам данных.
Виртуальные частные сети между локальными сетями можно устанавливать
при помощи компьютеров-серверов, брандмауэров или маршрутизаторов. Доступ
клиентов к VPN может осуществляться при помощи программного обеспечения VPN
на клиентских компьютерах или путем удаленного телефонного подключения к
поставщикам услуг Интернета (ISP), поддерживающим протокол VPN. При втором
методе, однако, ISP становится вашим партнером в безопасности сети.
Одни только системы VPN не обеспечивают достаточной защиты сети также
потребуется брандмауэр и другие службы безопасности Интернета для
обеспечения безопасности сети. Проблемы с безопасностью в особенности
свойственны протоколу РРТР
Использование Интернета для связи локальных сетей и предоставления
удаленным компьютерам доступа к локальной сети влечет за собой проблемы
безопасности, производительности, надежности и управляемости. Клиенты и
серверы локальной сети должны быть защищены от Интернета при помощи
трансляции сетевых адресов, осуществляемой брандмауэром, и/или прокси-
серверами так, чтобы (в идеале) злоумышленники в сети не могли даже узнать
об их существовании, что сильно снижает их подверженность индивидуальным
атакам. Для того чтобы затруднить хакерам возможность захвата закрытой
информации фирмы, большинство брандмауэров конфигурируются так, чтобы не
пропускать типичные служебные протоколы локальной сети, такие как SMB,
NetBIOS, NetWare Core Protocol или NFS.
SMB работает особенно хорошо в чистом виде через Интернет. Имея
высокоскоростной канал, можно просто использовать совместное использование
файлов через Интернет без брандмауэров или сконфигурировать ваш брандмауэр
для передачи трафика 8MB и Kerberos или NetBIOS и разрешить удаленный
доступ к службам файлов и печати. Это позволит хакерам предпринять попытку
получить доступ к вашим данным, просто предоставив допустимое имя учетной
записи и пароль или проведя атаку на протокол и воспользовавшись его
ошибкой.
6.5.1. Технологии VPN
Виртуальные частные сети (VPN) решают проблему прямого доступа к
серверам через Интернет при помощи объединения следующих фундаментальных
компонентов безопасности:
• IP-инкапсуляция;
• защищенная аутентификация;
• шифрование вложенных данных.
Протокол Secure Socket Layer осуществляет шифрование вложенных данных
без защищенной аутентификации удаленного пользователя, a Kerberos
осуществляет защищенную аутентификацию без шифрования вложенных данных.
IP-инкапсуляция. В идеале, компьютеры в каждой локальной сети не
должны ничего подозревать о том, что во взаимодействии с компьютерами из
других локальных сетей есть что-то особенное. Компьютеры, не входящие в
вашу виртуальную сеть, не должны иметь возможность подслушивать трафик
между локальными сетями или вставлять в коммуникационный поток свои
собственные данные.
IP-пакет может содержать любой вид информации: файлы программ, данные
электронных таблиц, звуковые данные или даже другие IP-пакеты. Когда IP-
пакет содержит другой IP-пакет, это называется IP-инкапсуляцией (IP
encapsulation), IP поверх IP (IP on IP) или IP/IP. Можно инкапсулировать
один IP-пакет в другой несколькими способами; Microsoft делает это двумя
различными, но связанными способами, определенными в протоколах Point-to-
Point Tunneling Protocol (РРТР) и Layer 2 Tunneling Protocol (L2TP).
Microsoft также поддерживает IPSec, которому не обязательно использовать
инкапсуляцию.
IP-инкапсуляция может заставить две удаленные друг от друга сети
выглядеть для компьютеров сети соседними, отделенными друг от друга только
одним маршрутизатором, хотя на самом деле они будут разделены многими
шлюзами и маршрутизаторами Интернета, которые могут даже не использовать
одного адресного пространства, потому что обе внутренние сети применяют
трансляцию адресов.
Конечная точка туннеля, будь это маршрутизатор, устройство VPN, или
сервер, на котором работает протокол туннелирования, извлечет внутренний
пакет, расшифрует его и затем отправит вложенный пакет по его пути
назначения во внутренней сети в соответствии со своими правилами
маршрутизации.
Передача данных в соединенных по протоколу РРТР локальных сетях
начинается и заканчивается точно так же, как это происходит в локальных
сетях, соединенных через маршрутизатор. IP-пакетам, однако, приходится
проходить более дальний путь, поэтому в середине проделывается большая
работа. С точки зрения двух клиентских компьютеров в сети не имеет
значения, каким образом пакет был получен одной IP-подсетью от другой. Для
вовлеченных в соединение сетевых клиентских компьютеров маршрутизатор
означает то же самое, что и два RRAS-сервера и РРТР-соединение.
Защищенная аутентификация. Защищенная аутентификация (cryptographic
authentication) используется для безопасного подтверждения личности
удаленного пользователя, для того чтобы система смогла определить
соответствующий этому пользователю уровень безопасности. Сети VPN применяют
защищенную аутентификацию для того, чтобы определить, может ли пользователь
участвовать в зашифрованном туннеле или нет, а также могут применять ее для
обмена секретными или открытыми ключами, используемыми для шифрования
вложенных данных.
Существует много различных видов защищенной аутентификации в двух
общих категориях.
• Шифрование с секретным ключом. Также называется шифрованием с
общим секретным ключом (shared secret encryption) или симметричным
шифрованием (symmetric encryption), полагается на секретное значение,
известное обеим сторонам.
• Шифрование с открытым ключом. Полагается на обмен
однонаправленными ключами (unidirectional keys) - ключами, при помощи
которых можно только зашифровать данные. Оконечные системы туннеля могут
обмениваться парами открытых ключей для образования двунаправленного
канала, или получатель при передаче с открытым ключом может зашифровать
общий секретный ключ и переслать его отправителю для использования в
будущих коммуникациях (потому что шифрование с секретным ключом быстрее,
чем шифрование с открытым ключом).
Если хакер перехватит открытый ключ (или ключ для зашифровки), он
сможет только зашифровать данные и передать их получателю, но не сможет
расшифровать содержание перехваченных данных.
Шифрование вложенных данных. Шифрование вложенных данных (data payload
encryption) используется для сокрытия содержания инкапсулированных данных
при шифровании инкапсулированных IP-пакетов и данных, и внутренняя
структура частных сетей сохраняется в секрете. Шифрование вложенных данных
может осуществляться при помощи одного из криптографических методов
обеспечения безопасности, которые различаются в зависимости от вашего
решения VPN.
6.5.2. IPSec
IPSec (Internet Protocol Security) это система стандартов IETF для
безопасных IP-коммуникаций, полагающаяся на шифрование для обеспечения
подлинности и закрытости IP-коммуникаций. IPSec обеспечивает механизм,
посредством которого можно реализовать следующее:
• проверять подлинность отдельных IP-пакетов и гарантировать, что
они не были изменены;
• шифровать вложенные данные отдельных IP-пакетов между двумя
оконечными системами;
• инкапсулировать TCP или UDP сокет между двумя оконечными системами
(хостами) внутри защищенного IP-канала (туннеля), установленного между
промежуточными системами (маршрутизаторами) для обеспечения
функционирования виртуальной частной сети.
IPSec реализует эти три функции при помощи двух независимых
механизмов: протокол Authentication Headers '(АН) для аутентификации и
протокол Encapsulation Security Payload (ESP) для шифрования части данных
IP-пакета. Эти два механизма могут применяться вместе или по отдельности.
Механизм АН работает, вычисляя контрольную сумму всей информации
заголовка TCP/IP и зашифровывая контрольную сумму при помощи секретного
ключа получателя. Получатель расшифровывает контрольную сумму при помощи
своего секретного ключа и затем сверяет заголовок с расшифрованной
контрольной суммой. Если вычисленная контрольная сумма отличается от
контрольной суммы заголовка, то в этом случае либо не удалась расшифровка
из-за неправильного ключа, либо заголовок был изменен при передаче. В любом
случае пакет отбрасывается.
IPSec может действовать в одном из двух режимов: транспортном режиме
(transport mode), который работает в точности как обычный IP, за
исключением того, что проводится аутентификация заголовков (АН) и
содержимое шифруется (ESP), или в туннельном режиме (tunnel mode), в
котором IP-пакеты целиком инкапсулируются внутрь пакетов АН или ESP для
обеспечения безопасного туннеля. Транспортный режим используется для
обеспечения безопасного или аутентичного взаимодействия через открытые
области IP между соединенными через Интернет хостами в любых целях, в то
время как туннельный режим используется для создания безопасных каналов
передачи данных между маршрутизаторами или другими конечными точками сети в
целях связывания двух частных сетей.
Туннельный режим. При обычном маршрутизируемом соединении хост
передает IP-пакет своему шлюзу по умолчанию, который продвигает пакет до
тех пор, пока он не достигнет шлюза по умолчанию получателя, который затем
передает его конечному хосту. Все компьютеры в соединении должны быть в
одном открытом адресном пространстве.
В IP поверх IP, или IP/IP, шлюз по умолчанию (или другой маршрутизатор
по пути следования) получает пакет и замечает, что его маршрут для этого
пакета задает туннель IP/IP, поэтому он устанавливает TCP/IP-соединение с
удаленным шлюзом. При помощи этого соединения шлюз передает весь IP-трафик
хоста-инициатора внутри этого соединения, вместо того чтобы продвигать его.
IPSec реализует и IP/IP, и IPSec/IP. IP/IP обеспечивает
незашифрованный виртуальный туннель между двумя оконечными системами a
IPSec/IP применяет ESP для шифрования вложенных данных несущего IP, таким
образом зашифровывая весь инкапсулированный IP-пакет
Internet Key Exchange. IPSec использует криптографию открытого ключа
для шифрования данных между оконечными системами. Для того чтобы установить
IPSec-соединение с хостом-получателем, передающий хост должен знать
открытый ключ этого хоста. Технически отправитель может просто запросить у
хоста открытый ключ, но это е обеспечит аутентификации — любой хост может
запросить ключ и получить его. Таким образом работает SSL, подлинность
компьютер; не имеет значения, и SSL полагается на какой-либо другой
протокол для аутентификации пользователя после установки туннеля.
IPSec использует концепцию Security Association (безопасная
ассоциация, SA) для создания именованных комбинаций ключей и политики,
используемых для защиты информации для определенной функции. Политика может
указывать определенного пользователя, IP-адрес хоста или сетевой адрес,
аутентификация которых должна быть проведена, или задавать маршрут, где
можно было бы получить такую информацию.
Internet Key Exchange (IKE) устраняет необходимость вручную вводить
ключи в системы. IKE использует безопасность с секретным ключом для
подтверждения своих полномочий для создания IPSec-соединения и для
секретного обмена открытыми ключами. Протокол IKE также способен
согласовывать совместимый набор протоколов шифрования с чужим хостом, так
что администраторам не нужно знать, какие именно протоколы шифрования
поддерживаются на хосте другой стороны. После обмена открытыми ключами и
согласования протоколов шифрования безопасные ассоциации автоматически
создаются на обоих хостах и может быть установлено обычное IPSec-
взаимодействие. С использованием IKE в каждый компьютер, которому требуется
взаимодействие через IPSec, должен быть введен только один секретный ключ.
Этот ключ может быть использован для создания соединения IPSec с любым
другим IPSec-хостом, обладающим этим же секретным ключом
В Windows 2000 можно сконфигурировать политики IPSec для использования
Kerberos для автоматического обмена секретными ключами для IKE Это
устраняет потребность в ручном вводе ключей и позволяет реализовать
полностью автоматическое безопасное шифрование между членами одной Active
Directory в сетях Windows 2000
Инициатор IKE начинает IKE-запрос, отправляя удаленному хосту запрос
на соединение в виде простого текста. Удаленный хост генерирует случайное
число, сохраняет его копию и отправляет копию обратно инициатору. Инициатор
шифрует свой секретный ключ с использованием случайного числа и отправляет
его удаленному хосту. Удаленный хост расшифровывает секретный ключ,
используя свое сохраненное случайное число, и сравнивает закрытый ключ со
своим секретным ключом (или списком ключей, называемом связкой ключей
(keyring)). Если секретный ключ не совпадает ни с одним ключом из списка,
удаленный хост разорвет соединение. Если совпадет, удаленный хост зашифрует
свой открытый ключ при помощи секретного ключа и отправит его обратно
инициатору. Инициатор затем воспользуется открытым ключом для установки
сеанса IPSec с удаленным хостом.
Рис. 6.5.2.1. Пример работы Internet Key Exchange.
Реализация Microsoft IPSec не завершена полностью, потому что
стандарты IPSec все еще появляются. Практическим следствием этого является
то, что реализация IPSec в Windows 2000 по умолчанию несовместима с
реализациями большинства поставщиков брандмауэров
6.5.3. L2TP
Layer 2 Tunneling Protocol является расширением протокола Point-to-
Point Protocol (протокол точка-точка, РРР) и позволяет разделить конечную
точку канала передачи данных и точку доступа к сети. В традиционном РРР
пользователь (обычно удаленный пользователь) устанавливает РРР-соединение с
сервером удаленного доступа. Этот сервер отвечает на соединение канального
уровня (звонок через модем) и также работает как точка доступа к сети,
извлекая данные, инкапсулированные в РРР-сообщение, и передавая их в сеть
назначения. Инкапсулированные данные могут быть кадром AppleTalk, IP-
пакетом, IPX-пакетом, пакетом NetBIOS или любым другим пакетом сетевого
уровня.
В Windows 2000 эта служба называется RRAS.
L2TP отделяет ответы на звонки и маршрутизируемый доступ по сети При
работе по протоколу L2TP звонящая сторона может дозваниваться к модемному
пулу (или DSL Access Module, или чему-либо еще) и эти устройства могут
просто инкапсулировать полученные пакеты L2TP в пакеты Frame Relay, ATM или
TCP/IP для дальнейшей передачи серверу удаленного доступа. По достижении
сервера удаленного доступа содержимое пакетов L2TP извлекается и вложенные
данные передаются в локальную сеть.
L2TP предназначен для того, чтобы дать возможность поставщикам услуг
Интернета использовать менее дорогостоящее оборудование, разделяя функции
сервера удаленного доступа на аппаратную функцик (физический прием данных
через соединение) и программную функцию (получение инкапсулированных данных
РР-Р), что может быть реализовано на разных компьютерах. Это дает ряд
важных преимуществ:
• пользователи могут дозваниваться до локального модемного пула
который будет передавать L2TP находящемуся на большом расстоянии серверу
удаленного доступа, таким образом избегая затрат на звонки на большое
расстояние при удаленном доступе с прямым дозвоном;
• вложенные данные в L2TP могут быть зашифрованы при помощи IPSec
для обеспечения удаленного доступа с защищенной аутентификацией;
• многоканальные сеансы L2TP могут физически обрабатываться
различными приемниками и корректно связываться с единственным сервером
удаленного доступа. В нынешней реализации многоканальных РРР-соединений все
каналы должны быть соединены одним и тем же сервером удаленного доступа.
L2TP может использовать IPSec для шифрования кадров РРР, такт образом
предоставляя удаленным пользователям возможность без опасного РРР-сеанса.
L2TP специально разрабатывался для предоставления удаленному пользователю
возможностей аутентификации и подключения к удаленным сетям. Поскольку L2TP
является расширением РРР, любой протокол сетевого уровня (например, IPX,
NetBEUI или AppleTalk) может быть встроен внутрь L2TP. В противоположность
этому, оба протокола РРТР и IPSec предназначены для использования в IP-
сетях и не работают с другими протоколами. Применение РРР также
обеспечивает поддержку всех стандартных протоколов аутентификации
пользователя, включая CHAP, MS-CHAP и ЕАР.
L2TP использует в качестве своего транспорта UDP, а не TCP/IP, потому
что встроенный протокол РРР может обеспечить необходимую гарантию
надежности для потока L2TP работает через порт 1701 UDP.
6.5.4. РРТР
РРТР был первой попыткой Microsoft предоставить безопасный удаленный
доступ пользователям сети. По существу, РРТР создает зашифрованный сеанс
РРР между хостами TCP/IP. В отличие от L2TP, РРТР действует только поверх
TCP/IP; L2TP может работать поверх любого транспорта пакетов, включая Frame
Relay и ATM. РРТР не использует IPSec для шифрования пакетов, вместо этого
он использует хэшированный пароль пользователя Windows 2000 для создания
закрытого ключа между клиентом и удаленным сервером, который (в версии с
128-битным шифрованием) задействует случайное число для повышения
устойчивости шифрования.
7. Разработка программы определяющей имя компьютера и
его ip-адрес.
1. Постановка задачи и определение основных
целей программы.
Поставлена задача составить программу которая могла бы получать имя
компьютера (рабочей станции), определять его ip-адрес в сети и выводить эти
данные на экран. Программа должна работать в среде Win32, использовать
минимум ресурсов, быть достаточно компактной и написанной на языке высшего
уровня.
2. Принцип работы программы.
Для написания программы был использован язык программирования макро
Ассемблер (MASM).
Использовались следующие библиотеки: wsock32.lib, user32.lib,
kernel32.lib, gdi32.lib.
При запуске программы (exe файла) она обращается через АР-функции к
динамическим библиотекам Windows и получает из них необходимые данные,
далее через АР-функции выводит полученные данные (имя и ip-адрес рабочей
станции) на экран в стандартном для Windows окне, окно фиксированного
размера.
Программа скомпилирована с включением makefile (файла сборки).
makefile считает что в директория masm32 находится на том же накопителе и –
в стандартной instalation позиции. Так же имеется файл используемых
программой ресурсов.
Рис. 7.2.1. Внешний вид окна программы
Выводы
Безопасность — это комплекс мер, принимаемых для предотвращения потери
или раскрытия информации в сети. Поскольку невозможно абсолютно устранить
вероятность потери в пригодных к работе системах, определенная степень
риска неизбежна, и безопасность системы должна основываться на фундаменте
предоставления доступа только надежным принципалам безопасности
(пользователям или компьютерам).
Для управления безопасностью любая система должна:
• контролировать доступ;
• идентифицировать пользователей;
• ограничивать или разрешать доступ;
• записывать деятельность пользователей;
• осуществлять закрытое взаимодействие между системами;
• минимизировать риск неправильной конфигурации.
Шифрование, процесс сокрытия сообщения при помощи математического
алгоритма (шифра), и секретное значение (ключ), известное только легитимным
сторонам, образуют основу всей современной компьютерной безопасности.
Шифрование может быть использовано для подтверждения идентификационных
данных пользователя или компьютера, для проверки допустимости данных или
для сокрытия содержимого данных при хранении или в коммуникационном потоке.
Безопасность Windows 2000 основывается на аутентификации
пользователей. Входя в систему Windows 2000, пользователи подтверждают свою
личность для того, чтобы получить доступ к файлам, программам и общим
данным на серверах. Windows 2000 использует проникающую модель
безопасности, в которой идентификационные данные пользователя проверяются
при всех действиях, выполняемых пользователем на компьютере, вместо того
чтобы предоставлять широкий доступ к компьютеру после того, как произошел
успешный вход в систему.
Для того чтобы операционная система была надежной, она должна быть
способной гарантировать, что не подвергалась несанкционированным изменениям
и что информация может храниться в безопасности от пользователей. Windows
2000 использует разрешения файловой системы NTFS для управления доступом к
файлам, включая файлы, обеспечивающие загрузку Windows 2000. Разрешения
могут быть предоставлены пользователям и группам пользователей для каждой
функции файловой системы. Файлы также могут быть зашифрованы на диске для
гарантии того, что к ним не будет получен доступ, даже когда компьютер
выключен.
Сетевая безопасность Windows 2000 управляется при помощи Active
Directory, используемой в качестве репозитария хэшированных паролей
Kerberos, групповых политик и политик IPSec. Active Directory определяет
также взаимоотношения между принципалами безопасности.
Windows 2000 использует Kerberos для проверки идентификационных данных
пользователя по сети. Kerberos является надежной системой безопасности
третьей фирмы. Поскольку обе конечные точки во взаимодействии доверяют и
доверяемы сервером Kerberos, они доверяют друг другу. Серверы Kerberos
могут доверять другим серверам Kerberos, поэтому могут быть созданы
транзитивные доверительные отношения, дающие возможность конечным точкам из
разделенных большим расстоянием сетей устанавливать сеансы взаимодействия с
проверкой подлинности. Kerberos интегрирован с Active Directory (все
контроллеры домена являются центрами Kerberos Key Distribution Center
(центрами распределения ключей Kerberos)), и вхождение в одно дерево домена
автоматически создает транзитивные двусторонние доверительные отношения.
Групповые политики применяются для установки требований безопасности и
конфигурации компьютеров и учетных записей пользователей в домене, офисе
или контейнере OU. Можно применять групповые политики для управления
практически всеми элементами безопасности компьютеров и пользователей.
Групповые политики управляются из оснастки Active Directory Users and
Computers (Пользователи и компьютеры) или через оснастку Active Directory
Sites and Services (Сайты И службы).
IPSec является стандартом Интернета для обеспечения аутентичности IP-
пакетов и для шифрования данных, вложенных в IP-пакеты. IPSec работает со
многими различными алгоритмами безопасности и может работать в обычном
транспортном режиме или туннельном режиме для эмуляции закрытого канала в
открытой сети, такой как Интернет.
Безопасность в эру Интернета означает активную блокировку сеансов от
неизвестных компьютеров, авторизацию пользователей на основе сертификатов
публичных ключей шифрования, аудита использования файлов и каталогов,
шифрование передачи данных и предотвращение непреднамеренной активизации
вирусов и троянских коней легитимными пользователями.
Вынеся уроки из плохо подготовленной Windows NT4, Windows 2000
предоставляет сложный набор средств аутентификации пользователей,
шифрования данных, обеспечения безопасных соединений, блокировки
несанкционированного доступа и целостного управления безопасностью. При
помощи набора служб по умолчанию Windows 2000 можно сделать более
безопасной, чем любую другую операционную систему для массового рынка — в
том числе все версии UNIX или Linux, — и ею гораздо проще управлять и
использовать в безопасном состоянии.
Windows 2000 не может, тем не менее, предусмотреть все, потому что
Microsoft и поставщики программного обеспечения третьих фирм пока еще во
главу угла ставят простоту использования, а не безопасность в
потребительских продуктах, таких как Internet Explorer, Outlook и Office.
Во всех этих программах существуют серьезные изъяны в безопасности из-за их
встроенных сценарных процессоров, требующих от администраторов сетей
неустанной бдительности. Windows 2000 также может помочь в исправлении этих
проблем, но пока Microsoft в своих продуктах для конечных пользователей не
станет уделять основное внимание безопасности, единственным способом
предотвратить проблемы безопасности в вашей сети, вызванные этими
программами, —это вообще их не использовать.
Список литературы:
В. Олифер Н. Олифер. Сетевые операционные системы – С. Петербург.: Питер.,
- 2003.
Марк Джозеф Эдвард, Дэвид Лебланк. Где NT хранит пароли. - Журнал "Windows
2000 Magazine", -02/1999
Мэтью Штребе. Windows 2000: проблемы и решения. Специальный справочник –
С.Петербург.: Питер., -2002.
Андреев А. Г. и др. Microsoft Windows 2000: Server и Professional. Русские
версии. – BHV, -2001.
Грег Тодд. Windows 2000 Datacenter Server //по материалам сайта http:
www.citforum.ru
Криста Андерсон. Администрирование дисков в Windows 2000.-Журнал "Windows
2000 Magazine", -03/2000 //по материалам сайта http: www.citforum.ru
Джеффри Р. Шапиро. Windows 2000 Server. Библия пользователя – Вильямс, -
2001.
Гарри М. Брелсфорд. Секреты Windows 2000 Server – Вильямс, -2000.
Гусева. Сети и межсетевые коммуникации. Windows 2000 - Диалог Мифи, - 2002.
Приложение А
Исходный текст программы
.386
.model flat, stdcall
option casemap :none
include /masm32/include/windows.inc
include /masm32/include/user32.inc
include /masm32/include/kernel32.inc
include /masm32/include/wsock32.inc
include /masm32/include/gdi32.inc
includelib /masm32/lib/wsock32.lib
includelib /masm32/lib/user32.lib
includelib /masm32/lib/kernel32.lib
includelib /masm32/lib/gdi32.lib
WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
.data
dlgname db "WINSOCK",0
szTitle db "Ip Dialog",0
wsaError db "Error initializing winsock!",13,10
szName db "Computer Name: %s",0
szFont db "MS Sans Serif",0
.data?
wsa WSADATA
hStatic dd ?
hFont dd ?
hInstance dd ?
buffer db 24 dup (?)
buffer2 db 128 dup (?)
.code
start:
invoke GetModuleHandle, NULL
mov hInstance, eax
invoke WSAStartup,101h,addr wsa
.if eax == NULL
invoke DialogBoxParam,hInstance,ADDR dlgname,0,ADDR
WndProc,0
invoke ExitProcess,0
.endif
invoke MessageBox,NULL,offset wsaError,offset szTitle,MB_OK
+ MB_ICONSTOP
invoke ExitProcess,1
WndProc proc hWin:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD
.if uMsg == WM_INITDIALOG
invoke LoadIcon,hInstance,101
invoke SendMessage,hWin,WM_SETICON,TRUE,eax
invoke GetDlgItem,hWin,2000
mov hStatic,eax
invoke gethostname,offset buffer,sizeof buffer
invoke wsprintf,addr buffer2,addr szName,addr buffer
invoke SetDlgItemText,hWin,3000,addr buffer2
invoke gethostbyname,addr buffer
mov eax,[eax+12]
mov eax,[eax]
mov eax,[eax]
invoke inet_ntoa,eax
invoke SetDlgItemText,hWin,2000,eax
invoke WSACleanup
xor eax,eax
ret
.elseif uMsg == WM_CTLCOLORSTATIC
mov eax,lParam
.if eax == hStatic
invoke CreateFont,16,16,0,0,400,0,0,0,OEM_CHARSET,\
OUT_TT_PRECIS,CLIP_DEFAULT_PRECIS,\
DEFAULT_QUALITY,DEFAULT_PITCH or FF_SWISS,\
ADDR szFont
mov hFont,eax
invoke SelectObject, wParam, hFont
invoke GetSysColor, COLOR_MENU
invoke SetBkColor, wParam, eax
invoke SetTextColor,wParam,Blue
invoke GetStockObject, HOLLOW_BRUSH
ret
.endif
.elseif uMsg == WM_CLOSE
invoke DeleteObject,hFont
invoke EndDialog,hWin,0
xor eax,eax
ret
.endif
xor eax,eax
ret
WndProc endp
end start
Приложение Б
Файл сборки
makefile
NAME=ip
$(NAME).exe: $(NAME).obj $(NAME).res
\masm32\bin\Link /SUBSYSTEM:WINDOWS /LIBPATH:\masm32\lib
$(NAME).obj $(NAME).res
$(NAME).res: $(NAME).rc
\masm32\bin\rc $(NAME).rc
$(NAME).obj: $(NAME).asm
\masm32\bin\ml /c /coff /Cp $(NAME).asm
Приложение В
Файл используемых ресурсов
ip.rs
#include "\masm32\include\resource.h"
WINSOCK DIALOG DISCARDABLE 0, 0, 135, 25
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Ip Dialog"
FONT 8, "MS Sans Serif"
BEGIN
GROUPBOX "&Main",3000,0,0,135,25
CTEXT "Static",2000,4,9,127,12,SS_CENTERIMAGE | SS_SUNKEN
END
101 ICON DISCARDABLE "ico101.ico"
-----------------------
Шифрованный открытый ключ
Случайный ключ
Зашифрованный секретный ключ
Инициирование процедуры обмена ключами (IКЕ)
Страницы: 1, 2, 3
|