Давно я не писал никакого FUD'а :-). Кажется даже, вообще никогда не писал... Пора! Итак, Microsoft решила поддержать OpenID.

Многие люди по этому поводу в восторге. В том числе, например, Брэд Фицпатрик (создатель OpenID) и Скотт Кветон (CEO JanRain, одной из организаций-участниц). Причем последний даже подчеркнул особо для таких людей, как я, что:

Microsoft did not cave in to the OpenID community and the OpenID community is giving nothing up to Microsoft. This is a collaboration on bringing the best technology to the marketplace as quickly as possible to help secure users and solve the single sign-on solution once and for all.

Это я понимаю. Но я обеспокоен, тем не менее. Как мы все знаем, Microsoft — это не просто крупная компания. Это еще и одиозная компания, которая одним даже своим существованием вызывает чувства от поклонения до ненависти. И то, что Microsoft делает, совершенно легко может вылиться как в совсем незаметный "пук", так и во вдруг-откуда-ни-возмись де-факто стандарт. И вот последнего-то я и боюсь. Вот цитата из объявления о совместной работе Microsoft с OpenID-сообществом:

As part of OpenID’s security architecture, OpenID will be extended to allow relying parties to explicitly request and be informed of the use of phishing-resistant credentials.

Это важно, переведу: "в части архитектуры безопасности OpenID будет расширен, чтобы позволять участникам явно запрашивать и получать ответ об использовании авторизации, устойчивой к подмене". На мой скромный взгляд это фундаментально отличается от того OpenID, который есть сейчас. И порождает целых два страха.

Страх 1: централизация OpenID

Сейчас все OpenID-провайдеры одинаковы. Вы можете зарегистрироваться на каком-нибудь GetOpenID, а можете поставить себе в блог плагин и использовать его в качестве своей OpenID-подписи. Для сайта, на котором вы авторизуетесь, это совершенно равнозначные OpenID. А вот доверять ли тому или иному OpenID-провайдеру или нет — уже личное дело сайта. Если с сайта "http://spamers-nest-open-id.net" к вам идут толпы спама, вы вольны забанить этот сайт. Или вольны вести "белый список", где все сайты считаются недоверенными, пока вы не решите, что они не являются спаморассадником. Саймон Виллисон, например, уже предложил обмениваться такими "белыми списками". Звучит здраво.

Так вот фундаментальное отличие нового предложения в том, что у сайта появляется возможность автоматически спросить кого-то о том, является ли какой-то конкретный сайт "устойчивым к подмене", можно ли ему доверять. Главный вопрос: кто будет контролировать список? Надо ли мне будет теперь не только повесить на сайт OpenID-сервер, но и идти куда-то официально регистрировать его? Очень я этого боюсь. Технология OpenID отличается (отличалась?) от предыдущих попыток сделать подобное (Microsoft Passport, TypeKey) как раз тем, что в ней нет никакой единой регистрационной базы, которую контролирует коммерческая компания.

Страх 2. Толпа фанатиков

Ладно, пусть я верю, что OpenID'шные дядьки не дадут внести в спецификацию адрес кошелька, куда надо нести деньги за регистрацию. Я боюсь еще и того, что если это не случится со стороны спецификации, это может случиться со стороны тех веб-девелоперов, которые, питая к Microsoft нездоровую часть спектра положительных эмоций, начнут сами различать в своих сервисах OpenID-провайдеров по принципу:

Я, к сожалению, слишком часто видел этот паттерн, чтобы его игнорировать :-(. Но я признаю, что это пока только мои домыслы, и я буду очень рад, если кто-то мне объяснит, что это просто утренняя паранойя.

Хотя, выражаясь словами Сесилии, "It's not paranoia if you're always right".

Комментарии: 16

  1. Mikky

    Хм...
    После прочтения у меня появились в точности такие же страхи. Надеюсь это совпадение.

    Кроме слов некой Сесилии вспомнилось:

    Если у вас мания преследования, это не значит, что вас не преследуют.

  2. bw

    Мне на интуитивном уровне не нравится эта инициатива Microsoft.

    Страх 1
    Если провайдер OpenID владеющий 10000 подписями отдает 10% спама, я думаю это не повод его блокировать. Я бы его не стал блокировать и при 60%. И я думаю что Microsoft справится с таким пороговым (для меня) числом спамеров.
    Вопрос создания OpenID сервера меня не беспокоит, так как таких планов, лично у меня нет. Да и на пустом месте такая задача не появляется, и если необходимость в своем OpenID возникла, то зарегистрировать его врядли будет большой проблемой.

    Страх 2
    С такой практикой я не знаком. Это действительно неприятный момент. Хотя мне кажется страдать больше должны сами ресурсы использующие подобные фильтры. А вообще этот страх является частным случаем страха 1.

  3. Kirill Mavreshko

    Не так давно на linux.org.ru проскакивала новость: открыли некоторые документы, фигурирующие в антимонопольном деле против Microsoft (http://www.linux.org.ru/view-message.jsp?msgid=1761740&page=0)). Несмотря на большой флуд, новость действительно очень интересная, а ещё интереснее почитать сами документы.

    Вот отрывок одного письма от Гейтса:
    <
    ...I reconcile this with our statement about HTML by saying that we need to have "tags" that we view as Office/Windows/Microsoft specific.
    Some people may disagree that we ever get do anything "proprientary" in the browser. If so we have to stop viewing HTML as central to our strategy and get on another strategy...

    У меня не было никакого предвзятого отношения к Microsoft и их политике, но почитав такие вот документы... я теперь уже ни в чём так не уверен. И за будущее OpenID тоже очень начинаю переживать. Тем более, нет ещё ни одного "поддерживаемого Microsoft" открытого стандарта, который эта компания не умудрилась бы исказить. Возьмите те же HTML, CSS, Kerberos...

    Как бы действия не были намеренно направлены на затруднение работы с протоколом и уничтожение его в конце концов. В зародыше.

  4. S

    Интересно, а OpenID поддержит Windows Live ID?

  5. Alexander Lozhechkin

    Иван, пишу здесь, т.к. ваш блог был одним из первых при поиске в блогах на яндексе на термин OpenID. Вы, наверное сможете развеять один мой страх относительно OpenID. Я с этой технологией только знакомлюсь, поэтому могу ошибаться в своем предположении об отсутствии защиты privacy в механизме OpenID. Более подробно я описал свой страх у себя в блоге: http://blogs.gotdotnet.ru/personal/allo/PermaLink.aspx?guid=49B31D48-7993-45A0-92F9-55680C494D45.

    Но, раз уж зашел, позволю себе и ваши страхи прокомментировать. Естественно, меня, наверное, можно обвинить в ангажированности, но тем не менее выскажу свое мнение, что поддержка индустрии OpenID только поможет. И Microsoft, как один из лидеров индустрии может помочь очень сильно. А страхи, я думаю, будут развеяны, когда мы узнаем подробности анонсированной интеграции CardSpace/OpenID. Пока информации слишком мало, чтобы делать какие-то выводы.

    Но судя по тому, что Microsoft делает с CardSpace уж централизации бояться не стоит (из истории Passport’а уроки извлечены). А толпы фанатиков тем более не стоит опасаться – среди сторонников Microsoft, с которыми я по долгу службы, общаюсь довольно много, преобладают суровые прагматики. Нужно быть прагматиком, чтобы вместо т.н. бесплатных технологий выбирать те, которые стоят деньги. Тут расчет нужен :)

  6. Максим Деркачев

    Иван, ты немного путаешь понятия, по-моему.
    "OpenID will be extended to allow relying parties to explicitly request and be informed of the use of phishing-resistant credentials." Смысл тут не в том, чтобы запрашивать, является ли какой-то сайт (identity provider, если быть точнее) "плохим", а в том, чтобы явно попробовать запросить у пользователя данные для аутентификации, используя механизм, устойчивый к фишингу.
    CardSpace - это один из таких механизмов. Он никак не влияет на контроль допустимости identity provider или еще чего, все это можно делать на стороне сервера как обычно. CardSpace - это всего лишь удобный способ упростить для пользователя вход на сайт - все движения, которые сейчас осуществляются при аутентификации по OpenID остаются за кулисами, единственное что юзеру надо сделать - это выбрать себе идентификатор, с которым он будет входить, и этот выбор он сделает в специальной системной панельке, которая появится при внедрении в страничку (через OBJECT) вызова этой панельки.

  7. Иван Сагалаев

    Более подробно я описал свой страх у себя в блоге:

    Ответил там.

    Естественно, меня, наверное, можно обвинить в ангажированности,

    Не будем навешивать ярлыков :-). Меня как раз мнение близких к микрософтовским технологиям людей интересует больше всего.

    но тем не менее выскажу свое мнение, что поддержка индустрии OpenID только поможет. И Microsoft, как один из лидеров индустрии может помочь очень сильно.

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

    Поэтому, если помощь со стороны Microsoft выльется в "давайте встроим в Windows удобный интерфейс для авторизации по OpenID", я рад. Если же выльется в "отойдите-ка в сторонку, лидеру виднее, как это правильно делать", то я печален. Я действительно согласен, что прежде чем кричать караул, надо посмотреть, что это на самом деле.

    Нужно быть прагматиком, чтобы вместо т.н. бесплатных технологий выбирать те, которые стоят деньги.

    Не могу удержаться от комментария... Не бывает бесплатных технологий. Поэтому бесконечные противопоставления им "платных" технологий говорит либо о полном непонимании ситуации (что вряд ли), либо о намеренном искажении реальности (что грустно). У нас (прагматичных open-source'ных разработчиков) проблема не с платностью, а с закрытостью.

  8. Иван Сагалаев

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

    Хочется какого-то примера... Потому что мой вопрос в том, кто будет решать, что identity provider предоставляет такой устойчивый механизм. Если сам механизм (или несколько) будет жестко специфицирован — замечательно. Если же появится реестр сайтов с "достаточными" механизмами, то вопрос остается.

  9. Alexander Lozhechkin

    Не могу удержаться от комментария… Не бывает бесплатных технологий.

    Рад встретить понимание этого. Я использовал этот термин, как общепринятый. Хотя это действительно так, при взвешивании всех факторов понимаешь, что даже те технологии, у которых лицензия не предусматривает платежей правообладателю за использование, есть стоимость. И мне кажется, что человек, готовый в сравнении технологий дальше шага сравнения стоимости лицензии, уже обладает некоторой прагматичность. Фанатики Microsoft встречаются, но этот класс узок и непредставителен. А вот прагматичных сторонников к счастью много. Еще раз напомню, что все это относилось к опровержению аргумента «это может случиться со стороны тех веб-девелоперов, которые, питая к Microsoft нездоровую часть спектра положительных эмоций». Я бы и рад таких найти, но нет их :) Все до предела прагматичны.

    Поэтому бесконечные противопоставления им “платных” технологий говорит либо о полном непонимании ситуации (что вряд ли), либо о намеренном искажении реальности (что грустно).

    Ну с моей стороны как раз противопоставления не было.

    У нас (прагматичных open-source’ных разработчиков) проблема не с платностью, а с закрытостью.

    Рад встретить прагматичного сторонника опен сорс. Буду рад возможности опровергнуть существующие сложившееся впечатление о закрытости технологий Microsoft. Если это когда и встречалось ранее, то последние 5 лет Microsoft сильно изменился. Он уже не тот и сейчас мало кто из вендоров, придерживающихся традиционной модели реализации своих продуктов может похвастаться такой же степенью открытости. Тот же CardSpace полностью построен на открытых стандартах (прежде всего это протоколы WS-*). Тому подтверждением имеющиеся реализации IP на Java, RP на PHP, CardSelector в FireFox.

    Вторая попытка научиться использовать комментарии. Просьба предыдущий комментарий удалить.

  10. Давид Мзареулян

    Думаю в данном случае поддержка MS скорее плюс. Потому что победоносное шествие OpenID по планете, порямо скажем, пока происходит в основном в окрестностях ЖЖ. Так что Фицпатрик правильно радуется.

    (а так раньше было удобно, когда в rss отдавались посты полностью…)

  11. Mike

    А всего через пару лет называться это будет MS ActiveID, и все будут говорить "ах, посмотрите, какую замечательную технологию изобрел Microsoft - вот где настоящие инноваторы!".

    Примерно вот так:
    http://www.yandex.ru/yandsearch?text=%F2%E5%F5%ED%EE%EB%EE%E3%E8%FE+%E8%E7%EE%E1%F0%E5%EB+Microsoft&stype=www

    Прагматики, блин.

  12. Максим Деркачев

    Хочется какого-то примера… Потому что мой вопрос в том, кто будет решать, что identity provider предоставляет такой устойчивый механизм. Если сам механизм (или несколько) будет жестко специфицирован — замечательно. Если же появится реестр сайтов с “достаточными” механизмами, то вопрос остается.

    CardSpace никак не зависит от identity provider (IP) (и наоборот). Это скорее client-side механизм. Хоть он и использует веб-сервисы, все, что от них требуется - это поддержка определенного интерфейса (они не централизованы).
    Relying party (RP) может запросить клиента войти с помощью CardSpace. Но если CardSpace не будет доступен (например, в Firefox), то RP запросит идентификатор обычным образом (если не будет вредничать). В любом случае, вопрос доверия к IP и механизмам аутентификации всегда решает RP, в том числе и использование какой-либо третьей стороны (типа публичных black/white списков IP). Централизации никакой нет. Аналогия - система электронной почты. У каждого узла - своя политика.

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

  13. Иван Сагалаев

    RP запросит идентификатор обычным образом (если не будет вредничать). В любом случае, вопрос доверия к IP и механизмам аутентификации всегда решает RP

    Вот я и боюсь, что они будут вредничать. Понятно, что каждый программист в мире, сидящий на стороне RP, не будет программировать свою собственную логику доверия IP. Это будет в библиотеках, в примерах кода в книжках и т.п. Предыдущая версия OpenID была подчеркнуто нейтральна в отношении разных IP. А теперь у нас появляется сам механизм преференций.

    В общем, я все больше делаю вывод, что для того, чтобы CardSpace не стал "случайно" единственным фактическим способом OpenID-авторизации, нам (прагматичным open-source разработчикам) надо успеть расплодить реализации OpenID широко до того, как доля Windows Vista в сети станет ощутимой.

  14. Alexander Lozhechkin

    А что плохого в CardSpace? Откуда такое желание с ним "бороться"? Там все на открытых протоколах основано, к Microsoft ничем не привязано.

    Я вот тут в двух словах про CardSpace написал: http://blogs.gotdotnet.ru/personal/allo/PermaLink.aspx?guid=49B689DE-4DA3-48F7-B944-8B32CDE007AE

  15. Иван Сагалаев

    В CardSpace, как таковом, проблемы нет, с него просто разговор начался. Проблема в ранжировании IP как таковом. Оно может быть основано на каких-то технических свойствах, а может, грубо говоря, на названии. Первое — хорошо, второе — плохо, потому что подменяет реальные технические метрики личными психологическими предпочтениями. Если бы Google предложил завязать проверку OpenID-авторизации на "залогинен ли клиент в GMail", я бы реагировал точно также.

    Вот еще аналогия. В Javascript'е проверку на наличие реализации DOM Events можно проводить как if (document.addEventListener), а можно как if (navigator.appName.indexOf('Gecko').... Первое — хорошо, второе — плохо.

  16. Alexander Lozhechkin

    Теперь понял. Не, не думаю, что будет так. Microsoft на это не пойдет в первую очередь.

Добавить комментарий