Интересная задачка: если вы делаете SaaS-услугу и берете деньги "за пользоватяля в месяц", то как сделать так, чтобы реально услугой не пользовалось два, три, а может и сто пользователей? Ведь "добрый" юзер может выложить логин-пароль в блог и сказать "уплочено - не волнует".
На самом деле, волнует. SaaS-провайдерам надо расчитывать себестоимость услуг исходя например из среднего уровня использования по системе. Например, вот табличка с показателями фактического использования услуги пятью обычными пользователями, с какими-то разными, но в целом не отличающимися на порядки показателями:
А теперь предположим, что Юзер 5 выложил пароль у себя в блоге и "разрешил" своим друзьям пользоваться сервисом как бы от его имени:
В итоге, экономика сервиса может заметно поменяться. Конечно, SaaS-сервисы подразумевают, что пользователей много и поэтому один такой вот Юзер 5 не может нанести серьезных убытков. Однако, возможны ситуации, когда их далеко не один и все эти размышления начались у меня когда я думал над "защитой" для сервиса, где есть большой потенциал того, что пароль выложат на веб и будут пользоваться ВСЕ.
То есть, считаем экономику под некий средний usage, при нарушении коротого она начинает ломаться. Мы, конечно, должны предусмотреть такие ситуации в договоре и в структуре тарифов и это делается всегда и везде, конечно. Но также хочется подумать над техническими мерами, которые позволят автоматически контролировать соблюдение договора "один логин - один юзер".
Итак, помимо того, что есть какие-то очевидные идеи, я попробовал спросить в твиттере :-) народного мнения и ответы по этому поводу вы можете почитать полистав твиты в результатах этого поиска. Любопытно.
Самый интересный вариант на данный момент, конечно, это такой:
- Использовать для авторизации не только пару логин/пароль, но и еще один дополнительный одноразовый код, который отправляется при успешной авторизации на заранее зарегистрированный в системе мобильный телефон "легального" пользователя по SMS. Стоимость отправки SMS как я думаю будет 1-2 цента - немного.
- Получив SMS юзер указывает о его в на странице авторизации и попадает в рабочий интерфейс системы, пользуется.
- При этом устанавливается авторизованная сессия для этого компьютера, например методом сопоставления cookie/IP-адрес или похожим. Срок действия авторизации - достаточно долгий, например одна-две недели.
- При повторной авторизации при уже имеющейся открытой сесии та первая сессия закрывается и предпринимается попытка открыть другую на другом компьютере при использовании той же самой методики с SMS и дополнительным одноразовым паролем.
- Статистика по открытию новых сессий мониторится роботом, который определяет потенциальный fraud и если надо - докладывает в отдел по работе с клиентами для разборок руками по какому-то придуманному алгоритму.
Расчет на то, что если ты выложишь логин-пароль в блог, то тебя заколебут SMS'ками от сервиса. Если ты дашь его коллегам, то вы все равно не сможете пользоваться сервисом одновременно, так как у сессия у других будет постоянно отваливаться.
Так как SaaS - это как правило услуги для бизнес-пользователей из среднего/малого бизнеса, при выявлении признаков нарушений можно показывать предложение купить дополнильных юзеров со скидкой - бизнес-пользователям это более-менее понятно, так как есть для работы нужен настолько хороший сервис, что ты спросил у коллеги пароль от его аккаунта, то за счет конторы да со скидкой можно и купить...
Еще предлагаются сертификаты ЭЦП, токены, одноразовые пароли и прочие замечательные зверушки. Ответ на это такой: так слона не продашь. Для покупки сервиса в этом случае юзеру нужно будет пойти куда-то и за деньги получить дополнительное, на самом деле и не ясно нужное ли ему средство авторизации.
Для налоговой отчетности электронная цифровая подпись работает хорошо - там она снимает много рисков фальсификации, например. В случае с другими SaaS-сервисами - задумайтесь.. Если бы например каждый раз для авторизации в почте надо было бы использовать одноразовый пароль со специального брелка, были бы вы и ваши коллеги особо счастливы?..
В общем, хочу попросить вас предлагать свои идеи по этому вопросу и критиковать имеющиеся. Только, пожалуйста, не надо наивный совсем уж вопросов и предложений - в ЦК не дураки сидят (с) ;)
Напомню, в идеале цель чтобы логином пользовался только один человек. Не два, три, четыре последовательно, а только один. Вообще. Всегда.
Все мероприятия, связанные с защитой чего-либо, состоят из технических и административных мер. Административные тут говорят, что один логин - один человек, это договор, с которым юзер согласился. Технические помогают реализовать это право поставщика услуги давать доступ только одному человеку, не логину.
Понятно, что достичь стопроцентной защиты не получится. Вопрос в том, как максимально 1) просто 2) недорого 3) быстро приблизиться к максимально возможному удовлетворяющему результату.
Спасибо!
update1: подсказывают, что например в зданиях Лукойла запрещено пользоваться мобильными телефонами и сотрудники таких контор в пролете. Ок, можно добавить к SMS еще и письмо на заранее зарегистрированный, в том числе корпоративный (лукойловский) email - делу вроде не мешает?
update2: говорят, что это вариация анекдота "купи себе козу и мучайся с ней" в том смысле, что это слишком сложно для пользователя и создает проблемы. Ок, можно включать эту дополнительную авторизацию только для тех, кого мониторинг засек в двойной использовании, остальных не трогать. Как вариант, можно делать это например под соусом "а не украли ли у вас пароль? теперь мы будем вам проверять, недолго, месяц...". Нормально?
update3: предлагают при логине показывать какие-нибудь заранее сохраненные приватные данные пользователя, которые он не хотел бы чтобы видели другие. Я просил же без наивных предложений ;-) Персональные данные хранить и обрабатывать ОЧЕНЬ дорого. Это хуже fraud'а чаще.
update4: я сражен колоссальным кол-вом комментаторов, которые пишут "срубать первую сессию если залогинились снова" несмотря на то, что я сказал что 1) не надо давать очевидных советов 2) нет цели не пускать двух одновременно, есть цель пустить ТОЛЬКО одного человека ВООБЩЕ. Представьте, что есть сервисы, где использование предполагает оплату. Это не то, что вы привыкли делать в своих интернет-гигантах и замечательных стартапах - это другое отношение к пользователям, другая мотивация, другая ответственность - люди деньги платят по договору между двумя юрлицами, как правило.
Recent Comments