Керберос

**Керберос** нь private-key(хувийн түлхүүр) криптограф дээр суурилагдсан баталгаажуулах систем юм. Private key систем нь ганц түлхүүр ашигладаг бөгөөд хоёр тал энэ түлхүүрээ мэдэж байх шаардлагатай. Аюулгүй байдал нь түлхүүрээ хэр нууцалснаас шалтгаалдаг байна. Энэ нь алгоритм нь энгийн бүтэцтэй хурдан ажилагаатай зэрэг давуу талтай. Хурдан ажиллагаатай учраас илүү урт түлхүүр ашиглах боломж олгодог. Илүү урт түлхүүр ашигласнаар замаас шифрлэгдсэн мэдээлэл алдагдлаа гэхэд түлхүүрийг тааж (brute force) тайлахад илүү хэцүү урт хугацаа зарцуулах зэрэг давуу талтай. Керберосын системд гаравдагч этгээдийн түлхүүрийг үйлчлүүлэгч болон үйлчилгээ олгогчийн хооронд олгогддог. Энэ технологийг өргөн хэмжээгээр ашигладаг ч өөрийн гэсэн хязгаарлалттай байдаг.

SSL-тэй харьцуулагдах давуу тал нь Керберосын загвар нь 1980-аад оны дунд үеэс ашиглагдаж ирсэн нээлттэй эх үүсвэртэй бөгөөд, одоо ч Керберос нь MIT болон бусад эх үүсвэрүүдээс чөлөөтэй байсаар байгаа нь түүний хүчтэй өрсөлдөгч SSL-с нэг давуу тал нь болж байгаа билээ. Мөн Керберос нь үйлдвэрлэгчдийн дэмжлэгтэйгээр арилжааны програм хангамжинд байдаг бөгөөд, өргөн хэмжээгээр хэрглэгддэг маш олон бүтээгдэхүүнүүдэд байдаг байна.

SSL болон Kerberos хоёрын гол ялгааг онцлон харуулсан хүснэгтийг оруулсан болно. Керберосын талаархи илүү их мэдээллийг энэхүү баримтын төгсгөлд байгаа ашигласан материалын жагсаалтаас судалж болох юм.

## Керберос системийн зорилго болон хамрах хүрээ 
Керберос нь “workstations”(олон хэрэглэгчтэйгээр) сүлжээний тооцоолох орчин болон серверүүдээс бүрдсэн, цахим шуудан болон шэйрлэгдсэн файлын системүүдийн хэрэглэгчийг баталгаажуулах зорилготой систем юм.Өнөөгийн сүлжээний аюулгүйн байдалтай холбоотой баталгаажуулалт хийхэд хэрэглэгч нь өөрийн нэрийн өмнөөс үйлчилгээнд хэрэглэгчдийг нэвтрүүлдэг(хэрэглэгчийн өмнөөс хэрэглэгчийг нотолдог) ажиллагааг бас хийж байна.

Сүлжээний урсгал нь аюулгүйн байдлын системд холбогдохдоо маш мэдрэмтгий байдаг төдийгүй бас зарим тохиолдолд мэдрэмж муутай байдаг бөгөөд эдгээр нь физикийн аргаар хамгаалагддаг байж болох юм. Мөн криптографийн түлхүүрүүдийг олон удаа хэрэглэх тутамд шифрлэгдсэн мэдээлэл тайлагдахад илүү амар болдог байна. Энэ шалтгааны улмаас хэрэглэгч болон тодорхой үйлчилгээний хоорондох харилцан үйлчилгээ нь “session key” буюу тухайн нэвтрэх түлхүүрээр баталгаажсан байх ёстой юм. Ийм систем байна гэж төсөөлөөд үзэхэд энэ системийг ашиглахын тулд түүнийг нь илүү тохиромжтой бас хэрэглэгчид аль болох ил тод ойлгомжтой, өөрөөр бол өндөр үнэлгээтэй хэмжээнд нь байлгах хэрэгтэй болж байна.

Энэ шаардлагаас хамаарч системийн гол зорилгуудыг дараахь байдлаар жагсааж болно.

Үүнд:

* Кодлогдоогүй буюу нууцлагдаагүй нууц үгнүүдийг сүлжээнд хэзээ ч хамруулж байхгүй байх.

* intercepted credentials(дахин хандалтууд)-ийг буруу аргаар ашиглахаас хамгаалах шаардлагатай.

* Үзүүлж буй үйлчилгээнүүддээ тогтмол засвар үйлчилгээ, шинэчлэл хийх үед хэрэглэгчээс олон удаа нууц үгийг шаардахгүй байхаар хийж байх.

Янз бүрийн үйлдвэрлэгчдийн бүтээсэн Керберосын шийдлүүд байдаг бөгөөд, тэдгээрийг нь авахад нээлттэй эх үүсвэрийн хэлбэртэй байдаг ажээ. Стандартын MIT-ийн түгээлтүүд нь телнет, POP цахим шуудан болон Berkeley UNIX R-commands хэмээх Бэрклэй Юниксийн “R-тушаалууд”-аас бүрдсэн багц бүхий (rlogin-тай адил) програм хангамжтай байдаг.

## Private key-тэй криптографи ба Керберос 
Керберост ихэнхи тохиолдолд хэрэглэгддэг криптографик алгоритм нь Data Encryption Standard(DES) буюу Мэдээллийн Кодчлолын Стандарт (МКС) юм. МКС нь private-key-тэй криптографийн стандарт алгоритм нь ажээ.
Криптографийн private key (хувийн түлхүүр эсвэл тэгш хэмтэй түлхүүр) хэмээх нэр томъёолол нь зурвасаар солилцож буй хоёр нэгж нь дундаа нэг түлхүүр ашиглан зурвасуудыг кодчилох болон кодыг нь гаргах үйлдэлтэй холбоотой ухагдахуун байна. Энэ нь public key нийтийн түлхүүр бүхий криптографаас эсрэг утгатай байдаг буюу кодчилох болон код тайлах түлхүүрнүүд нь хоорондоо тусдаа бас бие биенээсээ өөр хэлбэрээр олон нийтэд хүртээмжтэй болохыг хэлдэг юм байна. Private-key Public-key криптографи нь аль аль нь ашигтай давуу,болон сул талтай боловч, ашиглагдах гэж байгаа түлхүүрт үндсэн хэлбэр бүхий асуудал үүсгэдэг юм байна. Тийм болохоор эдгээр хоёр аргыг ихэвчлэн нэгтгэдэг байна.

Аль аль private-key болон public-key-тэй криптографид итгэлтэй гуравдагч талуудыг ашиглан баталгаажуулах үйлдлийг нь баталгаажуулах практик шаардлага ерөнхийдөө гардаг юм. Керберосын хувьд баталгаажуулалтын төв сервер нь бүх нэгжүүдийг (нэгж нь хэрэглэгч байж болох бөгөөд, хэрэглэгчийн програм хангамж нь тодорхой хэрэглэгчийн нэрийн өмнөөс ажиллан эсвэл програм хангамжийн серверээр дамжигдан үйлчилгээ үзүүлэн) тодорхойлдог байна. Керберосын функцийн үйл ажиллагаа нь баталгаажуулах серверийн итгэх чадвараас бүхэлдээ хамаарах бөгөөд, тэр нь нууц үгийг мэддэг эсвэл нэгж бүрийн түлхүүрийг мэддэг байх ёстой ажээ. Ийм учраас баталгаажуулах сервер нь бүхэлдээ аюулгүй байх ач холбогдолтой юм.

## Керберосын ticket-granting буюу тасалбар/зөвшөөрөл баталгаажуулах арга 
Цор ганц түлхүүрийг зурвас бүрт ашиглах явцад ажиллагаа зогсох байдал, мөн ганц түлхүүрийг өргөтгөсөн харьцаанд дахин ашиглах явцад асуудал үүсдэг юм байна. Энэхүү зогсонги байдалд нь үзүүлэлт болон ашиглалтад нөлөөлснөөс болж, эсрэг утгаараа хамгаалалтыг ямархуу түвшинд байгааг илэрхийлдэг байна.

(Зураг1) зураг нь Керберосын зурвасын схемийг харуулсан байдал юм. Энэхүү зурганд “клиент” буюу “хэрэглэгч” гэх нэр томъёолол нь шууд утгаараа хэрэглэгч буюу өмнө дурдсанчлан хэрэглэгчийн нэрийн өмнөөс ажиллаж байгаа хэрэглэгчийн талын програм хангамж нь юм. Дээр дурдснаар “програм хангамж” хэмээх нэр томъёолол нь шейр хийгдсэн алсын удирдлага бүхий серверт хамаарч байгаа юм. “Нууц үг” хэмээх нэр томъёолол нь хэрэглэгчийн нууц үг буюу түүнээс нь кодчилогдон гарч ирсэн түлхүүр (буюу хэрэглэгчид ил тод байдлаар кодчилогдсон нууц үгийн түлхүүр) юм. “Session”(нэвтрэх үеийн үйл ажиллагаа гэж буулгав) гэдэг нэр томъёолол нь хэрэглэгч болон програм хангамжийн сервер хоорондын харьцаанд ашиглахаар өгөгдсөн криптографик түлхүүр үг бөгөөд, зарим нь тодорхой цаг хугацааны интервалд л хүчинтэй байдаг ажээ.

Керберосын зурвасуудад хоёр үндсэн элементийг ашигладаг:
тасалбар/зөвшөөрөл ба гэрчлэгч буюу баталгаажуулагч(таниулагч). Баталгаажуулалт хийгдэж буй серверт хэрэглэгчийн зүгээс тасалбар(ticket) шаардлагатай байдаг бөгөөд, түүнийг нь үйлчилгээ авах хүсэлтийн нэг хэсэг хэлбэрээр илгээдэг байна. Баталгаажуулах системийг хэрэглэгч нь өөрөө бий болгож, түүнийг тасалбарын хамт серверийн програм хангамжинд явуулснаар програм хангамж нь тухайн хэрэглэгчийн явуулсан хүсэлтийг түүний хамт өгсөн тасалбартай хамт шалгадаг байна.

Дээд дурдсан шиг, системийн зорилго нь:

* Хэрэглэгчид системд олон удаагын нэвтрэх оролдлого хийх бүртээ нэвтрэх нууц үгсээ дахин дахин оруулах үйлдлийг зогсоох.

* Хэрэглэгчийн системд нэвтрэх нууц үгийг сүлжээнд шифрлэгдээгүй хэлбэрээр(хэрэглэгчийн өнгөөс итгэмжлэлгүй)явуулахгүй байх.

Эдгээр зорилгуудад хүрэхийн тулд Керберосын баталгаажуулах серверийн анхны мэдээлэл солилцох явцад хэрэглэгчид дараа дараагийн тасалбарын хүсэлтэнд нь зориулан "ticket-granting ticket" (TGT) буюу “тасалбар өгөхийг зөвшөөрсөн тасалбар” (ТӨЗТ) өөрөөр бол өөр нэг нэвтрэх түлхүүр илгээдэг байна.

ТӨЗТ бүр нь ихэнхи тохиолдолд 8 цагаар оршин тогтнохоор тогтоогдсон байдаг. ТӨЗТ-ын оршин тогтнох цаг хугацаанд тус ТӨЗТ нь хэрэглэгчид прокси хэлбэрээр идэвхитэй үйлчилгээ үзүүлдэг. Энэ нь хэрэглэгчидийн системд үзүүлэх үйлчлэл(жишээ нь yahoo-рүү хэрэглэгч login хийх) хийх бүрт хэрэглэгчдээс нууц үг шаардахаас сэргийлдэг ажээ.

## Баталгаажуулах сервер болон хэрэглэгчийн хоорондох анхны мэдээлэл солилцох явц(Client to Au, AuS to Client)
-Хэрэглэгчээс баталгаажуулах серверт ирэх эхний зурвас нь ихэвчлэн серверт нэвтрэлт хийх үед автоматаар очдог байна. Эхний зурвас нь хэрэглэгчийн нэвтрэх нэртэй (гэхдээ нууц үггүй) байдаг бөгөөд, ТӨЗТ-т хүсэлт илгээдэг.(Зураг 1).

-Баталгаажуулах сервер нь уг үйлдэлд нь хэрэглэгчийн үг бүхий ТӨЗТ-тай кодчилогдсон зурвасыг хариу болгон явуулдаг.(Зураг 1). ТӨЗТ бүхий зурвас нь хэрэглэгчийн нууц үгээр кодчилогдсон байдаг. Хэрэглэгч хүлээн авмагц ТӨЗТ-ын зурвас нь дараа дараагийн тасалбар авах хүсэлтэнд нь зөвшөөрөл олгох үүднээс зарим тохиолдолд кодчилогддог байна. Дээр дурдсан шиг, энэхүү үйл явцыг нь TG буюу “тасалбар зөвшөөрөх” (ТЗ) үйл явц гэнэ.

## Хэрэглэгчийн дараагийн тасалбар хүсэлт болон тасалбар олгох сервисийн харилцан үйлчлэлцэл(Client to TGS, TGS to Client)
-Хэрэглэгч нь тасалбар зөвшөөрөх түлхүүртэй болмогц дараагийн баталгаажуулалтын шатанд ирнэ. (Зураг2) дээр харуулсан шиг хэлбэрт ордог.

-Хэрэглэгч нь ТӨЗТ-т хүсэлт явуулан үйлчилгээ хийхэд(ямарваа нэг сайтад логин хийх гэж ойлговал хялбар) шаардлагатай болох тасалбарыг Ticket Granting Service (TGS) буюу Тасалбар Олгох Үйлчилгээ (ТОҮ)-аас нэхнэ. 

## Хэрэглэгч болон апликешн сервер хоорондын харилцаа(Client to ApS)Зураг3
-ТОҮ нь хэрэглэгчийн тухай мэдээлэл бүхий ТЗ-с авсан түлхүүрний хамт зурвасыг харьцуулна. Timestamp нь(цаг хугацааны тэмдэглэгээ гэж буулгав) зурвасын дахин ашиглалт хийх оролдлогоос хамгаалалт хийдэг, ихэнхи тохиолдолд, Timestamp хийгдсэнээс хойш 5 буюу түүнээс олон удаа хүсэлт ирсэн бол түүнийг нь хүчингүй гэж үзээд таниулах шийдвэр гаргадаг байна. Ингэснээр зурвасыг дахин ашиглахаас сэргийлэн оффлайн хугацаанд бүрэн зогсоож дараа дахин ашиглахаас сэргийлдэг ажээ.

-Хэрэглэгчийг тодорхой мэдээлэл дээр үндэслэн нотлосны дараагаар ТОҮ нь шинээр нэвтрэх түлхүүр бүхий зурвасаар хариу байрьдаг байна. Тус түлхүүр нь хэрэглэгчийг тодорхойлсон мэдээлэл болон шинээр бий болсон нэвтрэлтийн түлхүүр агуулдаг байна.(жишээ нь: “хэрэглэгч  цахим банкны нэвтрэх эрхээ болоклсон үед баталгаажуулалт хийгдэн тухайн хэрэглэгч мөн гэж үзвэл шинээр, санамсаргүй байдлаар үүсгэсэн тэмдэгт бүхий нууц үгийг хэрэглэгчид илгээдэг” гэж төсөөлвөл илүү хялбар )

Хэрэглэгч нь тасалбарын кодчлолыг тайлах эсвэл өөрчилж чадахгүй бөгөөд, зөвхөн серверийн програм хангамжид тулгуурлан дамжуулж чадна гэдгийг анхаарах хэрэгтэй.

-Дээрхи үйл явц амжилттай дууссаны дараагаар дамжуулагдах процесс хэрэглэгчийг таньсанаар хэрэглэгч хэрэглэхийг хүссэн цахим системээсээ үйлчилгээгээ нууцлалтайгаар авах боломжтой болдог.

## Керберосын програм хангамжууд болон хязгаарлалтууд 
Керберос нь баталгаажуулалтыг дэмжих, түүнд зөвшөөрөл олгох болон сүлжээнд эсвэл жижиг сүлжээний орчинд нууцлал хангах үйл ажиллагаанд ихээхэн тохиромжтой байдаг. Гэсэн хэдий ч, тоон гарын үсэг бүхий зарим бусад функцтэй үйл явцуудад болон ихэвчлэн public-key ашигладаг криптографийн системүүдэд тохиромжгүй байдаг.

Керберосын талаарх судалгааг ажихад шинэчлэх, үйл ажиллагааг өргөтгөх боломжтой гэсэн дүгнэлт гаргаж болохоор байна. Өнөөгийн Керберосын хувилбарын онцлог нь түүнийг олон сүлжээнд баталгаажуулалт хийхээр загварлан бүтээсэн бөгөөд, Керберосын нэр томъёололоор үүнийг нь "cross-realm" буюу “хөндлөн хүрээтэй” баталгаажуулалт гэдэг ажээ. Сүүлийн үед, public-key бүхий криптографийг ашиглах явцад ТӨЗТ болон “хөндлөн хүрээтэй” баталгаажуулалтын аргыг хамтад нь баталгаажуулалтанд ашиглаж болно гэсэн санаачлага, цаашлаад байж болох зүйл судалгааны явцад ажиглагдаж байжээ. Энэ нь өөрөөр хэлбэл Керберосыг илүү том багцтай сүлжээнд ашиглахад тохиромжтой болгох боломжтой гэсэн үг. 

Хэдийгээр орчин үед хамгаалалт, баталгаажуулалтын систем(SSL, Keberos) хөгжиж байгаа ч довтлогч этгээдүүд ч бас дагаад хөгжиж байгааг умартаж болохгүй юм. Хэрэглэгчид таахад амархан нууц үг сонговол халдлага хийж байгаа хүмүүс толь бичиг байгаа үгнүүдийг дэс дарааллаар нь туршиж үзэн нууц үгийг олж авах ажээ. Аль болохоор толь бичгийн хэлбэр бүхий таахад амархан үгнүүдийг ашиглахаас илүү алгоритмгүй зүй тогтолгүй нууц үгийг ашиглахыг зөвлөдөг бөгөөд, дээр дурдагдсан “цаг хугаацааны тэмдэглэгээ” нь ийм хэлбэрийн дайралтаас хамгаалан нууц үгийг таах хугацаанд нь хязгаарлалт өгч байгаа нь хэрэглэгчидэд нэгэн давуу тал олгож байгаа билээ. 

## Керборос SSL 
Керберосын үндсэн өрсөлдөөнүүдийн нэг бол SSL(Secure sockets Layer) буюу энэ нь Netscape-ийн боловсруулан гаргасан баталгаажуулалтын технологи юм. Энэ хоёр технологи маань өөр өөр зориулалттай үйл явцуудад зохицсон ч гэлээ хамгийн гол нь хоёулаа баталгаажуулалт, найдваржилтыг хангадагт гол өрсөлдөөн бий болж байна. 

## Керберос шинэ хувилбарын гол онцлогууд. 
Хамгийн сүүлийн гол шинэчлэлт нь түүний 5-р хувилбарын Керберос систем бөгөөд, тэр нь өмнө нь тодорхойлогдож байсан олон хязгаарлалтуудтай юм.

* 	5-р хувилбарын систем нь цааш дамжуулагддаг, шинэчлэгддэг бас хугацааг нь дахин олгож болдог дэмжлэгтэй болсон. Хэрэглэгчдэд бусад нэвтрэхэд ашиглаж байгаа машин дахь итгэмжлэлүүдийг биш зөвхөн өөрсдийн бий болгон ашиглаж байгааг хэрэглэх боломжтой болгосон юм.
* 	Мөн Керберосын тасалбарууд нь одоо олон IP хаяг агуулах бас олон төрлийн сүлжээний протоколтой болсон юм. Энэ нь олон өөр төрлийн машинууд керберосыг ашиглах боломжийг олгож байгаа юм. 
* 	Өмнө нь олгогдож байсан тасалбаруудын түүхийг хялбар аргаар олж буцаах боломжтой болсон төдийгүй, тасалбарыг дахин ашиглах боломжийг үгүй болгосон байна. Энэ нь дайралт хийх хүмүүсийн боломжуудыг устган тасалбаруудын цаг хугацааг дуусахаас өмнө халдахаас сэргийлдэг болсон байна. 
* 	Олон хүрээтэй баталгаажуулалтанд дэмжлэг үзүүлдэг болсноор баталгаажуулалт бүрийн шаардлагад нийцүүлэн нууц хадгалах болон шейрлэх явцыг сайжруулснаар нууцлалын үнэлэмж нь илүү их болж байна.

## Ашигласан материалууд: 
*Криптографийн тухай
*Massachusetts Institute of Technology
*Commercial implementations of Kerberos
Ангилал:Криптограф
Ангилал:Криптографийн протокол
Ангилал:Сүлжээний аюулгүй байдал
Ангилал:Сүлжээний протокол