Идентификация и аутентификация – что это такое, определение, значение

2.Строгая аутентификация, основанная на симметричных алгоритмах

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

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

Протоколы аутентификации с симметричными алгоритмами шифрования.

Ниже приводятся три примера протоколов аутентификации, специфицированных в ISO/IEC 9798-2. Эти протоколы предполагают предварительное распределение разделяемых секретных ключей.

Рассмотрим следующие варианты аутентификации:

  • односторонняя аутентификация с использованием меток времени;
  • односторонняя аутентификация с использованием случайных чисел;
  • двусторонняя аутентификация.

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

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

Введем следующие обозначения:

rА — случайное число, сгенерированное участником А;

rB — случайное число, сгенерированное участником В;

tA — метка времени, сгенерированная участником А;

Eк — симметричное шифрование на ключе К (ключ K должен быть предварительно распределен между А и В).

  1. Односторонняя аутентификация, основанная на метках времени:

. (1)

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

  1. Односторонняя аутентификация, основанная на использовании случайных чисел:

; (1)

. (2)

Участник В отправляет участнику А случайное число rB. Участник А шифрует сообщение, состоящее из полученного числа rBи идентификатора В, и отправляет зашифрованное сообщение участнику В.

  1. Двусторонняя аутентификация, использующая случайные значения:

; (1)

. (2)

. (3)

При получении сообщения (2) участник В выполняет те же проверки, что и в предыдущем протоколе, и дополнительно расшифровывает случайное число rA для включения его в сообщение (3) для участника А. Сообщение (3), полученное участником А, позволяет ему убедиться на основе проверки значений rAи rB, что он имеет дело именно с участником В.

Широко известными представителями протоколов, обеспечивающих аутентификацию пользователей с привлечением в процессе аутентификации третьей стороны, являются протокол распределения секретных ключей Нидхэма и Шредера и протокол Kerberos.

Протоколы, основанные на использовании однонаправленных ключевых хэш-функций

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

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

Односторонняя хэш-функция hK(•) с параметром-ключом К, примененная к шифруемым данным М, дает в результате хэш-значение m (дайджест), состоящее из фиксированного небольшого числа байт (рис. 3).

Дайджест m = hK(M) передается получателю вместе с исходным сообщением М. Получатель сообщения, зная, какая односторонняя хэш-функция была применена для получения дайджеста, заново вычисляет ее, используя расшифрованное сообщение М.

Рис.3. Применение для аутентификации односторонней хэш-функции с параметром-ключом

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

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

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

На рис. 4 показан другой вариант использования односторонней хэш-функции для проверки целостности данных. В этом случае односторонняя хэш-функция h(•) не имеет параметра-ключа, но применяется не просто к сообщению М, а к сообщению, дополненному секретным ключом К, т. е. отправитель вычисляет дайджест т = h(M, К).

Получатель, извлекая исходное сообщение М, также дополняет его тем же известным ему секретным ключом К, после чего применяет к полученным данным одностороннюю хэш-функцию h(•). Результат вычислений — дайджест т’ — сравнивается с полученным по сети дайджестом т.

Рис. 4 – Применение односторонней хэш-функции к сообщению, дополненному секретным ключом К

При использовании односторонних функций шифрования в рассмотренные выше протоколы необходимо внести следующие изменения:

  • функция симметричного шифрования ЕК заменяется функцией hK;
  • проверяющий вместо установления факта совпадения полей в расшифрованных сообщениях с предполагаемыми значениями вычисляет значение однонаправленной функции и сравнивает его с полученным от другого участника обмена информацией;
  • для обеспечения независимого вычисления значения однонаправленной функции получателем сообщения в протоколе 1 метка времени tА должна передаваться дополнительно в открытом виде, а в сообщении (2) протокола 3 случайное число rА должно передаваться дополнительно в открытом виде.

Модифицированный вариант протокола 3 с учетом сформулированных изменений имеет следующую структуру:

; (1)

. (2)

. (3)

Заметим, что в сообщение (3) протокола включено поле А. Результирующий протокол обеспечивает взаимную аутентификацию и известен как протокол SKID 3.

3.Строгая аутентификация, основанная на асимметричных алгоритмах

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

  • расшифровать запрос, зашифрованный на открытом ключе;
  • поставить свою цифровую подпись на запросе.

Пара ключей, необходимая для аутентификации, не должна

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

Аутентификация с использованием асимметричных алгоритмов шифрования

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

(1)

. (2)

Участник В выбирает случайным образом r и вычисляет значение х=h(r) (значение х демонстрирует знание r без раскрытия самого значения r), далее он вычисляет значение е = РA(r, В). Под РА подразумевается алгоритм асимметричного шифрования (например, RSA), а под А(•) — хэш-функция.

Участник В отправляет сообщение (1) участнику А. Участник А расшифровывает е = РА(r, В) и получает значения r1, и B1, а также вычисляет х1=h(r1).

После этого производится ряд сравнений, доказывающих, что x=x1, и что полученный идентификатор B1, действительно указывает на участника В. В случае успешного проведения сравнения участник А посылает r. Получив его, участник В проверяет, то ли это значение, которое он отправил в сообщении (1).

В качестве другого примера приведем модифицированный протокол Нидхэма и Шредера, основанный на асимметричном шифровании.

Рассматривая вариант протокола Нидхэма и Шредера, используемый только для аутентификации, будем подразумевать под РB алгоритм шифрования открытым ключом участника В. Протокол имеет следующую структуру:

. (1)

. (2)

; (3)

Аутентификация, основанная на использовании цифровой подписи

В рекомендациях стандарта Х.509 специфицирована схема аутентификации, основанная на использовании цифровой подписи, меток времени и случайных чисел.

Для описания этой схемы аутентификации введем следующие обозначения:

tA , rА и rв — временная метка и случайные числа соответственно;

SA — подпись, сгенерированная участником А;

SB — подпись, сгенерированная участником B;

certA — сертификат открытого ключа участника А;

certB — сертификат открытого ключа участника В.

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

В качестве примеров приведем следующие протоколы аутентификации.

  1. Односторонняя аутентификация с применением меток времени:

(1)

После принятия данного сообщения участник В проверяет правильность метки времени tA, полученный идентификатор В и, используя открытый ключ из сертификата certA корректность цифровой подписи SA(tA,В).

  1. Односторонняя аутентификация с использованием случайных чисел:

; (1)

(2)

Участник В, получив сообщение от участника А, убеждается, что именно он является адресатом сообщения; используя открытый ключ участника А, взятый из сертификата certA, проверяет корректность подписи SA(rA , rB , В) под числом rА, полученным в открытом виде, числом rB , которое было отослано в сообщении (1), и его идентификатором В. Подписанное случайное число rА используется для предотвращения атак с выборкой открытого текста.

  1. Двусторонняя аутентификация с использованием случайных чисел:

; (1)

(2)

(3)

В данном протоколе обработка сообщений (1) и (2) выполняется так же, как и в предыдущем протоколе, а сообщение (3) обрабатывается аналогично сообщению (2).

Заключение

На данной лекции мы изучили принципы управления доступом к информационным ресурсам. Нами были рассмотрены вопросы: «Идентификация и аутентификация пользователей и программ», «Методы аутентификации, использующие пароли и PIN-коды», «Строгая аутентификация».

Заключение первой части


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

Stay tuned.

Спойлер второй части

Минимальная реализация интеграция Identity Server в ваше приложение выглядит так:

public void Configuration(IAppBuilder app)
{
    var factory = new IdentityServerServiceFactory();
    factory.UseInMemoryClients(Clients.Get())
           .UseInMemoryScopes(Scopes.Get())
           .UseInMemoryUsers(Users.Get());

    var options = new IdentityServerOptions
    {
        SiteName = Constants.IdentityServerName,
        SigningCertificate = Certificate.Get(),
        Factory = factory,
    };

    app.UseIdentityServer(options);
}

Минимальная реализация интеграции веб-клиента с Identity Server:

public void Configuration(IAppBuilder app)
{
    app.UseCookieAuthentication(new CookieAuthenticationOptions
    {
        AuthenticationType = "Cookies"
    });

    app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
    {
        ClientId = Constants.ClientName,
        Authority = Constants.IdentityServerAddress,
        RedirectUri = Constants.ClientReturnUrl,
        ResponseType = "id_token",
        Scope = "openid email",
        SignInAsAuthenticationType = "Cookies",
    });
}

Минимальная реализация интеграции веб-API с Identity Server:

public void Configuration(IAppBuilder app)
{
    app.UseIdentityServerBearerTokenAuthentication(
        new IdentityServerBearerTokenAuthenticationOptions
        {
            Authority = Constants.IdentityServerAddress,
            RequiredScopes = new[] { "write" },
            ValidationMode = ValidationMode.Local,

            // credentials for the introspection endpoint
            ClientId = "write",
            ClientSecret = "secret"
        });

    app.UseWebApi(WebApiConfig.Register());
}

Token authentication

Идентификация и аутентификация - что это такое, определение, значение

Следующее поколение способов аутентификации представляет Token Based Authentication, который обычно применяется при построении систем Single sign-on (SSO). При его использовании запрашиваемый сервис делегирует функцию проверки достоверности сведений о пользователе другому сервису. Т. е. провайдер услуг доверяет выдачу необходимых для доступа токенов собственно токен-провайдеру (Identity provider).

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

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

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

Методы аутентификации, использующие пароли и PIN-коды

Одной из распространенных схем аутентификации является простая аутентификация, которая основана на применении традиционных многоразовых паролей с одновременным согласованием средств его использования и обработки. Аутентификация на основе многоразовых паролей — простой и наглядный пример использования разделяемой информации.

Идентификация и аутентификация - что это такое, определение, значение

Что такое аутентификация?

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

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

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

Частые вопросы

Источники:

  1. Википедия: Биометрические системы аутентификации.
  2. Касперский.ру: Идентификация, аутентификация и авторизация — в чем разница?
  3. Википедия: Идентификация.

Биометрическая аутентификация

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

  • по отпечатку пальцев;
  • по радужной оболочке глаза или по сетчатке глаза;
  • по геометрии руки или лица;
  • по термограмме лица.

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

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

Идентификация и аутентификация пользователей и программ

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

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

Область (scope)

Scope — идентификатор ресурса, к которому клиент хочет получить доступ. Список scope посылается в адрес

в составе

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

Scopes бывают двух видов:

  1. Identity scopes — это запрос информации о пользователе. Его имя, профиль, пол, фотография, адрес электронной почты и т. д.
  2. Resource scopes — имена внешних ресурсо (Web APIs), к которым клиент хочет получить доступ.

Запрос на аутентификацию

Authentication/Token Request — процесс запроса аутентификации.

В зависимости от того какие области (scopes) запрошены, сервис выдачи токенов вернет:

  1. Только Identity Token, если запрошены только Identity scopes.
  2. Identity Token и Access Token, если запрошены также и Resources scopes.
  3. Access Token и Refresh Token, если запрошeн Offline Access.

Более подробно про процесс аутентификации можно прочесть в разделе «

По видам памяти:

  • “RO” (Read Only) — данные записываются только один раз, сразу при изготовлении. Такие метки пригодны только для идентификации. Никакую новую информацию в них записать нельзя, и их практически невозможно подделать;
  • “WORM” (Write Once Read Many) — кроме уникального идентификатора такие метки содержат блок однократно записываемой памяти, которую в дальнейшем можно многократно читать;
  • “RW” (Read and Write) — такие метки содержат идентификатор и блок памяти для чтения/записи информации. Данные в них могут быть перезаписаны большое число раз.

Токен обновления

Refresh Token — токен, по которому STS вернет новый Access Token. В зависимости от режима работы, Refresh Token может быть многоразовым и одноразовым. В случае с одноразовым токеном, при запросе нового Access Token будет также сформирован готовый Refresh Token, который следует использовать при повторном обновлении. Очевидно, что одноразовые токены более безопасны.

Более подробно о составе токенов в разделе «структура токена».

Взгляд сверху

Picture7

Обычно в системах встречаются разные компоненты: пользователи, работающие через браузер, пользователи, взаимодействующие с сервером через мобильные приложения, и просто серверные приложения, нуждающиеся в принадлежащих вам данных, хранящихся на других серверах, доступ к которым осуществляется через Web API.

Введение

Применение открытых каналов передачи данных создает потенциальные возможности для действий злоумышленников (нарушителей).

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

Токен доступа

Access Token — информация, что конкретному пользователю разрешается делать. Клиент запрашивает Access Token и затем использует его для доступа к ресурсам (Web APIs). Access Token содержит информацию о клиенте и пользователе, если она присутствует. Важно понимать, что есть такие типы авторизации, при которых пользователь в процессе непосредственно не участвует (подробнее об этом в следующей части)

Клиент

Client — устройство или программа (браузер, приложение), которым требуется либо токен для аутентификации пользователя, либо токен для доступа к какому-то ресурсу (подразумевается, что данный ресурс «знаком» с тем конкретным «

» у которого клиент запрашивает токен для доступа).

Сервис выдачи токенов

Open ID Connect Provider — важнейший объект всей конструкции централизованного сервиса аутентификации, он также может называться Security Token Service, Identity Provider authorization server и т. д. Различные источники называют его по-разному, но по смыслу это сервис, который выдает токены клиентам.

Основные функции:

По исполнению (определяется целями и условиями использования RFID-меток):

  • Самоклеющиеся бумажные или лавсановые метки;
  • Стандартные пластиковые карты;
  • Дисковые метки (в том числе с центральным отверстием для закрепления на палете);
  • Различные виды брелоков;
  • Специальное исполнение для жестких условий эксплуатации.

Разбираемся детально ху из ху

В данный момент на слуху следующие протоколы:

  1. OpenID — для проверки учетных данных пользователя (identification & authentication).
  2. OAuth — про то, чтобы получать доступ к чему-то.
  3. OpenID Connect — и про и то, и про другое одновременно.

Идентификация, аутентификация и авторизация

Если пользователь намерен зайти в систему под своими учетными данными, он проходит и идентификацию, и аутентификацию. Например, при входе на какой-то сайт, в банкинг, в сервис электронных платежей, в личный кабинет МФО, коммунальной компании.

Как проходит идентификация пользователя:

По типу питания:

  • Активные — используют для передачи данных энергию встроенного элемента питания (зона чтения до 100 метров);
  • Пассивные — используют энергию, излучаемую считывателем (дальность до 8 метров).2.

Формат

Picture10

Процесс аутентификации

Picture9

Forms authentication

Идентификация и аутентификация - что это такое, определение, значение

Токен личности


Identity Token — подтверждение аутентификации. Этот токен содержит минимальный набор информации о пользователе.

Основные поля

Кратко остановимся на том, какие есть стандартные полях в токене и зачем они нужны:

Похожее:  Кроссдоменная авторизация: часть 1 | Через терни к звездам

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *