Бөлісу құралы:


Конфиденциальность и безопасность данных

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

Коды шифрования и хэша

Классы в пространстве имен .NET Framework System.Security.Cryptography можно использовать из приложений ADO.NET, чтобы предотвратить чтение или изменение данных неавторизованными сторонними лицами. Некоторые классы являются оболочками для неуправляемого Microsoft CryptoAPI, а другие — управляемыми реализациями. В разделе служб шифрования представлен обзор шифрования в .NET Framework, описывается реализация криптографа и способ выполнения конкретных задач шифрования.

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

Шифрование файлов конфигурации

Защита доступа к источникам данным - одна из важнейших целей защиты приложения. Строка подключения представляет потенциальную уязвимость, если она не защищена. Строки подключения, сохраненные в файлах конфигурации, хранятся в стандартных XML-файлах, для которых платформа .NET Framework определила общий набор элементов. Защищенная конфигурация позволяет шифровать конфиденциальную информацию в файле конфигурации. Хотя в основном предназначено для приложений ASP.NET, для шифрования разделов файлов конфигурации в приложениях Windows также можно использовать защищенную конфигурацию. Дополнительные сведения см. в разделе Защита данных о подключении.

Защита строковых значений в памяти

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

Неизменяемый объект String ; его значение нельзя изменить после его создания. Изменения, которые, как представляется, изменяют строковое значение, фактически создают новый экземпляр String объекта в памяти, сохраняя данные в виде обычного текста. Кроме того, невозможно предсказать, когда экземпляры строк будут удалены из памяти. Освобождение памяти со строками не является детерминированным при использовании механизма сборки мусора .NET. Следует избегать использования String и StringBuilder классов, если данные действительно чувствительны.

Класс SecureString предоставляет методы шифрования текста с помощью API защиты данных (DPAPI) в памяти. Затем строка удаляется из памяти, когда она больше не нужна. ToString Нет способа быстро считывать содержимое объектаSecureString. Вы можете инициализировать новый экземпляр SecureString без задания значения или передать ему ссылку на массив объектов Char. Затем можно использовать различные методы класса для работы со строкой.

См. также