Каждый первый четверг мая в IT-мире отмечается World Password Day: всемирный день паролей. Его предложил ввести в 2005 году Марк Бернетт как напоминание о важности паролей — и выразил пожелание, чтобы хотя бы в этот день пользователи вспоминали о необходимости их периодически обновлять. По предложению Intel Security, с 2013 года он получил своё место в календаре: в 2022 году он пришёлся на четверг 5-го мая.
Современные компьютерные технологии и Интернет невозможны и не представимы без бесчисленных паролей. А также менеджеров паролей, многоэтапных авторизаций, сложных систем шифрования и прочих подобных радостей. Информация во все века была ценностью, угрозой и оружием. Естественно, в информационную эпоху тотальной цифровизации это стало актуальным, как никогда прежде.
▍ Но кто, как и когда придумал снабжать цифровую информацию паролями?
Это случилось на заре компьютерной эры, когда машины были ещё большими, но уже (большей частью) не ламповыми.
Фернандо Хосе Корбато, более известный друзьям и коллегам как «Корби», с середины 1950-х работал в вычислительном центре MIT, Массачусетского технологического института. К началу 1960-х Корбато и его команда работали над перспективной, передовой и очень актуальной тогда идеей систем разделения времени.
Компьютеров было мало, были они большими, крайне дорогими и сложными в обращении. Достаточно вспомнить суету всего НИИЧаВо вокруг «Алдана-3» Привалова у Стругацких в «Понедельник начинается в субботу». А ведь эти машины, при всеобщей потребности в вычислительных мощностях, большую часть времени вычислениями не занимались, а попросту простаивали.
Происходило это по вполне уважительной причине: процедуры ввода данных с пачек перфокарт или магнитных лент, и запуск программ занимали огромные количества времени. Очереди росли, дедлайны горели, волосы седели, нервы расшатывались ни к чёрту. О бедах тех времён студенты-компьютерщики из Стэнфорда даже сняли печальный и поучительный немой фильм.
Из этих страданий и простоев и родилась рационализаторская идея систем разделения времени. Ведь один редкий и дорогой компьютер, который нужен всем, всегда и ещё вчера, может быть использован гораздо более эффективно, если многозадачная, многопрограммная операционная система позволит нескольким пользователям одновременный интерактивный доступ к вычислительным мощностям с разных коммутаторов или терминалов. Пока одни будут вводить данные или править код, машина будет обрабатывать уже введённые данные других. Паузы в работе одних пользователей заполняются активностью других для оптимального и полного использования вычислительных ресурсов. Профит!
Концепцию систем разделения времени предложили в середине 1950-х Джон Бэкус из MIT и Боб Бемер из IBM, после чего ей плотно занялись в MIT и Оксфорде. «Научить» ранние компьютеры работать в таком режиме было весьма непросто: данные каждого пользователя и его программ должны были храниться в одной и той же машине, способной быстро переключаться между ними. Это занимало бесценные тогда компьютерные циклы, и поначалу, на медленных машинах, это было проблемой.
Фернандо Хосе Корбато и его команда из вычислительного центра MIT стали пионерами в деле практического воплощения этой идеи, продемонстрировав в ноябре 1961 году в деле программный пакет CTSS: Compatible Time-Sharing System. Он работал на специально модифицированной ламповой ЭВМ IBM 709. Затем, после настоятельного убеждения начальства в важности и полезности систем разделения времени, в 1962-м CTSS перенесли на более совершенный транзисторный мейнфрейм IBM 7090. В итоге, в 1963-м, он обосновался на модифицированной же IBM 7094, оставшейся в истории ВЦ MIT как «синяя машина».
Машина в первом варианте имела три или четыре пользовательских терминала Friden Flexowriter. К каждому из них прилагались три блока магнитных ленточных запоминающих устройств IBM 729 Magnetic Tape Unit. При общей памяти IBM 7094 в 32 36-битных «kilowords» пользователи имели доступ к 27000 «слов», ещё 5000 были зарезервированы для операционной системы.
Практический рабочий доступ к CTSS пользователи вычислительного центра MIT получили летом 1963-го года. В октябре 1963-го CTSS развернули на ещё одной IBM 7094, которую назвали «красной машиной» (привет, Морфеус!). В последующие годы к терминалам этих двух ЭВМ с системой разделения времени получили доступ не только сотрудники MIT, но и пользователи из Калифорнии, а затем — из Оксфорда и Эдинбургского университета. А ведь дело было до первого запуска прото-интернета ARPANET в 1969 году.
И всё бы хорошо, но дело было на одном из пиков холодной войны: как раз во время отладки CTSS и её подготовки к практическому применению мир побывал на грани ядерной войны во время Карибского ракетного кризиса. Вычислительные мощности тех лет часто применялись для решения деликатных вопросов, в значительной степени связанных с военными программами. Файлы и хранящаяся в них информация, нередко были делом секретным, или, по меньшей мере, для служебного доступа. Вдруг кто-то из имеющих доступ к системе разделения времени работает на КГБ? Тем паче, что каждый из терминалов использовали разные люди, вычислительные мощности были нужны всем и во всё больших объёмах.
Уже на стадии работ по созданию CTSS возник вопрос: как совместить рациональное использование вычислительных мощностей с тем, чтобы воспрепятствовать доступу любого пользователя к любым данным на «синей» или «красной» машине? Одной из идей было предложить пользователям в начале работы вводить ответы на контрольные вопросы: вроде номера паспорта или водительского удостоверения, «девичьей фамилии матери» и тому подобного. Но в связи с перманентным тогда дефицитом памяти Фернандо Корбато решил, что пароль банально потребует меньше места.
И ещё в 1961 году, при создании CTSS, «прикрутил» к ней пароли. Для подключения к системе через терминал каждый пользователь должен был вводить индивидуальный пароль, позволяющий получить доступ только к его файлам. Более того, было предусмотрено даже отключение печатающего устройства при вводе пароля: для пущей секретности и безопасности.
Фернандо Корбато и «железо» его проекта
Впрочем, система была крайне простой и где-то примитивной. В созданной в интересах безопасности системе безопасность доступа к паролям не особенно предусматривалась: для неё не хватало ограниченных машинных ресурсов. Все пароли хранились в одном мастер-файле на мейнфрейме.
Уже год спустя, в 1962-м, до ввода в практическую эксплуатацию, произошёл первый взлом паролей. Аспирант и сотрудник команды Алан Шер, которому постоянно не хватало отведённых ему на работу с CTSS четырёх часов в неделю, в один прекрасный день «психанул». Он прописал команды, и получил на выходе распечатку мастер-файла с паролями всех пользователей. И даже поделился секретом с парой коллег. В чём чистосердечно признался, но только спустя 25 лет.
И ладно бы хитрый взлом — но в 1966 году из-за сбоя в системе CTSS сама вывела при приветствии вместо соответствующего текста мастер-файл со списком паролей всех пользователей. После чего работавшие с CTSS сотрудники, успевшие записать выведенное, периодически «подкалывали» коллег посредством разных безобразий под их «учётками». В основном невредно и беззлобно, на уровне подписи условного «превед» в чужих файлах.
В целом, созданная Корбато система паролей была весьма примитивной, где-то наивной и не слишком защищённой от взломов. Только в 1970-х годах криптограф Роберт Моррис-старший из Bell Labs изобрёл хэширование: процесс, с помощью которого строка символов трансформируется в цифровой код, представляющий собой заложенную пользователем фразу. В 1988 году «Червь Морриса» осуществил первый массовый взлом паролей в Интернете. С тех пор и компьютерные пароли, и способы их взлома прошли огромный путь — но первым в деле «паролизации» компьютеров и данных всё же был Фернандо Хосе Корбато.
В 1990 году за создание CTSS и паролей к ней Фернандо Хосе Корбато получил одну из самых престижных наград в IT-сфере, а именно Премию Тьюринга за большой вклад в информатику. Впрочем, сам он к концу жизни — а скончался Корбато в 2019-м году — пребывал в несколько мрачном настроении по поводу бесконечного обилия паролей во всемирной сети. И жаловался, что ему приходится хранить список паролей к разнообразным аккаунтам на трёх бумажных листах.
А как вы храните свои пароли?
Автор: Алексей Костенков