O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI QARSHI FILIALI KIBERXAVFSIZLIK FAKULTETI AX-070-21 GURUH TALABASINING Kriptografiya(2) FANIDAN 1-MUSTAQIL ISHI Bajardi: Suyunov A. Qabul qildi: Davronova L Toshkent-2024 SSH protokoli va unda kriptografik algoritmlardan foydalanish holati SSH, Secure Shell yoki Secure Socket Shell degan ma'noni anglatadi. Bu kriptografik tarmoq protokoli boʻlib, u ikki kompyuterga internet kabi xavfsiz boʻlmagan tarmoq orqali maʼlumotlarni almashish va almashish imkonini beradi. Bu buyruqlarni bajarish va ma'lumotlarni bir mashinadan boshqa mashinaga uzatish uchun masofaviy serverga kirish uchun ishlatiladi. SSH protokoli SSH communication security Ltd tomonidan masofaviy qurilma bilan xavfsiz aloqa qilish uchun ishlab chiqilgan.Xavfsiz aloqa kuchli parol autentifikatsiyasini va xavfsiz bo'lmagan kanal orqali ochiq kalit bilan shifrlangan aloqani ta'minlaydi. U Telnet, rlogin, rsh va boshqalar kabi himoyalanmagan masofaviy kirish protokollarini va xavfsiz bo'lmagan FTP fayl uzatish protokollarini almashtirish uchun ishlatiladi . Uning xavfsizlik xususiyatlari tarmoq ma'murlari tomonidan tizimlar va ilovalarni masofadan boshqarish uchun keng qo'llaniladi. SSH protokoli tarmoqni DNS-spoofing , IP manbasini yo'naltirish va IPspoofing kabi turli xil hujumlardan himoya qiladi . Oddiy misolni tushunish mumkin, masalan, siz paketni do'stlaringizdan biriga o'tkazmoqchisiz. SSH protokolisiz uni har kim ochishi va o'qishi mumkin. Ammo agar siz uni SSH protokoli yordamida yuborsangiz, u shifrlanadi va ochiq kalitlar bilan himoyalanadi va faqat qabul qiluvchi uni ochishi mumkin. SSHdan oldin: SSHdan keyin: SSH protokolidan foydalanish SSH protokolining mashhur qo'llanilishi quyida keltirilgan: - Bu foydalanuvchilarga xavfsiz kirish va avtomatlashtirilgan jarayonlarni ta'minlaydi. - Bu xavfsiz bo'lmagan tarmoq orqali fayllarni bir tizimdan ikkinchisiga o'tkazishning oson va xavfsiz usuli. - Shuningdek, u foydalanuvchilarga masofaviy buyruqlar beradi. - Bu foydalanuvchilarga tarmoq infratuzilmasi va boshqa muhim tizim komponentlarini boshqarishda yordam beradi. - Telnet va rlogin o'rnini bosuvchi va rsh o'rnini bosuvchi xostda bitta buyruqni bajarish uchun foydalaniladigan masofaviy tizimda (Host) qobiqqa kirish uchun ishlatiladi. - U to'liq xavfsizlik va samaradorlik bilan fayllarni zaxiralash, nusxalash va aks ettirish uchun rsync yordam dasturi bilan birlashadi . - U portni yo'naltirish uchun ishlatilishi mumkin. SSH yordamida biz OpenSSH kabi masofaviy serverga avtomatik kirishni sozlashimiz mumkin. - SOCKS protokolini qo'llab-quvvatlovchi SSH mijozi bilan shifrlangan proksiulanish orqali internetni xavfsiz ko'rib chiqishimiz mumkin. SSH qanday ishlaydi? SSH protokoli mijoz-server modelida ishlaydi, ya'ni u xavfsiz qobiq mijoz ilovasini (sessiya ko'rsatiladigan joy) SSH serveri bilan bog'laydi (sessiya bajariladigan joyda). Yuqorida muhokama qilinganidek, u dastlab Telnet, rlogin kabi xavfsiz kirish protokollarini almashtirish uchun ishlab chiqilgan va shuning uchun u bir xil funktsiyani bajaradi. SSH protokoli tarixi SSH ning 3 ta versiyasi mavjud, ular quyida keltirilgan: - Versiya 1.x: SSHning birinchi versiyasi 1995 yilda ishga tushirilgan va Finlyandiyaning Xelsinki texnologiya universiteti tadqiqotchisi Tatu Ylonen tomonidan ishlab chiqilgan. U SSH-1 nomi bilan tanilgan. Ushbu versiyada bir nechta muammolar bor edi va shuning uchun u eskirgan. - Versiya 2.x: Ikkinchi versiya SSH-2 sifatida tanilgan, SSH protokolining joriy versiyasi. 2006-yilda u Internet Engineering Task Force (IETF) tomonidan Standartlar Track spetsifikatsiyasi sifatida tanlandi. Ushbu versiya SSH-1 protokoli bilan mos kelmaydi. U SSH-1 bilan solishtirganda yaxshiroq xavfsizlik xususiyatlariga ega. 1.99-versiya: 1.99-versiya 2.1 proto-versiyasi sifatida belgilangan. Bu haqiqiy versiya emas, balki orqaga qarab muvofiqlikni aniqlashning bir usuli. SSH protokoli arxitekturasi SSH arxitekturasi bir-biridan yaxshi ajratilgan uchta qatlamdan iborat. Bu qatlamlar: 1. Transport qatlami 2. Foydalanuvchi autentifikatsiya qatlami 3. Ulanish qatlami SSH protokoli arxitekturasi ochiq arxitektura; shuning uchun u katta moslashuvchanlikni ta'minlaydi va SSH-dan faqat xavfsiz qobiq o'rniga boshqa ko'plab maqsadlarda foydalanish imkonini beradi. Arxitekturada transport qatlami transport qatlami xavfsizligiga (TLS) o'xshaydi. Foydalanuvchi autentifikatsiya qatlamidan maxsus autentifikatsiya usullari bilan foydalanish mumkin va ulanish qatlami turli ikkilamchi seanslarni bitta SSH ulanishiga multiplekslash imkonini beradi. Transport qatlami Transport qatlami TCP/IP protokollar to'plamining yuqori qatlamidir. SSH-2 uchun ushbu qatlam dastlabki kalit almashinuvi, server autentifikatsiyasi, shifrlashni sozlash, siqish va yaxlitlikni tekshirish uchun javobgardir. U hajmi 32,768 baytgacha bo'lgan ochiq matnli paketlarni yuborish va qabul qilish interfeysi sifatida ishlaydi. Foydalanuvchi autentifikatsiya qatlami Nomidan ko'rinib turibdiki, foydalanuvchi autentifikatsiya qatlami mijozning autentifikatsiyasini boshqarish uchun javobgardir va turli autentifikatsiya usullarini taqdim etadi. Autentifikatsiya mijoz tomonidan amalga oshiriladi; shuning uchun parol so'ralsa, odatda server emas, SSH mijozi uchun so'raladi va server bu autentifikatsiyalarga javob beradi. Bu qatlam autentifikatsiyaning turli usullarini o'z ichiga oladi; bu usullar quyidagilardir: Parol: Parolni autentifikatsiya qilish autentifikatsiya qilishning oddiy usulidir. U oson kirish uchun parolni o'zgartirish funksiyasini o'z ichiga oladi. Ammo u barcha ilovalar tomonidan qo'llanilmaydi. - Ochiq kalit: Ochiq kalit ochiq kalitga asoslangan autentifikatsiya usuli bo'lib, DSA, ECDSA yoki RSA kalit juftlarini qo'llab-quvvatlaydi. - Klaviatura-interaktiv: Bu ko'p qirrali autentifikatsiya usullaridan biridir. Bunda server ma'lumotni kiritish taklifini yuboradi va mijoz uni foydalanuvchi tomonidan kiritilgan javoblar bilan qaytarib yuboradi. U bir martalik parol yoki OTP autentifikatsiyasini ta'minlash uchun ishlatiladi. - GSSAPI: Ushbu usulda autentifikatsiya Kerberos 5 yoki NTLM kabi tashqi usullar bilan amalga oshiriladi, ular SSH seanslariga bir marta kirish imkoniyatini beradi. Ulanish qatlami Ulanish darajasi SSH xizmatlari taqdim etiladigan turli kanallarni belgilaydi. U kanallar, kanal so'rovlari va global so'rovlar tushunchasini belgilaydi. Bitta SSH ulanishi bir vaqtning o'zida turli kanallarni joylashtirishi va ma'lumotlarni bir vaqtning o'zida ikkala yo'nalishda ham uzatishi mumkin. Kanal so'rovlari ulanish qatlamida tarmoqdan tashqari kanalga xos ma'lumotlarni uzatish uchun ishlatiladi, masalan, terminal oynasining o'zgartirilgan o'lchami yoki server tomonidagi jarayonning chiqish kodi. Ulanish qatlamining standart kanal turlari: - qobiq: U terminal qobiqlari, SFTP va exec so'rovlari uchun ishlatiladi. - Direct-tcpip: U mijozdan serverga yo'naltirilgan ulanishlar uchun ishlatiladi. - forwarded-tcpip: U serverdan mijozga yo'naltirilgan ulanishlar uchun ishlatiladi. SSH protokoli bilan nimani o'tkazish mumkin? SSH protokoli quyidagilarni uzatishi mumkin: - Ma'lumotlar - Matn Buyruqlar - Fayllar Fayllar har qanday tahdidning oldini olish uchun xavfsizlikni ta'minlaydigan FTP ning shifrlangan versiyasi bo'lgan SFTP (Secure file transfer protocol) yordamida uzatiladi. SSH va Telnet o'rtasidagi farq - Telnet masofaviy xostda terminal seansini yaratish va saqlash uchun ishlatiladigan birinchi internet-ilova protokoli edi. - SSH ham, Telnet ham bir xil funksiyaga ega. Shunga qaramay, asosiy farq shundaki, SSH protokoli ochiq kalitli kriptografiya bilan himoyalangan bo'lib, u terminal seansini o'rnatishda so'nggi nuqtani autentifikatsiya qiladi. Boshqa tomondan, Telnet-da foydalanuvchining autentifikatsiyasi uchun hech qanday autentifikatsiya taqdim etilmaydi, bu esa uni kamroq xavfsiz qiladi. - SSH shifrlangan ma'lumotlarni yuboradi, Telnet esa ma'lumotlarni oddiy matnda yuboradi. - Yuqori xavfsizlik tufayli SSH umumiy tarmoqlar uchun afzal qilingan protokol bo'lib, kamroq xavfsizlik tufayli Telnet xususiy tarmoqlar uchun mos keladi. - SSH sukut bo'yicha 22-portda ishlaydi, lekin uni o'zgartirish mumkin, Telnet esa mahalliy tarmoq uchun maxsus mo'ljallangan 23-portdan foydalanadi. SSH shifrlash usullari Xavfsiz uzatishni amalga oshirish uchun SSH uzatish paytida turli nuqtalarda uchta turli shifrlash texnikasidan foydalanadi. Bu texnikalar: - Simmetrik shifrlash - Asimmetrik shifrlash - Xeshlash - Simmetrik shifrlash Belgilangan manzildan yuborilgan va qabul qilingan xabarlarni shifrlash va shifrini ochish uchun simmetrik shifrlash usullarida faqat bitta kalitdan foydalanish mumkin. Ushbu usul umumiy kalit shifrlash sifatida ham tanilgan, chunki ikkala qurilma ham yuborgan ma'lumotlarni shifrlash va qabul qilingan ma'lumotlarni shifrlash uchun bir xil kalitdan foydalanadi. Ushbu uslub o'rtadagi odam hujumlarini oldini olish uchun butun SSH ulanishini shifrlaydi. Ushbu texnikada kalitlarni dastlabki almashish vaqtida bitta muammo yuzaga keladi. Ushbu muammoga ko'ra, agar kalit almashinuvi paytida uchinchi tomon mavjud bo'lsa, ular kalitni bilishi va butun xabarni o'qishi mumkin. Ushbu muammoning oldini olish uchun kalit almashinuvi algoritmi qo'llaniladi. Ushbu algoritm yordamida maxfiy kalitlarni to'xtatmasdan xavfsiz almashish mumkin. Kalit almashinuvi algoritmini amalga oshirish uchun assimetrik shifrlash talab qilinadi. Asimmetrik shifrlash Asimmetrik shifrlashda shifrlash va shifrni ochish uchun ikki xil kalitlardan foydalaniladi, shaxsiy va ochiq kalitlar. Maxfiy kalit faqat foydalanuvchi uchun shaxsiy bo'lib, uni boshqa foydalanuvchi bilan bo'lishib bo'lmaydi, ochiq kalit esa hammaga ochiq. Ochiq kalit SSH serverida saqlanadi, shaxsiy kalit esa mahalliy sifatida SSH mijozida saqlanadi; bu ikki kalit kalit juftligini tashkil qiladi. Ochiq kalit bilan shifrlangan xabar faqat tegishli shaxsiy kalit bilan shifrini ochishi mumkin. Bu ochiq kalitni uchinchi tomon olgandek xavfsiz usul va ular shaxsiy kalitni bilmagani uchun xabarni parolini hal qila olmaydi. Asimmetrik shifrlash to'liq SSH seansini shifrlamaydi. Buning o'rniga, u asosan simmetrik shifrlashning kalit almashinuvi algoritmi uchun ishlatiladi. Bunda, ulanishni o'rnatishdan oldin ikkala tizim (mijoz va server) vaqtincha umumiyxususiy kalit juftlarini yaratadi va keyin umumiy maxfiy kalitni yaratish uchun shaxsiy kalitlarini almashadi. Xavfsiz simmetrik ulanishni o'rnatgandan so'ng, server uni autentifikatsiya qilish uchun mijozga uzatish uchun ochiq kalitdan foydalanadi. Mijoz faqat shaxsiy kalitga ega bo'lsa, ma'lumotlarning shifrini ochishi mumkin va shuning uchun SSH seansi o'rnatiladi. Xeshlash SSHda bir tomonlama xeshlash shifrlash usuli sifatida ishlatiladi, bu kriptografiyaning yana bir shaklidir. Xeshlash texnikasi yuqoridagi ikki usuldan farq qiladi, chunki u shifrni ochishni nazarda tutmaydi. U imzo yoki ma'lumotlarning qisqacha mazmunini yaratadi. SSH xabarlar to'liq va o'zgartirilmagan shaklda yetib borishini ta'minlash uchun HMAC (Xeshga asoslangan xabar autentifikatsiyasi) dan foydalanadi. Ushbu texnikada har bir uzatiladigan xabar uchta komponentdan foydalanadigan MACga ega bo'lishi kerak: simmetrik kalit, paketlar tartib raqami va xabar mazmuni. Ushbu uchta komponent hech qanday ma'noga ega bo'lmagan satr hosil qiluvchi xesh funktsiyasini tashkil qiladi va bu satr xostga yuboriladi. Xost ham bir xil ma'lumotlarga ega, shuning uchun ular xesh funktsiyasini ham yaratadilar va agar hosil qilingan xesh qabul qilingan xesh bilan mos kelsa, bu xabar temperli emasligini anglatadi.