В современном мире криптография активно применяется в сфере интернет-коммуникаций и различных областях профессиональной деятельности. Защищенные электронная почта и документооборот достижимы с помощью шифрования сообщений или файлов и формирования цифровых подписей.
А веб-браузеры и серверы используют инфраструктуру открытых ключей (PKI) для аутентификации и конфиденциальности сессий. Помимо системы паролей (пользователю известен секретный пароль, который он предъявляет сайту) в современном интернете для авторизации применяют клиентские SSL-сертификаты (Secure Sockets Layer – уровень защищенных сокетов). Пользователь покупает сертификат, подписанный доверенным центром авторизации, и с его помощью авторизуется на различных площадках в интернете.
Цифровой сертификат представляет собой цифровой документ, который связывает открытый ключ с определенным пользователем или приложением. В качестве подтверждения подлинности цифрового сертификата часто используется цифровая подпись доверенного центра — Центра сертификации (ЦС).
Так как в список функций ЦС входит формирование сертификатов и списков отозванных сертификатов, центр сертификации является основным компонентом в подобных системах. Однако значительная стоимость сертификатов и их обслуживания, постоянная зависимость от центра сертификации и сложность генерации сертификата с участием авторизующего центра, делает этот механизм аутентификации практически неприменимым для массового использования, вследствие чего он получил ограниченное распространение в корпоративных сетях, и в широких массах практически неизвестен.
Один из сооснователей криптовалютной сети «Эмеркоин», о которой мы уже писали в нашем блоге, разработчик Олег Ховайко предложил такое прочтение SSL-протокола, которое не требует участия центра сертификации: протокол emcssl предоставляет возможности для децентрализованной работы системы аутентификации. Emcssl смещает фокус процесса аутентификации на пользователя, тем самым, предоставляя возможность пользователям самостоятельно генерировать и распоряжаться идентифицирующими данными.
Emcssl
Emcssl – децентрализованный сервис беспарольной аутентификации, где каждый может сам генерировать свой сертификат, а в качестве авторизующей инстанции выступает блокчейн Эмеркоина.
Emcssl использует клиентские SSL-сертификаты, которые обеспечивают, во-первых, упрощенную авторизацию клиента, во-вторых, создание шифрованного защищённого канала связи с сервером – иными словами, безопасное соединение.
В отличие от других SSL-систем, с помощью emcssl, клиенты, без ограничений и взаимодействия с кем бы то ни было, могут быстро, самостоятельно генерировать сертификат и обновлять его, по собственному усмотрению. Один единственный клиентский SSL-сертификат может быть многократно использован для авторизации на множестве серверов, входящих в систему аутентификации, без ущерба для безопасности. Таким образом, пользователю для полноценного функционирования в интернет-пространстве достаточно одного сертификата, что радикально упрощает доступ к учетным записям, и избавляет от необходимости помнить десятки паролей. Сертификат состоит из публичной части и приватного ключа, который известен только пользователю.
Как работает emcssl?
Для того, чтобы начать использовать emcssl, необходимо запустить программу: 1) сгенерировать личный ssl-сертификат, 2) опубликовать «цифровую подпись» сертификата в EmerCoin NVS и 3) загрузить сертификат в браузер. Первые три шага выполняются лишь один раз.
Далее, вы можете зайти на любой сайт, который поддерживает данную систему авторизации, и впредь входить в свою учётную запись без логина и пароля (ваш браузер уже поставил подпись за вас) полностью автоматически. Если ранее учетной записи на этом сайте у вас не было, то можно создать новую учетную запись на основе сертификата, буквально, в одно нажатие клавиши. Профиль пользователя на сервере автоматически заполняется данными, которые вы сочли нужным предоставить при генерации сертификата.
Как сервер взаимодействует с сертификатом?
Когда пользователь браузера, обладающий сертификатом, захочет посетить какой-либо сайт, на котором уже существует его учетная запись, сайт потребует у браузера предъявить клиентский сертификат.
- При самом первом посещении сайта браузер спросит пользователя, каким сертификатом следует воспользоваться для авторизации. Пользователь выберет сертификат и браузер запомнит, что этому серверу следует предъявлять соответствующий сертификат.
- Сервер, получив сертификат, вначале проверяет подпись сертификата. Успешная проверка подписи доказывает, что сертификат был сгенерирован для системы emcssl. Остальные проверки последуют позже.
- Далее, сервер генерирует случайное число, шифрует его на публичном ключе, находящемся в предъявленном сертификате, и отправляет браузеру. Это — одноразовый пароль этого соединения.
- Браузер извлекает секретный ключ из сертификата и расшифровывает пароль, посланный сервером.
- После этого браузер устанавливает безопасное https-соединение с сервером. Установление такого соединения доказывает серверу, что браузер владеет не только серийным номером сертификата, но и соответствующим секретным ключом. В рамках этой системы секретный ключ никогда не покидает пользовательского компьютера.
- Убедившись в том, что клиент владеет корректным секретным ключом, сервер производит проверку информации сертификата через блокчейн Эмеркоина. Для этого он извлекает из сертификата серийный номер, и выполняет в блокчейне поиск по этому серийному номеру, получая в результате размер вашей хэш-суммы. После этого сервер вычисляет контрольную сумму только что полученного сертификата и убеждается в том, что предъявленный сертификат с соответствующим серийным номером – то же самый, который был зарегистрирован в блокчейне. Таким образом, подтверждается уникальный серийный номер сертификата, который можно использовать для авторизации пользователя.
Если злоумышленник сгенерирует другой сертификат, с таким же серийным номером что и у вас, то он не сможет загрузить такую же контрольную сумму, так как она уже занята. В результате всех проверок, которые, в совокупности, занимают доли секунды, сервер удостоверяется в том, что пришедший клиент: имеет сертификат emcssl, владеет секретным ключом, владеет соответствующим серийным номером сертификата и, в результате, открывает доступ к учетной записи.
Особенностью работы системы является тот факт, что тот, кто владеет доступом к браузеру с загруженным сертификатом, владеет всеми ключами ко всем аккаунтам. В том случае, если у вас украли ноутбук или планшет, вам следует как можно скорее сгенерировать новый сертификат и загрузить его цифровую подпись в блокчейн Эмеркойна. Этот шаг автоматически сделает похищенный сертификат недействительным. К счастью, в этом случае нужно заменить только один сертификат, а не десятки паролей.
Данная система авторизует только браузер и делает сетевое соединение безопасным, но не авторизует оператора. Для верификации на особо важных сервисах лучше применять многофакторную авторизацию.
Система emcssl удачно вписалась в рабочую среду сервиса HashFlare — мы внедрили её в свои панели управлении майнерами. С помощью технологии emcssl в интерфейсе управления майнерами HashFlare можно пройти безопасную аутентификацию, используя те же пользовательские сертификаты, сгенерированные в emcssh.
Так как, клиентский сертификат генерируется в личном кошельке пользователя, в блокчейне Эмеркоина, при условии, что вся система инкорпорирована в пользовательский интерфейс управления майнерами, возникает замкнутый цикл для соло-майнига эмеркоинов, где кошелек эмеркоина внедрен непосредственно в майнер.
Как начать использовать?
Всё программное обеспечение распространяется бесплатно. Пакет для генерации клиентских сертификатов находится здесь: pool.emercoin.com/emcssl Там же можно проверить работу вашего сертификата на тестовой странице.