Авторизация без возможности передать логин / пароль другому

Подскажите пожалуйста как можно реализовать примерно следующее.
Есть некая база, доступ через веб-интерфейс. Задача: авторизоваться только, грубо говоря, «подписанных» пользователей, те если один пользователь захочет передать пароль другому, то тот уже не сможет им воспользоваться. Привязка по IP нереально, ибо динам. Отправление клиенту кода подтверждения смской, как с уникальным кодом так и с неким идентификатором клиента (грубо куска иднт. сессии), тоже не вариант, так же можно переслать. Напрашивается только один вариант авторизация через etoken. Но неужели все на столько параноидально?
  • Вопрос задан
  • 3123 просмотра
Пригласить эксперта
Ответы на вопрос 12
@binom248
Может достаточно запретить одновременную работу нескольких пользователей под одним логином? Тогда «умники», отдающие доступ, могут оказаться без доступа сами. Часто такого хватает.
Ответ написан
Комментировать
Все варианты можно обойти. Насколько защищённой должна быть эта система?
Ответ написан
Комментировать
@ITLav
Технически самое простое — это привязка к почте пользователя. При каждом логине туда отправляется уникальная ссылка для подтверждения. Конечно, пользователь может каждый раз пересылать другому эту ссылку, или дать пароль от своей почты.

Из социальных способов — сделать привязку пароля к информации, которую пользователь не захочет передавать другим (что это может быть — зависит от категории пользователей).

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

Так что только биометрическая аутентификация по радужной оболочке глаза, выполняемая непрерывно во время всего сеанса работы и разрешения доступа только из специального помещения, куда охраной контролируется вход по одному.
Ответ написан
cbone
@cbone
Серверная инфраструктура
Использовать сертификаты. Как на light.webmoney.ru/login.aspx?ReturnUrl=/default.aspx сертификат X.509.
Ответ написан
@bondbig
И токен тоже можно передать. Можно выдавать сертификаты, помеченные как неэкспортируемые (win only), но также никто не мешает клонировать систему на блочном уровне.
Ответ написан
Комментировать
consumer
@consumer
привязка по mac-адресу, но никому об этом не говорить))
Ответ написан
dizzoid
@dizzoid Автор вопроса
Система — это некий «черный список», с покупкой конечными пользователями ключа на время ее использования, с возможностью добавления элементов списка.
Ответ написан
Комментировать
@Ruslan_Y
Вариант самый простой: при каждом обновлении страницы, менять пользовательскую cookie со значением, это же значение оставлять в свойствах объекта юзер на сервере. То есть в один момент времени только у одного человека валидная cookie и только он может получить следующую валидную. При логине в систему можно сбрасывать значение, чтобы не было подвисших сессий, которые невозможно завершить.

Это решает проблему одновременного доступа нескольких человек (одного из них будет постоянно выкидывать из системы), но не решает передачу пароля, когда попользовался один и зашел использовать другой, потом снова поменялись.

Вариант можно комбинировать с одноразовым паролем на почту или СМС, что затруднит жизнь передающему свой логин кому-то еще (постоянно придется что-то делать).

Второй эшелон, протоколировать одновременный вход с разных ip и или браузеров и тут уже от пользовательского соглашения зависит, что будет с человеком нарушившим условия использования (бан, штраф и т.д.).

Еще вариант: за деньги и/или на какой-то срок выдавать пакет одноразовых паролей, чтобы человеку было просто влом передавать их кому-то еще, Особенно, если реализован метод когда он вылетает после захода другого человека и вынужден использовать новый одноразовый пароль, а их и так впритык.
Ответ написан
Alexx_ps
@Alexx_ps
Не уверен на счет веба, но в корпоративной сети у нас есть возможность вытягивать еще и мак-адрес — он ведь не динамический :)

Если такое не получится, то предлагаю использовать систему сравнения характеристик ОС, как в Google Analytics: браузер и операционные системы, цвета экрана, разрешения экрана, версия Java, версия Flash и т.д. Конечно версии ПО меняются, но не все сразу, поэтому можно сделать погрешность в сторону увеличения версий 1-2 программ. При первой авторизации будет производиться подобный слепок системы, а при последующих просто сравниваться.
Ответ написан
Комментировать
printf
@printf
Ем детей.
Отправлять пользователю смской некий токен сессии, в который зашит его (текущий) IP. Сменился IP — нужно перезайти.
Ответ написан
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
OpenID, ограниченный Гуглом, фейсбуком. Ни один человек в здравом уме такой акк передавать не будет.
Ответ написан
@Robotex
Enum использовать никак?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы