Kerberos (izrunā /ˈkɜrbərəs/ "kur-ber-uhs") ir tīkla autentifikācijas protokols, kas ļauj lietotājiem drošā veidā pierādīt savu identitāti, kad tie sazinās pa publisku vai iekšēju datortīkls, — šis protokols, paredzēts klienta‑servera vidēm, nodrošina, ka gan klients, gan pakalpojuma sniedzējs var pārliecināties par otra identitāti. Kerberos ļauj lietotājam autentificēties vienu reizi, pēc tam izmantojot izsniegtas biļetes (tickets) piekļuvei vairākiem pakalpojumiem bez atkārtotas paroles ievades.

Kerberos sākotnēji izstrādāja Masačūsetsas Tehnoloģiju institūts (MIT) projekta Athena ietvaros, un MIT arī izplata oriģinālo Kerberos programmatūras komplektu kā bezmaksas programmatūru — implementāciju, kas īsteno šo protokolu. Dizains galvenokārt orientēts uz klienta-servera arhitektūru: lietotājs autentificējas pie autentifikācijas servera, saņem Ticket‑Granting Ticket (TGT) un pēc tam izmanto to, lai iegūtu piekļuves biļeti konkrētam serverim. Tā rezultātā klients un serveris var pārbaudīt viens otra identitāti, t.i., ir iespējama savstarpēja (mutuālā) autentifikācija.

Darba pamatprincipi

Kerberos darbojas kā autentifikācijas risinājums, kurā liela nozīme ir uzticamai trešajai pusei — Key Distribution Center (KDC). KDC sastāv no divām loģiskām daļām: Authentication Server (AS) un Ticket‑Granting Server (TGS). Klienta un pakalpojuma atslēgas un izsniegtie seansu atslēgas tiek droši pārvaldītas KDC ietvarā; tie tiek piešķirti un piegādāti šifrētos ziņojumos, izmantojot kriptogrāfisku koplietošanas noslēpumu (simetriskās kriptogrāfijas atslēgas), pieņemot, ka paketes, kas ceļo pa nedrošu tīklu, var nolasīt un modificēt.

Standarta Kerberos versija izmanto simetrisko kriptogrāfiju un pieprasa atslēgu sadales centru, bet paplašinājumos ir paredzēta arī publiskā atslēgas kriptogrāfija (piemēram, PKINIT) noteiktos autentifikācijas posmos, lai uzlabotu izplatīšanas un sākotnējās autentifikācijas drošību. Kerberos protokols nodrošina aizsardzību pret noklausīšanos, modificēšanu un atkārtošanas (replay) uzbrukumiem, galvenokārt izmantojot seansu atslēgas, derīguma termiņus un laika zīmogus, tāpēc uzticama sistēmas pulksteņa sinhronizācija ir svarīga.

Raksturīgas iezīmes un darbības elementi

  • Biļetes (tickets) un Ticket‑Granting Ticket (TGT) — izmanto, lai apliecinātu autentifikāciju un pieprasītu resursu piekļuvi bez paroles atkārtotas nosūtīšanas.
  • Seansu atslēgas — īslaicīgas atslēgas, kas tiek izmantotas šifrētai saziņai starp klientu un pakalpojumu.
  • Pulksteņu sinhronizācija — Kerberos izmanto laika zīmogus, tāpēc pulksteņiem jābūt sinhronizētiem (parasti dažu minūšu robežās).
  • Pre‑authentifikācija — mehānisms, kas samazina paroles laušanas risku, pieprasot sākotnēju pierādījumu no klienta.
  • Biļešu derīguma termiņi, pagarināšana (renewal), pārsūtāmība (forwardable) un daļēji ierobežotas delegācijas — elastīgi piekļuves kontroles mehānismi.

Standarti, implementācijas un lietojumi

Mūsdienu Kerberos versija V5 ir definēta ar RFC 4120 un to plaši izmanto gan UNIX/Linux sistēmās (piem., MIT Kerberos, Heimdal), gan arī Microsoft Windows Active Directory vidē, kur Kerberos ir primārais domēna autentifikācijas mehānisms. Kerberos atbalsta autentifikācijas integrāciju ar dažādiem pakalpojumiem, tostarp tīmekļa, failu serveriem, e‑pasta un citiem tīkla resursiem.

Drošības apsvērumi

Lai gan Kerberos nodrošina spēcīgu aizsardzību pret daudziem uzbrukumu veidiem, ir jāņem vērā:

  • Vājās paroles un slikta kontu pārvaldība — ja uzbrucējs iegūst lietotāja paroli, var mēģināt iegūt biļetes.
  • KDC kompromitācija — ja KDC atslēgas vai serveris tiek uzlauzts, visas domēna autentifikācijas var būt apdraudētas.
  • Pulkača (clock) nesinhronizācija — var izraisīt autentifikācijas kļūmes.
  • Replays un brūnināšanas uzbrukumi — jāizmanto preautentifikācija un pietiekami īsi biļešu termiņi.

Kerberos ir plaši izmantots, jo nodrošina ērtu "single sign‑on" pieredzi un izturamu drošības modeli lielām tīkla vidēm. Tomēr drošai darbībai nepieciešama pareiza konfigurācija, atbilstoša atslēgu pārvaldība un sistēmu uzraudzība.