Потайные ходы
Причины появления потайных ходов в криптографических системах довольно очевидны: их разработчики хотят иметь контроль над шифруемой в этих системах информацией и оставляют для себя возможность расшифровывать ее, не зная ключа пользователя. Средство, с помощью которых данная возможность реализуется на практике, и принято именовать потайным ходом. Иногда потайные ходы применяются для целей отладки, а после ее завершения разработчики в спешке просто забывают убрать их из конечного продукта.
Классический пример потайного хода, который хакерами единодушно признается самым талантливым “хаком” по взлому системы парольной защиты всех времен и народов, привел Кен Томпсон (один из авторов компилятора для языка программирования С) в своей лекции по случаю вручения ему престижной премии Тьюринга. Дело в том, что в операционной системе UNIX пользовательские пароли хранятся в зашифрованном виде в специальной базе данных. В компилятор языка С Томпсоном был предусмотрительно вставлен код, распознававший, когда на вход компилятора поступала программа, содержавшая приглашение пользователю зарегистрироваться (login). Тогда компилятор добавлял в эту программу код, который распознавал пароль, выбранный самим Томпсоном. Таким образом, Томпсон получал возможность успешно проходить процедуру регистрации и идентификации, не зная легальных паролей, хранимых в зашифрованной базе данных.
Стандартный способ закрыть такой потайной ход состоит в том, чтобы удалить из исходного текста компилятора “вредный” код, а затем его перекомпилировать. Но при перекомпиляции опять не обойтись без компилятора. И Томпсон дописал свой компилятор так, чтобы тот распознавал, когда на его вход поступала исправленная версия его самого. В этом случае компилятор добавлял в нее код, который, в свою очередь, при компиляции программ с приглашением login дописывал в них код, дающий Томпсону привилегированный доступ, а также код, который позволял компилятору распознавать свою обновленную версию при перекомпиляции. Таким образом, не имеет значения, насколько надежным был криптографический алгоритм, который использовался для шифрования паролей пользователей операционной . системы UNIX. Потайной ход, придуманный Томпсоном, оставался открыт для него при любых условиях.
- Группа подготовки издания:
- 199034, Санкт-Петербург, 9-я линия, 12. Предисловие
- Компьютерная безопасность Глава 1
- Угрозы компьютерной безопасности Компьютерная преступность в России
- Тенденции
- Internetкак среда и как орудие совершения компьютерных преступлений
- Синдром Робина Гуда
- История одного компьютерного взлома
- Компьютер глазами хакера
- Кто такие хакеры
- Методы взлома компьютерных систем
- Атаки на уровне систем управления базами данных
- Атаки на уровне операционной системы
- Атаки на уровне сетевого программного обеспечения
- Защита системы от взлома
- Глава 2
- Программы-шпионы Программные закладки
- Модели воздействия программных закладок на компьютеры Перехват
- Искажение
- Уборка мусора
- Наблюдение и компрометация
- Защита от программных закладок
- Защита от внедрения программных закладок
- Выявление внедренной программной закладки
- Удаление внедренной программной закладки
- Троянские программы
- Откуда берутся троянские программы
- Где обитают и как часто встречаются троянские программы
- Как распознать троянскую программу
- Клавиатурные шпионы
- Имитаторы
- Фильтры
- Заместители
- Как защитить систему от клавиатурных шпионов
- Глава 3
- Парольная защита операционных систем Парольные взломщики
- Что такое парольный взломщик
- Как работает парольный взломщик
- Взлом парольной защиты операционной системыUnix
- Взлом парольной защиты операционной системыWindows nt База данных учетных записей пользователей
- Хранение паролей пользователей
- Использование пароля
- Возможные атаки на базу данныхSam
- Защита системы от парольных взломщиков
- Как сделать парольную защитуWindows 95/98 более надежной
- Как установить парольную защитуWindows 95/98
- Почему парольная защита Windows 95/98 ненадежна
- Как предотвратить несанкционированную загрузку системы
- Как запретить кэширование паролей вWindows 95/98
- Соблюдайте осторожность: парольная защита ненадежна
- Глава 4
- Безопасность компьютерной сети Сканеры
- Сканер в вопросах и ответах Что такое сканер?
- Каковы системные требования для работы со сканерами?
- Трудно ли создать сканер?
- Что не по силам даже самому совершенному сканеру?
- Насколько легальны сканеры?
- В чем различие между сканерами и сетевыми утилитами?
- Сканер в действии
- Satan, Jackal и другие сканеры
- Анализаторы протоколов
- Локальное широковещание
- Анализатор протоколов как он есть
- Защита от анализаторов протоколов
- Криптографические методы защиты информации Глава 5
- Основы криптографии Зачем нужна криптография
- Терминология Шифрование и расшифрование
- Аутентификация, целостность и неоспоримость
- Шифры и ключи
- Симметричные алгоритмы шифрования
- Алгоритмы шифрования с открытым ключом
- Криптоаналитические атаки
- Надежность алгоритма шифрования
- Сложность криптоаналитической атаки
- Шифры замены и перестановки
- Шифры замены
- Шифры перестановки
- Роторные машины
- Операция сложения по модулю 2
- Одноразовые блокноты
- Компьютерные алгоритмы шифрования
- Глава 6
- Криптографические ключи Длина секретного ключа
- Сложность и стоимость атаки методом тотального перебора
- Программная атака
- "Китайская лотерея"
- Биотехнология
- Термодинамические ограничения
- Однонаправленные функции
- Длина открытого ключа
- Какой длины должен быть ключ
- Работа с ключами
- Генерация случайных и псевдослучайных последовательностей
- Псевдослучайные последовательности
- Криптографически надежные псевдослучайные последовательности
- Генерация ключей
- Сокращенные ключевые пространства
- Плохие ключи
- Случайные ключи
- СтандартAnsi x9.17
- Нелинейные ключевые пространства
- Передача ключей
- Проверка подлинности ключей
- Контроль за использованием ключей
- Обновление ключей
- Хранение ключей
- Запасные ключи
- Скомпрометированные ключи
- Продолжительность использования ключа
- Уничтожение ключей
- Глава 7
- Криптографические протоколы Что такое криптографический протокол
- Зачем нужны криптографические протоколы
- Распределение ролей
- Протокол с арбитражем
- Протокол с судейством
- Самоутверждающийся протокол
- Протокол обмена сообщениями с использованием симметричного шифрования
- Протокол обмена сообщениями с использованием шифрования с открытым ключом
- Гибридные криптосистемы
- "Шарады" Меркля
- Цифровая подпись
- Подписание документов при помощи симметричных криптосистем и арбитра
- Подписание документов при помощи криптосистем с открытым ключом
- Отметка о времени подписания документа
- Использование однонаправленных хэш-функций для подписания документов
- Дополнительная терминология
- Несколько подписей под одним документом
- Неоспоримость
- Цифровая подпись и шифрование
- Основные криптографические протоколы Обмен ключами
- Обмен ключами для симметричных криптосистем
- Обмен ключами для криптосистем с открытым ключом
- Атака методом сведения к середине
- Блокировочный протокол
- Протокол обмена ключами с цифровой подписью
- Одновременная передача ключа и сообщения
- Множественная рассылка ключей и сообщений
- Аутентификация
- Аутентификация при помощи однонаправленных функций
- Отражение словарной атаки при помощи "изюминок"
- Периодическая сменяемость паролей
- Аутентификация при помощи криптосистем с открытым ключом
- Формальный анализ криптографических протоколов
- Многоключевая криптография с открытым ключом
- Множественная рассылка шифрованных сообщений
- Распределение ответственности
- Распределение ответственности и мошенничество
- Вспомогательные криптографические протоколы Отметка о времени создания файла
- Отметка о времени создания файла и арбитраж
- Связующий протокол
- Распределенный протокол
- Подсознательный канал
- Практическое применение подсознательного канала
- Неоспоримая цифровая подпись
- Цифровая подпись с назначенным конфирмантом
- Цифровая подпись по доверенности
- Групповые подписи
- Цифровая подпись с дополнительной защитой
- Предсказание бита
- Предсказание бита с помощью симметричной криптосистемы
- Предсказание бита с помощью однонаправленной функции
- Предсказание с помощью генератора псевдослучайных битовых последовательностей
- Бросание монеты
- Бросание монеты с помощью предсказания бита
- Бросание монеты с помощью однонаправленной функции
- Бросание монеты с помощью криптосистемы с открытым ключом
- Игра в покер
- Специальные криптографические протоколы Доказательство с нулевым разглашением конфиденциальной информации
- Протокол доказательства с нулевым разглашением конфиденциальной информации
- Параллельные доказательства с нулевым разглашением конфиденциальной информации
- Неинтерактивные протоколы доказательства с нулевым разглашением конфиденциальной информации
- Удостоверение личности с нулевым разглашением конфиденциальной информации
- Неосознанная передача информации
- Анонимные совместные вычисления
- Вычисление средней зарплаты
- Как найти себе подобного
- Депонирование ключей
- Депонирование ключей и политика
- Глава 8
- Надежность криптосистем
- Как выбрать хороший криптографический алгоритм
- Криптографические алгоритмы, предназначенные для экспорта из сша
- Симметричный или асимметричный криптографический алгоритм?
- Шифрование в каналах связи компьютерной сети
- Канальное шифрование
- Сквозное шифрование
- Комбинированное шифрование
- Шифрование файлов
- Аппаратное и программное шифрование Аппаратное шифрование
- Программное шифрование
- Сжатие и шифрование
- Как спрятать один шифртекст в другом
- Почему криптосистемы ненадежны
- Реализация
- Учет реальных потребностей пользователей
- Законодательные ограничения
- Слишком малая длина ключа
- Потайные ходы
- Шифрование вокруг нас
- Приложение Англо-русский криптологический словарь с толкованиями
- Лексикографические источники
- Сокращения Английские
- Русские
- Условные обозначения
- Криптологический словарь
- Глава 1 6
- Глава 2 24
- Глава 3 52
- Глава 4 75
- Глава 5 92
- Глава 6 110
- Глава 7 138
- Глава 8 204