openssl rand tls-crypt விரும்பும் விசையை ஏன் உருவாக்க முடியாது
OpenSSL சீரற்ற பைட்டுகளை உருவாக்குகிறது; tls-crypt க்கு கட்டமைக்கப்பட்ட நிலையான விசைக் கோப்பு தேவை, tls-crypt-v2 க்கு சேவையகம் மட்டுமே சுருட்டக்கூடிய விசை தேவை. openvpn --genkey பயன்படுத்தவும்.
OpenSSL ஏற்கனவே நிறுவப்பட்டுள்ளது, ஹோஸ்ட்டில் என்ட்ரோபி உள்ளது, அதனால் விசையை உருவாக்குவது வெளிப்படையான குறுக்குவழியாகத் தோன்றுகிறது. வெளியீடு சீரற்றதாகவும் ரகசியமாகவும் முற்றிலும் பயன்படுத்த முடியாததாகவும் இருக்கும், தோல்வி விசை வடிவமைப்பைக் குறிப்பிடும் எதற்கும் பதிலாக கட்டுப்பாட்டு-சேனல் பிழையாக வரும். இந்தத் திசைதிருப்பலே விலை உயர்ந்த பகுதி, ஏனெனில் இது மக்களை அவர்களின் சைஃபர்களை ஆய்வு செய்ய அனுப்புகிறது. VPN படிப்பது ஒரு குறிப்பிட்ட கோப்பு கட்டமைப்பு, தன்னிச்சையான பைட் தொகுதி அல்ல, இந்த அம்சத்தின் ஒரு வகையை சேவையகத்திற்கு வெளியே உருவாக்கவே முடியாது.
வட்டில் உள்ள கோப்பு உண்மையில் என்னவாக இருக்க வேண்டும்
OpenVPN இன் நிலையான விசைக் கோப்பு உரை. இது என்ன என்பதை அறிவிக்கும் கருத்து வரியுடன் தொடங்குகிறது, நிலையான அகல வரிகளில் ஹெக்ஸ் தரவைக் கொண்டுள்ளது, மொத்தம் 256 பைட் விசைப் பொருளைக் கொண்டுள்ளது. OpenVPN அதைக் கட்டுப்பாட்டு சேனலின் பங்கிடப்பட்ட ரகசியமாகப் படிக்கிறது, சான்றிதழாக அல்ல, கடவுச்சொல் தொடராக அல்ல, TLS நூலகம் அடையாளம் காணும் எதுவாகவும் அல்ல.
அதே பொருள் வகை கட்டுப்பாட்டு சேனலின் இரண்டு அம்சங்களுக்கும் சேவை செய்கிறது. tls-auth உடன், ஒரு பக்கத்தின் பாக்கெட்டுகள் அதன் மீது திரும்பப் பிரதிபலிக்க முடியாதபடி ஒவ்வொரு பியருக்கும் திசை தேவை. tls-crypt உடன், ஒரு பங்கிடப்பட்ட ரகசியம் இரு திசைகளிலும் கட்டுப்பாட்டு சேனலை என்க்ரிப்ட் செய்து அங்கீகரிக்கிறது, இது கைக்குலுக்கலை மறைக்கிறது மற்றும் அதே நேரத்தில் பாதுகாக்கிறது.
இவற்றில் எதுவும் ரகசிய அறிவு அல்ல, வடிவமைப்பு முக்கிய விஷயம் அல்ல. முக்கிய விஷயம் என்னவென்றால், கோப்பு படிப்பவர் எதிர்பார்ப்பதற்கு சரியாகப் பொருந்த வேண்டும்: தலைப்பு, வரி அகலம், இறுதி புதிய வரி மற்றும் மொத்த நீளம். ஒரு வரி தவறான கோப்பு குப்பையாக ஏற்றப்படும் அல்லது முற்றிலும் தோல்வியடையும். எனவே இரண்டு பியர்களை பைட்-பைட்டாக ஒப்பிடுவது சட்டபூர்வமான முதல் சோதனை, மேலும் இது இரண்டு உள்ளமைவு கோப்புகளில் எதையும் படிப்பதை விட வேகமானது.
ஒன்றை உருவாக்கும் ஆதரிக்கப்பட்ட வழி
எளிய நிலையான விசையை அதைப் பயன்படுத்தும் கருவியால் உருவாக்கி, பின்னர் இரு முனைகளிலிருந்தும் அதைப் பார்க்கவும்:
openvpn --genkey secret /etc/openvpn/tc-shared.key
tls-crypt /etc/openvpn/tc-shared.key
விருப்பத்தின் எழுத்துப்பிழை காலப்போக்கில் மாறியது: 2.4 சகாப்தத்தின் பழைய நிறுவல்கள் கோப்புப் பெயருக்கு முன் தனி கொடியுடன் கூடிய வடிவத்தைப் பயன்படுத்தின, தற்போதைய பில்ட்கள் குறுகியதை ஏற்கின்றன. எப்படியிருந்தாலும் விளைவு கோப்பு அதே பொருள் வகை, எனவே சரிபார்ப்பு இரண்டு பியர்களும் ஒரே பைட்டுகளைக் கொண்டிருக்கின்றனவா என்பதுதான்.
இரண்டாம் தலைமுறை எந்த வெளிப்புற உருவாக்கியும் கண்டுபிடிக்க முடியாத கட்டமைப்பைச் சேர்க்கிறது. சேவையக விசை ஒரு முறை உருவாக்கப்படுகிறது, ஒவ்வொரு கிளையன்டும் அதிலிருந்து பெறப்பட்ட சுருட்டப்பட்ட விசையைப் பெறுகிறது:
openvpn --genkey tls-crypt-v2-server /etc/openvpn/tc-v2-server.key
openvpn --genkey tls-crypt-v2-client /etc/openvpn/laptop1.key --tls-crypt-v2 /etc/openvpn/tc-v2-server.key
கிளையன்ட் பெறுவது சேவையகத்தின் சொந்த விசையின் நகல் அல்ல. இது சேவையகம் மட்டுமே திறக்கக்கூடிய மெட்டாடேட்டாவைக் கொண்ட சுருட்டப்பட்ட பொருள், இந்தச் சுருட்டல் காரணமாகவே ஒரு சாதனத்திற்கான கோப்பை வேறு எந்த சாதனத்தையும் தொடாமல் ரத்து செய்ய முடியும். சேவையக விசையை சேவையகத்திலேயே வைத்து, அதை அந்த சாதன அடிப்படையிலான நம்பிக்கையின் வேராகக் கருதுங்கள்.
கையால் உருவாக்கப்பட்ட பைட்டுகள் எங்கு உடைகின்றன
சரியான தலைப்பின் கீழ் 256 சீரற்ற பைட்டுகளை ஹெக்ஸாக அச்சிடுவது கோட்பாட்டளவில் ஏற்றப்படும் நிலையான விசைக் கோப்பைத் தரும். இது இன்னும் மோசமான யோசனை. ஒவ்வொரு வடிவமைப்பு விவரமும் ஏற்றும்போது தோல்வியடையும் அல்லது, மோசமாக, அங்கீகாரத் தோல்வியாக மட்டுமே வெளிப்படும் வெவ்வேறு மதிப்புகளுடன் இரண்டு பியர்களை விட்டுச் செல்லும் பொருளை உருவாக்கும் வாய்ப்பாக மாறுகிறது.
v2 வகையுடன் சமமான எதுவும் சாத்தியமில்லை. சுருட்டப்பட்ட கிளையன்ட் விசை சேவையக விசை செயல்முறையின் வெளியீடாக மட்டுமே உள்ளது, அதைத் திறக்கத் தேவையான பொருளை சேவையகம் வைத்திருக்கிறது. சீரற்ற தொகுதி நிராகரிக்கப்படும் அல்லது வெறுமனே டிக்ரிப்ட் செய்ய முடியாது, இரண்டு செய்திகளில் எதுவும் சீரற்ற தன்மையைக் குறிப்பிடாது.
பதிப்பு இணக்கத்தன்மை இவை அனைத்திற்கும் மேலே உள்ளது. முதல் தலைமுறைக்கு இரு முனைகளிலும் அதை ஆதரிக்கும் வெளியீடு தேவை, இரண்டாவதற்கு மீண்டும் புதிய வெளியீடு தேவை. அம்சம் இருப்பதற்கு முன் கட்டப்பட்ட கிளையன்ட் சுருட்டப்பட்ட பொருளை மட்டுமே ஏற்கும் சேவையகத்துடன் கைக்குலுக்கலை முடிக்க முடியாது, அது அறிவிக்கும் தோல்வி பதிப்பை அல்ல, கட்டுப்பாட்டு சேனலைச் சுட்டுகிறது.
அனைவரையும் வெளியே பூட்டாமல் சுழற்றுதல்
ஒரு பங்கிடப்பட்ட ரகசியத்தைச் சுழற்றுவது தொழில்நுட்பமல்ல, ஒருங்கிணைப்புப் பயிற்சி. சேவையகம் முந்தையதைத் திரும்பப் பெறுவதற்கு முன் ஒவ்வொரு கிளையன்டின் கையிலும் மாற்றுக் கோப்பு இருக்க வேண்டும், பழைய மதிப்பை இன்னும் வைத்திருக்கும் எந்த இயந்திரமும் அந்தக் கணத்தில் தோல்வியடையும். வேலை நாளின் நடுவில் அந்தச் சுழற்றலைத் தொடங்க வேண்டாம்.
v2 ஏற்பாட்டுடன், சுழற்றுதல் ஒவ்வொரு சாதனத்திற்கும்: ஒரு இயந்திரத்திற்கு புதிய சுருட்டப்பட்ட விசையை வழங்கி, பழையதை அந்த இயந்திரத்திற்கு மட்டும் ஓய்வு பெறச் செய்யுங்கள். ஒவ்வொரு கிளையன்டும் அதை ஆதரிக்கும் வெளியீட்டில் இருக்கும்போது மாறுவதற்கான முக்கிய வாதம் இதுவே.
கோப்பு அனுமதிகள் அதே உரையாடலுக்கு உரியவை. விசை சேவையை இயக்கும் கணக்கிற்கு மட்டுமே படிக்கக்கூடியதாக இருக்க வேண்டும், அது பாதுகாக்கும் சுயவிவரங்களுடன் அதே களஞ்சியத்தில் இருக்கக்கூடாது. OpenVPN 2.6 குறிப்பு உருவாக்கும் வடிவங்களையும் விசைப் பொருள் பிரிவுகளையும் ஆவணப்படுத்துகிறது, இது மன்ற இடுகையிலிருந்து நகலெடுக்கப்பட்ட கட்டளையை விட சிறந்த ஆதாரம்.