Аксиома "Если вы собираетесь бросить свою собственную безопасность, вы уже потерпели неудачу ," применяется здесь.
Для ваших 5 символов [0-9, AZ,az], вы генерируете менее 8,27 бит энтропии ( 64 310 = 2 ^ n). [исправлено]
Злоумышленнику потребуется менее одного дня (1000 угаданий в секунду, , что очень медленно ), чтобы взломать вашу систему.Это приемлемо?Может быть, для тривиальных систем, где обход безопасности имеет очень небольшое влияние.
Должен ли я написать механизм блокировки, чтобы "запретить" трафик с IP-адресов при большом количестве неудачных попыток?
IP-адреса могут быть подделаны.
Должен ли я написать систему проверки ошибок (аналог алгоритма Луна в номерах кредитных карт)?
Это фактически уменьшит количество битв вашей энтропии, облегчая проникновение в вашу систему.
Должен ли я использовать систему кодирования?
Если вы чувствуете, что вам нужно упражнение. Капчи были разбиты и бесполезны для чего-либо, кроме как для увеличения скорости.
Обновление
К сожалению, нет единого решения для компьютерной безопасности,как это все еще незрелое (недоношенное?) поле.Любой, кто говорит: «О, делай то-то-и-то, и у тебя все будет хорошо», пропускает одну из самых фундаментальных проблем безопасности.
Безопасность - это всегда компромисс
защищенная система не может быть доступна.С другой стороны, в конечном итоге доступная система не имеет препятствий для входа.Очевидно, что обе крайности неприемлемы.
Ваша работа как разработчика программного обеспечения заключается в том, чтобы найти точку соприкосновения между ними.Это будет зависеть от нескольких факторов:
- Техническая экспертиза ваших пользователей
- Готовность ваших пользователей мириться с безопасностью
- Стоимость (время и деньги)) для внедрения и обслуживания (т. е. более сложная система будет генерировать больше обращений в службу поддержки)
- влияние , которое будет иметь место для ваших пользователей и компании
- Вероятность казенной части: Вы Министерство обороны США?Visa?Вы, вероятно, сейчас под атакой.Велосипедная лавка Боба в Охае, Калифорния, находится на другом конце спектра.
Насколько я понимаю, вы действительно сгенерируете для них их «пароль».Что если вы перевернули его с ног на голову?Сделайте пин-код своей учетной записью, и при первом входе в вашу систему им нужно будет создать пароль *, который будет необходим с тех пор.
* Да, если это банк, то это не очень хорошоидея.