VPN entropiyasi tugaydimi? entropy_avail aslida nimani ko‘rsatadi
Yuklanishdagi to‘xtash va sekin o‘rnatilgan tunnel ikki xil nosozlik. Tasodifiylikni ayblashdan oldin bosqichni, hisoblagichning haqiqiy ma’nosini va navbatni o‘qing.
Yadro tasodifiyligining tugashi sekin VPN uchun jozibali tushuntirish bo‘lib, odamlar xabar qiladigan simptom uchun deyarli har doim noto‘g‘ri tushuntirishdir. Tasodifiy chiqishni kutayotgan host ma’lum bir lahzada to‘xtaydi, odatda yuklanishning boshida yoki kalitlarni qayta ishlash paytida. tez ulanib, so‘ng sekin uzatadigan tunnel aslida o‘tkazuvchanlikni tasvirlaydi. O‘qishni tugatmagan raqamni tuzatish uchun demon o‘rnatishdan oldin bu ikki kuzatuvni ajrating.
Nega afsona yashaydi
Ikkala muammo ham haqiqiy va uzoqdan bir xil ko‘rinadi. Yangi yuklangan virtual mashinada boshlanish to‘xtashlari haqiqatan ham bo‘ladi, sekin o‘rnatilgan tunnel ham shunchalik haqiqiy. Xato — ikkala hikoyada ham kriptografiya qayerdadir uchragani uchun ikkinchisi birinchisi tufayli deb o‘ylash. Shifrlash so‘zida uzatilgan har bir bayt yangi bir bayt muhit shovqinini sarflaydi degan ma’no yo‘q.
Bu generatorlar bunday ishlamaydi. Kriptografik kutubxona urug‘langan generatorni saqlaydi va undan chiqish oladi, o‘z siyosati bo‘yicha qayta urug‘laydi, shuning uchun qimmat lahza urug‘lash, barqaror uzatish emas.
Generator har bir paket uchun nima qiladi
OpenSSL 3 da standart generator ierarxiyasi konfiguratsiya va holatga ko‘ra urug‘laydigan va qayta urug‘laydigan DRBG nusxalaridan quriladi. OpenVPN 2.6 da AEAD ma’lumot yo‘li nonce ni paketning tartib raqamidan sessiya uchun yashirin qiymat bilan birga oladi, eski CBC yo‘li esa har bir paket uchun psevdotasodifiy IV oladi. Hech bir naqsh bir gigabaytni ko‘chirish bir gigabayt yangi yadro shovqinini sarflaydi degan qoidani qo‘llamaydi. Ikkalasi ham kalit yaratish va qo‘l siqishlar urug‘lash muhim bo‘lgan joy degan fikrni qo‘llaydi.
CBC holatini nomlashga arziydi, chunki u afsonaga o‘xshaydi va unday emas: uning har bir paket uchun IV si kutubxonaning o‘z qayta urug‘lash jadvali bo‘yicha kutubxona generatoridan keladi, hech qachon har bir paket uchun yadro chaqiruvidan kelmaydi. Kimdir baytga entropiya xarajatini aytib o‘tsa, qaysi kutubxona versiyasi va qaysi kod yo‘lini o‘lchaganini so‘rang.
Kutish aslida qayerda ko‘rinadi
Vaqt belgilarini sessiya atrofiga emas, bosqichlar atrofiga qo‘ying: boshlanish, autentifikatsiya, kalit almashinuvi va uzatish. Tunnel foydalanishga yaroqli bo‘lishidan oldingi kutish past barqaror tezlikdan boshqa shikoyat, va ulardan faqat bittasi tasodifiylikka ishora qiladi. Linux da oddiy getrandom() so‘rovi yadroning tasodifiy manbasi ishga tushgunga qadar bloklanishi mumkin, shuning uchun bu muammoning yuklanish paytidagi versiyasi boshida hovuzni boqishga oz narsasi bor virtual mashinalar va joylashtirilgan platalarda haqiqiy.
| Bosqich | Nimani ishga tushirish kerak | Kutishni bildiruvchi o‘qish | O‘tkazuvchanlikni bildiruvchi o‘qish |
|---|---|---|---|
| Yuklanish, har qanday tunneldan oldin | systemd-analyze critical-chain | tunnel boshlanishidan oldin soniyalar o‘tiradigan birlik | qo‘llanmaydi, hali hech narsa uzatilmaydi |
| Qo‘l siqish | journalctl -u openvpn-server@server -b | ishga tushirish ketma-ketligi tugagunga qadar uzoq tanaffus | qo‘llanmaydi, tunnel ko‘tarilmagan |
| O‘rnatilgan uzatish | ss -tin yonida sar -n DEV 1 | bo‘sh soket navbatlari bilan bloklangan jarayon | to‘liq navbatlar, qayta yuborishlar va bitta band oqim |
O‘sha to‘plamning boshida ikkita arzon buyruq bo‘lishi kerak va ular jadval kerak bo‘lmasidan oldin oson savollarni hal qiladi. Ular o‘qiydigan hisoblagich tarmoqli kenglik o‘lchagichi emas, entropiya hisobi, va bitta surat jarayon bloklanganini, qancha kutganini yoki kutubxonasi qaysi interfeysni chaqirishini ko‘rsata olmaydi. Tiklanishdan keyin olingan namuna odatda to‘xtashni butunlay o‘tkazib yuboradi, shuning uchun yadro versiyasini o‘qish yonida saqlang.
cat /proc/sys/kernel/random/entropy_avail
uname -rTuzatishni o‘qishga moslang
Agar yadro haqiqatan ishga tushirishni kutayotgan bo‘lsa, tunnelga emas, platforma qo‘llab-quvvatlaydigan urug‘lash yo‘liga qarang. Virtual mashinaga host taqdim etgan tasodifiy qurilma berilishi mumkin, masalan virtio-rng, va obraz tayyorlash muhim, chunki ko‘plab mehmonlarga o‘zgartirilmasdan ko‘chirilgan urug‘ mustaqil ishga tushirish emas. Agar kutubxona yuklanishdan keyin urug‘lash nosozliklarini xabar qilsa, yadro sozlamalarini o‘zgartirish o‘rniga uning sozlangan manbasi va provayder xatti-harakatini tekshiring.
ss -tin dst 203.0.113.7
sar -n DEV 1 5OpenSSL generator hujjatlari bu ierarxiya kirishni qanday olishi va qayta urug‘lash qachon sodir bo‘lishini tavsiflaydi, bu afsonadan ancha tor da’vo bo‘lib, faqat o‘sha amalga oshirish uchun to‘g‘ri. Entropiya demoni universal tezlik tuzatishi emas va hisoblagich ko‘tarilishi uchun uni o‘rnatish kechikishni isbotlamasdan xavfsizlik taxminini o‘zgartiradi. O‘tkazuvchanlik uchun ma’lumot yo‘lini kuzatib boring: bitta to‘yingan oqim, qayta yuborishlar, tashqi yo‘qotish va navbat tushishi har biriga alohida tuzatish kerak, bufer o‘lchamlari esa soket buferlashini o‘z navbat dalillari bilan hal qiladi.