Глобальная авторизация с помощью ЭЦП
После того, как список паролей к различным сайтам перевалил за 100, я задумался об оптимизации этой системы.
Можно просто хранить все пароли в мастере подстановки броузера. Но тогда сайты не будут знать, что мои аккаунты на разных сайтах — это один и тот же человек.
Есть, конечно, OpenID, но она упирается в провайдера авторизации. Провайдер должен быть всегда он-лайн (в этом плане у отдельного пароля к каждому сайту есть преимущество), если провайдер закроется, мой аккаунт издыхает вместе с ним. Всё-таки приятнее свой аккаунт носить с собой. :)
Я подумал, что ЭЦП является наиболее элегантным решением проблемы. Есть ли какая-то готовая технология? Я видел, что здесь на форуме некоторые сообщения вроде бы подписаны. Насколько удобно общаться на форуме с использованием ЭЦП?
Ещё вопрос: обязательно человеку, который подписывает сообщения, регистрироваться на вашем сайте? Если обязательно, то зачем?
Какую технологию я хотел бы увидеть: заходить на сайт под одним из существующих у меня ключей или под сгенерированным анонимным. Если сайт мне нравится, тогда я подвязываю анонимный ключ к одному из основных, чтобы все знали, что это я. Я также могу подвязать какой-либо ключ к тому ключу, который связан с паспортом, но хочу, чтобы об этом знал только ограниченный круг людей.
комментариев: 271 документов: 13 редакций: 4
Не спорю.
комментариев: 11558 документов: 1036 редакций: 4118
комментариев: 271 документов: 13 редакций: 4
Да, как-то упустил. :-) Я по умолчанию думаю об SSL, так как эта штука встроена в броузеры. Действительно, сертификаты SSL можно подписывать с помощью PGP.
комментариев: 11558 документов: 1036 редакций: 4118
Нельзя. Я имел в виду ключи PGP у всех участников системы: и у серверов, и у пользователей.
комментариев: 271 документов: 13 редакций: 4
Я имел в виду, что технически можно подписать просто как файл, просто нет стандарта.
Почиатл топик и нашел упоминание про WM Keeper Light. Пользуюсь сам.
И помиомо сертификата есть там еще один интересный и перспективный способо авторизации – Enum. Все подробности на сайте www.enum.ru
Вкратце: на вашем КПК\теелфоне – шифроблокнот, и введя выданную сайтом последовательность у себя, вы получаете ответ и вводите его на сайте.
Недостатки – необходим сервер, где будет храниться "вопросная" часть шифроблокнота.
А так – очень удобно. Из любого места, войдя на страницу авторизации, ввожу свое мыло(как идентификация меня), затем ввожу у себя выданное сайтом число и наконец отдаю сайту ответ. Сошлось – вхожу.
комментариев: 271 документов: 13 редакций: 4
комментариев: 11558 документов: 1036 редакций: 4118
комментариев: 271 документов: 13 редакций: 4
Это не совсем оффтоп. Не могу понять, что препятствует внедрению нормальной авторизации. Технологически всё готово, как на клиенте, так и на сервере. Конкуренции технологий нет, технология одна — SSL. Может, деньги? Меня интересовала реальная сумма, могут быть скрытые платежи. В интернете я действительно нашёл SSL-хостинг за 0,8 USD/мес., но придётся раскошелиться ещё на выделенный IP-адрес, ещё 2 USD/мес.
Остаются психологические причины. Если человек авторизуется с помощью логина и пароля, он зависит от сайта. Если с помощью сертификата — он свободная птица.
Пора закругляться, так как в эту тему пишу один я.
комментариев: 11558 документов: 1036 редакций: 4118
Любая авторизация предполагает проверку установленного ранее доверия. Сертификат сам по себе — просто набор байтов. Чтобы сертификат был принят при авторизации, он должен быть заверен доверенной стороной. Кто ею выступит?
Вот ещё! OpenPGP!
Скорее, отсутствие формализованной идеи. Попробуйте описать своё предложение более конкретно.
комментариев: 271 документов: 13 редакций: 4
Вот я зарегистрировался на вашем сайте. Какое между нами было ранее доверие? Вы узнали обычную информацию, которую передаёт броузер сайту. Разве это основание для установления доверия? И тем не менее я пользуюсь Вашим сайтом. ;-)
Точно так же обстоит дело с бесплатными почтовыми ящиками, форумами, блогами и др. Основную массу пользователей никто не проверяет, потому что большинство аккаунтов короткоживущие. Есть такая неофициальная статистика: из зарегистрированных пользователей 10% читает форум и 1% пишет. Т.е. 89% аккаунтов мёртвые, 10% ненужные.
Был бы у меня хостинг, я бы развернул прототип. Локально я сделал. Человек, не имеющий никакого сертификата, получает его. Кто подпишет сертификат, значения не имеет. Затем заходит в защищённую зону с использованием сертификата. Идентифицируется по $_SERVER["SSL_CLIENT_CERT"] (mod_ssl Apache-а). Аккаунты пользователя на разных сайтах связываются по этой же переменной.
комментариев: 11558 документов: 1036 редакций: 4118
Вы зарегистрировались — доверие появилось. Источником его в данном случае являетесь Вы сами (исходим из допущения, что это Ваш логин-пароль, а не злодея Мэллори). Для непосредственной регистрации на одном сайте это нормально, но ведь Вы предлагаете сделать распределённую систему регистрации. Это то же самое, как предложить администратору почтовой службы влить в свою базу данных пользователей данные из произвольного стороннего источника: какой резон ему это делать?
Для таких случаев подходят две вещи: единая база данных зарегистрированных пользователей и/или аутентификация по доверенным кукам (получаем централизованную систему мета-регистрации типа Яндекс.Паспорта) или схемы, реализующие криптографическое доверие. Второе может быть устроенно как централизованно с использованием X.509 (нужна доверенная сторона, заверяющая пользовательские сертификаты), так и распределённо с помощью OpenPGP (тут заверять пользовательский сертификат может любой участник системы регистрации).
Если сертификат X.509 может быть заверен кем угодно, то с чего ради я должен давать пользователю аутентифицированный доступ к своему сайту без процедуры регистрации? Только за то, что у него есть сертификат? В общем случае ему всё равно придётся регистрироваться для каждого сайта отдельно даже при наличии сертификата.
комментариев: 271 документов: 13 редакций: 4
Электронная почта является не совсем удачным примером. Давайте пока остановимся на форумах, блогах и wiki, к примеру.
Какой резон администратору? Понятно, никакого. Это нужно только пользователям. Если вы попросите пользователя подтвердить свою личность, 99% из них просто развернутся и уйдут на другой сайт. Ведь конкуренция среди сайтов на общие темы высока.
А что такое регистрация обычно? Прохождение капчи и потраченное время, чтобы разобраться с механизмом регистрации. Этого досточно, чтобы попасть к вам на сайт. Опять же, у вас есть возможность подписывать сообщения с помощью PGP, а половина пишет, если не ошибаюсь, вообще анонимно. :-) А зачем эта капча, если 100 человек в интернете и так вам подтвердят, что я не робот? А давайте я вам лучше 10 центов скину на кошелёк, вместо того, чтобы разбираться с регистрацией, если уж вам так хочется меня помучить. ;-)
Конкретно как работает Яндекс. Паспорт я не знаю, но броузер говорит мне, что он оставляет куки на ".yandex.ru", похоже, это известная схема, когда все сервисы в одной доменной зоне. Эта схема приемлема для корпорации, не для независимых сайтов. Уязвимым местом является сервер авторизации, который принимает все-все-все пароли.
Я ведь не против доверия и проверки в принципе. Но проверка должна быть там, где это действительно нужно, и когда нужно. В SSL работа без чьей-то подписи вообще невозможна, без подписи нет сертификата. Поэтому я сказал, что SSL-подпись нам не нужна. Я думаю, она распространения не получит. На данный момент продажа сертификатов есть стиральная машина для отмывания денег. Но нам будут нужны подписи, сделанные по любой другой технологии. Какую из технологий использовать, это уж каждый администратор решает для себя. Даже больше — общаться или не общаться с анонимом — это личное дело каждого.
комментариев: 271 документов: 13 редакций: 4
Впрочем, я использую bugmenot.com, чтобы просматривать форумы imdb.com.