W.R.Stevens.   UNIX  Network  Programming.  Prentice  Hall  Inc.,
Englewood Cliffs, 1990, 771p. (pp.421-436, Chapter 9 "Security").
9.
Безопасность  9.1.  Введение  Когда  компьютеры  были  отдельными
объектами,  безопасность  обеспечивалась  физическими средствами.
Компьютерные  помещения  опечатывались  и  закрывались  на замок,
перфокарты  подавались  в  одно  окно,  а  распечатки получали из
другого.  Магнитные  ленты,  используемые программами, никогда не
покидали  помещения.  Даже  при  переходе  от  пакетного режима к
интерактивному  терминалы  обычно  подсоединяли непосредственно к
ЭВМ, причем ЭВМ и терминалы размещались в одном физическом месте.
Интерактивные  пользователи  имели в распоряжении некоторого вида
систему  с разделением времени между ними, другими пользователями
и  аппаратным  обеспечением.  Первой  переменой  стало  появление
наборных  телефоных  линий  для  доступа к системам с разделением
времени.  Однако  это  по-прежнему позволяет использовать обычные
парольные  методы,  применяемые  в системе с разделением времени.
Объединение  в  сеть  нарушает  все  правила.  Рассмотрим  сперва
различные  типы  сред для организации сетей. В закрытой среде все
системы   сети   находятся   под   центральным   административным
управлением,  при  этом  требуется  минимальная  защита.  В более
открытой среде ряд систем может быть под центральным управлением,
но  допускается подключение к сети и неконтролируемых систем. Тем
не  менее,  даже  при  наличии  таких  систем  в  сети желательно
предоставить  пользователям  сетевые  услуги (доступ к принтерам,
хранение файлов и т.д.). Задача заключается в том, как поставщику
услуг  определить законность запроса на услуги. В университетской
среде,   например,  некоторые  ГЭВМ  сети  могут  находиться  под
центральным  управлением,  но к сети может подключаться и большое
число  рабочих  станций  как  пользующихся  доверием,  так  и  не
пользующихся.  Будем  использовать  термин  "рабочая станция" для
обозначения  персонального компьютера, работающего с небезопасной
операционной  системой  (например,  MS-DOS), либо другой системы,
способной  работать  с системой с разделением времени (такой, как
UNIX),  но  не  под  центральным  управлением.  Имеется  3 разных
подхода  к  безопасности  группы  систем, объединенных в сеть. 1.
Ничего  не  делать  и  полагать, что запрашивающая услуги система
безопасна.  Это  возможно  в закрытой среде, где все системы сети
находятся  под  центральным  управлением.  2.  Требовать  от ГЭВМ
доказательства   своей   идентичности  и  доверять  идентификации
пользователя,  которая выполняется главной ЭВМ. 4.3BSD, например,
использует    данный   подход.   ГЭВМ   идентифицирются   по   их
Internet-адресу.  3.  При  каждом  запросе  услуги  требовать  от
пользователя  ввода  пароля. Например, каждый раз, когда мы хотим
распечатать  файл  на  принтере  другой  системы,  нам необходимо
ввести  пароль. Второй вариант используется 4.3BSD, и обсуждается
в   следующем   разделе.  Третий  вариант  используется  системой
Kerberos,    разработанной    как    часть   проекта   Athena   в
Массачуссетском  технологическом  институте  (раздел  9.3).  9.2.
Программы  4.3BSD  Сетевые  возможности,  обеспечиваемые  4.3BSD,
разработаны  для  функционирования в открытой среде, где ряд ГЭВМ
назначены  в  качестве  доверенных.  ГЭВМ  идентифицирются  по их
Internet-адресу,  и  предполагается,  что  доверенные  ГЭВМ могут
верно  идентифицировать  пользователя данной ГЭВМ, запрашивающего
услуги. Составной частью методов защиты 4.3BSD является концепция
зарезервированных   Internet-портов,  описанных  в  разделе  6.8.
Напомним,  что  лишь  процесс  с  правами суперпользователя может
получить зарезервированный порт. Однако ничто не может остановить
любого пользователя, знающего корневой пароль на рабочей станции,
от   получения  зарезервированного  Internet-порта.  Кроме  того,
программное обеспечение TCP/IP под MS-DOS обычно разрешает любому
получить зарезервированный порт, поскольку в MS-DOS нет концепции
суперпользователя.   Ловушки   существуют,  даже  если  ряд  ГЭВМ
находятся  под  центральным  управлением. Например, если ГЭВМ под
центральным  управлением  отключается  для обслуживания, ничто не
препятствует   кому-либо   выдать  свою  систему  за  отключенную
(маскарад).  Тем  не  менее,  несмотря на эти недостатки, сетевые
возможности    по    защите,   предоставляемые   4.3BSD,   широко
используются.  Далее  мы  подробно  обсудим  ряд типичных сетевых
услуг.  Мы  будем  вести  речь о таких серверах, как lpd - сервер
принтеров,  к  которому  обращается  пользователь  для распечатки
файла  в  системе сервера; rshd - сервер удаленного выполнения. К
нему  обращается  пользователь для выполнения программы в системе
сервера.  Этот сервер использууется многими "r"-командами 4.3BSD:
rcp  и  rsh,  например.  rexecd  -  еще  один  сервер  удаленного
выполнения,  аналогичный  rshd,  но  использующий другой протокол
аутентификации.  rlogind  -  сервер  удаленного  входа  в систему
используется  командой  rlogin.  Все  эти  серверы, кроме rexecd,
используют  аутентификацию по Internet-адресу клиента - 32-битный
сетевой  Internet-идентификатор  и  идентификатор  ГЭВМ,  а также
16-битный  TCP-номер  порта.  Серверы rshd и rlogind требуют двух
имен  входа  в  систему  (login  names) для сопровождения каждого
запроса  на  услугу.  *  9.3.  Kerberos Проект Athena был начат в
Массачуссетском  технологическом  институте  в 1983 и преследовал
цель     создать     учебную     компютерную     среду     вокруг
высокопроизводительных      графических      рабочих     станций,
высокоскоростной  сетевой  среды  и  серверов различных типов. ОС
проекта  имеет  в  основе  4.3BSD. Проект обсуждался в 7 статьях,
опубликованных в Conference Proceedings of the 1988 USENIX Winter
Conference.  В  первой  из этих сатьей предлагается обзор [Treese
G.W.  Berkeley  UNIX  on  1000  Workstations:  Athena  changes to
4.3BSD//  Proceedings  of  the  1988  USENIX  Winter  Conference,
Dallas,   Tex.,   pp.175-182,   1988].   Система  аутентификации,
используемая   в   Athena,   называется   Kerberos.   Это  служба
аутентификации  с  доверенной  третьей  стороной. она заслуживает
обсуждения,  поскольку  базируется на 4.3BSD и позволяет сравнить
методы6  описанные  в  предыдущей главе. Данный обзор построен на
статье:  Steiner  J.G.,  Neuman  C.,  Schiller  J.I. Kerberos: An
Authentication  Service for Open Network Systems// Proceedings of
the  1988  USENIX  Winter  Conference,  Dallas, Tex., pp.191-202,
1988].  Kerberos  полагает,  что  рабочие  станции не заслуживают
доверия  и  требует от вас, клиента, идентифицировать себя каждый
раз,  когда  запрашивается услуга. Например, каждый раз, когда вы
хотите    послать   файл   на   сервер   принтеров,   вы   должны
идентифицировать себя этому серверу. Любая система может внедрить
строгий  механизм  защиты,  подобный  этому,  требуя от вас ввода
пароля  при  запросе  сетевых  услуг. Однако методы, используемые
Kerberos,  ненавязчивы.  Основные черты Kerberos следующие: * Вам
необходимо  идентифицировать  себя  один  раз,  в  начале сеанаса
рабочей  станции. Требуется ввести имя для входа в систему (login
name)   и   пароль,   автоматически  встраиваемые  в  стандартную
программу  UNIX login. * Пароли никогда не пересылаются по сети в
открытом  виде.  Они всегда шифруются. Кроме того, пароли никогда
не  хранятся  на  рабочей  станции или сервере в открытом виде. *
Каждый  пользователь и каждая услуга имеют пароль. * Единственным
объектом,  знающим все пароли, является сервер аутентификации. зд
д  д д д д д д д д д д д д д д д д д здддддддддддддд  (7) TGS
  (6,8)  (5)(9)  (10)  здд  Kerberos  цд  дд здддддддддддддд
зддддддддд    зддддддддддд        юдд Рабочая    База
данныхцдддды  юдддддддддддддды    станция  цддд  Сервер     
Kerberos  цдддд  здддддддддддддд  здд    юддддддддддды  
Сервер                  юддддддбддддддды      юддддддддды     
юддаутентификациицдддды   (1)      Kerberos      (4,2)     
юдддддддддддддды   здддддадддддд (3) Пользователь юдд д д д д
д  д д д д д д д д д д д д ды юдддддддддддды Служба распределения
ключей Kerberos Рис.9.2. Метод аутентификации Kerberos Содержание
шагов  1-11 на рис.9.2: 1. Вы, пользователь, приходите на рабочую
станцию  и  пытаетесь войти в систему. Вы вводите имя для входа в
систему (login name) в ответ на обычную подсказку UNIX login:. 2.
Как  часть последовательности входа в систему и перед тем, как вы
получите  подсказку  для  ввода пароля, серверу аутентификации по
сети посылается сообщение. Это сообщение содержит ваше login name
и  имя отдельного сервера Kerberos: ticket-granting server (TGS).
message  =  {login-name,  TGS-name}  Поскольку сообщение содержит
только   два  имени,  его  не  надо  шифровать.  Имена  считаются
несекретными,  поскольку  каждый  должен  знать  имена других для
связи. Вы должны знать login names других для отправки почты.
 

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