Беспарольная авторизация и другие неявные возможности цифровых сертификатов

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

f1dac62411794078bf2231117b591976.png
А веб-браузеры и серверы используют инфраструктуру открытых ключей (PKI) для аутентификации и конфиденциальности сессий. Помимо системы паролей (пользователю известен секретный пароль, который он предъявляет сайту) в современном интернете для авторизации применяют клиентские SSL-сертификаты (Secure Sockets Layer – уровень защищенных сокетов). Пользователь покупает сертификат, подписанный доверенным центром авторизации, и с его помощью авторизуется на различных площадках в интернете.

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

Так как в список функций ЦС входит формирование сертификатов и списков отозванных сертификатов, центр сертификации является основным компонентом в подобных системах. Однако значительная стоимость сертификатов и их обслуживания, постоянная зависимость от центра сертификации и сложность генерации сертификата с участием авторизующего центра, делает этот механизм аутентификации практически неприменимым для массового использования, вследствие чего он получил ограниченное распространение в корпоративных сетях, и в широких массах практически неизвестен.

Один из сооснователей криптовалютной сети «Эмеркоин», о которой мы уже писали в нашем блоге, разработчик Олег Ховайко предложил такое прочтение SSL-протокола, которое не требует участия центра сертификации: протокол emcssl предоставляет возможности для децентрализованной работы системы аутентификации. Emcssl смещает фокус процесса аутентификации на пользователя, тем самым, предоставляя возможность пользователям самостоятельно генерировать и распоряжаться идентифицирующими данными.

Emcssl


Emcssl – децентрализованный сервис беспарольной аутентификации, где каждый может сам генерировать свой сертификат, а в качестве авторизующей инстанции выступает блокчейн Эмеркоина.

Emcssl использует клиентские SSL-сертификаты, которые обеспечивают, во-первых, упрощенную авторизацию клиента, во-вторых, создание шифрованного защищённого канала связи с сервером – иными словами, безопасное соединение.

В отличие от других SSL-систем, с помощью emcssl, клиенты, без ограничений и взаимодействия с кем бы то ни было, могут быстро, самостоятельно генерировать сертификат и обновлять его, по собственному усмотрению. Один единственный клиентский SSL-сертификат может быть многократно использован для авторизации на множестве серверов, входящих в систему аутентификации, без ущерба для безопасности. Таким образом, пользователю для полноценного функционирования в интернет-пространстве достаточно одного сертификата, что радикально упрощает доступ к учетным записям, и избавляет от необходимости помнить десятки паролей. Сертификат состоит из публичной части и приватного ключа, который известен только пользователю.

Как работает emcssl?

Для того, чтобы начать использовать emcssl, необходимо запустить программу: 1) сгенерировать личный ssl-сертификат, 2) опубликовать «цифровую подпись» сертификата в EmerCoin NVS и 3) загрузить сертификат в браузер. Первые три шага выполняются лишь один раз.

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

Как сервер взаимодействует с сертификатом?

Когда пользователь браузера, обладающий сертификатом, захочет посетить какой-либо сайт, на котором уже существует его учетная запись, сайт потребует у браузера предъявить клиентский сертификат.

  1. При самом первом посещении сайта браузер спросит пользователя, каким сертификатом следует воспользоваться для авторизации. Пользователь выберет сертификат и браузер запомнит, что этому серверу следует предъявлять соответствующий сертификат.
  2. Сервер, получив сертификат, вначале проверяет подпись сертификата. Успешная проверка подписи доказывает, что сертификат был сгенерирован для системы emcssl. Остальные проверки последуют позже.
  3. Далее, сервер генерирует случайное число, шифрует его на публичном ключе, находящемся в предъявленном сертификате, и отправляет браузеру. Это — одноразовый пароль этого соединения.
  4. Браузер извлекает секретный ключ из сертификата и расшифровывает пароль, посланный сервером.
  5. После этого браузер устанавливает безопасное https-соединение с сервером. Установление такого соединения доказывает серверу, что браузер владеет не только серийным номером сертификата, но и соответствующим секретным ключом. В рамках этой системы секретный ключ никогда не покидает пользовательского компьютера.
  6. Убедившись в том, что клиент владеет корректным секретным ключом, сервер производит проверку информации сертификата через блокчейн Эмеркоина. Для этого он извлекает из сертификата серийный номер, и выполняет в блокчейне поиск по этому серийному номеру, получая в результате размер вашей хэш-суммы. После этого сервер вычисляет контрольную сумму только что полученного сертификата и убеждается в том, что предъявленный сертификат с соответствующим серийным номером – то же самый, который был зарегистрирован в блокчейне. Таким образом, подтверждается уникальный серийный номер сертификата, который можно использовать для авторизации пользователя.


Если злоумышленник сгенерирует другой сертификат, с таким же серийным номером что и у вас, то он не сможет загрузить такую же контрольную сумму, так как она уже занята. В результате всех проверок, которые, в совокупности, занимают доли секунды, сервер удостоверяется в том, что пришедший клиент: имеет сертификат emcssl, владеет секретным ключом, владеет соответствующим серийным номером сертификата и, в результате, открывает доступ к учетной записи.

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

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

Система emcssl удачно вписалась в рабочую среду сервиса HashFlare — мы внедрили её в свои панели управлении майнерами. С помощью технологии emcssl в интерфейсе управления майнерами HashFlare можно пройти безопасную аутентификацию, используя те же пользовательские сертификаты, сгенерированные в emcssh.

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

Как начать использовать?


Всё программное обеспечение распространяется бесплатно. Пакет для генерации клиентских сертификатов находится здесь: pool.emercoin.com/emcssl Там же можно проверить работу вашего сертификата на тестовой странице.

1dd3677aafe64a1e888d52478bfea613.png

© Geektimes