В компьютерных сетях TCP Fast Open ( TFO ) — это расширение, ускоряющее открытие последовательных соединений протокола управления передачей (TCP) между двумя конечными точками. Он работает с использованием файла cookie TFO (опция TCP), который представляет собой криптографический файл cookie, хранящийся на клиенте и устанавливаемый при первоначальном соединении с сервером. [1] Когда клиент позже повторно подключается, он отправляет исходный пакет SYN вместе с данными cookie TFO для аутентификации. В случае успеха сервер может начать отправку данных клиенту еще до получения последнего пакета ACK трехстороннего рукопожатия, тем самым пропуская двустороннюю задержку и снижая задержку в начале передачи данных.
Файл cookie генерируется путем применения блочного шифра , основанного на ключе, который сервер держит в секрете, к ключу клиента, генерируя тег аутентификации , который третьим лицам трудно подделать, даже если они могут подделать исходный IP-адрес или установить двусторонние соединения. на тот же сервер с других IP-адресов. Несмотря на то, что для создания файлов cookie используются криптографические методы, TFO не предназначен для обеспечения большей безопасности, чем трехстороннее рукопожатие, которое он заменяет, и не обеспечивает какой-либо формы криптографической защиты результирующего TCP-соединения или обеспечения идентификации любой конечной точки. Он также не предназначен для защиты от атак «человек посередине» . Если такое сопротивление требуется, его можно использовать в сочетании с криптографическим протоколом, таким как TLS или IPsec .
TFO было сложно развернуть из-за окостенения протокола; в 2020 году ни один веб-браузер не использовал его по умолчанию. [2]
TFO представляет собой проблему конфиденциальности ; файл cookie TFO может позволить постоянно отслеживать клиента между сеансами даже пассивным наблюдателям. [3]
Предложение TFO было первоначально представлено в 2011 году [4] и опубликовано как экспериментальный RFC 7413 в декабре 2014 года. [5] TCP Fast Open разделяет цель обхода трехэтапного установления связи TCP с более ранним предложением 1994 года под названием T. /TCP (RFC 1644). В отличие от TCP Fast Open, T/TCP не уделял внимания безопасности, [5] открывая путь для уязвимостей и не набирая обороты.
Реализации TFO включают следующее:
Поддержка на стороне клиента была добавлена в Linux 3.6.
Линукс 3.7.
TCP Fast Open теперь будет поддерживаться на серверах.