Реклама:

c.CustomerName + c.Street + c.City + c.Ssn,

signature))

throw new Exception("Data validation failed'"); customers.Add(c);

}

con.CloseC);

}

return customers;

>

Использование Windows Data Protection API

Криптография — довольно сложная область. Вы уже знаете, какие факторы следует учитывать для обеспечения конфиденциальности, целостности и подлинности данных приложения. Для упрощения защиты данных операционная система Windows поставляется вместе со встроенной службой шифрования Windows Data Protection API (DPAPI), принцип работы которой показан на рис. 4-17.

Байер Доминик Microsoft ASP.NET. Обеспечение безопасности. Мастер-класс

Рис. 4-17. Принцип работы службы Windows Data Protection

Привлекательность DPAPI состоит в том, что вам не нужно беспокоиться об управлении ключами. Генерирование ключей, их шифрование и чередование осуществляется с помощью службы DPAPI, а управление ключами (наиболее защищенный процесс) — посредством локального администратора безопасности (Local Security Authority, LSA).

f3 ПРИМЕЧАНИЕ Служба DPAPI шифрует данные с использованием алгоритма 3DES со связыванием зашифрованных блоков и добавляет защиту целостности с помощью алгоритма HMACSHA1. При извлечении главного ключа из пароля она использует алгоритм PKS#5 с 4000 итерациями.

Подобно классу Х509 служба DPAPI различает машинные и пользовательские ключи. Данные, зашифрованные с помощью машинного ключа, можно расшифровать только на этой же машине. Данные, зашифрованные с применением пользовательского ключа, могут быть расшифрованы только тем же пользователем. В ASP.NET непрактично использовать по ключу на каждого пользователя, поскольку главный ключ хранится в профиле пользователя (зашифрован с использованием пароля пользователя). Службы Microsoft Internet Information (IIS) и ASP.NET не загружают профиль учетной записи процесса исполнителя или клиентов, так что вы не получите доступ к этому ключу.

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

Важно отметить, что служба DPAPI не предоставляет >сл>, но хранению данных, а только выполняет их шифрование и расшифровку. Зашифрованные данные можно хранить в базе данных или файле.

Щ ПРИМЕЧАНИЕ Если вы шифруете важные данные с помощью DPAPI, проверьте, регулярно ли создаются резервные копии системы, чтобы в случае сбоя аппаратной поддержки можно было восстановить ключ. Более подробную информацию о службе DPAPI вы можете найти по такому адресу: http//m$dn.microsoft.com/library/detault.asp?url*/library/ en-us/dnsecure/html/windataprotectlQn-dpapi.asp.

Вы можете запускать службу DPAPI из кода .NET, используя класс ProtectedData пространства имен System.Security.Cryptography. Следующая страница выполняет шифрование и расшифровку произвольного текста, а также демонстрирует использование методов Protect и Unprotect.

Шифрование и расшифровка данных с помощью службы DPAPI


⇐ Предыдущая страница| |Следующая страница ⇒