Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Привязка программы к логину и паролю (https://forum.antichat.xyz/showthread.php?t=207693)

need_million 29.05.2010 21:42

Привязка программы к логину и паролю
 
Какк привязать программу к определенному логину и паролю.

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

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

Zombi **** 29.05.2010 21:45

типо мейл ру агента чтоли?

.::f-duck::. 29.05.2010 21:51

Цитата:

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

Chrome~ 29.05.2010 21:54

Цитата:

Сообщение от .::f-duck::.
Вроде никак,с таким условием.

Нет, почему же... Если пароль будет шифроваться с помощью MD5 алгоритма, то действительно не будет знать.

.::f-duck::. 29.05.2010 21:59

Chrome~,ну,все равно мд5 то будет у него. Естессно,можно и не смотреть на пасс,тогда тоже не будет знать его :\

KATYA 29.05.2010 22:02

Цитата:

Сообщение от need_million
к примеру есть сайт

Если есть сайт то пусть программа коннектится к БД и сравнивает логин с паролем.

waik 29.05.2010 22:07

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

p/S Вроде мой вариант удовлетворяет условиям ТСа.

.::f-duck::. 29.05.2010 22:21

Самое оптимальное - наибать клиента. Все равно плохого ничего не будет,а геммора из-за его требований мульен :\

Seven[up] 29.05.2010 22:23

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

need_million 29.05.2010 22:46

Seven[up], ещё разок прочитай, что мне надо. так любой пользователь сможет.

waik, реестр гуд, но...есть разные но..

а вообще я тупанул...на пароль мне пофиг главное логин,
клиент дает - логин, я его вшиваю, а он только пароль вписывает.

eLWAux 29.05.2010 23:49

Цитата:

Сообщение от need_million
Seven[up], ещё разок прочитай, что мне надо. так любой пользователь сможет.

waik, реестр гуд, но...есть разные но..

а вообще я тупанул...на пароль мне пофиг главное логин,
клиент дает - логин, я его вшиваю, а он только пароль вписывает.

так тебе надо привязать прогу к компу получается?
http://uasc.org.ua/2010/05/c_shart_protect/

Μαφία 29.05.2010 23:59

Цитата:

Сообщение от need_million
Seven[up], ещё разок прочитай, что мне надо. так любой пользователь сможет.

waik, реестр гуд, но...есть разные но..

а вообще я тупанул...на пароль мне пофиг главное логин,
клиент дает - логин, я его вшиваю, а он только пароль вписывает.


Дык все правильно Seven[up] написал.

Цитата:

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

el0x 30.05.2010 00:03

Вы все забыли о сниферах и кукис.Пароль можно будет легко перехватить
Если только https...но кукисы не уберёшь. :(

Μαφία 30.05.2010 00:06

Цитата:

Сообщение от el0x
Вы все забыли о сниферах и кукис.Пароль можно будет легко перехватить
Если только https...но кукисы не уберёшь. :(

Тогда шаг проверки пары: логин и пасс - сразу запросом к БД осуществлять.

need_million 30.05.2010 00:10

Μαφία, я что то не понял.

а если я логина не знаю.

Μαφία 30.05.2010 00:14

Цитата:

Сообщение от need_million
Μαφία, я что то не понял.

а если я логина не знаю.

Дык у клиента кому делаешь софт спроси.


Если надо массово то можно, например, вот так:

При первом запуске клиенту предложить вписать свой логин на ресурсе X.

При последующих запусках просить юзера вводить пароль на ресурсе X, логин мы запомнили на первом шаге, делаем запрос к БД ресурса X, если пароли для данного логина совпадают - запускаем софтину, если нет - оповещаем юзера и просим ввести другой пароль.

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


Перед тем как отдать прогу клиенту спроси у него его логин (например user123), вбей его в код, т.е. никто не сможет изменить логин. И соответственно программой сможет пользоваться только человек владеющий аккаунтом user123 на твоем ресурсе.

el0x 30.05.2010 00:20

Цитата:

Сообщение от Μαφία
Дык у клиента кому делаешь софт спроси.


Если надо массово то можно, например, вот так:

При первом запуске клиенту предложить вписать свой логин на ресурсе X.

При последующих запусках просить юзера вводить пароль на ресурсе X, логин мы запомнили на первом шаге, делаем запрос к БД ресурса X, если пароли для данного логина совпадают - запускаем софтину, если нет - оповещаем юзера и просим ввести другой пароль.

Добавлю накрыть софт очень серьёзным протектором(Themida)+зашифрова ть важные куски кода.Также весь трафик только по https.И на сервере должна быть дополнительная защита от смены пароля(обязательный ввод старого пароля\ответ на вопрос).

need_million 30.05.2010 00:39

Μαφία, в этом и трабл клиент, лоховской и боится логин дать.(типо взломаю)

Μαφία 30.05.2010 00:57

Цитата:

Сообщение от need_million
Μαφία, в этом и трабл клиент, лоховской и боится логин дать.(типо взломаю)

Если клиент лоховской, и тебе пофиг на судьбу софтины. сделай как я писал выше :o


Цитата:

При первом запуске клиенту предложить вписать свой логин на ресурсе X.

При последующих запусках просить юзера вводить пароль на ресурсе X, логин мы запомнили на первом шаге, делаем запрос к БД ресурса X, если пароли для данного логина совпадают - запускаем софтину, если нет - оповещаем юзера и просим ввести другой пароль.
:cool:

Irdis 30.05.2010 01:00

Цитата:

При последующих запусках просить юзера вводить пароль на ресурсе X, логин мы запомнили на первом шаге, делаем запрос к БД ресурса X, если пароли для данного логина совпадают - запускаем софтину, если нет - оповещаем юзера и просим ввести другой пароль.
Отстой если не сетевая прога, ломиться в интернет для запуска(ну если сетевая то всё ок).
Реестр оптимальный вариант. Но придётся париться с правами. Отнюдь не ко всему в реестре будет доступ.

Μαφία 30.05.2010 01:11

Цитата:

Сообщение от Irdis
Отстой если не сетевая прога, ломиться в интернет для запуска(ну если сетевая то всё ок).
Реестр оптимальный вариант. Но придётся париться с правами. Отнюдь не ко всему в реестре будет доступ.


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

Если юзать инет - отстой Делай пустышку которая будет запускаться с любой парой login pass.

Есть еще третий вариант, шли его.

waik 30.05.2010 01:28

эмм...
А елси при запуске софта будет появляться запрос с вводом логина и пароля-эта пара(логин;пароль) отправляется на сервер и если ответ что пара верная то софт работает дальше а если пароль и/или логин не верный то софт прекращает работу.
(обычная аутентификация клиента по логину и паролю через ПО)

Тут и ты не будешь знать ни логина ни пароля клиента.

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

ТС стучи в ЛС,раньше сам с такими вопросами мучался.

need_million 30.05.2010 02:02

делись тут, а если не хочешь пиши в личку..

я тут подумал ещё над такой темой.

отдаю клиенту прогу он сам вводит логин и пароль.
он залогинивается и в определенное место в нете отправляется его к примеру только логин(я типо чесный) и последущее разы просто сверяется с нетом. и в программе какой то ИД. 1 ИД 1 акк.

waik 30.05.2010 02:07

Цитата:

Сообщение от need_million

.... определенное место в нете отправляется его к примеру только логин(я типо чесный) и последущее разы просто сверяется с нетом. и в программе какой то ИД. 1 ИД 1 акк.

С этого места перестал тебя понимать-)

А почему не катит вариант:
Клиент первый раз запускает ПО.
ПО просит логин и пароль.
ЛОгин и пароль отсылаются на сайт и там проверяются на валид и
если логин и пароль верный,то записать их в реестр и использовать при следующих запусках программы.

Так ты не узнаешь что ввёл клиент.

POS_troi 30.05.2010 02:19

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

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

Как-то так =)

need_million 30.05.2010 09:29

откуда скачивает?


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

Μαφία 30.05.2010 09:39

Цитата:

Сообщение от need_million
откуда скачивает?


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

Скачивает оттуда, куда ты зальешь файл :cool:

slesh 30.05.2010 09:53

Вообще клиента головой об стену за такие просьбы.
Единственный вариант тогда - дать ему исходники, пусть сам пароль вобьет и скомпилит

POS_troi 30.05.2010 10:01

Цитата:

Единственный вариант тогда - дать ему исходники, пусть сам пароль вобьет и скомпилит
ну или компилить сразу на серваке =)

Kaas 30.05.2010 10:15

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

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

Μαφία 30.05.2010 10:37

Цитата:

Сообщение от slesh
Вообще клиента головой об стену за такие просьбы.
Единственный вариант тогда - дать ему исходники, пусть сам пароль вобьет и скомпилит


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

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

Будь бы я кодером:
  • не стал бы тратить время на подобные глупые вопросы
  • клиента головой об стену :P


Заметьте, ТС в предыдущих постах вообще слабо понимает что такое реестр и как туда записать данные, и называет этот процесс слишком сложным. :confused:

CraftR14 30.05.2010 11:09

имхо ТС либо сам заказчик, либо качнул где то левые сорсы и пытается их доделать, но не знает как, и с реестром не умеет работать :( и теперь придумывает....
..эт личное мое имхо.


а так Реестр лучший вариант, главное хорошо обмазговать и зашифровать алгоритм.

M_script_ 30.05.2010 11:11

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

need_million 30.05.2010 11:28

Цитата:

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


ещё раз напишу что надо.



есть сайт swblife.com.
Я написал под неё программу(я лично, не у кого не чего не скачивал и не воровал)
Я хочу что бы одна копия программы могла работать только с одной анкетой с этого сайта.

1 копия программы - 1 акк.

так как знаю этих сетевиков и пирамидчиков. они у меня купять а своим ещё за дороже продадут.

el0x 30.05.2010 11:34

need_million можно сравнивать сорец страницы и например проверять имя аккаунта(или какую-то уникальность страницы пользователя).Если он подходит дальше работаем,нет завершение работы. :)

Kaas 30.05.2010 11:36

на чем писал прогу? как тебе мой вариант?

need_million 30.05.2010 11:49

Kaas, я не заметил твою версию.
а она очень хороша!

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

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

язык C#

POS_troi 30.05.2010 11:51

Ну тогда могу предложить такой вариант:

Делаеш систему серийников на основе ID железа (допустим винта)

При первом запуске прога спрашивает логин и просит отправить разработчику некий хэш (сгенереный из ID железа и логина)

Ты при получении хэша генериш серийник и отдаеш клиенту

Клиент вводит серийник в прогу

прога прописывает где нить серийник,логин и далее использует для проверки при запуске

Имеем, возможность запуска только на одном компе и толко для одного логина

need_million 30.05.2010 11:59

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

Kaas 30.05.2010 12:01

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

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

Если кто нить знает как c# прогу в этом месте надежно защитить - выслушаем с удовольствием:)

>>дать пользователю программу в которую он введет логин\пароль и ключ

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

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

Про проблемы с C# я написал выше)


Время: 06:00