Сейчас я собираюсь создать в нашей компании приложение Rails для работы с конфиденциальной информацией. Там будет брандмауэр, меры физической безопасности и т.д. Моя проблема сейчас - процесс входа в систему для приложения.
Я хотел бы использовать Devise для аутентификации. Какая самая безопасная конфигурация для Devise?
Я думаю, что я сделаю следующее:
- Блокировать учетные записи после небольшого количества неудачных попыток входа в систему.
- Используйте
config.paranoid
, чтобы злоумышленник не мог определить, угадали ли они действительный адрес электронной почты. - Возможно, отключить сброс пароля по электронной почте?
Некоторые из конкретных вещей, которые я не уверен, с цитатами из devise.rb
курсивом:
- Peppers. У разработчика есть опция "Настроить перец для генерации зашифрованного пароля". Я понимаю, что это единственное значение для приложения, которое преобразует глупый пароль, например "password123", в нечто вроде "password123K # (! @Akdlwekdf" или "*%! Kd39gpassword123" или что-то еще до хэширования. но мое понимание от этой статьи заключается в том, что это не так хорошо, как уникальная соль для каждого пароля. Затем снова эта статья и в этой статье говорят, что у bcrypt есть соли. Использует ли перец с bcrypt действительно что-то добавить? Могу ли я, и есть ли необходимость, также иметь столбец солей?
- Отрезки. "Для bcrypt это стоимость для хэширования пароля, а по умолчанию - 10". Основываясь на на этом вопросе, я думаю о том, чтобы использовать коэффициент работы 12. Кажется ли это разумным?
- Длина пароля. Более длинный пароль кажется более безопасным в целом, но я не хочу, чтобы его было так сложно, что пользователь где-то записывал его на листе бумаги. Действительно ли длина пароля важна, если мы используем bcrypt?
- SSL файлы cookie. Для общедоступных приложений с включенным SSL маркировка файлов cookie как "это может быть передана только через HTTPS" защищает от Firesheep -типов атаки. Но я не уверен, насколько это важно, чтобы иметь сертификат безопасности для внутреннего приложения. Это глупо?
Что еще мне не хватает?