VPN-ൽ സമമിത vs. പൊതു-കീ എൻക്രിപ്ഷൻ: ഓരോന്നും എന്ത് ചെയ്യുന്നു
VPN പൊതു കീകൾ ഉപയോഗിച്ച് സമപ്രായക്കാരെ പ്രാമാണീകരിക്കുന്നു, തുടർന്ന് ഉരുത്തിരിഞ്ഞ സെഷൻ കീകൾ ഉപയോഗിച്ച് പാക്കറ്റുകൾ എൻക്രിപ്റ്റ് ചെയ്യുന്നു. സർട്ടിഫിക്കറ്റുകളും ട്രാഫിക് കീകളും വ്യത്യസ്ത വസ്തുക്കളായി കാണുക.
ആളുകൾ VPN-നെ „പൊതു-കീ എൻക്രിപ്ഷൻ ഉപയോഗിക്കുന്നത്“ എന്ന് വിവരിച്ച്, ഓരോ പാക്കറ്റും സർവറിന്റെ സർട്ടിഫിക്കറ്റ് കൊണ്ട് പൂട്ടിയിരിക്കുന്നു എന്ന് സങ്കൽപ്പിക്കുന്നു. ഈ ചിത്രം കോൺഫിഗ് ഫയലോ പാക്കറ്റ് ക്യാപ്ചറോ വായിക്കുമ്പോൾ പ്രധാനമാകുന്ന രീതിയിൽ തെറ്റാണ്. VPN-ന്റെ പൊതു-കീ പകുതി സമപ്രായക്കാർ ആരാണെന്ന് തെളിയിക്കുന്നതിനെയും രഹസ്യ വസ്തുവിനെക്കുറിച്ചുള്ള യോജിപ്പിനെയും കുറിച്ചാണ്; സമമിത പകുതിയാണ് ട്രാഫിക്കിനെ യഥാർത്ഥത്തിൽ സംരക്ഷിക്കുന്നത്, പാക്കറ്റിന് ശേഷം പാക്കറ്റ്, സെഷന്റെ മുഴുവൻ ആയുസ്സിലും.
രണ്ട് പകുതികൾക്കും വ്യത്യസ്ത ആയുസ്സും പരാജയ രീതികളും സുരക്ഷിതമായി പ്രസിദ്ധീകരിക്കാവുന്ന കാര്യങ്ങളും ഉണ്ട്. അവ വേർതിരിച്ചാൽ, „RSA 2048 AES-128-നേക്കാൾ ദുർബലമാണോ“ എന്നതുപോലുള്ള ചോദ്യങ്ങൾ ആശയക്കുഴപ്പം ഉണ്ടാക്കുന്നത് നിർത്തും, കാരണം അവ ഒരിക്കലും താരതമ്യപ്പെടുത്താവുന്നതായിരുന്നില്ല.
ഒരുമിച്ച് കലർത്തുന്ന മൂന്ന് പ്രവർത്തനങ്ങൾ
പൊതു-കീ ക്രിപ്റ്റോഗ്രഫി കുറഞ്ഞത് മൂന്ന് വ്യത്യസ്ത പ്രവർത്തനങ്ങൾക്ക് മേലുള്ള ഒരു കുടയാണ്. ഒപ്പ് സ്വകാര്യ കീയുടെ ഉടമ ഒരു നിർദ്ദിഷ്ട സന്ദേശം അംഗീകരിച്ചു എന്ന് തെളിയിക്കുന്നു. കീ ഉടമ്പടി രണ്ട് സമപ്രായക്കാർക്ക് പരസ്യമായി കൈമാറുന്ന മൂല്യങ്ങളിൽ നിന്ന് പങ്കിട്ട രഹസ്യം ഉരുത്തിരിഞ്ഞെടുക്കാൻ അനുവദിക്കുന്നു. പൊതു-കീ എൻക്രിപ്ഷൻ ഡാറ്റ ഒരാളുടെ പൊതു കീയുടെ കീഴിൽ ഒളിപ്പിക്കുന്നു, അതിനാൽ സ്വകാര്യ കീക്ക് മാത്രം അത് തുറക്കാനാകും.
VPN ഹാൻഡ്ഷേക്കുകൾ പ്രധാനമായും ആദ്യ രണ്ടെണ്ണം ഉപയോഗിക്കുന്നു. സർട്ടിഫിക്കറ്റ് എൻക്രിപ്ഷൻ കീ അല്ല; അത് ഒരു പേരിനെ പൊതു കീയുമായി ബന്ധിപ്പിക്കുന്ന ഒപ്പിട്ട പ്രസ്താവനയാണ്, ഇപ്പോൾ ലഭിച്ച കീയെ വിശ്വസിക്കണോ എന്ന് മറുവശത്തിന് തീരുമാനിക്കാൻ അനുവദിക്കുന്നു. ഉദാഹരണത്തിന്, TLS 1.3 കീ സ്ഥാപനം (EC)DHE കീ ഉടമ്പടിയിലും സർട്ടിഫിക്കറ്റ് ഒപ്പുകളിലും അധിഷ്ഠിതമാണ്, സർവറിന്റെ പൊതു കീ ഉപയോഗിച്ച് സെഷൻ എൻക്രിപ്റ്റ് ചെയ്യുന്നതിലല്ല.
ഹാൻഡ്ഷേക്ക് യഥാർത്ഥത്തിൽ എന്താണ് ഉത്പാദിപ്പിക്കുന്നത്
ആധുനിക ഹാൻഡ്ഷേക്കിൽ ഓരോ വശവും ഒരു താൽക്കാലിക കീ ജോടി സൃഷ്ടിച്ച്, പൊതു പകുതികൾ കൈമാറി, വയർ കടക്കാത്ത ഒരു പങ്കിട്ട രഹസ്യം കണക്കാക്കുന്നു. ആ രഹസ്യം പിന്നീട് ഒരു കീ-ഉത്പാദന ഫംഗ്ഷനിലൂടെ കടന്നുപോയി ഓരോ ദിശയ്ക്കും വേറിട്ട കീകളും, റെക്കോർഡ് പാളിക്ക് ആവശ്യമായ nonce-കളും IV വസ്തുവും ഉണ്ടാക്കുന്നു. WireGuard ഇത് Noise അടിസ്ഥാനമാക്കിയുള്ള രൂപകൽപ്പനയിലൂടെ ചെയ്യുന്നു; TLS 1.3 ഇത് ഹാൻഡ്ഷേക്ക് ട്രാൻസ്ക്രിപ്റ്റിന് മേലുള്ള HKDF ഉപയോഗിച്ച് ചെയ്യുന്നു.
ദീർഘകാല ക്രെഡൻഷ്യൽ — സർട്ടിഫിക്കറ്റും സ്വകാര്യ കീയും, അല്ലെങ്കിൽ നിശ്ചല WireGuard കീ — ആ കൈമാറ്റം പ്രാമാണീകരിക്കുന്നു. അത് ട്രാൻസ്ക്രിപ്റ്റിൽ ഒപ്പിടുകയോ അതിൽ കലരുകയോ ചെയ്യുന്നു, അതിനാൽ അപരിചിതന് സമപ്രായക്കാരന്റെ സ്ഥാനത്ത് ഹാൻഡ്ഷേക്ക് പൂർത്തിയാക്കാനാകില്ല. അതിനുശേഷം ക്രെഡൻഷ്യൽ ഓരോ പാക്കറ്റിനും പണിയെടുക്കുന്നില്ല. അങ്ങനെയായിരുന്നെങ്കിൽ ഓരോ പാക്കറ്റിനും സ്വകാര്യ-കീ പ്രവർത്തനം വേണ്ടിവരുമായിരുന്നു, തിരക്കുള്ള ടണൽ സ്റ്റാക്കിലെ ഏറ്റവും മന്ദഗതിയിലുള്ള പ്രവർത്തനത്താൽ പരിമിതപ്പെടുമായിരുന്നു.
ഇതിൽ നിന്ന് രണ്ട് പാർശ്വഫലങ്ങൾ ഉണ്ടാകുന്നു. ഒന്നാമതായി, സെഷൻ കീകൾ ഓരോ തവണയും പുതിയതാണ്, അതിനാൽ പിന്നീട് ദീർഘകാല കീ മോഷ്ടിക്കുന്ന ആക്രമണകാരിക്ക് മുൻപ് റെക്കോർഡ് ചെയ്ത സെഷനുകൾ ഡീക്രിപ്റ്റ് ചെയ്യാനാകില്ല, ഉടമ്പടി താൽക്കാലികമായിരുന്നെങ്കിൽ. രണ്ടാമതായി, ചോർന്ന സെഷൻ കീ ഒരു സെഷനെ അപകടത്തിലാക്കുന്നു, ഐഡന്റിറ്റിയെയല്ല.
വലിയ ഡാറ്റ അളവുകൾ സമമിത കീകൾ ഉപയോഗിക്കുന്നത് എന്തുകൊണ്ട്
സമമിത സൈഫറുകൾ അളവ് നന്നായി കൈകാര്യം ചെയ്യുന്നു: AES-GCM അല്ലെങ്കിൽ ChaCha20-Poly1305 ഓരോ പാക്കറ്റും ഇതിനകം മെമ്മറിയിലുള്ള കീ ഉപയോഗിച്ച് പ്രോസസ്സ് ചെയ്ത്, ഹെഡർ പ്രാമാണീകരിച്ച്, കൗണ്ടർ വർദ്ധിപ്പിക്കുന്നു. സ്വീകർത്താവ് nonce-ഉം ഓതന്റിക്കേഷൻ ടാഗും പരിശോധിച്ച് പരാജയപ്പെട്ടതോ വീണ്ടും അയച്ചതോ ആയ എല്ലാം ഉപേക്ഷിക്കുന്നു. സാധാരണ ഹാർഡ്വെയറിൽ ലൈൻ വേഗതയിൽ പ്രവർത്തിക്കാൻ ഇത് മതിയായ വിലകുറഞ്ഞതാണ്, അതേ രൂപകൽപ്പന ഒരു പാസിൽ രഹസ്യതയും സമഗ്രതയും നൽകുന്നു.
ഈ രൂപകൽപ്പനയാണ് മിക്ക ഇംപ്ലിമെന്റേഷൻ ബഗുകളും കഴിയുന്ന സ്ഥലം. GCM-ൽ nonce ആവർത്തിച്ചാൽ രഹസ്യതയും ആധികാരികതയും ഒരുമിച്ച് തകരുന്നു, അതിനാൽ പ്രോട്ടോക്കോളുകൾ ഓരോ ദിശയ്ക്കും കീകൾ ഉരുത്തിരിഞ്ഞെടുത്ത് വ്യക്തമായ കൗണ്ടറോ യുഗമോ സൂക്ഷിക്കുന്നു. പാക്കറ്റ് ക്യാപ്ചർ വായിക്കുമ്പോൾ സൈഫർടെക്സ്റ്റിന്റെ നീളം പ്ലെയിൻടെക്സ്റ്റിനോട് സ്ഥിരമായ ഓവർഹെഡ് ചേർത്തതിനോട് ഒത്തുപോകുന്നെങ്കിൽ, പ്രവർത്തിക്കുന്നത് സമമിത പാളിയാണ്, ഓരോ പാക്കറ്റിനുമുള്ള പൊതു-കീ പ്രവർത്തനമല്ല.
ആയുസ്സ്, കീ പുതുക്കൽ, മുന്നോട്ടുള്ള രഹസ്യത
സെഷൻ കീകൾ കാലഹരണപ്പെടാൻ ഉദ്ദേശിച്ചുള്ളതാണ്. TLS 1.3 ഒരു KeyUpdate സന്ദേശത്തിന് ട്രാഫിക് കീകൾ ഉരുട്ടാൻ അനുവദിക്കുന്നു; WireGuard ക്രമീകരിച്ച സമയത്തിനോ സന്ദേശ എണ്ണത്തിനോ ശേഷം സെഷൻ പുതുക്കി, വഴിയിൽ ഉള്ള പാക്കറ്റുകൾക്കായി പഴയത് അൽപ്പസമയം സൂക്ഷിക്കുന്നു. OpenVPN തന്റെ ഡാറ്റാ ചാനൽ കീകളെ ഷെഡ്യൂൾ അനുസരിച്ച് വീണ്ടും ചർച്ച ചെയ്യുന്നു, reneg-sec ഇടവേള നിയന്ത്രിക്കുന്നു.
ആ ഉരുളലുകളിൽ ഒന്നും സർട്ടിഫിക്കറ്റ് പുതുക്കുന്നതിന് തുല്യമല്ല. ഒരു സർട്ടിഫിക്കറ്റ് ഒരു വർഷം സാധുവായിരിക്കാം, അതേസമയം സെഷൻ കീകൾ ഓരോ കുറച്ച് മിനിറ്റിലും മാറുന്നു, പ്രവർത്തിക്കുന്ന ടണലിന്റെ കീകളെ സ്പർശിക്കാതെ സർട്ടിഫിക്കറ്റ് മാറ്റാനും കഴിയും. കാലഹരണം ആസൂത്രണം ചെയ്യുമ്പോൾ, ഏത് വസ്തുവാണ് ഉരുട്ടുന്നതെന്ന് ചോദിക്കുക; കക്ഷികൾ വീണ്ടും ബന്ധിപ്പിക്കുമോ അതോ കീകൾ പുതുക്കുക മാത്രമേ ചെയ്യൂ എന്ന് ഉത്തരം തീരുമാനിക്കുന്നു.
വസ്തുക്കൾ കലർത്താതെ കോൺഫിഗറേഷനും ഡയഗ്നോസ്റ്റിക്സും വായിക്കുക
പ്രായോഗികമായി നിങ്ങൾ ഒരു പൂർണ്ണ പ്രോട്ടോക്കോളും അതിന്റെ പിന്തുണയുള്ള പ്രിമിറ്റീവുകളും തിരഞ്ഞെടുക്കുന്നു, സ്വന്തമായി കൂട്ടിച്ചേർക്കുകയല്ല. OpenVPN-ന്റെ --tls-crypt കീ നിയന്ത്രണ ചാനൽ സംരക്ഷിക്കുന്നു; ഡാറ്റാ ചാനൽ ചർച്ച ചെയ്ത സമമിത സൈഫറുകൾ ഉപയോഗിക്കുന്നു. WireGuard-ന്റെ PrivateKey, PublicKey എൻട്രികൾ ഐഡന്റിറ്റി വസ്തുവാണ്, അതിന്റെ ട്രാൻസ്പോർട്ട് കീകൾ ആന്തരികമായി ഉരുത്തിരിയുന്നു. ആ ഫീൽഡുകളെ ഒരേ തരം രഹസ്യമായി വായിക്കുന്നത് സ്വകാര്യ കീയുള്ളിടത്ത് പൊതു കീ ഒട്ടിക്കുന്നതുപോലുള്ള തെറ്റുകളിലേക്ക് നയിക്കുന്നു.
പൊതു വസ്തുവിനെ സ്വകാര്യത്തിൽ നിന്ന് വേർതിരിച്ച് സൂക്ഷിക്കുക. സർട്ടിഫിക്കറ്റ്, WireGuard പൊതു കീ, വിരലടയാളം എന്നിവ ടിക്കറ്റിൽ പങ്കിടാൻ സുരക്ഷിതമാണ്. സ്വകാര്യ കീ, മുൻകൂട്ടി പങ്കിട്ട കീ, കയറ്റുമതി ചെയ്ത സെഷൻ കീ എന്നിവ അല്ല. ശക്തി താരതമ്യം ചെയ്യുമ്പോൾ ഒരേ തരത്തിനുള്ളിൽ താരതമ്യം ചെയ്യുക: ദീർഘവൃത്ത വക്ര ഐഡന്റിഫയർ, RSA മോഡുലസ് വലിപ്പം, AES കീ വലിപ്പം വ്യത്യസ്ത അനുമാനങ്ങൾക്ക് കീഴിൽ വ്യത്യസ്ത കാര്യങ്ങൾ അളക്കുന്നു. TLS 1.3 സ്പെസിഫിക്കേഷൻ രണ്ട് പാളികൾ എങ്ങനെ ഒത്തുചേരുന്നു എന്നതിന് ഉപയോഗപ്രദമായ ഒരു റെഫറൻസാണ്, നിങ്ങളുടെ ടണൽ TLS അല്ലെങ്കിലും.