ак я ломал The Bat!, или пароли вампира

Xakep Online -> Журнал, номер #016, стр. 016-048-1

Автор:Vovan aka L0ki (loki@infantry.com) ICQ: 59946949

После огромного количества хвалебных статей "о лучшем мэйлере всех времен и народов" во всевозможных изданиях я набрал пару ведер увесистых булыжников и буду бомбить ими загаженный летучими мышами огород RIT Labs. И пусть не обижаются. В любой бочке меда обязана быть одна (но большая) ложка г... эээ-э-э, дегтя.

Пролог

Ты не задумывался: сколько людей пользуются The Bat!-ом? (Вся редакция Х юзает только The Bat! - прим. ред.) Сколько народу скачивает его с ritlabs.com и громко вопит в fido7.ru.crack: "Дайте мне кряк к Бату!", создают трафик astalavista.box.sk и других поисковых машин?

Много! По словам SideX`а, их добрая треть, а то и половина читателей Х. Удобная вещь: быстро бегает, места мало занимает, наворотов и прибамбасов немеряно. А у тебя, случаем, не Бэт мэйлером работает? И о чем в нем пишешь? А переписочку где хранишь? Где обычно? И не боишься? А-а-а, пароль поставил! Ну, погоди, погоди... Проверим, как ты умеешь хранить тайны...

А началось все с мелочи. Решил как-то разок проверить: можно ли Бату доверять на хранение духовные ценности (CityCat'овский eat.dodbar). Поставил пароль. Дай, думаю, посмотрю: а чего он там делает-то с паролем? Посмотрел. Не прошло и пяти минут, как была написана программка (простейшая, на Паскале), показывающая пароль любого запароленного ящика. Но обо всем по порядку.

Итак, слово обвиняемому - Бату Вампировичу:

"Работая с The Bat!, Вы можете закрыть ваш почтовый ящик паролем, так что никто не сможет прочитать Ваши письма без Вашего разрешения".

Ну да! Так уж и никто! Разрешения еще спрашивать!

Надрежем лобовую кость...

Напомню, что все письма Bat! хранит в файлах, (он их называет базами писем) с расширением .MSB. С них-то я и начал. Сохраняю один из них (ну, например, Inbox\messages.msb) без пароля на ящике с именем ORIG.MSB, потом установил пароль на ящик (его можно было даже не запоминать - настолько нетрудно оказалось его оттуда достать) и сохранил этот же файл с именем CRYPT.MSB.

Сравниваю зашифрованный и незашифрованный .MSB-файл, зорким оком замечаю такие вещи:

1) размер файла не изменился (хороший признак, однако);

2) изменился кусок в заголовке файла (а что же там лежит?);

3) зашифрованное тело письма (а какой смысл хакать пустой файл?).

При этом последовательности символов в оригинальном письме повторяются и в зашифрованном виде. Имеем явно не блочный шифр, т.к. он из повторяющихся строк на выходе ТАКОЕ вытворяет - мать родная не узнает. Да и не подстановочный тоже - в нем строка из одинаковых символов (приличной длины - см. рисунок) на выходе может возникнуть только чудом. Причем с той же позиции. И одинаково во всех письмах. Но другими символами. Допиваю утренний кефир, отставляю чашку в сторону... АГА! ПОПАЛСЯ! Возникла правомерная мысль, что передо мной обыкновенный заезженный XOR по одному байту. И это действительно он!

Ну вот! Теперь он и тебя посчитал!

Значение, которым XORится файл, зависит от пароля. Нужны доказательства? Мне в лом их копать: очень не хочется дизассемблировать EXE мега в 3 длиной. Или перебирать сотни три паролей. Поэтому здесь начинается то, что буржуйские криптологи называют "Known text attack", т.е. "атака по известному тексту" - имеем оригинальный текст, имеем полученный текст, знаем алгоритм - получаем ключ.

Содержание  Вперед на стр. 016-048-2

Выпуски журнала "Xakep"
Журнал Хакер. Содержание номера #001Журнал Хакер. Содержание номера #002Журнал Хакер. Содержание номера #003Журнал Хакер. Содержание номера #004Журнал Хакер. Содержание номера #005Журнал Хакер. Содержание номера #006Журнал Хакер. Содержание номера #007Журнал Хакер. Содержание номера #008Журнал Хакер. Содержание номера #009Журнал Хакер. Содержание номера #010Журнал Хакер. Содержание номера #011Журнал Хакер. Содержание номера #012Журнал Хакер. Содержание номера #013Журнал Хакер. Содержание номера #014Журнал Хакер. Содержание номера #015Журнал Хакер. Содержание номера #016Журнал Хакер. Содержание номера #017Журнал Хакер. Содержание номера #018Журнал Хакер. Содержание номера #019Журнал Хакер. Содержание номера #020Журнал Хакер. Содержание номера #021Журнал Хакер. Содержание номера #022Журнал Хакер. Содержание номера #023Журнал Хакер. Содержание номера #024Журнал Хакер. Содержание номера #025Журнал Хакер. Содержание номера #026Журнал Хакер. Содержание номера #027Журнал Хакер. Содержание номера #028Журнал Хакер. Содержание номера #029Журнал Хакер. Содержание номера #030Журнал Хакер. Содержание номера #031Журнал Хакер. Содержание номера #032Журнал Хакер. Содержание номера #033Журнал Хакер. Содержание номера #034Журнал Хакер. Содержание номера #035Журнал Хакер. Содержание номера #036Журнал Хакер. Содержание номера #037Журнал Хакер. Содержание номера #038Журнал Хакер. Содержание номера #039Журнал Хакер. Содержание номера #040Журнал Хакер. Содержание номера #041Журнал Хакер. Содержание номера #042Журнал Хакер. Содержание номера #043Журнал Хакер. Содержание номера #044Журнал Хакер. Содержание номера #045Журнал Хакер. Содержание номера #046Журнал Хакер. Содержание номера #047Журнал Хакер. Содержание номера #048Журнал Хакер. Содержание номера #049Журнал Хакер. Содержание номера #050Журнал Хакер. Содержание номера #051Журнал Хакер. Содержание номера #052Журнал Хакер. Содержание номера #053Журнал Хакер. Содержание номера #054Журнал Хакер. Содержание номера #055Журнал Хакер. Содержание номера #056Журнал Хакер. Содержание номера #057Журнал Хакер. Содержание номера #058Журнал Хакер. Содержание номера #059Журнал Хакер. Содержание номера #060Журнал Хакер. Содержание номера #061Журнал Хакер. Содержание номера #062Журнал Хакер. Содержание номера #063Журнал Хакер. Содержание номера #064Журнал Хакер. Содержание номера #065Журнал Хакер. Содержание номера #066Журнал Хакер. Содержание номера #067Журнал Хакер. Содержание номера #068Журнал Хакер. Содержание номера #069Журнал Хакер. Содержание номера #070Журнал Хакер. Содержание номера #071Журнал Хакер. Содержание номера #072Журнал Хакер. Содержание номера #073Журнал Хакер. Содержание номера #074Журнал Хакер. Содержание номера #075Журнал Хакер. Содержание номера #076Журнал Хакер. Содержание номера #077Журнал Хакер. Содержание номера #078Журнал Хакер. Содержание номера #079Журнал Хакер. Содержание номера #080Журнал Хакер. Содержание номера #081Журнал Хакер. Содержание номера #082Журнал Хакер. Содержание номера #083Журнал Хакер. Содержание номера #084Журнал Хакер. Содержание номера #085Журнал Хакер. Содержание номера #086Журнал Хакер. Содержание номера #087Журнал Хакер. Содержание номера #088Журнал Хакер. Содержание номера #089Журнал Хакер. Содержание номера #090Журнал Хакер. Содержание номера #091Журнал Хакер. Содержание номера #092Журнал Хакер. Содержание номера #093Журнал Хакер. Содержание номера #094Журнал Хакер. Содержание номера #095Журнал Хакер. Содержание номера #096Журнал Хакер. Содержание номера #097Журнал Хакер. Содержание номера #098Журнал Хакер. Содержание номера #099Журнал Хакер. Содержание номера #100Журнал Хакер. Содержание номера #101Журнал Хакер. Содержание номера #102Журнал Хакер. Содержание номера #103Журнал Хакер. Содержание номера #104Журнал Хакер. Содержание номера #105Журнал Хакер. Содержание номера #106Журнал Хакер. Содержание номера #107Журнал Хакер. Содержание номера #108Журнал Хакер. Содержание номера #109Журнал Хакер. Содержание номера #110Журнал Хакер. Содержание номера #111Журнал Хакер. Содержание номера #112Журнал Хакер. Содержание номера #113Журнал Хакер. Содержание номера #114