Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Хранение пароля от программы


Автор: СерегаГоляков 6.7.2011, 14:03
Создал для себя программу хранение паролей.
Вложил такую идею:
Первая форма:
Пароль от программы лежит в текстовом файле, файл зашифрован AES.
Вход в программу:
Юзер вводит пароль, этим паролем дешифруется пароль из файла, и если дешифрованный и введенный - совпадают, то программа запускается. 
Ограничил 3 попытки и поставил паузу между вводами пол секунды.
0)Можно как то просто удалить строки паузы и 3х кратного ввода?
Пароль передается второй форме и удаляется из первой.

Теперь пароль есть во 2й форме, очистить нельзя поскольку он же используется для шифрования баз данных-БД(почта+пароль к ней).
1)А если исп-ть другой пароль для шифрования БД, то как его хранить, чтоб удалить из формы(не находился в оперативке чтоль)?

2)Такое очень легко обойти, я прав?
Читал http://forum.vingrad.ru/topic-12873.html, что в принципе код легко у c# NET FW 4 глянуть.
3)А очень трудно уже в запущенной программе узнать переданный пароль, или во время передачи как - то оперативка сканируется на появление новых байтов которые содержат пароль?

ну и нуб я наверно  smile 

Автор: Mobi 6.7.2011, 14:05
декомпильнуть идой можно всё)

Автор: СерегаГоляков 6.7.2011, 14:07
Цитата(Mobi @ 6.7.2011,  14:05)
декомпильнуть идой можно всё)

ида это название?

Это вы про пункт 0 ?

Автор: Mobi 6.7.2011, 14:08
http://www.idapro.ru/

Автор: СерегаГоляков 6.7.2011, 14:22
Цитата(Mobi @ 6.7.2011,  14:08)
http://www.idapro.ru/

декомпелировал ей допустим, изменил код и обратно закомпелировал так чтоле?
Эта программа может просматреть все переменные запущенной программы?

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

Автор: 500mhz 6.7.2011, 14:31
1) пароли уже давно не хранят ибо череповато, хранят хеши
2) 
Цитата

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

то есть я понимаю что сама прога не криптована? то нафига все эти пляски с бубном?

Автор: gambit 6.7.2011, 14:34
Цитата(СерегаГоляков @  6.7.2011,  14:03 Найти цитируемый пост)
этим паролем дешифруется пароль из файла, и если дешифрованный и введенный 

Посмотрите хэширование.

Отдельно посмолтрите класс SecureString

Цитата(СерегаГоляков @  6.7.2011,  14:03 Найти цитируемый пост)
Пароль передается второй форме и удаляется из первой.

Жопочка. Пароли как можно меньше должны находиться в памяти, а вы его еще и перекидываете между формами.

Автор: СерегаГоляков 7.7.2011, 09:28
Цитата(500mhz @ 6.7.2011,  14:31)
1) пароли уже давно не хранят ибо череповато, хранят хеши
2) 
Цитата

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

то есть я понимаю что сама прога не криптована? то нафига все эти пляски с бубном?

что значит некриптована?

Автор: vovogege 7.7.2011, 09:52
Цитата(gambit @ 6.7.2011,  14:34)

Цитата(СерегаГоляков @  6.7.2011,  14:03 Найти цитируемый пост)
Пароль передается второй форме и удаляется из первой.

Жопочка. Пароли как можно меньше должны находиться в памяти, а вы его еще и перекидываете между формами.

Никогда не понимал таких плясок. Если у пользователя стоит программа которая сканирует память или файл подкачки, так это его проблемы. Чего плохого хранить пароль в памяти?  Компьютер - зона ответственности пользователя. Если пользователь лох тут ни как его не защитить. И если у него стоит такой сканер- то он лох и у него тайком сканерится и прослушиваться может что угодно:экран,клавиатура,микрофон,камера и т.д.. Мы же не пытаемся его защитить от таких вещей, а пароль почему то в памяти хранить нельзя.   smile 

Автор: 500mhz 7.7.2011, 11:40
Цитата

что значит некриптована? 

срочно к прочтению http://www.aspack.com/

Автор: klein 11.7.2011, 10:15
Предлагаю добавить крипто соль, (после реализации минимума ее неплохо бы сделать сесионной). На диске хранить AES(хеш пароля+соль). В качестве ключа к аесу - хеш самого пароля. Соль лучьше хранить в отдельном файлике. Ну и данные шифровать не паролем, а его хешем. Второй форме передавать лучьше не пароль, а хеш введенного, бинарник файла в котором хранится AES(хеш пароля+соль) ну и соль, чтобы знать что отсекать. А саму прогу заобфусцировать.
Всех проблем не решит, но усложнит защиту конкретно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)