Во всех этих случаях неавторизованный пользователь может получить доступ к сервисам и данным, не имея на то права. Для того чтобы не встраивать тщательно разработанные протоколы аутентификации на каждый сервер,
Существует две версии
Сначала кратко рассмотрим основной подход
Если пользователи используют не соединенные в сеть компьютеры, то пользовательские и системные ресурсы и файлы можно уберечь от злоумышленников, обеспечив физическую защиту каждого компьютера. Когда пользователи обслуживаются централизованной системой разделения времени, безопасность должна обеспечивать именно она. Операционная система может проводить политику управления доступом на основе идентификатора пользователя и поддерживать строго определенную процедуру входа для идентификации и аутентификации пользователя.
В условиях сетевого взаимодействия подобные сценарии неприемлемы. Наиболее общим случаем является распределенная архитектура, состоящая из рабочих станций пользователя (клиентов) и распределенных серверов. В подобном окружении могут использоваться три подхода к обеспечению безопасности:
В небольших закрытых окружениях, в которых все системы работают в единственной организации, первой и, возможно, второй стратегии оказывается достаточно. Но в более открытом окружении, где поддерживаются сетевые соединения между компьютерами, для защиты информации и ресурсов пользователей необходим третий подход. Этот третий подход поддерживается
Для реализации этих требований
Версия 4
В незащищенном сетевом окружении любой клиент может использовать любой сервер в качестве сервиса. В этом случае существует очевидный риск для системы безопасности. Оппонент может попытаться представиться другим клиентом и получить неавторизованные привилегии на сервере. Для того чтобы избежать этой опасности, сервер должен иметь возможность проверить идентификацию клиента, который запрашивает сервис. Практически не представляется возможным, чтобы каждый сервер выполнял эту задачу при соединении с каждым клиентом.
, который знает пароли всех пользователей и хранит их в специальной базе данных. Кроме того, разделяет уникальный секретный ключ с каждым сервером
C -> AS: IDC, PC, IDS
AS -> C: Ticket
C -> S: IDC, Ticket
Ticket = EKs [IDC, ADC, IDS]
Где:
С - клиент;
- аутентификационный сервер;
S - сервер;
IDC - идентификатор пользователя на С ;
IDS - идентификатор S ;
РС - пароль пользователя на С ;
ADC - сетевой адрес С ;
KS - секретный ключ шифрования, разделяемый и S.
В данном сценарии предполагается, что пользователь входит на рабочую станцию и хочет получить доступ к серверу S. Клиентский модуль С на пользовательской рабочей станции запрашивает пользовательский пароль и затем посылает сообщение , которое включает идентификатор пользователя, идентификатор сервера и пароль пользователя. проверяет в своей базе данных правильность пароля пользователя и то, что данному пользователю разрешен доступ к серверу S. Если обе проверки выполнены успешно, считает, что пользователь аутентифицирован, и должен теперь убедить сервер, что это так. Для того, чтобы это сделать, создает билет ( и S. Он посылается С. Так как билет зашифрован, его не может изменить ни С, ни оппонент.
Имея данный билет, С может теперь обращаться к S за сервисом. Для этого он посылает серверу сообщение, содержащее идентификатор C и билет. S расшифровывает билет и проверяет, совпадают ли идентификатор пользователя в билете и незашифрованный идентификатор пользователя в сообщении. Если это соответствие выполняется, то сервер считает пользователя аутентифицированным и предоставляет соответствующий сервис.
Каждая часть сообщения (3) важна. Билет зашифрован для предотвращения изменения или подделки. Идентификатор сервера IDS включается в билет, чтобы сервер мог убедиться, что он расшифровал билет корректно. IDC включается в билет, чтобы определить, что данный билет послан от имени С. Наконец, АDC служит для предотвращения следующей угрозы. Оппонент может перехватить билет, передаваемый в сообщении (2), затем использовать имя IDC и передать сообщение в форме (3) с другой рабочей станции. Сервер получит законный билет, который соответствует пользователю ID, и предоставит доступ пользователю с другой рабочей станции. Для предотвращения подобной атаки включает в билет сетевой адрес, с которого приходит первоначальный запрос. Теперь билет действителен только в том случае, если он передан с той же самой рабочей станции, с которой
первоначально запрашивался.
Хотя описанный сценарий и решает часть проблем аутентификации в открытых сетевых окружениях, многие проблемы все еще остаются. В частности, следует решить следующие две задачи. Во-первых, сделать так, чтобы пользователю приходилось вводить пароль минимальное количество раз. Пока предполагается, что каждый билет может использоваться только один раз. Если пользователь С хочет проверить свою почту на почтовом сервере, он должен предоставить пароль для получения билета на почтовый сервер. Если С хочет проверить почту несколько раз в течение дня, каждое обращение к почтовому серверу требует повторного ввода пароля. Эту процедуру можно усовершенствовать, разрешив переиспользовать билеты. При первой входной сессии рабочая станция может запомнить полученный билет сервера и использовать его от имени пользователя в дальнейшем при доступе к этому серверу.
Однако при такой схеме пользователю необходим новый билет для каждого нового сервера. Если пользователь хочет получить доступ к серверу печати, почтовому серверу, файловому серверу и т.д., то при первом доступе к каждому серверу будет требоваться ввод пароля.
Вторая проблема состоит в том, что ранее рассмотренный сценарий включает незашифрованную передачу пароля в первом сообщении. Оппонент может перехватить пароль и использовать любой доступный данному пользователю сервис.
Для решения этих проблем
Один раз при входе пользователя:
C -> AS: IDC, IDtgsAS -> C: EKc [Ticket tgs]Один раз для каждого типа сервиса:
C -> TGS : IDC, IDS, Ticket tgsTGS -> C: Ticket SОдин раз для каждого доступа к сервису:
C -> S: IDC, Ticket STickettgs = EKtgs [IDC, ADC, IDtgs, TS1, LT1] TicketS = EKs [IDC, ADC, IDS, TS2, LT2]
Пользователь первым делом получает билет, гарантирующий билет, от . Этот билет хранится в модуле клиента на рабочей станции пользователя. Сервер выдает билеты пользователям, которые перед этим были аутентифицированы . Каждый раз, когда пользователю требуется новый сервис, клиентский модуль обращается к , используя предоставленный билет, и выдает билет для конкретного сервиса. Клиентский модуль хранит каждый гарантирующий сервис билет и использует его для аутентификации на сервере всякий раз, когда требуется конкретный сервис. Рассмотрим данную схему подробнее:
AS вместе с идентификатором TGS , который будет в дальнейшем использоваться для получения билета, гарантирующего сервис. в ответ присылает билет, зашифрованный ключом, полученным из пароля пользователя. Когда этот ответ поступает в клиентский модуль, он просит пользователя ввести свой пароль, создает ключ и пытается расшифровать полученное сообщение. Если используется корректный пароль, то билет успешно извлекается.
Так как только законный пользователь должен знать пароль, только законный пользователь и может получить билет. Таким образом, пароль используется для получения доверительной грамоты от . Это соответствует первому сценарию. Необходимо, чтобы такой билет мог использоваться клиентским модулем для запроса нескольких билетов, гарантирующих предоставление сервиса. Следовательно, билет, гарантирующий билет, с одной стороны, должен быть переиспользуемым. Но с другой стороны, необходимо добиться того, чтобы оппонент не мог перехватывать этот билет и использовать его. Рассмотрим следующий сценарий: оппонент перехватывает билет и ждет до тех пор, пока пользователь не завершит регистрацию на своей рабочей станции. Тогда оппонент пытается получить доступ к этой рабочей станции или сконфигурировать
свою рабочую станцию с тем же сетевым адресом, что и у законного
пользователя. После этого оппонент будет иметь возможность переиспользовать билет для обмана . Чтобы этого не произошло, билет включает отметку времени, определяющую дату и время, когда был получен билет, и время жизни, определяющую величину времени, в течение которого билет является действительным (например, 8 часов). Таким образом, теперь клиентский модуль имеет переиспользуемый билет, и нет необходимости требовать от пользователя ввода пароля для получения нового сервиса. В заключении заметим, что билет, гарантирующий билет, шифруется секретным ключом, известным только и . Это предотвращает модификацию билета. Билет повторно зашифровывается ключом, основанным на пароле пользователя. Это гарантирует, что билет может быть восстановлен только законным пользователем, прошедшим аутентификацию.
Теперь, когда клиентский модуль имеет билет, гарантирующий билет, доступ к любому серверу можно получить, выполнив шаги (3) и (4):
TGS сообщение, содержащее идентификатор пользователя, идентификатор требуемого сервиса и билет, гарантирующий билет. расшифровывает входящий билет и проверяет успешность дешифрования по наличию своего идентификатора. Также необходимо убедиться, что время жизни данного билета не истекло. Затем сравнивает идентификатор пользователя и его сетевой адрес со значениями, полученными из билета. После этого выдает билет, гарантирующий доступ к нужному сервису.
Билет, гарантирующий сервис, имеет ту же структуру, что и билет, гарантирующий билет. Этот билет также содержит отметку времени и время жизни. Если пользователь захочет получить доступ к тому же самому сервису позднее, клиентский модуль может просто использовать ранее полученный билет, гарантирующий сервис, и нет необходимости повторно запрашивать пароль пользователя. Заметим, что билет зашифрован с помощью секретного ключа EKs, известного только и серверу, что предотвращает его изменение.
Наконец, с билетом, гарантирующим сервис, клиентский модуль может получить доступ к соответствующему сервису:
Этот новый сценарий позволяет сделать так, чтобы за время работы пользователя пароль запрашивался только один раз, и обеспечивает защиту пароля пользователя.
Хотя рассмотренный сценарий усиливает безопасность по сравнению с первым сценарием, остаются еще две проблемы. Первая проблема состоит в том, что время жизни связано с билетом, гарантирующем билет. Если это время жизни очень короткое (т.е. минуты), то пароль у пользователя будет запрашиваться повторно. Если время жизни большое (т.е. часы), то оппонент имеет больше возможностей для совершения различных . Это откроет ему неограниченный доступ к ресурсам и файлам законного пользователя.
Аналогично, если оппонент перехватил билет, гарантирующий сервис, и использует его прежде, чем истечет время его действия, он имеет доступ к соответствующему сервису.
Таким образом, можно сформулировать следующее дополнительное требование. Сетевой сервис (т.е. или прикладной сервис) должны иметь возможность убедиться в том, что билет использует тот, кто получил его.
Вторая проблема состоит в том, что должна быть возможность аутентификации самих серверов для пользователей. Без подобной аутентификации оппонент может изменить конфигурацию таким образом, чтобы сообщение к серверу перенаправлялось по другому адресу. Этот ложный сервер будет затем выполнять действия в качестве реального сервера, перехватывать любую информацию от пользователя или не предоставлять ему необходимый сервис.
Сначала рассмотрим проблему перехвата билетов, гарантирующих билеты, и необходимость гарантировать, что представленный билет является тем же самым билетом, который был выдан клиенту. Для решения этой проблемы должен безопасным способом обеспечить как клиентский модуль, так и некоторой секретной информацией. После этого клиентский модуль может доказать свою идентичность, предоставляя безопасным способом эту секретную информацию. Здесь может использоваться некий разделяемый секрет, который в дальнейшем будет применяться в качестве ключа шифрования. Этот разделяемый секрет называется
Рассмотрим технологию распределения
Обмен с аутентификационным сервисом для получения билета, гарантирующего билет
C -> AS: IDC, IDtgs, TS1 - клиентский модуль запрашивает билет, гарантирующий билет
IDC: идентификатор пользователя.
IDtgs: идентификатор .
TS1: отметка времени, позволяет проверить, синхронизированы ли часы клиента с часами .
AS -> C: EKc [KC, tgs, IDtgs, TS2, LТ2, - возвращает билет, гарантирующий билет
: билет, используемый клиентом для доступа к .
Kc: ключ шифрования, основанный на пользовательском пароле, применение которого позволяет и клиентскому модулю аутентифицировать пользователя и защитить содержимое сообщения (2).
КC, tgs: для обеспечения безопасного обмена между клиентским модулем и .
Kas,tgs: ключ, которым зашифрован билет и который известен только и .
IDtgs: подтверждение того, что данный билет предназначен для .
ADC: адрес пользователя, предотвращает использование билета с любой рабочей станции, кроме той, с которой он был первоначально получен.
TS2: время создания билета.
LТ2: время жизни билета.
Обмен с сервисом, гарантирующим билет, для получения билета, гарантирующего сервис
C -> - клиентский модуль запрашивает билет, гарантирующий сервис
IDS: идентификатор сервера S.
: гарантирует , что данный пользователь аутентифицирован .
Authenticatorc: создается клиентом для подтверждения законности ключа.
AuthenticatorC = EKc,tgs [IDC, ADC, TS3 ]
TS3: время создания
- возвращает билет, гарантирующий сервис
: билет, используемый клиентом для доступа к серверу S.
Кtgs,s: ключ, разделяемый S и .
КC,S: для обеспечения безопасного обмена между клиентским модулем и сервером без необходимости разделения ими постоянного ключа.
IDS: доказательство того, что этот ключ предназначен для сервера S.
TS4: время создания билета.
LТ4: время жизни билета.
Клиент/серверный аутентификационный обмен для получения сервиса
C -> S: - клиент запрашивает сервис
AuthenticatorC = EKc [IDC, ADC, TS5 ]
: гарантирует серверу, что данный клиент аутентифицирован .
Authenticatorc: создается клиентом для подтверждения законности ключа.
TS5: время создания
S -> C: EKc [TS5 + 1] - дополнительная аутентификация сервера для клиента
TS5 + 1: гарантирует С, что не было
Прежде всего, клиентский модуль посылает сообщение к с требованием доступа к . отвечает сообщением, зашифрованным ключом, полученным из пароля пользователя, который содержит билет. Зашифрованное сообщение также содержит КC,tgs, где индексы определяют, что это С и . Таким образом, С, так и .
К первой фазе сценария добавлено несколько дополнительных элементов информации. Сообщение (1) включает отметку времени, так что знает, что сообщение своевременно. Сообщение (2) включает несколько элементов билета в форме, доступной С. Это необходимо С для подтверждения того, что данный билет предназначен для и для определения момента истечения срока его действия.
Теперь, имея билет и С может обратиться к . Как и раньше, С посылает сообщение, которое включает билет и идентификатор требуемого сервиса (сообщение (3)). Дополнительно С передает С, а также отметку времени. В отличие от билета, который является переиспользуемым, LT ). Теперь расшифровывает билет с помощью ключа, который он разделяет с . Этот билет содержит КС,tgs. В действительности билет устанавливает, что любой, кто использует КС,tgs, должен быть С. задействует может затем сравнить имя и адрес из может быть уверен, что отправитель билета является настоящим его собственником. В действительности TS3
возможно использование KС,tgs. Заметим, что билет не доказывает чью-либо идентичность, а является способом безопасного распределения ключей.
Сообщение (4) от имеет вид сообщения (2). Сообщение зашифровано ключом сообщения, разделяемым и С, и включает С и сервером S, идентификатор S и отметку времени билета. Билет включает тот же самый
С теперь имеет переиспользуемый билет, гарантирующий сервис S. Когда С представляет этот билет, как и в сообщении (5), он также посылает
Если требуется взаимная аутентификация, сервер посылает сообщение (6), в котором возвращает значение отметки времени из С может расшифровать это сообщение для получения увеличенной отметки времени. Так как сообщение может быть расшифровано С уверен, что оно может быть создано только S. Это гарантирует С, что
Наконец, в завершение клиент и сервер разделяют секретный ключ. Этот ключ может быть использован для шифрования будущих сообщений между ними или для обмена новым случайным
Полнофункциональное окружение
Сервер
Такое окружение называется областью (
Сервер
Схема требует, чтобы сервер
Если эти основополагающие условия выполняются, можно ввести следующий механизм доступа пользователей к серверам из других областей. Пользователю, который хочет получить сервис на сервере из другой области, необходим билет для этого сервера. Клиентский модуль следует обычным процедурам получения доступа к локальному и затем запрашивает билет, гарантирующий билет, для удаленного ( в другой области). Затем клиентский модуль вызывает удаленный для получения билета, гарантирующего сервис, на требуемый сервер в области, которую обслуживает удаленный .
Протокол обмена является следующим:
C -> AS: IDC, IDtgs, TS1AS -> C: EKc [KC, tgs, IDtgs, TS2, LТ2, Ticket tgs]C -> TGS : IDtgsrem, Ticket tgs, AuthenticatorCTGS -> C: EKc, tgs [KC, tgsrem, IDtgsrem, TS4, Ticket tgsrem]C -> TGS rem: IDrem, Ticket tgsrem, AuthenticatorCTGS rem -> C: EKc, tgsrem [KC, Srem, IDSrem, TS6, Ticket Srem]C -> Srem: Ticket Srem, AuthenticatorCБилет, предоставляемый удаленному серверу Srem, кроме всего остального, содержит идентификатор области, в которой пользователь был аутентифицирован. Сервер определяет, является ли данный удаленный запрос законным.
При таком подходе традиционная проблема состоит в том, что если существует N областей, то должно быть [N (N - 1)]/2 безопасных обменов ключей, чтобы каждый
Версия 5
Версия 5 предназначена для преодоления недостатков проектирования и технических недоработок версии 4.
Версия 4
Существуют также следующие технические недостатки в самом протоколе версии 4:
AS клиенту включает нечто, зашифрованное ключом, основанным на пароле клиента. Оппонент может перехватить это сообщение и попытаться расшифровать его, используя различные пароли. Если результат дешифрования будет иметь корректный формат, то это означает, что оппонент раскрыл пароль клиента и может последовательно использовать его для получения доверительной грамоты от Рассмотрим протокол версии 5.
Получение билета, гарантирующего билет
C -> AS: Options, IDC, Realm C, IDtgs, Times, Nonce 1AS -> C: Realm C, IDC, Ticket tgs, EKc [ KC,tgs, Times, Nonce 1, Realm tgs, IDtgs]Получение билета, гарантирующего сервис
C -> TGS : Options, IDS, Times, Nonce 2, Ticket tgs, AuthenticatorCTGS -> C: Realm C, IDC, Ticket S, EKc,tgs [ KC,S, Times, Nonce 2, Realm S, IDS]AuthenticatorC = EKc,tgs [ IDC,
Получение сервиса
C -> S: Options, Ticket S, AuthenticatorCS -> C: EC, S [TS2, Subkey, Seq#]AuthenticatorC = EKc, s [ IDC,
Рассмотрим получение билета, гарантирующего билет. Сообщение (1) является запросом клиентского модуля на билет, гарантирующий билет. Как и прежде, оно включает идентификаторы пользователя и . Добавлены следующие новые элементы:
Realm : определяет область пользователя.Options: используется для запроса основных флагов, которые должны быть установлены в возвращаемом билете.Times: используется клиентом для запроса следующих установок времени в билете:from: требуемое начальное время для запрашиваемого билета.till: требуемое время окончания для запрашиваемого билета.rtime: требуемое время обновления.Nonce : случайное число, повторяемое в сообщении 2, гарантирующее, что ответ своевременный и повтором оппонента не является.Сообщение (2) возвращает билет, гарантирующий билет, который содержит информацию для клиента, и блок, зашифрованный с использованием ключа шифрования, основанного на пользовательском пароле. Этот блок включает , время, указанное в сообщении 1, информацию. Сам билет включает
Сравним получение билета, гарантирующего сервис, в версиях 4 и 5. Сообщение (3) в обеих версиях включает
Сообщение (4) имеет ту же структуру, что и сообщение (2); оно возвращает билет и информацию, необходимую клиентскому модулю, зашифрованную .
Наконец, для получения сервиса в версии 5 появилось несколько новых возможностей. В сообщении (5) клиентский модуль может запросить опцию, которая требует взаимной аутентификации.
KC, S.Если требуется взаимная аутентификация, сервер отвечает сообщением (6). Это сообщение включает отметку времени из
Поле флагов, введенное в билеты в версии 5, поддерживает расширенную функциональность по сравнению с версией 4. Рассмотрим флаги, которые могут быть определены в билете (см. таб. 20.1).
Флаг INITIAL определяет, что данный билет получен от , а не от . Когда клиент требует билет, гарантирующий сервис, от , он предоставляет билет, гарантирующий билет, полученный от . В версии 4 это был способ, в конечном счете, получить билет, гарантирующий сервис. Версия 5 предоставляет дополнительную возможность, чтобы клиент мог получить билет, гарантирующий сервис, непосредственно от . Это применяется в таких, например, случаях, когда сервер изменения пароля хочет убедиться, что пароль клиента был только что проверен.
Флаг PRE-AUTHENT, если установлен, определяет, что когда получит первоначальный запрос (сообщение 1), он аутентифицирует клиента, прежде чем выдать билет. Строгая форма этой предаутентификации остается неспецифицированной. Например, реализация MIT версии 5 имеет предаутентификацию в виде зашифрованной отметки времени. В этом случае клиентский модуль посылает предаутентификационный блок, содержащий случайное число, номер версии и отметку времени и зашифрованный с использованием пароля пользователя. расшифровывает блок и посылает билет, гарантирующий билет, если отметка времени находится в допустимом диапазоне. Другая возможность применения данного флага состоит в использовании смарт-карт, создаваемых с постоянно меняющимся паролем, который включается в предаутентификационное сообщение. Пароли, создаваемые картой, могут быть основаны на
пользовательских паролях, но затем быть преобразованы смарт-картой так, чтобы в действительности использовались HW-AUTHENT.
Когда билет имеет долгое время жизни, существует опасность его кражи и последующего использования оппонентом в допустимый период. Если используется короткое время жизни для уменьшения подобной угрозы, то может возникнуть потребность в получении новых билетов. В случае билета, гарантирующего билет, клиент может хранить секретный ключ пользователя, который не подвержен риску, или повторно запрашивать у пользователя пароль. Компромисс состоит в использовании возобновляемых билетов. Билет с установленным флагом RENEWABLE включает два срока истечения: один для данного билета и один является самым поздним допустимым значением для истекаемого времени. Если новое время находится в пределах самого позднего допустимого значения, может выдать новый билет с новым временем сессии и определить время его истечения. Преимущество данного механизма состоит в том, что может отказаться обновлять билет,
помечая его как украденный.
Клиент может выдать запрос на предоставление билета, гарантирующего билет, с установленным флагом MAY-POSTDATE. Клиент может затем использовать этот билет для запроса билета от с установленными флагами POSTDATED и INVALID. Впоследствии клиент может подать подтверждение на просроченный билет, чтобы сделать его действительным. Эта схема может использоваться для выполнения долгих пакетных заданий на сервере, который периодически требует билет. Клиент может один раз получить некоторое число билетов для данной сессии с несколькими значениями времени. Все, кроме первого билета, первоначально являются недопустимыми. При наступлении момента, когда требуется новый билет, клиент может сделать соответствующий билет действительным. При таком подходе клиент не будет повторно использовать свой билет, гарантирующий билет, для получения билета, гарантирующего сервис.
В версии 5 стало возможным, чтобы сервер являлся proxy для клиента, в результате чего устанавливаются верительные грамоты и привилегии клиента при запросе сервиса от другого сервера. Если клиент хочет использовать данный механизм, он требует билет, гарантирующий билет, с установленным флагом PROXIABLE. Когда такой билет предоставляется от , разрешает получать билет, гарантирующий сервис, с различных сетевых адресов; этот последний билет имеет установленный флаг PROXY. Приложение, получившее такой билет, может принять его или требовать дополнительной аутентификации с тем, чтобы обеспечить след аудита.
Концепция proxy является ограниченным случаем более сильной процедуры перенаправления. Если в билете установлен флаг FORWARDABLE, может выдать запрашивающему билет, гарантирующий билет с различными сетевыми адресами, и установить флаг FORWARDED. Этот билет может затем быть представлен удаленному . Такая возможность позволяет клиенту получить доступ к серверу из другой области без требования того, чтобы каждый в пути.
| INITIAL | Данный билет получен с использованием AS-протокола и не получен на основе билета, гарантирующего билет |
| PRE-AUTHENT | При начальной аутентификации клиент был аутентифицирован прежде, чем был выдан билет |
| HW-AUTHENT | Протокол, используемый для начальной аутентификации, требует использования аппаратуры, ожидая ввода исключительно имени клиента |
| RENEWABLE | Говорит |
| MAY-POSTDATE | Говорит |
| POSTDATED | Определяет, что данный билет является просроченным; конечный сервер может проверить поле authtime, чтобы посмотреть, когда произошла первоначальная аутентификация. |
| INVALID | Определяет, что данный билет является недействительным и что прежде чем он будет использоваться, его действительность должна быть подтверждена у |
| PROXIABLE | Говорит о том, что новый билет, гарантирующий сервис, с другим сетевым адресом может быть получен на основе существующего билета |
| PROXY | Определяет, что данный билет является агентом на другой сервис (proxy) |
| FORWARDABLE | Говорит |
| FORWARDED | Определяет, что данный билет является либо forwarded, либо получен на основе аутентификации, включающей forwarded билет, гарантирующий билет |
Во всех этих случаях неавторизованный пользователь может получить доступ к сервисам и данным, не имея на то права. Для того чтобы не встраивать тщательно разработанные протоколы аутентификации на каждый сервер,
Существует две версии
Сначала кратко рассмотрим основной подход
Если пользователи используют не соединенные в сеть компьютеры, то пользовательские и системные ресурсы и файлы можно уберечь от злоумышленников, обеспечив физическую защиту каждого компьютера. Когда пользователи обслуживаются централизованной системой разделения времени, безопасность должна обеспечивать именно она. Операционная система может проводить политику управления доступом на основе идентификатора пользователя и поддерживать строго определенную процедуру входа для идентификации и аутентификации пользователя.
В условиях сетевого взаимодействия подобные сценарии неприемлемы. Наиболее общим случаем является распределенная архитектура, состоящая из рабочих станций пользователя (клиентов) и распределенных серверов. В подобном окружении могут использоваться три подхода к обеспечению безопасности:
В небольших закрытых окружениях, в которых все системы работают в единственной организации, первой и, возможно, второй стратегии оказывается достаточно. Но в более открытом окружении, где поддерживаются сетевые соединения между компьютерами, для защиты информации и ресурсов пользователей необходим третий подход. Этот третий подход поддерживается
Для реализации этих требований
Версия 4
В незащищенном сетевом окружении любой клиент может использовать любой сервер в качестве сервиса. В этом случае существует очевидный риск для системы безопасности. Оппонент может попытаться представиться другим клиентом и получить неавторизованные привилегии на сервере. Для того чтобы избежать этой опасности, сервер должен иметь возможность проверить идентификацию клиента, который запрашивает сервис. Практически не представляется возможным, чтобы каждый сервер выполнял эту задачу при соединении с каждым клиентом.
, который знает пароли всех пользователей и хранит их в специальной базе данных. Кроме того, разделяет уникальный секретный ключ с каждым сервером
C -> AS: IDC, PC, IDS
AS -> C: Ticket
C -> S: IDC, Ticket
Ticket = EKs [IDC, ADC, IDS]
Где:
С - клиент;
- аутентификационный сервер;
S - сервер;
IDC - идентификатор пользователя на С ;
IDS - идентификатор S ;
РС - пароль пользователя на С ;
ADC - сетевой адрес С ;
KS - секретный ключ шифрования, разделяемый и S.
В данном сценарии предполагается, что пользователь входит на рабочую станцию и хочет получить доступ к серверу S. Клиентский модуль С на пользовательской рабочей станции запрашивает пользовательский пароль и затем посылает сообщение , которое включает идентификатор пользователя, идентификатор сервера и пароль пользователя. проверяет в своей базе данных правильность пароля пользователя и то, что данному пользователю разрешен доступ к серверу S. Если обе проверки выполнены успешно, считает, что пользователь аутентифицирован, и должен теперь убедить сервер, что это так. Для того, чтобы это сделать, создает билет ( и S. Он посылается С. Так как билет зашифрован, его не может изменить ни С, ни оппонент.
Имея данный билет, С может теперь обращаться к S за сервисом. Для этого он посылает серверу сообщение, содержащее идентификатор C и билет. S расшифровывает билет и проверяет, совпадают ли идентификатор пользователя в билете и незашифрованный идентификатор пользователя в сообщении. Если это соответствие выполняется, то сервер считает пользователя аутентифицированным и предоставляет соответствующий сервис.
Каждая часть сообщения (3) важна. Билет зашифрован для предотвращения изменения или подделки. Идентификатор сервера IDS включается в билет, чтобы сервер мог убедиться, что он расшифровал билет корректно. IDC включается в билет, чтобы определить, что данный билет послан от имени С. Наконец, АDC служит для предотвращения следующей угрозы. Оппонент может перехватить билет, передаваемый в сообщении (2), затем использовать имя IDC и передать сообщение в форме (3) с другой рабочей станции. Сервер получит законный билет, который соответствует пользователю ID, и предоставит доступ пользователю с другой рабочей станции. Для предотвращения подобной атаки включает в билет сетевой адрес, с которого приходит первоначальный запрос. Теперь билет действителен только в том случае, если он передан с той же самой рабочей станции, с которой
первоначально запрашивался.
Хотя описанный сценарий и решает часть проблем аутентификации в открытых сетевых окружениях, многие проблемы все еще остаются. В частности, следует решить следующие две задачи. Во-первых, сделать так, чтобы пользователю приходилось вводить пароль минимальное количество раз. Пока предполагается, что каждый билет может использоваться только один раз. Если пользователь С хочет проверить свою почту на почтовом сервере, он должен предоставить пароль для получения билета на почтовый сервер. Если С хочет проверить почту несколько раз в течение дня, каждое обращение к почтовому серверу требует повторного ввода пароля. Эту процедуру можно усовершенствовать, разрешив переиспользовать билеты. При первой входной сессии рабочая станция может запомнить полученный билет сервера и использовать его от имени пользователя в дальнейшем при доступе к этому серверу.
Однако при такой схеме пользователю необходим новый билет для каждого нового сервера. Если пользователь хочет получить доступ к серверу печати, почтовому серверу, файловому серверу и т.д., то при первом доступе к каждому серверу будет требоваться ввод пароля.
Вторая проблема состоит в том, что ранее рассмотренный сценарий включает незашифрованную передачу пароля в первом сообщении. Оппонент может перехватить пароль и использовать любой доступный данному пользователю сервис.
Для решения этих проблем
Один раз при входе пользователя:
C -> AS: IDC, IDtgsAS -> C: EKc [Ticket tgs]Один раз для каждого типа сервиса:
C -> TGS : IDC, IDS, Ticket tgsTGS -> C: Ticket SОдин раз для каждого доступа к сервису:
C -> S: IDC, Ticket STickettgs = EKtgs [IDC, ADC, IDtgs, TS1, LT1] TicketS = EKs [IDC, ADC, IDS, TS2, LT2]
Пользователь первым делом получает билет, гарантирующий билет, от . Этот билет хранится в модуле клиента на рабочей станции пользователя. Сервер выдает билеты пользователям, которые перед этим были аутентифицированы . Каждый раз, когда пользователю требуется новый сервис, клиентский модуль обращается к , используя предоставленный билет, и выдает билет для конкретного сервиса. Клиентский модуль хранит каждый гарантирующий сервис билет и использует его для аутентификации на сервере всякий раз, когда требуется конкретный сервис. Рассмотрим данную схему подробнее:
AS вместе с идентификатором TGS , который будет в дальнейшем использоваться для получения билета, гарантирующего сервис. в ответ присылает билет, зашифрованный ключом, полученным из пароля пользователя. Когда этот ответ поступает в клиентский модуль, он просит пользователя ввести свой пароль, создает ключ и пытается расшифровать полученное сообщение. Если используется корректный пароль, то билет успешно извлекается.
Так как только законный пользователь должен знать пароль, только законный пользователь и может получить билет. Таким образом, пароль используется для получения доверительной грамоты от . Это соответствует первому сценарию. Необходимо, чтобы такой билет мог использоваться клиентским модулем для запроса нескольких билетов, гарантирующих предоставление сервиса. Следовательно, билет, гарантирующий билет, с одной стороны, должен быть переиспользуемым. Но с другой стороны, необходимо добиться того, чтобы оппонент не мог перехватывать этот билет и использовать его. Рассмотрим следующий сценарий: оппонент перехватывает билет и ждет до тех пор, пока пользователь не завершит регистрацию на своей рабочей станции. Тогда оппонент пытается получить доступ к этой рабочей станции или сконфигурировать
свою рабочую станцию с тем же сетевым адресом, что и у законного
пользователя. После этого оппонент будет иметь возможность переиспользовать билет для обмана . Чтобы этого не произошло, билет включает отметку времени, определяющую дату и время, когда был получен билет, и время жизни, определяющую величину времени, в течение которого билет является действительным (например, 8 часов). Таким образом, теперь клиентский модуль имеет переиспользуемый билет, и нет необходимости требовать от пользователя ввода пароля для получения нового сервиса. В заключении заметим, что билет, гарантирующий билет, шифруется секретным ключом, известным только и . Это предотвращает модификацию билета. Билет повторно зашифровывается ключом, основанным на пароле пользователя. Это гарантирует, что билет может быть восстановлен только законным пользователем, прошедшим аутентификацию.
Теперь, когда клиентский модуль имеет билет, гарантирующий билет, доступ к любому серверу можно получить, выполнив шаги (3) и (4):
TGS сообщение, содержащее идентификатор пользователя, идентификатор требуемого сервиса и билет, гарантирующий билет. расшифровывает входящий билет и проверяет успешность дешифрования по наличию своего идентификатора. Также необходимо убедиться, что время жизни данного билета не истекло. Затем сравнивает идентификатор пользователя и его сетевой адрес со значениями, полученными из билета. После этого выдает билет, гарантирующий доступ к нужному сервису.
Билет, гарантирующий сервис, имеет ту же структуру, что и билет, гарантирующий билет. Этот билет также содержит отметку времени и время жизни. Если пользователь захочет получить доступ к тому же самому сервису позднее, клиентский модуль может просто использовать ранее полученный билет, гарантирующий сервис, и нет необходимости повторно запрашивать пароль пользователя. Заметим, что билет зашифрован с помощью секретного ключа EKs, известного только и серверу, что предотвращает его изменение.
Наконец, с билетом, гарантирующим сервис, клиентский модуль может получить доступ к соответствующему сервису:
Этот новый сценарий позволяет сделать так, чтобы за время работы пользователя пароль запрашивался только один раз, и обеспечивает защиту пароля пользователя.
Хотя рассмотренный сценарий усиливает безопасность по сравнению с первым сценарием, остаются еще две проблемы. Первая проблема состоит в том, что время жизни связано с билетом, гарантирующем билет. Если это время жизни очень короткое (т.е. минуты), то пароль у пользователя будет запрашиваться повторно. Если время жизни большое (т.е. часы), то оппонент имеет больше возможностей для совершения различных . Это откроет ему неограниченный доступ к ресурсам и файлам законного пользователя.
Аналогично, если оппонент перехватил билет, гарантирующий сервис, и использует его прежде, чем истечет время его действия, он имеет доступ к соответствующему сервису.
Таким образом, можно сформулировать следующее дополнительное требование. Сетевой сервис (т.е. или прикладной сервис) должны иметь возможность убедиться в том, что билет использует тот, кто получил его.
Вторая проблема состоит в том, что должна быть возможность аутентификации самих серверов для пользователей. Без подобной аутентификации оппонент может изменить конфигурацию таким образом, чтобы сообщение к серверу перенаправлялось по другому адресу. Этот ложный сервер будет затем выполнять действия в качестве реального сервера, перехватывать любую информацию от пользователя или не предоставлять ему необходимый сервис.
Сначала рассмотрим проблему перехвата билетов, гарантирующих билеты, и необходимость гарантировать, что представленный билет является тем же самым билетом, который был выдан клиенту. Для решения этой проблемы должен безопасным способом обеспечить как клиентский модуль, так и некоторой секретной информацией. После этого клиентский модуль может доказать свою идентичность, предоставляя безопасным способом эту секретную информацию. Здесь может использоваться некий разделяемый секрет, который в дальнейшем будет применяться в качестве ключа шифрования. Этот разделяемый секрет называется
Рассмотрим технологию распределения
Обмен с аутентификационным сервисом для получения билета, гарантирующего билет
C -> AS: IDC, IDtgs, TS1 - клиентский модуль запрашивает билет, гарантирующий билет
IDC: идентификатор пользователя.
IDtgs: идентификатор .
TS1: отметка времени, позволяет проверить, синхронизированы ли часы клиента с часами .
AS -> C: EKc [KC, tgs, IDtgs, TS2, LТ2, - возвращает билет, гарантирующий билет
: билет, используемый клиентом для доступа к .
Kc: ключ шифрования, основанный на пользовательском пароле, применение которого позволяет и клиентскому модулю аутентифицировать пользователя и защитить содержимое сообщения (2).
КC, tgs: для обеспечения безопасного обмена между клиентским модулем и .
Kas,tgs: ключ, которым зашифрован билет и который известен только и .
IDtgs: подтверждение того, что данный билет предназначен для .
ADC: адрес пользователя, предотвращает использование билета с любой рабочей станции, кроме той, с которой он был первоначально получен.
TS2: время создания билета.
LТ2: время жизни билета.
Обмен с сервисом, гарантирующим билет, для получения билета, гарантирующего сервис
C -> - клиентский модуль запрашивает билет, гарантирующий сервис
IDS: идентификатор сервера S.
: гарантирует , что данный пользователь аутентифицирован .
Authenticatorc: создается клиентом для подтверждения законности ключа.
AuthenticatorC = EKc,tgs [IDC, ADC, TS3 ]
TS3: время создания
- возвращает билет, гарантирующий сервис
: билет, используемый клиентом для доступа к серверу S.
Кtgs,s: ключ, разделяемый S и .
КC,S: для обеспечения безопасного обмена между клиентским модулем и сервером без необходимости разделения ими постоянного ключа.
IDS: доказательство того, что этот ключ предназначен для сервера S.
TS4: время создания билета.
LТ4: время жизни билета.
Клиент/серверный аутентификационный обмен для получения сервиса
C -> S: - клиент запрашивает сервис
AuthenticatorC = EKc [IDC, ADC, TS5 ]
: гарантирует серверу, что данный клиент аутентифицирован .
Authenticatorc: создается клиентом для подтверждения законности ключа.
TS5: время создания
S -> C: EKc [TS5 + 1] - дополнительная аутентификация сервера для клиента
TS5 + 1: гарантирует С, что не было
Прежде всего, клиентский модуль посылает сообщение к с требованием доступа к . отвечает сообщением, зашифрованным ключом, полученным из пароля пользователя, который содержит билет. Зашифрованное сообщение также содержит КC,tgs, где индексы определяют, что это С и . Таким образом, С, так и .
К первой фазе сценария добавлено несколько дополнительных элементов информации. Сообщение (1) включает отметку времени, так что знает, что сообщение своевременно. Сообщение (2) включает несколько элементов билета в форме, доступной С. Это необходимо С для подтверждения того, что данный билет предназначен для и для определения момента истечения срока его действия.
Теперь, имея билет и С может обратиться к . Как и раньше, С посылает сообщение, которое включает билет и идентификатор требуемого сервиса (сообщение (3)). Дополнительно С передает С, а также отметку времени. В отличие от билета, который является переиспользуемым, LT ). Теперь расшифровывает билет с помощью ключа, который он разделяет с . Этот билет содержит КС,tgs. В действительности билет устанавливает, что любой, кто использует КС,tgs, должен быть С. задействует может затем сравнить имя и адрес из может быть уверен, что отправитель билета является настоящим его собственником. В действительности TS3
возможно использование KС,tgs. Заметим, что билет не доказывает чью-либо идентичность, а является способом безопасного распределения ключей.
Сообщение (4) от имеет вид сообщения (2). Сообщение зашифровано ключом сообщения, разделяемым и С, и включает С и сервером S, идентификатор S и отметку времени билета. Билет включает тот же самый
С теперь имеет переиспользуемый билет, гарантирующий сервис S. Когда С представляет этот билет, как и в сообщении (5), он также посылает
Если требуется взаимная аутентификация, сервер посылает сообщение (6), в котором возвращает значение отметки времени из С может расшифровать это сообщение для получения увеличенной отметки времени. Так как сообщение может быть расшифровано С уверен, что оно может быть создано только S. Это гарантирует С, что
Наконец, в завершение клиент и сервер разделяют секретный ключ. Этот ключ может быть использован для шифрования будущих сообщений между ними или для обмена новым случайным
Полнофункциональное окружение
Сервер
Такое окружение называется областью (
Сервер
Схема требует, чтобы сервер
Если эти основополагающие условия выполняются, можно ввести следующий механизм доступа пользователей к серверам из других областей. Пользователю, который хочет получить сервис на сервере из другой области, необходим билет для этого сервера. Клиентский модуль следует обычным процедурам получения доступа к локальному и затем запрашивает билет, гарантирующий билет, для удаленного ( в другой области). Затем клиентский модуль вызывает удаленный для получения билета, гарантирующего сервис, на требуемый сервер в области, которую обслуживает удаленный .
Протокол обмена является следующим:
C -> AS: IDC, IDtgs, TS1AS -> C: EKc [KC, tgs, IDtgs, TS2, LТ2, Ticket tgs]C -> TGS : IDtgsrem, Ticket tgs, AuthenticatorCTGS -> C: EKc, tgs [KC, tgsrem, IDtgsrem, TS4, Ticket tgsrem]C -> TGS rem: IDrem, Ticket tgsrem, AuthenticatorCTGS rem -> C: EKc, tgsrem [KC, Srem, IDSrem, TS6, Ticket Srem]C -> Srem: Ticket Srem, AuthenticatorCБилет, предоставляемый удаленному серверу Srem, кроме всего остального, содержит идентификатор области, в которой пользователь был аутентифицирован. Сервер определяет, является ли данный удаленный запрос законным.
При таком подходе традиционная проблема состоит в том, что если существует N областей, то должно быть [N (N - 1)]/2 безопасных обменов ключей, чтобы каждый
Версия 5
Версия 5 предназначена для преодоления недостатков проектирования и технических недоработок версии 4.
Версия 4
Существуют также следующие технические недостатки в самом протоколе версии 4:
AS клиенту включает нечто, зашифрованное ключом, основанным на пароле клиента. Оппонент может перехватить это сообщение и попытаться расшифровать его, используя различные пароли. Если результат дешифрования будет иметь корректный формат, то это означает, что оппонент раскрыл пароль клиента и может последовательно использовать его для получения доверительной грамоты от Рассмотрим протокол версии 5.
Получение билета, гарантирующего билет
C -> AS: Options, IDC, Realm C, IDtgs, Times, Nonce 1AS -> C: Realm C, IDC, Ticket tgs, EKc [ KC,tgs, Times, Nonce 1, Realm tgs, IDtgs]Получение билета, гарантирующего сервис
C -> TGS : Options, IDS, Times, Nonce 2, Ticket tgs, AuthenticatorCTGS -> C: Realm C, IDC, Ticket S, EKc,tgs [ KC,S, Times, Nonce 2, Realm S, IDS]AuthenticatorC = EKc,tgs [ IDC,
Получение сервиса
C -> S: Options, Ticket S, AuthenticatorCS -> C: EC, S [TS2, Subkey, Seq#]AuthenticatorC = EKc, s [ IDC,
Рассмотрим получение билета, гарантирующего билет. Сообщение (1) является запросом клиентского модуля на билет, гарантирующий билет. Как и прежде, оно включает идентификаторы пользователя и . Добавлены следующие новые элементы:
Realm : определяет область пользователя.Options: используется для запроса основных флагов, которые должны быть установлены в возвращаемом билете.Times: используется клиентом для запроса следующих установок времени в билете:from: требуемое начальное время для запрашиваемого билета.till: требуемое время окончания для запрашиваемого билета.rtime: требуемое время обновления.Nonce : случайное число, повторяемое в сообщении 2, гарантирующее, что ответ своевременный и повтором оппонента не является.Сообщение (2) возвращает билет, гарантирующий билет, который содержит информацию для клиента, и блок, зашифрованный с использованием ключа шифрования, основанного на пользовательском пароле. Этот блок включает , время, указанное в сообщении 1, информацию. Сам билет включает
Сравним получение билета, гарантирующего сервис, в версиях 4 и 5. Сообщение (3) в обеих версиях включает
Сообщение (4) имеет ту же структуру, что и сообщение (2); оно возвращает билет и информацию, необходимую клиентскому модулю, зашифрованную .
Наконец, для получения сервиса в версии 5 появилось несколько новых возможностей. В сообщении (5) клиентский модуль может запросить опцию, которая требует взаимной аутентификации.
KC, S.Если требуется взаимная аутентификация, сервер отвечает сообщением (6). Это сообщение включает отметку времени из
Поле флагов, введенное в билеты в версии 5, поддерживает расширенную функциональность по сравнению с версией 4. Рассмотрим флаги, которые могут быть определены в билете (см. таб. 20.1).
Флаг INITIAL определяет, что данный билет получен от , а не от . Когда клиент требует билет, гарантирующий сервис, от , он предоставляет билет, гарантирующий билет, полученный от . В версии 4 это был способ, в конечном счете, получить билет, гарантирующий сервис. Версия 5 предоставляет дополнительную возможность, чтобы клиент мог получить билет, гарантирующий сервис, непосредственно от . Это применяется в таких, например, случаях, когда сервер изменения пароля хочет убедиться, что пароль клиента был только что проверен.
Флаг PRE-AUTHENT, если установлен, определяет, что когда получит первоначальный запрос (сообщение 1), он аутентифицирует клиента, прежде чем выдать билет. Строгая форма этой предаутентификации остается неспецифицированной. Например, реализация MIT версии 5 имеет предаутентификацию в виде зашифрованной отметки времени. В этом случае клиентский модуль посылает предаутентификационный блок, содержащий случайное число, номер версии и отметку времени и зашифрованный с использованием пароля пользователя. расшифровывает блок и посылает билет, гарантирующий билет, если отметка времени находится в допустимом диапазоне. Другая возможность применения данного флага состоит в использовании смарт-карт, создаваемых с постоянно меняющимся паролем, который включается в предаутентификационное сообщение. Пароли, создаваемые картой, могут быть основаны на
пользовательских паролях, но затем быть преобразованы смарт-картой так, чтобы в действительности использовались HW-AUTHENT.
Когда билет имеет долгое время жизни, существует опасность его кражи и последующего использования оппонентом в допустимый период. Если используется короткое время жизни для уменьшения подобной угрозы, то может возникнуть потребность в получении новых билетов. В случае билета, гарантирующего билет, клиент может хранить секретный ключ пользователя, который не подвержен риску, или повторно запрашивать у пользователя пароль. Компромисс состоит в использовании возобновляемых билетов. Билет с установленным флагом RENEWABLE включает два срока истечения: один для данного билета и один является самым поздним допустимым значением для истекаемого времени. Если новое время находится в пределах самого позднего допустимого значения, может выдать новый билет с новым временем сессии и определить время его истечения. Преимущество данного механизма состоит в том, что может отказаться обновлять билет,
помечая его как украденный.
Клиент может выдать запрос на предоставление билета, гарантирующего билет, с установленным флагом MAY-POSTDATE. Клиент может затем использовать этот билет для запроса билета от с установленными флагами POSTDATED и INVALID. Впоследствии клиент может подать подтверждение на просроченный билет, чтобы сделать его действительным. Эта схема может использоваться для выполнения долгих пакетных заданий на сервере, который периодически требует билет. Клиент может один раз получить некоторое число билетов для данной сессии с несколькими значениями времени. Все, кроме первого билета, первоначально являются недопустимыми. При наступлении момента, когда требуется новый билет, клиент может сделать соответствующий билет действительным. При таком подходе клиент не будет повторно использовать свой билет, гарантирующий билет, для получения билета, гарантирующего сервис.
В версии 5 стало возможным, чтобы сервер являлся proxy для клиента, в результате чего устанавливаются верительные грамоты и привилегии клиента при запросе сервиса от другого сервера. Если клиент хочет использовать данный механизм, он требует билет, гарантирующий билет, с установленным флагом PROXIABLE. Когда такой билет предоставляется от , разрешает получать билет, гарантирующий сервис, с различных сетевых адресов; этот последний билет имеет установленный флаг PROXY. Приложение, получившее такой билет, может принять его или требовать дополнительной аутентификации с тем, чтобы обеспечить след аудита.
Концепция proxy является ограниченным случаем более сильной процедуры перенаправления. Если в билете установлен флаг FORWARDABLE, может выдать запрашивающему билет, гарантирующий билет с различными сетевыми адресами, и установить флаг FORWARDED. Этот билет может затем быть представлен удаленному . Такая возможность позволяет клиенту получить доступ к серверу из другой области без требования того, чтобы каждый в пути.
| INITIAL | Данный билет получен с использованием AS-протокола и не получен на основе билета, гарантирующего билет |
| PRE-AUTHENT | При начальной аутентификации клиент был аутентифицирован прежде, чем был выдан билет |
| HW-AUTHENT | Протокол, используемый для начальной аутентификации, требует использования аппаратуры, ожидая ввода исключительно имени клиента |
| RENEWABLE | Говорит |
| MAY-POSTDATE | Говорит |
| POSTDATED | Определяет, что данный билет является просроченным; конечный сервер может проверить поле authtime, чтобы посмотреть, когда произошла первоначальная аутентификация. |
| INVALID | Определяет, что данный билет является недействительным и что прежде чем он будет использоваться, его действительность должна быть подтверждена у |
| PROXIABLE | Говорит о том, что новый билет, гарантирующий сервис, с другим сетевым адресом может быть получен на основе существующего билета |
| PROXY | Определяет, что данный билет является агентом на другой сервис (proxy) |
| FORWARDABLE | Говорит |
| FORWARDED | Определяет, что данный билет является либо forwarded, либо получен на основе аутентификации, включающей forwarded билет, гарантирующий билет |
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.