– С возвращением в свободный мир. – В своей манере написал он.
– Я не буду спрашивать, из какой задницы ты достал этот код, но без дополнительной инфы я его не расшифрую.
– Подожди секунду, сейчас отправлю кое-что интересное. На флешку не стал закачивать, так безопаснее.
Как раз к этому моменту моя прога выдала, что значительных закономерностей с существующими алгоритмами обфускации – не найдено. Идеально, это ещё и авторский алгоритм запутывания кода... Просто шикарно, твою мать!
– Прими файл брат по клавиатуре. Наш общий знакомый по форуму, закинул троянчика на нужный комп, да не просто троянчика, а который засветил большую часть криптографического протокола, включая работу закрытого ключа.
– А не проще тогда с помощью трояна узнать пароль?
– Там одноразовые пароли, которые действуют одну минуту. Генерируются случайным образом по запросу, в соответствии с привилегиями сотрудника. В общем, там не всё так просто.
– Это секретная правительственная лаборатория? Что за контроль?
– В общем, изучи файл. Белым выделены не задействованные части кода, синим – задействованные, красным – предполагаемо-ключевые части кода. Но проблема в том, что основную работу по обработке запроса принял на себя автономный плагин, который отсылает данные куда-то вглубь сервака и там они уже обрабатываются. Поэтому троян оказался фактически бесполезным, во всяком случае, для меня.
Все мы знаем фразу ломать – не строить. Но в криптографии всё наоборот, намного легче строить, чем ломать. Ещё Шнайер сказал, что каждый способен составить защитный алгоритм, который он сам же не сможет взломать. Чертовски верно! Особенно, когда за тридцатку лет так и не появилось ничего принципиально нового, кроме банального брута. Кстати...
– Если я правильно понимаю, до того как сервак провёл аутентификацию пользователя, абсолютно весь код был зашифрован? – Торопливо я написал в чат.
– Ну да, там три фазы аутентификации. На первой, до обмена протоколами, там вообще всё зашифровано.
– Скинь мне полностью зашифрованный код, который отображается на первой фазе аутентификации.
– Окей... – Последовал ответ в чате через десяток секунд. – Вот он. Что ты с ним будешь делать?
– Очевидно же, что линейный или дифференциальный криптоанализ. Начну с линейного. Ты что, даже этого не знаешь?
– Да я больше по скриптам как-то...
– Ну ты и хацкер... – Тут же написал я ему в ответ. Терпеть не могу недохакеров, которые не знают криптографии. – Ладно, будет тебе ключ.
– О, узнаю нашего Макса. Я то хоть хацкер, а ты луркер вонючий=), это куда хуже. – С заветным смайлом в конце обозвал он. Санёк явно обрадовался, если я говорю, что ключ будет – значит, он будет.
– Кстати, ключ то будет, но что если система выдаёт сессионные ключи шифрования, или меняет их каждый день? – На всякий случай я уточнил.
– Это точно не сессионные ключи. Но насчёт замен – не знаю... – Явно поник Санёк.
– Ладно, не сцы. В крайнем случае, попытаюсь сделать обратное преобразование модульной арифметики, давно хотел попробовать этот полумифический метод.
– Понятие не имею чё это, но звучит круто. Рад, что ты не растерял хватку.
Суть линейного криптоанализа проста, если на случайный подбор ключа требуется пару миллионов лет, а тебе лень столько ждать, то можно просто снизить количество вариаций, находя закономерности между зашифрованным и расшифрованным кодом. Самое главное, тут целая куча кода, а значит можно выявить тысячи закономерностей, код почти на блюдечке... Но нет же, твою мать, «он больше по скриптам как-то», аж бесит. Сто раз ему говорил подтянуть знания в криптографии, это же основы основ.
Когда метод криптоанализа найден, дальше – дело техники, вернее скриптов. В левый столбец копируем зашифрованный код, в правый – этот же код, только расшифрованный, а дальше пьём чай и надеемся, что материнка не сгорит к чертям. Хотя, у меня стоит прога, которая отслеживает температуру центрального процессора, так что можно спокойно пить чай. Кстати, надо будет на днях почистить системник...
Переодевшись в свою стандартную домашнюю одежду с парочкой пятен, я заварил чай и вернулся к компу. Моя чудо-прога, к этому времени, выдала ошибку, вот чёрт, совсем забыл... Я же её лет пять не патчил... Ууу... Тогда это надолго, хотя...
– Санёк, у тебя нет актуальной проги для линейного криптоанализа? Мою надо патчить... Надо было, лет 5 назад.