X3DH
X3DH (inglizcha Extended Triple Diffie–Hellman, o‘zbekcha «kengaytirilgan uch karra Diffie–Hellman») — asinxron sharoitda ikki foydalanuvchi o‘rtasida umumiy maxfiy kalit hosil qilish uchun mo‘ljallangan kalitlarni kelishish protokoli.
Protokol qabul qiluvchi foydalanuvchi tarmoqqa ulanmagan holatda ham dastlabki himoyalangan muloqot sessiyasini yaratish imkonini beradi. X3DH ochiq kalitli kriptografiyaga asoslanadi va foydalanuvchilarning identifikatsiya kalitlari, vaqtinchalik kalitlari hamda oldindan serverga joylashtirilgan kalitlaridan foydalanadi.[1]
X3DH natijasida hosil qilingan dastlabki umumiy maxfiy kalit keyingi shifrlangan xabar almashish protokollarida qo‘llanilishi mumkin. Amaliy tizimlarda undan keyin sessiya kalitlarini muntazam yangilab boruvchi Double Ratchet algoritmidan foydalanilishi mumkin.[2]
Tarixi
X3DH protokoli Moxie Marlinspike va Trevor Perrin tomonidan ishlab chiqilgan. Protokolning rasmiy spetsifikatsiyasi 2016-yil 4-noyabrda e’lon qilingan.[1]
X3DH nomidagi “3DH” qismi uchta Diffie–Hellman hisoblashiga asoslanganligini anglatadi. Qabul qiluvchining bir martalik oldindan tayyorlangan kaliti mavjud bo‘lgan holatda protokol qo‘shimcha Diffie–Hellman hisoblashini ham bajarishi mumkin.[1]
Maqsadi
X3DHning asosiy vazifasi ikki tomon o‘rtasida dastlabki umumiy maxfiy kalitni hosil qilishdan iborat. Ushbu protokol quyidagi sharoitlar uchun mo‘ljallangan:
- yuboruvchi foydalanuvchi qabul qiluvchiga birinchi himoyalangan xabarni yubormoqchi bo‘ladi;
- qabul qiluvchi foydalanuvchi ayni vaqtda tarmoqda bo‘lmasligi mumkin;
- qabul qiluvchining ayrim ochiq kalitlari oldindan serverga joylashtiriladi;
- yuboruvchi mazkur kalitlar asosida dastlabki sessiya kalitini hosil qiladi.
X3DH xabarlar almashinuvining barcha bosqichlarini mustaqil ravishda boshqaruvchi protokol emas. U dastlabki umumiy maxfiy kalitni yaratishga xizmat qiladi. Keyingi xabarlar uchun kalitlarni yangilash alohida sessiya protokoli orqali amalga oshiriladi.[1]
Ishtirokchilar
X3DH protokoli tavsifida odatda uchta ishtirokchi ko‘rsatiladi:
- Alisa — himoyalangan sessiyani boshlovchi foydalanuvchi. U qabul qiluvchining oldindan serverga joylashtirilgan ochiq kalitlaridan foydalanib dastlabki sessiya kalitini hosil qiladi.
- Bob — dastlabki xabarni qabul qiluvchi foydalanuvchi. U o‘zining identifikatsiya kaliti, imzolangan oldindan tayyorlangan kaliti va mavjud bo‘lsa, bir martalik oldindan tayyorlangan kalitlari yordamida yuboruvchi bilan bir xil umumiy maxfiy kalitni hosil qiladi.
- Server — Bobning ochiq kalitlari va oldindan tayyorlangan kalitlarini saqlovchi vositachi tizim. Server dastlabki shifrlangan xabarni Bobga yetkazib berishi mumkin, biroq umumiy maxfiy kalitni hosil qilishda bevosita qatnashmaydi.
Bob tarmoqda bo‘lmagan vaqtda Alisa serverda saqlanayotgan kalitlar to‘plamidan foydalanib dastlabki himoyalangan xabarni yuborishi mumkin.[1]
Kriptografik parametrlar
X3DH protokolida ochiq kalitli kriptografiya, xesh funksiyasi va kalit hosil qilish funksiyasidan foydalaniladi. Protokolni amalga oshirishda odatda quyidagi parametrlar belgilanadi:
- elliptik egri chiziqli Diffie–Hellman funksiyasi;
- xesh funksiyasi;
- kalit hosil qilish funksiyasi;
- ilova yoki protokol muhitini aniqlovchi satrli parametr;
- ochiq kalitlarni kodlash va uzatish qoidalari.
X3DH spetsifikatsiyasi elliptik egri chiziqli kalit kelishuvi uchun X25519 yoki X448 kabi funksiyalardan foydalanishni nazarda tutadi.[1]
X25519 va X448 algoritmlari elliptik egri chiziqli Diffie–Hellman kalit kelishuvida foydalanish uchun RFC 7748 hujjatida tavsiflangan.[3]
Kalit hosil qilish uchun HKDF funksiyasidan foydalanilishi mumkin. HKDF dastlabki maxfiy ma’lumotdan kriptografik jihatdan mustahkam chiqish kalitlarini hosil qilishga mo‘ljallangan.[4]
Kalitlar
X3DH protokolida bir nechta turdagi kalitlardan foydalaniladi.
Alisaning identifikatsiya kaliti — yuboruvchining uzoq muddatli ochiq kaliti. Ushbu kalit foydalanuvchini aniqlash va dastlabki autentifikatsiya jarayonida ishtirok etadi.
Alisaning vaqtinchalik kaliti — yuboruvchi tomonidan yangi X3DH sessiyasi boshlanishidan oldin yaratiladigan ochiq kalit. U dastlabki umumiy maxfiy kalitni hosil qilishda ishlatiladi.
Bobning identifikatsiya kaliti — qabul qiluvchining uzoq muddatli ochiq kaliti. Ushbu kalit Bobning shaxsini kriptografik jihatdan bog‘lash uchun xizmat qiladi.
Bobning imzolangan oldindan tayyorlangan kaliti — Bob tomonidan yaratiladigan, uning identifikatsiya kaliti bilan imzolanadigan hamda ma’lum vaqt oralig‘ida yangilanadigan ochiq kalit. Ushbu kalit qabul qiluvchi tarmoqda bo‘lmagan paytda ham dastlabki sessiyani yaratishga yordam beradi.
Bobning bir martalik oldindan tayyorlangan kaliti — faqat bitta dastlabki sessiyada ishlatilishi uchun mo‘ljallangan ochiq kalit. U ishlatilgandan keyin uning yopiq qismi qayta qo‘llanilmasligi kerak.[1]
Protokol bosqichlari
X3DH protokoli uchta asosiy bosqichdan iborat:
- Bob serverga o‘zining identifikatsiya kaliti, imzolangan oldindan tayyorlangan kaliti va bir martalik oldindan tayyorlangan kalitlarini joylashtiradi.
- Alisa serverdan Bobning ochiq kalitlari to‘plamini oladi hamda dastlabki himoyalangan xabarni tayyorlaydi.
- Bob yuborilgan xabarni qabul qilib, Alisa hosil qilgan umumiy maxfiy kalit bilan bir xil kalitni hisoblaydi.[1]
Kalitlar to‘plamini joylashtirish
Bob serverga o‘zining identifikatsiya kalitini, imzolangan oldindan tayyorlangan kalitini, ushbu kalitning raqamli imzosini hamda bir martalik oldindan tayyorlangan kalitlar to‘plamini joylashtiradi.
Imzolangan oldindan tayyorlangan kalit ma’lum davriylikda yangilanadi. Bir martalik oldindan tayyorlangan kalit server tomonidan yuboruvchiga taqdim etilgandan keyin qayta ishlatilmasligi kerak.[1]
Dastlabki xabarni yuborish
Alisa serverdan Bobning identifikatsiya kalitini, imzolangan oldindan tayyorlangan kalitini, ushbu kalitning imzosini va mavjud bo‘lsa, bir martalik oldindan tayyorlangan kalitini oladi.
Alisa dastlab Bobning imzolangan oldindan tayyorlangan kaliti haqiqiyligini tekshiradi. Tekshiruv muvaffaqiyatsiz yakunlansa, sessiya yaratilmaydi.
Tekshiruvdan so‘ng Alisa yangi vaqtinchalik kalit juftligini hosil qiladi. U yuboruvchi va qabul qiluvchining identifikatsiya hamda oldindan tayyorlangan kalitlariga asoslangan bir nechta Diffie–Hellman hisoblashlarini amalga oshiradi.
Hosil qilingan qiymatlar kalit hosil qilish funksiyasiga uzatiladi. Natijada dastlabki umumiy maxfiy kalit yaratiladi.
Agar Bobning bir martalik oldindan tayyorlangan kaliti mavjud bo‘lsa, qo‘shimcha Diffie–Hellman hisoblash bajariladi. Bu dastlabki sessiyaning oldinga yo‘naltirilgan maxfiyligini kuchaytirishga xizmat qiladi.[1]
Alisa dastlabki xabarga o‘zining identifikatsiya kaliti, vaqtinchalik kaliti, foydalanilgan Bob kalitlari identifikatorlari va shifrlangan ma’lumotni kiritadi.[1]
Dastlabki xabarni qabul qilish
Bob dastlabki xabarni olgach, Alisaning identifikatsiya kaliti va vaqtinchalik kalitidan foydalanadi. U o‘zining yopiq identifikatsiya kaliti, imzolangan oldindan tayyorlangan kaliti hamda ishlatilgan bir martalik kalitidan foydalanib mos Diffie–Hellman hisoblashlarini bajaradi.
Natijada Bob Alisa hosil qilgan umumiy maxfiy kalit bilan bir xil kalitni oladi. Ushbu kalit yordamida dastlabki shifrlangan xabar ochiladi.
Agar bir martalik oldindan tayyorlangan kalit ishlatilgan bo‘lsa, Bob uning yopiq qismini keyingi foydalanishdan chiqarishi kerak.[1]
Xavfsizlik xususiyatlari
Asinxron ishlash
X3DH qabul qiluvchi foydalanuvchi tarmoqda bo‘lmagan vaqtda ham dastlabki himoyalangan sessiyani yaratish imkonini beradi. Bunga qabul qiluvchining oldindan serverga joylashtirilgan ochiq kalitlari orqali erishiladi.[1]
= Autentifikatsiya
Imzolangan oldindan tayyorlangan kalit qabul qiluvchining kalitlar to‘plamini tekshirish imkonini beradi. Biroq foydalanuvchilar identifikatsiya kalitlarini mustaqil ravishda tasdiqlamasa, ular muloqot qilayotgan tomonning haqiqiyligini to‘liq tekshira olmaydi.
X3DH spetsifikatsiyasida identifikatsiya kalitlarini ishonchli aloqa kanali orqali solishtirish, jumladan kalit izlari yoki QR-kod yordamida tekshirish tavsiya etiladi.[1]
Oldinga yo‘naltirilgan maxfiylik
Bir martalik oldindan tayyorlangan kalitlardan foydalanish uzoq muddatli kalitlar keyinchalik oshkor bo‘lgan taqdirda avvalgi sessiya kalitlarini himoyalash darajasini oshiradi.
Ushbu himoya ishlatilgan bir martalik kalitning yopiq qismi o‘chirilgan bo‘lsa samarali hisoblanadi.[1]
Kriptografik inkor etish xususiyati
X3DH spetsifikatsiyasida kriptografik inkor etish xususiyati ham ko‘rsatilgan. Protokol ma’lumotlari uchinchi tomonga ikki foydalanuvchi o‘rtasida ma’lum mazmundagi muloqot bo‘lganini ommaviy tarzda tekshirish imkonini beruvchi dalilni avtomatik ravishda yaratmaydi.[1]
Keyingi sessiya himoyasi
X3DH faqat dastlabki umumiy maxfiy kalitni hosil qiladi. Keyingi xabarlar uchun kalitlarni muntazam yangilash boshqa protokollar orqali amalga oshiriladi.
Amaliy tizimlarda bu maqsad uchun Double Ratchet kabi ratchet mexanizmlaridan foydalanilishi mumkin.[2]
Cheklovlari va xavflar
X3DH protokoli xavfsizligi uning to‘g‘ri amalga oshirilishi hamda yopiq kalitlarning ishonchli saqlanishiga bog‘liq.
- Server xabarlarni yetkazib bermaslik yoki bir martalik kalitlarni taqdim etmaslik orqali muloqot jarayoniga ta’sir ko‘rsatishi mumkin.
- Bir martalik kalit ishlatilmagan dastlabki xabar qayta yuborish hujumlariga nisbatan zaifroq bo‘lishi mumkin.
- Identifikatsiya kalitining yopiq qismi oshkor bo‘lsa, foydalanuvchi nomidan soxta sessiyalar yaratish xavfi yuzaga keladi.
- Bir martalik kalitlar zaxirasi tugagan holatda dastlabki sessiyaning oldinga yo‘naltirilgan maxfiyligi kamayishi mumkin.
- X3DHdan keyin sessiya kalitlari yangilanmasa, kalitlarning uzoq muddat ishlatilishi xavfi yuzaga keladi.[1]
Qo‘llanilishi
X3DH asinxron himoyalangan xabar almashish tizimlarida dastlabki sessiya kalitini hosil qilish uchun qo‘llaniladi.
Protokol foydalanuvchilar bir vaqtning o‘zida tarmoqda bo‘lishini talab qilmaydigan tizimlarga mo‘ljallangan. Hosil qilingan umumiy maxfiy kalit keyingi shifrlash hamda sessiya kalitlarini yangilash mexanizmlarining boshlang‘ich nuqtasi sifatida ishlatiladi.[1]
Shuningdek qarang
- Diffie–Hellman kalit almashinuvi
- Elliptik egri chiziqli kriptografiya
- X25519
- HKDF
- Double Ratchet
- Signal protokoli
- Uchdan uchgacha shifrlash
Manbalar
- ↑ 1,00 1,01 1,02 1,03 1,04 1,05 1,06 1,07 1,08 1,09 1,10 1,11 1,12 1,13 1,14 1,15 1,16 1,17 Marlinspike, Moxie; Perrin, Trevor. The X3DH Key Agreement Protocol. Signal. 4-noyabr 2016-yil. Qaraldi: 23-iyun 2026-yil.
- ↑ 2,0 2,1 Perrin, Trevor. The Double Ratchet Algorithm. Signal. Qaraldi: 23-iyun 2026-yil.
- ↑ Langley, Adam; Hamburg, Mike; Turner, Sean. RFC 7748: Elliptic Curves for Security. IETF. 2016-yil yanvar. Qaraldi: 23-iyun 2026-yil.
- ↑ Krawczyk, Hugo; Eronen, Pasi. RFC 5869: HMAC-based Extract-and-Expand Key Derivation Function. IETF. 2010-yil may. Qaraldi: 23-iyun 2026-yil.
Tashqi havolalar
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.