Просмотр полной версии : Wert-Scan
Итак, как и обещал - выкладываю последнюю версию своего творения. Умеет блокировать/разблокировать chv коды, выполнять 1 шаг gsm-алгоритма по запросу и (главное!) строить случайные выборки rand-sres.
В следующей версии добавлю сканирование карт v1 (вот только таблицу хорошую для 2R атаки сгенерю). А то под Юникс еще нету таких прог...
Адрес - ftp://ftp.ionb.ru/pub/sim/ws093.rar Пароль на архив - c12dx26a07z29
Для работы нужен модуль Device::SerialPort. Берется на CPAN-е.
Для построения таблицы rand-sres запускать так:
wertscan.pl --port=/dev/ttyS0 --speed=19200 --pin=xxxx --randscan --scancycles=60000 --outfile=./result.tbl
Пока все...
PIC-ador
07.10.2004, 10:08
запускать так:
wertscan.pl --port=/dev/ttyS0 --speed=19200 --pin=xxxx --randscan --scancycles=60000 --outfile=./result.tbl
2 Angelex:
Во-во! Попробуй одной рукой! :D
пароль не фурычет ил архив?
Да...Особые респекты wert`u!!!!!!!!!
Скачал архив, сегодня буду смотреть...
Спасибо!:)
PS.Куски твоего кода использовать в своих прогах не буду:)) Обещаю!:))))
Не знаю что у тебя фу рычит но у меня нет, качаю архив, размер
архива 4,07 КБ разворачиваю, а мне выдает " неправильный пароль"
WinRAR 3.30 У МЕНЯ.
Размер архива 4172 байта. Все нормально разворачивается (уже куча народу скачала). Почему с паролем - так это просто. Иначе много кому не надо стянут :)
Что касается кода - используйте где хотите - я копирайтов (пока) не ставлю. Только не выдавайте за свое :)
А что там за архивчик в одной директории с сабжем? И открывается тем же паролем.
А догадаться сложно? Это программный эмулятор работы алгоритма v1. Просто с С переписан на Перл...
Да..Если с паролем разобраться сложно, то нефиг его вобще качать:))
А лучше было бы bzip2 упаковать и желатьельно пару байтов в заголовке поменять, чтобы уже ламеру было не достаь(я так обычно делаю):)...
Android_ID
08.10.2004, 17:15
Вот что мне пишет прога, я скачал SerialPort.pm, засунул его в папку lib и запустил
D:\Perl\ws093>wertscan.pl --port=/dev/ttyS0 --speed=19200 --pin=1234 --randscan --scancycles=60000 --outfile=./result.tbl
Вот что мне пишет прога:
Can't locate loadable object for module Device::SerialPort in @INC (@INC contain
s: D:/Perl/lib D:/Perl/site/lib .) at D:\Perl\ws093\wertscan.pl line 4
Compilation failed in require at D:\Perl\ws093\wertscan.pl line 4.
BEGIN failed--compilation aborted at D:\Perl\ws093\wertscan.pl line 4.
В чем может быть проблема?
У меня Active Perl 5 с копейками.
Может руки кривые?
Вообще я плохо знаю *NIX
Гы. По ActiveState ничем не помогу - я его не использую. Но что-то мне подсказывает, что модули в ActiveState свои и ставятся они не так. Вобщем, смотри доку по ActiveState Perl ;-)
вот за это я терпеть не могу Уникс.... хотя все время пользуюсь...
Ворон, так ты и Уникс используешь? ;-)
Ну и пакостное же это занятие - таблицы для 2R-атаки генерить. Я уже заколебался...
Какую гадость я только не использую....а люблю только Винду...
Сгенеришь таблицу хоть на элемент меньше моей, считай себя моим Гуру :)
Android_ID
27.10.2004, 22:47
Поставили все что нада, и вот че выдает перл:
D:\Perl\ws093>perl wertscan.pl --port=/dev/ttyS0 --speed=19200 --pin=9724 --rand
WERT Sim-Card Scanner. Version 0.9.3-20041006.
Using device : /dev/ttyS0 (use --port for change)
Using speed : 19200 (use --speed for change)
Can't locate object method "new" via package "win32::SerialPort" (perhaps you fo
rgot to load "win32::SerialPort"?) at wertscan.pl line 539, <DATA> line 164.
Вопрос такой:
dev/ttyS0 - Это никсовое обращение к порту... Навреняка на винде это выглядит както не так :) Или все предусмотрено???
Помогите плз, потому как нада разобраться с этой софтиной :)
Гы. Ясное дело, что /dev/ttyS0 - это юникс. А вот в Винде похоже надо написать как-то иначе ;) Только дело в том, что я не использую винду уже много лет, поэтому не могу подсказать.
Кто спецы по ActiveState Perl - подскажите человеку!!!
ЗЫ. У меня складывается впечатление, что минимальный размер таблицы 2R - 31076. Но вот достичь этого минимума пока не получается :(
У меня на FreeBSD оно тоже не пашет...Оно открывает порт, дерет атр, и потом безконечно читает тупо ноли(из порта)...Отрубал echo - читает атр и молчит...Исходник я не копал, только пкть к лок-файлу и к девайсу изменил и дебаг включил...Просто FreeBSD немного по-иному с терминалами работает...
Вот пишу сейчас свою прогу(на C), пока что она ничего не делает..только проверяет пин, читает разную дрян с файловой системы(IMSI,ICCID,....),выполняет gsm-алгоритм....Типо Пока так, протокол учю :)
У меня складывается впечатление, что минимальный размер таблицы 2R - 31076.
Сильная фраза.... а обосновать можешь?
И кроме того...как быть тогда с тем что в моей таблице 31044 элемента?
Круто! Значит я ошибся. Мне почему-то казалось, что у тебя 31088. Ну ладно, буду знать...
А обоснование следующее - я построил двудольный граф (одна доля - пары из ki, а другая - пары подбора). А теперь на этом графе пытаюсь найти такое максимальное подмножество ребер, выкидывая которые мы не получим в первой доли вершин со степенью меньше 2. (+еще пару хитрых условий) О как! Но дело не в этом, дело в том, что я придумал 4 разных алгоритма и все из них сходятся к числу 31076, вот только сходятся медленно, то есть чем ближе - тем больше времени надо...
ЗЫ. Пошел думать над новым алгоритмом ;)
По поводу FreeBSD - у меня под Фрей прога работает ;-) Проблема скорее всего в несогласованности скорости интерфейса и карточки (именно в этом случае я наблюдал похожие симптомы)...
Проблема скорее всего в несогласованности скорости интерфейса и карточки (именно в этом случае я наблюдал похожие симптомы)...
У меня кварц 3.5,те скорость 9600..в твоей я менял(у тебя,по моему, 19200 было)....
Но моя прога работает...Не знаю,короче:)
А у тебя какая операционка? Судя по ttyS0 - Linux:)?
У меня FreeBSD-4.10.. 5ых не люблю...
Android_ID
29.10.2004, 11:22
У меня на FreeBSD оно тоже не пашет...Оно открывает порт, дерет атр, и потом безконечно читает тупо ноли(из порта)...Отрубал echo - читает атр и молчит...Исходник я не копал, только пкть к лок-файлу и к девайсу изменил и дебаг включил...Просто FreeBSD немного по-иному с терминалами работает...
Вот пишу сейчас свою прогу(на C), пока что она ничего не делает..только проверяет пин, читает разную дрян с файловой системы(IMSI,ICCID,....),выполняет gsm-алгоритм....Типо Пока так, протокол учю :)
Портировать на win32 нет возможности? А то я не очень дружу с никсами!
У меня Линукс. Портировать я думаю можно, кто хочет - попробуйте. А лучше (я советую) - посмотрите в исходник и пишите свои!!! Это самый лучший путь! ;)
сегодня вечером выложу свое барахло и пдф`ку с описанием комманд симки..Может кому-то и надо:)
А лучше (я советую) - посмотрите в исходник и пишите свои!!! Это самый лучший путь!
Это 100%!!! :) :}
Карта представляет собой удаленный компьютер с которым мы общаемся ТОЛЬКО через последовательный интерфейс по спец. протоколу (gsm11.11). А общаясь только через com-порт очень тяжело искать глюки. Например, по моему опыту на любую недокументированную команду карта отвечает - "Инструкция не поддерживается" (кроме административных команд, но их мы выполнить не можем - надо код доступа).
PIC-ador
01.11.2004, 09:55
с которым мы общаемся ТОЛЬКО через последовательный интерфейс по спец. протоколу (gsm11.11).
Не совсем так. Протокол общий для смарткарт. GSM 11.11 описывает же систему команд для симкарт.
Согласен ;) Но речь идет о СИМ-картах. Опять же я ни разу не видел карт у которых протокол был бы отличным от T0. Хотя, говорят, бывают...
А вот и я :-) извиняюсь, что не вовремя - GPRS не пахал почему-то...
Выкладываю свой хлам...
По поводу for(i=0;i<x;i++)read(d,buf[i],1);...так вот read(d,buf,x); не работает!..аналогично и с write... Не знаю почему,но не работает..читает 4 байта и отцепляется от интрфейса, как будто все считал...
К стати,-дизасемблил кардинал, так там тоже сделано через цыкл...
Вроде все сказал.. :)
Пока что все..будем двигать дальше... :-)
А, кстати может и есть какие-то дыры в симках :))
На пример, как в виндах NT на 135 порту :)))))))
Только вот правда, как их найти через ком порт?...
По поводу циклов. Ясное дело, что не читает за 1 проход! Посмотри внимательно отличие T0 от T1. На то он и T0, чтобы по байтику читать ;)
PIC-ador
02.11.2004, 15:31
А у них, как ни странно - есть проц, или не так? В этом проце есть точка перехода, может как-то всеже можно сделать так, чтобы данные с началом желаний совпали с точкой пехода в памяти проца? может тогда получится почитать, что не читается?
На карте всего пару десятков команд. Проверит их на валидность, как два пальца...
Допустим, карта не проверяет корректность длины команды, и все принимает в буфер, а затем разбирается. Тогда в принципе возможна сутуевина, с переполнением буфера и налезанием наших данных куда-то… соответственно эти данные должны быть поняты процом карты. Отсюда вывод – изучать систему команд процессора карты.
А вот и я :-) извиняюсь, что не вовремя - GPRS не пахал почему-то...
Выкладываю свой хлам...
По поводу for(i=0;i<x;i++)read(d,buf[i],1);...так вот read(d,buf,x); не работает!..аналогично и с write... Не знаю почему,но не работает..читает 4 байта и отцепляется от интрфейса, как будто все считал...
К стати,-дизасемблил кардинал, так там тоже сделано через цыкл...
Вроде все сказал.. :)
Пока что все..будем двигать дальше... :-)
А что в архиве?
А что в архиве?
Primer raboty s simkoj...napisano C..testilos` v FreeBSD-4.10..
Vot tak vot:)
PIC-ador
02.11.2004, 22:10
Выкладываю свой хлам...
:( А scan то где?
Скоро будет..Запарка над таблицей :)
PIC-ador
02.11.2004, 23:01
Запарка над таблицей
Да фиг с ней с таблицей. Алгоритмы давай! :D
Запарка над таблицей
Да фиг с ней с таблицей. Алгоритмы давай! :D
А я их попробую в Нокию впихнуть :) :)
Как это фиг с ней с таблицей - это самое важное!!! Я придумал таки 5-й алгоритм генерации таблицы, но ничего хорошего из этого не вышло... Теперь придумываю шестой ;)
Да фиг с ней с таблицей. Алгоритмы давай!
Да действительно, ето же самое главное! Уже сказали....
Прога будет полностю готова через пару дней,..выложу..а вот таблица будет не знаю когда...может ктото сам генернет раньше меня :))
Или с воронскана сдерет и будет под ункс юзать :)
Но мне что-то не охота,хочу свою :)
А я их попробую в Нокию впихнуть
А таблица влезет? ;)
PIC-ador
03.11.2004, 10:25
Я придумал таки 5-й алгоритм генерации таблицы, но ничего хорошего из этого не вышло... Теперь придумываю шестой
... а у Dejan'а всего за несколько часов. :D
За сдирание чего либо с Ворона, можно и по голове получить. Поосторожнее с идеями.
Ха..нтересно...Дело в том, что исходников Ворона у нас нету и кто докажет, что мы содрали с Ворона что-то?
Я придумал таки 5-й алгоритм генерации таблицы, но ничего хорошего из этого не вышло... Теперь придумываю шестой
... а у Dejan'а всего за несколько часов. :D
У Диджиана она не оптимальна...
Во-первых, у Dejan-а элементов больше, во-вторых - никто не говорит что у Ворона - оптимальная таблица (нет доказательств того, что она наименьшая, хотя пока нет и опровержений).
ЗЫ. А то, что таблица взята из Ворона очень просто доказать - в ней будет 31044 элемента ;-))))
PIC-ador
03.11.2004, 13:43
очень просто доказать - в ней будет 31044 элемента
Не факт! А если в ней несколько других пар?
У Диджиана она не оптимальна...
:D Но генерится же быстро! А пара лишних десятков запросов погоды не делает.
PIC-ador
03.11.2004, 14:10
Дело в том, что исходников Ворона у нас нету и кто докажет, что мы содрали с Ворона что-то?
А причем тут исходники? Поставь на порт логер, задай не коллизионную пару …и вся таблица у тебя в логе.
Но …
можно и по голове получить
Константин
03.11.2004, 14:12
Красиво сказал.. :)
Слушай, у тебя дело случаем не двигается с дополнительной галочкой в конфигураторе? Помнишь, был разговор об имени сети?
PIC-ador
03.11.2004, 14:26
Помнишь, был разговор об имени сети?
Да будет. Но потом... Переделывать конфигуратор из-за одной птички, чтоб потом еще раз как-то не хочется. Сейчас поддался повальному увлечению сим-сканом. :D Писать симки из программатора уже могу, не хватает только сканера. Сейчас застрял на 4R-атаке. Все остальные (2R, 3R, 5R) как-то вроде без проблем. А тут затык… :(
Константин
03.11.2004, 15:05
Ну, успехов!
Терпеливо ждём.
Всем привет...
Вот таблица для 2R атаки ...
То Пикадор>
раз уж такое повальное увлечение сканированием, то может откроешь топик теории сканирования, как я делал в свое время :) Будем обсуждать, славо богу народ теперь подкованный... а то у меня тогда сплошной монолог вышел ....
PIC-ador
04.11.2004, 20:21
То Ворон>
Как только разберусь с 4R!
А таблица прям как из лога. :D
Как только разберусь с 4R!
А таблица прям как из лога.
Дык такой она и должна быть ..в оптимальном виде...
Нет, можно было конечно выложить в отсортированном виде по возрастанию (убыванию), но это не будет неэффективно... :)
... а у Dejan'а всего за несколько часов
А здесь чего то путаете... дежановская таблица это par3.bin и она идет в готовом виде...
А генерится у него par2.bin ,правда не знаю для чего ....либо для какой нибудь из атак, либо (скорее всего) для Стронг КИ...
PIC-ador
05.11.2004, 00:16
А генерится у него par2.bin ,правда не знаю для чего
Возможно.
Проверил твою 2R таблицу. :D и увидел что у тебя счетчик A3A8 врет, показывает на одно обращение меньше, чем на самом деле. :(
Может ты где-то пару потерял?
messenger
05.11.2004, 00:28
То Ворон:
Скажите, а что, собственно, Стронг Ки Деджана из себя представляет? :?:
Проверил твою 2R таблицу. и увидел что у тебя счетчик A3A8 врет, показывает на одно обращение меньше, чем на самом деле.
Может ты где-то пару потерял?
Это навернов я так очки втираю...мол обрашения экономлю :mrgreen:
PIC-ador
05.11.2004, 09:52
Это навернов я так очки втираю...мол обрашения экономлю
...не. Наверное Break из цикла делаешь, а счетчик в цикле явл. счетчиком обращений. :?:
Ого как все двигается! :))
Сегодня вечером буду разбирать эту таблицу...:)
Ворон, спасибо за таблицу! Но я не оставляю попыток сделать меньше!!! (А вдруг получится)...
ЗЫ. Сегодня прикручу эту таблицу к своей 2R-атаке ;-)
Но я не оставляю попыток сделать меньше!!! (А вдруг получится)...
Я тоже на это надеюсь...
PIC-ador
05.11.2004, 16:07
Но я не оставляю попыток сделать меньше!!! (А вдруг получится)...
Это возможно только имея СВОЮ таблицу!
Из готовой таблицы сделать лучшую нельзя, иначе бы Ворон сам ее сделал. Это очевидно. Я же создаю алгоритмы, которые пытаются сгенерить таблицу с минимумом элементов из полного набора карты коллизий. В данном случае результат может быть (а может и не быть).
ЗЫ. И вообще - для нахождения минимальной таблицы надо всего-то ;) перебрать 2 в ~192000 степени вариантов...
Из готовой таблицы сделать лучшую нельзя, иначе бы Ворон сам ее сделал. Это очевидно.
И из чего же это очевидно? Мне лично это не очевидно...
Я не знаю можно ли сделать меньше... но и доказательста обратного нету...
PIC-ador
05.11.2004, 17:17
Мне лично это не очевидно...
Да я толком не знаю как у тебя пары лежат. Хотя бы по этому.
Hotlom, а я из Ворона ничего по частям не вытаскиваю... Я вообще-то ни одного алгоритма еще ни у кого не попросил ж-) (Я сам дошел до алгоритмов всех атак). Но вот задача с минимальной таблицей мне показалась интересной, так как пока машины подбирают неколлизионные таблицы для v2 надо что-то делать. Вот поэтому я и пытаюсь найти такую таблицу... Будет реальный результат по v2 - брошу я эту 2R, так как карты v1 хорошо сканятся и Вороном...
Слушай,Wert. А что тебе дадут ети таблицы RAND - SRESKc ?
Разтолкуй забитому в GSMных делах чайнику :))
А я их попробую в Нокию впихнуть
А таблица влезет? ;)
Главное чтобы все меньше метра занимало в скомпилированном виде, в идеале - 200 килобайт (тогда и телефон как телефон будет работать).
unixoid, ну это просто. Так как я пока не знаю как надо будет проводить атаку на v2, то для проверки появляющихся идей нужны будут варианты подбора. А где лучше всего искать варианты? Конечно же в случайном наборе данных... И чем больше этот набор, тем лучше...
PIC-ador
07.11.2004, 20:43
Я же создаю алгоритмы, которые пытаются сгенерить таблицу с минимумом элементов из полного набора карты коллизий.
А полный набор у тебя есть? (там более 295 тыс.)
Я вообще-то ни одного алгоритма еще ни у кого не попросил ж-) (Я сам дошел до алгоритмов всех атак).
А как тебе это удалось? Сколько сидел?
P.S. А я симскан дизасемблил :))
PIC-ador, полный набор я построил в первую очередь (просто перебрав все 65536 вариантов для каждого из 65536 пар ki). То есть 2 в 32-й степени вариантов. На Атлоне-2000 прошло за 1.5 дня.
unixoid, я взял исходник comp128v1 (ну это наверное у всех есть). И стал думать. Общее время думания составило где-то недели 2 (по вечерам и ночам). Просто для меня - это не первая встреча с криптоанализом (я и раньше подобными вещами занимался).
Понатно...
Исходник у всех есть :)))
Я даже пыталсяа его в голове прокрутить :)) но там такая куча вложенных циклов и такие закрученые формулы, что крыша едет :D
PIC-ador
08.11.2004, 11:34
полный набор я построил в первую очередь (просто перебрав все 65536 вариантов для каждого из 65536 пар ki). То есть 2 в 32-й степени вариантов. На Атлоне-2000 прошло за 1.5 дня.
Это пример как делать НЕ НАДО! :D У меня все генерится менее 10 минут. И никаких переборов.
ЗЫ. Правда в первый раз я тоже на эти грабли наступил. :(
Может так делать и не надо, но есть такое правило "Машина должна работать, а человек - думать". И если то, что мне нужно для думания генерится за приемлемое для меня время, то пусть себе генерится, а я вместо того, чтобы улучшать этот алгоритм генерации буду над чем-нибудь другим думать. О как! (надеюсь понятно изложил).
ЗЫ. А тот перебор вообще не Перле был написан ;) (за 5 минут).
PIC-ador
09.11.2004, 10:00
:) Ну ладно не кипятись. Просто полтора дня для меня время неприемлимое.
Дык все равно один раз нужно было генерить...какая разница скока времени.... главное потом сохранить ..чтоб опять не генерить....
или могли бы просто сказать я бы выложил весь файл., чтоб попусту время не теряли (говорю попусту, ибо идеи глубокомысленной в переборе 65 тыс. по 65 тыс немного :) )
Тут главное , чтоб из полученной таблицы все лишнее выкинуть...
Вот тут вся идея и проявляется...
П.С. кстати насчет 1.5 часа и 10 минут... я так думаю Wert гонял весь алгоритм, в то время как ПИК-адор вычислял сразу 4 байта результата после второго раунда из 4 исходных байтов (2 Ки и 2 SRAND)
раз уж такое повальное увлечение сканированием, то может откроешь топик теории сканирования, как я делал в свое время :) Будем обсуждать, славо богу народ теперь подкованный... а то у меня тогда сплошной монолог вышел ....
Давайте! Мне тоже интересно :)
PIC-ador
09.11.2004, 12:14
П.С. кстати насчет 1.5 часа и 10 минут...
Заметим, что не полтора часа, а полтора дня против десяти минут. :D
Итак:
Ворону не нужно объяснять, что такое коллизия? Вот из этого я и исходил.
Все делается в три этапа:
1. ТОЛЬКО для ДВУХ (не четырех) связанных байт вычисляются все возможные значения выхода при разных входных на первом раунде. В памяти строится таблица размером 64к, где индекс к строке и есть собственно значение выхода, а строка содержит число пар и сами пары (у меня оформлено как структура). Она будет заполнена где-то на ¾.
2. Тоже самое делаем только для второго раунда (там таблица будет заполнена только на ¼ )
3. Далее цикл уже для всей четверки байт. Переменные цикла индексы ко второй таблице. Из нее получаем индексы для первой (не забывая, о том, что связка байт изменилась). И на выходе уже собираем пары в кучку.
PIC-ador
09.11.2004, 12:27
в то время как ПИК-адор вычислял сразу 4 байта результата после второго раунда из 4 исходных байтов (2 Ки и 2 SRAND)
Кстати, тоже вариант. Хотя в памяти уже не разместить такую таблицу!
насчет 1.5 часов опечатка конечно....1.5 дня имелось ввиду
А насчет разместить в памяти... хм.. всего получается около 300 тысяч. коллизионных пар... умножаем на 6 (каждой паре KI по две коллизионные пары), итого 1.8мегабайт.... спокойно размещается...
PIC-ador
09.11.2004, 18:55
2 Ворон>
Хотя в памяти уже не разместить такую таблицу!
Ошибся я, ничего там не надо размещать. По сути ты сказал правильно.
Из четырех байт на выходе я получаю N пар на входе.
Да это все понятно. Но как уже было сказано - надо-то ведь 1 раз! Далее этот файлик лежит себе и лежит ;)
А что касается алгоритма - я тоже запускал только 2 раунда шифрования. Просто Перл ко всему прочему медленный язык (интерпретатор) и использовал я не массивы, а хэши - с ними удобнее ;)
....запускать так:
wertscan.pl.....
[root@localhost Wert-Scan]# perl wertscan.pl --port=/dev/ttyS0 --speed=19200 --pin=1234 --randscan --scancycles=60000 --outfile=./result.tbl
WERT Sim-Card Scanner. Version 0.9.3-20041006.
Using device : /dev/ttyS0 (use --port for change)
Using speed : 19200 (use --speed for change)
->ATR : 3B 3C E5 00 4B 31 25 F2 10 09 03 94 83 83 90 00
---------------------------------------
-|-> A0 A4 00 00 02
-|- 5 bytes wrote
-|<-
-|- 0 bytes readed
-|- ERR:ERR_READ_SIGN_ECHO
ERROR! Cannot select DF_GSM (7F.20)!!! (ERR_READ_SIGN_ECHO)
имеем
[root@localhost root]# uname --all
Linux localhost.localdomain 2.4.26-std-up-alt5 #1 Mon Jun 28 21:59:23 MSD 2004 i686 GNU/Linux
[root@localhost root]# setserial -abGv /dev/ttyS0
/dev/ttyS0 uart 16550A port 0x03f8 irq 4 baud_base 115200 spd_normal
Чего-то не пойму, чего ему не хватает? (7F.20) - это что?
7F20 это DF.GSM...Посмотри описание симок(я в соседнем топике ложил) и все поймешь...
А подобная бадяга у меня была с FreeBSD..но я не стал разбиратся..облом,и так работы хватает...
А у тебя всего скорее проблемма с портом..Какой у тебя ридер? Может он 19200 не держит? попробуй поставь 9600...
PS. Tы явно Ctrl+C Ctrl+V делал :)))))))))))))))))
O. Разтолкуйте мне,plz, o раундах шифрования...Что они вобще собой представляют? и как их "увидеть" в том алго(v1)? Сегодня пол дня сидел, не мог додуть..:(
Вот, допустим, мне нужно узнать выход(32 байта,я так понял?) на втором раунде
для ранда 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
и KI 01 FF FF FF FF FF FF FF 02 FF FF FF FF FF FF FF ...
Как его вычислить?
Ну это просто.
1-й раунд - используются байты i, i+16 и таблица table0.
2-й райнд - используются байты i,i+8 и таблица table1.
Замечание - под раундами мы понимаем именно шифрование по таблицам, а НЕ полные циклы (которых там 8). Ибо, если после 2-го раунда результаты получились одинаковые, то дальше на выходе они тоже будут одинаковые.
Ясно?
ЗЫ. А симка не отвечает скорее всего из-за несогласованности скорости порта и карты. А еще может интерфес без эха?
Нет. Не ясно....:(
Tы лучше расскажи как узнать выход(32 байта,я так понял?) на втором раунде..На пример есть ранд 02 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 и KI 00 FF FF FF FF FF FF FF 01 FF FF FF FF FF FF FF ...
Я так сразу пойму....
Блин. Ну это же долго расписывать. Ну вот смотри: сначала строим 32-х байтовый массив R вида KI-RAND.
Далее (1-й раунд) - берем 0-й байт (00) и 16-й байт (02). По таблице 0 перевычисляем новые значения 0-го и 16-го байта (R[0]n=Table0[(R[0]+2*R[16]) and 1FF], R[16]n=Table0[(2*R[0]+R[16]) and 1FF]). Аналогично для оставшихся 15-ти пар (1-17, 2-18,...,15-31).
Далее (2-й раунд) - берем 0-й байт (уже новое значение!) и 8-й байт. Делаем аналогично - R[0]n=Table1[(R[0]+2*R[8]) and 0FF], R[8]n=Table1[(2*R[0]+R[8]) and 0FF]. Аналогично для оставшихся 15-ти пар (1-9,2-10,...,7-15,16-24,..,23-31).
Ясно? Подробнее уже некуда.
...ЗЫ. А симка не отвечает скорее всего из-за несогласованности скорости порта и карты. А еще может интерфес без эха?
Согласен, плюс, как оказалось, права на порт и его групповая принадлежность. Но менять не хочу. Под эмулятором wine sim_scan 2.1 работает, и с портом и картой порядок. Какой дистр порекомендуем?
... подобная бадяга у меня была с FreeBSD..но я не стал разбиратся..облом...
У меня ALT-linux. А под каким дистрибутивом завелось ?
У меня (как у автора) - LFS. Хотя работать будет под чем угодно, лишь бы был perl5 и права на порт (я от рута пускал).
Konechno zhe ponyatno! Kuda uzhe podrobnee :) Spasibo!
__________
А вот выкладываю Wert-Scan под wIndoW$. Файлы генерит такие, как и оригинальный Wert-scan...
Пример запуска:
wertscan -d COM2 -r out.tbl -l 65536
Help:
wertscan -? или просто wertscan
Писал под чутким руководством Hotlom`a :)
Спасибо ему большое за инфу!
PS.Написано эт овсе было под FreeBSD....А здесь просто портировано под M$..так что, если будут глюки - пишите..
ты бы хоть абревиатуру другую использовал... а то WS ... путаница будет...
И еще...
Известно, что для 3R атаки нам нужны 2 пары (0,8 ) RAND, при которых для известных 0,8 байтов KI результаты (0,8,16,24) на втором раунде отличаются первым байтом...Но...таких четверок то дофига, а подходит только одна...Вот и не могу догнать, как вычислить именно ту, которая нужна....Я же не буду скармливать каждую (0,8 )RAND1 и (0,8 )RAND2 карте меняя 12 байт ранда от 0 до FF...это же запросов.....
Подскажите плз, как быть...
PIC-ador
18.11.2004, 17:23
Но...таких четверок то дофига, а подходит только одна...
... и не только для 3R! Для 4R и 5R их тоже до фига. :D
И еще...
Известно, что для 3R атаки нам нужны 2 пары (0,8 ) RAND, при которых для известных 0,8 байтов KI результаты (0,8,16,24) на втором раунде отличаются первым байтом...
Необязательно первым ..любым из четырех...
...Но...таких четверок то дофига, а подходит только одна...Вот и не могу догнать, как вычислить именно ту, которая нужна....
байт номер 0 и 4 на третьем раунде формируются из байтов 0 и 4 на втором раунде.. таким образом из байтов, которыми отличаются четверки на втором роунде (назовем их Х1 и Х2, и пусть это будут первые байты т.е. 0 ) и байта номер 4 (назовем его Y), должны получаться одинаковые значения на третьем роунде...
говоря конкретнее из Х1Y (0,4) и Х2Y (0,4) на втором роунде, должны получится одинаковые (0,4) на третьем роунде...
Байт 4 (Y) на втором роунде легко подогнать, варьируя любой из байтов (4,12) RANDa...
Спасибо большое!!! Все сделал, работает! ;) :D
Теперь буду делать 4R..... :wink:
Ну вот видишь - коллективный разум помог, как всегда! Кстати, самая неприятная атака - это 5R ;-)
У меня вопрос к Ворону - а последовательность элементов в твоей таблице 2R - случайная? Или есть закономерность? Мне вот пришло в голову отсортировать таблицу по частоте встречаимости в коллизиях (по убыванию). Тогда вероятность подбора пары в начале атаки больше, чем просто отношение числа проверенных пар к общему...
У меня вопрос к Ворону - а последовательность элементов в твоей таблице 2R - случайная?
Нет конечно... отсортировано по частоте встречаемости в коллизиях :mrgreen:
Ок. Хорошие идеи иногда приходят и в самую дурную голову ;) Это я так самокритично ;)
2 unixoid Пытання!!
Портированный на винду WertScan выдает на всех опробованных мною машинах:
ATTR: 3B A 21 0 5 22
Error selecting 3F00 (MF)!
Ты просил писать если будут глюки, вот я и пишу :))
Похоже на глюк со скоростю порта...Ты какую скорость ставил? Какая скорость у твоего ридера? Какую скорость ставишь, когда юзаешь другие проги?
Дело в том, что я не умел работать с портом в винде и содрал все с СимСкана..Попробуй в СимСкане те свои карты...Если будет подобный глюк - тогда буду копаться в инете, искать другие решения...Если будет пахать, значит что-то не досмотрел..поправим тогда..
Скоро выйдет версия 1.0 оригинального Wert-Scan-а. Написана в двух вариантах - на Перле и на Паскале (FPC). Так вот FPC-шная версия уже сейчас запросто собирается и работает ОДИНАКОВО и под Линухом и под Виндой.