Новости об очередных взломах базах данных и угонах паролей или хэшей появляются с пугающей регулярностью, причём даже от таких гигантов, как ВК и Yahoo. Но и пользователи Facebook и Google не могут быть уверены в своей безопасности, потому что суть проблемы не во взломах как таковых, а в централизованном хранении пользовательских данных, включая пароли или хеши паролей, по которым их можно довольно успешно восстановить.

В прошлом году мы уже писали о первой в мире децентрализованной системе управления цифровыми ключами на основе блокчейна Emercoin: emcSSL. Её архитектура аутентификации не раскрывает секрет пользователя в процессе аутентификации серверу и использует децентрализованное хранение учётных записей.



В теории это отличный способ обезопасить учётные данные пользователей любого сервиса, но на практике внедрение emcSSL требует участия квалифицированного программиста и содержит ряд неудобств с точки зрения юзера. Поэтому наш сегодняшний анонс можно считать новогодним подарком HashCoins всему миру: мы практически закончили работу над сервисом Authorizer, который позволяет подключить emcSSL через oAuth 2.0.

Как работает emcSSL


В системе emcSSL отсутствует центр сертификации, а выпуском сертификатов занимаются сами пользователи. Соответственно, выпуск сертификата – по определению бесплатен. Блокчейн EmerCoin выступает только как публичное доверенное хранилище хешей SSL-сертификатов и обеспечивает уникальность Serial, который и является уникальным UserID.

Таким образом, в системе emcSSL успешно решены обе проблемы – как неразглашения секрета (a), так и децентрализации (b), что позволяет масштабировать систему до общемирового уровня. Пользователь системы emcSSL получает эдакий «пропуск-вездеход», не зависящий ни от кого, кроме самого пользователя. Ни от «сайта в интернете», ни от сертификатора, ни от кого-либо ещё. Соответственно, в системе невозможны атаки типа рассмотренных выше, которые приводят к массовой компрометации учётных записей, ибо приватные ключи генерируются пользователями, и никогда не покидают их компьютеров, и просто не существует такого центрального места, которое можно скомпрометировать.

В особо важных случаях целесообразно использование emSSL совместно с паролем в рамках двухфакторной авторизации. При этом emcSSL авторизует устройство и обеспечивает безопасный канал связи с сервером, а пароль авторизует оператора.

Ещё стоит упомянуть, что блокчейн-архитектура emcSSL эффективно и безопасно решает проблему отзыва скомпрометированного сертификата и его быстрой замены, чем выгодно отличается от CRL и протокола OCSP, уязвимого к атаке MItM.

В общем, emcSSL — это круто и безопасно, но без удобного способа внедрения это всё практически бесполезно. Он требует кошелька «Эмеркоин» на сервере, невозможно пользоваться CDN, т.к. требуется enetrprise-аккаунт для размещения сертификата Emercoin, в-третьих, при авторизации через emcSSL обязательно запрашивается сертификат, что может пугать неподготовленных юзеров.

К сожалению, интеграция emcSSL — не самое простое дело:



Чтобы упростить жизнь вебмастерам, в HashCoins решили взять эту проблему на себя, объединив emcSSL с oAuth 2.0: теперь достаточно просто вставить код условной кнопки входа, юзер кликает на кнопку, попадает на сайт «Авторайзера» либо видит наше всплывающее окно (с точки юзера это будет выглядеть так же, как авторизация через «Фейсбук», например) и возвращается обратно с токеном авторизации.



Для настройки веб-мастер должен указать данные нашего oAuth-провадера Autorzier. Это настраивается на два порядка проще установки emcSSL и не пугает посетителей требованиями сертификатов. Этот функционал уже готов.

Инфокарты


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

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

Authorizer благодаря emcSSL добивается именно этого с помощью инфокарты. При первой авторизации через «Авторайзер» мы попросим пользователя заполнить инфокарту либо возьмём данные из карточки юзере Emercoin, если пользователь таковым является. В дальнейшем, при заходе на тот или иной сайт, Authorizer будет спрашивать юзера, хочет ли он показать свои данные, например, интернет-магазину.

В случае положительного ответа, «Авторайзер» передаст данные с инфокарты – например, адрес доставки — магазину. После совершения покупки, сервер «забывает» её содержимое – до следующего логина пользователя. В результате, в учётной записи на сервере можно хранить только UserID, и ничего больше. Ни пароля, ни персональных данных пользователя. А если с сервера взять нечего – его скорее всего и не будут пытаться взломать.

Привыкаем к беспарольной авторизации


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

Всё, что нужно пользователю — это его электронный ключ ко всем дверям: сертификат. Есть несколько способов его создать: либо через сайт «Авторайзера» (лнк на него мы дадим после официального релиза), либо на emcssl.org, либо в веб-кошельке Emercoin, либо самым надёжным образом: самостоятельная генерация с помощью скриптов. Звучит, конечно, пока не очень юзабельно с точки зрения массового юзера, но мы работаем над расширением и упрощением получения сертификата. Тем не менее, в первом релизе «Авторайзера» будет требоваться его создавать самостоятельно.

Создав его, вы можете его добавить во все браузеры и устройства, которыми пользуетесь. При создании сертификата вы также создаёте пароль, который понадобится вводить всего один в каждый новый браузер — он нужен для вашей защиты на случай кражи сертификата.

Дальше всё просто: при заходе на сайт с поддержкой Authorizer вы видите кнопку авторизации по сертификату и выбираете сертификат на вашем устройстве и наслаждаетесь безопасным соединением.



Authorizer избавляет вас от риска компрометации ваших персональных данных при взломе серваков очередных сервисов, но повышает требования к вам как гаранту собственной сетевой безопасности: вы должны сами озаботиться созданием сертификата и не допустить хранения пароля от него в открытом виде где бы то ни было. Так что можно сказать, что в текущем виде Authorizer подойдёт сервисам, рассчитанным на аудиторию среднего и выше уровня технической грамотности — тем, для кого пара лишних телодвижений полностью оправданы повышенным уровнем защиты. Скажем, такой способ авторизации в качестве одной из альтернатив отлично пошёл бы Хабру, вам не кажется?

Релиз Authorizer планируется на конец января. А пока мы с радостью послушаем ваши отзывы, вопросы и предложения по нашей технологии.

Нужна ли вам такая авторизация на Хабре и Гиктаймс?

Проголосовало 30 человек. Воздержалось 9 человек.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Поделиться с друзьями
-->

Комментарии (8)


  1. SamoilowAlex
    30.12.2016 16:44
    +1

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

    >В случае положительного ответа, «Авторайзер» передаст данные с инфокарты – например, адрес доставки — магазину. После совершения покупки, сервер «забывает» её содержимое – до следующего логина пользователя.
    Эм… что за бред. Интернет магазин получил адрес и добавил его в БД, из которой потом будут печататься документы на отправку и пр. Фактически адрес остается на сервере, а удалять его потом или хранить в БД — на совести владельцев магазина.


    1. Hellsy22
      31.12.2016 11:01
      -1

      Почему это OpenID провалился?


  1. azazar
    30.12.2016 22:41

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


    1. HashFlare
      30.12.2016 22:48
      +1

      Добавили опрос про нужность её на Хабре. Посмотрим фидбек, надеемся, ТМ тоже обратит на это внимание.


  1. Shablonarium
    31.12.2016 03:34

    Тогда еще и состояние пользовательской сессии с личными данными надо хранить на локальных машинах пользователей.


  1. copyhold
    01.01.2017 12:42

    Правильно ли я понимаю, что для того, чтобы завести учётную запись в этой системе нужно:

    1. завести биткоин кошелёк и купить коинов
    2. поставить себе emer client
    3. скачать базу в 5 Гиг.
    4. провести непростую процедуру генерации ключей и значений
    5. отправить запрос на добавление этих ключей и заплатить при этом
    6. безопасно логиниться на пять с половиной сайтов


    1. SOb_S
      01.01.2017 14:55

      1 — не биткоинов, а эмеркоинов. Курс 1:4500
      2-3 — вроде лишние, есть online-wallet
      6 — там есть ещё SSH/DNS/Magnet

      Но, да, просят заплатить (больше, чем 0.3 EMC). Я не стал — напоминает PGP-шное сектанство. :)


    1. kamillo
      02.01.2017 11:48

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

      Добавление любых записей в блокчейн стоит денег — это защита от спама. Стоимость зависит от размера записи и как правило не превышает 0,3 emc (1 emc = 0,2$). Эти монеты никому не достаются, они просто уничтожаются.