SSL (Secure Sockets Layer) va TLS (Transport Layer Security) — tarmoq orqali mijoz va server orasida malumotlarning xavfsiz uzatilishini taminlaydigan kriptografik protokollardir. Ular barcha trafikni shifrlab, malumotlarning buzgunchilar tomonidan ushlanishi va ozgartirilishining oldini oladi. Google Transparency Report (2025) malumotlariga kora, dunyodagi mobil trafikning 95% dan ortigi TLS shifrlashdan foydalanadi. Ushbu protokolsiz ochiq Wi-Fi yoki mobil tarmoq orqali yuborilgan har qanday malumot uchinchi shaxslar tomonidan oqilishi mumkin. Cloudflare, 2024
Asosiy malumotlar
SSL (Secure Sockets Layer) — 1995 yilda Netscape kompaniyasi tomonidan veb-trafikni himoya qilish uchun ishlab chiqilgan protokol. SSL 1.0 ning birinchi versiyasi hech qachon nashr etilmagan, SSL 2.0 (1995) va SSL 3.0 (1996) 2000-yillarning boshigacha ishlatilgan, ammo jiddiy zaifliklarga ega edi. SSL orniga IETF tomonidan standartlashtirilgan takomillashtirilgan versiya — TLS (Transport Layer Security) keldi. TLS 1.0 (1999) SSL 3.0 ga asoslangan edi, keyingi versiyalar TLS 1.1 (2006), TLS 1.2 (2008) va TLS 1.3 (2018) esa asta-sekin asl arxitekturadan uzoqlashib, yangi shifrlash algoritmlarini qoshib va zaifliklarni bartaraf etib bordi. Bugungi kunda SSL eskirgan hisoblanadi va barcha zamonaviy tizimlar TLS dan foydalanadi, garchi inertsiya tufayli ikkala protokol kop pincha birgalikda SSL/TLS deb ataladi.
SSL/TLS tarixi erta internetda xavfsiz malumot uzatish zaruratidan boshlandi. 1994 yilda Netscape kompaniyasi ozining Navigator brauzeri uchun SSL 1.0 ni ishlab chiqdi, ammo jiddiy xavfsizlik muammolari tufayli protokol hech qachon nashr etilmadi. SSL 2.0 1995 yilda chiqarilgan va amalda ishlatilgan, biroq kop lab zaifliklarga ega edi: Man-in-the-Middle hujumlaridan himoyaning yoqligi, zaif shifrlash algoritmlari va truncation hujumlariga qarshi zaiflik. SSL 3.0 (1996) kopgina muammolarni hal qildi, ammo 2014 yilga kelib unda POODLE zaifligi aniqlandi, shundan song IETF rasman SSL ning barcha versiyalarini eskirgan deb e lon qildi. TLS 1.0–1.3 ketma-ket kriptografik kuch, ishlash va maxfiylikni yaxshiladi, TLS 1.3 esa handshake ni ikki round-trip dan birga qisqartirdi, bu beqaror ulanishga ega mobil ilovalar uchun juda muhimdir.
Handshake — mijoz va server orasida xavfsiz ulanishni ornatish jarayoni. U bir necha ketma-ket qadamlardan iborat bolib, ular davomida tomonlar protokol versiyasini kelishadi, shifrlash algoritmlarini tanlaydilar, kalitlarni almashadilar va bir-birlarini autentifikatsiya qiladilar. TLS 1.3 da handshake faqat bitta tarmoq ozaro tasirini (1-RTT) talab qiladi, TLS 1.2 da esa ikkita (2-RTT) kerak edi.
Birinchi qadamda mijoz ClientHello — qollab-quvvatlanadigan TLS versiyalari royhati, shifrlar toplami (cipher suites) va tasodifiy raqamni oz ichiga olgan xabarni yuboradi. Server tanlangan versiya va shifr, ozining X.509 sertifikati va raqamli imzosi bilan ServerHello javobini yuboradi. Mijoz sertifikatni sertifikat markazlari (CA) zanjiri orqali tekshiradi, sessiya kalitini yaratadi va uni serverning sertifikatidagi ochiq kalit bilan shifrlangan holda yuboradi. Server tasdiqlaganidan song xavfsiz malumot uzatish boshlanadi. Butun handshake zamonaviy qurilmalarda 1–3 millisekundda amalga oshiriladi, bu esa uni foydalanuvchi uchun korinmas qiladi.
TLS autentifikatsiyasi ning asosi X.509 formatidagi sertifikatlar ustiga qurilgan ochiq kalitlar infratuzilmasidir (PKI). Har bir sertifikatda: domen nomi (Common Name yoki Subject Alternative Name), serverning ochiq kaliti, beruvchining nomi (Certificate Authority), amal qilish muddati va CA ning raqamli imzosi mavjud. Mijoz server sertifikatini ishonch zanjiri orqali tekshiradi: server sertifikatidan tortib, operatsion tizimga ornatilgan ildiz CAgacha. Android qurilmalarida ildiz sertifikatlari Google Play Services orqali yangilanadigan tizim omborida saqlanadi; iOS da — iOS Updates orqali. Zanjirning biron bir halqasi buzilganda (muddati otgan sertifikat, domen nomi mos kelmasligi, noma lum CA) mijoz ulanishni uzadi. Oz-o zidan imzolangan sertifikatlar (ishlab chiqishda qollaniladi) uchun aniq ishonch talab qilinadi — Android da Network Security Config orqali, iOS da Info.plist dagi NSExceptionDomains orqali. Sertifikat zanjirini tekshirish jarayoni, shuningdek, CRL (Certificate Revocation List) yoki OCSP (Online Certificate Status Protocol) orqali bekor qilish holatini tekshirishni oz ichiga oladi, garchi mobil qurilmalarda OCSP sorovlari ulanishni tezlashtirish uchun kop pincha otkazib yuboriladi — bu arxitektorlar hisobga olishi kerak bolgan xavfsizlik va ishlash orasidagi kelishuvdir.
SSL va TLS atamalari kop pincha sinonim sifatida ishlatilsa-da, ular orasida mobil ilovalarning xavfsizligi va ishlashiga tasir qiluvchi tub texnik farqlar mavjud.
| Xususiyat | SSL 3.0 | TLS 1.2 | TLS 1.3 |
|---|---|---|---|
| Chiqarilgan yili | 1996 | 2008 | 2018 |
| Holati | Eskirgan (RFC 7568) | Faol (tavsiya etiladi) | Joriy (eng yaxshi) |
| Round-triplar | 2 | 2 | 1 |
| Kalit almashish algoritmi | RSA | RSA, ECDHE | ECDHE (faqat) |
| Autentifikatsiyalangan shifrlash | Yoq | GCM, CCM | AEAD majburiy |
| Perfect Forward Secrecy | Yoq | Ixtiyoriy | Majburiy |
TLS 1.3 ning oldingi versiyalardan asosiy farqi — ECDHE protokoli orqali Perfect Forward Secrecy (PFS) dan majburiy foydalanishdir. Bu shuni anglatadiki, hatto buzgunchi serverning shaxsiy kalitiga ega bolsa ham, ilgari ushlangan trafikni shifrdan chiqara olmaydi. Serverning buzilishi real tahdid bolgan mobil ilovalar uchun PFS bilan TLS 1.3 majburiy xavfsizlik talabidir.
SSL va TLS ning eskirgan versiyalari ularni ishlab chiqarishda foydalanish uchun yaroqsiz qiladigan hujjatlashtirilgan zaifliklarga ega. POODLE (CVE-2014-3566) padding oracle orqali SSL 3.0 ga hujum qiladi va 256 sorovda sessiya cookie faylini shifrdan chiqarish imkonini beradi. BEAST (CVE-2011-3389) oldindan bashorat qilinadigan IV orqali TLS 1.0 ning CBC rejimidagi zaifligidan foydalanadi. Heartbleed (CVE-2014-0160) — protokol zaifligi emas, balki OpenSSL implementatsiyasidagi server xotirasini oqish imkonini beruvchi xatodir: Netcraft malumotlariga kora, 2014 yilda 500 mingdan ortiq server zaif edi. Android 10 (API 29) va iOS 13 dan boshlab, barcha sanab otilgan protokollar tizim darajasida ochirilgan. Shunga qaramay, dasturchilar ilovani ishga tushirishdan oldin SSL Labs Test (qualys.com) orqali server konfiguratsiyasini tekshirishlari kerak, unda eskirgan cipher suites mavjud emasligi va TLS 1.3 qollab-quvvatlanishiga ishonch hosil qilish uchun.
Mobil ilovalarda TLS malumotlarni uch darajada himoya qiladi: tarkibni shifrlash (serverdan boshqa hech kim malumotlarni oqiy olmaydi), yaxlitlikni tekshirish (malumotlar yolda ozgartirilishi mumkin emas) va server autentifikatsiyasi (mijoz aynan kerakli serverga ulanganiga ishonch hosil qiladi). Autentifikatsiya ayniqsa muhimdir: usiz buzgunchi DNS-spoofing yoki soxta Wi-Fi ulanish nuqtasi orqali serverni almashtirishi mumkin.
Google Play Protect (2024) tadqiqotiga kora, Android ilovalarining 76% sertifikatlarni tekshirish bilan TLS dan togri foydalanadi. Qolgan 24% xatolarga yol qoyadi: test uchun sertifikat tekshiruvini ochiradi (va ishlab chiqarishda yoqishni unutadi), tekshiruvsiz oz-o zidan imzolangan sertifikatlardan foydalanadi yoki eskirgan SSL 3.0 va TLS 1.0 protokollariga ruxsat beradi. Apple App Transport Security (ATS) iOS da 2017 yildan beri kamida TLS 1.2 ni talab qiladi va iOS 15 dan boshlab barcha tarmoq sorovlari uchun sukut boyicha TLS 1.3 dan foydalanadi. Qoshimcha himoya uchun Certificate Pinning — serverning aniq sertifikatiga bog lashni joriy etish ham tavsiya etiladi.
Tarmoq bilan ishlash uchun eng mashhur kutubxonalardan biri bolgan OkHttp yordamida Android da xavfsiz HTTPS ulanishini sozlash misolini korib chiqaylik. Togri konfiguratsiya TLS 1.3 dan majburiy foydalanish va sertifikatlarni tekshirishni oz ichiga oladi.
val client = OkHttpClient.Builder()
.connectionSpecs(
listOf(
ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
.tlsVersions(TlsVersion.TLS_1_3, TlsVersion.TLS_1_2)
.cipherSuites(
CipherSuite.TLS_AES_128_GCM_SHA256,
CipherSuite.TLS_AES_256_GCM_SHA384,
CipherSuite.TLS_CHACHA20_POLY1305_SHA256
)
.build()
)
)
.hostnameVerifier { hostname, session ->
SSLSession.DefaultHostnameVerifier.verify(hostname, session)
}
.build()
Ushbu misolda qollab-quvvatlanadigan TLS versiyalari toplamini faqat 1.3 va 1.2 protokollari bilan cheklaymiz, eskirgan TLS 1.0/1.1 ni istisno qilamiz. Cipher suites AEAD rejimi va majburiy Perfect Forward Secrecy bilan zamonaviy algoritmlardan tanlanadi. HostnameVerifier xost nomining sertifikatga mos kelishini tekshiradi. iOS uchun shunga oxshash sozlash tlsMinimumSupportedProtocolVersion parametri bilan URLSession konfiguratsiyasi orqali amalga oshiriladi, unda .TLSv13 korsatiladi. Qoshimcha ravishda, iOS da versiyalarning yuqori chegarasini cheklash uchun tlsMaximumSupportedProtocolVersion ornatilishi mumkin — bu hali TLS 1.3 ga otmagan eski serverlar bilan moslik uchun foydalidir. Bunday konfiguratsiya mobil ilovada malumotlarni uzatishda maksimal xavfsizlik darajasini kafolatlaydi.
Kop beriladigan savollar
TLS — protokolning yangi va xavfsizroq versiyasidir. SSL eskirgan va ishlatilmasligi kerak (RFC 7568). Amalda ikkala atama ham HTTPS shifrlashni bildiradi, ammo texnik jihatdan barcha zamonaviy tizimlar TLS 1.2 yoki 1.3 orqali ishlaydi.
Burp Suite yoki Charles Proxy proksi vositasini ornating va ilova trafigini ushlang. Agar ulanish HTTPS dan foydalansa va sertifikat amalda bolsa — ilova TLS dan foydalanadi. Agar trafik HTTP orqali ketsa — shifrlash mavjud emas.
Ishlab chiqarish versiyalari uchun faqat TLS 1.2 va TLS 1.3 ga ruxsat beriladi. SSL 3.0, TLS 1.0 va TLS 1.1 protokollari serverda va mijoz ilovasida ochirilishi kerak. 2020 yildan boshlab asosiy platformalar (Android, iOS, brauzerlar) kamida TLS 1.2 ni talab qiladi.
Ha, tavsiya etiladi. TLS sertifikatni sertifikat markazlari zanjiri orqali tekshiradi, ammo agar biron bir CA markazi buzilgan bolsa (bu 2011 yilda DigiNotar bilan sodir bolgan), buzgunchi soxta sertifikat chiqarishi mumkin. Pinning qoshimcha tekshirish qatlamini qoshadi.
TLS 1.3 ulanishni ornatish vaqtini 2 round-trip dan 1 ga qisqartiradi, bu birinchi ulanishda 30–50% yaxshilanish beradi. Beqaror ulanishga ega (metro, poyezdlar) mobil ilovalar uchun bu malumotlarni yuklash tezligi uchun juda muhimdir.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.
Shuningdek o'qing