С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.55/22: Рейтинг темы: голосов - 22, средняя оценка - 4.55
Энтомолог
94 / 149 / 44
Регистрация: 25.04.2012
Сообщений: 2,399
1

Логин и пароль пользователя в десктоп приложении

04.04.2013, 21:45. Просмотров 4227. Ответов 37
Метки нет (Все метки)

Для начала работы с программой требуется подключение к бд для загрузки профиля.
Как правильно хранить логин и пароль пользователей вне бд и проверять их при входе, чтобы все это было устойчиво ко взлому ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2013, 21:45
Ответы с готовыми решениями:

Как в консольном приложении можно ввести набор символов в окна логин-пароль?
Доброго времени суток всем! Подскажите, пожалуйста, как в консольном...

Система регистрации логин-пароль
Добрый вечер! Помогите кто умеет с созданием системы регистрации и входа...

Заполнение полей Логин и Пароль
есть код webBrowser1.Navigate("https://login.aliexpress.com"); //...

Логин/Пароль администратора внутри программы
Добрый день. Такая проблема: Мне нужно использовать SocketType.Raw, который в...

Создать приложение, запрашивающее логин и пароль
Мне нужно сделать программу, существует ли аккаунт(логин) или введен ли...

37
kmaffa
306 / 302 / 147
Регистрация: 29.10.2012
Сообщений: 828
05.04.2013, 09:16 2
Первое что приходит в голову - использовать необратимое шифрование для хранения пароля. И хранить пароль в обычном текстовом файле, его тоже можно зашифровать, но уже используя обратимое шифрование.
1
ksk
613 / 481 / 43
Регистрация: 05.07.2010
Сообщений: 1,589
05.04.2013, 10:05 3
А недостаточно того, что юзер пароль в винду ввёл?
0
Wolfdp
868 / 778 / 202
Регистрация: 15.06.2012
Сообщений: 3,051
Записей в блоге: 1
Завершенные тесты: 1
05.04.2013, 20:13 4
Если на уровне "другой пользователь системы не может зайти", то можно просто сохранят в папку настроек юзера. На семерке, доступ к ней имеет только владелец и главный админ. Второй вариант - шифровать данными о пользователе, например по его id в системе. Знаю что они как-то уникально индифицируются, правда не в курсе как это реализовать и подходит ли под задачу.
1
A1exSun
C#
55 / 55 / 5
Регистрация: 09.03.2013
Сообщений: 216
05.04.2013, 20:16 5
md5 пароля в текстовый файл рядом с приложением.
http://msdn.microsoft.com/ru-ru/libr...raphy.md5.aspx
0
tezaurismosis
Администратор
Эксперт .NET
8612 / 3899 / 730
Регистрация: 17.04.2012
Сообщений: 8,679
Записей в блоге: 14
05.04.2013, 20:48 6
Цитата Сообщение от A1exSun Посмотреть сообщение
md5 пароля в текстовый файл рядом с приложением.
У MD5 недостаточная надёжность, видел кучу методов дешифровки, причём иногда довольно быстрых.
Можно предложить более замороченный способ: берём пароль, делаем сдвиг, например на 4 (x << 4), применяем ещё какую-нибудь битовую операцию, потом переводим в Base64, а потом шифруем в MD5. Если нуждающийся найдёт эту процедуру в коде, то и такая окрошка вас не спасёт. Но на нуждающихся есть обфускатор.
1
A1exSun
C#
55 / 55 / 5
Регистрация: 09.03.2013
Сообщений: 216
05.04.2013, 21:08 7
Цитата Сообщение от tezaurismosis Посмотреть сообщение
У MD5 недостаточная надёжность, видел кучу методов дешифровки, причём иногда довольно быстрых.
Дешифровки чего? md5 это хэш.
Скажи, что здесь было: 6c594fca60c658a835340e29a267bba5
Удачи.
0
Anklav
443 / 301 / 47
Регистрация: 23.01.2013
Сообщений: 641
Завершенные тесты: 2
05.04.2013, 22:05 8
Можно зашифровать логин, паролем. Сохранить в файл. При входе, расшифровывать эти данные(вводимым при входе паролем), и сравнивать(расшифрованные данные) с логином.
0
tezaurismosis
Администратор
Эксперт .NET
8612 / 3899 / 730
Регистрация: 17.04.2012
Сообщений: 8,679
Записей в блоге: 14
05.04.2013, 22:30 9
Цитата Сообщение от A1exSun Посмотреть сообщение
Дешифровки чего? md5 это хэш.
Невероятно, а я то не знал. Хорошо, что умные люди не перевелись (только не гордись, это сарказм)
Читай Википедию, абзац "Криптоанализ". Расшифровка возможна. Наверно поэтому его не рекомендуют использовать.
Цитата Сообщение от A1exSun Посмотреть сообщение
Скажи, что здесь было: 6c594fca60c658a835340e29a267bba5
Мы здесь не в викторину играем. Удачу можешь себе оставить
0
Wolfdp
868 / 778 / 202
Регистрация: 15.06.2012
Сообщений: 3,051
Записей в блоге: 1
Завершенные тесты: 1
05.04.2013, 22:39 10
Цитата Сообщение от A1exSun Посмотреть сообщение
md5 пароля в текстовый файл рядом с приложением.
Окей, мы имеем десктоп приложение, которое связывает с сервером, который требует авторизации. И нам лень каждый раз вводить логин/пароль.

1. Записать в текстовый файл рядом, доступ к файлу дать только текущему пользователю.
плюсы - защитим доступ на текущей системы (правда админ всё-равно сможет посмотреть)
минус - можно зайти с другой системы и нагло посмотреть.

2. Файл зашифровать. Смысла ноль, ибо нам придется его рассшифровывать, а значит опять вводить логин пароль (или просто пароль).

P.S. Насчет хэша: как по вашему это должно выглядить? Клиент-приложение отправляет на сервер хэш, вместо логина-пароля? А что тогда мне мешает, посмотреть хэш, отправить его, сказав что это сохранение? Хэш применяют для другого: когда у вас уведут часть базы, а именно таблицу с логинами и паролем, то вы ничерта не сможете из неё извлечь. Также с его помощью генерируют сложный ключ на основе простого (то есть пароль "123" становится эквивалетный 32-х символьному.)
0
A1exSun
C#
55 / 55 / 5
Регистрация: 09.03.2013
Сообщений: 216
05.04.2013, 22:54 11
Цитата Сообщение от tezaurismosis Посмотреть сообщение
Невероятно, а я то не знал. Хорошо, что умные люди не перевелись (только не гордись, это сарказм)
Читай Википедию, абзац "Криптоанализ". Расшифровка возможна. Наверно поэтому его не рекомендуют использовать.

Мы здесь не в викторину играем. Удачу можешь себе оставить
Хэши не расшифровываются.
Сам то читал тот абзац?
Где его рекомендуют не использовать?
Цитата Сообщение от Wolfdp Посмотреть сообщение
P.S. Насчет хэша: как по вашему это должно выглядить? Клиент-приложение отправляет на сервер хэш, вместо логина-пароля?
Где автором упоминается что пароль нужно передавать серверу?
0
Wolfdp
868 / 778 / 202
Регистрация: 15.06.2012
Сообщений: 3,051
Записей в блоге: 1
Завершенные тесты: 1
06.04.2013, 00:02 12
Цитата Сообщение от A1exSun Посмотреть сообщение
Где автором упоминается что пароль нужно передавать серверу?
Если вопрос стоит о реализации проверки на стороне "сервиса" - то да: список логинов/паролей в виде хэш отпечатка, при получении пароля в открытом виде, переводим в хэш и сравниваем.
0
tezaurismosis
Администратор
Эксперт .NET
8612 / 3899 / 730
Регистрация: 17.04.2012
Сообщений: 8,679
Записей в блоге: 14
06.04.2013, 07:28 13
Цитата Сообщение от A1exSun Посмотреть сообщение
Хэши не расшифровываются.
Я что, статью кому-то другому отправил?
На данный момент существуют несколько видов «взлома» хешей MD5 — подбора сообщения с заданным хешем:
* Перебор по словарю
* Brute-force
* RainbowCrack
Как это ещё можно понимать?
Цитата Сообщение от A1exSun Посмотреть сообщение
Сам то читал тот абзац?
Сказал человек, который сам его не читал.
MD5 (англ. Message Digest 5) — устаревший и нерекомендованный к использованию 128-битный алгоритм хеширования
Не важно, что он из себя представляет: хэш или шифр - функцию свою он выполняет (по крайней мере выполнял) - это защита данных.
Цитата Сообщение от A1exSun Посмотреть сообщение
Где его рекомендуют не использовать?
http://www.kb.cert.org/vuls/id/836068
Только больше не говори, что я не читал статью, сначала сам её прочти, прежде чем задавать вопросы, которые явно описаны в статье.
1
Энтомолог
94 / 149 / 44
Регистрация: 25.04.2012
Сообщений: 2,399
06.04.2013, 10:37  [ТС] 14
А есть что-то более надёжное, чем такой вариант хранения на компе пользователя в файле:
логин и пароль хранятся в обычном xml файле в SHA1 + некоторая константная строка абракадабры. При вводе логин и пароля они переводятся в SHA1 и сравниваются с тем что в xml без константы ?
0
tezaurismosis
Администратор
Эксперт .NET
8612 / 3899 / 730
Регистрация: 17.04.2012
Сообщений: 8,679
Записей в блоге: 14
06.04.2013, 10:53 15
Цитата Сообщение от Alex9 Посмотреть сообщение
А есть что-то более надёжное
Видимо есть, но сейчас умельцы взламывают всё что угодно. Трудно сказать, насколько устойчив этот способ, но если вы будете хранить зашифрованный пароль в каком-нибудь неприметном месте (например, в самом приложении) и в разбросанном по файлу виде, то это сильно усложнит задачу взломщику.
1
A1exSun
C#
55 / 55 / 5
Регистрация: 09.03.2013
Сообщений: 216
06.04.2013, 19:06 16
Цитата Сообщение от tezaurismosis Посмотреть сообщение
Как это ещё можно понимать?
Подбору уязвимо абсолютно все. Вопрос только в том, сколько на него понадобиться времени.

Цитата Сообщение от tezaurismosis Посмотреть сообщение
Не важно, что он из себя представляет: хэш или шифр - функцию свою он выполняет (по крайней мере выполнял) - это защита данных.
Оригинально. Ознакомься: http://ru.wikipedia.org/wiki/Хеширование и http://ru.wikipedia.org/wiki/Шифрование
И в будущем не говори "расшифровать md5 хэш".

Цитата Сообщение от tezaurismosis Посмотреть сообщение
Очень ценный материал, раскрыл мне глаза на опасность использования md5. В нем нашли коллизию! Теперь весь интернет под угрозой.
0
Wolfdp
868 / 778 / 202
Регистрация: 15.06.2012
Сообщений: 3,051
Записей в блоге: 1
Завершенные тесты: 1
06.04.2013, 19:25 17
Цитата Сообщение от A1exSun Посмотреть сообщение
Очень ценный материал, раскрыл мне глаза на опасность использования md5. В нем нашли коллизию! Теперь весь интернет под угрозой.
md5 - Слегка устаревшая технология. Плюс, так как её используют очень часто, уже многие написали себе списки, наиболее часто используемых паролей (если вообще не на все). Поэтому самый безопасный вариант - ограничить доступ к списку паролей.


Цитата Сообщение от A1exSun Посмотреть сообщение
Подбору уязвимо абсолютно все.
Да, вот только есть разница, взломать через 2 дня или через 20 лет.
0
A1exSun
C#
55 / 55 / 5
Регистрация: 09.03.2013
Сообщений: 216
06.04.2013, 19:35 18
Цитата Сообщение от Wolfdp Посмотреть сообщение
md5 - Слегка устаревшая технология. Плюс, так как её используют очень часто, уже многие написали себе списки, наиболее часто используемых паролей (если вообще не на все).
Ну так эти списки применимы ко всему, а не только к md5. И разница во времени их перебора для разных алгоритмов не слишком велика.
Цитата Сообщение от Wolfdp Посмотреть сообщение
Поэтому самый безопасный вариант - ограничить доступ к списку паролей.
Использовать пароли которые вряд ли попадутся в каком-то словаре.
Цитата Сообщение от Wolfdp Посмотреть сообщение
Да, вот только есть разница, взломать через 2 дня или через 20 лет.
Здесь зависит все от пароля. Если есть в словаре - 2 дня, нету - 20 лет.
0
Wolfdp
868 / 778 / 202
Регистрация: 15.06.2012
Сообщений: 3,051
Записей в блоге: 1
Завершенные тесты: 1
06.04.2013, 19:46 19
Цитата Сообщение от A1exSun Посмотреть сообщение
Ну так эти списки применимы ко всему, а не только к md5.
Просто найти на md5 легче и более универсально. Насколько я знаю, при создании БД с пользователями в ASP.NET, там пароли шифруются более хитрым способом, который выдает не просто 32-символьный отпечаток, а ещё и разной длины. То есть к чему всё сводится: придумываем свой способ односторонего преобразоавния - шифруем. Теперь, когда злоумышленик получает список паролей (а этого ни в коем случае нельзя допускать!!!), то ему придется: угадать, что это такое (вероятность близка к нулю); составить список на основе алгоритма преобразования и посмотреть, что там за пароли (который будет где-то пару сотен Гбайт).

Вывод: теоретически это взламывается, на практике - нет.

P.S. Я все это дело бы возложил на ОС. Доступ к файлу - только одной учетной записи, под которой крутится сервис доступа.
1
A1exSun
C#
55 / 55 / 5
Регистрация: 09.03.2013
Сообщений: 216
06.04.2013, 20:10 20
Цитата Сообщение от Wolfdp Посмотреть сообщение
Просто найти на md5 легче и более универсально. Насколько я знаю, при создании БД с пользователями в ASP.NET, там пароли шифруются более хитрым способом, который выдает не просто 32-символьный отпечаток, а ещё и разной длины. То есть к чему всё сводится: придумываем свой способ односторонего преобразоавния - шифруем. Теперь, когда злоумышленик получает список паролей (а этого ни в коем случае нельзя допускать!!!), то ему придется: угадать, что это такое (вероятность близка к нулю); составить список на основе алгоритма преобразования и посмотреть, что там за пароли (который будет где-то пару сотен Гбайт).

Вывод: теоретически это взламывается, на практике - нет.

P.S. Я все это дело бы возложил на ОС. Доступ к файлу - только одной учетной записи, под которой крутится сервис доступа.
Найти на md5 что? Словари это обычные текстовые файлы со словами через перенос. Или ты про ПО для перебора? Пишется руками. С многопоточностью, блэкджеком и шлюхами
Мое мнение - свой велосипед изобретать не нужно. Он будет лишь жалким подобием и с множеством уязвимостей, взять те же коллизии.
Угадать что это такое тоже зависит от злоумышленника. Там свои способы. На практике взламывается.
А вот когда видно что там md5, сразу все становится ясно и может вообще пропадет желание чего-то подбирать.
В общем, лучше использовать надежные популярные алгоритмы.
0
06.04.2013, 20:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2013, 20:10

Разбить сообщение на логин/пароль, записать их в реестр
есть программка клиент сервер,клиент отправляет на сервер логин и пароль void...

Зашифровать только логин и пароль к БД в ConnectionString в app.config
Здравствуйте. Находил массу решений по шифрованию всей строки подключения, или...

Как в xNet подключить прокси с авторизацией логин, пароль?
вопрос собственно в названии.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru