This article is about Ken Thompson's old Unix password hash being cracked. One line in the article intrigues:
"Even an exhaustive search over all lower-case letters and digits took several days (back in 2014) and yielded no result," wrote Neukirchen, who wondered whether Thompson might somehow have used uppercase or special characters.
Was there some reason why Ken Thompson would not have been able to use uppercase or special characters? The word "somehow" suggests that it wasn't easily done.241Baldrickk
Yes, you could use uppercase and special characters in passwords in early Unix.
No, there was no Unix-related reason Ken Thompson wouldn’t have been able to use uppercase or special characters. Many of the passwords found in 2014 used special characters; none used uppercase, which doesn’t say anything about the original password requirements, only about the search parameters for the hashing tool used in 2014. When attempting to crack passwords, you have to start somewhere; Leah Neukirchen got interesting results with only lowercase characters, numbers, and a few special characters (at least ‘/’, ‘.’, ‘,’, ‘!’, ‘%’, and ‘;’). Adding uppercase characters would have significantly added to the time required.
It turns out Ken’s password did only use lowercase characters (and numbers and special characters), so Leah Neukirchen’s probably mis-remembered the search space used in 2014 — adding ‘-’ to the mix of characters would have found it.
In later versions of Unix, Ken Thompson would most certainly have been able to use upper-case characters but it's unclear whether he would have wanted to. It's not that Unix itself prevented it, but rather that there were still plenty of terminals at that time that supported only the 64-character ASCII character set, which were upper-case only.
The "7th Edition UNIX - Summary" document found in the 7th edition programmer's manual (volume 2) listed the hardware requirements for v7 Unix and stated that "full duplex 96- character ASCII terminals" were "strongly recommended" (i.e., not "required").
Similarly, in "UNIX For Beginners - Second Edition" (Kernighan, 1978) it's stated:
But note: UNIX is strongly oriented towards devices with lower case. If your terminal produces only upper case (e.g., model 33 Teletype, some video and portable terminals), life will be so difficult that you should look for another terminal.
Unix was able to deal with such terminals by converting upper-case to lower-case, effectively turning that terminal into a lower-case-only device, so that Unix interpreted everything as lower-case, even if the user was seeing it in upper-case. It was possible in these situations to tell Unix to treat certain characters as upper-case by using a special escape sequence (namely, a backslash), but it was a nuisance.
Given the strong possibility that Ken Thompson might find himself logging on to a Unix system on, say, a Teletype Model 33, it would have made sense for him to avoid upper-case characters in his own password, simply to avoid the nuisance of using escape sequences.
Note that in very early versions of Unix (e.g. 1st through 3rd editions) the console Teletype was always mapped to lower-case (i.e. it was not possible to type upper-case characters at the console), and given that Ken Thompson would have been one of the people likely to use the console typewriter, there would have been a technical obstacle preventing him from using upper-case characters in his password, at least in those early versions.
© 2012 - Nathan Osman - [About]