Каковы лучшие методы для шифрования данных в .NET? - PullRequest
2 голосов
/ 19 ноября 2008

Каковы лучшие практики для работы с

  1. Вещи, которые должны быть хешированы. т.е. пароли

и

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

Какой алгоритм шифрования является самым надежным, наиболее рекомендуемым? Как вы справляетесь с клавишами?

Ответы [ 2 ]

2 голосов
/ 19 ноября 2008

Есть встроенные криптографические библиотеки, которые вы можете использовать в .Net. Существует много хороших алгоритмов симметричного и асимметричного шифрования (AES, RSA и т. Д.). Многие из этих алгоритмов позволяют выбрать, какой сильный ключ вам нужен (1024-битный, 2048-битный и т. Д.).

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

1 голос
/ 19 ноября 2008

Что касается хэширования, существуют встроенные библиотеки для выполнения операций хеширования (во многом аналогичные крипто-библиотекам), которые делают довольно простым хеширование значения для хранилища.

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

Еще одна вещь, которую следует учитывать, - это использовать System.Security.SecureString для перемещения этих защищенных значений в незашифрованном виде / не хэшируемых в памяти. Использование стандартной строки означает, что данные, содержащиеся в строке, находятся в куче в виде простого текста и могут фактически оставаться там некоторое время даже после того, как строка выходит из области видимости. Если кто-то может получить дамп памяти с компьютера, он / она сможет извлечь эти незащищенные данные. В некоторых случаях это может быть излишним, но на что-то посмотреть.

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