Кратко

  • RFC 972 предложил для желающих внедрить его узлов сервис из шести восьмизначных, сравнительно произносимых слов. Пользователь выбирал одно или просил новую шестёрку.
  • Различие вариантов сильно зависело от начального зерна. Документ предпочитал общее для системы зерно с обновлением после каждого обращения, отвергал время суток и описывал TCP и UDP на порту 129.

На стойке лежат шесть карточек с паролями. Один можно выговорить, другой даже запомнить. Не понравились — попросите следующую порцию. Так выглядит лицевая сторона Password Generator Protocol, который F. Wancho опубликовал в январе 1986 года. Оборотная сторона напоминает кухню: прежде чем подавать новые карточки, надо проследить, чтобы повар снова не взял ту же порцию ингредиентов.

Поводом были пароли, которые люди придумывали сами. Их нередко легко угадывали. Администраторы пробовали сверяться со словарями или предлагать случайные строки. Случайная строка могла оказаться непроизносимой, а псевдослучайный генератор с коротким циклом — снова вывести знакомые варианты. По словам Wancho, родственный алгоритм уже несколько лет использовали в небольшом числе сетевых центров. Его документ описывал сервис для узлов, которые решат его внедрить; эта предыстория не превращается в статистику повсеместного применения.

Форма ответа задана строго: шесть «слов» по восемь символов, разделённых CRLF. Многоуровневый алгоритм должен был придавать им приемлемую произносимость; администраторам была доступна реализация на FORTRAN-77. Человек мог выбрать одно из предложений или заказать ещё шесть. Это облегчало жизнь памяти, но ничего не сообщало о внутреннем состоянии машины, которая печатала список.

Внутреннее состояние заключалось в начальном зерне. Уникальность выдаваемых слов сильно зависела от его случайности. Зерно из показаний часов Wancho считал неприемлемым. Ему представлялось желательным одно зерно для всей системы, изменяемое после каждого обращения и хранимое в значениях более 32 бит. Произносимость результатов не проверяет, исполнил ли сервер эту работу. Приятная на слух шестёрка вполне может родиться из плохо движущегося механизма.

Сетевой разговор занимал мгновение. По TCP на порту 129 сервер принимал соединение, посылал шесть слов и закрывал его, без обмена репликами. По UDP он отвечал на входящую датаграмму датаграммой со списком. RFC предлагал разместить сервис в нескольких местах, случайно выбирать источник и иметь запасные адреса на случай недоступности. У запасного источника — своё состояние и люди, которые за ним следят.

Запись редакции RFC подтверждает дату — январь 1986 года. Две страницы не подсчитывают действующие установки и не доказывают качество их зёрен. Зато хорошо видно распределение труда: человек выбирает запоминаемый вариант, алгоритм составляет меню, оператор отвечает за состояние следующей выдачи. Пользователь голосовал из шести пунктов. Список кандидатов составляли раньше него.