Perl SOCKS കണക്ഷൻ തുറന്നതിന് ശേഷം TLS ചേർക്കുക
IO::Socket::SSL എന്നത് IO::Socket::Socks കണക്ഷന് മുകളിൽ വയ്ക്കുകയും ലക്ഷ്യത്തിന്റെ ഹോസ്റ്റ്നെയിം പരിശോധിക്കുകയും ചെയ്യുക.
SOCKS കണക്ഷനും TLS കണക്ഷനും വ്യത്യസ്ത ജോലികളാണ് ചെയ്യുന്നത്. ആദ്യം SOCKS വഴി ലക്ഷ്യത്തിലേക്ക് ഒരു ബൈറ്റ് സ്ട്രീം നേടുക. തുടർന്ന് ആ സ്ട്രീമിന് മുകളിൽ TLS ആരംഭിക്കുക, പ്രോക്സിയല്ല, ലക്ഷ്യ വെബ്സൈറ്റ് തിരിച്ചറിഞ്ഞുകൊണ്ട്.
HTTPS ശൈലിയിലുള്ള TLS എൻഡ്പോയിന്റിന് ക്രമീകരണം ഇങ്ങനെയാകാം:
use IO::Socket::Socks;
use IO::Socket::SSL;
my $target = 'example.com';
my $socket = IO::Socket::Socks->new(
SocksVersion => 5,
ProxyAddr => '127.0.0.1',
ProxyPort => 1080,
ConnectAddr => $target,
ConnectPort => 443,
) or die $!;
IO::Socket::SSL->start_SSL(
$socket,
SSL_hostname => $target,
SSL_verifycn_name => $target,
SSL_verifycn_scheme => 'http',
SSL_verify_mode => SSL_VERIFY_PEER,
) or die IO::Socket::SSL::errstr();
അനുവദനീയമായ പൊതു-പ്രോക്സി പാതയിലുള്ള പൊതു HTTPS ലക്ഷ്യത്തിന് SOCKS5 പ്രോക്സി പട്ടിക ProxyAddr, ProxyPort എന്നിവയ്ക്ക് സ്ഥാനാർഥികൾ നൽകുന്നു. ഈ ഭാഗം ഗതാഗത പാളികൾ സ്ഥാപിക്കുന്നു; ആപ്ലിക്കേഷൻ ഇപ്പോഴും ലക്ഷ്യം പ്രതീക്ഷിക്കുന്ന പ്രോട്ടോക്കോൾ അയയ്ക്കുകയും തീർന്നാൽ സോക്കറ്റ് അടയ്ക്കുകയും വേണം.
ഉദ്ദേശിച്ച പിയർ നാമം നിലനിർത്തുക
പ്രോക്സി എൻഡ്പോയിന്റ് ആദ്യ കണക്ഷനുള്ളതാണ്. TLS SNI-യും ഹോസ്റ്റ്നെയിം പരിശോധനയും ബന്ധപ്പെടുന്നത് example.com എന്നതുമായാണ്. ആ ഘട്ടത്തിൽ പ്രോക്സിയുടെ ഹോസ്റ്റ്നെയിം ഉപയോഗിച്ചാൽ തെറ്റായ ഐഡന്റിറ്റി ആവശ്യപ്പെടുകയോ പരിശോധിക്കുകയോ ചെയ്തേക്കാം.
ട്രസ്റ്റ്-സ്റ്റോർ കോൺഫിഗറേഷൻ മറ്റൊരു സ്വതന്ത്ര ആവശ്യകതയാണ്. ഡയഗ്നോസ്റ്റിക് ഉദാഹരണത്തിൽ നിന്ന് പകർത്തിയ എല്ലാത്തിലും വിശ്വസിക്കുന്ന കോൾബാക്കിനു പകരം ആപ്ലിക്കേഷന്റെ ഉദ്ദേശിച്ച CA കോൺഫിഗറേഷൻ ഉപയോഗിക്കുക.
SOCKS ഘട്ടം പരാജയപ്പെട്ടാൽ TLS പാരാമീറ്ററുകൾ മാറ്റുന്നത് അത് ശരിയാക്കില്ല. SOCKS വിജയിക്കുകയും TLS പരാജയപ്പെടുകയും ചെയ്താൽ സർട്ടിഫിക്കറ്റ്, ഹോസ്റ്റ്നെയിം പിശക് തെളിവായി സൂക്ഷിക്കുക, സാധാരണ പ്രോക്സി തകരാറായി കണക്കാക്കരുത്.
മൊഡ്യൂൾ നാമങ്ങളും പ്രധാനമാണ്: IO::Socket::Socks, IO::Socket::SSL എന്നിവ വ്യത്യസ്ത കൺസ്ട്രക്ടറുകളും അപ്ഗ്രേഡ് സ്വഭാവവും നൽകുന്നു. പ്രോക്സിയിൽ എത്തിയത് മാത്രമായ ഒരു അസംസ്കൃത TCP സോക്കറ്റ് ഇപ്പോഴും SOCKS ലക്ഷ്യ ചർച്ച പൂർത്തിയാക്കിയിട്ടില്ല.