Иллюстрированный самоучитель по Protection to information


Почему криптосистемы ненадежны - часть 6


Классический пример потайного хода, который хакерами единодушно признается самым талантливым "хаком" по взлому системы парольной зашиты всех времен и народов, привел Кен Томпсон (один из авторов компилятора для языка программирования С) в своей лекции по случаю вручения ему престижной премии Тьюринга. Дело в том, что в операционной системе UNIX пользовательские пароли хранятся в зашифрованном виде в специальной базе данных. В компилятор языка С Томпсоном был предусмотрительно вставлен код, распознававший, когда на вход компилятора поступала программа, содержавшая приглашение пользователю зарегистрироваться (login). Тогда компилятор добавлял в эту программу код, который распознавал пароль, выбранный самим Томпсоном. Таким образом, Томпсон получал возможность успешно проходить процедуру регистрации и идентификации, не зная легальных паролей, хранимых в зашифрованной базе данных.

Стандартный способ закрыть такой потайной ход состоит в том, чтобы удалить из исходного текста компилятора "вредный" код, а затем его перекомпилировать. Но при перекомпиляции опять не обойтись без компилятора. И Томпсон дописал свой компилятор так, чтобы тот распознавал, когда на его вход поступала исправленная версия его самого. В этом случае компилятор добавлял в нее код, который, в свою очередь, при компиляции программ с приглашением login дописывал в них код, дающий Томпсону привилегированный доступ, а также код, который позволял компилятору распознавать свою обновленную версию при перекомпиляции. Таким образом, не имеет значения, насколько надежным был криптографический алгоритм, который использовался для шифрования паролей пользователей операционной системы UNIX. Потайной ход, придуманный Томпсоном. оставался открыт для него при любых условиях.

Шифрование вокруг нас

Итак, для того чтобы создать надежную криптографическую систему, необходимо обладать достаточными познаниями в области современной криптографии, аккуратно и безошибочно воплотить эти познания в виде работающей программы с дружественным интерфейсом, убрав из нее все потайные ходы по окончании отладки.


- Начало -  - Назад -  - Вперед -



Книжный магазин