Ко мне обратились помочь разобраться с вопросами безопасности и решить замечания, которые выставили для сайта специалисты компании WhiteHat. Некоторые замечания действительно по делу, но вот одно меня сильно удивило - ответ на вопрос безопасности должен быть замаскирован и никогда не передаваться с сервера в браузер.
На сайте уже реализована двуфакторная система авторизации, и чтобы компьютер стал доверенным, сайт может спросить вопрос безопасности (Security Question). Почему WhitaHat решили так серьёзно защищать это поле - делать больше нечего? Может они волнуются, что кто-то через плечо увидит ответ на вопрос безопасности?
Допустим, что защита придумана от подглядывания, если какой-то америкос решит регистрироваться на сайте на рабочем месте и коллеги могут посмотреть его ответ. Но только глядя на доступные вопросы, можно понять, что WhiteHat занимается реальной фигней, потому что среди вопросов даже есть - на какую компанию вы работаете. Да коллегам на работе даже не нужно подглядывать через плечо, чтобы узнать ответ бедного америкоса, если он решит регистрироваться на работе и выберет этот вопрос.
Защищаться от подглядывания бесполезно, потому что на всех сайтах используются простые вопросы, на которые легко найти ответ, если проводить направленную атаку на определённого человека, особенно если это коллега. К коллеге я могу подойти лично и спросить - а какой у тебя любимые цвет? Вы думаете он мне не ответит? Или могу спросить, какая твоя любимая футбольная команда? А ведь именно такие вопросы чаще всего спрашивают сайты.
Мне не нужно подглядывать через плечо, когда я могу спросить человека. Социальная инженерия все ещё отличный инструмент. Да даже не зная человека можно узнать о нем много личного, особенно, если это парень. Можно через фейковые аккаунты в социальных сетях с красивой длинноногой блондинкой на профиле подкатить к жертве и спросить любимый цвет. Любой мужик подумает, что с ним флиртуют, а не обрабатывают.
Ещё хуже выглядело требование, что ответ на вопрос безопасности никогда не должен передаваться с сервера на клиент. Ну хорошо, для страницы профиля мы реализовали эту возможность. Если пользователь идёт в свой профиль, то ответ на вопрос спрятан под звездочками, как и пароль. В поле ответа реально мусор. Если пользователь постит на сервер форму, то мы там проверка - если передан все тот же мусор, то в игнор, а если значение другое, то обновить ответ. Программисты компании реализовали это и WhiteHat вроде оказались довольны.
Но теперь они хотят подобное на странице регистрации. Ну это же хуйня из под коня. На форме регистрации уже есть поле, которое никогда не должно возвращаться с сервера на клиент - это пароль. Стоит заполнить форму регистрации и сделать ошибку, как форма перерисуется без пароля. Пользователь вынужден исправить ошибку и снова вводить свой пароль, подтверждение, каптчу, а после выполнения этого требования WhiteHat придётся ещё и ответ на вопрос безопасности ответ писать заново. Сплошные неудобства, которые совершенно не увеличивают безопасность.
Мне кажется, что WhiteHat просто забыли, зачем была создана двуфакторная авторизация - это ответ автоматическому прогону сайта по безе паролей. Допустим, что хакеры спиониздили базу e-mail и паролей с какого-то крупного сайта. Теперь они могут прогнать автоматическим скриптом всю базу на любом сайте и по разным данным будет до 10% совпадений. И я верю этим данным, очень часто пользователи устанавливают одни и те же пароли на разные сайты.
Спросить дополнительный вопрос сразу после входа на сайт - отличный способ остановить автоматическое сканирование. Базы e-mail с паролями становятся бесполезными. Нужно только хранить эти данные отдельно, нужно иметь более одного вопроса в базе, спрашивать случайным образом и т.д. А звёздочки при регистрации не смогут защитить, только добавят неудобств.
Тогда давайте закроем абсолютно все поля звездочками. А вдруг кто-то незнакомый увидит, какое я имя или фамилию ввожу, и не дай бог кто-то увидеть дату рождения женщины. Не, безопасность конечно круто, но нужно меру знать и думать об удобстве пользователей. Я считаю, скрытие ответа на вопрос безопасности под звездочками паранойей, а требование не передавть его с сервера это еще больше боязнь тараканов. Ну реально, безопасности от этого не увеличивается.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
Михаил здравствуйте. Хотел бы спросить у вас не по теме. Хочу научится программировать и стать специалистом ИТ. С какого бы языка вы мне посоветовали начать? Думаю начать с веба, но в то же время все говорят. что с ВЕБа нельзя начинать, не будешь знать нужные паттерны и алгоритмы. Ваше мнение для меня важно. Что вы посоветуете?
Веб - не язык. Начинай с C#, на нем можно и под Web и под десктоп
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.