Asosiy mazmunga o'tish

19-dars: Xavfsizlik va shifrlash

5-blokTarmoq, xavfsizlik, chegaralar17–20 darslar

Parolingizni saytga yuborasiz — u yo’lda o’nlab routerlardan o’tadi (17-dars). Saytning bazasi buzilsa-chi? Millionlab parol oshkor bo’ladimi?

Yaxshi saytlarda — yo’q. Chunki ular parolingizni umuman saqlamaydi. Qanday qilib parolni saqlamasdan tekshirish mumkin? Bu darsning birinchi siri. Ikkinchisi: nega 8 belgilik parol bir kunda buziladi-yu, 14 belgiligi — asrlarda ham yo’q.

Bu darsdan keyin siz

  • hash-funksiya nima va uning uch xossasini bilasiz
  • saytlar parolni saqlamasdan qanday tekshirishini tushuntira olasiz
  • parol kuchi qayerdan kelishini hisob bilan ko’rsata olasiz
  • shifrlash va hash farqini ayta olasiz

Hash-funksiya istalgan matndan qat’iy uzunlikdagi “barmoq izi” yasaydi. SHA-256 misolida: bitta harf ham, butun kitob ham — natija doim 64 ta hex belgi.

hash-funksiyahash function

Istalgan ma’lumotdan qat’iy uzunlikdagi qisqa iz yasovchi funksiya. Yaxshi hash: bir tomonlama (izdan asl matnni tiklab bo’lmaydi), sezgir (bitta bit — butunlay boshqa iz) va to’qnashuvga chidamli.

Uch xossa muhim. Bir tomonlama: hash’dan matnga qaytish yo’li yo’q — bu qiymadan mol tiklashday gap. Ko’chki effekti: bitta belgi o’zgarsa, iz butunlay o’zgaradi. Determinizm: bir xil matn — har doim bir xil iz.

Endi sir ochiladi: sayt bazasida parolingiz emas, uning hash’i yotadi. Kirishda yozgan parolingiz hash’lanadi va bazadagi iz bilan solishtiriladi. Mos keldi — demak parol to’g’ri. Baza o’g’irlansa ham, o’g’ri qo’lida faqat izlar — ulardan parolga qaytib bo’lmaydi.

O’g’ri hash’dan qaytolmaydi, lekin taxmin qilib ko’rishi mumkin: millionlab parolni hash’lab, izlarni solishtiradi. Zamonaviy uskuna sekundiga ~10 milliard urinish qiladi.

Himoya — kombinatsiyalar soni: alifbo^uzunlik. E’tibor bering: alifbo asosda, uzunlik esa darajada turadi. Shuning uchun parolga bitta belgi qo’shish uni alifboni kengaytirishdan ko’ra keskinroq kuchaytiradi — 2-darsdagi 2ⁿ portlashi endi sizni himoya qiladi.

Hash bir tomonlama; shifrlash esa ikki tomonlama: kalit bilan qulflanadi, kalit bilan ochiladi. HTTPS’dagi S aynan shu — brauzer va server ma’lumotni yo’lda shifrlab yuboradi, routerlar faqat “qiyqim” ko’radi.

ochiq kalitli shifrlashpublic-key cryptography

Ikki kalitli tizim: ochiq kalit hammaga beriladi va faqat qulflaydi, yopiq kalit egasida qoladi va faqat ochadi. Oldindan sir kelishmasdan xavfsiz aloqa shundan.

Eng chiroyli g’oya — ochiq kalit: qulflaydigan kalitni hammaga tarqatasiz, ochadigani faqat o’zingizda. Endi istalgan notanish sizga sir yubora oladi — oldindan uchrashmasdan. HTTPS suhbati ham shu bilan boshlanadi.

Avval hash’ni his qiling: matn yozing, keyin bitta harfini o’zgartirib, 64 belgidan nechtasi o’zgarganini sanang.

Hash maydoni: SHA-256

Matn yozing — hash hisoblanadi. Keyin BITTA harf o'zgartirib, farqni sanang.

Bu simulyator yozilgan matnning SHA-256 hash'ini real vaqtda hisoblaydi. Bitta harf o'zgarsa, 64 belgilik hash'ning deyarli yarmi o'zgaradi — bu "ko'chki effekti" deyiladi.

JavaScript'siz mashq: "salom" va "Salom" so'zlari uchun hash nega butunlay boshqa bo'lishi kerakligini darsdagi ta'rifga asoslanib tushuntiring.

SHA-256 (64 ta hex belgi)

Matnni o'zgartirib ko'ring — masalan bitta harfini katta qiling.

Endi parol kuchi. Haqiqiy parolingizni yozmang — o’ylab topilgan sinovlar bilan o’ynang: raqamlargagina qurilgan parol, harf qo’shilgani, uzunroq varianti…

Parol buzish vaqti

Sinov parol yozing — buzishga qancha vaqt ketishini hisoblaymiz.

Bu simulyator parol kombinatsiyalari sonini hisoblaydi: alifbo hajmi uzunlik darajasida. Sekundiga 10 milliard urinishda "12345678" bir zumda, 12 belgilik aralash parol esa asrlarda buziladi.

JavaScript'siz mashq: faqat kichik harfli 6 belgilik parol nechta kombinatsiya berishini hisoblang (26⁶) va 10 milliardga bo'ling.

Haqiqiy parolingizni YOZMANG — o'ylab topilgan sinov parol ishlating. (Hisob brauzerda, hech nima yuborilmaydi, lekin odat ham muhim.)

Uzunlik:
8 belgi
Alifbo:
faqat raqamlar (10 belgi)
Kombinatsiyalar:
10⁸ = 100 million
Buzish vaqti:
bir zumda

Sekundiga 10 milliard urinish deb olamiz (zamonaviy uskuna). Parolga harf, katta harf va belgi qo'shib, vaqt qanday o'sishini kuzating.

  • Hash — bir tomonlama barmoq izi: qaytib bo’lmaydi, bitta bit — boshqa iz
  • Saytlar parolni emas, hash’ini saqlaydi — shu sababli eski parolni ayta olmaydi
  • Parol kuchi = alifbo^uzunlik — daraja asosdan kuchli, uzunlik hal qiladi
  • Shifrlash qaytariladi (kalit bilan), hash — yo’q; HTTPS = shifrlangan HTTP
  • Ochiq kalit qulflaydi, yopiq kalit ochadi — notanishlar ham sir almasha oladi

1Hash bilan shifrlashning tub farqi nimada?

Javobni ko'rish

Shifrlash qaytariladigan: kaliti bor odam asl matnni tiklaydi. Hash qaytarilmaydigan: hech qanday kalit yo’q, izdan matnga yo’l yo’q. Shifrlash — sir saqlash uchun, hash — tekshirish va barmoq izi uchun.

2Sayt bazasi o'g'irlandi, lekin parollar hash'langan edi. Foydalanuvchilar xavfsizmi?

Javobni ko'rish

Nisbatan: o’g’ri parollarni to’g’ridan-to’g’ri o’qiy olmaydi, lekin mashhur parollarni hash’lab solishtirib ko’ra oladi. “12345678” ishlatganlar bir zumda topiladi, kuchli parollilar esa amalda xavfsiz. Shuning uchun parol kuchi baza buzilganda ham himoya.

3Nega 10 belgilik faqat raqamli parol 8 belgilik aralash paroldan zaif? Hisoblab ko'rsating.

Javobni ko'rish

Raqamli: 10¹⁰ = 10 milliard — sekundiga 10 milliard urinishda ~1 soniya. Aralash (katta-kichik harf + raqam, 62 belgi): 62⁸ ≈ 2×10¹⁴ — bir necha soat. Alifbo asosni oshiradi, va 62⁸ ≫ 10¹⁰. Ikkisini birlashtirsangiz — 62¹⁰ allaqachon yillar.

4'Parolni unutdim' bosilganda yaxshi sayt nega eski parolni emas, yangi o'rnatish havolasini yuboradi?

Javobni ko'rish

Chunki yaxshi sayt parolni bilmaydi — bazada faqat hash yotadi, u esa bir tomonlama. Eski parolni yubora oladigan sayt uni ochiq (yoki qaytariladigan ko’rinishda) saqlayapti — bazasi buzilsa hamma parol oshkor bo’ladi.

5Ochiq kalit hammaga ma'lum bo'lsa, tizim qanday xavfsiz qoladi?

Javobni ko'rish

Ochiq kalit faqat QULFLAY oladi — ochish uchun yopiq kalit kerak, u esa hech qachon uzatilmaydi. Pochta qutisiga o’xshaydi: xat tashlash teshigi hammaga ochiq, qutini ochadigan kalit faqat egasida.

Amaliy topshiriq

~30 daqiqao'rta

Birinchi qism. Uchta SINOV parol tuzing (haqiqiylarini emas!): (a) faqat raqamlardan 8 belgili, (b) harf-raqamli 8 belgili, (c) to’rt so’zdan iborat uzun ibora (masalan: “olma daraxt osmon velosiped”). Har birini simulyatorda tekshirib, buzish vaqtlarini jadvalga yozing.

Ikkinchi qism. Natijaga qarab javob bering: nega (c) eng kuchli, vaholanki unda “murakkab belgilar” yo’q? Javobda daraja hisobidan foydalaning.

Uchinchi qism. O’z akkauntlaringiz uchun xulosa yozing (parollarning o’zini YOZMASDAN): qaysi tamoyillar bo’yicha parol tuzish kerak — uch qoida.

Topshiriladigan natija: jadval + daraja izohi + uch qoida.

Darsni belgilash uchun JavaScript kerak. Bu progressni saqlash uchun ishlatiladi — darslikning o'zi JavaScript'siz ham to'liq o'qiladi.