Рубрики
Без рубрики

Аутентификация нулевых знаний с JavaScript

Пароли являются Kryptonite для безопасности, и они никогда не должны оставлять клиентское приложение или веб-просвет … Теги с паролями, аутентификацией, JavaScript, безопасностью.

Пароли являются Kryptonite для безопасности, и они никогда не должны покинуть клиентское приложение или веб-браузер. Люди думают, что они понимают, что последнее предложение затем используют устаревшие методы хеширования для обработки паролей. Devs должен использовать библиотеку паролей ноль знаний и принимать безопасность до максимума.

Что именно является протоколом аутентификации нулевого знания? Это протокол аутентификации, который имеет свойства, которым кто-либо соблюдающий сетевой трафик, ничего не изучает никакого использования. Безопасный протокол удаленного пароля (SRP) – это протокол аутентификации нулевого знания, который описан в RFC 2945 и RFC 5054. thichbus-srp это одна реализация SRP, написанная в JavaScript.

Типичные лучшие практики, которые большинство сайтов используют для обработки паролей и API ключей, зависят от злоумышленника, не в состоянии шпион на трафике. Мы должны использовать HTTPS, чтобы сохранить вещи частным. Проблема в том, что если вы не используете протокол аутентификации нулевого знания, то HTTPS – ваша единственная линия защиты. Openssl Сердечный Уязвимость является одним из проблем с наивысшими профилями, которые показали, что HTTPS может быть подвергнут проблемам, где атакующие собранные пароли. Многие девсы не знают о таких проблемах. Когда мы узнаем о них, они уже исправлены. Это не значительная мотивация, чтобы защитить себя от будущих ошибок и хаки, которые еще не ясны и настоящей опасности.

Что может быть более сильной мотивацией, состоит в том, чтобы считать, что развертывание программного обеспечения становится все более сложным. Современная облачная безопасность основана на конфигурации программного обеспечения, которая может иметь ошибки, как и все остальное. С облачными технологиями и безвесочными, нормально завершать HTTPS на краю. Затем ваш сетевой трафик перемещается через многие слои, управляемые другими компаниями. Даже если мы доверемся, что они зависят от своих сотрудников, это легко протеить незашифрованные трафик. Любой код может иметь обращение с ошибками или регистрировать ошибки, которые мы утеряли хешированный пароль в центральную службу регистрации. Как разработчики, нам нужно признать, что все время становится все более сложным, и мы должны повысить уровень, чтобы защитить людей, которые полагаются на нас, чтобы держать их в безопасности.

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

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

Тем не менее, если вы сделаете шаг назад, это просто дополнительная выборка для сервера, чтобы получить соль и вызов с сервера. На сервере необходимо хранить уникальную проблему, которая была отправлена клиенту, чтобы завершить доказательство пароля. Кроме того, это просто несколько простых старых функций JavaScript, которые делают Crypto Math.   При попытке кодирования дополнительной поездки на сервер и вызове библиотеки Crypto, вы получите гораздо больше безопасности. Вы больше не полагаетесь на HTTPS в одиночку, чтобы защитить своих пользователей от хакеров. Разве не время вы выравниваете и начали использовать безопасный протокол удаленного пароля?

Оригинал: “https://dev.to/simbo1905/zero-knowlege-authentication-in-javascript-23lf”