powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Хранение шифрованного пароля (не хеша)
29 сообщений из 29, показаны все 2 страниц
Хранение шифрованного пароля (не хеша)
    #37068239
Дофамин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В случае авторизации юзера ясно, что хранить пароль нет смысла - достаточно хранить его хеш и сравнивать хеши. Но как быть в таком случае:

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

как обычно решается такая типичная задача???
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37068290
про герр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хранить пароли в виде хешей md5, в открытом виде они ни кому пользу не принесут, т.к. обратно из хеша в строку преобразовать дюже геморно

Модератор: Тема перенесена из форума "C++".
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37068358
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то есть специальные сервисы для этого дела, типа Wallet-ов, в разных операционках по-разному, но есть.
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37068377
Дофамин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
про герр,

не получится хранить MD5 пароля (или любой другой хеш), ведь при коннекте пароль нужно отправить серверу, его не вводит пользователь - пароль должна "знать" сама программа!
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37068379
Дофамин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

интересно что есть для винды?
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37068398
про герр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дофаминпро герр,

не получится хранить MD5 пароля (или любой другой хеш), ведь при коннекте пароль нужно отправить серверу, его не вводит пользователь - пароль должна "знать" сама программа!
Можно, к примеру, на клиенте (в программе) хранить хеш пароля, а на сервере хранить хеш от хеша
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37068616
Дофамин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
про герр,

да, но все равно не понятно, откуда возмется САМ ПАРОЛЬ) Его не должен вводить пользователь, но для автоматической авторизации на сервер нужно указать пароль.
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37068669
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 20.01.2011 10:06, Дофамин wrote:

> интересно что есть для винды?

Не знаю. Например, портированный на винду
GNU-тые программы.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37068856
herder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Дофамин: В Win есть т.н. безопасные хранилища.. машинное и пользовательское.. Ровно там ОС хранит имена/пароли, запоминаемые напр. Internet Explorero-м и т.д.

Посмотрите http://msdn.microsoft.com/en-us/library/ms995332.aspx
"Introducing CAPICOM",

http://www.cryptopro.ru/docs/cpdn/default.asp?q=cryptopro/documentation/cpdn/default.asp
Архитектура криптографических функций в Windows

http://ru.wikipedia.org/wiki/CAPICOM
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37069284
Xordal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дофаминпро герр,

да, но все равно не понятно, откуда возмется САМ ПАРОЛЬ) Его не должен вводить пользователь, но для автоматической авторизации на сервер нужно указать пароль.
На самом сервере вы можете менять пароль? Если да, то тот вариант который предложил герр , вполне подходит.
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37069310
Xordal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XordalЕсли да, то тот вариант который предложил герр , вполне подходит.
Прошу прощения, "про герр" :)
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37069356
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
Дофаминпрога (С++) периодически коннектится к ftp (да хоть к чему, принцип один) и при коннекте засылает туда логин-пароль, откуда его брать? Ясно, что приходится его хранить (в конфиге, или базе), но хранить в открытом виде - как-то совсем не красиво, как бы его зашифровать? Т.е. сам алгоритм может быть любой, и наверно CryptoAPI тут поможет, вопрос скорее в том, что может быть ключом...
Да просто константный ключ в коде. Смысл что-то наворачивать? Если я захочу узнать пароль, я не программу ковырять буду, а снифер возьму. Или вы от чего пароль защитить хотите?
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37070506
Дофамин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Xordal,

на сервере пароль задать можно любой, да. Извиняюсь, но я все равно не догоняю вариант про хранение хеша) Ведь сервер требует пароль, а не его хеш)

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

Еще я накопал такой вариант: CryptProtectData/CryptUnprotectData

Позволяют зашифровать/дешифровать строку с использованием ключа, привязанного к учетной записи текущего виндового юзера. Минусы на мой взгляд такие: для каждой учетки придется создавать свой конфиг (ну или ограничить работу программы только одной учеткой) и до установки программы пароль придется хранить в открытом виде.
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37070604
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДофаминВ случае авторизации юзера ясно, что хранить пароль нет смысла - достаточно хранить его хеш и сравнивать хеши. Но как быть в таком случае:

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

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

2. Прога-демон.
Пароль вводить некому. Потому авторизационные данные должны храниться в защищенном от ПОСТОРОННИХ месте. Если эта прога выполняется на сервере, так это уже задача защищенности сервера. Например, имеем веб-сетрвер на PHP. В одном из его конфигурационных файлов в открытом видем храним логин доступа к БД. При этом задача его сокрытия от посторонних глаз ну никак не на PHP ложится, а уже на сам сервер. Т.е. задача админа дать доступ к этим файлам только движку PHP, себе и никому больше. Точно так же и с твоей прогой. Сначала надо выяснить ОТ КОГО прячем пароль? Если не желательно владельцу компа его знать, то сделать защиту от дурака, тот же unrar подключить или библиотеку шифрования и расшифровывать логин явно заданным в проге паролем (или собираемым из кусочков), можно так же и из сети пароль на расшифровку запрашивать, не суть важно. Если скрыть от злоумышленников - то это уже задача админа компа, а не твоей проги.
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37070609
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДофаминА снифер тут вряд ли поможет (защищенный vpn, ssl и т.п.).

А просто из памяти работающей проги его забрать?
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37070643
Дофамин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Edd.Dragon,

Согласен, возможно несколько вариантов уровня доступа "злоумышленника", выделю 2 основных:

1. Доступ к БД, в которой хранится пароль для доступа к серверу.
2. Доступ также и к самой программе, которая за настройками лезет в БД, потом используя их коннектится к серверу.

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

Во-втором он может дизассемблировать код, или залезть в память запущенной проги и извлечь пароль. НО. Если он зашифрован относительно учетной записи виндового юзера, то ему придется запустить украденную программу под точно той же учеткой, что, мягко говоря, затруднительно. Создать на своем компьютере идентичную учетку он тоже вряд ли сможет. Если только не снимет образ диска с исходной машины и не взломает ее пароль.
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37070682
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДофаминEdd.Dragon,

Согласен, возможно несколько вариантов уровня доступа "злоумышленника", выделю 2 основных:

1. Доступ к БД, в которой хранится пароль для доступа к серверу.
2. Доступ также и к самой программе, которая за настройками лезет в БД, потом используя их коннектится к серверу.

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

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

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

При чем, с логинами на добавление инфы в БД можно особо не мучаться. А с логинами на получение не всем положенной инфы - наоборот - надо хорошо повозиться.
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37071619
Xordal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДофаминEdd.Dragon,

Согласен, возможно несколько вариантов уровня доступа "злоумышленника", выделю 2 основных:

1. Доступ к БД, в которой хранится пароль для доступа к серверу.
2. Доступ также и к самой программе, которая за настройками лезет в БД, потом используя их коннектится к серверу.

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

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

Эт если я вообще понял о чем речь
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37075764
Дофамин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Xordal,

интересный подход, если я не ошибаюсь, похож на метод "открытого ключа". Но здесь ничто связанное с вычислениями на сервере не подходит, т.к. он не самописный, а стандартный ftp-сервер.
Т.е. задача, грубо говоря, в том, что "пользователь не вводит пароль в программе, поставив раз и навсегда галочку сохранить пароль, и вопрос в том, как этот пароль надежно зашифровать в БД настроек программы".
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37075945
Xordal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дофаминпользователь не вводит пароль в программе, поставив раз и навсегда галочку сохранить пароль
Здесь пожалуйста уточните, какой у вас случай:
- пользователь 1 раз ввел пароль и он должен сохраниться в зашифрованном виде
- пароль должен сразу храниться в зашифрованном виде в программе
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37077062
Дофамин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Xordal,

случай номер 2
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37077084
Дофамин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.е. в процессе отладки пароль может лежать в открытом виде (все настройки - это таблица в БД), но перед передачей программы конечным пользователям пароль в БД необходимо зашифровать так, чтобы:
а) сама программа каким-то образом могла его дешифровать в процессе работы, чтобы приконнектится к серверу, используя этот пароль, для пользователя все это прозрачно.
б) пароль не мог быть дешифрован потенциальным хакером, получившим в свое распоряжение БД настроек (а в наихудшем случае - и саму программу).
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37077190
Xordal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дофаминт.е. в процессе отладки пароль может лежать в открытом виде (все настройки - это таблица в БД), но перед передачей программы конечным пользователям пароль в БД необходимо зашифровать так, чтобы:
а) сама программа каким-то образом могла его дешифровать в процессе работы, чтобы приконнектится к серверу, используя этот пароль, для пользователя все это прозрачно.
б) пароль не мог быть дешифрован потенциальным хакером, получившим в свое распоряжение БД настроек (а в наихудшем случае - и саму программу).
Выбираете любой пароль, выбираете любой алгоритм шифрования, можно даже несколько раз шифровать ваш пароль (допустим md5(des(rsa(md5(то что вы выбрали в самом начале)))), это уже на ваш вкус). То что получится в итоге ставите в качестве пароля на ваш сервер ftp. Потом перед каждым коннектом делаете операции шифрования снова и используете результат в качестве коннекта. В любом случае, если человек обладает достаточно высокой квалификацией, без шифрования канала связи, он, имея программу, получит ваш пароль.
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37077343
Дофамин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Xordal,

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

Так вот вопрос в том, как пойти дальше, и сделать привязку не к зашитому в программе ключу+алгоритму, а чему-то уникальному, например учетной записи виндузного юзера.
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37077392
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XordalВ программе генерируется GUID, по нему делается XOR ... Эт если я вообще понял о чем речь
Признаться, так и не понял, кого и от кого это защитит.
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37077397
Xordal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДофаминXordal,

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

Так вот вопрос в том, как пойти дальше, и сделать привязку не к зашитому в программе ключу+алгоритму, а чему-то уникальному, например учетной записи виндузного юзера.
Делая привязку к чему-то уникальному для каждого пользователя, у вас будут уникальные пароли.
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37077410
Xordal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerXordalВ программе генерируется GUID, по нему делается XOR ... Эт если я вообще понял о чем речь
Признаться, так и не понял, кого и от кого это защитит.
Попробуйте целиком прочитать сообщение ;)
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37077440
Дофамин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Xordal,

собственнопароль один, но у каждого юзера в его БД свой вариант его шифровки - да, это приемлемо. Зато воспроизвести на другом компьютере под другой учеткой работу дешифровки намного сложнее!
...
Рейтинг: 0 / 0
Хранение шифрованного пароля (не хеша)
    #37077501
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XordalПопробуйте целиком прочитать сообщение ;)
Даже два раза. И у меня вышло, что таким образом клиент может проверить, что сервер тоже знает пароль, то есть защищается от подмены злоумышленниками сервера на левый. Другого смысла как-то не обнаружилось.
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Хранение шифрованного пароля (не хеша)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]