avva: (Default)
[personal profile] avva
Придумал сюжет для криптофантастического романа или повести. Точнее, не сюжет даже, а завязку.

Сидит хакер, взламывает какую-то программу (игрушку, скажем, но необязательно). В программе есть проверка серийного номера. Он ищет то место внутри программы, где эта проверка происходит, чтобы её отключить. Находит функцию, которая получает строку серийного номера (достаточно длинного) и проверяет, является ли он правильным.


Смотрит внутрь этой функции, видит: там что-то вычисляется, странное и сложное. Разбираться, что именно, чтобы написать генератор номеров, лень, там куча каких-то битовых операций неясных в цикле. С другой стороны, никаких подвохов в виде проверки контрольной суммы вычисляющего кода, или побочных эффектов функции, или других проверок в других местах, вроде бы не видно. Обрадовавшись, что всё оказалось так просто, он быстро забивает код функции, чтобы она всегда возращала истинность проверки, готовит патч, перепроверяет с ним — вроде бы всё работает, программа принимает любой серийный номер без проблем — и отсылает патч по стандартным своим каналам дистрибуции. Работа сделана.

Но что-то продолжает его беспокоить, почему-то он всё время возвращается мысленно к коду этой функции. Что-то там было знакомое, хоть даже и в ассемблере... В конце концов через пару дней он открывает опять пропущенный через дизассемблер код программы, находит эту функцию, читает внимательно, тщательно выписывает, что она делает с серийным номером, мучительно пытается вспомнить, где он это видел. Наконец срывается с места, прыгает к книжной полке, хватает изрядно потрёпанное второе издание Applied Cryptography и быстро находит в нём обсуждение MD5. Да, не может быть никаких сомнений! Загадочная функция проверки серийного номера попросту пропускает его через MD5, и сравнивает после этого с фиксированным 128-битным числом. Более того, числом этим оказывается 0x0123456789ABCDEFFEDCBA9876543210 . Герой откладывает книгу в сторону и надолго задумывается, облокотившись на клавиатуру и уставив невидящий взгляд в горящие на мониторе строки ассемблерных команд, составляющих функцию проверки серийного номера...

Date: 2003-11-23 07:10 am (UTC)
From: [identity profile] med99.livejournal.com
ничего в этом не понимаю, но заинтригован.
у этой программы есть подсознание? она знает смысл жизни?

Date: 2003-11-23 07:18 am (UTC)
From: [identity profile] oblomov-jerusal.livejournal.com
Эта программа сама по себе вполне банальна. Вот ее ПРОИЗВОДИТЕЛЬ - кто-то очень интересный.

(no subject)

From: [identity profile] med99.livejournal.com - Date: 2003-11-23 07:24 am (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2003-11-23 07:27 am (UTC) - Expand

(no subject)

From: [identity profile] med99.livejournal.com - Date: 2003-11-23 07:29 am (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2003-11-23 07:30 am (UTC) - Expand

(no subject)

From: [identity profile] oblomov-jerusal.livejournal.com - Date: 2003-11-23 07:33 am (UTC) - Expand

Date: 2003-11-23 07:12 am (UTC)
From: [identity profile] dimrub.livejournal.com
Неинтересно, потому как банально: 90% защит работают именно так, или еще проще. Кстати, 128 бит = 16 байт, а число, с которым сравнивают, поболе будет.

Date: 2003-11-23 07:16 am (UTC)
From: [identity profile] dimrub.livejournal.com
Да, а Шнайер, разумеется, рулез. Я как-то был на его лекции. Умеет говорить чувак, ну и писать, разумеется, тоже.

Date: 2003-11-23 08:53 am (UTC)
From: (Anonymous)
Число, с которым сравнивают (0x0123456789ABCDEFFEDCBA9876543210),- 121-битовое.

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2003-11-23 08:56 am (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2003-11-23 09:05 am (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2003-11-23 09:20 am (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2003-11-23 10:37 am (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2003-11-23 10:38 am (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2003-11-23 11:28 am (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2003-11-23 11:30 am (UTC) - Expand

(no subject)

From: [identity profile] qth.livejournal.com - Date: 2003-11-23 12:03 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2003-11-23 12:10 pm (UTC) - Expand

(no subject)

From: [identity profile] qth.livejournal.com - Date: 2003-11-23 12:43 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2003-11-23 12:52 pm (UTC) - Expand

(no subject)

From: [identity profile] qth.livejournal.com - Date: 2003-11-23 01:07 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2003-11-23 01:46 pm (UTC) - Expand

(no subject)

From: [identity profile] qth.livejournal.com - Date: 2003-11-23 02:58 pm (UTC) - Expand

(no subject)

From: [identity profile] qth.livejournal.com - Date: 2003-11-23 03:10 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2003-11-23 03:24 pm (UTC) - Expand

(no subject)

From: [identity profile] qth.livejournal.com - Date: 2003-11-23 03:30 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2003-11-23 03:34 pm (UTC) - Expand

Ну...

Date: 2003-11-23 07:21 am (UTC)
From: [identity profile] pargentum.livejournal.com
Ну научились чуваки генерить номера с заранее известным MD5. И что дальше?

Не вдохновляет как-то, на мой непросвещенный взгляд.

Re: Ну...

Date: 2003-11-23 07:24 am (UTC)
From: [identity profile] dimrub.livejournal.com
Аааа... Теперь понял :))). Ну я тупой.

Да, действительно, забавно. Но и действительно не вдохновляет.

Re: Ну...

Date: 2003-11-23 08:14 am (UTC)
From: [identity profile] ex-egle611.livejournal.com
Или дают всем один и тот же serial number. Это мне, почему-то, сразу же в голову пришло. Хотя, если программа серьезная, то вряд ли, конечно.

Зря я это

From: [identity profile] ex-egle611.livejournal.com - Date: 2003-11-23 08:16 am (UTC) - Expand

Re: Ну...

Date: 2003-11-23 11:25 am (UTC)
From: [identity profile] avva.livejournal.com
Ну что ж, не вдохновляет так не вдохновляет ;)

Но это завязка, она и не должна быть слишком фантастической.

Продолжения сюжета возможны разные.

Re: Ну...

Date: 2003-11-24 02:57 am (UTC)
nine_k: A stream of colors expanding from brain (Default)
From: [personal profile] nine_k
И как, интересно?
Притом ещё с таким вот изящным номером?

Чуваки могут быть, разумеется, не потусторонние, но, imho, всё равно обладающие некторым нетривиальным знанием.

Date: 2003-11-23 08:12 am (UTC)
From: [identity profile] angerona.livejournal.com
И все равно это не докажет P = NP :)

Date: 2003-11-23 08:30 am (UTC)
From: [identity profile] egmg.livejournal.com
я мало чего поняла, но это вписывается в формат [livejournal.com profile] ekphrasisa, можно туда тиснуть?

(no subject)

From: [identity profile] egmg.livejournal.com - Date: 2003-11-23 09:18 am (UTC) - Expand

Date: 2003-11-23 08:58 am (UTC)
From: [identity profile] thekonst.livejournal.com
Да это просто фильм ужасов.

Date: 2003-11-23 10:26 am (UTC)
From: [identity profile] robinbobin.livejournal.com
fignya... nikto nikogda ne izuchaet function generazii serial ###.

ee prosto zovut i vse...

1 raz mne popalas' takaya function, kotoroya uzala kuchu vsego iz programmy. vylechilos' prosto.

moj kraker delal LoadLibrary ("SuperSecret.dll");
GetProcAddress ( "MakeCoolSerialNumber");
call tuda...

MessageBox ( "Serial num for ur name is", to sho ono tam v buffer vernula...);

ready.

Date: 2003-11-23 10:31 am (UTC)
From: [identity profile] avva.livejournal.com
fignya... nikto nikogda ne izuchaet function generazii serial ###.

У меня речь идёт о функции проверки серийного номера, а не генерации.

moj kraker delal LoadLibrary ("SuperSecret.dll");
GetProcAddress ( "MakeCoolSerialNumber");
call tuda...


Это работает, только если в самом продукте есть функция генерации серийного номера. Далеко не все производители такие идиоты.

Советую не высказываться по поводу того, что "никогда никогда не делает" или "все всегда делают" в таких делах, это выглядит довольно глупо.

(no subject)

From: [identity profile] robinbobin.livejournal.com - Date: 2003-11-23 11:03 am (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2003-11-23 11:36 am (UTC) - Expand

(no subject)

From: [identity profile] robinbobin.livejournal.com - Date: 2003-11-23 11:56 am (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2003-11-23 12:03 pm (UTC) - Expand

(no subject)

From: [identity profile] robinbobin.livejournal.com - Date: 2003-11-23 12:10 pm (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2003-11-23 01:01 pm (UTC) - Expand

(no subject)

From: [identity profile] alexcohn.livejournal.com - Date: 2003-11-24 08:04 am (UTC) - Expand

(no subject)

From: [identity profile] dimrub.livejournal.com - Date: 2003-11-24 12:37 pm (UTC) - Expand

(no subject)

From: [identity profile] robinbobin.livejournal.com - Date: 2003-11-24 01:18 pm (UTC) - Expand

(no subject)

From: [identity profile] ex-yonkie852.livejournal.com - Date: 2003-11-24 04:51 pm (UTC) - Expand

Date: 2003-11-24 02:59 am (UTC)
nine_k: A stream of colors expanding from brain (Default)
From: [personal profile] nine_k
Иногда серийный номер играет более важную роль, чем быть просто болванкой для сравнения: по нему, например, может расшифровываться участок кода, etc.

Я знаю по крайней мере одного человека, на моих глазах изучившего и взломавшего функцию *генерации* серийного номера, а именно [livejournal.com profile] nav2.

(no subject)

From: [identity profile] robinbobin.livejournal.com - Date: 2003-11-24 01:25 pm (UTC) - Expand

Date: 2003-11-23 10:55 am (UTC)
From: [identity profile] msh.livejournal.com
Да ну, чего тут фантастического

Лучше пусть будет история про юного хакера, который обратил MD5, потому что не знал что это такое.

Date: 2003-11-23 11:07 am (UTC)
From: [identity profile] avva.livejournal.com
Ну так это и есть один из возможных сюжетов. Я же только завязку написал.

Оказывается, что в фирме, которая написала эту игрушку, сидит юный хакер, который ничтоже сумняшеся обратил MD5, просто увидев имплементацию, которая ему понравилась, в какой-то библиотеке. Или там сидит idiot savant, который умеет в уме обращать MD5, не зная, как он это делает. Он просто думает о результате, напрягается, и ему в голову вскакивает возможная исходная строка. За ним начинают охотиться люди из NSA, итд. итп.

Или оказывается, что в фирме работает астроном-любитель, который уже год подряд получает из окрестностей Альфа Центавра модулированный радиосигнал, который является потоком нулей и единиц, и в попытке его расшифровать он как-то случайно заметил, что поток кодирует одну за другим строки с этим значением MD5. Собственно, как он это заметил: он написал кучу скриптов на Перле для статистического анализа строк из потока. Среди структур данных, к-е используют скрипты, есть хэш, в котором ключом служит строка. Он замечает, что после очередной попытки разделить поток на строки скрипты почему-то начали бежать очень медленно. Долго отлаживает, и обнаруживает, что именно в этом хэше все строки попадают в один bucket (а это какой-то новый Перл, к-й использует MD5 в качестве хэш-функции), и поэтому обращение к хэшу внезапно стало линейным по времени. Ну и так далее.

Про квантовые машины Тьюринга и писать не буду, и так всё очевидно ;) ну и ещё есть 2-3 других возможных продолжения, из которых можно выстроить собственно сюжет.

(no subject)

From: [identity profile] msh.livejournal.com - Date: 2003-11-23 11:26 am (UTC) - Expand

(no subject)

From: [identity profile] qth.livejournal.com - Date: 2003-11-23 12:14 pm (UTC) - Expand

(no subject)

From: [identity profile] 109.livejournal.com - Date: 2003-11-23 12:23 pm (UTC) - Expand

Bzz

From: (Anonymous) - Date: 2003-11-24 12:24 am (UTC) - Expand

(no subject)

From: [identity profile] side-effect.livejournal.com - Date: 2003-11-23 12:31 pm (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2003-11-23 12:58 pm (UTC) - Expand

(no subject)

From: [identity profile] side-effect.livejournal.com - Date: 2003-11-23 01:45 pm (UTC) - Expand

(no subject)

From: [identity profile] oblomov-jerusal.livejournal.com - Date: 2003-11-23 02:53 pm (UTC) - Expand

(no subject)

From: [identity profile] alexcohn.livejournal.com - Date: 2003-11-24 08:12 am (UTC) - Expand

Date: 2003-11-23 11:29 am (UTC)
From: [identity profile] cmm.livejournal.com
ага.

ровно за одну минуту, под дулом пистолетом у виска и с барышней, делающей ему минет.

в Голливуде уже всё придумали, да.  там, правда, был вроде бы DES, но мы им считать не будем. :)

Date: 2003-11-23 11:28 am (UTC)
From: [identity profile] e-bananan.livejournal.com
страшное дело, - one-way function под названием route666()

Date: 2003-11-23 01:33 pm (UTC)
From: [identity profile] meshko.livejournal.com
А мне очень понравилось. Но не слишком реалистично: я не думаю, что можно узнать МД5 в чужом ассемблерном коде.

Date: 2003-11-23 02:02 pm (UTC)
stas: (Default)
From: [personal profile] stas
Думаю, если видел (а тем более, писал) свой подобный код - можно. Если задаться такой целью. Тем более, что код, скорее всего, не ассемблерный, а компилированый C-шный ;)

(no subject)

From: [identity profile] meshko.livejournal.com - Date: 2003-11-23 02:29 pm (UTC) - Expand

(no subject)

From: [identity profile] robinbobin.livejournal.com - Date: 2003-11-24 01:20 pm (UTC) - Expand

Date: 2003-11-23 01:34 pm (UTC)
From: [identity profile] real-hobbit.livejournal.com
сдается мне, Билли, что нечто похожее уже было у Гашека: роман Людвига Гангофера "Грехи отцов" и новейшая шифровальная система.

А может проще?

Date: 2003-11-23 07:07 pm (UTC)
From: [identity profile] xen0n.livejournal.com
... просто хакера выслеживало ФБР и написало программу, которую может даже немного порекламировали, и либо всем досталась "глючная" версия, которая не регистрялась, либо только нашему герою ее подсунули своими хитрыми способами, но вот только та версия, что он ломал, не обязательно вообще позволяла зарегистрировать софтину (по замыслу авторов). Просто ленивый программист вбил значение хэша покрасивее, и все. Цель - чтобы он просто помучался с ней.

P.S.
кстати, а обязательно в md5 у каждого значения Y есть такое X что Y=md5(X)? а то может некоторые значения хэша в принципе не обращаются? тогда можно открывать охоту на открытие данных, генерирующих красивый md5 и первый приз - красивое значение X, которое после MD5 дает красивое значение Y.

P.P.S.

RFC 1321 - The MD5 Message-Digest Algorithm: "3.3 Step 3. Initialize MD Buffer"
буфер заполняется какими-то числами? почему именно этими? скорее всего при разработке алгоритма можно было любые на их место поставить (главное - чтобы они были в стандарте), но почему авторы решили именно их использовать? Может быть как раз пошутили так, что при этих вот значениях, которыми весь мир пользуется, "что-то веселое" (X) шифровалось в "что-то не менее веселое" (Y).
:)

Re: А может проще?

Date: 2003-11-23 08:18 pm (UTC)
From: [identity profile] qth.livejournal.com
про "P.P.S.": в 1996 в функции сжатия, используемой MD5, нашли коллизии. Используемые в настоящий момент инициализационные значения предотвращают атаки на хэш с использованием этих коллизий. Менять начальные значения, чётко не представляя что делаешь, означает ослабление криптостойкости MD5.

Date: 2003-11-24 02:04 pm (UTC)
From: [identity profile] ex-yonkie852.livejournal.com
Я делал нечто отдаленно похожее сначала в своем crackme, затем для защиты одной софтины. Могу отмылить, если интересно..

Date: 2003-11-24 04:24 pm (UTC)
From: [identity profile] avva.livejournal.com
Объясните, что именно "отдалённо похожее", интересно. Можно почтой, если публично это лучше не раскрывать.

(no subject)

From: [identity profile] ex-yonkie852.livejournal.com - Date: 2003-11-24 04:47 pm (UTC) - Expand

(no subject)

From: [identity profile] avva.livejournal.com - Date: 2003-11-24 05:01 pm (UTC) - Expand

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
2829 30 31   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 1st, 2026 02:06 pm
Powered by Dreamwidth Studios