Kerberos сървър за удостоверяване

Kerberosе софтуерен продукт, разработен в средата на 80-те години на миналия век в Масачузетския технологичен институт като средство за осигуряване на мрежова сигурност. Този протокол е публично достъпен от версия 4, а версия 5 е приета като IETF стандарт. Клиентските компоненти на Kerberos присъстват в повечето съвременни операционни системи (UNIX, Windows 2000 и по-нови).

Kerberos е предназначен да реши следния проблем. Има отворена (незащитена) мрежа, в чиито възли са съсредоточени субектите:клиенти- потребители) исървъри (S). Всеки предмет има таен ключ. За да може субектътCда докаже своята самоличностS(без това S няма да обслужва C), той трябва не само да се идентифицира, но и да демонстрира познаване на секретния ключ. C не може просто да изпрати на S своя таен ключ, първо защото мрежата е отворена (достъпна за пасивно и активно слушане), и второ, защото S не знае (и не трябва да знае) секретния ключ на C.

Системата Kerberos едоверена трета страна(т.е. страна, на която всички имат доверие), която притежава частните ключове на обслужваните обекти и ги подпомага при удостоверяване по двойки.

За да получи достъп до S (сървър) чрез Kerberos, C (клиент) изпраща заявка до Kerberos, съдържаща информация за него (клиента) - парола. В отговор Kerberos връща така наречения-Ticket, криптиран със секретния ключ на сървъра, и копие на информацията от билета, криптирано с тайния ключ на клиента, което се определя въз основа на получената информация. Клиентът трябва да дешифрира втората част от данните и да я изпрати заедно с билета на сървъра. Сървърът, след като дешифрира билета си, може да сравни съдържанието му с допълнителна информация,изпратено от клиента. Съвпадението показва, че клиентът е успял да декриптира предназначените за него данни (в края на краищата съдържанието на билета не е достъпно за никого, освен за сървъра и Kerberos), тоест той демонстрира познаване на секретния ключ. И така, клиентът е точно този, за когото се представя. Подчертаваме, четайните ключовене са били предавани по мрежата по време на процеса на удостоверяване (дори в криптирана форма) - те са били използвани само за криптиране.Тикетът (разписката) отбелязва кога е създаден и изтича -с клеймо за време (това времево клеймо е необходимо, за да попречи на някой да копира билета и по-късно да подмени Kerberos клиент. Този възможен тип атака е известен катоreplay - replay). Валидността на билета се следи от система за сигурност, за да се ограничи степента на възможни щети, които може да причини нападател, който открадне билета по какъвто и да е начин. Обикновено билетът е валиден през работния ден, но администраторът може да промени периода в посока, както в намаляване, така и в увеличаване, в зависимост от политиката за сигурност. Тъй като часовниците на клиента и сървъра не винаги работят перфектно синхронизирано, се дава малко забавяне (около пет минути) между клеймото за дата/час и текущия час.

Kerberos
Сървър S проверява самоличността на клиент C.

Тукcиsса информация (например име) съответно за клиента и сървъра;d1иd2– допълнителна (по отношение на билета) информация;Tc.s– билет за клиент C за обслужване на сървър S;KcиKsса тайни ключове на клиент и сървър.

Напълно функционалната среда се състои от Kerberos сървър, редица клиенти, сървъри за приложения и изисква да бъдат изпълнени следните условия:

всичкопотребителите са регистрирани на сървъра Kerberos (който съдържа идентификаторите и паролите на всички потребители в неговата база данни)

Сървърът Kerberos трябва да споделя таен ключ с всеки сървър на приложения, т.е. всички сървъри са регистрирани в сървъра Kerberos

Такава среда се нарича зона (област) или област Kerberos. Мрежите от клиенти и сървъри в различни административни организации обикновено образуват различни области.Kerberosосигурява механизъм за поддържане на междусферно удостоверяване. Следното изискване е добавено за двете области, които поддържат междусферно удостоверяване:

СървърътKerberosза всяка от взаимодействащите области споделя таен ключ със сървъраKerberosв другата област. С други думи, дваKerberosсървъра се регистрират взаимно.

Схемата изискваKerberosсървър в една област да се довери наKerberosсървър в друга област за удостоверяване на своите потребители. Освен това сървърите във второто царство също трябва да се съгласят да се доверят наKerberosсървъра в първото царство

Хост услугатаKerberosе центърът за разпространение на ключове (KDC). Обменът на данни в процеса на автентификация на страните се осъществява между KDC и клиента. KDC е услуга, която работи на физически защитен сървър и поддържа база данни с информация за акаунтите на своите абонати. Заедно с информацията за всеки защитен абонат, тази база данни съхранява криптографски ключ, известен само на абоната и KDC. Този ключ (наречен дългосрочен ключ) се използва за свързване на потребителя за защита към центъра за разпространение на ключове. В повечето практически реализации на протокола Kerberos, дългосрочноКлючовете се генерират въз основа на паролата на потребителя, предоставена при влизане.

Когато клиент трябва да се свърже със сървъра, той изпраща заявка до KDC, който от своя страна изпраща на всеки участник в предстоящата сесия копие от уникалния сесиен ключ, който е валиден за кратко време. Целта на тези ключове е да удостоверят клиента и сървъра. Копие на сесийния ключ, изпратено до сървъра, се шифрова с помощта на дългосрочния ключ на сървъра, а изпратеното до клиента се шифрова с помощта на дългосрочния ключ на клиента.

Използвайки пароли в комбинация със симетрични ключове за шифроване, Kerberos удостоверява потребителите и защитава данните при пренос. Криптирането се извършва с помощта на алгоритмите DES и TripleDES.

Единственият обект, който знае всички ключове, е Kerberos сървърът, който трябва да бъдефизически защитен.