Кратко

  • STARTTLS сохранял TCP-соединение, но возвращал NNTP почти в состояние сразу после начального приветствия.
  • Сервер забывал выбранную группу и номер статьи; клиент не мог полагаться на список возможностей, полученный открыто.
  • TLS защищал один участок и не означал автоматической аутентификации пользователя, автора или всей цепочки ретрансляторов.

Одно соединение, две истории доверия

В RFC 977 NNTP был разговором с памятью: приветствие, команды, ответы и текущее состояние. RFC 4642 провёл границу внутри такого разговора. После ответа 382 следующий октет уже начинал TLS. Команду нельзя было помещать в конвейер, а неудачный handshake мог оставить стороны в неопределённом состоянии, поэтому соединение следовало закрыть.

При успехе TCP оставался прежним. Но NNTP возвращался почти к моменту после приветствия. Сервер обязан был отбросить полученные до TLS сведения о клиенте, включая текущую группу и номер статьи. Клиент не должен был доверять прежнему списку возможностей.

Шифрование не исправляет прошлое. Активный противник мог изменить открытый обмен. Если перенести выбранное состояние дальше, TLS защищал бы выполнение навязанной предпосылки.

Возможности имеют время наблюдения

RFC 3977 определяет CAPABILITIES как снимок в конкретной точке сеанса. Список может меняться. После TLS клиент спрашивает снова: STARTTLS исчезает, а механизмы, зависящие от сертификата, могут появиться.

Кэш прошлого сеанса не годится для решения о защите, поскольку злоумышленник способен удалить объявление STARTTLS. Однако память о прежней поддержке помогает заметить исчезновение. Внутри сеанса старый список забывают ради чистой границы; между сеансами прежнее ожидание сохраняют ради обнаружения downgrade.

Эффект выполненного ранее MODE READER не отменяется. Исключение показывает, что речь не о тотальной амнезии, а о лишении чувствительных открытых данных права распоряжаться защищённым этапом.

Сертификат ещё не учётная запись

Даже при клиентском сертификате сервер остаётся неаутентифицированным на уровне NNTP. RFC 4643 показывает новый запрос возможностей, затем AUTHINFO SASL. Механизм EXTERNAL может использовать личность из сертификата, но решение приложения остаётся отдельным. STARTTLS не обязывает сервер поддерживать этот путь.

TLS защищает байты, сертификат связывает имя с ключом, NNTP выдаёт права. Ни один слой не должен незаметно присваивать полномочия другого.

Защита также не становится сквозной. Статья Netnews проходит несколько серверов. TLS охраняет одну пару; аутентификация пересылающего узла не доказывает автора и предшествующий маршрут. Реестр IANA фиксирует STARTTLS как стандартную возможность транспортной защиты, а не состояние конкретной сети.

NNTP сохранил провод, но отказался сохранять плохо полученную уверенность. Он заново спрашивал, восстанавливал состояние и оставлял вход отдельным решением. Защищённый разговор начинался с отказа наследовать открытый.

Источники