суббота, 2 февраля 2013 г.

сервер (запрос безопасности)

Security of SMB Protocol SMB, Server Message Block, является протоколом IBM для предоставления общего доступа у файлам, папкам, принтерам, последовательным портам и коммуникационным абстракциям, таким как, именованные каналы и почтовые сегменты, между компьютерами. Этот протокол очень важен, так как сегодня большая часть персональных компьютеров уже имеют встроенную клиентскую и серверную реализацию этого протокола. Все ныне существующие версии Windows поддерживают клиентскую, а некоторые версии и серверную, реализацию SMB протокола. Первым документом, описывающим протокол, является документ ЂЂЂIBM PC Network SMB ProtocolЂЂЂ от 1985 года компании IBM. Следующий документ был опубликован компанией Microsoft в 1987 году и назывался ЂЂЂMicrosoft Networks/OpenNET-FILE SHARING PROTOCOLЂЂЂ. В дальнейшем протокол последовательно разрабатывался Microsoft и другими компаниями. SMB ЂЂЂ это клиент-сервер, запрос-ответ протокол, который предоставляет клиентским приложениям простой способ для чтения и записи файлов, а также запроса служб у серверных программ в различных типах сетевого окружения. Диаграмма справа показывает, как работает SMB. Единственное отличие от модели запрос-ответ (то есть модели, в которой, когда клиент посылает запрос и сервер отвечает ему ответом) это, когда клиент посылает в качестве запроса оппортунистические блокировки, а сервер вынужден отпустить уже предоставленную блокировку, так как другой клиент запросил открытие файла в режиме, несовместимом с предоставленной блокировкой. В этом случае, сервер посылает клиенту уведомительное сообщение о том, что блокировка была снята. Серверы предоставляют файловые системы и другие ресурсы (принтеры, почтовые сегменты, именованные каналы и т.д.) для общего доступа в сети. Клиентские компьютеры могут иметь у себя свои носители информации, но они так же хотят иметь доступ к ресурсам, предоставленным сервером для общего пользования. Клиенты соединяются с сервером, используя протоколы TCP/IP (а точнее NetBIOS через TCP/IP), NetBEUI или IPX/SPX. После того, как соединение установлено, клиенты могут посылать команды серверу (эти команды называются SMB-команды или SMBs), который дает им доступ к ресурсам, позволяет открывать, читать файлы, писать в файлы и, вообще, выполнять весь перечень действий, которые можно выполнять с файловой системой. Однако, в случае SMB, эти действия совершаются через сеть. Как было сказано выше, SMB работает, используя различные протоколы. Следующая диаграмма показывает это: В сетевой модели OSI, протокол SMB используется как протокол Application/Presentation уровня и зависит от низкоуровневых транспортных протоколов. SMB может использоваться через TCP/IP, NetBEUI и IPX/SPX. Если TCP/IP или NetBEUI будут заняты, то будет использоваться NetBIOS API. SMB также может посылаться через DECnet протокол. Digital (ныне Compaq) сделала это специально для своего продукта PATHWORKS. NetBIOS, в случае использования через TCP/IP, имеет различные названия. Microsoft называет его в некоторых случаях NBT, а в некоторых NetBT. Так же встречается название RFCNB. С начала существования SMB, было разработано множество различных вариантов протокола для обработки всевозрастающей сложности компьютерной среды, в которой он использовался. Договорились, что реальный вариант протокола, который будет использоваться клиентом и сервером, будет определяться командой negprot (negotiate protocol). Этот SMB обязан посылаться первым до установления соединения. Первым вариантом протокола был Core Protocol, известный как SMB имплементация PC NETWORK PROGRAM 1.0. Он должным образом поддерживает весь набор основных операций, который включает в себя: ЂЂЂ коннект и дисконнект к файловым и принтерным ресурсам ЂЂЂ открытие и закрытие файлов ЂЂЂ открытие и закрытие принтерных файлов ЂЂЂ чтение и запись файлов ЂЂЂ создание и удаление файлов и директорий ЂЂЂ поиск директорий ЂЂЂ получение и установление атрибутов файла ЂЂЂ блокировка и разблокировка файлов Следующие протоколы расширяют базовые возможности протокола: SMB Protocol Variant Protocol Name PC NETWORK PROGRAM 1.0 Core Protocol MICROSOFT NETWORKS 1.03 Core Plus Protocol MICROSOFT NETWORKS 3.0 DOS LAN Manager 1.0 LANMAN1.0 LAN Manager 1.0 DOS LM1.2X002 LAN Manager 2.0 LM1.2X002 LAN Manager 2.0 DOS LANMAN2.1 LAN Manager 2.1 LANMAN2.1 LAN Manager 2.1 Windows for Workgroups 3.1a LAN Manager 2.1? NT LM 0.12 NT LAN Manager 1.0? Samba NT LAN Manager 1.0? CIFS 1.0 NT LAN Manager 1.0 Некоторые вариации протокола ввели новые команды, некоторые просто изменили формат существующих команд и формат реакций сервера на команды (ответы). Разновидности протокола называются диалектами. Microsoft и группа других вендоров (Digital Equipment, Data General, SCO, Network Appliance Corp, и т.д.) разработали открытую, официальную версию SMB протокола - CIFS 1.0. Он по существу тот же, что и NT LM 0.12, но с не большими доработками. Простая модель SMB протокола Элементы протокола (запросы и ответы), которыми обмениваются клиент и сервер, называются SMB. Они имеют определенный формат, который очень простой и для запросов, и для ответов. Каждый состоит из головной части фиксированного размера, параметров переменной длины и части данных. Основные элементы структуры заголовка SMB: Command ЂЂЂ команда протокола. RCLS ЂЂЂ код класса ошибки. ERR ЂЂЂ код ошибки. Tree ID (TID) ЂЂЂ идентификатор соединения с сетевым ресурсом. Process ID (PID) ЂЂЂ идентификатор клиентского процесса фактического соединения. User ID (UID) ЂЂЂ идентификатор пользователя; используется сервером для проверки прав доступа пользователя. Multiplex ID (MID) - идентификатор группы пользователя; используется сервером для проверки прав доступа группы пользователя. WCT ЂЂЂ количество параметров, следующих за заголовком. BCC ЂЂЂ количество байт данных, следующих за параметрами. После соединения на NetBIOS уровне, либо посредством NBF, клиент готов делать запросы серверу. Однако клиент и сервер, для начала, должны определить, какой вариант протокола они оба понимают. Клиент посылает negprot (negotiate protocol) SMB на сервер, перечисляя разновидности протокола, которые он понимает. Сервер, отвечает, передавая индекс варианта протокола, который он хочет использовать, или 0xFFFF, если ни один из вариантов не подходит. Диалекты, более поздние, чем Core и CorePlus, поддерживают передачу в negprot ответе информацию, описывающую их возможности. Пусть теперь соединение установлено. Клиент аутентифицируется на сервере. Для этого клиент, должен послать SMB sessetupX (session setup). Сервер проверяет имя пользователя и пароль. Если они валидны, то сервер обеспечивает клиента дополнительной информацией. Один из главных аспектов ответа sessetupX ЂЂЂ это UID пользователя. UID должен всегда подтверждаться со всеми последующими SMB в текущем соединении. Теперь клиент залогинен. Посылается tcon (tree connection) или tconX SMB, определяющий ресурс в сети, к которому хочет обратиться клиент. Если необходимый доступ есть, то сервер отвечает, посылая клиенту TID, который клиент будет использовать все оставшееся время

Конвертация не вcегда корректна. Смотрите исходный .

HTML-версия эссе "Security of SMB Protocol", Beldekov, 2004, сгенерированная из pdf/rtf.

Курс "Защита информации", кафедра радиотехники, Московский физико-технический институт (МФТИ)

Комментариев нет:

Отправить комментарий