OpenVPN کلي جوړولو لپاره تاسو ته لنډمهاله فایل ته اړتیا نشته
د کلي موادو په حافظه کې ساتل د فایل د ژوند دورې څخه مخنیوی کوي، نه د افشا څخه۔ د وتنې او تېروتنې جریانونه بېل وساتئ، او بیا کلي د پټې په توګه وګڼئ۔
د کلي جوړول لنډمهاله فایل ته اړتیا نه لري، او د هغه پریښودل هغومره نه سمونږي څومره چې ډېری لارښودونه اشاره کوي۔ هغه شی چې لرې کوي یې د فایل ژوند دوره او د هغې شاوخوا د پاکونې سیالي ده۔ هغه شی چې لاس نه ورسوي یې د وروسته د پټې د افشا هر فرصت دی۔ په دې سکریپټونو کې د سمون ستونزه معمولاً بل ځای وي، ځکه چې تشخیص او د کلي مواد په بېلو جریانونو کې سفر کوي۔
فایل هېڅکله هغه ښکاریدنه نه وه چې تاسو یې فکر کاوه
لنډمهاله فایل یو مشخص خطر دی کله چې ټول یې لوستلی شي، کله چې له نړېدو ژوندی پاتې شي، یا کله چې له استثنا وروسته د پاکونې ګام پریښودل شي۔ دا ریښتیني دي، او د سمولو وړ دي۔ دوی سیمه ییز، ښکاره او د ازموینې لپاره اسانه هم دي۔ لومړی باید په خپل سکریپټ کې هر یو ونوموئ، بیا دې پایلې ته ورسیږئ چې بدلون یوازې ښکاریدونکی و۔
غږېدلي خطرونه لاندې ناست دي: هغه کلي چې د ډیبګ پر مهال چاپیږي، هغه استثنا چې ټول پایله توکی سریال کوي، هغه نړېدونکی سمبالګر چې کور ډمپ لیکي، هغه لاګ غونډوونکی چې لومړی د فایل لاره او بیا منځپانګه ترلاسه کوي۔ د لنډمهاله فایل څخه مخنیوی د دوی له هیچا لپاره هېڅ نه کوي، او د هغې خلاف باور کول هغه لاره ده چې ښه نیت لرونکی بیا لیکل پټه له پخوا څخه ډېره افشا شوې پرېږدي۔ بدلون د یوې لړۍ په توګه وګڼئ، نه د حل په توګه۔
کله چې د فایل نوم نه ورکول کیږي کلاینټ څه لیکي
د کلاینټ اوسني نسخې جوړ شوی کلي معیاري وتنې ته استوي کله چې د کلي امر پرته له وتنې لارې ورکړل شي۔ همدا مستنده چلند دی چې په حافظه کې طریقه ممکنه کوي، او د وسیلې د وسایل لارې ته د لارښوونې پخوانی چل حذفوي۔
import subprocess
proc = subprocess.run(
["openvpn", "--genkey", "tls-crypt"],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
check=True,
)
key_material = proc.stdout
امر د لړلیک په توګه ورکړئ۔ دلته د شیل پراختیا ته اړتیا نشته، او د شیل فعالول به د استدلالونو پوله د هغو نښو پورې وتړي چې تاسو یې کنټرول نه لرئ۔ که سکریپټ ممکن د هغې له پلټنې لارې سره چې تاسو یې تمه لرئ بېله لارې وګرځي، نو د پام وړ اجرایی فایل په مطلق لاره وکاروئ۔
د بېرته راستنیدو کوډ ګوري چې د ناکامې غوښتنې وروسته د بریا لاره دوام ونه کړي۔ پرته له هغې، خالي بایټ لړۍ کولای شي مخته ولاړه شي او یوازې ډېر وروسته ناکامه شي، په هغه ټکي کې چې کلي کارول کیږي او د تېروتنې پیغام نور د جوړولو ذکر نه کوي۔
دوه جریانونه، دوه ماناګانې
معیاري وتنه کلي لېږدوي۔ معیاري تېروتنه هر هغه څه لېږدوي چې وسیله غواړي تاسو ته ووایي، په شمول د ترتیب، نسخې او د کلي ډول په اړه خبرداریو۔ دواړه یو بفر ته اړول هغه تېروتنه ده چې د باور وړ ښکاریدونکی کلي جوړوي چې په مینځ کې یې یوه جمله ګنډل شوې ده۔
د ناکامۍ لاره هم بېله وساتئ۔ کله چې غوښتنه ناکامه شي، ناکام شوی امر او د وتنې حالت راپور کړئ، بیا په هوښیارۍ پریکړه وکړئ چې د معیاري تېروتنې کومه برخه د ښودلو لپاره خوندي ده۔ ټول پایله توکی لاګ ته اچول معمول لنډه لاره ده، او کولای شي کلي له ځان سره یوسي۔
د باینري لپاره خوندي لوستل مهم دي که وروسته مواد هش کوئ یا یې پرتله کوئ۔ د ناڅاپي کوډ کولو سره د متن حالت کولای شي هغه بایټونه بدل کړي چې هېڅکله د متن کیدو لپاره نه وو، او بدل شوی کلي تر هغه چې لاس ورکول ناکام شي د غلط کلي څخه بېلیدلای نه شي۔
که تاسو یې ساتل غواړئ، په هوښیارۍ یې وکړئ
ډېری ځای پرځای کول په پای کې کلي په ډیسک، په ګیټوی یا په پټې ذخیره کې غواړي۔ یو ځل یې ولیکئ، له جوړیدو څخه محدودو اجازتونو سره، نه د وروسته chmod سره، او لیکل اتومي کړئ تر څو جزوي فایل هېڅکله هغه فایل نه شي چې یوه خدمت د پیل پر مهال لولي۔ په ورته لارښود کې د لارې له مخې نوم بدلول معمولاً هغې ته کافي دي۔ د ناکامۍ په څانګه کې د چمتووالي لاره لرې کړئ، ځکه چې ناکامه لیکنه هغه کاپي ده چې خلک یې هېروي۔
د فایل حالت د جوړیدو پر مهال وټاکئ، او د لارښود حالت هم محدود وساتئ۔ د هغه ځای لاندې له هرې لارې څخه ډډه وکړئ چې د بیک اپ کار پرته له فکر کولو ټولوي، ځکه چې په شپني بیک اپ کې پټه د هغه بیک اپ په هر کاپي کې پټه ده۔ ورته منطق په شریکه شوي حجم باندې هم تطبیقیږي چې نور خدمتونه یې لوستلی شي۔
شریکه کلي هویت نه دی
د دې موادو جوړول سند نه صادروي، کلاینټ نه ثبتوي او نه ټاکي چې څوک نښلول کیږي۔ شریکه کلي د هغو خواو ترمنځ چینل ساتي چې دمخه یو بل باوري دي؛ هویت لا هم د سند او هغې مخکې ناستې هرې تصدیق څخه راځي۔
د کلي ډولونه هم یو بل ته بدلیدلای نه شي۔ د یوې ځانګړنې لپاره سیمټریک کلي د بل لپاره چمتو بدیل نه دی، او نوي خپرونې په هر سر کې بېلو فایلونو سره خپل ډولونه زیاتوي۔ هغه ډول جوړ کړئ چې ستاسو ترتیب واقعیا یې نوم اخلي، بیا یې د هغه رول کې وکاروئ چې هغه ډول تعریفوي۔
پایله د فایل د اندازې په کتلو نه، بلکې په ریښتیني اړیکه ازموئ۔ که لاس ورکول بشپړ شي او لاګونه د کلي خبرداری ونه ښیي، د جوړولو لاره سمه ده؛ که کلي د یوځای شوي جریان له امله پرې شوی وای، اړیکه به داسې ناکامه شوې وای چې سکریپټ ته نه، بلې خوا ته اشاره کوي۔