Сервис аутентификации Kerberos, страница 2

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

- разделяемый сеансовый ключ для обеспечения конфиденциальности взаимодействия;

- срок годности этого ключа, билета, по истечении которого необходимо заново прой процедуру аутентификации (стандартный срок - 8 часов - может быть изменен в зависимости политики безопасности данной организации);

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

- для защиты от воспроизведения (выдачи злоумышленником себя в качестве второ клиента С):

- временной штамп - удостовериться в "свежести" сообщения;

- случайное число - неповторяемость сообщения и подтверждение целостности цепочк сообщений (помещая это число или закономерно модифицированное (например, +1)).

112                                                                                                 ISSN 0485-89 72. . Вып. 114. 2000.


Второй вариант.

1. C^K:{c,sl,...}

2. К -> С: {n, s.timeexp Ke„, ... }кс, {Т}к,

3. C-»S:{sl,ts,ck...}Kc-s,{T}Ks

4. S ->• С {ts, с, timeexp,.,, }кс-з,

где  Kc-s      -разделяемый клиентом С и сервером S сеансовый ключ;

si       - необходимый клиенту сервис;

n        - одноразовое число;

timeexp   - срок годности билета;

ts       - временной штамп;

ck       - контрольная сумма. В билет помещается следующая информация:

имя С    - сервер определяет клиента, запрашивающего определенный сервис;

имя самого сервиса - подтверждение правильной расшифровки и, соответственно, правильной 1 генерации сообщения к серверу со стороны клиента, а также знания разделяемого сеансового ключа (сеансовый ключ помещается в ответ Kerberos'a клиенту и шифруется на секретном ключе клиента);

сетевой адрес - для частичной (сетевой адрес тоже можно подделать) защиты от кражи использования билета, а также для идентификации клиента;

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

Если клиенту понадобятся услуги нескольких серверов, то придется, соответственно, несколько раз доказывать свою подлинность, взаимодействовать, использовать секретный ключ. Для минимизации времени активного использования секретного ключа разделяют Kerberos на сервер начальной аутентификации (AS - Authentication Server) и сервер выдачи билетов (TGS - Ticket Granting Server). Третий вариант.

1. C-^AS:c,tgsl, ...

2. AS -» С: {Kc-tg,, tgs, .,, }кс, {Tc-tgs}^

3. С -»TGS: {AJKc-tgs, {Tc.tgs}Ktgs, si,...

4. TGS-^C:{K,„s,...}Kc-tgs,{Tc-s}Ks

5. С -». S: {Ас}кс.„ {T,,}Ks

6. S ->• С: {As}Kc-s,

где  AS    . Authentication Server - сервер начальной аутентификации;

TGS  - Ticket Granting Server - сервер выдачи билетов;

Tc-tgs   - билет клиента С к серверу TGS;

Ac    - аутентификатор клиента С;

As    - аутентификатор сервера S.

AS выдает TGT (Ticket Granting Ticket - "билет на билеты"), на основании которого у TGS получает билеты к другим серверам.

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

В протоколе это отражается в разделении TGS на локальный locTGS и удаленный remTGS. При наличии договорных отношений локальный TGS выдает билеты к удаленному TGS, а тот - билеты к удаленным серверам. Четвертый вариант.

1. C-->locAS:c,tgs,,..

2. locAS -> С: {K,.tgs, tgs,... }кс, {T^Ktgs

ISSN 0485-8972. . Вып. 114. 2000.                                                  113


3. С —> locTGS: {AJKc-igs, {Tc-tgs} Kigs, tgs-rem,..,

4.  ioctgs —> C: {Kc-remTOS, remTGS,. . . }Kc-tgs, {Tc-remTGs}KremTOS

5.С -> remTGS: {Ac}Kc-remTGS, {Tc-remTGs}KremTGS, remS,...

6.  RemTGS —> C: {Kc.remS, remS, ...}Kc-reroTGS, {Tc-rems}KremS

7.   C —>remS: {Ас}кс-гет8; {Тс-гетз}кгет8

8.  RemS ->• С: {A,ems}Kc-remS

Помимо описанных возможностей существует множество дополнительных. Например, вводите срок годности - устанавливается не только окончание, но и начало срока (так называемые "билеты н потом"). Вводится возможность продления билета и максимальный срок такого продления; передач прав одного субъекта на действия от имени другого (сервер печати к файлам пользователя). Каждом билету приписываются разнообразные флаги.