CyberSecurity · 24-dars · 9-sinf (Identity & Auth Track)
Fan: Kiberxavfsizlik · Identity & Access Security Kohorta: 9-sinf Kiber-Muhandis Hafta: 5 (4-soat)

Autentifikatsiya, JWT va 2FA Himoyasi

Parol kiritish — bu xavfsizlikning faqat birinchi va eng zaif qadami. Agar login tizimi xato qurilgan bo'lsa, xakerlar sizning parolingizni bilmasdan ham butun hisobingizni o'g'irlashi (Session Hijacking) mumkin. Zamonaviy bulutli tizimlarda identifikatsiyani tasdiqlash uchun JSON Web Token (JWT) va Ikki bosqichli autentifikatsiya (2FA/TOTP) qo'llaniladi. Bugungi darsda siz JWT ning kriptografik imzo mexanizmini, tokenlarni qayerda saqlash xavfsizligini va Google Authenticator qanday qilib internetsiz ham har 30 soniyada yangi 6 xonali kod yaratishini o'rganasiz.

Asosiy tushunchalar

Autentifikatsiya vs Avtorizatsiya: 401 vs 403 Farqi

1. Autentifikatsiya (Authentication - 401)

  • Savol: "Siz kimsiz? O'z shaxsingizni isbotlang!"
  • Login, Parol, Biometrika (Face ID, Barmoq izi), 2FA kod kiritish jarayoni.
  • Agar tasdiqlanmasa: HTTP 401 Unauthorized (Tizim sizni tanimadi).

2. Avtorizatsiya (Authorization - 403)

  • Savol: "Siz tanildingiz, lekin bu amalga haqqingiz bormi?"
  • Foydalanuvchi roli: Oddiy talaba admin sahifasini o'chira olmasligi kerak.
  • Agar ruxsat bo'lmasa: HTTP 403 Forbidden (Siz kirdingiz, lekin taqiqlangan!).
Kriptografik token

JSON Web Token (JWT) Anatomiyasi: 3 Ta Qism

1. Header (Qizil)

Token turi va ishlatilgan shifrlash algoritmi (masalan, HMAC-SHA256 yoki RSA):

{ "alg": "HS256", "typ": "JWT" }

2. Payload (Binafsha)

Foydalanuvchi ma'lumotlari (ID, ism, rol, amal qilish muddati exp):

{ "sub": "user_42", "role": "admin", "exp": 1769850000 }

3. Signature (Yashil)

Serverdagi maxfiy kalit bilan hisoblangan imzo. Agar xaker bitta harfni o'zgartirsa, imzo buziladi va token rad etiladi!

LocalStorage vs Cookie

Katta Xavfsizlik Bahsi: JWT Qayerda Saqlanishi Kerak?

❌ LocalStorage (Juda Xavfli!)

  • XSS ga o'ta zaif: Saytdagi istalgan uchinchi tomon scripti yoki XSS zaifligi localStorage.getItem('token') qilib tokenni o'g'irlay oladi.
  • Token o'g'irlansa, xaker foydalanuvchi hisobiga to'liq ega bo'ladi.

✅ HttpOnly & Secure Cookie (Sanoat Standarti)

  • JavaScript o'qiy olmaydi: httpOnly: true belgilangan cookie brauzer konsoli va JS ga ko'rinmaydi.
  • Avtomatik yuboriladi: Brauzer har bir so'rovda tokenni o'zi xavfsiz headerda serverga uzatadi.
  • CSRF dan himoya: sameSite: 'strict' flagi begonalar soxta so'rov yuborishini to'xtatadi.
Qisqa umrli tokenlar

Access Token va Refresh Token Rotatsiyasi

Ikki Tokenli Tizim Mexanikasi

  • Access Token: Qisqa umr ko'radi (masalan, 15 daqiqa). Har bir API so'rovida yuboriladi.
  • Refresh Token: Uzoq umr ko'radi (7 kun). Faqat yangi Access token olish uchun ishlatiladi.
  • Rotatsiya: Har safar Refresh ishlatilganda, eski Refresh o'chiriladi va yangisi beriladi.

Tokenni Tekshirish Kiber-Mantiqiy K獻i

// Xavfsiz Middleware: Tokenni tekshirish
function verifyAuth(req, res, next) {
    const token = req.cookies.access_token;
    if (!token) return res.status(401).json({ error: 'Kirish rad etildi' });

    jwt.verify(token, process.env.JWT_SECRET, (err, user) => {
        if (err) return res.status(403).json({ error: 'Yaroqsiz token' });
        req.user = user;
        next();
    });
}
RFC 6238 standarti

2FA Qanday Ishlaydi? TOTP Algoritmining Sirlari

1. Umumiy Maxfiy Kalit (Shared Secret)

2FA yoqilganda server QR kod ko'rsatadi. Bu QR kod ichida maxfiy matn (Secret Key) yashiringan. Telefon kamerasi uni o'qib, o'zida saqlaydi.

2. Vaqt Bloki (30 Soniyalik Oyna)

Telefon va server Unix vaqtini oladi va 30 ga bo'ladi: T = Math.floor(UnixVaqt / 30). Har 30 soniyada T soni 1 taga oshadi.

3. HMAC Hash -> 6 Xonali Kod

Secret va T soni HMAC-SHA1 algoritmi bilan xeshlanadi va 6 xonali qisqa kod olinadi. Internetsiz ham telefon va serverda bir xil kod chiqadi!

2FA ni aldash yo'llari

MFA Fatigue: Xakerlar 2FA Ni Qanday Aylanib O'tadi?

MFA Fatigue (Push Bombing) Hujumi

  • Xaker xodimning parolini o'g'irlaydi, lekin 2FA to'sig'iga duch keladi.
  • Xaker kechasi soat 03:00 da har 2 soniyada telefonga 2FA tasdiq so'rovini yuboradi (100+ push).
  • Uyqusiragan xodim telefon jiringlashini to'xtatish uchun tasodifan 'Ha, bu men' tugmasini bosadi!

Zamonaviy Yechim: Number Matching (Fido2)

Oddiy 'Ha/Yo'q' tugmalari o'rniga, ekranda 2 xonali tasodifiy raqam (masalan, 47) ko'rsatiladi. Foydalanuvchi ushbu raqamni telefoniga o'zi qo'lda kiritishi shart. Bu tasodifiy bosishlarni 100% to'xtatadi!

2022-yilgi mashhur xakerlik

Uber Kiber-Halokati: 18 Yoshli Xaker va MFA Fatigue

Uber Qanday Buzildi?

2022-yilda 18 yoshli kiber-hujumchi (Lapsus$ guruhi) Uber xodimining parolini Darknetdan sotib oldi. Xodimning telefoniga tinimsiz 2FA so'rovlari yuborildi va WhatsApp orqali o'zini IT yordam xizmati deb tanishtirib: 'Agar tasdiqlasangiz, so'rovlar to'xtaydi' deb aldadi. Xodim tasdiqlagach, xaker butun Uber ichki tarmog'iga, Slack va AWS hisoblariga ega bo'ldi.

Asosiy Xulosa

  • Texnologiya inson omiliga bog'liq: Eng mukammal 2FA ham inson aldansa ojiz qolishi mumkin.
  • FIDO2 / Hardware Security Keys (YubiKey): SMS va oddiy Push o'rniga jismoniy USB kalitlar eng ishonchli himoyadir.
Mustaqil laboratoriya · 12 daqiqa

Amaliy Topshiriq: JWT Tahlili va TOTP 2FA Simulyatsiyasi

Laboratoriya Bosqichlari

  • 1. JWT Dekodlash: jwt.io saytida yoki Node.js da namunaviy tokenni Header, Payload va Signature ga ajrating.
  • 2. Imzo soxtalashtirish testi: Payload dagi `role: 'user'` ni `role: 'admin'` ga o'zgartiring va imzo buzilganini ko'ring.
  • 3. TOTP Kodini hisoblash: 30 soniyalik vaqt oynasi asosida 6 xonali 2FA kodini hisoblash formulasini sinang.
  • 4. Xavfsiz Cookie sozlamasi: Express.js da `httpOnly` va `sameSite` parametrlarini yozing.

O'lchanadigan Natija

Soxtalashtirilgan JWT token server tomonidan "403 Invalid Signature" bilan rad etilishi va 2FA kodi har 30 soniyada to'g'ri yangilanishini ko'rsatish!

Xavfsizlik auditi

Autentifikatsiya Nazorat Cheklisti: 5 Ta Talab

1. JWT Maxfiy Kalit

`JWT_SECRET` kamida 256-bitli tasodifiy murakkab kalitmi?

2. Token Saqlash

Token LocalStorage da emas, HttpOnly Cookie da saqlanmoqdami?

3. 2FA Vaqt Oynasi

TOTP kodi har 30 soniyada o'zgarishi tekshirildimi?

10 ballik tizim

Darsni Baholash Mezonlari (10 Ball)

A'lo (9–10 Ball)

  • JWT tuzilishi va imzo himoyasi to'liq tushuntirilgan.
  • LocalStorage vs HttpOnly farqi to'g'ri ko'rsatilgan.
  • 2FA va TOTP algoritmi to'g'ri tahlil qilingan.
  • Varaqa 100% to'ldirilgan.

Yaxshi (7–8 Ball)

  • JWT dekodlangan, lekin imzo soxtalashtirishda xato bor.
  • HttpOnly cookie afzalligi tushunilgan.
  • Varaqa 80% to'ldirilgan.

Qoniqarli (5–6 Ball)

  • Faqat JWT ko'rilgan, 2FA tushunarsiz qolgan.
  • MFA Fatigue tushunchasi noaniq.
  • Varaqa to'liq emas.
Uyga vazifa

Xulosa va Uy Vazifasi: Shaxsni Himoyalash

Dars Xulosasi

Xavfsiz autentifikatsiya — faqat parol bilan cheklanmaydi. Kriptografik imzolangan JWT, qisqa umrli Access Tokenlar, HttpOnly Cookielar va internetsiz ishlaydigan TOTP 2FA zamonaviy xavfsizlikning ajralmas poydevoridir.

Uy Vazifasi (10 Ball)

  • Amaliy: O'z shaxsiy hisoblaringizda (Google, GitHub, Telegram) 2FA ni yoqing va zaxira kodlarini xavfsiz saqlang.
  • Tahlil: Nega SMS orqali 2FA kod olish (SIM swapping xavfi tufayli) ilova (Google Auth) orqali olishdan xavfliroq ekanini yozma asoslang.
  • Varaqa: Ish varaqasidagi barcha topshiriqlarni to'ldirib topshiring.
Target International School Target International School Введение 1 / 1 0–3