Форум: "Основная";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];
ВнизКак делаются пароли? Найти похожие ветки
← →
Dr.Karter (2003-01-13 11:25) [0]Я хочу знать где можно - нужно хранить информацию пароля(чтобы юзер не знал)
чтобы потом сделать проверку.
Дайте пример паролевой программки.
← →
Dr.Karter (2003-01-13 11:25) [1]Я надеюсь меня поняли.
← →
RWolf (2003-01-13 11:27) [2]Сохраняй, где удобно, в зашифрованном виде.
← →
vuk (2003-01-13 11:42) [3]Поступайте так, как делается в системах аутентификации в различных ОС - не храните их вообще. Вместо паролей можно хранить их хеш-коды и при проверке просто вычислять хеши по введенным данным и сравнивать с хранимыми значениями.
← →
Novice (2003-01-13 11:43) [4]Вместо пароля удобно хранить хеш от пароля (напр., MD5) - не видно длину и расшифровать - только перебором, и прятать не надо.
← →
smok_er (2003-01-13 11:45) [5]Зачем все усложнять...
Я не думаю, что речь идет о какой-то супер системе.
Достаточно просто шифровать пароли обычным сдвигом на несколько байт, и, при желании, добавить зависимость от длины пароля.
Если пароль сгенерированный, то подобрать врядли получится.
← →
Dr.Karter (2003-01-14 08:54) [6]А можно как-то создавать невидемый файл в той-же папке где расположена программа.
Если можно, то как и будет ли файл невидемый при переносе с одной машины на другую.
> Сохраняй, где удобно, в зашифрованном виде
Что значит в зашифрованном виде?
> Novice © (13.01.03 11:43)
> Вместо пароля удобно хранить хеш от пароля (напр., MD5)
> - не видно длину и расшифровать - только перебором, и прятать
> не надо.
И что такое хеш?
← →
A2 (2003-01-14 09:19) [7]Парень!
А сколько часов всего-то ты занимаешься программированием - и сразу за программу с паролями!!!
Разберись сперва с азами.
← →
Сергей Зимин (2003-01-14 09:29) [8]Вот здесь реализация алгоритма MD5
http://www.fichtner.net/delphi/md5/
Немного упростив - Хеш это контрольная сумма
Хеш двух различных строк (хоть на 1 бит) различен.
← →
Спрашивающий (2003-01-14 09:42) [9]Все зависит какой степени защита требуется, если от Чайника то вообще ничего прятать и шифровать не надо он порой не может запустить ну например Word. Если программа расчитана на широкий круг ничего не видимого и зашифрованного(100%) не сделаешь, "умельцы" все сломают,хотя я думаю что в данном случае шифровать и прятать надо, ну хотя бы для того чтобы усложнить взлом .
← →
Rater2 (2003-01-14 10:02) [10]ХЕШ хорош при работе с вводимыми паролями,
а для хранения паролей для посылки куда-то (например аутентификациа в инет).
Для шифровки паролей наиболее простой метод XOR & ротация битов
для бешеной шифровки можно конечно PGP попробовать но хранить то придется всё и приватный и публичный ключ, так что ....
← →
Anatoly Podgoretsky (2003-01-14 10:16) [11]А так как хранятся оба ключа, то нет нужды использовать ассиметричные ключи, достаточно симметричного, просто без разницы
← →
Chubais (2003-01-14 10:27) [12]ААААААААААААААААААА!!!!!!!!!!!!!!!
← →
Сергей (2003-01-14 11:57) [13]Доктор Картер. Я смотрю здесь тебе много советчиеов нашлось, которые считают себя величайшими криптографами. Не будем их разубеждать, но скажем, что читать их писанину весьма смешно. Молодцы!
Вот тебе кратко что такое Хэш-Функция. Это такая функция, зная значение которой невозможно определить её аргумент. То есть, если известно f(x), то x - нельзя определить. Например, функция mod (остаток)!
1 mod 3 = 1
2 mod 3 = 2
3 mod 3 = 0
4 mod 3 = 1
5 mod 3 = 2
.......... и т.д. То есть зная что (х mod 3) = 2 , мы не можем определить х, так как он может быть = 2,5,... Вот это и есть простейшая ХэшФункция. В реальных программах/алгоритмах используется не число 3, о большие (>64бит) простые числа.
Тебе же советую сделать файл в этом же каталоге например UserPassword.pwd, и все пароли которые будут использоваться хранить там в отдельной строке, причем не сами пароли, брать от каждого символа пароля отдельно байт/символ высчитывать его (mod 97) и + 101010101010.
Потом когда юзер будет вводить пароль, ты с ним (паролем) провернёшь вышеуказанные вычисления и сравнишь с тем, что есть в файле!
Надеюсь - помог!
← →
Reindeer Moss Eater (2003-01-14 12:02) [14]Сергей , не находишь, что способ твой ограниченно годен? Годится лишь для случаев, когда автор программы сам проверяет подлинность вводимого пароля.
← →
mrcat (2003-01-14 12:27) [15]=)))))))
← →
vuk (2003-01-14 13:01) [16]Блин, если это хеш то я уж и не знаю...
В принципе, хеш функция должна обладать тем свойством, что результаты вычислений для разных блоков данных имеют одинаковую длину и изменения в одном бите исходных данных ведут к изменениям более чем одного бита в результирующем значении хеш-функции.
← →
Reindeer Moss Eater (2003-01-14 13:06) [17]vuk, в 11:57 было сказано новое слово в криптографии. А мы не заметили :)))
← →
Dr.Karter (2003-01-14 15:32) [18]А как насчет невидимого файла? Можно ли делать такие
Тебе Сергей СПАСИБО
A2 (14.01.03 09:19)
Я не знаю сколько ты за этим непростым делом, но что касается меня то за мной много программ, и единственный способ к познанию
учиться, что не когда не поздно!
За рекомендациями обращаться к Литвинову Илье Николаевичу по адресу: nsk_school_163@list.ru Меня зовут Денисов Игорь А.
или просто Dr.Karter! Милости Прошу!!!
← →
Dr.Karter (2003-01-14 15:34) [19]
> A2 (14.01.03 09:19)
А Если я чего не знаю, то я учусь, благодаря Мастера DELPHI-
Спасибо вам!
← →
les (2003-01-14 16:05) [20]> Dr.Karter © (14.01.03 15:34
> А Если я чего не знаю, то я учусь
Молодец! Хочу подарить тебе ключ к любому познанию, держи:
RTFM, STFW.
← →
Sha (2003-01-14 22:47) [21]2 Сергей (14.01.03 11:57)
:)
← →
MXA (2003-01-15 00:05) [22]2 Сергей (14.01.03 11:57)
:(
и вообще
>...Это такая функция, зная значение которой невозможно определить её аргумент...
не правда
2 Dr.Karter © (14.01.03 15:32)
>А как насчет невидимого файла? Можно ли делать такие
на устройстве nul :)
и как бы ты хотел увидеть такой файл?
а чайник не увидит и файл с аттрибутом "скрытый"
по-моему стоит или придумать свой "оригинальный" алгоритм/способ
хранения паролей, стойкость которого и будет состоять в том,
что он не известен, или изучать (не по форумам) известные
теоретически стойкие алгоритмы.
← →
vuk (2003-01-15 01:24) [23]to MXA
>не правда
Я бы сказал, это не вся правда, а точнее её часть. В принципе, хеширование - алгоритм отображения одного множества значений на другое, обычно меньшее. И поскольку второе множество значений меньше, то точно определить элемент первого множества не получится.
>по-моему стоит или придумать свой "оригинальный"
>алгоритм/способ хранения паролей, стойкость которого и будет
>состоять в том, что он не известен
Для более или менее серьезных применений такой подход не годится. Да и уже давно известно - самые надежные алогритмы шифрования - те, алгоритмы которых известны всем и хорошо изучены.
>или изучать (не по форумам) известные
>теоретически стойкие алгоритмы.
Вот это есть правильно! А вообще сочетание хранения хешей вместо паролей и шифрования даст хорошоший эффект.
← →
mrcat (2003-01-15 04:01) [24]vuk © (15.01.03 01:24)
...
то точно определить элемент первого множества не получится.
...
собственно определять нет никакого смысла, ибо находится посредством поиска коллизий
← →
anatolyk (2003-01-15 10:07) [25]Народ, а что если для защиты применить след. способ.
На машине юзера создается файл, зашифрованный с каким-то паролем, напр. номером дистрибутива + s/n винта (С)+ какие-либо действия с этими числами (или строками) и т.п. Этот файл создается отдельной программой при установке (лично я установки делаю сам, и программа-инсталятор всегда со мной. Бабки, все-таки.8)). Сам файл можно разместить, напр. в каталоге Windows (GetSystemDirectory) и дать ему имя, напр. device.sys
Само приложение только проверяет пароль, пытается открыть файл и прочитать из него чего, нибудь. Нарушение структуры данных вызовет ошибку.
Для чайника вполне годится.
← →
Reindeer Moss Eater (2003-01-15 10:15) [26]>anatolyk
А каково назначение такой защиты?
← →
mrcat (2003-01-15 10:18) [27]anatolyk (15.01.03 10:07)
...
На машине юзера создается файл, зашифрованный с каким-то
...
http://www.pgp.com/
← →
ZeroDivide (2003-01-15 10:36) [28]Хотел даже что-то написать сначала, но потом передумал. Я просто в истерике от ваших реплик. Не знаю мне смеяться или плакать. Сперва я смеялся.
Нужно проводить долгий ликбез.
Но в общем скажу все таки кратко:
1 Криптография и защита программ от взлома это 2 разные вещи.
2 Современные криптографические алгоритмы взломать нереально.
3 Программу нельзя защитить от взлома. Даже если она защищена
современными криптографическими алгоритмами, то она будет ломаться на 5 минут дольше. (а может и быстрее)
Известно ли вам уважаемые "защитники программ", "собиратели серийных номеров винчестеров", что как правило все ваши старания
отключаются изменением всего 2-х маленьких байтиков на 90h - No Operation?
И все :(
← →
Anatolyk (2003-01-15 11:45) [29]To: Reindeer Moss Eater
Назначение - просто затруднить перенос проги.
← →
Anatolyk (2003-01-15 11:50) [30]То: Zero...
Это и ежу понятно. Но вопрос был задан, и если можно чем-то помочь, то почему бы нет? Здесь же не идет речь о создании абсолютной защиты. А для того, чтобы изменить те же 2 байтика, тоже надо кое-что знать.
← →
anaTolik (2003-01-15 11:55) [31]Да и еще. В зашифрованном файле может храниться инфа о юзере.
тогда смысл использовать прогу, которая в отчетах, или на экране постоянно будет напоминать о ком-то добром и далеком.
← →
Reindeer Moss Eater (2003-01-15 12:01) [32]Anatolyk (15.01.03 11:45)
To: Reindeer Moss Eater
Назначение - просто затруднить перенос проги.
У тебя один единственный легитимный пользователь сможет поиметь неограниченное количество копий приложения на всех компьютерах планеты. (У него есть зашифрованный файл и правильный пароль к нему)
← →
anaTolik (2003-01-15 12:17) [33]Не совсем. Я же ВЫЧИСЛЯЮ его при каждом запуске. В готовом (в том числе зашифрованном) виде он нигде не хранится. Прога, вычислив пароль, пытается открыть файл и получить из него данные - и все. Если комп другой, то и пароль будет вычислен другой. Поэтому хотя бы данные будут искажены.
← →
Reindeer Moss Eater (2003-01-15 12:22) [34]Полет мысли не понят.
Я - легитимный юзер. И у меня есть файл и пароль к нему.
Беру все это с собой и несу куда-то. Заменяю аналогичный файл на другом рабочем месте и работаю на двух местах с одним паролем.
← →
anaTolik (2003-01-15 12:34) [35]1.Я пришел. Установил прогу. Напр., с дискеты запустил свой crack, который создал файл, вычислив пароль для этой машины. Забрал дискету. Ушел.
2.Умный (не через чур, а вмеру) перец пришел. Скопировал все на др. комп. Запустил прогу. Она вычислила пароль (используя комбинацию SN харда и пр.) уже для этого компа. С этим паролем попыталась открыть файл. И, сам скажи, что будет? Пароль-то другой.
Я еще раз говорю - пароля как такового нет. Программа сама его высчитывает и даже не надо его у юзера запрашивать.
Может, я термин пароль неправильно употребил?
← →
mrcat (2003-01-15 12:54) [36]anaTolik (15.01.03 12:34)
и что прикажете делать юзеру, заменившему, например винт?
← →
anaTolik (2003-01-15 13:00) [37]Ну,если ты - крутой перец, то наверное, забъешь в код проги однажды вычисленный пароль, и отключишь его расчет. Причем для всех процедур, и м.б. DLL.
Тогда - да...
← →
Kruger (2003-01-15 13:03) [38]Набить морду человеку, который сделал привязку к харду.
Лучше использовать шифрование. Однозначно. Ссылок народ накидал уйму, см выше. А вообще я бы посоветовал сделать свой шифровалшик. Тогда алгоритм шифрования будет уникальным и сломать его будет труднее.
← →
anaTolik (2003-01-15 13:04) [39]to: mrcat
А прийти, снова запустить Crack с дискеты, взять бабки за вызов, пожелать всего хорошего и не ломаться.
вариант: придумать передачу какого-нибудь кода и ответа на него. Но это слабо, т.к. процедура регистрации будет находиться на компе клиента.
← →
Reindeer Moss Eater (2003-01-15 13:07) [40]Святая наивность. (про "взять бабки за вызов") :)
← →
anaTolik (2003-01-15 13:10) [41]To: Kruger
Если надо защитить прогу от копирования, то следует как можно меньше инфы оставлять у клиента. А шифрование вещь хорошая, не спорю. Шифр, вот только должен быть привязан к чему-то. Хотя бы.
Привяжись к биосу, матери и пр. хламу - и шифруй на здоровье.
Иначе - один раз расшифровал, и пошло - поехало.
← →
anaTolik (2003-01-15 13:11) [42]To: Reindeer Moss Eater
Ну, пива попить вместе. но за его счет 8)
← →
mrcat (2003-01-15 13:11) [43]anaTolik (15.01.03 13:00)
...
забъешь в код проги однажды вычисленный пароль
...
=)))))
и кто после этого злому дядьке мешает перенести программу на другой PC?
← →
Reindeer Moss Eater (2003-01-15 13:16) [44]>anaTolik
Представления у тебя какие-то извращенные. У тебя кто-то купил твою программу, которая потеряла свою функциональность в результате смены конфигурации у пользователя.
Ты полагаешь что тебя должны поить пивом за восстановление её работоспособности ?
Все как раз наоборот!
← →
mrcat (2003-01-15 13:17) [45]anaTolik (15.01.03 13:04)
...
прийти, снова запустить Crack с дискеты, взять бабки за вызов
...
Предполагаемые мысли легитимного пользователя: "А на кой мне сдалась такая прога??????"
← →
anaTolik (2003-01-15 13:18) [46]to: mrcat
Тебе надо будет править машинный код, а не просто изменить значение по какому-то адресу. Я думаю, если ты такой умный, то скорее напишешь аналогичную прогу сам, нежели потратишь столько же времени на все манипуляции. В конце концов речь же идет не о супер-прогах с кодом в несколько человеко-лет.
← →
mrcat (2003-01-15 13:21) [47]
anaTolik (15.01.03 13:18)
...
Тебе надо будет править машинный код
...
могу только пожелать успехов в написании самоперекомпилируемой программы.
← →
anaTolik (2003-01-15 13:25) [48]To: Reindeer Moss Eater
а зачем тогда защищать вообще?
Я говорю про проги, которые для кого-то представляют интерес. Если ты не имеешь планов получать доход от затраченного тобой времени, отдай ее юзеру просто так, и живи спокойно.
И у меня есть такие проги, которые для меня были лишь способом научиться чему-то, самоутвердиться.
← →
Reindeer Moss Eater (2003-01-15 13:29) [49]А если имеешь планы заработать, надо думать в первую очередь о том, что заставит пользователя захотеть заплатить тебе деньги
← →
anaTolik (2003-01-15 13:38) [50]To: Reindeer Moss Eater
Давай так, если юзер - твой друг или типа того, тогда не мучайся, зашей пароль в прогу, перед запуском его спроси, и все.
Если ты пишешь программу, которую хочешь продавать, то пиши ее качественно и с наиболее простым интерфейсом. Я думаю, пользователя скорее задолбает каждый божий день (а то и чаще) вводить пароль, нежели раз в год угостить тебя пивом. И если ему будет приятно работать с твоей прогой, будь уверен, он пойдет на эту жертву.
8)))
← →
mrcat (2003-01-15 13:44) [51]anaTolik (15.01.03 13:38)
...
если юзер - твой друг или типа того
...
Если пользователь - друг, то зачем вообще пароль?
...
Если ты пишешь программу, которую хочешь продавать, то пиши ее качественно и с наиболее простым интерфейсом. Я думаю, пользователя скорее задолбает каждый божий день (а то и чаще) вводить пароль, нежели раз в год угостить тебя пивом. И если ему будет приятно работать с твоей прогой, будь уверен, он пойдет на эту жертву.
...
Пользователь приобрел программу в сети за многие тысячи км. от места твоего нахождения - кто будет оплачивать твой проезд, если прийдется ее "переустанавливать"???
← →
Reindeer Moss Eater (2003-01-15 13:45) [52]anaTolik
Не путай две разные вещи:
1. Пользователь каждый раз вводит пароль при запуске программы в целях защиты своих данных. И в этом он заинтересован сам, а не в том что бы пить пиво.
2. Программа предусматривает какие-то действия пользователя для того, что бы защитить себя (твои права). И пользователю (покупателю) на это (твои желания) наплевать.
← →
anaTolik (2003-01-15 13:49) [53]To: mrcat
см ответ от 13:04, вариант 2.
← →
anaTolik (2003-01-15 14:00) [54]To: Reindeer Moss Eater
Ему наплевать - тебе нет.
1.Если комп стоит в проходном дворе, а юзер заботится о своих данных, тогда для защиты следует прежде попытаться ограничить доступ к данным на уровне ситемы. иначе - копируй, и сиди дома ковыряй сколько душе угодно.
2.Если это компьютер общего пользования, рекомендую юзерам пользоваться различными доп. устройствами: mobile rack-ами, Flash-ами, дискетами, наконец, и не оставлять свои данные на компе.
3.Если надо разделить данные в одной программе между юзерами, используй готовые решения средствами СУБД. Практически все мало-мальски уважающие себя конторы позволяют ограничивать доступ на уровне пользователей. Включай Login prompt, и - вперед.
← →
Reindeer Moss Eater (2003-01-15 14:03) [55]Я тебе и предлагал не путать эти вещи.
Я думаю, пользователя скорее задолбает каждый божий день (а то и чаще) вводить пароль
← →
anaTolik (2003-01-15 14:08) [56]Надо идти. Буду после 17 по Москве. Было приятно пообщаться. Пока!
Желающие и спамеры. Если есть интересные темы, предложения, или просто желание пообчаться, пишите на celeron@mail.sochi.ru. C удовольствием отвечу.
← →
Anatoly Podgoretsky (2003-01-15 14:27) [57]anaTolik (15.01.03 13:04)
Если процесс выщибания денег не зафпксированн особо в договоре, то пользователю пора обратится в суд на взыскания с тебя разного рода ущерба, и не думай что жто тебе сойдет с рук, прецеденты есть, бедныи защитники пользователя были после этого бледные и бедные.
← →
anaTolik (2003-01-15 14:56) [58]to: Anatoly Podgoretsky
Все верно. Но на то он и договор, чтобы все там оговаривать.
Насчет вышибания денег - мне обидно. Это не вышибание. Пользователи (покупающие прогу) обо всем информированы. А брать, или не брать за восстановление деньги - см. договор.
Я не оспариваю их имущественные права, но и не хочу, чтобы мои авторские права были нарушены. А прецедентов - достаточно. Взать всеми любимые винды. Сколько народу зарабатывет на их обслуживании (неофициально). Вообще, вариантов много.
Но цель дискуссии была не "как выбивать деньги", а как защититься. И что вы все с деньгами ко мне прицепились? Неужели так задело?
← →
Anatoly Podgoretsky (2003-01-15 15:04) [59]Если договором все эти моменты определены и покупатель с ними согласен, тогда все нормально, в остальных случаях явное насилии над пользователем и все остальные нехорошии штуки.
← →
anaTolik (2003-01-15 15:08) [60]Удачи всем! меня нет.
← →
ZeroDivide (2003-01-15 15:22) [61]Вообще говоря я все сказал в [ZeroDivide © (15.01.03 10:36)],
но вы хотябы один раз взламывали или только пытаетесь защитить?
У меня нет слов. Расскажу анекдотический случай из реальной жизни, который будет вам полезен в вашем деле:
Однажды, когда я еще учился в универе (DOS AGE), мы делали лабы по одной хорошей, очень полезной проге. Препод пытался продать ее студентам за 200р. Ни один человек не купил. Но он упирался и просто так ее отдавать не хотел. Тогда я ее ломанул и раздал всем бесплатно. Потом он выяснил что это сделал я (Я ему сам сказал). Он был профессором, д.т.н. и он у меня спрашивал как же я ее все таки сломал? А еще чуть позже он стал моим научным руководителем!!! А еще чуть позже под его н.р. я получил губернаторскую премию!!!
А взломал я ее так:
Когда он компилял прогу он оставил там галочку "Дебагинг информейшэн". И ТД (Бордандовский) ее конечно же понимал.
И короче прикол:
.........
push eax
add ebx,03h
push ebx
.........
Call Protect
.........
SomeCode
.........
← →
RWolf (2003-01-15 15:32) [62]ZeroDivide
*пиво :)
со мной был такой же случай, один в один
может, они это нарочно? хакеров воспитывают? :)
← →
A2 (2003-01-15 20:30) [63]Уважаемые!
В "Королевстве Дельфи" есть хороший цикл статей по теме защиты программ, включая такую экзотику для Win32, как самомодифицирующиеся программы. Советую посмотреть -- очень интересно.
← →
ZeroDivide (2003-01-16 08:49) [64]>A2 (15.01.03 20:30)
А я вот советую почитать какой-нибудь "цикл статей" - <интересное выражение]
по взлому программ. Пользы будет побольше.
← →
BlockCode (2003-01-17 16:06) [65]function HeshKey(s0: string): string;
var
n, i, j, k, x: integer;
s: string;
begin
s:=s0;
SetLength(s,30);
n:=Length(s0);
for i:=n+1 to 30 do
s[i]:=Char(i);
for i:=1 to 30 do
begin
k:=1;
x:=Ord(s[i]);
for j:=1 to 30 do
begin
case k of
1: x:=x+Ord(s[j]);
2: x:=x*Ord(s[j]);
3: x:=x-Ord(s[j]);
4: x:=x div Ord(s[j]);
5: k:=0;
end;
k:=k+1;
end;
s[i]:=Char(x Mod 256);
end;
Result:=s;
end;
Результат данной функции можешь хранить в таблице зарегестрированных юзеров. Пароль вводимый юзером проганяешь через функцию и сравниваешь результаты.
Страницы: 1 2 вся ветка
Форум: "Основная";
Текущий архив: 2003.01.27;
Скачать: [xml.tar.bz2];
Память: 0.62 MB
Время: 0.012 c