Новости об очередных взломах базах данных и угонах паролей или хэшей появляются с пугающей регулярностью, причём даже от таких гигантов, как ВК и 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 планируется на конец января. А пока мы с радостью послушаем ваши отзывы, вопросы и предложения по нашей технологии.
Автор: HashFlare