பெரும்பாலான OpenVPN TLS விவாதங்களில் மூன்று வெவ்வேறு உண்மைகள் ஒரே வரியில் சுருக்கப்படுகின்றன: உங்கள் கிளையண்ட் கட்டுமானம் என்ன செய்ய முடியும், சுயவிவரம் எதை அனுமதிக்கிறது, மற்றும் அமர்வு உண்மையில் எதைப் பேச்சுவார்த்தை செய்தது. சிறிய TLS 1.3 தொகுப்பு பட்டியல் நடுப் பகுதியின் கேள்விக்கு பாதி மட்டுமே பதிலளிக்கிறது, மேலும் நெறிமுறை பதிப்பின் கீழ் வரம்பு பற்றி எதுவும் கூறவில்லை. கீழே உள்ள சரிபார்ப்புகளை வரிசையாகச் செய்து, முதலில் தோல்வியடையும் இடத்தில் நிறுத்துங்கள், ஏனெனில் ஒவ்வொரு அடுத்த சரிபார்ப்பும் முந்தையவை தீர்க்கப்பட்டதாகக் கருதுகிறது.

எந்தப் பட்டியலையும் படிப்பதற்கு முன் கட்டுமானத்தைச் சரிபார்க்கவும்

கட்டமைப்பு வழிமுறை, நெறிமுறை ஆதரவு இல்லாத பைனரிக்கு அதைச் சேர்க்க முடியாது. தொகுக்கப்பட்ட கிரிப்டோ நூலகத்தின் பெயரைக் கூறும் பதிப்பு பேனருடன் தொடங்குங்கள்:

openvpn --version

OpenSSL உடன் இணைக்கப்பட்ட 2.6 கட்டுமானம் tls-cipher மற்றும் tls-ciphersuites இரண்டையும் ஏற்கிறது. mbed TLS உடன் கட்டுமானத்தில் TLS 1.3 தொகுப்புத் தேர்வே இல்லை, மேலும் 2.6 கையேடு tls-ciphersuites ஐ OpenSSL விருப்பமாகக் குறிக்கிறது. சேவையகம் வேறு பின்தளத்துடன் மீண்டும் கட்டப்பட்டால், அதே சுயவிவரம் ஒரு வரி கட்டமைப்பும் மாறாமல் அதன் நடத்தையை மாற்றலாம்.

நீங்கள் இங்கிருக்கும்போது openvpn --show-tls ஐ இயக்கி வெளியீட்டைச் சேமிக்கவும். அதுவே பின்னர் ஒப்பிடப்போகும் பட்டியல், மேலும் யாரும் சுயவிவரங்களைத் திருத்தத் தொடங்குவதற்கு முன் அதைப் பிடிப்பது மலிவு.

பேனரையும் பட்டியலையும் அரட்டைச் சாளரத்தில் அல்ல, மாற்ற டிக்கெட்டில் எழுதுங்கள். ஆறு வாரங்களில் கிளையண்ட் ஒரு தொகுப்பை வழங்க முடியுமா என்பதைப் பற்றி இரண்டு பேர் வாதிடும்போது, பிடிக்கப்பட்ட வெளியீடு அதை ஒரு வரியில் தீர்மானிக்கிறது.

பதிப்பு வரம்புகளை சைஃபர் பட்டியல்களிலிருந்து தனியாக வைத்திருங்கள்

2.6 கையேட்டில் இவை ஒன்றல்ல, மூன்று கட்டுப்பாடுகள்:

  • tls-cipher TLS 1.2 மற்றும் அதற்கு முந்தையவற்றுக்கான சைஃபர் கொள்கையை அமைத்து OpenSSL இன் சைஃபர் பட்டியலுக்கு அனுப்பப்படுகிறது;
  • tls-ciphersuites TLS 1.3 தொகுப்புகளைத் தேர்ந்தெடுக்கிறது;
  • tls-version-min மற்றும் tls-version-max இணைப்பு பயன்படுத்தக்கூடிய நெறிமுறை பதிப்புகளை வரம்பிடுகின்றன.

எனவே கவனமாக வெட்டப்பட்ட TLS 1.3 தொகுப்பு பட்டியல் பழைய பதிப்பு இன்னும் அனுமதிக்கப்படுகிறது என்பதை எதுவும் நிரூபிக்கவில்லை. தேவை «TLS 1.3 மட்டும்» என்றால், அதைத் தாங்குவது பதிப்பின் கீழ் வரம்பே, மேலும் தொகுப்பு பட்டியல் அந்த வரம்பிற்குள் தேர்வுகளை மட்டுமே சுருக்குகிறது:

tls-version-min 1.3
tls-ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

இந்த இணை இரண்டு வேலைகளைச் செய்கிறது. ஒரு வரியை நீக்கினால் மற்றது நீங்கள் நினைப்பதை விடக் குறைவாகவே நடைமுறைப்படுத்துகிறது, மேலும் இந்த முழு சரிபார்ப்பும் அந்தத் தோல்வியைப் பிடிக்கவே உள்ளது.

தரவு சேனல் நான்காவது கட்டுப்பாடு. data-ciphers சுரங்கப்பாதைக்குள் சமச்சீர் சைஃபரைப் பேச்சுவார்த்தை செய்கிறது, அதன் முடிவு கட்டுப்பாட்டு சேனலின் TLS பதிப்பைப் பற்றி எதுவும் கூறவில்லை. அமர்வு சுருக்கத்தில் AES-256-GCM காண்பது எந்தத் திசையிலும் TLS 1.3 க்கான சான்று அல்ல.

show-tls ஐ உள்ளூர் பட்டியலாகப் படியுங்கள்

--show-tls இந்த பைனரி இணைக்கப்பட்ட கிரிப்டோ நூலகம் ஆதரிக்கும் தொகுப்புகளை முன்னுரிமை வரிசையில் பட்டியலிடுகிறது. இது நுழைவாயிலிருந்து வந்த அறிக்கை அல்ல. பட்டியல் உள்ளூர் நூலகத்திலிருந்து வருகிறது என்று கையேடு வெளிப்படையாகக் கூறுகிறது, அதாவது OpenSSL 3.x உள்ள மடிக்கணினியும் பழைய கட்டுமானம் உள்ள திசைவியும் ஒரே சேவையகத்துடன் பேசும்போது வெவ்வேறு பட்டியல்களை அச்சிடும்.

EvidenceWhat it actually describes
--show-tls outputCapabilities of this client build and its library
Profile directivesWhat this attempt is allowed to offer
Session log lineWhat this one negotiation selected

கிளையண்ட் A, B மற்றும் C தொகுப்புகளை ஆதரிக்கிறது, ஒரு அமர்வு B ஐத் தேர்ந்தெடுக்கிறது என்று வைத்துக்கொள்வோம். சேவையகம் A அல்லது C ஐ அனுமதிக்கிறதா, அல்லது B அதன் ஒரே அனுமதிக்கப்பட்ட தேர்வா என்பதை அது எதுவும் நிறுவவில்லை. மூன்று வரிசைகளையும் தனித்தனியாக வைத்திருங்கள், குழப்பமான TLS விவாதங்களில் பெரும்பாலானவை தாமாகவே தீரும்.

பட்டியலை வைத்திருப்பது இன்னும் மதிப்புள்ளது. அமர்வு தோல்வியடையும்போது, நூலகப் பட்டியலையும் சுயவிவரப் பட்டியலையும் ஒப்பிடுவது சேவையகம் விரும்பியதை வழங்க கிளையண்டுக்கு ஏதேனும் வாய்ப்பு இருந்ததா என்பதைக் கூறும். பழைய கிளையண்டுகள் சார்ந்திருக்கும் தொகுப்பிலிருந்து ஒரு பின்தள மாற்றம் TLS_CHACHA20_POLY1305_SHA256 ஐ அமைதியாக நீக்கியதா என்பதையும் அது காட்டும் — மற்றவர்கள் எதையும் கவனிக்காதபோது சில பயனர்கள் இணைக்க முடியாததாகத் தோன்றும் அந்த வகை பின்னடைவு.

நுழைவாயிலிடம் அது பதிலளிக்கக்கூடிய ஒன்றைக் கேளுங்கள்

நீங்கள் சேவையை நிர்வகித்தால், வட்டில் உள்ள கோப்பை அல்ல, இயங்கும் நிகழ்வின் பயனுள்ள கட்டமைப்பைச் சரிபார்க்கவும். OpenVPN வேறு --config பாதையுடன் தொடங்கியிருக்கலாம், உள்ளடக்கங்களை இழுக்கலாம், திருத்தத்திற்குப் பிறகு மறுதொடக்கம் செய்யப்படாமல் இருக்கலாம். கிளையண்டுகள் சந்திப்பது இயங்கும் டீமனின் கொள்கையே.

நீங்கள் அதை நிர்வகிக்கவில்லை என்றால், இயக்குநரிடம் ஆதரிக்கப்படும் கிளையண்ட் தேவைகள் அல்லது வரம்புக்குட்பட்ட ஏற்பு சோதனையைக் கேளுங்கள். நிராகரிக்கப்பட்ட முயற்சி தானாக நிராகரிக்கப்பட்ட தொகுப்பு அல்ல: பதிப்பின் கீழ் வரம்பு, remote-cert-tls போன்ற சான்றிதழ் அடையாளச் சரிபார்ப்புகள், அல்லது tls-auth மற்றும் tls-crypt இடையேயான பொருந்தாமை தொகுப்புத் தேர்வு முக்கியமாகும் முன்பே பரிமாற்றத்தை முடிக்கலாம். கிளையண்டின் பட்டியலை மாற்றுவதற்கு முன் சேவையகத்தின் பிழையைப் படியுங்கள், ஏனெனில் «handshake failed» நான்கு வெவ்வேறு காரணங்களை உள்ளடக்குகிறது, அவற்றில் ஒன்று மட்டுமே சைஃபர் பொருந்தாமை.

VPN துறைமுகத்திற்கு openssl s_client ஐக் காட்டுவதும் கேள்வியை மீண்டும் உருவாக்காது. கட்டுப்பாட்டு சேனல் OpenVPN இன் சொந்த சட்டகத்திற்குள் இயங்குகிறது, எனவே மூல TLS ஆய்வு வேறு ஒன்றை எதிர்பார்க்கும் துறைமுகத்தில் வேறு நெறிமுறையைச் சோதிக்கிறது. அதிலிருந்து எடுக்கப்படும் எந்த முடிவும் ஆய்வைப் பற்றியது, சுரங்கப்பாதையைப் பற்றியது அல்ல.

இரண்டு முடிவுகளைப் பதிவு செய்து அவற்றைத் தனியாக வைத்திருங்கள்

புதிதாக அனுமதிக்கப்பட்ட அமர்வு, நெறிமுறை பதிப்பையும் தேர்ந்தெடுக்கப்பட்ட சைஃபரையும் குறிக்கும் கட்டுப்பாட்டு சேனல் வரியையும், சுரங்கப்பாதையின் சைஃபரைக் குறிக்கும் தனி தரவு சேனல் வரியையும் உருவாக்குகிறது. இரண்டையும் கிளையண்ட் பதிப்பு மற்றும் சுயவிவரப் பெயருடன் பிடித்து, எந்த சேவையக நிகழ்வு பதிலளித்தது என்பதைக் குறிப்பிடுங்கள்:

openvpn --config office.ovpn --verb 4 2>&1 | tee session.txt

பின்னர் அந்த இரண்டு வரிகளையும் நினைவகத்திலிருந்து அல்ல, அந்தக் கோப்பிலிருந்து படியுங்கள். இணையே சான்று; தொகுப்புப் பெயர் மட்டும் ஒரு விருப்பம், மேலும் பதிப்பு வரம்பு சேவையகம் எதை நிராகரிக்கிறது என்பது பற்றிய தனி அறிக்கை.

சரிபார்ப்புகளை இந்த வரிசையில் செய்யுங்கள். --version மூலம் கட்டுமானத்தையும் பின்தளத்தையும் உறுதிப்படுத்துங்கள். எதையும் மாற்றுவதற்கு முன் --show-tls ஐப் பிடியுங்கள். தேவையான பதிப்பு கீழ் வரம்பை தொகுப்பு பட்டியலிலிருந்து தனியாகக் கூறுங்கள். இயங்கும் நிகழ்வின் பயனுள்ள கொள்கையை அதன் உரிமையாளருடன் உறுதிப்படுத்துங்கள். ஒரு அனுமதிக்கப்பட்ட அமர்வையும், திட்டம் அனுமதித்தால் பழைய பதிப்புடன் ஒரு நிராகரிக்கப்பட்ட முயற்சியையும் கவனியுங்கள். கட்டுப்பாட்டு சேனல் மற்றும் தரவு சேனல் முடிவுகளை தனித்தனி கண்டுபிடிப்புகளாகப் பதிவு செய்யுங்கள்.

தேவையான கிளையண்ட் புதிய குறைந்தபட்சத்தை பூர்த்தி செய்ய முடியாவிட்டால், வெளியீடு முடிந்ததாகத் தோன்ற தொடர்பில்லாத ஏற்பு விதியை அமைதியாகக் குறைப்பதற்குப் பதிலாக அந்த இடம்பெயர்வு அல்லது விதிவிலக்கு முடிவை வெளிப்படையாக எடுங்கள்.

தொடர்புடைய கட்டுரைகள்