Я с 2014 года работаю над безопасностью мобильных и веб-приложений. Много раз слышал от разных людей и в разном контексте про «трейдофф usability vs security», при этом с самого начала видел в этом какой-то подвох. В этом посте я поделюсь своим мнением, почему, на мой взгляд, это не трейдофф, и на самом деле от него давно стоит отказаться.



Что это такое


Под трейдоффом usability vs security как правило подразумевается следующая закономерность: чем безопаснее процесс, тем он неудобнее.



Поясню на простых примерах, что имеется в виду:

  • Пароль qwerty — удобно, небезопасно. Длинный пароль с символами разного регистра — безопасно, неудобно.
  • Запускать код сразу в продакшн — удобно, небезопасно. Проверять его инструментами безопасности и проводить аудит — безопасно, неудобно.
  • Переходить улицу, когда захочется — удобно, небезопасно. Переходить улицу на зелёный — безопасно, неудобно.
  • Как видите, речь может идти не только о софте, а под «удобством» могут скрываться разные параметры. Тем не менее, закономерность налицо.

Что может пойти не так


На практике же пользователь зачастую не готов смириться с неудобством и заменяет «безопасный, неудобный» процесс на «небезопасный, менее неудобный»:



  • Длинный пароль с символами разного регистра запомнить сложно, поэтому он один на все аккаунты в соцсетях и интернет-магазины. Кто-то из них точно хранит пароли в plain text и либо потеряет их, либо продаст. В том числе, напомню, наш пароль от всего.
  • Департамент ИБ обязал разработчиков прогонять код инструментом проверки безопасности. Но инструмент каждый раз выдаёт кучу уязвимостей, непонятно, где старые, где новые. В итоге их никто не исправляет.
  • Светофор настроен неправильно, очень долго ждать зелёный, при этом машин нет, и люди решили переходить на красный.

Безопасный неудобный процесс не даст безопасности, если им не пользоваться. Сложность в том, что мы не можем за пользователя решить, как ему поступать. Мы можем предложить процесс, который считаем правильным. Следовать этому процессу или нет — выбор пользователя.

Что делать


В первую очередь нужно повернуться к лесу задом, а к пользователю передом. Странно даже предлагать юзеру «безопасный, неудобный» процесс, ведь наша работа и заключается в том, чтоб организовать удобный. Давайте откажемся от мысли, что для получения security нужно пожертвовать usability, и попытаемся совместить их в одном решении.



Наши примеры тогда приобретут следующий вид:

  • Мы не предлагаем пользователю запоминать много длинных паролей. Мы предлагаем ему пользоваться менеджером ключей и запомнить один сильный мастер-пароль. В идеале менеджер ключей должен быть встроен в браузер, чтобы не приходилось каждый раз копипастить.
  • Инструмент безопасности следит, какая уязвимость старая, а какая новая, и отображает их отдельно. Пользователь видит историю работы с этой уязвимостью и понимает контекст. Работать стало проще, уязвимости устраняются.
  • Время светофора рассчитано с учётом потока машин и людей, никому не приходится долго ждать.

Чтобы получить такой результат, нам пришлось отказаться от высокомерной мысли, что пользователь по своей глупости отказывается от безопасного решения. Напротив, пользователь в силу своей рациональности выбирает то решение, которое ему удобнее. А наша задача — сделать так, чтоб оно же было и безопасным.

Правильный майндсет


Мысль о том, что security не сочетается с usability до сих пор приходится слышать довольно часто. Некоторые идут дальше и делают утверждение, что по-настоящему безопасный процесс всегда будет неудобен, а значит, доступен только специалистам. Мне такой подход кажется в корне неверным.

Безопасность — это масс-маркет. Нельзя быть уверенным в безопасности своих соцсетей, если у ваших друзей пароль qwerty: злоумышленник напишет вам от их имени, и в опасности будут уже ваши средства. Соответственно, и безопасные способы хранения паролей (как и решения других задач) должны быть доступны среднему пользователю.

Постепенно на мобильные и веб-приложения ложится всё больше ответственности: у всех в смартфонах банковские приложения, а у кого-то и криптокошельки. Мы можем предотвратить дурацкие и обидные потери средств, только если изначально будем думать о безопасности и удобстве как вещах взаимодополняющих. Неудобный процесс не может быть безопасен, потому что пользователь не будет ему следовать.

Автор: Иван Иваницкий, ведущий аналитик Solar appScreener