OpenVPN விசையை உருவாக்க தற்காலிக கோப்பு உங்களுக்குத் தேவையில்லை
விசைப் பொருளை நினைவகத்தில் வைத்திருப்பது கோப்பின் வாழ்க்கைச் சுழற்சியைத் தவிர்க்கிறது, கசிவை அல்ல. வெளியீடு மற்றும் பிழை ஓடைகளைத் தனியாக வையுங்கள், பின்னர் விசையை இரகசியமாகக் கருதுங்கள்.
விசை உருவாக்கத்திற்கு தற்காலிக கோப்பு தேவையில்லை, அதைத் தவிர்ப்பது பெரும்பாலான வழிகாட்டிகள் குறிப்பிடுவதை விடக் குறைவாகவே சரிசெய்கிறது. அது நீக்குவது கோப்பின் வாழ்க்கைச் சுழற்சியும் அதைச் சுற்றியுள்ள சுத்தம் செய்யும் போட்டியும். அது தொடாமல் விடுவது பின்னர் இரகசியத்தைக் கசியவிடும் ஒவ்வொரு வாய்ப்பும். இந்த ஸ்கிரிப்ட்களில் உள்ள துல்லியச் சிக்கல் பொதுவாக வேறெங்கோ அமர்கிறது, ஏனெனில் கண்டறிதலும் விசைப் பொருளும் வெவ்வேறு ஓடைகளில் பயணிக்கின்றன.
கோப்பு ஒருபோதும் நீங்கள் நினைத்த அந்த வெளிப்பாடு அல்ல
தற்காலிக கோப்பு அனைவரும் படிக்கக்கூடியதாக இருக்கும்போது, செயலிழப்பிலிருந்து தப்பிக்கும்போது, அல்லது விதிவிலக்கிற்குப் பிறகு சுத்தம் செய்யும் படி தவிர்க்கப்படும்போது அது உறுதியான ஆபத்து. இவை உண்மையானவை, சரிசெய்வது மதிப்புள்ளது. அவை உள்ளூர், தெரியக்கூடிய மற்றும் சோதிக்க எளிதானவை. மாற்றம் வெறும் தோற்றமளிப்பு என்று முடிவெடுக்கும் முன் உங்கள் சொந்த ஸ்கிரிப்டில் ஒவ்வொன்றையும் பெயரிடுங்கள்.
அமைதியான ஆபத்துகள் கீழே அமர்கின்றன: பிழைத்திருத்தத்தின் போது அச்சிடப்படும் விசை, முழு முடிவுப் பொருளையும் வரிசைப்படுத்தும் விதிவிலக்கு, மையக் குவியலை எழுதும் செயலிழப்பு கையாளுதல், முதலில் கோப்புப் பாதையையும் பின்னர் உள்ளடக்கத்தையும் பெறும் பதிவு சேகரிப்பான். தற்காலிகக் கோப்பைத் தவிர்ப்பது அவற்றில் எதற்கும் எதுவும் செய்யாது, மாறாக நம்புவதே நல்லெண்ண மறுஎழுத்து இரகசியத்தை முன்பை விட அதிகமாக வெளிப்படையாக விட்டுச் செல்லும் வழி. மாற்றத்தை வரிசையில் ஒரு மேம்பாடாகக் கருதுங்கள், தீர்வாக அல்ல.
கோப்புப் பெயர் கொடுக்கப்படாதபோது வாடிக்கையாளர் என்ன எழுதுகிறார்
வாடிக்கையாளரின் தற்போதைய பதிப்புகள் வெளியீட்டுப் பாதை இல்லாமல் விசைக் கட்டளை கொடுக்கப்படும்போது உருவாக்கப்பட்ட விசையை நிலையான வெளியீட்டிற்கு அனுப்புகின்றன. அந்த ஆவணப்படுத்தப்பட்ட நடத்தையே நினைவக அணுகுமுறையை சாத்தியமாக்குகிறது, மேலும் கருவியை சாதனப் பாதைக்குத் திருப்பும் பழைய தந்திரத்தின் தேவையை நீக்குகிறது.
import subprocess
proc = subprocess.run(
["openvpn", "--genkey", "tls-crypt"],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
check=True,
)
key_material = proc.stdout
கட்டளையை பட்டியலாக அனுப்புங்கள். இங்கே ஷெல் விரிவாக்கம் தேவையில்லை, ஷெல்லை இயக்குவது வாதங்களின் எல்லையை நீங்கள் கட்டுப்படுத்தாத மேற்கோள் குறிகளில் சார்ந்ததாக்கும். ஸ்கிரிப்ட் நீங்கள் எதிர்பார்ப்பதை விட வேறு தேடல் பாதையுடன் இயங்கக்கூடுமானால், நோக்கமான இயக்கக்கூடிய கோப்பை முழுப் பாதையில் பயன்படுத்துங்கள்.
திரும்பு குறியீட்டுச் சோதனை தோல்வியடைந்த அழைப்பிற்குப் பிறகு வெற்றிப் பாதை தொடர்வதைத் தடுக்கிறது. அது இல்லாமல், காலி பைட் சரம் முன்னோக்கி ஓடி மிகவும் தாமதமாக மட்டுமே தோல்வியடையும், விசை பயன்படுத்தப்படும் இடத்தில், பிழைச் செய்தி இனி உருவாக்கத்தைப் பற்றி எதுவும் குறிப்பிடாதபோது.
இரண்டு ஓடைகள், இரண்டு பொருள்கள்
நிலையான வெளியீடு விசையைச் சுமக்கிறது. நிலையான பிழை கருவி உங்களுக்குச் சொல்ல விரும்பும் அனைத்தையும் சுமக்கிறது, உள்ளமைவு, பதிப்பு மற்றும் விசை வகை பற்றிய எச்சரிக்கைகள் உட்பட. இரண்டையும் ஒரே இடையகத்திற்குத் திருப்புவதே நம்பத்தகுந்த தோற்றமளிக்கும் விசையை அதன் நடுவில் ஒரு வாக்கியத்தைத் தைத்து உருவாக்கும் தவறு.
தோல்விப் பாதையையும் தனியாக வையுங்கள். அழைப்பு தோல்வியடையும்போது, தோல்வியடைந்த கட்டளையையும் வெளியேறும் நிலையையும் தெரிவித்து, பின்னர் நிலையான பிழையின் எந்தப் பகுதியையாவது காட்டுவது பாதுகாப்பானதா என்று உணர்வுபூர்வமாக முடிவு செய்யுங்கள். முழு முடிவுப் பொருளையும் பதிவுக்குள் கொட்டுவது வழக்கமான குறுக்குவழி, அது விசையையும் தன்னுடன் எடுத்துச் செல்லக்கூடும்.
பின்னர் பொருளை ஹாஷ் செய்தால் அல்லது ஒப்பிட்டால் இருமத்திற்குப் பாதுகாப்பான வாசிப்பு முக்கியம். எதிர்பாராத குறியாக்கத்துடன் கூடிய உரைப் பயன்முறை ஒருபோதும் உரையாக இருக்க நினைக்கப்படாத பைட்டுகளை மாற்றக்கூடும், மாற்றப்பட்ட விசை கைக்குலுக்கல் தோல்வியடையும் வரை தவறான விசையிலிருந்து வேறுபடுத்த முடியாது.
எப்படியாவது அதைச் சேமித்தால், உணர்வுபூர்வமாகச் செய்யுங்கள்
பெரும்பாலான பயன்பாடுகளுக்கு இறுதியில் விசை வட்டில், நுழைவாயிலில் அல்லது இரகசியக் கிடங்கில் தேவைப்படுகிறது. ஒருமுறை எழுதுங்கள், உருவாக்கத்திலிருந்தே கட்டுப்படுத்தப்பட்ட அனுமதிகளுடன், பின்னர் chmod மூலம் அல்ல, மேலும் எழுத்தை அணுவாக்குங்கள், பகுதிக் கோப்பு ஒருபோதும் சேவை தொடக்கத்தில் படிக்கும் கோப்பாக மாறாதிருக்க. ஒரே அடைவில் உள்ள பாதையிலிருந்து மறுபெயரிடுவது பொதுவாக அதற்குப் போதுமானது. தோல்விக் கிளையில் தயாரிப்புப் பாதையை அகற்றுங்கள், ஏனெனில் தோல்வியடைந்த எழுத்தே மக்கள் மறக்கும் நகல்.
கோப்பு உருவாக்கப்படும்போது அதன் பயன்முறையை அமைக்கவும், அடைவின் பயன்முறையையும் கட்டுப்படுத்தப்பட்டதாக வைக்கவும். காப்புப்பிரதிப் பணி யோசிக்காமல் அள்ளும் இடத்தின் கீழ் எந்தப் பாதையையும் தவிர்க்கவும், ஏனெனில் இரவுக் காப்புப்பிரதியில் உள்ள இரகசியம் அந்தக் காப்புப்பிரதியின் ஒவ்வொரு நகலிலும் இரகசியம். இதே தர்க்கம் மற்ற சேவைகள் படிக்கக்கூடிய பங்கிடப்பட்ட தொகுதிக்கும் பொருந்தும்.
பங்கிடப்பட்ட விசை ஒரு அடையாளம் அல்ல
இந்தப் பொருளை உருவாக்குவது சான்றிதழ் வழங்காது, வாடிக்கையாளரைப் பதிவு செய்யாது, யார் இணைகிறார்கள் என்பதையும் நிறுவாது. பங்கிடப்பட்ட விசை ஏற்கனவே ஒருவரை ஒருவர் நம்பும் தரப்புகளுக்கிடையேயான தடத்தைப் பாதுகாக்கிறது; அடையாளம் இன்னும் சான்றிதழிலிருந்தும் அதன் முன் அமரும் எந்த அங்கீகாரத்திலிருந்தும் வருகிறது.
விசை வகைகளும் ஒன்றுக்கொன்று மாற்றக்கூடியவை அல்ல. ஒரு அம்சத்திற்கான சமச்சீர் விசை மற்றொன்றிற்கு தயாராக மாற்று அல்ல, புதிய வெளியீடுகள் ஒவ்வொரு முனையிலும் வெவ்வேறு கோப்புகளுடன் தங்கள் சொந்த வகைகளைச் சேர்க்கின்றன. உங்கள் உள்ளமைவு உண்மையில் பெயரிடும் வகையை உருவாக்கி, பின்னர் அந்த வகை வரையறுக்கும் பாத்திரத்தில் அதைப் பயன்படுத்துங்கள்.
கோப்பின் அளவைப் பார்ப்பதற்குப் பதிலாக உண்மையான இணைப்பால் முடிவைச் சோதியுங்கள். கைக்குலுக்கல் முடிந்து பதிவுகள் விசை எச்சரிக்கைகளைக் காட்டவில்லை என்றால், உருவாக்கப் பாதை சரியானது; விசை ஒன்றிணைந்த ஓடையால் வெட்டப்பட்டிருந்தால், இணைப்பு ஸ்கிரிப்டை அல்ல, எதிர்த் தரப்பைச் சுட்டிக்காட்டும் வகையில் தோல்வியடைந்திருக்கும்.