Opensslni kriptografiyada foydalanish




Download 1.42 Mb.
bet2/12
Sana02.06.2023
Hajmi1.42 Mb.
#69184
1   2   3   4   5   6   7   8   9   ...   12
Bog'liq
Umirzoqov Eldor-Individual-222 (2)
Yer shari, yopiq test, YHTE kurs loyhasi (1), Копия документа

1.1. Opensslni kriptografiyada foydalanish


OpenSSL - bu Secure Sockets Layer (SSL) va Transport Layer Security (TLS) tarmoq protokollarini va ular tomonidan talab qilinadigan tegishli kriptografiya standartlarini amalga oshiradigan kriptografiya asboblar to'plami. Openssl dasturi - bu qobiqdan OpenSSL kripto kutubxonasining turli kriptografiya funktsiyalaridan foydalanish uchun buyruq qatori dasturi. uchun ishlatilishi mumkin.
Bugungi tarmoq dunyosida ko'plab ilovalar xavfsizlikka muhtoj va kriptografiya bu xavfsizlikni ta'minlashning asosiy vositalaridan biridir. Kriptografiyaning asosiy maqsadlari, ma'lumotlarning maxfiyligi, ma'lumotlar yaxlitligi, autentifikatsiya va rad etmaslik (hisobdorlik) tarmoqqa asoslangan hujumlarning ko'p turlarini, jumladan tinglash, IP-ni buzish, ulanishni o'g'irlash va buzishni oldini olish uchun ishlatilishi mumkin. OpenSSL - kriptografik kutubxona; u 3DES (“Triple DES”), AES va RSA kabi shifrlash algoritmlarini, shuningdek, xabarlar hazm qilish algoritmlari va xabar autentifikatsiya kodlarini o‘z ichiga olgan sohaning eng mashhur algoritmlarini amalga oshirishni ta’minlaydi.
Kriptografik algoritmlardan xavfsiz va ishonchli foydalanish ko'pchilik ishonganidan ko'ra qiyinroq. Algoritmlar kriptografik protokollardagi qurilish bloklari bo'lib, kriptografik protokollarni to'g'ri qabul qilish juda qiyin. Kriptograflar barcha ma'lum hujumlarga qarshilik ko'rsatadigan protokollarni ishlab chiqishda qiyinchiliklarga duch kelishadi va o'rtacha ishlab chiquvchi bundan ham yomonroq ish qiladi. Misol uchun, ishlab chiquvchilar ko'pincha ma'lumotlarni jo'natishdan oldin shifrlash orqali tarmoq ulanishlarini himoya qilishga harakat qiladilar, keyin ularni qabul qilishda shifrini hal qiladilar. Ushbu strategiya ko'pincha ma'lumotlarning yaxlitligini ta'minlay olmaydi. Ko'pgina hollarda, tajovuzkorlar ma'lumotlarni buzishi va ba'zida uni qayta tiklashi mumkin. Protokollar yaxshi ishlab chiqilgan bo'lsa ham, amalga oshirishda xatolar tez-tez uchraydi.
Ko'pgina kriptografik protokollar cheklangan qo'llanilishi mumkin, masalan, xavfsiz onlayn ovoz berish. Biroq, xavfsiz bo'lmagan vosita orqali xavfsiz aloqa qilish protokollari hamma joyda qo'llanilishi mumkin. Bu SSL protokoli va uning vorisi TLS ning asosiy maqsadi (biz umumiy tarzda SSL ga murojaat qilganimizda biz ham SSL, ham TLS ni nazarda tutamiz): bunday tarmoqdagi ixtiyoriy (TCP-ga asoslangan) tarmoq ulanishlariga eng keng tarqalgan xavfsizlik xizmatlarini taqdim etish. kriptografik tajribaga bo'lgan ehtiyoj minimallashtiriladi.
Oxir oqibat, agar ishlab chiquvchilar va ma'murlar o'zlarining ilovalarini himoya qilish uchun kriptografiya yoki hatto xavfsizlik haqida hech narsa bilishlari shart bo'lmasa yaxshi bo'lardi. Agar dastur yaratishda xavfsizlik boshqa rozetka kutubxonasiga ulanish kabi oddiy bo'lsa yaxshi bo'lardi. OpenSSL kutubxonasi imkon qadar bu idealga intiladi, lekin aslida, hatto SSL protokoli ham xavfsiz qo'llanilishi uchun xavfsizlik tamoyillarini yaxshi tushunishni talab qiladi. Darhaqiqat, SSL-dan foydalanadigan ko'pgina ilovalar hujumga moyil. Shunga qaramay, SSL, albatta, tarmoq ulanishlarini ta'minlashni ancha soddalashtiradi. SSL-dan foydalanish kriptografik algoritmlar qanday ishlashini tushunishni talab qilmaydi. Buning o'rniga, faqat muhim algoritmlarning asosiy xususiyatlarini tushunishingiz kerak. Xuddi shunday, ishlab chiquvchilar kriptografik protokollar haqida tashvishlanishlari shart emas; SSL foydalanish uchun uning ichki ishlashini tushunishni talab qilmaydi. Siz faqat algoritmni qanday qilib to'g'ri qo'llashni tushunishingiz kerak. Ushbu kitobning maqsadi OpenSSL kutubxonasini hujjatlashtirish va uni qanday qilib to'g'ri ishlatishdir. Bu xavfsizlik bo'yicha mutaxassislar uchun emas, amaliyotchilar uchun kitob. Biz kriptografiyadan samarali foydalanish uchun nimalarni bilishingiz kerakligini tushuntiramiz, ammo kriptografiya nima uchun ishlashiga qiziquvchilar uchun bu mavzu bo'yicha keng qamrovli kirishni yozishga harakat qilmaymiz. Buning uchun Bryus Shnayer (John Wiley & Sons) tomonidan yozilgan Amaliy kriptografiyani tavsiya qilamiz. Kriptografiyaga ko'proq texnik kirishni xohlaydiganlar uchun biz Menezes, van Oorshot va Vanstonening amaliy kriptografiya qo'llanmasini (CRC Press) tavsiya qilamiz. Xuddi shunday, biz SSL protokolining o'zini hujjatlashtirishga harakat qilmaymiz, faqat uning qo'llanilishi. Agar siz protokol tafsilotlari bilan qiziqsangiz, biz Erik Rescorlaning SSL va TLS (Addison-Wesley) ni tavsiya qilamiz. SSL protokoli ko'plab kriptografik ehtiyojlarni qoplaydi. Ba'zida bu etarli darajada yaxshi emas. Masalan, siz oxirgi foydalanuvchi brauzeriga joylashtiriladigan HTTP cookie-fayllarini shifrlashni xohlashingiz mumkin. SSL ushbu diskda saqlangan cookie fayllarini himoya qilishga yordam bermaydi. Bunday vaziyatlarda OpenSSL SSL protokolini amalga oshirishda foydalaniladigan asosiy kriptografik algoritmlarni eksport qiladi. Umuman olganda, iloji bo'lsa, to'g'ridan-to'g'ri kriptografik algoritmlardan foydalanishdan qochishingiz kerak. Algoritmni tanlash va uni qo'llash orqali siz mutlaqo xavfsiz tizimga ega bo'lolmaysiz. Odatda kriptografik algoritmlar kriptografik protokollarga kiritiladi. Kriptografik algoritmlarga asoslangan protokol bilan ko'p noaniq narsalar noto'g'ri bo'lishi mumkin. Shuning uchun o'zingiz biror narsani ixtiro qilish o'rniga, o'zingiz xohlagan narsani qilish uchun taniqli kriptografik protokolni topishga harakat qilganingiz ma'qul. Aslida, hatto kriptograflar tomonidan ixtiro qilingan protokollar ham ko'pincha nozik teshiklarga ega. Agar jamoatchilik tomonidan ko'rib chiqilmasa, foydalanilayotgan protokollarning aksariyati xavfli bo'lar edi. IEEE 802.11 simsiz tarmoq uchun original WEP protokolini ko'rib chiqing. WEP (Wired Equivalent Privacy) - bu jismoniy liniyalar taqdim etadigan ma'lumotlar uchun bir xil darajadagi xavfsizlikni ta'minlashi kerak bo'lgan protokol. Bu juda qiyin, chunki ma'lumotlar sim orqali emas, balki havo orqali uzatiladi. WEP tajribali dasturchilar tomonidan ishlab chiqilgan, ammo hech qanday professional kriptograflar yoki xavfsizlik protokoli ishlab chiquvchilari fikrini talab qilmasdan. O'rtacha xavfsizlik ma'lumotlariga ega tajribali ishlab chiquvchi uchun protokol yaxshi ko'rinsa-da, aslida u xavfsizlikda umuman yo'q edi. Shunga qaramay, ba'zida siz kerakli narsani bajaradigan protokolni topishingiz mumkin, ammo ehtiyojlaringizga mos keladigan dasturni topa olmaysiz. Shu bilan bir qatorda, siz o'zingizning protokolingizni ishlab chiqishingiz kerakligini bilib olishingiz mumkin. Bunday holatlar uchun biz SSL kriptografik API-ni hujjatlashtiramiz. Ushbu kitobda kriptografik algoritmlarning besh turi muhokama qilinadi: simmetrik kalit shifrlash, ochiq kalitlarni shifrlash, kriptografik xesh funksiyalari, xabarlarni autentifikatsiya qilish kodlari va raqamli imzolar.

1.1-rasm.Xesh qiymat uchun bufer initsializatsiya qilish.
Kalitlarni taqsimlash muammosining yechimlaridan biri kriptografik kalit almashish protokolidan foydalanishdir. OpenSSL bu maqsad uchun Diffie-Hellman protokolini taqdim etadi, bu esa tarmoqdagi kalitni oshkor qilmasdan kalit kelishuviga imkon beradi. Biroq, Diffie-Hellman siz kalit almashayotgan tomonning shaxsini kafolatlamaydi. Siz tasodifan tajovuzkor bilan kalit almashmasligingizni ta'minlash uchun autentifikatsiya mexanizmining bir turi zarur. Agar siz elliptik egri kriptografiyadan (ECC) foydalansangiz, kalit uzunligiga qo'yiladigan talablar o'zgaradi, bu ochiq kalit kriptografiyasining modifikatsiyasi bo'lib, tezroq operatsiyalar va kichikroq kalitlar yordamida bir xil xavfsizlikni ta'minlaydi. OpenSSL hozirda ECCni qo'llab-quvvatlamaydi va undan foydalanmoqchi bo'lganlar uchun ba'zi davomli patent muammolari bo'lishi mumkin. Ushbu mavzuga qiziqqan ishlab chiquvchilar uchun Maykl Rosing (Manning) tomonidan "Eliptik egri kriptografiyani amalga oshirish" kitobini tavsiya qilamiz. Odamlar kriptografik xeshlar bilan qilishni yoqtiradigan yana bir narsa bu ularni dasturiy ta'minot versiyasi bilan birga chiqarishdir. Masalan, OpenSSL arxivning MD5 nazorat summasi bilan birga chiqarilishi mumkin. Arxivni yuklab olganingizda, nazorat summasini ham yuklab olishingiz mumkin. Keyin arxiv orqali nazorat summasini hisoblashingiz va hisoblangan nazorat summasi yuklab olingan nazorat summasiga mos kelishini ko'rishingiz mumkin. Agar ikkita nazorat summasi mos kelsa, siz haqiqiy chiqarilgan faylni xavfsiz yuklab oldingiz va unda troyan oti bilan o'zgartirilgan versiyani olmadingiz deb umid qilishingiz mumkin. Afsuski, bunday emas, chunki bu erda hech qanday sir yo'q. Buzg'unchi arxivni o'zgartirilgan versiya bilan almashtirishi va nazorat summasini haqiqiy qiymat bilan almashtirishi mumkin. Bu mumkin, chunki xabarlar hazm qilish algoritmi ommaviydir va unga hech qanday maxfiy ma'lumot kiritilmaydi.
Endi siz kriptografiya asoslarini yaxshi tushunganingizdan va SSL protokolini yuqori darajada (siğil va barchasi) ko'rganingizdan so'ng, OpenSSL kutubxonasini ko'rib chiqish vaqti keldi. OpenSSL SSLeay-dan olingan ishdir. SSLeay dastlab Erik A. Young va Tim J. Hudson tomonidan 1995-yilda yozilgan. 1998-yil dekabr oyida SSLeay-ning rivojlanishi toʻxtatildi va OpenSSL-ning birinchi versiyasi SSLeay 0.9.1b (aslida hech qachon boʻlmagan) yordamida 0.9.1c sifatida chiqarildi. chiqarilgan) uning boshlang'ich nuqtasi sifatida. OpenSSL asosan ikkita vositadan iborat: kriptografiya kutubxonasi va SSL asboblar to'plami. SSL kutubxonasi SSL protokolining barcha versiyalarini, shu jumladan TLSv1ni amalga oshirishni ta'minlaydi. Kriptografiya kutubxonasi simmetrik kalit va ochiq kalit kriptografiyasi, xesh algoritmlari va xabarlar dayjestlari uchun eng mashhur algoritmlarni taqdim etadi. Shuningdek, u soxta tasodifiy raqamlar generatorini va umumiy sertifikat formatlarini manipulyatsiya qilish va asosiy materiallarni boshqarishni qo'llab-quvvatlaydi. Bufer manipulyatsiyasi va o'zboshimchalik bilan aniq sonlarni manipulyatsiya qilish uchun umumiy maqsadli yordamchi kutubxonalar ham mavjud. Bundan tashqari,

1.2-rasm.MD 5 algoritmida bitta registr qiymatini hisoblash.
OpenSSL eng keng tarqalgan kriptografik tezlashtirish uskunasini qo'llab-quvvatlaydi (bu yozuvdan boshlab 0.9.7 versiyasidan oldin, apparat ta'minoti faqat alohida "dvigatel" versiyasini yuklab olish orqali mavjud). OpenSSL hozirda C va C++ dasturlash tillari bilan foydalanish mumkin bo'lgan yagona bepul, to'liq xususiyatli SSL dasturidir. U barcha asosiy platformalarda, jumladan, barcha Unix OS va Microsoft Windowsning barcha umumiy versiyalarida ishlaydi. OpenSSL-ni http://www.openssl.org/ saytidan manba shaklida yuklab olish mumkin. Unix, Windows, Mac OS (Mac OS X dan oldingi versiyalar) va OpenVMS kabi turli platformalar uchun batafsil o'rnatish ko'rsatmalari manba tarqatilishiga kiritilgan. Agar siz Mac OS X da oʻrnatayotgan boʻlsangiz, Unix koʻrsatmalariga amal qilishingiz kerak.[9] Mac OS va OpenVMS uchun ko'rsatmalar ularning tegishli platformalari uchun juda aniq, shuning uchun biz ularni bu erda muhokama qilmaymiz. Buning o'rniga, manba taqsimotiga kiritilgan ko'rsatmalarni diqqat bilan o'qib chiqishingizni va ularga rioya qilishingizni tavsiya qilamiz.

Download 1.42 Mb.
1   2   3   4   5   6   7   8   9   ...   12




Download 1.42 Mb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Opensslni kriptografiyada foydalanish

Download 1.42 Mb.