Реферат на тему Анализ системы безопасности Microsoft Windows 2000 Advanced Server и стратегий ее использования
Работа добавлена на сайт bukvasha.net: 2015-06-29Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Тема курсового проекта: «» Основные разделы курсового проекта:
Рекомендованная литература:
Вступление При создании системы безопасности новой ОС Windows 2000 Advanced Server разработчики фирмы Microsoft постарались учесть как существующий опыт использования системы безопасности Windows NT 4.0, так и реализовать новые наборы механизмов и протоколов безопасной работы с информацией. Windows NT 4.0 выбрана не случайно: она позиционируется как ОС для предприятий, обладает встроенными возможностями разграничения доступа к ресурсам и за 6 лет эксплуатации хорошо зарекомендовала свои существующие и потенциальные возможности безопасности. Но если заглянуть в Windows 2000 Advanced Server, то, очевидно, что, несмотря на большое количество механизмов безопасности, внесенных в новую ОС из Windows NT 4.0, все они претерпели существенные изменения в сторону увеличения удобства, надежности и функциональности. Несмотря на то что, судя по пользовательскому интерфейсу, Windows 2000 Advanced Server больше похожа на Windows 98, на самом деле она является преемником Windows NT и даже называлась Windows NT 5 на первом этапе работы над бета-версией. Хотя 2000 и базируется на Windows NT, операционная система была кардинально усовершенствована и обновлена, был также полностью пересмотрен интерфейс администрирования. NT 4 отличалась от NT 3.51 главным образом концепцией пользовательского интерфейса в виде рабочего стола, большинство средств администрирования остались теми же. В Windows 2000 Advanced Server изменился каждый инструмент администрирования. Все средства администрирования были унифицированы путем преобразования в «оснастки» (snap-in) псевдоиерархического средства управления Microsoft Management Console (консоль управления Microsoft, MMC). Система Windows 2000 Advanced Server компании Microsoft обеспечивает возможность безопасного доступа к ресурсам системы. Если для вас, самым важным ресурсом, подлежащим защите, являются файлы, можно настроить систему так, чтобы иметь возможность контролировать то, как другие пользователи читают, записывают, создают и изменяют файлы и папки на вашем компьютере. Это возможно только при использовании системы NTFS. Система была создана для Windows NT, предшественника Windows 2000 Advanced Server, и является одной из трех систем, которые можно использовать на жестком диске компьютера. 1. Структура сетевой операционной системы Сетевая операционная система составляет основу любой вычислительной сети. Каждый компьютер в сети в значительной степени автономен, поэтому под сетевой операционной системой в широком смысле понимается совокупность операционных систем отдельных компьютеров, взаимодействующих с целью обмена сообщениями и разделения ресурсов по единым правилам - протоколам. В узком смысле сетевая ОС - это операционная система отдельного компьютера, обеспечивающая ему возможность работать в сети.
Рис. 1.1. Структура сетевой ОС В сетевой операционной системе отдельной машины можно выделить несколько частей (рисунок 1.1):
В зависимости от функций, возлагаемых на конкретный компьютер, в его операционной системе может отсутствовать либо клиентская, либо серверная части.
Рис. 1.2. Взаимодействие компонентов операционной системы при взаимодействии компьютеров На рисунке 1.2 показано взаимодействие сетевых компонентов. Здесь компьютер 1 выполняет роль "чистого" клиента, а компьютер 2 - роль "чистого" сервера, соответственно на первой машине отсутствует серверная часть, а на второй - клиентская. На рисунке отдельно показан компонент клиентской части - редиректор. Именно редиректор перехватывает все запросы, поступающие от приложений, и анализирует их. Если выдан запрос к ресурсу данного компьютера, то он переадресовывается соответствующей подсистеме локальной ОС, если же это запрос к удаленному ресурсу, то он переправляется в сеть. При этом клиентская часть преобразует запрос из локальной формы в сетевой формат и передает его транспортной подсистеме, которая отвечает за доставку сообщений указанному серверу. Серверная часть операционной системы компьютера 2 принимает запрос, преобразует его и передает для выполнения своей локальной ОС. После того, как результат получен, сервер обращается к транспортной подсистеме и направляет ответ клиенту, выдавшему запрос. Клиентская часть преобразует результат в соответствующий формат и адресует его тому приложению, которое выдало запрос. На практике сложилось несколько подходов к построению сетевых операционных систем (рисунок 1.3).
Рис. 1.3. Варианты построения сетевых ОС Первые сетевые ОС представляли собой совокупность существующей локальной ОС и надстроенной над ней сетевой оболочки. При этом в локальную ОС встраивался минимум сетевых функций, необходимых для работы сетевой оболочки, которая выполняла основные сетевые функции. Примером такого подхода является использование на каждой машине сети операционной системы MS DOS (у которой начиная с ее третьей версии появились такие встроенные функции, как блокировка файлов и записей, необходимые для совместного доступа к файлам). 1.1. Одноранговые сетевые ОС и ОС с выделенными серверами В зависимости от того, как распределены функции между компьютерами сети, сетевые операционные системы, а следовательно, и сети делятся на два класса: одноранговые и двухранговые (рисунок 1.1.1.). Последние чаще называют сетями с выделенными серверами.
(а) Рис. 1.1.1. (а) - Одноранговая сеть
Рис. 1.1.1. (б) - Двухранговая сеть Если компьютер предоставляет свои ресурсы другим пользователям сети, то он играет роль сервера. При этом компьютер, обращающийся к ресурсам другой машины, является клиентом. Компьютер, работающий в сети, может выполнять функции либо клиента, либо сервера, либо совмещать обе эти функции. Если выполнение каких-либо серверных функций является основным назначением компьютера (например, предоставление файлов в общее пользование всем остальным пользователям сети или организация совместного использования факса, или предоставление всем пользователям сети возможности запуска на данном компьютере своих приложений), то такой компьютер называется выделенным сервером. В зависимости от того, какой ресурс сервера является разделяемым, он называется файл-сервером, факс-сервером, принт-сервером, сервером приложений и т.д. В сети с выделенным сервером все компьютеры в общем случае могут выполнять одновременно роли и сервера, и клиента, эта сеть функционально не симметрична: аппаратно и программно в ней реализованы два типа компьютеров - одни, в большей степени ориентированные на выполнение серверных функций и работающие под управлением специализированных серверных ОС, а другие - в основном выполняющие клиентские функции и работающие под управлением соответствующего этому назначению варианта ОС. Функциональная несимметричность, как правило, вызывает и несимметричность аппаратуры - для выделенных серверов используются более мощные компьютеры с большими объемами оперативной и внешней памяти. Таким образом, функциональная несимметричность в сетях с выделенным сервером сопровождается несимметричностью операционных систем (специализация ОС) и аппаратной несимметричностью (специализация компьютеров). В одноранговых сетях все компьютеры равны в правах доступа к ресурсам друг друга. Каждый пользователь может по своему желанию объявить какой-либо ресурс своего компьютера разделяемым, после чего другие пользователи могут его эксплуатировать. В таких сетях на всех компьютерах устанавливается одна и та же ОС, которая предоставляет всем компьютерам в сети потенциально равные возможности. В отличие от сетей с выделенными серверами, в одноранговых сетях отсутствует специализация ОС в зависимости от преобладающей функциональной направленности - клиента или сервера. Все вариации реализуются средствами конфигурирования одного и того же варианта ОС. Сетевые операционные системы имеют разные свойства в зависимости от того, предназначены они для сетей масштаба рабочей группы (отдела), для сетей масштаба кампуса или для сетей масштаба предприятия. 1.2. Серверные системы: история создания, основные версии. Серверные системы должны позволять первоначальный запуск в небольшой конфигурации и обеспечивать возможность расширения по мере роста потребностей. Электронная торговля по Интернету требует активного и быстрого увеличения размеров систем. Поставщикам услуг, объединяющим обработку приложений в большие узлы, также требуется динамичный рост систем. Масштаб таких узлов увеличивается как путем «роста вверх» (заменой серверов на более мощные), так и путем «роста вширь» (добавлением дополнительных серверов). Совокупность всех серверов, приложений и данных некоторого вычислительного узла называется также фермой. Фермы имеют множество функционально специализированных служб, каждая со своими собственными приложениями и данными (например, служба каталогов, безопасности, HTTP, почты, баз данных и т. п.). Ферма функционирует как подразделение — имеет единый обслуживающий персонал, единое управление, помещения и сеть. Для обеспечения отказоустойчивости аппаратное и программное обеспечение, а также данные фермы дублируются на одной или нескольких физически удаленных фермах. Такой набор ферм называют геоплексом. Геоплекс может иметь конфигурацию активный-активный, в которой все фермы несут часть нагрузки, или активный-пассивный, при которой одна или несколько ферм находятся в готовом резерве. Начало работ по созданию Windows NT приходится на конец 1988 года. Сначала Windows NT развивалась как облегченный вариант OS/2 (OS/2 Lite), который за счет усечения некоторых функций мог бы работать на менее мощных машинах. Однако со временем, увидев как успешно принимается потребителями Windows 3.0, Microsoft переориентировалась и стала разрабатывать улучшенный вариант Windows 3.1. Новая стратегия Microsoft состояла в создании единого семейства базирующихся на Windows операционных систем, которые охватывали бы множество типов компьютеров, от самых маленьких ноутбуков до самых больших мультипроцессорных рабочих станций. Windows NT, как было названо следующее поколение Windows-систем, относится к самому высокому уровню в иерархии семейства Windows. Эта операционная система, первоначально поддерживавшая привычный графический интерфейс (GUI) пользователя Windows, явилась первой полностью 32-разрядной ОС фирмы Microsoft. Win32 API - программный интерфейс для разработки новых приложений - сделал доступными для приложений улучшенные свойства ОС, такие как многонитевые процессы, средства синхронизации, безопасности, ввода-вывода, управление объектами. Первые ОС семейства NT - Windows NT 3.1 и Windows NT Advanced Server 3.1 появились в июле 1993 года. В августе 1996 года вышла очередная версия Windows NT 4.0. Сначала предполагалось, что эта очередная версия Windows NT получит номер 3.52, однако ей был присвоен номер 4.0, который раньше упоминался в компьютерной прессе в связи с другой ожидаемой версией Windows NT, имеющей кодовое название Cairo. Новшества, внесенные в Windows NT Server 4.0, были связаны с улучшением интерфейса пользователя, расширением поддержки Internet, появлением новых и модернизацией существующих инструментов администрирования и повышением производительности системы. 2. Системы семейства Windows NT. При разработке Windows NT 4.0 Microsoft решила пожертвовать стабильностью ради производительности. С этой целью были внесены изменения в архитектуру: библиотеки менеджера окон и GDI, а также драйверы графических адаптеров были перенесены из пользовательского режима в режим ядра. В Windows NT 4.0 было внесено много существенных изменений, среди которых наиболее значительными являются следующие:
Помимо внешних изменений, модернизация графического интерфейса не сильно отразилась на методах управления сетью. Базовый инструментарий администратора Windows NT Server остался прежним. Программы User Manager for Domains, Server Manager, Disk Administrator, Event Viewer, Performance Monitor, DHCP Manager, WINS Manager, Network Client Administrator, License Manager и Migration Tool for NetWare не претерпели существенных изменений. Remote Access Administrator также не изменился, он был перенесен из отдельной папки в меню Administrative Tools. Редактор системной политики System Policy Editor, совместимый как с Windows NT, так и с Windows 95, заменил редактор профилей пользователей User Profile Editor, знакомый по версиям Windows NT Server 3.x. В версию 4.0 вошли четыре дополнения: административные программы-мастера Administrative Wizards, System Policy Editor, а также расширенное средство Windows NT Diagnostics и программа Network Monitor (программа мониторинга работы сети, ранее поставлявшаяся только в составе продукта Microsoft Systems Management Server). Кроме того, в состав Windows NT 4.0 вошла Web-ориентированная утилита администрирования, открывающая доступ к средствам администрирования Windows NT из любого Web-броузера. Windows 2000 — следующее воплощение Windows NT, которую Microsoft создала для оказания непосредственной конкуренции OS/2, NetWare и UNIX на рынках файловых серверов и небольших серверов приложений. В процессе создания бета-версии Windows 2000 называлась Windows NT 5, однако Microsoft изменила имя на Windows 2000, чтобы уменьшить путаницу среди клиентов после того, как они закончат работу с продуктами основанного на MS-DOS трека разработок Windows 9х. Для того чтобы в условиях жесткой конкуренции Windows 2000 достигла успеха как сетевая операционная система, Microsoft спроектировала поддержку некоторых важных вычислительных технологий. Это следующие ключевые технологии: • многопроцессорная обработка; • многопоточность; • поддержка больших приложений; • платформонезависимость; • всеобъемлющая безопасность; • обратная совместимость. Многие функции Windows 2000, такие как безопасность дисков и возможности сетевого взаимодействия, в действительности являются функциями служб и драйверов, работающих поверх этой базовой архитектуры. |
3. Анализ безопасности Windows 2000 Advanced Server.
3.1. Теория Безопасности
Когда Windows NT впервые появилась в 1993 г., под безопасностью подразумевались меры предохранения важной информации на сервере от просмотра не имеющими на то прав пользователями и, возможно, использование безопасности обратного вызова для пользователей удаленного доступа для контроля за входящими телефонными подключениями к системе. Windows NT считалась безопасной, потому что она использовала однонаправленные хэш-значения паролей для аутентификации пользователей и наследуемые токены безопасности для безопасности межпроцессного взаимодействия.
Интернет полностью изменил картину. Windows NT 4 была выпущена в 1996 г. вместе с новым и недоработанным стеком TCP/IP, как раз когда Интернет набирал обороты, и операционная система оказалась неподготовленной к хакерским атакам через Интернет, которые продолжались в течение всех четырех лет ее жизни после выпуска. Microsoft выпускала все новые заплатки и пакеты обновления, пытаясь залатать новые бреши, обнаруживаемые в службах, протоколах и драйверах Windows NT.
Многие из дыр были образованы новыми компонентами по выбору Windows NT, такими как Internet Information Server и FrontPage Server Extensions. Большую часть проблемы составляло само предоставление службы Интернета.
Безопасность (security) — это совокупность мер, принимаемых для предотвращения любого рода потерь. Система, обладающая фундаментальной безопасностью, — это такая система, в которой никакой пользователь не обладает доступом к чему бы то ни было. К сожалению, такие полностью безопасные системы бесполезны, поэтому необходимо принять определенный риск в области безопасности, для того чтобы обеспечить возможность пользования системой. Цель управления безопасностью — минимизировать риск, возникающий при обеспечении необходимого уровня удобства использования (usability) системы.
Вся современная компьютерная безопасность основывается на фундаментальной концепции личности (identity) пользователя. Для получения доступа к системе люди идентифицируют себя тем способом, которому доверяет система. Этот процесс называется входом в систему (logging on). После того как пользователь вошел в систему, его доступ к данным и программам может однозначно контролироваться на основе его личности.
Чтобы поддерживать надежность системы, доступ к системе никогда не должен быть разрешен без прохождения процедуры входа в систему. Даже в системах, открытых для публичного анонимного доступа, должны применяться учетные записи (account) для контроля за тем, какие анонимные пользователи обладают доступом. Нельзя контролировать безопасность, если не имеющим на то права пользователям не может быть запрещен доступ.
В системах, основанных на идентификации, каждый пользователь должен иметь уникальную учетную запись и ни одна учетная запись никогда не может быть использована более чем одним лицом.
Windows 2000 Advanced Server (в дальнейшем - Windows 2000) использует ряд механизмов для обеспечения безопасности локального компьютера от злоумышленных программ, идентификации пользователей и обеспечения безопасности передачи данных по сети. Основные механизмы безопасности Windows 2000 перечислены ниже. В их числе:
• тотальный контроль за доступом предотвращает подключение ненадежных компьютеров к безопасным системам при помощи фильтрации пакетов и трансляции сетевых адресов, гарантируя что разрешенные сеансы пользователей не могут быть сфальсифицированы, украдены или мистифицированы, при помощи Kerberos и IPSec, и предотвращает нарушение программой адресного пространства другой программы при помощи защиты памяти;
• определение личности пользователя при помощи методов аутентификации, таких как Kerberos, Message Digest Authentication, смарт-карты, аутентификация RADIUS или протоколы аутентификации третьих фирм, например те, в которых реализованы биометрические способы;
• запрет или разрешение доступа на основе личности пользователя, при помощи списков контроля доступа для объектов с управляемой безопасностью, таких как принтеры, службы и хранимые на NTFS файлы и каталоги; посредством шифрования файлов при помощи Encrypting File System (шифрованной файловой системы, EFS); путем ограничения доступа к возможностям операционной системы, которые могут быть использованы неправильно, при помощи групповой политики и путем авторизации удаленных пользователей, подключенных через Интернет или удаленное соединение, при помощи политики RRAS;
• запись деятельности пользователя посредством журналов аудита особенно значимой информации и журналов соединений для публичных служб, таких как Web и FTP;
• закрытая передача данных между компьютерами, с использованием IPSec, PPTP или L2TP для шифрования потока данных между компьютерами. РРТР и L2TP позволяют пользователям инициировать безопасные потоки передачи данных, в то время как IPSec используется для того, чтобы позволить двум компьютерам безопасно передавать данные через публичный канал передачи данных независимо от личности пользователя;
• минимизация риска неправильной конфигурации путем группировки похожих механизмов безопасности в политики и последующего применения этих политик к группам похожих пользователей или компьютеров. Средства управления групповыми политиками, политиками RRAS и политиками IPSec в Windows 2000 позволяют администраторам осуществлять сквозные изменения в больших частях системы безопасности, не заботясь об отдельных ошибках.
Управление безопасностью должно осуществляться с учетом всей системы сети. Включение индивидуальных средств обеспечения безопасности не дает полной безопасности, потому что существует неисчислимое количество способов обойти индивидуальные средства безопасности.
Windows 2000 в своем состоянии по умолчанию сконфигурирована как удобная, а не безопасная система. Жесткие диски создаются по умолчанию с полным доступом для всех, никаких групповых политик по умолчанию не установлено, и большая часть межкомпьютерных взаимодействий небезопасна. По умолчанию никакие файлы не шифруются, и не включены никакие фильтры пакетов.
Для создания безопасной системы необходимо установить все важные средства обеспечения безопасности и затем ослаблять эти установки для обеспечения доступа имеющим на это право пользователям и повышения производительности.
Несмотря на большое продвижение в области целостного управления, в Windows 2000, еще многое можно сделать для обеспечения безопасности конфигурации по умолчанию. Тем не менее, инструментальные средства легко найти и они прекрасно работают вместе, предоставляя управляемый интерфейс для настройки характеристик безопасности.
3.1.1. Криптография.
Криптография (cryptography) — это наука о кодах и шифрах. Windows 2000 использует повсеместно применяющуюся криптографию для засекречивания всего, начиная от хранимых файлов и потоков передачи данных до паролей пользователей и аутентификации домена.
Криптография и шифрование играют важную роль в безопасности Windows 2000.
Все новые возможности обеспечения безопасности Windows 2000 основаны на криптографии. В отличие от этого, в первом выпуске Windows NT криптография использовалась только для хэширования паролей. В течение периода использования Windows NT 4 в операционную систему были добавлены разнообразные элементы крипографии, но они не обрабатывались согласованно и безопасно. Windows 2000 меняет такое положение дел, используя Active Directory как контейнер практически для всей конфигурации, связанной с безопасностью, и применения политик.
Windows 2000 использует шифрование (encryption) в трех жизненно важных целях:
• для подтверждения идентичности принципала безопасности;
• для подтверждения достоверности содержимого сообщения или файла;
• чтобы скрыть содержимое хранилища или потока данных.
Шифр (cipher) — это алгоритм шифрования, он защищает сообщение, переупорядочивая его или осуществляя изменения в кодировании, но не в смысловом значении сообщения. Код (code) — это согласованный способ сохранения тайны сообщений между двумя или более личностями. Ключ (key) — это небольшая порция информации, которая необходима для расшифровки сообщения, обычно в виде значения, используемого в шифре для зашифровки сообщения. Ключ должен держаться в секрете, для того чтобы сообщение оставалось закрытым.
3.1.2. Алгоритмы шифрования
Один из алгоритмов, который был разработан в секрете, но потом стал доступен для общественного использования, так же как и для государственного (но только для информации «Unclassified but Sensitive», несекретной, но важной), — это алгоритм Data Encryption Standard (стандарт) шифрования данных), или DES. Это симметричный алгоритм, что значит, что один и тот же ключ используется и для шифрования, и для расшифровки; он был предназначен для использования 56-разрядно-З го ключа. DES широко используется в коммерческом программном обеспечении и в устройствах связи, поддерживающих шифрование.
RSA (названный по именам своих создателей, Rivest, Shamir и Adleman) — это алгоритм, который не был разработан правительственным агентством. Его создатели воспользовались вычислительно-затратной проблемой разложения на простые числа для создания асимметричного (asymmetric) алгоритма, или алгоритма открытого ключа (public key), который может быть использован и для шифрования, и для цифровых подписей. RSA с тех пор стал очень популярной альтернативой DES. RSA используется рядом компаний по производству программного обеспечения, чьи продукты должны осуществлять безопасные соединения через небезопасный Интернет (такие, как web-браузеры), в числе которых Microsoft, Digital, Sun, Netscape и IBM.
Эти шифры не единственно возможные для использования в компьютерах и сетях. Правительства разных стран США и бывшего СССР активно разрабатывали коды и шифры, много частных лиц (особенно за последнее десятилетие) внесли вклад в развитие криптографии. GOST (ГОСТ) был разработан в бывшем СССР, FEAL был разработан NTT в Японии, LOKI был разработан в Австралии и IDEA — в Европе. Большинство этих шифров используют запатентованные алгоритмы, которые должны быть лицензированы для коммерческого использования, но не все (например, Blowfish). Каждый шифр обладает достоинствами и недостатками.
Все эти шифры обладают одним слабым местом: если известен шифр, который использовался для зашифровки сообщения, но не известен ключ, можно использовать ряд атак для того, чтобы попытаться декодировать сообщение, в том числе и метод «грубой силы», пытаясь перепробовать все возможные ключи.
Назначение шифров, в конечном итоге, — скрывать информацию. Противоположностью сокрытия информации являются попытки раскрыть, что же было засекречено, и прогресс в области взлома (breaking) кодов (или расшифровки кодов без ключа) идет в ногу с разработками в области создания кодов. Деятельность по осуществлению попыток взлома кодов называется криптоанализом (cryptanalysis), а люди, которые взламывают коды, называются криптоаналитиками (cryptanalyst). На системы безопасности может быть произведен ряд криптоаналитических атак различных типов.
Атака перебором ключей. Перебор пространства ключей (keyspace search) подразумевает проверку всех возможных ключей, которые могли использоваться для зашифровки сообщения.
Известный исходный текст. Для многих шифров криптоаналитик может сократить число перебираемых возможных ключей, если уже известен исходный текст зашифрованного сообщения.
Линейный и дифференциальный криптоанализ. Криптоаналитик может также искать математические совпадения во всех собранных зашифрованных текстах, которые были зашифрованы при помощи одного ключа.
Существует один шифр — одноразовая подстановка (one-time pad) — который нельзя разгадать, если нет ключа, даже имея в распоряжении все оставшееся время существования вселенной и все теоретически возможные вычислительные возможности. К сожалению, требования этого шифра делают его непригодным к использованию, за исключением определенных видов коммуникаций, не требующих высокой пропускной способности.
3.1.3. Симметрические функции
Если один и тот же ключ может быть использован для зашифровки или расшифровки сообщения, то такой шифр использует симметрическую функцию (symmetric function). Один ключ должен быть и у отправителя, и у получателя. Ряд симметричных шифров используется и в программном, и в аппаратном обеспечении. Получить представление о возможных шифрах можно, сравнив следующие три.
• DES. IBM и американское Управление национальной безопасности (National Security Agency, NSA) объединили усилия для разработки этого шифра. Он устойчив к дифференциальному криптоанализу, но поддается линейному криптоанализу. Длина ключа составляет только 56 бит, что сильно облегчает возможность попробовать все возможные ключи методом грубой силы для зашифрованного, текста. DES широко применяется в программном и аппаратном обеспечении шифрования. Это стандарт ANSI. Windows 2000 peaлизует и 40-битный DES, и 168-битный DES1 (triple-DES (тройной DES) — DES с тремя непрерывными ключами).
• IDEA. Этот шифр обладает ключом длиной 128 бит — значительно больше, чем использует DES. В то время как обладающая серьезной мотивацией и финансированием организация или большая команда хакеров может взломать закодированное DES-сообщение, большое пространство ключей делает неосуществимой атаку на IDEA по методу грубой силы. IDEA был разработан как шифр, неуязвимый для линейного и дифференциального криптоанализа. IDEA запатентован в Европе и США.
Blowfish. Этот шифр может использовать ключ длиной от 32 до 448 бит, позволяя выбрать степень секретности сообщения.
3.1.4. Однонаправленные функции
При наборе пароля для входа в Windows 2000, он шифруется и сравнивается с хранимым зашифрованным значением пароля. Пароль сохраняется при помощи однонаправленной функции (one-way function), также называемой хэш (hash), trap-door, digest или fingerprint1.
Хэш-функции также могут применяться для других целей. Например, можно использовать хэш-функцию, чтобы создать «отпечатки пальцев» файлов (создать цифровые отпечатки пальцев, или хэш-значение, которое будет уникально для данного файла). Хэш-функция может давать результат, который будет гораздо меньше, чем входной текст, хэширование занимающего много мегабайтов документа текстового процессора, например, может дать 128-разрядное число. Хэш-значение также уникально для файла, который его породил; практически невозможно создать другой файл, который произвел бы то же хэш-значение.
Одна из особенностей хэш-функций (особенно дающих короткие хэш-значения) — это то, что все хэш-значения равновероятны. Следовательно, практически невозможно создать другой файл хэш-значение для которого совпадет с имеющимся.
Некоторым хэш-функциям требуется ключ, другим — нет. Хэш-функция с ключом может вычисляться только кем-либо (или чем-либо), имеющим этот ключ.
3.1.5. Шифрование с открытым ключом
В то время как симметричные шифры используют один ключ для зашифровки и расшифровки сообщений, шифрование с открытым ключом (public key encryption), или шифр с открытым ключом (public key cipher), использует для расшифровки ключ, отличный от использованного при шифровании. Это сравнительно новая разработка в криптографии, и она решает многие давнишние проблемы систем криптографии, такие как способ передачи секретных ключей в первый раз.
Проблема симметричных шифров состоит в следующем: и отправитель, и получатель должен иметь один и тот же ключ для того, чтобы обмениваться зашифрованными сообщениями через небезопасный канал передачи данных. Если две стороны решат обмениваться закрытыми сообщениями или если между двумя устройствами в компьютерной сети или двумя программами должен быть установлен безопасный канал, две стороны коммуникации должны принять решение об общем ключе. Каждая сторона легко может выбрать ключ, но у этой стороны не будет никакого способа отправить этот ключ другой стороне, не подвергаясь риску перехвата ключа по дороге.
При использовании шифра с открытым ключом один ключ (открытый ключ, public key) используется для шифрования сообщения, а другой ключ (закрытый ключ, private key) — это единственный ключ, который может расшифровать сообщение. Кто угодно, имея ключ, может зашифровать сообщение, расшифровать которое может только конкретный пользователь. Безопасные шифры с открытым ключом страдают от одной проблемы — они медленны, гораздо медленнее, чем симметричные шифры. Работа хорошего шифра с открытым ключом может отнять в 1000 раз больше времени для зашифровки одного и того же количества данных, чем у хорошего симметричного шифра.
Хотя системы открытого/закрытого ключа гораздо медленнее симметричных систем, они четко решают проблему, от которой страдали симметричные криптосистемы. Когда двум людям (или устройствам) нужно установить безопасный канал для передачи данных, один из них может просто взять секретный ключ и зашифровать этот секретный ключ при помощи открытого ключа другой стороны. Зашифрованный ключ затем отправляется другому участнику коммуникации, и даже если этот ключ будет перехвачен, только другой участник сможет расшифровать секретный ключ при помощи своего закрытого ключа. Коммуникация между двумя сторонами затем может продолжаться с использованием симметричного шифра и этого секретного ключа. Система, которая использует как симметричное шифрование, так и шифрование с открытым ключом, называется гибридной криптосистемой (hybrid cryptosystem).
3.2. Применение шифрования
Шифрование можно использовать для защиты следующих типов данных в сети:
• закрытая передача данных;
• безопасное хранение файлов;
• аутентификация пользователя или компьютера;
• безопасный обмен паролями.
Следует шифровать любые данные, содержащие значимую или частную информацию, проходящие через небезопасные каналы передачи данных, такие как радио, телефонная сеть или Интернет. Используйте шифрование файловой системы для защиты значимых данных, когда возможности операционной системы не действуют (когда был удален жесткий диск или заменена операционная система).
3.2.1. Безопасное хранение файлов
Шифрование может быть использовано для защиты данных в устройстве хранения, например данных на жестком диске. Во всех реализациях UNIX и Windows NT существует много сложных средств обеспечения безопасности. Лучший подход к безопасности — предоставить шифрование и расшифровку файлов операционной системе. Windows 2000 поставляется с Encrypting File System (шифрованная файловая система, EFS), которая будет шифровать все файлы на вашем жестком диске, даже временные файлы, созданные используемыми вами приложениями.
Для того чтобы использовать EFS секретно, необходимо предоставить криптографический ключ при запуске компьютера или использовать ее со смарт-картой, иначе же можно считать файлы на жестком диске обычными, незашифрованными файлами. Это не защитит файлы от доступа во время работы операционной системы — для чего существуют средства обеспечения безопасности операционной системы, — но это сохранит данные в безопасности, даже если кто-нибудь украдет жесткий диск.
3.2.2. Аутентификация пользователя или компьютера
Помимо сохранения секретности (либо при передаче, либо при хранении), шифрование можно использовать почти в противоположных целях — для проверки идентичности. Шифрование может провести аутентификацию входящих в систему компьютера пользователей, гарантировать, что загружаемое из Интернета программное обеспечение приходит из надежного источника и что лицо, отправившее сообщение, в действительности то, за которое оно себя выдает.
При входе в операционную систему Microsoft, например Windows 95, Windows NT или Windows 2000, операционная система не сравнивает введенный пароль с хранимым паролем. Вместо этого она шифрует пароль при помощи однонаправленной криптографической функции и затем сравнивает результат с хранящимся результатом. Другие операционные системы, такие как UNIX и OS/2, работают точно так же.
Храня только криптографическое хэш-значение пароля пользователя, операционная система затрудняет хакерам возможность получения всех паролей системы при получении
3.2.3. Цифровые подписи
Обычно шифрование с открытым ключом используется для передачи секретных сообщений, зашифрованных при помощи открытого ключа, и последующей расшифровки их при помощи закрытого ключа.
Поскольку назначение цифровой подписи состоит не в том, чтобы утаить информацию, а в том, чтобы подтвердить ее, закрытые ключи зачастую используются для шифрования хэш-значения первоначального документа, и зашифрованное хэш-значение присоединяется к документу или отправляется вместе с ним. Этот процесс занимает гораздо меньше вычислительного времени при генерации или проверке хэш-значения, чем шифрование всего документа, и при этом гарантирует, что документ подписал владелец закрытого ключа.
Электронная почта Интернета проектировалась без учета безопасности. Сообщения не защищены от нелегального просмотра на промежуточных хостах Интернета, и нет гарантии, что сообщение в действительности пришло от того лица, которое указано в поле From электронной почты. Сообщения групп новостей Интернета страдают от той же проблемы: невозможно в действительности сказать, от кого на самом деле пришло сообщение. Можно зашифровать тело сообщения, чтобы справиться с первой проблемой, а цифровые подписи справляются со второй.
Цифровые подписи полезны, потому что проверить подпись может каждый, а создать ее может только лицо с закрытым ключом. Разница между цифровой подписью и сертификатом в том, что можно проверить подлинность сертификата в центре сертификации.
3.2.4. Безопасный обмен паролями
Большинство сетевых операционных систем (в том числе Windows 2000 и все современные версии UNIX) защищают имя пользователя и пароль при входе в систему посредством их шифрования перед отправкой в сеть для аутентификации.
Чтобы одни и те же зашифрованные данные не передавались каждый раз, клиент также может включить какую-то дополнительную информацию, например время отправки запроса на вход в систему. При таком способе сетевые идентификационные данные никогда не будут отправляться через локальную сеть или телефонные линии в незащищенном виде. Тем не менее Windows 2000 принимает незашифрованные пароли от старых сетевых клиентов LAN Manager.
Не каждый протокол аутентификации зашифровывает имя пользователя и пароль, этого не делает SLIP Telnet и FTP. Службу Telnet в Windows 2000 можно сконфигурировать для работы только с хэш-значениями Windows NT, а не с паролями в виде простого текста. РРР может шифровать, если и удаленный клиент, и сервер сконфигурированы таким образом. Windows NT по умолчанию требует шифрованной аутентификации. Windows 2000 использует безопасную систему аутентификации Kerberos, основанную на секретных ключах.
3.3. Стеганография
Стеганография (steganography) — это процесс сокрытия зашифрованных файлов в таком месте, в котором вряд ли кто-либо сможет их обнаружить.
Зашифрованные файлы выглядят как случайные числа, поэтому все, что также выглядит как случайные числа, может спрятать зашифрованное сообщение. Например, в многоцветных графических изображениях бит нижних разрядов в каждом пикселе изображения не сильно влияет на качество всего изображения. Можно спрятать зашифрованное сообщение в графический файл, заменяя младшие биты битами своего сообщения. Младшие биты звуковых файлов с высокой точностью воспроизведения — еще одно хорошее место для зашифрованных данных. Можно даже тайно обмениваться с кем-либо зашифрованными сообщениями, отправляя графические и звуковые файлы с такой спрятанной в них информацией.
3.4. Пароли
Пароли — это секретные ключи. Они могут применяться для аутентификации пользователей, шифрования данных и обеспечения безопасности коммуникационных потоков. Kerberos использует пароли как секретные ключи для подтверждения идентификационных данных клиента в Kerberos Key Distribution Center.
Из-за необходимости случайности в секретных ключах выступающие в качестве секретных ключей пароли также должны быть секретными
Самый распространенный способ раскрыть пароль — это выбрать легко угадываемый пароль, такой как пустой пароль, само слово пароль (password), жаргонные слова или имена богов, детей или домашних животных. Для взлома через Интернет пароля, в качестве которого взято любое известное слово, потребуется примерно два часа времени.
Использование по-настоящему случайных паролей дает гораздо лучшие результаты. Случайный выбор пароля только из 14 символов набора стандартной ASCII-клавиатуры дает множество более чем из 1025 паролей.
Существует четыре уровня паролей:
• низкокачественный публичный пароль
• публичный пароль среднего качества — короткий, но полностью случайный пароль длина этого пароля семь символов, что дает 40-битный диапазон уникальности;
• высококачественный пароль — пароль для частных сетей где клиенту может быть причинен серьезный ущерб в случае его утери -пароль длиной 12 символов, что дает 70-битный диапазон уникальности;
• чрезвычайно высококачественный пароль — пароль для шифрования файлов и хранения секретных данных на личных компьютерах; длина 14 символов, что дает 84-битный диапазон уникальности.
4. Локальная безопасность Windows 2000 Advanced Server
Безопасность Windows 2000 основана на аутентификации пользователей. Проходя процедуру входа в систему (обеспечиваемую процессом WinLogon), пользователь идентифицирует себя компьютеру, после чего ему предоставляется доступ к открытым и запрещается доступ к закрытым для вас ресурсам.
В Windows 2000 также реализованы учетные записи групп. Когда учетная запись пользователя входит в учетную запись группы, установленные для учетной записи группы разрешения действуют также и для учетной записи пользователя.
Учетные записи пользователей и групп действуют только на том компьютере под управлением Windows 2000, на котором они создаются. Эти учетные записи локальны для компьютера. Единственным исключением из этого правила являются компьютеры, входящие в домен и поэтому принимающие учетные записи, созданные в Active Directory на контроллере домена. На каждом компьютере под управлением Windows 2000 существует свой собственный список локальных учетных записей пользователей и групп. Когда процессу WinLogon (который регистрирует пользователя в системе и устанавливает его вычислительную среду) требуется обратиться к базе данных безопасности, он взаимодействует с Security Accounts Manager (диспетчер учетных записей безопасности, SAM), компонентом операционной системы Windows 2000, который управляет информацией о локальных учетных записях. Если информация хранится локально на компьютере под управлением Windows 2000, SAM обратится к базе данных (хранимой в реестре) и передаст информацию процессу WinLogon. Если информация хранится не локально SAM запросит контроллер домена и вернет подтвержденную информацию о регистрации (идентификатор безопасности, security identifier) процессу WinLogon.
Независимо от источника аутентификации, доступ разрешен только к локальному компьютеру посредством Local Security Authority (локальные средства безопасности, LSA) компьютера. При обращаении к другим компьютерам в сети, LSA локального компьютера передает идентификационные данные пользователя LS А другого компьютера, реализуя вход в систему каждого компьютера, с которым он контактирует. Чтобы получить доступ к другому компьютеру, этот компьютер должен принять идентификационные данные, предоставленные компьютером пользователя.
4.1. Идентификаторы безопасности
Принципалы безопасности, такие как пользователи и компьютеры, представлены в системе идентификаторами безопасности (security identifier, SID). SID уникально идентифицирует принципала безопасности для всех компьютеров домена. При создании учетной записи при помощи оснастки Local Users and Groups (Локальные пользователи и группы), всегда создается новый SID, даже если используется такие же имя учетной записи и пароль, как в удаленной учетной записи. SID будет оставаться с учетной записью в течение всего времени ее существования. Можно поменять любой другой атрибут учетной записи, включая имя пользователя и пароль, но в обычных обстоятельствах нельзя изменить SID, поскольку при этом создается новая учетная запись.
Групповые учетные записи также имеют SID, уникальный идентификатор, создающийся при создании группы. Для идентификаторов SID, групп действуют те же правила, что и для SID учетных записей.
Процесс WinLogon (часть процесса Local Security Authority) проверяет имя пользователя и пароль (или смарт-карту при соответствующей конфигурации), чтобы определить, можно ли разрешить доступ к компьютеру. Если указанный в диалоговом окне входа в систему домен является именем локального компьютера, LSA проверит учетную запись в соответствии с локальным SAM, хранимым в реестре. В ином случае LSA установит связь с контроллером домена и воспользуется для проверки подлинности данных пользователя аутентификацией Kerberos (в случае Windows 2000) или NLTM (в случае всех остальных версий Windows, включая Windows 2000 в режиме Mixed Mode), в зависимости от операционной системы клиента.
Если имя учетной записи и пароль правильны, процесс WinLogon coздаст токен доступа. Токен доступа (Acess Token) образуется из SIDучетной записи пользователя, SID групп, к которым принадлежит, учетная запись, и Locally Unique Identifier (локально уникальный; идентификатор, LUID), который определяет права пользователя и конкретный сеанс входа в систему.
Токен доступа создается при каждом вашем входе в Windows 2000.
Существуют особые идентификаторы SID. System SID зарезервирован для системных служб, содержащие System SID токены доступа могут, обходить все ограничения безопасности, основанные на учетных записях. SID дает системным службам разрешение на осуществление тех; действий, которые обычная учетная запись пользователя (даже учетная запись Administrator (Администратор)) делать не может. Службы операционной системы запускаются ядром Windows 2000, а не процессом WinLogon, и эти службы получают System SID от ядра при своем запуске.
4.2. Доступ к ресурсам
Потоки (thread, отдельные ветви выполнения процесса) должны предоставлять токен доступа при каждой попытке доступа к ресурсу. Потоки получают токены доступа от родительских процессов при своем создании. Пользовательское приложение, например, обычно получает свой токен доступа от процесса WinLogon. Процесс WinLogon запускается от возбужденного пользователем прерывания (прерывания клавиатуры Ctrl+Alt+Del) и может создать новый токен доступа, запрашивая или локальный диспетчер учетных записей безопасности (SAM), или Directory Services Agent (агент служб каталога, DSA) на контроллере домена Active Directory.
При помощи этого метода каждый поток, запущенный после входа пользователя в систему, будет иметь токен доступа, представляющий пользователя. Поскольку потоки пользовательского режима должны всегда предоставлять этот токен для доступа к ресурсам, в обычных обстоятельствах не существует способа обойти безопасность ресурсов Windows 2000.
Основу безопасности Windows 2000 образует перемещаемый вход в систему (mandatory logon). В отличие от других сетевых систем, пользователь ничего не может сделать в Windows 2000, не предоставив имя учетной записи пользователя и пароль. Хотя можно выбрать автоматический вход в систему с идентификационными данными, предоставляемыми реестром, вход в систему при помощи учетной записи пользователя все равно происходит.
Windows 2000 требует нажатия Ctrl+ALT+Del для входа в систему, и это одна из причин, по которым Windows 2000 считается безопасной системой. Поскольку компьютер обрабатывает нажатие Ctrl+ALT+Del как аппаратное прерывание, фактически не существует способа, при помощи которого опытный программист мог бы заставить эту комбинацию клавиш делать что-либо еще, не переписывая операционную систему.
Поскольку токен доступа передается новому потоку во время его создания, то после входа пользователя в систему в дальнейшем нет необходимости обращаться для аутентификации к локальной базе данных SAM или к Active Directory на контроллере домена.
При локальном входе пользователя в систему Windows 2000 проходит через следующие этапы.
1. Пользователь нажимает Ctrl +A1t+Del, что вызывает аппаратное прерывание, активизирующее процесс WinLogon.
2. Процесс WinLogon представляет пользователю приглашение ко входу в систему с полями для имени учетной записи и пароля.
3. Процесс WinLogon отправляет имя учетной записи и зашифрованный пароль локальным средствам безопасности (LSA). Если учетная запись локальна для этого компьютера Windows 2000, LSA запрашивает диспетчер учетных записей безопасности (SAM) локального компьютера Windows 2000; в другом случае LSA запрашивает контроллер домена того домена, в который входит компьютер.
4. Если пользователь представил допустимые имя пользователя и пароль, LSA создает токен доступа, содержащий SID учетной записи пользователя и идентификаторы SID для групп, в которые входит пользователь. Токен доступа также получает LUID, который будет описан далее в этой главе в разделе «Права или разрешения». Токен доступа затем передается обратно процессу WinLogon.
5. Процесс WinLogon передает токен доступа подсистеме Win32 вместе с запросом на создание процесса входа в систему для пользователя.
6. Процесс входа в систему устанавливает окружение пользователя, включая запуск Windows Explorer и отображение фона и значков рабочего стола.
4.3. Объекты и Разрешения
Windows 2000 поддерживает безопасность для различных типов объектов, включая (но не ограничиваясь ими) каталоги, файлы, принтеры, процессы и сетевые общие папки. Каждый объект предоставляет функции, определяющие действия, которые могут быть выполнены для этого объекта, например: открыть, закрыть, читать, записывать, удалять, запускать, останавливать, печатать и т. д.
Информация безопасности для объекта содержится в дескрипторе безопасности (security descriptor) объекта. Дескриптор безопасности состоит из четырех частей: владелец, группа, Discretionary Access Control List (список разграничительного контроля доступа, DASL) и System Acess Control List (системный список контроля доступа, SACL). Windows 2000 использует эти части дескриптора безопасности в следующих целях:
• владелец — эта часть содержит SID учетной записи пользователя-владельца объекта. Владелец объекта всегда может изменить настройки DACL (разрешения) объекта;
• группа — эта часть используется подсистемой POSIX Windows 2000. Файлы и каталоги в операционных системах UNIX могут принадлежать групповой учетной записи, так же как и отдельной учетной записи пользователя. Эта часть содержит SID группы этого объекта в целях совместимости с POSIX, а также для идентификации основной группы для учетных записей пользователя;
• Discretionary Access Control List — DACL содержит список учетных записей пользователя и учетных записей групп, обладающих разрешением на доступ к службам объекта. В DACL существует столько записей контроля доступа, сколько существует учетных записей пользователей или групп, для которых доступ к объекту был задан специально;
• System Acess Control List — SACL также содержит записи управления доступом (АСЕ, access control entry), но эти записи АСЕ используются для аудита, а не для разрешения или запрещения доступа к функциям объекта. SACL содержит столько записей АСЕ, сколько существует учетных записей пользователей или групп, для которых специально проводится аудит.
Каждая запись управления доступом в DACL или SACL состоит из идентификатора безопасности, сопровождаемого маской доступа. Маска доступа (access mask) в DACL определяет те функции объекта, для доступа к которым у SID есть разрешение. Специальный тип записи контроля доступа, называемый запрещающей записью АСЕ (deny АСЕ), указывает, что весь доступ к объекту будет запрещен для учетной записи, определенной идентификатором SID. Запрещающая АСЕ перекрывает все остальные записи АСЕ. Разрешение No Access (нет доступа) в Windows 2000 реализовано при помощи запрещающей записи АСЕ.
Доступ разрешен, если токен доступа содержит любой SID, совпадающий с разрешением в DACL. Например, если отдельной учетной записи разрешен доступ на чтение и учетная запись пользователя является членом групповой учетной записи, которой разрешен доступ на запись, тогда токен доступа для этого вошедшего в систему пользователя будет содержать оба SID, и DACL разрешит доступ к объекту и на чтение, и на запись. Запрещающие записи управления доступом все равно перекрывают суммарное действие всех остальных разрешений.
Записи управления доступом в SACL образуются тем же способом, что и записи в DACL (они составляются из SID и маски доступа), но маска доступа в этом случае определяет те функции объекта, для которых будет проводиться аудит у этой учетной записи.
Не у каждого объекта есть списки DACL или SACL. Файловая система FAT, например, не записывает информацию безопасности, поэтому у объектов файлов и каталогов, хранимых на томе FAT, нет списков DACL и SACL. Когда DACL отсутствует, любая учетная запись пользователя обладает доступом ко всем функциям объекта. Это не равнозначно ситуации, когда список DACL объекта пуст. В этом случае ни одна учетная запись не будет иметь доступа к объекту. Когда у объекта отсутствует SACL, аудит объекта невозможен.
Процессы не обращаются напрямую к таким объектам, как файлы, каталоги или принтеры. Операционная система Windows 2000 (а именно ее часть Win32) обращается к объектам от лица процессов. Основная цель этого — сделать программы проще. Программа не обязана знать, как непосредственно манипулировать каждым типом объекта, она просто просит об этом операционную систему. Еще одним важным преимуществом, особенно с точки зрения безопасности, является то, что, поскольку операционная система выполняет все действия для процессов, она может принудительно отслеживать безопасность объектов.
Когда процесс просит подсистему Win32 выполнить действие над объектом (например, прочитать файл), подсистема Win32 сверяется с Security Reference Monitor (монитор проверки безопасности), чтобы удостовериться, что процесс обладает разрешением на осуществление действия над объектом. Security Reference Monitor сравнивает токен доступа процесса со списком DACL объектов, сверяя каждый SID в токене доступа с идентификаторами SID в списке DACL Если существует запись управления доступом (АСЕ) с совпадающим SID, которая содержит маску доступа, разрешающую действие, и нет АСЕ с совпадающим SID, содержащей запрещающую маску для действия над объектом, то Security Reference Monitor разрешает подсистеме Win32 выполнить действие.
Security Reference Monitor также проверяет, осуществляется ли аудит доступа к объекту и требуется ли запись в журнал событий Security Log (Безопасность) Windows 2000. Аудит проверяется точно так же, как и проверка разрешений, — путем сравнения каждого SID в токене доступа с SID каждой записи управления доступом. При обнаружении совпадения монитор проверяет, принадлежит ли выполняемое действие (или функция) к перечисленным в маске доступа. Если да и если результат проверки безопасности по списку SACL совпадает с проводимым аудитом (произошел отказ в доступе и проводится аудит отказа в доступе, или доступ был успешен и проводится аудит успешного доступа, или произошли оба этих события), то в этом случае событие аудита записывается в журнал событий.
Некоторые действия применяются не к конкретному объекту, а к группе объектов или ко всей операционной системе. Завершение работы с операционной системой, например, повлияет на все объекты в системе. Пользователь должен обладать правами пользователя (user rights) для осуществления таких действий.
Средства Local Security Authority включают локально уникальный идентификатор (LUID) при создании токена доступа. LUID описывает, какое из прав пользователя имеет конкретная учетная запись. Local Security Authority создают LUID на основе информации о безопасности в базе данных диспетчера безопасности учетных записей (для учетной записи локального компьютера) или Active Directory (для учетной записи домена). LUID является объединением прав этой конкретной учетной записи пользователя и прав всех групп, в которые входит эта учетная запись.
Права имеют больший приоритет, чем разрешения (permissions). Вот почему учетная запись администратора может стать владельцем файла, чей владелец удалил все разрешения на доступ; Administrator (Администратор) обладает правом Take Ownership of Files or Other Objects (смена владельца файлов или других объектов). Операционная система Windows 2000 вначале проверяет права пользователя и затем (если нет права пользователя, специально разрешающего действие) сверяет записи АСЕ, хранимые в DACL, с идентификаторами SID в токене доступа.
Учетные записи пользователя обладают правом на чтение и запись для объекта, для которого они являются владельцем, даже в случае наличия у того запрещающей записи АСЕ. Учетная запись пользователя может также изменять разрешения для принадлежащего ей объекта.
5.Файловая система NTFS
Файловая система NTFS — главный бастион безопасности Windows 2000. Безопасный компьютер под управлением Windows 2000 работает на платформе NTFS, образующей основу для постоянной безопасности.
LSA дает гарантию, что выполняющиеся программы не могут нарушить адресное пространство памяти друг друга и что все обращения к ядру должным образом авторизованы. Но что может помешать программе заменить программные файлы LSA эквивалентной службой, которая будет работать неверно? Ответом на этот вопрос является NTFS, и этот пример подчеркивает, почему безопасная файловая система — обязательное требование для безопасной операционной системы. Не имея возможности доверять файловой системе, хранящей системные файлы, нельзя доверять системе, работа которой реализуется посредством исполнения этих файлов.
Рассмотрим случай проникновения вируса на компьютер с Windows 95. Пользователь выполняет программу, содержащую вирус. Вирус определяет, какая программа запустила текущую программу, и заражает ее, таким образом распространяя себя далее на один уровень. При следующем запуске этой программы вирус сделает то же самое, а также заразит каждую программу, порожденную этой программой. Через несколько циклов вирус распространится до ключевых программ операционной системы, таким образом заражая каждый выполняемый в ней файл. Рассмотрим теперь случай, когда пользователь выполняет зараженную вирусом программу в Windows 2000. Эта программа пытается записать свой вирусный заголовок в explorer.exe, но блокируется средствами безопасности файловой системы NTFS, потому что у пользователя нет разрешений на запись в explorer.exe. Благодаря NTFS этот тип вирусов моментально останавливается Windows 2000. При попадании в систему некоторым вирусам удается выжить в пользовательском режиме (например, макровирусам Word или червям Outlook), но эти вирусы все равно не могут заразить саму операционную систему — если только вирус не был запущен с учетной записью, обладающей административным доступом к компьютеру.
NTFS работает, сравнивая токен доступа пользователя со списком контроля доступа (ACL), связанным с каждым запрашиваемым файлом, перед тем, как разрешить пользователю доступ к этому файлу. Этот простой механизм не дает несанкционированным пользователям изменять операционную систему или еще что-нибудь, к чему у них нет специального доступа.
По умолчанию Windows 2000 находится в состоянии, предоставляющем полный доступ группе «все» (everyone) для корня всех дисков, вследствие чего все разрешения, наследуемые создаваемыми там файлами, также доступны для всех. Для получения какой-либо реальной пользы от безопасности файловой системы NTFS для приложений и хранимых пользователями файлов необходимо удалить разрешение, предоставляющее полный доступ для всех, и заменить его разрешениями с соответствующим уровнем безопасности для каждой папки на компьютере.
Управление разрешениями файловой системы NTFS осуществляется просто и работает аналогично тому; как разрешения устанавливались в предыдущих версиях Windows NT.
В Windows 2000 наследование обрабатывается по-другому, чем в Windows NT. В Windows NT унаследованные разрешения были просто такими же, как у родительских объектов, и могли быть немедленно изменены. В Windows 2000, если объект наследует разрешения от содержащей объект папки, необходимо снять флажок Allow Inheritable Permissions (Переносить наследуемые от родительского объекта разрешения на этот объект), для того чтобы создать копию наследуемых разрешений и затем изменить существующие разрешения. Можно создавать новые записи АСЕ, не перекрывая установку безопасности.
5.1. Шифрованная файловая система
Шифрованная файловая система (Encrypting File System) — это драйвер файловой системы, обеспечивающий возможность зашифровывать и расшифровывать файлы на лету. Использовать службу очень легко: пользователи устанавливают атрибут шифрования для файла или каталога. Служба EFS генерирует сертификат шифрования в фоновом процессе и использует его для шифрования заданных файлов. Когда эти файлы запрашиваются драйвером файловой системы NTFS, служба EFS автоматически расшифровывает файл для предоставления его драйверу.
Шифрование файлов выглядит как действительно замечательная возможность, но текущая его реализация в Windows 2000 обладает такими дефектами, что EFS в большинстве случаев бесполезна, за исключением, может быть, портативных компьютеров. Основная проблема EFS в том, что она работает только для отдельных пользователей, что делает ее пригодной только для клиентских компьютеров. Сертификаты шифрования для файлов создаются на основе личности пользователя, поэтому зашифрованные файлы могут быть использованы только той учетной записью, которая их создавала. Сертификаты шифрования не могут быть назначены групповым объектам, поэтому шифрование не может защитить общие файлы, хранимые на сервере. Эта архитектура потребует обмена закрытыми ключами по сети, поэтому для такого обмена должен быть установлен зашифрованный канал. EFS не позволит совместное использование зашифрованных файлов, потому что она расшифровывает их перед тем, как предоставить их по запросу. Это также не предусмотрено. Если бы сертификаты шифрования принадлежали группе, зашифрованный файл мог бы быть предоставлен по сети клиенту в своем зашифрованном состоянии и клиентский компьютер смог бы воспользоваться своим участием в группе, обладая сертификатом для расшифровки файла. Kerberos может создавать ключи сеанса для шифрования сертификатов, чтобы сохранить их в безопасности во время передачи членам группы. Общие файлы могут быть достаточно безопасными, чтобы использовать их через Интернет без закрытого туннеля.
Более того, потеря сертификата шифрования — ахиллесова пята шифрования — не будет такой уж проблемой. До тех пор, пока сертификат все еще существует у какого-либо из членов группы, этот пользователь все еще будет обладать копией сертификата для расшифровки файлов. Так, как она реализована сегодня, EFS всегда создает ключ для агента восстановления (по умолчанию это локальный администратор), независимо от того, хочет пользователь или нет, чтобы агент восстановления мог расшифровать файл.
EFS (так же, как репликация файлов) — еще один пример службы, которая была бы по-настоящему замечательной, если бы Microsoft реализовала се надлежащим образом. В том виде, в каком она существует сейчас, она сделана ровно настолько, чтобы Microsoft могла утверждать о наличии у нее шифрования файловой системы.
Помимо того факта, что EFS работает только для отдельных пользователей, она обладает рядом других проблем:
сертификаты шифрования по умолчанию хранятся в реестре локального компьютера, где их можно восстановить и использовать для расшифровки файлов на компьютере. Для того чтобы EFS функционировала корректно как безопасная служба шифрования, сертификаты должны быть удалены с локального компьютера на физически безопасный сервер сертификатов или экспортированы на съемный носитель, который не оставляется вместе с компьютером.
Единственный способ обеспечить безопасность локальных сертификатов EFS — это использовать аутентификацию при помощи смарт-карты или -воспользоваться SysKey, хэш-значения, используемого для шифрования локальной базы данных учетных записей SAM, которая содержит сертификат расшифровки EFS, на гибкий диск или использовать его в качестве пароля во время начальной загрузки — и этот пароль или гибкий диск должны быть доступны для всех, кому требуется загружать компьютер;
операции перемещения путем перетаскивания мышью в шифрованную папку не приведут к автоматическому шифрованию файла, потому что операции перемещения не изменяют атрибутов файла. Операции «вырезать и вставить» изменяют, потому что вы явно удаляете старый файл и создаете новый.
зашифрованные файлы будут расшифрованы, если они будут перемещены на тома с отличной от NTFS файловой системой, не поддерживающей шифрование.
зашифрованные файлы не могут быть сделаны общими путем помещения в общую папку. Это ограничение предназначено для сохранения файлов в зашифрованном виде, общие файлы отправляются по сети в простом текстовом формате и кто угодно может их расшифровать, имея в наличии сетевой анализатор.
многие программы (большинство программ Microsoft Office) во время редактирования файлов создают временные файлы либо в локальном, либо во временном каталоге. Шифрование для временных файлов следует обычным правилам: если файл создается в папке, у которой установлен флаг шифрования, временный файл будет зашифрован. В ином случае он не будет зашифрован и нарушит секретность шифрования
печать образует еще одно направление случайной расшифровки: когда печатается зашифрованный документ, файл расшифровывается исходным приложением и отправляется в виде простого текста диспетчеру очереди печати. Если диспетчер печати сконфигурирован так, чтобы буферизовать документы (как в большинстве случаев), печатаемые данные будут записываться в файл, который может быть после удаления восстановлен для доступа к вашим зашифрованным данным.
Не рекомендуется использовать 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 с удаленным хостом.
Инициирование процедуры обмена ключами (IКЕ)
Случайный ключ
Зашифрованный секретный ключ
Шифрованный открытый ключ
Рис. 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-адрес.
Постановка задачи и определение основных
целей программы.
Поставлена задача составить программу которая могла бы получать имя компьютера (рабочей станции), определять его ip-адрес в сети и выводить эти данные на экран. Программа должна работать в среде Win32, использовать минимум ресурсов, быть достаточно компактной и написанной на языке высшего уровня.
Принцип работы программы.
Для написания программы был использован язык программирования макро Ассемблер (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"