Reklamani yopish

Bir necha kun oldin Apple yuzinchi qismini chiqardi iOS 7.0.6 yangilanishi, chiqarilishi haqida biz sizga xabar bergan edik. Yangilanish eski iOS 6 (versiya 6.1.6) va Apple TV (6.0.2-versiya) uchun ham chiqarilganidan ko‘pchilik hayratga tushgan bo‘lishi mumkin. Bu xavfsizlik tuzatishi, shuning uchun Apple o'z qurilmalarining faqat bir qismini yangilashga qurbi yetmasdi. Bundan tashqari, bu muammo OS X tizimiga ham ta'sir qiladi. Apple matbuot kotibi Trudy Myullerning so'zlariga ko'ra, OS X yangilanishi imkon qadar tezroq chiqariladi.

Nega bu yangilanish atrofida shunchalik shov-shuv ko'p? Tizim kodidagi nuqson ISO/OSI mos yozuvlar modelining relyatsion qatlamida xavfsiz uzatishda server tekshiruvini chetlab o'tish imkonini beradi. Xususan, xato server sertifikati tekshiruvi amalga oshiriladigan qismdagi yomon SSL ilovasi. Qo'shimcha tushuntirishga kirishdan oldin, men asosiy tushunchalarni tasvirlashni afzal ko'raman.

SSL (Secure Socket Layer) - xavfsiz aloqa uchun ishlatiladigan protokol. U shifrlash va muloqot qiluvchi tomonlarni autentifikatsiya qilish orqali xavfsizlikka erishadi. Autentifikatsiya - bu taqdim etilgan shaxsni tekshirish. Haqiqiy hayotda, masalan, siz o'zingizning ismingizni (shaxsingizni) aytasiz va boshqa shaxs uni tasdiqlashi (autentifikatsiya) uchun shaxsingizni ko'rsatasiz. Keyinchalik autentifikatsiya tekshiruvga bo'linadi, bu faqat milliy guvohnoma yoki identifikatsiyaga misol bo'lib, ko'rib chiqilayotgan shaxs sizning shaxsingizni oldindan ko'rsatmasdan aniqlay oladi.

Endi men qisqacha server sertifikatiga o'tmoqchiman. Haqiqiy hayotda sizning sertifikatingiz, masalan, ID karta bo'lishi mumkin. Hamma narsa assimetrik kriptografiyaga asoslanadi, bu erda har bir sub'ekt ikkita kalitga ega - shaxsiy va ommaviy. Butun go'zallik shundan iboratki, xabar ochiq kalit bilan shifrlanishi va shaxsiy kalit bilan shifrlanishi mumkin. Bu faqat shaxsiy kalit egasi xabarning shifrini ochishi mumkinligini anglatadi. Shu bilan birga, maxfiy kalitni har ikkala muloqot qiluvchi tomonga o'tkazish haqida tashvishlanishning hojati yo'q. Keyin sertifikat sub'ektning ochiq kaliti bo'lib, uning ma'lumotlari bilan to'ldiriladi va sertifikatlashtirish organi tomonidan imzolanadi. Chexiya Respublikasida sertifikatlashtirish idoralaridan biri, masalan, Česká Pošta. Sertifikat tufayli iPhone haqiqatan ham berilgan server bilan aloqada ekanligini tekshirishi mumkin.

SSL ulanishni o'rnatishda assimetrik shifrlashdan foydalanadi, deb ataladigan narsa SSL qo'l siqish. Ushbu bosqichda sizning iPhone ushbu server bilan bog'langanligini tekshiradi va shu bilan birga, assimetrik shifrlash yordamida barcha keyingi aloqalar uchun ishlatiladigan simmetrik kalit o'rnatiladi. Simmetrik shifrlash tezroq. Allaqachon yozilganidek, xato serverni tekshirish paytida allaqachon sodir bo'lgan. Keling, ushbu tizim zaifligiga sabab bo'lgan kodni ko'rib chiqaylik.

static OSStatus
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa,
SSLBuffer signedParams, uint8_t *signature, UInt16 signatureLen)

{
   OSStatus err;
   …

   if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
       goto fail;
   if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
       goto fail;
       goto fail;
   if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
       goto fail;
   …

fail:
   SSLFreeBuffer(&signedHashes);
   SSLFreeBuffer(&hashCtx);
   return err;
}

Ikkinchi holatda if quyida ikkita buyruqni ko'rishingiz mumkin muvaffaqiyatsizlikka o'tish;. Va bu to'siq bo'ladi. Ushbu kod keyinchalik sertifikat tekshirilishi kerak bo'lgan bosqichda ikkinchi buyruqning bajarilishiga olib keladi muvaffaqiyatsizlikka o'tish;. Bu uchinchi shartning o'tkazib yuborilishiga olib keladi if va server tekshiruvi umuman bo'lmaydi.

Buning ma'nosi shundaki, ushbu zaiflik haqida ma'lumotga ega bo'lgan har bir kishi sizning iPhone-ga soxta sertifikat taqdim etishi mumkin. Siz yoki Agar siz va server o'rtasida tajovuzkor mavjud bo'lsa, iPhone-da siz shifrlangan muloqot qilyapsiz deb o'ylaysiz. Bunday hujum deyiladi o'rtadagi odam hujumi, bu taxminan chex tiliga tarjima qilinadi o'rtadagi odam hujumi yoki orasida odam. OS X va iOS dagi ushbu maxsus kamchilikdan foydalangan holda hujum faqat tajovuzkor va jabrlanuvchi bir tarmoqda bo'lsa amalga oshirilishi mumkin. Shuning uchun, agar siz iOS-ni yangilamagan bo'lsangiz, umumiy Wi-Fi tarmoqlaridan qochish yaxshiroqdir. Mac foydalanuvchilari qaysi tarmoqlarga ulanishlari va ushbu tarmoqlarda qaysi saytlarga tashrif buyurishlari haqida hali ham ehtiyot bo'lishlari kerak.

Qanday qilib bunday halokatli xato uni OS X va iOS ning oxirgi versiyalariga olib kelganiga ishonish mumkin emas. Bu yomon yozilgan kodning nomuvofiq sinovi bo'lishi mumkin edi. Bu dasturchi ham, tester ham xato qilishini anglatadi. Bu Apple uchun dargumon bo'lib tuyulishi mumkin va shuning uchun bu xato aslida orqa eshik deb ataladigan taxminlar paydo bo'ladi. orqa eshik. Eng yaxshi orqa eshiklar nozik xatolarga o'xshaydi, deb bejiz aytishmaydi. Biroq, bu faqat tasdiqlanmagan nazariyalar, shuning uchun biz kimdir shunchaki xato qilgan deb taxmin qilamiz.

Agar tizimingiz yoki brauzeringiz ushbu xatolikdan himoyalanganligiga ishonchingiz komil bo'lmasa, sahifaga tashrif buyuring gotofail.com. Quyidagi rasmlarda ko'rib turganingizdek, OS X Mavericks 7.0.1 da Safari 10.9.1 xatoni o'z ichiga oladi, Safari iOS 7.0.6 da hammasi yaxshi.

Resurslar: Men ko'proq, Reuters
.