Интересная задачка: если вы делаете 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) нет цели не пускать двух одновременно, есть цель пустить ТОЛЬКО одного человека ВООБЩЕ. Представьте, что есть сервисы, где использование предполагает оплату. Это не то, что вы привыкли делать в своих интернет-гигантах и замечательных стартапах - это другое отношение к пользователям, другая мотивация, другая ответственность - люди деньги платят по договору между двумя юрлицами, как правило.
Rencontre pour le sexe free porn gratis
Posted by: films porno | сент. 16, 2013 at 09:55
В SaaS "Ваш финансовый аналитик" мы пошли именно по пути ограничения одновременного использования продукта. Т.е. проверяем сессии и ругаемся, если одновременно пытается зайти второй человек. Раздавать пароль зная, что человек может зайти, а ты останешься за дверью - хороший стимул не раздавать. Да, по мелочам можно договориться с другом, что сегодня я юзаю сервис, завтра ты. Но массово раздавать - себе проблемы.
Все лучше, чем цифровые подписи в современном их виде да еще в России. Сегодня ставил новый клиент-банк от Райффайзена - обплювался (криптопро, сертификаты, то то не так, то это, танцы с бубнами, только IE и т.п.). Искренне жаль бухгалтера, которому приходится пользоваться такими "технологиями 21-го века".
Posted by: Вит.А. | авг. 25, 2010 at 23:00
предлагаю корректировать ввод, собирать вводы в общий поток и слать всем одновременным сессиям - пусть мучаются все лишнии сессии, при этом не лишая друг-друга поочерёдного пользования и создавая проблему private'а ... но против пользования по расписанию не поможет, если только не сделать повтор всех действий в текущей сессии из предыдущей при использовании с другого/нового места под видом восстановления предыдущей/потерянной сессии (пусть запаривает каждого последующего предыдущим + делая полезное дело где-бы не бросили предыдущую сессию)
Posted by: uguom | авг. 25, 2010 at 01:42
оплата должна быть за операции, пользователь может купить определенное кол-во не меньше определенного минимума.
имхо, это решает проблему несанкционированного использования мощностей.
Posted by: A-lebedev | авг. 17, 2010 at 15:57
и чем всё закончилось
Posted by: uguom | авг. 17, 2010 at 00:06
Вариант - новая сессия - 100р. одна сессия в месяц бесплатно.
Если что, мне 10% :)
Posted by: kpoxa | авг. 13, 2010 at 14:08
Сражен или не сражен.. что кому-то очевидно, то другому неведомо :)
Лучший вариант - банить нафиг, при подозрении на множественное использование аккаунта. То, что одновременно может работать одна сессия это банальность, но скорее всего она необходима и без нее нормально подобное ограничение работать не будет, смс и её содержимое тоже можно выложить в интернете. Если цена вопроса позволяет, то можно хоть токены выдавать пользователям сервиса, не знаю правда, как их подцепить к браузеру, но наверняка придумать можно. Можно адреса, откуда можно коннектиться, прописать в договор и только с них и давать доступ. Вариантов уйма, нужно только понимать насколько это будет неудобно пользователям, на достенет ли их настолько, что они перестанут пользоваться сервисом. Отваливание сессии при повторном логине не менее достает, чем если бы у меня телефон надрывался от СМС.
Posted by: kpoxa | авг. 13, 2010 at 13:55
1 логин = одна сессия, при повторном логине первая сессия сбрасывается, одна сессия = 1 ip.
Posted by: kpoxa | авг. 13, 2010 at 13:47
Может http://enum.ru/ ?
Posted by: Account Deleted | авг. 12, 2010 at 21:29
может пример/модель не удачная всё же
далее тоже не понятно- вам нужно чтобы они все же приобрели индивидуальные аккаунты или вам нужно не путаться с такими активными-разношерстными аккаунтами при выявлении мерзавцев
>Там каждый аккаунт стоит денег, а в принципе можно работать всей конторой под одним аккаунтом.
Posted by: uguom | авг. 12, 2010 at 19:32
Я показал модель: есть некий сервис, который никак больше не монетизируешь, только per user flat rate и предложил как бороться с фродом. Например, это Salesforce CRM. Там каждый аккаунт стоит денег, а в принципе можно работать всей конторой под одним аккаунтом.
Posted by: Petr Didenko (www.kip.ru) | авг. 12, 2010 at 18:02
Я не технарь, я коммерсант и мне странно видеть такую дилемму.
Если действительно риск фрода велик и этот фрод действительно может повлиять на проект, так не проще ли использовать экономические, а не технические методы?
Т.е. сделать тариф за пользование не flat rate, а исходя из объема потребленных услуг. Таким образом если пароль утечет в сеть, то деньги за использование сервиса компания все равно получит, а задача охранять пароль будет великолепно исполнятся тем юрлицом, которое за него платит.
Хотя, конечно, это зависит от специфики сервиса, в которую Петр нас не посвятил.
Posted by: Евгений Николаев | авг. 12, 2010 at 17:21
Срубать вторую сессию все равно нужно - профилактически.
При появлении признаков фрода [частый логин из географически совсем разных мест, более трех компьютеров (рабочий, ноутбук, нетбук - больше точно никому не надо), перерасход средней квоты] - автоматическая смена пароля с отсылкой на указанный телефон/email. С одной стороны, это избавит честного человека от анального рабства с one time passwords, с другой - нечестный будет все так же умучен постоянными сменами пароля.
Posted by: Account Deleted | авг. 12, 2010 at 09:18
Мне кажется,что надо отталкиваться от специфики каждого SaaS -сервиса отдельно. Технически проблему раздачи логинов просто так думаю не решить,поэтому надо,чтобы пользователь просто НЕ ХОТЕЛ давать свой логин. С почтой все понятно (никто не хочет,чтобы читали его переписку), а для другого сервиса надо смотреть на его специфику.
Posted by: Zhenya | авг. 12, 2010 at 09:16
правда распозновалка людей это как грабля - с чего вдруг у чуваков не посменный режим работы/пользования на том же рабочем месте (отпуски/больничные и тп), запарить их покупкой ещё одной лицензии/юзера
Posted by: uguom | авг. 12, 2010 at 01:08
пункты 1.-5. напоминают путь создания геморного банк-клиента, но у тех хоть использование файлов ключей как-то оправдано и по опыту украины даже двумя - даже jre мозги u6ym
без конца менять челу пароль за его разношерстную активность - это потерять клиента без гарантий получить мерзавцев в клиенты
от потчёта трафика уже давно отказались на безлим тарифах (у небезлим в цене содержится стоимость ресурсов на это) - по возможности это на стороне клиента, как у sap
бонусировать чем-то пользователей за пассивность это как возвращать деньги
похоже в сеансе придётся показывать постепенно мутирующие (за весь сеанс) изображение и в следующей сессии непонятно в какой момент попросить раставить наиболее запоминаемые (diffrent) моменты/кадры в нужной последовательности - пусть хоть два из пяти (или одна первая или последняя) правильно будут стоять уже тот же чел ... подать как защиту и тренировалку памяти, но заставить пользоваться не получется
Posted by: uguom | авг. 12, 2010 at 01:04
А может вообще не по пользователям учитывать, а по заведенным юрлицам или количеству операций, размеру базы, проводкам, количеству контр-агентов (везде или, а то мозг вскипит)? Много пользователей в одном аккаунте явно для того, чтобы сделать много работы по цене халявы, вот по объемам работ их и ограничивать. Сложнее, зато гибче и попутно можно разных по потребностям пользователей по разному тарифицировать, как то же Microsoft :)
Posted by: Kons720 | авг. 12, 2010 at 00:31
Вообще мне кажется что при поставленных условиях задачу не решить. Ну нету у нас интернет паспортов пока :) А если надо снизить вероятность и не навредить то можно тихонечко отслеживать с каких IP адресов человек заходит в систему. У одного человека врядли наберется слишком много адресов подсетей. А в случае массового обмана и адресов наберется сразу по многу. Конечно имеет смысл учитывать подсети всяких йот и прочих билайнов и не бить за них. Мониторим людей (если конечно это не считается персональными данными), и в случае аномального поведения с множеством адресов (и с одновременными сессиями как дополнительным признаком на которые мы допустим смотрим сквозь пальцы, чтобы не тревожить пользователя) говорим пользователю "Уважаемый, скорее всего злые люди похитили у вас пароль. Это очень страшно и вообще. Получите новый." И относительно мягко и самых свирепых с блогами и варезниками можно отсечь (ну кроме уж совсем фанатов, но таких видимо можно будет отлучить от системы на юридических основаниях).
Posted by: Kons720 | авг. 12, 2010 at 00:20
хе-хе, проблема microsoft догнала/нашла вас - как сделать чтобы пипл поочерёдно не пользовался в терминале office/services ;)
для тех кто не понял - боремся с поочерёдным многопользовательским юзом, чтобы один купивший акк/логу/доступ по schedule не пустил всех своих друзей в сервис а юзал только в одного наиболее комфортно с разных мест не вводя/делая ничего лишнего ... теоретически ему ничего не мешает сделать терминальный доступ на этот единственный акк, не типично высокая нагрузка по акку конечно замониторится но блин заплачено же
sms и faceapi авторизация конечно не вариант (хотя фото-маска и автоматическая пересылка смс работают) - всё остальное обезличено и не позволит поймать мерзавцев
а ещё хочется сделать общий ценник, не вводя cloud-billing пользователям в мозг и фактически разгоняя их тк никто не знает как он наюзает всё же
даже если сделать какой-нибудь контрольный вопрос формируемый из данных предыдущей сессии - реально запарит же отвечать, хотя если оформить как защиту при угоне доступа (защищаемся от чела который моз залесть за вас), но всё равно запарит же особенно на коротких сессиях ... мутация пароля аналогично, потом придётся pinы и pukи придумывать тк мутацию утром после плотного вечера можно не вспомнить (многие не помнят какой пароль на bois поставили перед сном, а после больницы так ваще)
пока дальше придумываю....
Posted by: uguom | авг. 11, 2010 at 23:15
Если приложение позволяет, некоторые настройки делать "зашитыми", заполнять только при регистрации и не позволять их изменять.
Например в программе для печати на бланках доверенностей (видел я однажды такую) нельзя изменить название организации.
Posted by: websuslik | авг. 11, 2010 at 20:28
Отправлять смс - это лишнее раздражение пользователей, лично я такие сервисы стараюсь избегать. Считаю, что такой способ оправдан только для очень критичных действий, например операции с деньгами.
Не вполне уверен, что это подойдет для всех SaaS-сервисов, но думаю, что во многих есть функция печати бумажных документов. На бумажном документе должно быть наименование физического или юридического лица.
Сделайте так, чтобы это наименование можно было менять с приложением некоторых усилий, но не слишком сложно.
Posted by: Vladimir | авг. 11, 2010 at 19:17
Пользователь вводит свой _личный_ пароль, а не автоматически сгенерированный сервисом.
Обычно свой пароль вводится с какой-то интенсивностью (общее время ввода или время ввода какой-то части пароля). Можно отсылать аяксом таймстэмпы каждого нажатия клавиши клавиатуры во время ввода пароля. На сервисе после 2-3 авторизаций подсчитать среднее время ввода пароля и потом сравнивать. Чужой пользователь будет дольше вводить не свой пароль, а тем более если copy/paste, то сразу засечь можно :)
Для пущей надежности сравнивать с каким-нибудь токеном (User-Agent, ip and etc)
Posted by: butylski | авг. 11, 2010 at 18:43
Залогинелся, остальные сессии нужно удалять. Так физически они все будут работать по очереди. Плюс ввести ограничения на количество различных связок ip-адрес-useragent за сутки.
Posted by: Артем Миолини | авг. 11, 2010 at 17:32
2. "Поощрить". Методика, проверенная соцсетями.
А зачем, в общем, запрещать пользователю "делиться сервисом"? От ограничений люди расстраиваются, а что официальный покупатель, что "просители" - наши клиенты, и наша задача их радовать и лелеять.
Не надо запрещать. Намного лучше - разрешать. Инвайты, да, причём с преимуществами относительно безынвайтной регистрации. "Если вы зарегистрируетесь на сайте сами, то получите один бесплатный месяц использования. А если по инвайту от знакомого, то три бесплатных месяца." За три месяца уж распробуют.
А если от выдачи инвайта будет какую-то пользу получать и официальный покупатель (классическая пирамида: если по вашему инвайту зарегистрируется платный пользователь, вы будете получать каждый месяц 10% от его оплаты), то покупатель сам будет искать новых клиентов сервиса :) (эх, мне б на webfaction.com ещё пару аффилиэйтов, и хостинг моих сайтов там будет вообще бесплатный ;) )
Posted by: Honeyman | авг. 11, 2010 at 17:22
Сделайте как (почти) в вебмани - с запросом кода авторизации. Раздражает, конечно, но вроде все привыкли. При первом логине юзеру предлагается ввести уникальный код, высылаемый на почту (указанную в договоре?). Если активация пройдена, с данного рабочего места (по куке, ип) можно открывать сессии сколь угодно долго (до месяца например). Если юзер логинится с другого места (новая кука, ип) - авторизация заново. Если при открытой сессии одного юзера происходит успешная авторизация где-то еще, эта первая сессия рвется и надо авторизовываться заново. Короче, принцип что под одним логином/паролем может ОДНОВРЕМЕННО работать в системе только один человек. Имхо, с смс гемориистей и дороже, к тому же ничем не отличается от почтовой авторизации - точно также можно передать код другому, особенно если он за соседним столом сидит.
Posted by: Vano | авг. 11, 2010 at 17:15