RSA для генерации ключей
От: ov  
Дата: 24.09.08 13:48
Оценка:
задумал я тут сделать генератор ключей на основе ассимметричного шифрования. примерно по такой схеме:
e-mail -> sha1 -> rsa(private) = serial number

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

проблема вот в чем. такой подход даст мне для одного и того же адреса строго один и тот же ключ. а если юзер купил две лицензии? вижу два варианта:
1. дописывать случайное число к e-mail'у и требовать того же от юзера при регистрации
2. выкинуть sha1 и кодировать e-mail и случайное число сразу приватным ключом. после раскодирования публичным сверять е-мэйлы. тут вопрос — сколько максимально мне позволит закодировать 1024-битный ключ? 128 байт?

кто как поступал в таких случаях?
Re: RSA для генерации ключей
От: Carc Россия http://www.amlpages.com/home.php
Дата: 24.09.08 14:42
Оценка:
"ov" <1065@users.rsdn.ru> сообщил/сообщила в новостях следующее: news:3114766@news.rsdn.ru...
> задумал я тут сделать генератор ключей на основе ассимметричного шифрования. примерно по такой схеме:
>
> e-mail -> sha1 -> rsa(private) = serial number
>

> публичный ключ запрятан в программе, с проверкой все понятно. (минусы этого подхода мне известны, об этом не будем )
>
> проблема вот в чем. такой подход даст мне для одного и того же адреса строго один и тот же ключ. а если юзер купил две лицензии? вижу два варианта:
> 1. дописывать случайное число к e-mail'у и требовать того же от юзера при регистрации
> 2. выкинуть sha1 и кодировать e-mail и случайное число сразу приватным ключом. после раскодирования публичным сверять е-мэйлы. тут вопрос — сколько максимально мне позволит закодировать 1024-битный ключ? 128 байт?
>
> кто как поступал в таких случаях?
А почему email? Попроси указать рег. имя или ФИО, или псевдоним.
Posted via RSDN NNTP Server 2.1 beta
Aml Pages Home
Re: RSA для генерации ключей
От: gear nuke  
Дата: 24.09.08 15:04
Оценка:
Здравствуйте, ov, Вы писали:

ov>задумал я тут сделать генератор ключей на основе ассимметричного шифрования. примерно по такой схеме:

ov>e-mail -> sha1 -> rsa(private) = serial number

Если считать для 2го ключа sha1 2 раза (и т.д) то можно сгенерировать достаточно большое количесво валидных ключей для одного email.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[2]: RSA для генерации ключей
От: ov  
Дата: 24.09.08 15:28
Оценка:
C>А почему email? Попроси указать рег. имя или ФИО, или псевдоним.
потому что ключ на e-mail отправляется. и с него же потом вопросы приходят. удобно.
Re[2]: RSA для генерации ключей
От: ov  
Дата: 24.09.08 15:33
Оценка:
GN>Если считать для 2го ключа sha1 2 раза (и т.д) то можно сгенерировать достаточно большое количесво валидных ключей для одного email.
а при проверке брать sha1, пока не совпадет? есть шанс повиснуть — вдруг кто-то 1000 лицензий купил — надо 1000 раз проверять.
не катит
Re[3]: RSA для генерации ключей
От: Carc Россия http://www.amlpages.com/home.php
Дата: 24.09.08 15:37
Оценка:
Здравствуйте, ov, Вы писали:

C>>А почему email? Попроси указать рег. имя или ФИО, или псевдоним.

ov>потому что ключ на e-mail отправляется. и с него же потом вопросы приходят. удобно.
Да причем тут емейл-то!?! Это называется база данных клиентов — какая разница как в ней искать (по емейлу, по имени, по обоим)? Почему потребности по сути БД клиентов должны быть отражены в ключе? А если я потом с другого мыла за советом напишу, меня что пошлют? И у меня мыл несколько и я действительно в различных ситуациях использую разные (причина проста — веб интерфейс у некий_сервер.ру мне значительне удобнее чем все остальное, и из гостей я пользуюсь почтой именно с некий_сервер.ру)
Кто мешает использовать в ключе и то, и другое? Имхо такая жесткая привязка к емейл вряд ли нужна... Как то сразу куча каких-то "не положено" вылезает....
Есть еще способ, но это только в личку — писать здесь я не буду (одна строка (емейл, ФИО неважно) а ключи разные. Заморочный конечно но есть)
Aml Pages Home
Re[4]: RSA для генерации ключей
От: ov  
Дата: 24.09.08 15:59
Оценка:
C>>>А почему email? Попроси указать рег. имя или ФИО, или псевдоним.
ov>>потому что ключ на e-mail отправляется. и с него же потом вопросы приходят. удобно.
C>Да причем тут емейл-то!?!
от того, что я заменю мыло на имя суть проблемы не изменится.

C>Есть еще способ, но это только в личку — писать здесь я не буду (одна строка (емейл, ФИО неважно) а ключи разные. Заморочный конечно но есть)

а что в нем может быть такого секретного???
Re[5]: RSA для генерации ключей
От: PolyTech Россия https://vmpsoft.com
Дата: 24.09.08 17:00
Оценка:
Здравствуйте, ov, Вы писали:

ov>от того, что я заменю мыло на имя суть проблемы не изменится.


Изменится — в имени пользователя можно добавить любой текст, например "(второе рабочее место)".
В общем случае ключ может иметь такой вид:
Вася Пупкин ПРИЗВОЛЬНЫЙ_ТЕКСТ [pupkin@mail.ru]
RSA_SIGNATURE
Re[3]: RSA для генерации ключей
От: Аноним  
Дата: 25.09.08 02:58
Оценка:
Здравствуйте, ov, Вы писали:

ov>а при проверке брать sha1, пока не совпадет? есть шанс повиснуть — вдруг кто-то 1000 лицензий купил — надо 1000 раз проверять.

ov>не катит

Не знаю как sha1, a MD5 1000 раз посчитать — моргнуть не успеешь, не то что повиснуть.
Re[6]: RSA для генерации ключей
От: ov  
Дата: 25.09.08 04:49
Оценка:
PT>Изменится — в имени пользователя можно добавить любой текст, например "(второе рабочее место)".
PT>В общем случае ключ может иметь такой вид:
PT>Вася Пупкин ПРИЗВОЛЬНЫЙ_ТЕКСТ [pupkin@mail.ru]
PT>RSA_SIGNATURE

ну это то, что я описал в самом первом письме — первый вариант. vasya@pupkin.ru-12345
мне это кажется неудобным.

я тут вычитал, что 1024-битный ключ дает зашифровать порядка 117 байт. проще тогда уж сформировать строчку вида:
SOFTWARE_NAME;RANDOM_NUMBER;ORDER_ID;EMAIL;NAME;XXX...XXXX

подрезав, если что, длинные поля.
строчку закодировать по RSA и отдать юзеру.
Re: RSA для генерации ключей
От: CEMb  
Дата: 25.09.08 05:16
Оценка:
Здравствуйте, ov, Вы писали:

ov>проблема вот в чем. такой подход даст мне для одного и того же адреса строго один и тот же ключ. а если юзер купил две лицензии? вижу два варианта:

ov>1. дописывать случайное число к e-mail'у и требовать того же от юзера при регистрации
ov>2. выкинуть sha1 и кодировать e-mail и случайное число сразу приватным ключом. после раскодирования публичным сверять е-мэйлы. тут вопрос — сколько максимально мне позволит закодировать 1024-битный ключ? 128 байт?

ov>кто как поступал в таких случаях?


Использую crypto++ чтобы шифровать дату сборки приложения. Для одной и той же даты эта штука при шифровании даёт разные строчки
А вообще кстати, странно, когда шифратор 2 раза шифрует одну и туже строчку и на выходе 2 одинаковых результата... тока у ленивого руки не зачешутся поискать закономерность
Re[2]: RSA для генерации ключей
От: ov  
Дата: 25.09.08 05:24
Оценка:
CEM>А вообще кстати, странно, когда шифратор 2 раза шифрует одну и туже строчку и на выходе 2 одинаковых результата... тока у ленивого руки не зачешутся поискать закономерность

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

а что касается закономерностей в RSA.... ну ну
Re[3]: RSA для генерации ключей
От: CEMb  
Дата: 25.09.08 05:53
Оценка:
Здравствуйте, ov, Вы писали:

CEM>>А вообще кстати, странно, когда шифратор 2 раза шифрует одну и туже строчку и на выходе 2 одинаковых результата... тока у ленивого руки не зачешутся поискать закономерность


ov>такова природа ассимметричного шифрования. ему ведь это потом расшифровывать надо

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

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

ov>а что касается закономерностей в RSA.... ну ну


Ну тут же бывает по-разному... главное начать... если ключ не поломают, то другую дыру найдут(по себе знаю... пошёл писать маааленькую программку... кончилось всё написанием хакерского патча на операционку... ...каво там!... ещё не кончилось!... )
Не надо давать людям повод
Re[3]: RSA для генерации ключей
От: gear nuke  
Дата: 25.09.08 09:20
Оценка:
Здравствуйте, ov, Вы писали:

ov>а при проверке брать sha1, пока не совпадет?


Да. (+ желательно на каждом шаге к хешу подмешивать соль, напимер номер итерации)

ov> есть шанс повиснуть — вдруг кто-то 1000 лицензий купил — надо 1000 раз проверять.


При шифровании с паролем WinRAR делает на порядки больше итераций.

ov>не катит


premature pessimization is the root of all evil

Тут, кстати, мог бы возникнуть другой вопрос — должно ли быть ограницение на количество итераций. А то возможно, пусть оно и висит, при попытке вбить невалидный ключик.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[4]: RSA для генерации ключей
От: gear nuke  
Дата: 25.09.08 09:25
Оценка:
Здравствуйте, Carc, Вы писали:

C>Есть еще способ, но это только в личку — писать здесь я не буду (одна строка (емейл, ФИО неважно) а ключи разные. Заморочный конечно но есть)


И не надо писать, уже очевидно, что security through obscurity.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[4]: RSA для генерации ключей
От: ov  
Дата: 25.09.08 09:33
Оценка:
GN>Да. (+ желательно на каждом шаге к хешу подмешивать соль, напимер номер итерации)
жесть какая...

ov>>не катит

GN>premature pessimization is the root of all evil
GN>Тут, кстати, мог бы возникнуть другой вопрос — должно ли быть ограницение на количество итераций. А то возможно, пусть оно и висит, при попытке вбить невалидный ключик.
чем так, лучше уж просто блок понятных данных зашифровать при помощи RSA.
Re[5]: RSA для генерации ключей
От: gear nuke  
Дата: 25.09.08 11:57
Оценка:
Здравствуйте, ov, Вы писали:

ov>жесть какая...


salt — обычный приём против теоретического вырождения хеша.

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


Хозяин — барин. Хотя вообще-то, так — нет, не жесть, а просто нельзя .
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re: RSA для генерации ключей
От: Norfolc Тренажеры интуиции
Дата: 25.09.08 15:01
Оценка:
Здравствуйте, ov, Вы писали:

ov>задумал я тут сделать генератор ключей на основе ассимметричного шифрования. примерно по такой схеме:

ov>
ov>e-mail -> sha1 -> rsa(private) = serial number
ov>

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

ov>проблема вот в чем. такой подход даст мне для одного и того же адреса строго один и тот же ключ. а если юзер купил две лицензии? вижу два варианта:

ov>1. дописывать случайное число к e-mail'у и требовать того же от юзера при регистрации
ov>2. выкинуть sha1 и кодировать e-mail и случайное число сразу приватным ключом. после раскодирования публичным сверять е-мэйлы. тут вопрос — сколько максимально мне позволит закодировать 1024-битный ключ? 128 байт?

ov>кто как поступал в таких случаях?


А вообще, зачем так сильно заморачиваться? Можно сделать примерно так:
Ключ состоит из нескольких строчек:
— ФИО
— емейл
— количество лицензий
— ...
— подпись

Подпись получается путем подписывания приватным ключем конкатенации всех предыдущих строчек в одну.
Затем получившийся ключ в программе считываете, делаете конкатенацию строк и проверяете подпись публичным ключем, зашитым в программу.
Для удобства ключ можно передавать пользователю в преобразованном виде, например в виде base64.
Re[5]: RSA для генерации ключей
От: Carc Россия http://www.amlpages.com/home.php
Дата: 27.09.08 13:56
Оценка:
"ov" <1065@users.rsdn.ru> сообщил/сообщила в новостях следующее: news:3114938@news.rsdn.ru...
>C>>>А почему email? Попроси указать рег. имя или ФИО, или псевдоним.
> ov>>потому что ключ на e-mail отправляется. и с него же потом вопросы приходят. удобно.
> C>Да причем тут емейл-то!?!
> от того, что я заменю мыло на имя суть проблемы не изменится.
>
> C>Есть еще способ, но это только в личку — писать здесь я не буду (одна строка (емейл, ФИО неважно) а ключи разные. Заморочный конечно но есть)
> а что в нем может быть такого секретного???
Абсолютно ничего
Posted via RSDN NNTP Server 2.1 beta
Aml Pages Home
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.