Организация защищенного удаленного доступа

Удаленный доступ к компьютерным ресурсам стал в настоящее время таким же актуальным и значимым, как и доступ в режиме непосредственного подключения. Удаленный доступ к корпоративной сети осуществляется из незащищенного внешнего окружения через открытые сети. Поэтому средства построения защищенной корпоративной сети должны обеспечить безопасность сетевого взаимодействия при подключении к сети удаленных компьютеров.

Удаленный доступ к корпоративной сети возможен через глобальную компьютерную сеть или через среду передачи информации, образованную цепочкой из телефонной и глобальной компьютерной сетей. Доступ через глобальную сеть Internet является достаточно эффективным способом, причем для подключения удаленного пользователя к Internet может использоваться канал телефонной связи. Основные достоинства удаленного доступа к корпоративной сети через Internet:

• обеспечение масштабируемой поддержки удаленного доступа, позволяющей мобильным пользователям связываться с Internet-провайдером и затем через Internet входить в свою корпоративную сеть;
• сокращение расходов на информационный обмен через открытую внешнюю среду (удаленные пользователи, подключившись к Internet, связываются с сетью своей организации с минимальными затратами);
• управление трафиком удаленного доступа осуществляется так же, как любым другим трафиком Internet.

В корпоративной сети для взаимодействия с удаленными пользователями выделяется сервер удаленного доступа, который служит:

• для установки соединения с удаленным компьютером;
• аутентификации удаленного пользователя;
• управления удаленным соединением;
• посредничества при обмене данными между удаленным компьютером и корпоративной сетью.

Среди протоколов удаленного доступа к локальной сети наибольшее распространение получил протокол «точка—точка» РРР (Point-to-Point Protocol), который является открытым стандартом Internet. Протокол РРР предназначен для установления удаленного соединения и обмена информацией по установленному каналу пакетами сетевого уровня, инкапсулированными в РРР-кад-ры. Используемый в протоколе РРР метод формирования кадров обеспечивает одновременную работу через канал удаленной связи нескольких протоколов сетевого уровня.

Протокол РРР поддерживает следующие важные функции:

• аутентификации удаленного пользователя и сервера удаленного доступа;
• компрессии и шифрования передаваемых данных;
• обнаружения и коррекции ошибок;
• конфигурирования и проверки качества канала связи;
• динамического присвоения адресов IP и управления этими адресами.

На основе протокола РРР построены часто используемые при удаленном доступе протоколы РРТР, L2F и L2TP. Эти протоколы позволяют создавать защищенные каналы для обмена данными между удаленными компьютерами и локальными сетями, функционирующими по различным протоколам сетевого уровня — IP, IPX или NetBEUI. Для передачи по телефонным каналам связи пакеты этих протоколов инкапсулируются в РРР-кадры. При необходимости передачи через Internet защищенные РРР-кадры инкапсулируются в IP-пакеты сети Internet. Криптозащита трафика возможна как в каналах Internet, так и на протяжении всего пути между компьютером удаленного пользователя и сервером удаленного доступа локальной сети.

Протоколы аутентификации удаленных пользователей

Контроль доступа пользователей к ресурсам корпоративной сети должен осуществляться в соответствии с политикой безопасности организации, которой принадлежит данная сеть. Эффективное разграничение доступа к сетевым ресурсам может быть обеспечено только при надежной аутентификации пользователей. Требования к надежности аутентификации удаленных пользователей должны быть особенно высокими, так как при взаимодействии с физически удаленными пользователями значительно сложнее обеспечить доступ к сетевым ресурсам. В отличие от локальных пользователей удаленные пользователи не проходят процедуру физического контроля при допуске на территорию организации.

При удаленном взаимодействии важна аутентификация не только пользователей, но и оборудования, поскольку подмена пользователя или маршрутизатора приводит к одним и тем же последствиям — данные из корпоративной сети передаются не тем лицам, которым они предназначены.

Для обеспечения надежной аутентификации удаленных пользователей необходимо выполнение следующих требований:

• проведение аутентификации обеих взаимодействующих сторон — как удаленного пользователя, так и сервера удаленного доступа — для исключения маскировки злоумышленников;
• оперативное согласование используемых протоколов аутентификации;
• осуществление динамической аутентификации взаимодействующих сторон в процессе работы удаленного соединения;
• применение криптозащиты передаваемых секретных паролей либо механизма одноразовых паролей для исключения перехвата и несанкционированного использования аутен-тифицирующей информации.

Протокол РРР имеет встроенные средства, которые могут быть использованы для организации аутентификации при удаленном взаимодействии. В стандарте RFC 1334 определены два протокола аутентификации:
• по паролю — PAP (Password Authentication Protocol);
• по рукопожатию — CHAP (Challenge Handshake Authentication Protocol).

В процессе установления удаленного соединения каждая из взаимодействующих сторон может предложить для применения один из стандартных протоколов аутентификации — РАР или CHAP.

Иногда компании создают собственные протоколы аутентификации удаленного доступа, работающие вместе с протоколом РРР. Эти фирменные протоколы обычно являются модификациями протоколов РАР и CHAP.

Широкое применение для аутентификации по одноразовым паролям получил протокол S/Key. В программных продуктах, обеспечивающих связь по протоколу РРР, протоколы РАР и CHAP, как правило, поддерживаются в первую очередь.

Протокол РАР

Суть работы протокола РАР довольно проста. В процессе аутентификации участвуют две стороны — проверяемая и проверяющая. Протокол РАР использует для аутентификации передачу проверяемой стороной идентификатора и пароля в виде открытого текста. Если проверяющая сторона обнаруживает совпадение идентификатора и пароля с записью, имеющейся у него в БД легальных пользователей, то процесс аутентификации считается успешно завершенным, после чего проверяемой стороне посылается соответствующее сообщение. В качестве стороны, чья подлинность проверяется, как правило, выступает удаленный пользователь, а в качестве проверяющей стороны — сервер удаленного доступа.

Для инициализации процесса аутентификации на базе протокола РАР сервер удаленного доступа после установления сеанса связи высылает удаленному компьютеру пакет LCP (Link Control Protocol) — протокол управления каналом, указывающий на необходимость применения протокола РАР. Далее осуществляется обмен пакетами РАР. Удаленный компьютер передает по каналу связи проверяющей стороне идентификатор и пароль, введенные удаленным пользователем. Сервер удаленного доступа по полученному идентификатору пользователя выбирает эталонный пароль из БД системы защиты и сравнивает его с полученным паролем. Если они совпадают, то аутентификация считается успешной, что сообщается удаленному пользователю.

Следует особо отметить, что протокол аутентификации РАР, согласно которому идентификаторы и пароли передаются по линии связи в незашифрованном виде, целесообразно применять только совместно с протоколом, ориентированным на аутентификацию по одноразовым паролям, например совместно с протоколом S/Key. В противном случае пароль, передаваемый по каналу связи, может быть перехвачен злоумышленником и использован повторно в целях маскировки под санкционированного удаленного пользователя.

Протокол CHAP

В протоколе CHAP используется секретный статический пароль. В отличие от протокола РАР, в протоколе CHAP пароль каждого пользователя для передачи по линии связи шифруется на основе случайного числа полученного от сервера. Такая технология обеспечивает не только защиту пароля от хищения, но и защиту от повторного использования злоумышленником перехваченных пакетов с зашифрованным паролем. Протокол CHAP применяется в современных сетях гораздо чаще, чем РАР, так как он использует передачу пароля по сети в защищенной форме, и, следовательно, гораздо безопаснее.

Шифрование пароля в соответствии с протоколом CHAP выполняется с помощью криптографического алгоритма хэширования и поэтому является необратимым. В стандарте RFC 1334 для протокола CHAP в качестве хэш-функции определен алгоритм MD5, вырабатывающий из входной последовательности любой длины 16-байтовое значение. Хотя минимальной длиной секрета является 1 байт, для повышения криптостойкости рекомендуется использовать секрет длиной не менее 16 байт. Спецификация CHAP не исключает возможность использования других алгоритмов вычисления хэш-функций.

Для инициализации процесса аутентификации по протоколу CHAP сервер удаленного доступа после установления сеанса связи должен выслать удаленному компьютеру пакет LCP, указывающий на необходимость применения протокола CHAP, а также требуемого алгоритма хэширования. Если удаленный компьютер поддерживает предложенный алгоритм хэширования, то он должен ответить пакетом LCP о согласии с предложенными параметрами. В противном случае выполняется обмен пакетами LCP для согласования алгоритма хэширования.

После этого начинается аутентификация на основе обмена пакетами протокола CHAP.

В протоколе CHAP определены пакеты четырех типов:
• Вызов (Challenge);
• Отклик (Response);
• Подтверждение (Success);
• Отказ (Failure).

Протокол CHAP использует для аутентификации удаленного пользователя результат шифрования произвольного слова-вызова с помощью уникального секрета. Этот секрет имеется как у проверяющей, так и у проверяемой стороны. Процедура аутентификации начинается с отправки сервером удаленного доступа пакета Вызов.

Удаленный компьютер, получив пакет Вызов, зашифровывает его с помощью односторонней функции и известного ему секрета, получая в результате дайджест. Дайджест возвращается проверяющей стороне в виде пакета Отклик.

Так как используется односторонняя хэш-функция, то по перехваченным пакетам Вызов и Отклик вычислить пароль удаленного пользователя практически невозможно.

Получив пакет Отклик, сервер удаленного доступа сравнивает содержимое результата из полученного пакета Отклик с результатом, вычисленным самостоятельно. Если эти результаты совпадают, то аутентификация считается успешной и сервер высылает удаленному компьютеру пакет Подтверждение.

В противном случае сервер удаленного доступа высылает пакет Отказ и разрывает сеанс связи.

Пакет Вызов должен быть отправлен сервером повторно, если в ответ на него не был получен пакет Отклик. Кроме того, пакет Вызов может отправляться периодически в течение сеанса удаленной связи для проведения динамической аутентификации, чтобы убедиться, что противоположная сторона не была подменена. Соответственно пакет Отклик должен отправляться проверяемой стороной в ответ на каждый принятый пакет Вызов.

Протокол S/Key

Одним из наиболее распространенных протоколов аутентификации на основе одноразовых паролей является стандартизованный в Интернете протокол S/Key (RFC 1760). Этот протокол реализован во многих системах, требующих проверки подлинности удаленных пользователей, в частности в системе TACACS+ компании Cisco.

Перехват одноразового пароля, передаваемого по сети в процессе аутентификации, не предоставляет злоумышленнику возможности повторно использовать этот пароль, так как при следующей проверке подлинности необходимо предъявлять уже другой пароль. Поэтому схема аутентификации на основе одноразовых паролей, в частности S/Key, позволяет передавать по сети одноразовый пароль в открытом виде и, таким образом, компенсирует основной недостаток протокола аутентификации РАР.

Однако следует отметить, что протокол S/Key не исключает необходимость задания секретного пароля для каждого пользователя. Этот секретный пароль используется только для генерации одноразовых паролей. Для того чтобы злоумышленник не смог по перехваченному одноразовому паролю вычислить секретный исходный пароль, генерация одноразовых паролей выполняется с помощью односторонней, т. е. необратимой, функции. В качестве такой односторонней функции в спецификации протокола S/Key определен алгоритм хэширования MD4 (Message Digest Algorithm 4). Некоторые реализации протокола S/Key в качестве односторонней функции используют алгоритм хэширования MD5 (Message Digest Algorithm 5).

Иногда желательно, чтобы пользователь имел возможность сам назначать секретный постоянный пароль. Для осуществления такой возможности спецификация S/Key предусматривает режим вычисления одноразовых паролей не только на основе секретного пароля, но и на основе генерируемого проверяющей стороной случайного числа. Таким образом, в соответствии с протоколом S/Key за каждым пользователем закрепляется идентификатор и секретный постоянный пароль.

Перед тем как проходить аутентификацию, каждый пользователь должен сначала пройти процедуру инициализации очередного списка одноразовых паролей, т. е. фазу парольной инициализации. Данная фаза выполняется по запросу пользователя на сервере удаленного доступа.

Для ускорения процедуры аутентификации определенное число одноразовых паролей, например несколько десятков, может быть вычислено заранее и храниться на удаленном компьютере в зашифрованном виде.

Протокол аутентификации на основе одноразовых паролей S/Key применяют, в частности, для улучшения характеристик протоколов централизованного контроля доступа к сети удаленных пользователей TACACS и RADIUS.

Централизованный контроль удаленного доступа

Для управления удаленными соединениями небольшой локальной сети вполне достаточно одного сервера удаленного доступа. Однако если локальная сеть объединяет относительно большие сегменты и число удаленных пользователей существенно возрастает, то одного сервера удаленного доступа недостаточно.

При использовании в одной локальной сети нескольких серверов удаленного доступа требуется централизованный контроль доступа к компьютерным ресурсам.

Рассмотрим, как решается задача контроля доступа к сети удаленных пользователей в соответствии с обычной схемой, когда удаленные пользователи пытаются получить доступ к сетевым ресурсам, которые находятся под управлением нескольких разных ОС. Пользователь дозванивается до своего сервера удаленного доступа, и RAS выполняет для него процедуру аутентификации, например по протоколу CHAP. Пользователь логически входит в сеть и обращается к нужному серверу, где снова проходит аутентификацию и авторизацию, в результате чего получает или не получает разрешение на выполнение запрошенной операции.

Нетрудно заметить, что такая схема неудобна пользователю, поскольку ему приходится несколько раз выполнять аутентификацию — при входе в сеть на сервере удаленного доступа, а потом еще каждый раз при обращении к каждому ресурсному серверу сети. Пользователь вынужден запоминать несколько разных паролей. Кроме того, он должен знать порядок прохождения разных процедур аутентификации в разных ОС. Возникают также трудности с администрированием такой сети. Администратор должен заводить учетную информацию о каждом пользователе на каждом сервере. Эти разрозненные БД трудно поддерживать в корректном состоянии. При увольнении сотрудника сложно исключить его из всех списков. Возникают проблемы при назначении паролей, существенно затрудняется аудит.

Отмеченные трудности преодолеваются при установке в сети централизованной службы аутентификации и авторизации. Для централизованного контроля доступа выделяется отдельный сервер, называемый сервером аутентификации. Этот сервер служит для проверки подлинности удаленных пользователей, определения их полномочий, а также фиксации и накопления регистрационной информации, связанной с удаленным доступом. Надежность защиты повышается, если сервер удаленного доступа запрашивает необходимую для аутентификации информацию непосредственно у сервера, на котором хранится общая БД системы защиты компьютерной сети.

Однако в большинстве случаев серверы удаленного доступа нуждаются в посреднике для взаимодействия с центральной БД системы защиты, например со службой каталогов.

Большинство сетевых ОС и служб каталогов сохраняют эталонные пароли пользователей с использованием одностороннего хэширования, что не позволяет серверам удаленного доступа, стандартно реализующим протоколы РАР и CHAP, извлечь открытый эталонный пароль для проверки ответа.

Роль посредника во взаимодействии между серверами удаленного доступа и центральной БД системы защиты может быть возложена на сервер аутентификации. Централизованный контроль удаленного доступа к компьютерным ресурсам с помощью сервера аутентификации выполняется на основе специализированных протоколов. Эти протоколы позволяют объединять используемые серверы удаленного доступа и сервер аутентификации в одну подсистему, выполняющую все функции контроля удаленных соединений на основе взаимодействия с центральной БД системы защиты. Сервер аутентификации создает единую точку наблюдения и проверки всех удаленных пользователей и контролирует доступ к компьютерным ресурсам в соответствии с установленными правилами.

К наиболее популярным протоколам централизованного контроля доступа к сети удаленных пользователей относятся протоколы TACACS (Terminal Access Controller Access Control System) и RADIUS (Remote AuthenticationDial-In User Service). Они предназначены в первую очередь для организаций, в центральной сети которых используется несколько серверов удаленного доступа. В этих системах администратор может управлять БД идентификаторов и паролей пользователей, предоставлять им привилегии доступа и вести учет обращений к системным ресурсам.

Протоколы TACACS и RADIUS требуют применения отдельного сервера аутентификации, который для проверки подлинности пользователей и определения их полномочий может использовать не только собственную БД, но и взаимодействовать с современными службами каталогов, например с NDS (Novell Directory Services) и Microsoft Windows NT Directory Service. Серверы TACACS и RADIUS выступают в качестве посредников между серверами удаленного доступа, принимающими звонки от пользователей, с одной стороны, и сетевыми ресурсными серверами — с другой. Реализации TACACS и RADIUS могут также служить посредниками для внешних систем аутентификации.

Рассмотрим особенности централизованного контроля удаленного доступа на примере протокола TACACS.

Система TACACS выполнена в архитектуре клиент-сервер. В компьютерной сети, включающей несколько серверов удаленного доступа, устанавливается один сервер аутентификации, который называют сервером TACACS(обычно это программа, работающая в среде универсальной ОС, чаще всего Unix).

На сервере TACACS формируется центральная база учетной информации об удаленных пользователях, включающая их имена, пароли и полномочия. В полномочиях каждого пользователя задаются подсети, компьютеры и сервисы, с которыми он может

работать, а также различные виды ограничений, например временные ограничения. На этом сервере ведется БД аудита, в которой накапливается регистрационная информация о каждом логическом входе, продолжительности сессии, а также времени использования ресурсов сети.

Клиентами сервера TACACS являются серверы удаленного доступа, принимающие запросы на доступ к ресурсам сети от удаленных пользователей. В каждый такой сервер встроено ПО, реализующее стандартный протокол, по которому они взаимодействуют с сервером TACACS. Этот протокол также называется TACACS.

Протокол TACACS стандартизует схему взаимодействия серверов удаленного доступа с сервером TACACS на основе задания возможных типов запросов, ответов и соединений. Определены запросы, с которыми клиенты могут обращаться к серверу TACACS. Сервер на каждый запрос должен ответить соответствующим сообщением. Протокол задает несколько типов соединений, каждое из которых определяется как последовательность пар запрос—ответ, ориентированная на решение отдельной задачи.

Определено три типа соединений:
• AUTH — выполняется только аутентификация;
• LOGIN — выполняется аутентификация и фиксируется логическое соединение с пользователем;
• SLIP — выполняется аутентификация, фиксируется логическое соединение, подтверждается IP-адрес клиента.

С помощью соединения AUTH серверы удаленного доступа перенаправляют серверу TACACS поток запросов на логическое подключение пользователей к сети в целом. Соединение LOGIN служит для перенаправления запросов серверу TACACS на логическое подключение пользователей к отдельным компьютерам локальной сети.

При соединении AUTH сервер удаленного доступа посылает на сервер TACACS только одно сообщение — пакет AUTH, на который сервер TACACS отвечает сообщением REPLY.

Сервер TACACS на основании имеющихся у него данных проверяет пароль и возвращает ответ в виде пакета REPLY, где сообщает об успехе или неуспехе аутентификации. В соответствии с протоколом TACACS пароль передается между сервером удаленного доступа и сервером аутентификации в открытом виде. Поэтому протокол TACACS необходимо применять совместно с протоколом аутентификации по одноразовым паролям, например с протоколом S/Key.

На основании полученных от сервера TACACS указаний сервер удаленного доступа выполняет процедуру аутентификации и разрешает или не разрешает удаленному пользователю логически войти в сеть.

Сервер TACACS может выполнять аутентификацию и авторизацию удаленных пользователей различными способами:
• использовать встроенный механизм аутентификации той ОС, под управлением которой работает сервер;
• использовать централизованные справочные системы ОС;
• использовать системы аутентификации, основанные на одноразовых паролях, например систему SecurlD;
• передавать запросы другим системам аутентификации, например, системе Kerberos.

Следует отметить, что недостатки протокола TACACS, связанные с открытой передачей пароля по сети, устранены компанией Cisco в версии, названной TACACS+. В соответствии с протоколом TACACS+ пароль для передачи по сети шифруется с помощью алгоритма MD5. TACACS+ предусматривает раздельное хранение БД аутентификационной, авторизационной и учетной информации, в том числе и на разных серверах. Улучшено взаимодействие с системой Kerberos.

Другой распространенной системой централизованной аутентификации при удаленном доступе является система RADIUS. По своим функциональным возможностям протоколы TACACS и RADIUS практически эквивалентны и являются открытыми стандартами, однако протокол RADIUS стал более популярен среди производителей систем централизованного контроля удаленного доступа. Это связано с тем, что основанное на нем серверное ПО распространяется бесплатно. Кроме того, протокол RADIUS менее сложен в реализации.


Эта статья была опубликована Пятница, Сентябрь 10th, 2010 at 18:36 в рубрике Инфраструктура защиты на прикладном уровне. Вы можете следить за ответами через RSS 2.0 feed.

Написать ответ