ایا د VPN انټروپي ختمېږي؟ entropy_avail په رښتیا څه ښیي
د بوت پر مهال درېدل او ورو جوړ شوی تونل دوه بېلې خرابۍ دي. له تصادف څخه د شکایت مخکې پړاو، د شمېرونکي ریښتینی مانا او قطار ولولئ.
د کرنل تصادف ختمېدل د ورو VPN لپاره زړه راښکونکی توضیح دی او د هغه نښې لپاره چې خلک یې راپور ورکوي تقریباً تل غلط توضیح دی. هغه کوربه چې د تصادفي پایلې انتظار کوي په یو ټاکلي وخت کې ودرېږي، معمولاً د بوت په پیل کې یا د کیلي په سمبالښت کې. هغه تونل چې ژر نښلېږي او بیا ورو انتقالوي هغه پرځای د تېرېدو وړتیا بیانوي. دا دوه مشاهده له یو بل څخه جلا کړئ، مخکې له دې چې د یوې شمېرې د سمولو لپاره ډیمون نصب کړئ چې لوستل یې نه وي بشپړ کړي.
دا افسانه ولې ژوندې پاتې کېږي
دواړه ستونزې ریښتینې دي او له لرې یو شان ښکاري. په نوي بوت شوي مجازي ماشین کې د پیل درېدنې واقعاً پېښېږي، او ورو جوړ شوی تونل هم هماغسې ریښتینی دی. تېروتنه دا ده چې دویمه د لومړنۍ له امله وګڼو، ځکه چې کرپټوګرافي په دواړو کیسو کې یو ځای ښکاري. د کوډ کولو کلیمه هېڅکله دا نه معنی لري چې هر لېږدول شوی بایټ د چاپېریال شور نوی بایټ کاروي.
دا جوړوونکي داسې نه کار کوي. کرپټوګرافیک کتابتون د تخم لرونکی جوړوونکی ساتي او له هغې پایله اخلي، خپلې تګلارې ته سمون ورکوي او بیا تخم کوي، نو ګران شیبه تخم کول دي، نه ثابت لېږد.
جوړوونکی د هر پاکټ لپاره څه کوي
په OpenSSL 3 کې د جوړوونکي اصلي لړۍ د DRBG نمونو څخه جوړېږي چې د ترتیباتو او حالت له مخې تخم کوي او بیا تخم کوي. په OpenVPN 2.6 کې د AEAD ډاټا لار خپل nonce د پاکټ له ترتیبي شمېرې او د هرې ناستې له پټ ارزښت سره یوځای اخلي، په داسې حال کې چې زړه CBC لار د هر پاکټ لپاره نیمه تصادفي IV اخلي. هېڅ نمونه د دې قانون ملاتړ نه کوي چې د یو ګیګابایټ لېږدول د کرنل یو ګیګابایټ نوی شور کاروي. دواړه د دې فکر ملاتړ کوي چې کیلي جوړول او لاس ورکول هغه ځای دی چې تخم کول مهم دي.
د CBC پېښه باید ونومول شي، ځکه چې دا افسانې ته ورته ښکاري او نه ده: د هر پاکټ IV د کتابتون د خپل بیا تخم کولو مهال ویش له مخې د کتابتون له جوړوونکي راځي، هېڅکله د هر پاکټ لپاره د کرنل له غوښتنې نه راځي. کله چې څوک د هر بایټ انټروپي لګښت یاد کړي، وپوښتئ چې کومه کتابتون نسخه او کومه کوډ لاره یې اندازه کړه.
انتظار په رښتیا چېرته ښکاري
د وخت ټاپې د ناستې شاوخوا نه، د پړاوونو شاوخوا کیږدئ: پیل، تصدیق، د کیلي بدلون او لېږد. د تونل د کارېدونکي کېدو مخکې انتظار له ټیټ ثابت سرعت څخه بېل شکایت دی، او یوازې یو یې تصادف ته اشاره کوي. په Linux کې عادي getrandom() غوښتنه کولای شي تر هغه وخته بنده شي چې د کرنل تصادفي سرچینه پیل نه شي، نو ځکه د دې ستونزې د بوت وخت بڼه په مجازي ماشینونو او ځای پرځای شویو بورډونو کې ریښتینې ده چې په پیل کې د حوض د خوړولو لپاره لږ شی لري.
| پړاو | څه باید وچلول شي | هغه لوستل چې مانا یې انتظار دی | هغه لوستل چې مانا یې تېرېدو وړتیا ده |
|---|---|---|---|
| بوت، له هر تونل مخکې | systemd-analyze critical-chain | هغه واحد چې د تونل له پیل مخکې ثانیې کېني | نه تطبیقېږي، لا تر اوسه څه نه لېږدول کېږي |
| لاس ورکول | journalctl -u openvpn-server@server -b | د پیل کولو ترتیب بشپړېدو مخکې اوږد تشه | نه تطبیقېږي، تونل پورته نه دی |
| جوړ شوی لېږد | ss -tin ترڅنګ sar -n DEV 1 | بند پاتې پروسه چې ساکټ قطارونه یې خالي دي | ډک قطارونه، بیا لېږل او یو بوخت تار |
دوه ارزانه کمانډونه د دې ټولګې په سر کې دي، او د جدول له اړتیا مخکې اسانه پوښتنې حل کوي. هغه شمېرونکی چې دوی یې لولي د بانډ پراخوالي مېټر نه دی، د انټروپي حساب دی، او یو سناپشاټ نشي ښودلی چې پروسه بنده ده، څومره انتظار یې کړی یا د هغې کتابتون کومه برخه غواړي. له بیا رغولو وروسته اخیستل شوې بېلګه معمولاً درېدل په بشپړه توګه له لاسه ورکوي، نو د لوستلو ترڅنګ د کرنل نسخه وساتئ.
cat /proc/sys/kernel/random/entropy_avail
uname -rسمون له لوستلو سره سم کړئ
که کرنل واقعاً د پیل کېدو انتظار کوي، تونل ته نه، بلکې د پلیټ فارم ملاتړ شوې تخم کولو لارې ته وګورئ. مجازي ماشین ته کولای شي د کوربه لخوا ورکړل شوی تصادفي وسیله ورکړل شي، لکه virtio-rng, او د انځور چمتو کول مهم دي، ځکه چې په ډېرو مېلمنو کې بې بدلونه کاپي شوی تخم خپلواک پیل کېدل نه دی. که کتابتون د بوت وروسته د تخم کولو ناکامۍ راپور کړي، د کرنل تنظیماتو بدلولو پرځای د هغې تنظیم شوې سرچینه او د عرضه کوونکي چلند وګورئ.
ss -tin dst 203.0.113.7
sar -n DEV 1 5د OpenSSL جوړوونکي اسناد بیانوي چې دا لړۍ څنګه ننوتل ترلاسه کوي او بیا تخم کول کله پېښېږي، چې دا له افسانې څخه ډېر تنګ ادعا ده او یوازې د هغې پلي کولو لپاره سمه ده. د انټروپي ډیمون د سرعت نړیواله ترمیم نه دی، او د شمېرونکي د لوړولو لپاره یې نصبول پرته له دې چې ځنډ وښیي د امنیت انګېرنه بدلوي. د تېرېدو وړتیا لپاره د ډاټا لاره تعقیب کړئ: یو اشباع شوی تار، بیا لېږل، بهرنی زیان او د قطار لوېدل هر یو بېل سمون غواړي، او د بفر اندازې د ساکټ بفر کول د خپلو قطار شاهدانو سره سمبالوي.