Кіріспе
Компьютерлік аутентификация протоколы
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 сияқты сатушылар кіреді.
Encryption and Checksum Specifications (RFC 3961). Advanced Encryption Standard (AES) Encryption for Kerberos 5 (RFC 3962). A new edition of the Kerberos V5 specification "The Kerberos Network Authentication Service (V5)" (RFC 4120). This version obsoletes RFC 1510, clarifies aspects of the protocol and intended use in a more detailed and clearer explanation. A new edition of the Generic Security Services Application Program Interface (GSS API) specification "The Kerberos Version 5 Generic Security Service Application Program Interface (GSS API) Mechanism: Version 2" (RFC 4121). MIT makes an implementation of Kerberos freely available, under copyright permissions similar to those used for BSD. In 2007, MIT formed the Kerberos Consortium to foster continued development. Founding sponsors include vendors such as Oracle, Apple Inc., Google, Microsoft, Centrify Corporation and TeamF1 Inc., and academic institutions such as the Royal Institute of Technology in Sweden, Stanford University, MIT, and vendors such as CyberSafe offering commercially supported versions.
Сипаттама
Клиент кілтті тарату орталығының (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-ке өзін растау үшін жеткілікті ақпараты болады.
Message A: Client/TGS Session Key encrypted using the secret key of the client/user. Message B: Ticket Granting Ticket (TGT, which includes the client ID, client network address, ticket validity period, and the Client/TGS Session Key) encrypted using the secret key of the TGS. Once the client receives messages A and B, it attempts to decrypt message A with the secret key generated from the password entered by the user. If the user entered password does not match the password in the AS database, the client's secret key will be different and thus unable to decrypt message A. With a valid password and secret key the client decrypts message A to obtain the Client/TGS Session Key. This session key is used for further communications with the TGS. (Note: The client cannot decrypt Message B, as it is encrypted using TGS's secret key.) At this point, the client has enough information to authenticate itself to the TGS.
Клиенттік қызмет көрсету туралы сұрау
TGS-тен E және F хабарламаларын алғаннан кейін клиентте Сервис Серверіне (SS) өзін растауға жеткілікті ақпарат болады. Клиент SS-ке қосылады және келесі екі хабарламаны жібереді:
Хабарлама E: Алдыңғы қадамнан (Клиентке серверге билет, TGS арқылы қызметтің құпия кілтімен шифрланған).
Хабарлама G: Клиент ID, уақыт белгісі және Клиент/Сервер сессия кілті арқылы шифрланған жаңа аутентификатор. SS клиент/сервер сессия кілтін алу үшін өзінің құпия кілтін пайдаланып билетті (хабарлама E) шифрдан шығарады. Сессия кілтін пайдаланып, SS аутентификаторды шифрдан шығарады және E және G хабарламаларынан клиент ID-ін салыстырады. Егер олар сәйкес келсе, сервер клиентке өзінің нақты екенін және клиентке қызмет көрсетуге дайын екенін растау үшін келесі хабарламаны жібереді:
Хабарлама H: Клиенттің аутентификаторындағы уақыт белгісі (4-ші нұсқада +1, бірақ 5-ші нұсқада қажет емес), Клиент/Сервер сессия кілті арқылы шифрланған. Клиент клиент/сервер сессия кілті арқылы растауды (H хабарын) шифрдан шығарады және уақыт белгісінің дұрыс екенін тексереді. Егер дұрыс болса, клиент серверге сеніп, оған қызмет көрсету туралы сұрауларды жібере алады. Сервер клиентке қажетті қызметтерді ұсынады.
Message E: From the previous step (the Client to server ticket, encrypted using service's Secret key by the TGS). Message G: A new Authenticator, which includes the client ID, timestamp and is encrypted using Client/Server Session Key. The SS decrypts the ticket (message E) using its own secret key to retrieve the Client/Server Session Key. Using the sessions key, SS decrypts the Authenticator and compares client ID from messages E and G, if they match server sends the following message to the client to confirm its true identity and willingness to serve the client:
Message H: The timestamp found in client's Authenticator (plus 1 in version 4, but not necessary in version 5), encrypted using the Client/Server Session Key. The client decrypts the confirmation (message H) using the Client/Server Session Key and checks whether the timestamp is correct. If so, then the client can trust the server and can start issuing service requests to the server. The server provides the requested services to the client.
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 сияқты жаңа шифрлау алгоритмдерін қолдамайтын, Керберостың ескі нұсқаларын қолданатын өнімдерде қауіпсіздікке қатысты осал тұстар бар.