таком сценарии ваше приложение нуждается в возможности извлечения этой информации. Здесь хеширование не поможет.
Часто разработчики справляются с этой ситуацией, сохраняя ценные данные в виде открытого текста. Они предполагают, что поскольку данные хранятся в защищенном месте на сервере, им не нужно брать на себя дополнительную работу по их шифрованию. Однако эксперты по безопасности знают, что это не так. Без шифрования злоумышленнику достаточно получить доступ к серверу всего на несколько минут или даже секунд, чтобы извлечь пароли или номера кредитных карточек каждого заказчика.
Бреши в защите случаются из-за непродуманной административной политики, слабых паролей администратора либо уязвимого программного обеспечения сервера. Проблемы могут возникнуть и по причинам аппаратного характера; на самом деле многие компании продают или выбрасывают старые жесткие диски серверов без удаления ценных данных, которые они содержат. Поэтому многие организации придерживаются политики, требующей постоянного обязательного хранения информации заказчиков в конфиденциальном шифрованном виде. Если обнаруживается брешь в защите, и компания будет вынуждена известить пользователей о том, что их данные подверглись риску, потому что они не были правильно зашифрованы, такая компания столкнется с серьезными проблемами и утратит доверие заказчиков. Чтобы избежать этого и гарантировать безопасность данных, вы должны шифровать важную информацию, сохраняемую вашим приложением.
Все необходимые классы для шифрования и расшифровки информации в ваших приложениях можно найти в пространстве имен System.Security.Cryptography. Более того, вы найдете там все основные классы для создания различного рода хешей. Если вы обратитесь к дополнительной сборке System.Security.dll, то получите в свое распоряжение еще более совершенную функциональность обеспечения безопасности — такую как API для модификации Windows ACL (пространство имен System.Security.AccessControl), DPAPI и классы для создания кодов аутентификации на основе кэшированных ключей (НМАС). В табл. 25.1 перечислены категории классов.
В мире Web сертификаты Х509 играют важную роль. Они устанавливают коммуникации SSL и выполняют сертификатную аутентификацию. Сертификат Х509 — это двоичный стандарт инкапсуляции ключей для алгоритмов асимметричного шифрования вместе с сигнатурой специальной организации, издающей сертификаты (обычно такие организации называются центрами сертификации).
Для простых SSL-соединений вам не нужен доступ к хранилищу сертификатов, но если в своем коде вы хотите вызывать Web-службы или Web-приложения, расположенные на другом сервере, который требует от вас аутентификации сертификатом Х509, ваше приложение должно прочесть сертификат из хранилища сертификатов Windows и добавить его к Web-запросу (или к прокси Web-службы) перед тем, как отправить этот запрос.
предыдущая следующая страница вначало главы оглавление
996