Какво е Kerberos?

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

Как работи Kerberos?

Керберос работи на три стъпки. Сега нека да обсъдим тези три стъпки една по една.

Етап 1:

Влизане

Клиентът въвежда името си на произволна работна станция. След това работната станция изпраща името на сървъра за удостоверяване в обикновен текстов формат.
В отговор сървърът за удостоверяване извършва някои действия. Първо, той създава пакета с потребителско име, т.е. клиент и генерира сесионния ключ. Той криптира този пакет със симетричен ключ, който сървърът за удостоверяване споделя със сървъра за предоставяне на билети (TGS). Резултатът от този процес се нарича билет за отпускане на билети (TGT). Тогава сървърът за удостоверяване комбинира и TGT, и ключ за сесия и ги криптира заедно, използвайки симетричния ключ, който се извлича от паролата на клиента.

Забележка: TGT може да бъде отворен само с помощта на TGS, а крайният изход може да бъде отворен само от клиента.

След получаване на това съобщение работната станция на потребителя пита паролата. Когато потребител или клиент въведе паролата си, работната станция генерира симетричния ключ, получен от паролата на удостоверяващ сървър. Този ключ се използва за извличане на ключ за сесия и TGT. След това работната станция унищожава паролата на клиента от паметта му, за да предотврати атаката.
Забележка: Потребителите не могат да отворят билет за предоставяне на билет.

Стъпка 2:

Получаване на услуга за отпускане на билет.

Да предположим, че след успешното влизане, потребителят иска да комуникира с други потребители чрез пощенския сървър. За това клиентът информира работната си станция, че иска да се свърже с друг потребител X. Така че клиентът се нуждае от билет за комуникация с X. В този момент клиентската работна станция създава съобщение, предназначено за сървър за предоставяне на билети, което съдържа по-долу споменатите елементи -
• Билет за предоставяне на билет
• идентификационният номер на X, чиито услуги се интересуват от клиентите.
• Текущата марка трябва да бъде криптирана със същия ключ на сесията.

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

Сървърът за удостоверяване го криптира с помощта на секретния ключ, който се извлича от паролата на клиента. Следователно единственият клиент може да отвори пакета и да извлече билета за предоставяне на билет
След като сървърът за предоставяне на билети е удовлетворен от данните, въведени от клиента, билетът за предоставяне на билет създава сесиен ключ KAB, за да може клиентът да извърши защитената комуникация с X. Серверът за предоставяне на билети го изпраща два пъти до клиента - за първи път той изпраща, когато е комбиниран с идентификатор на X и криптиран с ключ на сесията, втори път се изпраща, когато се комбинира с идентификатор на клиент и се криптира с тайния ключ на Х KB.

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

Стъпка 3:

Потребителски контакти X за достъп до сървъра.

Клиентът изпраща KAB до X, за да създаде сесия с X. За сигурна комуникация клиентът препраща KAB, шифрован с секретния ключ на X, към X. X може да получи достъп до KAB. За да се защити от атака на отговор, клиентът изпраща времева марка до X, която е шифрована с KAB.

X използва секретния си ключ, за да получи информацията, от тази информация използва KAB, за да декриптира стойността на печата. Тогава X добавя 1 към стойността на времевата маркировка и го криптира с помощта на KAB и го изпраща на клиента. След това клиентът отваря пакета и проверява печата, увеличен от X. От този процес клиентът гарантира, че X е получил същия KAB, който е изпратен от клиента.

Сега клиентът и X могат да общуват помежду си сигурно. И двамата използват споделен секретен ключ KAB йо криптират данните по време на изпращане и дешифрират съобщението, използвайки един и същ ключ.предполага се, че клиентът може да иска да комуникира с друг сървър Y, в този случай клиентът просто n3d да получи друг секретен ключ от сървъра за отпускане на билети. След като получи секретния ключ, той може да комуникира с Y по същия начин, както сме обсъждали в случая с X. Ако клиентът може да комуникира отново с X, той може да използва същия предишен ключ, не е необходимо да генерира билет всеки път. Само за първи път той трябва да получи билета.

Предимства и недостатъци на Kerberos

По-долу са предимствата и недостатъците:

Предимства на Kerberos

  1. В Kerberos клиентите и услугите взаимно се удостоверяват.
  2. Поддържа се от различни операционни системи.
  3. Билетите в Kerberos имат ограничен период. Освен това, ако билетът бъде откраднат, е трудно да се използва повторно билета поради силни нужди за удостоверяване.
  4. Паролите никога не се изпращат по мрежата незашифровани.
  5. В Kerberos се споделят секретни ключове, които са по-ефективни от споделянето на публични ключове.

Недостатъци на Kerberos

  1. Той е уязвим към слаби или повтарящи се пароли.
  2. Той предоставя само удостоверяване за услуги и клиенти.

заключение

В тази статия видяхме какво е Kerberos, как работи заедно с неговите предимства и недостатъци. Надявам се, че тази статия ще ви бъде полезна.

Препоръчителни статии

Това е ръководство за Керберос. Тук обсъждаме какво е Kerberos, как работи Kerberos и неговите предимства и недостатъци. Можете също да прегледате и другите ни предложени статии, за да научите повече -

  1. Видове уеб хостинг
  2. Какво е уеб приложение?
  3. Какво е Star схема?
  4. Масиви в Java програмиране