Кіріспе

Компьютерлік аутентификация протоколы

Kerberos (/kɜːr//b//ər//ɒ//s/) – компьютерлік желілік аутентификация протоколы, ол билеттер негізінде жұмыс істейді. Бұл протокол, қауіпсіз емес желі арқылы байланыс жасайтын түйіндерге бір-бірінің кім екенін қауіпсіз түрде растауға мүмкіндік береді. Оның жасаушылары оны негізінен клиент-сервер моделі үшін жасаған, және ол өзара аутентификацияны қамтамасыз етеді – пайдаланушы да, сервер де бір-бірінің кім екенін тексеріп алады. Kerberos протоколының хабарламалары тыңшылыққа және қайта ойнату шабуылдарына қарсы қорғалған. Kerberos симметриялық кілттік криптографияға негізделген және сенімді үшінші тарапты қажет етеді, сонымен қатар аутентификацияның кейбір кезеңдерінде ашық кілттік криптографияны қосымша қолдануға болады. Kerberos әдепкі бойынша UDP 88 портын пайдаланады. Бұл протокол грек мифологиясындағы Кербер (немесе Цербер) есімді үш басты қақпашы иттің құрметіне аталған.

Тарих және дамуы

Массачусетс технология институты (МИТ) 1988 жылы Kerberos-ті Athena жобасымен қамтамасыз етілген желілік қызметтерді қорғау үшін әзірледі. Оның алғашқы нұсқасын негізінен Стив Миллер мен Клиффорд Ньюман бұрынғы Нидхам-Шрёдер симметриялық кілт протоколы негізінде жасады. Kerberos-тің 1-ден 3-ке дейінгі нұсқалары тәжірибелік болды және МИТ-тен тысқары жерде жарияланбады. Kerberos 4-ші нұсқасы, алғашқы жалпыға қолжетімді нұсқасы 1989 жылдың 24 қаңтарында шығарылды. Kerberos 4 Америка Құрама Штаттарында әзірленгендіктен және ол Деректерді шифрлау стандартының (DES) шифрлау алгоритмін қолданғандықтан, АҚШ экспорттық бақылау шектеулері оны басқа елдерге экспорттауға кедергі келтірді. MIT барлық шифрлау коды алынып тасталған Kerberos 4-тің экспортталатын нұсқасын жасады, ол "Bones" деп аталды. Австралияның Бонд университетінің Эрик Янг DES-ті "Bones" нұсқасына қайта енгізді, ол "eBones" деп аталды және кез келген елде еркін қолданылуы мүмкін болды. Швецияның Корольдік технология институты KTH KRB деп аталған тағы бір қайта іске асыруды шығарды. Ньюман мен Джон Колл 1993 жылы қолданыстағы шектеулер мен қауіпсіздік мәселелерін жою мақсатымен 5-ші нұсқаны жариялады. 5-ші нұсқа RFC 1510 ретінде пайда болды, ол 2005 жылы RFC 4120 нұсқасымен ескірді. 2005 жылы Интернет-инженерлік жұмыс тобының (IETF) Kerberos жұмыс тобы ерекшеліктерді жаңартты. Жаңартулар: Шифрлау және бақылау сомасының ерекшеліктері (RFC 3961). Kerberos 5 үшін Advanced Encryption Standard (AES) шифрлау (RFC 3962). "Kerberos Network Authentication Service (V5)" Kerberos V5 спецификациясының жаңа басылымы (RFC 4120). Бұл нұсқа RFC 1510-ды ескірді, хаттаманың аспектілерін және жоспарланған қолданылуын егжей-тегжейлі және түсінікті түсіндіреді. "The Kerberos Version 5 Generic Security Service Application Program Interface (GSS API) Mechanism: Version 2" (RFC 4121) жалпы қауіпсіздік қызметтері бағдарламалық интерфейсінің (GSS API) спецификациясының жаңа басылымы. MIT Kerberos-ті BSD лицензиясына ұқсас авторлық құқықтармен тегін қолжетімді етеді. 2007 жылы MIT үздіксіз дамуды ынталандыру үшін Kerberos консорциумын құрды. Негізгі демеушілерге Oracle, Apple Inc., Google, Microsoft, Centrify Corporation және TeamF1 Inc., сондай-ақ Швецияның Корольдік технология институты, Стэнфорд университеті, МИТ және коммерциялық қолдау ұсынатын CyberSafe сияқты сатушылар кіреді.

Сипаттама

Клиент кілтті тарату орталығының (KDC) бір бөлігі болып табылатын Аутентификация серверіне (AS) өзін куәландырады. KDC билет беру билетін (TGT) шығарады, оған уақыт белгісі қойылады және ол билет беру қызметінің (TGS) құпия кілтімен шифрланады, содан кейін шифрланған нәтиже пайдаланушының жұмыс станциясына қайтарылады. Бұл әдетте пайдаланушы кірген кезде сирек жасалады; TGT белгілі бір уақытта өтеді, бірақ пайдаланушы кірген күйде тұрғанда оның сессия менеджері оны автоматты түрде жаңарта алады. Клиент басқа түйіндегі қызметпен (Керберос терминологиясында "негізгі субъект" деп аталады) байланыс құру қажет болғанда, клиент TGT-ді KDC-нің тағы бір құрамы болып табылатын TGS-ге жібереді, ол әдетте аутентификация серверімен бір хостты бөліседі. Қызметке бұрыннан TGS-де қызметтің негізгі атауы (SPN) арқылы тіркелуі керек. Клиент осы қызметке қол жеткізу үшін SPN-ді пайдаланады. TGT жарамды екенін және пайдаланушыға сұралған қызметке қол жеткізуге рұқсат етілгенін тексергеннен кейін, TGS клиентке қызметтік билетті (ST) және сессия кілттерін береді. Клиент содан кейін билетті қызметтік серверге (SS) өтінішпен бірге жібереді. Протокол төменде егжей-тегжейлі сипатталған.

Керберсіз пайдаланушы клиентімен жүйеге кіру

Пайдаланушы клиенттік машинада (лар) пайдаланушы атын және құпия сөзді енгізеді. pkinit (RFC 4556) сияқты басқа да деректерді растау механизмдері құпия сөздің орнына ашық кілттерді пайдалануға мүмкіндік береді. Клиент құпия сөзді симметриялық шифрдің кілтіне түрлендіреді. Бұл шифр жиынтығына байланысты кілттің жасалуын немесе бір бағытты хэш функциясын қолданады. Сервер пайдаланушы атын және симметриялық шифрді қабылдайды және оны деректер базасындағы деректермен салыстырады. Егер шифр пайдаланушы үшін сақталған шифрмен сәйкес келсе, кіру сәтті болады.

Клиенттің аутентификациясы

Клиент пайдаланушы атынан қызметтерді сұрап, АС-қа (аутентификациялық серверге) пайдаланушы идентификаторы туралы қарапайым мәтіндік хабар жібереді. (Ескертпе: құпия кілт пен пароль АС-қа жіберілмейді.) АС клиенттің өзінің деректер базасында бар-жоғын тексереді. Егер клиент базада болса, АС қосымша жүйе деректер базасында (мысалы, Windows Server-дегі Active Directory) табылған пайдаланушының паролін хэштеу арқылы құпия кілтті жасайды және клиентке келесі екі хабарламаны қайтарады: А хабарламасы: Клиент/TGS сессия кілті клиенттің/пайдаланушының құпия кілтімен шифрланған. B хабарламасы: билет беру билеті (TGT, клиент идентификаторы, клиент желілік мекенжайы, билеттің жарамдылық мерзімі және клиент/TGS сессия кілті) TGS құпия кілтімен шифрланған. Клиент А және B хабарламаларын алғаннан кейін, пайдаланушы енгізген парольден жасалған құпия кілтпен А хабарламасын шифрлауға тырысады. Егер пайдаланушы енгізген пароль АС деректер базасындағы парольмен сәйкес келмесе, клиенттің құпия кілті өзгеше болады және А хабарламасын шифрлай алмайды. Дұрыс пароль мен құпия кілтпен клиент А хабарламасын шифрлап, Клиент/TGS сессия кілтін алады. Бұл сессия кілті TGS-пен одан әрі байланыс үшін қолданылады. (Ескертпе: Клиент B хабарламасын шифрлай алмайды, себебі ол TGS құпия кілтімен шифрланған.) Осы кезде клиенттің TGS-ке өзін растау үшін жеткілікті ақпараты болады.

Клиенттік қызмет көрсету туралы сұрау

TGS-тен E және F хабарламаларын алғаннан кейін клиентте Сервис Серверіне (SS) өзін растауға жеткілікті ақпарат болады. Клиент SS-ке қосылады және келесі екі хабарламаны жібереді:
Хабарлама E: Алдыңғы қадамнан (Клиентке серверге билет, TGS арқылы қызметтің құпия кілтімен шифрланған).
Хабарлама G: Клиент ID, уақыт белгісі және Клиент/Сервер сессия кілті арқылы шифрланған жаңа аутентификатор. SS клиент/сервер сессия кілтін алу үшін өзінің құпия кілтін пайдаланып билетті (хабарлама E) шифрдан шығарады. Сессия кілтін пайдаланып, SS аутентификаторды шифрдан шығарады және E және G хабарламаларынан клиент ID-ін салыстырады. Егер олар сәйкес келсе, сервер клиентке өзінің нақты екенін және клиентке қызмет көрсетуге дайын екенін растау үшін келесі хабарламаны жібереді:
Хабарлама H: Клиенттің аутентификаторындағы уақыт белгісі (4-ші нұсқада +1, бірақ 5-ші нұсқада қажет емес), Клиент/Сервер сессия кілті арқылы шифрланған. Клиент клиент/сервер сессия кілті арқылы растауды (H хабарын) шифрдан шығарады және уақыт белгісінің дұрыс екенін тексереді. Егер дұрыс болса, клиент серверге сеніп, оған қызмет көрсету туралы сұрауларды жібере алады. Сервер клиентке қажетті қызметтерді ұсынады.

Microsoft Windows-тың жүйелік жүйесі

Windows 2000 және одан кейінгі нұсқалары әдепкі аутентификация әдісі ретінде Kerberos-ты пайдаланады. Kerberos протоколдары жиынтығына Microsoft-тың кейбір қосымшалары RFC 3244 "Microsoft Windows 2000 Kerberos Change Password and Set Password Protocols" құжаттамасында сипатталған. RFC 4757 Microsoft-тың RC4 шифрын пайдалануын көрсетеді. Microsoft Kerberos протоколын пайдаланып, кеңейткенімен, MIT бағдарламалық қамтамасын қолданбайды. Kerberos артықшылықты аутентификация әдісі ретінде қолданылады: жалпы алғанда, клиентті Windows доменіне қосу, сол клиенттен Windows доменіндегі және осы доменмен сенімділік байланысы бар барлық домендердегі қызметтерге аутентификация үшін Kerberos-ты әдепкі протокол ретінде қосуды білдіреді.

Unix және басқа операциялық жүйелер

Көптеген Unix сияқты операциялық жүйелер, соның ішінде FreeBSD, Apple-дің macOS, Red Hat Enterprise Linux, Oracle-дің Solaris, IBM-нің AIX, HP UX және басқалары пайдаланушылардың немесе қызметтердің Kerberos аутентификациясына арналған бағдарламалық жасақтаманы қамтиды. z/OS, IBM i және OpenVMS сияқты Unix-ке ұқсамайтын операциялық жүйелер де Kerberos қолдауын ұсынады. Клиенттік агенттер мен желілік қызметтер үшін кіріктірілген платформаларда жұмыс істейтін Kerberos V аутентификациялық протоколының кіріктірілген нұсқасын компаниялар да ұсынады.

Кемшіліктері мен шектеулері

Керберостың қатаң уақыт талаптары бар, яғни қатысатын хосттардың сағаттары конфигурацияланған шектеулерде синхрондалуы тиіс. Билеттердің қолданылу мерзімі бар, егер хост сағаты Керберос серверінің сағатымен синхрондалмаса, аутентификация сәтсіз аяқталады. MIT-тің стандартты конфигурациясы сағат уақытының айырмашылығы бес минуттан аспауын талап етеді. Іс жүзінде, желілік уақыт протоколы (Network Time Protocol) демондары хост сағаттарын синхрондау үшін пайдаланылады. Назарда болыңыз, кейбір серверлер (мысалы, Microsoft-тың іске асыруы) егер екі сағаттың да ауытқуы конфигурацияланған максималды мәннен артық болса, шифрланған сервер уақытын қамтитын KRB AP ERR SKEW нәтижесін қайтара алады. Мұндай жағдайда, клиент берілген сервер уақытын пайдаланып, ауытқуды есептеу арқылы қайтадан талпынуы мүмкін. Бұл әрекет RFC 4430 құжатында сипатталған. Әкімшілік протоколы стандартталмаған және серверлердің әртүрлі нұсқаларында өзгеше болады. Парольдерді өзгерту туралы ақпарат RFC 3244-те келтірілген. Егер симметриялық криптография қолданылса (Керберос симметриялық немесе асимметриялық (ашық кілт) криптографияны қолдана алады), барлық аутентификация орталықтандырылған кілт тарату орталығы (KDC) арқылы басқарылатындықтан, осы аутентификация инфрақұрылымын бұзу шабуылшыға кез келген пайдаланушының құпиясын қолдануға мүмкіндік береді. Әр түрлі хост атауын қажет ететін әрбір желілік қызметке Kerberos кілттерінің жеке жиынтығы қажет. Бұл виртуалды хостинг пен кластерлерді күрделендіреді. Керберос пайдаланушы тіркелгіштері мен қызметтерінің Kerberos токен серверіне сенімді қарым-қатынаста болуын талап етеді. Клиенттің қажетті сенімділігі, кезеңдік орта құруды (мысалы, сынақ ортасы, өндіріске дайындау ортасы және өндіріс ортасы үшін бөлек домендер) қиындатады: қоршаған орта домендерін қатаң түрде бөліспеуіне кедерілес домендік сенім қатынастары құрылуы керек, немесе әрбір орта үшін қосымша пайдаланушы клиенттерін ұсыну қажет.

Қауіпсіздік

Деректерді шифрлау стандарты (DES) шифры Кербероспен бірге қолданылуы мүмкін, бірақ ол әлсіз болғандықтан енді интернет стандарты емес. AES сияқты жаңа шифрлау алгоритмдерін қолдамайтын, Керберостың ескі нұсқаларын қолданатын өнімдерде қауіпсіздікке қатысты осал тұстар бар.