Протокол NFS и средства аутентификации протокола монтирования
Протокол NFS предусматривает использование протокола монтирования для аутентификации запросов. Протокол монтирования выполняет проверку подлинности запросов каждого отдельного клиента на получение дескриптора корневого каталога, а протокол NFS не обеспечивает проверку подлинности каждого отдельного клиентского запроса. У нас всегда в наличии фоторамки электронные в Екатеринбурге.
Любопытно отметить, что протокол монтирования не обеспечивает высокий уровень защиты. В нем для аутентификации клиента используется функция AUTH_N0NE протокола RPC. Однако после получения клиентом дескриптора корневого каталога средства защиты отдельных файлов почти не играют никакой роли. Например, после получения программистом широких прав доступа к своей собственной рабочей станции, он может также получить возможность обращаться к произвольным файлам не только на своем компьютере, но и на сервере NFS. Кроме того, если программист сможет догадаться, как устроен непрозрачный дескриптор файла, он получит возможность самостоятельно строить дескрипторы для произвольных каталогов сервера.
В целях усложнения задачи расшифровки структуры дескрипторов, во многих версиях NFS информация о файле или каталоге, содержащаяся в дескрипторе, закодирована. Эта информация размещается в отдельных полях, чтобы невозможно было установить очевидную связь между дескриптором для каталога и дескрипторами для файлов в этом же каталоге. В ранних версиях NFS применялись поля постоянной длины для обеспечения эффективной интерпретации дескрипторов. Например, как показано в табл. 25.1, в одной из реализаций NFS дескриптор состоял из десяти полей; дескрипторы файлов строятся таким образом не на всех серверах.
Основная опасность использования формата с полями постоянной длины для дескриптора файлов связана с тем, что протокол NFS почти не обеспечивает защиту от несанкционированного доступа. Программист, желающий получить доступ к файлам из клиентской программы, может обойти протокол монтирования, составив вручную дескриптор для произвольного файла. Затем он может получить информацию об атрибутах этого файла, включая данные о владельце файла и битах защиты. Таким образом, он сможет получить доступ к файлам, предназначенным для чтения всеми пользователями локального компьютера, даже если протокол монтирования не разрешает доступ. Кроме того, если клиент имеет права пользователя root на локальном компьютере, он сможет передавать серверу запросы, которые содержат произвольные пользовательские идентификаторы. Таким образом, если клиент имеет права привилегированного пользователя root на локальном компьютере, он сможет отправлять на сервер запросы, содержащие произвольные идентификаторы пользователей. Поэтому пользователь клиентской программы с правами привилегированного пользователя может вначале узнать, кто является владельцем конкретного файла, а затем отправить запрос, выдавая себя за этого владельца.
В целях усложнения задачи расшифровки структуры дескрипторов файлов многие системные администраторы используют утилиту, позволяющую заменить номера поколений индексных узлов случайными числами. Эта утилита проходит по всем индексным узлам диска и записывает в поле номера поколения индексного узла случайное число. В протоколе монтирования номер поколения применяется при передаче клиенту дескриптора файла, а программное обеспечение NFS проверяет, совпадает ли значение в дескрипторе с номером поколения, находящимся в индексном узле.
Замена номеров поколения случайными числами повышает уровень защиты, но не приводит к увеличению вычислительных издержек, связанных с формированием дескриптора, поскольку замена случайными числами выполняется до запуска на выполнение программного обеспечения протокола. Однако замена номеров поколения случайными числами намного усложняет расшифровку структуры дескрипторов файлов. Клиент, пытающийся получить несанкционированный доступ, должен выбрать одно из 232 возможных значений номера поколения. Поскольку вероятность угадывания действительного дескриптора невелика, вероятность получения несанкционированного доступа к файлу также является весьма низкой.