русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Потайные ходы


Дата добавления: 2014-11-28; просмотров: 646; Нарушение авторских прав


 

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

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

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





<== предыдущая лекция | следующая лекция ==>
Слишком малая длина ключа | Шифрование вокруг нас


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.274 сек.