Я с 2014 года работаю над безопасностью мобильных и веб-приложений. Много раз слышал от разных людей и в разном контексте про «трейдофф usability vs security», при этом с самого начала видел в этом какой-то подвох. В этом посте я поделюсь своим мнением, почему, на мой взгляд, это не трейдофф, и на самом деле от него давно стоит отказаться.
![image](https://habrastorage.org/r/w780q1/webt/cw/dg/ga/cwdgga7jh6mfiid-5hkday1m4fi.jpeg)
Под трейдоффом usability vs security как правило подразумевается следующая закономерность: чем безопаснее процесс, тем он неудобнее.
![image](https://habrastorage.org/r/w1560/webt/sr/wi/z0/srwiz0qycmmho-pnpniillzzeii.png)
Поясню на простых примерах, что имеется в виду:
На практике же пользователь зачастую не готов смириться с неудобством и заменяет «безопасный, неудобный» процесс на «небезопасный, менее неудобный»:
![image](https://habrastorage.org/r/w1560/webt/xn/it/i8/xniti8d2s6xztlucbytgds6jw6k.png)
Безопасный неудобный процесс не даст безопасности, если им не пользоваться. Сложность в том, что мы не можем за пользователя решить, как ему поступать. Мы можем предложить процесс, который считаем правильным. Следовать этому процессу или нет — выбор пользователя.
В первую очередь нужно повернуться к лесу задом, а к пользователю передом. Странно даже предлагать юзеру «безопасный, неудобный» процесс, ведь наша работа и заключается в том, чтоб организовать удобный. Давайте откажемся от мысли, что для получения security нужно пожертвовать usability, и попытаемся совместить их в одном решении.
![image](https://habrastorage.org/r/w1560/webt/fq/uu/ju/fquujuk5dbfv8h-9xedzeh5melo.png)
Наши примеры тогда приобретут следующий вид:
Чтобы получить такой результат, нам пришлось отказаться от высокомерной мысли, что пользователь по своей глупости отказывается от безопасного решения. Напротив, пользователь в силу своей рациональности выбирает то решение, которое ему удобнее. А наша задача — сделать так, чтоб оно же было и безопасным.
Мысль о том, что security не сочетается с usability до сих пор приходится слышать довольно часто. Некоторые идут дальше и делают утверждение, что по-настоящему безопасный процесс всегда будет неудобен, а значит, доступен только специалистам. Мне такой подход кажется в корне неверным.
Безопасность — это масс-маркет. Нельзя быть уверенным в безопасности своих соцсетей, если у ваших друзей пароль qwerty: злоумышленник напишет вам от их имени, и в опасности будут уже ваши средства. Соответственно, и безопасные способы хранения паролей (как и решения других задач) должны быть доступны среднему пользователю.
Постепенно на мобильные и веб-приложения ложится всё больше ответственности: у всех в смартфонах банковские приложения, а у кого-то и криптокошельки. Мы можем предотвратить дурацкие и обидные потери средств, только если изначально будем думать о безопасности и удобстве как вещах взаимодополняющих. Неудобный процесс не может быть безопасен, потому что пользователь не будет ему следовать.
Автор: Иван Иваницкий, ведущий аналитик Solar appScreener
![image](https://habrastorage.org/webt/cw/dg/ga/cwdgga7jh6mfiid-5hkday1m4fi.jpeg)
Что это такое
Под трейдоффом usability vs security как правило подразумевается следующая закономерность: чем безопаснее процесс, тем он неудобнее.
![image](https://habrastorage.org/webt/sr/wi/z0/srwiz0qycmmho-pnpniillzzeii.png)
Поясню на простых примерах, что имеется в виду:
- Пароль qwerty — удобно, небезопасно. Длинный пароль с символами разного регистра — безопасно, неудобно.
- Запускать код сразу в продакшн — удобно, небезопасно. Проверять его инструментами безопасности и проводить аудит — безопасно, неудобно.
- Переходить улицу, когда захочется — удобно, небезопасно. Переходить улицу на зелёный — безопасно, неудобно.
- Как видите, речь может идти не только о софте, а под «удобством» могут скрываться разные параметры. Тем не менее, закономерность налицо.
Что может пойти не так
На практике же пользователь зачастую не готов смириться с неудобством и заменяет «безопасный, неудобный» процесс на «небезопасный, менее неудобный»:
![image](https://habrastorage.org/webt/xn/it/i8/xniti8d2s6xztlucbytgds6jw6k.png)
- Длинный пароль с символами разного регистра запомнить сложно, поэтому он один на все аккаунты в соцсетях и интернет-магазины. Кто-то из них точно хранит пароли в plain text и либо потеряет их, либо продаст. В том числе, напомню, наш пароль от всего.
- Департамент ИБ обязал разработчиков прогонять код инструментом проверки безопасности. Но инструмент каждый раз выдаёт кучу уязвимостей, непонятно, где старые, где новые. В итоге их никто не исправляет.
- Светофор настроен неправильно, очень долго ждать зелёный, при этом машин нет, и люди решили переходить на красный.
Безопасный неудобный процесс не даст безопасности, если им не пользоваться. Сложность в том, что мы не можем за пользователя решить, как ему поступать. Мы можем предложить процесс, который считаем правильным. Следовать этому процессу или нет — выбор пользователя.
Что делать
В первую очередь нужно повернуться к лесу задом, а к пользователю передом. Странно даже предлагать юзеру «безопасный, неудобный» процесс, ведь наша работа и заключается в том, чтоб организовать удобный. Давайте откажемся от мысли, что для получения security нужно пожертвовать usability, и попытаемся совместить их в одном решении.
![image](https://habrastorage.org/webt/fq/uu/ju/fquujuk5dbfv8h-9xedzeh5melo.png)
Наши примеры тогда приобретут следующий вид:
- Мы не предлагаем пользователю запоминать много длинных паролей. Мы предлагаем ему пользоваться менеджером ключей и запомнить один сильный мастер-пароль. В идеале менеджер ключей должен быть встроен в браузер, чтобы не приходилось каждый раз копипастить.
- Инструмент безопасности следит, какая уязвимость старая, а какая новая, и отображает их отдельно. Пользователь видит историю работы с этой уязвимостью и понимает контекст. Работать стало проще, уязвимости устраняются.
- Время светофора рассчитано с учётом потока машин и людей, никому не приходится долго ждать.
Чтобы получить такой результат, нам пришлось отказаться от высокомерной мысли, что пользователь по своей глупости отказывается от безопасного решения. Напротив, пользователь в силу своей рациональности выбирает то решение, которое ему удобнее. А наша задача — сделать так, чтоб оно же было и безопасным.
Правильный майндсет
Мысль о том, что security не сочетается с usability до сих пор приходится слышать довольно часто. Некоторые идут дальше и делают утверждение, что по-настоящему безопасный процесс всегда будет неудобен, а значит, доступен только специалистам. Мне такой подход кажется в корне неверным.
Безопасность — это масс-маркет. Нельзя быть уверенным в безопасности своих соцсетей, если у ваших друзей пароль qwerty: злоумышленник напишет вам от их имени, и в опасности будут уже ваши средства. Соответственно, и безопасные способы хранения паролей (как и решения других задач) должны быть доступны среднему пользователю.
Постепенно на мобильные и веб-приложения ложится всё больше ответственности: у всех в смартфонах банковские приложения, а у кого-то и криптокошельки. Мы можем предотвратить дурацкие и обидные потери средств, только если изначально будем думать о безопасности и удобстве как вещах взаимодополняющих. Неудобный процесс не может быть безопасен, потому что пользователь не будет ему следовать.
Автор: Иван Иваницкий, ведущий аналитик Solar appScreener