Лучший способ «скрыть» пароли, векторы инициализации и т. Д. Для шифрования в библиотеке классов - PullRequest
2 голосов
/ 27 января 2009

Я добавляю несколько методов шифрования в библиотеку классов (C # 2.0) и хотел бы знать, как лучше всего разместить пароль, значение соли и вектор инициализации. Это действительно плохая идея, просто жестко запрограммировать их в DLL, или я должен их кодировать и хранить в другом месте?

Спасибо.

Редактировать: Дополнительная информация - требуется шифрование для личной информации в базе данных (адреса, номера телефонов и т. Д.), Нет информации о банковском / медицинском типе, поэтому решение не должно быть слишком сложным. Библиотека классов будет использоваться на сервере для веб-приложения, методы шифрования - на уровне данных.

Ответы [ 4 ]

6 голосов
/ 27 января 2009

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

РЕДАКТИРОВАТЬ: Возможно, вы захотите использовать шифрование с открытым ключом для этой цели (в частности, алгоритм RSA, поскольку он известен как безопасный и полностью реализован в .NET Framework). Это асимметрично, что означает, что для шифрования (общедоступных) и дешифрования (приватных) данных требуется другой ключ. Хотя я до сих пор не совсем уверен, как работает ваша система, я подозреваю, что вам просто нужно ограничить доступ к закрытому ключу только теми людьми, которые могут просматривать информацию базы данных - вы, конечно, не хотите хранить ее на то же место, что и база данных. Открытый ключ, по сути, может быть предоставлен любому, так как он позволяет просто зашифровать данные для помещения в базу данных (при условии, что доступ для записи в базу данных должным образом ограничен). В любом случае, вот несколько ссылок, с которых можно начать:

Надеюсь, это поможет.

1 голос
/ 28 января 2009

Если вы используете шифрование с открытым ключом, то вы захотите свободно распространять открытый ключ (скорее всего) и строго ограничивать доступ к закрытому ключу (только на тех носителях, которые, как вы знаете, защищены). В любом случае, типично хранить ключи как строки в кодировке base64 в файлах XML. Я полагаю, что класс RSACryptoServiceProvider имеет встроенную возможность для этого.

1 голос
/ 27 января 2009

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

0 голосов
/ 27 января 2009

Я имел в виду использовать шифрование в основных служебных методах, в основном для использования с базой данных, а также для данных конфигурации в файлах xml и т. Д. И во всем остальном, что возникает.

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

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...