Защита от хакеров корпоративных сетей
Шрифт:
Хорошо зарекомендовало себя использование двумя хостами единственного пароля в виртуальных двухточечных соединениях. Даже когда соединения организованы по схеме клиент-сервер (как, например, в схеме TACACS+, где единственный клиентский маршрутизатор подтверждает подлинность пароля, предложенного CiscoSecure – вычислительной машиной базы данных сервера паролей Cisco). В любом случае одна из сторон соединения является или клиентом, запрашивающим пароль, или сервером, предлагающим его. Если она – сервер, то один-единственный хост с паролем является клиентом. Если она – клиент, то только единственный хост с паролем является сервером, которому она доверяет.
Но если схема передачи данных предусматривает существование нескольких клиентов одновременно, то любой из них, вероятно, может стать сервером. В этой ситуации трудно принять правильное
Примечание
Несмотря на свои недостатки, TACACS+ настолько гибок при назначении привилегий доступа и поддержки централизации управления, что реализация и развертывание сервера TACACS до сих пор остаются одним из лучших решений, которые компания может только придумать для повышения своей безопасности.
Это не означает, что если система использует в своей работе пароль, то она хорошо противодействует спуфингу. Для того чтобы предоставить инженеру безопасный способ передачи своего пароля маршрутизатору, маршрутизаторы Cisco используют обмен паролями по протоколу SSH. В этом случае пароль нужен только для подтверждения маршрутизатору подлинности пользователя. Вопросы конфиденциальности, целостности соединения (нельзя допустить передачу инженером своего пароля неверному устройству!) и аутентификации маршрутизатора решаются инженером на следующем уровне: уровне секретного ключа.
Способность подтвердить секретный ключ криптографической пары: «Я могу распознать ваш голос?»
Проверка способности подтвердить знание секретного ключа криптографической пары требует знания той части криптографии, которая известна под названием асимметричного шифрования, или асимметричных шифров. Симметричные шифры, как, например, алгоритмы тройного DES, Blowfish и Twofish, используют единственный ключ для зашифровки и расшифровки сообщения. Подробнее об этом уже говорилось в главе 6. Только в случае, когда два хоста совместно используют один и тот же ключ, гарантируется надежность аутентификации. Если одна из участвующих в соединении сторон не посылала сообщения, то это сделала другая сторона, у которой есть копия секретного ключа.
Даже в идеальном мире подобным системам присущи проблемы из-за того, что они не масштабируются. Это подразумевает не только то, что каждые два хоста, которым требуется разделяемый ключ, должны иметь по уникальному ключу для каждого хоста, с которым они намериваются обмениваться данными. С ростом числа участвующих в передаче ключей хостов сложность проблемы растет по экспоненциальному закону. Кроме того, данные ключи должны распространяться способом, который гарантировал бы безопасность их передачи через сеть, дискету или как-то еще. При передаче открытого текста обеспечить его конфиденциальность достаточно трудно. Поэтому обеспечить надежность передачи секретных ключей почти невозможно. Достаточно замаскироваться под одного из получателей секретного ключа, чтобы получить транзакцию ключа и участвовать в передаче данных под чужим именем.
Конечно, для защиты передачи ключей может использоваться большое количество уровней симметричных ключей (а в системах военного назначения используется). В конце концов, секретные данные тоже должны передаваться.
Асимметричные шифры, как, например, алгоритмы RSA, Диффи-Хеллмана (Diffie-Helman)/Эль Гамаля (El Gamel), предлагают лучшее решение. Используя один ключ, асимметричные шифры одновременно обеспечивают возможность зашифровывать, расшифровывать данные, заверить данные уникальной подписью пользователя и удостоверить ее подлинность. Один ключ предоставляет много возможностей. В асимметричных шифрах ключ подразделяется на два: секретный и общедоступный. С помощью секретного ключа можно сохранить данные в тайне, расшифровать их или объективно подтвердить подлинность своих идентификационных данных, подписав их. Общедоступный ключ распространяется свободно. С его помощью можно зашифровать данные таким образом, чтобы их можно было расшифровать только
Огромное преимущество систем с асимметричным шифрованием заключается в том, что при их использовании нет необходимости пересылать по сети секретные ключи с одного хоста на другой. И это очень важно. Два хоста могут подтвердить подлинность друга друга без какой-либо передачи чего-нибудь, что могло бы расшифровать передаваемые данные или подделать данные идентификации. На этих принципах работает система, использующая PGP.
Способность подтвердить подлинность криптографической пары: «Ключевая пара представляет идентичность системы независимым образом?»
Главная проблема, с которой сталкиваются программы типа PGP, состоит в следующем: «Что произойдет после того, как люди станут узнавать пользователя по его способности расшифровывать определенные данные?» Другими словами, что произойдет, когда пользователь не сможет поменять ключи, которые он ранее рассылал людям для шифровки пересылаемых ему данных, потому что замена этих ключей будет подразумевать смену пользователя?
Все очень просто. Британский парламент начал кампанию по принятию закона, запрещающего пользователю менять свои пароли и обязывающего его обнародовать все сообщения электронной почты, которые он когда-либо посылал, вне зависимости от того, были они им удалены (но сохранены в архиве) или нет. Объясняется это необходимостью расшифровки электронной почты. Ужасно, что после того, как будет обнародован идентифицирующий пользователя ключ, станет возможным расшифровать все его сообщения, зашифрованные криптографическими методами. Прикрываясь требованием предоставления возможности расшифровывать данные, сторонники закона получают полный контроль над подписью пользователя, а это не одно и то же.
Возможности шифрования должны быть отделены от возможностей обеспечения идентичности пользователя. По существу, идентификационный ключ является асимметричной криптографической парой, которая никогда не используется для шифрования обычных данных. Она используется только как ключ авторизации, удостоверяющий возможность использования зашифрованных данных. В варианте протокола SSH, в разработке которого принимал участие автор, и версии программы PGP, известной как DROP (Dynamically Rekeyed OpenPGP – вариант программы PGP с динамически повторно используемыми ключами) строго соблюдается принцип разделения данных идентификации и собственно шифруемых данных. В конечном итоге все сводится к единственной криптографической паре – вершине достижений человечества в его стремлении построить доверительные отношения. Основная идея проста. Сервер ключей регулярно обновляет свои данные с использованием недолговечных криптографических ключевых пар шифровки / расшифровки сообщений. Отправитель электронной почты знает о безопасности получения от сервера ключей новых данных. Несмотря на то что новые данные ему неизвестны, он им доверяет, потому что они заверены известной ему долгосрочной кодовой комбинацией: долгосрочным ключом. Таким способом разграничиваются требования наличия краткосрочных ключей шифровки и расшифровки почты от требования обладания долгосрочными ключами подтверждения данных идентификации. В результате уменьшается уязвимость защищаемых систем к атакам злоумышленника.
С технической точки зрения лучшими характеристиками обладает так называемая совершенная передовая секретность PFS (Perfect Forward Secrecy). Говоря кратко, этими словами обозначается свойство криптографических систем, которое означает, что если данные будут скомпрометированы, то уже отосланные данные останутся в безопасности. Для симметричной криптографии свойство PFS выполняется почти автоматически: используемый сегодня ключ никак не связан с ключом, который был использован вчера, поэтому при компрометации сегодняшнего ключа злоумышленник не сможет воспользоваться им для расшифровки ранее переданных данных. Конечно, данные, которые будут переданы после компрометации, подвергаются риску, но, по крайней мере, ранее переданные данные остались в безопасности. Асимметричные шифры решают эту проблему частично. Как уже упоминалось, сохранение одного и того же ключа расшифровки часто является необходимостью, потому что его достаточно долго используют для проверки данных, удостоверяющих пользователя. Следует помнить о недостатках этого способа.