Безопасные интерфейсы

2013-09-19 15:54 542 Подобається 2

Все знают о существовании проблемы с вирусами, которые воруют ваши пароли (снимая клавиатуру или другими способами). Есть даже целая индустрия, которая кормится за счет борьбы с такими.

Сегодня, на злобу дня, я решил написать небольшую заметку о безопасности. О том, как её усилить средствами интерфейса и небольших усилий со стороны разработчиков.

Костыли вместо решения

Сейчас эту проблему пытаются переложить на плечи пользователей: мол, покупайте антивирусы, придумывайте и помните уникальные пароли к каждой регистрации. А человек не способен запоминать столько паролей. Значит нужен специальный софт, который их хранит. К таким программам нужно придумать мастер-пароль, который точно нужно запомнить. Он должен быть очень сложным. Таким, чтобы злоумышленники не могли его получить как с помощью социальной инженерии, так и через вредноносные программы. Всё это мило, но влетает людям в копеечку, к радости разработчиков антивирусов и паролехранилок.

Преамбула

Зимой, по неосторожности, я заразил свою тёмную сторону макбука (под Windows) маленьким кейлоггером, который своровал у меня все пароли и передал их какому-то нехорошему парню (или девушке, не будем сексистами), он благополучно украл всё, используя пару интерфейсных уязвимостей, о которых расскажу ниже.

Как же узнать о том, что у тебя своровали пароли? Очень просто: ты не можешь войти в большинство популярных сайтов. Например, в социальные сети. Иногда ты их даже не можешь восстановить, потому что кто-то сменил в твоём логине электронную почту и теперь нужно писать в кучу служб поддержки, чтобы тебе помогли и восстановили доступ.

Заметный случай произошел с аккаунтом в игре World of Tanks, в которую я тогда играл и влил в неё порядка 200 долларов за всё время. Потерять такой аккаунт было неприятно и я решил решить проблему, написав в службу поддержки.

Уже на этом этапе у меня возникли трудности: писать в поддержку можно только от имени аккаунта, который увели. Чувствуете подвох? Пришлось регистрировать новый и писать от его имени, пройти семь кругов ада проверок личности и спустя две недели я получил свой аккаунт назад.

И то, в большей степени благодаря помощи Лёши Копылова из UIDG, который сейчас трудится в Wargaming, компании-разработчике этой игры.

Корень проблемы и что делать

Внимательный читатель уже догадался к чему я веду. Всего этого можно было избежать, если бы авторы софта (любого, включая веб) озаботились парой простых принципов безопасности.

Вот они:

1. В большинстве интерфейсов новый пароль можно установить, если знаешь текущий. Предполагается, что это защищает вас от случаев, когда аккаунт уже открыт в браузере, и кто-то хочет изменить пароль. Это не решает более важную ситуацию — если злоумышленник уже знает пароль, то ему не составит труда изменить его.

Как защищаться: решение приходит на ум быстро — давайте отправлять запрос на смену пароля на e-mail, который зарегистрирован в аккаунте. Без подтверждения по e-mail со стороны пользователя пароль не меняем. Одно дополнение и большинство аккаунтов у меня бы не увели.

2. E-mail в последние годы стал логином для доступа. Это хорошо — не нужно придумывать ники и специальные логины, достаточно помнить свой основной электронный адрес. Плохо, что его можно поменять не зная текущего пароля. Значит, аккаунт можно увести, достаточно сменить привязанный e-mail, если вкладка с доступом уже открыта (или пароль запомнил браузер).

Как защищаться: по аналогии со сменой пароля: при попытке установить новый e-mail — делать запрос на текущий с подтверждением.

3. Вы могли заметить, что два пункта выше завязаны на электронную почту. Это неплохо, но для неё важно придумать уникальный и сложный пароль, запомнить его и нигде не хранить. Мы уже говорили о том, что это непросто и стоит решить проблему с интерфейсной стороны. Если вор сначала уведёт у вас доступ к почте, то пункты выше не помогут.

Как защищаться: Для проектов, которые считают себя важными для пользователя, я рекомендую внедрить возможность привязки номера телефона к аккаунту пользователя. Это создаст двухэтапную аутентификацию (как в Google, Вконтакте или Dropbox), при которой злоумышленнику нужно иметь доступ к моему телефону и моему почтовому ящику, а вероятность этого крайне мала, если в мозгах у вас не огурец. Главное — не делайте это обязательным, пусть пользователь сам всё сделает. А интерфейсы для банков стоит снабдить такой функцией по-умолчанию.

Вывод...

1. Не давайте менять пароль без подтверждения по e-mail пользователя. Не уведомление, а подтверждение, слышите? Не нужно меня радостно уведомлять о том, что кто-то увёл мой аккаунт.

2. Не давайте устанавливать новый e-mail без доступа к старому. Случаи с потерей доступа к старому адресу можно разбирать в индивидуальном порядке.

3. Если у вас хранятся важные данные пользователя и доступ к вашему проекту его крайне интересует, то внедрите двухэтапную аутентификацию с помощью мобильного телефона.

Источник

Коментарі (0)

Додати смайл! Залишилося 3000 символів
Cтворити блог

Опитування

Ви підтримуєте виселення з Печерської лаври московської церкви?

Реклама
Реклама