Summary

  • RFC 972 proposed a password-generation service for hosts choosing to implement it: six eight-character, reasonably pronounceable words, with a user free to choose one or request another set.
  • The memo put the real pressure on seed quality. It favored a system-wide seed updated after every access, rejected time-of-day seeds, and described TCP and UDP versions on port 129.

Picture the password desk of 1986. A person wants an account; the computer presents six candidates that a mouth might manage to say aloud. Pick one, or send the desk back for another tray. The arrangement in F. Wancho’s Password Generator Protocol has the politeness of a restaurant menu. It also has a kitchen that must never run out of ingredients or accidentally cook the same dish for everyone.

Wancho began with an ordinary fight between memory and guessing. Users chose words that other people could guess. Administrators tried dictionary checks; some tried random passwords. Those could be awkward to remember because they could not be pronounced, and the pseudo-random generators available at sites could run through short cycles. A version of the underlying algorithm had already been used at a small number of Internet sites for several years. The memo's new proposition was a service that other sites could call, rather than a claim that the whole Internet had adopted one password factory.

The service's visible output was exact: six words, eight characters each, separated by carriage-return/line-feed pairs. “Word” was generous typography: these were generated strings designed to sound reasonably pronounceable, not dictionary entries donated by the user. A multilevel algorithm made them; a FORTRAN-77 implementation was available for administrators to examine. The user got a small measure of agency—choose from the first six, or draw another set—while the system took responsibility for proposing candidates.

Then the memo turned the lights on in the kitchen. The generated words' distinctness depended heavily on the random seed. A clock-based seed was unacceptable, Wancho wrote. He wanted one system-wide seed, updated after each access, with seed values stored in more than 32 bits. This was the part of the protocol no password picker could inspect by looking at six pleasing syllables. If a seed repeated, a pleasant word could be a familiar word to somebody else, too. The menu made selection legible; the seed governed the menu's supply.

The network wrapper was almost comically brief. On TCP port 129, the server accepted a connection, sent the six CRLF-delimited words, and closed it. There was no conversation. On UDP port 129, a datagram received a datagram containing the six words. The memo also envisaged multiple sites offering the service, random selection among them and fallback if one was unavailable. Those are operational choices, not decorations around the algorithm: an operator must maintain the seed at a service, and a client must decide which service to trust with the next tray of candidates.

The RFC Editor’s record dates the memo to January 1986. Its two pages do not count actual installations, disclose the complete algorithm, or demonstrate how well every deployment seeded it. What they do show is a wonderfully compact division of labor. The user judges what can be remembered. The generator decides what can be offered. The operator controls the state from which the next six offers arise. The computer may ask, “Which one do you like?” The consequential vote was cast before it printed the list.