Выбираем и настраиваем сетевую аутентификацию
Сетевая аутентификация — это то, с чем ежедневно сталкивается большое количество пользователей интернета. Некоторые люди не знают о том, что означает данный термин, а многие даже не подозревают о его существовании. Практически все юзеры всемирной паутины начинают рабочий день с того, что проходят процесс аутентификации. Она нужна при посещении почты, социальных сетей, форумов и прочего.
Пользователи сталкиваются с аутентификацией каждый день, сами того не подозревая.
Что означает слово аутентификация и принцип работы
Аутентификация — это процедура, с помощью которой происходит проверка пользовательских данных, например, при посещении того или иного ресурса глобальной сети. Она производит сверку данных, хранящихся на веб-портале, с теми, которые указывает юзер. После того как аутентификация будет пройдена, вы получите доступ к той или иной информации (например, своему почтовому ящику). Это основа любой системы, которая реализована на программном уровне. Зачастую указанный термин утилизирует более простые значения, такие как:
Чтобы пройти аутентификацию, необходимо ввести логин и пароль для вашей учётной записи. В зависимости от ресурса, они могут иметь существенные отличия друг от друга. Если эксплуатировать идентичные данные на различных сайтах, то вы подвергнете себя опасности кражи вашей персональной информации злоумышленниками. В некоторых случаях указанные сведения могут выдаваться автоматически для каждого пользователя. Чтобы ввести нужные данные, как правило, используется специальная форма на ресурсе глобальной сети или в определённом приложении. После введения нужной информации, они будут отправлены на сервер для сравнения с теми, которые имеются в базе. Если они совпали, то вы получите доступ к закрытой части сайта. Введя неправильные данные, веб-ресурс сообщит об ошибке. Проверьте их правильность и введите ещё раз.
Какую сетевую идентификацию выбрать
Многие задумываются над тем, какую сетевую идентификацию выбрать, ведь их существует несколько типов. Для начала нужно определиться с любой из них. На основе полученных сведений каждый решает самостоятельно, на каком варианте остановиться. Одним из самых новых стандартов сетевой аутентификации является IEEE 802.1х. Он получил широкую поддержку практически у всех девелоперов оборудования и разработчиков программного обеспечения. Этот стандарт поддерживает 2 метода аутентификации: открытую и с использованием пароля (ключа). В случае с открытым методом одна станция может подключиться к другой без необходимости авторизации. Если вас не устраивает это, то необходимо утилизировать метод с использованием ключа. В случае с последним вариантом пароль шифруется одним из методов:
Наиболее подходящий вариант можно установить на любом роутере.
Переходим к настройкам маршрутизатора
Даже неподготовленный пользователь без проблем произведёт все необходимые конфигурации. Чтобы начать настройку прибора, необходимо подключить его к персональному компьютеру при помощи кабеля. Если это действие выполнено, то откройте любой веб-обозреватель и в адресной строке наберите http://192.168.0.1, затем нажмите Enter. Указанный адрес подходит практически для любого девайса, но более точную информацию можно прочитать в инструкции. Кстати, это действие как раз и является аутентификацией, после прохождения которой вы получаете доступ к закрытой информации вашего роутера. Вы увидите запрос на вход в интерфейс, который поможет выполнить необходимые настройки. Если логин и пароль никто не менял, то по умолчанию практически во всех моделях от различных компоновщиков используется слово admin в обоих полях. Купленный маршрутизатор имеет открытую беспроводную сеть, так что к ней могут подключиться все желающие. В том случае, если вас это не устраивает, её необходимо защитить.
Защищаем беспроводную сеть
В различных моделях названия меню и подменю могут отличаться. Для начала нужно зайти в меню роутера и выбрать настройку беспроводной сети Wi-Fi. Указываем имя сети. Его будут видеть все беспроводные устройства, которые необходимо подключить к прибору. Далее нам необходимо выбрать один из методов шифрования, список которых приведён выше. Мы рекомендуем эксплуатировать WPA2-PSK. Указанный режим является одним из самых надёжных и универсальных. В соответствующем поле нужно вписать придуманный вами ключ. Он будет использоваться для подключения к беспроводной сети девайса вашими устройствами (смартфонами, ноутбуками, планшетами и другими гаджетами). После того как все вышеперечисленные действия будут выполнены, беспроводная сеть будет полностью защищена от несанкционированного подключения к ней. Никто не сможет пользоваться вашим трафиком, не зная пароля аутентификации.
Чтобы устанавливаемый пароль смог максимально защитить вашу сеть от несанкционированного подключения, он должен состоять из достаточно большого количества символов. Рекомендуется использовать не только цифры, но и буквы верхнего и нижнего регистров.
Токен авторизации на примере JSON WEB Token
Введение
Начнем с того, что важно уметь различать следующие два понятия: аутентификации и авторизации. Именно с помощью этих терминов почти все клиент-серверные приложения основывают разделение прав доступа в своих сервисах.
Еще одно небольшое введение
Формальное определение
Приступим наконец к работе самого токена. Как я сказал ранее в качестве токенов наиболее часто рассматривают JSON Web Tokens (JWT) и хотя реализации бывают разные, но токены JWT превратились в некий стандарт, именно поэтому будем рассматривать именно на его примере.
JSON Web Token (JWT) — это открытый стандарт (RFC 7519) для создания токенов доступа, основанный на формате JSON.
Фактически это просто строка символов (закодированная и подписанная определенными алгоритмами) с некоторой структурой, содержащая полезные данные пользователя, например ID, имя, уровень доступа и так далее. И эта строчка передается клиентом приложению при каждом запросе, когда есть необходимость идентифицировать и понять кто прислал этот запрос.
Принцип работы
Рассмотрим принцип работы клиент серверных приложений, работающих с помощью JWT. Первым делом пользователь проходит аутентификацию, конечно же если не делал этого ранее и в этом есть необходимость, а именно, например, вводит свой логин и пароль. Далее приложение выдаст ему 2 токена: access token и refresh token (для чего нужен второй мы обсудим ниже, сейчас речь идет именно об access token). Пользователь тем или иным способом сохраняет его себе, например, в локальном хранилище или в хранилище сессий. Затем, когда пользователь делает запрос к API приложения он добавляет полученный ранее access token. И наконец наше приложение, получив данный запрос с токеном, проверяет что данный токен действительный (об этой проверке, опять же, ниже), вычитывает полезные данные, которые помогут идентифицировать пользователя и проверить, что он имеет право на запрашиваемые ресурсы. Таким нехитрым образом происходит основная логика работы с JSON Web Tokens.

Структура токена
Пришло время обсудить структуру токена и тем самым лучше разобраться в его работе. Первое что следует отметить, что JWT токен состоит из трех частей, разделенных через точку:
Полезные данные (playload)

Рассмотрим каждую часть по подробнее.
Заголовок
Это первая часть токена. Она служит прежде всего для хранения информации о токене, которая должна рассказать о том, как нам прочитать дальнейшие данные, передаваемые JWT. Заголовок представлен в виде JSON объекта, закодированного в Base64-URL Например:
Если раскодировать данную строку получим:
Полезные данные
Что в JSON формате представляет собой:
Именно здесь хранится вся полезная информация. Для данной части нет обязательных полей, из наиболее часто встречаемых можно отметить следующие:
Одной из самых важных характеристик любого токена является время его жизни, которое может быть задано полем exp. По нему происходит проверка, актуален ли токен еще (что происходит, когда токен перестает быть актуальным можно узнать ниже). Как я уже упоминал, токен может помочь с проблемой авторизации, именно в полезных данных мы можем добавить свои поля, которые будут отражать возможности взаимодействия пользователя с нашим приложением. Например, мы можем добавить поле is_admin или же is_preferUser, где можем указать имеет ли пользователь права на те или иные действия, и при каждом новом запросе с легкостью проверять, не противоречат ли запрашиваемые действия с разрешенными. Ну а что же делать, если попробовать изменить токен и указать, например, что мы являемся администраторами, хотя таковыми никогда не были. Здесь мы плавно можем перейти к третьей и заключительной части нашего JWT.
Подпись
Время жизни токена и Refresh Token
Заключение
В данной статье я постарался подробно рассмотреть работу клиент-серверных приложений с токеном доступа, а конкретно на примере JSON Web Token (JWT). Еще раз хочется отметить с какой сравнительной легкостью, но в тоже время хорошей надежностью, токен позволяет решать проблемы аутентификации и авторизации, что и сделало его таким популярным. Спасибо за уделенное время.
WifiOTP: Удобная двухфакторная аутентификация с помощью Wi-Fi SSID
Проблема: двухфакторная аутентификация слишком сложна для большинства пользователей
Классическая двухфакторная аутентификация подразумевает достаточно утомительную для пользователей процедуру. Опишем последовательность действий, необходимых для входа в тот же Gmail на персональном компьютере с использованием мобильного телефона в качестве генератора одноразовых паролей (OTP). После входа с помощью первого фактора (пароля), надо:
1) Найти телефон
2) Разблокировать его
3) Найти приложение-OTP генератор (например, Google Authenticator или Token2 Mobile OTP)
4) Подсмотреть OTP и ввести его с клавиатуры
Примерно так же «сложно» с аппаратными ключами стандарта TOTP/HOTP (с U2F ключами чуть проще). Понятно, что у всего есть своя цена, но для обычных пользователей, особенно не сталкивавшихся прежде с компрометацией учетных записей, эта мера кажется лишней. Неудивительно, что в случаях, где двухфакторная аутентификация необязательна, только небольшой процент пользователей активирует эту опцию. По данным исследователей, в случае с Gmail, это около 6% [1]. В целом, для решения этой проблемы надо только найти альтернативный канал между основной системой (в нашем случае браузер на компьютере) и ключом (мобильным приложением).
Существующие решения
Несколько провайдеров двухфакторной аутентификации предлагают более простую для пользователей процедуру. Рассмотрим некоторые из них.
DuoSecurity и Authy
Если не вдаваться в детали архитектуры, принцип у обоих систем основан на push notifications: при запросе второго фактора на устройство отправляется запрос на разрешение входа, и пользователю нужно только его подтвердить. Это упрощает процесс для конечного пользователя до одного действия.
Минусом push notifications является необходимость интернет доступа на мобильном устройстве. Если интернета нет, приложения можно использовать в fallback режиме, где OTP надо вводить вручную, то есть, точно так же как с Google Authenticator.
У Authy есть еще один fallback-режим, доступный только для MacOS – это передача OTP кода через протокол BLE. Возможно, это и проще чем ввод кодов с клавиатуры, но для ввода OTP с помощью Authy BLE надо: 1) выбрать пункт в Authy Connector App (OTP будет скопирован в буфер обмена) и 2) Вставить OTP из буфера. Учитывая то что поддержка BLE есть не везде, подозреваю, что особой популярностью Authy BLE не пользуется.
SlickLogin, SoundLogin и др.
В качестве канала для передачи OTP в проектах SlickLogin и SoundLogin используется ультразвук. Принцип прост – микрофон компьютера улавливает OTP которые генерирует устройство или мобильное приложение через DTMF в ультразвуке. Минус очевиден- необходимость использования звуковых подсистем (микрофона) и зависимость от их характеристик (не все смогут уловить или сгенерировать ультразвук).
Есть еще несколько инициатив, пытающихся решить проблему, и у каждого есть свои плюсы и минусы. Но есть один общий минус: в отличие от WifiOTP, они не способны заменить клиентскую часть без изменения серверной части, то есть не являются так называемым “drop-in” заменой того же Google Authenticator-a.
WifiOTP: Наше решение
Система состоит из двух компонентов:
— WifiOTP токен: точка доступа Wi-Fi которая меняет название сети (SSID) каждые 30 секунд. Формат SSID, например, сеть с именем WOTP_5533_OTP-Encrypted, где OTP-Encrypted это текущий одноразовый пароль, зашифрованный ключом, который известен только клиенту и токену. OTP генерируется на основе HMAC ключа, в соответствии с RFC6238, который используется только для генерации OTP и клиенту никак не передается.
— WifiOTP клиент: приложение, запущенное на клиентском компьютере. Клиент периодически сканирует список доступных сетей, находит нужную сеть по префиксу. Далее, OTP расшифровывается и доступен для использования. В примере Windows клиента, расшифрованный OTP можно ввести в любое текущее поле нажав Ctrl+Alt+X.
На видео показан процесс работы WifiOTP клиента на Windows 8.
Как видно на видео, для демо мы используем обычный gmail акаунт, то есть WifiOTP может заменить стандартный Google Authenticator (и любой другой TOTP token) без изменений серверной части.
Уточню еще то, что клиент может быть подключен к сети как угодно, в том числе и по Wi-Fi; как такового подключения к беспроводной сети, генерирующейся WifiOTP токеном, нет – WiFi адаптер может сканировать транслируемые сети, не отключаясь от текущей.
Проект пока никоим образом не готов для коммерческого использования, но уже готовы PoC реализации для различных платформ:
— WifiOTP токен для Windows
WifiOTP будет представлен на конференции ITU Kaleidoscope 2015 9 декабря. Полный текст статьи доступен в архиве Женевского университета.
Исходный код для Windows выложен на Github.
JWT — как безопасный способ аутентификации и передачи данных
JSON Web Token (JWT) — это открытый стандарт (RFC 7519) для создания токенов доступа, основанный на формате JSON. Как правило, используется для передачи данных для аутентификации в клиент-серверных приложениях. Токены создаются сервером, подписываются секретным ключом и передаются клиенту, который в дальнейшем использует данный токен для подтверждения своей личности.
В простом понимании — это строка в специальном формате, которая содержит данные, например, ID и имя зарегистрированного пользователя. Она передается при каждом запросе на сервер, когда необходимо идентифицировать и понять, кто прислал этот запрос.
В этой статье разберу, что такое Access токен, Refresh токен и как с ними работать.
Для дальнейших разборов будет использован токен:
После того, как посетитель прошел авторизацию в нашей системе, указав свой логин и пароль, система выдает ему 2 токена: access token и refresh токен.
После чего посетитель, когда хочет получить с сервера данные, например, свой профиль, вместе с запросом он передает Access токен, как на примере выше. Сервер, получив его проверяет, что он действительный (об этом чуть ниже), вычитывает полезные данные из него (тот же user_id) и, таким образом, может идентифицировать пользователя.
Токен разделен на три основные группы: заголовок, полезные данные и сигнатура, разделенные между собой точкой.
Это можно проверить прям в браузере, выполнив в консоле или js коде:
Вторым блоком идет eyJ1c2VyX2lkIjoxLCJleHAiOjE1ODEzNTcwMzl9
Это есть полезные данные, так же закодированные в Base64. После раскодирования получим:
Поскольку необходимо ограничивать токен по времени, поле exp обязательно. По нему можно проверить, актуален ли токен или нет.
Она получается примерно следующим образом:
Берем заголовок, например <"alg":"HS256","typ":"JWT">и кодируем его в base64, получаем ту самую часть eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
Тоже самое проделываем с данными eyJ1c2VyX2lkIjoxLCJleHAiOjE1ODEzNTcwMzl9
После этого склеиваем их и получаем eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJleHAiOjE1ODEzNTcwMzl9
Далее эти данные шифруем с помощью нашего алгоритма HMAC-SHA256 и ключа.
Для проверка токена необходимо проделать ту же операцию.
Как только время выйдет, пользователю снова придется проходить авторизацию. Так вот чтобы этого избежать, существует Refresh токен. С помощью него можно продлить Access токен.
У него, обычно, нет какой-то структуры и это может быть некая случайная строка.
Для проекта odo24.ru я использовал следующий подход.
Генерируется Access токен и после случайная строка, например T6cjEbghMZmybUd_fhE
С нашего нового Access токена eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxLCJleHAiOjE1ODEzNTcwMzl9.E4FNMef6tkjIsf7paNrWZnB88c3WyIfjONzAeEd4wF0 беру последние шесть знаков, получаю Ed4wF0
Склеиваю и получаю рефреш токен T6cjEbghMZmybUd_fhEEd4wF0
Это сделано для привязки Access токена к Refresh. Для получения новых токенов необходимо передать эти два токена. Делается проверка на их связку и только после валидируется Access токен. Если и второй этап прошел успешно, тогда получаем с базы данных по текущему user_id рефреш токен и сверяем с тем, что к нам пришел. Если они совпадают, тогда генерируются новые токены и в базе данных обновляется Refresh токен на новый.
В моем случае я разделил оба токена и храню в разных местах. Access токен нужен только для идентификации пользователя и на клиенте (JS) он не нужен, поэтому он передается в Cookie (http only).
Refresh токен хранится в LocalStorage и используется только когда Access токен перестал быть актуальным.
Представим ситуацию, когда у нас каким-то образом украли Access токен. Да, это уже плохо и где-то у нас брешь в безопасности. Злоумышленник в этом случае сможет им воспользоваться не более чем на 15-30 минут. После чего токен «протухнет» и перестанет быть актуальным. Ведь нужен второй токен для продления.
Если украли Refresh токен, то без Access токена (который недоступен в JS) продлить ничего нельзя и он оказывается просто бесполезным.
Дату протухания внедрил прям в токен с той целью, чтобы не хранить эту информацию где-то в другом месте, например, в базе данных.
Дата содержит год, месяц, день, час и минуты. Хранится в ASCII
Кодирование даты на Golang:
Всю реализацию на Go можно изучить на Github-е
В этой статье попытался рассказать о взаимодействии двух токенов и как ими пользоваться. В сети достаточно много информации о Access токенах, однако мало, как мне показалось, информации о Refresh токенах.
Токен Авторизации
В настоящее время киберпреступность стала проблемой мирового уровня. Например, Дмитрий Самарцев, директор BI.ZONE в сфере кибербезопасности привёл на Всемирном экономическом форуме следующие цифры. В 2018 году ущерб мировой экономики от киберпреступности составил по его словам 1.5 триллиона долларов. В 2022 году прогнозируются потери уже в 8 триллионов, а в 2030 ущерб от киберпреступлений может превысить 90 триллионов долларов. Чтобы уменьшить потери от киберпреступлений, необходимо совершенствовать методы обеспечения безопасности пользователей. В настоящее время существует множество методов аутентификации и авторизации, которые помогают реализовать надежную стратегию безопасности. Среди них многие эксперты выделяют в качестве лучшей авторизацию на основе токенов.
До появления токена авторизации повсеместно использовалась система паролей и серверов. Сейчас эта система всё ещё остаётся актуальной из-за своей простоты и доступности. Используемые традиционные методы гарантируют пользователям возможность получить доступ к их данным в любое время. Это не всегда эффективно.
Рассмотрим эту систему. Как правило, идеология их применения базируется на следующих принципах:
Осуществляется генерация аккаунтов, т.е. люди придумывают сочетание букв, цифр или любых известных символов, которые станут логином и паролем.
Для осуществления возможности входа на сервер, пользователю требуется сохранять эту уникальную комбинацию и всегда иметь к ней доступ.
При необходимость заново подключиться к серверу и авторизироваться под своим аккаунтом, пользователю требуется заново вводить пароль и логин.
Кража паролей – это далеко не уникальное событие. Один из первых задокументированных подобных случаев произошел еще в 1962 году. Людям не просто запоминать разные комбинации символов, поэтому они часто записывают все свои пароли на бумаге, используют один и тот же вариант в нескольких местах, лишь слегка модифицируют с помощью добавления символов или изменением регистра некий старый пароль, чтобы использовать его в новом месте, из-за чего два пароля становятся крайне схожи. Логины по той же причине часто делаются одинаковые, идентичные.
Помимо опасности кражи данных и сложности с хранением информации, пароли также требуют проверки подлинности сервера, что увеличивает нагрузку на память. Каждый раз, когда пользователь входит в систему, компьютер создает запись транзакции.
Типы токенов авторизации
Токены авторизации различаются по типам. Рассмотрим их:
Устройства, которые необходимо подключить физически. Например: ключи, диски и тому подобные. Тот, кто когда-либо использовал USB-устройство или смарт-карту для входа в систему, сталкивался с подключенным токеном.
Устройства, которые находятся достаточно близко к серверу, чтобы установить с ним соединение, но оно не подключаются физически. Примером такого типа токенов может служить «magic ring» от компании Microsoft.
устройства, которые могут взаимодействовать с сервером на больших расстояниях.
Во всех трех случаях пользователь должен что-то сделать, чтобы запустить процесс. Например, ввести пароль или ответить на вопрос. Но даже когда эти шаги совершаются без ошибок, доступ без токена получить невозможно.
Процесс токен авторизации
Авторизация с помощью токена происходит следующим образом. Сначала человек запрашивает доступ к серверу или защищенному ресурсу. Запрос обычно включает в себя ввод логина и пароля. Затем сервер определяет, может ли пользователь получить доступ. После этого сервер взаимодействует с устройством: ключ, телефон, USB или что-то ещё. После проверки сервер выдает токен и отправляет пользователю. Токен находится в браузере, пока работа продолжается. Если пользователь попытается посетить другую часть сервера, токен опять связывается с ним. Доступ предоставляется или, наоборот, запрещается на основе выданного токена.
Администраторы устанавливают ограничения на токены. Можно разрешить одноразовый токен, который немедленно уничтожается, когда человек выходит из системы. Иногда устанавливается маркер на самоуничтожение в конце определенного периода времени.
Что такое аутентификация на основе токенов?
аутентификация по паролю (обычное запоминание комбинации символов)
аутентификация по биометрии (отпечаток пальца, сканирование сетчатки глаза, FaceID)
Аутентификация токенов требует, чтобы пользователи получили сгенерированный компьютером код (или токен), прежде чем им будет предоставлен доступ в сеть. Аутентификация токенов обычно используется в сочетании с аутентификацией паролей для дополнительного уровня безопасности (двухфакторная аутентификация (2FA)). Если злоумышленник успешно реализует атаку грубой силы, чтобы получить пароль, ему придется обойти также уровень аутентификации токенов. Без доступа к токену получить доступ к сети становится труднее. Этот дополнительный уровень отпугивает злоумышленников и может спасти сети от потенциально катастрофических нарушений.
Как токены работают?
Во многих случаях токены создаются с помощью донглов или брелоков, которые генерируют новый токен аутентификации каждые 60 секунд в соответствии с заданным алгоритмом. Из-за мощности этих аппаратных устройств пользователи должны постоянно держать их в безопасности, чтобы они не попали в чужие руки. Таким образом, члены команды должны отказаться от своего ключа или брелока, если команда распадается.
Наиболее распространенные системы токенов содержат заголовок, полезную нагрузку и подпись. Заголовок состоит из типа полезной нагрузки, а также используемого алгоритма подписи. Полезная нагрузка содержит любые утверждения, относящиеся к пользователю. Подпись используется для доказательства того, что сообщение не подвергалось опасности при передаче. Эти три элемента работают вместе, чтобы создать высокоэффективную и безопасную систему аутентификации.
Хотя эти традиционные системы аутентификации токенов все еще действуют сегодня, увеличение количества смартфонов сделал аутентификацию на основе токенов проще, чем когда-либо. Смартфоны теперь могут быть дополнены, чтобы служить генераторами кодов, предоставляя конечным пользователям коды безопасности, необходимые для получения доступа к их сети в любой момент времени. В процессе входа в систему пользователи получают криптографически безопасный одноразовый код доступа, который ограничен по времени 30 или 60 секундами, в зависимости от настроек на стороне сервера. Эти мягкие токены генерируются либо приложением-аутентификатором на устройстве, либо отправляются по запросу через SMS.
Появление аутентификации на основе токенов смартфонов означает, что у большинства сотрудников уже есть оборудование для генерации кодов. В результате затраты на внедрение и обучение персонала сведены к минимуму, что делает эту форму аутентификации на основе токенов удобным и экономически выгодным вариантом для многих компаний.
Безопасно ли использование токенов?
По мере роста киберпреступности и усложнение методов атак должны совершенствоваться методы и политика защиты. Из-за растущего использования атак “грубой силой”, перебора по словарю и фишинга для захвата учетных данных пользователей становится совершенно очевидно, что аутентификации по паролю уже недостаточно, чтобы противостоять злоумышленникам.
Но, несмотря на множество преимуществ, связанных с платформой токенов, всегда остается небольшой риск. Конечно, токены на базе смартфонов невероятно удобны в использовании, но смартфоны также представляют собой потенциальные уязвимости. Токены, отправленные в виде текстов, более рискованны, потому что их можно перехватить во время передачи. Как и в случае с другими аппаратными устройствами, смартфоны также могут быть потеряны или украдены и оказаться в руках злоумышленников.
Рекомендации по аутентификации на основе токенов
Реализация надежной стратегии аутентификации имеет решающее значение, когда речь идет о том, чтобы помочь клиентам защитить свои сети от нарушения безопасности. Но для того, чтобы стратегия действительно была эффективной, требуется выполнение нескольких важных основных условий:
Правильный веб-токен. Хотя существует целый ряд веб-токенов, ни один из них не может обеспечить ту же надежность, которую предоставляет веб-токен JSON (JWT). JWT считается открытым стандартом (RFC 7519) для передачи конфиденциальной информации между несколькими сторонами. Обмен информацией осуществляется цифровой подписью с использованием алгоритма или сопряжения открытого и закрытого ключей для обеспечения оптимальной безопасности.
Использование HTTPS-соединений. HTTPS-соединения были построены с использованием протоколов безопасности, включающих шифрование и сертификаты безопасности, предназначенные для защиты конфиденциальных данных. Важно использовать HTTPS-соединение, а не HTTP или любой другой протокол соединения при отправке токенов, так как эти в ином случае возрастает риск перехвата со стороны злоумышленника.
Что такое JSON веб-токены?
В своей компактной форме веб-токены JSON состоят из трех частей, разделенных точками: заголовок, полезная нагрузка, подпись. Поэтому JWT выглядит обычно выглядит следующим образом: «xxxx.yyyy.zzzz».
Заголовок состоит из двух частей: типа токена, которым является JWT, и используемого алгоритма подписи, такого как HMAC SHA256 или RSA.
Тоже не понял, что за прикол там происходит.
Подпись же используется для проверки того, что сообщение не было изменено по пути, а в случае токенов, подписанных закрытым ключом, она также может подтвердить, что отправитель JWT тот, за себя выдает.
Выходные данные представляют собой три строки Base64-URL, разделенные точками, которые могут быть легко переданы в средах HTML и HTTP, будучи при этом более компактными по сравнению со стандартами на основе XML, такими как SAML.
Почему стоит использовать токены авторизации?
Многие люди считают, что если текущая стратегия работает хорошо (пусть и с некоторыми ошибками), то нет смысла что-то менять. Но токены авторизации могут принести множество выгод.
Они хороши для администраторов систем, которые часто предоставляют временный доступ, т.е. база пользователей колеблется в зависимости от даты, времени или особого события. Многократное предоставление и отмена доступа создаёт серьёзную нагрузку на людей.
Токены авторизации позволяют обеспечить детальный доступ, т.е. сервер предоставляет доступ на основе определенных свойств документа, а не свойств пользователя. Традиционная система логинов и паролей не допускает такой тонкой настройки деталей.
Токены авторизации могут обеспечить повышенную безопасность. Сервер содержит конфиденциальные документы, которые могут нанести компании или стране серьезный ущерб при выпуске. Простой пароль не может обеспечить достаточную защиту.
Есть и другие преимущества использования этой технологии. Но даже уже перечисленных достаточно, чтобы внедрить её на сервера.






