
Это важная вещь, как известно любому владельцу онлайнового банковского счёта или VPN. Но гораздо меньше внимания уделяется другой стороне проблемы: как вы можете сообщить удалённой системе, что уже отошли от компьютера? Как осуществить деидентификацию?
Мой домашний компьютер приходится выключать (или завершать сеанс), когда я хочу деиндентифицироваться. Для меня такой способ подходит, потому что я понимаю, что это необходимо делать каждый раз, но многие люди просто оставляют компьютер включенным, когда отходят от него. В результате, на многих офисных компьютерах продолжается сеанс работы, когда владелец компьютера пошёл обедать или даже когда он ушёл домой. Это очевидная дыра в безопасности.
Самый обычный способ решения проблемы — установка таймера. Можно автоматически поставить таймер на прекращение сеанса работы через пять минут неактивности, например. Однако, чтобы правильно поставить таймер, нужно точно всё рассчитать. Слишком быстрое завершение сеанса будет раздражать пользователя, а слишком позднее угрожает безопасности. Мой корпоративный почтовый сервер заканчивает сеанс примерно через 10 минут, и это меня регулярно раздражает.
Кое-кто экспериментирует с токенами: такими USB-брелками, которые должны быть вставлены в USB-порт, чтобы компьютер работал, или беспроводными RFID-брелками, при удалении которых от компьютера на несколько метров сеанс работы автоматически завершается. Конечно, люди будут постоянно стремиться оставить свой токен возле компьютера, потому что так им проще. Поэтому желательно совместить токен с ключами от автомобиля или рабочим бэджем, в этом случае пользователи будут вынуждены носить его всё время с собой. Таким способом можно минимизировать риск.
Всё-таки, это дорого. В качестве более дешёвого варианта можно рассмотреть исследовательский проект, в рамках которого замеряется удалённость от компьютера Bluetooth-устройства, например, мобильного телефона. Систему можно запрограммировать так, что компьютер будет выключаться, если определённый мобильный телефон покинет зону досягаемости.
Некоторые системы заканчивают сеанс после каждой транзакции. Такой способ неприемлем для компьютеров, но вполне может подойти для банкоматов. Он может вытолкнуть карточку до того, как выдать деньги, и убедиться, что я забрал её, а перед каждой новой транзакцией заставлять снова вставить карточку и ввести пин-код.
Такому способу есть понятный физический аналог: дверной замок. Он защёлкивается автоматически при закрытии двери или остаётся открытым, пока вы сами его не защёлкнете? Первый вариант соответствует системе с автоматическим завершением сеанса после каждой транзакции, а второй вариант — это завершение сеанса вручную. Оба типа замков продаются и используются, и ваш выбор типа замка зависит от того, как вы используете дверь и кто, по вашему мнению, может попытаться в неё вломиться.
Разработка систем с точки зрения юзабилити — очень сложная задача, особенно если приходится думать ещё о безопасности. Практически по определению, делая систему более безопасной, вы делаете её менее юзабельной.
Выбор модели деидентификации во многом зависит от того, как система используется, а также от оценки потенциальных угроз. Вам придётся выбирать между увеличением безопасности и угрозой взбесить пользователей, и нахождение правильного баланса требует времени и тестирования, и это больше искусство, чем наука.