Шутки в сторону. Современные системы разделения секрета – это криптографические системы, которые защищают криптографическими методами охраняемые ими системы. Почти всегда используются приличные протоколы с хорошими функциональными возможностями, но с очень плохой защитой. Пожалуй, следует отметить преимущества протоколов RIPv2 и TACACS+ по сравнению с оригинальными протоколами RIP и TACACS/XTACACS соответственно. Но и они страдают от двух главных проблем.
Во-первых, их криптография не очень хороша. Компания Solar Designer в документе «Анализ протокола TACACS+ и его реализации» приводит пример того, насколько идеально переговоры по поводу TACACS напомнили бы консультацию по вопросам безопасности. Этот документ размещен по адресу www.openwall.com/advisories/0W-00l-tac_plus.txt. Фальсифицировать пакеты таким образом, чтобы они казались бы знающими разделяемый секрет, – не очень трудная задача для подкованного злоумышленника с возможностями активного спуфинга.
Второе, и гораздо более важное:
• пароль конфиденциальный? Все хосты, за исключением избранных, передаваемые по каналу связи данные воспринимают как шумовые помехи. Для посвященных хостов, владеющих разделяемым паролем, полученная абракадабра преобразуется в открытый осмысленный текст;
• пароль удостоверен? Каждая сторона зашифрованного канала связи уверена в подлинности идентификационных данных другой стороны. Основаниями для отклонения какого-либо хоста из десятков, сотен или тысяч других является либо кража им пароля, либо активный спуфинг, при помощи которого он самостоятельно установил соединение;
• пароль обеспечивает целостность? Любой передаваемый по зашифрованным каналам связи поток данных может быть разделен на части, разорван, похищен, или в него будут добавлены лишние данные, если была допущена утечка информации о пароле.
Хорошо зарекомендовало себя использование двумя хостами единственного пароля в виртуальных двухточечных соединениях. Даже когда соединения организованы по схеме клиент-сервер (как, например, в схеме TACACS+, где единственный клиентский маршрутизатор подтверждает подлинность пароля, предложенного CiscoSecure – вычислительной машиной базы данных сервера паролей Cisco). В любом случае одна из сторон соединения является или клиентом, запрашивающим пароль, или сервером, предлагающим его. Если она – сервер, то один-единственный хост с паролем является клиентом. Если она – клиент, то только единственный хост с паролем является сервером, которому она доверяет.
Но если схема передачи данных предусматривает существование нескольких клиентов одновременно, то любой из них, вероятно, может стать сервером. В этой ситуации трудно принять правильное решение. Разделение паролей прекрасно работает для двухточечных соединений, но дает сбои при подключении многих клиентов к одному серверу. В этом случае не следует всегда доверять противоположной стороне соединения.
Примечание
Несмотря на свои недостатки, TACACS+
Это не означает, что если система использует в своей работе пароль, то она хорошо противодействует спуфингу. Для того чтобы предоставить инженеру безопасный способ передачи своего пароля маршрутизатору, маршрутизаторы Cisco используют обмен паролями по протоколу SSH. В этом случае пароль нужен только для подтверждения маршрутизатору подлинности пользователя. Вопросы конфиденциальности, целостности соединения (нельзя допустить передачу инженером своего пароля неверному устройству!) и аутентификации маршрутизатора решаются инженером на следующем уровне:
Способность подтвердить секретный ключ криптографической пары: «Я могу распознать ваш голос?»