Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
2005-05-29T22:22:28 sending 546 bytes to IPv4:192.168.1.253
Вы можете сказать: «Как же так – протоколы telnet и ftp небезопасны и правильнее использовать openssh. И ничего удивительного в беспарольной аутентификации нет – ту же самую функциональность обеспечивает ssh, предоставляя возможность регистрироваться по парам публичных/секретных ключей». Все правильно. Только для того, чтобы в сети из N компьютеров обеспечить доступ по ssh с любого из этих компьютеров на любой другой, вам придется в общем случае проделать 2N*{число пользователей} перемещений публичных ключей (каждая пара компьютеров в сети обменивается публичными ключами пользователей), что в случае больших сетей трудноосуществимо. В то же время с помощью Kerberos вам нужно только зарегистрировать каждый из компьютеров на сервере Kerberos и иметь один ключ на каждом из хостов (в отличие от ssh в Kerberos используется симметричное шифрование) – итого 2N операций. Что же касается первой части вопроса, то я использую специальный «керберизованный» вариант telnet, что защищает соединения между хостами не хуже, чем ssh. Главный недостаток стандартного telnet (и не только его) состоит в том, что при аутентификации на удаленном компьютере telnet пересылает пароль пользователя по сети в виде открытого текста, что позволяет злоумышленнику перехватить его. Ssh обходит эту опасность с помощью несимметричного шифрования пароля. А каким же образом Kerberos удается избегать брешей в защите связанных с удаленной аутентификацией?
Удаленная аутентификация в Kerberos
Делается это с помощью уже упоминавшихся ранее билетиков/сертификатов (tickets/credentials – оба слова используются как синонимы) – специальным образом изготовленных и упакованных шифровальных ключей. В Kerberos как пользователь, так и сетевая служба не различаются между собой и именуются principal (принципал – юридический термин, означающий лицо, поручающее агенту совершить сделку от его имени), что весьма точно описывает функции принципалов в Kerberos. Принципалы определяются своим именем и паролем, причем в случае сетевой службы в качестве этого пароля выступает ключ, хранящийся на том же компьютере, где работает защищаемый сервис. База данных принципалов хранится на сервере Kerberos, и при необходимости проверить аутентичность пользователя или сервиса, компьютеры, объединенные в сектора (realms), соединяются с этим сервером. По поводу терминологии: точный перевод «realm» («царство») применительно к Kerberos не прижился, а иногда используемый термин «домен» не кажется мне удачным, поскольку слово и так перегружено. Так же, как и в случае с DNS, главный контроллер сектора Kerberos (Key Distribution Center, KDC, центр выдачи ключей) может иметь как дополнительные, slave, контроллеры (что позволяет обеспечить бесперебойную работу при выходе из строя основного контроллера), так и в одиночку держать несколько секторов. Типичное имя принципала, например, сервиса удаленного доступа к командному интерпретатору компьютера, выглядит таким вот образом: host/kdc.myrealm.ru@MYREALM.RU, что обозначает сервис с основным именем (primary name) host и характеристикой (instance) kdc.myrealm.ru, принадлежащий сектору MYREALM.RU. Разделение имен принципалов на несколько частей позволяет различать, с одной стороны, разные службы, работающие на одном хосте (с помощью primary name, host в нашем случае). А с другой – среди нескольких однотипных служб, работающих в сети, выбирать конкретную, запущенную на определенном сервере (с помощью поля instance, которая в нашем случае совпадает с именем компьютера). Название секторa не обязано повторять доменное имя сети, но именно такое правило наименований считается устоявшейся практикой.