Лекция
Привет, Вы узнаете о том , что такое аутентификация, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое аутентификация, авторизация, jwt, oauth2, oauth , настоятельно рекомендую прочитать все из категории Криптография и Криптоанализ. Стеганография. Защита Информации и информационная безопасность. .
аутентификация (англ. authentication < греч. αὐθεντικός [authentikos] «реальный, подлинный» < αὐτός [autos] «сам; он самый») — процедура проверки подлинности, например:
В русском языке термин применяется, в основном, в области информационных технологий.
Учитывая степень доверия и политику безопасности систем, проводимая проверка подлинности может быть односторонней или взаимной. Обычно она проводится с помощью криптографических способов.
Аутентификацию не следует путать с авторизацией (процедурой предоставления субъекту определенных прав) и идентификацией (процедурой распознавания субъекта по его идентификатору).
С древних времен перед людьми стояла довольно сложная задача — убедиться в достоверности важных сообщений. Придумывались речевые пароли, сложные печати. Появление методов аутентификации с применением механических устройств сильно упрощало задачу, например, обычный замок и ключ были придуманы очень давно. Пример системы аутентификации можно увидеть в старинной сказке «Приключения Али́-Бабы́ и сорока разбойников». В этой сказке говорится о сокровищах, спрятанных в пещере. Пещера была загорожена камнем. Отодвинуть его можно было только с помощью уникального речевого пароля: «Сим-Сим, откройся!».
В настоящее время в связи с обширным развитием сетевых технологий автоматическая аутентификация используется повсеместно.
Документы, определяющие стандарты аутентификации
Настоящий стандарт:
В настоящем стандарте изложены два вида аутентификации: простая, использующая пароль как проверку заявленной идентичности, и строгая, использующая удостоверения личности, созданные с использованием криптографических методов
Настоящий стандарт устанавливает Data Authentication Algorithm(DAA), который может быть использован для обнаружения несанкционированных изменений данных, как преднамеренных, так и случайных, стандарт основан на алгоритме, указанном в Data Encryption Standard(DES) Federal Information Processing Standards Publication(FIPS PUB) 46, и совместим как с Department of the Treasury’s Electronic Funds and Security Transfer Policy and the American National Standards Institute(ANSI) так и с Standard for Financial Institution Message Authentication.
Данный стандарт используется для контроля над целостностью передаваемой информации средствами криптографической аутентификации.
В любой системе аутентификации обычно можно выделить несколько элементов:
Элемент аутентификации | Пещера 40 разбойников | Регистрация в системе | Банкомат |
---|---|---|---|
Субъект | Человек, знающий пароль | Авторизованный пользователь | Держатель банковской карты |
Характеристика | Пароль "Сим-Сим, откройся!" | Тайный пароль | Банковская карта и персональный идентификатор |
Хозяин системы | 40 разбойников | Предприятие, которому принадлежит система | Банк |
Механизм аутентификации | Волшебное устройство, реагирующее на слова | Программное обеспечение, проверяющее пароль | Программное обеспечение, проверяющее карту и персональный идентификатор |
Механизм управления доступом | Механизм, отодвигающий камень от входа в пещеру | Процесс регистрации, управления доступом | Разрешение на выполнение банковских действий |
Еще до появления компьютеров использовались различные отличительные черты субъекта, его характеристики. Сейчас использование той или иной характеристики в системе зависит от требуемой надежности, защищенности и стоимости внедрения. Выделяют 3 фактора аутентификации:
Федеральный закон от 06.04.2011 N 63-ФЗ «Об электронной подписи» (с изменениями) предусматривает следующие виды электронной подписи:
Один из способов аутентификации в компьютерной системе состоит во вводе вашего пользовательского идентификатора, в просторечии называемого «логином» (англ. login — регистрационное имя пользователя, учетка) и пароля — неких конфиденциальных сведений. Достоверная (эталонная) пара логин-пароль хранится в специальной базе данных.
Простая аутентификация имеет следующий общий алгоритм:
Введенный субъектом пароль может передаваться в сети двумя способами:
С точки зрения наилучшей защищенности при хранении и передаче паролей следует использовать однонаправленные функции. Обычно для этих целей используются криптографически стойкие хеш-функции. В этом случае на сервере хранится только образ пароля. Получив пароль и проделав его хеш-преобразование, система сравнивает полученный результат с эталонным образом, хранящимся в ней. При их идентичности пароли совпадают. Для злоумышленника, получившего доступ к образу, вычислить сам пароль практически невозможно.
Использование многоразовых паролей имеет ряд существенных недостатков. Во-первых, сам эталонный пароль или его хешированный образ хранятся на сервере аутентификации. Зачастую хранение пароля производится без криптографических преобразований, в системных файлах. Получив доступ к ним, злоумышленник легко доберется до конфиденциальных сведений. Во-вторых, субъект вынужден запоминать (или записывать) свой многоразовый пароль. Злоумышленник может заполучить его, просто применив навыки социальной инженерии, без всяких технических средств. Кроме того, сильно снижается защищенность системы в случае, когда субъект сам выбирает себе пароль. Зачастую им оказывается какое-то слово или сочетание слов, присутствующие в словаре. В ГОСТ 28147-89 длина ключа составляет 256 бит (32 байта). При использовании генератора псевдослучайных чисел ключ обладает хорошими статистическими свойствами. Пароль же, который является, например, словом из словаря, можно свести к псевдослучайному числу длиной 16 бит, что короче ГОСТ-ового ключа в 16 раз. При достаточном количестве времени злоумышленник может взломать пароль простым перебором. Решением этой проблемы является использование случайных паролей или ограниченность по времени действия пароля субъекта, по истечении которого пароль необходимо поменять.
На компьютерах с ОС семейства UNIX базой является файл /etc/master.passwd (в дистрибутивах Linux обычно файл /etc/shadow, доступный для чтения только root), в котором пароли пользователей хранятся в виде хеш-функций от открытых паролей, кроме этого, в этом же файле хранится информация о правах пользователя. Изначально в Unix-системах пароль (в зашифрованном виде) хранился в файле /etc/passwd, доступном для чтения всем пользователям, что было небезопасно.
На компьютерах с операционной системой Windows NT/2000/XP/2003 (не входящих в домен Windows) такая база данных называется SAM (Security Account Manager — Диспетчер защиты учетных записей). База SAM хранит учетные записи пользователей, включающие в себя все данные, необходимые системе защиты для функционирования. Находится в каталоге %windir%\system32\config\.
В доменах Windows Server 2000/2003 такой базой является Active Directory.
Однако более надежным способом хранения аутентификационных данных признано использование особых аппаратных средств (компонентов).
При необходимости обеспечения работы сотрудников на разных компьютерах (с поддержкой системы безопасности) используют аппаратно-программные системы, позволяющие хранить аутентификационные данные и криптографические ключи на сервере организации. Пользователи свободно могут работать на любом компьютере (рабочей станции), имея доступ к своим аутентификационным данным и криптографическим ключам.
Заполучив однажды многоразовый пароль субъекта, злоумышленник имеет постоянный доступ к взломанным конфиденциальным сведениям. Эта проблема решается применением одноразовых паролей (OTP — One Time Password). Суть этого метода — пароль действителен только для одного входа в систему, при каждом следующем запросе доступа — требуется новый пароль. Реализован механизм аутентификации по одноразовым паролям может быть как аппаратно, так и программно.
Технологии использования одноразовых паролей можно разделить на:
В первом методе используется генератор псевдослучайных чисел с одинаковым значением для субъекта и для системы. Сгенерированный субъектом пароль может передаваться системе при последовательном использовании односторонней функции или при каждом новом запросе, основываясь на уникальной информации из предыдущего запроса.
Во втором методе используются временные метки. В качестве примера такой технологии можно привести SecurID. Она основана на использовании аппаратных ключей и синхронизации по времени. Аутентификация основана на генерации случайных чисел через определенные временные интервалы. Уникальный секретный ключ хранится только в базе системы и в аппаратном устройстве субъекта. Когда субъект запрашивает доступ в систему, ему предлагается ввести PIN-код, а также случайно генерируемое число, отображаемое в этот момент на аппаратном устройстве. Система сопоставляет введенный PIN-код и секретный ключ субъекта из своей базы и генерирует случайное число, основываясь на параметрах секретного ключа из базы и текущего времени. Далее проверяется идентичность сгенерированного числа и числа, введенного субъектом.
Третий метод основан на единой базе паролей для субъекта и системы и высокоточной синхронизации между ними. При этом каждый пароль из набора может быть использован только один раз. Благодаря этому, даже если злоумышленник перехватит используемый субъектом пароль, то он уже будет недействителен.
По сравнению с использованием многоразовых паролей одноразовые пароли предоставляют более высокую степень защиты.
Актуальность обеспечения безопасности мобильных средств коммуникации, например, ip-phone, стимулирует новые разработки в этой области. Среди них можно назвать аутентификацию с помощью SMS-сообщений.
Процедура такой аутентификации включает в себя следующие шаги:
Привлекательность данного метода заключается в том, что ключ получается не по тому каналу, по которому производится аутентификация (out-of-band), что практически исключает атаку типа «человек посередине». Дополнительный уровень безопасности может дать требование ввода PIN-кода мобильного средства.
Данный метод получил широкое распространение в банковских операциях через интернет.
Методы аутентификации, основанные на измерении биометрических параметров человека, обеспечивают почти 100 % идентификацию, решая проблемы утраты паролей и личных идентификаторов.
Примерами внедрения указанных методов являются системы идентификации пользователя по рисунку радужной оболочки глаза, отпечаткам ладони, формам ушей, инфракрасной картине капиллярных сосудов, по почерку, по запаху, по тембру голоса и даже по ДНК.
Новым направлением является использование биометрических характеристик в интеллектуальных расчетных карточках, жетонах-пропусках и элементах сотовой связи. Например, при расчете в магазине предъявитель карточки кладет палец на сканер в подтверждение, что карточка действительно его.
В то же время биометрическая аутентификация имеет ряд недостатков:
Новейшим направлением аутентификации является доказательство подлинности удаленного пользователя по его местонахождению. Данный защитный механизм основан на использовании системы космической навигации, типа GPS (Global Positioning System).
Пользователь, имеющий аппаратуру GPS, многократно посылает координаты заданных спутников, находящихся в зоне прямой видимости. Подсистема аутентификации, зная орбиты спутников, может с точностью до метра определить месторасположение пользователя. Высокая надежность аутентификации определяется тем, что орбиты спутников подвержены колебаниям, предсказать которые достаточно трудно. Кроме того, координаты постоянно меняются, что сводит на нет возможность их перехвата.
Сложность взлома системы состоит в том, что аппаратура передает оцифрованный сигнал спутника, не производя никаких вычислений. Все вычисления о местоположении производят на сервере аутентификации.
Аппаратура GPS проста и надежна в использовании и сравнительно недорога. Это позволяет ее использовать в случаях, когда авторизованный удаленный пользователь должен находиться в нужном месте.
Данный механизм основан на использовании информации о местоположении серверов, точек доступа беспроводной связи, через которые осуществляется подключение к сети интернет.
Относительная простота взлома состоит в том, что информацию о местоположении можно изменить, используя так называемые прокси-серверы или системы анонимного доступа.
В последнее время все чаще применяется так называемая расширенная, или многофакторная, аутентификация. Она построена на совместном использовании нескольких факторов аутентификации. Это значительно повышает защищенность системы.
В качестве примера можно привести использование SIM-карт в мобильных телефонах. Субъект вставляет аппаратно свою карту (устройство аутентификации) в телефон и при включении вводит свой PIN-код (пароль).
Также, к примеру, в некоторых современных ноутбуках присутствует сканер отпечатка пальца. Таким образом, при входе в систему субъект должен пройти эту процедуру (биометрика), а потом ввести пароль.
Выбирая для системы тот или иной фактор или способ аутентификации, необходимо, прежде всего, отталкиваться от требуемой степени защищенности, стоимости построения системы, обеспечения мобильности субъекта.
Можно привести сравнительную таблицу:
Уровень риска | Требования к системе | Технология аутентификации | Примеры применения |
---|---|---|---|
Низкий | Требуется осуществить аутентификацию для доступа к системе, причем кража, взлом, разглашение конфиденциальных сведений не будут иметь значительных последствий | Рекомендуется минимальное требование - использование многоразовых паролей | Регистрация на портале в сети Интернет |
Средний | Требуется осуществить аутентификацию для доступа к системе, причем кража, взлом, разглашение конфиденциальных сведений причинят небольшой ущерб | Рекомендуется минимальное требование - использование одноразовых паролей | Произведение субъектом банковских операций |
Высокий | Требуется осуществить аутентификацию для доступа к системе, причем кража, взлом, разглашение конфиденциальных сведений причинят значительный ущерб | Рекомендуется минимальное требование - использование многофакторной аутентификации | Проведение крупных межбанковских операций руководящим аппаратом |
Процедура аутентификации используется при обмене информацией между компьютерами, при этом используются весьма сложные криптографические протоколы, обеспечивающие защиту линии связи от прослушивания или подмены одного из участников взаимодействия. А поскольку, как правило, аутентификация необходима обоим объектам, устанавливающим сетевое взаимодействие, то аутентификация может быть и взаимной.
Таким образом, можно выделить несколько семейств аутентификации:
Аутентификация пользователя на PC:
Аутентификация в сети:
В операционных системах семейства Windows NT 4 используется протокол NTLM (NT LAN Manager — Диспетчер локальной сети NT). А в доменах Windows 2000/2003 применяется гораздо более совершенный протокол Kerberos.
Аутентификация требуется при доступе к таким сервисам как:
Положительным результатом аутентификации (кроме установления доверительных отношений и выработки сессионного ключа) является авторизация пользователя, то есть предоставление ему прав доступа к ресурсам, определенным для выполнения его задач.
Файл cookie - это небольшой фрагмент данных, созданный сервером и отправленный в ваш браузер при посещении веб-сайта. Браузерам часто необходимо сохранить и отправить его обратно на сервер, чтобы сообщить, что запрос исходит от того же браузера, чтобы пользователь оставался аутентифицированным. Мы читаем файлы cookie браузера как пары «ключ-значение».
Аутентификация на основе файлов cookie использует файлы cookie HTTP для проверки подлинности клиентских запросов и сохранения информации о сеансе на сервере по протоколу HTTP без сохранения состояния .
Вот логическая последовательность процесса аутентификации на основе файлов cookie:
Клиент отправляет запрос на вход с учетными данными на внутренний сервер.
Затем сервер проверяет учетные данные. В случае успешного входа в систему веб-сервер создаст сеанс в базе данных и включит Set-Cookie
заголовок в ответ, содержащий уникальный идентификатор в объекте cookie.
Браузер сохраняет файл cookie локально. Пока пользователь остается в системе, клиент должен отправлять cookie во всех последующих запросах на сервер. Затем сервер сравнивает идентификатор сеанса, хранящийся в файле cookie, с идентификатором в базе данных для проверки действительности.
Во время операции выхода из системы сервер истечет срок действия cookie, удалив его из базы данных.
Использование файлов cookie при аутентификации делает ваше приложение отслеживающим состояние. Это будет эффективно для отслеживания и персонализации состояния пользователя.
Файлы cookie имеют небольшой размер, поэтому их удобно хранить на стороне клиента.
Файлы cookie могут быть «только HTTP-файлами», что делает их невозможными для чтения на стороне клиента. Это улучшает защиту от любых атак с использованием межсайтовых сценариев (XSS).
Файлы cookie будут добавлены в запрос автоматически, поэтому разработчику не придется реализовывать их вручную и, следовательно, требуется меньше кода.
Он уязвим для атаки подделки межсайтовых запросов . Часто для защиты требуются другие меры безопасности, такие как токены CSRF .
Вам необходимо сохранить данные сеанса в базе данных или хранить их в памяти на сервере. Это делает его менее масштабируемым и увеличивает накладные расходы, когда на сайте много пользователей.
Файлы cookie обычно работают в одном домене. Например, невозможно прочитать или отправить cookie из домена, такого как jabs.com, в домен boo.com. Это проблема, когда служба API находится из разных доменов для мобильных и веб-платформ.
Клиенту необходимо отправлять cookie при каждом запросе, даже с URL-адресами, для доступа к которым не требуется аутентификация.
При аутентификации на основе токенов мы сохраняем состояние пользователя на клиенте. Веб-токен JSON (JWT) - это открытый стандарт (RFC 7519), который определяет способ безопасной передачи информации между клиентом и сервером в виде объекта JSON. В статье я буду использовать токены и термины JWT как синонимы.
Jwt.io веб - сайт может быть использован для анализа лексем информации JWT. Вы можете использовать jwt.io для экспериментов с веб- токенами JSON путем их декодирования и кодирования.
Анатомия токена JWT состоит из трех частей, разделенных точками (.). Эти три части включают заголовок JWT, полезную нагрузку JWT и его подпись соответственно ( header.payload.signature
).
Пример токена JWT:
Заголовок JWT - это объект JSON в кодировке Base64 URL. Он содержит информацию, описывающую тип токена и используемый алгоритм подписи, например HMAC, SHA256 или RSA.
Пример:
продолжение следует...
Часть 1 Аутентификация и авторизация
Часть 2 Механизм аутентификации на основе JWT токена - Аутентификация и авторизация
Часть 3 Вау!! 😲 Ты еще не читал? Это зря! - Аутентификация и авторизация
Исследование, описанное в статье про аутентификация, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое аутентификация, авторизация, jwt, oauth2, oauth и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Криптография и Криптоанализ. Стеганография. Защита Информации и информационная безопасность.
Комментарии
Оставить комментарий
информационная безопасность - Криптография и Криптоанализ. Стеганография. Защита Информации
Термины: информационная безопасность - Криптография и Криптоанализ. Стеганография. Защита Информации