Вы столкнетесь с гневом многих самопровозглашенных гуру безопасности за то, что задаете подобный вопрос. Я сам не специалист по безопасности, но чувствую себя достаточно квалифицированным, чтобы выдвигать некоторые предложения, руководствуясь здравым смыслом. В зависимости от того, насколько безопасным вы хотите, чтобы ваше приложение было, существуют различные методологии.
1- Большинство атак происходит, когда вы передаете учетные данные по проводам. (Человек посередине). Поэтому вам нужно убедиться, что передача имени пользователя и пароля должна быть безопасной. (SSL или HTTP-дайджест). Если безопасность очень важна, вам следует изучить, нужно ли вообще передавать имя пользователя / пароль. (с использованием аутентификации на основе токенов, например Oauth, вместо имени пользователя и пароля)
2- В случае, если вы решите передать имя пользователя и пароль, вам необходимо сократить время жизни строки пароля в области вашего приложения. Конечно, лучший метод - реализовать фильтр аутентификации на основе такого механизма, как LDAP. Большинство хранилищ LDAP позволит вам хранить зашифрованный пароль и позволит вам выполнять аутентификацию путем привязки. (Так что ваше приложение никогда не будет беспокоиться об аутентификации и хранении)
3- В случае, если вы принесете свой пароль на уровень своего приложения, конечно, вам все равно нужно сократить время жизни вашего пароля в виде открытого текста и зашифровать его с помощью некоторого безопасного алгоритма хеширования. Но такой подход и хранение пароля в вашей базе данных (даже в зашифрованном виде) не так уж и безопасны. (особенно, если вы храните пароль, кто-то может обойти ваш уровень безопасности)
Итак, чтобы резюмировать, исходя из необходимого вам уровня безопасности, вам нужно задать себе следующий вопрос.
1- Нужно ли вам отправлять имя пользователя / пароль?
2- Можете ли вы убедиться, что пароль нельзя перехватить по сети?
3- Можете ли вы делегировать свою аутентификацию на передний фильтр, а не на уровень вашего приложения?
person
uncaught_exceptions
schedule
16.03.2011