Поразмыслим… Пароли — это краеугольный камень системы защиты больших вычислительных машин. Персональные компьютеры не нуждаются в паролях: здесь только один пользователь. Каждый, сидящий за клавиатурой, имеет доступ к любой программе. Но когда десять или двадцать человек одновременно используют одну и ту же систему, необходимы гарантии, что сидящий за терминалом человек — не самозванец. Пароли, как и электронная подпись, удостоверяют подлинность транзакции. Работа автоматических машин для подсчета голосов, пользование телефонными кредитными карточками, работа систем перевода электронных денег и даже некоторых телефонных автоответчиков зависит от паролей. «Срисовав» пароли или научившись их подделывать, хакер может создать подложное состояние, пользоваться бесплатно разного рода услугами или покрывать чеки при отсутствии средств на счету. Когда деньги хранятся в несгораемых шкафах, то медвежатники подбирают комбинацию к замку. Теперь, когда средства защиты — это просто биты в памяти компьютера, взломщики охотятся за паролями. Если на компьютере работают пятьдесят или сто пользователей, можно просто хранить пароли в отдельном файле. При подключении надо всего лишь запросить пароль и сравнить его с находящимся в файле образцом. Если вокруг друзья — проблем не возникает. Но как сделать, чтобы кто-нибудь украдкой не заглянул в файл паролей? Ну, надо установить такую защиту, чтобы прочесть его могла только операционная система.
Даже если защитить файл паролей, следует учитывать, что через определенные промежутки времени со всех файлов на магнитные ленты снимаются копии возобновления. Даже программист-новичок может прочесть эти ленты на другом компьютере и вывести содержимое файла. Сама по себе защита файла безопасности не обеспечивает. В 1975 году Боб Моррис и Фред Грамп из лаборатории Белл разработали способ защиты паролей, работающий даже при отсутствии защиты файлов. Они использовали шифрование. Если взять, например, пароль «cradle», то компьютер не ограничится простой записью его в файл. ЮНИКС преобразует буквы пароля в шифрограмму: «pn6eewersyq». В файле хранится результат шифрования, а не исходный текст пароля. Файл паролей ЮНИКСа может выглядеть примерно так:
Aaron: fnqs24kcvs
Blacker: anvpqwOxcsr
Blatz: pn6yywersyq
Goldman: mwe785jcy12
Henderson: rp2d9c149b7
Каждому учетному имени соответствует зашифрованный пароль. Вэйн прав, кража файла паролей не даст ничего, кроме списка фамилий.
Компьютерная программа, преобразующая слово «cradle» в последовательность символов «pn6yywersyq», основана на алгоритме мышеловки: «легко зашифровать и трудно расшифровать». Когда Салли Блатц подключается к системе, она вводит с клавиатуры свое учетное имя — Blatz и пароль — cradle. Система преобразует пароль в последовательность pn6yywersyq и сравнивает эту последовательность с содержимым файла паролей. Если они не совпадают, то Салли выкидывают из компьютера. Сравнивается не сам исходный текст пароля, а результат его шифрования. Надежность охраны паролей зависит от надежности функции «мышеловки». Функции мышеловки — это математические капканы: можно выполнить преобразование только в прямом направлении, а не в обратном. Они быстро преобразуют текст в шифр. К этим замкам нельзя подобрать ключи — невозможно заставить работать алгоритм в обратном направлении. Наши мышеловки строятся в соответствии со стандартом шифрования данных (Data Encryption Standard — DES), разработанным фирмой ИБМ и Агентством Национальной Безопасности. До нас дошли слухи, что электронные привидения АНБ ослабили требования этого стандарта. Они «стреножили» его так, чтобы сами они могли «раскалывать» шифрограммы, а простые смертные — нет. Мы также слышали, что существует тщательно скрываемый способ, при помощи которого ребята из АНБ могут раскрывать код и читать зашифрованные сообщения, а никто другой не может.
Криптографическая DES-программа в нашем ЮНИКСе — это программа общего доступа. Баловаться с ней может каждый. АНБ проанализировала ее сильные и слабые стороны, но отчет засекретила. Случайно до нас дошли слухи, что кто-то раскрыл шифр, но они не подтвердились. Пока АНБ не опубликует результаты анализа стандарта шифрования данных, нам не остается ничего другого, как полагать, что наш способ шифрования достаточно надежен.
Вэйн и я наблюдали, как хакер вломился и «украл» наш файл паролей. Теперь он знал имена нескольких сотен научных работников. Он мог с таким же успехом украсть и телефонную книгу — по крайней мере, там есть и адреса. Если только у него дома не стоит Крей, то он не сможет заставить «Мышеловку» работать в обратном направлении, поэтому наши пароли — в безопасности.