Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];

Вниз

RSA шифр   Найти похожие ветки 

 
Кто б сомневался ©   (2010-01-03 05:18) [0]

Напомню идею:
Два ключа. Публичный и закрытый.
Публичным ключем шифруются данные.
Закрытым ключем они расшифровываются.

Если имеется закрытый ключ + шифрованные данные (публичным ключем), но не известен публичный ключ, за какое срок примерно возможно вычислить публичный ключ на современной машине?
Кто знает ответьте пожалуйста.


 
Кто б сомневался ©   (2010-01-03 05:19) [1]

Примерно - час, сутки, месяц - в таком плане.


 
Кто б сомневался ©   (2010-01-03 05:25) [2]

Т.е. в википедии написано что если есть публичный ключ, то вычислить закрытый ключ практически невозможно.

А вопрос в том, что если наоборот, - есть закрытый ключ, и данный шифрованные публичным ключем. Возможно ли найти публичный ключ?


 
Германн ©   (2010-01-03 05:25) [3]


> Кто б сомневался ©   (03.01.10 05:18)  

Тебя Петей зовут? Или как?


 
Тестировщик3   (2010-01-03 08:23) [4]


> Кто б сомневался ©   (03.01.10 05:25) [2]
> Т.е. в википедии написано что если есть публичный ключ,
> то вычислить закрытый ключ практически невозможно.

на этом принципе еще как-то держимся сегодня, может быть устоим завтра, но думать об этом надо уже сейчас.


 
Тестировщик3   (2010-01-03 10:03) [5]

Скажется всего - скопировать, вот от сюда, сюда - ничего не изменится. Каждый будет стоять на своем. И при этом это не ключ и далеко не первичный, тем более RSA его не назовешь.


 
palva ©   (2010-01-03 11:27) [6]

Закрытый и открытый ключи симметричны к друг другу и отличаются тем, что один из них известен, другой нет. Так что задача вычисления открытого ключа по известному закрытому такая же сложная.


 
Anatoly Podgoretsky ©   (2010-01-03 13:23) [7]

> Кто б сомневался  (03.01.2010 05:18:00)  [0]

Нафига тебе публичный ключ, в некоторых случаях даже вычислять ничего не надо, поскольку он может быть в публичном репозитории


 
Anatoly Podgoretsky ©   (2010-01-03 13:25) [8]

> palva  (03.01.2010 11:27:06)  [6]

Боюсь ошибитися, но вроде бы закрый ключ содержит и открытый, вроде надо для процесса.


 
@!!ex ©   (2010-01-03 14:14) [9]

> [6] palva ©   (03.01.10 11:27)
> вычисления открытого ключа по известному закрытому такая
> же сложная.

Насколько я знаю - не такая же.
Открытый ключ значительно меньше по длине(во всяком случае те, с которыми я имел дело)


 
palva ©   (2010-01-03 15:12) [10]

Ну я ответил теоретически, в соответствии с описанием RSA. Практические системы имеют много надстроек над RSA. Например, секретный ключ в том смысле как он понимается программой pgp содержит еще секретную фразу, которую нужно указывать при каждой расшифровке, кроме того там есть симметричный ключ.

То есть когда надо расшифровать, то нужно ввести фразу, она будет хеширована, получен ключ, при помощи этого ключа расшифрован ключ RSA, при помощи алгоритма RSA расшифрованы первые байты сообщения, которые содержат симметричный ключ, которым уже симметричным алгоритмом расшифровывается основная часть сообщения.

Кроме того в pgp секретный ключ содержит еще сгенерированный обычный симметричный ключ, чтобы можно было обходиться без RSA это "сам зашифровал, сам расшифровал". Естественно, что если под секретным ключом понимается всё это хозяйство, то его никаким образом нельзя узнать по известному открытому ключу, сколько ни считай.


 
palva ©   (2010-01-03 15:20) [11]

Хотя я неправ, как раз в pgp секретной фразы секретный ключ не содержит. Наверно там есть что-то, что позволяет безопасным образом определять правильность фразы.


 
korneley ©   (2010-01-03 15:58) [12]


> Если имеется закрытый ключ + шифрованные данные

Блииин.... Всё же давно пройдено. Стойкость крипто впрямую зависит от длинны ключа. И содержания (ну, там, цифры, буквы + спец. символы, а буковки в разных регистрах) Ясно, что, бёстдник не канает. Нес па? По долгу службы вскрывал ХэПешный пароль брутфорсом, правда с некоей инсайдерской информацией. Три дня на Core 2 Duo E8500.


 
@!!ex ©   (2010-01-03 16:45) [13]

> [12] korneley ©   (03.01.10 15:58)
> содержания

RSA? Содержание? ничего не путаешь?
Если что, оба ключа в RSA - это число. всегда.


 
Rouse_ ©   (2010-01-03 17:20) [14]

RSA с длиной ключа 256 раскладывали на простые за 40 с копейками дней используя кластер. Сейчас ключ размером в 768 байт считается достаточно надежным, но я предпочитаю пользоваться ключами от 1024 и выше.


 
boriskb ©   (2010-01-03 19:50) [15]

> [14] Rouse_ ©   (03.01.10 17:20)
>... я предпочитаю пользоваться
> ключами от 1024 и выше.

Если не секрет, что шифруется?
Для каких целей?


 
Кто б сомневался ©   (2010-01-03 20:41) [16]

Вообще идея такова - будет применятся в защите проги.
Цель - чтобы нельзя или очень трудно было сделать кеиген.
Если прогу взломают - не беда, выйдет новая версия, а вот если будет кеиген, то здесь уже напряг юзерам, им придется делать перерегистрацию.

Так вот, идея - шифрую "публичным" ключем у себя (ну он конечно не будет публичный - это если придерживатся терминологии асс. шифров) ID матери.
Далее юзер вбивает эти кракозябры и прога расшифровывает другим ключем (по терминологии "закрытым"), который у нее вшит в exe, этот id и уже проверяет у себя.
Я просто думал, раз в RSA задумано так [0], то если сделать наоборот [2], то взломать ее будет легче - ведь на это алгоритм не рассчитан.


 
Медвежонок Пятачок ©   (2010-01-03 21:24) [17]

Публичным шифруются не данные (это медленно и накладно).
Данные шифруются сессионным ключом, который каждый раз генерируется заново.
А вот сам сессионный ключ уже шифруется с использованием публичного ключа.


 
Кто б сомневался ©   (2010-01-03 21:36) [18]


> Медвежонок Пятачок ©   (03.01.10 21:24) [17]


Я честно говоря не понял.
В моем случае я думал так:
Данные ID (хэш или еще в каком то виде) идут на сайт.
Сайт их шифрует на основе своего ключа (первый ключ) - и результат отдает юзеру.
Юзер вводить результат, и программа вшитым ключем (второй ключ) расшифровывает данные.
Разве не так работает RSA?


 
Медвежонок Пятачок ©   (2010-01-03 22:03) [19]

Юзер вводить результат, и программа вшитым ключем (второй ключ) расшифровывает данные.

А что потом? Дело в том, что из этой схемы можно смело убрать сайт.
В том смысле, что юзер может легко сделать так, что "сайт" будет другим и он отдаст те данные, которые нужны пользователю.


 
Кто б сомневался ©   (2010-01-03 22:33) [20]


> В том смысле, что юзер может легко сделать так, что "сайт"
> будет другим и он отдаст те данные, которые нужны пользователю.
>


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


 
Styx   (2010-01-03 22:40) [21]

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


 
Дмитрий С ©   (2010-01-03 23:27) [22]


> Кто б сомневался ©   (03.01.10 21:36) [18]

Примерно по такому принципу подписываются сертификаты:
Известными данными можно проверить, действительно ли сертификат подписан тем или иным центром или нет, а подписать другой сертификат нельзя.

Так же и у тебя. Но как уже сказали твой ключ в программе могут просто подменить.


 
Медвежонок Пятачок ©   (2010-01-04 00:20) [23]

Вы что то путаете.
Ведь для генерации зашифрованного кода нужен тот ключ что на сайте.


Это ты что-то путаешь.
Твой сайт при желании легко исключается из цепочки и заменяется своим.
Поэтому совершенно неважно что на нем шифруется и каким именно ключом.
Поддельный "сайт" на локалхосте отдаст любой нужный контент приложению.
Вообще любой.
Поэтому неважно где у тебя этот сайт и насколько хитро он там что-то шифрует.


 
Anatoly Podgoretsky ©   (2010-01-04 00:58) [24]

> Медвежонок Пятачок  (04.01.2010 00:20:23)  [23]

А может и сайт вообще не нужен, можно полностью изменить.


 
Кто б сомневался ©   (2010-01-04 01:23) [25]


> Это ты что-то путаешь.
> Твой сайт при желании легко исключается из цепочки и заменяется
> своим.
> Поэтому совершенно неважно что на нем шифруется и каким
> именно ключом.
> Поддельный "сайт" на локалхосте отдаст любой нужный контент
> приложению.
> Вообще любой.


я понимаю, но для этого надо патчить программу, правильно ведь? Патчить второй ключ в exe на свой.
А моя цель - дабы не сделали кеиген, который подходил бы под непатченную прогу.
Далее сам сайт ничего не отдает программе, сайт отдает юзеру ключ (т.е. те данные которые шифруются первым ключем, который на сайте) который он потом вставляет в программу.


 
Rouse_ ©   (2010-01-04 01:43) [26]


> boriskb ©   (03.01.10 19:50) [15]
> Если не секрет, что шифруется?

Не буду оригинальным - шифруется блок данных. Или есть разница в том, чем являются сами данные?


 
Медвежонок Пятачок ©   (2010-01-04 03:38) [27]

я понимаю, но для этого надо патчить программу, правильно ведь? Патчить второй ключ в exe на свой.

Как раз таки нет.
Забудь про свой сайт вообще.
Нет его. Его просто выключили из твоей системы защиты. Причем ничего не патчуя вообще. ПО останется в девственной неприкосновенности.

А моя цель - дабы не сделали кеиген, который подходил бы под непатченную прогу.

Его сделают.
Причем "сайт" никак не осложнит эту задачу.
А возможно даже облегчит ее.


 
Германн ©   (2010-01-04 03:46) [28]


> Или есть разница в том, чем являются сами данные?
>

Есть!
Нездоровое любопытство. :)
Ну мало тут "хакеров" такого уровня! (Вне зависимости от смысла термина "хакер", который ты с АП как-то обсуждал тут).


 
Медвежонок Пятачок ©   (2010-01-04 03:48) [29]

чтобы было совсем понятно:
рассматривай ствой "сайт" как некую функцию защиты, которая что-то возвращает.

фунция может быть внутри exe. тогда потебуется патчить exe (требуются навыки пользования отладчиком дизассемблером и т.д.)

но у тебя функция вынесена наружу. причем всегда можно сделать так, что запрос к сайту пойдет не по указанному тобой адресу, а на нужный хакеру хост. После чего оттуда будет возвращен детерминированный результат.

Итого:
Никакого сайта нет, никакой защиты нет. На запрос возвращается результат, который полностью контролируется взломщиком. Никакого дизассемблера не требуется вообще.
Ты только облегчаешь задачу взлома, вынося защитный код за пределы exe.


 
Кто б сомневался ©   (2010-01-04 05:17) [30]


> Медвежонок Пятачок ©   (04.01.10 03:48) [29]
>
> чтобы было совсем понятно:
> рассматривай ствой "сайт" как некую функцию защиты, которая
> что-то возвращает.
>
> фунция может быть внутри exe. тогда потебуется патчить exe
> (требуются навыки пользования отладчиком дизассемблером
> и т.д.)
>
> но у тебя функция вынесена наружу. причем всегда можно сделать
> так, что запрос к сайту пойдет не по указанному тобой адресу,
>  а на нужный хакеру хост. После чего оттуда будет возвращен
> детерминированный результат.


Да ты не понял все таки.
Юзер жмет кнопку купить - генерится адресная строка для браузера (get) в которой лежат данные (апп. ID - хэш итп) ну и вызывается с браузером.
Сайт после оплаты шифрует те данные своим ключем и отдает юзеру (тот самый RSA).
Юзер копи - пастит это и вставляет в прогу.
Прога уже своим вторым ключем дешифрует их, и .проверяет оно или нет.

Как тут взломщик может что то сделать, не патча прогу, я не пойму.
А тем более кеиген для всех.


 
korneley ©   (2010-01-04 06:55) [31]

> @!!ex ©   (03.01.10 16:45) [13]
> RSA? Содержание? ничего не путаешь?

Не-а :) Байт он и есть байт... Смысл ему человеки дают.


 
Медвежонок Пятачок ©   (2010-01-04 15:17) [32]

Прога уже своим вторым ключем дешифрует их, и .проверяет оно или нет.

"Ипполит, ну какой же вы тупой...." (c)

Я верну твоей проге то что она хочет и после проверки она скажет что это оно. При этом твой сайт никак не будет участвовать в этом процессе.

Я уже не говорю, про то, что в конечном итоге у тебя все свелось к банальному детсадовскому ифзенэлзу "и .проверяет оно или нет."


 
Медвежонок Пятачок ©   (2010-01-04 15:28) [33]

Как тут взломщик может что то сделать, не патча прогу, я не пойму.

смотри, последний раз объясняю ход твоих мыслей:

ты размышляешь:
1. хакер может пропатчить exe
2. это плохо.
3. зато он не может пропатчить программный код, который работает на твоем сайте.
4 ты обрадовался и решил использовать это в своей системе защиты.
5. ты думаешь, что если программный код находится на сайте вне досягаемости хакера, то значит на запрос твоей программы всегда возвращается ответ, который контролируешь ты и только ты.

но это не так.
любой начинающий хакер перенаправит запрос браузера на свой веб-сервер, и тот веб сервер (хакерский) вернет данные, которые находятся полностью под контролем хакера, а не под твоим контролем.

Что получилось в итоге:

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

Ну дошло наконец?


 
Кто б сомневался ©   (2010-01-04 16:41) [34]


> то значит на запрос твоей программы всегда возвращается
> ответ, который контролируешь ты и только ты.


Да боже мой, прочитай внимательно - программе ничего не надо, ей ниче не возвращается и она ничего не запрашивает.

Ей нужен результат в виде кода, который который юзер вставит для активации в TEdit.
Все детали см. в [30]
еще раз повторю вопрос, для того чтобы хакеру сделать кеиген не патча прогу, ему нужно

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

Ты мне объясни на пальцах, как хакер это сделает не патча прогу - основываясь на [30]. Заметь все молчат, никто также не понимает тебя.


 
Кто б сомневался ©   (2010-01-04 16:46) [35]


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


Смотри еще раз.
Хакер видит каким ключем (который в exe) распаковывается код введенный юзером и каким алгоритмом. Так?
Но для того чтобы этот код расшифровать, ему надо его сначала зашифровать. а для этого нужен первый ключ, который на сайте.
А ведь данные, которые шифруются ключами все время разные, это ID матери.


 
Кто б сомневался ©   (2010-01-04 16:48) [36]

Напомню еще раз, цель - дабы не сделали кеиген.


 
Кто б сомневался ©   (2010-01-04 16:55) [37]


> ты размышляешь:
> 1. хакер может пропатчить exe
> 2. это плохо.
> 3. зато он не может пропатчить программный код, который
> работает на твоем сайте.
> 4 ты обрадовался и решил использовать это в своей системе
> защиты.


Здесь ты опять не так понял.
> 1. хакер может пропатчить exe
> 2. это плохо.

Пох. Это наоборот хорошо, главное чтобы он не сделал кеиген.

> 3. зато он не может пропатчить программный код, который
> работает на твоем сайте.
Нет сайт генерит ключ, не для того чтобы была защита. А сразу после покупки. Кто ж еще должен генерить код как не сайт, я что-ли?


 
Кто б сомневался ©   (2010-01-04 17:07) [38]

Короче тут суть в том:

RSA:
Одним ключем (A) шифруем данные X.
Вторым ключем (B) их дешифруем.

Зная алгоритм дешифрования и ключ B - можно ли таким макаром зашифровать новые данные X и таким образом сделать кеген?
Я думаю, что не знаю ключа A нельзя зашифровать данные X. Или можно, в этом то и вопрос.


 
Кто б сомневался ©   (2010-01-04 17:11) [39]


> Зная алгоритм дешифрования и ключ B - можно ли таким макаром
> зашифровать новые данные X и таким образом сделать кеген?
>


ведь по идее для этого и сделан RSA - что это либо очень долго, либо невозможно. Понимаешь?
Короче я четко сформулировал вопрос в [38]. Сможешь ответить?


 
Anatoly Podgoretsky ©   (2010-01-04 17:54) [40]

> Кто б сомневался  (04.01.2010 16:41:34)  [34]

Шифрование откусят.


 
boriskb ©   (2010-01-04 18:49) [41]

> Не буду оригинальным - шифруется блок данных. Или есть разница
> в том, чем являются сами данные?


Представлени не имею :)
Я никогда не сталкивался с необходимостью шифровки с длинным таким ключем.
Было пару раз - так не я этим занимался, вот и интересуюсь в каких случаях может понадобиться.
То есть понавыдумывать конечно можно, но зачем выдумывать если есть люди этим занимающиеся по необходимости.
Так что если нетрудно - что все таки за данные и какая задача.


 
Медвежонок Пятачок ©   (2010-01-04 20:26) [42]

Смотри еще раз.
Хакер видит каким ключем (который в exe) распаковывается код введенный юзером и каким алгоритмом. Так?
Но для того чтобы этот код расшифровать, ему надо его сначала зашифровать. а для этого нужен первый ключ, который на сайте.
А ведь данные, которые шифруются ключами все время разные, это ID матери.


теперь смотри ты.
у хакера есть две вещи:

1. приватный ключ который внутри exe
2. ифзенелз, который тоже внутри нее.

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

а на основе второго он тупо патчит условный переход после анализа возвращенного результата и вообще не заморачивается с шифрованием.


 
Кто б сомневался ©   (2010-01-04 21:36) [43]


> а на основе второго он тупо патчит условный переход после анализа возвращенного результата и вообще не заморачивается с шифрованием


Вот именно. Патчит - это ключевое слово.
А я выпускаю новую версию, в которой этот патч уже не рулит.
Я об это тебе и говорю, что трудно сделать кеиген для не патченых версий..
Надеюсь трудно.

Обойти патч разработчкку легко, обойти кеиген - надо менять алгоритм  и заставлять юзеров делать регистрацию по новой. А никто этого не хочет.


 
Медвежонок Пятачок ©   (2010-01-04 21:38) [44]

про первый пункт забыл. при его использовании ничего патчить вообще не надо.


 
Кто б сомневался ©   (2010-01-04 21:39) [45]


> на основе первого он делает публичный ключ и шифрует для
> программы все, что захочет. затем возвращает это зашифрованное
> обратно в программу.


Т.е. ты хочешь сказать что зная ключ расшифровки и алгоритм расшифровки, но не зная ключ для зашифроки, можно зашифровать новые данные в RSA?


 
Медвежонок Пятачок ©   (2010-01-04 21:53) [46]

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

так что какие здесь проблемы зашифровать что-то там так, что бы программа смогла это расшифровать?
Вообще никаких проблем.


 
Медвежонок Пятачок ©   (2010-01-04 22:03) [47]

но не зная ключ для зашифроки, можно зашифровать новые данные в RSA?

берем любой приватный ключ. берем паблик кей программы.
берем произвольные данные.
шифруем.
и програма успешно расшифровывает эти поддельные данные  и верит им


 
Кто б сомневался ©   (2010-01-04 22:11) [48]


> берем любой приватный ключ. берем паблик кей программы.
> берем произвольные данные.
> шифруем.
> и програма успешно расшифровывает эти поддельные данные
>  и верит им



>  берем любой приватный ключ. берем паблик кей программы.


Для этого надо изменить ключ вшитый в программу на свой. А для этого надо патчить ее. Инача как ты это сделашь?


 
Кто б сомневался ©   (2010-01-04 22:14) [49]

> берем любой приватный ключ.

я вообще не пойму, как это любой приватный ключ?
Для этого надо либо как я уже сказал патчить прогу - иначе вшитый ключ не правильно дешифрует данные, либо вычислять этот приватный ключ на основе встроенного ключа и алгоритма дешифровки.


 
Медвежонок Пятачок ©   (2010-01-04 22:15) [50]

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


 
Кто б сомневался ©   (2010-01-04 22:19) [51]


> все что требуется для этого - знать паблик ключ программы.
>
> а хакер имеет паблик от программы (у него даже приват есть)


нету у него приват ключа. Приват ключем шифруются данные на сайте. Это ключ на сайте. Сайт отдает только зашифрованную строку юзеру.
Пойми, эти 2 ключа - они симметричны друг другу.
Вычислить один ключ, зная второй трудно, для этого и придумывалось RSA.
если б это было просто, тогда б не было этого шифра.
Один из ключей шифрует, другой расшифровывает. Как ты зашифруешь, не зная первого ключа я никак блин не въеду.


 
Медвежонок Пятачок ©   (2010-01-04 22:22) [52]

нету у него приват ключа

он у него есть. он внутри программы у тебя зашит.
и у хакера он есть.
хотя для решения задачи он ему и не нужен.
ему нужен паблик от программы


 
Медвежонок Пятачок ©   (2010-01-04 22:26) [53]

Вычислить один ключ, зная второй трудно, для этого и придумывалось RSA.

вычислить приват, зная паблик - трудно.
обратная задача проста и очень проста.

приват у тебя в программе зашит (иначе программа сама ничего не расшифрует даже если нет никакого хакера и все законно)


 
Кто б сомневался ©   (2010-01-04 22:26) [54]


> Медвежонок Пятачок ©   (04.01.10 22:22) [52]
>
> нету у него приват ключа
>
> он у него есть. он внутри программы у тебя зашит.
> и у хакера он есть.
> хотя для решения задачи он ему и не нужен.
> ему нужен паблик от программы


Давай так:
есть ключ A - им шифруем.
Ключ B - им дешифруем.

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


 
Медвежонок Пятачок ©   (2010-01-04 22:30) [55]

Давай так:
есть ключ A - им шифруем.
Ключ B - им дешифруем.


так не надо потому что на самом деле все не так.

есть две пары "паблик\приват"

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

теперь продолжай.


 
Кто б сомневался ©   (2010-01-04 22:40) [56]

Асимметричное шифрование — система шифрования при которой открытый ключ (ключ A) передаётся по открытому каналу, и используется для шифрования сообщения. Для расшифрования сообщения используется секретный ключ (ключ B).
http://ru.wikipedia.org/wiki/Асимметричное_шифрование

Далее смотри [2] - Я написал что будет реализовано это наоборот.

Т.е. ключ A будет закрыт. Ключ B будет вшит в программу.
Теперь вопрос - как ты собираешся зашифровать данные без ключа A?


 
Anatoly Podgoretsky ©   (2010-01-04 22:58) [57]

> Кто б сомневался  (04.01.2010 21:39:45)  [45]

Елементарно, генерится новая пара, и в программе заменяется приватный ключ.


 
Anatoly Podgoretsky ©   (2010-01-04 23:00) [58]

> Кто б сомневался  (04.01.2010 22:19:51)  [51]

Только сайт будет в Localhost


 
Кто б сомневался ©   (2010-01-04 23:08) [59]


> Елементарно, генерится новая пара, и в программе заменяется
> приватный ключ.


Да епрэсэтэ. Ведь для этого надо патчить прогу уже сотый раз повторяю.


 
Кто б сомневался ©   (2010-01-04 23:13) [60]


> Только сайт будет в Localhost


А сайт тут вооще не причем. Прога не привязана к сайту.
Прога вызывает адрес в браузере, передавая туда свою строку (Mysite.com/id=ID123).
Далее юзер вставляет в прогу уже код с сайта после покупки.


 
Anatoly Podgoretsky ©   (2010-01-04 23:23) [61]

> Кто б сомневался  (04.01.2010 23:13:00)  [60]

Что за код?
Потом откуда в программе взялся приватный ключ и у всех ли он одинаковый?


 
Кто б сомневался ©   (2010-01-04 23:34) [62]


> Anatoly Podgoretsky ©   (04.01.10 23:23) [61]
>
> > Кто б сомневался  (04.01.2010 23:13:00)  [60]
>
> Что за код?
> Потом откуда в программе взялся приватный ключ и у всех
> ли он одинаковый?


Код - это шифрованная сторока. Далее см. [54]
Одним ключем шифруем, он на сайте. юзер вставляет эту шифрованную строку в прогу, а прога своим ключем дешифрует ее. Тот ключ что в проге будет одинаковый для всех.


 
Кто б сомневался ©   (2010-01-04 23:35) [63]

Принцип RSA - один ключ шифрует, другой ключ дешифрует.


 
Кто б сомневался ©   (2010-01-04 23:41) [64]

Еще раз повторяю детально как это будет работать.

1. Юзер жмет кнопку, прога вызывает браузер с адресом, в который вкладывает ID матери -  mysite.com/id=id123  - неважно какой он будет, возможно хэш ID.
2. После оплаты, сайт шифрует этот id на основе первого ключа и отдает эту строку юзеру.
3. Юзер вставляет эту строку в прогу, и прога дешифрует ее на основе второго ключа, который вшит в прогу.

Цель - чтобы нельзя было сделать кеиген для непатченных версий.
Т.е. чтобы сделать кеиген, без патча хакеру надо :

1. Взять id матери.
2. суметь зашифровать этот id

Вопрос, сможет ли он зашифровать новые данные, если у него нет первого ключа, который нужен для шифрования?
Возможно ли его вычислить если есть ключ для дешифрования и алгоритм дешифрования.


 
Rouse_ ©   (2010-01-05 00:32) [65]


> Вопрос, сможет ли он зашифровать новые данные, если у него
> нет первого ключа, который нужен для шифрования?

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

Проще выполнить трассировку на активированной и неактивированной программе, сравнить два графа и при помощи инлайн патча заставить прилодение думать что оно работает как надо.


 
Кто б сомневался ©   (2010-01-05 00:49) [66]


> и при помощи инлайн патча заставить прилодение думать что
> оно работает как надо.


В том то и дело что делается привязка к бинарнику. Я изменяю бинарник, все рушится - надо делать новый кряк.


 
Кто б сомневался ©   (2010-01-05 00:56) [67]


> Проще выполнить трассировку на активированной и неактивированной
> программе, сравнить два графа и при помощи инлайн патча
> заставить прилодение думать что оно работает как надо.


Ты ж не забывай что идет привязка к ID матери. а хранится будет как в Б.
Т.е. каждый раз дешифруем.


 
Rouse_ ©   (2010-01-05 01:07) [68]


> Кто б сомневался ©   (05.01.10 00:56) [67]
> Ты ж не забывай что идет привязка к ID матери. а хранится
> будет как в Б.

Да какая привязка то? :) Я ж тебе говорю - берется работающее приложение, а потом для него воспроизводятся все условия на другом компе. ID мамки 123 - ок, будет тебе и на другой машине 123, у биоса 456 - и на другой машине будут тебе то-же число :) Ну а поп поводу "все рушится" - это вообще смешно, проверка целостности обходится еще проще чем ты думаешь - просто подсоввается при проверке оригинальный, не правленный файл.


 
Кто б сомневался ©   (2010-01-05 01:30) [69]


> Ну а поп поводу "все рушится" - это вообще смешно, проверка
> целостности обходится еще проще чем ты думаешь - просто
> подсоввается при проверке оригинальный, не правленный файл.
>


Да я не про это. я про то, что для того чтобы что то изменить, надо знать где это находится, а местоположение можно изменить, и перепрятать.


> ID мамки 123 - ок, будет тебе и на другой машине 123, у
> биоса 456 - и на другой машине будут тебе то-же число


Ну это понятно, но здесь меньше мороки чем с кеигеном. При кеигене придется делать старым юзерам - новый ключ.


 
Германн ©   (2010-01-05 01:57) [70]


> В том то и дело что делается привязка к бинарнику. Я изменяю
> бинарник, все рушится - надо делать новый кряк.

Не вдаваясь в детали (ибо не спец).
А что меняется для конечного пользователя при изменении бинарника? Т.е. я хотел уточнить. Изменение бинарника - это новая версия данного ПО?


 
Eraser ©   (2010-01-05 02:04) [71]

немного не в тему. по-моему лучше сконцентрироваться на защите от триал-стопа, чем от патча или кейгена. там где ОБЭП проверяет патчить вряд ли будут, а вот "триалстопить" могут вполне.


 
Кто б сомневался ©   (2010-01-05 02:05) [72]


> Т.е. я хотел уточнить. Изменение бинарника - это новая версия
> данного ПО?


Ну да. Фиксится что то, новые фичи.


 
Кто б сомневался ©   (2010-01-05 02:07) [73]


>  по-моему лучше сконцентрироваться на защите от триал-стопа,
>  чем от патча или кейгена. там где ОБЭП проверяет патчить
> вряд ли будут, а вот "триалстопить" могут вполне.


Это ерунда. Это можно фиксить при появлении триалстопа. - Просто добавляем доп. условие, или прячем местоположение записей в реестре в другом месте.


 
Кто б сомневался ©   (2010-01-05 02:11) [74]

В том смысле что популярный продукт все равно крякнут. Главное чтобы изменения кряка не коснулись старых юзеров. Типа "старый ключ не подходит получите новый". Все остальное фиксится выпуском новых билдов.


 
Германн ©   (2010-01-05 02:17) [75]


> Кто б сомневался ©   (05.01.10 02:05) [72]
>
>
> > Т.е. я хотел уточнить. Изменение бинарника - это новая
> версия
> > данного ПО?
>
>
> Ну да. Фиксится что то, новые фичи.
>

Тогда я, наверно, тебя понял. Т.е. ты хочешь сделать защиту так, чтобы хакеры не смогли написать кейген, который работал бы и на всех последующих версиях твоего ПО.
Так?


 
Кто б сомневался ©   (2010-01-05 02:20) [76]


> Тогда я, наверно, тебя понял. Т.е. ты хочешь сделать защиту
> так, чтобы хакеры не смогли написать кейген, который работал
> бы и на всех последующих версиях твоего ПО.
> Так?


Ну да. Этого я и хочу.


 
Кто б сомневался ©   (2010-01-05 02:23) [77]

Наконец то на 75 сообщении некоторые начали понимать :)


 
Германн ©   (2010-01-05 02:34) [78]


> Ну да. Этого я и хочу.

Имхо, этого никто, кроме меня пока так и не понял. :)
Все только и говорят о защите конкретного бинарника от взлома. :(
Наверно надо формулировать вопрос более правильно или подробно.

P.S.
Речь идёт об активно развивающемся ПО?
Ибо кейгены в сети публикуются довольно быстро. И если следующая версия ПО мало отличается от предыдущей по функциональности, то её просто не будут использовать нелегально, пока не появится версия, которая даст заметные преимущества.


 
korneley ©   (2010-01-05 09:18) [79]

Вот уже под восемьдесят постов, а вопрос "куда бедному крестьянину податься?" (с) так и не прозвучал. Ну нет у меня на работе Сети. Точнее, есть, но локальная, компов на 90... Всё, финиш. А прогу хочется :)))


 
ANB   (2010-01-05 10:05) [80]


> Если имеется закрытый ключ + шифрованные данные (публичным
> ключем), но не известен публичный ключ, за какое срок примерно
> возможно вычислить публичный ключ на современной машине?
>

За такое же, как и вычислить закрытый ключ по открытому. Разницы между ними особо никакой.
Шифруем первым, расшифровываем вторым и наоборот.
По теории, ключ должен содержать более 100 десятичных цифр.


 
Anatoly Podgoretsky ©   (2010-01-05 15:31) [81]

> Кто б сомневался  (05.01.2010 02:11:14)  [74]

Да фикси, что хочешь, народ будет пользоваться предыдущий версией. Особенно в свете "старый ключ не подходит получите новый".


 
Anatoly Podgoretsky ©   (2010-01-05 15:40) [82]

> Кто б сомневался  (05.01.2010 02:23:17)  [77]

Это похвала нам или тебе?


 
palva ©   (2010-01-05 16:03) [83]


> Шифруем первым, расшифровываем вторым и наоборот.

Наоборот очень часто бывает. Это наложение электронной подписи.


 
PEAKTOP ©   (2010-01-05 16:06) [84]

> Напомню идею:
> Два ключа. Публичный и закрытый.
> Публичным ключем шифруются данные.
> Закрытым ключем они расшифровываются.
>
> Если имеется закрытый ключ + шифрованные данные (публичным
> ключем), но не известен публичный ключ, за какое срок примерно
> возможно вычислить публичный ключ на современной машине?
>
> Кто знает ответьте пожалуйста.


Идея понята неправильно.
Есть ТРИ ключа. Два закрытых. На основании этих ключей вычисляется общий ключ (публичный). Шифруем одним ключем и публичным, расшифровываем другим ключем и публичным.

Имея в наличии закрытые ключи вычислить публичный - дело нескольких тактов процессора.


 
Кто б сомневался ©   (2010-01-05 16:51) [85]


> Есть ТРИ ключа. Два закрытых. На основании этих ключей вычисляется
> общий ключ (публичный). Шифруем одним ключем и публичным,
>  расшифровываем другим ключем и публичным.


я пока спорить не буду, т.к. еще не искал реализацию rsa в реальном коде .
Но ведь можно сделать так - ключ которым шифруем - будет секретным.
Ключ который расшифровывает и публичный - открытые.
Так можно вычислить секретный ключ?


 
palva ©   (2010-01-05 17:07) [86]


> На основании этих ключей вычисляется общий ключ (публичный

У двух секретных ключей не может быть общего публичного. Если это RSA, конечно. А если это какой-нибудь другой самодельный алгоритм, то возможно что и двух тактов процессора хватит.

> ключ которым шифруем - будет секретным.
> Ключ который расшифровывает и публичный - открытые.

Здесь тоже уже дошли до трех ключей. Оргазм крепчал...
Пойду лучше плесну винца.


 
Кто б сомневался ©   (2010-01-05 17:35) [87]

Там действительно два ключа:
http://ru.wikipedia.org/wiki/Rsa

Реактор меня запутал.


 
Rouse_ ©   (2010-01-06 02:16) [88]

Открою маленький секрет - в RSA публичный ключ это тот, который идет на внешку. При наличии двух ключей только вы вольны выбирать кто из них уйдет на паблик и кто станет секретным :)
В рамках рса и эллиптики - брутфорс ключа не возможен, (ну как не возможен - возможен конечно, но а вы столько проживете?) а вот отлом вполне даже реален при малых длинах.

ЗЫ: Вот как появяться квантовые компьютеры, тогда длина асимитричных ключей возрастет в разы :)


 
Кто б сомневался ©   (2010-01-06 18:02) [89]


> Открою маленький секрет - в RSA публичный ключ это тот,
> который идет на внешку. При наличии двух ключей только вы
> вольны выбирать кто из них уйдет на паблик и кто станет
> секретным


Ну я догадывался, но сомневался. Короче это радует, будем делать.
До этого я хотел сделать обычный модифицированный xor с одним ключем - кеген к которому сделать оч. просто.


 
Кто б сомневался ©   (2010-01-06 18:05) [90]

Осталось только найти реализацию rsa на delphi и на php (ну или только на delphi - там cgi exe сделать можно), Кстати может кто нибудь уже знает где это лежит?


 
ИИ ©   (2010-01-07 22:16) [91]

http://ddev.ru/159/realizaciya-rsa-klassa-na-php/


 
ИИ ©   (2010-01-07 22:18) [92]

http://plagiata.net.ru/?p=140


 
Eraser ©   (2010-01-08 01:36) [93]

MS Crypto API


 
Германн ©   (2010-01-08 02:44) [94]

http://sourceforge.net/projects/tplockbox/


 
Кто б сомневался ©   (2010-01-08 02:56) [95]


> MS Crypto API


Опасаюсь юзать, т.к его легко подменить чем захочешь.


 
Германн ©   (2010-01-08 03:04) [96]


> Кто б сомневался ©   (08.01.10 02:56) [95]

Обрати внимание на мой [94].
Эти ребята очень грамотные.


 
Eraser ©   (2010-01-08 03:47) [97]

LockBox хороший конечно, но давно не поддерживается и нет поддержки юникода - самому под Д2009 и выше допиливать прийдется.
http://www.cityinthesky.co.uk/cryptography.html - хорошая библиотека. но я бы все равно Crypto API использовал.


 
Германн ©   (2010-01-08 03:48) [98]


> Eraser ©   (08.01.10 03:47) [97]
>
> LockBox хороший конечно, но давно не поддерживается и нет
> поддержки юникода - самому под Д2009 и выше допиливать прийдется.
>
> http://www.cityinthesky.co.uk/cryptography.html - хорошая
> библиотека. но я бы все равно Crypto API использовал.
>

Возможно, тебе виднее.


 
Кто б сомневался ©   (2010-01-08 19:08) [99]


> но я бы все равно Crypto API использовал.


Дык смысл. Если его подменить легко. Это будет похуже кеигена.


 
Eraser ©   (2010-01-08 19:49) [100]

> [99] Кто б сомневался ©   (08.01.10 19:08)

что значит "подменить"? ) да и зачем? подмена как то поможет восстановлению ключа что ли? )


 
Eraser ©   (2010-01-08 20:40) [101]

http://www.cybersecurity.ru/news/85133.html


 
TIF ©   (2010-01-09 01:06) [102]

> http://www.cybersecurity.ru/news/85133.html

Ну вот, сглазили...

Поперхнулся в статье на словах "По словам Андрея Тимофеева из института CWI в Амстердаме"

Утечка мозгов? Или просто корни русские... Интересно стало


 
Кто б сомневался ©   (2010-01-09 01:36) [103]


> TIF ©   (09.01.10 01:06) [102]


Мало ли русских заграницей..
Сейчас не союз.


 
Rouse_ ©   (2010-01-10 14:29) [104]


> Eraser ©   (08.01.10 20:40) [101]
>
> http://www.cybersecurity.ru/news/85133.html

Пц приплыли...


 
Anatoly Podgoretsky ©   (2010-01-10 16:09) [105]

> Rouse_  (10.01.2010 14:29:44)  [104]

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


 
Rouse_ ©   (2010-01-10 16:12) [106]


> Anatoly Podgoretsky ©   (10.01.10 16:09) [105]
>
> > Rouse_  (10.01.2010 14:29:44)  [104]
>
> Так это давно было известно

Известно то может было и давно, но никто не востроизвел. Это как в анекдоте:  чем отличается теория от практики?


 
Anatoly Podgoretsky ©   (2010-01-10 16:29) [107]

> Rouse_  (10.01.2010 16:12:46)  [106]

Воспроизвести не проблема, проблема сделать это в приемлимые сроки. А теория взлома была разработана одновременно с созданием.


 
Кто б сомневался ©   (2010-01-10 18:43) [108]


> Rouse_ ©   (10.01.10 14:29) [104]
>
>
> > Eraser ©   (08.01.10 20:40) [101]
> >
> > http://www.cybersecurity.ru/news/85133.html
>
> Пц приплыли...


Да че приплыли. Обычному хакеру такие мощности недоступны. Так что можно юзать и 512.
А службы безопасности стран думаю уже умеют и большее. Не удивлюсь если для них RSA  с двух килобайтным ключем задачка на пол дня. Уже появились рабочие квантовые компьютеры тем более.


 
Rouse_ ©   (2010-01-10 19:55) [109]


> Кто б сомневался ©   (10.01.10 18:43) [108]
> Да че приплыли. Обычному хакеру такие мощности недоступны

Почитай внимательней по ссылке, там математические выкладки даж даны как это сделать на среднестатистическом компе :)



Страницы: 1 2 3 вся ветка

Форум: "Прочее";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.78 MB
Время: 0.007 c
4-1210920061
REA
2008-05-16 10:41
2010.03.28
COM порт, асинхронные чтение запись


15-1262988764
trxnet
2010-01-09 01:12
2010.03.28
Декодирование Quoted-Printable, Base64


2-1264319140
Jimmy
2010-01-24 10:45
2010.03.28
Проиграть два wav-файла


3-1237110214
Den
2009-03-15 12:43
2010.03.28
Как узнать номер добавленной записи


15-1263072625
Юрий
2010-01-10 00:30
2010.03.28
С днем рождения ! 10 января 2010 воскресенье





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский