Сделай это безопасным! Alek Silverstone Спецвыпуск: Хакер, номер #058, стр. 058-072-7 4. Ошибочный выбор класса криптоалгоритма. Например, часто вместо хэширования используют симметричное шифрование на постоянном ключе. Нужно твердо запомнить, что шифрование является обратимым процессом. 5. Повторное наложение шифра. При использовании поточных шифров никогда нельзя применять один и тот же ключевой поток для шифрования двух сообщений. В этом случае атакующий может перехватить эти сообщения и узнать их xor-разность, на основе которой обнаруживаются сами сообщения. 6. Хранение ключа вместе с данными. Именно это часто становится самым слабым звеном всей криптосистемы. Зачем взламывать алгоритм шифрования, если ключ хранится в настройках программы в практически незащищенном виде? Идеальный вариант – хранить ключ на дискете, flash'ке или smart-карте, всегда вынимать носители из устройства и держать их при себе (к слову, именно так делают многие из команды Спеца и Х :) – прим. Лозовского). 7. Ошибки проектирования алгоритмов. Самая страшная проблема, и на ней стоит остановиться подробнее. Перечитаем пункт 3 еще раз. Так вот, профессиональные криптографы тоже ошибаются. Незадолго до написания этой статьи я нашел весьма любопытную информацию – читай врезку "О швейцарских часах" (это было очень свежо на момент написания статьи, а сейчас, наверное, известно всем– прим. Лозовского). Ну, вот и все. Удачи тебе, если будешь составлять свой криптопротокол. Будут вопросы – пиши, постараюсь ответить. О швейцарских часах Одной из самых популярных хэш-функций является MD5. Она входит во многие стандарты и протоколы (про ее реализацию я давным-давно писал в Кодинге "Хакера"). Разумеется, любой алгоритм может быть взломан. Для атаки на хэш-функции часто используется принцип Time-Memory Trade-Off ("размен" времени на память): время атаки сокращается благодаря предпросчету специальной таблицы. Он занимает очень большое время, и сама таблица получается далеко не маленькая, зато сама атака проходит значительно быстрее. Не так давно появилась модификация этого метода (lasecwww.epfl.ch/pub/lasec/doc/Oech03.pdf), позволяющая уменьшить размер таблицы и время атаки. Вскоре в открытом доступе появились исходные коды программы, реализующие эту идею (www.antsight.com/zsl/rainbowcrack), а на их основе – сервис www.passcracking.com, взламывающий 10 MD5-хэшей в течение часа, причем скорость растет пропорционально количеству хэшей, ломаемых за сеанс. Это было первой ласточкой для всех хэш-функций. Впрочем, для этого метода требовалось очень длительное время генерации таблицы. В августе прошлого года появилось сообщение китайских криптографов о взломе ряда хэш-функций, среди которых была и MD5. На нахождение коллизии на используемом ими суперкомпьютере требовалось меньше суток. По каким-то соображениям метод вычислений не был опубликован. Многие ученые по всему миру пытались раскрыть "китайский секрет". Знали бы китайцы, к чему это приведет… |