
У меня есть веб-приложение, которое требует безопасности, превышающей ту, что требуется обычному веб-приложению. Когда любой пользователь посещает доменное имя, ему предоставляются два текстовых поля, поле имени пользователя и поле пароля. Если он вводит действительного пользователя/пароль, он получает доступ к веб-приложению. Стандартные вещи.
Однако я ищу дополнительную безопасность за пределами этой стандартной настройки. В идеале это было бы программное решение, но я также открыт для аппаратного решения (оборудование=брелоки) или даже процедурных изменений (например, одноразовые пароли на панели паролей).
Веб-приложение уникально тем, что мы заранее знаем всех наших пользователей, создаем их имя пользователя и пароль и передаем их им. В этом смысле мы можем быть уверены, что имя пользователя и пароль «сильны».
Однако наши клиенты запросили дополнительную безопасность сверх этого. У кого-нибудь есть идеи, как добавить еще один уровень сложности к безопасности?
решение1
Опираясь на слова Дэна, вы не получите никакой дополнительной безопасности, добавляя сложности. Вам нужно дополнительнофакторыаутентификации. ПроверьтеДвухфакторная аутентификациядля списка различных решений и общего описания практики. Аутентификация делится на 3 основные категории:
- Имейте что-нибудь (брелок, смарт-карту, мобильный телефон)
- Знать что-то (Пароль, цифровой сертификат (Это просто очень длинный пароль!))
- Быть кем-то (отпечаток пальца, отпечаток сетчатки глаза)
По общему мнению, вам необходимо как минимумдваиз первых, чтобы иметь надежную безопасность. Дубликаты бесполезны (два пароля не лучше одного. Два брелока не лучше одного). Вы можете фишинговать пароль, но брелок с изменяющимся номером ограничивает удобство использования. Вы можете вырубить кого-то и украсть отпечаток пальца (ура голливудским фильмам), но тогда вы не сможете получить его пароль.
Обратите внимание, что брелки не обязательно должны быть другим устройством на связке ключей пользователя, просто это должно быть отдельное устройство от его компьютера, и где-то, где хранится его пароль.никогдахранимый. Смартфоны обычно подходят под это описание, и если вы можете разработать приложение, работающее на смартфонах пользователей, вы можете немного сократить расходы. Это зависит от того, насколько масштабное развертывание необходимо компании.
Также,ради любви к любому божеству, которому вы поклоняетесьне устанавливайте максимальную длину пароля.
решение2
Поскольку в настоящее время мобильные телефоны широко распространены в большинстве мест, где есть доступ к Интернету,
имеет смысл реализовать механизм двухфакторной аутентификации, который будет использовать мобильный телефон в качестве второй точки входа.
ДажеGoogle недавно вошел в этот круг.
Бывают случаи, когда телефон недоступен или вы не хотите, чтобы клиент ждал из-за задержки последовательности второго фактора мобильного телефона.
Вот трюк, который, возможно, уже запатентован и/или широко используется :-)
Я припоминаю, что видел в технической презентации схему, которая использовала одноразовый код, который отправлялся клиенту заранее. Когда они использовали тот, который был им доступен, новый отправлялся на их мобильные телефоны — предыдущий истекал, когда происходила эта отправка. Это была очень простая и интересная схема.
Важно знать, что двух- или многофакторная аутентификация не снижает важности хорошего пароля, который пользователь учится лучше защищать.
Кстати, я слышал о людях, которые теряли свои аппаратные брелоки, которые отсчитывали 8-значные последовательности аутентификации, в то время как они оставляли свои теперь уже не столь важные пароли на виду (или в своих кошельках). Так что со вторым фактором люди иногда могут чувствовать ложную безопасность, думая, что они разложили свои пресловутые яйца по разным корзинам.
решение3
Помимо оборудования, большинство дополнительных мер безопасности сводятся к тому, чтобы просто сказать пользователям, что нужно иметь 2 пароля вместо 1. Пока у них есть надежный пароль, это не добавляет никакой ценности. Существуют и другие специальные меры безопасности для других целей. Например, для моего банка, я сначала ввожу свое имя пользователя, а затем всплывает выбранная мной фотография, «доказывающая» мне, что я нахожусь на правильном сайте. Но это легко обойти с помощью нелегитимного сайта, который извлекает мою фотографию с легитимного сайта.
В конечном счете, я не думаю, что можно что-то сделать с программной стороны для повышения безопасности (кроме обычных процедур, таких как отказ от хранения паролей в открытом виде, использование https и т. д.) лучше, чем просто принудительно установить более надежный пароль.
Тем не менее, есть много того, что вы можете сделать, чтобы добавить видимости безопасности. Как это делают некоторые банки, делая ваш ответ секретным вопросом, а также вводя пароль. Есть несколько способов добавить реальную безопасность с помощью программного обеспечения, например, IP-фильтрацию, но это непрактично для большинства веб-приложений.
Как вы сказали, есть несколько аппаратных решений, таких как брелоки. Если вы хотите добавить действительно дополнительный уровень безопасности, я считаю, что это ваш лучший вариант.
решение4
я нашелPhoneFactorнекоторое время назад, но его могут использовать только клиенты из ограниченного числа стран.