Дескриптор файла
После указания имени удаленного файла и его открытия в клиентской программе должен быть предусмотрен способ обозначения того, что файл предназначен для выполнения последующих операций (например, чтения и записи). Кроме того, в клиентской программе должен быть предусмотрен способ обозначения отдельного каталога или файла, применяемый в процессе прохождения по иерархии имен файлов сервера. Для решения этих задач в системе NFS предусмотрено, что сервер присваивает каждому открытому файлу уникальный дескриптор файла, который применяется в качестве идентификатора. После открытия клиентом файла сервер создает дескриптор и передает его клиенту. Клиент, передавая запросы на выполнение операций с файлом, отправляет на сервер дескриптор.
С точки зрения клиентах дескриптор файла представляет собой 64-байтовую строку, используемую сервером для обозначения файла. С точки зрения сервера, в качестве дескриптора файла сокет быть выбран любой подходящий набор байтов, который однозначно обозначает отдельный файл. Например, в дескрипторе файла может быть закодирована информация, позволяющая серверу быстро декодировать дескриптор и найти файл.
Согласно терминологии NFS, дескриптор файла является для клиента непрозрачным; это означает, что клиент не может декодировать дескриптор или создать его самостоятельно. Дескрипторы файлов создаются только серверами, и каждый сервер распознает только те дескрипторы, которые были им созданы. Кроме того, в защищенных реализациях серверов NFS используются сложные алгоритмы шифрования, которые исключают возможность получения в клиентской программе какой-либо информации из дескриптора файла. В частности, в серверах некоторые биты дескриптора устанавливаются случайным образом, что позволяет исключить возможность подделки дескриптора в клиентской программе.
В целях повышения уровня защиты серверы могут также ограничивать продолжительность использования дескриптора файла. Это позволяет исключить возможность захвата клиентом дескриптора на неопределенно долгое время. Для ограничения времени жизни дескриптора в сервере предусматривается вставка в дескриптор зашифрованной отметки времени. По истечении времени жизни дескриптора сервер отказывается выполнять дальнейшие операции с файлом с применением такого устаревшего дескриптора. Прежде чем продолжить доступ к файлу, клиентская программа должна получить свежий дескриптор. Обычно на практике отметки времени NFS служат достаточно долго и позволяют выполнять всевозможные операции доступа. Приложения, в которых файл используется на законных основаниях, всегда могут получить свежий дескриптор с помощью клиентского программного обеспечения NFS (необходимые для этого действия могут быть полностью скрыты от приложения).