Форум программистов, компьютерный форум, киберфорум
Наши страницы
Криптография
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Grishaco
437 / 361 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
1

Как защитить приватный ключ?

02.09.2013, 20:27. Просмотров 803. Ответов 8
Метки нет (Все метки)

Всем доброго времени суток!

Есть класс RSACryptoServiceProvider, у него есть методы экспорта закрытого и открытого ключа в некий массив данных (BLOB).

Вопрос если брать пароль от пользователя, потом от пароля брать хеш MD5 потом с каждым элементом массива BLOB делать операцию XOR с каждым элементом массива хеша пароля. На сколько это может защитить закрытый ключ?

Т.е. так сказать получить начальный BLOB?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2013, 20:27
Ответы с готовыми решениями:

RSA, как найти закрытый ключ имея открытый ключ, p и q
Прив, задание такое - Как найти закрытый ключ d, если мы знаем открытый ключ e,...

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

Защитить СД диск от опирования
Всем привет. Есть пустая СД балванка, на неё я запишу экзешник, как мне...

Приватный ключ в mysql
Всех приветствую! подскажите, есть такое задание: класс создает...

Как добавить приватный ключ SSH на linux машину для подключение к другому linux серверу
Как добавить приватный ключ SSH на linux машину для подключения к другому linux...

8
Убежденный
Ушел с форума
Эксперт С++
16128 / 7275 / 1181
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
02.09.2013, 20:40 2
Лучше всего для этой цели использовать какой-нибудь признанный стандарт.
Например, Password-Based Key Derivation Function 2 (PBKDF2)
1
Grishaco
437 / 361 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
02.09.2013, 20:53  [ТС] 3
Спасибо за ответ.

Я можно сказать начинающий, но не в криптографии, а в шифровании . По указанной Вами статье, не совсем понимаю как ее можно использовать.

В двух словах о вопросе:
Есть БД (SQL Server), есть самописный ORM, у которого реализован механизм шифрования. При передачи программы клиенту ему так же передается консольное приложение, которое может генерить эти ключи, т.е. через класс "RSACryptoServiceProvider", эти ключи записываются в некий файл в виде BLOB. Так вот клиент может сам поменять пароль, и я как новичок в этом просто думаю будет ли это защита надежной т.е. взять MD5 от пароля и прогнать по XOR весь BLOB?

В общем я никогда не сталкивался с задачей взлома, клиента все устраивает. Просто интересно, можно ли получить этот BLOB?

Заранее спасибо.

Кстати за книгу спасибо.
0
Убежденный
Ушел с форума
Эксперт С++
16128 / 7275 / 1181
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
02.09.2013, 21:08 4
Цитата Сообщение от Grishaco Посмотреть сообщение
взять MD5 от пароля и прогнать по XOR весь BLOB?
Как минимум, следует использовать соль.
Так у злоумышленника будет меньше шансов на успех в случае
атаки полным перебором или атаки по словарю.
1
Grishaco
437 / 361 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
02.09.2013, 22:24  [ТС] 5
Убежденный, соль это круто, скажите на сколько критично использование единственного набора соли для всех паролей? Зависит ли время взлома от размера соли? Заранее спасибо!!!

Да и еще, программирую в .NET, но в нем нет возможности скрыть ту самую "соль", может ли повлиять знание "соли" на возможность быстрее узнать пароль, или "соль" можно просто показать всем?
0
Убежденный
Ушел с форума
Эксперт С++
16128 / 7275 / 1181
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
03.09.2013, 10:53 6
Соль обычно известна, поэтому пространство перебора она не увеличивает.
Но она может сильно усложнить другие типы атак, например атаку по словарю (а также
атаку по радужным таблицам, хоть это и не тот случай). Например, хэш пароля
"ivan123" с большой вероятностью уже будет в словарной базе злоумышленника, но
стоит добавить соль и получить что-нибудь вроде "ivan123[zX@9-d)", шансы на
успешную атаку по словарю сразу падают почти в ноль. Кроме соли еще применяется
многократное хэширование. Цель - замедлить получение ключа на каждой итерации перебора.
PBKDF примерно по такому принципу и работает.
0
Grishaco
437 / 361 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
05.09.2013, 17:27  [ТС] 7
Спасибо за развернутый ответ. Можно тогда еще вопрос?
В предыдущем вопросе я не храню пароль в каком любо виде, а вот если его придется хранить? Пользователь не захочет каждый раз его вводить.
Может есть подходы хранения пароля? Не охота изобретать велосипед.
0
Убежденный
Ушел с форума
Эксперт С++
16128 / 7275 / 1181
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
05.09.2013, 19:53 8
Ну например, можно использовать Data Protection API (DPAPI).
http://msdn.microsoft.com/en-us/library/ms995355.aspx

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

Хотя есть и другие подходы, например шифрование пароля статическим ключом,
но это по понятным причинам намного более слабая защита.
1
Grishaco
437 / 361 / 100
Регистрация: 29.06.2010
Сообщений: 981
Записей в блоге: 1
05.09.2013, 20:11  [ТС] 9
В целом не подходит, у меня есть ключи, пользователь может установить их локально, тогда проблем нет, я зашифровал пароль, и по надобности расшифровываю (под учеткой пользователя). Но у меня есть сервер на котором крутится сервис обработки данных, так вот он тоже должен знать о пароле, а как защитить пароль под пользователем Network Service, я не знаю. Вернее знаю как это сделать под другим оконным пользователем, а как под этим не понятно. Все равно спасибо. Вы прям расширили мой кругозор, несколько моих велосипедов придется выкинуть
0
05.09.2013, 20:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.09.2013, 20:11

Как защитить информацию с помощью HASP (электронный ключ)
Здравствуйте, интересует какая либо информация, текст, видео, ссылка в...

CryptImportKey - не получается нормально импортировать приватный ключ
Всем доброе время суток. Подскажите плиз в чем проблема. Не могу никак...

Подключение по ssh используя приватный ключ для авторизации
Здравствуйте... В общем возник такой вопрос. У меня есть VDS сервер,...


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

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

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