Глава 25

Криптография

 

На протяжении последних четырех глав вы узнали, как идентифицировать пользователей с помощью нескольких поддерживаемых механизмов аутентификации, и как реализовать авторизацию этих пользователей в своих приложениях. ASP.NET поддерживает такие развитые службы, как Membership API и Roles API, которые помогают реализовать эту функциональность. Однако хотя аутентификация и авторизация — два важнейших фактора для построения безопасных приложений, вам не следует упускать из виду и многое другое. Дело в том, что .NET имеет в запасе еще некоторую полезную функциональность. Одним из наиболее важных примеров является поддержка криптографии — науки шифрования данных для обеспечения конфиденциальности и добавления хеш-кодов для обнаружения постороннего вмешательства.

.NET включает богатый программный интерфейс Crypto API, предназначенный для решения широкого диапазона криптографических задач — таких как создание хешей различного типа (MD5, SHA1 и тому подобных) и реализации наиболее важных симметричных и асимметричных алгоритмов шифрования. А если этого недостаточно, то .NET 2.0 включает отдельные функции для защиты секретной информации на локальной машине или для каждого пользователя посредством полностью управляемых оболочек программного интерфейса Windows Data Protection API (DPAPI). В этой главе вы узнаете о том, когда использовать эти API, к тому же, как использовать их корректно.

Шифрование данных: соображения
конфиденциальности

В главе 20 вы узнала о том, как использовать хеширование для защиты паролей. С помощью хеширования вы сохраняете контрольную сумму ("отпечаток пальца") исходных данных, но не сами данные. В результате у вас нет возможности повернуть вспять процесс хеширования для восстановления исходных данных. Все, что можно сделать — хешировать новые данные и выполнить сравнение.

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

предыдущая    следующая страница    вначало главы    оглавление

995

Hosted by uCoz